尽管有一个单词在列表中,但仍未被识别为停用词。 我正在使用spacy 2.0.11,python 3.7,conda env,Debian 9.5
import spacy
from spacy.lang.es.stop_words import STOP_WORDS
nlp = spacy.load('es', disable=['tagger', 'parser', 'ner'])
STOP_WORDS.add('y')
做一些测试:
>>> word = 'y'
>>> word in STOP_WORDS
True
>>> nlp(word)[0].is_stop
False
>>> len(STOP_WORDS)
305
>>> [word for word in STOP_WORDS if not nlp(word)[0].is_stop]
['y']
因此,在STOP_WORDS中列出的305中,没有这样标记。我不知道我在做什么错...也许是一个错误?
答案 0 :(得分:0)
事实证明,根据this answer
,我没有正确添加单词word = 'y'
spacy.lang.es.stop_words.STOP_WORDS.add(word)
nlp.vocab[word].is_stop = True
那解决了问题
旧答案,没有解决问题
我找到了原因。
我收到有关导入spacy的警告:
RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility.
显然,这表明版本不匹配。 More info
每当您导入针对比已安装的numpy更早的numpy编译的scipy(或其他软件包)时,这些警告都是可见的。
在spaCy GitHub中,建议使用numpy版本。最终解决了这个问题:
conda install numpy=1.14.5