zoukankan      html  css  js  c++  java
  • textRank算法

    资料来源:https://www.cnblogs.com/Luv-GEM/p/10884493.html

    TextRank算法源自于PageRank算法。PageRank算法最初是作为互联网网页排序的方法,经过轻微地改动,可以被应用于文本摘要领域。

    本文分为两部分,第一部分介绍TextRank做文本自动摘要的原理,第二部分介绍用TextRank做中文新闻摘要的案例。

    一、基于TextRank的自动摘要原理

    1、PageRank算法

    首先看PageRank的相关概念。PageRank对于每个网页页面都给出一个正实数,表示网页的重要程度,PageRank值越高,表示网页越重要,在互联网搜索的排序中越可能被排在前面。假设整个互联网是一个有向图,节点是网页,每条边是转移概率。网页浏览者在每个页面上依照连接出去的超链接,以等概率跳转到下一个网页,并且在网页上持续不断地进行这样的随机跳转,这个过程形成了一阶马尔科夫链,比如下图,每个笑脸是一个网页,既有其他网页跳转到该网页,该网页也会跳转到其他网页。在不断地跳转之后,这个马尔科夫链会形成一个平稳分布,而PageRank就是这个平稳分布,每个网页的PageRank值就是平稳概率。

    PageRank的核心公式是PageRank值的计算公式。这个公式来自于《统计学习方法》,和很多博客上的公式有点轻微的差别,那就是等号右边的平滑项不是(1-d),而是(1-d)/n。

    加平滑项是因为有些网页没有跳出去的链接,那么转移到其他网页的概率将会是0,这样就无法保证存在马尔科夫链的平稳分布。于是,我们假设网页以等概率(1/n)跳转到任何网页,再按照阻尼系数d,对这个等概率(1/n)与存在链接的网页的转移概率进行线性组合,那么马尔科夫链一定存在平稳分布,一定可以得到网页的PageRank值。

    所以PageRank的定义意味着网页浏览者按照以下方式在网上随机游走:以概率d按照存在的超链接随机跳转,以等概率从超链接跳转到下一个页面;或以概率(1-d)进行完全随机跳转,这时以等概率(1/n)跳转到任意网页。

    PageRank的计算是一个迭代过程,先假设一个初始的PageRank分布,通过迭代,不断计算所有网页的PageRank值,直到收敛为止,也就是:

    2、TextRank算法

    在文本自动摘要的案例中,TextRank和PageRank的相似之处在于:

    • 用句子代替网页

    • 任意两个句子的相似性等价于网页转换概率

    • 相似性得分存储在一个方形矩阵中,类似于PageRank的矩阵M

    不过公式有些小的差别,那就是用句子的相似度类比于网页转移概率,用归一化的句子相似度代替了PageRank中相等的转移概率,这意味着在TextRank中,所有节点的转移概率不会完全相等。

    然后迭代过程就和PageRank一致了。

    3、TextRank做单领域多文本的自动摘要

    用TextRank做单领域多文本的自动摘要的过程如下:

    • 把所有文章整合成文本数据,并把文本分割成单个句子;
    • 用WordAVG的方法,将每个句子中所有单词的词向量合并为句子的向量表示;
    • 计算句子向量间的相似性并存放在矩阵中,作为转移概率矩阵M;
    • 然后将转移概率矩阵转换为以句子为节点、相似性得分为边的图结构,用于句子TextRank计算;
    • 对句子按照TextRank值进行排序,排名最靠前的n个句子作为摘要。
  • 相关阅读:
    阿里云短信支付微信支付
    python 阿里云短信群发推送
    python twilio 短信群发 知识留存
    python爬虫 发送定时气象预报
    python beautifulsoup爬虫
    strongswan
    Docker进入主流,PaaS大有可为(转)
    Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱(转)
    在IT网站上少花些时间
    Python 代码性能优化技巧(转)
  • 原文地址:https://www.cnblogs.com/demo-deng/p/13201893.html
Copyright © 2011-2022 走看看