TextRank 算法的来源
-
在介绍 TextRank 算法之前,我们先来简单回顾一下著名的 PageRank 算法。
-
PageRank 算法:通过计算网页链接的数量和质量来评估网页的重要性,算法发明人即谷歌的两位联合创始人之一的拉里·佩奇 (Larry Page)。最初被应用在搜索引擎优化操作中。
-
联想思维:PageRank 算法其实是借鉴了学术界评价学术论文重要性的通用方法 -"影响因子", 可以直观的理解为"该论文被引用的次数".
-
这样就可以很自然的得到 PageRank 的核心思想:
- 如果一个网页被很多其他网页连接到的话,说明这个网页比较重要,也就是 PageRank 值会比较高.
- 如果一个 PageRank 值很高的网页链接到另一个网页,那么被链接到的那个网页的 PageRank 值也会相应的被提高.
TextRank 算法的概念
-
对比于衡量网页重要性的 PageRank 算法,TextRank 算法用于衡量哪些单词是关键词,类比之下的算法思想也就很好理解了:
- 如果一个单词出现在很多单词的后面,就是它和很多单词有关联,那么说明这个单词比较重要.
- 如果一个 TextRank 值很高的单词后面跟着另一个单词,那么后面这个单词的 TextRank 值也会相应的被提高.
-
如果对 TextRank 更深的理论感兴趣,可以直接查询原始论文,地址如下:
TextRank 算法代码实践
- 在本小节中,我们仅以示例代码跑通几段小程序,让同学们掌握如何具体在代码层面用 TextRank.
- 关键词抽取 (keyword extraction)
- 关键短语抽取 (keyphrase extraction)
- 关键句抽取 (sentence extraction)
3.1 关键词抽取
-
关键词抽取:是指从文本中确定一些能够描述文档含义的关键术语的过程.
-
对关键词抽取而言,用于构建顶点集的文本单元可以使句子中的一个或多个字。根据这些字之间的关系构建边.
-
根据任务的需要,可以使用语法过滤器 (syntactic filters) 对顶点集进行优化。语法过滤器的主要作用是将某一类或者某几类词性的字过滤出来作为顶点集.
-
在真实的企业场景下,应用 TextRank 一般都直接采用基于 textrank4zh 工具包来说辅助工程.
# coding=utf-8 # 导入 textrank4zh 的相关工具包
from textrank4zh import TextRank4Keyword, TextRank4Sentence
# 导入常用工具包
import pandas as pd
import numpy as np
# 关键词抽取
def keywords_extraction(text):
# allow_speech_tags : 词性列表,用于过滤某些词性的词
tr4w = TextRank4Keyword(allow_speech_tags=[, , , , , ])
tr4w.analyze(text=text, window=, lower=, vertex_source=, edge_source=, pagerank_config={: , })
keywords = tr4w.get_keywords(num=, word_min_len=)
keywords


