SpaCy自定义停用词无法正常工作

时间:2018-08-04 07:41:19

标签: python nlp spacy stop-words

尽管有一个单词在列表中,但仍未被识别为停用词。 我正在使用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中,没有这样标记。我不知道我在做什么错...也许是一个错误?

1 个答案:

答案 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