2017-11-12 7 views
1

方法私はUIMA RUTAに新たなんだ(しかし、私は、プレーンUIMAとuimaFITの経験を持っている)とI'ldは、お金の価値を見つけるためにいただきました!最良のアプローチ(パフォーマンス賢明な)を知りたいです。文で正規表現を適用するか、新しいルールを作成する場合(そしてそれがどのようにようになります)ベストUIMA RUTAでお金値に注釈を付けるための

私の値は次のようになります。

1.000,00 1000,00 1.100.000,00 100を、00 かさえ可能

ある1000000,00私は

(NUM{BEFORE(PERIOD)})*(NUM{AFTER(COMMA)}) {-> MARK(Value, 1, 2);

のようなルールを作成した(そしてその後も、私はこれを正しく、時には仕事を得ることができない、とdoesntのカバーA LL私の例)

は何をしやすくなり、より少ないリソースを行うにかかるのでしょうか?

答えて

1

文字レベルでしか作業できず、注釈を必要としない場合は、おそらく最も高速なオプションです。 UIMAルタで通常のマッチングルールを使用して

、それは彼らがどうあるべきか柔軟に依存します。英語やフランス語の数字などの他のロケールも検出する必要がありますか?後でランタイムは、ドキュメントに含まれる数字の数などにも依存します。ルーターがユースケース(レクサー、内部インデックスなど)に合わせて調整されているかどうかによって異なります。

オプションはルールの始めにある要素はオプションではなく(手動アンカーがない場合)、BEFORE条件は少なくとも最初の数を除外します。

このルールは、あなたが欲しいものを行う必要がありますが、確かに最速ではありません。

(NUM{-PARTOF(Value)} (PERIOD NUM{REGEXP("...")})* COMMA NUM{REGEXP("..")}){-> Value}; 

免責事項:私はこの私に何の答えがなかった私は、UIMAルタ

+0

興味深いソリューションの開発者ですこの記事で私は別の内側に注釈を作成しないように調整する鉱山することができた、私はそれがUIMA RUTAでお金を見つけるためのルールが含まれていると信じて、あなたの紙を見つけました。正規表現については、私はそれが私の人生のために仕事を得ることができない、私は*この 'メッセージ{REGEXP(" \\ D {1,3}(\\。\\ D {3})のようなものを試してみました値はメッセージ内にありますが、注釈もエラーも発生しません。 –

+0

REGEXPは、指定された正規表現を本文の本文に適用する条件です。 Javaパターンマッチ()を使用して、アノテーションをマッチングします。これは、一致したテキストが数字と等しくない場合、一致しないことを意味します。メッセージ 'のようなものを試してください - > { "?\\さd {1,3}(\\ \\ D {3})*(\\ D {2})" - > Value;}; 'メッセージウィンドウ内のインラインアクションルールとしての単純な正規表現ルール。 –

関連する問題