大家好,之前大家对于这篇文章有很多的疑问,包括数据啦,代码啦,所以今天我再次修改一下这篇文章,并且集中解释一下大家的疑惑。
在LDA 的第一步,都是分词,在这里我定义一个方法,
一个对于句子进行分词,并加载停用词与自定义词典。
关于停用词大家可以自己在网上找一份,
然后使用pandas模块读取excel文件,内容格式如下:
读取后,我们将【“内容”】列转化为列表,并利用jieba进行分词,并且形成新的分词后列表fenci_out, 再将其存入txt文件中,将其作为进行LDA分析的基础数据。代码如下:
这里说明一下(停用词我用的微软的,然后这里的输出结果是txt格式的,大家可以根据自己需求进行更改)
第二步:
在这,推荐大家可以通过困惑度进行确定主题系数,具体解释大家可以看这篇文章
lda主题模型困惑度_主题模型(三):LDA主题个数选择_weixin_的博客-CSDN博客
如果大家时间较紧,也可以直接在这里复制,代码如下:
在我们确定好主题数量以后,再用lda产生主题,准备进行主题相似度计算。代码如下

第三步:
大家可以先做强度分析: (这里我假设每个文档只有一个主题,大家可以根据自己需求进行)
在这里我说明一下,我们在做主题演化时需要对时间窗口进行划分,然后将不同时间时间窗口的主题进行相似度比较。在这里我划分为4个。
关于主题热度计算,我用的热度图进行计算,大家可以参考

大家想要详细了解可以参考,其代码如下:
热度图
第四步:主题相似度,
这里是用的是主题词的权重,在这里我说明一下
列子:
这里有两个通过产生的主题t1与t2,如下:
t0 :(’a’,0.25),(‘b’,0.23) (‘c’,0.23)

t1 :(’b’,0.25),(‘g’,0.16) ,(‘a’,0.11)
在我们进行相似度计算时需要将t0 与t1 中主题词一样的,进行位置互换,如下:
t0 : (’a’,0.25),(‘b’,0.23), (‘c’,0.23)
t1 : (‘a’,0.11),(‘b’,0.25),(‘g’,0.16)
这是通过主题词的权重即概率产生一个主题向量,即:
t0 = (0.25,0.23,0.23)
t1= (0.11,0.25,0.16)
这是我在用余弦值进行相似度计算即可,代码如下:
第五步:
大家根据相似度结果画桑吉图,我用的是pyecharts
这里大家可以看这篇文章,或者去pyecharts官网进行学习:
Document pyecharts 官网
Pyecharts一文速学-绘制桑基图详解+Python代码fanstuck的博客-CSDN博客.render_notebook()
谢谢大家的关注,最近因为学业可能回复较慢,但是一定会回复。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/175999.html