结巴分词,如何基于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
总结
使用结巴分词提取文章关键词的操作,就这些。更多结巴分词的文字,请点击:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。