Chcę użyć Latent Dirichlet Allocation dla projektu i używam Pythona z biblioteką gensim. Po znalezieniu tematów chciałbym klastrować dokumenty za pomocą algorytmu takiego jak k-średnich (idealnie chciałbym użyć dobrego do nakładania się klastrów, więc wszelkie zalecenia są mile widziane). Udało mi się uzyskać tematy, ale mają one postać:
0,041 * Minister + 0,041 * Klucz + 0,041 * chwile + 0,041 * kontrowersyjny + 0,041 * Prime
Aby zastosować algorytm grupowania i poprawić mnie, jeśli się mylę, uważam, że powinienem znaleźć sposób na reprezentowanie każdego słowa jako liczby za pomocą tfidf lub word2vec.
Czy masz jakieś pomysły na to, jak mogę „usunąć” informacje tekstowe np. Z listy, aby to zrobić, a następnie umieścić je z powrotem w celu odpowiedniego pomnożenia?
Na przykład z tego, co widzę, jeśli słowo Minister ma wagę tfidf 0,042 i tak dalej dla każdego innego słowa w tym samym temacie, powinienem obliczyć coś takiego:
0,041 * 0,42 + ... + 0,041 * tfidf (Prime) i uzyskaj wynik, który zostanie później użyty w celu zgrupowania wyników.
Dziękuję za Twój czas.
źródło
Odpowiedzi:
Zakładając, że LDA stworzyło listę tematów i oceniło każdy temat dla każdego dokumentu, można przedstawić dokument i jego wyniki jako wektor:
Aby uzyskać wyniki dla każdego dokumentu, możesz uruchomić dokument. jako worek słów, przez wyszkolony model LDA. Z dokumentacji gensim:
Następnie możesz uruchomić k-średnich na tej macierzy i powinien on grupować podobne dokumenty razem. Domyślnie K-oznacza to twardy algorytm klastrowania sugerujący, że klasyfikuje on każdy dokument w jednym klastrze. Możesz użyć mechanizmów klastrowania miękkiego, które dadzą ci wynik prawdopodobieństwa, że dokument pasuje do klastra - nazywa się to rozmytym k-średnią . https://gist.github.com/mblondel/1451300 to istota Pythona pokazująca, jak możesz to zrobić za pomocą scikit learn.
ps: Nie mogę opublikować więcej niż 2 linków
źródło
W uzupełnieniu do poprzedniej odpowiedzi lepiej nie tylko uruchamiać kmeans bezpośrednio na danych kompozycyjnych pochodzących z dystrybucji lda topic-doc, zamiast tego użyć transformacji danych kompozycyjnych, aby rzutować je na przestrzeń euklidesową, np. Ilr lub clr.
( Przykład )
źródło