(57)【要約】【課題】キーワードの抽出時間を短縮する。【解決手段】情報処理装置１０は、基準キーワードの関連文字列を正規表現で表した抽出パターンを用いて、画像に含まれる文字を文字コードに変換した文書から基準キーワードの関連文字列を抽出する。【選択図】図１
2020123232.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)ディスプレイ、及び映像をスクリーンに投影するプロジェクタ等が用いられる。
【００４８】
スキャナユニット５０は、ＣＰＵ４１の指示に従って、例えば図示しないプラテンガラスに置かれた原稿の内容を光学的に読み取り、原稿の内容を画像に変換する装置である。スキャナユニット５０はスキャン処理部１１の処理に用いられる。
【００４９】
情報処理装置１０は、スキャナユニット５０で読み取られた画像をスキャン処理部１１で受け付けるが、必ずしもＩ／Ｏ４５に接続されたスキャナユニット５０から画像を受け付けるものではない。例えば、情報処理装置１０は、図示しない通信回線やＵＳＢインターフェースを介して通信ユニット４７と接続された外部装置の一例である図示しないスキャナ装置から画像を受け付けてもよい。また、情報処理装置１０は、クラウドサーバに格納されている画像を受け付けてもよい。
【００５０】
通信ユニット４７を通じて画像を受け付けるようにすれば、情報処理装置１０は必ずしもスキャナユニット５０を備えておく必要はない。この場合、情報処理装置１０に、デスクトップコンピュータ、タブレット型コンピュータ、スマートフォン、及びウェアラブル端末といった、ユーザとのインターフェースを提供する入出力装置、及び入力された情報を処理する処理機能を備えた情報機器が用いられる。
【００５１】
なお、Ｉ／Ｏ４５に接続されるユニットは図３に例示したユニットに限定されない。例えば、ＣＰＵ４１の指示に従って、処理した情報を記録媒体に形成する画像形成ユニットをＩ／Ｏ４５に接続してもよい。
【００５２】
また、不揮発性メモリ４４には抽出情報ＤＢ１６が構築され、文字誤り規則２０が記憶されているが、文字誤り規則２０は必ずしも不揮発性メモリ４４に記憶される必要はなく、例えば通信ユニット４７に接続された図示しない通信回線と接続される外部装置に記憶されてもよい。
【００５３】
次に、文書から基準キーワードの関連文字列を抽出する情報処理装置１０の動作について説明する。
【００５４】
図４は、ユーザから基準キーワードを受け付けると共に、受け付けた基準キーワードの関連文字列を文書から抽出するように指示した抽出指示を受け付けた場合に、ＣＰＵ４１によって実行される情報処理の流れの一例を示すフローチャートである。情報処理を規定する情報処理プログラムは、例えば情報処理装置１０のＲＯＭ４２に予め記憶されている。情報処理装置１０のＣＰＵ４１は、ＲＯＭ４２に記憶される情報処理プログラムを読み込み、情報処理を実行する。
【００５５】
ここでは一例として、「リード線」等の表記に用いられる「リード」が基準キーワードとして指定された場合について説明するが、文字コードで表される文字列であれば、どのような文字列が基準キーワードとして指定されてもよい。図２に示したように、抽出情報ＤＢ１６で管理される文字誤り規則２０には、「リード」を構成する各々の文字「リ」、「ー」、及び「ド」に対応した誤変換文字が予め登録されている。また、類似キーワードの抽出範囲を指定する編集距離も予め指定されているものとする。説明の便宜上、ユーザによって指定された編集距離を「編集距離Ｌ」と表す。編集距離Ｌには１以上の値が設定され、ここでは一例として、編集距離Ｌに“２”が設定されている場合について説明する。
【００５６】
ステップＳ１０において、編集距離を表す変数Ｎを“１”に初期化する。以降の説明では、編集距離を表すために図４の情報処理で一時的に利用される変数Ｎを、ユーザによって指定された編集距離Ｌと区別するため「編集距離Ｎ」と表すことにする。
【００５７】
ステップＳ２０において、ＣＰＵ４１は、基準キーワードに対して編集距離Ｎの文字列を表す抽出パターンを生成する。この場合、ＣＰＵ４１は、生成する抽出パターンを正規表現で表す。正規表現とは、共通の特徴を有する少なくとも１つの文字列を予め定められた表記形式で表現する表現方法である。基準キーワードに対して編集距離Ｎの文字列は複数存在し、１つ１つを具体的な文字列で列記することは困難であるが、正規表現を用いれば、編集距離Ｎの文字列というように特定の特徴を有する文字列が１つにまとめて表現される。
【００５８】
図５は、基準キーワード「リード」に対して編集距離Ｎの文字列を抽出する抽出パターンの例を示す図であり、図５（Ａ）が、編集距離が“１”の文字列を抽出する抽出パターンの例を示し、図５（Ｂ）が、編集距離が“２”の文字列を抽出する抽出パターンの例を示している。基準キーワードに対して編集距離Ｎの文字列を抽出する抽出パターンとは、基準キーワードに対して編集距離Ｎ以内の文字列を抽出する抽出パターンのことである。
【００５９】
基準キーワード「リード」に対して編集距離が“１”以内となる文字列は列記し尽せないほどの数が存在するが、正規表現を用いれば、図５（Ａ）に示すように３つの文字列で表される。また、「リード」に対して編集距離が“２”以内となる文字列は編集距離が“１”となる文字列以上に存在することになり、更に列記することが困難となるが、正規表現を用いれば、図５（Ｂ）に示すように９つの文字列で表される。
【００６０】
正規表現において、“.”は任意の１文字を表す。すなわち、“.”は何でもよい１文字に置き換えられる。
【００６１】
“?”は隣り合う直前の１文字が存在しないか、または存在することを表す。したがって、“.?”は任意の１文字も存在しない状態か、または任意の１文字が存在することを表している。
【００６２】
“|”は、ＯＲ条件を表す記号であり、たて棒の左右にある文字の何れかの文字が用いられることを表す。したがって、「(リ.|.?)」は、「リ」と「リ」に続く任意の１文字で表される２文字の文字列、若しくは、任意の１文字または「リ」が削除され１文字もない状態を表している。
【００６３】
ＣＰＵ４１は、例えば文字列を構成する文字毎に“.|.?”を付加して、編集距離Ｎの文字列を正規表現で表した抽出パターンを生成する。したがって、基準キーワード「リード」に対して編集距離が“１”の文字列の抽出パターンは「(リ.|.?)ード」、「リ(ー.|.?)ド」、「リー(ド.|.?)」の３つとなる。このように抽出パターンを生成することで、編集距離Ｎの文字列を抽出する抽出パターンには、編集距離（Ｎ−１）以下の文字列も含まれる。具体的には、例えば「(リ.|.?)ード」の抽出パターンには、編集距離が“０”の文字列、すなわち、基準キーワードそのものである「リード」の文字列も含まれる。なお、抽出パターンにおいて最も外側の括弧で囲まれた範囲の文字、例えば「(リ.|.?)」等の文字は、以降のステップＳ２０の処理において１文字として扱われる。
【００６４】
文字列の表現に正規表現を用いた場合、１つ１つ列記することが困難な特徴を有する文字列が表現される以外にも優れた特徴が得られる。具体的には、指定された文字列に対して編集距離Ｎの文字列を文書から抽出する場合、文字列同士を比較しながら抽出対象となる文字列を抽出するよりも、編集距離Ｎの文字列を正規表現で表し、正規表現で表した文字列の条件に一致する文字列を抽出した方が、文字列の抽出速度が速くなる。
【００６５】
これは、コンピュータ４０で用いられる処理言語における文字列の定義が正規表現で表されることからもわかるように、正規表現で表された文字列の処理はコンピュータ４０に適した処理の１つであり、ＤＰマッチングのような手法を用いて編集距離Ｎの文字列かどうか判定しながら文書から文字列を抽出するよりも、予め正規表現で表された編集距離Ｎの文字列と一致する文字列を文書から抽出する方が、抽出に要する演算量が少なくなるためである。
【００６６】
ＣＰＵ４１は、基準キーワードに対して編集距離Ｎの文字列を表す抽出パターンを生成すると、生成した抽出パターンを基準キーワードと対応付けて、例えば抽出情報ＤＢ１６に記憶する。
【００６７】
ステップＳ３０において、ＣＰＵ４１は、編集距離Ｎに“１”を加算する。
【００６８】
ステップＳ４０において、ＣＰＵ４１は、編集距離Ｎが編集距離Ｌと等しいか否か、すなわち、編集距離Ｎが編集距離Ｌに達したか否かを判定する。編集距離Ｎが編集距離Ｌに達していない場合にはステップＳ２０に移行し、ステップＳ２０で、加算後の編集距離Ｎの文字列を正規表現で表した抽出パターンを生成する。すなわち、ＣＰＵ４１は、作成した１つ前の文字列の抽出パターン、すなわち、編集距離（Ｎ−１）以内の文字列を抽出する抽出パターンに含まれる文字毎に正規表現“.|.?”を付加して、編集距離Ｎの文字列を抽出する抽出パターンを生成し、最終的に編集距離Ｌの文字列を正規表現で表した抽出パターンを生成する。
【００６９】
編集距離Ｌが“２”に設定されている場合、基準キーワード「リード」に対して編集距離が“２”の文字列を抽出する抽出パターンは図５（Ｂ）のようになる。
【００７０】
一方、ステップＳ４０の判定処理で編集距離Ｎが編集距離Ｌに達したと判定された場合には、ユーザによって指定された編集距離Ｌの文字列を抽出する抽出パターンが生成されたことになるため、ステップＳ５０に移行する。
【００７１】
ステップＳ４０までの処理によって、基準キーワードに対して編集距離Ｌの文字列を抽出する抽出パターンが生成されたことになるが、文書には、基準キーワードの文字が誤変換されることで発生した誤りキーワードが含まれる場合がある。誤りキーワードはＯＣＲ処理による文字コードへの変換前は基準キーワードを表す文字列であったと考えられ、誤りキーワードに対して編集距離Ｌの文字列も本来は基準キーワードを表す文字列であった可能性がある。したがって、文書から基準キーワードの関連文字列をできる限り抽出するためには、各々の誤りキーワードに対して編集距離Ｌの文字列も文書から抽出した方が好ましい。
【００７２】
そのため、ステップＳ５０において、ＣＰＵ４１は文字誤り規則２０を参照して、基準キーワードを構成する文字毎の誤変換文字を取得する。文字誤り規則２０が図２に示した文字誤り規則２０である場合、基準キーワード「リード」の「リ」に対して「１ノ」及び「ｌノ」、「ー」に対して「-」、並びに、「ド」に対して「ト”」の誤変換文字がそれぞれ取得される。
【００７３】
ステップＳ６０において、ＣＰＵ４１はステップＳ４０までの処理によって生成された、基準キーワードに対して編集距離Ｌの文字列を抽出する抽出パターンを修正して、誤りキーワードに対して編集距離Ｌの文字列も抽出する抽出パターンを生成する。具体的には、基準キーワードを構成する各々の文字が、対応する誤変換文字であってもよいというＯＲ条件を抽出パターンに追加する。
【００７４】
例えば基準キーワード「リード」に対して編集距離が“２”の文字列を抽出する「((リ.|.?).|.?)ード」の抽出パターンに対して図２に示した文字誤り規則２０を適用すれば、「((リ|１ノ|ｌノ).|.？).|.？)(ー|-)(ド|ト”)」が、基準キーワード「リード」に対して編集距離が“２”の文字列と、「リード」の誤りキーワードに対して編集距離が“２”の文字列を抽出する抽出パターン、すなわち、基準キーワード「リード」の関連文字列を抽出する抽出パターンとなる。
【００７５】
このようにして、図５（Ｂ）に示した基準キーワードに対して編集距離Ｌの文字列を抽出する各々の抽出パターンから、図６に示すような基準キーワードに対して編集距離Ｌの関連文字列を抽出する抽出パターンが生成される。
【００７６】
ステップＳ７０において、ＣＰＵ４１は、ステップＳ６０で生成した基準キーワードの関連文字列を抽出する抽出パターンを用いて、文書から基準キーワードの関連文字列を抽出する。具体的には、ＣＰＵ４１は、文書に含まれる文字列の中から、基準キーワードの関連文字列を抽出する抽出パターンで表される文字列と一致する文字列を抽出する。
【００７７】
ステップＳ８０において、ＣＰＵ４１は、ステップＳ７０で抽出した基準キーワードの関連文字列を出力して、図４に示す情報処理を終了する。この場合、ＣＰＵ４１は、文書における基準キーワードの関連文字列の位置を表す情報を基準キーワードの関連文字列と対応付ける形式で出力してもよい。具体的には、文書における基準キーワードの関連文字列を他の文字列と異なる色で表示したり、太字や別のフォント種別で表示したりするようにしてもよい。
【００７８】
なお、図４に示した情報処理装置１０では、編集距離Ｎの値を１つずつ増加させながら、基準キーワードに対して編集距離Ｌの文字列を抽出する抽出パターンを生成したが、これは一例であり、始めから基準キーワードに対して編集距離Ｌの文字列を抽出する抽出パターンを生成するようにしてもよい。
【００７９】
また、予めＸ文字（“Ｘ”は１以上の整数）の基準キーワードに対応した編集距離Ｎの文字列を抽出する抽出パターンのテンプレートを例えば不揮発性メモリ４４に記憶しておき、基準キーワードの文字数及び編集距離Ｌに対応した抽出パターンのテンプレートに基準キーワードの文字を当てはめることで、基準キーワードに対して編集距離Ｌの文字列を抽出する抽出パターンを生成するようにしてもよい。
【００８０】
ユーザが情報処理装置１０が出力した基準キーワードの関連文字列を参考にしながら誤変換された可能性のある文字列を元の基準キーワードに修正することで、スキャナユニット５０で読み込む前の原稿の内容が再現されることになる。
【００８１】
こうした文書の修正作業を行うことによって、例えばユーザは、基準キーワードを構成する文字が文字誤り規則２０に登録された誤変換文字とは異なる文字に変換されていることに気付くことがある。このような場合、ユーザは、本来の正しい文字（以降、「指定文字」という）と指定文字の誤変換文字を対応付け、入力ユニット４８を通じて情報処理装置１０に入力する。
【００８２】
新たな誤変換文字を受け付けた情報処理装置１０は、指定文字に対する誤変換文字を文字誤り規則２０に登録する。例えばユーザが、「リ」が「１１」に誤変換されている状況に気付いた場合、ユーザは指定文字を「リ」、誤変換文字を「１１」として情報処理装置１０に入力する。
【００８３】
図７は、図２に示した文字誤り規則２０の文字「リ」に対して、誤変換文字「１１」を追加した文字誤り規則２０の例を示す図である。図７に示すように、情報処理装置１０はユーザから受け付けた誤変換文字を、文字誤り規則２０における指定文字の誤変換文字欄に追加する。
【００８４】
文字誤り規則２０への誤変換文字の追加に伴い、情報処理装置１０の更新部１２Ｄは、誤変換文字の追加が行われた指定文字が、基準キーワードの関連文字列を抽出する抽出パターンに含まれるか確認し、当該抽出パターンに含まれる場合には図４のステップＳ６０で説明したように、指定文字が、追加された誤変換文字であってもよいというＯＲ条件を追加して、抽出パターンを更新する。
【００８５】
図８は、文字「リ」に対して誤変換文字「１１」が追加された場合に生成される、文書から基準キーワード「リード」の関連文字列を抽出する抽出パターンの例を示した図である。指定文字「リ」に誤変換文字「１１」が追加される前の抽出パターン（図６参照）に対して、ＯＲ条件“|”によって指定文字「リ」と並列に誤変換文字「１１」が追加されていることがわかる。
【００８６】
情報処理装置１０が、更新後の抽出パターンを用いて文書から基準キーワードの関連文字列を再度抽出することで、更新前の抽出パターンを用いた場合よりも数多くの基準キーワードの関連文字列が抽出されることになる。しかも、抽出パターンの数は増加せずに、抽出パターンの指定文字に誤変換文字が追加されるだけであり、正規表現で表された抽出パターンに一致する文字列を文書から抽出するという処理の内容に変わりはないことから、追加される誤変換文字が増えたとしても、生成した誤りキーワード毎に、ＤＰマッチング等によって編集距離Ｌの文字列かどうか判定しながら文書から文字列を抽出するより、基準キーワードの関連文字列を抽出する抽出時間の増加量が少なくて済む。
【００８７】
換言すれば、情報処理装置１０において、基準キーワードの関連文字列の抽出に要する時間（以降、「抽出時間」という）は、抽出パターンの数に依存することになる。
【００８８】
また、ユーザは文書の修正作業を行うことによって、例えば抽出されていない基準キーワードの関連文字列が文書に存在していることに気づくことがある。このような場合、ユーザは、指定した編集距離Ｌより大きい編集距離（「編集距離Ｌ１」とする）を、入力ユニット４８を通じて情報処理装置１０に入力する。
【００８９】
新たな編集距離Ｌ１を受け付けた情報処理装置１０の更新部１２Ｄは、編集距離Ｎを“Ｌ＋１”に設定した上で、編集距離Ｎが編集距離Ｌ１に達するまで、図４のステップＳ２０〜Ｓ４０の処理を繰り返し実行し、基準キーワードに対して編集距離Ｌ１の関連文字列を抽出する抽出パターンの更新を行う。
【００９０】
情報処理装置１０が、更新後の抽出パターンを用いて文書から基準キーワードの関連文字列を再度抽出することで、更新前の抽出パターンを用いた場合よりも数多くの基準キーワードの関連文字列が文書から抽出されることになる。
【００９１】
なお、例えば文書から抽出される編集距離が“２”以内の基準キーワードの関連文字列の数と編集距離が“６”以内の基準キーワードの関連文字列の数を比べた場合、編集距離が３倍になったからといって、抽出される関連文字列の数も３倍になることはなく、抽出される関連文字列の数に変化が見られないことが多い。すなわち、スキャナユニット５０の分解性能等の違いにもよるが、実用上は編集距離を“２”程度に設定すれば、文書から抽出される基準キーワードの関連文字列の数が頭打ちとなる傾向が見られる。
【００９２】
文字誤り規則２０を参照し、基準キーワードの各々の文字を誤変換文字に置き換えることで得られる誤りキーワードの全ての組み合わせを生成し、生成した誤りキーワード毎に、ＤＰマッチング等によって編集距離Ｌの基準キーワードの関連文字列を文書から抽出する場合、文字列の抽出時間は、誤りキーワードの数に依存する。すなわち、基準キーワードの文字数を“ｋ”とし、文字に対応付けられた誤変換文字の最大数を“ｍ”とすれば、この場合の文字列の抽出時間は“ｋｍ”のオーダーで表される。
【００９３】
文字に対応付けられる誤変換文字は誤変換のパターンの数だけ存在し、誤変換のパターンには様々なパターンが存在する。したがって、文字に対応付けられた誤変換文字の最大数ｍに特定の上限値は存在しないことになるため、文字に対応付けられた誤変換文字の最大数ｍの増加に伴い、文字列の抽出時間は累乗のオーダーで増加することになる。
【００９４】
一方、上述したように、情報処理装置１０における文字列の抽出時間は、抽出パターンの数に依存する。すなわち、情報処理装置１０における文字列の抽出時間は“ｋL”のオーダーで表される。既に説明したように、“Ｌ”はユーザが指定した編集処理である。編集距離は実用上“２”程度の値が用いられることからもわかるように、編集距離Ｌがある値に達すると、その値以上の大きな値に設定したとしても文字列の抽出結果は変わらない傾向がある。したがって、編集距離Ｌが際限なく大きな値に設定されることはなく、情報処理装置１０における文字列の抽出時間の増加が抑えられる。
【００９５】
また、情報処理装置１０における文字列の抽出時間は、文字に対応付けられた誤変換文字の最大数ｍに依存しないため、文字に対応付けられた誤変換文字の最大数ｍが増加しても、文字列の抽出時間の増加は無視できる程度に抑えられる。
【００９６】
以上、実施の形態を用いて本発明について説明したが、本発明は実施の形態に記載の範囲には限定されない。本発明の要旨を逸脱しない範囲で実施の形態に多様な変更又は改良を加えることができ、当該変更又は改良を加えた形態も本発明の技術的範囲に含まれる。例えば、本発明の要旨を逸脱しない範囲で処理の順序を変更してもよい。
【００９７】
本実施の形態では、一例として情報処理をソフトウェアで実現する形態について説明したが、図４に示したフローチャートと同等の処理を、例えばＡＳＩＣ（Application Specific Integrated Circuit）に実装し、ハードウェアで処理させるようにしてもよい。この場合、情報処理をそれぞれソフトウェアで実現した場合と比較して、処理の高速化が図られる。
【００９８】
また、図１に示した各機能部や、抽出情報ＤＢ１６を単体の情報処理装置１０で実現するのではなく、例えばクラウドコンピューティングを用いて複数の情報機器に各機能部や抽出情報ＤＢ１６を分散して配置し、複数の情報機器を連係させることで、情報処理装置１０と同等の処理を実行するようにしてもよい。
【００９９】
上述した実施の形態では、情報処理プログラムがＲＯＭ４２にインストールされている形態を説明したが、これに限定されるものではない。本発明に係る情報処理プログラムは、コンピュータで読み取り可能な記憶媒体に記録された形態で提供することも可能である。例えば、本発明に係る情報処理プログラムを、ＣＤ(Compact Disc)−ＲＯＭ、又はＤＶＤ(Digital Versatile Disc)−ＲＯＭ等の光ディスクに記録した形態で提供してもよい。また、本発明に係る情報処理プログラムを、ＵＳＢメモリ及びフラッシュメモリ等の半導体メモリに記録した形態で提供してもよい。更に、情報処理装置１０は、通信ユニット４７を介して、図示しない通信回線に接続される外部装置から本発明に係る情報処理プログラムを取得するようにしてもよい。
【符号の説明】
【０１００】
１０    情報処理装置
１１    スキャン処理部
１２    画像処理部
１２Ａ  ＯＣＲ処理部
１２Ｂ  抽出パターン生成部
１２Ｃ  抽出部
１２Ｄ  更新部
１３    出力部
１４    ユーザインターフェース（ＵＩ）部
１５    制御部
１６    抽出情報ＤＢ
２０    文字誤り規則
４０    コンピュータ
４１    ＣＰＵ
４２    ＲＯＭ
４３    ＲＡＭ
４４    不揮発性メモリ
４７    通信ユニット
４８    入力ユニット
４９    表示ユニット
５０    スキャナユニット
Ｌ（Ｎ）  編集距離
【図１】
2020123232.tif 000003
【図２】
2020123232.tif 000004
【図３】
2020123232.tif 000005
【図４】
2020123232.tif 000006
【図５】
2020123232.tif 000007
【図６】
2020123232.tif 000008
【図７】
2020123232.tif 000009
【図８】
2020123232.tif 000010