python-nltk no Ubuntu 12.04 LTS: nltk.download ('brown') resulta em erro de HTML 401

9

Instalei o python-nltk no Ubuntu Server 12.04 usando o apt-get.

Mas quando tento baixar um corpus, recebo o seguinte erro:

$ 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

Estou faltando alguma configuração ou pacote adicional?

jk - Restabelecer Monica
fonte
Você pode tentar instalar a partir da fonte wget https://github.com/nltk/nltk/archive/develop.zip; unzip develop.zip; cd nltk-develop; python setup.py install. Mas uma questão foi levantada em github.com/nltk/nltk/issues/747
alvas
Ainda existe um problema com o Ubuntu 13.04
Tickon 27/09/2014
Revisitando esta questão após um longo período de tempo e algumas atualizações do sistema: O problema não existe mais com o ubuntu 18.04 LTS
jk - Reinstate Monica

Respostas:

12

O DEFAULT_URLusado na downloader.pyversão empacotada do Ubuntu ainda usa:

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

Mas o servidor de dados atual é:

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

Obviamente, você pode instalar a partir da fonte ou ... modificar sua versão já instalada para apontar para o novo servidor como este:

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

Você pode instalar o corpus "marrom":

$ 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', ...]
>>> 
Sylvain Pineau
fonte
12

É possível corrigir isso sem alterar o código fonte. Crie um downloader personalizado em python:

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

então você abre uma caixa de diálogo da GUI:

>>> dl.download()

Verifique se você tem acesso de gravação ao diretório de download e faça o download do que precisa.

Cavaleiro Lógico
fonte
0
pip install nltk --upgrade

Este atualiza o nltk e depois nltk.download()funciona novamente.

machineo
fonte