2016-12-12 7 views
2

Я использую приведенный ниже код, чтобы проверить, нет ли слова слово-стоп или нет. Как вы можете видеть ниже, если блок try не работает, функция IS_STOP выдает ошибку.Spacy is_stop function (ошибка?)

import spacy 
nlp = spacy.load('en') 
try: 
    print 0/0 #Raise and Exception 
except: 
    print nlp.is_stop('is')` 

Я получаю ошибку ниже:

 5  print 0/0 
     6 except: 
----> 7  print spacy.load('en').is_stop('is') 
AttributeError: 'English' object has no attribute 'is_stop' ` 
+0

работает для меня на Python 3.4. Возможно, ошибка является специфичной для python2. – DyZ

+0

@DYZ, пожалуйста, не изменяйте вопрос, основанный на предположении. Кроме того, тег 'python' имеет большую изменчивость, чем' python-2.7'. Если это будет проблемой «2.7», тег должен быть добавлен, а не заменен. Также [см. Это] (http://meta.stackoverflow.com/a/265845/2441442). –

+0

Я не думаю, что это Python 2.7, я нахожу, что получаю эту ошибку через pip Spacy, а не через conda Spacy. – Tgsmith61591

ответ

1

Вам нужно обрабатывать текст с помощью «вызова» объекта nlp как функции, как описано here. Затем вы можете протестировать стоп-слова на каждом знаке разбора предложения.
Например:

>>> import spacy 
>>> nlp = spacy.load('en') 
>>> sentence = nlp(u'this is a sample sentence') 
>>> sentence[1].is_stop 
True 

В случае, если вы хотите, чтобы проверить стоп-слова прямо из английского словаря, используйте следующее:

>>> nlp.vocab[u'is'].is_stop 
True