(57)【要約】【課題】特定の項目に対応した文字列の位置が予め定められていない場合であっても、画像から特定の項目に対応した文字列を抽出する。【解決手段】情報処理装置１０は、画像の文字が文字コードに変換された後の文字列を抽出し、ユーザが取得したい項目を表すキーワードを構成する複数の個別キーワードの画像における位置情報を用いて、個別キーワードをグループに集約する。そして、情報処理装置１０は、抽出した文字列の中からグループに対応したバリュー候補を割り当て、グループに割り当てたバリュー候補を出力する。【選択図】図１
2020123231.tif 000002
【特許請求の範囲】
【請求項１】
画像の文字が文字コードに変換された後の文字列を抽出する抽出部と
前記抽出部で抽出した文字列のうち、ユーザが取得したい項目を表す複数の第１の文字列の前記画像における位置情報を用いて、前記第１の文字列をグループに集約する集約部と、
前記抽出部で抽出された文字列の中から、前記集約部で集約されたグループに対応した第２の文字列の候補を割り当てる割当部と、
前記割当部でグループに割り当てられた前記第２の文字列の候補を出力する出力部と、
を備えた情報処理装置。
【請求項２】
前記集約部は、前記第１の文字列の各々が含まれるように、前記第１の文字列をグループに集約する
請求項１記載の情報処理装置。
【請求項３】
前記集約部は、前記画像上で前記第１の文字列の各々を含むように取り囲む仮想の矩形の大きさが狭くなるように選択した前記第１の文字列の各々をグループとして集約する
請求項１または請求項２記載の情報処理装置。
【請求項４】
前記集約部は、行毎に前記第１の文字列を集約し、集約した前記第１の文字列の中に前記第１の文字列の各々が含まれなかった場合、段落単位で前記第１の文字列の各々が含まれるようにグループの集約を行う
請求項３記載の情報処理装置。
【請求項５】
前記割当部は、グループに設定した前記第１の文字列の各々を代表する代表文字列との関連度合いに応じて、前記第２の文字列の候補をグループに割り当てる
請求項１〜請求項４の何れか１項に記載の情報処理装置。
【請求項６】
前記第２の文字列の候補と前記代表文字列との関連度合いが少なくとも１つの評価項目によって表される
請求項５記載の情報処理装置。
【請求項７】
前記複数の評価項目に、前記第２の文字列の候補と前記代表文字列との距離が含まれ、
前記第２の文字列の候補と前記代表文字列との距離が近づくに従って前記代表文字列との関連度合いが高くなるように設定される
請求項６記載の情報処理装置。
【請求項８】
前記複数の評価項目に、前記代表文字列から見た前記第２の文字列の候補の方向が含まれ、
前記代表文字列から見た前記第２の文字列の候補の方向が、前記代表文字列に対応する文字列が配置される方向として予め定められた方向に近づくに従って、前記代表文字列との関連度合いが高くなるように設定される
請求項６または請求項７記載の情報処理装置。
【請求項９】
前記複数の評価項目に、前記第２の文字列の候補が表すデータ種別が含まれ、
前記第２の文字列の候補が表すデータ種別が、前記代表文字列を含む項目が取り得るデータ種別として予め設定されたデータ種別である場合に、前記代表文字列との関連度合いが高くなるように設定される
請求項６〜請求項８の何れか１項に記載の情報処理装置。
【請求項１０】
前記割当部は、グループ内の前記第１の文字列の各々が同じ行内に含まれる場合、グループ内で右方向に位置する前記第１の文字列を前記代表文字列に割り当て、
グループ内の前記第１の文字列の各々が複数の行に分散している場合、グループ内で下方向に位置する前記第１の文字列を前記代表文字列に割り当て、
グループ内の前記第１の文字列の各々が複数の行に分散している場合で、かつ、グループ内で下方向に位置する前記第１の文字列を含む行に複数の前記第１の文字列が含まれる場合、グループ内で下方向に位置する前記第１の文字列を含む行の右方向に位置する前記第１の文字列を前記代表文字列に割り当てる
請求項５〜請求項９の何れか１項に記載の情報処理装置。
【請求項１１】
コンピュータを、請求項１〜請求項１０の何れか１項に記載の情報処理装置の各部として機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、及び情報処理プログラムに関する。
【背景技術】
【０００２】
スキャナで読み取った画像から、指定したキーワードによって表される特定の項目と対応付けられた文字列を抽出する情報処理装置が知られている。
【０００３】
特許文献１には、用紙を読み取る第１の読取手段と、前記第１の読取手段による読取データの中から用紙に記されたマーキングを検出するマーキング検出手段と、検出されたマーキングのマーキング領域内または領域近傍に予め記載されている文字列を属性名として抽出する属性名抽出手段と、前記属性名抽出手段により抽出された属性名を記憶する属性情報記憶手段と、属性値が記入された用紙を読み取る第２の読取手段と、前記第２の読取手段による読取データから、前記属性情報記憶手段に記憶された属性名の検出及び検出した属性名の記載位置の特定を行う属性名検出手段と、前記第２の読取手段による読取データから、前記属性名検出手段により検出された属性名の検出位置周辺の文字列を抽出し、その抽出した文字列を当該属性の属性値として当該属性名に対応付けして前記属性情報記憶手段に登録する属性値抽出手段と、を有する文書処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１９２０３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば回路図のように、記載されている内容を説明する文字列の記載位置が定まっておらず、自由な位置に記載される図面をスキャナで読み取ることで得られた画像から、ユーザが指定する特定の項目に対応した文字列を抽出したいことがある。
【０００６】
しかしながら、画像における文字列の記載位置が定められていないため、例えば項目毎に文字列を記載する欄が予め設けられているような原稿から特定の項目に対応した文字列を特定する場合と比較して、何れの文字列が特定の項目に対応した文字列なのかを特定することは困難である。
【０００７】
本発明は、特定の項目に対応した文字列の位置が予め定められていない場合であっても、画像から特定の項目に対応した文字列を抽出することができる情報処理装置、及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１態様に係る情報処理装置は、画像の文字が文字コードに変換された後の文字列を抽出する抽出部と前記抽出部で抽出した文字列のうち、ユーザが取得したい項目を表す複数の第１の文字列の前記画像における位置情報を用いて、前記第１の文字列をグループに集約する集約部と、前記抽出部で抽出された文字列の中から、前記集約部で集約されたグループに対応した第２の文字列の候補を割り当てる割当部と、前記割当部でグループに割り当てられた前記第２の文字列の候補を出力する出力部と、を備える。
【０００９】
第２態様に係る情報処理装置は、第１態様に係る情報処理装置において、前記集約部が、前記第１の文字列の各々が含まれるように、前記第１の文字列をグループに集約する。
【００１０】
第３態様に係る情報処理装置は、第１態様または第２態様に係る情報処理装置において、前記集約部が、前記画像上で前記第１の文字列の各々を含むように取り囲む仮想の矩形の大きさが狭くなるように選択した前記第１の文字列の各々をグループとして集約する。
【００１１】
第４態様に係る情報処理装置は、第３態様に係る情報処理装置において、前記集約部が、行毎に前記第１の文字列を集約し、集約した前記第１の文字列の中に前記第１の文字列の各々が含まれなかった場合、段落単位で前記第１の文字列の各々が含まれるようにグループの集約を行う。
【００１２】
第５態様に係る情報処理装置は、第１態様〜第４態様の何れかの態様に係る情報処理装置において、前記割当部が、グループに設定した前記第１の文字列の各々を代表する代表文字列との関連度合いに応じて、前記第２の文字列の候補をグループに割り当てる。
【００１３】
第６態様に係る情報処理装置は、第５態様に係る情報処理装置において、前記第２の文字列の候補と前記代表文字列との関連度合いが少なくとも１つの評価項目によって表される。
【００１４】
第７態様に係る情報処理装置は、第６態様に係る情報処理装置において、前記複数の評価項目に、前記第２の文字列の候補と前記代表文字列との距離が含まれ、前記第２の文字列の候補と前記代表文字列との距離が近づくに従って前記代表文字列との関連度合いが高くなるように設定される。
【００１５】
第８態様に係る情報処理装置は、第６態様または第７態様に係る情報処理装置において、前記複数の評価項目に、前記代表文字列から見た前記第２の文字列の候補の方向が含まれ、前記代表文字列から見た前記第２の文字列の候補の方向が、前記代表文字列に対応する文字列が配置される方向として予め定められた方向に近づくに従って、前記代表文字列との関連度合いが高くなるように設定される。
【００１６】
第９態様に係る情報処理装置は、第６態様〜第８態様の何れかの態様に係る情報処理装置において、前記複数の評価項目に、前記第２の文字列の候補が表すデータ種別が含まれ、前記第２の文字列の候補が表すデータ種別が、前記代表文字列を含む項目が取り得るデータ種別として予め設定されたデータ種別である場合に、前記代表文字列との関連度合いが高くなるように設定される。
【００１７】
第１０態様に係る情報処理装置は、第５態様〜第９態様の何れかの態様に係る情報処理装置において、前記割当部が、グループ内の前記第１の文字列の各々が同じ行内に含まれる場合、グループ内で右方向に位置する前記第１の文字列を前記代表文字列に割り当て、グループ内の前記第１の文字列の各々が複数の行に分散している場合、グループ内で下方向に位置する前記第１の文字列を前記代表文字列に割り当て、グループ内の前記第１の文字列の各々が複数の行に分散している場合で、かつ、グループ内で下方向に位置する前記第１の文字列を含む行に複数の前記第１の文字列が含まれる場合、グループ内で下方向に位置する前記第１の文字列を含む行の右方向に位置する前記第１の文字列を前記代表文字列に割り当てる。
【００１８】
第１１態様に係る情報処理プログラムは、コンピュータを、第１態様〜第１０態様の何れかの態様に係る情報処理装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１９】
第１態様、及び第１１態様によれば、特定の項目に対応した文字列の位置が予め定められていない場合であっても、画像から特定の項目に対応した文字列を抽出することができる、という効果を有する。
【００２０】
第２態様によれば、ユーザが取得したい特定の項目を表す各々の第１の文字列における記載位置が異なる場合であっても、画像から特定の項目の記載範囲を特定することができる、という効果を有する。
【００２１】
第３態様によれば、同じ文字列を表す第１の文字列が複数存在する場合であっても、何れの第１の文字列が特定の項目を表す第１の文字列として適しているかを特定することができる、という効果を有する。
【００２２】
第４態様によれば、記載位置の近さのみに従って第１の文字列を集約する場合と比較して、特定の項目を表す一連の第１の文字列を精度よく集約することができる、という効果を有する。
【００２３】
第５態様によれば、各々の第１の文字列との関連度合いに応じて第２の文字列の候補をグループに割り当てる場合と比較して、特定の項目に対応した第２の文字列を精度よく特定することができる、という効果を有する。
【００２４】
第６態様によれば、第２の文字列の候補と代表文字列との関連度合いを数値化することができる、という効果を有する。
【００２５】
第７態様によれば、第２の文字列の候補と代表文字列との距離によって、第２の文字列の候補と代表文字列との関連度合いを数値化することができる、という効果を有する。
【００２６】
第８態様によれば、代表文字列に対する第２の文字列の候補の記載方向によって、第２の文字列の候補と代表文字列との関連度合いを数値化することができる、という効果を有する。
【００２７】
第９態様によれば、第２の文字列の候補のデータ種別によって、第２の文字列の候補と代表文字列との関連度合いを数値化することができる、という効果を有する。
【００２８】
第１０態様によれば、第１の文字列の配置形態によらず、予め定めた位置にある第１の文字列を代表文字列に割り当てる場合と比較して、特定の項目に対応した第２の文字列を精度よく特定することができる、という効果を有する。
【図面の簡単な説明】
【００２９】
【図１】情報処理装置の機能構成例を示すブロック図である。
【図２】変換画像の一例を示す図である。
【図３】キーワードテーブルの一例を示す図である。
【図４】グループの集約例を示す図である。
【図５】情報処理装置における電気系統の要部構成例を示す図である。
【図６】情報処理の流れの一例を示すフローチャートである。
【図７】集約化処理の流れの一例を示すフローチャートである。
【図８】段落単位に分割した変換画像の例を示す図である。
【図９】情報処理装置によるバリューの取得例を示す図である。
【発明を実施するための形態】
【００３０】
以下、本実施の形態について図面を参照しながら説明する。なお、機能が同じ構成要素及び処理には全図面を通して同じ符合を付与し、重複する説明を省略する。
【００３１】
＜実施形態＞
図１は、例えば光学的に内容を読み取った原稿の画像に対して文字認識(Optical Character Recognition:ＯＣＲ)処理を行った文書から、ユーザが指定した特定の項目に対応した文字列を抽出して出力する情報処理装置１０の機能構成例を示すブロック図である。
【００３２】
情報処理装置１０は、スキャン処理部１１、画像処理部１２、出力部１３、ユーザインターフェース(User Interface:ＵＩ)部１４、及び制御部１５の各機能部と、キーワードデータベース(Database:ＤＢ)１６を含む。
【００３３】
スキャン処理部１１は、原稿に記載された内容を光学的に読み取るスキャナユニット５０を用いて、原稿に対応した画像（以降、単に「画像」という）を生成し、画像処理部１２に引き渡す。
【００３４】
スキャナユニット５０で読み取る原稿に制約はないが、文字列の記載位置が定まっておらず、ユーザの意思に従って文字列が自由な位置に配置されるような原稿がスキャナユニット５０で読み取られる。例えば回路図や説明図は内容を説明する図と一緒に文字列が記載されるが、文字列は図と重複しないように図の余白部分に記載されることから、文字列の記載位置が定められていないことが多い。したがって、以降では、文字列の記載位置が定められていない原稿を特に「図面」ということにする。
【００３５】
画像処理部１２は、ＯＣＲ処理部１２Ａ、抽出部１２Ｂ、集約部１２Ｃ、及び割当部１２Ｄを含んでいる。
【００３６】
スキャン処理部１１から図面の画像を受け付けた画像処理部１２は、まず、ＯＣＲ処理部１２Ａで画像に対して公知の画像認識を行い、画像のうち文字に相当する領域を文字コードに変換する。すなわち、ＯＣＲ処理部１２Ａによって、画像における文字領域が文字コードとして扱われるようになり、文字のコピーや検索が行われるようになる。以降では、ＯＣＲ処理部１２Ａで画像に含まれる文字領域を文字コードに変換した後の変換データを「変換画像２０」ということにする。変換画像２０における文字の位置は画像における文字の位置と同じになるため、変換画像２０における文字の記載位置とは、画像における文字の記載位置のことでもある。
【００３７】
図２は、変換画像２０の一例を示す図である。図２（Ａ）及び図２（Ｂ）に示すように、変換画像２０にはそれぞれ文字コードによって表される文字列が含まれる。図面には寸法や性能等、様々な情報が記載されているが、上述したように、ユーザが必要とする情報は図面のどこにどのような形式で記載されているか予めわからないため、情報処理装置１０は、図面に含まれる情報の中からユーザが取得対象として指定した項目に対応した情報を出力する。
【００３８】
そのため、抽出部１２Ｂは文字コードを参照することで、ＯＣＲ処理部１２Ａによって生成された変換画像２０から、ユーザが取得したい項目を表す文字列を抽出する。以降では、ユーザが取得したい項目を表す文字列を「キーワード」という。例えば図面が何らかの装置の説明図であり、図面から装置における定格最大電圧を取得したい場合、キーワードとして「定格最大電圧」の文字列が情報処理装置１０に指定される。
【００３９】
図２（Ａ）に示すように、キーワードである「定格最大電圧」と一致する文字列が変換画像２０に含まれる場合には、キーワードと文字列の比較だけで変換画像２０に「定格最大電圧」が記載されていることが把握され、キーワードに対応した文字列で、かつ、キーワードの内容を表す文字列（以降、「バリュー」という）が得られる。具体的には、図２（Ａ）の場合、「１０Ｖ」がキーワードである「定格最大電圧」のバリューとなる。バリューは、開示の技術における第２の文字列の一例である。
【００４０】
しかしながら、ユーザの意思に従って文字列が自由な位置に記載される図面では、定格最大電圧を図２（Ｂ）のように記載していることも考えられる。図２（Ｂ）の例では、「定格最大電圧」を「定格」、「最大」、及び「電圧」の各単語に分割し、各々の単語を異なる行に記載している。この場合、「最大：１０Ｖ」と記載されている行の上に「電圧の値は以下の通り」と記載され、更にその上に「定格」と記載されているため、人間であれば、図２（Ｂ）の変換画像２０に定格最大電圧のバリューが「１０Ｖ」と記載されていることがわかる。しかし、「定格最大電圧」がキーワードとして指定されると、図２（Ｂ）の変換画像２０には「定格最大電圧」の文字列は存在しないため、図２（Ｂ）の変換画像２０から定格最大電圧のバリューが得られないことになる。
【００４１】
したがって、情報処理装置１０では、キーワードを更に単語に分割し、単語に分割された各文字列（以降、「個別キーワード」という）の形態でキーワードを管理する。なお、キーワードを単語以外の単位に分割してもよいが、一例としてキーワードが単語に分割されている状況について説明する。個別キーワードは開示の技術における第１の文字列の一例である。
【００４２】
図３は、キーワードＤＢ１６で管理されるキーワードテーブル３０の一例を示す図である。キーワードテーブル３０では、ユーザによって指定されたキーワードの個別キーワードがそれぞれ対応付けられてキーワード毎に管理されている。例えば「定格最大電圧」のキーワードが第１キーワード、第２キーワード、及び第３キーワードに分割され、第１キーワードには「定格」、第２キーワードには「最大」、及び第３キーワードには「電圧」が対応付けられている。
【００４３】
また、キーワードを識別するため、各々のキーワードには、他のキーワードと重複しないように割り当てられた管理番号が対応付けられている。管理番号＝“１”のキーワードが選択された場合、「定格最大電圧」のキーワードを構成する各個別キーワードが選択され、管理番号＝“２”のキーワードが選択された場合、「定格最小電圧」のキーワードを構成する各個別キーワードが選択される。
【００４４】
更に各キーワードにはデータ種別が対応付けられている。「データ種別」とは、対応するキーワードのバリューの表現形態である。バリューの表現形態としては、例えば数値、文字、及び真理値が存在する。
【００４５】
「定格最大電圧」のキーワードの場合、電圧は「１０Ｖ」のように数値を含んで表されることから、データ種別には「数値」が設定される。なお、データ種別の文字には「○」や「△」といった記号も含まれるが、「記号」のようなデータ種別を別途設けてもよい。また、データ種別の文字を、例えば「英文字」、「漢字」、「ひらがな」、「カタカナ」、「漢字及びひらがな」といった区分に細分化してもよい。なお、データ種別に、例えば「日付」や「年齢」のようにバリューの表現形態ではなくバリューが有する意味合いを設定するようにしてもよい。
【００４６】
図３では、キーワードを第１キーワード〜第３キーワードの３つの個別キーワードで管理する例が示されているが、キーワードに含まれる単語数に従って、キーワードテーブル３０で管理される個別キーワードの数が変化する。したがって、例えばこれ以上単語に分割できないキーワードや、一連の単語が分離されず連なった形態で図面に記載されていることに意味のあるキーワードは、キーワードそのものを１つの個別キーワードとして管理してもよい。この場合、キーワードに対応した個別キーワードの数は１つとなる。以降では、キーワードが複数の個別キーワードに分割されている場合について説明する。
【００４７】
抽出部１２Ｂは、キーワードＤＢ１６のキーワードテーブル３０からユーザが選択した管理番号に対応した個別キーワードを取得し、取得した個別キーワードを変換画像２０から抽出する。
【００４８】
集約部１２Ｃは、抽出部１２Ｂが変換画像２０から抽出した各々の個別キーワードの位置情報を用いて、抽出した個別キーワードを、ユーザが選択した管理番号と対応付けられた各々の個別キーワードをそれぞれ１つずつ含み、かつ、できるだけ近くにある個別キーワード同士が含まれるようなグループに集約する。
【００４９】
図４は、図２（Ｂ）に示した変換画像２０から抽出するキーワードとして、図３のキーワードのうちユーザによって管理番号＝“１”のキーワード、すなわち「定格最大電圧」が選択された場合のグループの集約例について示した図である。
【００５０】
この場合、変換画像２０から「定格」、「最大」、及び「電圧」の各個別キーワードが抽出されるため、集約部１２Ｃは、できるだけ近くにある各々の個別キーワード同士が含まれるような矩形２２を設定し、矩形２２に含まれる各々の個別キーワードを集約したグループを生成する。
【００５１】
なお、集約部１２Ｃにおけるグループの生成方法については、後ほど詳細に説明する。矩形２２は、抽出された個別キーワードを集約するため、変換画像２０に設定された仮想領域であり、変換画像２０に矩形２２のデータを追加するものではない。
【００５２】
矩形２２には、キーワードである「定格最大電圧」を構成する各文字列が他の領域より接近して分散した形で含まれることになる。すなわち、他の領域に比べて矩形２２の範囲に、キーワードを別の表現で表した記載が行われている蓋然性が高いことを示している。これに伴い、他の領域に比べて、矩形２２で示される範囲の周囲にキーワードのバリューが記載されている蓋然性も高くなる。
【００５３】
したがって、抽出部１２Ｂは集約部１２Ｃで集約されたグループの周囲の文字列を変換画像２０から抽出し、割当部１２Ｄは、抽出部１２Ｂで抽出された文字列の中から、グループに対応したバリューと思われる文字列、すなわち、バリュー候補を割り当てる。キーワードのバリュー候補は１つに限られず、複数割り当てられる場合もある。割当部１２Ｄは、グループに含まれる個別キーワードとの関連度合いに応じて、割り当てたバリュー候補がキーワードのバリューである確からしさを表す評価値を各々のバリュー候補に割り当てる。なお、割当部１２Ｄにおけるグループへのバリュー候補の割り当て方法、及びバリュー候補の評価値の算出方法については後ほど詳細に説明する。
【００５４】
割当部１２Ｄは、ユーザによって指定されたキーワードと、キーワードの個別キーワードをグループに集約することで得られたキーワードのバリュー候補及び当該バリュー候補の評価値を出力部１３に引き渡す。
【００５５】
出力部１３は、画像処理部１２の割当部１２Ｄからキーワードと評価値を伴ったバリュー候補を受け付けると、キーワードに対する抽出結果を出力する。ここでは、キーワードと評価値を伴ったバリュー候補の組み合わせのことを「キーワードに対する抽出結果」と表している。
【００５６】
また、「キーワードに対する抽出結果を出力する」とは、キーワードのバリュー候補を認識可能な状態にすることである。キーワードのバリュー候補を認識する対象は人に限られず装置であってもよい。したがって、キーワードと対応付けてバリュー候補を表示装置に表示する、用紙に印字する、音声で通知する、記憶装置に記憶する、及び図示しない通信回線を通じて後述する通信ユニット４７から送信することは、それぞれキーワードに対する抽出結果の出力に相当する形態である。
【００５７】
ＵＩ部１４は、ユーザからの指示を受け付けると共に、情報処理装置１０の動作や状態といった各種情報をユーザに通知する。例えばＵＩ部１４は、キーワードＤＢ１６へのキーワードの登録、変更、及び削除に関する指示や、バリューを取得したいキーワードの管理番号をユーザから受け付けると共に、指定されたキーワードに対する抽出結果をユーザに通知する。
【００５８】
制御部１５は、スキャン処理部１１、画像処理部１２、出力部１３、及びＵＩ部１４の各機能部の処理を制御すると共に、ＵＩ部１４から受け付けたキーワードを個別キーワードに分割し、キーワードＤＢ１６に登録するといった制御を行う。なお、ユーザは、個別キーワードをＵＩ部１４に入力してもよい。この場合、制御部１５は受け付けた個別キーワードを分割することなく、キーワードＤＢ１６に登録する。
【００５９】
図５は、情報処理装置１０における電気系統の要部構成例を示す図である。情報処理装置１０は、例えばコンピュータ４０を用いて構成される。
【００６０】
コンピュータ４０は、本実施の形態に係る各機能部を担うＣＰＵ（Central Processing Unit）４１、情報処理プログラムを記憶するＲＯＭ（Read Only Memory）４２、ＣＰＵ４１の一時的な作業領域として使用されるＲＡＭ（Random Access Memory）４３、不揮発性メモリ４４、及び入出力インターフェース（Ｉ／Ｏ）４５を備える。そして、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３、不揮発性メモリ４４、及びＩ／Ｏ４５がバス４６を介して各々接続されている。
【００６１】
不揮発性メモリ４４は、不揮発性メモリ４４に供給される電力が遮断されても、記憶した情報が維持される記憶装置の一例であり、例えば半導体メモリが用いられるがハードディスクを用いてもよい。不揮発性メモリ４４は、必ずしもコンピュータ４０に内蔵されている必要はなく、例えばメモリカードのようにコンピュータ４０に着脱される記憶装置であってもよい。不揮発性メモリ４４には、例えばキーワードテーブル３０が記憶される。
【００６２】
Ｉ／Ｏ４５には、例えば通信ユニット４７、入力ユニット４８、表示ユニット４９、及びスキャナユニット５０が接続される。
【００６３】
通信ユニット４７は図示しない通信回線に接続され、図示しない接続回線に接続する記憶装置及びコンピュータといった外部装置と通信を行う通信プロトコルを備える。図示しない通信回線には、例えばインターネット、ＬＡＮ(Local Area Network)、及びＵＳＢ(Universal Serial Bus)等の公知の通信回線が含まれる。また、通信ユニット４７には、例えば半導体メモリとの間で情報を読み書きするメモリカードスロットのようなインターフェースも含まれる。
【００６４】
入力ユニット４８は、ユーザからの指示を受け付けてＣＰＵ４１に通知する装置であり、例えばボタン、タッチパネル、キーボード、及びマウス等が用いられる。情報処理装置１０はユーザからの指示を音声で受け付けてもよく、この場合、Ｉ／Ｏ４５にはマイクが接続される。
【００６５】
なお、情報処理装置１０から離れた場所にいるユーザからの指示に対応するため、ユーザの指示は入力ユニット４８だけでなく、図示しない通信回線を介して通信ユニット４７と接続された外部装置からも受け付けられるようになっている。
【００６６】
表示ユニット４９は、ＣＰＵ４１によって処理された情報を画像として表示する装置であり、例えば液晶ディスプレイ、有機ＥＬ(Electro Luminescence)ディスプレイ、及び映像をスクリーンに投影するプロジェクタ等が用いられる。
【００６７】
スキャナユニット５０は、ＣＰＵ４１の指示に従って、例えば図示しないプラテンガラスに置かれた図面の内容を光学的に読み取り、図面の内容を画像に変換する装置である。スキャナユニット５０はスキャン処理部１１の処理に用いられる。
【００６８】
情報処理装置１０は、スキャナユニット５０で読み取られた画像をスキャン処理部１１で受け付けるが、必ずしもＩ／Ｏ４５に接続されたスキャナユニット５０から図面の画像を受け付けるものではない。例えば、情報処理装置１０は、図示しない通信回線やＵＳＢインターフェースを介して通信ユニット４７と接続された外部装置の一例である図示しないスキャナ装置から図面の画像を受け付けてもよい。また、情報処理装置１０は、クラウドサーバに格納されている図面の画像を受け付けてもよい。
【００６９】
通信ユニット４７を通じて図面の画像を受け付けるようにすれば、情報処理装置１０は必ずしもスキャナユニット５０を備えておく必要はない。この場合、情報処理装置１０に、デスクトップコンピュータ、タブレット型コンピュータ、スマートフォン、及びウェアラブル端末といった、ユーザとのインターフェースを提供する入出力装置、及び入力された情報を処理する処理機能を備えた情報機器が用いられる。
【００７０】
なお、Ｉ／Ｏ４５に接続されるユニットは図５に例示したユニットに限定されない。例えば、ＣＰＵ４１の指示に従って、処理した情報を記録媒体に形成する画像形成ユニットをＩ／Ｏ４５に接続してもよい。
【００７１】
次に、図面の画像を受け付け、ユーザが指定したキーワードに対する抽出結果を出力する情報処理装置１０の動作について説明する。
【００７２】
図６は、ユーザから図面の画像を受け付け、受け付けた画像がＯＣＲ処理部１２Ａで変換画像２０に変換された場合に、ＣＰＵ４１によって実行される情報処理の流れの一例を示すフローチャートである。情報処理を規定する情報処理プログラムは、例えば情報処理装置１０のＲＯＭ４２に予め記憶されている。情報処理装置１０のＣＰＵ４１は、ＲＯＭ４２に記憶される情報処理プログラムを読み込み、情報処理を実行する。
【００７３】
なお、キーワードテーブル３０にはキーワードに対応した個別キーワードが予め登録されており、ユーザは取得したいバリューに対応したキーワードの管理番号を指定することで、取得対象となるキーワードを入力するものとする。
【００７４】
ステップＳ１０において、ＣＰＵ４１はキーワードＤＢ１６のキーワードテーブル３０を参照して、ユーザに指定された管理番号に対応する各々の個別キーワードを取得し、変換画像２０から個別キーワードを抽出する。この場合、ＣＰＵ４１は、変換画像２０に含まれる文字列をすべて抽出してＲＡＭ４３に記憶し、抽出した文字列の中から個別キーワードを再抽出するようにしてもよい。
【００７５】
ステップＳ２０において、ＣＰＵ４１は、変換画像２０における指定されたキーワードの記載位置を特定するため、ステップＳ１０で抽出した個別キーワードをグループに集約する集約化処理を実行する。
【００７６】
図７は、図６のステップＳ２０における集約化処理の流れの一例を示すフローチャートである。
【００７７】
集約化処理のステップＳ１００において、ＣＰＵ４１は、例えばキーワードの取得対象である変換画像２０の最も上に位置する行から順に下の行に向かって未選択行を１行選択する。ステップＳ１００で選択した行を「選択行」ということにする。
【００７８】
ステップＳ１１０において、ＣＰＵ４１は、選択行にユーザが指定したキーワードを構成する複数の個別キーワードが含まれているか否かを判定する。選択行に複数の個別キーワードが含まれている場合には、ステップＳ１２０に移行する。
【００７９】
ステップＳ１２０において、ＣＰＵ４１は、ユーザが指定したキーワードを構成する全ての個別キーワードが選択行に含まれているか否かを判定する。なお、ユーザが指定したキーワードを構成する全ての個別キーワードが、選択行にそれぞれ連結した状態で含まれている必要はない。例えば図３におけるキーワードテーブル３０で管理される管理番号＝“１”のキーワードがユーザによって選択されている場合、「定格最大電圧」の文字列が選択行に含まれなくても、「定格における最大電圧」や「定格電圧の最大値」といった文字列が含まれていれば、ユーザが指定したキーワードを構成する全ての個別キーワードが選択行に含まれていると判定される。
【００８０】
人が図面に文字列を記載する場合、文字列の記載方向である行に沿って記載するため、同じ行にある文字列同士は、それぞれ異なる行にある文字列同士よりも関連度合いが高い傾向を示す。すなわち、選択行にユーザが指定したキーワードを構成する全ての個別キーワードが含まれているということは、選択行にキーワードを別の表現で表した記載が行われている蓋然性が高いと判定される。
【００８１】
したがって、ユーザが指定したキーワードを構成する全ての個別キーワードが選択行に含まれている場合、ステップＳ１３０に移行する。
【００８２】
ステップＳ１３０において、ＣＰＵ４１は、選択行に含まれる各々の個別キーワードを含むできるだけ小さい矩形２２を設定して、矩形２２で示される範囲を１つのグループとした個別キーワードのグループを生成する。これにより、ユーザが指定したキーワードの記載位置が、生成されたグループの範囲に特定されることになる。「キーワードの記載位置」には、キーワードを別の表現で表した文字列の記載位置の意味も含まれる。
【００８３】
後述する処理のためステップＳ１４０において、ＣＰＵ４１は、ユーザが指定したキーワードの記載範囲が特定されたことを示すフラグＦの値を“１”に設定して、図７に示す集約化処理を終了する。
【００８４】
一方、ステップＳ１１０の判定処理で選択行に複数の個別キーワードが含まれていないと判定された場合、及び、ステップＳ１２０の判定処理で、選択行に複数の個別キーワードが含まれているが、ユーザが指定したキーワードを構成する全ての個別キーワードは含まれていないと判定された場合には、ステップＳ１５０に移行する。なお、選択行に複数の個別キーワードが含まれている場合、ＣＰＵ４１は、以後の処理でこれらの複数の個別キーワードを分割することなく、１つにまとめて取り扱うようにする。
【００８５】
ステップＳ１５０において、ＣＰＵ４１は、変換画像２０にまだステップＳ１００で選択していない未選択行が存在するか否かを判定する。未選択行が存在する場合には、未選択行にユーザが取得したい項目を表すキーワードが含まれる場合があることからステップＳ１００に移行し、ステップＳ１００において、次の未選択行を１行選択する。
【００８６】
ステップＳ１００では変換画像２０の最も上に位置する行から順に未選択行を選択すると例について説明したが、未選択行を選択する順序に制約はなく、変換画像２０の最も下に位置する行から上の行に向かって順に未選択行を選択したり、ランダムに未選択行を選択したりするようにしてもよい。
【００８７】
既に説明したように、同じ行にある文字列同士は、それぞれ異なる行にある文字列同士よりも関連度合いが高い傾向を示す。したがって、未選択行が存在しなくなるまで変換画像２０の行を選択することで、異なる行にまたがって記載されている個別キーワードを集約して生成されるグループよりも、同じ行に記載されている個別キーワードを集約して生成されるグループの方が、キーワードの記載位置として優先して特定されることになる。
【００８８】
一方、ステップＳ１５０の判定処理で変換画像２０に対して、もう未選択行が存在しないと判定された場合には、ステップＳ１６０に移行する。
【００８９】
これまでの処理によって、行単位でキーワードに対応したグループを生成することはできないと判定されたため、以降では、個別キーワードの集約範囲を広げ、段落単位でキーワードに対応したグループを生成することができないか判定する。そのため、ステップＳ１６０において、ＣＰＵ４１は、変換画像２０に含まれる文字列を段落単位に分割する。
【００９０】
「段落」とは、ひとまとまりの関連する内容を記載した範囲のことであり、複数の行によって構成される。段落と他の段落の間には記載内容が変わることを表すため、例えば空白行を設けるといった、段落の区切り表示が行われる。
【００９１】
したがって、ＣＰＵ４１は、例えば空白行と空白行で囲まれる範囲内に含まれる複数の行を１つの段落として認識し、変換画像２０に含まれる文字列を段落単位に分割する。なお、「空白行」とは、何れの文字列も存在しない行、及びスペースに対応した文字コードしか存在しない行のことをいう。
【００９２】
図８は、図２（Ｂ）に示した変換画像２０を段落単位に分割した例を示す図である。図８では説明の便宜上、変換画像２０の左側に行番号を表示している。図８の変換画像２０では、１行目、４行目、及び１１行目が空白行であるため、２行目と３行目が１つの段落２４Ａとなり、５行目〜１０行目までが１つの段落２４Ｂとなる。
【００９３】
なお、段落の分割方法はこれに限られず、変換画像２０で用いられている段落の区切り表示に従って段落の分割が行われる。
【００９４】
例えば、段落の開始行では文字列を左側に詰めて記載し、他の行では、段落の開始行の先頭文字より数文字分右側にずれた位置から文字列を記載するというように、段落の開始行では、行方向に沿った文字列の開始位置が、他の行の文字列の開始位置と異なる場合がある。図８に示す変換画像２０の場合、２行目の文字列と５行目の文字列の開始位置が同じで、かつ、他の行の文字列よりも左側の位置から記載されているため、文字列の開始位置からも段落２４Ａと段落２４Ｂに分割される。
【００９５】
また、段落の開始行で、段落の開始を示す記号（例えば「■」）が用いられているような変換画像２０の場合、段落の開始行に用いられる記号を予め指定しておくことで、変換画像２０が段落に分割される。どのような方法を用いて変換画像２０を段落単位に分割するかは、ユーザの指示に従う。
【００９６】
また、上述した例では、空白行と空白行で囲まれる範囲内に含まれる複数の行が１つの段落として認識されると説明したが、図８に示した場合において、１行目と１１行目の空白行が無いような場合が考えられる。図８における２行目が文字列の開始行、１０行目が最終行となるが、このような場合、開始行の前と最終行の後に空白行があるとみなして段落を分割するように構成してもよい。
【００９７】
変換画像２０が段落に分割されると、ステップＳ１７０において、ＣＰＵ４１は、例えば変換画像２０の最も上に位置する段落から順に下の段落に向かって未選択の段落を１つ選択する。行の選択順序と同じく、段落を選択する順序にも制約はなく、ＣＰＵ４１は、変換画像２０の最も下に位置する段落から上に向かって順に段落を選択したり、ランダムに段落を選択したりするようにしてもよい。ステップＳ１７０で選択された段落を「選択段落」という。
【００９８】
ステップＳ１８０において、ＣＰＵ４１は、ユーザが指定したキーワードを構成する全ての個別キーワードが選択段落に含まれているか否かを判定する。選択段落に全ての個別キーワードが含まれている場合にはステップＳ１９０に移行する。
【００９９】
ステップＳ１９０において、ＣＰＵ４１は、選択段落に含まれる各々の個別キーワードを含むできるだけ小さい矩形２２を設定して、矩形２２で示される範囲を１つのグループとした個別キーワードのグループを生成する。これにより、ユーザが指定したキーワードの記載位置が、生成されたグループの範囲に特定されることになる。
【０１００】
段落に同じ個別キーワードが複数含まれる場合、矩形２２の大きさが大きくなったとしても、ＣＰＵ４１はこれら同じ個別キーワードのうち、同じ行に別の個別キーワードも含まれている方の個別キーワードが優先して含まれるようにグループを生成する。
【０１０１】
後述する処理のためステップＳ２００において、ＣＰＵ４１は、ユーザが指定したキーワードの記載位置が特定されたことを示すフラグＦの値を“１”に設定して、図７に示す集約化処理を終了する。
【０１０２】
一方、ステップＳ１８０の判定処理で、選択段落に全ての個別キーワードが含まれていないと判定された場合には、選択段落にユーザが取得したい項目は含まれていないと考えられる。したがって、ステップＳ２１０に移行し、ステップＳ２１０において、ＣＰＵ４１は変換画像２０にまだステップＳ１７０で選択していない未選択の段落が存在するか否かを判定する。
【０１０３】
未選択の段落が存在する場合には、未選択の段落にユーザが取得したい項目が含まれる場合があることから、ステップＳ１７０に移行し、ステップＳ１７０において、ＣＰＵ４１は未選択の段落を１つ選択する。すなわち、ユーザが指定したキーワードを構成する全ての個別キーワードを含む段落が見つかるまで、各々の段落が変換画像２０から選択されることになる。
【０１０４】
一方、変換画像２０に含まれる何れの段落にもユーザが指定したキーワードを構成する全ての個別キーワードが含まれない場合には、変換画像２０にユーザが指定したキーワードは含まれないと考えられる。したがって、ステップＳ２２０に移行し、ステップＳ２２０において、ＣＰＵ４１は、フラグＦを“０”に設定して図７に示す集約化処理を終了する。
【０１０５】
図３におけるキーワードテーブル３０で管理される管理番号＝“１”のキーワードがユーザによって選択されている場合、図８に示す変換画像２０に対して図７に示す集約化処理が実行されると、まず、全ての個別キーワードを含む行がないか判定される。図８に示す変換画像２０には、選択された全ての個別キーワードを含む行が存在しないため、今度は全ての個別キーワードを含む段落がないか判定される。
【０１０６】
段落２４Ａは「定格」及び「最大」の個別キーワードを含むが、「電圧」の個別キーワードは含まれないため、選択された全ての個別キーワードを含む段落として認識されない。一方、段落２４Ｂには、選択された全ての個別キーワードである「定格」、「最大」、及び「電圧」の個別キーワードが含まれるため、「定格」、「最大」、及び「電圧」の各個別キーワードを含む最小面積の矩形２２で示される範囲がキーワードの記載位置として特定される。
【０１０７】
個別キーワードを用いてキーワードと同じ意味を表す文章を作成する場合、キーワードを構成する各々の個別キーワードが集中して配置される傾向がある。そのため、各々の個別キーワードを含み、面積が最も小さくなる矩形２２によって示される範囲が、ユーザが取得したい項目を表すキーワードの記載位置となる。
【０１０８】
なお、変換画像２０によっては、段落毎にキーワードを構成する複数の個別キーワードが含まれ、複数のグループが生成される場合がある。したがって、ステップＳ１８０でユーザが指定したキーワードを構成する全ての個別キーワードが選択段落に含まれていると判定され、ステップＳ２００の処理を実行した後、ステップＳ２１０に移行してもよい。ただし、この場合にステップＳ２１０の判定処理で未選択の段落は存在しないと判定された後、フラグＦが既に“１”ならステップＳ２２０を実行しないようにする。
【０１０９】
図６のステップＳ２０における集約化処理が終了すると、ステップＳ３０が実行される。
【０１１０】
ステップＳ２０の集約化処理では、ユーザが指定したキーワードの記載位置が変換画像２０から特定された場合はフラグＦが“１”に設定され、特定されなかった場合はフラグＦが“０”に設定される。
【０１１１】
したがって、ステップＳ３０において、ＣＰＵ４１は、フラグＦが“１”に設定されているか否かを判定する。フラグＦが“１”に設定されている場合にはステップＳ４０に移行する。
【０１１２】
ステップＳ４０において、ＣＰＵ４１は、グループに集約された個別キーワードの中から、各々の個別キーワードを代表する代表キーワードを割り当てる。「代表キーワード」とは、グループ内で最後に記載された個別キーワードのことである。こうした代表キーワードの割り当ては、キーワードのバリューはキーワードの後に記載されることが多いことから、キーワードが個別キーワードに分割され、変換画像２０に分散して記載されている場合、キーワードのバリューはグループ内で最後に記載された個別キーワードの後に記載されていることが多いといった特徴に起因している。代表キーワードは開示の技術における代表文字列の一例である。
【０１１３】
すなわち、代表キーワードは、グループにおける各々の個別キーワードの記載位置によって割り当てられる。例えば、グループ内の個別キーワードの各々が同じ行内に含まれる場合には、ＣＰＵ４１は、グループ内で最も後ろに位置する個別キーワード、すなわち、グループ内で最も右方向に位置する個別キーワードを代表キーワードに割り当てる。なお、アラビア語のように文字を右から左に向かって書く言語の場合、グループ内で最も左方向に位置する個別キーワードを代表キーワードに割り当てればよいが、説明の便宜上、ここでは日本語を例にして説明を行う。
【０１１４】
また、文字列が日本語表記であっても、縦書きで記載されている場合も考えられる。この場合、グループ内で最も下方向に位置する個別キーワードを代表キーワードに割り当てればよいが、説明の便宜上、日本語の文字列を横書きで記載している例について説明する。
【０１１５】
グループ内の個別キーワードの各々が複数の行に亘って分散している場合には、ＣＰＵ４１は、グループ内で最も下方向に位置する個別キーワードを代表キーワードに割り当てる。この場合、最も下方向に位置する個別キーワードを含む行に複数の個別キーワードが含まれていれば、ＣＰＵ４１は、当該複数の個別キーワードが含まれる行において、最も右方向に位置する個別キーワードを代表キーワードに割り当てる。
【０１１６】
生成されたグループの範囲によって、ユーザが指定したキーワードの記載位置は表されるが、キーワードのバリューが変換画像２０のどの位置に記載されているかは不明である。したがって、ステップＳ５０において、ＣＰＵ４１は、代表キーワードとバリューの関連性に応じて、変換画像２０に含まれる文字列の中からキーワードのバリューではないかと考えられる文字列をキーワードのバリュー候補として取得し、取得したバリュー候補を生成したグループに割り当てる。
【０１１７】
変換画像２０におけるキーワードのバリューの記載位置は不明であるが、バリューは何れのキーワードのバリューであるか視覚的に把握されるように、対応するキーワードにおける代表キーワードの近くに配置される。すなわち、文字列が代表キーワードの記載位置から離れるに従って、その文字列がキーワードのバリューであるバリュー確率が低下する。
【０１１８】
したがって、ＣＰＵ４１は、代表キーワードが含まれるグループの周囲に記載されている文字列を抽出する。ここで、「グループの周囲に記載されている文字列」とは、グループの境界線、すなわち、矩形２２で囲まれる領域を除いた範囲に含まれる変換画像２０の文字列で、矩形２２の輪郭から予め定めた範囲（バリュー候補の取得範囲）内に含まれる文字列のことである。バリュー候補の取得範囲は、グループの境界線からの距離によって表され、例えばユーザによって設定される値である。ユーザは、バリュー候補の取得範囲を変換画像２０の全域に設定してもよい。なお、バリュー候補の取得範囲の設定方法はこれに限られない。
【０１１９】
例えばバリュー確率が予め定めた閾値以上となるような範囲までをバリュー候補の取得範囲に設定してもよい。バリュー確率は、異なる多数の変換画像２０を用いてグループの境界線とバリューとの距離の関係を計測することによって実験的に求められる。
【０１２０】
一例として、生成されたグループから１行分離れるまでの範囲がバリュー候補の取得範囲に設定されている場合、図８に示す変換画像２０の例では、例えば矩形２２の上側と隣接する行にある「仕様」、矩形２２と同じ行にある「通り」及び「１０Ｖ」、並びに、矩形２２の下側と隣接する行にある「電流」及び「１０Ａ」の各文字列がバリュー候補として取得される。矩形２２と同じ行にある文字列は、何れの場合でもバリュー候補の取得範囲に含まれる。
【０１２１】
図８に示す変換画像２０の例では、「通り」の「通」の文字の上に矩形２２の輪郭が設定されている。この場合、「通」を矩形２２で表されるグループに含まれる文字として扱っても、グループに含まれない文字として扱ってもよいが、ここではグループに含まれない文字として扱っているため、「通り」の文字列がバリュー候補として取得される。
【０１２２】
ＣＰＵ４１は、変換画像２０にスペース、ドット「・」、及びコロン「：」といった文字列の区切りに用いられる予め定めた区切り文字が含まれる場合、区切り文字で文字列を区切り、区切り文字が含まれないようにバリュー候補を抽出する。したがって、図８に示す変換画像２０の場合、「：１０Ｖ」及び「・電流」ではなく、それぞれ「１０Ｖ」、「電流」がバリュー候補として抽出される。
【０１２３】
ステップＳ６０において、ＣＰＵ４１は、ステップＳ５０で変換画像２０から抽出した各々のバリュー候補に対して、代表キーワードとの関連度合いを評価する。バリュー候補と代表キーワードとの関連度合いは、予め定めた少なくとも１つの評価項目について評価した評価値で表される。一例として、バリュー候補の評価値は値が高くなる程、代表キーワードとの関連度合いが高いことを表す。
【０１２４】
既に説明したように、バリュー候補は代表キーワードの記載位置から離れるに従って、キーワードのバリューであるバリュー確率が低下する。したがって、ＣＰＵ４１は、グループに含まれる代表キーワードとバリュー候補との距離を、ステップＳ５０で取得したバリュー候補毎に計測し、代表キーワードとバリュー候補との距離が近づくほど評価値が高くなるようにバリュー候補の評価値を設定する。
【０１２５】
また、通常の表記に従えば、まず項目名を表示してから項目の内容が記載されるため、キーワードのバリューは、キーワードの前よりもキーワードの後に記載されることが多い。したがって、ＣＰＵ４１は、キーワードから見てバリュー候補の方向がキーワードより後に記載された場合に取り得る方向、すなわち、代表キーワードから見て右方向または下方向に近づくに従って評価値が高くなるようにバリュー候補の評価値を設定する。
【０１２６】
具体的には、代表キーワードの文字列の中心を原点とした２次元座標系を変換画像２０に設定し、バリュー候補の評価値に関して、第４象限に位置するバリュー候補の評価値＞第３象限に位置するバリュー候補の評価値＞第１象限に位置するバリュー候補の評価値＞第２象限に位置するバリュー候補の評価値の大小関係を設定する。
【０１２７】
図面に余白があれば、キーワードのバリューは代表キーワードの記載行と異なる行に記載されるより、代表キーワードの後に続いて、代表キーワードの記載行と同じ行に記載される傾向がある。また、キーワードのバリューをキーワードの記載行と異なる行に行替えして記載する場合、まずバリューがどのような項目を示しているのかわかるように表示するため、キーワードのバリューは、人が文字を読み取る視線の移動方向にあわせて、代表キーワードから見て下の方向に記載されるよりも右下の方向に記載されることが多い。
【０１２８】
したがって、第４象限に位置するバリュー候補に関して、行方向に沿った軸（Ｘ軸）上、すなわち、代表キーワードの記載行と同じ行に位置するバリュー候補の評価値を最も高く設定し、バリュー候補がＸ軸方向から、２次元座標系の原点からみてＸ軸と直交する軸（Ｙ軸）に向かう方向、すなわち、代表キーワードから見て下の方向に記載されているに従って評価値が段階的に低くなるように、バリュー候補の評価値を設定する。このように同じ事象に位置するバリュー候補であっても、事象内におけるバリュー候補の位置によってバリュー候補の評価値を変化させてもよい。
【０１２９】
また、ユーザが取得したい項目によっては、バリューがどのような形態で表現されるか、そのデータ種別を予め予想することができる項目がある。例えばユーザが図面から取得したい項目が装置の定格最大電圧や会社の電話番号であれば、バリューは数値で表されるはずである。また、ユーザが図面から取得したい項目が担当者の名前であれば、バリューは文字で表されるはずである。また、ユーザが図面から取得したい項目がメールアドレスであれば、バリューは英数文字及び記号で表されるはずである。
【０１３０】
したがって、ＣＰＵ４１は、ユーザが取得したい項目のバリューが取り得るデータ種別と、取得したバリュー候補のデータ種別を比較して、取得したバリュー候補のデータ種別が予想されるデータ種別と異なる場合よりも、予想されるデータ種別と同じである場合に評価値が高くなるようにバリュー候補の評価値を設定する。
【０１３１】
ユーザが取得したい項目のバリューが取り得るデータ種別は、図３に示したキーワードテーブル３０のデータ種別として予め設定されている。したがって、ユーザによって管理番号＝“１”のキーワードが選択された場合、ＣＰＵ４１は、取得されたバリュー候補のうち、データ種別が数値であるバリュー候補の評価値を、他のデータ種別を有するバリュー候補の評価値より高く設定する。
【０１３２】
ＣＰＵ４１は、上述した各々の評価項目についてバリュー候補毎の評価値を算出し、バリュー候補毎に各々の評価項目の評価値を加算した合計値をバリュー候補の評価値とする。
【０１３３】
図８に示す変換画像２０の場合、代表キーワードである「最大」に距離が近く、右方向にあり、数値が含まれる「１０Ｖ」の文字列に、ユーザが取得したい項目である最大定格電圧のバリュー候補として最も高い評価値が与えられることになる。
【０１３４】
なお、バリュー候補の評価に用いられる評価項目は、代表キーワードとバリュー候補の距離、代表キーワードから見たバリュー候補の方向、及び、バリュー候補のデータ種別に限られない。バリュー候補と代表キーワードとの関連度合いを数値で表す項目であれば、どのような評価項目が用いられてもよく、評価する評価項目が多くなるに従って、バリュー候補の評価精度が向上する。
【０１３５】
ＣＰＵ４１は必ずしも複数の評価項目について評価値を算出する必要はなく、何れか１つの評価項目について評価値を算出してもよい。この場合、複数の評価項目についてバリュー候補の評価値を算出する場合と比較して、バリュー候補の評価に要する時間が短縮される。また、ＣＰＵ４１は、ユーザからバリュー候補の評価に用いる評価項目の選択情報を受け付け、選択された評価項目を用いてバリュー候補の評価を行うようにしてもよい。
【０１３６】
ステップＳ７０において、ＣＰＵ４１は、ユーザが選択した管理番号によって表されるキーワードと、ステップＳ６０で算出したバリュー候補毎の評価値を参照して、キーワードに対する抽出結果を出力する。これにより、ユーザが取得したい項目に対応したバリュー候補が評価値と共に出力され、図６に示す情報処理を終了する。
【０１３７】
ＣＰＵ４１は、例えばキーワードに対する抽出結果をＣＳＶ(Comma-Separated Values)形式で出力し、キーワードとバリュー候補を対応付けたデータベースを作成してもよい。
【０１３８】
なお、ユーザが、出力されたバリュー候補の評価値を参考にして、入力ユニット４８を介してバリュー候補の中からキーワードに対して正しいと思われるバリューを選択した場合、選択結果がＣＰＵ４１に通知される。選択結果を受け付けたＣＰＵ４１は、正しいバリューとして選択されたバリュー候補とキーワードの組み合わせを履歴情報として不揮発性メモリ４４に記憶しておく。
【０１３９】
上述した例では、ユーザがキーワードに対するデータ種別をキーワードテーブル３０に予め設定したが、ＣＰＵ４１は、記憶された履歴情報を用いて、キーワードとバリューのデータ種別との対応関係を公知の機械学習手法によって学習し、新たなキーワードがキーワードテーブル３０に登録された場合、学習結果に基づいて、新たなキーワードのデータ種別を自動で設定するようにしてもよい。
【０１４０】
機械学習手法とは、複数のデータを用いて、データとデータが表す意味を対応付けて反復的に学習することで、データとデータが表す意味との間に潜在的に存在する規則性を見つけ出し、当該規則性に基づいて未知のデータが表す意味を推定する推定手法であり、例えばニューラルネットワークを用いたディープラーニング等が用いられる。
【０１４１】
なお、ステップＳ２０の集約化処理で複数のグループが生成された場合には、グループ毎にステップＳ４０〜Ｓ７０の処理を実行すればよい。
【０１４２】
一方、ステップＳ３０の判定処理でフラグＦが“０”に設定されている場合には、ステップＳ８０に移行する。
【０１４３】
この場合、ユーザが指定したキーワードを構成する全ての個別キーワードを含むグループが生成できなかったことを意味するため、ステップＳ８０において、ＣＰＵ４１は、変換画像２０からユーザが指定したキーワードのバリュー候補が取得できなかったことを出力して、図６に示す情報処理を終了する。
【０１４４】
このように本実施の形態に係る情報処理装置１０によれば、ユーザが取得したい項目を表すキーワードを個別キーワードに分割してキーワードテーブル３０で管理する。そして、情報処理装置１０は、指定されたキーワードを構成する全ての個別キーワードを含む、できるだけ範囲の狭いグループを生成して、グループにおける個別キーワードの位置から代表キーワードを設定する。更に、情報処理装置１０は、設定した代表キーワードの位置に基づいて変換画像２０からバリュー候補を取得し、代表キーワードとバリュー候補との関連度合いを表す評価項目に従ってバリュー候補の評価値を算出し、算出結果を出力する。
【０１４５】
情報処理装置１０はグループを生成する場合、行単位でグループの生成が可能か確認した後に段落単位でグループの生成を試みる。また、同じ行に複数の個別キーワードが記載されている場合、情報処理装置１０は、同じ行に記載された複数の個別キーワードを優先してグループに含める。
【０１４６】
図９に示すような変換画像２０から定格最小電圧の値を取得する場合、単に上の行から下の行に向かって順に「定格」、「最小」、及び「電圧」の個別キーワードを抽出していき、最後に抽出した個別キーワードである「最小」の右にある文字列を定格最小電圧の値とするようなバリューの抽出方法を用いてしまうと、「電圧：５Ｖ」が定格最小電圧の値として取得されてしまう。
【０１４７】
一方、本実施の形態に係る情報処理装置１０の場合には、５行目に「最小」、「電圧」といった複数の個別キーワードが含まれるため、矩形２２のようなグループが生成され、５行目の電圧が代表キーワードに設定される。したがって、代表キーワードの右側にある文字列「５Ｖ」が定格最小電圧の値として取得されることになる。
【０１４８】
以上、実施の形態を用いて本発明について説明したが、本発明は実施の形態に記載の範囲には限定されない。本発明の要旨を逸脱しない範囲で実施の形態に多様な変更又は改良を加えることができ、当該変更又は改良を加えた形態も本発明の技術的範囲に含まれる。例えば、本発明の要旨を逸脱しない範囲で処理の順序を変更してもよい。
【０１４９】
本実施の形態では、一例として情報処理をソフトウェアで実現する形態について説明したが、図６及び図７に示したフローチャートと同等の処理を、例えばＡＳＩＣ（Application Specific Integrated Circuit）に実装し、ハードウェアで処理させるようにしてもよい。この場合、情報処理をそれぞれソフトウェアで実現した場合と比較して、処理の高速化が図られる。
【０１５０】
また、図１に示した各機能部や、キーワードＤＢ１６を単体の情報処理装置１０で実現するのではなく、例えばクラウドコンピューティングを用いて複数の情報機器に各機能部やキーワードＤＢ１６を分散して配置し、複数の情報機器を連係させることで、情報処理装置１０と同等の処理を実行するようにしてもよい。
【０１５１】
文字列が縦書きされている場合や、文字列が右から左に向かって記載されている場合には、本発明の意図を考慮して、実施形態で説明した文字列の方向を文字列の表記形態に即して読み替えるようにすればよい。例えば図面に日本語で縦書きの表記が行われている場合について説明すると、グループに含まれる個別キーワードの各々が同じ行内に含まれている場合、グループ内で最も下方向に位置する個別キーワードが代表キーワードとなる。また、グループ内の個別キーワードの各々が複数の行に亘って分散している場合、グループ内で最も左方向に位置する個別キーワードが代表キーワードとなり、最も左方向に位置する個別キーワードを含む行に複数の個別キーワードが含まれていれば、当該複数の個別キーワードが含まれる行において、最も下方向に位置する個別キーワードが代表キーワードとなる。
【０１５２】
上述した実施の形態では、情報処理プログラムがＲＯＭ４２にインストールされている形態を説明したが、これに限定されるものではない。本発明に係る情報処理プログラムは、コンピュータで読み取り可能な記憶媒体に記録された形態で提供することも可能である。例えば、本発明に係る情報処理プログラムを、ＣＤ(Compact Disc)−ＲＯＭ、又はＤＶＤ(Digital Versatile Disc)−ＲＯＭ等の光ディスクに記録した形態で提供してもよい。また、本発明に係る情報処理プログラムを、ＵＳＢメモリ及びフラッシュメモリ等の半導体メモリに記録した形態で提供してもよい。更に、情報処理装置１０は、通信ユニット４７を介して、図示しない通信回線に接続される外部装置から本発明に係る情報処理プログラムを取得するようにしてもよい。
【符号の説明】
【０１５３】
１０  情報処理装置
１１  スキャン処理部
１２  画像処理部
１２Ａ  ＯＣＲ処理部
１２Ｂ  抽出部
１２Ｃ  集約部
１２Ｄ  割当部
１３  出力部
１４  ユーザインターフェース（ＵＩ）部
１５  制御部
２０  変換画像
２２  矩形
２４Ａ（２４Ｂ）  段落
３０  キーワードテーブル
４０  コンピュータ
４１  ＣＰＵ
４２  ＲＯＭ
４３  ＲＡＭ
４４  不揮発性メモリ
４７  通信ユニット
４８  入力ユニット
４９  表示ユニット
５０  スキャナユニット
【図１】
2020123231.tif 000003
【図２】
2020123231.tif 000004
【図３】
2020123231.tif 000005
【図４】
2020123231.tif 000006
【図５】
2020123231.tif 000007
【図６】
2020123231.tif 000008
【図７】
2020123231.tif 000009
【図８】
2020123231.tif 000010
【図９】
2020123231.tif 000011