2017-06-22 89 views
0

我是UIMA RUTA的新手,在阅读UIMA RUTA指南后,我有以下问题。我想编写一套规则,在我的文档中搜索具有特定值(FIRST:“hello”和SECOND:“world”,“pres”)的文档中的两个注释(FIRST,SECOND),如果他们找到它们,它将创建一个新的注解(THIRD),其值为“end”。 但是,脚本不工作,我想知道为什么。UIMA RUTA注释组合

WORDTABLE Firsts= 'FIRST.csv'; 
WORDTABLE Seconds= 'SECOND.csv'; 
WORDTABLE Thirds= 'THIRD.csv'; 
DECLARE Annotation FIRST(STRING value); 
DECLARE Annotation SECOND(STRING value, STRING pos); 
DECLARE Annotation THIRD(STRING value); 
Document{->MARKTABLE(FIRST, 1, Firsts, "value"=2)}; 
Document{->MARKTABLE(SECOND, 1, Seconds, "value"=2, "pos"=3)}; 
Document{AND(CONTAINS(FIRST{FEATURE("value","hello")}),CONTAINS(SECOND{FEATURE("value","world","pos","pres")})){->CREATE(THIRD{FEATURE("value","end")})}}; 

你能帮我吗?感谢名单。

+0

开发商对此没有必要使用wordtable。 Wordlist就够了。 –

+1

我假设他需要MARKTABLE,因为这个特性的值。 –

回答

1

最后一条规则无效。

你可以写类似:

(f:FIRST{f.value=="hello"} # s:SECOND{s.value=="world",s.pos=="pres"}){-> CREATE(THIRD, "value" = "end")}; 

Document{-> CREATE(THIRD, "value" = "end")}<-{f:FIRST{f.value=="hello"} # s:SECOND{s.value=="world",s.pos=="pres"};}; 

或有相合规则的东西。

免责声明:我的UIMA鲁塔

+0

如何将CONTAINS和连词(AND)条件放在那里? – Aribas

+1

在seoncd规则中,内联规则充当与AND结合的内容。唯一的区别是,也存在顺序约束。 –

+0

如果我想摆脱这种连续的约束(可能为未来的项目或某事),我怎么能做到这一点?我的意思是,似乎上面的方法预先假设FIRST注释发生在SECOND之前,对吗?什么是更通用的方法,独立于注释的顺序? – Aribas