2016-02-27 2 views
0

Привет, я пытаюсь сделать тег POS для определенного предложения, используя Stanford Pos Tagger. Я использую Python 3.4 NLTK 3.1 на windows7 Ниже приводится код, который я использовал:Ошибка в Stanford Pos Tagger

import nltk 
from nltk.tag.stanford import POSTagger 
import os 
java_path = r"C:\Program Files\Java\jre1.8.0_66\bin\java.exe" 
os.environ['JAVAHOME'] = java_path 

St=POSTagger(r"C:\Python34\Scripts\stanford-postagger-2015-12-09\models\english-bidirectional-distsim.tagger",r"C:\Python34\Scripts\stanford-postagger-2015-12-09\stanford-postagger.jar") 

tokens = nltk.tokenize.word_tokenize("Sample for tagging a sentence.") 
print(St.tag(tokens)) 

Тем не менее, я получаю следующее сообщение об ошибке:

Traceback (most recent call last): 
Loading default properties from tagger C:\Python34\Scripts\stanford-postagger-2015-12-09\models\english-bidirectional-distsim.tagger 

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 

at edu.stanford.nlp.io.IOUtils.<clinit>(IOUtils.java:42) 

at edu.stanford.nlp.tagger.maxent.TaggerConfig.<init>(TaggerConfig.java:146) 

at edu.stanford.nlp.tagger.maxent.TaggerConfig.<init>(TaggerConfig.java:128) 

at edu.stanford.nlp.tagger.maxent.MaxentTagger.main(MaxentTagger.java:1836) 

Вызванный: java.lang.ClassNotFoundException: орг .slf4j.LoggerFactory

at java.net.URLClassLoader.findClass(Unknown Source) 

at java.lang.ClassLoader.loadClass(Unknown Source) 

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 

at java.lang.ClassLoader.loadClass(Unknown Source) 

... 4 more 

File "C:\Users\workspace\src\chunking.py", line 15, in <module> 
print(St.tag(tokens)) 
File "C:\Python34\lib\site-packages\nltk\tag\stanford.py", line 59, in tag 
return self.tag_sents([tokens])[0] 
File "C:\Python34\lib\site-packages\nltk\tag\stanford.py", line 81, in tag_sents stdout=PIPE, stderr=PIPE) 
File "C:\Python34\lib\site-packages\nltk\internals.py", line 160, in java  raise OSError('Java command failed!') 
OSError: Java command failed! 

Возможно, кто-нибудь поможет мне устранить эту ошибку?

+1

См https://github.com/nltk/nltk/issues/1304 – alvas

+0

Возможный дубликат [NLTK StanfordNERTagger: NoClassDefFoundError: орг/SLF4J/LoggerFactory (в Windows)] (HTTP: // stackoverflow.com/questions/34361725/nltk-stanfordnertagger-noclassdeffounderror-org-slf4j-loggerfactory-in-windo) – alvas

ответ

0

Попробуйте добавить еще два файла jar в два ваших пути сборки. Эти файлы вы найдете в папке lib загруженного пакета slf4j-api.jar и slf4j-simple.jar. Посмотри в this tutorial

+0

Я не мог решить проблему, поэтому я загрузил другую версию тега POS stanford-postagger-full-2014-08 -27. Он работает сейчас. – Shany