取消标记先前标记的注释,同时标记相关注释

时间:2017-11-09 21:30:16

标签: uima ruta

以下是我的意见:

person
the private person

这是我的规则

DECLARE Person;
DECLARE PrivatePerson;

ANY{REGEXP("person") -> MARK(Person)};

ANY{AFTER(Person), REGEXP("private") -> MARK(PrivatePerson), UNMARK(Person)};

如何在"私人"中制作Person没有标记(但保留PrivatePerson标记)?

UNMARK(Person)不起作用

有可能吗?

1 个答案:

答案 0 :(得分:2)

我不知道以下是否适合您,但它会起作用:

W{REGEXP("private")} Person {->UNMARK(Person),MARK(PrivatePerson,1,2)};

我添加了1,2,因此注释范围也包含 private

根据您的条件,您需要之前而不是之后。这将创建一个注释 PrivatePerson 。但是,由于规则仅适用于匹配的内容,因此不会发生取消标记。您的规则中匹配的是字符串“private”,而不是其他内容。 BEFORE(Person)只是一个条件,因此特定场合的规则UNMARK(Person)什么都不做。

另外,更喜欢文档而不是 ANY ,因为 ANY 会转到每个令牌(对我而言,它既是RutaBasic又是SW)并创建重复注释,而使用文档我最终得到每个注释的一个实例。如果你遇到同样的行为,我不确定。