2017-03-20 29 views
-1

我在也使用Jena RDF API的Java項目中使用Stanford POS tagger 3.7.0。耶拿要求SLF4J-API 1.7.12.jar和SLF4J-log4j12-1.7.12.jar,但試圖調用其在classpath中我得到以下錯誤那些罐子的POS惡搞時:Stanford POS tagger不能在類路徑中使用SLF4J

Exception in thread "main" java.lang.ExceptionInInitializerError 
    at edu.stanford.nlp.util.logging.Redwood$ConsoleHandler.out(Redwood.java:920) 
    at edu.stanford.nlp.util.logging.RedwoodConfiguration.<init>(RedwoodConfiguration.java:28) 
    at edu.stanford.nlp.util.logging.RedwoodConfiguration.empty(RedwoodConfiguration.java:385) 
    at util.Splitter.split(Splitter.java:58) 
    at core.Main.main(Main.java:23) 
Caused by: java.lang.IllegalStateException: Could not find SLF4J in your classpath 
    at edu.stanford.nlp.util.logging.RedwoodConfiguration$Handlers.lambda$static$530(RedwoodConfiguration.java:190) 
    at edu.stanford.nlp.util.logging.RedwoodConfiguration$Handlers$7.buildChain(RedwoodConfiguration.java:309) 
    at edu.stanford.nlp.util.logging.RedwoodConfiguration$Handlers$7.apply(RedwoodConfiguration.java:318) 
    at edu.stanford.nlp.util.logging.RedwoodConfiguration.lambda$handlers$535(RedwoodConfiguration.java:363) 
    at edu.stanford.nlp.util.logging.RedwoodConfiguration.apply(RedwoodConfiguration.java:41) 
    at edu.stanford.nlp.util.logging.Redwood.<clinit>(Redwood.java:609) 
    ... 5 more 
Caused by: edu.stanford.nlp.util.MetaClass$ClassCreationException: java.lang.ClassNotFoundException: edu.stanford.nlp.util.logging.SLF4JHandler 
    at edu.stanford.nlp.util.MetaClass.createFactory(MetaClass.java:364) 
    at edu.stanford.nlp.util.MetaClass.createInstance(MetaClass.java:381) 
    at edu.stanford.nlp.util.logging.RedwoodConfiguration$Handlers.lambda$static$530(RedwoodConfiguration.java:186) 
    ... 10 more 
Caused by: java.lang.ClassNotFoundException: edu.stanford.nlp.util.logging.SLF4JHandler 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:264) 
    at edu.stanford.nlp.util.MetaClass$ClassFactory.construct(MetaClass.java:135) 
    at edu.stanford.nlp.util.MetaClass$ClassFactory.<init>(MetaClass.java:202) 
    at edu.stanford.nlp.util.MetaClass$ClassFactory.<init>(MetaClass.java:69) 
    at edu.stanford.nlp.util.MetaClass.createFactory(MetaClass.java:360) 
    ... 12 more 

我已經看到有人通過從類路徑中刪除SLF4J來解決它。事實上,當我刪除瓶子的POS標記工作正常,但隨後耶拿停止工作。

有沒有辦法在類路徑中保留SLF4J,並仍然使POS標記器工作?

+0

獲取錯誤修復或使用3.6。 – Andreas

回答

0

我認爲最好的解決方案是使用完整的斯坦福CoreNLP 3.7.0版本,它不會有這個問題,但將具有所有POS標記功能。

完全下載,請訪問:

http://stanfordnlp.github.io/CoreNLP/download.html

這個問題應該在獨立分佈於斯坦福CoreNLP 3.8.0我們將嘗試在初夏版本中得到解決。

相關問題