我们如何在uima ruta中注释unicode角色: 例如:我想标记这个文本(巴黎:罗伯特拉凡特)。所以我使用了以下规则。
DECLARE CITY;
CW COLON CW+{->MARK(CITY,1,3)};
但巴黎的文字被覆盖:Ã。有没有办法解决这个问题。等待答案。谢谢。
答案 0 :(得分:1)
关于lexer的定义,它创建了ruta(W,CW,SPECIAL ...)的令牌类注释。
规则CW COLON CW+{->MARK(CITY,1,1)};
为文本范围CITY
创建类型Paris
的注释,而不管unicode字符。
最后一个规则元素CW+
在Ã
上匹配,因为它是用CW注释的,但是因为‰
不是CW而是SPECIAL而停在那里。
有许多方法可以避免这个问题。我的建议是你应该依赖不同类型的注释来制定规则。 ruta的词法分析注释的工作是创建最小的注释。他们一般不会定义令牌。
您可以使用类似的东西(或使用实际的标记器来获得更好的性能):
DECLARE CITY;
DECLARE Token;
RETAINTYPE(SPACE);
(W (SPECIAL? W)*){-> Token};
RETAINTYPE;
Token COLON Token+{->MARK(CITY,1,1)};
免责声明:我是UIMA Ruta的开发者