TF-IDF原理及sklearn调用

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/jingshuiliushen_zj/article/details/83153061

一、原理

TF-IDF,也就是“词频-逆文本频率”,是文本挖掘中做分词、向量化之后的一个操作,它由两部分组成:
1、词频:某个词在当前文本中出现的次数。
2、IDF:有些词语虽然词频很高,但是并不重要,IDF衡量的就是一个词的重要度。IDF的基本公式:
I D F ( x ) = l o g N N ( x ) IDF(x) = log\frac{N}{N(x)}
其中,N代表训练集中document的总数,而N(x)代表训练集中包含词x的document总数。也就是说,如果出现词x的文档越多,IDF值越小,这个词越不重要。

如果某一个生僻词没有在训练集中出现,就会导致分母为0,所以我们需要做一些平滑:
I D F ( x ) = l o g N + 1 N ( x ) + 1 + 1 IDF(x) = log\frac{N+1}{N(x)+1} + 1
TF-IDF的公式为: T F I D F ( x ) = T F ( x ) I D F ( x ) TF-IDF(x) = TF(x) * IDF(x)

二、sklearn调用

from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer()
re = tfidf.fit_transform(corpus)

常用参数:
ngram_range=(min_n, max_n):要提取的n-gram的n-values的下限和上限范围。
stop_words:string {‘english’}, list, or None(default),停用词
max_df: float in range [0.0, 1.0] or int, optional, 1.0 by default
min_df:float in range [0.0, 1.0] or int, optional, 1.0 by default
max_features: optional, None by default
norm:‘l1’, ‘l2’, or None,optional。范数用于标准化词条向量。None为不归一化

猜你喜欢

转载自blog.csdn.net/jingshuiliushen_zj/article/details/83153061
今日推荐