今天是介绍 jieba 中文分词工具使用的第 2 篇文章,上一篇主要介绍了 jieba 分词的三种模式以及对应的分词实例,今天来介绍通过 jieba 分词工具来提取中文文章中的关键词,以及对应的权重。
今天的文章能让你学到什么?
你可以快速知道一篇中文文章中,哪些词出现频率比较高,从而可以快速的知道这篇文章的核心思想是什么以及对应的话题,这在自然语言当中是比较基础同时也是比较重要的知识来的,这个知识点通常用于“文本分析”。
安装
pip install jieba
jieba 关键词提取主要有两种方法:
第一种:基于 TF-IDF 算法的关键词抽取
第二种:基于 TextRank 算法的关键词抽取
语法
1、基于 TF-IDF 算法的关键词抽取
jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 实例,不设置就采用默认方式 jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
2、基于 TextRank 算法的关键词抽取
jieba.analyse.TextRank(idf_path=None) 新建 TFIDF 实例,不设置就采用默认方式 jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=())
参数介绍
★idf_path :为 IDF 频率文件
★sentence: 为待提取的文本
★topK :返回几个 TF/IDF 权重最大的关键词,默认值为 20
★withWeight :表示是否一并返回关键词权重值,默认值为 False
★allowPOS: 仅返回指定词性的词如:allowPos=('nr', 'n'),默认值为空,即不筛选
返回值
返回形式为 [(), ()]
例子
实例1:基于analyse.extract_tags()提取
代码解释:
topK=3 代表输出前面的3个关键词,默认是输出20个
withWeight=True 代表输出词语对应的权重信息
from jieba import analyse s = """ 关联问题交叉销售问题等属于关联问题,关联分析 也叫购物篮分析,我们要掌握常见的关联分析算法 """ data = analyse.extract_tags(s, topK=3, withWeight=True) for key, weight in data: print('%s %s' % (key, weight))
关联 1.6245281341733333
分析 0.8072675027333334
购物篮 0.6641537501611111
实例2:只返回指定的的词性,比如只返回出现"名词"
代码解释:allowPOS=('n') 代表只返回名词
更多词性表示,请看链接:https://www.cnblogs.com/chenbjin/p/4341930.html
from jieba import analyse s = """ 关联问题交叉销售问题等属于关联问题,关联分析 也叫购物篮分析,我们要掌握常见的关联分析算法 """ data = analyse.extract_tags(s, topK=3, withWeight=True, allowPOS=('n')) for key, weight in data: print('%s %s' % (key, weight))
购物篮 1.9924612504833332
问题 1.98175678654
算法 1.4485319165216666
实例3:基于 analyse.textrank() 提取
from jieba import analyse s = """ 关联问题交叉销售问题等属于关联问题,关联分析 也叫购物篮分析,我们要掌握常见的关联分析算法 """ for key, weight in analyse.textrank(s, topK=3, withWeight=True): print('%s %s' % (key, weight))
关联 1.0
问题 0.8928709491961201
分析 0.6495388430401274
在实际的文本中提取关键词,可以将上面的例子中的 s 的内容替换成你需要分析的文本数据就可以了
End-----
喜欢的读者朋友可以点赞和关注小编,更多精彩内容等着你.......
往期文章推荐如下:
自然语言NLP必备(1),jieba工具 5 行代码对整篇文章分词
python科学数据分析包|numpy、pandas等5大数据分析包入门教程
封面图片来源于网络