文本挖掘-实战记录(二)基于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模型,导包

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

 文本预处理完成结果

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

 结果



2.TextRank 实现关键词提取

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

结果展示

 3.NMF实现关键词提取

步骤:

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

代码:

4.NMF文档聚类实现

进行NMF模型学习

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

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

5.LDA实现关键词提取

步骤:

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

代码:

6.LDA文档聚类实现

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

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

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

 

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

1.时间对比

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

2.结果对比

 3.聚类结果可视化展示 

a)LDA

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

b)NMF

 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博客_关键词抽取技术

  • 12
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
共识聚类NMF聚类和K-means是常用的聚类分析方法,它们在算法原理和应用场景上存在一些差异。 1. 共识聚类(Consensus Clustering):共识聚类是一种集成聚类方法,它通过多次随机抽样和聚类操作来生成多个聚类结果,然后通过计算聚类结果之间的相似性来找到稳定的聚类结构。共识聚类能够解决传统聚类方法对初始化敏感的问题,提供更可靠和稳定的聚类结果。 2. NMF聚类(Non-negative Matrix Factorization):NMF聚类是一种基于矩阵分解的聚类方法,它可以对非负矩阵进行分解,得到两个非负矩阵的乘积表示原始数据。NMF聚类假设数据具有非负性和低秩性,对数据进行低秩近似表示,从而实现聚类操作。NMF聚类文本挖掘、图像处理等领域有广泛应用。 3. K-means聚类:K-means是一种基于距离的划分聚类方法,它将数据样本划分为K个簇,每个簇具有相似的特征。K-means聚类的目标是最小化各个样本点与所属簇的质心之间的距离平方和。K-means聚类具有简单、高效的优点,但对初始质心的选取敏感,可能会收敛到局部最优解。 综上所述,共识聚类通过集成多个聚类结果来提供稳定的聚类结构,NMF聚类利用矩阵分解对数据进行低秩近似表示,而K-means聚类则是一种基于距离的划分聚类方法。它们在算法原理和应用场景上存在差异,可以根据具体问题选择合适的方法进行聚类分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值