文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类

目录

一、任务描述

1.项目背景

2.项目内容

3.项目意义

二、数据来源

三、模型实现

1.TFIDF实现关键词提取

​2.TextRank 实现关键词提取

 3.NMF实现关键词提取

4.NMF文档聚类实现

5.LDA实现关键词提取

6.LDA文档聚类实现

 四、结果分析及可视化展示

1.时间对比

2.结果对比

 3.聚类结果可视化展示 

a)LDA

b)NMF

五、总结

1.基于统计的方法

2.基于主题的方法

a)NMF

b)LDA

c)基于网络图的方法


一、任务描述

1.项目背景

        自媒体时代,大数据、云计算让信息正在以一个爆炸式的增长进入人们的视线。用户在信息检索时多用文本标题进行检索,由于信息过载、垃圾信息过多导致无法快速找到精准信息等问题。面对繁杂的信息,可利用关键词提取技术快速且精准地提炼文本信息。

2.项目内容

        此次项目一是基于多种模型下提取文本关键词,在关键词提取这一技术领域中,主流为两大类方法,1.有监督方法及语料库技术,2.半监督方法和无监督方法,不需要训练语料,不需要人工参与,利用抽取系统完成关键词抽取。本次项目重点研究第二种方法,半监督与无监督方法研究。采用基于统计的tfidf方法、基于主题的nmf模型方法、LDA模型方法、基于网络图的textRank方法

        二是基于主题模型的文档聚类,选取nmf模型方法、LDA模型方法。

3.项目意义

        对于关键词,本质是对语段关键、主要、核心信息的集中,被提取的关键词必须具备3个条件:可读性、相关性及涵盖性。而提取关键词的本质是压缩的压缩,精炼的精炼,关键的关键,淘汰掉次要的,支撑的解说,本质上是对语段的精炼压缩概括以达到较好的表明语段的主题,随着机器学习的深入研究,落点于关键词提取,就有监督、半监督、无监督算法作用于文本关键词提取

二、数据来源

        数据来源于中国知网铁路期刊模块。通过技术分区爬取到中国知网铁路期刊模块的标题、摘要、关键词,分别为车辆工程、电气化铁路、机车工程、特种铁路、铁路通信信号、铁路线路工程、铁路运输管理工程、铁路运输经济八个xlsx文件,对文件进行处理后,每份文件取前200行合并为1600条目集的data文件作为数据传入运行程序。

三、模型实现

1.TFIDF实现关键词提取

使用sklearn中的tfidf模型,导包

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第1张图片

 进行文本预处理,采用结巴分词

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第2张图片

 文本预处理完成结果

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第3张图片

 文本预处理完成后进行tfidf模型构建,由于一篇文档的摘要过短,尝试调参后效果不佳,因此选取默认参数

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第4张图片

 结果

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第5张图片

2.TextRank 实现关键词提取

文本预处理与tfidf一致,调用jieba包实现

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第6张图片

结果展示

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第7张图片

 3.NMF实现关键词提取

步骤:

  1. 导入数据:首先将数据通过pandas读取成数据框;
  2. 分词处理:载入停用词列表和用户词典,利用jieba的精确模式对每一篇摘要进行分词处理;
  3. 通过训练tfidf,得到tf-idf矩阵,作为NMF模型的输入;
  4. 利用sklearn包里的NMF模型,设定输出6个主题,每个主题输出一个代表该主题的主题词,最终的到6个关键词来表示该摘要。

代码:

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第8张图片

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第9张图片

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第10张图片

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第11张图片

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第12张图片

4.NMF文档聚类实现

进行NMF模型学习

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第13张图片

将得到的文档主题矩阵传入KMeans聚类模型中

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第14张图片

利用T-SNE降维后进行可视化 

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第15张图片

5.LDA实现关键词提取

步骤:

  1. 导入数据:首先将数据通过pandas读取成数据框;
  2. 分词处理:载入停用词列表和用户词典,利用jieba的精确模式对每一篇摘要进行分词处理;
  3. 通过训练tfidf,得到tf-idf矩阵,作为LDA模型的输入;
  4. 利用sklearn包里的LDA模型,设定求解算法为online,输出6个主题,每个主题输出一个代表该主题的主题词,最终的到6个关键词来表示该摘要。

代码:

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第16张图片

6.LDA文档聚类实现

进行LDA模型学习(聚类时需要将online参数更改,原因是因为online参数是作用于文本关键词提取相较于默认参数效果更好,但在聚类时,oneline参数效果不好,所以更改为默认参数。

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第17张图片

 将得到的文档主题矩阵传入KMeans聚类模型中

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第18张图片

 利用T-SNE降维后进行可视化

 文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第19张图片

 四、结果分析及可视化展示

1.时间对比

可以看到tfidf耗时最短,而LDA耗时最长。

2.结果对比

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第20张图片

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第21张图片

 3.聚类结果可视化展示 

a)LDA

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第22张图片

LDA聚类结果,类与类之间相距较分散,且相同的一类有的并不是在一块集中如图上嫩绿色的类别,呈现三个区域分布。 

b)NMF

文本挖掘-实战记录(二)基于NMF和LDA模型的文本关键词提取和文档聚类_第23张图片

 NMF聚类结果较集中,较明显。类与类之间较集中分布,且相同的一类都集中在同一区域。

五、总结

1.基于统计的方法

主流的简单统计方法是TFIDF及其改进方法。TFIDF是衡量一个词对一篇文档的区分程度。利用文档中词语的统计信息抽取文档的关键词。

优点:简单,易于实现,不需要训练数据,也不需要构建外部知识库,泛化性强。考虑词的位置、词性和关联信息特征。比如在文本中名词作为一种定义现实实体的词,带有更多的关键信息。再比如在某些场景中文本的起始段落和结尾段落比其他部分更重要。

缺陷:单纯以词频衡量一个词的重要性不够全面,有时重要的词可能出现的次数不多。而且这种算法无法体现词的位置、词性和关联信息等特征,更无法反映词汇的语义信息。IDF本质上是一种试图抑制噪音的加权。单纯的认为文档频率小的词越重要,文档频率大的单词就越无用。这样导致的问题是一些不能代表文本的低频次IDF值很高;有些能够很好代表文本的高频词IDF值却很高。主要原因是TFIDF没有考虑特征项在文档集合类间和类内的分布情况。没有考虑语义。(关键词提取技术_abc50319的专栏-CSDN博客_关键词抽取技术)

2.基于主题的方法

a)NMF

文档-词维度提升到文档-主题-词的维度主要思想是:文档是若干主题的分布;每个主题又是词语的概率分布。主题表示为一个方面,一个概念,表现为相关词的集合。主题模型是语义挖掘的核心。NMF的基本思想可以简单描述为:对于任意给定的一个非负矩阵V,NMF算法能够寻找到一个非负矩阵W和一个非负矩阵H,使得满足 ,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积。如下图所示,其中要求分解后的矩阵H和W都必须是非负矩阵。其与LDA的区别在于将文档-词语矩阵分解成两个矩阵。

(关键词提取技术_abc50319的专栏-CSDN博客_关键词抽取技术)

b)LDA

文档-词维度提升到文档-主题-词的维度主要思想是:文档是若干主题的分布;每个主题又是词语的概率分布。主题表示为一个方面,一个概念,表现为相关词的集合。主题模型是语义挖掘的核心。LSA/LSI/LDA算法最主要的主题模型是LDA(隐含狄利克雷分布),已知词和文档的对应关系,我们的目的是找出 主题的词分布,文档的主题分布。

主题模型的优点是:

(1) 可以获得文本语义相似性的关系。根据主题模型可以得到主题的概率分布,可以通过概率分布计算文本之间的相似度。

(2) 可以解决多义词的问题。

(3) 可以去除文档中噪音的影响。

(4) 无监督、完全自动化。无需人工标注,可以直接通过模型得到概率分布。

(5) 语言无关。

(关键词提取技术_abc50319的专栏-CSDN博客_关键词抽取技术)

c)基于网络图的方法

主流的基于网络图的算法的是TextRank算法,基于网络图的算法和上述算法不同的一点是,统计分析和基于主题的方法都需要基于一个现成的语料库,且基于主题的模型需要通过大规模文档的学习,来发现文档的隐含主题。TextRank算法可以脱离语料库的背景,仅对单篇文档进行分析就可以提取文档的关键词。TextRank算法的基本思想来源于Google的PageRank算法。

(关键词提取技术_abc50319的专栏-CSDN博客_关键词抽取技术)

你可能感兴趣的:(文本挖掘,聚类,人工智能,python,机器学习)