2

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

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

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

cat corpusBg.txt corpusEn.txt >> corpusMixed.txt.  

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

请注意,我没有删除停用词或稀疏术语,但我认为这无关紧要。直觉上应该有一些主题只有保加利亚语,而另一些主题只有英语,不是吗?

4

1 回答 1

0

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

当您使用少量主题运行 LDA 时,不同的语义主题会合并为“嵌合体”主题(我相信David Mimno 的术语)。一个语料库只有 4 个主题,“每种语言大约 6000 万个单词”,这几乎是不可避免的。老实说,我很惊讶 10 个主题就足够了,尽管我猜 LDA 会发现很难合并来自不同语言的主题,因为来自不同语言的单词对很少会出现在句子中。

于 2014-09-29T11:36:21.137 回答