在运行时更改CoreNLP设置

阿莱西奥(Alessio Palmero)Aprosio

我正在使用Stanford CoreNLP管道,我想知道是否有一种方法可以在不重新启动整个工具的情况下编辑基本设置(避免重新加载模型)。

我现在有:

Properties props = new Properties();
props.setProperty("tokenize.whitespace", "true");
props.setProperty("annotators", "tokenize, ssplit, pos, ...");
StanfordCoreNLP stanfordPipeline = new StanfordCoreNLP(props);

我想tokenize.whitespace即时更改设置,而无需重新启动所有功能。是否有可能?

尼基塔·阿斯特拉坎采夫

您只应创建具有其他属性的StanfordCoreNLP的新实例;所有常见的注释器及其模型都不会重新加载,因为StanfordCoreNLP使用静态的AnnotatorPool(请参见src代码,第103行),其中AnnotatorPool为:

跟踪注释器的对象。典型用途是允许多个管道共享任何公共的注释器。

例如,如果存在多个管道,并且它们都需要一个ParserAnnotator,则将两个这样的Annotator加载到内存中将很不好。相反,AnnotatorPool将仅创建一个Annotator,并允许两个管道共享它。

(取自javadoc

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章