2016-11-09 87 views
1

我想匹配一些条款只有当这个词背后的术语与我有关。所以,我创建了一个小例子:UIMA Ruta:可选量词

这是我的测试数据:

small Large 
Large 
small 

我想庆祝的条款小大而不是“小”。

所以我想,这样的事情应该工作:

DECLARE Test; 
(SW*? CW) {-> CREATE(Test)}; 

但RUTA只匹配 “小大”。

对于测试我用“W”取代了“SW”,它会做我想做的事。

回答

0

不幸的是,如果规则开始与第一个规则元素相匹配,则规则开头的可选量词不是可选的。这意味着您需要两个规则,或者您需要更改规则元素匹配的顺序。

更改规则元素匹配的顺序会导致不同的规则匹配,因为在CW之前不会考虑所有增量序列SW。然而,这是人们通常喜欢的东西。该规则将如下所示:

(SW* @CW) {-> CREATE(Test)}; 

两个规则的做法看起来是这样的:

(SW+? CW) {-> CREATE(Test)}; 
CW {-> CREATE(Test)}; 

我建议回避,如果它是不是真的需要,因为额外的计算这是一个不情愿的量词的用法不必要。而不是使用PARTOF条件,即使它看起来不太好。

免责声明:荫UIMA鲁塔开发商