码迷,mamicode.com
首页 > 其他好文 > 详细

sklearn文本特征提取——TfidfVectorizer

时间:2018-07-13 23:17:32      阅读:318      评论:0      收藏:0      [点我收藏+]

标签:form   top   ext   imp   rds   如何使用   一个   http   lse   

什么是TF-IDF

IF-IDF(term frequency-inverse document frequency)词频-逆向文件频率。在处理文本时,如何判断某一个词在文本中的重要性呢?IF-IDF就是解决这个问题。字词的重要性与其在文本中出现的频率成正比(IF),与其在语料库中出现的频率成反比(IDF)。

IF

IF:词频。IF(w)=(词w在文档中出现的次数)/(文档的总词数)

IDF

IDF:逆向文件频率。有些词可能在文本中频繁出现,但并不重要,也即信息量小,如is,of,that这些单词,这些单词在语料库中出现的频率也非常大,我们就可以利用这点,降低其权重。IDF(w)=log_e(语料库的总文档数)/(语料库中词w出现的文档数)

IF-IDF

将上面的IF-IDF相乘就得到了综合参数:IF-IDF=IF*IDF

如何使用?

在文本处理中,我们经常遇到将一段话变成向量,以组成矩阵来输入到模型中处理。我们这时就可以用到IF-IDF来做。但是我们需要自己找语料库训练IF-IDF吗?看看sklearn.feature_extraction.text.TfidfVectorizer吧~~~
示例:

from sklearn.feature_extraction.text import TfidfVectorizer

cv=TfidfVectorizer(binary=False,decode_error=‘ignore‘,stop_words=‘english‘)
vec=cv.fit_transform([‘hello world‘,‘this is a panda.‘])#传入句子组成的list
arr=vec.toarray()

arr是一个2*3的矩阵,如下:

array([[ 0.70710678,  0.        ,  0.70710678],
    [ 0.        ,  1.        ,  0.        ]])

一行代表一个句子样本,这样的矩阵就可以放入模型中训练了。与TfidfVectorizer类似的还有CountVectorizer。与此相关的概念还有词袋,词集

sklearn文本特征提取——TfidfVectorizer

标签:form   top   ext   imp   rds   如何使用   一个   http   lse   

原文地址:https://www.cnblogs.com/mengnan/p/9307648.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!