我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

通过结巴分词对于文章的关键词(标签)提取,目前为止存在着两种算法,也对应着两个函数。分别是:使用TF-IDF算法的jieba.analyse.extract_tags(),以及使用TextRank算法的jieba.analyse.textrank()。两者基本一致,就函数名称不一样,参数和返回结果都差不多。

苏南大叔:结巴分词,如何基于TextRank算法提取文章关键词(标签)? - textrank算法提取关键词
结巴分词,如何基于TextRank算法提取文章关键词(标签)?(图2-1)

大家好,这里是苏南大叔的平行空间笔记本博客,本文描述结巴分词如何提取标签(关键词),本文描述的函数是jieba.analyse.textrank(),它是基于TextRank算法。测试环境:win10python@3.6.8jieba@0.42.1

前文回顾

这里先回顾一下前文,苏南大叔以前的文字里面,说明了结巴分词的基本使用方式:

结巴分词的基本分词方式:

结巴分词使用字典,自定义词组的方式:

结巴分词的词性列表大全:

结巴分词使用TF-IDF算法的“jieba.analyse.extract_tags()”函数的说明文档:

extract_tags()对比textrank()

extract_tags()textrank()方法对比如下:

准备基础分词数据

import jieba.posseg
import jieba.analyse
sentence = "苏南大叔最近心情很好,所以满世界瞎溜达。"
jieba.add_word("苏南大叔",999,"nr")
words = jieba.posseg.lcut(sentence)
print(words)
[pair('苏南大叔', 'nr'), pair('最近', 'f'), pair('心情', 'n'), pair('很', 'd'), pair('好', 'a'), pair(',', 'x'), pair('所以', 'c'), pair('满', 'a'), pair('世界', 'n'), pair('瞎', 'v'), pair('溜达', 'v'), pair('。', 'x')]

第一种算法:TF-IDF

// 算法一 TF-IDF
keywords = jieba.analyse.extract_tags(sentence, topK=5, withWeight=True, allowPOS=("n","nr"))
print(keywords)
[('苏南大叔', 3.9849225009666664), ('心情', 2.116321812206667), ('世界', 1.45584313519)]

第二种算法:TextRank

// 算法二 TextRank
keywords = jieba.analyse.textrank(sentence, topK=5, withWeight=True, allowPOS=("n","nr"))
print(keywords)
[('苏南大叔', 1.0), ('心情', 0.9961264494011037)]

苏南大叔:结巴分词,如何基于TextRank算法提取文章关键词(标签)? - textrank算法函数
结巴分词,如何基于TextRank算法提取文章关键词(标签)?(图2-2)

更多例子

textrank()的更多使用方式:

keywords2 = jieba.analyse.textrank(sentence)                       # ['溜达', '世界']
keywords3 = jieba.analyse.textrank(sentence, topK=5)               # ['溜达', '世界']
keywords4 = jieba.analyse.textrank(sentence, withWeight=True)      # [('溜达', 1.0), ('世界', 0.996)]
keywords5 = jieba.analyse.textrank(sentence, allowPOS=("n","nr"))  # ['苏南大叔', '心情']

从结果上看,似乎还是限制词性allowPOS和个数topK的结果,比较令人满意。

参数含义
sentence句子
topK前几个标签
withWeight连带显示权重
allowPOS词性筛选数组

相关链接

总结

函数算法
jieba.analyse.extract_tags()TF-IDF算法
jieba.analyse.textrank()TextRank算法

更多结巴分词的文字,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   jieba    nlp