2016-12-15 7 views
9

spacy로 정지 단어를 추가/제거하는 가장 좋은 방법은 무엇입니까? token.is_stop 기능을 사용 중이고 설정 변경에 대한 커스텀 변경을 원합니다. 나는 doccumentation를보고 있었지만 멈추는 단어에 관해서는 아무것도 찾을 수 없었다. 감사!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