问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

小白也能懂文本挖掘之LDA主题模型及代码详解

创作时间:
作者:
@小白创作中心

小白也能懂文本挖掘之LDA主题模型及代码详解

引用
CSDN
1.
https://m.blog.csdn.net/Hou556/article/details/144915890

LDA(Latent Dirichlet Allocation)主题模型是一种常用的文本挖掘技术,能够帮助我们从大量文档中自动发现潜在的主题结构。本文将从零开始,通过简单的代码示例,带你一步步掌握LDA主题模型的原理和应用。

一、LDA模型的基本概念

LDA模型认为一篇文档是由多个主题混合而成的,而每个主题又是由若干词语混合而成的。这里,“混合”的意思是每个文档或每个主题中的词语都按照一定的概率分布出现。换句话说,LDA模型将文档的构造过程看作是一个概率过程:首先以一定的概率选择某个主题,然后再在这个主题下以一定的概率选择某个词语,不断重复这个过程,就生成了整篇文章。需要注意的是,LDA模型中假设词与词之间是没有顺序的,即所有词无序地堆放在一个大袋子中,这种方式可以使算法相对简化。

二、代码拆解

主要讲代码分成6个部分 1.数据处理 2.LDA模型的建立 3. 输出每个主题的关键词 4.输出每个句子所属主题并保存到excel中 5.各个主题词云图绘制 6.LDA可视化展示

1.数据处理

读取数据,并进行去停用词和分词操作

2.LDA模型的建立

机器学习模型只能分析数字数据,所以要对文本数据进行转化,CountVectorizer会将文本中的单词转换为词频特征,即统计每个单词在文档中出现的次数。

参数解释:

  • max_df=0.95:这个参数用于过滤掉在太多文档中出现的单词。0.95意味着如果一个单词在超过85%的文档中出现,那么它将被忽略。这有助于去除那些太常见、对主题区分帮助不大的单词(如“的”、“是”等)。
  • min_df=2:这个参数用于过滤掉在太少文档中出现的单词。2意味着如果一个单词在少于2个文档中出现,那么它将被忽略。这有助于去除那些太罕见、可能是拼写错误或特定上下文的单词。
  • max_features=1000:这个参数用于限制词频矩阵中的特征数量(即单词的数量)。在这里,1000意味着只保留词频最高的1000个单词作为特征,其余单词将被忽略。这有助于减少计算量,并可能提高模型的性能(尽管有时可能会丢失一些有用的信息)。

3.输出每个主题的关键词

代码逻辑也很简单,用了一个循环进行遍历,然后用LDA自带函数进行输出

4.输出每个句子所属主题并保存到excel中

使用循环遍历,输出每个句子所属主题,并保存到excel中

5.各个主题词云图绘制

6.LDA可视化展示

三、完整代码展示

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号