2016-12-15 10 views
9

spacyを使用してストップワードを追加/削除する最良の方法は何ですか?私はtoken.is_stop機能を使用しており、お手入れのためにいくつかの変更を加えたいと思います。私はドキュメンテーションを見ていましたが、ストップワードに関しては何も見つかりませんでした。ありがとう!spacyを使用したスト​​ップワードの追加/削除

+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を動作するようです。新しいバージョンについては、他の回答を参照してください。

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 

はこれがセットにすべてのストップワードをロードします。

+1

ああいいね。ありがとうございました! –

+1

このソリューションは、バージョン1.9.0では動作していません。 'TypeError:整数が必要です 'というメッセージが表示されます –

+0

@ E.K。同じ問題があった。下の私の答えを見てください。 – petezurich

2

は、バージョン2.0のために私はこれを使用していました。

ストップワードをSTOP_WORDSに修正するか、最初に独自のリストを使用することができます。

+2

バージョン2.0でこれを行い、 "ImportError:No module named en.stop_words" ... suggestions? – user1025852

+0

@ user1025852私の答えを更新している場合。 – petezurich

+1

'spacy.lang.en.stop_words'もエラーを返します。 – jxn

関連する問題