TextRank算法为文本生成关键字和摘要 | 您所在的位置:网站首页 › 最简pagerank算法 › TextRank算法为文本生成关键字和摘要 |
TextRank算法为文本生成关键字和摘要
TextRank算法基于PageRank,用于为文本生成关键字和摘要。其论文是: Mihalcea R, Tarau P. TextRank: Bringing order into texts[C]. Association for Computational Linguistics, 2004. 先从PageRank讲起。 PageRankPageRank最开始用来计算网页的重要性。整个www可以看作一张有向图图,节点是网页。如果网页A存在到网页B的链接,那么有一条从网页A指向网页B的有向边。 构造完图后,使用下面的公式: PageRank需要使用上面的公式多次迭代才能得到结果。 初始时,可以设置每个网页的重要性为1。 上面公式等号左边计算的结果是迭代后网页i的PR值,等号右边用到的PR值全是迭代前的。 举个例子: 上图表示了三张网页之间的链接关系,直觉上网页A最重要。 使用TextRank提取关键字将原文本拆分为句子,在每个句子中过滤掉停用词(可选),并只保留指定词性的单词(可选)。由此可以得到句子的集合和单词的集合。 每个单词作为PageRank中的一个节点。设定窗口大小为k,假设一个句子依次由下面的单词组成: w1, w2, w3, w4, w5, ..., wn w1, w2, ..., wk 、 w2, w3, ...,wk+1 、 w3, w4, ...,wk+2 等都是一个窗口。在一个窗口中的任两个单词对应的节点之间存在一个无向无权的边。 基于上面构成图,可以计算出每个单词节点的重要性。最重要的若干单词可以作为关键词。 使用TextRank提取关键短语参照“使用TextRank提取关键词”提取出若干关键词。若原文本中存在若干个关键词相邻的情况,那么这些关键词可以构成一个关键短语。 例如,在一篇介绍“支持向量机”的文章中,可以找到三个关键词 支持、向量、机 ,通过关键短语提取,可以得到 支持向量机 使用TextRank提取摘要将每个句子看成图中的一个节点,若两个句子之间有相似性,认为对应的两个节点之间有一个无向有权边,权值是相似度。 通过PageRank算法计算得到的重要性最高的若干句子可以当作摘要。 论文中使用下面的公式计算两个句子Si和Sj的相似度: 分子是在两个句子中都出现的单词的数量。|Si|是句子i的单词数。 由于是有权图,PageRank公式略做修改: Python 2.7的TextRank针对 中文文本 的库 TextRank4ZH : jieba 分词:提供基于TextRank的关键词提取工具。 snownlp:也实现了关键词提取和摘要生成。 HanLP中Java开源实现:HanLP自然语言处理包开源-码农场 END |
CopyRight 2018-2019 实验室设备网 版权所有 |