トピックモデリング/ LDAを実行するためのRパッケージ:単に `topicmodels`と` lda` [終了]


29

潜在ディリクレ割り当てを実行できるのは2つのRパッケージのみであるように思われます。

1つはlda、Jonathan Changによって作成されました。もう1つはtopicmodelsBettinaGrünとKurt Hornikによって作成されました。

パフォーマンス、実装の詳細、および拡張性に関して、これら2つのパッケージの違いは何ですか?

回答:


26

実装:topicmodelsパッケージは、Blei et al。によるトピックモデル用のGSL CおよびC ++コードへのインターフェイスを提供します。およびファン等。以前のバージョンでは変分EMを使用し、後者ではギブスサンプリングを使用します。http://www.jstatsoft.org/v40/i13/paperを参照してください。このパッケージは、tmパッケージのユーティリティとうまく機能します。

ldaパッケージは、GSLライブラリのモデルと同様の多くのモデルに対して、折りたたまれたGibbs Samplerを使用します。ただし、Blei et al。ではなく、パッケージ作成者自身によって実装されています。したがって、この実装は、通常、VEMアルゴリズムが通常適用されるこれらのモデルバリアントを紹介する元の論文で提案された推定手法とは異なります。一方、パッケージは他のパッケージよりも多くの機能を提供します。このパッケージは、テキストマイニング機能も提供します。

拡張性:拡張性に関して、topicmodelコードはその性質上、CおよびC ++で記述された他のトピックモデルコードとインターフェイスするように拡張できます。ldaパッケージは、作成者が提供する特定の実装に依存しているようですが、Gibbsサンプラーでは独自のトピックモデルを指定できる場合があります。拡張性の問題ではなく、前者はGPL-2および後者のLGPLの下でライセンスされるため、拡張する必要があるものに依存する可能性があります(GPL-2はオープンソースの側面に関してより厳密です。つまり、使用できません)独自のソフトウェアで)。

パフォーマンス:私はここであなたを助けることができません、私はこれまでトピックモデルのみを使用しました。

結論:
個人的にはtopicmodels、よく文書化されているので(上記のJSS論文を参照)、著者を信頼しています(Grünもflexmixを実装し、HornikはRコアメンバーです)。


7
まず、topicmodelsは優れたパッケージであると確信しており、非常によく文書化されていることに同意します。LDAパッケージの作成者の「信頼」に関して、Jonathan Changは私の博士課程の学生であり、私は彼のコードを完全に信頼しています。彼は優れたソフトウェアエンジニアであり、学者でもあります。彼のパッケージは簡単で、かなり大きなコレクションにうまく拡張でき、Rで結果を調べることができます(ドキュメントのスパースマトリックス表現が好きで、慣れています)。注目すべきことに、LDAはリレーショナルを含む他のモデルを実装していますトピックモデル、教師付きLDA(GLMを使用)、および混合メンバーシップの確率的ブロックモデル。

計量してくれてありがとう。私はldaパッケージが素晴らしいと確信している。私はそれldaが何らかの形で劣ったコードを持っていることを意味するつもりはなかった。私は自分の印象を述べました(ドキュメントは少しずさんに見えました)。それは2年以上前だったので、私は少し答えを編集しました(CRANページのタイプミスはまだそこにあります、それらを修正するのは良いと思いますが、そのメールは失われたようです)。
モモ14

両方のパッケージで多くの経験があり、一般的なトピックについて最もよく知っていると思います。両方のパッケージの長所と短所をリストした回答を提供してください。私はを使用しなかったldaので、経験的な評価をすることができませんでした。それを提供することは、OPと他のすべての人を確実に助け、可能な不正(意図しない)を修正するでしょう。ありがとう!
モモ14

1
私も両方を試してみましたが、ldaパッケージにはより多くのオプションが含まれていることがわかりました。ただし、データをモデルに適合させるためにデータをフォーマットする方法を理解することは困難です。topicmodelsパッケージには、とうまく動作tmしながら、パッケージldaパッケージが作成する方法は明らかではないリストを要求します。
Omri374

12

topicmodelsの場合は +1 。@Momoの答えは非常に包括的なものです。パッケージまたはpythonを使用topicmodelsして簡単に作成されるドキュメント用語マトリックスとして入力を受け取るだけで追加しますtmldaパッケージは、(BLEIのLDA-Cに基づいて)入力の難解なフォームを使用して、私はに変換するDTMへの組み込み関数を使用して運がなかったしましたlda(LDA文書はモモのメモとして、非常に悪い)パッケージ形式。

私はそれがでプリプロセス、生のテキストで始まるいくつかのコードを持っていtmて、それとプットtopicmodels(事前に話題の最適な数を見つけ、出力での作業を含む)、ここにtopicmodels初めて訪れる人に役立つかもしれません。


3
tmをまだ使用しておらず、ldaを使用したい場合JFreqは、プレーンテキストをLDA-Cの優先フォーマットに入れます。
共役

JFreqについて知っておくといいのですが、私はそれを見たことがありません。ヒントをありがとう!
ベン

1
同じことをread_dtm_Blei_et_alするtmパッケージ内の関数を見つけました。
ベン

3

Molly Roberts、Brandon Stewart、Dustin TingleyによるR構造トピックモデル(STM)パッケージも最適です。tmパッケージの上に構築され、ドキュメントレベルの共変量情報を使用したトピックモデリングの一般的なフレームワークです。

http://structuraltopicmodel.com/

STMパッケージには、トピックの数を決定するための一連の方法(グリッド検索)と測定(意味的一貫性、残差、排他性)が含まれています。トピックの数を0に設定すると、モデルがトピックの最適な数を決定することもできます。

stmBrowserパッケージは、トピックに対する外部変数の影響を視覚化する優れたデータ視覚化補完です。:2016年の大統領討論に関連するこの例を参照してくださいhttp://alexperrier.github.io/stm-visualization/index.htmlを


0

topicmodels、lda、stmの3つすべてのうち、3つすべてのライブラリを使用しました。誰もがnグラムで動作するわけではありません。topicmodelsライブラリーはその見積もりに優れており、nグラムでも機能します。しかし、誰もがユニグラムで作業している場合、実践者は構造化された出力を提供するため、stmを好む場合があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.