sklearn文本特征提取CountVectorizer 和 TfidfVectorizer

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)。


 







你可能感兴趣的:(机器学习,sklearn)