from sklearn.feature_extraction.text import TfidfVectorizer

如题所述

第1个回答  2022-07-04
在文本分类之中,首先分词,然后将分词之后的文本进行tfidf计算,并向量化(这一部分是核心),最后利用传统机器学习算法进行分类就可以了。
因此我要在这里重点学习一下。

如果是‘filename’,传递给fit的参数序列应该是需要读取以获取要分析的原始内容的文件名列表。
如果“file”,序列项必须有一个“read”方法(类似文件的对象),该方法被调用来获取内存中的字节。
否则,输入预期是序列字符串或字节项预期将被直接分析。

如果要解析字节或文件,则使用这个encoding进行解码。

如果给定一个字节序列来解析包含不属于给定编码的字符,该如何操作的指令。默认情况下,它是“strict”,这意味着将引发一个UnicodeDecodeError。其他值是“忽略”(ignore)和“替换”(replace)。

在预处理步骤中删除音标并执行其他字符标准化。“ascii”是一种只对具有直接ascii映射的字符有效的快速方法。unicode是一种稍微慢一点的方法,适用于任何字符。None(默认)什么也不做。
ascii和unicode都使用来自unicodedata.normalize的NFKD标准化。

在进行tokenizing(令牌化)之前,将所有字符转换为小写。

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

重写字符串切词的步骤,同时保留预处理和n-gram生成步骤。仅当analyzer == 'word'时才可用。

特征是由单词还是n-gram的字符组成。
如果传递了一个可调用的函数,它将用于从未经处理的原始输入中提取一系列特征(feature)。

如果是字符串,则将其传递给_check_stop_list,并返回相应的停止列表。' english '是当前唯一受支持的字符串值。“english”有几个已知的问题,你应该考虑一个替代(see Using stop words)。言下之意就是过滤全部的英文单词。
如果是list型,假设list中包含停止词(stop words),所有停词将从分词结果(resulting tokens)中删除。仅当analyzer == 'word'时才适用。
如果是None,则不使用停止字。max_df可以设置为[0.7,1.0)范围内的一个值,根据语料库内文档中词汇的频率自动检测和过滤停止词。

构成一个“令牌”(token)的正则表达式,仅在analyzer == 'word'时可以使用。默认正则表达式选择由2个或更多字母数字字符的组成的标记(token)(标点符号完全被忽略,始终被当作令牌(token)分隔符)。

字典型,词语(terms)到特征索引(feature indices)之间的映射(mapping)。

逆文档频率(IDF)向量;只有当use_idf为True时才被定义。

因为如下原因被忽略的词语:
出现在太多文档中(max_df)
出现的文档太少(min_df)
被特征选择(max_features)截断。
只有在没有给出词汇表的情况下才可以使用。

----------------------------------我是分割线啊---------------------------------------
突然懒得更新了,给一个今天才发现的网址吧
https://blog.csdn.net/feng_zhiyu/article/details/81952697

https://blog.csdn.net/binglingzy666/article/details/79241486
相似回答