在UIMA RUTA中注释货币价值的最佳方式

时间:2017-11-12 06:50:46

标签: uima ruta

我是UIMA RUTA的新手(但我有简单的UIMA和uimaFIT的经验),我想知道最好的方法(性能明智)找到钱的价值。如果在句子中应用正则表达式或创建新规则(以及它的外观)

我的价值观如下:

1.000,00 1000,00 1.100.000,00 100,00 甚至1000000,00是可能的

我创建了一个像

这样的规则
(NUM{BEFORE(PERIOD)})*(NUM{AFTER(COMMA)}) {-> MARK(Value, 1, 2);

(即便如此,我有时也无法正常工作,并且不能涵盖我的所有情况)

做什么更容易,资源消耗更少?

1 个答案:

答案 0 :(得分:1)

如果只能处理字符级别且不需要注释,则正则表达式可能是最快的选项。

在UIMA Ruta中使用常规匹配规则,取决于它们应该具有多大的灵活性。他们是否还应检测其他语言环境,如英语或法语数字?毕竟,运行时还取决于文档包含的数量等等,以及ruta是否针对用例进行调整(词法分析器,内部索引,...)

您的规则无法按预期工作,因为规则开头的可选元素不是可选的(如果没有手动锚点),BEFORE条件将至少排除第一个数字。

这条规则可以做你想要的,但肯定不是最快的:

(NUM{-PARTOF(Value)} (PERIOD NUM{REGEXP("...")})* COMMA NUM{REGEXP("..")}){-> Value};

免责声明:我是UIMA Ruta的开发者