搜索引擎算法之TF-IDF算法

提到各种搜索引擎算法,很是枯燥,大家似乎更关心,网站如何可以快速获取流量???

算了,反正我也解答不了这个问题,还是继续写我的搜索引擎算法解读系列吧!!!

回到正题,搜索引擎的目标是为用户提供:更全、更快、更准的搜索结果,那么今天要讲到的tf-idf算法,就是“更准”这一环节。

注:有些人问过,为什么讲的算法或者好几个算法,都有可能是解决一个环节?比如“更准”这里。

话说搜索引擎对网站排名可能有几百个影响因素,为了更大限度取得“更准”结果,肯定是多角度、多方面的综合判断,而不是单一的因素吧??

一、IF-IDF算法是什么?

“IF-IDF(英语:term frequency–inverse document frequency(词频-逆向文档频率))是一种用于信息检索与文本挖掘的常用加权技术。

IF-IDF是一种统计方法,用以评估一字词对于一个文档集或一个语料库中的其中一份文档的重要程度。

字词的重要性随着它在文档中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。”——维基百科

好吧,这不是什么高大上的东西,简单而言,IF-IDF算法就是统计出一篇文章出现次数最多的词,并对这些词做一个加权处理,从而得知这篇文章的“中心主题”是什么。

如果还是无法理解,请往下看。

二、TF-IDF算法计算公式

维基百科上提到过,TF(term frequency)是词频的英文单词缩写,词频指的就是一篇文章中每个词出现的次数。比如下面这句话:

text='大仙是最帅的,大仙的博客是大仙seo,大仙的公众号是大仙的小黑屋,最帅的你还喜欢seo么'

我们可以看出来,“大仙(5)”、“seo(2)”“最帅(2)”是出现频率最高的3个词。

那么想要计算这句话中,3个词的TF值,可以使用TF词频计算公式:

TF = 某个词在文档中出现的次数 / 文档的总词数

TF值计算结果如下:

TF值计算结果

了解完TF值,我们再来看IDF。

IDF(inverse document frequency)是逆向文档的英文缩写,是对已计算出词频的词,做加权处理。

刚上面那句话,我们已经计算出词频最高的分别是“大仙”、“seo”、“最帅”3个词。

那么,这是否可以说明“大仙”就会比其它两个词更重要?

“seo”“最帅”两个词TF值相同,是否能说明,这2个词的重要性又是一样的?

这里,就涉及到计算他们的IDF值,IDF值计算公式:

IDF = log( 搜索引擎文档总数 / 出现某个词的文档总数)

IF-IDF = TF*IDF

假设:搜索引擎文档总数是100,000,00,我们需要计算出“seo”和“最帅”两个词的IDF值。

ps:log为2(log表示取得到值的一半)

IDF值计算结果如下:

IDF值

可以看出,“大仙”一词的IDF值最高,这是因为如果某个词比较少见,但是它在这篇文章中多次出现,那么它很可能就反映了这篇文章的主题,正是我们所需要的关键词。

IDF值的本意,就是降低文档中高频关键词的权重,给那些不常见的词(文档总数少的)更高的“权重”。

而“大仙”一词的文档总数最少,因此会给予更高的权重。

而常见的词,会给予更低的权重,甚至我们通过Python发现,像“是,的,么,你”这些词(统称为停用词,需要被过滤),直接被忽略,即便是给予权重也是近乎于0。

使用jieba分词实现TF-IDF算法(练习版):

又有人可能会说了,虽然“大仙”一词的IDF值最高,但是文档的关键词最终参考的是TF-IDF值;“大仙”一词显示最低,因此他不是本文的主要关键词。

这样说当然没错了,因为“大仙”一词的词频(TF)出现次数过高,导致最后得分降低(这就是关键词布局不当,TF值堆砌过度导致),假如词频相同的情况,你会发现最高的就是“大仙”了。

是不是有爱钻牛角尖的同学发现了什么秘密?

三、TF-IDF算法在seo优化的应用

1.合理的添加关键词,提高页面相关性
举个栗子,比如我有个页面的关键词是“大仙seo”,我想提高页面与用户搜索词的相关性,不是拼命的塞“大仙seo”,而是合理的布置“大仙”一词,就能很好的提高页面相关性。

适当堆砌IDF值更高的词,更有利于提高页面的相关性。

2.控制文章字数,少即是多
虽然我们一直说,长文章让蜘蛛更青睐,不过前提是,你需要合理的控制好关键词。

比如你写篇文章讲的是“牛仔裤的制作工艺”,结果你狼性大发,讲完又大篇幅度的讲裙子的制作工艺,那就得不偿失啦!

内容越多越丰富,布局关键词就更应该注意,控制不当则会稀释掉关键词的“TF值”,降低主关键词与页面的相关性。

注:别像杠精一样说写个一两百字的文章,为了防止这种现象还有其它算法加入呢。

TF-IDF算法也有着自己的缺陷,单凭“词频”判断该词的重要性,显示是不够全面的。

同时,词出现的位置,靠前还是靠后,对关键词的判断都是非常重要,这里就会用到我们之前提到过的“倒排索引算法”。

参考文档:

维基百科:tf-idf》;

TF-IDF算法介绍及实现》;

赞赏

微信赞赏支付宝赞赏

相关文章