Lda on Bi(multi)舌语语料库

时间:2014-09-25 06:23:31

标签: lda topic-modeling gensim

我正在尝试重现Graber等人的结果。在表明当LDA与多语言语料库一起使用时,主题的最可能术语(例如,前10名)将来自单一语言。他们的论文是here

这是执行IMO的合理的健全性检查,但我遇到了困难。

我使用他们使用的同一语料库Europarl corpus,语料库由保加利亚语和英语组成。我将保加利亚语和英语语料库与

连接起来
cat corpusBg.txt corpusEn.txt >> corpusMixed.txt.  

每行包含一个句子,保加利亚语中的行集合和英语中的第二个集合。当我使用4个主题的LDA模型时,3个在前10个中仅包含英语术语,第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

请注意,我没有删除停用词或稀疏术语,但我认为这无关紧要。应该直观地指出一些主题只有保加利亚语和其他只有英语的条款,不是吗?

1 个答案:

答案 0 :(得分:0)

在论文中,他们使用10个主题模型来讨论这种现象。你只使用了4个。

当您使用少量主题运行LDA时,不同的语义主题会合并到“chimera”中。主题(David Mimno's term,我相信)。只有4个主题的语料库,每个语言大约6000万个单词"这几乎是不可避免的。说实话,我很惊讶10个主题已经足够了,不过我猜LDA会发现难以合并来自不同语言的主题,因为很少有来自不同语言的单词对会出现在句子中。