我试图重现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