然而,这还不够,像a is this这类的助词、介词等,词频将非常高(在NLP中又叫停止词 stop word),所以需要减小他们的权重。一种做法是,不再简单统计该词在文档中出现的词频,而且还要统计 出现该词的文档的占比,这在NLP中叫tfidf。说的有点绕,具体到我们的例子中可以写成如下表达式:
某单词x的tfidf = x在一个样本中出现的次数/出现x的文档占比
分子即tf,分母即1/idf,有时需要用log sqrt之类的函数作用在tf或者 1/idf上,以减弱某项的影响。同样,我们可以:
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer3 = TfidfVectorizer(ngram_range=(1, 2))
temp3 = vectorizer3.fit_transform(corpus)
print vectorizer3.get_feature_names()