[NLP技术]关键词提取算法-TextRank

转载 2017年09月05日 08:56:57

关键词提取算法-TextRank

  今天要介绍的TextRank是一种用来做关键词提取的算法,也可以用于提取短语和自动摘要。因为TextRank是基于PageRank的,所以首先简要介绍下PageRank算法。

1.PageRank算法

  PageRank设计之初是用于Google的网页排名的,以该公司创办人拉里·佩奇(Larry Page)之姓来命名。Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是经常被用来评估网页优化的成效因素之一。PageRank通过互联网中的超链接关系来确定一个网页的排名,其公式是通过一种投票的思想来设计的:如果我们要计算网页A的PageRank值(以下简称PR值),那么我们需要知道有哪些网页链接到网页A,也就是要首先得到网页A的入链,然后通过入链给网页A的投票来计算网页A的PR值。这样设计可以保证达到这样一个效果:当某些高质量的网页指向网页A的时候,那么网页A的PR值会因为这些高质量的投票而变大,而网页A被较少网页指向或被一些PR值较低的网页指向的时候,A的PR值也不会很大,这样可以合理地反映一个网页的质量水平。那么根据以上思想,佩奇设计了下面的公式.
  这里写图片描述
  
  该公式中,Vi表示某个网页,Vj表示链接到Vi的网页(即Vi的入链),S(Vi)表示网页Vi的PR值,In(Vi)表示网页Vi的所有入链的集合,Out(Vj)表示网页,d表示阻尼系数,是用来克服这个公式中“d *”后面的部分的固有缺陷用的:如果仅仅有求和的部分,那么该公式将无法处理没有入链的网页的PR值,因为这时,根据该公式这些网页的PR值为0,但实际情况却不是这样,所有加入了一个阻尼系数来确保每个网页都有一个大于0的PR值,根据实验的结果,在0.85的阻尼系数下,大约100多次迭代PR值就能收敛到一个稳定的值,而当阻尼系数接近1时,需要的迭代次数会陡然增加很多,且排序不稳定。公式中S(Vj)前面的分数指的是Vj所有出链指向的网页应该平分Vj的PR值,这样才算是把自己的票分给了自己链接到的网页。

2.1 TextRank算法提取关键词

  TextRank是由PageRank改进而来,其公式有颇多相似之处,这里给出TextRank的公式:
  这里写图片描述
  
  可以看出,该公式仅仅比PageRank多了一个权重项Wji,用来表示两个节点之间的边连接有不同的重要程度。TextRank用于关键词提取的算法如下:

  1)把给定的文本T按照完整句子进行分割,即

这里写图片描述

  2)对于每个句子,进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词,如名词、动词、形容词,即,其中 ti,j 是保留后的候选关键词。

  3)构建候选关键词图G = (V,E),其中V为节点集,由(2)生成的候选关键词组成,然后采用共现关系(co-occurrence)构造任两点之间的边,两个节点之间存在边仅当它们对应的词汇在长度为K的窗口中共现,K表示窗口大小,即最多共现K个单词。

  4)根据上面公式,迭代传播各节点的权重,直至收敛。

  5)对节点权重进行倒序排序,从而得到最重要的T个单词,作为候选关键词。

  6)由5得到最重要的T个单词,在原始文本中进行标记,若形成相邻词组,则组合成多词关键词。

2.2 TextRank算法提取关键词短语

  提取关键词短语的方法基于关键词提取,可以简单认为:如果提取出的若干关键词在文本中相邻,那么构成一个被提取的关键短语。

2.3TextRank生成摘要

  将文本中的每个句子分别看做一个节点,如果两个句子有相似性,那么认为这两个句子对应的节点之间存在一条无向有权边。考察句子相似度的方法是下面这个公式:
  这里写图片描述
  
  公式中,Si,Sj分别表示两个句子,Wk表示句子中的词,那么分子部分的意思是同时出现在两个句子中的同一个词的个数,分母是对句子中词的个数求对数之和。分母这样设计可以遏制较长的句子在相似度计算上的优势。
原文地址
http://www.cnblogs.com/xueyinzhe/p/7101295.html

使用TextRank实现的关键字提取

本文主要用于实现使用TextRank算法的关键字提取 TextRank是PageRank算法的变种,用于文本关键字 关键句的提取 主要参考为原作者Rada Mihalcea论文《TextRan...
  • scugxl
  • scugxl
  • 2013年04月10日 20:16
  • 8889

基于TextRank的关键词、短语、摘要提取

关于自动文摘利用计算机将大量的文本进行处理,产生简洁、精炼内容的过程就是文本摘要,人们可通过阅读摘要来把握文本主要内容,这不仅大大节省时间,更提高阅读效率。但人工摘要耗时又耗力,已不能满足日益增长的信...
  • u013041398
  • u013041398
  • 2016年09月08日 18:20
  • 6067

使用TextRank算法为文本生成关键字和摘要

目录[-] PageRank 使用TextRank提取关键字 使用TextRank提取关键短语 使用TextRank提取摘要 实现TextRank TextRank算法基于...
  • xiewenbo
  • xiewenbo
  • 2015年06月28日 15:07
  • 9526

基于TextRank算法提取关键词——Java实现

TextRank算法 提取关键词
  • qq_18860653
  • qq_18860653
  • 2017年11月03日 16:33
  • 4415

改进版textrank关键词提取,自动摘要程序

  • 2015年08月12日 10:53
  • 24KB
  • 下载

基于TextRank的关键词、短语、摘要提取

关于自动文摘利用计算机将大量的文本进行处理,产生简洁、精炼内容的过程就是文本摘要,人们可通过阅读摘要来把握文本主要内容,这不仅大大节省时间,更提高阅读效率。但人工摘要耗时又耗力,已不能满足日益增长的信...
  • u013041398
  • u013041398
  • 2016年09月08日 18:20
  • 6067

textrank关键词提取

TextRank是在Google的PageRank算法启发下,针对文本里的句子设计的权重算法,目标是自动摘要。它利用投票的原理,让每一个单词给它的邻居(术语称窗口)投赞成票,票的权重取决于自己的票数。...
  • mosu027
  • mosu027
  • 2017年04月07日 14:12
  • 357

nlp_关键词提取总结

关键词提取:从文本中提取出与这篇文章意义最相关的词语。 关键词的作用: 1、文献检索初期,关键词作为搜索这篇论文的词语。 2、在文本聚类、分类、摘要等领域中有着重要的作用。 ——比如聚类时把关...
  • zhangyu132
  • zhangyu132
  • 2016年07月11日 16:10
  • 3705

TextRank 算法提取关键词的 Java 实现

http://www.hankcs.com/nlp/textrank-algorithm-to-extract-the-keywords-Java-implementation.html 谈起自...
  • kl28978113
  • kl28978113
  • 2017年01月17日 10:22
  • 852

TextRank算法提取关键词的Java实现

谈起自动摘要算法,常见的并且最易实现的当属TF-IDF,但是感觉TF-IDF效果一般,不如TextRank好。 TextRank是在 Google的PageRank算法启发下,针对文本里的句子设...
  • xinwenzx8
  • xinwenzx8
  • 2016年04月29日 14:48
  • 346
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[NLP技术]关键词提取算法-TextRank
举报原因:
原因补充:

(最多只允许输入30个字)