NLP基本工具之jieba:关键词提取、词性标注

2020-04-26 13:46:23 浏览数 (1)

jieba除了上一篇介绍的基本功能--分词之外,还可以进行关键词提取以及词性标注

使用:

importjieba # 导入 jieba

importjieba.analyse as anls #关键词提取

importjieba.posseg as pseg #词性标注

其中,关键词提取有两种算法:

第一种是TF-IDF算法(Term Frequency-Inverse Document Frequency, 词频-逆文件频率),其基本思想为:一个词语在一篇文章中出现次数越多,同时在所有文档中出现次数越少,越说明该词语能够代表该文章。

第二种是TextRank算法,基本思想:

  1. 将待抽取关键词的文本进行分词
  2. 以固定窗口大小(默认为5,通过span属性调整),词之间的共现关系,构建图
  3. 计算图中节点的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

0 人点赞