关键词提取TextRank算法_3分钟热情学NLP第3篇

第3篇:三分钟热情学NLP-关键词提取TextRank算法

TextRank算法,借鉴了PageRank的思想,或者可以直接理解成:TextRank是PageRank的2.0版。

1、PageRank算法

谷歌的2位创始人佩奇和布林,借鉴了评判论文重要性的方法(学术界,如果1篇论文被引用得越多,就会认为该论文越重要)来评价网页的重要性,概况来说就是2点:
1、要数量。某个网页被越多网页链接的话,说明这个网页越重要,其对应的PageRank值越高;
2、要质量。被PageRank值较高的网页A链接的网页B,则被链接的这个网页B的PageRank值也会相应提高;
注:PageRank值,简称PR值;

如下图所示(图片来源https://www.cnblogs.com/Luv-GEM/p/10884493.html)

PageRank概念图

PageRank算法

2、TextRank算法

通过把文本分割成若干组成单元(如:句子)并建立图模型, 利用投票机制对文本中的重要成分进行排序,可实现利用单篇文档本身的信息进行关键词提取。
步骤包括:
1、对文本进行切割,按照完整的句子进行切割;
2、对于每个句子进行分词和词性标注,去掉停用词,保留名词、动词、形容词等;
3、计算词向量;
4、将词向量合并为句子的句向量表示;
5、计算句向量之前的相似性;计算转移概率矩阵,用于句子的TenxRank计算;
6、按照TextRank值进行排序;
7、取排名靠前的句子作为摘要;

如下图所示(图片来源:https://zhuanlan.zhihu.com/p/55270310)

TextRank算法流程图

3、TextRank算法实战

本部分以Jieba分词下的TextRank进行实战,摘选一段jieba的git上的对jieba.analyse.textrank的参数说明。

jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v')) 直接使用,接口相同,注意默认过滤词性。

输入

import jieba
import jieba.analyse

s = "此外,公司拟对全资子公司吉林欧亚置业有限公司增资4.3亿元,增资后,吉林欧亚置业注册资本由7000万元增加到5亿元。吉林欧亚置业主要经营范围为房地产开发及百货零售等业务。目前在建吉林欧亚城市商业综合体项目。2013年,实现营业收入0万元,实现净利润-139.13万元。"

for x, w in jieba.analyse.textrank(s, withWeight=True):
    print('%s %s' % (x, w))

输出

吉林 1.0
欧亚 0.9966893354178172
置业 0.6434360313092776
实现 0.5898606692859626
收入 0.43677859947991454
增资 0.4099900531283276
子公司 0.35678295947672795
城市 0.34971383667403655
商业 0.34817220716026936
业务 0.3092230992619838
在建 0.3077929164033088
营业 0.3035777049319588
全资 0.303540981053475
综合体 0.29580869172394825
注册资本 0.29000519464085045
有限公司 0.2807830798576574
零售 0.27883620861218145
百货 0.2781657628445476
开发 0.2693488779295851
经营范围 0.2642762173558316

你可能感兴趣的:(关键词提取TextRank算法_3分钟热情学NLP第3篇)