2016-12-15 14 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