3. 帳票定義
3.1. 帳票定義フォルダの構成
帳票定義フォルダは以下の構成にする必要があります。
- 読み取り位置(座標)指定の場合
AIRead_conf/ -----------(フォーマット定義フォルダ)
└[帳票識別ID]/
├AIRead_format.ini ----------- フォーマット定義ファイル
├AIRead_setting.ini ----------- 個別設定ファイル
└(template.png) ----------- テンプレート画像※
※テンプレート画像はチェックマークの読み取りをする場合に必要です
- キーワード指定の場合
AIRead_conf_kw/ ----------- (フォーマット定義フォルダ)
└[帳票識別ID]/
├IDE_metadata_setting.ini ----------- メタデータ定義ファイル
├IDE_setting.ini ----------- 抽出パラメータ設定ファイル
└AIRead_setting.ini ----------- 個別設定ファイル
3.2. AIRead FormEditorで設定
以下のプログラムを起動することで、AIRead FormEditor(以下FormEditor)でフォーマット定義ファイルを編集できます。
<AIReadOnCloudインストールフォルダ>/FormEditor/AIReadFormEditor.exe
3.2.1. グループの作成・選択
3.2.1.1. グループを作成する
グループを作成 を選択するとダイアログが表示されます。
ダイアログ上でフォーマット定義を保存するフォルダ名を指定し、任意の名称でグループを作成します。

3.2.1.2. グループを選択する
グループを開く を選択すると、フォルダ選択のダイアログが開かれます。
ダイアログから、作成済みのフォーマット定義を保存するフォルダを選択してください。

3.2.2. フォーマット定義の追加
フォームを追加 を選択すると、ダイアログが表示されます。
ダイアログ上で、任意のフォーマット定義名(フォーム名)の指定と定義のテンプレート(下地)とする画像の登録を行います。

| No. | 項目名 | 説明 |
| 1 | フォーム名 | 追加するフォーマット定義名 |
| 2 | 登録画像 | フォーマット定義で使用するテンプレート画像 |
3.2.3. フォーマット定義の自動作成
フォームの追加時に選択した画像のフォーマット定義を自動作成することができます。
フォーマット定義の自動作成を行う場合は、定義自動作成 にチェックを入れます。
3.2.3.1. 定義自動作成


| No. | 項目名 | 説明 |
| 1 | フォーム名 | 追加するフォーマット定義名 |
| 2 | 登録画像(記入例) | フォーマット定義で使用するテンプレート画像 記入済みの画像を指定する |
| 3 | テンプレート画像(未記入例) | 定義自動作成で使用する画像 未記入の画像を指定する |
| 4 | 作成ルール | 定義自動作成時に使用する作成ルールを指定する 指定可能な作成ルールは下記3パターンから選択 -テンプレート画像内の全ての矩形を検知し、項目として定義する -テンプレート画像内から、登録画像が空白の項目を除く矩形を検知し、項目として定義する -テンプレート画像と登録画像で差分のある矩形、および空白の矩形を検知し、項目として定義す る |
| 5 | ずれ修正(px) | ずれ修正を行える大きさを指定する値 値はピクセルで指定 定義自動作成時に登録画像と補正画像を比較して、ずれ修正を行う ずれ修正は上下左右で一番差のすくないところに修正を行う |
| 6 | 空白項目判定閾値 | 記載済みの項目か空白項目かを判定するための閾値 指定した値が、黒ピクセルの総数を項目自体(セル)の面積で割った割合を超えていれば、記入済み項目として判定する 記入済み判定:空白項目判定閾値 ≧ 黒ピクセルの総数 / セルの面積 空白判定:空白項目判定閾値 ≦ 黒ピクセルの総数 / セルの面積 |
3.2.3.2. 画像内の全ての矩形を検知して、項目として自動定義する場合


画像上の青枠で表示された項目を読み取り項目として、自動定義されます。
3.2.3.3. 画像内の空白項目を除いて、項目を自動定義する場合


画像上の青枠で表示された項目を読み取り項目として、自動定義されます。
3.2.3.4. テンプレート画像と登録画像で差分のある矩形、および空白の矩形を検知して項目を自動定義する場合


画像上の青枠で表示された項目を読み取り項目として、自動定義されます。
3.2.4. フォーマット定義の操作
3.2.4.1. フォーマット定義を選択する
フォーマット定義名を選択すると、定義済みの設定を確認・編集できます。

3.2.4.2. フォーマット定義をコピーする
任意のフォーマット定義名上でマウスを右クリックするとメニューが表示されます。

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

新たに任意のフォーマット定義名を入力し コピー を押下すると、フォーマット定義が複製されます。

3.2.4.3. フォーマット定義を保存する
保存 を押下すると、編集済みのフォーマット定義が保存されます。
3.2.5. 共通設定ファイルの指定
AIReadの実行、個別読取結果変換リストの紐づけ、個別設定時に使用する共通設定ファイルを指定します。
「共通設定」ボタンを押すと、ファイル選択ダイアログを表示します。
「参照」ボタンから使用する共通設定ファイルを選択します。

3.2.6. フォーマットの定義方法
3.2.6.1. 位置合せの定義
解像度等の違いにより、テンプレート画像をもとに設定したフォーマット定義と実際の画像でおきる位置ずれを補正します。
帳票内の矩形やタイミングマークを自動認識し、画像を拡大・縮小、位置合わせ後に読み取りを行います。

| No. | 項目名 | 説明 |
| 1 | 位置合せ | 位置合せ指定画面を表示する |
| 2 | 位置合せ方法 | (1) 位置合わせなし 位置合わせを行わない (2) 特徴点で位置合わせ 画像の特徴(矩形、文字、ロゴなど)を基準として位置を合わせる (3) 大きな矩形で位置を合わせる 画像に含まれる一番大きな矩形を認識し位置合わせの基準として設定する 設定手順: (ア) 認識 ボタンを押下する (イ) 位置合わせの基準となる最大矩形が検知される(数秒かかる) (4) 外接矩形を自動検知し位置を合わせる 画像内の外側にある文字や罫線から矩形を認識し位置合わせの基準として設定する (ア) 認識 ボタンを押下する (イ) 外接矩形に合わせて位置合わせの基準が検知される(数秒かかる) (5) 四隅のタイミングマークで位置を合わせる (ア) 認識 ボタンを押下する (イ) タイミングマークに合わせて位置合わせの基準が検知される(数秒かかる) (6) (旧)大きな矩形で位置を合わせる 画像に含まれる一番大きな矩形を認識し位置合わせの基準として設定する (Ver. 4.1.0 以前のエンジン) 設定手順: (ア) 認識 ボタンを押下する (イ) 位置合わせの基準となる最大矩形が検知される(数秒かかる) (7) (旧)外接矩形を自動検知し位置を合わせる 画像内の外側にある文字や罫線から矩形を認識し位置合わせの基準として設定する (Ver. 4.1.0 以前のエンジン) (ア) 認識 ボタンを押下する (イ) 外接矩形に合わせて位置合わせの基準が検知される(数秒かかる) |
(3) 大きな矩形で位置を合わせる

(4) 外接矩形を自動検知し位置を合わせる

(5) 四隅のタイミングマークで位置を合わせる

(6) (旧)大きな矩形で位置を合わせる
基本的な動作は「(2) 大きな矩形で位置を合わせる」と同じです。

(7) (旧)外接矩形を自動検知し位置を合わせる
基本的な動作は「(3) (旧)外接矩形を自動検知し位置を合わせる」と同じです。

位置合わせを行う際には、共通設定ファイルが必要となります。
「共通設定ファイル」ボタンで指定した共通設定ファイルが存在しないと、「認識」ボタンは押下できません。

3.2.6.2. 読み取り範囲の設定
帳票上の読み取り範囲、読み取り方法、項目名を設定します。

| No. | 項目名 | 説明 |
| 1 | モード切替 | 「選択モード」と「作成モード」を切り替える ・作成:読取範囲を新規で作成する ・選択:設定済みの項目を選択して修正する |
| 2 | 元に戻す・やり直し | 操作を1つ戻す(やり直す) |
| 3 | 下にコピー・右にコピー | 選択中の項目を下(右)にコピーする 項目名、テーブルID、レコードIDの末尾が半角数字の場合は1加算される(オートフィル) |
| 4 | 画像変更 | テンプレート画像を変更する |
| 5 | 個別設定の呼出 | 開いているフォーマット定義専用の個別設定画面を起動する 3.7. 個別設定を参照 |
| 6 | 左・右に90度回転 | 表示中の画像を左(右)に90度回転する |
| 7 | 項目名 | 読み取り結果ファイルに出力する項目名 設定された順番にCSVファイルに出力される |
| 8 | モデル | 「活字」、「手書き」、「チェックマーク」、「丸囲み」、「バーコード」、「画像抽出」のいずれかを表示 「手書き」の場合は指定した言語も表示される |
| 9 | テーブル | 表など同一テーブルとして扱いたいときに指定するテーブル名 |
| 10 | レコード | 表などで同一行として扱いたいときに指定するレコードID |
| 11 | 移動・削除 | 選択中の項目を上下に移動・削除する |
| 12 | 編集 | 選択中の作成済みの読み取り範囲の設定画面を開く 読み取り範囲を複数選択している場合は、一括変更が可能 |
一括変更時の設定は、変更しない からチェックを外すことで編集が可能になります。

3.2.7. 読取定義の設定
「作成モード」で読み取り範囲を指定した場合、および読取項目をダブルクリックしたときに開きます。
3.2.7.1. 読み取り方法が座標指定


| No. | 項目名 | 説明 |
| 1 | 項目名 | 読み取り結果ファイルに出力する項目名 設定された順番にCSVファイルに出力される |
| 2 | テーブル | 表など同一テーブルとして扱いたいときに指定するテーブル名 |
| 3 | レコード | 表などで同一行として扱いたいときに指定するレコードID |
| 4 | 読み取り方法 | 「座標指定」を選択する |
| 5 | 使用するモデル | 「活字」または「手書き」を選択する 「手書き」の場合は「言語」、「文字数」または「行数」の指定が可能 |
| 6 | 言語 | 使用するモデルが「手書き」のときに指定が可能 読み取り範囲で使用する手書き学習モデルを指定する 【言語一覧】 ・日本語 :数字、ローマ字、記号、カタカナ、ひらがな、常用漢字を学習したモデル ・名前 :カタカナ、ひらがな、人名漢字、常用漢字の一部を学習したモデル ・住所 :数字、ローマ字、カタカナ、ひらがな、住所漢字を学習したモデル ・カタカナ:カタカナを学習したモデル ・英語 :数字、ローマ字、記号を学習したモデル ・数字 :数字を学習したモデル ・通貨 :数字、記号($、¥、マイナス、カンマ、ピリオド)を学習したモデル ・数値・電話番号:数字、記号(マイナス、カンマ、括弧、括弧閉じ)を学習したモデル 設定なしの場合は共通設定の「手書き用OCRモデル」で設定したモデルを使用する |
| 7 | 個別読取結果変換 | AIRead ControlPanel で作成した個別読取結果変換リストと読み取り項目を紐づける ※個別読取結果変換の設定方法は、3.6. 後処理設定に記載 |
| 8-1 | 文字数 | 使用するモデルが「手書き」のときに指定が可能 読み取り範囲の文字数が「複数」か「1文字」かを指定する 言語項目が「日本語」「名前」「カタカナ」「英語」「数字」「数値・電話番号」の場合は複数文字に固定される |
| 8-2 | 行数 | 使用するモデルが「手書き」のときに指定が可能 読み取り範囲の文字数が「1行」か「複数行」かを指定する 言語項目が「日本語」「名前」「カタカナ」「英語」「数字」「数値・電話番号」の場合のみ指定が可能 |
| 8-3 | 行判定の閾値 | 行を分割するための横方向の画素数の平均値(0~255、初期値 248) |
| 9 | 区切り線の数 | 読み取り範囲内にある桁や文字の区切り線(点線)を除去するための本数を指定する 指定された数分の罫線除去を行う(区切り線が等間隔に並んでいる前提) ※「手書き」で「文字数」が「1文字」の場合は指定できない |
| 10-1 | ずれ修正 | ずれ修正を「する」、「しない」を指定する |
| 10-2 | 基準 | ずれ修正の基準を「セル」か「文字列」から選択する ・セル :読み取り範囲に最も近いセル(矩形)に読み取り位置を修正する ・文字列:読み取り範囲と重なる文字列を対象に読み取り位置を修正する |
| 11 | 対象 (基準が「セル」の時) | ずれ修正の対象となるセルに合わせる修正方向を「左」、「右」、「上」、「下」で指定する 複数選択した場合は、複数方向に位置修正を行う ※仕様の詳細は、3.3.3.1. ずれ修正(セルに合わせる場合)についてに記載 |
| 12 | 方法 (基準が「文字列」の時) | ずれ修正の対象となる文字列に対して行う修正の方法を「移動」か「拡張」で指定する ※仕様の詳細は、3.3.3.2. ずれ修正(文字列に合わせる場合)についてに記載 |
| 13 | X | 読み取り範囲の左上のX座標(ピクセル) |
| 14 | Y | 読み取り範囲の左上のY座標(ピクセル) |
| 15 | 幅 | 読み取り範囲の幅(ピクセル) |
| 16 | 高さ | 読み取り範囲の高さ(ピクセル) |
| 17 | 決定 | 読取定義の設定を保存しダイアログを閉じる |
| 18 | キャンセル | 読取定義の設定を保存せずダイアログを閉じる |
| 19 | ▲ | 読取定義の設定を保存しひとつ前の読取定義を開く |
| 20 | ▼ | 読取定義の設定を保存しひとつ後の読取定義を開く |
3.2.7.2. 読み取り方法が キーワード
この機能はAIRead Standard、Stand-alone版では使用できません。

| No. | 項目名 | 説明 |
| 1 | 項目名 | 読み取り結果ファイルに出力する項目名 設定された順番にCSVファイルに出力される |
| 2 | テーブル | 表など同一テーブルとして扱いたいときに指定するテーブル名 |
| 3 | レコード | 指定不可 |
| 4 | 読み取り方法 | 「キーワード」を選択する |
| 5 | キーワード | 取得したい値のキーワード文字列を記載する キーワードはセミコロン(;)区切りで複数設定できる ※「正規表現」にチェックを入れると正規表現で記述可能 |
| 6 | 方向 | キーワードに対して取得する値の方向を選択する 「右」「下」「左」「上」「右 or 下」の指定が可能 |
| 7 | 個別読取結果変換 | AIRead ControlPanel で作成した個別読取結果変換リストと読み取り項目を紐づける ※個別読取結果変換の設定方法は、3.6. 後処理設定に記載 |
| 8 | 抽出する値の数 | 抽出する値の数を指定する 0は制限なし |
| 9 | マージンの自動拡張 | 「する」を選択した場合、キーワードのマージンを自動拡張する マージンの範囲と幅・高さが重なっている値を抽出する |
| 10 | マージン拡張 | キーワードのマージンを指定した値だけ拡張する 単位はピクセル 「右」「下」「左」「上」をそれぞれ指定できる マージンの自動拡張が有効の場合でもこちらが優先 |
| 11 | キーワードと値の距離 | キーワードと値の距離 単位はピクセル 指定した値より離れている場合は抽出対象外とする 0の場合は制限なし |
| 12 | 部分一致で検索 | 「する」を選択した場合、文字列中の文字もキーワードとして検索する |
| 13 | 正規表現 | 記載した場合、正規表現にマッチする値のみ抽出する |
| 14 | キーワード検索で許容する文字の距離 | キーワード一致判定で何文字の違いを許容するかの値 ※キーワードの文字数がこの値より少ない場合は無効 |
| 15 | 矩形に囲まれていない文字列の抽出 | 「抽出しない」を選択した場合、矩形に囲まれていない文字列は抽出しない |
| 16 | 明細でこの項目は必須 | 有効の場合、指定した項目に値のないレコードは出力しない |
3.2.7.3. 読み取り方法が 型指定
この機能はAIRead Standard、Stand-alone版では使用できません。

| No. | 項目名 | 説明 |
| 1 | 項目名 | 読み取り結果ファイルに出力する項目名 設定された順番にCSVファイルに出力される |
| 2 | テーブル | 表など同一テーブルとして扱いたいときに指定するテーブル名 |
| 3 | レコード | 表などで同一行として扱いたいときに指定するレコードID |
| 4 | 読み取り方法 | 「型指定」を選択する |
| 5 | 正規表現 | 正規表現にマッチする値のみ抽出する |
| 6 | 個別読取結果変換 | AIRead ControlPanel で作成した個別読取結果変換リストと読み取り項目を紐づける ※個別読取結果変換の設定方法は、3.6. 後処理設定に記載 |
3.2.7.4. 読み取り方法が キーワード座標指定
指定した範囲にキーワードが存在するとみなして抽出します。
この機能はAIRead Standard、Stand-alone版では使用できません。

| No. | 項目名 | 説明 |
| 1 | 項目名 | 読み取り結果ファイルに出力する項目名 設定された順番にCSVファイルに出力される |
| 2 | テーブル | 表など同一テーブルとして扱いたいときに指定するテーブル名 |
| 3 | レコード | 指定不可 |
| 4 | 読み取り方法 | 「キーワード座標指定」を選択する |
| 5 | 方向 | キーワードに対して取得する値の方向を選択する 「右」「下」「左」「上」「右 or 下」の指定が可能 |
| 6 | 個別読取結果変換 | AIRead ControlPanel で作成した個別読取結果変換リストと読み取り項目を紐づける ※個別読取結果変換の設定方法は、3.6. 後処理設定に記載 |
| 7 | X | キーワードとみなす範囲の左上のX座標(ピクセル) |
| 8 | Y | キーワードとみなす範囲の左上のY座標(ピクセル) |
| 9 | 幅 | キーワードとみなす範囲の幅(ピクセル) |
| 10 | 高さ | キーワードとみなす範囲の高さ(ピクセル) |
| 11 | 抽出する値の数 | 抽出する値の数を指定する 0は制限なし |
| 12 | キーワードと値の距離 | キーワードと値の距離 単位はピクセル 指定した値より離れている場合は抽出対象外とする 0の場合は制限なし |
| 13 | 正規表現 | 記載した場合、正規表現にマッチする値のみ抽出する |
| 14 | 明細でこの項目は必須 | 有効の場合、指定した項目に値のないレコードは出力しない |
3.2.7.5. 読み取り方法が チェックマーク


| No. | 項目名 | 説明 |
| 1 | 項目名 | 読み取り結果ファイルに出力する項目名 設定された順番にCSVファイルに出力される |
| 2 | テーブル | 表など同一テーブルとして扱いたいときに指定するテーブル名 |
| 3 | レコード | 表などで同一行として扱いたいときに指定するレコードID |
| 4 | 読み取り方法 | 「チェックマーク」を選択する |
| 5 | 読み取り対象 | 「チェックマーク」または「丸囲み」を選択する 【読み取り対象一覧】 ・チェックマーク:レ点の有無を判定する ・丸囲み:丸囲みや塗りつぶしを判定する テンプレートの画像と読取画像を比較し、読み取り範囲の黒色が「6. 閾値」で指定した割合以上のときにチェックがされたと判定する |
| 6 | 出力方法 | 「標準」もしくは「個別指定」を選択する ・標準:結果を「true」「false」で出力する ・個別指定:結果を入力した任意の値で出力する |
| 7 | 閾値 | テンプレート画像に対する黒領域の割合(パーセント) ※「5. 読み取り対象」が丸囲みの時のみ設定 |
| 8 | X | 読み取り範囲の左上のX座標(ピクセル) |
| 9 | Y | 読み取り範囲の左上のY座標(ピクセル) |
| 10 | 幅 | 読み取り範囲の幅(ピクセル) |
| 11 | 高さ | 読み取り範囲の高さ(ピクセル) |
| 12 | 決定 | 読取定義の設定を保存しダイアログを閉じる |
| 13 | キャンセル | 読取定義の設定を保存せずダイアログを閉じる |
| 14 | ▲ | 読取定義の設定を保存しひとつ前の読取定義を開く |
| 15 | ▼ | 読取定義の設定を保存しひとつ後の読取定義を開く |
3.2.7.6. 「読み取り方法」が バーコード

| No. | 項目 | 説明 |
|---|---|---|
| 1 | 項目名 | 読み取り結果ファイルに出力する項目名 設定された順番にCSVファイルに出力される |
| 2 | テーブル | 表など同一テーブルとして扱いたいときに指定するテーブル名 |
| 3 | レコード | 表などで同一行として扱いたいときに指定するレコードID |
| 4 | 読み取り方法 | 「バーコード」を選択する |
| 5 | 種類 | バーコード形式を選択する ※対応している形式:NW-7、Code128 |
| 6 | X | 読み取り範囲の左上のX座標(ピクセル) |
| 7 | Y | 読み取り範囲の左上のY座標(ピクセル) |
| 8 | 幅 | 読み取り範囲の幅(ピクセル) |
| 9 | 高さ | 読み取り範囲の高さ(ピクセル) |
| 10 | 決定 | 読取定義の設定を保存しダイアログを閉じる |
| 11 | キャンセル | 読取定義の設定を保存せずダイアログを閉じる |
| 12 | ▲ | 読取定義の設定を保存しひとつ前の読取定義を開く |
| 13 | ▼ | 読取定義の設定を保存しひとつ後の読取定義を開く |
3.2.7.7. 「読み取り方法」が QRコード

| No. | 項目 | 説明 |
|---|---|---|
| 1 | 項目名 | 読み取り結果ファイルに出力する項目名 設定された順番にCSVファイルに出力される |
| 2 | テーブル | 表など同一テーブルとして扱いたいときに指定するテーブル名 |
| 3 | レコード | 表などで同一行として扱いたいときに指定するレコードID |
| 4 | 読み取り方法 | 「QRコード」を選択する |
| 5 | QRコードの数 | 読み取り範囲内で認識させたいQRコードの数を指定する |
| 6 | X | 読み取り範囲の左上のX座標(ピクセル) |
| 7 | Y | 読み取り範囲の左上のY座標(ピクセル) |
| 8 | 幅 | 読み取り範囲の幅(ピクセル) |
| 9 | 高さ | 読み取り範囲の高さ(ピクセル) |
| 10 | 決定 | 読取定義の設定を保存しダイアログを閉じる |
| 11 | キャンセル | 読取定義の設定を保存せずダイアログを閉じる |
| 12 | ▲ | 読取定義の設定を保存しひとつ前の読取定義を開く |
| 13 | ▼ | 読取定義の設定を保存しひとつ後の読取定義を開く |
3.2.7.8. 「読み取り方法」が 固定値

| No. | 項目 | 説明 |
|---|---|---|
| 1 | 項目名 | 読み取り結果ファイルに出力する項目名 |
| 2 | テーブル | 表など同一テーブルとして扱いたいときに指定するテーブル名 |
| 3 | レコード | 表などで同一行として扱いたいときに指定するレコードID |
| 4 | 読み取り方法 | 「固定値」を選択する |
| 5 | 固定値 | 出力させたい値を直接入力する ※固定値が空でも保存可能 |
| 6 | 決定 | 読取定義の設定を保存しダイアログを閉じる |
| 7 | キャンセル | 読取定義の設定を保存せずダイアログを閉じる |
| 8 | ▲ | 読取定義の設定を保存しひとつ前の読取定義を開く |
| 9 | ▼ | 読取定義の設定を保存しひとつ後の読取定義を開く |
3.2.7.9. 使用できない項目名
以下は予約語のため、項目名には使用できません。
Image
Image_jshfilename
modifyDate
processDate
result
original
original_jshfilename
form_id
Image_for_display
group_name
3.3. フォーマット定義ファイル
帳票の位置を合わせるための情報、出力ファイルに記載する情報、OCRで読み取る位置の情報はフォーマット定義ファイルで設定します。
ファイルはタブ区切りで記載します。
1列目のセクションIDの値によって、2列目以降の記載方法が異なります。
| 項目名 | 書式 | 説明 |
|---|---|---|
| セクションID | 0 | 位置合わせ情報 |
| 1 | 出力情報(固定値) | |
| 2 | 座標指定OCR情報 | |
| 3 | チェックマーク情報(画像差分で判定) | |
| 4 | チェックマーク情報(✔の形で判定) | |
| 5 | 画像抽出 | |
| 6 | バーコード | |
| 7 | キーワード、型指定、キーワード座標指定 |
※位置合わせ情報は省略可です。省略した場合、絶対座標で抽出します。
- ファイル名:AIRead_format.ini
- フォーマット定義ファイルイメージ:
ずれ修正なしの場合
| 0 3307 4676 300 1745 2645 1745 300 4295 1 0 id order 2 0 307 688 510 170 0 0 tok_cd 2 0 307 951 1450 170 0 0 Tel 2 0 307 1207 200 170 0 0 Month 2 0 620 1207 200 170 0 0 Day 2 0 938 1207 85 170 0 0 haikb 2 0 1350 1207 85 170 0 0 timekb 2 0 detail 0 407 1745 627 170 1 0 Itemcd0 2 0 detail 0 2015 1745 623 170 1:number 0 Amount0 2 0 detail 0 2687 1745 314 170 1 0 Wrapping0 2 0 detail 1 407 1915 627 170 1 0 Itemcd1 2 0 detail 1 2015 1915 623 170 1:number 0 Amount1 2 0 detail 1 2687 1915 314 170 1 0 Wrapping1 2 0 detail 2 407 2085 627 170 1 0 Itemcd2 2 0 detail 2 2015 2085 623 170 1:number 0 Amount2 2 0 detail 2 2687 2085 314 170 1 0 Wrapping2 2 0 detail 3 407 2255 627 170 1 0 Itemcd3 2 0 detail 3 2015 2255 623 170 1:number 0 Amount3 2 0 detail 3 2687 2255 314 170 1 0 Wrapping3 2 0 detail 4 407 2425 627 170 1 0 Itemcd4 2 0 detail 4 2015 2425 623 170 1:number 0 Amount4 2 0 detail 4 2687 2425 314 170 1 0 Wrapping4 2 0 detail 5 407 2595 627 170 1 0 Itemcd5 2 0 detail 5 2015 2595 623 170 1:number 0 Amount5 2 0 detail 5 2687 2595 314 170 1 0 Wrapping5 |
ずれ修正ありの場合
| 1 -1 id order 2 -1 307 688 510 170 0 0 tok_cd 0 1 1 1 1 0 2 -1 307 951 1450 170 0 0 Tel 0 1 1 1 1 1 2 -1 307 1207 200 170 0 0 Month 2 -1 620 1207 200 170 0 0 Day 2 -1 938 1207 85 170 0 0 haikb 2 -1 1350 1207 85 170 0 0 timekb 2 -1 detail 0 407 1745 627 170 1 1 Itemcd 1 1 1 1 1 0 2 -1 detail 0 2015 1745 623 170 1:number 0 Amount 1 1 1 1 1 0 2 -1 detail 0 2687 1745 314 170 1 1 Wrapping 1 1 1 1 1 0 2 -1 detail 1 407 1915 627 170 1 0 Itemcd 1 1 1 1 1 0 2 -1 detail 1 2015 1915 623 170 1:number 0 Amount 1 1 1 1 1 0 2 -1 detail 1 2687 1915 314 170 1 0 Wrapping 1 1 1 1 1 0 2 -1 detail 2 407 2085 627 170 1 0 Itemcd 1 1 1 1 1 0 2 -1 detail 2 2015 2085 623 170 1:number 0 Amount 1 1 1 1 1 0 2 -1 detail 2 2687 2085 314 170 1 0 Wrapping 1 1 1 1 1 0 2 -1 detail 3 407 2255 627 170 1 0 Itemcd 1 1 1 1 1 0 2 -1 detail 3 2015 2255 623 170 1:number 0 Amount 1 1 1 1 1 0 2 -1 detail 3 2687 2255 314 170 1 0 Wrapping 1 1 1 1 1 0 2 -1 detail 4 407 2425 627 170 1 0 Itemcd 1 1 1 1 1 0 2 -1 detail 4 2015 2425 623 170 1:number 0 Amount 1 1 1 1 1 0 2 -1 detail 4 2687 2425 314 170 1 0 Wrapping 1 1 1 1 1 0 2 -1 detail 5 407 2595 627 170 1 0 Itemcd 1 1 1 1 1 0 2 -1 detail 5 2015 2595 623 170 1:number 0 Amount 1 1 1 1 1 0 2 -1 detail 5 2687 2595 314 170 1 0 Wrapping 1 1 1 1 1 0 |
キーワード、型指定、キーワード座標指定がある場合
※キーワード指定はAIRead Standard、Stand-alone版では使用できません。
| 1 -1 company_name 北新宿株式会社 7 -1 0 1 invoice_total 0 0 0 0 0 1 合計;請求金額 RD 0 0 0 7 -1 0 1 invoice_subtotal 0 0 0 0 0 1 小計 R 0 0 0 7 -1 0 1 invoice_number 0 0 0 0 0 1 請求書番号:;請求書No. R 1 1 0 7 -1 2 invoice_date \d{4}[/.年]\d{1,2}[/.月]\d{1,2}日? 7 -1 detail 0 0 item_num 0 0 0 0 0 商品コード;製品番号 D 1 0 0 7 -1 detail 0 0 item_name 0 0 0 0 0 商品名;製品名 D 0 0 1 7 -1 detail 0 0 item_quantity 0 0 0 0 0 1 数量;量 D 0 1 1 7 -1 detail 0 0 item_unitprice 0 0 0 0 0 単価 D 0 0 0 7 -1 detail 0 0 item_amount 0 0 0 0 0 1 金額;金額(税抜) D 0 0 0 7 -1 0 1 bank_name 0 0 0 0 0 金融機関名;銀行名 R 0 0 0 7 -1 0 1 bank_branch 0 0 0 0 0 支店名 R 0 0 0 7 -1 0 1 bank_accttyp 0 0 0 0 0 1 種別;口座種別 R 0 0 0 7 -1 0 1 bank_acctnum 0 0 0 0 0 口座番号 R 1 0 0 7 -1 0 1 payment_date 0 0 0 0 0 1 お支払期日;支払い期日: R 1 1 0 |
3.3.1. 位置合わせ情報
帳票の中で一番大きな矩形を基準に位置を合わせます。
ベースとなる3点(左上・右上・左下)の位置を定義します。
| No. | 項目名 | 書式 | 必須 | 説明 |
|---|---|---|---|---|
| 1 | セクションID | 0 | 必須 | |
| 2 | width | 整数 | 必須 | ベースとなる画像サイズの幅 |
| 3 | height | 整数 | 必須 | ベースとなる画像サイズの高さ |
| 4 | x1 | 整数 | 必須 | ベースとなる矩形の左上の点のx座標 |
| 5 | y1 | 整数 | 必須 | ベースとなる矩形の左上の点のy座標 |
| 6 | x2 | 整数 | 必須 | ベースとなる矩形の右上の点のx座標 |
| 7 | y2 | 整数 | 必須 | ベースとなる矩形の右上の点のy座標 |
| 8 | x3 | 整数 | 必須 | ベースとなる矩形の左下の点のx座標 |
| 9 | y3 | 整数 | 必須 | ベースとなる矩形の左下の点のy座標 |
※位置合わせ情報は省略可です。省略した場合、位置合わせは行われず絶対座標で抽出します。
■位置合わせイメージ
画像内の最大の矩形を検知し、左上・右上・左下の3点を基点に位置を合わせます。

3.3.2. 出力情報(固定値)
| No. | 項目名 | 書式 | 必須 | 説明 |
|---|---|---|---|---|
| 1 | セクションID | 1 | 必須 | |
| 2 | シーケンス番号 | 整数 | (使用しない) | |
| 3 | 項目名 | 文字列 | 必須 | 出力情報に記載する項目名 |
| 4 | 値 | 文字列 | 必須 | 出力する文字列 |
| 5 | テーブルID | 文字列 | テーブルID(明細・表の名前)を指定 アウトプット時に使用 | |
| 6 | レコードID | 整数 | レコードID(明細の行番号)を指定 アウトプット時に使用 |
3.3.3. 出力情報(座標指定)
| No. | 項目名 | 書式 | 必須 | 説明 |
| 1 | セクションID | 2 | 必須 | |
| 2 | シーケンス番号 | 整数 | (使用しない) | |
| 3 | テーブルID | 文字列 | テーブルID(明細・表の名前)を指定 アウトプット時に使用 | |
| 4 | レコードID | 整数 | レコードID(明細の行番号)を指定 アウトプット時に使用 | |
| 5 | x | 整数 | 必須 | 読取範囲の基準となる座標(左上の点)のx座標 |
| 6 | y | 整数 | 必須 | 読取範囲の基点となる座標(左上の点)のy座標 |
| 7 | width | 整数 | 必須 | 読取範囲の幅 |
| 8 | height | 整数 | 必須 | 読取範囲の高さ |
| 9 | type | 0, 1 | 必須 | 0 : 活字 1 : 手書き 手書きはコロン(:)区切りで項目ごとにOCRモデルを指定する 指定がない場合、ControlPanelの手書き用OCRモデルを使用する 指定例)1:number |
| 10 | length | 0以上の整数 | 必須 | typeが 0(活字)の場合 0 : 特別な処理を行わない 2以上 : 指定された数 -1本の区切り罫線を除去する typeが 1(手書き)の場合 0 : 特別な処理を行わない 1 : 指定した範囲の文字を1文字として認識する 2以上 : 指定された数 -1本の区切り罫線を除去する |
| 11 | フィールドID | 文字列 | 必須 | 項目名 |
| 12 | ずれ修正 | 0, 1 | 0:文字列でのずれ修正 1:セルでのずれ修正 | |
| 13 | 修正対象(左) | 0, 1 | ずれ修正が1(セル)の場合のみ有効 0:セルの左辺を基準としたずれ修正をしない 1:セルの左辺を基準としたずれ修正を行う | |
| 14 | 修正対象(右) | 0, 1 | ずれ修正が1(セル)の場合のみ有効 0:セルの上辺を基準としたずれ修正をしない 1:セルの上辺を基準としたずれ修正を行う | |
| 15 | 修正対象(上) | 0, 1 | ずれ修正が1(セル)の場合のみ有効 0:セルの上辺を基準としたずれ修正をしない 1:セルの上辺を基準としたずれ修正を行う | |
| 16 | 修正対象(下) | 0, 1 | ずれ修正が1(セル)の場合のみ有効 0:セルの底辺を基準としたずれ修正をしない 1:セルの底辺を基準としたずれ修正を行う | |
| 17 | 修正方法 | 0, 1 | ずれ修正が0(文字列)の場合のみ有効 0:文字列を基準として読取位置を移動する 1:文字列を基準として読取位置の拡張をする | |
| 18 | 個別読取結果変換リスト | 文字列 | 個別読取結果変換リストを指定する |
※修正対象(右)、修正対象(左)、修正対象(上)、修正対象(下) は併用可能
3.3.3.1. ずれ修正(セルに合わせる場合)について
セルに合わせるずれ修正を行う場合、下記のルールで行われます。
<合わせる対象>
読み取り範囲に対し、以下の 2つの条件を満たすセルが合わせる対象となります。
1. 読取範囲に対し、セルの面積が30%以上重なっていること
2. 条件1.を満たすセルのうち、読み取り範囲に対して重なっている面積が最大であること
<例外>
修正後のセルの高さが元の読み取り範囲の高さの1.2倍を超える場合、ずれ修正は行われません。
※本機能は軽微な位置ずれを補正するための機能であり、過度なずれ修正は行わなれません
<修正対象(左右上下)について>
修正の対象の選択によって、修正結果が下記の例のように変わります。
ずれ修正の修正対象(左、右)が有効の場合

ずれ修正の修正対象(左右上下)が有効の場合

3.3.3.2. ずれ修正(文字列に合わせる場合)について
文字列に合わせるずれ修正を行う場合、下記のルールで行われます。
<合わせる対象>
読み取り範囲に対し、面積が30%以上重なっている文字列が合わせる対象となります。
<修正方法:移動について>
修正方法に「移動」を指定した場合、読み取り範囲(矩形の形)は変更せず合わせる対象の文字列が入るように読み取り位置を移動させます。
※重なっている文字列の範囲より読み取り範囲が小さい場合は修正しません。
ずれ修正の方法が文字列を基準とした移動の場合

<修正方法:拡張について>
修正方法に「拡張」を選択した場合、読み取り範囲に重なる全文字列が包含できるように読み取り範囲を拡張します。
ずれ修正の方法が文字列を基準とした拡張の場合

3.3.4. 出力情報(チェックマーク)
| No. | 項目名 | 書式 | 必須 | 説明 |
| 1 | セクションID | 3 または 4 | 必須 | 3 : テンプレート画像との差分で判定 4 : レ点で判定 |
| 2 | シーケンス番号 | (使用しない) | ||
| 3 | テーブルID | 文字列 | テーブルID(明細・表の名前)を指定 アウトプット時に使用 | |
| 4 | レコードID | 整数 | レコードID(明細の行番号)を指定 アウトプット時に使用 | |
| 5 | x | 整数 | 必須 | 読取範囲の基準となる座標(左上の点)のx座標 |
| 6 | y | 整数 | 必須 | 読取範囲の基点となる座標(左上の点)のy座標 |
| 7 | width | 整数 | 必須 | 読取範囲の幅 |
| 8 | height | 整数 | 必須 | 読取範囲の高さ |
| 9 | type | 0 | 必須 | |
| 10 | length | 0~1000 | 必須 | (セクションID=3のときのみ) テンプレート領域に対する黒領域の割合(%) |
| 11 | フィールドID | 文字列 | 必須 | 項目名 |
3.3.5. 出力情報(バーコード)
| No. | 項目名 | 書式 | 必須 | 説明 |
|---|---|---|---|---|
| 1 | セクションID | 6 | 必須 | |
| 2 | シーケンス番号 | (使用しない) | ||
| 3 | テーブルID | 文字列 | テーブルID(明細・表の名前)を指定 | |
| 4 | レコードID | 整数 | レコードID(明細の行番号)を指定 | |
| 5 | x | 整数 | 必須 | 読取範囲の基準となる座標(左上の点)のx座標 |
| 6 | y | 整数 | 必須 | 読取範囲の基点となる座標(左上の点)のy座標 |
| 7 | width | 整数 | 必須 | 読取範囲の幅 |
| 8 | height | 整数 | 必須 | 読取範囲の高さ |
| 9 | type | 文字列 | バーコードの形式を指定 (未指定の場合 NW7) | |
| 10 | length | (使用しない) | ||
| 11 | ItemName | 文字列 | 必須 | 項目名 |
3.3.6. 出力情報(キーワード)
※キーワード指定はAIRead Standard、Stand-alone版では使用できません。
| No. | 項目名 | 書式 | 必須 | 説明 |
|---|---|---|---|---|
| 1 | セクションID | 7 | 必須 | |
| 2 | シーケンス番号 | (使用しない) | ||
| 3 | テーブルID | 文字列 | テーブルID(明細・表の名前)を指定 | |
| 4 | レコードID | (使用しない) | ||
| 5 | x | (使用しない) | ||
| 6 | y | (使用しない) | ||
| 7 | width | (使用しない) | ||
| 8 | height | (使用しない) | ||
| 9 | type | 0 | 必須 | 0を指定すると「キーワード」 |
| 10 | length | 整数 | 必須 | 抽出する値の数 0は制限なし |
| 11 | 項目名 | 文字列 | 必須 | 項目名 |
| 12 | マージン拡張(左) | 整数 | 指定した値分(ピクセル)、左にマージンを拡張する | |
| 13 | マージン拡張(上) | 整数 | 指定した値分(ピクセル)、上にマージンを拡張する | |
| 14 | マージン拡張(右) | 整数 | 指定した値分(ピクセル)、右にマージンを拡張する | |
| 15 | マージン拡張(下) | 整数 | 指定した値分(ピクセル)、下にマージンを拡張する | |
| 16 | キーワードと値の距離 | 整数 | キーワードと値の距離、指定した値より離れている場合は抽出対象外とする 0の場合は制限なし | |
| 17 | マージンの自動拡張 | 0, 1 | 0:自動拡張なし 1:キーワードが矩形内にあるときキーワードの幅、高さを矩形に自動拡張 | |
| 18 | 個別読取結果変換リスト | 文字列 | 個別読取結果変換リストを指定する | |
| 19 | キーワード | 文字列 | 必須 | 取得したい値のキーワード文字列を記載する キーワードはセミコロン(;)区切りで複数設定できる |
| 20 | 方向 | U, D, L, R, RD | 必須 | U:上、D:下、L:左、R:右、RD:右または下 |
| 21 | 正規表現 | 文字列 | 記載した場合、正規表現にマッチする値のみ抽出する | |
| 22 | 許容する文字の距離 | 整数 | キーワード一致判定で何文字の誤読を許容するかの値 キーワードの文字数がこの値より少ない場合は無効 | |
| 23 | キーワードの部分一致 | 0, 1 | 0:キーワード検索はコンポーネントと完全一致で判定 1:部分一致で判定 | |
| 24 | 明細でこの項目は必須 | 0, 1 | 0:指定した項目に値がなくても出力する 1:指定した項目に値のないレコードは出力しない |
3.3.7. 出力情報(型指定)
※型指定はAIRead Standard、Stand-alone版では使用できません。
| No. | 項目名 | 書式 | 必須 | 説明 |
|---|---|---|---|---|
| 1 | セクションID | 7 | 必須 | |
| 2 | シーケンス番号 | (使用しない) | ||
| 3 | テーブルID | 文字列 | テーブルID(明細・表の名前)を指定 | |
| 4 | レコードID | レコードID(明細の行番号)を指定 | ||
| 5 | x | (使用しない) | ||
| 6 | y | (使用しない) | ||
| 7 | width | (使用しない) | ||
| 8 | height | (使用しない) | ||
| 9 | type | 1 | 必須 | 1を指定すると「型指定」 |
| 10 | length | 整数 | 必須 | 抽出する値の数 0は制限なし |
| 11 | 項目名 | 文字列 | 必須 | 項目名 |
| 12 | マージン拡張(左) | (使用しない) | ||
| 13 | マージン拡張(上) | (使用しない) | ||
| 14 | マージン拡張(右) | (使用しない) | ||
| 15 | マージン拡張(下) | (使用しない) | ||
| 16 | キーワードと値の距離 | (使用しない) | ||
| 17 | マージンの自動拡張 | (使用しない) | ||
| 18 | 個別読取結果変換リスト | 文字列 | 個別読取結果変換リストを指定する | |
| 19 | キーワード | (使用しない) | ||
| 20 | 方向 | (使用しない) | ||
| 21 | 正規表現 | 文字列 | 必須 | 正規表現にマッチする値のみ抽出する |
| 22 | 許容する文字の距離 | (使用しない) | ||
| 23 | キーワードの部分一致 | (使用しない) | ||
| 24 | 明細でこの項目は必須 | (使用しない) |
3.3.8. 出力情報(キーワード座標指定)
※キーワード座標指定はAIRead Standard、Stand-alone版では使用できません。
| No. | 項目名 | 書式 | 必須 | 説明 |
|---|---|---|---|---|
| 1 | セクションID | 7 | 必須 | |
| 2 | シーケンス番号 | (使用しない) | ||
| 3 | テーブルID | 文字列 | テーブルID(明細・表の名前)を指定 | |
| 4 | レコードID | (使用しない) | ||
| 5 | x | 整数 | 必須 | キーワードとみなす範囲の左上のx座標(ピクセル) |
| 6 | y | 整数 | 必須 | キーワードとみなす範囲の左上のy座標(ピクセル) |
| 7 | width | 整数 | 必須 | キーワードとみなす範囲の幅(ピクセル) |
| 8 | height | 整数 | 必須 | キーワードとみなす範囲の高さ(ピクセル) |
| 9 | type | 2 | 必須 | 0を指定すると「キーワード座標指定」 |
| 10 | length | 整数 | 必須 | 抽出する値の数 0は制限なし |
| 11 | 項目名 | 文字列 | 必須 | 項目名 |
| 12 | マージン拡張(左) | (使用しない) | ||
| 13 | マージン拡張(上) | (使用しない) | ||
| 14 | マージン拡張(右) | (使用しない) | ||
| 15 | マージン拡張(下) | (使用しない) | ||
| 16 | キーワードと値の距離 | 整数 | キーワードと値の距離、指定した値より離れている場合は抽出対象外とする 0の場合は制限なし | |
| 17 | マージンの自動拡張 | (使用しない) | ||
| 18 | 個別読取結果変換リスト | 文字列 | 個別読取結果変換リストを指定する | |
| 19 | キーワード | (使用しない) | ||
| 20 | 方向 | U, D, L, R, RD | 必須 | U:上、D:下、L:左、R:右、RD:右または下 |
| 21 | 正規表現 | 文字列 | 記載した場合、正規表現にマッチする値のみ抽出する | |
| 22 | 許容する文字の距離 | (使用しない) | ||
| 23 | キーワードの部分一致 | (使用しない) | ||
| 24 | 明細でこの項目は必須 | 0, 1 | 0:指定した項目に値がなくても出力する 1:指定した項目に値のないレコードは出力しない |
3.4. AIRead RuleEditorで設定
以下のプログラムで、AIRead RuleEditor(以下RuleEditor)を起動することで、ルールを編集することができます。
<AIReadOnCloudインストールフォルダ>/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.4.6. 抽出パラメータ設定 を参照してください。
| 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列を抽出し結合します。
3.6. 後処理設定
読み取り完了後に行う処理全般を設定します。
作成された個別読取結果変換リストと読み取り項目との紐づけは、RuleEditor/FormEditor から行います。

| No. | 項目名 | 説明 |
| 1 | 個別読取結果変換リストの保存先 | 個別読取結果変換設定ファイルの保存先を指定する デフォルトは、<AIREAD_HOME>\IDELibrary\OcrPostProcess |
| 2 | 変換リスト名 | 選択中の個別読取結果変換設定ファイルが表示される 個別読取結果変換設定ファイルを追加する場合は、変換リスト名に入力した名前で追加される |
| 3 | 変換リスト名一覧 | 作成済みの個別読取結果変換設定ファイルの一覧が表示される |
| 4 | 変換設定追加ボタン | 変換リストに入力した名称で個別読取結果変換設定ファイルを追加する 選択中の設定ファイル保存先に、同一の設定名の個別読取結果変換設定ファイルが存在する場合は追加不可 |
| 5 | 変換設定削除ボタン | 選択中の個別読取結果変換設定ファイルを削除する |
| 6 | 変換リスト | 選択中の後個別読取結果変換設定ファイルの設定情報を表示する |
| 7 | 読取後に実行するコマンドライン文字列 | 帳票の読み取り後に実行するコマンドライン文字列を設定する |
3.6.1. 変換リストの設定

| No. | 項目名 | 説明 |
| 1 | 変換対象(正規表現) | 変換対象の文字を指定する 変換対象の文字は正規表現で記載する |
| 2 | 変換後の文字 | 変換対象の文字から変換する文字を指定する 変換後の文字は単語でも指定可能 |
3.7. 個別設定
フォーマット定義ごとに個別でOCR設定の定義を行います。
「個別設定の呼出」ボタン(右上の歯車のアイコン)を押下することで、個別設定用のAIRead ControlPanel 画面が表示されます。
3.2.5. 共通設定ファイルの指定 で指定した共通設定ファイルの各OCR設定を引き継いで呼び出します。
指定した共通設定ファイルが存在しない場合、共通設定ファイル指定ダイアログが表示されます。

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

- 個別設定の保存
設定の編集が完了したら、保存してください。個別設定が反映されます。

- 個別設定画面の終了
保存が完了したら、右上の×ボタンで画面を閉じてください。
3.7.1. 文字認識
文字認識に影響するパラメータを設定します。

| No. | 内容 | 項目名 | 書式 | 説明 |
|---|---|---|---|---|
| 座標指定 | ||||
| 1 | OCR結果にスペースを含める | EXPORT_SPACE | true, false | チェック(true)の時、OCR結果にスペースを含める (活字読み取り時のみ) |
| 2 | 位置合わせ最大矩形の認識マージン | FORMAT_MARGIN | 0以上 | 位置合わせ時に大きな矩形を認識しない画像端(上下左右)からの範囲を指定する 単位はピクセル (デフォルト 15) |
| 3 | 位置合わせ外接矩形の認識マージン | FIX_TEXT_HEIGHT | 0以上 | 位置合わせ時に外接矩形を認識しない画像端(上下左右)からの範囲を指定する 単位はピクセル (デフォルト 100) |
| 4 | 活字のノイズ閾値 | PRINT_NOISE_FILTERS | -1~100 | 活字の認識で、項目中の最大文字高さに対して指定された閾値以下の文字をノイズとして除去する 例) 30 を指定 → 読み取り範囲内の最大文字に対し30%以下の高さの文字をノイズとみなして除去する (デフォルト -1:本機能は動作しない) ※小さい文字や記号がノイズとして削除される可能性有り |
| 5 | 手書きノイズの閾値 (文字の高さ、複数文字指定時) | HW_NOISE_FILTERS | 文字列 | 手書き文字の認識で指定したモデルについて、項目中の最大文字高さに対して任意の割合以下の文字をノイズとして除去する 手書き文字の文字数を「複数」で設定した項目を対象とする [モデル名]:[閾値(%)]の形式で記載する カンマ区切りで複数指定可能 例) number:25,money:30 → 数値モデルは25%、通貨モデルは30%の高さの文字をノイズとみなして除去する ※小さい文字や記号がノイズとして削除される可能性があります |
| 6 | 手書きノイズの閾値 (白画素の割合、1文字指定時) | HW_WHITE_THRESHOLD | 0~1.0 | 手書き項目に1文字指定をしているとき、 その項目画像を読取対象外(ノイズ)と判断する白ピクセルの割合と判断する閾値を指定する 例) 0.99 を指定 → 手書き項目が1文字指定のとき、項目内の白ピクセルの割合が99%以上であれば、項目内の記載をノイズと判断して除去する (デフォルト 0.975) |
| 7 | 改行を出力する | RECOGNIZE_NEWLINE | true, false | チェック(true)の時、読み取り項目内の改行を認識して\nとして出力する |
| キーワード、キーワードの座標指定 | ||||
| 8 | 【明細】同一レコード判定 | EXTRACTION_RECORD_SEGMENT | 0,1 | 同一レコードとみなす判定ロジックを選択。 ・0:罫線区切り(デフォルト) 罫線をまたいだ場合にレコードを区切る ・1:行区切り 横に並んでいる文字列を1行としてレコードを区切る |
| 9 | 【明細】重複した明細を出力する | EXTRACTION_OUTPUT_DUPLICATE_DETAILS | 0,1 | ・0:重複した明細を出力しない ・1:重複した明細を出力する 項目名、ページ番号、GID、RIDのすべてが一致する項目を重複とみなす 同じ明細のテーブルが横に並んでいる場合に1を指定する |
| 全体OCR(キーワード、キーワードの座標指定、型指定) | ||||
| 10 | 使用するモデル | OCR_ENGINE | TESSERACT TENSORFLOW ONNX PYTORCH | 使用するOCRエンジンを指定する ・TESSERACT:活字 ・TENSORFLOW:手書き(v5.0.0以前のモデルを使用する場合) ・ONNX:手書き(CPUを使用する場合に指定) ・PYTORCH:手書き(GPUを使用する場合に指定) |
| 11 | テキスト付きPDFでもOCRを実行する | OCR_PDF_WITH_TEXT | true, false | チェックあり(true):テキスト付きPDFの場合でもOCRを実行する チェックなし(false):PDFのテキスト情報を使用して抽出する |
| 12 | 改善した文字列検知ロジックを使用する | USE_DL_STRING_DETECTION | true, false | チェック(true)の時、従来のOCRよりも文字列検知の改善した処理を行う ※メモリの使用量が約500MB程度増加し、処理時間がA4画像1枚当たり5秒/枚ほど増加する ※文字列検知の処理が従来のものと変更となるため、読み取り結果に影響する可能性有り |
| 13 | 行間隔が狭い文字列の精度改善 | STRING_DETECTION_SPLIT_LARGE_RECTANGLE | true, false | チェックあり(true):行間隔の狭い文字列に対して、改善した文字検知を行う チェックなし(false):従来の文字検知のまま処理を行う |
| 14 | OCR結果から除外する文字リスト | BLACK_LIST_EXT | 文字列 | 抽出処理時にキーワードおよび抽出する値から除外する文字を指定する |
| 手書きモデル | ||||
| 15 | 手書き用OCRモデル | HAND_WRITE_OCR_LANG | 文字列 | 指定された手書きモデルが存在しないときに使用するモデル名 "OCR_MODEL_PATH/tessdata/"以下に存在するフォルダ名 例)multi2_jpn |
| 活字モデル | ||||
| 16 | 活字用OCRモデル | OCR_LANG | 文字列 | 活字OCRエンジンで利用するモデル名 OCRモデルフォルダに存在するファイルの拡張子”.traineddata”を除外したファイル名を指定する 例)Japanese.traineddata → Japanese |
| 17 | 文字列の切取ロジック | PAGE_SEG_MODE | 4, 6 | OCRエンジンの活字文字検知/分割アルゴリズムを指定する ・4 : 1行内の文字サイズが可変とみなして文字を検知 ・6 : 1行内の文字サイズが固定とみなして文字を検知 |
| 18 | 文字の多重認識を減らす処理を行う | use_dup_char_reducer | true, false | 複数の同じ文字が連続で出力されてしまうとき、本設定を有効にすることで回避できる(活字のみ) ※文字間が近い場合、複数文字を1文字として出力してしまう副作用が起きる可能性がある ・チェックする(true) : 機能を有効にする ・チェックしない(false) : 機能を無効にする |
| 19 | 対象文字種 | reduce_target | 0~4 | 「文字の多重認識を減らす処理を行う(use_dup_char_reducer)」の対象となる文字種を指定する ・0 : 数字 ・1 : 記号 ・2 : ひらがな ・3 : カタカナ ・4 : アルファベット カンマ区切りで複数指定可能 |
| 20 | 再読み込みの閾値 | RESCAN_THRESHOLD | 0~100 | 指定した値よりもコンポーネントのConf値が閾値より低い場合に読み直す(活字のみ) ※コンポーネント内の文字のConf値の平均値 |
| 21 | 1つの文字列とみなす文字間隔(高さのN倍) | LINKED_ITEM_THRESHOLD | 数値 | 1つの文字列とみなす文字の間隔を設定 値は文字の大きさ(高さ)に対する倍率 |
3.7.2. 画像処理
文字認識の前に実施する画像処理関連の設定を変更します。

| No. | 内容 | 項目名 | 書式 | 説明 |
|---|---|---|---|---|
| 1 | 傾き補正を行う | IS_SLOPE_CORRECTION | true, false | チェック(true)の時、文字認識前に傾き補正を行う(35度まで) |
| 2 | 回転補正を行う | AUTO_ROTATION | true, false | チェック(true)の時、文字認識前に90/180/270度の画像回転補正を行う |
| 3 | 直線除去を行う最短の長さ | LINE_REMOVAL_THRESHOLD | 0以上の整数 | 直線とみなす長さのしきい値(ピクセル) 0の場合、文字の大きさから自動で設定する |
| 4 | 直線除去時の文字高さに対する倍率 | LINE_REMOVAL_MULTIPLE_BY_TEXT_HEGHT | 0.1以上の数値 | 指定した値×文字高さの平均(ピクセル)が直線除去の対象となる 直線除去を行う最短の長さ の値が0の場合にのみ動作する |
| 5 | 点線除去を行う最短の長さ | HOUGH_THRESHOLD | 0以上の整数 | 点線とみなす長さのしきい値(ピクセル) |
| 6 | 点線の間隔(横) | ERODE_W | 0以上の整数 | 横の点線として検知する点の間隔の値(ピクセル) 点と点の間隔が広い場合は大きい値を設定する (デフォルト 12) |
| 7 | 点線の間隔(縦) | ERODE_H | 0以上の整数 | 縦の点線として検知する点の間隔の値(ピクセル) 点と点の間隔が広い場合は大きい値を設定する (デフォルト 7) |
| 8 | 罫線除去で欠けてしまった文字の復元処理を行う | RESTORE_TEXT | true, false | チェック(true)の時、罫線除去時に欠けてしまう罫線と隣接した文字を復元する ※必ず復元できるわけではない ※副作用として文字にノイズがつく場合がある |
| 9 | 二値化の閾値 | THRESH_VALUE | 0~255 | 文字認識前の画像の二値化(白黒化)のしきい値 0の場合、画像全体のヒストグラムから自動で設定する 詳細は3.8.1. 二値化の閾値を参照 |
| 10 | 直線除去時の二値化の閾値 | BINTHRESH_ON_LINE_REMOVAL | 0~255 | 直線除去時の二値化パラメータのしきい値 0の場合、画像全体のヒストグラムから自動で設定する |
| 11 | 短い罫線(横)除去の閾値 | SHORT_LINE_THRESH_H | -1以上 | 長い罫線に接している短い罫線(横)を検知・除去する閾値 罫線の長さ(ピクセル)を指定する -1 : 除去を行わない 0 : 除去を行わない(-1と同じ) 1以上 : この値を直線検知の閾値とする |
| 12 | 短い罫線(縦)除去の閾値 | SHORT_LINE_THRESH_V | -1以上 | 長い罫線に接している短い罫線(縦)を検知・除去する閾値 罫線の長さ(ピクセル)を指定する -1 : 除去を行わない 0 : 除去を行わない(-1と同じ) 1以上 : この値を直線検知の閾値とする |
| 13 | 短い点線も除去する | USE_SHORT_DOTLINE_REMOVAL | true, false | チェック(true)の時、短い罫線除去時に点線も除去対象とする ※処理時間がA4画像1枚当たり2秒ほど増加する ※文字が除去される副作用が発生する可能性がある |
| 14 | 細かいノイズ除去の閾値(幅) | THIN_LINE_REMOVAL_THRESHOLD_W | 0以上 | 指定した幅(ピクセル)より細かいノイズを除去する 値が大きいほど大きなサイズのノイズを除去する (デフォルト 0、推奨値 3) 詳細は3.8.2. 細かいノイズ除去を参照 |
| 15 | 細かいノイズ除去の閾値(高さ) | THIN_LINE_REMOVAL_THRESHOLD_H | 0以上 | 指定した高さ(ピクセル)より細かいノイズを除去する 値が大きいほど大きなサイズのノイズを除去する (デフォルト 0、推奨値 3) 詳細は3.8.2. 細かいノイズ除去を参照 |
| 16 | 細かいノイズ除去の縮小フィルタ(幅) | ERODE_THIN_LINE_W | 1以上 | 細かいノイズ除去の収縮処理のフィルターサイズ(幅) 値が大きいとより独立したノイズのみ除去する (デフォルト 12) 詳細は3.8.2. 細かいノイズ除去を参照 |
| 17 | 細かいノイズ除去の縮小フィルタ(高さ) | ERODE_THIN_LINE_H | 1以上 | 細かいノイズ除去の収縮処理のフィルターサイズ(高さ) 値が大きいとより独立したノイズのみ除去する (デフォルト 7) 詳細は3.8.2. 細かいノイズ除去を参照 |
| 18 | TIFFを300DPIに変換してからOCRを実行する | CONV_TIFF_DPI | true, false | チェック(true)の時、TIFFを300DPIに変換してからOCRを実行する TIFFで縦横のDPIが異なる場合に指定する |
| 19 | 抽出する色 | EXTRACTION_COLORS | 文字列 | 抽出する色を指定する(指定した色以外を除去する) 複数色を指定する場合はカンマ区切りで記載する 例) EXTRACTION_COLORS=K,R 指定可能な色 ・K(黒) ・R(赤) ・Y(黄) ・G(緑) ・C(シアン) ・B(青) ・P(紫) 個別で指定する場合は、直接数値を指定 詳細は3.8.5. 色の抽出・除去を参照 |
| 20 | 除去する色 | REMOVAL_COLORS | 文字列 | 除去する色を指定する 指定方法は色抽出(EXTRACTION_COLORS)と同様 抽出する色と両方指定した場合は抽出を優先する 詳細は3.8.5. 色の抽出・除去を参照 |
| 21 | 色抽出・除去を罫線除去の前に行う | FILTER_COLOR_BEFORE_LINEREMOVAL | true, false | チェック(true)の時、罫線除去の前に色抽出・除去を行う |
| 22 | 罫線を延長する長さ | LINE_EXTENSION_LEN | 0以上 | 検知した罫線を延長する 単位はピクセル (デフォルト 0) |
| 23 | 矩形の丸い角を除去する閾値 | ROUNDED_CORNER_THRESHOLD | 0~100 | 半径が指定した値未満の丸い角を除去する 単位はピクセル 0の場合は除去されない (デフォルト 0) 詳細は3.8.3. 丸い角の除去を参照 |
| 24 | 丸い角の除去範囲を拡張する長さ | ROUNDED_CORNER_PADDING | 0~100 | 丸い角を除去する際に、指定した値分の除去範囲を拡大する 単位はピクセル (デフォルト 10) 詳細は3.8.3. 丸い角の除去を参照 |
| 25 | ドットの除去(背景・点線)を行う | REMOVE_DOT | true, false | チェック(true)の時、ドットの除去(背景、点線)を行う (デフォルト false) |
| 26 | 除去したいドットの幅 | DOTLINE_SIZE_W | 0以上の整数 | 削除したい背景や点線のドットのサイズの幅をピクセルで指定する (デフォルト 3) |
| 27 | 除去したいドットの高さ | DOTLINE_SIZE_H | 0以上の整数 | 削除したい背景や点線のドットのサイズの高さをピクセルで指定する (デフォルト 3) |
| 28 | 罫線/点線削除の前にドットを削除 | REMOVE_DOT_BEFORE_LINE | true/false | チェック(true)の時、罫線/点線削除の前にドットを削除する (デフォルト true) |
| 29 | 小さい矩形を削除 | REMOVE_SMALL_RECTANGLES | true, false | チェック(true)の時、小さい矩形の除去を行う |
| 30 | 除去する矩形の最小面積 | REMOVE_RECTANGLE_MIN_AREA_ THRESHOLD | 0以上の整数 | 「小さい矩形を削除除去する」がチェック(true)の時に除去する矩形の最小面積を指定する |
| 31 | 除去する矩形の最大面積 | REMOVE_RECTANGLE_MAX_AREA_ THRESHOLD | 0以上の整数 | 「小さい矩形を削除除去する」がチェック(true)の時に除去する矩形の最大面積を指定する |
| 32 | 斜め線を除去 | REMOVE_DIAGONAL_LINES | true, false | チェック(true)の時、矩形内の斜めの線を除去する |

33~37のパラメータは普段は折り畳まれておりますが、全て表示を押下することで表示されるようになります。
※パラメータ増加に伴い、使用頻度の低いパラメータがデフォルトで非表示になっています。

| No. | 内容 | 項目名 | 書式 | 説明 |
|---|---|---|---|---|
| 33 | ノイズ除去を行う | DE_NOISE | true, false | ノイズ除去処理の有無 チェック(true)の時、文字認識前にノイズ除去を行う |
| 34 | 罫線除去を無効化する | SKIP_LINE_REMOVE | true, false | チェック(true)の時、文字認識前の罫線除去を無効化する(罫線除去は行わない) |
| 35 | 白黒反転処理を実施する黒の比率 | BLACK_WHITE_THRESHOLD | 0~100 | 二値化後に白黒を反転するしきい値(%) 設定した%より黒の割合が多い場合に白黒を反転する |
| 36 | シャープ補正値 | SHARPEN_VALUE | 0以上の少数 | OCR実行前に画像をシャープ化する 画像がぼやけている場合などに利用すると効果的 0の場合は処理しない |
| 37 | ドット背景除去を行う(旧) | REMOVE_DOTTED_BACKGROUND | true, false | チェック(true)の時、ドット背景除去を行う ※下位互換パラメータ |
3.8. ユースケース
3.8.1. 二値化の閾値
OCRは画像を白と黒だけに変換(二値化)した状態で行います。各ピクセルの明るさ(黒0~255白)に対して、黒と白の境界とする値が二値化の閾値です。閾値は0~255を設定します。
二値化の閾値が低いと元の画像で濃い色のみが二値化で黒くなり、高いと薄い色でも黒くなります。
また、閾値を0とした場合は画像全体の明るさを基に自動で閾値を判定します。それによって目的の文字が消えてしまうなどあった場合は閾値を直接調整してください。
二値化の閾値の設定によって、下記画像のように変化します。


3.8.2. 細かいノイズ除去
細かいノイズ除去の閾値では、除去対象とするノイズの幅・高さを指定します。
どちらかのパラメータの対象となる場合は除去対象となります。
| ControlPanel項目名 | 共通設定ファイル項目名 | 推奨値 |
|---|---|---|
| 細かいノイズ除去の閾値(幅) | THIN_LINE_REMOVAL_THRESHOLD_W | 3 |
| 細かいノイズ除去の閾値(高さ) | THIN_LINE_REMOVAL_THRESHOLD_H | 3 |

細かいノイズ除去の縮小フィルタは、近隣の文字・ノイズを結合して除去対象となるのを防ぎます。
結合する文字・ノイズ間の距離(ピクセル)を指定します。
| ControlPanel項目名 | 共通設定ファイル項目名 | 推奨値 |
|---|---|---|
| 細かいノイズ除去の縮小フィルタ(幅) | ERODE_THIN_LINE_W | 12 |
| 細かいノイズ除去の縮小フィルタ(高さ) | ERODE_THIN_LINE_H | 7 |

3.8.3. 丸い角の除去
帳票によっては丸い角の矩形が存在し、直線除去では角が残ってしまい誤読の原因となる場合があります。
そういった場合に、下記のパラメータを設定することで丸い角の除去を行います。
| ControlPanel項目名 | 共通設定ファイル項目名 | 推奨値 |
|---|---|---|
| 矩形の丸い角を除去する | ROUNDED_CORNER_THRESHOLD | 30 |
| 丸い角の除去範囲を拡張する長さ | ROUNDED_CORNER_PADDING | 10 |

3.8.4. 表検出付全文OCR
コントロールパネルの抽出モードの設定で「キーワード指定(表検出付)」を指定した状態で全文OCRを実行すると、認識した罫線を基に表を検出し、表の各セルに対してOCRを行います。
この際、表の各セルのOCR結果は表の行・列の形に再現可能な情報が付与され構造化されます。ETL等で後続処理に表の情報を渡したい場合などにご利用ください。
なお、構造化情報の利用に応じて出力形式を選択可能です。
・付与された構造化情報含め出力したい場合: CSV形式
・構造化した表の形で出力したい場合: SIMPLE_CSV / SIMPLE_SEPARATE_CSV形式
※v2.3.1からタブ区切りのSIMPLE_TXT / SIMPLE_SEPARATE_TXT形式も追加されました
※表が段組みになっている場合には正しく構造化されません。
行と列が揃っている表にのみ有効です。

3.8.5. 色の抽出・除去
帳票上の印影や背景の色がOCRに影響し、正しく読み取りを行えない場合があります。
OCRを行う前に、必要な文字の色のみ抽出、もしくは余計な色の除去を行って調整します。
色の指定はHSV色空間で範囲指定します。
3.8.5.1. HSV色空間について
| 要素 | 指定範囲 | 説明 | |
|---|---|---|---|
| H | 色相 | 0~179 | 具体的な色を定義する要素 色が環状で表現するため、0°と179°で同じ色となる |
| S | 彩度 | 0~255 | 色相で定義された色の鮮やかさ・濃さを表す要素 彩度が255で最も鮮やかとなり、減少に合わせて色が薄くなり、0で灰色になる |
| V | 明度 | 0~255 | 色相で定義された色の明るさ・暗さを表す要素 明度が255で最も明るく(白)、明度の減少に合わせて暗くなり、0で黒になる |
3.8.5.2. 色の指定方法(GUI)

| No. | 項目名 | 説明 |
| 1 | 指定した色 | カラーパレット、もしくはスポイトで対象とした色が表示される |
| 2 | 色の選択ボタン | カラーパレットを開き、対象とする色を指定する |
| 3 | スポイトボタン | スポイト画面を開き、クリックした場所の色を抽出して対象とする |
| 4 | 色相 | 対象とした色の色相の表示、または色相を直接入力する |
| 5 | 彩度 | 対象とした色の彩度の表示、または彩度を直接入力する |
| 6 | 明度 | 対象とした色の明度の表示、または明度を直接入力する |
| 7 | ±(指定幅) | 対象とした色の色相、彩度、明度に対して、指定した数値分の幅を上下に持たせる 指定された数値分の幅は、from-to の範囲となる |
| 8 | 色の対象範囲(from) | 対象とした色から±で指定した数値分をマイナスして表示する |
| 9 | 色の対象範囲(to) | 対象とした色から±で指定した数値分をプラスして表示する |
| 10 | 確定ボタン | 指定した色の範囲をAIRead ContorlPanel に反映させる |
| 11 | キャンセルボタン | 編集内容を反映させずに、AIRead ContorlPanel へ戻る |
例)赤い色の範囲を指定する場合(GUI)

対象の色の値に対して幅を持たせることで、近い色も対象とすることができます。
3.8.5.3. 色の指定方法(テキスト)
テキストで設定を行う場合、対象としたい色の色相、彩度、明度の順で”:”(コロン)で区切り、色の指定を行います。
色相が0°、彩度、明度が200を指定する際は、下記の指定となります。
| 0 : 200 : 200 - 0 : 200 : 200 |
色相に前後の幅を持たせ、さらに明るい色も対象としたい場合は、下記のような指定を行います。
| -15 : 200 : 200 - 15 : 200 : 255 |
| 色相(-15 - 15) | 明度(200 - 255) |
| 0から±15の値 | 明度200より明るい色を取得するため、55プラスした値 |
※彩度を変更しない場合は、同じ値とします。
例)赤い色の範囲を指定する場合(テキスト)
純粋な赤色は、下記のように表現できます。
純粋な赤色の表現
| 0 : 255 : 255 |
実際は印刷等の条件により赤色の色合いは異なるため、範囲に幅を持たせることで色を対象とすることが可能です。
例)赤色を含むピンクからオレンジ色の範囲
| -10:180:250-10:220:255 |
※色相 -10 は 170 と同義