我们如何在uima ruta中注释unicode角色

时间:2016-04-26 06:12:32

标签: uima ruta

我们如何在uima ruta中注释unicode角色:  例如:我想标记这个文本(巴黎:罗伯特拉凡特)。所以我使用了以下规则。

DECLARE CITY;
CW COLON CW+{->MARK(CITY,1,3)};

但巴黎的文字被覆盖:Ã。有没有办法解决这个问题。等待答案。谢谢。

1 个答案:

答案 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的开发者