Ошибка при использовании тега библиотеки python textblob

У меня некоторое время нормально работала библиотека textblob, но я решил установить (используя easy_install) дополнительную библиотеку (страница здесь), заявляя о более быстрой и точной пометке.

Я не мог заставить его работать, поэтому я удалил его, но, похоже, он испортил функцию тегов в TextBlob. Я много раз удалял и переустанавливал как nltk, так и TextBlob с помощью pip и easy_install и удостоверился, что они обновлены.

Вот пример простого скрипта, который генерирует ошибку:

from textblob import TextBlob

blob = TextBlob("This is a sentence")
print repr(blob.tags)

и ошибка напечатана:

    Traceback (most recent call last):
  File "tesst.py", line 5, in <module>
    print repr(blob.tags)
  File "C:\Users\Emmet\Anaconda\lib\site-packages\textblob\decorators.py", line 24, in __get__
    value = obj.__dict__[self.func.__name__] = self.func(obj)
  File "C:\Users\Emmet\Anaconda\lib\site-packages\textblob\blob.py", line 445, in pos_tags
    for word, t in self.pos_tagger.tag(self.raw)
  File "C:\Users\Emmet\Anaconda\lib\site-packages\textblob\decorators.py", line 35, in decorated
    return func(*args, **kwargs)
  File "C:\Users\Emmet\Anaconda\lib\site-packages\textblob\en\taggers.py", line 34, in tag
    tagged = nltk.tag.pos_tag(text)
  File "C:\Users\Emmet\Anaconda\lib\site-packages\nltk\tag\__init__.py", line 110, in pos_tag
    tagger = PerceptronTagger()
  File "C:\Users\Emmet\Anaconda\lib\site-packages\nltk\tag\perceptron.py", line 141, in __init__
    self.load(AP_MODEL_LOC)
  File "C:\Users\Emmet\Anaconda\lib\site-packages\nltk\tag\perceptron.py", line 209, in load
    self.model.weights, self.tagdict, self.classes = load(loc)
  File "C:\Users\Emmet\Anaconda\lib\site-packages\nltk\data.py", line 801, in load
    opened_resource = _open(resource_url)
  File "C:\Users\Emmet\Anaconda\lib\site-packages\nltk\data.py", line 924, in _open
    return urlopen(resource_url)
  File "C:\Users\Emmet\Anaconda\lib\urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\Emmet\Anaconda\lib\urllib2.py", line 431, in open
    response = self._open(req, data)
  File "C:\Users\Emmet\Anaconda\lib\urllib2.py", line 454, in _open
    'unknown_open', req)
  File "C:\Users\Emmet\Anaconda\lib\urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "C:\Users\Emmet\Anaconda\lib\urllib2.py", line 1265, in unknown_open
    raise URLError('unknown url type: %s' % type)
urllib2.URLError: <urlopen error unknown url type: c>

Вы можете видеть, что ошибка на самом деле упоминает тегировщик персептрона. Есть ли способ более тщательно удалить любые ссылки на альтернативный тег?

Также обратите внимание, что была затронута только функция «метки».


person EmmetOT    schedule 03.03.2016    source источник


Ответы (2)


Кажется, это проблема с nltk версии 3.2. Пока это не будет исправлено в выпуске, вы можете использовать этот хак: NLTK v3. 2: невозможно выполнить nltk.pos_tag()

person PaloDravecky    schedule 16.03.2016

Я узнал, почему у меня были проблемы с ap tagger. Моя проблема решена здесь. В частности, в комментарии "Еще один вариант - установите nltk, а затем измените «из textblob.packages import nltk» на «import nltk» [в файле taggers.py]».

(Обратите внимание, что это не соответствует сообщению об ошибке выше: эта ошибка появлялась без установленного aptagger. Я получал другую ошибку с установленным, и это решение для этого.)

person EmmetOT    schedule 03.03.2016