结巴分词,如何基于TextRank算法提取文章关键词(标签)?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
通过结巴分词对于文章的关键词(标签)提取,目前为止存在着两种算法,也对应着两个函数。分别是:使用TF-IDF
算法的jieba.analyse.extract_tags()
,以及使用TextRank
算法的jieba.analyse.textrank()
。两者基本一致,就函数名称不一样,参数和返回结果都差不多。
大家好,这里是苏南大叔的程序如此灵动博客,本文描述结巴分词如何提取标签(关键词),本文描述的函数是jieba.analyse.textrank()
,它是基于TextRank
算法。测试环境:win10
,python@3.6.8
,jieba@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()
的更多使用方式:
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 | 词性筛选数组 |
相关链接
- https://newsn.net/say/nlp-code.html
- https://newsn.net/say/jieba-lcut.html
- https://newsn.net/say/jieba-load_userdict.html
总结
函数 | 算法 |
---|---|
jieba.analyse.extract_tags() | TF-IDF 算法 |
jieba.analyse.textrank() | TextRank 算法 |
更多结巴分词的文字,请点击:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。