在sklearn TfidfVectorizer中执行停用词删除过程?

时间:2018-02-27 20:05:17

标签: python scikit-learn nlp stop-words tfidfvectorizer

如果我将自定义停用词列表传递给TfidfVectorizer,那么停止词什么时候会被删除?根据{{​​3}}:

  

stop_words string {'english'},listNone(默认)

     

...

     

如果列表,该列表被假定包含停用词,所有这些   将从生成的令牌中删除。仅适用于analyzer == 'word'

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

1 个答案:

答案 0 :(得分:1)

  

所以看起来这个过程在标记化之后发生,我是对的吗?

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

默认的标记生成器不会对文本进行转换,但是如果你提供自己的执行词干分析器或类似的标记生成器,那么你也应该阻止停用词。或者,您可以在tokenizer函数内部进行过滤。