NLP之TextRank

基础

问题

  • 如何对一篇文章的关键词进行提取

解决

  • 使用类似网页排名算法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$内的共现次数

如何根据词构建图

  1. 对文章$S$进行分词,得到词列表

  2. 设定滑动窗口$k$的大小,统计滑动窗口内各词对的贡献次数

    1. 例如:淡黄的长裙,蓬松的头发,分词后为[淡黄, 长裙, 蓬松, 头发]

    2. 设定滑动窗口$k=2$,则得到词对:

      1. 淡黄,长裙
      2. 长裙,蓬松
      3. 蓬松,头发
    3. 根据这些词对构建无向图,注意PageRank有向图

      图片来源于参考链接1

    4. 然后使用公式计算

进阶

疑难

实现

  • Jieba

    jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))
    

参考

  1. TextRank: Bringing Order into Texts
  2. (九)通俗易懂理解——TF-IDF与TextRank

文章作者: Myhaa
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Myhaa !
评论
  目录