如何导出TF-IDF框架概述和SEO优化
来源:
2021-03-25
如何导出TF-IDF框架概述和SEO优化
这不是对搜索引擎排序基本TF-IDF框架的普及文章、网络上偶尔看到的一般化内容,甚至是断章取义的内容,而是结合搜索引擎的理论,自己观察到的很多事例总结出来的实质性知识。可能比较难理解,但请相信我。用于理解的时间绝对有价值。
本文首先引用张俊林在《这就是搜索引擎》对TF-IDF框架的概述。因为原文长,所以在这里概述我认为的要点,可能会有概括的缺点,所以建议进一步详细的内容。原文
(注:“TF-IDF”或“TF*IDF”是写作习惯问题,书上使用TF*IDF并不意味着两者有差异。)
TF-IDF原理概述
用户在搜索引擎中搜索单词时,为了与索引库中的文档匹配的计算,删除单词,拿出与单词最相关的一定数量的文档,参与后续的排名计算。其中,“最相关”量化指标成为“权重”,对于大多数搜索引擎来说,TF*IDF框架是权重计算中更重要的部分。主要考虑事项是单词频率TF和反向文档频率IDF。
词频系数(TF)
TF计算系数指示单词频率,即一个单词在文档中出现的次数。一般来说,单词频率越高,文档看起来就越与该单词相关,因此必须为该单词赋予更高的权重。
具体计算词频系数时,可以根据起点采用不同的计算公式。最简单的方法是直接使用单词频率。例如,一个文档中出现5次的单词的TF值为5。
词频系数的变形计算公式为W=1 log(TF)
词频数字TF使用Log值作为词频加权。例如,单词在文档中出现4次,单词频率系数权重为3,公式中的数字1用于平滑计算。这是因为,如果TF值为1时采取Log后值为0,即原来出现过一次的单词,按这种方式计算,就会认为这个单词从未出现在文档中,因此为了避免这种情况,将平滑到1。对单词频率采取Log的理由是,即使一个单词出现10次,在计算特征权重时,也要计算比一次出现情况大10倍的权重,因此,需要添加Log机制来抑制这种巨大的差异。
还有考虑文档长度的更重要的变形计算公式。这是因为长文档中所有单词的TF值通常比短文档高。这边不清楚。
反向文档频率系数(IDF)IDF是指仅与指定文档集合相关的文档集合范围的全局元素,而不是特定文档。因此,IDF考虑的不是文档本身的特征,而是特征单词之间的相对重要性。
计算方式如下:IDF=log(N/n)
其中n表示文档集合中的文档总数,n表示出现特征单词的文档数,即文档频率。公式表示,当更多文档包含单词时,IDF值越低,区分不同文档的能力就越差。
TF*IDF框架
TF-IDF值的计算方式如下:
Weight=TF * IDF
这个值越大,文档与该单词的关系就越大。
百度的实际运用
百度的情况下,TF-IDF框架自然适用。但是,在个别索引单词排名中,TF-IDF不是关键词排名的决定性因素。百度的排名本质是概率搜索模型。
根据我以前对百度做的简单统计分析,百度对TF计算至少使用了上述对数平滑计算方法。除上述外,如果一个关键词的出现次数超过一定阈值,则该TF值会随着出现次数的增加继续以Log的形式下降排名。
由于存在该机制,一页上每个单词的TF-IDF值都有不同的上限。这对SEO来说是一个非常重要的概念。
自己实际体验TF-IDF计算的最简单方法
虽然不准确,但首先用TF值记录一个句子中一个关键词出现的次数,然后在谷歌上搜索,将该单词的搜索结果总数作为DF值。然后将TF除以DF,得到最简单的TF-IDF值。
这些计算可能非常粗糙,没有实际意义,但只要进行一次实际计算,就能更容易地理解TF-IDF。
SEO派生
例如,“喷雾器价格”一词被百度分为“喷雾器”和“价格”两个词。(排除语,分词与否也要取决于数据,而不是自己的直觉。以后有机会的话,我会用我最近用过的一些方法。但是有些人经常在百度快照中看到关键词强调部分来判断分词,没有任何事实基础,没有任何价值。)。
请到谷歌分别搜索“喷气式飞机”和“价格”两个词。“喷气式飞机”的结果约为20,600,000个,“价格”约为1,850,000,000个。(不去百度的原因是百度显示搜索结果上限为1亿个。)在这种情况下,即使“喷气式飞机”和“价格”两个词在一个文档中出现相同的次数,由于IDF系数的影响,权重也可能远远低于电子。
因此,一般来说,只有“喷气式飞机”一词权重高的页面才有机会在“喷气式飞机价格”一词的排名中取得好成绩,与“价格”一词权重的关系非常小。价格名言因为无论如何,“价格”一词的权重不能通过TF-IDF规则得到太多。
所以至少对百度来说,如果想单独对“喷气式飞机价格”一词进行排名,通常需要使用“喷气式飞机”排名本来就很高的着陆页。否则会比较困难。
最后
被限制在自己的SEO水平,SEO是否应该对搜索引擎有深刻的了解,至少主观上认为SEO太深入搜索引擎原理是没有意义的。但是如上所述,如果没有对搜索引擎最经典的基本算法做出任何努力,如何与搜索引擎打交道呢?