简介
确定主题数量,通过确定a,b的参数值来控制两个齿轮的状态来随机生成一篇新文档,通过对比新旧文档来判断模型的好坏,在不同参数模型中,找到最优模型(也就是最佳a,b值)
特征
把若干文档自动编码分类为一定数量的主题,极大减少人为干预和负担
原理
第一步,阿尔法随机生成文档对应主题的多项式分布西塔
第二步,西塔随机生成一个主题西格玛,
第三步,贝塔随机生成主题对应词语的多项式分布fai
第四步,综合主题西格玛和主题对应词语分布情况fai,生成词语,如此循环生成一个文档,包含M个词语,最终生成K的主题下的N前文档。
代码操作
预处理:
LDA分析
导入sklearn
定义函数(不知道干什么的)
将数据转化格式
提取词语数量可根据需要修改
定义主题
doc-topic-prior相当于a一般定为
topic-word-prior相当于贝塔,一般定为0.01
也可以省略,让模型自己选值默认为1/n
运行结果:打印每个主题下前15个词语(注意主题名字需要自定义)
确定最优主题数量
方法一可视化:
导入pyLDAvis
结果显示:每个圈代表一个主题,离的越远代表主题的相似性越低,代表化分的好。
方法二主题困惑度(更严谨)
表示从第几个主题到几个主题困惑度的变化
最低的主题困惑度最优
结果显示: