我試圖重現Graber等人的結果。在表明當LDA與多語言語料庫一起使用時,最可能的話題(比如前10名)將來自單一語言。他們的論文是here。Lda on Bi(多語言語料庫)
這是一個合理的理智檢查執行IMO,但我有困難。
我使用的是他們使用的同一個語料庫,Europarl corpus,語料庫由保加利亞語和英語組成。我串接保加利亞和英語語料庫與
cat corpusBg.txt corpusEn.txt >> corpusMixed.txt.
這包含在每一行句子,用線在保加利亞的收集和英語第二集合。當我選擇一個包含4個主題的LDA模型時,其中3個僅包含前10名中的英語詞彙,而第四個則包含英語和保加利亞語。我使用的是默認設置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
請注意,我沒有刪除禁用詞或稀疏的條件,但我認爲這不應該的問題。應該直觀地在保加利亞語和其他只有英語的術語中使用術語,不是嗎?
這是關於論文的一個好處。在圖標題中我忽略了這些細節。我改寫了10個主題,現在我的所有主題都只包含英文單詞。 無論如何,我看了視頻,我注意到了「奇美拉主題」現象。我的直覺告訴我,設置主題的數量類似於設置決定主題的決議級別。這是不正確的? – sinwav 2014-10-07 05:44:46
是的,這或多或少是正確的。但是我們也可以這樣想:如果有太多真實的,適當解析的語義話題,有些話會最終捆綁在一起。請記住,這只是一個近似值 - 真正的文本不會遵循模型中的假設,所以會發生奇怪的事情!主題可以表示文體或習慣性語言使用(即:不是語義),而重複文本片段等內容可能會產生奇怪的效果。 – drevicko 2014-10-08 22:52:34
只有英文單詞出現...你確定你有兩種語言嗎? (快速瀏覽詞彙應該告訴你)。如果英語語料庫比保加利亞語大得多,那麼這些話題可能會主導保加利亞語的話題。也許你可以把話題剪掉或者添加更多話題。你做了什麼預處理?刪除了停用詞?非常高/低頻詞?有不好的tf/idf分數的單詞? ([Blei](http://www.cs.princeton.edu/~blei/papers/BleiLafferty2009.pdf)有這樣的方法,第11頁或搜索'選擇詞彙') – drevicko 2014-10-08 23:02:02