gensim のパッケージを使用してコーパスに LSI を実装しています。私の目標は、コーパスに表示される最も頻繁に発生する個別のトピックを見つけることです。
コーパスに含まれるトピックの数がわからない場合 (5 から 20 と推定します)、LSI が検索するトピックの数を設定する最善の方法は何ですか? 多数のトピック (20 ~ 30) を探すのと、少数のトピック (~5) を探すのとではどちらが良いですか?
gensim のパッケージを使用してコーパスに LSI を実装しています。私の目標は、コーパスに表示される最も頻繁に発生する個別のトピックを見つけることです。
コーパスに含まれるトピックの数がわからない場合 (5 から 20 と推定します)、LSI が検索するトピックの数を設定する最善の方法は何ですか? 多数のトピック (20 ~ 30) を探すのと、少数のトピック (~5) を探すのとではどちらが良いですか?
それは良い質問ですが、残念ながら良い答えはありません。
次元数を増やせば必ず検索精度が向上するというわけではありません。実際、すべての次元 (= トレーニング マトリックスのフル ランク) を使用すると、LSI は入力したものとまったく同じドキュメントを提供するため、LSI は無意味になります。
数学的な側面に興味がある場合は、次の問題をご覧ください: https://github.com/piskvorky/gensim/issues/28 それ以外の場合は、寸法を数百~千に設定するだけで、これが受け入れられます標準。または、いくつかの異なる選択肢を試して、精度を測定し、問題に最適な次元を選択してください。
ベスト、ラディム
これは、私が混乱したときに時々行うことです。すでに 5 ~ 20 のトピックに絞り込んでいるので、これらの値のいくつかを白黒で反復して、どの値が最適かを確認できます。
##Declare values for N_TOPICS
for i in lda.show_topics(topics=-N_TOPICS, topn=20, log=False, formatted=True):
print "TOPIC {0}: {1}\n".format(count, i)