2012-03-28 13 views
0

Ich habe versucht, Hunpos auf meinem Windows-System einzurichten, aber einige Probleme auftreten.NLTK internals.py Fehler

Der Fehler, den ich bekommen ist

File "C:\Users\a\Desktop\x.py", line 25, in <module> 
ht = HunposTagger('english.model') 
File "C:\Python27-32\lib\site-packages\nltk-2.0.1rc4-py2.7-win32.egg\nltk\tag\hunpos.py", line 84, in __init__ 
verbose=verbose) 
File "C:\Python27-32\lib\site-packages\nltk-2.0.1rc4-py2.7-win32.egg\nltk\internals.py", line 526, in find_binary 
url, verbose) 
File "C:\Python27-32\lib\site-packages\nltk-2.0.1rc4-py2.7-win32.egg\nltk\internals.py", line 510, in find_file 
raise LookupError('\n\n%s\n%s\n%s' % (div, msg, div)) 
LookupError: =========================================================================== 
NLTK was unable to find the hunpos-tag file! 
Use software specific configuration paramaters or set the HUNPOS environment variable. 

Searched in: 
- C:\Users\a\ 
- . 
- /usr/bin 
- /usr/local/bin 
- /opt/local/bin 
- /Applications/bin 
- C:\Users\a/bin 
- C:\Users\a/Applications/bin 

Ich vermute, es ist ein Fehler in nltk der internals.py aber nicht sicher, wie es zu beheben. Ich habe os.getcwd() zu hunpos_paths in hunpos.py hinzugefügt, aber es hilft nicht.

Weiß jemand, warum das passiert?

Dank

+0

Das ist eine ziemlich nette Fehlermeldung. Was ist das für HUNPOS env var, von dem sie sprechen? Hast du das festgelegt? – bernie

+0

es ist in hunpos.py 'self._hunpos_bin = find_binary (... env_vars = ('HUNPOS', 'HUNPOS_HOME'), searchpath = hunpos_paths ...)' Ich stelle 'HUNPOS' in meinem env var ebenso ein. – Duke

+0

Ich habe internals.py geändert, um '' filename' 'und nicht 'name' wie hier beschrieben' https: // github.com/nltk/nltk/issues/217' – Duke

Antwort

0

Haben Sie die Datei english.model haben? Setzen Sie in diesem Fall die Umgebungsvariable HUNPOS auf das Verzeichnis, in dem sie enthalten ist, und führen Sie Python erneut aus. Wenn immer noch ein Fehler auftritt, überprüfen Sie, ob das Verzeichnis in der Liste der durchsuchten Speicherorte angezeigt wird.

+0

erfolgt defined'. habe immer noch denselben Fehler – Duke

+0

Wenn es nicht in dem Verzeichnis sucht, in dem du es angegeben hast, sieht es noch nicht HUNPOS. Überprüfen Sie selbst, indem Sie 'os.environ ['HUNPOS']' von der Interpreter-Eingabeaufforderung (nach 'import os') – alexis

+0

ja, es fand die env var. – Duke

0

Haben Sie hunpos-tag selbst kompiliert? Wenn nicht, und Sie die Binärdatei von Google Code oder einem anderen Ort heruntergeladen haben, kann es nicht der Fall sein, dass die Runnable tatsächlich eine EXE-Datei ist (ich habe keine Ahnung, ob exe Erweiterung von Windows benötigt wird, damit eine Datei ausführbar ist oder nicht) und hunpos.py ruft find_binary() an, um hunpos-tag zu lokalisieren, aber nicht hunpos-tag.exe? Ich weiß nicht, wie find_binary() funktioniert, aber das kann das Problem sein.

0
from nltk.tag.hunpos import HunposTagger 
ht = HunposTagger('english.model', 'hunpos-1.0-win/hunpos-tag.exe') 
ht.tag('What is the airspeed of an unladen swallow ?'.split()) 
ht.close() 

Sie müssen hunpos Dateien Pfade als Argumente festlegen.