向scikit-learn的CountVectorizer停用词列表中添加单词

37

Scikit-learn的CountVectorizer类允许您将字符串'english'传递给stop_words参数。 我想将一些内容添加到这个预定义列表中。 有人可以告诉我如何做到这一点吗?

Scikit-learn的CountVectorizer类允许在stop_words参数中传递字符串“english”。如果想要添加其他内容到该预定义列表中,可以如何实现呢?

你的意思是你想要默认的 'english' stop_words 加上一些你自己的额外内容吗? - jonrsharpe
这篇帖子是救命恩人。 - TheM00s3
1个回答

66
根据sklearn.feature_extraction.text源代码,完整的列表(实际上是一个frozenset,来自于stop_wordsENGLISH_STOP_WORDS通过__all__暴露出来。因此,如果您想使用该列表以及更多项目,可以执行以下操作:
from sklearn.feature_extraction import text 

stop_words = text.ENGLISH_STOP_WORDS.union(my_additional_stop_words)

(其中my_additional_stop_words为任何字符串序列),并将结果用作stop_words参数。 CountVectorizer.__init__的输入由_check_stop_list解析,该方法将直接传递新的frozenset


2
有趣的是,这个集合中只有318个停用词。也许使用者需要扩展这些预设的停用词。 - Monica Heddneck
@seakyourpeak,你实际上并没有使用你自定义的停用词集合... - jonrsharpe
作为一个新手,我不知道如何使用Python。我认为CountVectorizer(stop_words='english')意味着使用我已经增强的停用词列表。如果您能展示如何实际使用它的代码,我将不胜感激。谢谢! - seakyourpeak
1
请注意,原始停用词是_frozenset_,它是不可变的。这将创建一个_新集合_,而不是更改旧集合。 - jonrsharpe
1
停用词的更新链接为:https://github.com/scikit-learn/scikit-learn/blob/main/sklearn/feature_extraction/_stop_words.py(因为编辑队列已满,所以必须进行评论)。 - WiccanKarnak
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接