CountVectorizer与TfidfVectorizer

导入

from skleran.feature_extraction.text import CountVectorizer, TfidfTransformer
from  sklearn.feature_extraction.text import TfidfVectorizer

CountVectorizer+TfidfTransformer

CountVectorizer会将文本中的词语转换为词频矩阵,它通过fit_transform函数计算各个词语出现的次数,通过get_feature_names()可获得所有文本的关键词,通过toarray()可看到词频矩阵的结果。
TfidfTransformer用于统计vectorizer中每个词语的TFIDF值。

TfidfVectorizer

将原始文档的集合转化为tf-idf特性的矩阵,相当于CountVectorizer配合TfidfTransformer使用的效果。
即TfidfVectorizer类将CountVectorizer和TfidfTransformer类封装在一起。

  • 参数
 input:string {'filename','file','content'}

    如果'filename',作为参数传递的顺序适合,预计将是需要读取以获取原始内容进行分析的文件名列表。

    如果'file',序列项必须有一个'read'方法(类文件对象),被调用来获取内存中的字节。

    否则,输入将被预期是顺序字符串或字节项预期直接分析。

encoding:string,'utf-8'。

    如果要分配字节或文件,则使用该编码进行解码。

decode_error:{'strict','ignore','replace'}

    如果给出分析字节序列包含不是给定编码的字符,该怎么做。默认情况下,它是'strict',这意味着将会引发一个UnicodeDecodeError。其他值是“忽略”和“替换”。

strip_accents:{'ascii','unicode',无}

    在预处理步骤中删除口音。'ascii'是一种快速的方法,只适用于具有直接ASCII映射的字符。'unicode'是一种稍慢的方法,适用于任何字符。无(默认)不起作用。

analyzer:string,{'word','char'}或可调用

    该功能是否应由字符或字符n-gram组成。

    如果传递了一个可调用函数,它将用于从原始未处理的输入中提取特征序列。

预处理器:可调用或无(默认)

    覆盖预处理(字符串转换)阶段,同时保留令牌化和n-gram生成步骤。

tokenizer:可调用或无(默认)

    覆盖字符串标记化步骤,同时保留预处理和n-gram生成步骤。仅适用如果。analyzer == 'word'

ngram_range:tuple(min_n,max_n)

    不同n值的n值范围的下边界和上边界被提取。将使用所有n值,使得min_n <= n <= max_n。

stop_words:string {'english'},list或None(默认)

    如果是字符串,则将其传递给_check_stop_list,并返回相应的停止列表。'english'是目前唯一支持的字符串值。

    如果一个列表,该列表被假定为包含停止词,所有这些都将从生成的令牌中删除。仅适用如果。analyzer == 'word'

    如果没有,将不会使用停止的单词。max_df可以设置为[0.7,1.0]范围内的值,以根据术语的语料库文档频率自动检测和过滤停止词。

小写:布尔值,默认值为True

    在标记化之前将所有字符转换为小写。

token_pattern:string

    表示什么构成“令牌”的正则表达式,仅用于。默认正则表达式选择2个或更多字母数字字符的标记(标点符号被完全忽略,并始终作为令牌分隔符处理)。analyzer == 'word'

max_df:float in range [ 0.0,1.0 ]或int,default = 1.0

    当构建词汇时,忽略文档频率严格高于给定阈值(语料库特定停止词)的术语。如果为float,则该参数代表一定比例的文档,整数绝对计数。如果词汇不是无,则忽略此参数。

min_df:float in range [ 0.0,1.0 ]或int,default = 1

    当构建词汇时,忽略文档频率严格低于给定阈值的术语。这个值在文献中也被称为截止值。如果为float,则该参数代表一定比例的文档,整数绝对计数。如果词汇不是无,则忽略此参数。

max_features:int或None,default = None

    如果不是无,建立一个词汇,只考虑由词汇频率排序的顶级max_feature。

    如果词汇不是无,则忽略此参数。

词汇表:映射或迭代,可选

    键是术语和值的映射(例如,dict)是特征矩阵中的索引,或者可迭代的术语。如果没有给出,则从输入文档确定词汇表。

binary:boolean,default = False

    如果为True,则所有非零项计数都设置为1.这并不意味着输出将只有0/1值,只有tf-idf中的tf项是二进制的。(将idf归一化为False,得到0/1输出。)

dtype:type,可选

    由fit_transform()或transform()返回的矩阵的类型。

规范:'l1','l2'或无,可选

    用于规范化术语向量的规范。没有没有规范化。

use_idf:boolean,default = True

    启用逆文档频率重新加权。

smooth_idf:boolean,default = True

    通过将文档频率添加一个平滑的idf权重,就好像一个额外的文档被看到包含一个集合中的每个术语一次。防止零分。

sublinear_tf:boolean,default = False

    应用子线性tf缩放,即用1 + log(tf)替换tf。

参考资料

https://blog.csdn.net/hutao1101175783/article/details/74618205
官方文档

你可能感兴趣的:(CountVectorizer与TfidfVectorizer)