sklearn文本特征提取——TfidfVectorizer

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

sklearn⽂本特征提取——TfidfVectorizer
什么是TF-IDF
TF-IDF(term frequency-inverse document frequency)词频-逆向⽂件频率。

在处理⽂本时,如何将⽂字转化为模型可以处理的向量呢?TF-IDF就是这个问题的解决⽅案之⼀。

字词的重要性与其在⽂本中出现的频率成正⽐(TF),与其在语料库中出现的频率成反⽐(IDF)。

TF
TF:词频。

TF(w)=(词w在⽂档中出现的次数)/(⽂档的总词数)
IDF
IDF:逆向⽂件频率。

有些词可能在⽂本中频繁出现,但并不重要,也即信息量⼩,如is,of,that这些单词,这些单词在语料库中出现的频率也⾮常⼤,我们就可以利⽤这点,降低其权重。

IDF(w)=log_e(语料库的总⽂档数)/(语料库中词w出现的⽂档数)
TF-IDF
将上⾯的TF-IDF相乘就得到了综合参数:TF-IDF=TF*IDF
如何使⽤?
在⽂本处理中,我们经常遇到将⼀段话变成向量,以组成矩阵来输⼊到模型中处理。

我们这时就可以⽤到TF-IDF来做。

但是我们需要⾃⼰找语料库训练TF-IDF吗?看看吧~~~
⽰例:
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。

与此相关的概念还有词袋,词集。

相关文档
最新文档