<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg>
讯享网
语言: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中每篇文档的主题分布
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/183818.html