赞
踩
我们知道词频矩阵是将n-gram词的频率转成向量(频数放置相应维度),但我们可以很明显的发现问题,一些在很多文本中频繁出现的常用词(有些时候我们会将其当做停用词删掉)其权重会比较高,但是其实因为它几乎在每句话都会出现,故而其重要性也许并不如词频矩阵所表现的那样。
TF也就是我们所说的词频,而IDF指的是逆文本频率,IDF反映了一个词在所有文本中出现的频率,如果一个词在很多的文本出现,那么他的IDF值应该很低。
IDF(x)=log((N+1)/(N(x)+1))+1
其中N代表语料库中文本的总数(样本数),而N(x)代表语料库中有多少文本包含词x。 至于图片中分子分母包括取对数后加的1都是为了使IDF平滑(类似于加载分母上的eplcsion)
这时,我们的TF-IDF值就呼之欲出了:TF-IDF(x) = TF(x) * IDF(x)
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"]
res = TfidfVectorizer().fit_transform(corpus)
print(res)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。