首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置SUTime以使用自定义规则文件

配置SUTime以使用自定义规则文件
EN

Stack Overflow用户
提问于 2015-08-12 16:03:46
回答 2查看 947关注 0票数 2

我正在尝试配置SUTime注释器(“ner”的一部分)来使用我自己的日期/时间规则文件,而不是位于斯坦福CoreNLP模型的分发JAR中的“model/sutime/”中的开箱即用的规则文件。

我这么做的原因是我想稍微修改一下SUTime规则正在做的事情。

根据官方的SUTime文档,它只需要以逗号分隔的文件路径的形式指定"sutime.rules“属性。

但在我这么做之后,CoreNLP似乎仍然接受开箱即用的规则文件:

代码语言:javascript
复制
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

我尝试了绝对路径和相对于我的项目根的路径--仍然是相同的效果。

与文档相反,"sutime.rules“属性似乎被忽略了。

任何帮助都将不胜感激。

更新:

采取以下形式的解决办法:

  1. 将SUTime作为"ner“步骤的一部分关闭
  2. 复制其规则文件并根据需要修改它们
  3. 基于TimeAnnotator类创建自定义注释器并将其添加到管道中
  4. 将.rules属性设置为修改后的规则文件

不管用。

管道运行,但功能不一样。需要使用"sutime“参数调用TimeAnnotator构造函数,以便使其功能与在"ner”步骤中调用的功能完全相同。

这似乎不能通过属性来完成。

EN

回答 2

Stack Overflow用户

发布于 2015-08-13 21:40:30

谢谢你让我们知道这不管用。我们将对此进行调查,并在下一个版本中修复它。如果您确实需要稍微更改规则文件,可以尝试将自己的edu/stanford/nlp/models/sutime/english.sutime.txt副本放在类路径中的CoreNLP模型jar之前。

票数 2
EN

Stack Overflow用户

发布于 2015-12-09 15:16:27

我也需要重写english.sutime.txt文件。我通过创建一个NERClassifierCombiner并在实例化NERCombinerAnnotator时使用它来实现这一点。伪码:

代码语言:javascript
复制
Properties nerProps = new Properties();
nerProps.put("sutime.rules", "your new comma separated file list");
Set<String> passDownProps = Generics.newHashSet();
passdownProps.addAll(NERClassifierCombiner.DEFAULT_PASS_DOWN_PROPERTIES);
passdownProps.add("sutime.rules");
NERClassifierCombiner combiner = NERClassifierCombiner.createNERClassifierCombiner("giveItAName", passdownProps, nerProps);
NERCombinerAnnotator nerAnnotator = new NERCombinerAnnotator(combiner, false);

希望这能有所帮助。

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

https://stackoverflow.com/questions/31970286

复制
相关文章

相似问题

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