(57)【要約】【課題】空白文字がない文字列に対して空白文字を挿入する場合にあって、空白文字を挿入すべき文字間に空白文字を挿入しないこと、又は空白文字を挿入すべきではない文字間に空白文字を挿入してしまうことを防止するようにした情報処理装置を提供する。【解決手段】情報処理装置の受付手段は、文字の位置を受け付け、第１の算出手段は、前記受付手段によって受け付けられた文字の位置から文字間の間隔を算出し、第２の算出手段は、前記第１の算出手段によって算出された文字間の間隔から該間隔の変位を算出し、決定手段は、前記第２の算出手段によって算出された変位から閾値を決定し、判断手段は、前記第２の算出手段によって算出された変位と前記決定手段によって決定された閾値との関係に基づいて、文字間に空白文字を挿入するか否かを判断し、挿入手段は、前記判断手段によって空白文字を挿入すると判断された場合に、前記文字間に空白文字を挿入する。【選択図】図１
2014021533.tif 000002
【特許請求の範囲】
【請求項１】
文字の位置を受け付ける受付手段と、
前記受付手段によって受け付けられた文字の位置から文字間の間隔を算出する第１の算出手段と、
前記第１の算出手段によって算出された文字間の間隔から該間隔の変位を算出する第２の算出手段と、
前記第２の算出手段によって算出された変位から閾値を決定する決定手段と、
前記第２の算出手段によって算出された変位と前記決定手段によって決定された閾値との関係に基づいて、文字間に空白文字を挿入するか否かを判断する判断手段と、
前記判断手段によって空白文字を挿入すると判断された場合に、前記文字間に空白文字を挿入する挿入手段
を具備することを特徴とする情報処理装置。
【請求項２】
前記判断手段は、第１の変位が前記閾値よりも大きい又は以上であって、第２の変位が該閾値の負の値よりも小さい又は以下である第１の条件を満たす場合は、前記文字間に空白文字を挿入すると判断する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記受付手段は、さらに前記文字の文字コードを受け付け、
前記判断手段は、前記第１の条件を満たさない場合は、対象としている文字が予め定められた文字コードであって、前記第１の変位が前記閾値よりも大きい又は以上であって、前記第２の変位が該閾値よりも小さい又は以下であって、第３の変位が該閾値の負の値よりも小さい又は以下である第２の条件を満たす場合は、前記文字間に空白文字を挿入すると判断する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記判断手段は、対象としている文字が行の最初の文字であって、予め定められた文字コードである場合に、第１の変位が前記閾値の負の値よりも小さい又は以下である第３の条件を満たす場合は、前記文字間に空白文字を挿入すると判断する
ことを特徴とする請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記第１の算出手段は、対象としている文字列が予め定められた文字列である場合又は文字間の間隔が０未満又は以下である場合に、該文字列内の文字間の間隔を修正する
ことを特徴とする請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記受付手段によって受け付けられた文字の位置から文字間の間隔を算出する第１の算出手段と、
前記第１の算出手段によって算出された文字間の間隔から該間隔の変位を算出する第２の算出手段と、
前記第１の算出手段によって算出された文字間の間隔から閾値を決定する決定手段と、
前記第２の算出手段によって算出された変位と前記決定手段によって決定された閾値との関係に基づいて、文字間に空白文字を挿入するか否かを判断する判断手段と、
前記判断手段によって空白文字を挿入すると判断された場合に、前記文字間に空白文字を挿入する挿入手段
を具備することを特徴とする情報処理装置。
【請求項７】
コンピュータを、
文字の位置を受け付ける受付手段と、
前記受付手段によって受け付けられた文字の位置から文字間の間隔を算出する第１の算出手段と、
前記第１の算出手段によって算出された文字間の間隔から該間隔の変位を算出する第２の算出手段と、
前記第２の算出手段によって算出された変位から閾値を決定する決定手段と、
前記第２の算出手段によって算出された変位と前記決定手段によって決定された閾値との関係に基づいて、文字間に空白文字を挿入するか否かを判断する判断手段と、
前記判断手段によって空白文字を挿入すると判断された場合に、前記文字間に空白文字を挿入する挿入手段
として機能させるための情報処理プログラム。
【請求項８】
コンピュータを、
前記受付手段によって受け付けられた文字の位置から文字間の間隔を算出する第１の算出手段と、
前記第１の算出手段によって算出された文字間の間隔から該間隔の変位を算出する第２の算出手段と、
前記第１の算出手段によって算出された文字間の間隔から閾値を決定する決定手段と、
前記第２の算出手段によって算出された変位と前記決定手段によって決定された閾値との関係に基づいて、文字間に空白文字を挿入するか否かを判断する判断手段と、
前記判断手段によって空白文字を挿入すると判断された場合に、前記文字間に空白文字を挿入する挿入手段
として機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、文書を構成する単語の区切りに空白文字が存在する外国語文書において、各単語の区切りを確実に検出し、空白文字を区切りに確実に再挿入することができる技術を提供することを課題とし、英語表記ルールによる判断、元文書データに含まれる空白文字の有無の情報による判断、隣接する文字同士が含まれる文字列オブジェクトの同一性による判断、隣接する文字同士が含まれる文字列オブジェクトの間隔による判断を用いて隣接する文字が同じ単語に含まれるかどうか（空白の有無）について判断し、これらの処理をこの記述の順番で判断するのが好ましいことが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−００８９６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、空白文字がない文字列に対して空白文字を挿入する場合にあって、空白文字を挿入すべき文字間に空白文字を挿入しないこと、又は空白文字を挿入すべきではない文字間に空白文字を挿入してしまうことを防止するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、文字の位置を受け付ける受付手段と、前記受付手段によって受け付けられた文字の位置から文字間の間隔を算出する第１の算出手段と、前記第１の算出手段によって算出された文字間の間隔から該間隔の変位を算出する第２の算出手段と、前記第２の算出手段によって算出された変位から閾値を決定する決定手段と、前記第２の算出手段によって算出された変位と前記決定手段によって決定された閾値との関係に基づいて、文字間に空白文字を挿入するか否かを判断する判断手段と、前記判断手段によって空白文字を挿入すると判断された場合に、前記文字間に空白文字を挿入する挿入手段を具備することを特徴とする情報処理装置である。
【０００６】
請求項２の発明は、前記判断手段は、第１の変位が前記閾値よりも大きい又は以上であって、第２の変位が該閾値の負の値よりも小さい又は以下である第１の条件を満たす場合は、前記文字間に空白文字を挿入すると判断することを特徴とする請求項１に記載の情報処理装置である。
【０００７】
請求項３の発明は、前記受付手段は、さらに前記文字の文字コードを受け付け、前記判断手段は、前記第１の条件を満たさない場合は、対象としている文字が予め定められた文字コードであって、前記第１の変位が前記閾値よりも大きい又は以上であって、前記第２の変位が該閾値よりも小さい又は以下であって、第３の変位が該閾値の負の値よりも小さい又は以下である第２の条件を満たす場合は、前記文字間に空白文字を挿入すると判断することを特徴とする請求項２に記載の情報処理装置である。
【０００８】
請求項４の発明は、前記判断手段は、対象としている文字が行の最初の文字であって、予め定められた文字コードである場合に、第１の変位が前記閾値の負の値よりも小さい又は以下である第３の条件を満たす場合は、前記文字間に空白文字を挿入すると判断することを特徴とする請求項１から３のいずれか一項に記載の情報処理装置である。
【０００９】
請求項５の発明は、前記第１の算出手段は、対象としている文字列が予め定められた文字列である場合又は文字間の間隔が０未満又は以下である場合に、該文字列内の文字間の間隔を修正することを特徴とする請求項１から４のいずれか一項に記載の情報処理装置である。
【００１０】
請求項６の発明は、前記受付手段によって受け付けられた文字の位置から文字間の間隔を算出する第１の算出手段と、前記第１の算出手段によって算出された文字間の間隔から該間隔の変位を算出する第２の算出手段と、前記第１の算出手段によって算出された文字間の間隔から閾値を決定する決定手段と、前記第２の算出手段によって算出された変位と前記決定手段によって決定された閾値との関係に基づいて、文字間に空白文字を挿入するか否かを判断する判断手段と、前記判断手段によって空白文字を挿入すると判断された場合に、前記文字間に空白文字を挿入する挿入手段を具備することを特徴とする情報処理装置である。
【００１１】
請求項７の発明は、コンピュータを、文字の位置を受け付ける受付手段と、前記受付手段によって受け付けられた文字の位置から文字間の間隔を算出する第１の算出手段と、前記第１の算出手段によって算出された文字間の間隔から該間隔の変位を算出する第２の算出手段と、前記第２の算出手段によって算出された変位から閾値を決定する決定手段と、前記第２の算出手段によって算出された変位と前記決定手段によって決定された閾値との関係に基づいて、文字間に空白文字を挿入するか否かを判断する判断手段と、前記判断手段によって空白文字を挿入すると判断された場合に、前記文字間に空白文字を挿入する挿入手段として機能させるための情報処理プログラムである。
【００１２】
請求項８の発明は、コンピュータを、前記受付手段によって受け付けられた文字の位置から文字間の間隔を算出する第１の算出手段と、前記第１の算出手段によって算出された文字間の間隔から該間隔の変位を算出する第２の算出手段と、前記第１の算出手段によって算出された文字間の間隔から閾値を決定する決定手段と、前記第２の算出手段によって算出された変位と前記決定手段によって決定された閾値との関係に基づいて、文字間に空白文字を挿入するか否かを判断する判断手段と、前記判断手段によって空白文字を挿入すると判断された場合に、前記文字間に空白文字を挿入する挿入手段として機能させるための情報処理プログラムである。
【発明の効果】
【００１３】
請求項１の情報処理装置によれば、空白文字がない文字列に対して空白文字を挿入する場合にあって、空白文字を挿入すべき文字間に空白文字を挿入しないこと、又は空白文字を挿入すべきではない文字間に空白文字を挿入してしまうことを防止することができる。
【００１４】
請求項２の情報処理装置によれば、第１の条件を満たす場合は、文字間に空白文字を挿入すると判断することができる。
【００１５】
請求項３の情報処理装置によれば、第２の条件を満たす場合は、文字間に空白文字を挿入すると判断することができる。
【００１６】
請求項４の情報処理装置によれば、第３の条件を満たす場合は、文字間に空白文字を挿入すると判断することができる。
【００１７】
請求項５の情報処理装置によれば、対象としている文字列が予め定められた文字列である場合又は文字間の間隔が０未満又は以下である場合に、その文字列内の文字間の間隔を修正することができる。
【００１８】
請求項６の情報処理装置によれば、空白文字がない文字列に対して空白文字を挿入する場合にあって、空白文字を挿入すべき文字間に空白文字を挿入しないこと、又は空白文字を挿入すべきではない文字間に空白文字を挿入してしまうことを防止することができる。
【００１９】
請求項７の情報処理プログラムによれば、空白文字がない文字列に対して空白文字を挿入する場合にあって、空白文字を挿入すべき文字間に空白文字を挿入しないこと、又は空白文字を挿入すべきではない文字間に空白文字を挿入してしまうことを防止することができる。
【００２０】
請求項８の情報処理プログラムによれば、空白文字がない文字列に対して空白文字を挿入する場合にあって、空白文字を挿入すべき文字間に空白文字を挿入しないこと、又は空白文字を挿入すべきではない文字間に空白文字を挿入してしまうことを防止することができる。
【図面の簡単な説明】
【００２１】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】文字座標テーブルのデータ構造例を示す説明図である。
【図３】文字コードテーブルのデータ構造例を示す説明図である。
【図４】本実施の形態による処理例を示す説明図である。
【図５】本実施の形態による処理例を示すフローチャートである。
【図６】本実施の形態による処理例を示す説明図である。
【図７】本実施の形態による処理例を示す説明図である。
【図８】本実施の形態による処理例を示す説明図である。
【図９】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００２２】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（もちろんのことながら、全ての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という意味を有する記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００２３】
本実施の形態である情報処理装置は、文字列に空白文字を挿入するものであって、図１の例に示すように、文字座標受付モジュール１１０、文字間変位算出モジュール１２０、文字コード受付モジュール１３０、空白検知モジュール１４０、空白挿入モジュール１５０を有している。
本実施の形態が対象とする文字列の言語は、単語間（又は文節間）に空白を必要とする言語である。このような言語の場合に、文字認識結果である文字列、電子文書であるＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）（登録商標）等から取り出した文字列にあっては、空白文字が含まれていない場合がある。例えば、画像としては空白があるが、それを文字コードとして取り出す場合には空白文字がなく、単語が連続してつながっているような文字列となる場合である。本実施の形態は、このような文字列を対象として、空白文字を挿入する。
【００２４】
文字座標受付モジュール１１０は、文字間変位算出モジュール１２０と接続されている。文字座標受付モジュール１１０は、文字の位置を受け付ける。例えば、文字認識がされた文書画像の場合は文字の外接矩形（ｘ、ｙ、幅、高さ）、ＰＤＦ等の電子文書の場合はフォントの外周座標（フォントの外周が存在する座標）を受け付ける。ここでの文字列は、空白文字が挿入されていないものである。例えば、文字の外接矩形として文字座標テーブル２００がある。図２は、文字座標テーブル２００のデータ構造例を示す説明図である。文字座標テーブル２００には、文書ＩＤ欄２１０、行数欄２１２、行ＩＤ欄２１４、文字数欄２１６、文字ＩＤ欄２１８、Ｘ欄２２０、Ｙ欄２２２、幅欄２２４、高欄２２６等がある。文書ＩＤ欄２１０は、その文書を本実施の形態で一意に識別するための情報（文書ＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）、文書名等）を記憶している。行数欄２１２は、その文書内にある行数を記憶している。その行数だけ行ＩＤ欄２１４がある。行ＩＤ欄２１４は、その文書内にある行を本実施の形態で一意に識別するための情報を記憶している。文字数欄２１６は、その行内にある文字数を記憶している。その文字数だけ文字ＩＤ欄２１８がある。文字ＩＤ欄２１８は、その行内にある文字を本実施の形態で一意に識別するための情報を記憶している。文字ＩＤ欄２１８は、Ｘ欄２２０、Ｙ欄２２２、幅欄２２４、高欄２２６を有している。Ｘ欄２２０は、その文字の外接矩形の左上のＸ座標を記憶している。Ｙ欄２２２は、その文字の外接矩形の左上のＹ座標を記憶している。幅欄２２４は、その文字の外接矩形の幅を記憶している。高欄２２６は、その文字の外接矩形の高さを記憶している。
【００２５】
文字間変位算出モジュール１２０は、文字座標受付モジュール１１０、空白検知モジュール１４０と接続されている。文字間変位算出モジュール１２０は、文字座標受付モジュール１１０によって受け付けられた文字の位置から文字間の間隔を算出する。そして、その文字間の間隔からその間隔の変位を算出する。
例えば、横書きの場合は、文字の間隔とは、文字の外接矩形の右端のＹ座標から次の文字の外接矩形の左端のＹ座標までの距離である。前述の図２の文字座標テーブル２００を用いた例では、（次の文字のＹ座標）−（対象文字のＹ座標＋幅）によって文字の間隔を算出する。そして、間隔の変位とは、隣接する文字間の距離の差であって、（第２の文字と第３の文字の間隔）−（第１の文字と第２の文字の間隔）によって算出する。ここで、第１の文字とは対象とする文字であって、第２の文字は次の文字であって、第３の文字は次の次の文字である。
また、文字間変位算出モジュール１２０は、対象としている文字列が予め定められた文字列である場合又は文字間の間隔が０未満又は以下である場合に、その文字列内の文字間の間隔を修正するようにしてもよい。ここで、「文字間の間隔を修正する」とは、例えば、その行における文字間の間隔の統計的値（平均値、最頻値、中央値等）に修正する。
【００２６】
文字コード受付モジュール１３０は、空白検知モジュール１４０と接続されている。文字コード受付モジュール１３０は、文字座標受付モジュール１１０が受け付けた文字の位置に対応する文字の文字コードを受け付ける。例えば、受け付ける文字の情報として文字コードテーブル３００がある。図３は、文字コードテーブル３００のデータ構造例を示す説明図である。文字コードテーブル３００は、文字ＩＤ欄３１０、文字コード欄３２０を有している。文字ＩＤ欄３１０は、文字座標テーブル２００における文字ＩＤ欄２１８に対応するものである。文字コード欄３２０は、その文字の文字コードを記憶している。したがって、文字座標テーブル２００の文字ＩＤ欄２１８の文字ＩＤが特定できれば、その文字コードを抽出することができる。逆に、文字コードテーブル３００の文字ＩＤ欄３１０の文字ＩＤが特定できれば、その文字の位置を抽出することができる。
文字コード受付モジュール１３０が受け付ける文字コードは、例えば、文書画像の場合は文字認識結果であり、電子文書の場合はその電子文書から文字列の複写等の操作によって抜き出した文字コード情報であり、文字間変位算出モジュール１２０が受け付けた文字の位置に対応するものである。そして、ここでの文字列は、空白文字が挿入されていないものである。
【００２７】
空白検知モジュール１４０は、文字間変位算出モジュール１２０、文字コード受付モジュール１３０、空白挿入モジュール１５０と接続されている。空白検知モジュール１４０は、文字間変位算出モジュール１２０によって算出された変位から閾値を決定する。そして、文字間変位算出モジュール１２０によって算出された変位と閾値との関係に基づいて、文字間に空白文字を挿入するか否かを判断する。ここで閾値の決定は、その行における変位の絶対値の平均値、最頻値、中央値等の統計的値である。
空白検知モジュール１４０は、第１の変位が閾値よりも大きい又は以上であって、第２の変位がその閾値の負の値よりも小さい又は以下である第１の条件を満たす場合は、文字間に空白文字を挿入すると判断するようにしてもよい。
ここでの条件は、具体的には、連続する４文字以上があることを対象としている。そのうちの第１番目の文字と第２番目の文字との間の間隔を第１の文字間隔といい、第２番目の文字と第３番目の文字との間の間隔を第２の文字間隔といい、第３番目の文字と第４番目の文字との間の間隔を第３の文字間隔という。そして、第１の文字間隔と第２の文字間隔の差分（第２の文字間隔から第１の文字間隔を減算した値）を第１の変位といい、第２の文字間隔と第３の文字間隔の差分（第３の文字間隔から第２の文字間隔を減算した値）を第２の変位という。
「閾値の負の値」とは、閾値をＨとした場合の「−Ｈ」をいう。つまり、閾値に−１を乗算した値である。
そして、この条件Ａ（第１の変位が閾値よりも大きい又は以上であって、第２の変位が閾値の負の値よりも小さい又は以下であること、図５に例示のフローチャート内のステップＳ５１８）を満たした場合は、第２の文字間隔（第２番目の文字と第３番目の文字との間の間隔）は空白であると判断する。条件を満たしていない場合は、第２の文字間隔は空白ではないと判断する。なお、空白文字を挿入するか否かを判断する文字間は、第２番目の文字と第３番目の文字との間の間隔である。つまり、第１の変位を算出するための後方の文字間隔（第２の変位を算出するための前方の文字間隔）である。
【００２８】
図４を用いて説明する。図４は、本実施の形態による処理例を示す説明図である。
対象とする文字列として「Ｗｈｏ  ａｒｅ  ｙｏｕ」であるとした場合に、その文字間の間隔は、「１０、１０、２０、１０、１０、２０、１０、１０」であり、変位は「０、＋１０、−１０、０、＋１０、−１０、０」である。したがって、閾値を変位の絶対値の平均値とした場合は５．７である。ここで文字間隔４２２（文字（ｏ）４２０と文字（ａ）４２４間）に空白文字を挿入するか否かを判断する場合について説明する。文字間隔４１８と文字間隔４２２の変位は「＋１０」であり、閾値（５．７）より大きい。そして、文字間隔４２２と文字間隔４２６の変位は「−１０」であり、閾値の負の値（−５．７）より小さい。したがって、文字間隔４２２には空白文字を挿入すると判断する。同様に、文字間隔４３４にも空白文字を挿入すると判断するが、その他の文字間には空白文字を挿入しないと判断する。
【００２９】
また、空白検知モジュール１４０は、第１の条件を満たさない場合は、対象としている文字が予め定められた文字コードであって、第１の変位が閾値よりも大きい又は以上であって、第２の変位が閾値よりも小さい又は以下であって、第３の変位が閾値の負の値よりも小さい又は以下である第２の条件を満たす場合は、文字間に空白文字を挿入すると判断するようにしてもよい。空白文字を挿入するか否かを判断する文字間は、対象とする文字（予め定められた文字コードである文字）と前にある文字の間と、対象とする文字と次の文字の間のことである。
ここでの条件は、具体的には、連続する５文字以上があることを対象としている。４文字目までは前述と同じであり、第４番目の文字と第５番目の文字との間の間隔を第４の文字間隔という。そして、第３の文字間隔と第４の文字間隔の差分（第４の文字間隔から第３の文字間隔を減算した値）を第３の変位という。予め定められた文字コードとしては、例えば、「Ｉ」、「ａ」、「Ａ」、「＆」等の一文字で単語（文節）となり得るものである。つまり、その文字の両側は空白文字が挿入されている可能性が高いこととなる。
第１の条件を満たさない場合（図５に例示のフローチャート内のステップＳ５１８でＮの場合）は、対象としている文字が予め定められた文字コードであって（図５に例示のフローチャート内のステップＳ５２２でＹの場合）、第１の変位が閾値よりも大きい又は以上であって、第２の変位が閾値よりも小さい又は以下であって、第３の変位が閾値の負の値よりも小さい又は以下である第２の条件を満たす場合（図５に例示のフローチャート内のステップＳ５２４でＹの場合）は、文字間に空白文字を挿入すると判断する。第２の条件を満たしていない場合は、その文字間には空白文字を挿入しないと判断する。
ここで空白文字を挿入する文字間は、２つある。１つは、第２の文字間隔（第２番目の文字と第３番目の文字との間の間隔）であり、もう１つは、第３の文字間隔（第３番目の文字と第４番目の文字との間の間隔）である。
【００３０】
図６を用いて説明する。図６は、本実施の形態による処理例を示す説明図である。
対象とする文字列として「ｉｓ  ａ  ｐｅｎ」であるとした場合に、その文字間の間隔は、「１０、２０、２０、１０、１０」であり、変位は「＋１０、０、−１０、０」である。したがって、閾値を変位の絶対値の平均値とした場合は５（なお、閾値は４つの変位の絶対値の平均値としたが、正確には、この文字列の前後にも文字列があるので、それらの変位も含めた平均値とする必要があるが、ここでは説明のため便宜的に５とした）である。ここで対象とする文字が文字（ａ）６２０であり、予め定められた文字コードである場合に、文字間隔６１８（文字（ｓ）６１６と文字（ａ）６２０間）と文字間隔６２２（文字（ａ）６２０と文字（ｐ）６２４間）に空白文字を挿入するか否かを判断する場合について説明する。文字間隔６１４と文字間隔６１８の変位は「＋１０」であり、閾値（５）より大きい。そして、文字間隔６１８と文字間隔６２２の変位は「０」であり、閾値（５）より小さい。そして、文字間隔６２２と文字間隔６２６の変位は「−１０」であり、閾値の負の値（−５）より小さい。したがって、文字間隔６１８と文字間隔６２２には空白文字を挿入すると判断する。
【００３１】
また、空白検知モジュール１４０は、対象としている文字が行の最初の文字であって、予め定められた文字コードである場合に、第１の変位が閾値の負の値よりも小さい又は以下である第３の条件を満たす場合は、文字間に空白文字を挿入すると判断するようにしてもよい。空白文字を挿入する文字間は、第１の文字間隔（第１番目の文字と第２番目の文字との間の間隔）である。
ここで、予め定められた文字コードとしては、前述と同様に、例えば、「Ｉ」、「ａ」、「Ａ」、「＆」等の一文字で単語（文節）となり得るものである。つまり、その文字の両側は空白文字が挿入されている可能性が高いこととなる。ただし、行の先頭の文字であるため、その文字の前には文字がない。
対象としている文字が行の最初の文字であって、予め定められた文字コードである場合（図５に例示のフローチャート内のステップＳ５１６でＮの場合）に、第１の変位が閾値の負の値よりも小さい又は以下である第３の条件を満たす場合（図５に例示のフローチャート内のステップＳ５２８でＹの場合）は、文字間に空白文字を挿入すると判断する。第３の条件を満たしていない場合は、その文字間には空白文字を挿入しないと判断する。
【００３２】
図７を用いて説明する。図７は、本実施の形態による処理例を示す説明図である。
対象とする文字列として「Ｉ  ａｍ」であるとした場合に、その文字間の間隔は、「２０、１０」であり、変位は「−１０」である。閾値は５であるとする。ここで対象とする文字が文字（Ｉ）７１２であり、予め定められた文字コードである場合に、文字間隔７１４（文字（Ｉ）７１２と文字（ａ）７１６間）に空白文字を挿入するか否かを判断する場合について説明する。文字間隔７１４と文字間隔７１８の変位は「−１０」であり、閾値の負の値（−５）より小さい。したがって、文字間隔７１４には空白文字を挿入すると判断する。
なお、空白文字を挿入するか否かを判断する文字間は、対象とする文字（行の先頭文字）と次の文字の間のことである。
【００３３】
空白挿入モジュール１５０は、空白検知モジュール１４０と接続されている。空白挿入モジュール１５０は、空白検知モジュール１４０によって空白文字を挿入すると判断された場合に、文字間に空白文字を挿入する。これによって、空白文字が挿入された文章が生成される。図８は、空白挿入モジュール１５０による出力例を示す説明図である。図８（ａ）の例は図４の例に対する出力結果であり、「Ｗｈｏ」と「ａｒｅ」の間と「ａｒｅ」と「ｙｏｕ」の間に空白が挿入されており、図８（ｂ）の例は図６の例に対する出力結果であり、「Ｔｈｉｓ」と「ｉｓ」の間、「ａ」の両隣に空白が挿入されており、図８（ｃ）の例は図７の例に対する出力結果であり、「Ｉ」と「ａｍ」の間、「ａ」の両隣に空白が挿入されている。
【００３４】
図５は、本実施の形態による処理例を示すフローチャートである。
ステップＳ５０２では、文字座標受付モジュール１１０と文字コード受付モジュール１３０が、行毎に文字座標と文字コードを受け付ける。
ステップＳ５０４では、文字間変位算出モジュール１２０が、文字間を算出する。
ステップＳ５０６では、文字間変位算出モジュール１２０が、隣り合う文字間の変位を算出する。
ステップＳ５０８では、ステップＳ５３４までの処理を行毎に繰り返す。
【００３５】
ステップＳ５１０では、空白検知モジュール１４０が、予め定められた文字列である場合、文字間の間隔を調整する。ここでの予め定められた文字列とは、「ｆｉ」、「ｆｊ」、「ｏｊ」、「ｉｊ」、「ｒｊ」等がある。これらの文字列における文字間は、負の値となることがあるためである。これらの文字列があると判断した場合は、その文字間は、その行における文字間の間隔の統計的値（平均値、最頻値、中央値等）に修正する。また、予め定められた文字列であると判断することの他に、文字間の間隔が負の値（又は０以下）であるか否かを判断するようにしてもよい。負の値（又は０以下）である場合は、その文字間は、その行における文字間の間隔の統計的値に修正する。そして、その修正した間隔にかかわる変位については算出し直す（ステップＳ５０６を再度処理する）。
【００３６】
ステップＳ５１２では、空白検知モジュール１４０が、その行における変位の絶対値の平均値を算出し、それを基準に閾値ＴＨを決定する。
ステップＳ５１４では、ステップＳ５３０までの処理を文字間毎に繰り返す。
ステップＳ５１６では、空白検知モジュール１４０が、対象としている行において、最初の一文字であって、予め定められたコードであるか否かを判断し、予め定められたコードである場合はステップＳ５２８へ進み、それ以外の場合はステップＳ５１８へ進む。
ステップＳ５１８では、空白検知モジュール１４０が、対象文字間の変位＞ＴＨ、次の文字間の変位＜−ＴＨであるか否かを判断し、対象文字間の変位＞ＴＨ、次の文字間の変位＜−ＴＨである場合はステップＳ５２０へ進み、それ以外の場合はステップＳ５２２へ進む。
【００３７】
ステップＳ５２０では、空白検知モジュール１４０が、対象とする文字間は空白であると判断する。
ステップＳ５２２では、空白検知モジュール１４０が、対象の文字が予め定められた文字コードであるか否かを判断し、予め定められた文字コードである場合はステップＳ５２４へ進み、それ以外の場合はステップＳ５２６へ進む。
ステップＳ５２４では、空白検知モジュール１４０が、対象文字間の変位＞ＴＨ、次の文字間の変位の絶対値＜ＴＨ、次の次の文字間の変位＜−ＴＨであるか否かを判断し、対象文字間の変位＞ＴＨ、次の文字間の変位の絶対値＜ＴＨ、次の次の文字間の変位＜−ＴＨである場合はステップＳ５２０へ進み、それ以外の場合はステップＳ５２６へ進む。
ステップＳ５２６では、空白検知モジュール１４０が、対象とする文字間は空白ではないと判断する。
【００３８】
ステップＳ５２８では、空白検知モジュール１４０が、対象文字間の変位＜−ＴＨであるか否かを判断し、対象文字間の変位＜−ＴＨである場合はステップＳ５２０へ進み、それ以外の場合はステップＳ５２６へ進む。
ステップＳ５３０では、文字間毎に繰り返すことを終了する。
ステップＳ５３２では、空白挿入モジュール１５０が、空白文字を追加した文字列を作成する。
ステップＳ５３４では、行毎に繰り返すことを終了する。
【００３９】
図９を参照して、本実施の形態の情報処理装置のハードウェア構成例について説明する。図９に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部９１７と、プリンタなどのデータ出力部９１８を備えたハードウェア構成例を示している。
【００４０】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０１は、前述の実施の形態において説明した各種のモジュール、すなわち、文字座標受付モジュール１１０、文字間変位算出モジュール１２０、文字コード受付モジュール１３０、空白検知モジュール１４０、空白挿入モジュール１５０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００４１】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０２は、ＣＰＵ９０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０３は、ＣＰＵ９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス９０４により相互に接続されている。
【００４２】
ホストバス９０４は、ブリッジ９０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス９０６に接続されている。
【００４３】
キーボード９０８、マウス等のポインティングデバイス９０９は、操作者により操作される入力デバイスである。ディスプレイ９１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などがあり、各種情報をテキストやイメージ情報として表示する。
【００４４】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）９１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ９０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、文字座標テーブル２００、文字コードテーブル３００、処理結果である空白文字が挿入された文字列などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【００４５】
ドライブ９１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体９１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース９０７、外部バス９０６、ブリッジ９０５、及びホストバス９０４を介して接続されているＲＡＭ９０３に供給する。リムーバブル記録媒体９１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【００４６】
接続ポート９１４は、外部接続機器９１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート９１４は、インタフェース９０７、及び外部バス９０６、ブリッジ９０５、ホストバス９０４等を介してＣＰＵ９０１等に接続されている。通信部９１６は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部９１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部９１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００４７】
なお、図９に示す情報処理装置のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図９に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図９に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００４８】
前述の実施の形態においては、横書きの例を示したが、縦書きであってもよい。また、言語として英語を例示したが、単語間（又は文節間）に空白を必要とする言語であれば、他の言語であってもよい。例えば、フランス語、ドイツ語、ポルトガル語、韓国語等がある。
また、前述の実施の形態の説明において、閾値等との比較において、「以上」、「以下」、「より大きい」、「より小さい（未満）」としたものは、その組み合わせに矛盾が生じない限り、それぞれ「より大きい」、「より小さい（未満）」、「以上」、「以下」としてもよい。
【００４９】
前述の空白検知モジュール１４０は、文字間変位算出モジュール１２０によって算出された変位から閾値を決定したが、変形例として、言語によっては文字間の間隔の情報を使って閾値を決定してもよい。例えば、韓国語等は文字間の間隔の統計的値（平均値、最頻値、中央値等）を閾値として採用してもよい。具体的には、空白検知モジュール１４０は、文字間変位算出モジュール１２０によって算出された文字間の間隔から閾値を決定する。そして、文字間隔算出モジュール１２０によって算出された変位と閾値との関係に基づいて、文字間に空白文字を挿入するか否かを判断する。
また、対象とする言語によって、前述の実施の形態を用いるか、この変形例を用いるかを決定するようにしてもよい。具体的には、前述の実施の形態を適用するのに適した言語又は変形例を適用するのに適した言語を記憶しているテーブルを用意しておき、対象とする言語がそのテーブルにあるか否かを判断して、前述の実施の形態を用いるか、この変形例を用いるかを決定する。
【００５０】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００５１】
１１０…文字座標受付モジュール
１２０…文字間変位算出モジュール
１３０…文字コード受付モジュール
１４０…空白検知モジュール
１５０…空白挿入モジュール
【図１】
2014021533.tif 000003
【図２】
2014021533.tif 000004
【図３】
2014021533.tif 000005
【図４】
2014021533.tif 000006
【図５】
2014021533.tif 000007
【図６】
2014021533.tif 000008
【図７】
2014021533.tif 000009
【図８】
2014021533.tif 000010
【図９】
2014021533.tif 000011