Recurso u'tokenizers / punkt / english.pickle 'não encontrado


96

Meu código:

import nltk.data
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')

Mensagem de erro:

[ec2-user@ip-172-31-31-31 sentiment]$ python mapper_local_v1.0.py
Traceback (most recent call last):
File "mapper_local_v1.0.py", line 16, in <module>

    tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 774, in load

    opened_resource = _open(resource_url)

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 888, in _open

    return find(path_, path + ['']).open()

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 618, in find

    raise LookupError(resource_not_found)

LookupError:

Resource u'tokenizers/punkt/english.pickle' not found.  Please
use the NLTK Downloader to obtain the resource:

    >>>nltk.download()

Searched in:
- '/home/ec2-user/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- u''

Estou tentando executar este programa em uma máquina Unix:

De acordo com a mensagem de erro, eu efetuei login no shell python da minha máquina Unix e usei os comandos abaixo:

import nltk
nltk.download()

e então baixei todas as coisas disponíveis usando d-down loader e l-list options, mas ainda assim o problema persiste.

Tentei o meu melhor para encontrar a solução na internet, mas consegui a mesma solução que mencionei nos passos acima.


Respostas:


171

Para adicionar a resposta de alvas , você pode baixar apenas o punktcorpus:

nltk.download('punkt')

Baixar allparece um exagero para mim. A menos que você queira.


Obrigado pelo nome do corpus nltk.
Austin A

Tive que atualizar para a versão mais recente do nltk 3.2.5 para fazer o nltk.download ('punkt') funcionar.
Charles Gomes,

Isso é o que eu obtenho depois de executar o código acima: [nltk_data] Erro ao carregar punkt: <urlopen error [Errno 111] Conexão [nltk_data] recusada>
Paul

Em relação ao meu problema anterior, tudo o que precisei fazer foi desligar minha VPN.
Paul

59

Se você deseja apenas fazer o download do punktmodelo:

import nltk
nltk.download('punkt')

Se não tiver certeza que os dados / modelo que você precisa, você pode instalar os populares conjuntos de dados, modelos e pichadores de NLTK:

import nltk
nltk.download('popular')

Com o comando acima, não há necessidade de usar a GUI para baixar os conjuntos de dados.


34

Eu tenho a solução:

import nltk
nltk.download()

assim que o Downloader NLTK iniciar

d) Baixar l) Lista u) Atualizar c) Config h) Ajuda q) Sair

Downloader> d

Baixar qual pacote (l = lista; x = cancelar)? Identificador> punkt


25

No shell, você pode executar:

sudo python -m nltk.downloader punkt 

Se você deseja instalar os populares corpora / modelos NLTK:

sudo python -m nltk.downloader popular

Se você deseja instalar todos os corpora / modelos NLTK:

sudo python -m nltk.downloader all

Para listar os recursos que você baixou:

python -c 'import os; import nltk; print os.listdir(nltk.data.find("corpora"))'
python -c 'import os; import nltk; print os.listdir(nltk.data.find("tokenizers"))'

10
import nltk
nltk.download('punkt')

Abra o prompt do Python e execute as instruções acima.

A função sent_tokenize usa uma instância de PunktSentenceTokenizer do módulo nltk.tokenize.punkt . Esta instância já foi treinada e funciona bem para muitos idiomas europeus. Assim, ele sabe quais pontuação e caracteres marcam o final de uma frase e o início de uma nova frase.


9

A mesma coisa aconteceu comigo recentemente, você só precisa baixar o pacote "punkt" e deve funcionar.

Quando você executa "list" (l) após ter "baixado todas as coisas disponíveis", tudo está marcado como a seguinte linha ?:

[*] punkt............... Punkt Tokenizer Models

Se você vir esta linha com a estrela, significa que você a possui e o nltk deve ser capaz de carregá-la.


1
Ei @ supreeth-meka, fico feliz que você tenha encontrado a solução. É o que eu sugeri. Você pode marcar minha resposta como "Aceita", por favor?
eeelnico

5

Vá para o console Python digitando

$ python

em seu terminal. Em seguida, digite os 2 comandos a seguir em seu shell Python para instalar os respectivos pacotes:

>> nltk.download ('punkt') >> nltk.download ('averaged_perceptron_tagger')

Isso resolveu o problema para mim.


2

Meu problema foi que eu liguei nltk.download('all') o usuário root, mas o processo que acabou usando o nltk era outro usuário que não tinha acesso a / root / nltk_data onde o conteúdo foi baixado.

Então, simplesmente copiei recursivamente tudo do local de download para um dos caminhos onde o NLTK estava procurando para encontrá-lo assim:

cp -R /root/nltk_data/ /home/ubuntu/nltk_data

2
  1. Execute o seguinte código:

    import nltk
    nltk.download()
  2. Depois disso, o downloader do NLTK aparecerá.

  3. Selecione Todos os pacotes.
  4. Baixe punkt.

2

Estava recebendo um erro, apesar de importar o seguinte,

import nltk
nltk.download()

mas para google colab isso resolveu meu problema.

   !python3 -c "import nltk; nltk.download('all')"


1

Você precisa reorganizar suas pastas Mova sua tokenizerspasta para a nltk_datapasta. Isso não funciona se você tiver uma nltk_datapasta contendo uma corporapasta contendo uma tokenizerspasta


1

Para mim, nada do acima funcionou, então eu apenas baixei todos os arquivos manualmente do site http://www.nltk.org/nltk_data/ e também os coloquei manualmente em um arquivo "tokenizers" dentro de "nltk_data " pasta. Não é uma solução bonita, mas ainda é uma solução.


1

Depois de adicionar esta linha de código, o problema será corrigido:

nltk.download('punkt')

0

Eu enfrentei o mesmo problema. Depois de baixar tudo, ainda estava lá o erro 'punkt'. Eu pesquisei o pacote na minha máquina com Windows em C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers e posso ver 'punkt.zip' presente lá. Percebi que, de alguma forma, o zip não foi extraído para C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers \ punk. Depois de extrair o zip, ele funcionou como música.



Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.