sklearn文本特征提取CountVectorizer 和 TfidfVectorizer
2018-01-08 13:05
357 查看
fromsklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
1. CountVectorizer
vectorizer=CountVectorizer(analyzer = "word", \
tokenizer =None, \
preprocessor =None, \
stop_words =None, \
max_features =5000)
将文本文档集合转换为token计数矩阵
该实现使用scipy.sparse.csr_matrix生成计数的稀疏表示。
如果您没有提供先验字典,而且也不使用某种特征选择的分析器,那么特征的数量将等于通过分析数据找到的词汇量。
(1) analyzer字符串,{'单词','字符','char_wb'}或可调用
特征是否应该由单词或字符n-gram组成。 选项“char_wb”仅从字边界内的文本创建字符n-gram; 单词边缘的n元素用空格填充。
如果通过了可调用的函数,它将用来从原始未处理的输入中提取特征序列。
(2) tokenizer可调用或无(默认)
重写字符串标记化步骤,同时保留预处理和n-gram生成步骤。 只适用于分析仪=='单词'。
(3) preprocessor 可调用或无(默认)
重写预处理(字符串转换)阶段,同时保留标记化和n-gram生成步骤。
(4) stop_words字符串{'english'},列表或无(默认)
如果使用“英语”,则使用英语的内置停用词表。
如果列表中的列表被假定为包含停用词,则将从结果标记中删除所有这些词。 只适用于分析仪=='单词'。
如果没有,则不会使用停用词。 可以将max_df设置为[0.7,1.0]范围内的一个值,以便根据术语内部语料文档的频率自动检测并过滤停用词。
(5) ax_features int或None,default = None
如果不是None,则建立一个词汇表,只考虑整个语料库中按词频排序的顶级max_features。
2. TfidfVectorizer部分参数
TfidfVectorizer将原始文档集合转换为TF-IDF特征矩阵。等同于TvidfTransformer之后的CountVectorizer。
(1) binary:默认为False,tf-idf中每个词的权值是tf*idf,如果binary设为True,所有出现的词的tf将置为1,TfidfVectorizer计算得到的tf与CountVectorizer得到的tf是一样的,就是词频,不是词频/该词所在文档的总词数。
(2) norm:默认为'l2',可设为'l1'或None,计算得到tf-idf值后,如果norm='l2',则整行权值将归一化,即整行权值向量为单位向量,如果norm=None,则不会进行归一化。大多数情况下,使用归一化是有必要的。
(3) use_idf:默认为True,权值是tf*idf,如果设为False,将不使用idf,就是只使用tf,相当于CountVectorizer了。
(4) smooth_idf:idf平滑参数,默认为True,idf=ln((文档总数+1)/(包含该词的文档数+1))+1,如果设为False,idf=ln(文档总数/包含该词的文档数)+1
(5) sublinear_tf:默认为False,如果设为True,则替换tf为1 +log(tf)。
1. CountVectorizer
vectorizer=CountVectorizer(analyzer = "word", \
tokenizer =None, \
preprocessor =None, \
stop_words =None, \
max_features =5000)
将文本文档集合转换为token计数矩阵
该实现使用scipy.sparse.csr_matrix生成计数的稀疏表示。
如果您没有提供先验字典,而且也不使用某种特征选择的分析器,那么特征的数量将等于通过分析数据找到的词汇量。
(1) analyzer字符串,{'单词','字符','char_wb'}或可调用
特征是否应该由单词或字符n-gram组成。 选项“char_wb”仅从字边界内的文本创建字符n-gram; 单词边缘的n元素用空格填充。
如果通过了可调用的函数,它将用来从原始未处理的输入中提取特征序列。
(2) tokenizer可调用或无(默认)
重写字符串标记化步骤,同时保留预处理和n-gram生成步骤。 只适用于分析仪=='单词'。
(3) preprocessor 可调用或无(默认)
重写预处理(字符串转换)阶段,同时保留标记化和n-gram生成步骤。
(4) stop_words字符串{'english'},列表或无(默认)
如果使用“英语”,则使用英语的内置停用词表。
如果列表中的列表被假定为包含停用词,则将从结果标记中删除所有这些词。 只适用于分析仪=='单词'。
如果没有,则不会使用停用词。 可以将max_df设置为[0.7,1.0]范围内的一个值,以便根据术语内部语料文档的频率自动检测并过滤停用词。
(5) ax_features int或None,default = None
如果不是None,则建立一个词汇表,只考虑整个语料库中按词频排序的顶级max_features。
2. TfidfVectorizer部分参数
TfidfVectorizer将原始文档集合转换为TF-IDF特征矩阵。等同于TvidfTransformer之后的CountVectorizer。
(1) binary:默认为False,tf-idf中每个词的权值是tf*idf,如果binary设为True,所有出现的词的tf将置为1,TfidfVectorizer计算得到的tf与CountVectorizer得到的tf是一样的,就是词频,不是词频/该词所在文档的总词数。
(2) norm:默认为'l2',可设为'l1'或None,计算得到tf-idf值后,如果norm='l2',则整行权值将归一化,即整行权值向量为单位向量,如果norm=None,则不会进行归一化。大多数情况下,使用归一化是有必要的。
(3) use_idf:默认为True,权值是tf*idf,如果设为False,将不使用idf,就是只使用tf,相当于CountVectorizer了。
(4) smooth_idf:idf平滑参数,默认为True,idf=ln((文档总数+1)/(包含该词的文档数+1))+1,如果设为False,idf=ln(文档总数/包含该词的文档数)+1
(5) sublinear_tf:默认为False,如果设为True,则替换tf为1 +log(tf)。
相关文章推荐
- 特征提升之特征提取-基于文本数据的DictVectorizer,TfidfVectorizer在去掉停用词和不去停用词条件下的分析
- python中对不CountVectorizer与TfidfVectorizer,去停用词,对文本特征量化结合Bayes算法进行分类,可视化分析
- 文本数据预处理:sklearn 中 CountVectorizer、TfidfTransformer
- TF-IDF特征提取 用sklearn提取tfidf特征
- 词语相似度计算:4、提取文本tf、tfidf特征
- sklearn.feature_extraction.text.TfidfVectorizer,文本TFIDF向量化类使用说明
- 短文本分析----基于python的TF-IDF特征词标签自动化提取
- 短文本分析----基于python的TF-IDF特征词标签自动化提取
- 短文本分析----基于python的TF-IDF特征词标签自动化提取
- 使用CountVectorizer和TfidfVectorizer对fetch_20newsgroups数据进行分类,并对是否使用停用词进行对比(精确度)
- (6)文本挖掘(三)——文本特征TFIDF权重计算及文本向量空间VSM表示
- Feature extraction - sklearn文本特征提取
- scikit-learn文本特征提取之TfidfVectorizer
- scala--三种文本特征提取(TF-IDF/Word2Vec/CountVectorizer)及Spark MLlib调用实例(Scala/Java/python)
- sklearn文本特征提取
- sklearn文本特征提取
- 文本特征抽取的向量空间模型(VSM)和TF/IDF方法
- sklearn 中的Countvectorizer/TfidfVectorizer保留长度小于2的字符方法
- 从新闻数据组中提取TF-IDF特征
- 基于sklearn的文本特征提取与分类