2

UIMA で RegEx Annotator を使用しています。次のように、XML 記述子ファイルに正規表現変数を作成できることを知っています。

<variables>
    <variable name="month" value="(Jan|Feb|March)" />
</variables>

ルールで次のようにアクセスします。

<rules>
    <rule regEx="Month: \v{month}" />
</rules>

Month: JanこれはandMonth: Febとに一致しMonth: Marます。

別の変数内でその変数を使用したいのですが、可能ですか? 私はこのようなものを探しています:

<variables>
    <variable name="monthmonth" value="\v{month}\v{month}" />
</variables>

Month: JanJanたとえば、一致する適切なルールを作成したい。

http://uima.apache.org/downloads/sandbox/RegexAnnotatorUserGuide/RegexAnnotatorUserGuide.html#sandbox.regexAnnotator.conceptsFile.regexVariablesのドキュメントを読みましたが、変数内で正規表現変数を使用する可能性については言及していませんが、について言うThe variables can be used in all concept definition within the same file.

UIMA RegularExpressionAnnotator 2.3.1 を使用しています。

どんな助けでも大歓迎です。=)

4

1 に答える 1

2

ドキュメントによると、

正規表現変数名には、次の文字のいずれかを含めることができます[a-zA-Z_0-9]。他の文字は使用できません。

それが唯一の制限で123ある場合、 は有効な名前であり、 として参照されvalue="\v{123}"ます。パーサーは、123 個の垂直タブ文字ではなく、「123」という名前のルールを意味していることをどのように認識するのでしょうか?

ほとんどの言語 (XML を含む) では、名前を数字で始めることはできません。この場合、 Java 正規表現では\v{month}orが無効であることが保証されているため、変数定義に変数名を埋め込むことができます。(他の正規表現フレーバーはよりリベラルです。andは範囲式として解釈できないため、\v{_123}中かっこをリテラル中かっこ文字として解釈します。){month}{_123}

確実に知る唯一の方法は、テストすることです。私にとっては素晴らしい機能のように思えます。サポートされていない場合は、リクエストする必要があります。

于 2013-08-05T06:04:23.797 に答える