【问题标题】:Check Alphanumeric of specific size UIMA RUTA检查特定大小的字母数字 UIMA RUTA
【发布时间】:2019-02-12 11:54:14
【问题描述】:

我是 UIMA RUTA 的新手。 我正在尝试执行一项基本任务,该任务应匹配特定大小的字母数字字符。 例如: 123Abcd

我尝试了以下代码:

DECLARE VarA;
ANY{REGEXP("([A-Za-z0-9]{7})")->MARK(VarA)};

它没有按预期工作。 请让我知道我做错了什么。 除了 RUTA 之外,其他 REGEX 引擎中也可以使用相同的 REGEX。

提前致谢。

【问题讨论】:

    标签: regex uima ruta


    【解决方案1】:

    这是因为 Ruta 将文档拆分为小片段/令牌/基本注释(请参阅 this)。如果单词是数字和字符的组合,则默认播种器实现会拆分单词。默认播种器实现可以由您自己的播种器更改为具有不同的行为。

    您的示例“123Abcd”将被解析为以下标记(并非所有级别都在列表中 - 请参阅链接了解更多信息):

    Document -> Complete document "123Abcd"
    NUM -> 123
    CW -> Abcd
    

    输入“45 abcd 5”的另一个例子变成:

    Document -> Complete document "45 abcd 5"
    NUM -> 45
    SPACE -> The spacer between 45 and abcd // Not visible by default
    SW -> abcd
    SPACE -> The spacer between abcd and 5 // Not visible by default
    NUM -> 5
    

    在您的示例中,您尝试将正则表达式与 Any 标记匹配。该文档包含 2 个 Any 标记(NUM 和 CW),并且因为模式不匹配(它不是 1 个标记,而是被拆分)

    您可以执行以下示例以获得正确的结果:

    DECLARE VarA, VarB, VarC, VarD;
    
    // Option 1 (execute regex on the complete input document
    // I think this is not a good solution because this can be slow
    Document{REGEXP("([A-Za-z0-9]{7})") -> MARK(VarA)};
    
    // Option 2 (match with regex on each annotation type)
    (NUM{REGEXP("[0-9]{3}")} CW{REGEXP("[a-zA-Z]{4}")}){ -> MARK(VarB)};
    
    // Option 3 (first match a pattern of annotations and then match the 
    // regex on the complete pattern)
    (NUM CW){REGEXP("([A-Za-z0-9]{7})") -> MARK(VarC)};
    
    // Option 4 (only check if its a "number + capital word")
    (NUM CW){ -> MARK(VarD)};
    

    【讨论】:

    • 哇..这是一个很好的解释,谢谢你。我尝试为以下示例编写注释:
    • 例如:SS-SSS-ABC S 是字母数字。 '-' 和空格是允许的,即 SS SSSS ABC 也是有效的。我的代码:声明 VarA;声明 VarB;文档{->RETAINTYPE(SPACE)}; (W|NUM)(W|NUM|SPECIAL|SPACE)*{-> MARK(VarA,1,2)}; VarA{REGEXP("([A-Z0-9]{2,3}[-]{0,1}[A-Z0-9]{4}[-]{0,1}([IBC]){ 3})")->MARK(EntityType}; 疑点1:上面的代码没有检测到多个模式输入:SS-SSS-ABC, SS SSSS ABC 输出:SS SSSSSSS ABC 它没有检测到第一个带有'的值-' 输入:SS SSS ABC 是保单号。输出:未分配。所以,它正在检测/与遗言比较。我怎样才能让它工作?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    相关资源
    最近更新 更多