结巴分词,如何基于TF-IDF算法提取文章关键词(标签)?
发布于 作者:苏南大叔 来源:程序如此灵动~
结巴分词,主要是用于分词的。如果对于文章seo来说,一般都是需要设置关键词的。从另外的角度来看的话,这个关键词也可以称之为标签。那么,结巴分词如何自动提取标签呢?这就是本文要讨论的问题。本文描述的是:基于TF-IDF算法的关键词提取方式。

大家好,这里是苏南大叔的程序如此灵动博客,本文描述结巴分词如何提取标签(关键词),其实是基于TF-IDF算法对分词结果进行权重排序的问题。测试环境:win10,python@3.6.8,jieba@0.42.1。
结巴提取标签的原理
结巴分词自动提取标签的原理,就是对分词结果进行权重排序,然后把权重高的作为标签(关键词)。
那么,先回顾一下结巴分词和添加自定义词组。
import jieba.posseg
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')]最终的关键词就是从这些列表中进行筛选获得的。

结巴分词提取标签函数
keywords=jieba.analyse.extract_tags(sentence)
print(keywords)这个会列出所有的可供挑选的词儿,按权重排序,而且显然这个结果是经过停用词筛选的。
['苏南大叔', '溜达', '心情', '最近', '世界', '所以']选择前几个标签
keywords=jieba.analyse.extract_tags(sentence, topK=3)
print(keywords)运行结果:
['苏南大叔', '溜达', '心情']显示标签权重
keywords=jieba.analyse.extract_tags(sentence, withWeight=True)
print(keywords)权重都是相对的,同一个句子,参数不同时权重也不同,并不是固定值。
[('苏南大叔', 1.9924612504833332), ('溜达', 1.7391569582), ('心情', 1.0581609061033335), ('最近', 0.9612306317916667), ('世界', 0.727921567595), ('所以', 0.7053377915566666)]对词性进行筛选
keywords=jieba.analyse.extract_tags(sentence, allowPOS=("n","nr"))
print(keywords)运行结果:
['苏南大叔', '心情', '世界']上述例子中,n表示名词,nr表示人名。更多的词性表示大全,请参考:
最全参数的例子
keywords=jieba.analyse.extract_tags(sentence, topK=5, withWeight=True, allowPOS=())
print(keywords)运行结果:
[('苏南大叔', 1.9924612504833332), ('溜达', 1.7391569582), ('心情', 1.0581609061033335), ('最近', 0.9612306317916667), ('世界', 0.727921567595)]对带权重结果进行遍历
for w in keywords:
print(w[0],w[1])或者
list = [ w[0]+str(w[1]) for w in keywords ]
print(list)最可能的seo使用方式
结巴分词用于seo的这个提取文章关键词的结果,sentence可以设置为文章的内容。可以设置一下jieba.analyse.extract_tags的topK和allowPOS这两个参数,就可以获得满意的结果。
keywords=jieba.analyse.extract_tags(sentence, topK=5, allowPOS=("n","nr"))
print(keywords)运行结果:
['苏南大叔', '心情', '世界']对于SEO来说,这个结果就是用于下面这个标签里面的。
<meta name="keywords" content="">相关链接
- https://newsn.net/say/nlp-code.html
- https://newsn.net/say/jieba-lcut.html
- https://newsn.net/say/jieba-load_userdict.html
总结
使用结巴分词提取文章关键词的操作,就这些。更多结巴分词的文字,请点击: