(57)【要約】【課題】表に含まれる全てのキーについて定義することなく、表に含まれるキー及びキーに対応する値を抽出することができる情報処理装置及びプログラムを提供する。【解決手段】画像形成装置１０Ａは、セルが行列状に配置された表を、複数のサブテーブルに分割する分割部３０と、分割部３０により分割された複数のサブテーブルの各々から、キーを表すセルであるキーセルに対応する値を抽出する抽出部３４と、を備える。【選択図】図３
2020177425.tif 000002
【特許請求の範囲】
【請求項１】
セルが行列状に配置された表を、複数のサブテーブルに分割する分割部と、
前記分割部により分割された複数のサブテーブルの各々から、キーを表すセルであるキーセルに対応する値を抽出する抽出部と、
を備えた情報処理装置。
【請求項２】
前記分割部は、前記表の行又は列毎のセル数に基づいて特定される、前記表の行又は列の分割点に従って、前記表を前記複数のサブテーブルに分割する請求項１に記載の情報処理装置。
【請求項３】
前記分割点は、前記セル数が変化した行又は列として特定される請求項２に記載の情報処理装置。
【請求項４】
前記表から、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のキーセルを検索する検索部を更に備え、
前記分割部は、前記検索部により検索された複数のキーセルに基づいて特定される、前記表の行又は列の分割点に従って、前記表を前記複数のサブテーブルに分割する請求項１に記載の情報処理装置。
【請求項５】
前記分割点は、前記複数のキーセルの各々を含む行又は列として特定される請求項４に記載の情報処理装置。
【請求項６】
前記分割部は、前記検索部により検索されたキーセルを含む行又は列に、２つ以上のセルが結合された結合セルの一部が含まれている場合に、前記結合セルの一部を含む行又は列を分割点として特定しない請求項４又は５に記載の情報処理装置。
【請求項７】
前記分割部は、前記検索部により検索されたキーセルを含む行又は列に、２つ以上のセルが結合された結合セルの一部が含まれている場合に、前記結合セルの文字列を、前記結合セルの各セルに複写する請求項４又は５に記載の情報処理装置。
【請求項８】
前記分割部は、前記サブテーブルに、前記サブテーブルに含まれるキーセルに対応する値を表すセルである値セルが含まれていない場合に、前記サブテーブルと、前記サブテーブルに隣接する他のサブテーブルとを統合する請求項４又は５に記載の情報処理装置。
【請求項９】
前記抽出部は、前記サブテーブルと、前記サブテーブルに隣接する他のサブテーブルとの間で、値を表すセルである値セルが共通するキーセルを、前記他のサブテーブルから抽出する請求項１に記載の情報処理装置。
【請求項１０】
前記他のサブテーブルに含まれるキーセルは、前記サブテーブルの値セルを含む列又は行と同一の列又は行に位置する請求項９に記載の情報処理装置。
【請求項１１】
コンピュータを、請求項１〜１０のいずれか１項に記載の情報処理装置が備える各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
例えば、特許文献１には、帳票のフォーマットをインポートするシステムが記載されている。このシステムは、インポートする帳票の各ブロックにおいてブロック抽出ポリシに登録されているタイトルと属性が合致する候補ブロックを抽出し、抽出した候補ブロックを合致率と共に表示部に表示する。このシステムは、表示したブロック及び合致率の中からユーザが選択した候補ブロックの入力を受け付け、受け付けた候補ブロックに基づいて、インポートする帳票の定義ファイルのひな型ブロック定義を作成したブロック定義を元に定義ファイルをブロックライブラリに出力する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−９１０８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、例えば、受領書や、請求書、注文書等のような非定型帳票では、表におけるキー及び値の位置関係が一様ではなく、キーと値との対応付けが難しい場合がある。このような非定型帳票から、表に含まれる全てのキーについての値を抽出したい場合、全てのキーと値との関係を予め定義しなければならない。しかし、表に含まれる全てのキーについて定義することは容易ではない。
【０００５】
本発明は、表に含まれる全てのキーについて定義することなく、表に含まれるキー及びキーに対応する値を抽出することができる情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、第１態様に係る情報処理装置は、セルが行列状に配置された表を、複数のサブテーブルに分割する分割部と、前記分割部により分割された複数のサブテーブルの各々から、キーを表すセルであるキーセルに対応する値を抽出する抽出部と、を備えている。
【０００７】
また、第２態様に係る情報処理装置は、第１態様に係る情報処理装置において、前記分割部が、前記表の行又は列毎のセル数に基づいて特定される、前記表の行又は列の分割点に従って、前記表を前記複数のサブテーブルに分割する。
【０００８】
また、第３態様に係る情報処理装置は、第２態様に係る情報処理装置において、前記分割点が、前記セル数が変化した行又は列として特定されている。
【０００９】
また、第４態様に係る情報処理装置は、第１態様に係る情報処理装置において、前記表から、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のキーセルを検索する検索部を更に備え、前記分割部が、前記検索部により検索された複数のキーセルに基づいて特定される、前記表の行又は列の分割点に従って、前記表を前記複数のサブテーブルに分割する。
【００１０】
また、第５態様に係る情報処理装置は、第４態様に係る情報処理装置において、前記分割点が、前記複数のキーセルの各々を含む行又は列として特定されている。
【００１１】
また、第６態様に係る情報処理装置は、第４態様又は第５態様に係る情報処理装置において、前記分割部が、前記検索部により検索されたキーセルを含む行又は列に、２つ以上のセルが結合された結合セルの一部が含まれている場合に、前記結合セルの一部を含む行又は列を分割点として特定しない。
【００１２】
また、第７態様に係る情報処理装置は、第４態様又は第５態様に係る情報処理装置において、前記分割部が、前記検索部により検索されたキーセルを含む行又は列に、２つ以上のセルが結合された結合セルの一部が含まれている場合に、前記結合セルの文字列を、前記結合セルの各セルに複写する。
【００１３】
また、第８態様に係る情報処理装置は、第４態様又は第５態様に係る情報処理装置において、前記分割部が、前記サブテーブルに、前記サブテーブルに含まれるキーセルに対応する値を表すセルである値セルが含まれていない場合に、前記サブテーブルと、前記サブテーブルに隣接する他のサブテーブルとを統合する。
【００１４】
また、第９態様に係る情報処理装置は、第１態様に係る情報処理装置において、前記抽出部が、前記サブテーブルと、前記サブテーブルに隣接する他のサブテーブルとの間で、値を表すセルである値セルが共通するキーセルを、前記他のサブテーブルから抽出する。
【００１５】
また、第１０態様に係る情報処理装置は、第９態様に係る情報処理装置において、前記他のサブテーブルに含まれるキーセルが、前記サブテーブルの値セルを含む列又は行と同一の列又は行に位置する。
【００１６】
更に、上記目的を達成するために、第１１態様に係るプログラムは、コンピュータを、第１態様〜第１０態様のいずれか１の態様に係る情報処理装置が備える各部として機能させる。
【発明の効果】
【００１７】
第１態様及び第１１態様によれば、表に含まれる全てのキーについて定義することなく、表に含まれるキー及びキーに対応する値を抽出することができる、という効果を有する。
【００１８】
第２態様によれば、分割点の特定に行又は列毎のセル数を考慮しない場合と比較して、複数のサブテーブルへの分割を適切に行うことができる、という効果を有する。
【００１９】
第３態様によれば、セル数が変化した行又は列を分割点としない場合と比較して、複数のサブテーブルへの分割を適切に行うことができる、という効果を有する。
【００２０】
第４態様によれば、分割点の特定にユーザの入力に合致した複数のキーセルを考慮しない場合と比較して、複数のサブテーブルへの分割を適切に行うことができる、という効果を有する。
【００２１】
第５態様によれば、複数のキーセルの各々を含む行又は列を分割点としない場合と比較して、複数のサブテーブルへの分割を適切に行うことができる、という効果を有する。
【００２２】
第６態様によれば、結合セルの一部を含む行又は列を分割点として特定する場合と比較して、必要以上のサブテーブルに過分割されることを抑制することができる、という効果を有する。
【００２３】
第７態様によれば、結合セルの文字列を、結合セルの各セルに複写しない場合と比較して、サブテーブルに分割した場合であっても結合セルの各セルの内容を把握することができる、という効果を有する。
【００２４】
第８態様によれば、値セルが含まれていないサブテーブルを統合しない場合と比較して、必要以上のサブテーブルに過分割されることを抑制することができる、という効果を有する。
【００２５】
第９態様によれば、他のサブテーブルから共通するキーセルを抽出しない場合と比較して、他のサブテーブルとの関連性が損なわれることがない、という効果を有する。
【００２６】
第１０態様によれば、他のサブテーブルのキーセルと、サブテーブルの値セルとの位置関係を考慮しない場合と比較して、他のサブテーブルから共通するキーセルを適切に抽出することができる、という効果を有する。
【図面の簡単な説明】
【００２７】
【図１】第１の実施形態に係る画像形成装置の電気的な構成の一例を示すブロック図である。
【図２】実施形態に係る非定型帳票の一例を示す図である。
【図３】第１の実施形態に係る画像形成装置の機能的な構成の一例を示すブロック図である。
【図４】第１の実施形態に係る抽出処理プログラムによる処理の流れの一例を示すフローチャートである。
【図５】実施形態に係る入力表の一例を示す図である。
【図６】第２の実施形態に係る画像形成装置の機能的な構成の一例を示すブロック図である。
【図７】第２の実施形態に係る抽出処理プログラムによる処理の流れの一例を示すフローチャートである。
【図８】第２の実施形態に係るサブテーブル分割方法の説明に供する図である。
【図９】第３の実施形態に係る画像形成装置の機能的な構成の一例を示すブロック図である。
【図１０】第３の実施形態に係るサブテーブル分割方法の説明に供する図である。
【図１１】第３の実施形態に係る別のサブテーブル分割方法の説明に供する図である。
【図１２】第３の実施形態に係る別のサブテーブル分割方法の説明に供する図である。
【図１３】第４の実施形態に係る画像形成装置の機能的な構成の一例を示すブロック図である。
【図１４】第４の実施形態に係る抽出処理プログラムによる処理の流れの一例を示すフローチャートである。
【図１５】第４の実施形態に係る共通キーセル判定方法の説明に供する図である。
【発明を実施するための形態】
【００２８】
以下、図面を参照して、本発明を実施するための形態の一例について詳細に説明する。
【００２９】
[第１の実施形態]
図１は、第１の実施形態に係る画像形成装置１０Ａの電気的な構成の一例を示すブロック図である。
図１に示すように、本実施形態に係る画像形成装置１０Ａは、制御部１２と、記憶部１４と、表示部１６と、操作部１８と、画像形成部２０と、原稿読取部２２と、通信部２４と、を備えている。
【００３０】
なお、画像形成装置１０Ａは、情報処理装置の一例である。この情報処理装置には、画像形成装置１０Ａ以外に、例えば、パーソナルコンピュータ（ＰＣ：Personal Computer）や、スマートフォン、タブレット端末等を適用してもよい。
【００３１】
制御部１２は、ＣＰＵ（Central Processing Unit）１２Ａ、ＲＯＭ（Read Only Memory）１２Ｂ、ＲＡＭ（Random Access Memory）１２Ｃ、及び入出力インターフェース（Ｉ／Ｏ）１２Ｄを備えており、これら各部がバスを介して各々接続されている。
【００３２】
Ｉ／Ｏ１２Ｄには、記憶部１４と、表示部１６と、操作部１８と、画像形成部２０と、原稿読取部２２と、通信部２４と、を含む各機能部が接続されている。これらの各機能部は、Ｉ／Ｏ１２Ｄを介して、ＣＰＵ１２Ａと相互に通信可能とされる。
【００３３】
制御部１２は、画像形成装置１０Ａの一部の動作を制御するサブ制御部として構成されてもよいし、画像形成装置１０Ａの全体の動作を制御するメイン制御部の一部として構成されてもよい。制御部１２の各ブロックの一部又は全部には、例えば、ＬＳＩ（Large Scale Integration）等の集積回路又はＩＣ（Integrated Circuit）チップセットが用いられる。上記各ブロックに個別の回路を用いてもよいし、一部又は全部を集積した回路を用いてもよい。上記各ブロック同士が一体として設けられてもよいし、一部のブロックが別に設けられてもよい。また、上記各ブロックのそれぞれにおいて、その一部が別に設けられてもよい。制御部１２の集積化には、ＬＳＩに限らず、専用回路又は汎用プロセッサを用いてもよい。
【００３４】
記憶部１４としては、例えば、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、フラッシュメモリ等が用いられる。記憶部１４には、本実施形態に係る表データの抽出機能を実現するための抽出処理プログラム１４Ａが記憶される。なお、この抽出処理プログラム１４Ａは、ＲＯＭ１２Ｂに記憶されていてもよい。
【００３５】
抽出処理プログラム１４Ａは、例えば、画像形成装置１０Ａに予めインストールされていてもよい。抽出処理プログラム１４Ａは、不揮発性の記憶媒体に記憶して、又はネットワークを介して配布して、画像形成装置１０Ａに適宜インストールすることで実現してもよい。なお、不揮発性の記憶媒体の例としては、ＣＤ-ＲＯＭ（Compact Disc Read Only Memory）、光磁気ディスク、ＨＤＤ、ＤＶＤ-ＲＯＭ（Digital Versatile Disc Read Only Memory）、フラッシュメモリ、メモリカード等が想定される。
【００３６】
表示部１６には、例えば、液晶ディスプレイ（ＬＣＤ:Liquid Crystal Display）や有機ＥＬ（Electro Luminescence）ディスプレイ等が用いられる。表示部１６は、タッチパネルを一体的に有している。操作部１８には、テンキーやスタートキー等の各種の操作キーが設けられている。表示部１６及び操作部１８は、画像形成装置１０Ａのユーザから各種の指示を受け付ける。この各種の指示には、例えば、原稿の読み取りを開始させる指示や、原稿のコピーを開始させる指示等が含まれる。表示部１６は、ユーザから受け付けた指示に応じて実行された処理の結果や、処理に対する通知等の各種の情報を表示する。
【００３７】
原稿読取部２２は、画像形成装置１０Ａの上部に設けられた図示しない自動原稿送り装置の給紙台に置かれた原稿を１枚ずつ取り込み、取り込んだ原稿を光学的に読み取って画像情報を得る。あるいは、原稿読取部２２は、プラテンガラス等の原稿台に置かれた原稿を光学的に読み取って画像情報を得る。
【００３８】
画像形成部２０は、原稿読取部２２による読み取りによって得られた画像情報、又は、ネットワークを介して接続された外部のＰＣ等から得られた画像情報に基づく画像を、紙等の記録媒体に形成する。なお、本実施形態においては、画像を形成する方式として、電子写真方式を例示して説明するが、インクジェット方式等の他の方式を採用してもよい。
【００３９】
画像を形成する方式が電子写真方式の場合、画像形成部２０は、感光体ドラム、帯電部、露光部、現像部、転写部、及び定着部を含む。帯電部は、感光体ドラムに電圧を印加して感光体ドラムの表面を帯電させる。露光部は、帯電部で帯電された感光体ドラムを画像情報に応じた光で露光することにより感光体ドラムに静電潜像を形成する。現像部は、感光体ドラムに形成された静電潜像をトナーにより現像することで感光体ドラムにトナー像を形成する。転写部は、感光体ドラムに形成されたトナー像を記録媒体に転写する。定着部は、記録媒体に転写されたトナー像を加熱及び加圧により定着させる。
【００４０】
通信部２４は、インターネットや、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等のネットワークに接続されており、外部のＰＣ等との間でネットワークを介して通信が可能とされる。
【００４１】
本実施形態に係る画像形成装置１０Ａは、ＯＣＲ（Optical Character Recognition）機能を備え、画像情報に含まれる画像を文字認識することにより文字コードに変換することが可能とされる。
【００４２】
ところで、一例として、図２に示すような非定型帳票では、表におけるキー及び値の位置関係が一様ではなく、キーと値との対応付けが難しい場合がある。
【００４３】
図２は、本実施形態に係る非定型帳票の一例を示す図である。
図２に示す非定型帳票は、キー部分Ｋ１、値部分Ｖ１、及びキー部分Ｋ２を含んでいる。
【００４４】
ここで、表におけるキーとは、表に含まれる複数の項目のうち、ユーザが抽出したい項目を意味し、例えば、文字列として表される。この文字列は、１つ以上の文字からなり、数字や記号等を含んでいてもよい。また、表における値とは、キーに対応する値を意味する。図２の例の場合、キー部分Ｋ１は、複数のキーとして、「商品Ｎｏ」、「商品名」、「数量」、「単価」、「金額」、及び「備考」を含んでいる。また、値部分Ｖ１は、キー部分Ｋ１の各キーに対応する値を含んでいる。また、キー部分Ｋ２は、複数のキーとして、「合計」、「消費税」、及び「総合計」を含み、更に、これら複数のキーの各々に対応する値を含んでいる。
【００４５】
図２に示す非定型帳票から、表に含まれる全てのキーについての値を抽出したい場合、全てのキーと値との関係を予め定義する必要があるが、表に含まれる全てのキーについて定義することは容易ではない。
【００４６】
このため、本実施形態に係る画像形成装置１０ＡのＣＰＵ１２Ａは、記憶部１４に記憶されている抽出処理プログラム１４ＡをＲＡＭ１２Ｃに書き込んで実行することにより、図３に示す各部として機能する。
【００４７】
図３は、第１の実施形態に係る画像形成装置１０Ａの機能的な構成の一例を示すブロック図である。
図３に示すように、本実施形態に係る画像形成装置１０ＡのＣＰＵ１２Ａは、解析部３０、分割部３２、及び抽出部３４として機能する。
【００４８】
本実施形態に係る解析部３０は、原稿読取部２２による読み取りによって入力された表あるいは外部のＰＣ等から入力された表を取得し、取得した表について表構造解析を行う。なお、本実施形態において処理の対象とする表は、セルが行列状に配置された表であり、枠線を有するものでもよいし、枠線がないものでもよい。この表構造解析では、表の行数及び列数や、表のレイアウト等を含む表構造情報が取得される。この表構造解析には、公知の手法が適用される。なお、表が電子データであり、電子データに表構造情報が付加されている場合には、電子データから表構造情報を取得するようにしてもよい。
【００４９】
本実施形態に係る分割部３２は、解析部３０により表構造解析が行われた表を、複数のサブテーブルに分割する。このサブテーブルとは、１つの表を分割して得られる表の一部として定義される。具体的に、分割部３２は、表の行又は列毎のセル数に基づいて、表の行又は列の分割点を特定し、特定した分割点に従って、表を複数のサブテーブルに分割する。この分割点は、一例として、セル数が変化した行又は列として特定される。
【００５０】
本実施形態に係る抽出部３４は、分割部３２により分割された複数のサブテーブルの各々から、キーセルに対応する値を抽出する。なお、キーセルとは、キーを表すセルであり、全てのキーセルは、表のヘッダ範囲に含まれる。このヘッダ範囲は、表におけるヘッダ行及びヘッダ列を表す範囲である。このヘッダ範囲には、ユーザが抽出したいキーセルだけではなく、単なる項目を表す文字列を含んでいてもよい。
【００５１】
次に、図４を参照して、第１の実施形態に係る画像形成装置１０Ａの作用を説明する。
【００５２】
図４は、第１の実施形態に係る抽出処理プログラム１４Ａによる処理の流れの一例を示すフローチャートである。
【００５３】
まず、画像形成装置１０Ａに対して、抽出処理プログラム１４Ａの起動が指示されると、以下の各ステップを実行する。以下では、サブテーブルの分割を行方向に行う場合について説明するが、サブテーブルの分割を列方向に行う場合でも同様に適用される。なお、同一行の方向（横方向）を行方向とし、同一列の方向（縦方向）を列方向とする。
【００５４】
図４のステップ１００では、解析部３０が、一例として、図５に示す表の入力を受け付ける。
【００５５】
図５は、本実施形態に係る入力表の一例を示す図である。
図５に示す入力表は、複数の行Ｒ１〜行Ｒ８を含み、セルが行列状に配置された表である。
【００５６】
ステップ１０２では、解析部３０が、ステップ１００で受け付けた入力表に対して、表構造解析を行い、表の行数及び列数や、表のレイアウト等を含む表構造情報を取得する。図５の例の場合、８行（行番号１〜８の図示省略）及び４列（列番号１〜４の図示省略）の表であることが解析される。行Ｒ１〜行Ｒ３の各々には、行方向に４個のセルが配置されている。行Ｒ４〜行Ｒ５の各々には、行方向に２個のセルが配置されている。行Ｒ６〜行Ｒ８の各々には、行方向に３個のセルが配置されている。１つのセルは、行番号及び列番号を用いて表される。例えば、「注文番号」セルは、１行１列のセルとして表される。また、２つ以上のセルが結合された結合セルは、結合前の行番号及び列番号の情報を有している。例えば、「合計」セルは、結合セルであるが、４行１列、４行２列、及び４行３列の情報を有している。このため、「合計」セルは、４行１列、４行２列、及び４行３列の少なくとも１つのセルとして表される。
【００５７】
ステップ１０４では、分割部３２が、ステップ１０２で取得した表構造情報を用いて、入力表の行毎のセル数を取得する。図５の例では、行Ｒ１〜行Ｒ３の各々のセル数は４個であり、行Ｒ４及び行Ｒ５の各々のセル数は２個であり、行Ｒ６〜行Ｒ８の各々のセル数は３個である。
【００５８】
ステップ１０６では、分割部３２が、ステップ１０４で取得した行毎のセル数に基づいて、分割点を特定する。本実施形態に係る分割点は、セル数が変化した行として特定される。図５の例では、行Ｒ４でセル数が２個に変化し、行Ｒ６でセル数が３個に変化している。このため、行Ｒ４及び行Ｒ６が分割点として特定される。
【００５９】
ステップ１０８では、分割部３２が、ステップ１０６で特定した分割点に従って、ステップ１００で受け付けた入力表を複数のサブテーブルに分割する。具体的に、図５の例では、行Ｒ４及び行Ｒ６の各々を分割点として、行Ｒ１〜行Ｒ３を含むサブテーブル１、行Ｒ４〜行Ｒ５を含むサブテーブル２、及び行Ｒ６〜行Ｒ８を含むサブテーブル３に分割される。
【００６０】
ステップ１１０では、抽出部３４が、ステップ１０８で分割された複数のサブテーブルの各々から、キーセルに対応する値を抽出する。具体的には、複数のサブテーブルの各々についてヘッダ範囲を特定し、特定したヘッダ範囲以外を値として、ヘッダ範囲に含まれるキーセルに対応する値を抽出する。ヘッダ範囲を特定する方法は、特に限定されるものではないが、一例として、ユーザが指定してもよいし、セルの外見上の相違を利用してもよいし、セル内における斜め線の有無を利用してもよい。なお、セルの外見上の相違としては、例えば、セルの背景の相違（色、ハッチング等）や、文字の相違（フォント、サイズ、色、太字等）、罫線の相違等が挙げられる。
【００６１】
ステップ１１２では、抽出部３４が、ステップ１１０で抽出した結果を、一例として記憶部１４に出力し、本抽出処理プログラム１４Ａによる一連の処理を終了する。
【００６２】
このように本実施形態によれば、入力表が行又は列のセル数を用いて複数のサブテーブルに分割され、サブテーブル毎に、入力表に含まれるキー及びキーに対応する値が抽出される。このため、入力表に含まれる全てのキーについて定義する必要がなくなる。
【００６３】
[第２の実施形態]
上記第１の実施形態では、行又は列のセル数を用いて複数のサブテーブルに分割する形態について説明した。本実施形態では、ユーザにより指定されたキーセルを含む行又は列を用いて複数のサブテーブルに分割する形態について説明する。
【００６４】
図６は、第２の実施形態に係る画像形成装置１０Ｂの機能的な構成の一例を示すブロック図である。
なお、上記第１の実施形態に係る画像形成装置１０Ａと同様の機能を有する構成要素には同一の符号を付し、その繰り返しの説明は省略する。
【００６５】
図６に示すように、本実施形態に係る画像形成装置１０ＢのＣＰＵ１２Ａは、解析部３０、取得部３６、検索部３８、分割部４０、及び抽出部４２として機能する。
【００６６】
本実施形態に係る取得部３６は、解析部３０により表構造解析が行われた表に含まれるセルの内容を取得する。具体的に、取得部３６は、セル内の文字列を取得する。例えば、原稿読取部２２による読み取りによって、表が画像データとして入力された場合には、画像データに対して文字認識処理を行い、セル毎に文字列を取得する。一方、外部のＰＣ等から、表が予め定められたデータ形式の電子データとして入力された場合には、電子データを解析して、セル毎の文字列を取得してもよい。
【００６７】
本実施形態に係る検索部３８は、取得部３６によりセルの内容が取得された表から、ユーザによりキーとして入力された文字列の少なくとも一部と合致する文字列を含む複数のキーセルを検索する。
【００６８】
本実施形態に係る分割部４０は、検索部３８により検索された複数のキーセルに基づいて、表の行又は列の分割点を特定し、特定した分割点に従って、表を複数のサブテーブルに分割する。この分割点は、一例として、複数のキーセルの各々を含む行又は列として特定される。
【００６９】
本実施形態に係る抽出部４２は、分割部４０により分割された複数のサブテーブルの各々から、キーセルに対応する値を抽出する。
【００７０】
次に、図７を参照して、第２の実施形態に係る画像形成装置１０Ｂの作用を説明する。
【００７１】
図７は、第２の実施形態に係る抽出処理プログラム１４Ａによる処理の流れの一例を示すフローチャートである。
【００７２】
まず、画像形成装置１０Ｂに対して、抽出処理プログラム１４Ａの起動が指示されると、以下の各ステップを実行する。以下では、サブテーブルの分割を行方向に行う場合について説明するが、サブテーブルの分割を列方向に行う場合でも同様に適用される。
【００７３】
図７のステップ１２０では、解析部３０が、一例として、上述の図５に示す表の入力を受け付ける。また、検索部３８が、受け付けた入力表に対応して、ユーザから検索用キーとして文字列の入力を受け付ける。
【００７４】
ステップ１２２では、解析部３０が、ステップ１２０で受け付けた入力表に対して、表構造解析を行い、表の行数及び列数や、表のレイアウト等を含む表構造情報を取得する。
【００７５】
ステップ１２４では、取得部３６が、ステップ１２２で取得した表構造情報を用いて、ステップ１２０で受け付けた入力表に含まれる各セルの文字列を取得する。
【００７６】
ステップ１２６では、検索部３８が、ステップ１２０で入力を受け付けた検索用キーに基づいて、ステップ１２０で受け付けた入力表から複数のセルを検索する。具体的には、ステップ１２４で取得した各セルの文字列と、ステップ１２０で検索用キーとして入力を受け付けた文字列とを比較し、検索用キーの文字列の少なくとも一部と合致する文字列を含む複数のセルを検索する。
【００７７】
ステップ１２８では、分割部４０が、ステップ１２６で検索して得られた複数のセル（すなわちキーセル）に基づいて、分割点を特定する。具体的には、複数のキーセルの各々を含む行を分割点として特定する。
【００７８】
ステップ１３０では、分割部４０が、ステップ１２８で特定した分割点に従って、ステップ１２０で受け付けた入力表を複数のサブテーブルに分割する。ここで、図８を参照して、第２の実施形態に係るサブテーブル分割方法について具体的に説明する。
【００７９】
図８は、第２の実施形態に係るサブテーブル分割方法の説明に供する図である。
図８に示す入力表は、上述の図５に示す入力表と同様に、複数の行Ｒ１〜行Ｒ８を含んでいる。
【００８０】
（Ｓ１）では、上述したように、検索用キーに基づいて、入力表から複数のセルが検索される。図８の例では、検索された文字列の識別を容易にするため、ユーザが入力した検索用キーの文字列と合致するキーセルの文字列に下線が付されている。ここでは、一例として、「品名」、「数量」、「合計」、「箱」、「箱（大）」、及び「箱（小）」がキーセルとして検索される。
【００８１】
（Ｓ２）では、上記で検索されたキーセルに基づいて、分割点が特定される。具体的に、検索された複数のキーセルの各々を含む行が分割点として特定される。ここでは、一例として、「品名」及び「数量」を含む行Ｒ１、「合計」を含む行Ｒ４、「箱」を含む行Ｒ５、「箱（大）」を含む行Ｒ６、及び、「箱（小）」を含む行Ｒ８が分割点として特定される。
【００８２】
（Ｓ３）では、上記で特定された分割点に従って、入力表が複数のサブテーブルに分割される。具体的に、分割点として特定された行から、次の分割点として特定された行の直前の行までが１つのサブテーブルとして分割される。ここでは、一例として、行Ｒ１〜行Ｒ３がサブテーブル１、行Ｒ４がサブテーブル２、行Ｒ５がサブテーブル３、行Ｒ６〜行Ｒ７がサブテーブル４、行Ｒ８がサブテーブル５として分割される。
【００８３】
図７に戻り、ステップ１３２では、抽出部４２が、ステップ１３０で分割された複数のサブテーブルの各々から、キーセルに対応する値を抽出する。具体的には、上述したように、複数のサブテーブルの各々についてヘッダ範囲を特定し、特定したヘッダ範囲以外を値として、ヘッダ範囲に含まれるキーセルに対応する値を抽出する。
【００８４】
ステップ１３４では、抽出部４２が、ステップ１３２で抽出した結果を、一例として記憶部１４に出力し、本抽出処理プログラム１４Ａによる一連の処理を終了する。
【００８５】
このように本実施形態によれば、入力表がユーザにより指定されたキーセルを含む行又は列を用いて複数のサブテーブルに分割され、サブテーブル毎に、入力表に含まれるキー及びキーに対応する値が抽出される。このため、入力表に含まれる全てのキーについて定義する必要がなくなる。
【００８６】
[第３の実施形態]
本実施形態では、複数のサブテーブルに分割する場合に、必要以上のサブテーブルに過分割されることを抑制する形態について説明する。
【００８７】
図９は、第３の実施形態に係る画像形成装置１０Ｃの機能的な構成の一例を示すブロック図である。
なお、上記第２の実施形態に係る画像形成装置１０Ｂと同様の機能を有する構成要素には同一の符号を付し、その繰り返しの説明は省略する。
【００８８】
図９に示すように、本実施形態に係る画像形成装置１０ＣのＣＰＵ１２Ａは、解析部３０、取得部３６、検索部３８、分割部４４、及び抽出部４６として機能する。
【００８９】
本実施形態に係る分割部４４は、検索部３８により検索されたキーセルを含む行又は列に、２つ以上のセルが結合された結合セルの一部が含まれている場合に、結合セルの一部を含む行又は列を分割点として特定しない。これについて、図１０を参照して具体的に説明する。
【００９０】
図１０は、第３の実施形態に係るサブテーブル分割方法の説明に供する図である。
図１０に示す入力表は、上述の図５に示す入力表と同様に、複数の行Ｒ１〜行Ｒ８を含んでいる。
【００９１】
上記第２の実施形態では、「箱（小）」がキーセルであるため、行Ｒ８がサブテーブルとして分割されるが、行Ｒ８には、結合セルである「詳細」の一部のセルが含まれている。この場合、行Ｒ８をサブテーブルとして分割してしまうと、結合セルの一部のセルがブランク（空欄）であるため、この結合セルの一部のセルが「詳細」であることの判別が難しくなる場合がある。従って、このような場合には、行Ｒ８を分割点として特定しない。つまり、図１０の例では、行Ｒ８が１つのサブテーブルとして分割されず、行Ｒ６〜行Ｒ８が１つのサブテーブルとして分割される。
【００９２】
また、本実施形態に係る分割部４４は、検索部３８により検索されたキーセルを含む行又は列に、２つ以上のセルが結合された結合セルの一部が含まれている場合に、結合セルの文字列を、結合セルの各セルに複写するようにしてもよい。これについて、図１１を参照して具体的に説明する。
【００９３】
図１１は、第３の実施形態に係る別のサブテーブル分割方法の説明に供する図である。
図１１に示す入力表は、上述の図５に示す入力表と同様に、複数の行Ｒ１〜行Ｒ８を含んでいる。
【００９４】
上述の図１０の例では、行Ｒ８及び行Ｒ７の各々には、結合セルである「詳細」の一部のセル（このセルを「ブランクセル」という。）が含まれる。これに対して、図１１の例では、結合セルの文字列（ここでは「詳細」。）が各ブランクセルに複写される。つまり、行Ｒ６に含まれる結合セルの文字列が行Ｒ８及び行Ｒ７の各々のブランクセルに複写される。このため、行Ｒ８をサブテーブルとして分割した場合でも、行Ｒ８に含まれる、結合セルの一部のセルが「詳細」であることが容易に判別される。
【００９５】
また、本実施形態に係る分割部４４は、サブテーブルに、サブテーブルに含まれるキーセルに対応する値セルが含まれていない場合に、サブテーブルと、サブテーブルに隣接する他のサブテーブルとを統合するようにしてもよい。なお、値セルとは、キーセルに対応する値を表すセルである。これについて、図１２を参照して具体的に説明する。
【００９６】
図１２は、第３の実施形態に係る別のサブテーブル分割方法の説明に供する図である。
図１２に示す入力表は、複数の行Ｒ１〜行Ｒ９を含んでいる。
【００９７】
（Ｓ１１）では、上述したように、検索用キーに基づいて、入力表から複数のセルが検索される。図１２の例では、検索された文字列の識別を容易にするため、ユーザが入力した検索用キーの文字列と合致するキーセルの文字列に下線が付されている。ここでは、一例として、「Ａ社注文表」、「注文番号」、及び「合計」がキーセルとして検索される。
【００９８】
（Ｓ１２）では、上記で検索されたキーセルに基づいて、分割点が特定される。具体的に、検索された複数のキーセルの各々を含む行が分割点として特定される。ここでは、一例として、「Ａ社注文表」を含む行Ｒ１、「注文番号」を含む行Ｒ２、及び、「合成」を含む行Ｒ５が分割点として特定される。そして、特定された分割点に従って、入力表が複数のサブテーブルに分割される。具体的に、上述したように、分割点として特定された行から、次の分割点として特定された行の直前の行までが１つのサブテーブルとして分割される。ここでは、一例として、行Ｒ１がサブテーブル１、行Ｒ２〜行Ｒ４がサブテーブル２、行Ｒ５〜行Ｒ９がサブテーブル３として分割される。
【００９９】
（Ｓ１３）では、上記で分割されたサブテーブル１と、サブテーブル１に隣接する他のサブテーブルであるサブテーブル２とが統合される。このサブテーブル１には、キーセル（ここでは「Ａ社注文表」。）に対応する値セルが含まれていない。値セルを含まないサブテーブル１は単独で分割しても抽出する値セルがないため、このような場合、サブテーブル１と、サブテーブル１の下に位置するサブテーブル２とが統合される。つまり、行Ｒ１が行Ｒ２〜行Ｒ４と一体化され、行Ｒ１〜行Ｒ４が１つのサブテーブルとして分割される。
【０１００】
本実施形態に係る抽出部４６は、分割部４４により分割された複数のサブテーブルの各々から、キーセルに対応する値を抽出する。具体的には、上述したように、複数のサブテーブルの各々についてヘッダ範囲を特定し、特定したヘッダ範囲以外を値として、ヘッダ範囲に含まれるキーセルに対応する値を抽出する。
【０１０１】
このように本実施形態によれば、入力表を複数のサブテーブルに分割する場合に、必要以上のサブテーブルに過分割されることが抑制される。なお、本実施形態では、分割点をユーザが入力した検索用キーに基づいて特定する場合について示したが、本実施形態は、分割点を行又は列のセル数の変化を用いて特定する場合でも同様に適用可能とされる。
【０１０２】
[第４の実施形態]
本実施形態では、１つのサブテーブルと、当該サブテーブルに隣接する他のサブテーブルとの間で値セルが共通するキーセルを抽出する形態について説明する。
【０１０３】
図１３は、第４の実施形態に係る画像形成装置１０Ｄの機能的な構成の一例を示すブロック図である。
なお、上記第１の実施形態に係る画像形成装置１０Ａと同様の機能を有する構成要素には同一の符号を付し、その繰り返しの説明は省略する。
【０１０４】
図１３に示すように、本実施形態に係る画像形成装置１０ＤのＣＰＵ１２Ａは、解析部３０、分割部３２、及び抽出部４８として機能する。
【０１０５】
本実施形態に係る抽出部４８は、分割部３２により分割された複数のサブテーブルのうち、１つのサブテーブルと、当該サブテーブルに隣接する他のサブテーブルとの間で、値セルが共通するキーセル（以下、「共通キーセル」という。）を、他のサブテーブルから抽出する。具体的に、他のサブテーブルに含まれるキーセルは、当該サブテーブルの値セルを含む列又は行と同一の列又は行に位置する。
【０１０６】
次に、図１４を参照して、第４の実施形態に係る画像形成装置１０Ｄの作用を説明する。
【０１０７】
図１４は、第４の実施形態に係る抽出処理プログラム１４Ａによる処理の流れの一例を示すフローチャートである。
【０１０８】
まず、画像形成装置１０Ｄに対して、抽出処理プログラム１４Ａの起動が指示されると、以下の各ステップを実行する。以下では、サブテーブルの分割を行方向に行う場合について説明するが、サブテーブルの分割を列方向に行う場合でも同様に適用される。
【０１０９】
図１４のステップ１４０では、解析部３０が、一例として、図５に示す表の入力を受け付ける。
【０１１０】
ステップ１４２では、解析部３０が、ステップ１４０で受け付けた入力表に対して、表構造解析を行い、表の行数及び列数や、表のレイアウト等を含む表構造情報を取得する。
【０１１１】
ステップ１４４では、分割部３２が、ステップ１４２で取得した表構造情報を用いて、入力表の行毎のセル数を取得する。図５の例では、行Ｒ１〜行Ｒ３の各々のセル数は４個であり、行Ｒ４及び行Ｒ５の各々のセル数は２個であり、行Ｒ６〜行Ｒ８の各々のセル数は３個である。
【０１１２】
ステップ１４６では、分割部３２が、ステップ１４４で取得した行毎のセル数に基づいて、分割点を特定する。本実施形態に係る分割点は、セル数が変化した行として特定される。図５の例では、行Ｒ４でセル数が２個に変化し、行Ｒ６でセル数が３個に変化している。このため、行Ｒ４及び行Ｒ６が分割点として特定される。
【０１１３】
ステップ１４８では、分割部３２が、ステップ１４６で特定した分割点に従って、ステップ１４０で受け付けた入力表を複数のサブテーブルに分割する。具体的に、図５の例では、行Ｒ４及び行Ｒ６の各々を分割点として、行Ｒ１〜行Ｒ３を含むサブテーブル１、行Ｒ４〜行Ｒ５を含むサブテーブル２、及び行Ｒ６〜行Ｒ８を含むサブテーブル３に分割される。
【０１１４】
ステップ１５０では、抽出部４８が、ステップ１４８で分割された複数のサブテーブルの各々から、キーセルに対応する値を抽出する。具体的には、上述したように、複数のサブテーブルの各々についてヘッダ範囲を特定し、特定したヘッダ範囲以外を値として、ヘッダ範囲に含まれるキーセルに対応する値を抽出する。
【０１１５】
ステップ１５２では、抽出部４８が、ステップ１５０で抽出した結果に基づいて、１つのサブテーブルと、当該サブテーブルに隣接する他のサブテーブルとの間で共通キーセルが有るか否かを判定する。サブテーブル間で共通キーセルが有ると判定した場合（肯定判定の場合）、ステップ１５４に移行し、サブテーブル間で共通キーセルがないと判定した場合（否定判定の場合）、ステップ１５６に移行する。ここで、図１５を参照して、第４の実施形態に係る共通キーセル判定方法について具体的に説明する。
【０１１６】
図１５は、第４の実施形態に係る共通キーセル判定方法の説明に供する図である。
図１５に示す入力表は、上述の図５に示す入力表と同様に、複数の行Ｒ１〜行Ｒ８を含んでいるが、ここでは、行Ｒ１〜行Ｒ５のみを示し、行Ｒ６〜行Ｒ８の図示を省略する。
【０１１７】
図１５の例では、キーセルの識別を容易にするため、キーセルの文字列に下線が付されている。ここでは、一例として、「注文番号」、「品名」、「購入コード」、「数量」、「合計」、及び「箱」がキーセルとされている。
【０１１８】
図１５に示すように、行Ｒ１〜行Ｒ３を含むサブテーブル１と、行Ｒ４〜行Ｒ５を含むサブテーブル２とが取得される。サブテーブル１に含まれるキーセル「数量」は、サブテーブル２の値セル「５５」及び値セル「５」を含む列と同一の列に位置する。なお、上述したように、２つ以上のセルが結合された結合セルは、結合前の行番号及び列番号の情報を有している。図１５に示すサブテーブル１では、キーセル「数量」が第４列の情報を有している。また、サブテーブル２では、キーセル「合計」が結合セルであるため、第１列〜第３列の情報を有し、値セル「５５」は第４列の情報を有している。同様に、キーセル「箱」が結合セルであるため、第１列〜第３列の情報を有し、値セル「５」は第４列の情報を有している。この場合、値セル「５５」及び値セル「５」は、サブテーブル１とサブテーブル２とで共通すると判定される。このため、サブテーブル１のキーセル「数量」がサブテーブル２の共通キーセルと判定される。
【０１１９】
図１４に戻り、ステップ１５４では、抽出部４８が、他のサブテーブルから共通キーセルを抽出する。図１５の例では、サブテーブル１のキーセル「数量」がサブテーブル２の共通キーセルとして抽出される。
【０１２０】
ステップ１５６では、抽出部３４が、ステップ１５０又はステップ１５４で抽出した結果を、一例として記憶部１４に出力し、本抽出処理プログラム１４Ａによる一連の処理を終了する。
【０１２１】
このように本実施形態によれば、サブテーブルに隣接する他のサブテーブルから、サブテーブルとの間で値セルが共通するキーセルが抽出される。このため、複数のサブテーブルに分割しても、サブテーブル間の関連性が損なわれることがない。なお、本実施形態では、分割点を行又は列のセル数の変化を用いて特定する場合について示したが、本実施形態は、分割点をユーザが入力した検索用キーに基づいて特定する場合でも同様に適用可能とされる。
【０１２２】
以上、実施形態に係る情報処理装置の一例として画像形成装置を例示して説明した。実施形態は、画像形成装置が備える各部の機能をコンピュータに実行させるためのプログラムの形態としてもよい。実施形態は、このプログラムを記憶したコンピュータが読み取り可能な記憶媒体の形態としてもよい。
【０１２３】
その他、上記実施形態で説明した画像形成装置の構成は、一例であり、主旨を逸脱しない範囲内において状況に応じて変更してもよい。
【０１２４】
また、上記実施形態で説明したプログラムの処理の流れも、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
【０１２５】
また、上記実施形態では、プログラムを実行することにより、実施形態に係る処理がコンピュータを利用してソフトウェア構成により実現される場合について説明したが、これに限らない。実施形態は、例えば、ハードウェア構成や、ハードウェア構成とソフトウェア構成との組み合わせによって実現してもよい。
【符号の説明】
【０１２６】
１０Ａ〜１０Ｄ画像形成装置
１２   制御部
１２Ａ ＣＰＵ
１２Ｂ ＲＯＭ
１２Ｃ ＲＡＭ
１２Ｄ Ｉ／Ｏ
１４   記憶部
１４Ａ 抽出処理プログラム
１６   表示部
１８   操作部
２０   画像形成部
２２   原稿読取部
２４   通信部
３０   解析部
３２、４０、４４分割部
３４、４２、４６、４８抽出部
３６   取得部
３８   検索部
【図１】
2020177425.tif 000003
【図２】
2020177425.tif 000004
【図３】
2020177425.tif 000005
【図４】
2020177425.tif 000006
【図５】
2020177425.tif 000007
【図６】
2020177425.tif 000008
【図７】
2020177425.tif 000009
【図８】
2020177425.tif 000010
【図９】
2020177425.tif 000011
【図１０】
2020177425.tif 000012
【図１１】
2020177425.tif 000013
【図１２】
2020177425.tif 000014
【図１３】
2020177425.tif 000015
【図１４】
2020177425.tif 000016
【図１５】
2020177425.tif 000017