i MLlib Spark kullanarak LDA konu modelleme uygulayarak ilgileniyorum. Ben kodu ve here yılında açıklamalar kontrol ettikten ama yeni görünmeyen belgede konu dağılımını bulmak için daha sonra modelin nasıl kullanılacağını bulamadık.Spark MLlib LDA, yeni görünmeyen bir belgenin konu dağılımını nasıl anlayacaksınız?
13
A
cevap
13
Spark 1.5'den itibaren bu işlev DistributedLDAModel
için uygulanmamıştır.
newDocuments: RDD[(Long, Vector)] = ...
val topicDistributions = distLDA.toLocal.topicDistributions(newDocuments)
: Ne yapmak ihtiyacımız olacak
documents
yeni (yani dışı eğitim) belgeleri, böyle bir şey vardır
topicDistributions(documents: RDD[(Long, Vector])
yöntemini çağırın sonra
toLocal
yöntemini kullanarak bir
LocalLDAModel
modelinizi dönüştürmek ve ise
Bu, this paper'un önerdiği EM algoritmasından daha az doğru olacaktır, ancak işe yarayacaktır. Alternatif olarak, zaten LocalLDAModel
ile sonuçlanan yeni çevrimiçi varyasyonel EM eğitim algoritmasını kullanabilirsiniz. Daha hızlı olmanın yanı sıra, bu yeni algoritma, DistributedLDAModels
uydurma için eski EM algoritmasından farklı olarak, Dirichlet'in parametrelerinin (alfa), belgeler için ağırlık karıştırma konusundaki konulardan önce optimize edilmesi nedeniyle de tercih edilir. Wallach, et. al.'a göre, iyi konular elde etmek için alfaların optimizasyonu oldukça önemlidir.
teşekkürler. Cevap çok yararlı! Eğer mümkünse, topicDistributions'ın çıktısını daha açık bir sonuç için nasıl çıkaracağınız konusunda daha fazla ayrıntıya geçebilir miydiniz? – HappyCoding
Bunu uygulamam ve konuya nasıl yazılacağını gösterdim [burada] (https://gist.github.com/alex9311/774089d936eee505d7832c6df2eb597d) – alex9311
1.6 için bir şey değişti mi? –