【问题标题】:How to find which document is belong to which cluster?如何找到哪个文档属于哪个集群?
【发布时间】:2019-10-06 09:30:27
【问题描述】:

我是自然语言处理的新手,我发现 this 有趣的教程描述了如何进行主题建模。

本教程可data

源码:here

上面的代码可以使用LDA提供主题建模并生成k个主题。我的问题是如何找到哪个文档属于哪个主题(集群)?如图here所示的例子。我想知道类似:

publish_date:20030219 with text (aba ...) 属于主题 1 集群 或..

我已经阅读了以下帖子: [1][2] 但我仍然无法得到答案。

我也尝试过 Matlab 文本分析工具箱,但我还想不通。

如果您能提供任何帮助,那就太好了。

【问题讨论】:

    标签: python gensim lda topic-modeling natural-language-processing


    【解决方案1】:

    您可以像这样传递您的文档:

    a = lda_model[bow_corpus[:]]
    

    创建您的主题数组:

    topic_0=[]
    topic_1=[]
    topic_2=[]
    
    for i in a:
        topic_0.append(i[0][1])
        topic_1.append(i[1][1])
        topic_2.append(i[2][1])
    

    然后把它放在一个csv中并找到最大值

    d = {'topic_0': topic_0,
         'topic_1': topic_1,
         'topic_2': topic_2}
    
    df = pd.DataFrame(data=d)
    df.to_csv("YourCSV.csv", index=True, mode = 'a')
    

    您还可以查看单行的分数:

    lda_model[bow_corpus[123]]
    

    我希望这会有所帮助:)

    【讨论】:

    • 感谢您的评论和代码。它帮助我更多地了解 lda。我想知道是否有任何方法可以只保存每个文档主题的最高概率的输出。比如:文档 1 属于主题 2,概率最高,即 0.97。谢谢
    • 您可以编写如下公式: if max(topic_0, topic_1, topic_2) = topic_1 then 'topic_1' elseif max(topic_0, topic_1, topic_2) = topic_2 then 'topic_2' else 0 endif跨度>
    猜你喜欢
    • 2018-10-13
    • 1970-01-01
    • 2015-07-21
    • 2017-02-14
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    相关资源
    最近更新 更多