Scikit学习CountVectorizer:自定义预处理器,令牌生成器和分析器

时间:2020-07-31 04:34:13

标签: scikit-learn

我试图更好地了解CountVectorizer类的工作原理。
我对预处理器,标记器和分析器参数之间的差异感到很困惑。
在文档中说所有这些参数都是可以调用的,我想您可以产生自己的函数来定制各种过程。

也就是说,我不确定为什么它们会互斥(即,当且仅当分析器为None时,才能调用预处理器;同样,当且仅当Analyzer ='word'时,才能从文档中调用令牌化器)

如果有人可以阐明参数的不同用法以及相关步骤应该完成的工作,我将不胜感激。

在此先感谢您,这个问题是否对于stackoverflow而言不够具体!

1 个答案:

答案 0 :(得分:1)

documentation中提供了一个解释。

  • 预处理器:一个可调用项,它将整个文档作为输入(作为单个字符串),并返回文档的可能转换后的版本,仍作为整个字符串。可用于删除HTML标签,将整个文档小写等。

  • tokenizer::一个可调用的方法,它从预处理器获取输出并将其拆分为令牌,然后返回这些令牌的列表。

  • 分析器:可调用的可替换预处理器和令牌生成器。默认分析器都调用预处理器和标记器,但是自定义分析器将跳过此过程。 N-gram提取和停用词过滤是在分析器级别进行的,因此自定义分析器可能必须重现这些步骤。

因此,如果分析器为None,则预处理器和令牌生成器可以一起工作,并且可以调用预处理器,因为默认分析器将调用预处理器。如果分析器不为“无”,则不再需要预处理器。而且我假设,如果分析器在“单词”级别上运行,则仅调用(因此可以调用)令牌生成器。