正規表現を使用して用語を検索
重要度のパターンをキャプチャーする正規表現を定義します。例えば、 AB10045 は、オーダー番号に使用される構文です。
コレクション内のフィールドから情報を識別して抽出できる正規表現を定義します。
例えば、この正規表現は、特定の形式および長さのクレジット・カード番号の出現を検出します。
4[0-9]{15}
以下の正規表現は、米国社会保障番号の出現を検出します。
(?!666|000|9\d{2})\d{3}-(?!00)\d{2}-(?!0{4})\d{4}
正規表現を追加するには、以下の手順に従ってください
-
「改善ツール」 パネルの 「Teach domain concepts」 セクションから、 「正規表現」 を選択します。
-
「アップロード」 をクリックします。
-
オプション: 正規表現に一致するテキストをカテゴリー化するためのファセット・パスを指定します。 テキストは、後でこのファセットによってフィルターに掛けることができます。
カテゴリーの階層を使用する場合は、ファセット・パス内のカテゴリー名の間に、階層を表すピリオドを追加します。 例えば、電話番号を認識できる正規表現を追加する場合は、
international.europeなどのファセット・パスを使用できます。 -
正規表現を追加します。
-
Java™ 正規表現を使用してください。
詳細については 、 Java のドキュメントを参照してください。 もう 1 つの便利なリソースは、 正規表現 101です。
-
正規表現は、できるだけ短く理解しやすいものにしてください。
-
最良の正規表現は、一致または不一致に素早く解決されます。
-
一般的なパターンを使用します。 例えば、
a(b|c|d)ではなく(ab|ac|ad)を使用します。 -
正規表現エンジンは、文字列の終端で否定一致ができず、試行回数が多すぎるため、バックトラックすると失敗する可能性があります。 バックトラックを防止するには、
(a+b*)++cなどの所有数量詞を使用することを検討してください。
-
-
「作成」 をクリックします。
-
この正規表現パターンに一致するテキストの出現箇所を検索するためのコレクションとフィールドを選択します。
出力では、正規表現の強化によって抽出された情報は、 enriched_{field_name} の entities 配列内に表示されます。
この例では、 「ファセット・パス」 は regex.cccardnumber であり、エンリッチ用に選択されたフィールドは text です。
{
"enriched_text": [
{
"entities": [
{
"path": ".regex.cccardnumber",
"type": "cccardnumber",
"text": "4000000000000000"
}
]
}
],
"text": [
"He has 2 phones, 090-1234-5678 and 080-1234-5678. His credit card number is 4000000000000000."
]
}
「改善とカスタマイズ (Improve and customize)」 ページからテスト照会を送信する場合は、 enriched_text.entities.model_name フィールドに基づくファセットを追加できます。 その結果、作成した cccardnumber 正規表現エンリッチがファセット値として表示され、文書をフィルターに掛けることができます。 ファセットの作成について詳しくは、 ファセットの追加 を参照してください。
正規表現の制限
サービスインスタンスごとに定義できる正規表現の数は、 Discovery のプランタイプによって異なります。
| プラン | サービス・インスタンスごとの正規表現 |
|---|---|
| Cloud Pak for Data | Unlimited |
| プレミアム | 100 |
| エンタープライズ | 100 |
| プラス (試用版を含む) | 20 |