当前位置: 首页 > 面试题库 >

为什么Stanford CoreNLP NER注释器默认加载3个模型?

宦瀚
2023-03-14
问题内容

当我在StanfordCoreNLP对象管道中添加“ ner”注释器时,我可以看到它加载了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模型,并且我想知道是否不加载这两种仍然可以工作。


问题答案:

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

命令行:

-ner.model model_path1,model_path2

Java代码:

 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”,则将来的模型将无法应用以前模型设置的任何标签

默认情况下,所有三个模型都针对不同的数据进行了训练。例如,与7类模型相比,使用3类模型训练的数据要多得多。因此,每个模型都在做不同的事情,它们的结果都被组合在一起以创建最终的标签序列。



 类似资料:
  • 我正在开发一个使用 JPA 和Hibernate的项目,我刚刚注意到实体没有任何关系注释,例如@ManyToOne、@OneToOne等。所以我的问题是,JPA / Hibernate是否为每个案例添加了默认注释? 这里有一个例子 JPA是否默认在此属性中添加@OneTo的注释?

  • 问题内容: Maven编译器插件的文档提到以下内容: 注解处理器: 要运行的注释处理器的名称。仅适用于JDK 1.6+。如果未设置,则默认注释处理器发现过程适用。 什么是 默认的注解处理器发现过程 吗?除了此配置标签,还有其他方法可以设置注释处理器吗? 我发现“注释处理工具入门(apt)”文档提到了 默认的发现过程 ,但是它适用于 工厂类 而不是处理器,并且不幸的是,它使用JDK中的和包。这是默认

  • 在Spring MVC中,类DefaultAnnotationHandlerMapping已被弃用。文档(http://docs . spring . io/spring/docs/current/javadoc-API/org/spring framework/web/servlet/MVC/annotation/defaultannotationhandlermapping . html)说:

  • 我读了这篇问答和Cocoacasts博文,我完全理解什么是< code>@escaping注释。 但老实说,我不明白我们为什么需要它。 上述Cocoacasts博客文章指出: 默认情况下,使闭包不转义有几个好处。最明显的好处是性能和编译器优化代码的能力。如果编译器知道闭包是非转义的,它可以处理内存管理的许多细节。 但是,Swift编译器可以确定<code>转义 这也意味着您可以在非转义闭包中使用s

  • 我已经重新启动了nginx和php7.4-fpm。 xdebug 3看起来是基于以下内容安装的: phpinfo()中的Ini目录: 加载的配置文件 /etc/php/7.4/fpm/php.ini扫描此目录以查找其他. ini文件 /etc/php/7.4/fpm/conf.d解析 /etc/php/7.4/fpm/conf.d/10-opcache.ini, /etc/php/7.4/fpm/

  • 问题内容: 我刚刚安装了CentOS,Apache和PHP。当我访问我的网站http://example.com/myapp/时,它显示为“禁止访问”。默认情况下,它不会加载index.php文件。 当我访问http://example.com/myapp/index.php时,它可以正常工作。 任何想法如何解决该问题? 问题答案: Apache需要配置为将index.php识别为索引文件。 实现