基础
问题
- 如何对一篇文章的关键词进行提取
解决
- 使用类似网页排名算法
PageRank
的思路 - 构建词与词之间的图,然后迭代计算词的排名
TextRank
- 回顾
PageRank
的计算公式:$P=(1-d)\frac{I}{n}+dA^TP$ - 直接说
TextRank
的计算公式:$P=(1-d)\frac{I}{n}+dW^TP$- 其中$W=(w_{ij})_{m\times n}$为词与词之间的权重,一般为词$i$与词$j$在滑动窗口$k$内的共现次数
如何根据词构建图
对文章$S$进行分词,得到词列表
设定滑动窗口$k$的大小,统计滑动窗口内各词对的贡献次数
例如:
淡黄的长裙,蓬松的头发
,分词后为[淡黄
,长裙
,蓬松
,头发
]设定滑动窗口$k=2$,则得到词对:
淡黄
,长裙
长裙
,蓬松
蓬松
,头发
根据这些词对构建
无向图
,注意PageRank
是有向图
然后使用公式计算
进阶
疑难
实现
-
jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))