Graberらの結果を再現しようとしています。LDA が多言語コーパスで使用される場合、トピックの最も可能性の高い用語 (トップ 10 など) は単一の言語に由来することを示しています。彼らの論文はこちらです。
これは、IMO を実行するための妥当な健全性チェックですが、問題が発生しています。
彼らが使用したのと同じコーパス、Europarl コーパスを使用しています。コーパスはブルガリア語と英語で構成されています。ブルガリア語と英語のコーパスを連結しました
cat corpusBg.txt corpusEn.txt >> corpusMixed.txt.
これには各行に文が含まれており、ブルガリア語の行のコレクションと英語の 2 番目のコレクションがあります。LDA モデルを 4 つのトピックに当てはめると、上位 10 のうち 3 つには英語の用語のみが含まれ、4 つ目は英語とブルガリア語が混在しています。LDA のデフォルト設定を使用しています。
texts = [[word for word in doc.lower().split()] for doc in open('corpusMixed.txt', 'r')]
dictionary = corpora.Dictionary(texts)
corpus = [dictionary.doc2bow(doc) for doc in texts]
lda = models.ldamodel.LdaModel(corpus, id2word = dictionary, num_topics = 4)
topics = lda.print_topics(lda.num_topics)
for t in topics:
print t
ストップワードやまばらな用語を削除していないことに注意してください。ただし、これは問題ではないと思います。直感的に、ブルガリア語のみの用語を含むトピックと、英語のみの用語を含むトピックがあるはずですよね?