当我将"ner“注释器添加到我的StanfordCoreNLP对象管道中时,我可以看到它加载了3个模型,这需要很长时间:
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模型,我想知道如果不加载这两种模型是否仍然有效。
发布于 2015-11-25 10:10:30
您可以以这种方式设置加载哪些模型:
命令行:
-ner.model model_path1,model_path2Java代码:
props.put("ner.model", "model_path1,model_path2");其中model_path1和model_path2应该是这样的:
"edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz"该模型是分层应用的。运行第一个模型并应用它的标记。然后是第二,第三,等等。如果您想要更少的模型,您可以将1或2个模型放在列表中,而不是三个默认模式,但这将改变系统的执行方式。
如果您将"ner.combinationMode“设置为"HIGH_RECALL",则允许所有型号应用它们的所有标记。如果您将"ner.combinationMode“设置为"NORMAL",那么未来的模型将无法应用以前的模型设置的任何标记。
默认情况下的所有三种模型都是针对不同的数据进行培训的。例如,3级比7级模型训练的数据要多得多.因此,每个模型都在做一些不同的事情,它们的结果都被组合起来,以创建最终的标记序列。
https://stackoverflow.com/questions/33905412
复制相似问题