如何从字符串列表中检索复合词- UIMA RUTA
How to retrieve compound words from string list- UIMA RUTA
示例脚本:
DECLARE Name,TEST;
"Peter"->Name;
"der Groot"->Name;
"Robert"->Name;
"de Leew"->Name;
"O'Sullivan"->Name;
STRING s;
STRINGLIST slist;
Name{-> MATCHEDTEXT(s), ADD(slist,s),LOG(s)};
ANY+ {INLIST(slist)->MARK(TEST)};
收到输出:
Peter
Robert
预期输出:
Peter
der Groot
Robert
de Leew
O'Sullivan
示例输入:
Peter
der Groot
Robert
de Leew
O'Sullivan
我尝试将字符串列表值标记为注释type.But收到的输出与预期输出不同。
规则元素 ANY+
的条件验证每一个 ANY,因此第一个失败并且也只匹配单个标记。
最后一条规则是否应该直接在 Name
个注释之后注释位置?
如果没有,您可以执行以下操作:
Name{-> MATCHEDTEXT(s), ADD(slist,s)};
MARKFAST(TEST, slist);
如果是,情况会变得更加复杂,因为您没有具有正确跨度的候选人。您无法通过 ANY 和 INLIST 的组合来解决此问题,您要么需要正确的跨度,要么需要列表中的片段。我宁愿推荐一个额外的修复规则:
Name{-> MATCHEDTEXT(s), ADD(slist,s)};
MARKFAST(TEST, slist);
ANY{-ENDSWITH(Name)} @TEST{-> UNMARK(TEST)};
免责声明:我是 UIMA Ruta 的开发者
示例脚本:
DECLARE Name,TEST;
"Peter"->Name;
"der Groot"->Name;
"Robert"->Name;
"de Leew"->Name;
"O'Sullivan"->Name;
STRING s;
STRINGLIST slist;
Name{-> MATCHEDTEXT(s), ADD(slist,s),LOG(s)};
ANY+ {INLIST(slist)->MARK(TEST)};
收到输出:
Peter
Robert
预期输出:
Peter
der Groot
Robert
de Leew
O'Sullivan
示例输入:
Peter
der Groot
Robert
de Leew
O'Sullivan
我尝试将字符串列表值标记为注释type.But收到的输出与预期输出不同。
规则元素 ANY+
的条件验证每一个 ANY,因此第一个失败并且也只匹配单个标记。
最后一条规则是否应该直接在 Name
个注释之后注释位置?
如果没有,您可以执行以下操作:
Name{-> MATCHEDTEXT(s), ADD(slist,s)};
MARKFAST(TEST, slist);
如果是,情况会变得更加复杂,因为您没有具有正确跨度的候选人。您无法通过 ANY 和 INLIST 的组合来解决此问题,您要么需要正确的跨度,要么需要列表中的片段。我宁愿推荐一个额外的修复规则:
Name{-> MATCHEDTEXT(s), ADD(slist,s)};
MARKFAST(TEST, slist);
ANY{-ENDSWITH(Name)} @TEST{-> UNMARK(TEST)};
免责声明:我是 UIMA Ruta 的开发者