sklearn.feature_extraction.TfidfVectorizer¶
class sklearn.feature_extraction.text.TfidfVectorizer(*, input='content', encoding='utf-8', decode_error='strict', strip_accents=None, lowercase=True, preprocessor=None, tokenizer=None, analyzer='word', stop_words=None, token_pattern='(?u)\b\w\w+\b', ngram_range=(1, 1), max_df=1.0, min_df=1, max_features=None, vocabulary=None, binary=False, dtype=<class 'numpy.float64'>, norm='l2', use_idf=True, smooth_idf=True, sublinear_tf=False)
将原始文档集合转换为TF-IDF特性的矩阵。
相当于CountVectorizer 后面跟着TfidfTransformer.
在用户指南中阅读更多内容。
| 参数 | 说明 | 
|---|---|
| input | {‘filename’, ‘file’, ‘content’}, default=’content’ 如果“filename”,作为参数传递给fit的序列应该是一个文件名列表,需要读取这些文件名以获取要分析的原始内容。 如果“file”,序列项必须有一个“read”方法(类文件对象),该方法被调用来获取内存中的字节。 否则,输入应该是一个项目序列,类型可以是string或byte。 | 
| encoding | str, default=’utf-8’ 如果字节或文件被给予分析,这种编码被用来解码。 | 
| decode_error | {‘strict’, ‘ignore’, ‘replace’}, default=’strict’ 说明如果给定要分析的字节序列包含不属于给定编码的字符,该做什么。默认情况下,它是“严格的”,这意味着将引发一个UnicodeDecodeError。其他值还有“ignore”和“replace”。 | 
| strip_accents | {‘ascii’, ‘unicode’}, default=None 在预处理步骤中删除重音符号并执行其他字符规范化。' ascii '是一种快速的方法,只对有直接ascii映射的字符有效。“unicode”是一种稍微慢一些的方法,适用于任何字符。None(默认)不执行任何操作。 ' ascii '和' unicode '都使用NFKD标准化从 unicodedata.normalize. | 
| lowercase | bool, default=True 在标记之前将所有字符转换为小写。 | 
| preprocessor | callable, default=None 重写预处理(字符串转换)阶段,同时保留记号化和n字元生成步骤。仅在分析器不可调用时应用。 | 
| tokenizer | callable, default=None 重写字符串记号化步骤,同时保留预处理和n字元生成步骤。只适用于 analyzer == 'word'。 | 
| analyzer | {‘word’, ‘char’, ‘char_wb’} or callable, default=’word’ 特征是由单词还是由n字组成。选择“char_wb”创建角色- gram只从文本单词边界;字格词带的边缘空间。 如果传递了callable,则使用它从原始的、未处理的输入中提取特性序列。在0.21版本中进行了更改。 由于v0.21,如果输入是文件名或文件,则首先从文件读取数据,然后传递给给定的可调用分析器。 | 
| stop_words | string {‘english’}, list, default=None 如果“english”,则使用内置的英语停止词列表。“英语”有几个已知的问题,你应该考虑另一种选择(参见Using stop words)。 如果一个列表,则假定该列表包含停止词,所有这些词都将从结果标记中删除。只适用于 analyzer == 'word'。如果没有,就不会使用停止语。max_df可以设置为范围[0.7,1.0]的值,根据术语在语料库文档内的频率自动检测和过滤停止词。 | 
| token_pattern | str 表示什么构成了“记号”的正则表达式,仅在 analyzer == 'word'时使用。默认的regexp选择2个或更多字母数字字符的标记(标点完全被忽略,并且总是作为标记分隔符处理)。 | 
| ngram_range | tuple (min_n, max_n), default=(1, 1) 要提取的不同单词的n个字符或字符的n个字符的n个值范围的上边界。使用 min_n <= n <= max_n的所有n值。例如,ngram_range的(1,1)表示仅使用双字符,(1,2)表示单字符和双字符,(2,2)表示仅使用双字符。仅在分析器不可调用时应用。 | 
| max_df | float in range [0.0, 1.0] or int, default=1.0 在构建词汇表时,忽略那些文档频率严格高于给定阈值的术语(特定于语料库的停止词)。如果是浮点数,则该参数表示文档的比例,整数绝对计数。如果词汇表不是None,则忽略此参数。 | 
| min_df | float in range [0.0, 1.0] or int, default=1 在构建词汇表时,忽略那些文档频率严格低于给定阈值的术语。这个值在文献中也称为cut-off。如果是浮点数,则该参数表示文档的比例,整数绝对计数。如果词汇表不是None,则忽略此参数。 | 
| max_features | int, default=None 如果没有的话,构建一个词汇表,只考虑根据语料库中的词汇频率排序的顶部max_features。 如果词汇表不是None,则忽略此参数。 | 
| vocabulary | Mapping or iterable, default=None 一种映射(例如dict),其中键是项,值是特征矩阵中的索引,或者是项上的迭代。如果没有给出,则从输入文档中确定词汇表。 | 
| binary | bool, default=False 如果为真,则将所有非零项计数设置为1。这并不意味着输出只有0/1的值,只是tf-idf中的tf项是二进制的。(将idf和归一化设置为False,得到0/1输出) | 
| dtype | dtype, default=float64 由fit_transform()或transform()返回的矩阵的类型。 | 
| norm | {‘l1’, ‘l2’}, default=’l2’ 每个输出行都有单位范数,可以是:* ' l2 ':向量元素的平方和为1。当应用l2范数时,两个向量之间的余弦相似度是它们的点积。*‘l1’:向量元素的绝对值之和为1。看到 preprocessing.normalize。 | 
| use_idf | bool, default=True 使 inverse-document-frequency权重。 | 
| smooth_idf | bool, default=True 通过在文档频率上增加1来平滑idf权重,就好像在一个额外的文档中只包含集合中的每一个词一样。防止零分歧。 | 
| sublinear_tf | bool, default=False 应用次线性tf缩放,即将tf替换为1 + log(tf)。 | 
属性
| 属性 | 说明 | 
|---|---|
| vocabulary_ | dict 术语到特征索引的映射。 | 
| fixed_vocabulary_ | bool 如果用户提供了术语到索引映射的固定词汇表,则为 | 
| idf_ | array of shape (n_features,) 反文档频率(IDF)向量;只有在use_idf为真时才定义。 | 
| stop_words_ | set 被忽略的术语,因为它们要么: 发生在太多文档中 (max_df)发生在太少的文档中 (min_df)通过特征选择 (max_features)进行截断。只有在没有给出词汇表的情况下才可用。 | 
另见
Transforms text into a sparse matrix of n-gram counts.
Performs the TF-IDF transformation from a provided matrix of counts.
注意
在pickle时,stop_words_属性会变大,增加模型的大小。此属性仅用于自省,可以使用delattr安全地删除该属性,或在pickle之前将其设置为None。
示例
>>> from sklearn.feature_extraction.text import TfidfVectorizer
>>> corpus = [
...     'This is the first document.',
...     'This document is the second document.',
...     'And this is the third one.',
...     'Is this the first document?',
... ]
>>> vectorizer = TfidfVectorizer()
>>> X = vectorizer.fit_transform(corpus)
>>> print(vectorizer.get_feature_names())
['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third', 'this']
>>> print(X.shape)
(4, 9)
方法
| 方法 | 说明 | 
|---|---|
| build_analyzer() | 返回处理预处理、记号化和生成n个符号的可调用函数。 | 
| build_preprocessor() | 返回一个函数,用于在标记之前对文本进行预处理。 | 
| build_tokenizer() | 返回一个函数,该函数将字符串分割为一系列标记。 | 
| decode(doc) | 将输入解码为unicode符号字符串。 | 
| fit(raw_documents[, y]) | 从训练集学习词汇和idf。 | 
| fit_transform(raw_documents[, y]) | 学习词汇表和idf,返回文档术语矩阵。 | 
| get_feature_names() | 从特征整数索引到特征名称的数组映射。 | 
| get_params([deep]) | 获取这个估计器的参数。 | 
| get_stop_words() | 构建或获取有效停止词列表。 | 
| inverse_transform(X) | 返回在X中有非零项的每个文档的术语。 | 
| set_params(**params) | 设置的参数估计量。 | 
| transform(raw_documents[, copy]) | 将文档转换为文档术语矩阵。 | 
__init__(*, input='content', encoding='utf-8', decode_error='strict', strip_accents=None, lowercase=True, preprocessor=None, tokenizer=None, analyzer='word', stop_words=None, token_pattern='(?u)\b\w\w+\b', ngram_range=(1, 1), max_df=1.0, min_df=1, max_features=None, vocabulary=None, binary=False, dtype=<class 'numpy.float64'>, norm='l2', use_idf=True, smooth_idf=True, sublinear_tf=False)
初始化self. 请参阅help(type(self))以获得准确的说明。
build_analyzer() 
返回处理预处理、记号化和生成n个符号的可调用函数.
| 返回值 | 说明 | 
|---|---|
| analyzer | callable 一个处理预处理、记号化和生成n字的函数。 | 
build_preprocessor()
返回一个函数,用于在标记之前对文本进行预处理。
| 返回值 | 说明 | 
|---|---|
| preprocessor | callable 用于在标记化之前对文本进行预处理的函数。 | 
build_tokenizer()
返回一个函数,该函数将字符串分割为一系列标记。
| 返回值 | 说明 | 
|---|---|
| tokenizer | callable 一种函数,用于将字符串分割为一系列标记。 | 
decode(doc)
将输入解码为unicode符号字符串。
译码策略取决于矢量化器的参数。
| 参数 | 说明 | 
|---|---|
| doc | str 要解码的字符串。 | 
| 返回值 | 说明 | 
|---|---|
| doc | str 一串unicode符号。 | 
fit(raw_documents, y=None)
学习原始文档中所有标记的词汇字典。
| 参数 | 说明 | 
|---|---|
| raw_documents | iterable 计算tfidf不需要这个参数。 | 
| 返回值 | 说明 | 
|---|---|
| self | object vectorizer。 | 
fit_transform(raw_documents, y=None)
学习词汇表字典并返回文档术语矩阵。
这相当于在fit之后进行转换,但实现起来更有效。
| 参数 | 说明 | 
|---|---|
| raw_documents | iterable 生成str、unicode或file对象的迭代器。 | 
| y | None 忽略此参数。 | 
| 返回值 | 说明 | 
|---|---|
| X | sparse matrix of (n_samples, n_features) Tf-idf-weighted document-term矩阵。 | 
get_feature_names()
从特征整数索引到特征名称的数组映射。
| 返回值 | 说明 | 
|---|---|
| feature_names | list 特征名称列表。 | 
get_params(deep=True)
获取这个估计器的参数。
| 参数 | 说明 | 
|---|---|
| deep | bool, default=True 如果为真,将返回此估计器的参数以及包含的作为估计器的子对象。 | 
| 返回值 | 说明 | 
|---|---|
| params | mapping of string to any 参数名称映射到它们的值。 | 
get_stop_words()
构建或获取有效停止词列表。
| 返回值 | 说明 | 
|---|---|
| stop_words | list or None 停止词的列表。 | 
inverse_transform(X)
返回在X中有非零项的每个文档的术语。
| 参数 | 说明 | 
|---|---|
| X | {array-like, sparse matrix} of shape (n_samples, n_features) Document-term矩阵。 | 
| 返回值 | 说明 | 
|---|---|
| X_inv | list of arrays of shape (n_samples,) 术语数组的列表。 | 
set_params(**params)
设置这个估计器的参数。
该方法适用于简单估计量和嵌套对象。后者具有形式为<component>_<parameter>的参数,这样就让更新嵌套对象的每个样本成为了可能。
| 参数 | 说明 | 
|---|---|
| **params | dict 估计器参数。 | 
| 返回值 | 说明 | 
|---|---|
| self | object 估计器实例。 | 
transform(raw_documents)
将文档转换为文档术语矩阵。
使用拟合fit的词汇表或提供给构造函数的词汇表从原始文本文档中提取标记数。
| 参数 | 说明 | 
|---|---|
| raw_documents | iterable 生成str、unicode或file对象的迭代器。 | 
| copy | bool, default=True 是复制X并对其进行操作,还是进行就地操作。 自版本0.22以来已弃用:copy参数未使用,在版本0.22中已弃用,将在0.24中删除。此参数将被忽略。 | 
| 返回值 | 说明 | 
|---|---|
| X | sparse matrix of shape (n_samples, n_features) Tf-idf-weighted document-term矩阵。 | 



 
                             
                             
                             
                             
                            
