【问题标题】:Lda on Bi(multi)lingual Corpus双(多)语语料库上的 Lda
【发布时间】:2014-09-25 06:23:31
【问题描述】:

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

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

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

连接保加利亚语和英语语料库
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

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

【问题讨论】:

    标签: lda topic-modeling gensim


    【解决方案1】:

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

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

    【讨论】:

    • 这篇论文很好。我忽略了图形标题中的那个细节。我改装了 10 个主题,现在我所有的主题都只包含英文单词。无论如何,我观看了视频,并注意到了“奇美拉主题”现象。我的直觉告诉我,设置主题的数量类似于设置确定主题的分辨率级别。这是不正确的吗?
    • 是的,这或多或少是正确的。然而我们也可以这样想:如果有太多真实的、语义适当的主题,一些最终会捆绑在一起。还要记住,这只是一个近似值——真实文本不遵循模型中的假设,所以可能会发生奇怪的事情!主题可以代表文体或习惯性语言使用(即:非语义),重复文本 sn-ps 之类的内容可能会产生奇怪的效果。
    • 只出现英文单词...你确定你有两种语言吗? (快速浏览一下词汇应该会告诉你)。如果英语语料库比保加利亚语大得多,那么它的主题可能会主导保加利亚语。也许你可以减少它或添加更多主题。你做了什么预处理?删除停用词?非常高/低频的词? tf/idf 分数差的单词? (Blei有这样的方法,第11页或搜索“选择词汇”)
    猜你喜欢
    • 2014-06-23
    • 1970-01-01
    • 2015-01-24
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    相关资源
    最近更新 更多