2016-11-09 66 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魯塔開發商