TF-IDF与TextRank分析

TF-IDF

什么是TF-IDF?

TF-IDF(Term Frequency — Inverse Document Frequency)代表词语频率反文档频率,tf-idf权重是信息检索和文本挖掘中经常使用的权重。该权重是一种统计量度,用于评估单词对集合或语料库中文档的重要性。重要性与单词在文档中出现的次数成正比地增加,但是被单词在语料库中的出现频率所抵消。

TF-IDF计算

通常,TF-IDF权重由两个项组成:

第一个当前需求计算词频率(TF)。一个单词在文档中出现的次数除以该文档中单词的总数;
第二项是文档的逆向频率(IDF),用语料库中文档数除以出现特定术语的文档数的对数来计算。

  • TF:词语频率,它测量词语在文档中出现的频率。由于每个文档的长度都不同,因此一个词语在长文档中的出现次数可能会比短文档中出现的次数更多。因此,作为标准化的一种方式,经常将词语频率除以文档长度(也就是文档中词语的总数):

TF(t)=\frac{词语t在文档中出现的次数}{当前文档中的总词语次数}

  • IDF:逆文档频率,它衡量词语的重要性。在计算TF时,所有词语都被视为同等重要。但是,众所周知,某些词语(例如“is”,“of”和“that”)可能会出现很多次,但意义不大。因此,我们需要通过计算以下内容来权衡频繁项,同时按比例缩小稀有项:

IDF(t)= log_e{\frac{文档总数}{包含词语t的文档数}}

举例

考虑一个包含\scriptstyle 100个单词的文档,其中单词 \scriptstyle cat 出现\scriptstyle 3次。 那么\scriptstyle cat的词语频率(即tf)为\scriptstyle \frac{3}{100}=0.03。现在,假设我们有\scriptstyle 1000万个文档 ,其中一千个出现了\scriptstyle cat一词 。然后,反向文档频率(即idf)的计算公式为\scriptstyle lg\frac{10,000,000 }{1,000}=4。因此,Tf-idf权重是这些数量的乘积:\scriptstyle 0.03\times 4=0.12

为什么在机器学习中使用TF-IDF?

使用自然语言的机器学习面临一个主要障碍–它的算法通常处理数字,而自然语言则是文本。因此,我们需要将该文本转换为数字,或者称为文本矢量化。这是机器学习过程中用于分析数据的基本步骤,并且不同的矢量化算法会严重影响最终结果,因此您需要选择一种能够提供所需结果的算法。

将单词转换为数字后,以机器学习算法可以理解的方式将TF-IDF分数馈入诸如Naive BayesSupport Vector Machines之类的算法,从而大大改善了诸如单词计数之类的更基本方法的结果。

为什么这样做?简而言之,单词向量将文档表示为数字列表,而语料库的每个可能单词都带有一个。向量化文档是获取文本并创建这些向量之一,向量的编号以某种方式表示文本的内容。TF-IDF使我们能够提供一种将文档中每个单词与代表该文档中每个单词的相关性的数字相关联的方法。然后,具有相似且相关词的文档将具有相似的向量,这正是我们在机器学习算法中寻找的东西。

TF-IDF的应用

确定单词与文档或TF-IDF的相关性在许多方面都很有用,例如:

  • 信息检索

TF-IDF发明用于文档搜索,可用于提供与您要搜索的内容最相关的结果。假设您有一个搜索引擎,有人在寻找勒布朗。结果将按照相关性顺序显示。就是说,最相关的体育文章将排名较高,因为TF-IDF给勒布朗一词带来了更高的分数。

您遇到的每个搜索引擎都有可能在其算法中使用TF-IDF分数。

  • 关键字提取

TF-IDF对于从文本中提取关键字也很有用。怎么样?文档中得分最高的词与该文档最相关,因此可以将其视为该文档的关键字。非常简单。

TextRank

TextRank是一种用来做关键词提取的算法,也可以用于提取短语和自动摘要。因为TextRank是基于PageRank的,所以首先简要介绍下PageRank算法。

PageRank算法

PageRank设计之初是用于Google的网页排名的,以该公司创办人拉里·佩奇(Larry Page)之姓来命名。Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是经常被用来评估网页优化的成效因素之一。

PageRank通过互联网中的超链接关系来确定一个网页的排名,其公式是通过一种投票的思想来设计的:如果我们要计算网页A的PageRank值(以下简称PR值),那么我们需要知道有哪些网页链接到网页A,也就是要首先得到网页A的入链,然后通过入链给网页A的投票来计算网页A的PR值。这样设计可以保证达到这样一个效果:当某些高质量的网页指向网页A的时候,那么网页A的PR值会因为这些高质量的投票而变大,而网页A被较少网页指向或被一些PR值较低的网页指向的时候,A的PR值也不会很大,这样可以合理地反映一个网页的质量水平。那么根据以上思想,佩奇设计了下面的公式:

\begin{aligned} &\text { At } t=0 ,S\left(V_{i}, 0\right)=\frac{1}{N}\\ &\text { At each time step : }\\ &S\left(V _{i}, t+1\right)=(1-d)+d * \sum_{j \in I n\left(V_{i}\right)} \frac{1}{\left|\operatorname{Out}\left(V_{j}\right)\right|} S \left(P_{j}, t\right) \end{aligned}

该公式中,
\scriptstyle V_i:表示某个网页,
\scriptstyle V_j:表示链接到\scriptstyle V_i的网页(即\scriptstyle V_i的入链),
\scriptstyle S(V_j):表示网页\scriptstyle V_i的PR值,
\scriptstyle In(V_i):表示网页\scriptstyle V_i的所有入链的集合,
\scriptstyle Out(V_j):表示网页,
\scriptstyle d:表示阻尼系数,是用来克服这个公式中\scriptstyle d*后面的部分的固有缺陷用的:如果仅仅有求和的部分,那么该公式将无法处理没有入链的网页的\scriptstyle S值,因为这时,根据该公式这些网页的\scriptstyle S值为0,但实际情况却不是这样,所有加入了一个阻尼系数来确保每个网页都有一个大于0的\scriptstyle S值,根据实验的结果,在0.85的阻尼系数下,大约100多次迭代\scriptstyle S值就能收敛到一个稳定的值,而当阻尼系数接近1时,需要的迭代次数会陡然增加很多,且排序不稳定。
公式中\scriptstyle S(V_j)前面的分数指的是\scriptstyle V_j所有出链指向的网页应该平分\scriptstyle V_j\scriptstyle S值,这样才算是把自己的票分给了自己链接到的网页。
\scriptstyle t:表示为次数

PageRank举例运算


\begin{aligned} S\left(V _{i}, t+1\right)=(1-d)+d * \sum_{j \in I n\left(V_{i}\right)} \frac{1}{\left|\operatorname{Out}\left(V_{j}\right)\right|} S \left(P_{j}, t\right) \end{aligned}
S(B,t+1)=(1-0.85)+0.85\times[D+G+H+I+E+F+C]
S(B,t+1)=(1-0.85)+0.85\times[\frac{3.9}{2}+\frac{1.6}{2}+\frac{1.6}{2}+\frac{1.6}{2}+\frac{8.1}{3}+\frac{3.9}{2}+\frac{34.3}{1}]
迭代多次后就可以得到稳定的\scriptstyle S(B)
同理也可以得到\scriptstyle S(A)、S(D)……等等

Text Rank 算法

W S\left(V_{i}\right)=(1-d)+d * \sum_{j \in In\left(V_{i}\right)} \frac{w_{ji}}{\sum_{V_{k} \in Out\left(V_{j}\right)} w_{j k}} W S\left(V_{j}\right)

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

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

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

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

T=[S_1,S_2,……,S_m]

  • 2)对于每个句子\scriptstyle S_i属于\scriptstyle T,进行分词和词性标注处理,并过滤掉停用词,只保留指定词性的单词,如名词、动词、形容词,即
    S_i=[t_{i,1},{t_{i,2}},……,t_{i,n}]

其中 \scriptstyle t_{i,j}是保留后的候选关键词。

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

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

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

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

对比总结:

  • TextRank与TFIDF均严重依赖于分词结果——如果某词在分词时被切分成了两个词,那么在做关键词提取时无法将两个词黏合在一起(TextRank有部分黏合效果,但需要这两个词均为关键词)。因此是否添加标注关键词进自定义词典,将会造成准确率、召回率大相径庭。
  • TextRank的效果并不优于TFIDF。
  • TextRank虽然考虑到了词之间的关系,但是仍然倾向于将频繁词作为关键词。
    此外,由于TextRank涉及到构建词图及迭代计算,所以提取速度较慢。

参考

Tf-idf :: A Single-Page Tutorial - Information Retrieval

What is TF-IDF?

深度学习----NLP-TextRank算法详解

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

关键词提取算法TextRank

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350