2016-12-15 330 views
9

添加/删除带有空格的停用词的最佳方式是什么?我正在使用token.is_stop函数,并希望对该集进行一些客户更改。我正在查看文档,但找不到关于停用词的任何内容。谢谢!添加/删除带空格的停用词

+2

完整列表:'from spacy.en.word_sets import STOP_WORDS' – Xeoncross

回答

11

你可以处理你的文字是这样的(见this post)前编辑:

>>> import spacy 
>>> nlp = spacy.load("en") 
>>> nlp.vocab["the"].is_stop = False 
>>> nlp.vocab["definitelynotastopword"].is_stop = True 
>>> sentence = nlp("the word is definitelynotastopword") 
>>> sentence[0].is_stop 
False 
>>> sentence[3].is_stop 
True 

注:这似乎是工作< = V1.8。对于较新的版本,请参阅其他答案。

+1

好啊。谢谢! –

+1

该解决方案似乎不再适用于版本1.9.0?我得到'TypeError:一个整数是必需的' –

+0

@ E.K。有同样的问题。请参阅下面的答案。 – petezurich

2

对于2.0版本,我用这个:

from spacy.lang.en.stop_words import STOP_WORDS 

print(STOP_WORDS) # <- set of Spacy's default stop words 

STOP_WORDS.add("your_additional_stop_word_here") 

for word in STOP_WORDS: 
    lexeme = nlp.vocab[word] 
    lexeme.is_stop = True 

此加载所有停用词成一组。

您可以将您的停用词修改为STOP_WORDS或首先使用您自己的列表。

+2

在2.0版本中做了这个,并且得到了“ImportError:没有名为en.stop_words的模块”......建议? – user1025852

+0

@ user1025852如果有更新我的答案。 – petezurich

+1

'spacy.lang.en.stop_words'也给出错误。 – jxn