首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么斯坦福大学CoreNLP注释器默认加载3种模型?

为什么斯坦福大学CoreNLP注释器默认加载3种模型?
EN

Stack Overflow用户
提问于 2015-11-24 22:52:28
回答 1查看 1.1K关注 0票数 4

当我将"ner“注释器添加到我的StanfordCoreNLP对象管道中时,我可以看到它加载了3个模型,这需要很长时间:

代码语言:javascript
复制
Adding annotator ner
Loading classifier from edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz ... done [10.3 sec].
Loading classifier from edu/stanford/nlp/models/ner/english.muc.7class.distsim.crf.ser.gz ... done [10.1 sec].
Loading classifier from edu/stanford/nlp/models/ner/english.conll.4class.distsim.crf.ser.gz ... done [6.5 sec].
Initializing JollyDayHoliday for SUTime from classpath: edu/stanford/nlp/models/sutime/jollyday/Holidays_sutime.xml as sutime.binder.1.
Reading TokensRegex rules from edu/stanford/nlp/models/sutime/defs.sutime.txt
Reading TokensRegex rules from edu/stanford/nlp/models/sutime/english.sutime.txt
Reading TokensRegex rules from edu/stanford/nlp/models/sutime/english.holidays.sutime.txt

是否有一种方法只加载一个将同样工作的子集?特别是,当它有7级模型时,我不知道它为什么要加载3级和4级的NER模型,我想知道如果不加载这两种模型是否仍然有效。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 10:10:30

您可以以这种方式设置加载哪些模型:

命令行:

代码语言:javascript
复制
-ner.model model_path1,model_path2

Java代码:

代码语言:javascript
复制
 props.put("ner.model", "model_path1,model_path2");

其中model_path1和model_path2应该是这样的:

代码语言:javascript
复制
"edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz"

该模型是分层应用的。运行第一个模型并应用它的标记。然后是第二,第三,等等。如果您想要更少的模型,您可以将1或2个模型放在列表中,而不是三个默认模式,但这将改变系统的执行方式。

如果您将"ner.combinationMode“设置为"HIGH_RECALL",则允许所有型号应用它们的所有标记。如果您将"ner.combinationMode“设置为"NORMAL",那么未来的模型将无法应用以前的模型设置的任何标记。

默认情况下的所有三种模型都是针对不同的数据进行培训的。例如,3级比7级模型训练的数据要多得多.因此,每个模型都在做一些不同的事情,它们的结果都被组合起来,以创建最终的标记序列。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33905412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档