近期做了一个关于主题分析的重新学习,感觉只看不实操真的就和白学了一样。也趁着这股劲把关于LDA主题模型的东西总结一下,这些是目前我能够考虑到的所有事情,以后看到再做补充(新手小白请指正我的错误,十分感谢!!)。总结学习使我进步!!
LDA也称为隐狄利克雷分布,LDA的目的就是要识别主题,即把文档—词汇矩阵变成文档—主题矩阵(分布)和主题—词汇矩阵(分布)。
地址: https://www.cnblogs.com/pinard/p/6831308.html
对数据进行主题分类之前要先确定可以划分的最佳主题个数,其他的参数简单的做可以直接选择默认值。用困惑度来做的话,是困惑度的值最小或者是在拐点处的值最好;用主题一致性的话就是越靠近越好,还是要看应用效果好不好最后再做选择,有时候在一个值附近选取效果不会相差太多。(该部分的内容都是基于gensim包的)
代码地址: https://blog.csdn.net/xxidaojia/article/details/103219582
在计算困惑度这里可以先把范围拉大一点,步长设置的稍微长一点,有个大概的范围之后,再进行范围的缩小。(我这个垃圾居然把主题范围越来越大的试,能出来个鬼)速度稍微慢了些。
主题一致性(topic coherence)
代码地址: https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/topic_coherence_tutorial.ipynb
下面是一个很好的说明例子:
地址: https://zhuanlan.zhihu.com/p/75484791
大概的构建方法第三部分的第二个链接都写了,这里就列一下参数吧。
其实我是想找那个函数里面的参数,我觉得我找不到了,先放下吧。
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的内含方法:https://blog.csdn.net/weixin_44514388/article/details/90798435
我的理解就是通过上述的一系列主题的分类,我们就知道了每一个文档的的主题,那么当文档具有时间属性的时候,我们就可以将时间片上的主题进行汇总,从而画出折线图或者是其他类型的图进行可视化的展示。本人觉得数量少的话,excel做折线图好像挺好的(求指点!!!)下面是一个河流图的示例,仅供参考。
地址:河流图
也可以参考三里面的例子,结果是在一个网页中进行展示的。
地址:https://blog.csdn.net/YWP_2016/article/details/99935842
参考:
https://www.cnblogs.com/mantch/p/11259347.html https://blog.csdn.net/asialee_bird/article/details/96454544#%E5%9B%9B%E3%80%81LDA%E4%B8%BB%E9%A2%98%E6%A8%A1%E5%9E%8B%E5%85%B3%E9%94%AE%E8%AF%8D%E6%8F%90%E5%8F%96%E7%AE%97%E6%B3%95%E5%8F%8A%E5%AE%9E%E7%8E%B0
https://www.freesion.com/article/8583675446/
https://blog.csdn.net/qq_33624866/article/details/106338564