(九)通俗易懂理解——TF-IDF与TextRank

TF-IDF与TextRank详解

这两个可以说自然语言处理当中比较经典的关键词提取算法,虽然简单,但是应用还是相当广泛,面试中被问起这两个,不能说清楚也是一件很尴尬的事情。废话不多说,直接开始。

1. TF-IDF简介

TF-IDF(Term Frequency/Inverse Document Frequency)是信息检索领域非常重要的搜索词重要性度量;用以衡量一个关键词w对于查询(Query,可看作文档)所能提供的信息。词频(Term Frequency, TF)表示关键词w在文档Di中出现的频率:

 

其中,count(w)为关键词w的出现次数,|Di|为文档Di中所有词的数量。逆文档频率(Inverse Document Frequency, IDF)反映关键词的普遍程度——当一个词越普遍(即有大量文档包含这个词)时,其IDF值越低;反之,则IDF值越高。IDF定义如下:

其中,N为所有的文档总数,I(w,Di)表示文档Di是否包含关键词,若包含则为1,若不包含则为0。若词w在所有文档中均未出现,则IDF公式中的分母为0;因此需要对IDF做平滑(smooth):

关键词w在文档Di的TF-IDF值:

从上述定义可以看出:

  • 当一个词在文档频率越高并且新鲜度高(即普遍度低),其TF-IDF值越高。

  • TF-IDF兼顾词频与新鲜度,过滤一些常见词,保留能提供更多信息的重要词。

2. TextRank简介

TextRank由Mihalcea与Tarau于EMNLP'04 [1]提出来,其思想非常简单:通过词之间的相邻关系构建网络,然后用PageRank迭代计算每个节点的rank值,排序rank值即可得到关键词。PageRank本来是用来解决网页排名的问题,网页之间的链接关系即为图的边,迭代计算公式如下:

其中,PR(Vi)表示结点Vi的rank值,In(Vi)表示结点Vi的前驱结点集合,Out(Vj)表示结点Vj的后继结点集合,d为damping factor用于做平滑。

网页之间的链接关系可以用图表示,那么怎么把一个句子(可以看作词的序列)构建成图呢?TextRank将某一个词与其前面的N个词、以及后面的N个词均具有图相邻关系(类似于N-gram语法模型)。具体实现:设置一个长度为N的滑动窗口,所有在这个窗口之内的词都视作词结点的相邻结点;则TextRank构建的词图为无向图。下图给出了由一个文档构建的词图(去掉了停用词并按词性做了筛选):

考虑到不同词对可能有不同的共现(co-occurrence),TextRank将共现作为无向图边的权值。那么,TextRank的迭代计算公式如下:

可以看出,该公式仅仅比PageRank多了一个权重项Wji,用来表示两个节点之间的边连接有不同的重要程度。

在这里算是简单说明了TextRank的内在原理,以下对其关键词提取应用做进一步说明。

TextRank用于关键词提取的算法如下:

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

2)对于每个句子Si属于T,进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词,如名词、动词、形容词,即

,其中 ti,j 是保留后的候选关键词。

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

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

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

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

2.1 TextRank算法提取关键词短语

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

2.2 TextRank生成摘要

  将文本中的每个句子分别看做一个节点,如果两个句子有相似性,那么认为这两个句子对应的节点之间存在一条无向有权边。考察句子相似度的方法是下面这个公式:

 

 

公式中,Si,Sj分别表示两个句子词的个数总数,Wk表示句子中的词,那么分子部分的意思是同时出现在两个句子中的同一个词的个数,分母是对句子中词的个数求对数之和。分母这样设计可以遏制较长的句子在相似度计算上的优势。

我们可以根据以上相似度公式循环计算任意两个节点之间的相似度,根据阈值去掉两个节点之间相似度较低的边连接,构建出节点连接图,然后计算TextRank值,最后对所有TextRank值排序,选出TextRank值最高的几个节点对应的句子作为摘要。

 

3.对比总结:

  • TextRank与TFIDF均严重依赖于分词结果——如果某词在分词时被切分成了两个词,那么在做关键词提取时无法将两个词黏合在一起(TextRank有部分黏合效果,但需要这两个词均为关键词)。因此是否添加标注关键词进自定义词典,将会造成准确率、召回率大相径庭。

  • TextRank的效果并不优于TFIDF。

  • TextRank虽然考虑到了词之间的关系,但是仍然倾向于将频繁词作为关键词。

此外,由于TextRank涉及到构建词图及迭代计算,所以提取速度较慢。

发现以上两种方法本质上还是基于词频,这也导致了我们在进行自然语言处理的时候造成的弊端,因为我们阅读一篇文章的时候,并不是意味着主题词会一直出现,特别对于中文来说,蕴含的中心思想也往往不是一两个词能够说明的,这也是未来自然语言方面要解决的基于语义的分析,路还很长。

 

参考文章:https://www.cnblogs.com/en-heng/p/6626210.html

参考文章:https://www.cnblogs.com/xueyinzhe/p/7101295.html

### 回答1: tf-idftextrank算法融合可以提高文本摘要、关键词提取等自然语言处理任务的效果。其中,tf-idf算法可以计算词语在文本中的重要程度,而textrank算法则可以通过词语之间的关系来确定其重要程度。将两种算法融合起来,可以更全面地考虑词语的重要性,从而提高文本处理的准确性和效率。具体实现方式可以是先使用tf-idf算法进行关键词提取,然后再使用textrank算法对提取出的关键词进行排序和筛选,以得到更准确的结果。 ### 回答2: tf-idfTextRank是常见的文本分析算法。它们可以用于文本相似度计算、关键词抽取等自然语言处理任务。将这两种算法融合起来,可以得到更加准确的结果。 首先,我们来介绍一下tf-idf算法。它是一种用于确定文本中词语重要性的统计方法。一般来说,一个词在一篇文章中出现的次数越多,它对这篇文章的重要性就越小,因为它可能是一些无意义的单词。但是,如果一个词语在文集中出现的频率比较低,但在某篇文章中出现的频率比较高,那么它就是这篇文章的关键词之一。这就是tf-idf算法的基本原理。 然后是TextRank算法。它是一种用于文本摘要和关键词抽取的无监督方法。它将文本表示为图形,其中每个单词是一个节点,边表示它们之间的相似性。然后,通过计算节点之间的权重来确定关键词或摘要。 将这两种算法融合的一种方法是,首先使用tf-idf算法确定文本中的关键词。然后使用TextRank算法来确定这些关键词之间的相似性。具体来说,可以创建一个由关键词表示的图形,利用TextRank算法计算节点之间的权重,以得到文本的摘要或关键词。 另一种方法是将tf-idfTextRank算法结合起来,得到一种更加综合的算法。具体来说,可以先使用tf-idf算法确定文本中的关键词,然后将这些词和它们的权重作为节点和边的输入,利用TextRank算法计算它们之间的相似性。这样可以得到更加准确的文本摘要或关键词。 总之,将tf-idfTextRank算法融合起来可以得到更加准确的文本分析结果,既可以用于关键词抽取,也可以用于文本摘要。不同的融合方法可以根据实际需要进行选择。 ### 回答3: TF-IDF是一种用于文本挖掘和信息检索的算法,用于计算文本中单词的重要性。它量化了一个词语在文本中的重要程度,计算方法是将该词语在文本中出现的次数除以文本的总词数,再对其取对数。但是TF-IDF算法并未考虑词语之间的关联性,因此可能存在某些词语被高估或低估的情况。为了解决这个问题,一种新的算法Textrank被提出来,它是一种基于图的算法,利用词语之间的关联性来计算一个词语的权重。Textrank算法将文本中的词语看作图中的节点,将它们之间的关联看作边,通过PageRank算法进行迭代计算,得到每个节点的权重。Textrank算法考虑了文本中单词之间的关联性,因此能更准确地评估单词的重要程度。 将TF-IDF算法和Textrank算法融合起来可以充分利用它们各自的优点。融合的具体实现方式是将文本中的词语看作图中的节点,并且将其初始权重设为该词语的TF-IDF值。然后使用Textrank算法进行迭代计算,得到每个节点的权重。这样可以兼顾词语出现的频率以及其在整个文本中的重要性,同时考虑词语之间的关联性,从而更准确地评估每个词语的权重。因此,将TF-IDFTextrank算法融合起来可以提高文本挖掘和信息检索的准确性和效率,使得算法更加精准地定位到用户所需要的信息。同时,融合后的算法也在自然语言处理和信息提取等领域有着广泛应用的前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值