3.4. AIRead RuleEditorで設定
以下のプログラムで、AIRead RuleEditor(以下RuleEditor)を起動することで、ルールを編集することができます。
<AIReadインストールフォルダ>/RuleEditor/RuleEditor.exe
3.4.1. ルールを作成・開く
- ルールを新規で作成する
「ルールを作成」を選択するとダイアログが表示されます。
フォーマット定義フォルダを作成するディレクトリを選択し、任意の名前で作成することができます。
- ルールを開く
「ルールを開く」を選択すると、フォルダを選択する画面を開きます。
作成済みのルールを選択してください。
3.4.2. 文書種別の管理
1つのルール一式を「文書種別」と呼びます。
文書種別にはそれぞれ識別キーワードが設定でき、帳票内に含まれている文字列で使用する文書種別を仕分けることができます。
「条件追加」ボタンで管理画面を開きます。
No. | 項目名 | 説明 |
1 | +(文書種別列) | 文書種別を追加する |
2 | +(識別キーワード列) | 識別キーワードを追加する |
3 | -(識別キーワード列) | 識別キーワードを削除する |
- 文書種別の追加
文書種別の+ボタンを押すと、文書種別を追加します。 - キーワードの設定
「+」ボタンを押すと識別キーワードを追加し、「-」ボタンを押すと識別キーワードを削除します。
複数キーワードを登録するとOR条件となります。いずれかのキーワードが見つかった場合に該当する文書種別のルールが適用されます。
1つのフィールドをカンマ(,)で区切るとAND条件となります。すべてのキーワードが存在する場合に該当する文書種別のルールが適用されます。 - 文書種別のコピー
文書種別上でマウスを右クリックするとメニューが表示されます。
コピーを選択するとダイアログが表示されます。
ユニークな文書種別、識別キーワードを入力しコピーボタンを押下します。
文書種別がコピーされます。
- 制限事項:
・1システムに作成できる文書種別数は1000
・文書種別IDの文字数:100バイト以内
・文書種別IDに使用できる文字:半角英数字、-(ハイフン)、_(アンダースコア)、.(ピリオド)、#(シャープ)、&(アンパサンド)
・文書種別IDの両端のスペースはトリミングされる
3.4.3. 画像の追加
文書種別に対応する画像を追加します。
「画像の追加」ボタンを押すとファイル選択ダイアログを表示します。
ファイルを選択し、「開く」ボタンを押すと画像を追加します。
No. | 項目名 | 説明 |
1 | ↺ ↻ (90度回転) | 表示中の画像を90度回転する |
2 | ◀ ▶ (画像送り) | 表示する画像を選択する |
3 | (画像上で Ctrlキー + マウスホイール操作) | 画像を拡大/縮小する |
3.4.4. 共通設定ファイルの指定
AIReadの実行、後処理設定ファイルの紐づけ、個別設定時に使用する共通設定ファイルを指定します。
「共通設定ファイル」ボタンを押すと、ファイル選択ダイアログを表示します。
「参照」ボタンから使用する共通設定ファイルを選択します。
3.4.5. 抽出ルール編集
項目ごとに抽出ルールを設定します。
1つの項目に対する設定をメタデータと呼びます。
※下記、左から順に各ボタンの説明
No. | 項目名 | 説明 |
1 | + | 抽出ルールにメタデータを追加するため設定画面を開く |
2 | 編集ボタン | 作成済みのメタデータの設定画面を開く メタデータを複数選択した状態で編集ボタンを押下すると、明細名をまとめて設定することが可能 |
3 | コピーボタン | 選択中の抽出ルールをコピーします |
4 | ⇑⇓ | 選択したメタデータのリスト位置を上下する |
5 | トラッシュボックスマーク | 選択したメタデータを削除する |
6 | ↶↷マーク | 操作を元に戻す(↶)、やり直し(↷) |
まとめて編集(明細名)
- メタデータを新規作成
「+」ボタンを押すと、メタデータ設定画面を開きます。
- メタデータを編集
抽出ルール設定の一覧から任意の項目をマウスダブルクリックするとメタデータ設定画面を開きます。
- メタデータ設定項目説明
No. | 項目名 | 説明 |
1 | 項目名 | メタデータの項目名を入力する |
2 | 値の抽出方法 | 下記より抽出方法を選択する ・キーワード ・キーワードの座標指定 ・座標指定 ・型指定 ・固定値 |
3 | 抽出キーワード | 抽出するキーワード文字列を入力する |
4 | 固定値 | 値の抽出方法が固定値の時のみ設定可能 抽出結果に関わらず、定義された値を出力する |
5 | 値の探索方向 | 下記より探索方向を選択する ・右 ・左 ・上 ・下 ・右and下 |
6 | 個別読取結果変換 | AIRead ContorolPanel で作成した個別読取結果変換リストとメタデータを紐づける ※個別読取結果変換の設定方法は、3.6. 後処理設定に記載 |
7 | サブキーワードを指定する | 下記より指定方法の選択をする ・ベースメタデータ(親となるメタデータ)を指定し、サブキーワードのみ指定する ・ベースメタデータ(親となるメタデータ)を指定せず、抽出キーワード と サブキーワードを指定する |
8 | 2行目のデータを取得する | 値の出力時に、抽出キーワードで指定された文字列 と 指定された文字列の下1列を抽出し結合する |
9 | 座標 | 位置指定の場合、対象矩形領域の座標を入力する |
10 | 型指定 | 下記より型を選択する ・指定しない ・データタイプ:リストボックスからデータタイプを指定する ・正規表現 :正規表現文字列を入力する |
11 | マージン拡張(右) | キーワードの右方向に拡張させたいマージンを数字で入力する(単位はピクセル) |
12 | マージン拡張(左) | キーワードの左方向に拡張させたいマージンを数字で入力する(単位はピクセル) |
13 | レコード区切り | レコード区切りをするかチェック入力する |
14 | 値取得個数の制限 | 抽出する値の数を制限したい場合、制限数を入力する(0の場合は無制限) 空欄の時は値の探索方向によって初期値が決まる R(右方向)、L(左方向)、 U(上方向):1 D(下方向):0 RD(右+下方向)または指定なし:0 |
15 | 列を必須列とする | 列を必須化するかチェック入力する チェックした項目に値が入っていない場合、そのレコードは抽出対象外となる |
16 | デリミタを無視 | デリミタを無視するかチェック入力する チェックした場合、項目文字列と値文字列の間にデリミタがないものとして扱う |
17 | 文字列中の部分一致 | 文字列の部分一致をするかチェック入力する チェックした場合、文字列中に項目文字列が部分一致したところで文字列を分割して処理する |
18 | 明細名 | 明細名を入力する |
19 | 決定 | 読取定義の設定を保存しダイアログを閉じる |
20 | キャンセル | 読取定義の設定を保存せずダイアログを閉じる |
21 | ▲ | 読取定義の設定を保存しひとつ前の読取定義を開く |
22 | ▼ | 読取定義の設定を保存しひとつ後の読取定義を開く |
- キーワード座標指定/座標指定の方法
「値の抽出方法」でキーワードの座標指定、および座標指定を選択した場合、座標の入力をマウスの範囲指定で行います。
- メタデータ設定画面で「キーワードの座標指定」もしくは「座標指定」を選択して決定を押し画面を閉じる
- 画像表示画面上で該当の位置をマウスドラッグで指定する
- サブキーワードの指定方法
「サブキーワードを指定する」を選択した場合、ベースメタデータ、もしくは抽出キーワードに合わせ、サブキーワードを指定します。
(1) 「ベースメタデータ」を使用する場合
1. メタデータ設定画面で「値の抽出方法」をキーワードに指定し、「サブキーワードを指定する」にチェックを入れる
2. 「ベースメタデータ」を指定し、追加する条件に合わせ、「キーワード」と「方向」を指定する
(2) 「抽出キーワード」とサブキーワードを両方使用する場合
1. メタデータ設定画面で「値の抽出方法」をキーワードに指定し、「サブキーワードを指定する」にチェックを入れる
2. 「抽出キーワード」「値の探索方向」を指定し、「方向」「キーワード」を指定する
3.4.6. 抽出パラメータ設定
文書種別ごとの抽出に影響する設定を編集します。
画面右下「抽出パラメータ設定」を押すと、抽出パラメータ設定画面を開きます。
- 設定の説明
ユースケースは 3.5.3抽出パラメータ設定 を参照してください。
No. | 項目名 | 説明 |
1 | 水平線を追加 | 指定したY 座標(72DPI、左下原点)位置に水平罫線を追加する |
2 | 短い水平線を無視 | 短い水平罫線を無視するかどうかの閾値。ページ幅に対する割合(N 倍)で指定 |
3 | 異なる矩形の文字列を連携対象から外す | 有効にすると文字列が罫線に囲まれている場合に、異なる矩形に属する文字は連結対象から外す |
4 | 接する文字を文字列として扱う間隔の距離 | 接する2つの文字を1つの文字列として扱うかどうかの閾値 文字間の文字行の高さに対する比率で指定する |
5 | 矩形内のマージン自動生成 | 有効にすると1つの矩形にアイテムが1つだけある場合に、そのアイテムのマージンを自動生成する |
6 | 完全一致した文字列のみ項目文字列とする | 有効にすると1つの矩形に1つだけ文字列がある場合に、完全一致(編集距離での許容は有効)する時のみ項目文字列として扱う |
7 | 辞書照合判定の必要条件(絶対値) | 辞書照合判定の必要条件(絶対値):編集距離がこの値以下である場合は辞書に照合したとみなす |
8 | 辞書照合判定の必要条件(相対値) | 辞書照合判定の必要条件(相対値):許容する編集距離を照合対象の辞書単語と、抽出文字列のいずれか短い方に対する割合で指定 |
9 | リンク設定を行う高さの閾値(絶対値)※値探索方向がU | 項目文字列と値文字列間で、リンク設定を行うかどうかの高さの差の閾値(絶対値)。項目文字列に対し値文字列が上方向にある場合に適用される。(DIR=U) |
10 | リンク設定を行う高さの閾値(絶対値)※値探索方向がD | 項目文字列と値文字列間で、リンク設定を行うかどうかの高さの差の閾値(絶対値)。項目文字列に対し値文字列が下方向にある場合に適用される。(DIR=D) |
11 | 複数列にまたがる値文字列を無視する閾値 | 複数列にまたがる値文字列を無視するかどうかの閾値。2以上の場合有効となる。(0,1の場合は、複数列にまたがる値でも無視されない) |
12 | 縦方向にリンクする閾値 | 項目文字列と値文字列の縦方向のリンクを設定する場合に、許容するYグリッドの差分の閾値。1(デフォルト)を指定した場合、Yグリッドが隣り合う項目文字列と値文字列のみがリンクされる |
13 | 水平方向に並んだ値のレコード分割 | レコード分割を行う値文字列数の閾値。この数以上の値文字列が水平に並んだ場合、レコードの分割を行う |
14 | 罫線をリンクの接続条件とする | 有効にすると項目文字列と値文字列のリンクを設定する場合に、間の罫線の本数を接続条件とする |
15 | 項目文字列と値文字列が共存した際の正現ID" | 同一文字行内に、項目文字列と値文字列が共存していると判定する場合の、項目-値の区切り文字の正現ID(複数指定は不可) |
16 | 水平の罫線でレコードを区切る | 有効にすると水平の罫線をレコード区切りとして利用する |
17 | 値を必須列とした際の適用条件 | 複数のメタデータにREQUIRED を定義した場合に適用される条件を設定する |
18 | 罫線情報を抽出する(テキストつきPDFのみ) | 有効にするとメタデータ抽出時、イメージから罫線情報を抽出してPDFに埋め込む |
19 | 罫線情報を削除する(テキストつきPDFのみ) | 「罫線情報を抽出する」有効時、有効にすると既に埋め込まれている罫線の情報を削除する |
20 | 年号の指定 | DATE_YMD型で、年号が指定されておらず、かつ年が2桁の場合に設定する年号を指定する。R(*)、令和、H(*)、平成、S(*)、昭和、T(*)、大正、M(*)、明治のいずれかで指定する。 (*)半角または全角での指定が可能 |
21 | 横方向連結時の区切り文字 | 横方向に連結する時は区切り文字を半角スペース固定としているが、行の連結に使用する区切り文字を横方向の連結にも使用できるようにするパラメータを追加する。対象は以下のデータとする 0: 区切り文字としてスペースを使用する 1: レコードの連結に使用する区切り文字を使用する |
22 | キーワード検索時に無視する文字列 | 抽出キーワード検索時に対象外する文字を設定する |
23 | 無視する文字列 | 抽出キーワードの検索時、及び値の抽出時に対象外とする文字列を設定する 半角スペースで文字列を区切ることで複数登録可能 |
24 | 半角スペースを出力しない | 入力文書に含まれる文字の文字間隔が一定の間隔である場合、通常は、文字の間に半角空白を埋め込むが、半角空白の埋め込みを抑止したい場合にこのパラメータを指定する 有効にすると、半角空白の埋め込みが行われない。文字間隔が一定の間隔である場合は、半角空白を埋め込む |
25 | 抽出キーワードの文字間隔許容値 | 抽出キーワードに指定された文字列の判定において、各文字間隔の許容値を指定する。 指定値は文字の高さに対する倍率で指定する。5.0の場合、文字の高さ×5.0の距離まで許容する |
26 | 矩形内がキーワードのみの場合マージンを設定 | SET_MARGIN_BY_BOXを有効にした場合、矩形内にキーワードのみある時にマージンが設定される。本指定を1にする事で、矩形内に他のキーワードでない他の文字があってもマージンを有効とする 0:矩形内にキーワードのみの時に有効 1:矩形内にキーワードが一つのみの時に有効 |
27 | キーワードと重なった文字列を抽出する | 有効にするとキーワード抽出のキーワード(マージン含む)と重なっている文字列を抽出する |
28 | 正規表現使用時に半角スペースを無視する | 有効にするとメタデータで適用正規表現と一致する文字列を検索する際に半角空白を無視する |
29 | 正規表現一致時に置換を適用する | 有効にすると抽出キーワードの正規表現一致時に正規表現で指定した記憶範囲による項目の置換を適用する |
30 | データタイプと一致しない際に再判定する | 抽出キーワードのデータタイプ判定において、データタイプに一致しなかった場合に、前後の文字列を削除して再判定するかを指定する 0:前後の文字を削除することなく判定する 1:元の文字列がデータタイプに一致しなかった場合に、前後の文字を削除してみてデータタイプに一致するか再判定する |
3.5. ルール定義ファイル
3.5.1. 文書種別定義
帳票の種類を定義します。
タブ区切りで記載します。
- ファイル名:AIRead_proflst.ini
No. | 項目名 | 書式 | 説明 |
---|---|---|---|
1 | 文書種別ID | 文字列 (半角英数) | 文書種別ごとに帳票の識別ID、フォーマット定義ファイルのフォルダ名を設定 |
2 | キーワード | 文字列 | 帳票を識別するためのキーワード セミコロン(;)で区切るとOR条件、カンマ(,)で区切るとAND条件でキーワードを検索して識別 |
- 帳票定義ファイルイメージ:
documentType documentKeyWord Invoice 請求 Invoice2 請求,西新宿株式会社 |
- 制限事項:
・1システムに作成できる文書種別数は1000
・文書種別IDの文字数:100バイト以内
・文書種別IDに使用できる文字:半角英数字、-(ハイフン)_(アンダースコア),(カンマ).(ピリオド)#(シャープ)&(アンパサンド) (スペース)
・文書種別IDの両端のスペースはトリミングされる
3.5.2. メタデータ定義
メタデータとは、「インボイス番号」「数量」「価格」など、抽出対象となるものを指します。項目名と値に分けられ、「インボイス番号」等が項目名、「2014-001」などが値の例となります。
1つの項目に対し値が1つのものと、表形式など1つの項目に対し複数の値がある場合があります。
指定可能なメタデータの設定とその説明を以下に示します。
タブ区切りで記載します。
- ファイル名:IDE_metadata_setting.ini
ファイルの場所:<AIREAD_HOME>/AIRead_conf_kw /documentType名/IDE_metadata_setting.ini
No. | 項目名 | 内容 | 指定可能な値 | 備考 |
1 | type | 値によって固定値の出力かデータ抽出となる | 1,2 | ・ 1の場合:固定の出力 ・ 2の場合:OCR結果 よりデータを抽出 |
2 | itemName | 項目名を指定する | 文字列 | 使用できる文字 半角英数、-(ハイフン)、_(アンダーバー) |
3 | extractKeyWord | 抽出キーワードを指定する | 文字列 | セミコロン(;)で区切ることで1つの項目に複数の抽出キーワードを割り当てることが可能(*1) |
4 5 | MARGIN_RIGHT MARGIN_LEFT | 該当メタデータの抽出キーワード文字列の領域を、マージン分拡張したものと仮定して処理する | 整数 | 単位はピクセル (pdfを変換する場合は300dpiを推奨) |
6 | LB | 該当メタデータをレコード区切りとして使用する | TRUE | TRUE以外を指定した場合無効 (指定なしと同じ) |
7 | DIR | 該当メタデータの値探索方向を指定(限定)する | R(右方向) L(左方向) U(上方向) D(下方向) RD(右+下方向) | |
8 | LMAX | 該当メタデータで、抽出する値の個数を制限する | 0以上の整数 | |
9 | REQUIRED | 該当メタデータを必須列とします。値が入っていない場合、そのレコードは抽出対象外となる | TRUE | TRUE以外を指定した場合無効 (指定なしと同じ) |
10 | NODELIMITER | 該当メタデータは、項目文字列と値文字列の間にデリミタがないものとして扱う | TRUE | TRUE以外を指定した場合無効 (指定なしと同じ) デリミタは抽出パラメータ IV_SYMBOL_REGEX_ID |
11 | GETITEMFROM STRING | 文字列中に項目文字列が部分一致した場合、そこで文字列を分割して処理する | TRUE | TRUE以外を指定した場合無効 (指定なしと同じ) |
12 | POSITION | 指定された座標位置に、キーワードが存在するとみなして処理する | 整数を4つカンマで区切って設定(*2) | 座標は左下原点、単位はピクセルで指定する(pdfを変換する場合は300dpiを推奨) |
13 | POSITIONTOEXTRACT | 指定された座標位置の値を抽出する | 整数を4つカンマで区切って設定(*2) | 座標は左下原点、単位はピクセル値で指定する (pdfを変換する場合は300dpiを推奨) |
14 | TABLE_NAME | タグをグルーピングする | 文字列 | |
15 | REGEX | 正規表現をメタデータに割り当てて、抽出した値をバリデーションする | 文字列 | シングルコーテーションで閉じる |
16 | DATATYPE | 値のデータ型(数字、通貨、日付等)を定義する | データタイプの指定については後述 | |
17 | DATATYPE_VALUE | 「DATATYPE」SUB_KEYWORD_DIR / SUB_KEYWORD_NEAR を使用する場合の抽出条件を定義する | 定義方法についてはXXX 参照 | |
18 | is_output | 「DATATYPE」SUB_KEYWORD_NEARを使用する場合、抽出された文字列 と 抽出された文字列の下1列を抽出し結合する | 0(結合して抽出を行わない) 1(結合して抽出する) |
(*1) 1つのメタデータ定義の中で ”extractKeyWord”を指定した項目を1つ以上設定する必要がある
(*2) 抽出範囲のleft(左),top(上),right(右),bottom(下)の順で記載
(4)(5) MARGIN_RIGHT, MARGIN_LEFT
該当メタデータ(抽出キーワード)の領域をマージン分拡張したものと仮定して処理します。単位はピクセルです。
(例)
マージン指定がない場合、Amountと130.00は縦方向に重ならないため抽出できません。
しかし、MARGIN_RIGHTに15を指定すると、Amountの文字領域を緑色点線部分まで拡張して処理を行うため、130.00がAmountの値として抽出されるようになります。
(6) LB
該当メタデータをレコード区切りとして使用します。値にTRUE以外を指定した場合は無効(指定していないのと同じ)となります。
ExtendedにLBを指定した場合、Extendedの値が抽出される高さでレコードを分割する。
(7) DIR
該当メタデータの値探索方向を指定(限定)します。
(8) LMAX
該当メタデータで、抽出する値の個数を制限します。指定できるのは整数とし、
0:リンクする値の数を制限しない
1以上:リンクする値の数を指定値以下とする
デフォルト値は、該当メタデータのDIRオプションの指定内容によって決定します。
No. | DIRオプションの値 | LMAXのデフォルト値 |
---|---|---|
1 | R(右方向)、L(左方向)、 U(上方向) | 1 |
2 | D(下方向) | 0 |
3 | RD(右+下方向)または指定なし | 0 |
下記例の場合、SubTotalの値として $ 7,465.15 を取得するには、LMAXを0もしくは2以上に設定します。
(9) REQUIRED
該当メタデータを必須項目として扱います。値がないレコードがある場合、そのレコードは抽出の対象外となります。
下記例で「NET AMOUNT」列にREQUIREDを設定した場合、青色で囲んだ部分はNET AMOUNT列の値がないため、抽出の対象外となります。
なお、複数のメタデータに指定した場合、指定されているメタデータすべてが値を持たないレコードは抽出対象外となります(AND条件)。本設定は抽出パラメータにて切り替えが可能です。
(10) NODELIMITER
IDEでは、項目文字列と値文字列が同一文字行内に共存している場合、定義されたデリミタで区切られていれば項目文字列と値文字列の分割を行います。ただし、データによってはデリミタ文字がなく、項目文字列と値文字列が1つの文字列になっている場合があるため、本パラメータが指定されたメタデータはデリミタ文字がなくても分割の対象とします。
(11) GETITEMFROMSTRING
こちらのパラメータが指定されている場合、項目文字列が文字列中で部分一致すれば項目文字列として扱い、そこで文字列の分割を行って以降の処理を行います。項目文字列・値文字列のペアが横向きにいくつも並んでいる場合に必要となることがあります。
(12) POSITION
こちらのパラメータが指定されている場合、指定された座標位置にキーワードが存在するとみなして処理を行う。座標は、300dpiの左下原点で指定する。
(17) DATATYPE_VALUE
「DATATYPE」でSUB_KEYWORD_DIR / SUB_KEYWORD_NEAR が指定されている場合、抽出条件を指定することができる。
例1)SUB_KEYWORD_DIR
メタデータ item_amount で、金額(税抜)の下方向を抽出する定義を行っている場合に、消費税の金額のみを抽出する
メタデータ item_amount を基準とし、消費税(8%)の右側を追加条件として指定する
R : item_amount : 消費税(8%) |
指定方向(R・L・U・D より選択):基準とするメタデータ(itemName を指定):追加するキーワード(正規表現で記述)
それぞれの条件の区切り文字は、:(コロン) を使用する
例2)SUB_KEYWORD_NEAR
メタデータ address で、住所の右方向を抽出する場合に、抽出できる文字列の下1行を抽出する
メタデータ address を基準とし、抽出される「東京都中央区勝どき3丁目13-1」の下1行を抽出する
D : address : STRING |
指定方向(R・L・U・D より選択):基準とするメタデータ(itemName を指定):使用するデータタイプ
それぞれの条件の区切り文字は、:(コロン) を使用する
※SUB_KEYWORD_DIR / SUB_KEYWORD_NEAR は使用するデータタイプに指定不可
3.5.3. 抽出パラメータ設定
指定可能な抽出パラメータとその説明を以下に示します。
“項目名=値”の書式で記載します。
- ファイル名:IDE_setting.ini
- ファイルの場所:<AIREAD_HOME>/AIRead_conf_kw /documentType名/IDE_setting.ini
No. | 項目名 | 内容 | デフォルト値 |
1 | USER_DEFINED_H_LINES | 指定したY座標(72DPI、左下原点)位置に水平罫線を追加する(結果、指定したY座標にYグリッドが作成される) | - |
2 | RATIO_TO_IGNORE_H_LINE | 短い水平罫線を無視するかどうかの閾値。ページ幅に対する割合(N倍)で指定 | 0 |
3 | DIVIDE_STRING_BY_BOX | 文字列が罫線に囲まれている場合に、異なる矩形に属する文字は連結対象から外すかどうかのパラメータ (1:有効、0:無効) | 1 |
4 | LINE_SEG_SPACE_RATE | 接する2つの文字を1つの文字列として扱うかどうかの閾値。文字間の文字行の高さに対する比率で指定する | 1.5 |
5 | SET_MARGIN_BY_BOX | 1つの矩形にアイテムが1つだけある場合に、そのアイテムのマージンを自動生成するかどうかを設定する (1:有効、0:無効) | 1 |
6 | ONE_ITEM_IN_BOX | 1つの矩形に1つだけ文字列がある場合に、完全一致(編集距離での許容は有効)する時のみ項目文字列として扱うかどうかを設定する (1:有効、0:無効) | 1 |
7 | DP_COST_MAX | 辞書照合判定の必要条件(絶対値):編集距離(*1)がこの値以下である場合は辞書に照合したとみなす | 1 |
8 | DP_COST_RATE | 辞書照合判定の必要条件(相対値):許容する編集距離を照合対象の辞書単語と、抽出文字列のいずれか短い方に対する割合で指定 | 5 |
9 | MIN_UPPER_SPACE_HEIGHT_TO_LINK | 項目文字列と値文字列間で、リンク設定を行うかどうかの高さの差の閾値(絶対値) 項目文字列に対し値文字列が上方向にある場合に適用される(DIR=U の場合) | 文字高さの平均×2倍 |
10 | MIN_LOWER_SPACE_HEIGHT_TO_LINK | 項目文字列と値文字列間で、リンク設定を行うかどうかの高さの差の閾値(絶対値) 項目文字列に対し値文字列が下方向にある場合に適用される。(DIR=D の場合) | 文字高さの平均×5倍 |
11 | TABLE_ITEM_NUM_TO_IGNORE_WORDS | 複数列にまたがる値文字列を無視するかどうかの閾値 2以上の場合有効となる (0,1の場合は、複数列にまたがる値でも無視されない) | 0 |
12 | MAX_YGRID_GAP_TO_LINK | 項目文字列と値文字列の縦方向のリンクを設定する場合に、許容するYグリッドの差分の閾値 1(デフォルト)を指定した場合、Yグリッドが隣り合う項目文字列と値文字列のみがリンクされる | 1 |
13 | RECORD_SEG_NODE_COUNT | レコード分割を行う値文字列数の閾値 この数以上の値文字列が水平に並んだ場合、レコードの分割を行う | 3 |
14 | USE_LINE_NUM_OF_FIRST_LINK | 項目文字列と値文字列のリンクを設定する場合に、間の罫線の本数を接続条件とするかどうかを設定する (1:有効、0:無効) | 1 |
15 | IV_SYMBOL_REGEX_ID | 同一文字行内に、項目文字列と値文字列が共存していると判定する場合の、項目-値の区切り文字の正現ID (複数指定は不可) | (?:[: ])+ |
16 | USE_HORIZONTAL_LINE_AS_LINE_BREAK | 水平の罫線をレコード区切りとして利用するかどうかのパラメータ (1:有効、0:無効) | 1 |
17 | LOGICAL_OPERATOR_FOR_REQUIRED_METADATA | 複数のメタデータにREQUIREDを定義した場合に適用される条件を設定する (1:AND条件、2:OR条件) | 1 (AND) |
18 | LINE_RECOGNITION | (テキスト付きPDFのみ) メタデータ抽出時、イメージから罫線情報を抽出してPDFに埋め込むかどうかのパラメータ (1:有効、0:無効) | 0 |
19 | REMOVE_EXIST_LINE | (テキスト付きPDFのみ) 上記LINE_RECOGNITIONパラメータ使用時、既に埋め込まれている罫線の情報を削除するかどうかのパラメータ (1:有効、0:無効) | 0 |
20 | DEFAULT_ERA | DATE_YMD型で、年号が指定されておらず、かつ年が2桁の場合に設定する年号を指定する R(*):令和、H(*):平成、S(*):昭和、T(*):大正、M(*):明治のいずれかで指定 (*)半角または全角での指定が可能 | - |
21 | USE_LINE_DELIMITER_FOR_HORIZONTAL_CONCAT | 横方向に連結する時は区切り文字を半角スペース固定としているが、行の連結に使用する区切り文字を横方向の連結にも使用できるようにするパラメータを追加する 対象は以下のデータ STRING 0: 区切り文字としてスペースを使用する 1: レコードの連結に使用する区切り文字を使用する | 0 |
22 | IGNORE_CHAR_IN_KEYWORD | 抽出キーワード検索時に対象外する文字を設定する | - |
23 | IGNORED_KEYWORD | 抽出キーワードの検索時、及び値の抽出時に対象外とする文字列を設定する 半角スペースで文字列を区切ることで複数登録可能 | - |
24 | NO_ADD_SPACE | 入力文書に含まれる文字の文字間隔が一定の間隔である場合、通常は、文字の間に半角空白を埋め込むが、半角空白の埋め込みを抑止したい場合にこのパラメータを指定する 0を指定すると、半角空白の埋め込みが行われない デフォルトは、「指定なし」で、文字間隔が一定の間隔である場合は、半角空白を埋め込む | - |
25 | CH_GRPH_SPACE_RATE_HORIZONTAL | 抽出キーワードに指定された文字列の判定において、各文字間隔の許容値を指定する 指定値は文字の高さに対する倍率で指定する 5.0の場合、文字の高さ×5.0の距離まで許容する | 5.0 |
26 | MARGIN_BY_BOX_EXT | SET_MARGIN_BY_BOXを有効にした場合、矩形内にキーワードのみある時にマージンが設定される 本指定を1にする事で、矩形内に他のキーワードでない他の文字があってもマージンを有効とする 0:矩形内にキーワードのみの時に有効 1:矩形内にキーワードが一つのみの時に有効 | 0 |
27 | KEYWORD_RANGE_CHECK | キーワード抽出のキーワード(マージン含む)と重なっている文字列を抽出対象とするか指定する 0:キーワードと重なる文字列も抽出する 1:キーワードと重なる文字列は抽出しない | 0 |
28 | REMOVE_SPACE_FOR_REGEX_MATCH | メタデータで適用正規表現と一致する文字列を検索する際に半角空白を無視するか指定する 0:半角空白を無視しない 1:半角空白を無視する | 0 |
29 | KEYWORD_REG_EXT | 抽出キーワードの正規表現一致時に正規表現で指定した記憶範囲による項目の置換を適用するか指定する 0:置換を適用しない 1:置換を適用する | 0 |
30 | KEYWORD_DTY_EXT | 抽出キーワードのデータタイプ判定において、データタイプに一致しなかった場合に、前後の文字列を削除して再判定するかを指定する 0:前後の文字を削除することなく判定する 1:元の文字列がデータタイプに一致しなかった場合に、前後の文字を削除してみてデータタイプに一致するか再判定する | 0 |
(1)USER_DEFINED_H_LINES
IDE_Libraryでは、項目と値のリンク付けにおいて罫線情報を参考に処理を行っています。本パラメータを指定することにより、指定位置に水平線が引かれているものとみなして処理を行います。フッタ部分など、表内の項目文字列と結び付けたくない文字列がある場合に使用します。
定義方法は、罫線を設定するY座標をポイント(72/DPI、左下原点)で指定します。複数の罫線を指定する場合は:(半角コロン)区切りで複数のY座標を指定できます。
(2)RATIO_TO_IGNORE_H_LINE
罫線情報を活用した処理において、本パラメータで指定した長さ以下の罫線を無視するパラメータです。ページ幅に対する割合(N倍)で指定します。デフォルト値は0で、長さにかかわらずすべての罫線を分析に利用します。
サブタイトルに引かれた下線など、表中に(行区切りではない)罫線が存在する場合等に使用することを想定しています。
(3)DIVIDE_STRING_BY_BOX
文字列が罫線に囲まれている場合に、罫線で文字列を分割するかどうかを指定します。
(1:有効(デフォルト)、0:無効)
1の場合、赤で囲まれた文字列はそれぞれ異なる矩形の中にあるので異なる文字列として認識されます。本機能により、P/O#を項目文字列として認識するための字間値調整が不要となります。
(4)LINE_SEG_SPACE_RATE
隣接する2つの文字を1つの文字列として扱うかどうかの閾値を指定します。文字間の文字行の高さに対する比率で指定します。
デフォルト値(1.5)が設定されている場合、右記の例では、LとF, R と S の距離はL, Rの高さの1.5倍より小さいため、 “TOTAL FOR SEGMENT” は1つの文字列として扱われます。
一方、Tと2の距離はTの高さの1.5倍より大きいため”TOTAL FOR SEGMENT”と”2”は別の文字列として扱われます。
注意:
本閾値のベースとなる「文字の高さ」は、PDFに付加されている透明テキストの高さとなり、必ずしも目視できる(印字されている)文字の高さとは一致しません。
(5)SET_MARGIN_BY_BOX
1つの矩形に抽出キーワードが1つだけある場合に、その文字列のマージンを自動生成するかを指定します。
(1:有効(デフォルト)、0:無効)
下記の例で、Description、INV.QTY、PRICE、GST、NETAMOUNTが抽出キーワードに登録されている場合、それらの左右のマージンを矩形から自動計算します。自動計算は一つの矩形に抽出キーワードが一つだけ存在する場合のみ行います。
注意:
マージンによる文字列分割は、分割位置に文字がある場合には実施されません。
分割位置が偶然スペースの場合はそこで分割されてしまうため、 (TABLE_ITEM_NUM_TO_IGNORE_WORDS)の指定で無視することができなくなる。
分割位置にある文字がスペース以外の場合、値は分割されない。
- ONE_ITEM_IN_BOX
1つの矩形に1つだけ文字列がある場合に、完全一致(編集距離での許容は有効)する時のみ項目文字列として扱うかどうかを指定します。
(1:有効(デフォルト)、0:無効)
本パラメータが有効に設定されている場合、 右記の例でShipのみ抽出キーワードとして登録されていたとしても、Ship To:、Ship Via、Ship Dateの一部がShipとして扱われることはありません。
(7)DP_COST_MAX
(8)DP_COST_RATE
辞書照合判定の必要条件を指定します(MAX:絶対値/RATE:相対値)。編集距離がこの値以下である場合は、抽出キーワードに合致したとして扱います。OCR処理での軽微な誤認識を許容することが主な目的です。
DP_COST_RATEは、照合対象の辞書単語と、抽出文字列のいずれか短い方に対する許容する編集距離の割合を指定します。例えば3の場合は、編集距離が、短い方の文字列長を3で割った値以内であればマッチ、それより大きい場合はマッチしないと判断します。そのため、DP_COST_RATEに定義した値よりも短い文字列は(許容される編集距離が1未満となるため)完全一致が照合の条件となります。
なお、DP_COST_MAX(絶対値)とDP_COST_RATE(相対値)はand条件が適用されます(厳しい方が適用される)。
補足説明:
「編集距離」とは、文字の挿入や削除、置換によって、一つの文字列を別の文字列に変形するのに必要な手順の最小回数を指します。
例)DP_COST_MAX = 2,DP_COST_RATE = 3, "keyword"が項目文字列として定義されている場合 Keyword -> マッチ (編集距離1) DP_COST_RATE=3より、許容される編集距離は7/3 → 2 buzzword -> マッチしない (編集距離4) DP_COST_RATE=3より、許容される編集距離は7/3 → 2 key -> マッチしない(編集距離4) DP_COST_RATE=3より、許容される編集距離は 3/3 → 1 |
(9)MIN_UPPER_SPACE_HEIGHT_TO_LINK
(10)MIN_LOWER_SPACE_HEIGHT_TO_LINK
IDE_Libraryでは項目文字列と値文字列の間に一定以上の高さの空間が存在すると、それを超えてのリンク付けは行いません。その高さを本項目で指定できます(絶対値で指定)。単位はピクセルです。
MIN_UPPER_SPACE_HEIGHT_TO_LINKは、項目文字列に対して値文字列が上方向にある場合(DIR=U)、MIN_LOWER_SPACE_HEIGHT_TO_LINKは、項目文字列に対して値文字列が下方向にある場合(DIR=D)に適用されます。
本パラメータが設定されていない場合(デフォルト)は、ページ中のすべての文字列の高さの平均に対する割合が閾値となり、項目文字列に対して値文字列が上方向にある場合(DIR=U)は2倍、項目文字列に対して値文字列が下方向にある場合(DIR=D)は5倍です。
(11)TABLE_ITEM_NUM_TO_IGNORE_WORDS
複数の列にまたがる値文字列があった場合に、無視するかどうかの閾値を設定します。0また1が指定された場合は、複数列にまたがる値でも無視されません。
右記例の場合、
TABLE_ITEM_NUM_TO_IGNORE_WORDSに2を指定すると、以下の赤で囲まれた文字列は値文字列としては無視されます。
注意:
項目文字列のマージン(MARGIN)と本設定を合わせて使用する場合、上記の例でItem No.の左右にマージンが指定されて赤枠部分の文字列が分割されると、その値は無視されなくなります。
(12) MAX_YGRID_GAP_TO_LINK
項目文字列と値文字列の間に含まれる罫線の数の閾値を指定します。ここで指定した値以上の水平罫線がある場合は、項目文字列と値文字列間のリンクを行いません。
デフォルト値は”1”のため、下記例ではDescriptionの値としてCYL LIFT DOZER : BF SALEは抽出されません。
(間に線が3本あるため)
補足説明:
2つの水平線が近い場合(y座標の差が5ポイント以内)は、1本の線として扱います。(二重線等を想定)
注意:
ここでの「罫線情報」は、文字情報と同様に透明なオブジェクトとしてPDFに埋め込まれていることが前提です。印字されているだけではIDE_Libraryでは罫線情報として扱いません。
(13)RECORD_SEG_NODE_COUNT
レコード分割を行う値文字列数の閾値を指定します。
この数以上の値文字列が水平に並んだ場合、レコードの分割を行います。
右記例の場合、RECORD_SEG_NODE_COUNTに2を指定すると、青枠の通りレコードが分割されます。一方で、「Customer Reference No.」で始まる行の次の行からは値が一つしかないため、「Customer Reference No.」で始まる行と同じレコードIDとなります。
(14)USE_LINE_NUM_OF_FIRST_LINK
項目文字列-値文字列の連結を行う際に、項目文字列と最初の値文字列の間の罫線数を超えない範囲内でリンクを行うかどうかのパラメータです。
(1:有効(デフォルト)、0:無効)
1の場合、値文字列が項目文字列にリンクできるか判定する際、“最初の値との間の罫線の数”より多い場合はリンクを行いません。
(15)IV_SYMBOL_REGEX_ID
IDE_Libraryでは、下記条件に該当する場合に、項目文字列と値文字列が同一文字行内に共存していると判断し、分割処理を行います。
- システムに定義された抽出キーワードと前方部分一致する
- 上記一致した部分の一文字右が、単語境界を示唆する文字(=IV_SYMBOL_REGEX_IDに定義した正規表現定義)に合致する
- 抽出キーワードと単語境界の記号を除いた文字列の長さが1文字以上
右記の例の場合、次の条件をすべて満たせば分割処理の対象となります。
”Support Term”が項目文字列として定義されているIV_SYMBOL_REGEX_IDに定義した正規表現定義に”:”が合致
(16)USE_HORIZONTAL_LINE_AS_LINE_BREAK
水平(横向き)の罫線を、レコードの区切りとして使用するかどうかのパラメータです。
(1:有効(デフォルト)、0:無効)
1の場合、水平(横向き)の罫線がある場合は、罫線の上下は異なるレコード(行)であると判断します。
(17)LOGICAL_OPERATOR_FOR_REQUIRED_METADATA
複数のメタデータにREQUIREDを定義した場合に適用される条件を設定します。
(1:AND条件、2:OR条件)
1の場合はAND条件となり、REQUIREDが指定されたメタデータすべてが値を持つレコードのみが抽出の対象となります。2の場合はOR条件となり、REQUIREDが指定されたメタデータのうち、1つでも値を持つメタデータのあるレコードが抽出の対象となります。
(18)LINE_RECOGNITION
メタデータ抽出の前処理として、イメージに含まれる罫線情報を抽出してPDFに埋め込む(追加する)処理を行うかどうかのパラメータです。
(1:有効、0:無効)
(19)REMOVE_EXIST_LINE
前述の罫線情報の付加を行う場合に、既存の罫線情報を削除するかどうかのパラメータです。
(1:有効、0:無効)
(20)DEFAULT_ERA
DATE_YMD型で、年号が指定されておらず、かつ年が2桁の場合に使用する年号を指定します。
指定がない場合は西暦として扱います。
指定は以下の有効な年号のいずれかで指定します。
R(全角)、R(半角)、令和
H(全角)、H(半角)、平成
S(全角)、S(半角)、昭和
T(全角)、T(半角)、大正
M(全角)、M(半角)、明治
不正な値を設定した場合、フォーマット変換は行われません。
(21)USE_LINE_DELIMITER_FOR_HORIZONTAL_CONCAT
PDF上で文字の間のスペースが一定以上の幅があると、半角スペースを区切り文字として結合します。この区切り文字として半角スペースではなく、複数行連結時の区切り文字を使用する場合に指定します。デフォルトでは、半角スペースを使用します。
0: 区切り文字としてスペースを使用する
1: レコードの連結に使用する区切り文字を使用する
(22)IGNORE_CHAR_IN_KEYWORD
キーワード抽出の判定時に無視する文字を指定します。
デフォルトでは、無視する文字はありません。
例えば、半角空白を指定する事で、キーワードの判定において、半角空白を無視します。
(23)IGNORED_KEYWORD
抽出キーワードの検索時、及び値の抽出時に無視する文字列を指定します。
デフォルトでは、無視する文字はありません。
半角スペースで文字列を区切ることで複数登録することができます。
(24)NO_ADD_SPACE
入力文書に含まれる文字の文字間隔が一定の間隔である場合、通常は、文字の間に半角空白を埋め込みますが、半角空白の埋め込みを抑止したい場合にこのパラメータを指定します。0を指定すると、半角空白の埋め込みが行われなくなります。デフォルトは、「指定なし」で、文字間隔が一定の間隔である場合は、半角空白の埋め込みを行います。
例えば、「アライズ AIRead」という文字列があった場合、「アライズ」と「AIRead」の間(「ズ」と「A」の間)は、少し文字間隔があいています。実際に空白文字が入っている場合は、その空白文字は元々存在していた文字として扱われますが、空白文字が入っていない場合、空白文字を補います(ただし、文字間隔が一定の間隔である場合)。
本パラメータを「0」に指定することで、空白文字を補う動作を抑止することができます。
(25)CH_GRPH_SPACE_RATE_HORIZONTAL
文字間隔が広い場合、文字列が抽出キーワードとして判定されないことがあります。
このパラメータでは、抽出キーワードに指定された文字列の判定において、各文字間隔の許容値を指定します。 指定値は文字の高さに対する倍率で指定します。5.0の場合、文字の高さ×5.0の距離まで許容します。
ただし、文字と文字の間に半角空白が含まれている場合等には、半角空白を含む文字列として判定されてしまいます。例えば、「価」と「格」の間に半角空白が存在する場合には、「価 格」となるため、事前に「価 格」を抽出キーワードとして定義しておく必要があります。または、「IGNORE_CHAR_IN_KEYWORD」、「NO_ADD_SPACE」のパラメータを指定し、半角スペースを削除するよう設定する必要があります。
(26)MARGIN_BY_BOX_EXT
SET_MARGIN_BY_BOXが有効な場合、表のヘッダ部にキーワード以外の文字が含まれていると列幅を考慮せずにメタデータの抽出が行われます。
本パラメータに1を指定すると、表のヘッダ部(矩形内)にキーワード以外の文字が含まれている場合にも列幅のマージンを考慮してメタデータの抽出することができます。
0:矩形内にキーワードのみの時に有効
1:矩形内にキーワードが一つのみの時に有効
ただし、「KEYWORD_RANGE_CHECK」が指定されていない場合、上記例では、「価」を抽出キーワードとした際に、「格」がデータとして抽出されてしまいます。本パラメータの指定時には、併せて「KEYWORD_RANGE_CHECK」を指定することを推奨します。
(27)KEYWORD_RANGE_CHECK
抽出キーワードを用いてメタデータの抽出を行う際、キーワードの文字列付近の文字が誤って抽出されてしまう場合があります。
本パラメータでは、キーワードの文字列と近い位置の文字列を抽出対象とするか指定します。
0:キーワードと重なる文字列も抽出します
1:キーワードと重なる文字列は抽出しません
(28)REMOVE_SPACE_FOR_REGEX_MATCH
メタデータに対して正規表現を割り当てて抽出を行う際、文字列から半角空白を取り除いた上で判定を行うかを指定します。
0:半角空白を取り除かず判定を行います
1:半角空白を取り除いた上で判定を行います
(29)KEYWORD_REG_EXT
抽出キーワードを用いてメタデータの抽出を行う際、メタデータに対して割り当てられた正規表現に記憶(()にて囲まれた記述)が含まれている場合、記憶された文字列のみを抽出するか指定します。
本パラメータを指定する際には、「REMOVE_SPACE_FOR_REGEX_MATCH」についても併せて適用されます。
0:正規表現に一致した文字列をそのまま抽出します。
1:正規表現に一致した文字列のうち記憶された文字列のみを抽出します。
(30)KEYWORD_DTY_EXT
抽出キーワードを用いてメタデータの抽出を行う際、設定されたデータタイプにメタデータが一致しなかった場合に前後の文字列を削除して再判定するかを指定します。
本パラメータは、データタイプにNUMBER、DATE_YMD、DATE_MDY、DATE_DMY、PAGE、YEN、DOLLARが指定されている場合にのみ有効となります。(抽出キーワードを用いないメタデータ抽出の場合、標準で本パラメータが適用されています)
0:前後の文字を削除することなく判定します。
1:元の文字列がデータタイプに一致しなかった場合に、前後の文字を削除した上でデータタイプに一致するか再判定します。
3.5.4. データタイプの指定
メタデータ毎に値のデータ型(数字、通貨、日付等)を定義することができ、このデータ型をデータタイプと呼びます。メタデータ抽出時には、データ型に合致しているかどうかのバリデーションおよび抽出結果の整形を行います。
ただし、同じメタデータに正規表現が定義されている場合、正規表現に合致するかどうかのチェックが先に行われ、合致している場合はデータタイプによる整形処理の対象となりますが、合致していない場合は下記の整形処理の対象から外れます。
また、データ型に合致しているかどうかのバリデーションと、抽出結果の整形は独立して実施します(データ型に合致しなくても、抽出結果が整形されることもあります)。
定義できるデータタイプの種類と、各データタイプの仕様を以下に示します。
No. | データタイプ名 | 説明 | 出力フォーマット(*1) |
---|---|---|---|
1 | STRING (文字列) | デフォルトのデータタイプ バリデーションを実施せず、抽出したそのものを値として扱う | - |
2 | STRING_FIRST_LINE (単一行文字列) | 値が複数行の場合、1行目だけを抽出する | 文字列のうち、1行目 |
3 | STRING_FIRST_WORD (単語) | 1行目の1語目だけを抽出する | 文字列のうち、1行目の1語目 |
4 | NUMBER (数値) | 整数と小数 | -{0,1}[0-9]+(\.[0-9]+)* |
5 | DOLLAR (ドル) | 米ドル、カナダドルなど、小数点付きの通貨 | -{0,1}[0-9]+\.[0-9]{2} (*3) |
6 | DATE_YMD (日付_年月日) | 日付(年、月、日) | yyyy-mm-dd |
7 | DATE_MDY (日付_月日年) | 日付(月、日、年) | yyyy-mm-dd |
8 | DATE_DMY (日付_日月年) | 日付(日、月、年) | yyyy-mm-dd |
9 | PAGE (ページ) | ページ番号 | pn/pc pn (ページ総数が取得できなかった場合)(*2) |
10 | STRING_FIRST_LINE _FIXED_COLUMN | 固定桁数の文字列を抽出する | 抽出文字列(必要に応じ空白を追加) |
11 | ALIAS | 他のメタデータを複製する | 他のメタデータの値 |
12 | STRING_SINGLE_LINE | 文字列中の指定行を抽出する | 文字列の内、指定された行 |
13 | YEN(円) | 円(整数表記する通貨) | -{0,1}[0-9]+ |
*1 : 抽出結果をこのフォーマットに整形します。
*2 : pn:ページ番号、pc:総ページ数 を表します。
*3 : 小数点以下の桁数は、パラメータに指定した値により変動します。(デフォルト2)
(1) STRING
デフォルトのデータタイプです。データタイプの指定がない場合は、STRINGとして扱われます。抽出結果のバリデーションおよび整形は行わず、抽出した結果をそのまま出力します。値が複数行にわたる場合は、連結して1つの値として出力します。その際、半角スペースが区切り文字として設定されます。
(2) STRING_FIRST_LINE
単一行文字列を表します。
抽出した値が単一行であればそのまま、複数行の場合は1行目のみを抽出結果とします。
(3) STRING_FIRST_WORD
単語を表します。
抽出した値が1語であればそのまま、2語以上の場合は1語目のみを抽出結果とします。
(4) NUMBER
数値(整数と小数)を表します。
抽出した値が、想定フォーマットに合致するかどうかバリデーションを行い、合致する場合出力フォーマット(-{0,1}[0-9]+(\.[0-9]+)*)に変換して出力します。合致しない場合は、フォーマット変換は行いません。なお、半角丸型括弧「()」および半角山型括弧「<>」に囲まれている場合は負の数として扱います。
No. | 想定フォーマット | 合致する例 |
1 | -{0,1}[0-9]+ | 123 |
2 | -{0,1}[0-9]*\.[0-9]+ | -5.00 |
3 | -{0,1}[0-9]{1,3}(,[0-9]{3})* | 1,890 |
4 | -{0,1}[0-9]{1,3}(,[0-9]{3})*\.[0-9]+ | -530,636.12 |
5 | ([0-9]+) | (420) |
6 | ([0-9]*\.[0-9]+) | (236.32) |
7 | ([0-9]{1,3}(,[0-9]{3})*) | (2,237) |
8 | ([0-9]{1,3}(,[0-9]{3})*\.[0-9]+) | (1,100,000.00) |
9 | [0-9]+ -{0,1} | 123- |
10 | [0-9]*\.[0-9]+ -{0,1} | 5.00- |
11 | [0-9]{1,3}(,[0-9]{3})*-{0,1} | 1,890- |
12 | [0-9]{1,3}(,[0-9]{3})*\.[0-9]+ -{0,1} | 530,636.12- |
13 | <[0-9]+> | <420> |
14 | <[0-9]*\.[0-9]+> | <236.32> |
15 | <[0-9]{1,3}(,[0-9]{3})*> | <2,237> |
16 | <[0-9]{1,3}(,[0-9]{3})*\.[0-9]+> | <1,100,000.00> |
- 抽出結果に含まれる”,(カンマ)”の位置が(数値表現として)誤っている場合、”,”はすべて削除し、フォーマットエラーとして扱います。
- 抽出結果に2つ以上の”.(ピリオド)”が含まれている場合、最も右にあるものを除いて”.”はすべて削除し、フォーマットエラーとして扱います。
- “-(マイナス)”と1文字目または末尾の数字の間のスペース、カッコ前後のスペースは無視されます。
- NUMBER型でサポートするのは、整数部分と小数部分合わせて16桁までです。16桁を超える場合、17桁目以降の値は保証対象外となります。
(5) DOLLAR
アメリカドル、カナダドル等、小数点以下1桁以上の通貨を表します。(小数点以下の桁数は、デフォルト2)
抽出した値が、想定フォーマットに合致するかどうかバリデーションを行い、合致する場合出力フォーマット(-{0,1}[0-9]+\.[0-9]{2})に変換して出力します。合致しない場合は、フォーマット変換は行いません。なお、半角丸型括弧「()」および半角山型括弧「<>」に囲まれているか、前後に「C」または「CR」と記載されている場合は負の数として扱います。
No. | 想定フォーマット (*3) | 合致する例 |
1 | -{0,1}<DM>{0,1}[0-9]+\.[0-9]{2} | $123.00 |
2 | -{0,1}<DM>{0,1}[0-9]{1,3}(,[0-9]{3})*\.[0-9]{2} | -$53,589.00 |
3 | <DM>{0,1}-{0,1}[0-9]+\.[0-9]{2} | $1,890.00 |
4 | <DM>{0,1}-{0,1}[0-9]{1,3}(,[0-9]{3})*\.[0-9]{2} | $-530,636.12 |
5 | ({0,1}<DM>{0,1}[0-9]+\.[0-9]{2}) | ($420.00) |
6 | ({0,1}<DM>{0,1}[0-9]{1,3}(,[0-9]{3})*\.[0-9]{2}) | ($236,300.32) |
7 | <DM>{0,1}\( [0-9]*\.[0-9]{2}\) | $(530.00) |
8 | <DM>{0,1}\([0-9]{1,3}(,[0-9]{3})*\.[0-9]{2}\) | $(23,572.00) |
9 | <DM>{0,1}[0-9]+\.[0-9]{2}- | $123.00- |
10 | <DM>{0,1}[0-9]{1,3}(,[0-9]{3})*\.[0-9]{2}- | $53,589.00- |
11 | <DM>{0,1}[0-9]+\.[0-9]{2}(C|CR) | $123.00CR |
12 | <DM>{0,1}[0-9]{1,3}(,[0-9]{3})*\.[0-9]{2}(C|CR) | $53,589.00C |
13 | (C|CR)<DM>{0,1}[0-9]+\.[0-9]{2} | CR$123.00 |
14 | (C|CR)<DM>{0,1}[0-9]{1,3}(,[0-9]{3})*\.[0-9]{2} | C$53,589.00 |
15 | <DM>{0,1}(C|CR) [0-9]+\.[0-9]{2} | $CR123.00 |
16 | <DM>{0,1}(C|CR) [0-9]{1,3}(,[0-9]{3})*\.[0-9]{2} | $C53,589.00 |
17 | <{0,1}<DM>{0,1}[0-9]+\.[0-9]{2}> | <$420.00> |
18 | <{0,1}<DM>{0,1}[0-9]{1,3}(,[0-9]{3})*\.[0-9]{2}> | <$236,300.32> |
(*3) <DM>部分に入る文字は、下記の通貨記号です。
$, USD, CAD, CDN, USD $, CAD $, CDN $
- 抽出結果に含まれる”,(カンマ)”の位置が(数値表現として)誤っている場合、”,”はすべて削除し、フォーマットエラーとして扱います。
- 抽出結果に2つ以上の”.(ピリオド)”が含まれているか、ピリオドの位置が誤っている場合、すべての”.”を削除し、かつ指定された小数点以下の桁数となるように”.”を付加します。加えてフォーマットエラーとして扱います。また、”.(ピリオド)”および”,(カンマ)”をすべて削除すると抽出結果が小数点以下桁数未満になる場合、”.”の付加は行わずフォーマットエラーとして扱います。
- “-(マイナス)”と”$(ドル)”の間のスペース、“-(マイナス)”と1文字目または末尾の数字の間のスペースは無視されます。
- 小数点以下の桁数は、本データタイプのオプションとして指定します。
- DOLLAR型でサポートするのは、整数部分と小数部分合わせて16桁までです。16桁を超える場合、17桁目以降の値は保証対象外となります。
- 指定できる小数点以下の桁数に上限はありませんが(下限は1)、上述の制限事項を考慮に入れ、16-(整数部分の想定最大桁数)で設定することを推奨します。
注意:
本データタイプは、小数点が記載されることを前提に処理を行います。そのため、 $340 など整数で書かれているデータを抽出した場合も、フォーマット補正により抽出結果は 3.40 (小数点以下桁数が2の場合)になります。
(6) DATE_YMD
日付で、年、月、日の順のものを表します。年は西暦と和暦に対応します。
抽出した値が、想定フォーマットに合致するかどうかバリデーションを行い、合致する場合出力フォーマット(yyyy-mm-dd)に変換して出力します。合致しない場合、またフォーマットは正しいが日付として無効な場合(2015/2/31など)は、日付として有効になるよう変換を試みます(ただしできない場合は、変換を行いません)。
No. | 想定フォーマット | 合致する例 |
---|---|---|
1 | y/m/d | 2015/1/16 |
2 | y-m-d | 15-1-16 |
3 | y m d | 2015 1 16 |
4 | y.m.d | 2015.1.16 |
5 | g/m/d | H27/1/16 |
6 | g-m-d | H27-1-16 |
7 | g m d | H27 1 16 |
8 | g.m.d | H27.1.16 |
9 | g年m月d日 | 平成27年1月16日 |
なおy,m,dは日付(DATE)型で共通で、javaのYear、Month、Numberフォーマットの仕様にそれぞれ準拠します。
(7) DATE_MDY
日付で、月、日、年の順のものを表します。
抽出した値が、想定フォーマットに合致するかどうかバリデーションを行い、合致する場合出力フォーマット(yyyy-mm-dd)に変換して出力します。合致しない場合、またフォーマットは正しいが日付として無効な場合(2/31/2015など)は、日付として有効になるよう変換を試みます(ただしできない場合は、変換を行いません)。
No. | 想定フォーマット | 合致する例 |
---|---|---|
1 | m/d/y | 2/21/2015 |
2 | m-d-y | 02-21-15 |
3 | m d y | February 21 2015 |
4 | m.d.y | Feb.21.2015 |
5 | m d,y | February 21,2015 |
(8) DATE_DMY
日付で、日、月、年の順のものを表します。
抽出した値が、想定フォーマットに合致するかどうかバリデーションを行い、合致する場合出力フォーマット(yyyy-mm-dd)に変換して出力します。合致しない場合、またフォーマットは正しいが日付として無効な場合(31/2/2015など)は、日付として有効になるよう変換を試みます(ただしできない場合は、変換を行いません)。
No. | 想定フォーマット | 合致する例 |
---|---|---|
1 | d/m/y | 31/03/2015 |
2 | d-m-y | 31-Mar-2015 |
3 | d m y | 31 March 15 |
4 | d.m.y | 31.3.2015 |
5 | d.m y | 31.March 2015 |
(9) PAGE
ページ番号(pn)とページ総数(pc、ある場合)を表します。
抽出した値が、想定フォーマットに合致するかどうかバリデーションを行い、合致する場合出力フォーマット(pn/pc)に変換して出力します。合致しない場合は、フォーマット変換は行いません。
No. | 想定フォーマット | 合致する例 |
---|---|---|
1 | pn/pc | 1/5 |
2 | pn / pc | 1 / 5 |
3 | pn of pc | 1 of 5 |
4 | pn (pc) | 1 (5) |
5 | pn | 1 |
- pnとpcの値の妥当性(pn ≦ pc)はチェックしていません。抽出した値をそのまま返します。
(10) STRING_FIRST_LINE_FIXED_COLUMN
固定桁数の文字列を表し、値内に空白がある場合はその位置に半角スペースを埋めて出力します。例を以下に示します。
該当するメタデータは、抽出キーワード、値(固定桁数分揃った場合)とも同じ幅であることを前提とします(上記例の場合は、「個人番号」が枠いっぱいの幅で出力されている必要があります)、個々の値はその幅内に均等に出力されているものと仮定して処理を行います。
結果、上記データで、固定桁数を”12”に設定すると、値内に空白があった場合にはその箇所を検出してメタデータの値にも半角空白を設定します。
(11) ALIAS
別のメタデータの値を複製することを表します。抽出結果にかかわらず、指定されたメタデータの値をすべてコピーして値とします。
(12) STRING_SINGLE_LINE
文字列のうち、指定された行の値のみを抽出することを表します。行番号として、1以上の整数または-1が指定でき、-1は最終行を示します。指定された行が抽出結果に存在しない場合(3を指定したが、値が2行しかない場合)は、抽出結果はnullとなります。
(13) YEN
日本円を表します。
抽出した値が、想定フォーマットに合致するかどうかバリデーションを行い、合致する場合出力フォーマット(-{0,1}[0-9]+)に変換して出力します。合致しない場合は、フォーマット変換は行いません。なお、半角丸型括弧「()」および半角山型括弧「<>」に囲まれているか、前後に「C」または「CR」と記載されている場合は負の数として扱います。
No. | 想定フォーマット (*3) | 合致する例 |
1 | ^(-|―|ー|-|CR|C)? ? <YM> ?[0-9]+ $ | ¥1000, -¥1000 |
2 | ^(-|―|ー|-|CR|C)? ? <YM> ?[0-9]{1,3}(,[0-9]{3})* | ¥1,000,-¥1,000 |
3 | ^<YM> ?(-|―|ー|-|CR|C)? ?[0-9]$ | ¥1000, ¥-1000 |
4 | ^<YM> ?(-|―|ー|-|CR|C)? ?[0-9]{1,3}(,[0-9]{3})* | ¥1000, -¥1000 |
5 | ^(-|―|ー|-|CR|C)? ?[0-9]+ ? <YM>$ | 1000円, -1000円 |
6 | ^(-|―|ー|-|CR|C)? ?[0-9]{1,3}(,[0-9]{3})* ? <YM>$ | 1,000円, -1,000円 |
7 | ^<YM> ?[0-9]+ ?(-|―|ー|-)?$ | ¥1000, ¥1000- |
8 | ^<YM> ?[0-9]{1,3}(,[0-9]{3})* ?(-|―|ー|-)?$ | ¥1,000, ¥1,000- |
9 | ^\\( ? <YM> ?[0-9]+ ?\\)$ | (¥1000) |
10 | ^\\( ? <YM> ?[0-9]+ ?\\)$ | ¥(1000) |
11 | ^\\( ? <YM> ?[0-9]{1,3}(,[0-9]{3})* ?\\)$ | (¥1,000) |
12 | ^<YM> ?\\( ?[0-9]{1,3}(,[0-9]{3})* ?\\)$ | ¥(1,000) |
13 | ^\\( ?[0-9]{1,3}(,[0-9]{3})* ? <YM> ?\\)$ | (1,000円) |
14 | ^\\( ?[0-9]{1,3}(,[0-9]{3})* ?\\) ? <YM>$ | (1,000)円 |
15 | ^< ? <YM> ?[0-9]+ ?>$ | <¥1000> |
16 | ^< ? <YM> ?[0-9]+ ?>$ | ¥<1000> |
17 | ^< ? <YM> ?[0-9]{1,3}(,[0-9]{3})* ?>$ | <¥1,000> |
18 | ^<YM> ?< ?[0-9]{1,3}(,[0-9]{3})* ?>$ | ¥<1,000> |
19 | ^< ?[0-9]{1,3}(,[0-9]{3})* ? <YM> ?>$ | <1,000円> |
20 | ^< ?[0-9]{1,3}(,[0-9]{3})* ?> ? <YM>$ | <1,000>円 |
(*3) <YM>部分に入る文字は、下記の円記号です。
¥(半角/全角), YEN, JPY, 円
- 抽出結果に含まれる”,(カンマ)”の位置が(数値表現として)誤っている場合、”,”はすべて削除し、フォーマットエラーとして扱います。
- 抽出結果に”.(ピリオド)”が含まれている場合、すべての”.”を削除しフォーマットエラーとして扱います。
- “-(マイナス)”と”¥”の間のスペースは無視されます。
- YEN型でサポートするのは16桁までです。16桁を超える場合、17桁目以降の値は保証対象外となります。
補足情報:
NUMBER、DOLLAR、DATE_YMD、DATE_MDY、DATE_DMY、PAGE、YENの各データタイプが指定された場合、OCR誤認識を想定して下記表の通りにデータの変換を行います。ただし、データの変換を行った結果に数字と各フォーマットで使用する記号以外の文字が含まれている場合、データ変換は行われません。
No. | オリジナルデータ | 修正後の文字 |
---|---|---|
1 | ! | 1 |
2 | | | 1 |
3 | | | 1 |
4 | I | 1 |
5 | l | 1 |
6 | i | 1 |
7 | B | 8 |
8 | O | 0 |
9 | o | 0 |
10 | @ | 0 |
11 | - | - |
12 | ― | - |
(14) SUB_KEYWORD_DIR
(15) SUB_KEYWORD_NEAR
指定したメタデータで「DATATYPE_VALUE」パラメータの指定を行うことができます。
SUB_KEYWORD_DIRを使用する場合、追加の抽出条件を定義することができます。
SUB_KEYWORD_NEARを使用する場合、抽出された文字列 と 抽出された文字列の下1列を抽出し結合します。