【数据竞赛】“达观杯”文本智能处理挑战赛2

一、什么是TF-IDF:


       TF-IDF(Term Frequency-Inverse DocumentFrequency, 词频-逆文件频率),一种用于资讯检索和资讯探勘的常用加权技术。

       TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜寻引擎应用,作为文件与用户查询之间相关程度的度量或评级。

相关原理:
       词频TF(item frequency):某一给定词语在该文本中出现次数。该数字通常会被归一化(分子一般小于分母),以防止它偏向长的文件,因为不管该词语重要与否,它在长文件中出现的次数很可能比在段文件中出现的次数更大。

       需要注意的是有一些通用词对文章主题没有太大作用,如“的”“是”等,而有一些频率出现少的词如一些专业词更能表现文章主题,所以为词语设置权重,权重的设计满足:一个词预测主题的能力越强,权重越大,反之,权重越小。也就是说,一些词只在很少几篇文章中出现,那么这样的词对文章主题的判断能力很大,这些词的权重应该设计的较大。IDF完成这样的工作。

       逆向文件频率IDF(inverse document frequency):一个词语普遍重要性的度量。主要思想是:如果包含词条t的文档越少, IDF越大,则说明词条具有很好的类别区分能力。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。

相关公式:


计算TF:

计算IDF:

    注:此处分母+1是为了避免当所有文档都不包含该词时,分母为0的情况

计算TF-IDF:

       公式中,我们可以看出TF-IDF与一个词在文档中出现的次数成正比,与该词在整个语言中该出现的次数成反比。

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

示例:


  1)假如一篇文件的总词语数是100个,而词语“母牛”出现了3次,那么“母牛”一词在该文件中的词频就是3/100=0.03。一个计算文件频率 (DF) 的方法是测定有多少份文件出现过“母牛”一词,然后除以文件集里包含的文件总数。所以,如果“母牛”一词在1,000份文件出现过,而文件总数是10,000,000份的话,其逆向文件频率就是 log(10,000,000 / 1,000)=4。最后的TF-IDF的分数为0.03 *4=0.12。

 2)参考网址:http://www.ruanyifeng.com/blog/2013/03/tf-idf.html

  3)信息检索时,根据关键字k1,k2,k3进行搜索结果的相关性就变成TF1*IDF1 + TF2*IDF2 + TF3*IDF3。

 这个值越高的文章就是与搜索词最相关的文章。

 

二、TF-IDF算法实现

直接用 TfidfVectorizer 完成向量化与TF-IDF预处理。

from sklearn.feature_extraction.text import TfidfVectorizer

corpus = ["I come to China to travel",
		  "This is a car polupar in China",
		  "I love tea and Apple",
		  "The work is to write some papers in science"]

tfidf2 = TfidfVectorizer()
re = tfidf2.fit_transform(corpus)
print(re)

参考:

https://blog.csdn.net/qq_39493274/article/details/80460054 

https://blog.csdn.net/u012736685/article/details/89056111

猜你喜欢

转载自blog.csdn.net/qq_36671300/article/details/89061301
今日推荐