java - 斯坦福CoreNLP中如何选择共指消解系统

标签 java stanford-nlp stanford-parser

我正在尝试测试 core-nlp 的共指解析系统。来自 Running coreference resolution on raw text ,我了解设置“dcoref 系统”的常规属性。

我想根据模块的延迟在协同引用系统 [确定性、统计性、神经性] 之间进行选择。命令行用法对我来说很清楚,我如何使用此选项作为 API?

目前,我正在运行默认代码:

public static void main(String[] args) throws Exception {
    Annotation document = new Annotation("Barack Obama was born in Hawaii.  He is the president. Obama was elected in 2008.");
    Properties props = new Properties();
    props.setProperty("annotators", "tokenize,ssplit,pos,lemma,ner,parse,mention,coref");
    StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
    pipeline.annotate(document);
    System.out.println("---");
    System.out.println("coref chains");
    for (CorefChain cc : document.get(CorefCoreAnnotations.CorefChainAnnotation.class).values()) {
      System.out.println("\t" + cc);
    }
    for (CoreMap sentence : document.get(CoreAnnotations.SentencesAnnotation.class)) {
      System.out.println("---");
      System.out.println("mentions");
      for (Mention m : sentence.get(CorefCoreAnnotations.CorefMentionsAnnotation.class)) {
        System.out.println("\t" + m);
       }
    }

最佳答案

嗯,在挖掘了corefProperties.class之后,我发现了需要更改的属性。

 props.setProperty("coref.language", "en");
 props.setProperty("coref.algorithm", "statistical");//"statistical" : "neural"

但是,更令人惊讶的是,执行上面的示例测试文本。 统计方法大约需要:45秒,神经大约需要30秒。 (英特尔 i5 @2.00Ghz,8GB 内存)。我在这里遗漏了什么吗?

关于java - 斯坦福CoreNLP中如何选择共指消解系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41889931/

相关文章:

java - 由 : java. 引起 sql.SQLException: Column 'id' not found

java - Tomcat 8.0.51 - 由于未知原因额外启动 20 秒

nlp - 从斯坦福依赖分析树中提取 NP-VP-NP

java - 创建自己的POS Tagger

nlp - 限制斯坦福 NER 中的迭代次数

java - 将 java 字节数组转换为字符串

java - libgdx 在矩形内缩放/拖动

NLP提取相关短语

java - 在java中使用Stanford Core NLP时出现错误(tokensregex.parser.TokenMgrError)