Textrank算法初体验

本文介绍了TextRank算法在文本摘要和关键词抽取中的应用,这是一种基于PageRank的无监督方法,考虑了词语之间的语义关系。通过构建无向图,计算节点(单词或句子)的权重,从而找出最具代表性的关键词和关键句。
摘要由CSDN通过智能技术生成

随着生活节奏的加快,我们希望在最短的时间里面汲取到想要的信息。想象一下,清晨的你坐在餐桌前(当然程序员可能没有清晨~~哈哈哈哈)喝着牛奶打开新闻,大量的信息映入你的眼帘,你在一堆push给你的讯息中挣扎,可能到最后都来不及看到你最感兴趣的。这个时候,如果有人早已经帮你看过一遍所有的内容并且用最简明的方式告诉你,每一篇新闻的关键词、关键句,那么你就可以在短时间轻松获取大量的信息,有选择的深入了解。
它,就是今天的主角---------textrank
在最开始做文本分类的时候,有接触过TF-IDF来统计一篇文章中的词频,但是这种方式没有充分考虑词之间的语义关系。所以我们希望在进行关键句、词抽取时多一些考虑。

从大的方向上来说,可以分为两类:抽取式和生成式。
(1)抽取式:从一篇文章中抽取出最能代表当前文章的句子,或者最能代表当前句子的单词。
(2)生成式:难度增加,涉及到深度学习领域提取文章或者句子的语义信息,像人一样得到关于句子或者文章的总结。

textrank算法显然属于抽取式
它是由EMNLP 2004 : TextRank Bringing Order into Texts首先提出。是一种无监督的抽取方式,在论文中主要介绍了在NLP的关键词抽取和关键句抽取两个方面。

textrank算法来自于pagerank算法
之前在做网页信息检索的时候有接触过,他的主要思想是说一个网页的重要性往往是由和他有链接的网页数量以及该网页的重要性决定的。
在这里插入图片描述
左边是i网页的重要性,d是阻尼系数,一般去0.85,也是一个经验值表示每一个网页跳转到另一个网页的可能性,In表示指向i网页的每一个网页,当前j网页的权值,Out表示当前计算的指向i网页的j网页他所指向其他网页,加了绝对值符号表示求j网页只想其他网页的个数。初始化时,对于每一个网页它的重要性都初始化为1,经过多次迭代最终重要性会收敛到一个稳定的值,就得到了每个网页的重要性值。
pagerank他的主要观点是:
(1)重要的网页会被重要的网页相连
(2)网页的重要性体现在用户对他访问的可能性

两个主要任务
(1)关键词抽取
给出一段话,我们对这段话进行预处理(可选择)进行切词、词性标注、去停用词等操作,当然也可以根据自己的情况进行关键词词性的筛选,相对于我来说我最后希望得到的关键词都是特定领域内的实体,那么我们可以只留下名词。在实验中发现,添加一定的词性过滤器对于结果有很大的帮助。这样我们就得到了一个一个的单词,我们利用单词构建一个无向图,用一个特定大小的划框去取词,当两个词同时出现在同一个划框中时,我们就认为他们之间有关系,我们就连接这两个单词。对于每一个单词来说我们对他重要程度的衡量时,是同时考虑他所连接的词汇以及这个词汇的重要性。
在这里插入图片描述
不断地迭代计算每个单词 的权重,直到收敛到给定的阈值,一般是0.0001。最后提取出得分最高的几个单词最为这句话的关键词,当然如果得分最高的几个关键词在图中有线相连说明他们具有一定的共现关系,那么我们就把这几个关键词当成是一个词组。
至于是用无向图还是根据文本流动的方向建立有向图对于结果并没有很大的影响。
(2)关键句抽取
将无向图中的关于单词的表示节点对比到文章中每一个句子,在关键句无向图表示中,每个节点之间的边要考虑权重。但是句子之间的共现关系并没有什么实际的意义,所以在对于句子之间的边权重是用的两个句子之间的相似度来衡量的,python中可以通过from sklearn.metrics.pairwise import cosine_similarity来计算两个句子之间的余弦相似度作为他们之间边权重,
在这里插入图片描述
在这里插入图片描述
同样的利用上述公式不断的迭代计算每个句子的权值,直到收敛到一个给定的阈值,就得到了最终结果,选择得分最高的几个句子作为这篇文章的摘要。

关于textrank也有一些其他的改进:
(1)利用textrank和TF-IDF结合来对于同一个问题的不同答案进行答案冗余的减少。
(2)通过tags提升textrank算法进行网页抓取关键词时的性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值