【51CTO.com快译】1. 引言
文本摘要是自然语言处理(NLP)领域中的应用之一,它必将对我们的生活产生巨大影响。随着数字媒体和出 版业的不断发展,谁还有时间浏览整篇文章/文档/书籍来决定它们是否有用?值得庆幸的是 - 我们已经有了 文本摘要技术。
您是否用过一款名为 inshorts 的移动 APP?这是一个非常有创意的新闻 APP,能将新闻文章转换为 60 字的 摘要。这正是我们将在本文中学习的内容 - 自动文本摘要。
自动文本摘要是自然语言处理(NLP)领域中***挑战性和最有趣的问题之一。这是一个从多种文本资源(如 书籍,新闻文章,博客文章,研究论文,电子邮件和推文)生成简明而有意义的文本摘要的过程。
由于我们面临着大量的文本数据,近来对自动文本摘要系统的需求十分惊人。
通过本文,我们将探讨文本摘要所涉及的领域,了解 TextRank 算法的工作原理,并用 Python 实现该算法。
2. 文本摘要方法
自动文本摘要早在 20 世纪 50 年代就引起了人们的关注。由 Hans Peter Luhn 在 20 世纪 50 年代末出版的题 为“文学摘要的自动创建”的研究论文,使用词频和短语频率等特征从文本中提取重要句子以概括文章。
Harold P Edmundson 在 1960 年代后期进行的另一项重要研究使用了诸如句中是否包含关键词、文本中是否 出现标题所含单词以及句子在文本中的位置等方法提取重要句子来生成文本摘要。从那时起,许多重要且令 人兴奋的研究陆续发表,以应对自动文本摘要领域的挑战。
文本摘要大致可以分为两类 - 抽取摘要和抽象摘要。
抽取摘要:这些方法依赖于从一段文本中提取几个部分,例如短语和句子,并将它们堆叠在一起以创建 摘要。因此,在提取方法中识别正确的摘要句子是至关重要的。
抽象摘要:这些方法使用高级 NLP 技术生成全新的摘要。这些摘要的某些部分甚至可能没有在原始文 本中出现。
在本文中,我们将重点介绍抽取摘要技术。
3. 理解 TextRank 算法
在开始使用 TextRank 算法之前,我们应该了解另一种算法 - PageRank 算法。事实上,TextRank 算法也是 在此基础上开发的!PageRank 主要用于在网页搜索结果中对网页进行排名。让我们借助一个例子快速理解这 个算法的基础知识。
3.1. PageRank 算法
假设我们有 4 个网页 - w1,w2,w3 和 w4。这些网页包含指向其它网页的链接。但其中有些页面可能没有指 向其它网页的链接 - 这些网页被称为悬空页面(dangling pages)。
网页 w1 有指向网页 w2 和 w4 的链接
网页 w2 有指向网页 w3 和 w1 的链接
网页 w4 有指向网页 w1 的链接
网页 w3 没有指向其它网页的链接,因此它是一个悬空网页(dangling page)
为了对这些页面进行排名,我们必须计算一个称为 PageRank score 的分数。该分数是用户访问该页面的概率。 为了获得用户从一个页面跳转到另一个页面的概率,我们创建一个 n 行 n 列的方阵 M,其中 n 是网页的数量。
该矩阵的每个元素表示用户从一个网页跳转到另一个网页的概率。例如,下图高亮的单元格表示从网页 w1 跳 转到网页 w2 的概率。
网页跳转概率的初始化方法如下:
从页面 i 跳转到页面 j 的概率,即 M[i][j] ,用 1 /(网页 wi 中的不重复的总链接数)初始化
如果页面 i 和 j 之间没有链接,则概率将初始化为 0
如果用户访问的是悬空页面,则假设他跳转到其它任何页面的概率都相等。因此,M[i][j] 将用 1 /(网 页总数)初始化
因此,在我们的例子中,矩阵 M 将初始化如下:
该矩阵中的值将不断迭代更新,以进行***的网页排名。
4. TextRank 算法<