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

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

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

大家好,这里是苏南大叔的平行空间笔记本博客,本文描述结巴分词如何提取标签(关键词),其实是基于TF-IDF算法对分词结果进行权重排序的问题。测试环境:win10python@3.6.8jieba@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')]

最终的关键词就是从这些列表中进行筛选获得的。

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

结巴分词提取标签函数

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="">

相关链接

总结

使用结巴分词提取文章关键词的操作,就这些。更多结巴分词的文字,请点击:

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

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

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

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