Ao tentar carregar o punkt
tokenizer ...
import nltk.data
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')
... a LookupError
foi criado:
> LookupError:
> *********************************************************************
> Resource 'tokenizers/punkt/english.pickle' not found. Please use the NLTK Downloader to obtain the resource: nltk.download(). Searched in:
> - 'C:\\Users\\Martinos/nltk_data'
> - 'C:\\nltk_data'
> - 'D:\\nltk_data'
> - 'E:\\nltk_data'
> - 'E:\\Python26\\nltk_data'
> - 'E:\\Python26\\lib\\nltk_data'
> - 'C:\\Users\\Martinos\\AppData\\Roaming\\nltk_data'
> **********************************************************************
>>> nltk.download()
Respostas:
Eu tenho esse mesmo problema. Entre em um shell python e digite:
Em seguida, uma janela de instalação é exibida. Vá para a guia 'Modelos' e selecione 'punkt' na coluna 'Identificador'. Em seguida, clique em Download e ele instalará os arquivos necessários. Então deve funcionar!
fonte
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')
deve, em seguida, trabalho e você pode usar tokenizer assim:tokenizer.tokenize('The cat. The mat. It Sat.')
. Aqui o nltk tenta resolver o caminho relativo emtokenizers/punkt/english.pickle
vários locais. Por exemplo, no Windows, ele aparece%APPDATA%\nltk_data\tokenizers\punkt\english.pickle
ouC:\nltk_data\tokenizers\punkt\english.pickle
(o mesmo para D: e E :). Portanto, se você garantir que o arquivo punkt.zip esteja descompactado de maneira que exista um desses locais, ele poderá encontrá-lo.NLTK_DATA
variável de ambiente para apontar para a pasta nltk_data para que ela%NLTK_DATA%\tokenizers\punkt\english.pickle
exista.ssh
conexão), não haverá janela da GUI e, portanto, nenhuma guia 'Modelos'.Você pode fazer isso assim.
Você pode baixar os tokenizadores passando
punkt
como argumento para adownload
função Os tokenizadores de palavras e frases estão disponíveis emnltk
.Se você deseja fazer o download de tudo isto
chunkers
,grammars
,misc
,sentiment
,taggers
,corpora
,help
,models
,stemmers
,tokenizers
, não passar quaisquer argumentos como este.Veja isso para mais informações. https://www.nltk.org/data.html
fonte
python -c "import nltk; nltk.download('punkt')" [nltk_data] Downloading package punkt to /home/my_user/nltk_data... [nltk_data] Error downloading 'punkt' from [nltk_data] <https://raw.githubusercontent.com/nltk/nltk_data/gh- [nltk_data] pages/packages/tokenizers/punkt.zip>: HTTP Error [nltk_data] 503: first byte timeout
Isto é o que funcionou para mim agora:
sentenças_tokenizadas é uma lista de uma lista de tokens:
As frases foram extraídas do exemplo do caderno ipython que acompanha o livro "Mining the Social Web, 2nd Edition"
fonte
Na linha de comando do bash, execute:
fonte
nltk_data
no meu diretório pessoal e salva punkt nele. Eu tenho o Fedora 27, Py3.6.Isso funciona para mim:
No Windows, você também receberá o nltk downloader
fonte
Simples
nltk.download()
não resolverá esse problema. Eu tentei o abaixo e funcionou para mim:na
nltk
pasta, crie umatokenizers
pasta e copie suapunkt
pasta para atokenizers
pasta.Isso vai funcionar. a estrutura da pasta precisa ser como mostra a figura! 1
fonte
O nltk possui seus modelos de tokenizer pré-treinados. O modelo está sendo baixado de fontes da Web predefinidas internamente e armazenado no caminho do pacote nltk instalado enquanto é executado após possíveis chamadas de função.
Por exemplo, 1 tokenizer = nltk.data.load ('nltk: tokenizers / punkt / english.pickle')
Por exemplo, 2 nltk.download ('punkt')
Se você chamar a frase acima no seu código, verifique se possui conexão com a Internet sem nenhuma proteção de firewall.
Gostaria de compartilhar uma maneira melhor de alterar a rede para resolver o problema acima com entendimentos mais profundos e melhores.
Siga as etapas a seguir e aproveite a tokenização de palavras em inglês usando o nltk.
Etapa 1: Baixe o modelo "english.pickle" seguindo o caminho da web.
Vá para o link " http://www.nltk.org/nltk_data/ " e clique em "download" na opção "107. Modelos de Tokenizer Punkt"
Etapa 2: extraia o arquivo "punkt.zip" baixado e localize o arquivo "english.pickle" e coloque-o na unidade C.
Etapa 3: copie e cole o seguinte código e execute.
Deixe-me saber, se você enfrentar algum problema
fonte
No Jenkins, isso pode ser corrigido adicionando o seguinte código ao Virtualenv Builder na guia Build :
python -m nltk.downloader punkt
fonte
me deparei com este problema quando eu estava tentando fazer a marcação pos no nltk. a maneira como eu o corrigi é criando um novo diretório junto com o diretório corpora chamado "taggers" e copiando max_pos_tagger nos taggers de diretório.
Espero que funcione para você também. Boa sorte com isso!!!.
fonte
No Spyder, vá para o seu shell ativo e faça o download do nltk usando abaixo de 2 comandos. import nltk nltk.download () Então você deverá ver a janela do NLTK Downloader aberta como abaixo: Vá para a guia 'Modelos' nesta janela e clique em 'punkt' e faça o download de 'punkt'
fonte
Verifique se você possui todas as bibliotecas NLTK.
fonte
Os dados dos tokenizadores punkt são muito grandes, com mais de 35 MB , isso pode ser um grande problema se, como eu, você estiver executando o nltk em um ambiente como o lambda, que possui recursos limitados.
Se você precisar apenas de um ou talvez alguns tokenizadores de idioma, poderá reduzir drasticamente o tamanho dos dados incluindo apenas os
.pickle
arquivos de idiomas .Se tudo o que você precisa é oferecer suporte apenas ao inglês, o tamanho dos dados nltk poderá ser reduzido para 407 KB (para a versão python 3).
Passos
nltk_data/tokenizers/punkt
:, se estiver usando o python 3, adicione outra pastaPY3
para que sua nova estrutura de diretórios se pareçanltk_data/tokenizers/punkt/PY3
. No meu caso, criei essas pastas na raiz do meu projeto..pickle
arquivos para os idiomas que você deseja oferecer suporte para apunkt
pasta que você acabou de criar. Nota: Os usuários do Python 3 devem usar os pickles daPY3
pasta. Com os arquivos de idioma carregados, ele deve se parecer com: exemplo-pasta-estruturanltk_data
pasta aos caminhos de pesquisa, supondo que seus dados não estejam em um dos caminhos de pesquisa predefinidos . Você pode adicionar os seus dados usando a variável de ambienteNLTK_DATA='path/to/your/nltk_data'
. Você também pode adicionar um caminho personalizado em tempo de execução em python, fazendo:NOTA: Se você não precisar carregar os dados em tempo de execução ou agrupar os dados com o seu código, seria melhor criar suas
nltk_data
pastas nos locais internos procurados pelo nltk .fonte
nltk.download()
não resolverá esse problema. Eu tentei o abaixo e funcionou para mim:na
'...AppData\Roaming\nltk_data\tokenizers'
pasta, extraia apunkt.zip
pasta baixada no mesmo local.fonte
Em
Python-3.6
posso ver a sugestão no traceback. Isso é bastante útil. Portanto, direi a vocês que prestem atenção ao erro que obtiveram, na maioria das vezes as respostas estão dentro desse problema;).E então, como sugerido por outras pessoas aqui, usando o terminal python ou usando um comando como
python -c "import nltk; nltk.download('wordnet')"
podemos instalá-los em tempo real. Você só precisa executar esse comando uma vez e, em seguida, ele salvará os dados localmente no seu diretório pessoal.fonte
Eu tive um problema semelhante ao usar uma pasta atribuída para vários downloads e precisei anexar o caminho de dados manualmente:
download único, pode ser obtido da seguinte forma (obras)
Esse código funciona, o que significa que o nltk se lembra do caminho de download passado na função de download. Por outro lado, se eu baixar um pacote subsequente, recebo erro semelhante ao descrito pelo usuário:
Vários downloads geram um erro:
Erro:
Punkt de recurso não encontrado. Por favor, use o NLTK Downloader para obter o recurso:
import nltk nltk.download ('punkt')
Agora, se eu anexar o caminho de dados ntlk ao meu caminho de download, ele funcionará:
Isso funciona ... Não sei por que funciona em um caso, mas não no outro, mas a mensagem de erro parece sugerir que ele não entra na pasta de download pela segunda vez. NB: usando windows8.1 / python3.7 / nltk3.5
fonte