导入
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
官方文档
网友评论