当前位置:网站首页 > 编程语言 > 正文

lda主题模型原理介绍(lda主题模型困惑度)



大家好,之前大家对于这篇文章有很多的疑问,包括数据啦,代码啦,所以今天我再次修改一下这篇文章,并且集中解释一下大家的疑惑。

在LDA 的第一步,都是分词,在这里我定义一个方法,

一个对于句子进行分词,并加载停用词与自定义词典。

关于停用词大家可以自己在网上找一份,

然后使用pandas模块读取excel文件,内容格式如下:

LDA困惑度介绍_LDA困惑度介绍

读取后,我们将【“内容”】列转化为列表,并利用jieba进行分词,并且形成新的分词后列表fenci_out, 再将其存入txt文件中,将其作为进行LDA分析的基础数据。代码如下:

这里说明一下(停用词我用的微软的,然后这里的输出结果是txt格式的,大家可以根据自己需求进行更改)

第二步:

在这,推荐大家可以通过困惑度进行确定主题系数,具体解释大家可以看这篇文章

lda主题模型困惑度_主题模型(三):LDA主题个数选择_weixin_的博客-CSDN博客

如果大家时间较紧,也可以直接在这里复制,代码如下:

在我们确定好主题数量以后,再用lda产生主题,准备进行主题相似度计算。代码如下

第三步:

大家可以先做强度分析: (这里我假设每个文档只有一个主题,大家可以根据自己需求进行)

在这里我说明一下,我们在做主题演化时需要对时间窗口进行划分,然后将不同时间时间窗口的主题进行相似度比较。在这里我划分为4个。

关于主题热度计算,我用的热度图进行计算,大家可以参考

LDA困惑度介绍_pandas_02

大家想要详细了解可以参考,其代码如下:

热度图

第四步:主题相似度,

这里是用的是主题词的权重,在这里我说明一下

列子:

这里有两个通过产生的主题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()

谢谢大家的关注,最近因为学业可能回复较慢,但是一定会回复。

到此这篇lda主题模型原理介绍(lda主题模型困惑度)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 文档打开目录(文档打开目录默认收起怎么设置)2025-11-20 12:00:07
  • samba共享文件夹权限(samba共享文件夹设置)2025-11-20 12:00:07
  • 虚拟机安装won11(虚拟机安装linux系统)2025-11-20 12:00:07
  • 女神异闻录5 战斗系统(女神异闻录5 战斗系统在哪)2025-11-20 12:00:07
  • git 迁移(git迁移代码到另一个仓库)2025-11-20 12:00:07
  • 反编译exe工具手机版(手机反编译exe文件)2025-11-20 12:00:07
  • udp报文的结构图(udp报文是什么样的)2025-11-20 12:00:07
  • impdp导入语句(impdp导入命令参数)2025-11-20 12:00:07
  • pem文件是什么文件(pem文件和key文件)2025-11-20 12:00:07
  • 安卓运行xp虚拟机(安卓运行xp虚拟机怎么用)2025-11-20 12:00:07
  • 全屏图片