【问题标题】:Scikit-learn CountVectorizer : customizing preprocessor, tokenizer and analyzerScikit-learn CountVectorizer:自定义预处理器、标记器和分析器
【发布时间】:2020-07-31 17:46:26
【问题描述】:

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

也就是说,我不确定为什么它们是互斥的(即,当且仅当分析器为无时,预处理器才可调用,类似地,当且仅当分析器='word'时,标记器才可调用 - 来自文档) .

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

提前致谢,如果问题对 stackoverflow 来说不够具体,请告诉我!

【问题讨论】:

    标签: scikit-learn


    【解决方案1】:

    documentation里有解释。

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

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

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

    所以预处理器和标记器一起工作,如果分析器为无,预处理器可以是可调用的,因为默认分析器将调用预处理器。如果analyzer 不是None,则不再需要预处理器。而且我假设仅在分析器在“单词”级别上运行时才调用标记器(因此是可调用的)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-28
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      • 2012-05-09
      • 2020-02-04
      • 2019-01-14
      • 2023-04-04
      相关资源
      最近更新 更多