2012-04-11 19 views
7

Używam Algorytmów Latent Dirichlet z corpus wiadomości danych z sześciu różnych źródeł. Interesuje mnie ewolucja tematu, pojawienie się i chcę porównać, jak źródła są podobne i różne od siebie w czasie. Wiem, że istnieje wiele zmodyfikowanych algorytmów LDA, takich jak model Autor-Temat, Tematy w czasie i tak dalej.Implementowanie alternatywnych formularzy LDA

Mój problem polega na tym, że bardzo niewiele z tych alternatywnych specyfikacji modeli jest implementowanych w dowolnym standardowym formacie. Niektóre są dostępne w Javie, ale większość istnieje tylko jako dokumenty konferencyjne. Jaki jest najlepszy sposób na samodzielne wdrożenie niektórych z tych algorytmów? Jestem dość biegły w R i jags i mogę potknąć się w Pythonie, gdy otrzymam wystarczająco długo. Jestem gotów napisać kod, ale tak naprawdę nie wiem od czego zacząć i nie znam C ani Javy. Czy mogę zbudować model w JAGS lub Pythonie, po prostu mając formuły z manuskryptu? Jeśli tak, czy ktoś może wskazać mi przykład takiego działania? Dzięki.

+1

Mam przyjaciela, który dosłownie musiał to zrobić około tydzień temu. Ostatecznie zaimplementował własną wersję zwiniętego samplera Gibbs w Pythonie i C. W zależności od wielkości danych, możesz nie mieć innego wyboru, niż używać szybszych języków. W każdym razie sprawdzę, czy mogę poprosić tego znajomego o opublikowanie informacji o tym, jak rozwiązał ten problem. – ely

+0

Czy obejrzałeś pakiety 'R'' topicmodels' oraz 'lda'? Jest też trochę pogadanek na ten temat na http://stats.stackexchange.com/ – Ben

+0

@Ben Tak - użyłem obu pakietów, ale rzeczywista część algorytmiczna jest już skompilowana w obu przypadkach, które nie nadają się do rozbudowa. Pakiet lda jest doskonały i szybki, ale szukam także pewnej elastyczności bez konieczności uczenia się C lub Java podczas pisania mojej rozprawy. – Trey

Odpowiedz

5

Odpowiedź mojego przyjaciela jest poniżej, proszę ułaskawić język.

Najpierw pisałem w górę implementacji Pythona zawalonego Gibbs próbnika obejrzeć tutaj (http://www.pnas.org/content/101/suppl.1/5228.full.pdf+html) i uregulowana tutaj (http://cxwangyi.files.wordpress.com/2012/01/llt.pdf). To było powolne jak piłki.

Następnie użyłem pakowania w języku Python wersji C tego artykułu (http://books.nips.cc/papers/files/nips19/NIPS2006_0511.pdf). Który jest szybki jak f * ck, ale wyniki nie są tak świetne, jak można to zobaczyć za pomocą NMF.

Ale implementacje NMF, które widziałem, ze skeczkami, a nawet z niesplikowaną ostatnio biblioteką NIMFA kompatybilną z scipy, wszystko to dmucha w każdy spory korpus. Mój nowy biały wieloryb jest podzieloną na plasterki, rozproszoną implementacją rzeczy. To nie będzie banalne.

+0

Dzięki za kontynuację. – Trey