我正在使用Stanford Parser API。我的系统规格如下:
操作系统:Win8
IDE:.IntelliJIdea14
JDK:1.8
Stanford-Parser 3.5.2版本
我在模块依赖项(ClassPath)中导入了stanford-parser.jar和ejml-0.23.jar。 有一些解析器模型保存在名为stanford-parser-3.5.2-models的jar文件中。
斯坦福大学的支持团队说:
"在最近的发行版中,模型包含在一个jar文件里面 解析器分发。例如,在2012-11-12发行版中, 这些模型包含在stanford-parser-2.0.4-models.jar中 访问这些模型的最简单方法是将此文件包含在您的文件中 类路径。然后,解析器将能够从中读取模型 jar文件。 "
但我无法导入stanford-parser-3.5.2-models.jar文件。所以我将其解压缩,将模型保存在D Drive中的适当地址中,最后更改了以下代码:
String parserModel = "edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz";
LexicalizedParser lp = LexicalizedParser.loadModel(parserModel);
要
String parserModel = "D:\\ MasterofScience\\Tools\\Stanford Dependenct Tree\\models" +
"\\lexparser\\englishPCFG.ser.gz";
LexicalizedParser lp = LexicalizedParser.loadModel(parserModel);
但是我给出了这些异常错误:
Exception in thread "main" java.lang.NoClassDefFoundError: edu/stanford/nlp/parser/lexparser/LexicalizedParser
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:119)
Caused by: java.lang.ClassNotFoundException: edu.stanford.nlp.parser.lexparser.LexicalizedParser
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)
... 6 more
即使我不改变代码,我收到同样的异常! 我该怎么办?
答案 0 :(得分:0)
您在类路径中缺少解析器jar(stanford-parser.jar
)。实际上,您可以将解析器jar和模型jar添加到类路径中,然后程序应该可以工作。