Jestem zainteresowany zastosowaniem modelu tematycznego LDA przy użyciu Spark MLlib. Sprawdziłem kod i objaśnienia w here, ale nie mogłem znaleźć sposobu użycia tego modelu, aby znaleźć dystrybucję tematów w nowym niewidocznym dokumencie.Spark MLlib LDA, jak wnioskować o rozkładzie tematów nowego niewidocznego dokumentu?
Odpowiedz
Od wersji Spark 1.5 ta funkcja nie została zaimplementowana dla DistributedLDAModel
. Co masz zamiar trzeba zrobić, to przekształcić swój model do LocalLDAModel
stosując metodę toLocal
a następnie wywołać metodę topicDistributions(documents: RDD[(Long, Vector])
gdzie documents
są nowe (tj out-of-szkolenia) dokumenty, coś takiego:
newDocuments: RDD[(Long, Vector)] = ...
val topicDistributions = distLDA.toLocal.topicDistributions(newDocuments)
To będzie mniej dokładne niż algorytm EM, który sugeruje this paper, ale zadziała. Alternatywnie, możesz po prostu użyć nowego algorytmu szkolenia wariacyjnego EM online, który już daje LocalLDAModel
. Oprócz tego, że jest on szybszy, ten nowy algorytm jest również korzystniejszy ze względu na fakt, że w przeciwieństwie do starszego algorytmu EM do dopasowywania DistributedLDAModels
, optymalizuje parametry (alphas) Dirichleta wcześniej, niż zmiesza wagę dla dokumentów. Według Wallach, et. al., optymalizacja alfów jest bardzo ważna dla uzyskania dobrych tematów.
- 1. Jak ustalić liczbę tematów dla LDA?
- 2. Jak obsługiwać model Spark MLlib?
- 3. Spark MLlib - ostrzeżenie trainImplicit
- 4. Przewidywanie tematów LDA dla nowych danych
- 5. Apache Spark - MlLib - Filtrowanie grupowe
- 6. Jak wydrukować modele tematów LDA z gensim? Python
- 7. Gensim uzyskać temat dla dokumentu (dokument widziana)
- 8. Spark MLlib - Collaborative Filtering niejawny Kanał
- 9. Pandy: jak szybciej wnioskować o ramkę danych?
- 10. Mllib błąd zależność
- 11. Generowanie liczby losowej o nierównomiernym rozkładzie
- 12. Jaka jest różnica między pakietami Spark ML i MLLIB?
- 13. Przypisanie tematu Gensim LDA
- 14. Przyspieszenie filtrowania grupowego dla dużego zestawu danych w Spark MLLib
- 15. Dlaczego python nie może wnioskować o typach takich jak scala?
- 16. Mongomapper: skopiuj dokument do nowego dokumentu
- 17. Jaki jest najlepszy sposób na uzyskanie optymalnej liczby tematów dla modelu LDA za pomocą Gensim?
- 18. Generowanie losowych liczb całkowitych w zakresie o rozkładzie prawdopodobieństwa
- 19. Dane wejściowe modelowania tematu LDA
- 20. Dlaczego Haskell nie może wnioskować o typie drzewa?
- 21. LDA ignorując n_components?
- 22. Implementowanie alternatywnych formularzy LDA
- 23. Jak mogę poprosić Windows o wydrukowanie dokumentu?
- 24. Jak zastąpić wartości DataField dokładnymi nazwami kolumn w pliku Spark-MLlib PMML?
- 25. Używanie DataFrame z MLlib
- 26. Implementacja Spect MLLib TFIDF dla LogisticRegression
- 27. Tworzenie nowego dokumentu PDF za pomocą interfejsu API PDFBOX
- 28. Konwersja RDD wektora w LabeledPoint za pomocą Scala - MLLib w Apache Spark
- 29. Zarejestruj dane wejściowe z niewidocznego formularza
- 30. Spark MLlib - szkolenie filtrowanie współpracy z niejawny informacji zwrotnej - dziwne ostrzeżenia
dzięki. odpowiedź jest bardzo przydatna! Jeśli to możliwe, czy można opracować więcej w jaki sposób wyodrębnić dane wyjściowe z sekcji Składniki tematów do bardziej reprezentowalnych wyników? – HappyCoding
Zaimplementowałem to i pokazałem, jak wydrukować tytułDystrybucje [tutaj] (https://gist.github.com/alex9311/774089d936eee505d7832c6df2eb597d) – alex9311
Czy coś zmieniono dla wersji 1.6? –