Advertisement

LDA主题模型

阅读量:

近期做了一个关于主题分析的重新学习,感觉只看不实操真的就和白学了一样。也趁着这股劲把关于LDA主题模型的东西总结一下,这些是目前我能够考虑到的所有事情,以后看到再做补充(新手小白请指正我的错误,十分感谢!!)。总结学习使我进步!!

一、整体脉络

二、原理解析

LDA也称为隐狄利克雷分布,LDA的目的就是要识别主题,即把文档—词汇矩阵变成文档—主题矩阵(分布)和主题—词汇矩阵(分布)。

地址https://www.cnblogs.com/pinard/p/6831308.html

三、确定最佳主题个数

对数据进行主题分类之前要先确定可以划分的最佳主题个数,其他的参数简单的做可以直接选择默认值。用困惑度来做的话,是困惑度的值最小或者是在拐点处的值最好;用主题一致性的话就是越靠近越好,还是要看应用效果好不好最后再做选择,有时候在一个值附近选取效果不会相差太多。(该部分的内容都是基于gensim包的)

代码地址:<>

在计算困惑度这里可以先把范围拉大一点,步长设置的稍微长一点,有个大概的范围之后,再进行范围的缩小。(我这个垃圾居然把主题范围越来越大的试,能出来个鬼)速度稍微慢了些。

主题一致性(topic coherence)

代码地址:https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/topic_coherence_tutorial.ipynb

下面是一个很好的说明例子:

地址: https://zhuanlan.zhihu.com/p/75484791

四、Gensim构建LDA主题模型

大概的构建方法第三部分的第二个链接都写了,这里就列一下参数吧。

其实我是想找那个函数里面的参数,我觉得我找不到了,先放下吧。

复制代码
复制代码
     lda_model = models.ldamodel.LdaModel(corpus=corpus, num_topics=2, id2word=dictionary, passes=10)

    
     # num_topics -- 必须,要生成的主题个数。
    
     # id2word    -- 必须,LdaModel类要求我们之前的dictionary把id都映射成为字符串。
    
     # passes     -- 可选,模型遍历语料库的次数。遍历的次数越多,模型越精确。但是对于非常大的语料  库,遍历太多次会花费很长的时间。
    
     # iterations=iterations  迭代次数
    
     #chunksize=chunksize,
    
     #alpha=‘auto’,
    
     #eta=‘auto’,
    
     #num_topics=num_topics
    
     #passes=passes,
    
     #eval_every=eval_every

α、β参数 : https://www.zhihu.com/question/21692336/answer/19387415

LDA model的内含方法:<>

五、主题演化

我的理解就是通过上述的一系列主题的分类,我们就知道了每一个文档的的主题,那么当文档具有时间属性的时候,我们就可以将时间片上的主题进行汇总,从而画出折线图或者是其他类型的图进行可视化的展示。本人觉得数量少的话,excel做折线图好像挺好的(求指点!!!)下面是一个河流图的示例,仅供参考。

地址:河流图

六、动态主题模型

也可以参考三里面的例子,结果是在一个网页中进行展示的。

地址:<>

参考:

https://www.cnblogs.com/mantch/p/11259347.html <>

https://www.freesion.com/article/8583675446/

<>

全部评论 (0)

还没有任何评论哟~