2016-10-25 5 views
1

MATCHEDTEXTを使用して複数の単語に対してMatchを作成したいと考えています。複数の単語を選択するには、StarまたはPlus Reluctant量指定子を使用します。 MATCHEDTEXTの後ろにルール要素がない場合でも、この例では最後の "SW"のように "CW +?"パートは一致しません。UIMA Ruta MATCHEDTEXTとStarまたはPlus Reluctantを組み合わせる

私のテスト文字列

small Large Large small. 

マイルタルール

STRING test; 
DECLARE myObject(STRING label); 
SW (CW+? { -> MATCHEDTEXT(test), CREATE(myObject, "label"=ao) }) SW; 
+0

は、AO( "ラベル" = AO)とは何であるあなたは、テスト列右から "大大" と一致する必要がありますか? –

+1

STRINGテスト。 DECLARE myObject(STRINGラベル); SW CW +? { - > MATCHEDTEXT(テスト)、CREATE(myObject、 "ラベル" =テスト)} SW; –

答えて

2

これは、UIMAルタ< = 2.5.0のバグです。不本意な量指定子が合成されたルール要素に何らかの問題を持つため、マッチは失敗します。

あなたはどちらか必要とされていない構成ルール要素削除することによって、あなたの問題を解決することができます

SW CW+ { -> MATCHEDTEXT(test), CREATE(myObject, "label"="x")} SW; 
:...かも必要とされていない消極的数量詞を、回避することにより、

SW CW+? { -> MATCHEDTEXT(test), CREATE(myObject, "label"="x")} SW; 

免責事項:私はUIMAルタ

1

でプラス貪欲のデベロッパー:

プラス消極的で
PACKAGE uima.ruta.example; 
DECLARE myObject(STRING label); 
STRING test; 
DECLARE myObject(STRING label); 
SW CW+ {-PARTOF(myObject) -> MATCHEDTEXT(test), CREATE(myObject, "label"="ao") } SW; 

:?

PACKAGE uima.ruta.example; 
DECLARE myObject(STRING label); 
STRING test; 
DECLARE myObject(STRING label); 
SW CW+? {-PARTOF(myObject) -> MATCHEDTEXT(test), CREATE(myObject, "label"="ao") } SW; 
関連する問題