2016-11-09 4 views
1

この用語の後ろにある用語が私にとって重要である場合にのみ、いくつかの用語をマッチさせたいと思います。だから私は、最小限の例を作成しました:UIMA Ruta:Optional Quantifier

これは私のテストデータです:

small Large 
Large 
small 

そして、私は小さな大大きいが、「小さな」ではない用語をマークしたいです。

だから私はこのようなものが動作するはず、と思った:

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

しかしRUTAは "大小" と一致します。

私は "SW"を "W"に置き換えました。私はそれをやり遂げます。

答えて

0

残念ながら、ルールが最初のルール要素と一致し始める場合、ルールの先頭のオプションの量指定子はオプションではありません。これは、2つのルールが必要であるか、またはルール要素マッチングの順序を変更する必要があることを意味します。

CWの前にすべての増分シーケンスSWが考慮されているわけではないので、ルール要素の一致の順序を変更すると、ルールの一致が異なります。しかし、これはいつも好きなものです。私はそれは本当にためにある追加の計算に必要とされていない場合には消極的数量詞の使用を避けることをお勧めします

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

:のような二つの規則のアプローチは何かを見てしまう

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

:ルールは次のようになります。必要はありません。むしろ、PARTOF条件が良いとは思わない場合でも使用してください。

免責事項:IamはUIMAルタの開発