2012-07-19 8 views
7

Sto provando a eseguire nltk su una macchina SUSE Linux che non può essere connessa a Internet.Come installare english.pickle per nltk su una macchina Linux offline

Ho installato con successo NLTK e funziona, ma quando presento

>>> tagged = nltk.pos_tag(tokens) 

ottengo questo errore:

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

non posso usare il downloader in quanto non riesco a collegare la casella per la Internet.

Qualcuno come posso installare i pacchetti necessari?

risposta

2

Il downloader memorizza i file in una cartella particolare. Immagino sia possibile scaricare su una macchina online e copiare i file nella posizione equivalente sulla macchina offline. Sulla mia macchina, viene scaricato in /usr/local/lib/nltk_data.

+0

Grazie per il tuo suggerimento - se dovessi farlo su una macchina Windows i file scaricati funzionerebbero sulla scatola Linux? –

+0

Scusa, ho appena visto il tuo commento. Non lo so, ma immagino che i dati dovrebbero essere multipiattaforma (tranne forse per le terminazioni di linea). – darkphoenix

3

I dati vengono scaricati nella directory nltk_data. Dove cioè si differenzia da un sistema all'altro, ma si può scoprire nel modo seguente:

import nltk 
print nltk.data.find('.') 

english.pickle dovrebbe essere in una sottocartella di <nltk_data>/taggers/. Il modo più semplice per metterlo lì è usare il downloader su una macchina che ha accesso a Internet, quindi copiarlo e inserirlo nella stessa sottocartella. C'è solo una versione di english.pickle, e puoi scaricarla su una scatola di Windows, nessun problema.