python-nltk в Ubuntu 12.04 LTS: nltk.download("коричневый") приводит к ошибке HTML 401

Я установил python-nltk на Ubuntu Server 12.04, используя apt-get.

Но когда я пытаюсь загрузить корпус, я получаю следующую ошибку:

$ python
Python 2.7.3 (default, Feb 27 2014, 19:58:35)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import nltk
>>> nltk.download('brown')
[nltk_data] Error loading brown: HTTP Error 401: Authorization
[nltk_data]     Required
False

Я пропустил какую-то конфигурацию или дополнительный пакет?

3 ответа

Решение

DEFAULT_URL используется в downloader.py из упакованной версии Ubuntu по-прежнему использует:

DEFAULT_URL = 'http://nltk.googlecode.com/svn/trunk/nltk_data/index.xml'

Но текущий сервер данных:

DEFAULT_URL = "http://nltk.github.com/nltk_data/"

Конечно, вы можете установить из исходного кода или... изменить уже установленную версию, чтобы она указала на новый сервер следующим образом:

 sudo perl -pi -e 's#DEFAULT_URL = .*#DEFAULT_URL = "http://nltk.github.com/nltk_data/"#' /usr/lib/python2.7/dist-packages/nltk/downloader.py

Затем вы можете установить "коричневый" корпус:

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import nltk
>>> nltk.download('brown')
[nltk_data] Downloading package 'brown' to /home/sylvain/nltk_data...
[nltk_data]   Unzipping corpora/brown.zip.
True
>>> from nltk.corpus import brown
>>> brown.words()
['The', 'Fulton', 'County', 'Grand', 'Jury', 'said', ...]
>>> 

Это можно исправить без изменения исходного кода. Создайте собственный загрузчик в python:

>>> dl = nltk.downloader.Downloader("http://nltk.github.com/nltk_data/")

затем вы открываете диалоговое окно с графическим интерфейсом:

>>> dl.download()

Убедитесь, что у вас есть права на запись в каталог загрузки и загрузите то, что вам нужно.

pip install nltk --upgrade

Этот обновляет NLTK, а затем nltk.download() снова работает

Другие вопросы по тегам