sklearn 基础教程

sklearn 特征工程

sklearn 基础教程

sklearn 分类算法

sklearn 回归算法

sklearn 笔记

TfidfVectorizer 参数及属性的最详细解析

sklearn(scikit-learn)笔记 sklearn(scikit-learn)笔记


sklearn(scikit-learn)的 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

将使用 asciiunicode 编码在预处理步骤中去除原始文本中的重音符号(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=float64

fit_transform() 和 transform() 函数返回的矩阵元素数据类型。

属性说明

vocabulary_

字典(dict)类型

词表特征及索引的映射数据。