在Stanford CoreNLP中使用SemanticGraphCoreAnnotations

时间:2016-09-12 12:38:06

标签: stanford-nlp

我想使用http://nlp.stanford.edu/software/openie.html中的示例代码,但行

 System.out.println(sentence.get(SemanticGraphCoreAnnotations.EnhancedDependenciesAnnotation.class).toString(SemanticGraph.OutputFormat.LIST));

给出错误

  

SemanticGraphCoreAnnotations.EnhancedDependenciesAnnotation不能   解析为类型

即使我导入了edu.stanford.nlp.semgraph.SemanticGraphCoreAnnotations。 Eclipse建议遵循快速修复:

  

更改为“AlternativeDependenciesAnnotation”   (edu.stanford.nlp.semgraph.SemanticGraphCoreAnnotations;)

     

更改为“BasicDependenciesAnnotation”   (edu.stanford.nlp.semgraph.SemanticGraphCoreAnnotations;)

应用第一个修复会导致java.lang.NullPointerException,而第二个修复会给第一个句子带来以下相当不满意的结果:

  

来自的加载条款搜索者   edu / stanford / nlp / models / naturalli / clauseSearcherModel.ser.gz ... 1.0奥巴马是   熊在夏威夷

导入edu.stanford.nlp.semgraph.SemanticGraphCoreAnnotations.EnhancedDependenciesAnnotation;无法解析和导入导入edu.stanford.nlp.semgraph.SemanticGraphCoreAnnotations;也没有帮助。

我导入了JAR

  • 约达时间
  • 斯坦福-corenlp-3.6.0
  • 斯坦福-corenlp-3.6.0的模型
  • ejml-0.23
  • jollyday
  • XOM
  • SLF4J
  • SLF4J-简单

我使用的是CoreNLP 3.6.0。 。我检查了edu.stanford.nlp.semgraph中的SemanticGraphCoreAnnotations.java,它包含EnhancedDependenciesAnnotation.class。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

似乎示例代码是为最新版本的OpenIE编写的,目前仅在GitHub上。让它运行的最简单方法可能是克隆repository并自己编译CoreNLP。

答案 1 :(得分:0)

使用 stanford-corenlp-3.9.2 jar。这对我有用。