jieba除了上一篇介绍的基本功能--分词之外,还可以进行关键词提取以及词性标注。
使用:
importjieba # 导入 jieba
importjieba.analyse as anls #关键词提取
importjieba.posseg as pseg #词性标注
其中,关键词提取有两种算法:
第一种是TF-IDF算法(Term Frequency-Inverse Document Frequency, 词频-逆文件频率),其基本思想为:一个词语在一篇文章中出现次数越多,同时在所有文档中出现次数越少,越说明该词语能够代表该文章。
第二种是TextRank算法,基本思想:
- 将待抽取关键词的文本进行分词
- 以固定窗口大小(默认为5,通过span属性调整),词之间的共现关系,构建图
- 计算图中节点的PageRank,无向带权图
代码:
TF-IDF: jieba.analyse.extract_tags(sentence,topK=20, withWeight=True, allowPOS=())
TextRank:jieba.analyse.textrank(sentence, topK=20, withWeight=True)
其中,topK是输出多少个关键词,withWeight是否输出每个关键词的权重。
输入语句“jieba除了最重要的功能--分词之外,还可以进行关键词提取以及词性标注”:
TF-IDF输出的关键词:
词性 0.91
jieba0.85
-- 0.85
分词 0.84
标注 0.66
关键词 0.64
提取 0.54
之外 0.42
功能 0.39
除了 0.37
重要 0.29
以及 0.29
进行 0.27
可以 0.25
TextRank输出的关键词:
词性 1.00
提取 0.99
关键词 0.99
功能 0.90
分词 0.90
进行 0.76
标注 0.75
相对而言,TextRank输出的关键词更规整一些。
词性标注
使用jieba.posseg进行词性的标注。
代码:
importjieba.posseg
words =jieba.posseg.cut("我来到北京清华大学")
for x, win words:
print('%s %s' % (x, w))
输出:
我 r
来到 v
北京 ns
清华大学 nt