【问题标题】:How to get substring in a matched annotated expression UIMA RUTA?如何在匹配的注释表达式 UIMA RUTA 中获取子字符串?
【发布时间】:2018-09-11 15:12:02
【问题描述】:

我正在尝试实现匹配注释的子字符串。

Eg:
Input : 1A2S3DWER
Expected Output: WER
Expected Output: 1A2S3D

以下是我尝试过的:

Document{->RETAINTYPE(SPACE)};
((W|NUM) (W|NUM)*){REGEXP("([A-Z0-9]{9})")->MARK(EntityType)};

我不知道如何分离匹配的注解。 请指导我完成。 提前致谢。

【问题讨论】:

  • 什么标识子串,例如,为什么要在 'WER' 上拆分?
  • @PeterKluegl:一个由字母数字组成的保单编号 (1A123ABCAPLB)。保单编号的最后 3 个字符是产品代码。所以,我想提取最后 3 个字符。但我被困在如何做到这一点上。请分享您对此的看法。

标签: uima ruta


【解决方案1】:

在您的示例中,“DWER”是一个 CAP。您需要将其拆分为多个注释,例如,使用简单的正则表达式规则:

DECLARE EntityType, ProductCode, Prefix;
ADDRETAINTYPE(WS);
(ANY+{-PARTOF(EntityType), PARTOF({NUM,W})}){REGEXP("([A-Z0-9]{9})")-> EntityType};
REMOVERETAINTYPE(WS);

EntityType->{"^(.*)(...)$"-> 1=Prefix, 2=ProductCode;};

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

【讨论】:

    猜你喜欢
    • 2018-08-27
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多