2015-09-28 13 views
6

Questo è il mio codiceNLTK: perché nltk non riconosce la variabile CLASSPATH per stanford-ner?

from nltk.tag import StanfordNERTagger 
st = StanfordNERTagger('english.all.3class.distsim.crf.ser.gz') 

e ottengo

NLTK was unable to find stanford-ner.jar! Set the CLASSPATH 
    environment variable. 

Questo è ciò che il mio .bashrc assomiglia in ubuntu

export CLASSPATH=/home/wolfgang/Downloads/stanford-ner-2015-04-20/stanford-ner-3.5.2.jar 
export STANFORD_MODELS=/home/wolfgang/Downloads/stanford-ner-2015-04-20/classifiers 

Inoltre, ho provato la stampa la variabile ambientale in Python questo way

import os 
os.environ.get('CLASSPATH') 

E ricevo

'/home/wolfgang/Downloads/stanford-ner-2015-04-20/stanford-ner-3.5.2.jar' 

Pertanto, le variabili sono in via di!

Cosa c'è che non va?

Perché non riconosco le mie variabili ambientali?

+0

http://stackoverflow.com/a/34112695/610569 – alvas

risposta

4

cambiamento il file .jar e la variabile ambientale da stanford-ner-3.5.2.jar a stanford-ner.jar

apparentemente NLTK ha una variabile name_pattern in nltk_internals.py che accetta solo il CLASSPATH se corrisponde una regex del valore stanford-ner.jar

+2

o si può semplicemente impostare il percorso di classe alla cartella principale anche come 'os.environ [ 'CLASSPATH'] = "/ home/Wolfgang/Downloads/Stanford-ner-2015/04/20" '. Entrambe queste opzioni (cartella padre o stanford-ner.jar) hanno funzionato per me. – psun

+0

hai ragione! Questo ha risolto il mio problema. –

1

Questo è il modo corretto per impostare PERCORSO:

st = StanfordNERTagger('C:\Python26\Lib\stanford-ner\classifiers\english.all.3class.distsim.crf.ser.gz','C:\Python26\Lib\stanford-ner\stanford-ner.jar') 

Fornire il percorso corretto per individuare entrambi i file. Se c'è ancora un errore di variabile di ambiente Java, significa che il tuo ambiente Java non è configurato. Per impostarlo, vai su "Risorse del computer -> Proprietà -> Impostazioni avanzate". Ci sono video che mostrano cosa fanno queste impostazioni. Una volta fatto questo, se l'ambiente è impostato correttamente, quando si esegue il file python una finestra di comando nera schizzerà per circa dieci secondi mentre elabora il file. Questo dovrebbe restituire il risultato senza errori.

0

Ecco il mio codice:

from nltk.tag import StanfordNERTagger 
import os 

os.getenv('CLASSPATH') 

USCITA: '/home/user/Downloads/stanford-ner.jar'

from nltk.tokenize import sent_tokenize, word_tokenize 

st = StanfordNERTagger("english.all.3class.distsim.crf.ser.gz") 

Scarica stanford-ner.jar da here

Set Classpath export CLASSPATH=/home/admin-pc/Downloads/

ha funzionato per me: p