说到SEO优化,那么第一次反应就是关键词的排名。很多人对于关键词的认知就是我在TDK中突出的词,或者把一个词在文章中突出重复,提升这个词的密度就可以让搜索引擎认为这个词是这个页面的关键词,然后一个词是否能成为关键词,并不是简单的重复就可以实现的,更多的是参考TF-IDF算法值来确定一个词是否成为关键词。
什么是TF-IDF
TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率).是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
上述引用总结就是, 一个词语在一篇文章中出现次数越多, 同时在所有文档中出现次数越少, 越能够代表该文章.这也就是TF-IDF的含义.
词频 (term frequency, TF) 指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被归一化(一般是词频除以文章总词数), 以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否。)
但是, 需要注意, 一些通用的词语对于主题并没有太大的作用, 反倒是一些出现频率较少的词才能够表达文章的主题, 所以单纯使用是TF不合适的。权重的设计必须满足:一个词预测主题的能力越强,权重越大,反之,权重越小。所有统计的文章中,一些词只是在其中很少几篇文章中出现,那么这样的词对文章的主题的作用很大,这些词的权重应该设计的较大。IDF就是在完成这样的工作.
TF-IDF算法计算公式
TF计算公式
逆向文件频率 (inverse document frequency, IDF) IDF的主要思想是:如果包含词条t的文档越少, IDF越大,则说明词条具有很好的类别区分能力。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。
2.IDF计算公式
某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。
3.TF-IDF算法计算公式
TF−IDF=TF∗IDF
TF-IDF值越大,则这个词成为一个关键词的概率就越大。
TF-IDF算法实例
以《亚洲的网络技术》为例,假定该文长度为1000个词,"亚洲"、"网络"、"技术"各出现20次,则这三个词的"词频"(TF)都为0.02。 然后,搜索Google发现,包含"的"字的网页共有250亿张(假定这就是中文网页总数),包含"亚洲"的网页共有62.3亿张,包含"网络"的网页为0.484亿张,包含"技术"的网页为0.973亿张。则它们的逆文档频率(IDF)和TF-IDF的计算结果如下:
从上表可见,"网络"的TF-IDF值最高,"技术"其次,"亚洲"最低。(如果还计算"的"字的TF-IDF,那将是一个极其接近0的值。)所以,如果只选择一个词,"网络"就是这篇文章的关键词。 除了自动提取关键词,TF-IDF算法还可以用于许多别的地方。比如,信息检索时,对于每个文档,都可以分别计算一组搜索词("亚洲"、"网络"、"技术")的TF-IDF,将它们相加,就可以得到整个文档的TF-IDF。这个值最高的文档就是与搜索词最相关的文档。 TF-IDF算法的优点是简单快速,结果比较符合实际情况。缺点是,单纯以"词频"衡量一个词的重要性,不够全面,有时重要的词可能出现次数并不多。而且,这种算法无法体现词的位置信息,出现位置靠前的词与出现位置靠后的词,都被视为重要性相同,这是不正确的。(一种解决方法是,对全文的第一段和每一段的第一句话,给予较大的权重。)
TF-IDF算法不足
TF-IDF 算法会倾向于选出某一特定文档内的高频词语,同时该词语在整个文档集合中分布是比较集中的。因此,TF-IDF算法倾向于过滤掉常见的词语,保留“独有”词语。但是这也造成了TF-IDF算法的缺陷。 因为IDF的主要思想是:如果包含词条t的文档越少,也就是n越小,idf越大,则说明词条t 具有很好的类别区分能力。如果某一文档C中包含词条t的文档数为m, 而其他类包含t的文档总数为k,显然所有包含t的文档数n = m + k, 当m大的时候,n也大,按照IDF公式得到的IDF的值会小,就说明该词条t 类别区分能力不强。但实际上,如果一个词条在一个类的文档中频繁出现,则说明该词条能够很好地代表这个类的文本特征,这样的词条应该给它们赋予较高的权重,并选来作为该类文本的特征词,以区别于其他类的文档。
比如对于如下几个短文本:
1、鲜花多少钱?
2、白百合多少钱?
3、月季多少钱?
4、香蕉多少钱?
如果按照TF-IDF算法,鲜花、香蕉这些主体词会成为关键词,但是从这些语句的总体来看,他们又都属于询问价格的类型,所以“多少钱”应该成为关键词。这就是IDF的不足之处。
改进的方法可以通过改变文档结构,比如将上述短文本归并为一个文档,这样就可以在增加TF值的同时,也增加IDF值。但是这样就会增加模型的计算成本,需要大量的人为经验加入其中。