打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
机器学习笔记 (四)Scikit-learn CountVectorizer 与 TfidfVectorizer

Scikit-learn CountVectorizer 与 TfidfVectorizer

Scikit-learn CountVectorizer 与 TfidfVectorizer

在文本分类问题中,我们通常进行特征提取,这时,我们需要利用到要介绍的工具,或者其他工具。文本的特征提取特别重要,体现这个系统做的好坏,分类的准确性,文本的特征需要自己构建,常用的有 n-gram 模型ti-idf 模型。但是这些模型共同的特点就是太稀疏了。一般情况下需要 降维,比如 SVD,其实很多模型也可以用来进行特征选择比如 决策树L1 正则 也可以用来进行特征选择,具体原理这里就不讲了。sklearn 这个强大的工具帮我们实现了很多算法,超级好用。

CountVectorizer 与 TfidfVectorizer,这两个类都是特征数值计算的常见方法。对于每一个训练文本,CountVectorizer 只考虑每种词汇在该训练文本中出现的频率,而TfidfVectorizer 除了考量某一词汇在当前训练文本中出现的频率之外,同时关注包含这个词汇的其它训练文本数目的倒数。相比之下,训练文本的数量越多,TfidfVectorizer 这种特征量化方式就更有优势。

CountVectorizer

例:

#python2.7 sklearn version 0.18.1from sklearn.feature_extraction.text import CountVectorizerX_test = ['I sed about sed the lack','of any Actually']count_vec=CountVectorizer(stop_words=None)print count_vec.fit_transform(X_test).toarray()print '\nvocabulary list:\n\n',count_vec.vocabulary_>>>>[[1 0 0 1 1 0 2 1] [0 1 1 0 0 1 0 0]]  (0, 4)    1  (0, 7)    1  (0, 0)    1  (0, 6)    2  (0, 3)    1  (1, 1)    1  (1, 2)    1  (1, 5)    1vocabulary list:{u'about': 0, u'i': 3, u'of': 5, u'lack': 4, u'actually': 1, u'sed': 6, u'the': 7, u'any': 2}

TfidfVectorizer

tf-idf

首先介绍一下如何计算tf-idf,并且需要明确的是tf-idf=tf*idf,也就是说tf与idf分别是两个不同的东西。其中tf为谋个训练文本中,某个词的出现次数,即词频(Term Frequency);idf为逆文档频率(Inverse Document Frequency),对于词频的权重调整系数。

其中:
\begin{align*}
词频(TF)=某个词在文章中的出现次数
\end{align*}
考虑到文章有长短之分,为了便于不同文章的比较,进行”词频”标准化。
\begin{align*}
词频(TF)=\frac{某个词在文章中的出现次数}{文章的总词数}
\end{align*}
或者
\begin{align*}
词频(TF)=\frac{某个词在文章中的出现次数}{该训练文本中出现最多次的词数}
\end{align*}
\begin{align*}
词频(TF)=\frac{某个词在文章中的出现次数}{文章的总词数}\[1ex]
或者\[1ex]
词频(TF)=\frac{某个词在文章中的出现次数}{该训练文本中出现最多次的词数}
\end{align*}

逆文档频率(IDF)=log(总样本数包含有该词的文档数 1)

来源:http://www.icode9.com/content-4-38951.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
如何从文本中提取特征信息?
用Python开始机器学习(5:文本特征抽取与向量化)
基于TF-IDF构建电影推荐系统
sklearn文本特征提取
WordStat—Stata的文本分析小助手
【特征提取 分类模型】4种常见的NLP实践思路
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服