TFIDF

TF-IDF(词频-逆文件频率)

定义:
TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。上述引用总结就是, 一个词语在一篇文章中出现次数越多, 同时在所有文档中出现次数越少, 越能够代表该文章.

词频 (term frequency, TF) 指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被归一化(一般是词频除以文章总词数)
逆向文件频率 (inverse document frequency, IDF) IDF的主要思想是:如果包含词条t的文档越少, IDF越大,则说明词条具有很好的类别区分能力。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。

由于某些通用词语即使出现频率(TF)很高也无法啊代表文章 所以要TF与IDF结合。

CountVectorizer
CV = CountVectorizer(ngram_range=(2, 2), decode_error=“ignore”,max_features=600, token_pattern = r’\b\w+\b’,min_df=1, max_df=1.0) #定义一个cv
参数:
ngram_range:词组切分的长度范围
decode_error:默认为strict,遇到不能解码的字符将报UnicodeDecodeError错误,设为ignore将会忽略解码错误,还可以设为replace
max_features:默认为None,可设为int,对所有关键词的term frequency进行降序排序,只取前max_features个作为关键词集
token_pattern:过滤规则,表示token的正则表达式,需要设置analyzer == ‘word’,默认的正则表达式选择2个及以上的字母或数字作为token,标点符号默认当作token分隔符,而不会被当作token

x=CV.fit_transform(x).toarray() #计算每个词语出现次数并转换为词频矩阵

CountVectorizer会将文本中的词语转换为词频矩阵,它通过fit_transform函数计算各个词语出现的次数,通过get_feature_names()可获得所有文本的关键词,通过toarray()可看到词频矩阵的结果。

TfidfTransformer
TfidfTransformer用于统计vectorizer中每个词语的TF-IDF值。
transformer = TfidfTransformer(smooth_idf=False)
x_tfidf = transformer.fit_transform(x)
转化为矩阵形式

你可能感兴趣的:(TFIDF)