Java 在CoreNLP管道中,是否可以将Coref工具(dcoref)与新的依赖项解析器工具(depparse)一起使用?
这是您通常初始化管道以在某些文本上运行的方式:Java 在CoreNLP管道中,是否可以将Coref工具(dcoref)与新的依赖项解析器工具(depparse)一起使用?,java,stanford-nlp,Java,Stanford Nlp,这是您通常初始化管道以在某些文本上运行的方式: //stanford NLP static Properties props = new Properties(); static StanfordCoreNLP pipeline; static void initStanfordPipeline() { // creates a StanfordCoreNLP object, with POS tagging, lemmatization, NER, parsing, and c
//stanford NLP
static Properties props = new Properties();
static StanfordCoreNLP pipeline;
static void initStanfordPipeline() {
// creates a StanfordCoreNLP object, with POS tagging, lemmatization, NER, parsing, and coreference resolution
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref"); // depparse is an option for using a new dependency parsing model
pipeline = new StanfordCoreNLP(props);
}
当我尝试将“depprase”而不是“parse”作为管道中的选项时,出现以下错误:
Exception in thread "main" java.lang.IllegalArgumentException: annotator "dcoref" requires annotator "parse"
好问题!这在目前的管道中是不可能的,尽管它确实应该是。我会在下次发展会议上提出这个问题 现在,如果您知道您的管道不需要选区分析,那么可以通过在管道标志中设置一个属性来轻松绕过此问题:
-enforceRequirements false
但是,看起来您正在使用的是
dcoref
,它确实需要进行选区分析,因此很遗憾,无法使用parse
注释器。谢谢!我还使用了该工具的共引用部分。那还能用吗?啊,我之前错过了。不,在没有选区分析的情况下,要想逃过coref的追捕是不可能的。更新了我的回答。这个问题对于任何熟悉斯坦福nlp的人来说都是完全有意义的。请打开,这真是一个好问题。