当前位置:网站首页 > R语言数据分析 > 正文

LDA主题模型代码(LDA主题模型代码jupyter)



语言:python
平台:anaconda+jupyter notebook
语料库:近三百篇英文文献的摘要

首先,# pandas处理csv数据

 
  

输出:
在这里插入图片描述
文本预处理

 
  

#关键词提取和文本向量化包

 
  
 
  

#导入LDA软件包 狄利克雷分布

 
  

#设置主题数量为20

 
  

#输出每个主题中前20个关键词

 
  

#可视化分析

 
  

可视化结果示意:
在这里插入图片描述

可以调整的参数:
: 主题的个数,即隐含主题数K,需要调参。K的大小取决于我们对主题划分的需求,比如我们只需要类似区分是动物,植物,还是非生物这样的粗粒度需求,那么K值可以取的很小,个位数即可。如果我们的目标是类似区分不同的动物以及不同的植物,不同的非生物这样的细粒度需求,则K值需要取的很大,比如上千上万,此时要求我们的训练文档数量要非常的多。
: feature的个数,即常用词个数
:即文档主题先验Dirichlet分布θd的参数α,一般如果没有主题分布的先验知识,可以使用默认值1/K。
:即主题词先验Dirichlet分布βk的参数η,一般如果没有主题分布的先验知识,可以使用默认值1/K。
: 即LDA的求解算法,有’batch’和’online’两种选择.batch’即变分推断EM算法,而”online”即在线变分推断EM算法,在”batch”的基础上引入了分步训练,将训练样本分批,逐步一批批的用样本更新主题词分布的算法。默认是”online”,选择了‘online’则我们可以在训练时使用partial_fit函数分布训练。不过在scikit-learn 0.20版本中默认算法会改回到”batch”。建议样本量不大只是用来学习的话用”batch”比较好,这样可以少很多参数要调。而样本太多太大的话,”online”则是首选。
:仅仅在算法使用”online”时有意义,取值最好在(0.5, 1.0],以保证”online”算法渐进的收敛。主要控制”online”算法的学习率,默认是0.7。一般不用修改这个参数。
:仅仅在算法使用”online”时有意义,取值要大于1。用来减小前面训练样本批次对最终模型的影响。
:EM算法的最大迭代次数。
:仅仅在算法使用”online”时有意义, 即分步训练时每一批文档样本的数量。在使用partial_fit函数时需要。
: 仅仅在算法使用”online”时有意义, 即每次EM算法迭代时使用的文档样本的数量
方法:
1):利用训练数据训练模型,输入的X为文本词频统计矩阵。
2):利用训练数据训练模型,并返回训练数据的主题分布。
3):获取参数
4):利用小batch数据进行Online方式的模型训练。
5):计算X数据的approximate perplexity。
6):计算approximate log-likelihood。
7):设置参数。
8):利用已有模型得到语料X中每篇文档的主题分布


















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

版权声明


相关文章:

  • hrnet group(hrnet group待遇)2025-12-03 09:36:09
  • swagger2配置不生效(swagger2 配置)2025-12-03 09:36:09
  • 群晖nas root密码(群晖nasroot密码)2025-12-03 09:36:09
  • dress me up是什么意思(dresses up 什么意思)2025-12-03 09:36:09
  • hprj是什么文件(hpl是什么文件)2025-12-03 09:36:09
  • enoent解决办法rabbitmq(rabbitmq channel queue)2025-12-03 09:36:09
  • torn to oblivion翻译(torna a surriento翻译)2025-12-03 09:36:09
  • codeformer(codeformer安卓版下载)2025-12-03 09:36:09
  • 查看docker版本(查看docker版本号命令)2025-12-03 09:36:09
  • shores什么意思(shores是什么意思)2025-12-03 09:36:09
  • 全屏图片