在使用NLTK中的Stanford Parser Python接口时,会遇到报错信息:
C:\Users\Acer>jython E:\jcode\test_stanford.py
Traceback (most recent call last):
File "E:\jcode\test_stanford.py", line 5, in <module>
from stanford import StanfordParser, PySentence
File "F:\jython2.5.2\Lib\stanford.py", line 65, in <module>
from edu.stanford.nlp.parser.lexparser import LexicalizedParser
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at edu.stanford.nlp.parser.common.ParserGrammar.<clinit>(ParserGrammar.java:46)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.python.core.Py.loadAndInitClass(Py.java:895)
at org.python.core.Py.findClassInternal(Py.java:830)
at org.python.core.Py.findClassEx(Py.java:881)
at org.python.core.packagecache.SysPackageManager.findClass(SysPackageMa
nager.java:133)
at org.python.core.packagecache.PackageManager.findClass(PackageManager.
java:28)
at org.python.core.packagecache.SysPackageManager.findClass(SysPackageMa
nager.java:122)
at org.python.core.PyJavaPackage.__findattr_ex__(PyJavaPackage.java:137)
at org.python.core.PyObject.__findattr__(PyObject.java:863)
at org.python.core.imp.import_name(imp.java:849)
at org.python.core.imp.importName(imp.java:884)
at org.python.core.ImportFunction.__call__(__builtin__.java:1220)
at org.python.core.PyObject.__call__(PyObject.java:357)
at org.python.core.__builtin__.__import__(__builtin__.java:1173)
at org.python.core.imp.importFromAs(imp.java:978)
at org.python.core.imp.importFrom(imp.java:954)
at stanford$py.f$0(F:\jython2.5.2\Lib\stanford.py:465)
at stanford$py.call_function(F:\jython2.5.2\Lib\stanford.py)
at org.python.core.PyTableCode.call(PyTableCode.java:165)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.imp.createFromCode(imp.java:386)
at org.python.core.imp.createFromPyClass(imp.java:204)
at org.python.core.imp.loadFromSource(imp.java:567)
at org.python.core.imp.find_module(imp.java:473)
at org.python.core.imp.import_next(imp.java:713)
at org.python.core.imp.import_name(imp.java:824)
at org.python.core.imp.importName(imp.java:884)
at org.python.core.ImportFunction.__call__(__builtin__.java:1220)
at org.python.core.PyObject.__call__(PyObject.java:357)
at org.python.core.__builtin__.__import__(__builtin__.java:1173)
at org.python.core.imp.importFromAs(imp.java:978)
at org.python.core.imp.importFrom(imp.java:954)
at org.python.pycode._pyx0.f$0(E:\jcode\test_stanford.py:66)
at org.python.pycode._pyx0.call_function(E:\jcode\test_stanford.py)
at org.python.core.PyTableCode.call(PyTableCode.java:165)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.Py.runCode(Py.java:1261)
at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:235)
at org.python.util.jython.run(jython.java:247)
at org.python.util.jython.main(jython.java:129)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at org.python.core.SyspathJavaLoader.findClass(SyspathJavaLoader.java:127)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 42 more
java.lang.NoClassDefFoundError: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
解决办法:参考本人另一篇博文“Python 调用 Stanford Parser 两种方法”中的方法二:http://blog.csdn.net/huludan/article/details/50717110