如何使用 Apache UIMA Ruta 从两个子字符串中提取 ID 和日期?
How to extract ID and Date from two substrings using Apache UIMA Ruta?
如何使用 Ruta 提取以下文本中的 2 个 ID 和日期编号:
ID:1341234
Date:20191021
我尝试了以下方法:
RETAINTYPE(WS);
"ID:" n:NUM{-> CREATE(Entity, "label" = "ID", "value"=n.ct)};
"Date:" n:NUM{-> CREATE(Entity, "label" = "Date", "value"=n.ct)};
RETAINTYPE;
感谢您的帮助。
菲利普
用于规则元素匹配条件的文字字符串匹配依赖于ruta 的内部索引并且仅在单个RutaBasic 上匹配。这意味着实际匹配可能取决于所有先前创建的注释。因此,我不推荐使用文字字符串匹配,或者只推荐用于快速原型制作。 (Ruta Version 2.7.0, 后续版本可能会有所改动)
对于您的示例,这意味着第一个规则元素不匹配,因为 RutaEngine 的播种器为 words/letters 和标点符号创建了单独的注释,这导致了两个 RutaBasic 注释。
如果您重写规则,您的规则可能会起作用:
RETAINTYPE(WS);
"ID" ":" n:NUM{-> CREATE(Entity, "label" = "ID", "value"=n.ct)};
"Date" ":" n:NUM{-> CREATE(Entity, "label" = "Date", "value"=n.ct)};
RETAINTYPE;
或没有文字字符串匹配
RETAINTYPE(WS);
CAP.ct=="ID" COLON n:NUM{-> CREATE(Entity, "label" = "ID", "value"=n.ct)};
W.ct=="Date" COLON n:NUM{-> CREATE(Entity, "label" = "Date", "value"=n.ct)};
RETAINTYPE;
免责声明:我是 UIMA Ruta 的开发者
如何使用 Ruta 提取以下文本中的 2 个 ID 和日期编号:
ID:1341234
Date:20191021
我尝试了以下方法:
RETAINTYPE(WS);
"ID:" n:NUM{-> CREATE(Entity, "label" = "ID", "value"=n.ct)};
"Date:" n:NUM{-> CREATE(Entity, "label" = "Date", "value"=n.ct)};
RETAINTYPE;
感谢您的帮助。 菲利普
用于规则元素匹配条件的文字字符串匹配依赖于ruta 的内部索引并且仅在单个RutaBasic 上匹配。这意味着实际匹配可能取决于所有先前创建的注释。因此,我不推荐使用文字字符串匹配,或者只推荐用于快速原型制作。 (Ruta Version 2.7.0, 后续版本可能会有所改动)
对于您的示例,这意味着第一个规则元素不匹配,因为 RutaEngine 的播种器为 words/letters 和标点符号创建了单独的注释,这导致了两个 RutaBasic 注释。
如果您重写规则,您的规则可能会起作用:
RETAINTYPE(WS);
"ID" ":" n:NUM{-> CREATE(Entity, "label" = "ID", "value"=n.ct)};
"Date" ":" n:NUM{-> CREATE(Entity, "label" = "Date", "value"=n.ct)};
RETAINTYPE;
或没有文字字符串匹配
RETAINTYPE(WS);
CAP.ct=="ID" COLON n:NUM{-> CREATE(Entity, "label" = "ID", "value"=n.ct)};
W.ct=="Date" COLON n:NUM{-> CREATE(Entity, "label" = "Date", "value"=n.ct)};
RETAINTYPE;
免责声明:我是 UIMA Ruta 的开发者