sklearn TfidfVectorizer 中何时执行停用词去除过程?

Eug*_*nio 5 python nlp stop-words scikit-learn tfidfvectorizer

如果我将自定义停用词列表传递给TfidfVectorizer,那么停用词到底什么时候会被删除?根据文档

\n\n
\n

stop_words : string{\xe2\x80\x98english\xe2\x80\x99}, list, 或None(默认)

\n\n

...

\n\n

如果是一个列表,则假定该列表包含停用词,所有这些停用词都将从结果标记中删除。仅适用于analyzer == \'word\'

\n
\n\n

所以这个过程似乎是在标记化之后发生的,对吗?之所以产生疑问,是因为如果标记化还涉及词干提取,我认为存在错误地跳过(而不是删除)停用词的风险,因为在词干提取之后,它不再被识别。

\n

Max*_*xim 2

所以这个过程似乎是在标记化之后发生的,对吗?

你是对的。一旦获得标记并将其stop_words转换为 n-gram 序列,就会应用这些标记,请参阅feature_extraction/text.py。分词器在预处理后立即接收文本,不涉及停用词。

默认分词器不会转换文本,但如果您提供自己的分词器来执行词干提取或类似操作,则您还应该对停用词进行词干提取。或者,您可以在分词器函数内部进行过滤。