Nekem úgy tűnik, hogy csak két R csomag képes végrehajtani a látens Dirichlet kiosztást :
Az egyik lda
, szerző: Jonathan Chang; a másik pedig a topicmodels
Bettina Grün és Kurt Hornik szerzők. és bővíthetőség?
Nekem úgy tűnik, hogy csak két R csomag képes végrehajtani a látens Dirichlet kiosztást :
Az egyik lda
, szerző: Jonathan Chang; a másik pedig a topicmodels
Bettina Grün és Kurt Hornik szerzők. és bővíthetőség?
Megvalósítás: A topicmodels csomag egy interfészt biztosít a GSL C és C ++ kódhoz Blei et al. és Phan és mtsai. A korábbiaknál a Variational EM-t használja, az utóbbiakhoz Gibbs mintavételt. Lásd: http://www.jstatsoft.org/v40/i13/paper. A csomag jól működik a tm csomag segédprogramjaival.
Az lda csomag egy összecsukott Gibbs Samplert használ számos olyan modellhez, amely hasonló a GSL könyvtárhoz. Ezt azonban maga a csomag készítői hajtották végre, nem Blei et al. Ez a megvalósítás tehát általánosságban eltér az eredeti, ezeket a modellváltozatokat bemutató cikkekben javasolt becslési technikától, ahol általában a VEM algoritmust alkalmazzák. Másrészt a csomag több funkcionalitást kínál, mint a másik csomag. A csomag szövegbányászati funkciókat is biztosít.
Bővíthetőség: A bővíthetőség tekintetében a topicmodel kód jellegénél fogva kiterjeszthető más C és C ++ nyelven írt témamodell kódok felületére. Úgy tűnik, hogy az lda csomag jobban támaszkodik a szerzők által biztosított konkrét megvalósításra, de ott a Gibbs mintavevő lehetővé teheti a saját témamodell megadását. A kiterjeszthetőség kérdéseiben nem más, az előbbi a GPL-2, az utóbbi az LGPL licenccel rendelkezik, ezért függhet attól, hogy mire kell kiterjesztenie (a GPL-2 szigorúbb a nyílt forráskód szempontjából, azaz nem tudja használni saját szoftverben).
Teljesítmény: Itt nem tudok segíteni, eddig csak témamodelleket használtam.
Következtetés:
Személy szerint a topicmodels
-t használom, mivel jól dokumentált (lásd a fenti JSS cikket), és bízom a szerzőkben (Grün a flexmixet is megvalósította, és Hornik R alaptag).
+1 a témamodellekhez. @ Momo válasza nagyon átfogó. Csak annyit fűznék hozzá, hogy a topicmodels
a bemenetet dokumentum kifejezésmátrixokként veszi fel, amelyek könnyen elkészíthetők a tm
csomaggal vagy a python használatával. Az lda
csomag ezoterikusabb bemeneti formát használ (a Blei LDA-C alapján), és nem volt szerencsém a beépített függvények használatával a dtm átalakítására lda
csomag formátum (az lda dokumentációja nagyon gyenge, ahogy a Momo megjegyzi).
Van egy kódom, amely a nyers szöveggel kezdődik, előfeldolgozza azt a tm
ban, és átadja a topicmodels
-nak (ideértve az optimális témakörök megtalálását előre és a kimenettel való munka) itt. Hasznos lehet valakinek, aki először jár a topicmodels
-ra.
Molly Roberts, Brandon Stewart és Dustin Tingley által készített R Structural Topic Model (STM) csomag szintén remek választás. A tm csomag tetejére épített általános keretrendszer a témamodellezéshez dokumentumszintű kovariáns információkkal.
http://structuraltopicmodel.com/
Az STM csomag egy sor módszert (rácskeresés) és intézkedéseket (szemantikus koherencia, maradványok és kizárólagosság) tartalmaz a témák számának meghatározására. Ha a témák számát 0-ra állítja, akkor a modell meghatározhatja az optimális témák számát is.
Az stmBrowser csomag nagyszerű adatmegjelenítési kiegészítő a külső változók témákra gyakorolt hatásának vizualizálására. Lásd ezt a példát a 2016. évi elnöki vitákhoz: http://alexperrier.github.io/stm-visualization/index.html.
Mindhárom könyvtárat használtam, mindhárom között, témamodellek, lda, stm; nem mindenki dolgozik n grammal. A topicmodels könyvtár jó a becslésével, és n grammal is működik. De ha valaki uni grammal dolgozik, akkor a szakember előnyben részesítheti az stm-et, mivel ez strukturált kimenetet ad.