文本处理,如何分配1个主题 - > 1个文件使用LDA?

时间:2015-04-12 13:06:29

标签: machine-learning nlp topic-modeling text-classification gensim

我有2个文件,

music.txt &的 science.txt

我想从上面提取2个主题(音乐科学

从这两个文件创建LDA模型后(设置num_topics = 2

lda = gensim.models.ldamodel.LdaModel(corpus=my_corpus, id2word=corpus_dictionary, num_topics=2)

print(lda.print_topic(0))
print(lda.print_topic(1))

这是我的输出

0.011*scientific + 0.010*musical + 0.007*music, + 0.006*music. + 0.006*study + 0.005*not + 0.005*research + 0.005*main

0.030*music + 0.013*science + 0.010*scientific + 0.009*musical + 0.006*not + 0.005*music. + 0.005*study + 0.005*music, + 0.005*their + 0.005*research

正如您所看到的, 科学和音乐都存在于两个主题中

我想

  1. 使用music.txt并创建1个主题音乐 LDA模型
  2. 使用science.txt并创建1个主题科学 LDA模型
  3. 结合上述2个LDA模型,给出1个具有上述2个主题的LDA模型
  4. 是否可以执行上述第3次步骤?我想在我的LDA模型中对主题进行单独的隔离。如果没有,有其他选择吗?

1 个答案:

答案 0 :(得分:1)

您可以做两件事:

1)如果你的文件真的包含专门关于音乐或科学的文本,那么LDA主题给出如此混合的结果是很奇怪的。试图改进模型可能是值得的。您可以考虑删除停用词,忽略低频词等。

2)然而,您真正寻找的方法是所谓的标记为LDA 。使用Labeled LDA,您可以在已经使用目标主题标记的文档上训练模型,而不是让模型本身推断出最合适的主题。据我所知,标记的LDA尚未在gensim中实现,但您可以在Stanford Topic Modeling Toolkit以及其他地方找到它。