stanford nlp核心出错
我下载了stanford nlp,当我运行他们网站上给出的代码时。
我在这行中收到错误:
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
错误如下:
Exception in thread "main" java.lang.NoClassDefFoundError: nu/xom/Node at sample1.main(sample1.java:35) Caused by: java.lang.ClassNotFoundException: nu.xom.Node at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) 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) ... 1 more
我使用eclipse,我应该做一些配置吗? 请帮帮我吧!
我从你提供的链接下载了stanford-corenlp-2012-01-08.tgz。 使用7-zip我没有压缩它,发现另一个名为stanford-corenlp-2012-01-08的压缩文件,并再次使用7-zip解压缩。 内容如下所示:
然后我在eclipse中创建了一个新的Java项目,并在该项目中创建了一个新的文件夹lib并放入
- 乔达-time.jar
- 斯坦福大学corenlp-2011-12-27-models.jar
- 斯坦福大学corenlp-2012-01-08.jar
- xom.jar
jars到lib。 然后将项目Java Build Path设置为这些jar。
接下来,我使用main方法创建了一个测试类。
import java.util.Properties; import edu.stanford.nlp.pipeline.StanfordCoreNLP; public class NLP { /** * @param args */ public static void main(String[] args) { Properties props = new Properties(); props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref"); StanfordCoreNLP coreNLP = new StanfordCoreNLP(props); } }
最后运行应用程序。 输出如下所示:
它运行成功。
希望这会帮助你。
我使用stanford-corenlp-full-2014-10-31时遇到了同样的问题。
Tapas Bose的答案非常好,但对于当前版本(以及其他早期版本),您还需要包含另外两个.jar文件来消除错误:
- ejml-0.23.jar
- jollyday.jar
开发人员也在网站上更新了这些信息:
要使用Stanford CoreNLP处理一个文件,请使用以下命令行(将JAR文件日期扩展名调整为下载的版本):
java -cp stanford-corenlp-VV.jar:stanford-corenlp-VV-models.jar:xom.jar:joda-time.jar:jollyday.jar:ejml-VV.jar -Xmx2g edu.stanford.nlp.pipeline.StanfordCoreNLP [ -props ] -file
你还需要添加xom.jar来构建路径。
请在您的库中包含ejml-0.23.jar。