sklearn 的 TfidfVectorizer 可以把原始文本内容变换为以 tf-idf 组成的特征矩阵,为后续的文本分类、计算文本相似度、主题模型等工作奠定基础;TfidfVectorizer 本质上是 CountVectorizer 词频计算类和 TfidfTransformer tf-idf 变换类的结合体。
参数说明
input-
可选值,
{'filename', 'file', 'content'},默认值是'content'。指定输入内容的数据形式。
若指定为
'filename',fit函数接收的是可序列化的文件名,fit(拟合)数据时会从文件名对应的文件中读取数据。若指定为
'file',fit函数接收的是可以调用read函数的文件对象。若指定为
'content',即默认值,fit函数传递的是可以直接读取的 string 或 byte 类型的文本内容。 encoding-
str类型,默认值是'utf-8'。如果给定的解析内容是文件或字节内容时,需要解码的形式。
decode_error-
可选值,
{'strict', 'ignore', 'replace'},默认值是'strict'。该参数表示提供的内容不是指定的解码形式时,应该怎么做。
若指定为
'strict',在遇到解码错误时,程序会抛出UnicodeDecodeError错误。若指定为
'ignore',顾名思义,在遇到解码错误时,忽略该错误。若指定为
'replace',顾名思义,在遇到解码错误时,替换非法字符,一般是用?占位符替换解码错误的字符,这个相对来可能一眼就知道那些字符编码出问题了。 strip_accents-
可选值,
{'ascii', 'unicode'},默认值是None。将使用
ascii或unicode编码在预处理步骤中去除原始文本中的重音符号(accents),重音符号指的是加粗、单引号等。ascii是一种快速的方法,且仅适用于能直接映射 ASCII 的字符上;unicode比较慢一些,它可以作用在任何字符上;None的话什么都不做。ascii和unicode都采用 NFKD 的统一码形式。 lowercase-
bool类型,默认值是True。是否在分词(tokenizing)之前小写化字符。
preprocessor-
可调用对象(callable) 或
None,默认值是None。在分词(tokenizing)和生成 n-grams 时,覆盖预处理阶段,即指定预处理步骤。该参数只在
analyzer未设置可调用对象(callable)时。 tokenizer-
可调用对象(callable) 或
None,默认值是None。在预处理和生成 n-grams 时,覆盖分词(tokenizing)步骤。该参数只在
analyzer设置为'word'时。 analyzer-
可调用对象(callable) 或
{'word', 'char', 'char_wb'},默认值是'word'。指定特征向量是基于词(word)还是 n-grams 的字符形式。
stop_words-
可选项为
{'english'},列表(list)或None,默认值是None。指定停用词。
字符串当前只支持
'english',采用内置默认的英语停用词。指定一个
list类型的停用词列表,在分词阶段会过滤调这些停用词,该设置只有在analyzer=='word' 时起作用。如果设置为
None,即默认值,表示不会有停用词;但是可以通过设置max_df参数在 [0.7, 1.0) 时可以自动过滤停用词这种高频词。 token_pattern-
str类型。表示 token 的正则表达式,需要设置
analyzer == 'word';默认的正则表达式选择 2 个及以上的字母或数字作为 token,标点符号默认当作 token 分隔符,而不会被当作 token。 ngram_range-
元组(tuple)类型,tuple(min_n, max_n),默认是 (1, 1)。
要提取的 n-gram 的 n-values 的下限和上限范围,在 min_n <= n <= max_n 区间的 n 的全部值。
有时候我们觉得单个的词语作为特征还不足够,能够加入一些词组更好,就可以设置这个参数。
max_df-
float或者int类型,默认值 1.0。当构建词汇表时,严格忽略高于给出阈值的文档频率的词条。
当设置为
float类型时,应该介于 [0.0, 1.0] 浮点数,表示词条文档出现比例阈值。当设置为
int类型时,表示词条文档出现频数阈值。 min_df-
float或者int类型,默认值 1。当构建词汇表时,严格忽略低于给出阈值的文档频率的词条。
当设置为
float类型时,应该介于 [0.0, 1.0] 浮点数,表示词条文档出现比例阈值。当设置为
int类型时,表示词条文档出现频数阈值。 max_features-
int类型,默认值None。最大的特征词条数。
当设置为
None时,词条有多少算多少,这时要注意维度爆炸。 vocabulary-
mapping(如 字典)或 可迭代的对象(iterable),默认值
None。指定词表的映射,key 是词条,value 是索引值(其实是矩阵的列索引值)。
如果设置为
None,即没有指定,这以输入文本内容来建词条索引。 binary-
bool类型,默认值False。一个关键词在一个文档中可能出现 n 次,如果
binary=True,非零的 n 将全部置为 1,这对需要布尔值输入的离散概率模型是比较有用的。 dtype-
dtype, default=float64fit_transform() 和 transform() 函数返回的矩阵元素数据类型。
属性说明
vocabulary_-
字典(dict)类型
词表特征及索引的映射数据。