Ich habe Probleme, den neuesten StanfordPOSTagger in Python 2.7.1 mit NLTK 3.2.1 auf einem Mac mit installiertem Java 8 zu installieren. Ich habe mehrere andere Threads mit sehr ähnlichen Problemen gefunden, aber keine der Lösungen hat es für mich gearbeitet .. Unten ist der Ausgang, wenn ich versuche, einen Satz zu markieren:StanfordPOSTagger arbeitet nicht mit NLTK
>>> from nltk.tag.stanford import StanfordPOSTagger
>>> st = StanfordPOSTagger('wsj-0-18-left3words-distsim.tagger')
>>> st.tag(nltk.tokenize.word_tokenize("This is a test"))
Exception in thread "main" java.lang.UnsupportedClassVersionError: edu/stanford/nlp/tagger/maxent/MaxentTagger : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Traceback (most recent call last):
File "<pyshell#44>", line 1, in <module>
st.tag(nltk.tokenize.word_tokenize("This is a test"))
File "/Library/Python/2.7/site-packages/nltk/tag/stanford.py", line 71, in tag
return sum(self.tag_sents([tokens]), [])
File "/Library/Python/2.7/site-packages/nltk/tag/stanford.py", line 94, in tag_sents
stdout=PIPE, stderr=PIPE)
File "/Library/Python/2.7/site-packages/nltk/internals.py", line 134, in java
raise OSError('Java command failed : ' + str(cmd))
OSError: Java command failed : ['/Library/Java/Home/bin/java', '-mx1000m', '-cp', '/Users/johntorr/VirtualAssistantProject/stanford-postagger/stanford-postagger-3.6.0-javadoc.jar:/Users/johntorr/VirtualAssistantProject/stanford-postagger/stanford-postagger-3.6.0-sources.jar:/Users/johntorr/VirtualAssistantProject/stanford-postagger/stanford-postagger-3.6.0.jar:/Users/johntorr/VirtualAssistantProject/stanford-postagger/stanford-postagger.jar:/Users/johntorr/VirtualAssistantProject/stanford-postagger/lib/slf4j-api.jar:/Users/johntorr/VirtualAssistantProject/stanford-postagger/lib/slf4j-simple.jar', 'edu.stanford.nlp.tagger.maxent.MaxentTagger', '-model', '/Users/johntorr/VirtualAssistantProject/stanford-postagger/models/wsj-0-18-left3words-distsim.tagger', '-textFile', '/var/folders/gy/bw2lj_wj79x9vl1l3n3ccg980000gn/T/tmp6yV_lP', '-tokenize', 'false', '-outputFormatOptions', 'keepEmptySentences', '-encoding', 'utf8']
Inside my Bash_profile Datei Ich habe hinzugefügt die beiden folgenden Zeilen:
export CLASSPATH={CLASSPATH}:/Users/johntorr/VirtualAssistantProject/stanford-postagger/stanford-postagger.jar
export STANFORD_MODELS=/Users/johntorr/VirtualAssistantProject/stanford-postagger/models
export JAVA_HOME=/Library/Java/Home
export PATH=$PATH:$JAVA_HOME/bin/java
Es scheinen einige andere Orte mit Java-Home-Ordner und Java-Executables zu sein, aber ich habe sie alle ausprobiert und nichts funktioniert mit. Ich habe auch die Lösung hier versucht: https://gist.github.com/alvations/e1df0ba227e542955a8a die von ein paar Leuten in verschiedenen Threads gepostet wurde, aber das hat auch nicht funktioniert .. Ich werde sehr dankbar sein, wenn mir jemand helfen kann, das zu lösen!
Funktioniert der Befehl außerhalb von Linux? – alvas
Ich denke, es ist ein Genehmigungsproblem. Haben Sie Zugriff auf '/ Library/Java/Home/bin /', '/ Benutzer/johntorr/VirtualAssistantProject/stanford-posttagger /' und '/ var/folders /'? – alvas
Versuchen Sie 'sudo chmod u + w -R/Bibliothek/Java/Home/bin/*', 'sudo chmod u + w -R/var/folders /' auf Ihrem Terminal. – alvas