SEO算法之TF-IDF算法

SEO基础知识 phpacg 2年前 (2018-05-04) 214次浏览

  SEO算法之TF-IDF算法

  1、TF-IDF算法概念:

  TF-IDF(term frequency–inverse document

frequency)是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评价一字词关于一个文件集或一个语料库中的其中一份文件的重要水平。字词的重要性随着它在文件中出现的次数成正比添加,但同时会随着它在语料库中出现的频率成正比下降。TF-IDF加权的各种方式常被搜索引擎运用,作为文件与用户查询之间相关水平的度量或评级。除了TF-IDF以外,因特网上的搜索引擎还会运用基于连结剖析的评级方法,以确定文件在搜索结果中出现的顺序。

  TF-IDF(词频-逆文档频率)算法是一种统计方法,用以评价一字词关于一个文件集或一个语料库中的其中一份文件的重要水平。字词的重要性随着它在文件中出现的次数成正比添加,但同时会随着它在语料库中出现的频率成正比下降。该算法在数据开掘、文本处置和信息检索等范围失掉了普遍的运用,如从一篇文章中找到它的关键词。

  TFIDF的主要思想是:假设某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则以为此词或许短语具有很好的类别区分才干,适宜用来分类。TF-IDF实践上就是

TF*IDF,其中 TF(Term Frequency),表示词条在文章Document 中出现的频率;IDF(Inverse Document

Frequency),其主要思想就是,假设包括某个词 Word的文档越少,则这个词的区分度就越大,也就是 IDF

越大。关于如何获取一篇文章的关键词,我们可以计算这边文章出现的一切名词的 TF-IDF,TF-IDF越大,则说明这个名词对这篇文章的区分度就越高,取

TF-IDF 值较大的几个词,就可以当做这篇文章的关键词。

  2、TF-IDF算法原理

  在一份给定的文件里,词频 (term frequency, TF)

指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被归一化(分子普通小于分母

区别于IDF),以防止它倾向长的文件。(同一个词语在长文件里能够会比短文件有更高的词频,而不论该词语重要与否。)

  逆向文件频率 (inverse document frequency, IDF)

是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包括该词语之文件的数目,再将失掉的商取对数失掉。

  某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以发生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉罕见的词语,保管重要的词语。

  TFIDF的主要思想是:假设某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则以为此词或许短语具有很好的类别区分才干,适宜用来分类。TFIDF实践上是:TF

* IDF,TF词频(Term Frequency),IDF反文档频率(Inverse Document

Frequency)。TF表示词条在文档d中出现的频率(另一说:TF词频(Term

Frequency)指的是某一个给定的词语在该文件中出现的次数)。IDF的主要思想是:假设包括词条t的文档越少,也就是n越小,IDF越大(见后续公式),则说明词条t具有很好的类别区分才干。假设某一类文档C中包括词条t的文档数为m,而其它类包括t的文档总数为k,显然一切包括t的文档数n=m+k,当m大的时分,n也大,依照IDF公式失掉的IDF的值会小,就说明该词条t类别区分才干不强。(另一说:IDF反文档频率(Inverse

Document

Frequency)是指果包括词条的文档越少,IDF越大,则说明词条具有很好的类别区分才干。)但是实践上,有时分,假设一个词条在一个类的文档中频繁出现,则说明该词条可以很好代表这个类的文本的特征,这样的词条应该给它们赋予较高的权重,并选来作为该类文本的特征词以区别与其它类文档。这就是IDF的缺乏之处.

  在一份给定的文件里,词频(term frequency,TF)指的是某一个给定的词语在该文件中出现的频率。这个数字是对词数(term

count)的归一化,以防止它倾向长的文件。(同一个词语在长文件里能够会比短文件有更高的词数,而不论该词语重要与否。)关于在某一特定文件里的词语

  来说,它的重要性可表示为:

  以上式子中

  是该词

  在文件

  中的出现次数,而分母则是在文件

  中一切字词的出现次数之和。

  逆向文件频率(inverse document

frequency,IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包括该词语之文件的数目,再将失掉的商取对数失掉:

  其中

  |D|:语料库中的文件总数

  :包括词语

  的文件数目(即

  的文件数目)假设该词语不在语料库中,就会招致被除数为零,因此普通状况下运用

  然后

  某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以发生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉罕见的词语,保管重要的词语。

  3、TF-IDF算法应用Scikit-Learn完成

  由于 TF-IDF

在文本数据开掘时十分常用,所以在Python的机器学习包中也提供了内置的TF-IDF完成。主要运用的函数就是TfidfVectorizer(),来看一个复杂的例子。

  最终的结果是一个 4×94×9 矩阵。每行表示一个文档,每列表示该文档中的每个词的评分。假设某个词没有出如今该文档中,则相应位置就为 0 。数字 9

表示语料库里词汇表中一共有 9 个(不同的)词。例如,你可以看到在文档1中,并没有出现 and,所以矩阵第一行第一列的值为 0 。单词 first

只在文档1中出现过,所以第一行中 first 这个词的权重较高。而 document 和 this 在 3 个文档中出现过,所以它们的权重较低。而 the 在

4 个文档中出现过,所以它的权重最低。

  最后需求说明的是,由于函数 TfidfVectorizer()

有很多参数,我们这里仅仅采用了默许的方式,所以输入的结果能够与采用前面引见的(最基本最原始的)算法所得出之结果有所差异(但数量的大小关系并不会改动)。有兴味的读者可以参考文献[4]来了解更多关于在Scikit-Learn中执行

TF-IDF 算法的细节。

  4、TF-IDF算法总结

  这算法看似复杂,实践上在SEO搜索引擎优化啊,文本分类方面用的挺多的,面试时也经常作为信息论知识储藏来出题。http://www.zzxnet.com/

喜欢 (0)