私は gensim python ライブラリを使用して、小さなコーパス (毎回約 1500 のプレス記事) で作業しています。同じニュースに関連する記事のクラスターを作成することに興味があるとしましょう。
そのため、トークン化した記事のコーパスごとに、コロケーションを検出し、ステミングを行ってから、TFIDF モデルに渡した小さな辞書 (約 20,000 トークン) をフィードしました。
最後に、TFIDF コーパスを使用してコーパスの LSI モデルを構築し、gensim のドキュメント類似機能を利用して、非常に良い結果を得ることができました。
しかし、私は興味があり、LSI のコヒーレンス チェックを次のように行いました。
lsi_topics = [[word for word, prob in topic] for topicid, topic in
lsi.show_topics(formatted=False)]
lsi_coherence = CoherenceModel(topics=lsi_topics[:10], texts=corpus, dictionary=dictionary, window_size=10).get_coherence()
logger.info("lsi coherence: %.3f" % lsi_coherence)
そして、私は常に 0.45 前後の値を取得しますが、これはかなり弱いように見えます。
それで、このコヒーレンス値をどのように解釈するのか疑問に思っていましたか? また、インデックス内のドキュメントとインデックス自体の類似性のみが必要な場合 (つまり、クエリはコーパスからの完全なドキュメントである場合)、この値は意味がありますか?
編集: Phrases クラスに入力する前に各ドキュメントを実際の文に分割する、バイグラム、トリグラムを生成する、またはアクセントを削除するなど、テキストの前処理のためにさまざまなことを試しましたが、場合によっては約 0.55 のコヒーレンス値を取得できたので、少なくとも生データを処理する最も効率的な方法を見つけるのに役立つと思います...