5.5. AIRead RuleEditorで設定

以下のプログラムで、AIRead RuleEditor(以下RuleEditor)を起動することで、ルールを編集することができます。

<AIReadインストールフォルダ>/RuleEditor/RuleEditor.exe

5.5.1. ルールを作成・開く

  • ルールを新規で作成する

「ルールを作成」を選択するとダイアログが表示されます。
フォーマット定義フォルダを作成するディレクトリを選択し、任意の名前で作成することができます。

  • ルールを開く

「ルールを開く」を選択すると、フォルダを選択する画面を開きます。
作成済みのルールを選択してください。

5.5.2. 文書種別の管理

1つのルール一式を「文書種別」と呼びます。
文書種別にはそれぞれ識別キーワードが設定でき、帳票内に含まれている文字列で使用する文書種別を仕分けることができます。
「条件追加」ボタンで管理画面を開きます。

No.項目名説明
1+(文書種別列)文書種別を追加する
2+(識別キーワード列)識別キーワードを追加する
3-(識別キーワード列)識別キーワードを削除する
  • 文書種別の追加
    文書種別の+ボタンを押すと、文書種別を追加します。
  • キーワードの設定
    「+」ボタンを押すと識別キーワードを追加し、「-」ボタンを押すと識別キーワードを削除します。
    複数キーワードを登録するとOR条件となります。いずれかのキーワードが見つかった場合に該当する文書種別のルールが適用されます。
    1つのフィールドをカンマ(,)で区切るとAND条件となります。すべてのキーワードが存在する場合に該当する文書種別のルールが適用されます。
  • 文書種別のコピー
    文書種別上でマウスを右クリックするとメニューが表示されます。

コピーを選択するとダイアログが表示されます。

ユニークな文書種別、識別キーワードを入力しコピーボタンを押下します。

文書種別がコピーされます。

  • 制限事項:
    ・1システムに作成できる文書種別数は1000
    ・文書種別IDの文字数:100バイト以内
    ・文書種別IDに使用できる文字:半角英数字、-(ハイフン)、_(アンダースコア)、.(ピリオド)、#(シャープ)、&(アンパサンド)
    ・文書種別IDの両端のスペースはトリミングされる

5.5.3. 画像の追加

文書種別に対応する画像を追加します。
「画像の追加」ボタンを押すとファイル選択ダイアログを表示します。

ファイルを選択し、「開く」ボタンを押すと画像を追加します。

No.項目名説明
1↺ ↻ (90度回転)表示中の画像を90度回転する
2◀ ▶ (画像送り)表示する画像を選択する
3(画像上で Ctrlキー + マウスホイール操作)画像を拡大/縮小する

5.5.4. 共通設定ファイルの指定

AIReadの実行、個別読取結果変換リストの紐づけ、個別OCR設定時に使用する共通設定ファイルを指定します。
「共通設定ファイル」ボタンを押すと、ファイル選択ダイアログを表示します。

「参照」ボタンから使用する共通設定ファイルを選択します。

5.5.5. 抽出ルール編集

項目ごとに抽出ルールを設定します。
1つの項目に対する設定をメタデータと呼びます。

※下記、左から順に各ボタンの説明

No.項目名説明
1抽出ルールにメタデータを追加するため設定画面を開く
2編集ボタン作成済みのメタデータの設定画面を開く
メタデータを複数選択した状態で編集ボタンを押下すると、明細名をまとめて設定することが可能
3コピーボタン選択中の抽出ルールをコピーします
4⇑⇓選択したメタデータのリスト位置を上下する
5トラッシュボックスマーク選択したメタデータを削除する
6↶↷マーク操作を元に戻す(↶)、やり直し(↷)
まとめて編集(明細名)
  • メタデータを新規作成

「+」ボタンを押すと、メタデータ設定画面を開きます。

  • メタデータを編集

抽出ルール設定の一覧から任意の項目をマウスダブルクリックするとメタデータ設定画面を開きます。

  • メタデータ設定項目説明
No.項目名説明
1項目名メタデータの項目名を入力する
2値の抽出方法下記より抽出方法を選択する
・キーワード
・キーワードの座標指定
・座標指定
・型指定
・固定値
3抽出キーワード抽出するキーワード文字列を入力する
4固定値値の抽出方法が固定値の時のみ設定可能
抽出結果に関わらず、定義された値を出力する
5値の探索方向下記より探索方向を選択する
・右
・左
・上
・下
・右and下
6個別読取結果変換AIRead ContorolPanel で作成した個別読取結果変換リストとメタデータを紐づける
※個別読取結果変換の設定方法は、4.1.4. 後処理設定に記載
7サブキーワードを指定する下記より指定方法の選択をする
・ベースメタデータ(親となるメタデータ)を指定し、サブキーワードのみ指定する
・ベースメタデータ(親となるメタデータ)を指定せず、抽出キーワード と サブキーワードを指定する
82行目のデータを取得する値の出力時に、抽出キーワードで指定された文字列 と 指定された文字列の下1列を抽出し結合する
9座標位置指定の場合、対象矩形領域の座標を入力する
10型指定下記より型を選択する
・指定しない
・データタイプ:リストボックスからデータタイプを指定する
・正規表現  :正規表現文字列を入力する
11マージン拡張(右)キーワードの右方向に拡張させたいマージンを数字で入力する(単位はピクセル)
12マージン拡張(左)キーワードの左方向に拡張させたいマージンを数字で入力する(単位はピクセル)
13レコード区切りレコード区切りをするかチェック入力する
14値取得個数の制限抽出する値の数を制限したい場合、制限数を入力する(0の場合は無制限)
空欄の時は値の探索方向によって初期値が決まる
 R(右方向)、L(左方向)、 U(上方向):1
 D(下方向):0
 RD(右+下方向)または指定なし:0
15列を必須列とする列を必須化するかチェック入力する
チェックした項目に値が入っていない場合、そのレコードは抽出対象外となる
16デリミタを無視デリミタを無視するかチェック入力する
チェックした場合、項目文字列と値文字列の間にデリミタがないものとして扱う
17文字列中の部分一致文字列の部分一致をするかチェック入力する
チェックした場合、文字列中に項目文字列が部分一致したところで文字列を分割して処理する
18明細名明細名を入力する
19決定読取定義の設定を保存しダイアログを閉じる
20キャンセル読取定義の設定を保存せずダイアログを閉じる
21読取定義の設定を保存しひとつ前の読取定義を開く
22読取定義の設定を保存しひとつ後の読取定義を開く
  • 使用できない項目名

以下は予約語のため、項目名には使用できません。

Image
Image_jshfilename
modifyDate
processDate
result
original
original_jshfilename
form_id
Image_for_display

  • キーワード座標指定/座標指定の方法

「値の抽出方法」でキーワードの座標指定、および座標指定を選択した場合、座標の入力をマウスの範囲指定で行います。

  1. メタデータ設定画面で「キーワードの座標指定」もしくは「座標指定」を選択して決定を押し画面を閉じる
  2. 画像表示画面上で該当の位置をマウスドラッグで指定する
  • サブキーワードの指定方法

「サブキーワードを指定する」を選択した場合、ベースメタデータ、もしくは抽出キーワードに合わせ、サブキーワードを指定します。

(1) 「ベースメタデータ」を使用する場合

 1. メタデータ設定画面で「値の抽出方法」をキーワードに指定し、「サブキーワードを指定する」にチェックを入れる

 2. 「ベースメタデータ」を指定し、追加する条件に合わせ、「キーワード」と「方向」を指定する

(2) 「抽出キーワード」とサブキーワードを両方使用する場合

 1. メタデータ設定画面で「値の抽出方法」をキーワードに指定し、「サブキーワードを指定する」にチェックを入れる

 2. 「抽出キーワード」「値の探索方向」を指定し、「方向」「キーワード」を指定する

5.5.6. 抽出パラメータ設定

文書種別ごとの抽出に影響する設定を編集します。

画面右下「抽出パラメータ設定」を押すと、抽出パラメータ設定画面を開きます。

  • 設定の説明

ユースケースは5.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:元の文字列がデータタイプに一致しなかった場合に、前後の文字を削除してみてデータタイプに一致するか再判定する

5.5.7. 個別OCR設定

ルール定義ごとに個別でOCR設定の定義を行います。
個別設定は帳票定義を指定したとき(帳票識別を行わないとき)のみ有効です。
これは、帳票識別時の処理フローが OCR処理→帳票識別→キーワード抽出 となっており、帳票定義(個別設定含む) が判明した時点で既にOCR処理後であるためです。

個別OCR設定の呼出 ボタンを押下することで、5.5.4. 共通設定ファイルの指定 で指定した共通設定ファイルの各OCR設定を引き継いで呼び出します。

指定した共通設定ファイルが存在しない場合、共通設定ファイル指定ダイアログが表示されます。

「個別設定に使う」にチェックのついたパラメータは、AIRead実行時に共通設定ファイルのパラメータを上書きして実行されます。
ただし、「入力フォルダ」や「抽出モードの指定」等一部のパラメータは置き換え不可です。
設定内容については、4. 共通設定を参照して下さい。

5.5.7.1. 設定方法
  • 個別設定に使いたい設定の編集

新規で個別設定を行う場合、すべての個別設定は無効となっており、設定値の編集ができません。
個別設定に使用したい設定項目の右側にある個別設定に使うチェックボックスをクリックし、設定値を編集してください。
ただし、AIRead on Cloudで有効な設定は☁マーク(□)がついた項目のみとなります。

  • 個別設定の保存

設定の編集が完了したら、保存してください。個別設定が反映されます。
※保存しないと、設定は反映されません。

  • 個別設定画面の終了

保存が完了したら、右上の×ボタンで画面を閉じてください。

5.5.8. AIReadの実行

作成した文書種別でAIReadを実行します。

No.項目名説明
1AIRead実行AIRead実行設定ダイアログを開く
2画像ファイル名AIReadを実行する画像ファイルを指定する
3実行AIReadの実行を開始する
4キャンセルダイアログを閉じる

AIRead の実行の際、5.4.4. 共通設定ファイルの指定 で指定した共通設定ファイルを呼び出します。
指定した共通設定ファイルが存在しない場合、共通設定ファイル指定ダイアログが表示されます。

5.5.9. AIRead Viewerで結果を確認

実行後、AIRead Viewerが実行結果一覧画面を表示されます。
表示された実行結果一覧画面より、確認・編集を行うファイルを選択し、実行結果確認画面を表示します。

5.5.9.1. 実行結果一覧画面
No.項目名説明
1ファイル名読み取ったファイル名を表示する
2ページ番号読み取ったファイルのページ数を表示する
3グループフォーマット定義のグループを表示する
4FormID読み取りに使用したフォーマット定義名を表示する
5読取り日時読み取りを実行した日時を表示する
6更新日時最終更新日時を表示する
7ステータス実行結果の状態を表示する
・読取完了 :読み取りが終了
・編集中  :実行結果確認画面で全てのページが確定されていない
・確定済  :実行結果確認画面で確定処理を実施済み
・CSV出力済 :データ出力ボタンでCSV出力を実施済み
・読取失敗 :読み取りが失敗
※AIRead自体が起動できない、異常終了の場合は一覧に表示されない
8編集ボタン対象の実行結果確認画面を表示する(該当行をダブルクリックでも表示可能)
9更新ボタン実行結果一覧を最新の状態へ更新する
10削除ボタンチェックボックスで選択した実行結果を削除する
11データ出力ボタンチェックボックスで選択した実行結果をCSV出力する
12絞り込み条件条件を指定し、実行結果一覧画面に表示する実行結果を絞り込む
13Viewer設定ボタン表示フォントサイズ、信頼値の表示色などを設定する
5.5.9.2. 絞り込み条件

以下の条件を入力することによって、読取結果の絞り込み検索ができます。

No.項目名説明
1ファイル名読み取ったファイル名を絞り込み条件にする
2FormID実行時に使用した定義情報のFormIDを絞り込み条件にする
3登録日付実行時の日付を絞り込み条件にする
4ステータス実行結果のステータスを絞り込み条件にする
5更新ボタン指定した条件で絞り込みを行う
5.5.9.3. 実行結果確認画面
No.項目名説明
1プレビュー画像読み取りが行われた画像を表示する
各読み取り領域をマウスでポイントすると、読み取りR結果一覧の該当項目を強調する
2拡大縮小ボタン帳票画像の拡大縮小操作に使用
3ページ変更ボタン表示する確認画面変更に使用
複数ページの帳票ファイルを1つの帳票として処理した時のみ使用
4OCR結果(リスト)項目名と読み取った値(編集可能)のリストの一覧表示
項目をマウスでクリックすると、プレビュー画像の該当位置を 強調する
5OCR結果(明細)項目名と読み取った値(編集可能)の明細の一覧表示
項目をマウスでクリックすると、プレビュー画像の該当位置を強調する
6ファイル名読み取ったファイル名を表示する(マウスオーバーでファイル名をすべて表示)
7FormID読み取りに使用した文書種別名を表示する
8ステータス読み取り結果の状態を表示する
9処理日時読み取りを実行した日時を表示する
10前・次ボタン実行結果一覧画面の前後の実行結果へ移動する
11保存し確定・確定解除ボタン編集後の各項目の値を保存しステータスを”確定済み”へ変更する
また、”確定済み”、”CSV出力済み”のステータスを”確定済み”へ変更する
12保存ボタン編集後の各項目の値を保存する
※編集後の値はViewer内部に保持され、このボタンから保存先の指定は行わない
13キャンセルボタン編集内容を保存せず、実行結果一覧画面へ戻る

5.5.10. データの出力

データ出力ボタンを押下すると、データ出力用のダイアログが表示されます。
このダイアログ上で、任意の場所にCSV/PDFファイルを保存することができます。

No.項目名説明
1出力先実行結果の保存先を指定する
「*」「?」「"」「|」は使用不可
2命名規則出力するCSV/PDFファイルの規則を指定する
「/」「*」「?」「"」「|」は使用不可
<date>:出力時の実行日付8桁(yyyymmdd)をファイル名に表記する
<time>:出力時の実行時間8桁(hhmmssms)をファイル名に表記する
<item:項目名>:読み取り結果に含まれる項目名を指定することで、読み取った値をファイル名に表記する
3出力形式実行結果の保存形式をCSV(カンマ区切り) 、 CSV(独自形式) 、PDFから設定する
※CSVカンマ区切りの場合、ヘッダ部と明細部のCSVファイルが出力されるため、zip圧縮で出力される
※PDFの場合は、読み取った画像をPDFとして出力される
4ラベル行ラベル行(1行目のヘッダ行)出力の要否を指定する
5page列ページ列(1列目のページ列)出力の要否を指定する
6文字コード出力する実行結果の文字コードを、S-JIS、UTF-8、UTF-8(BOM付き)から選択する
7出力単位「複数ページの帳票ファイルを1つの帳票として処理する」が設定された帳票が含まれる場合のみ表示される
 ファイル:ファイル単位で結果をまとめる(複数ページ1出力)
 ページ :ページ単位で結果をまとめる(1ページ1出力)
8ヘッダー設定CSV出力を行う際に、出力するヘッダ情報を選択画面を開く
※各種ヘッダの詳細は 6.1. 共通に記載
9データ出力ボタン指定された設定で実行結果を保存する
10キャンセルボタンデータ出力用ダイアログを閉じる

5.5.11. 出力形式

RuleEditorからの実行結果を出力する形式は2種類あります。

5.5.11.1. CSV(カンマ区切り)

1行目にヘッダ情報、2行目以降にデータ情報が出力される、一般的なCSV形式です。ヘッダ、明細それぞれでCSVファイルが出力されます。
RuleEditorの読み取り定義で指定した設定が、下記のルールに従ってまとめられます。

CSVファイル名は下記のルールに従って作成されます。

・明細名の設定がない項目(ヘッダ項目)

   [入力ファイル名].csv

・明細名が設定された項目(明細項目)

   [入力ファイル名]_[明細名].csv

   ※ファイル名に使用できない文字(\/:*?"<>|)が明細名に含まれる場合、その文字は削除されます

明細データは、Ruleditorの読み取り定義で指定した設定が、下記のルールに従ってまとめられます。

 ファイル:明細名
 行   :レコード
 列   :項目名

  • 出力イメージ:

ヘッダ項目の出力 ( [入力ファイル名].csv)

"Image","Image_jshfilename","modifyDate","processDate","result","form_id"," primarykey"," claim_total", "sample1_1.jpg","C: \Result\20200325_175513_547\ sample1_1.jpg ","2020-02-06T16:28:52","2020-03-25T17:55:13","true","Invoice","-1","2110000"

 ※固定で"Image","Image_jshfilename","modifyDate","processDate","result","form_id"が出力されます。これらの項目については、6.1. 共通を参照してください。

明細項目の出力 ([入力ファイル名]_[明細名].csv

"item_num","item_name","item_quantity","item_unitprice","item_amount"
"10845","パソコンデスク","14","59800","837200"
"22563","キーボード","14","14800","207200"
"00562","事務机","8","36800","294400"
"41523","キャビネット","10","59800","598000"
"20783","シュレッダ ー","2","19800","39600"
"30856","カラープリンター","2","89000","178000"
5.5.11.2. CSV(独自形式)

6.2. CSVを参照ください。

5.6. ルール定義ファイル

5.6.1. 文書種別定義

帳票の種類を定義します。
タブ区切りで記載します。

  • ファイル名:AIRead_proflst.ini
No.項目名書式説明
1文書種別ID文字列 (半角英数)文書種別ごとに帳票の識別ID、フォーマット定義ファイルのフォルダ名を設定
2キーワード文字列帳票を識別するためのキーワード
セミコロン(;)で区切るとOR条件、カンマ(,)で区切るとAND条件でキーワードを検索して識別
  • 帳票定義ファイルイメージ:
documentType    documentKeyWord
Invoice 請求
Invoice2    請求,西新宿株式会社
  • 制限事項:

・1システムに作成できる文書種別数は1000
・文書種別IDの文字数:100バイト以内
・文書種別IDに使用できる文字:半角英数字、-(ハイフン)_(アンダースコア),(カンマ).(ピリオド)#(シャープ)&(アンパサンド) (スペース)
・文書種別IDの両端のスペースはトリミングされる

5.6.2. メタデータ定義

メタデータとは、「インボイス番号」「数量」「価格」など、抽出対象となるものを指します。項目名と値に分けられ、「インボイス番号」等が項目名、「2014-001」などが値の例となります。
1つの項目に対し値が1つのものと、表形式など1つの項目に対し複数の値がある場合があります。

指定可能なメタデータの設定とその説明を以下に示します。
タブ区切りで記載します。

  • ファイル名:IDE_metadata_setting.ini

ファイルの場所:<AIREAD_HOME>/AIRead_conf_kw /documentType名/IDE_metadata_setting.ini

No.項目名内容指定可能な値備考
1type値によって固定値の出力かデータ抽出となる1,2・ 1の場合:固定の出力
・ 2の場合:OCR結果 よりデータを抽出
2itemName項目名を指定する文字列使用できる文字
半角英数、-(ハイフン)、_(アンダーバー)
3extractKeyWord抽出キーワードを指定する文字列セミコロン(;)で区切ることで1つの項目に複数の抽出キーワードを割り当てることが可能(*1)
4
5
MARGIN_RIGHT
MARGIN_LEFT
該当メタデータの抽出キーワード文字列の領域を、マージン分拡張したものと仮定して処理する整数単位はピクセル
(pdfを変換する場合は300dpiを推奨)
6LB該当メタデータをレコード区切りとして使用するTRUETRUE以外を指定した場合無効
(指定なしと同じ)
7DIR該当メタデータの値探索方向を指定(限定)するR(右方向)
L(左方向)
U(上方向)
D(下方向)
RD(右+下方向)
 
8LMAX該当メタデータで、抽出する値の個数を制限する0以上の整数 
9REQUIRED該当メタデータを必須列とします。値が入っていない場合、そのレコードは抽出対象外となるTRUETRUE以外を指定した場合無効
(指定なしと同じ)
10NODELIMITER該当メタデータは、項目文字列と値文字列の間にデリミタがないものとして扱うTRUETRUE以外を指定した場合無効
(指定なしと同じ)
デリミタは抽出パラメータ
IV_SYMBOL_REGEX_ID
11GETITEMFROM
STRING
文字列中に項目文字列が部分一致した場合、そこで文字列を分割して処理するTRUETRUE以外を指定した場合無効
(指定なしと同じ)
12POSITION指定された座標位置に、キーワードが存在するとみなして処理する整数を4つカンマで区切って設定(*2)座標は左下原点、単位はピクセルで指定する(pdfを変換する場合は300dpiを推奨)
13POSITIONTOEXTRACT指定された座標位置の値を抽出する整数を4つカンマで区切って設定(*2)座標は左下原点、単位はピクセル値で指定する
(pdfを変換する場合は300dpiを推奨)
14TABLE_NAMEタグをグルーピングする文字列 
15REGEX正規表現をメタデータに割り当てて、抽出した値をバリデーションする文字列シングルコーテーションで閉じる
16DATATYPE値のデータ型(数字、通貨、日付等)を定義する データタイプの指定については後述
17DATATYPE_VALUE「DATATYPE」SUB_KEYWORD_DIR / SUB_KEYWORD_NEAR を使用する場合の抽出条件を定義する 定義方法についてはXXX 参照
18is_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のデフォルト値
1R(右方向)、L(左方向)、 U(上方向)1
2D(下方向)0
3RD(右+下方向)または指定なし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 は使用するデータタイプに指定不可

5.6.3. 抽出パラメータ設定

指定可能な抽出パラメータとその説明を以下に示します。
“項目名=値”の書式で記載します。

  • ファイル名:IDE_setting.ini
  • ファイルの場所:<AIREAD_HOME>/AIRead_conf_kw /documentType名/IDE_setting.ini
No.項目名内容デフォルト値
1USER_DEFINED_H_LINES指定したY座標(72DPI、左下原点)位置に水平罫線を追加する(結果、指定したY座標にYグリッドが作成される)-
2RATIO_TO_IGNORE_H_LINE短い水平罫線を無視するかどうかの閾値。ページ幅に対する割合(N倍)で指定0
3DIVIDE_STRING_BY_BOX文字列が罫線に囲まれている場合に、異なる矩形に属する文字は連結対象から外すかどうかのパラメータ
(1:有効、0:無効)
1
4LINE_SEG_SPACE_RATE接する2つの文字を1つの文字列として扱うかどうかの閾値。文字間の文字行の高さに対する比率で指定する1.5
5SET_MARGIN_BY_BOX1つの矩形にアイテムが1つだけある場合に、そのアイテムのマージンを自動生成するかどうかを設定する
(1:有効、0:無効)
1
6ONE_ITEM_IN_BOX1つの矩形に1つだけ文字列がある場合に、完全一致(編集距離での許容は有効)する時のみ項目文字列として扱うかどうかを設定する
(1:有効、0:無効)
1
7DP_COST_MAX辞書照合判定の必要条件(絶対値):編集距離(*1)がこの値以下である場合は辞書に照合したとみなす1
8DP_COST_RATE辞書照合判定の必要条件(相対値):許容する編集距離を照合対象の辞書単語と、抽出文字列のいずれか短い方に対する割合で指定5
9MIN_UPPER_SPACE_HEIGHT_TO_LINK項目文字列と値文字列間で、リンク設定を行うかどうかの高さの差の閾値(絶対値)
項目文字列に対し値文字列が上方向にある場合に適用される(DIR=U の場合)
文字高さの平均×2倍
10MIN_LOWER_SPACE_HEIGHT_TO_LINK項目文字列と値文字列間で、リンク設定を行うかどうかの高さの差の閾値(絶対値)
項目文字列に対し値文字列が下方向にある場合に適用される。(DIR=D の場合)
文字高さの平均×5倍
11TABLE_ITEM_NUM_TO_IGNORE_WORDS複数列にまたがる値文字列を無視するかどうかの閾値 2以上の場合有効となる
(0,1の場合は、複数列にまたがる値でも無視されない)
0
12MAX_YGRID_GAP_TO_LINK項目文字列と値文字列の縦方向のリンクを設定する場合に、許容するYグリッドの差分の閾値
1(デフォルト)を指定した場合、Yグリッドが隣り合う項目文字列と値文字列のみがリンクされる
1
13RECORD_SEG_NODE_COUNTレコード分割を行う値文字列数の閾値
この数以上の値文字列が水平に並んだ場合、レコードの分割を行う
3
14USE_LINE_NUM_OF_FIRST_LINK項目文字列と値文字列のリンクを設定する場合に、間の罫線の本数を接続条件とするかどうかを設定する
(1:有効、0:無効)
1
15IV_SYMBOL_REGEX_ID同一文字行内に、項目文字列と値文字列が共存していると判定する場合の、項目-値の区切り文字の正現ID
(複数指定は不可)
(?:[: ])+
16USE_HORIZONTAL_LINE_AS_LINE_BREAK水平の罫線をレコード区切りとして利用するかどうかのパラメータ
(1:有効、0:無効)
1
17LOGICAL_OPERATOR_FOR_REQUIRED_METADATA複数のメタデータにREQUIREDを定義した場合に適用される条件を設定する
(1:AND条件、2:OR条件)
1
(AND)
18LINE_RECOGNITION(テキスト付きPDFのみ)
メタデータ抽出時、イメージから罫線情報を抽出してPDFに埋め込むかどうかのパラメータ
(1:有効、0:無効)
0
19REMOVE_EXIST_LINE(テキスト付きPDFのみ)
上記LINE_RECOGNITIONパラメータ使用時、既に埋め込まれている罫線の情報を削除するかどうかのパラメータ
(1:有効、0:無効)
0
20DEFAULT_ERADATE_YMD型で、年号が指定されておらず、かつ年が2桁の場合に設定する年号を指定する
R(*):令和、H(*):平成、S(*):昭和、T(*):大正、M(*):明治のいずれかで指定
(*)半角または全角での指定が可能
-
21USE_LINE_DELIMITER_FOR_HORIZONTAL_CONCAT横方向に連結する時は区切り文字を半角スペース固定としているが、行の連結に使用する区切り文字を横方向の連結にも使用できるようにするパラメータを追加する
対象は以下のデータ
STRING
0: 区切り文字としてスペースを使用する
1: レコードの連結に使用する区切り文字を使用する
0
22IGNORE_CHAR_IN_KEYWORD抽出キーワード検索時に対象外する文字を設定する-
23IGNORED_KEYWORD抽出キーワードの検索時、及び値の抽出時に対象外とする文字列を設定する
半角スペースで文字列を区切ることで複数登録可能
-
24NO_ADD_SPACE入力文書に含まれる文字の文字間隔が一定の間隔である場合、通常は、文字の間に半角空白を埋め込むが、半角空白の埋め込みを抑止したい場合にこのパラメータを指定する
0を指定すると、半角空白の埋め込みが行われない
デフォルトは、「指定なし」で、文字間隔が一定の間隔である場合は、半角空白を埋め込む
-
25CH_GRPH_SPACE_RATE_HORIZONTAL抽出キーワードに指定された文字列の判定において、各文字間隔の許容値を指定する 指定値は文字の高さに対する倍率で指定する
5.0の場合、文字の高さ×5.0の距離まで許容する
5.0
26MARGIN_BY_BOX_EXTSET_MARGIN_BY_BOXを有効にした場合、矩形内にキーワードのみある時にマージンが設定される
本指定を1にする事で、矩形内に他のキーワードでない他の文字があってもマージンを有効とする
0:矩形内にキーワードのみの時に有効
1:矩形内にキーワードが一つのみの時に有効
0
27KEYWORD_RANGE_CHECKキーワード抽出のキーワード(マージン含む)と重なっている文字列を抽出対象とするか指定する
0:キーワードと重なる文字列も抽出する
1:キーワードと重なる文字列は抽出しない
0
28REMOVE_SPACE_FOR_REGEX_MATCHメタデータで適用正規表現と一致する文字列を検索する際に半角空白を無視するか指定する
0:半角空白を無視しない
1:半角空白を無視する
0
29KEYWORD_REG_EXT抽出キーワードの正規表現一致時に正規表現で指定した記憶範囲による項目の置換を適用するか指定する
0:置換を適用しない
1:置換を適用する
0
30KEYWORD_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:元の文字列がデータタイプに一致しなかった場合に、前後の文字を削除した上でデータタイプに一致するか再判定します。

5.6.4. データタイプの指定

メタデータ毎に値のデータ型(数字、通貨、日付等)を定義することができ、このデータ型をデータタイプと呼びます。メタデータ抽出時には、データ型に合致しているかどうかのバリデーションおよび抽出結果の整形を行います。
ただし、同じメタデータに正規表現が定義されている場合、正規表現に合致するかどうかのチェックが先に行われ、合致している場合はデータタイプによる整形処理の対象となりますが、合致していない場合は下記の整形処理の対象から外れます。
また、データ型に合致しているかどうかのバリデーションと、抽出結果の整形は独立して実施します(データ型に合致しなくても、抽出結果が整形されることもあります)。

定義できるデータタイプの種類と、各データタイプの仕様を以下に示します。

No.データタイプ名説明出力フォーマット(*1)
1STRING (文字列)デフォルトのデータタイプ
バリデーションを実施せず、抽出したそのものを値として扱う
-
2STRING_FIRST_LINE (単一行文字列)値が複数行の場合、1行目だけを抽出する文字列のうち、1行目
3STRING_FIRST_WORD
(単語)
1行目の1語目だけを抽出する文字列のうち、1行目の1語目
4NUMBER
(数値)
整数と小数-{0,1}[0-9]+(\.[0-9]+)*
5DOLLAR
(ドル)
米ドル、カナダドルなど、小数点付きの通貨-{0,1}[0-9]+\.[0-9]{2} (*3)
6DATE_YMD
(日付_年月日)
日付(年、月、日)yyyy-mm-dd
7DATE_MDY
(日付_月日年)
日付(月、日、年)yyyy-mm-dd
8DATE_DMY
(日付_日月年)
日付(日、月、年)yyyy-mm-dd
9PAGE
(ページ)
ページ番号pn/pc pn (ページ総数が取得できなかった場合)(*2)
10STRING_FIRST_LINE
_FIXED_COLUMN
固定桁数の文字列を抽出する抽出文字列(必要に応じ空白を追加)
11ALIAS他のメタデータを複製する他のメタデータの値
12STRING_SINGLE_LINE文字列中の指定行を抽出する文字列の内、指定された行
13YEN(円)円(整数表記する通貨)-{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.想定フォーマット合致する例
1y/m/d2015/1/16
2y-m-d15-1-16
3y m d2015 1 16
4y.m.d2015.1.16
5g/m/dH27/1/16
6g-m-dH27-1-16
7g m dH27 1 16
8g.m.dH27.1.16
9g年m月d日平成27年1月16日

なおy,m,dは日付(DATE)型で共通で、javaのYear、Month、Numberフォーマットの仕様にそれぞれ準拠します。

 (7) DATE_MDY

日付で、月、日、年の順のものを表します。
抽出した値が、想定フォーマットに合致するかどうかバリデーションを行い、合致する場合出力フォーマット(yyyy-mm-dd)に変換して出力します。合致しない場合、またフォーマットは正しいが日付として無効な場合(2/31/2015など)は、日付として有効になるよう変換を試みます(ただしできない場合は、変換を行いません)。

No.想定フォーマット合致する例
1m/d/y2/21/2015
2m-d-y02-21-15
3m d yFebruary 21 2015
4m.d.yFeb.21.2015
5m d,yFebruary 21,2015

 (8) DATE_DMY

日付で、日、月、年の順のものを表します。
抽出した値が、想定フォーマットに合致するかどうかバリデーションを行い、合致する場合出力フォーマット(yyyy-mm-dd)に変換して出力します。合致しない場合、またフォーマットは正しいが日付として無効な場合(31/2/2015など)は、日付として有効になるよう変換を試みます(ただしできない場合は、変換を行いません)。

No.想定フォーマット合致する例
1d/m/y31/03/2015
2d-m-y31-Mar-2015
3d m y31 March 15
4d.m.y31.3.2015
5d.m y31.March 2015

(9) PAGE

ページ番号(pn)とページ総数(pc、ある場合)を表します。
抽出した値が、想定フォーマットに合致するかどうかバリデーションを行い、合致する場合出力フォーマット(pn/pc)に変換して出力します。合致しない場合は、フォーマット変換は行いません。

No.想定フォーマット合致する例
1pn/pc1/5
2pn / pc1 / 5
3pn of pc1 of 5
4pn (pc)1 (5)
5pn1
  • 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
31
4I1
5l1
6i1
7B8
8O0
9o0
10@0
11-
12-

(14) SUB_KEYWORD_DIR
(15) SUB_KEYWORD_NEAR

指定したメタデータで「DATATYPE_VALUE」パラメータの指定を行うことができます。
SUB_KEYWORD_DIRを使用する場合、追加の抽出条件を定義することができます。
SUB_KEYWORD_NEARを使用する場合、抽出された文字列 と 抽出された文字列の下1列を抽出し結合します。

5.7. システム設定

“項目名=値”の書式で記載します。

  • ファイル名:<AIREAD_HOME>\IDELibrary\dicset\conf\kme.conf
No.キー名内容指定補足
1JAVA_EXE_PATHJavaコマンドのパス必須絶対パス
2DUMP_ELEM_JAR_PATHDumpElem.jarファイルのパス任意(*)絶対パス
3DUMP_ELEM_PY_PATHDumpElem.pyファイルのパス任意(*)絶対パス
4MKDARTS_ITEM_COMMAND_PATHmkdarts-itemファイルのパス必須絶対パス
5TIMEOUT_DEFAULT抽出処理メソッドのタイムアウトデフォルト値(単位:ミリ秒)
600000(10分)以下の数値を指定する
任意設定なしの場合、5000 (5秒)
6DELETE_TEMPFILE_DURING_INIT中間ファイルを削除するかどうかのパラメータ
true(削除する)かfalse(削除しない)で指定
任意設定なしの場合、true(削除する)
7KEYWORD_SPACE_DEL文書種別判定を行う際、文書内の文字列に含まれる半角空白・全角空白を無視するかどうかを指定
trueを指定すると無視し、falseを指定すると無視する
任意設定なしの場合、false
8KEYWORD_REG_USE文書種別判定を行うためのキーワードセットに指定した文字列を正規表現として解釈するようにするかどうかを指定
trueを指定すると正規表現として解釈し、falseを指定すると文字列として解釈する
任意設定なしの場合、false
9KEYWORD_CR_DEL文書種別判定を行う際、文書内の文字列に含まれる改行コードを無視するかどうかを指定する
trueを指定すると無視し、falseを指定すると無視しない
任意設定なしの場合、false