赞
踩
TF-IDF 在大型语料库上的统计类似于一种学习过程,假如我们没有这么大型的语料库或者存储 IDF的内存,同时又想改善词频统计的效果该怎么办呢?此时可以使用 TextRank 算法。
TextRank基本思想来源于Google的PageRank算法。这种算法是1997年,Google创始人拉里.佩奇和谢尔盖.布林在构建早期的搜索系统原型时提出的一种链接分析算法,基本思想有两条:
1)链接数量。一个网页被越多的其他网页链接,说明这个网页越重要.
2)链接质量。一个网页被一个越高权值的网页链接,也能表明这个网页越重要.
与TF-IDF需要在语料库上计算IDF(逆文档频率)不同,TextRank利用一篇文档内部的词语间的共现信息(语义)便可以抽取关键词。
一些简单实用的无监督关键词提取算法,由简入繁分别是词频、 TF-IDF和TextRank。
根据运行时只需利用一个文裆即可得出关键词,还是需要考虑多份文档,提取算法可分为单文档和多文档算法。单文档算法能够独立分析每篇文章的关键词,包括词频和TextRank。多文档算法利用了其他文档中的信息来辅助决定当前文档的关键词,同时也容易受到噪声干扰,典型例子是著名的TF-IDF。
除了用于提取关键词,TextRank还可用于提取关键句。由于一篇文章中几乎不可能出现相同的两个句子,所以朴素的PageRank在句子颗粒度上行不通。为了将 PageRank 利用到句子颗粒度上去,我们引入BM25算法衡量句子的相似度,改进链接的权重计算。
将PageRank应用到关键词提取,无非是将单词视作节点而已。另外,每个单词的外链来自自身前后固定大小的窗口内的所有单词。
这么做的目的是模拟"解释说明"这种语言现象,窗口内的词语常常用来解释中心词语,相当于为中心词语投了一票,每一票的权重等于窗口词语的权重被投出去的所有票平分。中心词这种左右搭配越多,给自己投票的词语就越多。另一方面,单词频次越高,给它投票的机会就越多,这点与词频统计类似。然而在TextRank中,高频词不一定权重高,因为每一票还必须考虑投票者的权重。
1️⃣:把给定的文本 T 按照完整句子进行分割,即:
2️⃣:对于每个句子,进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词,如名词、动词、形容词,其中 是保留后的候选关键词。
3️⃣:构建候选关键词图 G = (V,E),其中 V 为节点集,由2️⃣生成的候选关键词组成,然后采用共现关系(Co-Occurrence)构造任两点之间的边,两个节点之间存在边仅当它们对应的词汇在长度为K 的窗口中共现,K表示窗口大小,即最多共现 K 个单词。
4️⃣:根据 TextRank 的公式,迭代传播各节点的权重,直至收敛。
5️⃣:对节点权重进行倒序排序,从而得到最重要的 T 个单词,作为候选关键词。
6️⃣:由5️⃣得到最重要的 T 个单词,在原始文本中进行标记,若形成相邻词组,则组合成多词关键词。
例如:
“ TextRank是一种用于文本的基于图的排序算法。” 声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。