0

問題文: いくつかのドキュメント (20k ドキュメント) があります。トピック モデリングを適用して類似のドキュメントを見つけ、それらの類似のドキュメントを分析して、それらが互いにどのように異なっているかを見つける必要があります。Q: これを達成するためのトピック モデリング パッケージを提案してくれる人はいますか? Mallet と Gensim Python を調べています。どちらが私の要件に最も適しているかわかりません。

どんな助けでも大歓迎です。

4

2 に答える 2

2

Gensim Python はわかりませんが、MALLET が解決策になる可能性があります。Java の専門知識があれば、それほど難しくはありません。

データを使用して を作成し、モデルcc.mallet.types.InstanceListを適合させます。cc.mallet.topics.SimpleLDA次に、それぞれcc.mallet.types.Instance(インスタンスはドキュメントです) について、相互の発散メトリックを計算しますInstance。このためには、 each 内の各トピックの確率を計算する必要がありますがInstance、これは少し注意が必要です。には、とそのを保持SimpleLDAするArrayList<TopicAssignment> dataオブジェクトがあります。Aには、各単語のトピック割り当てを保持すると呼ばれるが含まれています。各トピックのカウントを取得するには、これをループする必要があります。次に、ドキュメント j のトピック i の確率は単純に (ドキュメント j のトピック i に割り当てられた単語数) / (ドキュメント j の合計単語数) です。これらの確率を保存し、それらを使用して、選択した発散メトリック (たとえば、KL 発散) を計算します。Instancescc.mallet.topics.TopicAssignmentTopicAssignmentcc.mallet.types.LabelSequencetopicSequence

于 2014-05-17T00:54:49.443 に答える
0

Mallet は、探索が非常に簡単なツールです。Mallet の JAVA 実装を使用する代わりに、http: //mallet.cs.umass.edu/download.phpで入手できるバイナリ ファイルを直接実行できます。ドキュメント内のトピック配布などのファイルを生成するためのコードも必要ありません。train-topics オプションを使用して mallet でトピックをトレーニングしているときに、mallet がこのディストリビューションを書き込むファイルを指定できます。

ダウンロード後、mallet --help と入力するだけで、mallet を使用して実行できる多くのことのリストを取得できます。それらは自明であり、非常に理解しやすいです。

于 2014-06-17T15:19:06.003 に答える