(57)【要約】  構造化データ処理システムは、ハードウェアプロセッサと、ハードウェアプロセッサと通信するメモリと、を含む。メモリは、データ構造および実行環境を記憶する。データ構造は電子文書を含む。実行環境は、電子文書の特定のページを識別することと、ページに対して光学文字認識(OCR)を実行して、ページ上の複数の英数字テキスト文字列を判定することと、ページの種類を判定することと、ページのレイアウトを判定することと、ページの判定された種類およびページの判定されたレイアウトに少なくとも部分的に基づいて、ページ上の少なくとも1つの表を判定することと、ページ上の判定された表から複数のデータを抽出することと、を含む動作を実行するように構成されたデータ抽出ソルバーを含む。実行環境はまた、抽出されたデータのグラフィカル表現を描画するユーザインターフェースを生成するユーザインターフェースモジュールと、グラフィカル表現を表すデータを送信する送信モジュールと、を含む。
2020511726.tif 000002
【特許請求の範囲】
【請求項１】
構造化データ処理システムであって、
電子文書からデータを抽出するための構造化データ処理システムであって、
1つまたは複数のハードウェアプロセッサと、
前記1つまたは複数のハードウェアプロセッサと通信し、データ構造および実行環境を記憶するメモリと、を備え、前記データ構造が、電子文書を含み、前記実行環境が、
前記電子文書の特定のページを識別することと、
前記ページに対して光学文字認識(OCR)を実行して、前記ページ上の複数の英数字テキスト文字列を判定することと、
前記ページの種類を判定することと、
前記ページのレイアウトを判定することと、
前記ページの前記判定された種類および前記ページの前記判定されたレイアウトに少なくとも部分的に基づいて、前記ページ上の少なくとも1つの表を判定することと、
前記ページ上の前記判定された表から複数のデータを抽出することと、
を含む動作を実行するように構成されたデータ抽出ソルバーと、
前記抽出されたデータの1つまたは複数のグラフィカル表現を描画するユーザインターフェースを生成するユーザインターフェースモジュールと、
1つまたは複数の通信プロトコルを介して、前記1つまたは複数のグラフィカル表現を表すデータをリモートコンピューティングデバイスに送信する送信モジュールと、
を備える、構造化データ処理システム。
【請求項２】
前記データ抽出ソルバーが、前記ページに対して前記OCRを実行するのに先立って、前記少なくとも1枚のページに対して画像前処理を実行することをさらに含む動作を実行するように構成される、請求項1に記載の構造化データ処理システム。
【請求項３】
前記画像前処理を実行する動作が、前記少なくとも1枚のページの回転を判定することを含む、請求項2に記載の構造化データ処理システム。
【請求項４】
前記少なくとも1枚のページの回転を判定する動作が、前記OCRによって生成されたテキストファイルを解析して、前記少なくとも1枚のページに回転を加えるかどうかを判定することを含む、請求項3に記載の構造化データ処理システム。
【請求項５】
前記画像前処理を実行する動作が、前記ページを回転させることを含む、請求項2に記載の構造化データ処理システム。
【請求項６】
前記少なくとも1枚のページを回転させる動作が、90度の増分で前記ページを回転させることを含む、請求項5に記載の構造化データ処理システム。
【請求項７】
前記画像前処理を実行する動作が、前記ページ上のグレー画素をホワイトスペースに変換することを含む、請求項2に記載の構造化データ処理システム。
【請求項８】
前記画像前処理を実行する動作が、前記ページ上の水平線および垂直線を除去することを含む、請求項2に記載の構造化データ処理システム。
【請求項９】
前記データ抽出ソルバーが、水平カーネルおよび垂直カーネルを使用して、クロージング・モルフォロジー変換を用いて前記水平線および前記垂直線を判定することをさらに含む動作を実行するように構成される、請求項8に記載の構造化データ処理システム。
【請求項１０】
前記画像前処理を実行する動作が、前記少なくとも1枚のページのスキューを判定することを含む、請求項2に記載の構造化データ処理システム。
【請求項１１】
前記データ抽出ソルバーが、前記スキューの判定に基づいて、前記少なくとも1枚のページを操作して、前記スキューを除去または低減することをさらに含む動作を実行するように構成される、請求項10に記載の構造化データ処理システム。
【請求項１２】
前記OCRを実行する動作が、前記複数の英数字テキスト文字列のハイパーテキストマークアップ言語表現を生成することを含む、請求項1に記載の構造化データ処理システム。
【請求項１３】
前記データ抽出ソルバーが、
前記複数の英数字テキスト文字列の各々に対する境界形成矩形を判定することと、
前記判定された境界形成矩形の各々に関する情報をJSONフォーマットで保存することと、
をさらに含む動作を実行するように構成される、請求項12に記載の構造化データ処理システム。
【請求項１４】
前記ページの種類を判定する動作が、サポートベクターマシン(SVM)分類器を用いて、指定された基準に基づいて、前記ページにバイナリラベルを割り当てることを含む、請求項1に記載の構造化データ処理システム。
【請求項１５】
前記指定された基準が、表を含むページを含む、請求項14に記載の構造化データ処理システム。
【請求項１６】
前記SVM分類器を用いて、指定された基準に基づいて、前記ページにバイナリラベルを割り当てる動作が、前記SVM分類器を用いて、
前記ページ上の英字コンテンツに対する数値コンテンツの比率、
前記ページ上のテキストの長さに対する数値コンテンツの比率、および
指定されたキーワードの数
のうちの少なくとも1つを表す特徴ベクトルに前記バイナリラベルを割り当てることを含む、請求項14に記載の構造化データ処理システム。
【請求項１７】
前記データ抽出ソルバーが、複数の電子トレーニング文書に対して前記SVM分類器をトレーニングすることをさらに含む動作を実行するように構成され、前記複数の電子トレーニング文書の少なくとも一部分が、バイナリ基準を満たし、前記複数の電子トレーニング文書の少なくとも一部分が、前記バイナリ基準を満たさない、請求項14に記載の構造化データ処理システム。
【請求項１８】
前記データ抽出ソルバーが、前記ページに前記バイナリラベルが割り当てられていることに基づいて、前記電子文書内の前記ページの直前の別のページに前記バイナリラベルを自動的に割り当てることをさらに含む動作を実行するように構成される、請求項14に記載の構造化データ処理システム。
【請求項１９】
前記データ抽出ソルバーが、前記ページに前記バイナリラベルが割り当てられていることに基づいて、前記電子文書内の前記ページの直後の別のページに前記バイナリラベルを自動的に割り当てることをさらに含む動作を実行するように構成される、請求項14に記載の構造化データ処理システム。
【請求項２０】
前記ページのレイアウトを判定する動作が、前記ページ上の前記複数の英数字テキスト文字列に対するテキストセグメンテーションを計算することを含む、請求項1に記載の構造化データ処理システム。
【請求項２１】
前記テキストセグメンテーションを計算する動作が、前記ページ上のホワイトスペースに基づいて、前記複数の英数字テキスト文字列の各々に対する水平境界形成エリアおよび垂直境界形成エリアを識別することを含む、請求項20に記載の構造化データ処理システム。
【請求項２２】
前記水平境界形成エリアを識別する動作が、
画素行の和の投影プロファイルを判定し、
前記投影プロファイルに基づいて、前記画素行の和の局所的な最大値を判定し、
前記画素行の和の前記判定された局所的な最大値に基づいて、前記水平境界形成エリアを判定する
ことによって、水平テキスト行を識別することを含む、請求項21に記載の構造化データ処理システム。
【請求項２３】
前記垂直境界形成エリアを識別する動作が、隣接する水平境界形成エリアの間のエリアの画素の高さを前記複数の英数字テキスト文字列の指定されたフォントの推定された高さと比較することを含む、請求項22に記載の構造化データ処理システム。
【請求項２４】
前記データ抽出ソルバーが、前記ページの高さおよび幅に少なくとも部分的に基づいて、前記推定された高さを計算することをさらに含む動作を実行するように構成される、請求項23に記載の構造化データ処理システム。
【請求項２５】
前記垂直境界形成エリアを識別する動作が、各々の判定された水平境界形成エリアに対する画素列手段の投影プロファイルを判定することをさらに含む、請求項22に記載の構造化データ処理システム。
【請求項２６】
前記データ抽出ソルバーが、
前記判定された水平境界形成エリアおよび垂直境界形成エリアに基づいて、前記複数の英数字テキスト文字列の各々に対する境界形成矩形を判定することと、
前記複数の境界形成矩形の各々に一意の識別情報(ID)を割り当てることであって、各々の一意のIDが、行インデックスと値インデックスの連結を含む、前記割り当てることと、
をさらに含む動作を実行するように構成される、請求項22に記載の構造化データ処理システム。
【請求項２７】
前記ページの前記判定された種類および前記ページの前記判定されたレイアウトに少なくとも部分的に基づいて、前記ページ上の少なくとも1つの表を判定する動作が、垂直関連性および水平関連性を判定することを含む、請求項1に記載の構造化データ処理システム。
【請求項２８】
前記垂直関連性を判定する動作が、
特定の水平テキスト行内の各英数字テキスト文字列に対して、
前記英数字テキスト文字列が、他の水平テキスト行内の1つまたは複数の英数字テキスト文字列と垂直に整列されているかどうかを判定することと、
いずれかの垂直に整列されている英数字テキスト文字列のIDをリストに追加することと、
辞書に対するキーとして行テキスト値IDを用いて、前記リストを前記辞書に保存することと、
を含む、請求項27に記載の構造化データ処理システム。
【請求項２９】
前記データ抽出ソルバーが、
隣接する水平関連性の間で、前記判定された垂直関連性を比較することと、
共有される共通の垂直関連性を有する、隣接する水平関連性に基づいて、前記隣接する水平関連性の識別情報を前記辞書内の水平関連性リストに、および、前記共有される共通の垂直関連性の識別情報を前記辞書内の垂直関連性リストに、追加することと、
をさらに含む動作を実行するように構成される、請求項28に記載の構造化データ処理システム。
【請求項３０】
前記ページ上の前記判定された表から複数のデータを抽出する動作が、前記ページから検出された表の表領域を切り取ることを含む、請求項1に記載の構造化データ処理システム。
【請求項３１】
前記データ抽出ソルバーが、
境界形成矩形を通してセル値パーサを反復させることと、各反復に対して、
前記境界形成矩形のうちの1つの範囲内にある少なくとも1つの英数字テキスト文字列に対するOCR出力を検査することと、
前記境界形成矩形のうちの1つの範囲内にある少なくとも1つの英数字テキスト文字列に基づいて、前記英数字テキスト文字列を表セル辞書に追加し、前記英数字テキスト文字列をOCR辞書から除去することと、
をさらに含む動作を実行するように構成される、請求項30に記載の構造化データ処理システム。
【請求項３２】
前記データ抽出ソルバーが、
前記ページ上の前記判定された表からの前記抽出された複数のデータを別のページ上の別の判定された表からの抽出されたデータと結合することと、
前記ページの前記判定された表からの前記結合された抽出されたデータに関連する抽出された列ラベルを別名として付けることと、
をさらに含む動作を実行するように構成される、請求項1に記載の構造化データ処理システム。
【請求項３３】
前記電子文書が坑井ファイルを含む、請求項1に記載の構造化データ処理システム。
【請求項３４】
前記表が、前記坑井ファイルの方向調査を含む、請求項33に記載の構造化データ処理システム。
【請求項３５】
電子文書からデータを抽出するための、コンピュータで実施される方法であって、
少なくとも1つのハードウェアプロセッサにより、少なくとも1枚のページを含む電子文書を識別するステップと、
前記ハードウェアプロセッサにより、前記少なくとも1枚のページに対して光学文字認識(OCR)を実行して、前記ページ上の複数の英数字テキスト文字列を判定するステップと、
前記ハードウェアプロセッサにより、前記少なくとも1枚のページの種類を判定するステップと、
前記ハードウェアプロセッサにより、前記少なくとも1枚のページのレイアウトを判定するステップと、
前記ハードウェアプロセッサにより、前記ページの前記判定された種類および前記ページの前記判定されたレイアウトに少なくとも部分的に基づいて、前記ページ上の少なくとも1つの表を判定するステップと、
前記ハードウェアプロセッサにより、前記ページ上の前記判定された表から複数のデータを抽出するステップと、
前記ハードウェアプロセッサにより、前記複数のデータを含む出力ファイルを生成するステップと、
を含む、コンピュータで実施される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、走査された電子文書からの表フォーマットの英数字データ抽出など、電子文書からデータを抽出するための装置、システム、および方法に関する。
【背景技術】
【０００２】
走査画像など、電子文書からのデータの手作業による抽出は、時間的かつ金銭的にコストがかかる。そのような非効率性は、データが抽出されなければならない任意の特定の事業または産業の数十万の文書のバックログを生じさせる場合がある。そのような電子文書または走査文書は、テキストレイヤを含まないことが多い。したがって、手作業による抽出プロセスでは、人は、まず、データが抽出されることが望まれる文書から特定の1枚または複数枚のページを識別しなければならない。そのようなプロセスは、時間がかかり、同様にエラーを伴う場合がある。手作業によるプロセスにおけるさらなるステップは、やはり時間がかかり、たとえば、1枚または複数枚のページを別の電子文書に分離することと、必要に応じて、光学文字認識(OCR)エラーを補正することと、を含む。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示の1つの例示的な実施形態は、1つまたは複数のハードウェアプロセッサと、1つまたは複数のハードウェアプロセッサと通信するメモリと、を含む構造化データ処理システムを含む。メモリは、データ構造および実行環境を記憶する。データ構造は電子文書を含む。実行環境は、電子文書の特定のページを識別することと、ページに対して光学文字認識(OCR)を実行して、ページ上の複数の英数字テキスト文字列を判定することと、ページの種類を判定することと、ページのレイアウトを判定することと、ページの判定された種類およびページの判定されたレイアウトに少なくとも部分的に基づいて、ページ上の少なくとも1つの表を判定することと、ページ上の判定された表から複数のデータを抽出することと、を含む動作を実行するように構成されたデータ抽出ソルバーを含む。実行環境はまた、抽出されたデータの1つまたは複数のグラフィカル表現を描画するユーザインターフェースを生成するユーザインターフェースモジュールと、1つまたは複数の通信プロトコルを介して、1つまたは複数のグラフィカル表現を表すデータをリモートコンピューティングデバイスに送信する送信モジュールと、を含む。
【０００４】
例示的な実施形態と組み合わせ可能な一態様では、データ抽出ソルバーは、ページに対してOCRを実行するのに先立って、少なくとも1枚のページに対して画像前処理を実行することをさらに含む動作を実行するように構成される。
【０００５】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、画像前処理を実行する動作は、少なくとも1枚のページの回転を判定することを含む。
【０００６】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、少なくとも1枚のページの回転を判定する動作は、OCRによって生成されたテキストファイルを解析して、少なくとも1枚のページに回転を加えるかどうかを判定することを含む。
【０００７】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、画像前処理を実行する動作は、ページを回転させることを含む。
【０００８】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、少なくとも1枚のページを回転させる動作は、90度の増分でページを回転させることを含む。
【０００９】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、画像前処理を実行する動作は、ページ上のグレー画素をホワイトスペースに変換することを含む。
【００１０】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、画像前処理を実行する動作は、ページ上の水平線および垂直線を除去することを含む。
【００１１】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、データ抽出ソルバーは、水平カーネルおよび垂直カーネルを使用して、クロージング・モルフォロジー変換(closing morphological transformation)を用いて水平線および垂直線を判定することをさらに含む動作を実行するように構成される。
【００１２】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、画像前処理を実行する動作は、少なくとも1枚のページのスキューを判定することを含む。
【００１３】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、データ抽出ソルバーは、スキューの判定に基づいて、少なくとも1枚のページを操作して、スキューを除去または低減することをさらに含む動作を実行するように構成される。
【００１４】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、OCRを実行する動作は、複数の英数字テキスト文字列のハイパーテキストマークアップ言語表現を生成することを含む。
【００１５】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、データ抽出ソルバーは、複数の英数字テキスト文字列の各々に対する境界形成矩形を判定することと、判定された境界形成矩形の各々に関する情報をJSONフォーマットで保存することと、をさらに含む動作を実行するように構成される。
【００１６】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、ページの種類を判定する動作は、サポートベクターマシン(SVM)分類器を用いて、指定された基準に基づいて、ページにバイナリラベルを割り当てることを含む。
【００１７】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、指定された基準は、表を含むページを含む。
【００１８】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、SVM分類器を用いて、指定された基準に基づいてページにバイナリラベルを割り当てる動作は、SVM分類器を用いて、ページ上の英字コンテンツに対する数値コンテンツの比率、ページ上のテキストの長さに対する数値コンテンツの比率、および指定されたキーワードの数のうちの少なくとも1つを表す特徴ベクトルにバイナリラベルを割り当てることを含む。
【００１９】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、データ抽出ソルバーは、複数の電子トレーニング文書に対してSVM分類器をトレーニングすることをさらに含む動作を実行するように構成され、複数の電子トレーニング文書の少なくとも一部分は、バイナリ基準を満たし、複数の電子トレーニング文書の少なくとも一部分は、バイナリ基準を満たさない。
【００２０】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、データ抽出ソルバーは、ページにバイナリラベルが割り当てられていること基づいて、電子文書内のページの直前の別のページにバイナリラベルを自動的に割り当てることをさらに含む動作を実行するように構成される。
【００２１】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、データ抽出ソルバーは、ページにバイナリラベルが割り当てられていることに基づいて、電子文書内のページの直後の別のページにバイナリラベルを自動的に割り当てることをさらに含む動作を実行するように構成される。
【００２２】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、ページのレイアウトを判定する動作は、ページ上の複数の英数字テキスト文字列のテキストセグメンテーションを計算することを含む。
【００２３】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、テキストセグメンテーションを計算する動作は、ページ上のホワイトスペースに基づいて、複数の英数字テキスト文字列の各々に対する水平境界形成エリアおよび垂直境界形成エリアを識別することを含む。
【００２４】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、水平境界形成エリアを識別する動作は、画素行の和の投影プロファイルを判定し、投影プロファイルに基づいて、画素行の和の局所的な最大値を判定し、画素行の和の判定された局所的な最大値に基づいて、水平境界形成エリアを判定することによって、水平テキスト行を識別することを含む。
【００２５】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、垂直境界形成エリアを識別する動作は、隣接する水平境界形成エリアの間のエリアの画素の高さを複数の英数字テキスト文字列の指定されたフォントの推定された高さと比較することを含む。
【００２６】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、データ抽出ソルバーは、ページの高さおよび幅に少なくとも部分的に基づいて、推定された高さを計算することをさらに含む動作を実行するように構成される。
【００２７】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、垂直境界形成エリアを識別する動作は、各々の判定された水平境界形成エリアに対する画素列手段の投影プロファイルを判定することをさらに含む。
【００２８】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、データ抽出ソルバーは、判定された水平境界形成エリアおよび垂直境界形成エリアに基づいて、複数の英数字テキスト文字列の各々に対する境界形成矩形を判定することと、複数の境界形成矩形の各々に一意の識別情報(ID)を割り当てることであって、各々の一意のIDが、行インデックスと値インデックスの連結を含む、前記割り当てることと、をさらに含む動作を実行するように構成される。
【００２９】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、ページの判定された種類およびページの判定されたレイアウトに少なくとも部分的に基づいて、ページ上の少なくとも1つの表を判定する動作は、垂直関連性(associations)および水平関連性を判定することを含む。
【００３０】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、垂直関連性を判定する動作は、特定の水平テキスト行内の各英数字テキスト文字列に対して、英数字テキスト文字列が、他の水平テキスト行内の1つまたは複数の英数字テキスト文字列と垂直に整列されているかどうかを判定することと、いずれかの垂直に整列されている英数字テキスト文字列のIDをリストに追加することと、辞書に対するキーとして行テキスト値IDを用いて、リストを辞書に保存することと、を含む。
【００３１】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、データ抽出ソルバーは、隣接する水平関連性の間で、判定された垂直関連性を比較することと、共有される共通の垂直関連性を有する、隣接する水平関連性に基づいて、隣接する水平関連性の識別情報を辞書内の水平関連性リストに、および、共有される共通の垂直関連性の識別情報を辞書内の垂直関連性リストに、追加することと、をさらに含む動作を実行するように構成される。
【００３２】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、ページ上の判定された表から複数のデータを抽出する動作は、ページから検出された表の表領域を切り取ることを含む。
【００３３】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、データ抽出ソルバーは、境界形成矩形を通してセル値パーサを反復させることをさらに含む動作を実行するように構成される。
【００３４】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、各反復に対して、境界形成矩形のうちの1つの範囲内にある少なくとも1つの英数字テキスト文字列に対するOCR出力を検査し、境界形成矩形のうちの1つの範囲内にある少なくとも1つの英数字テキスト文字列に基づいて、英数字テキスト文字列を表セル辞書に追加し、英数字テキスト文字列をOCR辞書から除去する。
【００３５】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、データ抽出ソルバーは、ページ上の判定された表からの抽出された複数のデータを別のページ上の別の判定された表からの抽出されたデータと結合することと、ページの判定された表からの結合された抽出されたデータに関連する抽出された列ラベルを別名として付けることと、をさらに含む動作を実行するように構成される。
【００３６】
前述の態様のうちのいずれか1つと可能な別の態様では、電子文書は坑井(well)ファイルを含む。
【００３７】
前述の態様のうちのいずれか1つと組み合わせ可能な別の態様では、表は、坑井ファイルの方向調査(directional survey)を含む。
【００３８】
例示的な実施形態および態様は、コンピュータシステム、コンピュータで実施される方法、およびコンピュータ可読媒体において実現され得る。たとえば、1つまたは複数のコンピュータのシステムは、動作中、システムに特定の動作を実行させる、システム上にインストールされた、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せを有することによりそれらの動作を実行するように構成され得る。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されると、装置に特定の動作を実行させる命令を含むことによりそれらの動作を実行するように構成され得る。
【００３９】
本開示による実施形態は、以下の特徴のうちのうちの1つまたは複数を含み得る。たとえば、本開示による、コンピュータで実施されるデータ抽出方法は、(たとえば、人的時間、コスト、コンピューティングリソース、コンピューティング速度の点で)より効率的に表データなどのデータを電子画像から抽出することができる。別の例として、本開示によるデータ抽出方法は、値が垂直に整列されている(たとえば、すべて左に整列されている、中央に整列されている、または右に整列されている)、および、表がほぼ完全である(たとえば、数行のみに少数の値が欠落している)という2つの仮定に鑑みて、(何らかのシンボルの)値の表を検出することができる。
【００４０】
本開示で説明する主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。本主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００４１】
【図１】本開示による、データ抽出ソルバーを実行する、1つまたは複数クライアントデバイスおよび1つまたは複数のサーバデバイスを含む、例示的な分散型ネットワークアーキテクチャを示す図ある。
【図２】図1のデータ抽出ソルバーによって実行される例示的な方法を説明する流れ図である。
【図３】本開示による例示的な電子文書の図である。
【図４】本開示によるデータ抽出方法のレイアウト分析ステップの後の、画素行の和および識別された水平ホワイトスペースを表すグラフである。
【図５】図3の例示的な電子文書ページに適用される、本開示によるデータ抽出方法の表検出ステップの結果を示す図である。
【図６】本開示による、電子文書からデータを抽出するための、コンピュータで実施される方法のための例示的なコンピューティングシステムの概略図である。
【発明を実施するための形態】
【００４２】
本開示は、表データを包含するかまたは含む走査文書などの電子文書からデータを抽出するための、コンピュータで実施される技法について説明する。いくつかの態様では、本開示によるデータ抽出方法は、電子文書のページに対して光学文字認識(OCR)を実行して、英数字テキストを認識するステップと、各ページの種類およびレイアウトを判定して、ページ内に位置するいずれかの表を検出するステップと、認識されたテキストを表から抽出するステップと、抽出されたデータを含む出力ファイル(たとえば、コンマ区切り値ファイル)を生成するステップと、を含む。
【００４３】
図1は、データ抽出サービスを通してデータ抽出ソルバーを実行する、1つまたは複数のクライアントデバイスおよび1つまたは複数のサーバデバイスを含む例示的な分散型ネットワークアーキテクチャ100を示す。ネットワークアーキテクチャ100は、ネットワーク114によって構造化データ処理サーバシステム112(「サーバシステム112」)に通信可能に接続された、いくつかのクライアントデバイス102、104、106、108、110を含む。サーバシステム112は、サーバデバイス116とデータストア118とを含む。サーバデバイス116は、データストア118内に記憶されたコンピュータ命令(たとえば、データ抽出ソルバーのすべてまたは一部分)を実行して、データ抽出サービスの機能を実行する。たとえば、いくつかの態様では、データ抽出サービスは、サーバシステム112の所有者またはオペレータによるクライアントデバイス102、104、106、108、および110(ならびに、他のクライアントデバイス)に利用可能な加入サービスであり得る。いくつかの態様では、サーバシステム112は、データ抽出サービスの所有者またはオペレータに対してデータ抽出サービスをホストする第三者(たとえば、コロケーションサーバシステム)によって所有され得るか、または動作させられ得る。
【００４４】
クライアントデバイス102、104、106、108、110のユーザは、サーバデバイス112にアクセスしてデータ抽出サービスに参加する。たとえば、クライアントデバイス102、104、106、108、110は、データ抽出サービスにアクセスするために使用され得るウェブブラウザアプリケーションを実行することができる。別の例では、クライアントデバイス102、104、106、108、110は、データ抽出サービスに固有のソフトウェアアプリケーション(たとえば、スマートフォン上で実行する「アプリ」など)を実行することができる。言い換えれば、データ抽出サービスのすべては、サーバシステム112上でホストされ実行され得る。または代替態様では、データ抽出サービスの一部分は、(たとえば、そのようなクライアントデバイスのユーザによって入力された情報を送受信するために、および／またはデータ抽出サービスからの出力データをユーザに表示するために)クライアントデバイス102、104、106、108、および110上で実行することができる。
【００４５】
いくつかの実施形態では、クライアントデバイス102、104、106、108、110は、ラップトップコンピュータもしくはデスクトップコンピュータ、スマートフォン、携帯情報端末、ポータブルメディアプレーヤー、タブレットコンピュータ、または電子ソーシャルネットワークと通信するために使用され得る他の適切なコンピューティングデバイスなど、コンピューティングデバイスとして提供され得る。いくつかの実施形態では、サーバシステム112は、コンピュータサーバなど、単一のコンピューティングデバイスであってよい。いくつかの実施形態では、サーバシステム112は、サーバコンピュータの動作(たとえば、クラウドコンピューティング)を実行するために共に動作する、2つ以上のコンピューティングデバイスを表すことがある。いくつかの実施形態では、ネットワーク114は、公衆通信ネットワーク(たとえば、インターネット、セルラーデータネットワーク、電話ネットワーク上のダイアルアップモデム)または私設通信ネットワーク(たとえば、私設LAN、専用回線)であってよい。
【００４６】
図1に示すように、サーバシステム112(たとえば、サーバデバイス116およびデータストア118)は、1つまたは複数の処理デバイス132と、データ抽出ソルバー130と、1つまたは複数のメモリモジュール136と、インターフェース134とを含む。概して、サーバシステム112の構成要素は、各々、1つまたは複数の処理デバイス132が、データ抽出ソルバー130を実行し、1つまたは複数のメモリモジュール136内に記憶されるデータにアクセスして操作することができるように通信可能に結合される。サーバシステム112から出力されることになるデータ、またはサーバシステム112に入力されることになるデータは、サーバシステム112をネットワーク114に通信可能に結合するインターフェース134を用いて円滑にされ得る。
【００４７】
この例に示すように、1つまたは複数のメモリモジュール136は、1つまたは複数の電子文書140を記憶するか、またはそれを参照することができる。電子文書140は各々、たとえば、油井または水井に関する方向調査など、紙の文書のデジタル画像を含んでよいか、またそのデジタル画像であってよい。たとえば、方向調査は、そこから炭化水素または水が生産され得る傾斜掘削孔(directional drilled wellbore)用の軌道に関連する表データを包含し得る。
【００４８】
示すように、1つまたは複数のメモリモジュール136は、たとえば、電子文書140から抽出されたデータを生成するために、データ抽出ソルバー130の実行の間に判定または生成されるデータの他の部分を記憶することができる。たとえば、図2を参照して説明するような方法200の実行の間に生成され得るOCRされたデータ142を(少なくとも一時的に)記憶することができる。(たとえば、図2を参照して説明するような)データ抽出ソルバー130による実行によって生成された、計算されたかそれとも判定された他のデータを、1つまたは複数のメモリモジュール136内に記憶することもできる(一時的であるとしても)。
【００４９】
本開示で説明するデータ抽出ソルバーによるデータ抽出方法の実施形態は、様々な異なる電子文書に対して実行され得る。いくつかの態様では、データ抽出方法は、電子文書内の1つまたは複数の表(たとえば、データの列および行)内に包含されたデータ(たとえば、英数字データ)を包含する電子文書(たとえば、走査画像)に対して実行され得る。1つのそのような例示的な文書は、そこから炭化水素が生成される傾斜掘削孔用の軌道に関連する表データを包含する方向調査を含むことが多い坑井ファイル文書であり得る。電子坑井ファイル文書のページ、具体的には、文書の方向調査ページの一例が図3に示されている。図3に示すように、方向調査は、測定深度(measured depth)(MD、フィート)、傾斜(Inclination)(度)、方位角(Azimuth)(度)、正確な垂直深度(TVD、フィート)、および坑道に関する他のデータが2次元(行および列)表内に包含される表形式の坑道データから構成される。炭化水素掘削孔の掘削、完成、または生産以外の業界からの電子文書を含む他の電子文書も本明細書で説明するデータ抽出方法の対象となり得る。
【００５０】
図2は、図1のデータ抽出ソルバーによって実行される例示的な方法200を説明する流れ図である。方法200は、したがって、本開示によるデータ抽出方法の例示的な実施形態を表す。方法200は、電子文書の画像(たとえば、坑井の方向調査など、紙の文書の走査画像)を前処理することを含むステップ202で開始する。画像前処理ステップは、いくつかの態様では、組み合わされると、光学文字認識および表出力の品質を高めることができるわずかな画像操作を加える。たとえば、Tesseract OCRの配向およびスクリプト検出(OSD:orientation and script detection)モードを使用することによって電子文書のページを回転させて、画像がどのように回転されているかを判定することができる。TesseractのOSDモードは、90度の増分で画像の回転を包含するテキストファイルを生成する。このテキストファイルが作成された後で、このテキストファイルを解析して、ページ画像に回転を加えるかどうかを判定する。
【００５１】
いくつかの態様では、画像が回転されると、しきい値を適用するのとは対照的に、グレー画素がホワイトスペースに変換され得る。図3の例示的な電子文書300では、たとえば、(その時点で自動しきい値が画像に適用される)走査によって、または(文書設計が保存される)デジタル変換によってのいずれかで、画像が生成される。したがって、文書画像がグレー画素を包含する場合、これらは、我々が抽出を試みる情報にとって重要ではないデジタル変換されたページ画像からのグラフィック要素である。
【００５２】
いくつかの態様では、画像を前処理するステップ202で、さらなる前処理が実行され得る。たとえば、水平線および垂直線を除去することができる。方向調査を用いた坑井ファイル文書である、図3の例示的な電子文書300では、表線の存在は、ページの一般的なスタイルおよびレイアウトとともに、データの生成を担う元の作成者(たとえば、この例では、坑井のオペレータ)に依存し得、したがって、信頼できない表領域検出手段であり得る。さらに、表線を有する画像から線が除去されるとき、Tesseract OCR結果の精度にかなりの向上が存在し得る。表線を見出すために、たとえば、水平カーネルおよび垂直カーネルを使用したOpenCVからのクロージング・モルフォロジー変換を前処理するステップで使用することができる。これは、結果として、線のみを包含する画像をもたらすことができ、次いで、その画像を使用して、黒線を電子文書の元の画像内のホワイトスペースに変換する。
【００５３】
データ抽出方法のいくつかの態様では、画像にはスキューがないと仮定され得る。代替態様では、(Cattoniら、1998年、およびO'Gorman、Kasturi、1997年で言及された方法論と異ならない)スキュー検出および除去方法論を、前処理するステップで同様に実装することができる。
【００５４】
方法200は、(説明したように前処理されてもされなくてもよい)電子文書をOCRすることを含むステップ204に進むことができる。たとえば、いくつかの態様では、Tesseract OCRを使用して、(たとえば、図3の画像から)ページテキストのハイパーテキストマークアップ言語(html)表現を生成することができる。htmlデータから、すべてのテキスト項目の境界形成矩形に関する情報が解析され／(たとえば、Google Visionの出力と同様の)JSONフォーマットで保存され得る。
【００５５】
方法200は、OCRされた電子文書を文書の種類ごとに、たとえば、文書のページ単位で分類することを含むステップ206に進むことができる。これは、ユーザが、ページ画像サムネイルを調べることによって、たとえば、坑井ファイルPDF文書内の方向調査ページを識別する手作業による抽出プロセスとは逆である。サムネイルから、ユーザは、大部分が数値であるデータ、および方向調査ページによくある一般的なキーワード(または、異なる種類の文書に対する異なるキーワード)を有する、ページ上の表形式を見分けることができる。
【００５６】
データ抽出方法200のステップ206で、自動化ページ分類システムは、サポートベクターマシン(SVM)分類器を使用して、そのページが特定の基準を満たすか否かに基づいて、すべてのページにバイナリラベルを割り当てることができる。図3の電子文書のこの例では、バイナリラベルは、そのページが特定の種類の表データ(たとえば、方向調査)であるか否か、またはその表データを包含しているか否かのSVM判定に基づいて割り当てられる。
【００５７】
いくつかの態様では、SVM分類器は、1)英字コンテンツに対する数値コンテンツの比率、2)ページテキストの長さに対する数値コンテンツの比率、および3)方向調査固有のキーワードの数を表す特徴ベクトルにこのバイナリラベルを割り当てる。SVMモデルは、方向調査ページなど、バイナリ基準を満たす電子文書、ならびに方向調査データを含まない坑井ファイルページなど、バイナリ基準を満たさない文書に対してトレーニングされ得る。場合によっては、SVMのトレーニングの間、偽陽性(たとえば、SVMがページはバイナリ基準を満たしたと不正確に判定する)および偽陰性(たとえば、SVMがページは基準を満たさなかったと不正確に判定する)が存在し得る。方向調査データを有する坑井ファイルの例示的な電子文書(すなわち、電子文書300)では、偽陽性事例は、方向調査に関係しない表データを有するページ、または数値データの表を包含するプロットマップを含み得る。これらの例では、画像が表を包含したという事実は状況的である。すなわち、分類器は、本質的に、主に数値のコンテンツ、または一定のキーワードを包含した数値コンテンツを探す。偽陰性例は、(複数ページに及ぶ)方向調査の始点または終点のいずれかにおいてデータの1行のみを包含する方向調査ページを含むことがあり、通常、坑井に関する大部分が英字属性のデータを包含する。偽陰性問題を解決するために、すべての識別された方向調査ページに対して、本開示のデータ抽出方法は、前のページおよび後のページも方向調査として自動的に分類することができる。我々の目的上、過剰包含的になることは容認できるが、ページの欠落は容認できない。
【００５８】
方法200は、電子文書に対してレイアウト分析を実行することを含むステップ208に進むことができる。たとえば、文書形式画像内の表領域を見出すために、レイアウト分析は、ページ上の単語全体(whole-word)(または、数値入力)値に対するテキストセグメンテーションを計算することができる。電子文書300の方向調査ページのこの例では、そのような電子文書ページは、それらの文書を生成した坑井オペレータまたは傾斜掘削会社に応じて様々なレイアウトを有し得る形式種類の文書であり得るが、それらの文書がテキストのブロックまたはテキスト列を包含することはごくまれである。黒線およびグレーの中景領域(middle ground regions)が画像から除去された状態で、レイアウト分析は、ホワイトスペースを使用して、単語全体値に対する水平境界形成エリアおよび垂直境界形成エリアを識別する。
【００５９】
単語全体値のセグメンテーションの場合、水平テキスト行がまず識別され、次いで、それぞれの識別されたテキスト行に対する水平境界が識別され得る。テキスト行識別の場合、画素行の和の投影プロファイルを使用して局所的な最大値を見出すことができ、これにより、水平境界形成ホワイトスペースを表す画素行を示す。図4は、画素行の和および識別された水平ホワイトスペースを表すグラフ400を示す。グラフ400は、電子文書ページの上部(左)から電子文書ページの下部(右)への画素行の和を表す。グラフ400上の星印は、境界形成ホワイトスペースの領域を表す。
【００６０】
局所的な最大値は、すべての連続する水平ホワイトスペース境界が識別されるように、以上かの比較(greater-than-or-equal-to comparison)を使用して見出すことができる。(方向調査ページの場合のように)テキストが標準サイズである電子文書では、サイズは、およそ10ポイントフォントから12ポイントフォントであってよい。2つの水平ホワイトスペース境界ごとの間のエリアの画素の高さを6ポイントフォントの推定された高さと比較することによって、テキスト行を見出すことができる。
【００６１】
坑井ファイルなど、いくつかの例では、電子文書ページはレターサイズ(たとえば、幅8.5インチ×高さ11インチ)である。6ポイントフォントの画素の高さを計算するために、(ページが標準サイズであると仮定して)最長サイドの画素寸法を11で除算することによって、インチあたりの画素解像度が計算される。この値を6で乗算し、72(インチあたりのポイント)で除算して、6ポイントフォントの画素の高さを判定する。
【００６２】
テキスト行が識別されると、垂直境界形成ホワイトスペース領域を見出すために、それぞれの行が別個に評価される。垂直ホワイトスペース境界は、すべてのテキスト行領域に対する画素列手段の投影プロファイルを使用して容易に識別され得る。この方法の使用は、結果として、単語全体値ではなく、すべての文字に対して垂直ホワイトスペース境界をもたらす。形態変換を行画像に適用して、ワードブロブ(word blob)を形成する代わりに、投影プロファイル値のビニングおよびしきい値処理を使用して、文字を一緒に効果的に水平方向にぼかすことができる。
【００６３】
ビンサイズは、画像の水平画素寸法を同調パラメータ(たとえば、150)で除算することによって判定され得る。このパラメータを同調させて、異なる解像度に対してあらゆる状況で機能するが、その電子文書の種類に適した特定のフォントサイズ(たとえば、方向調査の場合、4〜5ポイントフォント)の近似の画素の高さに変換する適切な値を見出すことができる。このビンサイズは、概して、標準フォントサイズのカーニングよりも大きい場合があり、これは、投影プロファイル内の文字が一緒にぼかされることを意味する。画素列手段の各ビンを平均化して、新しい、簡素化された投影プロファイルを生成する。
【００６４】
この新しい投影プロファイルに関する値は、その後、特定のしきい値(たとえば、240)を使用して2値化され得る。黒のテキストおよび白の背景を用いた白黒の8ビット画像では、黒画素は0の値を有し、白画素は255の値を有する。240のしきい値を適用することは、いずれかの若干グレーのビン手段に0の値が割り当てられ、その他にはすべて1の値が割り当てられることを意味する。この新しい行投影プロファイルは処理がより容易であり得る。垂直境界形成ホワイトスペースのブロックを見出すことは、1が割り当てられたすべてのビンを選択することであり、逆に、0の値を有するビンを選定することは行テキスト値を表す。
【００６５】
すべての行に対してテキスト値ビンが識別される場合、結果として、ページ画像に関するすべてのテキスト値の境界形成矩形のセットがもたらされる。これらのテキスト境界形成矩形は行単位で編成され、(上部の0で開始する)行インデックスと(0で開始し左から右に続く)値インデックスとの連結である論理的識別情報(ID)が割り当てられる。
【００６６】
方法200は、電子文書内の1つまたは複数の表を検出することを含むステップ210に進むことができる。たとえば、いくつかの電子文書内の数値データ表では、長年にわたり数値データの列を表示するための規範であるので、個々の数値入力は、ページ上の他の数値入力とともに、それらの右境界に垂直に整列される。表入力は、同様に、他の値とともに、やはりそれらの右境界に垂直に整列される近隣値を有する。同じライン上のこれらの表値は、他のテキスト行とのそれらの垂直整列関連性と一致しなければならない。たとえば、行A、B、およびCと、列0、1、2とを有する数値データ表を仮定すると、A0、およびA1は、行BおよびCに関する値とのそれらの整列と一致しなければならない。
【００６７】
この基本的な表モデルを念頭に置いて、表候補を識別するための論理は、垂直関連性を見出し、次いで、水平関連性を見出すことを含む。いくつかの態様では、データ抽出方法は、垂直関連性を見出すための以下のアルゴリズムを含み得る。
すべての行テキスト値に対して、
他の行との垂直整列関連性を見出す、
垂直に整列された値のIDをリストに追加する、
キーとして行テキスト値IDを用いて、垂直関連性リストを辞書に保存する。
【００６８】
すべての整列が見出されると、近隣行値の間の垂直行関連性が比較される。2つの近隣行値が共通の垂直行関連性を共有する場合、それらのIDは、辞書内のそれらのそれぞれの関連性リストに追加される。テキスト行内のすべての値に対する他の行関連性に対する参照が次いでカウントされる。いくつかの態様では、それが「有効」と見なされるには、行要素の70パーセントがそれに関する垂直行関連性に一致しなければならない。70パーセントのパラメータは、もう少し限定的にするために、3分の2から切り上げられる。たとえば、方向調査表データを用いた坑井ファイルの例では、調査表は、10個以上の列を包含する。行の母集団は他の行の参照のカウントと比較されるため、行母集団の70パーセントに対する値は、比較の前に整数に変換される。したがって、10個の列を有する表の場合、70パーセントは、3分の2よりも1の整数だけより限定的である。
【００６９】
垂直関連性に対する70パーセント一致ルールを使用して、各行値に対する垂直関連性が調整される。すべての垂直関連性および水平関連性が識別されると、画像の表領域の範囲を見出すために、接続されたコンポーネントロジックが使用される。接続されたグラフ論理を使用して、複数の行に及ぶ接続値のいずれのセットも表としてフラグ付けされる。
【００７０】
図5は、図3の例示的な電子文書300ページに適用される表検出ステップの結果500を示す。ライトグレーのボックスは、レイアウト分析によって識別されたすべてのテキスト項目に関し、ダークグレーのボックスは、他の値とのそれらの垂直整列に基づく可能な表候補を表し、表データを囲むボックスは、接続された表領域を表す。
【００７１】
方法200は、検出された1つまたは複数の表からデータを抽出することを含むステップ212に進むことができる。たとえば、表領域に対する境界形成矩形情報が識別されると、表領域が画像から切り取られる。すべての垂直線および水平線を画像から除去して、新しい表領域画像内の垂直ホワイトスペース境界を探すことによって、列に対する境界形成エリアを識別することができる。これは、画素列手段を計算し、その後、テキスト行内の垂直境界を見出すために使用される同じ方法論を使用してその手段をビニングすることによって行われる。これらのビニングされた値から、垂直ホワイトスペースの連続ブロックが識別される。すべての連続的な垂直ホワイトスペースエリアの中間点が列境界になると見なされ得る。
【００７２】
いくつかの態様では、列境界を識別されたテキスト行境界と結合して、識別された表に対するセル値境界形成ボックスを作成する。これらの表セル境界形成矩形は、これらの表セル境界形成矩形に行および列単位のラベルが割り当てられる辞書内に記憶され得る。行は、AからZ、およびAAからZZの順序で英文字を使用してラベル付けされ得る。列は、第1の列に対して0で開始し、右に増大する整数値を使用してラベル付けされ得る。
【００７３】
この時点で、画像内の表は検出され編成されているが、OCR出力からデータは抽出されていない。例示的な実施形態では、セル値パーサは、表セルを通して反復し、セル領域内に入るテキスト境界形成ボックスに対してOCR出力を検査する。OCRテキスト値が表セル領域内部にあると見出されたとき、テキスト値は、表セル辞書に追加され、OCR辞書から除去される。
【００７４】
いくつかの態様では、ステップ212の後に、OCRから出力されたテキストが画像の表領域内のその行および列の位置に基づいて編成されるにつれて、コンマおよびスペースをピリオドに変換するようにテキストが解析される。「10,000.00」などのセル値の場合、これは、結果として、「10.000.00」などの新しい文字列をもたらすことになる。この文字列は、次いで、最後の少数に続く数字の数に基づいて、余分な小数点を除去するように補正される。この結果は、その場合、「10000.00」のように見える。ステップ212のこのサブステップは、いくつかの例では、コンマの代わりに、スペース(たとえば、「10 000.00」)が存在するか、または少数点がコンマになるとしてOCRによって誤って解釈される(たとえば、「10,000.00」が「10,000,00」として解釈される)、頻繁に生じるOCRコンテンツに伴う問題を解決するために実行される。このサブステップは、したがって、これらの問題の何らかの結合をなくすことができ、したがって、「1 0, 00 0, 00」などの値は「10000.00」に変換されることになる。
【００７５】
ステップ212のまたさらなる態様では、前の項で説明したサブステップに続いて、セル値テキストは、次いで、浮動小数点数に変換され得る。この変換が失敗した(たとえば、OCR出力が「雑音」または画像内に出現しない文字を包含するという指示の)場合、セル領域が画像内から切り取られ、単独でOCRを通る場合がある。この再OCRステップは、表セルテキストを隔離することによって、画像内の画素雑音の影響を制限し得、Tesseractの認識精度を改善する。次いで、識別された新しいテキストは、前のサブステップにおけるように、解析され、浮動小数点数に変換される。この時点で、この変換が失敗した場合、テキストコンテンツは、データ入力技術者(たとえば、人間による入力)によって後で入力されるように、除去され得る。
【００７６】
いくつかの例では、ステップ212に続く追加の処理ステップが生じ得る。たとえば、いくつかの態様では、すべての表セルに対してステップ212のサブステップが完了すると、データ抽出ソルバーは、表列ラベルを探すことができる。方向調査である電子文書の場合、たとえば、列をラベル付けするために使用される少数のキーワードが存在し得る。表領域の上部から開始して、ファジーマッチング(たとえば、単語のリストを互いに比較するためのMonge-Elkanアルゴリズム)は表列を表す表領域の上側のテキスト行を識別することができる。ファジーマッチングプロセスは、データ表領域の上部の周囲の行をスコアリングするために使用可能である。高いスコアの行は、主列ラベル行(column label row)として使用される。表領域の真上のテキスト行に対して高いスコアのテキスト行で開始するテキスト行が、表列ラベルであると仮定され得る。
【００７７】
列ラベル行に対するテキストが、次いで、表抽出に対する同様の方法論を使用して抽出され得る。テキスト列境界として、境界形成ホワイトスペース領域が識別され、次いで、OCRテキストが列ごとにソートされる。ソートされたテキストは、次いで、表列領域および列ラベル領域の水平範囲内の重複量に基づいて、表列に関連付けられる。列ラベルテキストがデータ列に関連付けられると、テキストは(すべての解析されたOCRテキストの相対位置情報を記憶する)表オブジェクトに追加される。表オブジェクトは、データを、たとえば、次のステップで説明するような、コンマ区切り値(CSV:comma separated values)ファイルに変換するために使用され得る。
【００７８】
方法200は、検出された1つまたは複数の表から抽出された表データを結合することを含むステップ214に進むことができる。いくつかの態様では、電子文書は複数のページに及ぶ。たとえば、坑井ファイル内では、方向調査(および、対応するデータ)は複数のページに及ぶことが多い。方法200は、各ページに関するそのようなデータを個々に抽出するために実行され得る。坑井ファイル文書全体がOCR実行され(ステップ204)、すべての方向調査ページが抽出される(ステップ212)と、連続的な方向調査ページ表を結合して、単一の大きな方向調査表にすることができる。
【００７９】
いくつかの態様では、表ページの結合は、異なるページ上の表が関連付けられるかどうかをまず判定することによって実行され得る。別個のページ上の表は、たとえば、両方の表に対する表領域全体の水平範囲がしきい割合(たとえば、95%)よりも大きく重複する場合、関連付けられると見なされる。加えて、各データ列の水平範囲もやはりしきい割合(たとえば、95%)よりも大きく重複しなければならず、クロステーブル列関連性の数は各表内の列の数の別のしきい割合(たとえば、80%)よりも大きくなければならない。この最後の要件は、列が1つの表の中で不正確に識別されるが、別の表内では不正確に識別されない(ページに沿って垂直に展開する画像アーティファクトは、時々、表列と誤解される場合があるが、結合しれるとき削除される)状況をなくす。
【００８０】
いくつかの態様では、別個のページ上の2つの表が関連付けられることが見出されると、第2の表の行が第1の表に添付され得る。加えて、両方の表に関する列ラベルテキストがリストに追加され得る。たとえば、方向調査データの場合、2つの表に関して、測定深度フィールドは、[[Measured,Depth], [Measured,Depth]]などの列ラベルテキストを有し得る。ページの区切りがあるまで、後続の連続的なページ表が第1の表に添付され得る。
【００８１】
方法200は、結合された表データに対して抽出された列ラベルを別名として付けることを含むステップ216に進むことができる。たとえば、別個のページ上の表の結合の後で、列ラベルが、たとえば、1つまたは複数のデータベースへの取り込みを容易にするために、別名として付けられ得る。方向調査データの場合、たとえば、特定の列ラベルの別名が存在し得る。すなわち、測定深度(MD)、傾斜(INCL)、方位角(AZI)、および正確な垂直深度(TVD)である。列ラベルを別名として付けるために、いくつかの態様では、異なる列の各々に対して抽出されたOCRテキストに対してトレーニングされた決定木分類器を実行することができる。決定木分類器は、5つのラベルのうちの1つを割り当てる。すなわち、必要とされる列(MD、INCL、AZI、TVD)の各々に対して1つのラベル、および他のすべての列ラベルに対して1つの包括的なラベルである。
【００８２】
いくつかの態様では、列ラベルを分類するために、列ラベルテキストは、すべての特徴が方向調査の列ラベル領域内の予想されるキーワードを表す特徴ベクトルにまず変換される。この特徴ベクトルは、方向調査表に固有である。特徴ベクトルは、いくつかの例では、それがテキスト内に出現するか否かに基づいて、すべての特徴が1または0として表される疎なワンホット(one-hot)特徴ベクトルと同様である。この場合、その特徴に対する値として役立つように、入力用語の正規化された編集距離が使用され得る。
【００８３】
測定深度(MD)の例をとると、特徴ベクトル内のすべてのキーワードに対して用語「測定」に対する編集距離が計算され得る。最高スコアの編集距離は、特徴「測定」において1.0である。(ゼロのアレイ[0, 0, 0, 0, 0 ...]として開始する)特徴ベクトルでは、1.0は、特徴「測定」に対する値として設定される([1.0, 0, 0, 0, 0 ...])。「深度」に対して同じプロセスが繰り返される。この場合、結果として生じる特徴ベクトルは、[1.0, 1.0, 0, 0, 0, 0, 0 ...]として出現し得、この場合、最初の2つの特徴は用語「測定」および「深度」である。
【００８４】
この特徴ベクトルでは、OCR結果がつづりを間違えたキーワードをもたらす状況をなくすために、(基本的なワンホット特徴ベクトルの代わりに)編集距離が使用され得る。これらの場合、「測定深度」はつづりがわずかに間違っている場合があり、したがって、特徴ベクトルは、代わりに、[0.7, 0.6, 0, 0, 0, 0 ...]のように見える。これは依然として、決定木分類器がテキストコンテンツをラベル付けするために十分な情報であり得る。
【００８５】
表結合ステップの終わりに、結合された表に加えて、データ抽出ソルバーは、各ページに関して、各列に対する列ラベルを記憶することができる。重複する列の場合、各ページ上で見出されたテキストが別個に分類され得る。重複する列ラベルがそれぞれ別個に分類されると、その結合された列に対する別名として、最も共通する、または最高スコアのラベルが選定され得る。たとえば、結合された列内に、列ラベルテキスト[[“Measured”, “Depth”],[“Measured”, “Depth”],[“Madgfljag”, “Dwegpt”]]が存在し得る。分類器は、これらを[MD, MD, Unknown]としてそれぞれラベル付けすることができる。最も共通するラベルはMDであり、したがって、MD(測定深度)が未知の列に適用される。
【００８６】
2つの表のみが結合される状況では、2つの列ラベルを分類すべきであるため、最高スコアのラベルが使用され得る。この場合、スコアは、(たとえば、トレーニングデータに基づく)ラベル精度が正確である確率を意味する。別名が導出された後で、これらの別名が結合された表に適用され得る。別個のプロセスが、4つの必要とされる列を有する表を見出し、それらをデータベースにロードし、そこで、ステップ214におけるようにユーザに提示可能になる前に、それらの表はさらに処理される。
【００８７】
方法200は、ユーザに提示するため、記憶するため、ハードコピーに変換するため(たとえば、印刷するためなど)に、抽出されたデータを電子ファイル内にエクスポートすることを含むステップ218に進むことができる。たとえば、すべてのセル値領域に対してテキストが識別されると、セル境界辞書は、Pandasデータフレームに変換され、CSVファイルとしてエクスポートされ得る。
【００８８】
図6は、本開示によるデータ抽出方法をすべてまたは部分的に実装し得る例示的なコンピューティングシステム600の概略図である。コンピューティングシステム600は、プリント回路版(PCB)、プロセッサ、デジタル回路、または車両の一部である他のもののような、様々な形態のデジタルコンピュータを含むことが意図される。加えて、システムは、ユニバーサルシリアルバス(USB)フラッシュドライブなど、ポータブル記憶媒体を含み得る。たとえば、USBフラッシュドライブは、オペレーティングシステムおよび他のアプリケーションを記憶し得る。USBフラッシュドライブは、無線送信機、または別のコンピューティングデバイスのUSBポート内に挿入され得るUSBコネクタなど、入力／出力構成要素を含み得る。
【００８９】
コンピューティングシステム600は、プロセッサ610と、メモリ620と、記憶デバイス630と、入力／出力デバイス640とを含む。構成要素610、620、630、および640は各々、システムバス650を使用して相互接続される。プロセッサ610は、コンピューティングシステム600内で実行するための命令を処理することができる。プロセッサは、いくつかのアーキテクチャのうちのいずれかを使用して設計され得る。たとえば、プロセッサ610は、CISC(複合命令セットコンピュータ)プロセッサ、RISC(縮小命令セットコンピュータ)プロセッサ、またはMISC(最小命令セットコンピュータ)プロセッサであり得る。
【００９０】
一実施形態では、プロセッサ610は、シングルスレッドプロセッサである。別の実施形態では、プロセッサ610は、マルチスレッドプロセッサである。プロセッサ610は、メモリ620内または記憶デバイス630上に記憶された命令を処理して、入力／出力デバイス640上のユーザインターフェースにグラフィカル情報を表示することができる。
【００９１】
メモリ620は、情報をコンピューティングシステム600内に記憶する。いくつかの実施形態では、メモリ620は、コンピュータ可読媒体である。一実施形態では、メモリ620は、揮発性メモリユニットである。別の実施形態では、メモリ620は、不揮発性メモリユニットである。
【００９２】
記憶デバイス630は、コンピューティングシステム600に大容量記憶装置を提供することができる。一実施形態では、記憶デバイス630は、コンピュータ可読媒体である。様々な異なる実施形態では、記憶デバイス630は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイスであってよい。
【００９３】
入力／出力デバイス640は、コンピューティングシステム600に入力／出力動作を提供する。一実施形態では、入力／出力デバイス640は、キーボードおよび／またはポインティングデバイスを含む。別の実施形態では、入力／出力デバイス640は、グラフィカルユーザインターフェースを表示するためのディスプレイユニットを含む。
【００９４】
説明した特徴は、デジタル電子回路内で、もしくはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せにおいて実装され得る。この装置は、情報担体内で、たとえば、プログラマブルプロセッサによって実行するための機械可読記憶デバイス内で、有形に具現化されるコンピュータプログラム製品内で実装され得、方法ステップは、入力データに対して動作し、出力を生成することによって、説明した実施形態の機能を実行するための命令のプログラムを実行するプログラマブルプロセッサによって実行され得る。説明した特徴は、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するように結合された少なくとも1つのプログラマブルプロセッサを含めて、プログラマブルシステム上で実行可能である、1つまたは複数のコンピュータプログラム内で効果的に実装され得る。コンピュータプログラムは、ある動作を実行するか、またはある結果をもたらすように、コンピュータ内で直接的または間接的に使用され得る命令のセットである。コンピュータプログラムは、コンパイル型言語もしくはインタープリタ型言語を含めて、任意の形態のプログラミング言語で書き込まれてよく、コンピュータプログラムは、スタンドアロンプログラムもしくはモジュール、構成要素、サブルーチン、またはコンピューティング環境で使用するのに適した他のユニットなどを含めて、任意の形態で配備されてよい。
【００９５】
命令のプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方、単独のプロセッサ、または任意の種類のコンピュータの複数のプロセッサのうちの1つを含む。概して、プロセッサは、リードオンリメモリ、もしくはランダムアクセスメモリ、または両方から命令およびデータを受信することになる。コンピュータの必須要素は、命令を実行するためのプロセッサ、および命令およびデータを記憶するための1つまたは複数のメモリである。概して、コンピュータは、データファイルを記憶するための1つまたは複数の大容量記憶デバイスも含むことになるか、またはそれらと通信するために動作可能に結合されることになる。そのようなデバイスは、内部ハードディスクおよびリムーバブルディスクなど、磁気ディスク、光磁気ディスク、および光ディスクを含む。コンピュータプログラム命令およびデータを有形に具現化するのに適した記憶デバイスは、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなど、半導体メモリデバイス、内部ハードディスクおよびリムーバブルディスクなど、磁気ディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含めて、すべての形態の不揮発性メモリを含む。プロセッサおよびメモリは、ASIC(特定用途向け集積回路)によって補足されてよく、またはASIC内に組み込まれてよい。
【００９６】
ユーザとの対話を提供するために、これらの特徴は、ユーザに情報を表示するためのCRT(陰極線管)モニタまたはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにそれによってユーザがコンピュータに入力を提供することができる、キーボード、およびマウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上で実装され得る。加えて、そのような活動は、タッチスクリーンフラットパネルディスプレイおよび他の適切な機構によって実装され得る。
【００９７】
これらの特徴は、データサーバなどのバックエンド構成要素を含むか、もしくはアプリケーションサーバまたはインターネットサーバなどのミドルウェア構成要素を含むか、またはグラフィカルユーザインターフェースまたはインターネットブラウザを有するクライアントコンピュータなどのフロントエンド構成要素を含むか、あるいはそれらの何らかの組合せを含む制御システム内で実装され得る。システムの構成要素は、通信ネットワークなど、任意の形態または媒体のデジタルデータ通信によって接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、(アドホック要素または静的要素を有する)ピアツーピアネットワーク、グリッドコンピューティングインフラストラクチャ、およびインターネットを含む。
【００９８】
本明細書は多くの特定の実装の詳細を包含しているが、これらは、すべての発明または特許請求され得るものの範囲に対する限定と解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に固有の特徴の説明と解釈されるべきである。本明細書で別個の実施形態の文脈で説明したいくつかの特徴は、単一の実施形態の形で組み合わされて実装されてもよい。反対に、単一の実施形態の文脈で説明した様々な特徴は、別個に複数の実施形態の形で、または何らかの適切な部分の組合せの形で実装されてもよい。その上、特徴は上記でいくつかの組合せの形で動作するとして説明され、さらに当初そのように特許請求されている場合があるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、その組合せから削除されてよく、特許請求される組合せは、部分の組合せまたは部分の組合せの変形に関する場合がある。
【００９９】
同様に、動作は図面において特定の順序で示されているが、これは、望ましい結果を達成するために、そのような動作が示された特定の順序または連続的な順序で実行されること、または、すべての示した動作が実行されることを必要とすると理解されるべきではない。状況によっては、マルチタスキングおよび並行処理が有利であり得る。その上、上記で説明した実施形態における様々なシステム構成要素の分離は、そのような分離がすべての実施形態で必要とされると理解されるべきではなく、説明したプログラム構成要素およびシステムが、概して、単一のソフトウェア製品内で一緒に統合され得る、または複数のソフトウェア製品内にパッケージ化され得ると解釈されるべきである。
【０１００】
いくつかの実施形態が説明されてきた。とはいえ、本開示の趣旨および範囲から逸脱せずに、様々な修正を行うことが可能であることを理解されよう。たとえば、本明細書で説明した例示的な動作、方法、またはプロセスは、説明したステップよりも多いステップまたは少ないステップを含んでよい。さらに、そのような例示的な動作、方法、またはプロセスのステップは、説明した、または図面に示したステップとは異なる序列で実行されてよい。したがって、他の実施形態は、以下の請求項の範囲内である。
【符号の説明】
【０１０１】
100  分散型ネットワークアーキテクチャ
102  クライアントデバイス
104  クライアントデバイス
106  クライアントデバイス
108  クライアントデバイス
110  クライアントデバイス
112  構造化データ処理サーバシステム
114  ネットワーク
116  サーバデバイス
118  データストア
130  データ抽出ソルバー
132  処理デバイス
134  インターフェース
136  メモリモジュール
140  電子文書
142  OCRされたデータ
200  方法
300  電子文書
400  グラフ
500  表検出ステップの結果
600  コンピューティングシステム
610  プロセッサ
620  メモリ
630  記憶デバイス
640  入力／出力デバイス
【図１】
2020511726.tif 000003
【図２】
2020511726.tif 000004
【図３−１】
2020511726.tif 000005
【図３−２】
2020511726.tif 000006
【図４】
2020511726.tif 000007
【図５−１】
2020511726.tif 000008
【図５−２】
2020511726.tif 000009
【図６】
2020511726.tif 000010
【国際調査報告】
2020511726.tif 000011
2020511726.tif 000012