(57)【特許請求の範囲】
【請求項１】
文字と文字の間の距離である文字間隔を受け付ける受付手段と、
前記受付手段によって受け付けられた文字間隔を２以上の集合に分割するための閾値を定めるための第１の変数と第２の変数であって、該第１の変数は各集合の分布の統計量であり、該第２の変数は各集合に含まれる文字間隔の個数の割合を示す重み係数であり、該第１の変数と該第２の変数の初期値を設定する初期値設定手段と、
前記初期値設定手段によって初期値が設定された第１の変数と第２の変数と前記受付手段によって受け付けられた文字間隔に基づいて、前記第１の変数と前記第２の変数を修正する修正手段と、
前記修正手段による処理を繰り返すように制御し、予め定められた条件に基づいて、該処理を終了させるか否かを判定する第１の判定手段と、
前記第１の判定手段によって前記修正手段による処理を終了させると判定した後に、該修正手段による処理結果である第１の変数と第２の変数によって定まる前記閾値に基づいて、前記受付手段によって受け付けられた文字間隔が空白文字に対応するか否かを判定する第２の判定手段
を具備し、
前記修正手段による２回目以降の処理は、前回の修正手段による処理結果である第１の変数と第２の変数と前記受付手段によって受け付けられた文字間隔に基づいて、該第１の変数と該第２の変数を修正する
ことを特徴とする情報処理装置。
【請求項２】
前記集合の分布はガウス分布である
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記初期値設定手段は、前記閾値が、
文字間隔の代表値と最大値の間の値となるように、
文字間隔の代表値と文字間隔が大きなほうから予め定められた個数を除いた後の最大値の間の値となるように、
又は、文字間隔の代表値と文字間隔が予め定められた値より大である又は以上である文字間隔を除いた後の最大値の間の値となるように、
前記第１の変数と前記第２の変数の初期値を設定する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記初期値設定手段は、前記閾値が、
文字間隔の代表値と最小値の間の値となるように、
文字間隔の代表値と文字間隔が小さなほうから予め定められた個数を除いた後の最小値の間の値となるように、
又は、文字間隔の代表値と文字間隔が予め定められた値より小である又は以下である文字間隔を除いた後の最小値の間の値となるように、
前記第１の変数と前記第２の変数の初期値を設定する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項５】
前記第２の判定手段は、
各文字間隔毎に、該文字間隔が空白文字に対応する確率である第１の確率と、該文字間隔が空白文字に対応しない確率である第２の確率を算出し、該第１の確率と該第２の確率とを比較することによって、該文字間隔が空白文字に対応するか否かを判定する
ことを特徴とする請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記第２の判定手段は、
文字間隔が空白文字に対応する確率と、対応しない確率が同じとなる文字間隔値を算出し、該算出した文字間隔値を閾値として、文字間隔が空白文字に対応するか否かを判定する
ことを特徴とする請求項１から４のいずれか一項に記載の情報処理装置。
【請求項７】
文字間隔値の発生頻度が０となる値を閾値とする
ことを特徴とする請求項６記載の情報処理装置。
【請求項８】
コンピュータを、
文字と文字の間の距離である文字間隔を受け付ける受付手段と、
前記受付手段によって受け付けられた文字間隔を２以上の集合に分割するための閾値を定めるための第１の変数と第２の変数であって、該第１の変数は各集合の分布の統計量であり、該第２の変数は各集合に含まれる文字間隔の個数の割合を示す重み係数であり、該第１の変数と該第２の変数の初期値を設定する初期値設定手段と、
前記初期値設定手段によって初期値が設定された第１の変数と第２の変数と前記受付手段によって受け付けられた文字間隔に基づいて、前記第１の変数と前記第２の変数を修正する修正手段と、
前記修正手段による処理を繰り返すように制御し、予め定められた条件に基づいて、該処理を終了させるか否かを判定する第１の判定手段と、
前記第１の判定手段によって前記修正手段による処理を終了させると判定した後に、該修正手段による処理結果である第１の変数と第２の変数によって定まる前記閾値に基づいて、前記受付手段によって受け付けられた文字間隔が空白文字に対応するか否かを判定する第２の判定手段
として機能させ、
前記修正手段による２回目以降の処理は、前回の修正手段による処理結果である第１の変数と第２の変数と前記受付手段によって受け付けられた文字間隔に基づいて、該第１の変数と該第２の変数を修正する
ことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
文字間の空白を検出することに関する技術がある。
これに関連する技術として、例えば、特許文献１には、英文書を認識する際に前後の文字の組み合わせによって異なる文字間スペースを補正することにより、単語間スペースを高精度に検出することを目的とし、入力された英文書画像から個々の文字を切り出して文字間のスペース幅を算出するとともに、切り出された個々の文字を認識し、さらに、各文字間スペースの前後に位置する文字の組み合わせに応じた補正係数を用いて、文字間スペース幅を補正し、次に、得られた各スペース幅の頻度分布をクラス幅毎のヒストグラムとして表し、ヒストグラム中に現れた谷から文字間と単語間とのスペース幅を区分するしきい値を決定することにより、単語間スペースを検出して空白記号を挿入することが開示されている。
【０００３】
また、例えば、特許文献２には、光学的に読み取った画像情報を認識していく処理を能率的に行い、高速化することを目的とし、画像情報の入力中は入力している画像情報の文字切り出しと認識を交互に順次行っていき、画像情報の入力が終了したら、入力された画像情報から文字の切り出しをしてしまい、切り出されたものに対して認識を行うよう制御し、これにより、入力中は順次認識し、入力が終了したら認識するに値するだけの画像情報のみ認識を行うのでむだな処理がなくなることが開示されている。
【０００４】
また、例えば、特許文献３には、文字フィールド中にスペース文字が存在する場合であってもフリーピッチ処理方式によってそのスペース文字をも認識し、処理することができるようにすることを目的とし、文字認識のフリーピッチ処理方式において、文字フィールドの白領域が、所定長さ以上であることを検出するとこの白領域はスペース文字であると判断し、前記所定長さに満たないことを検出するとこの白領域は通常の文字間隔であると判断し、夫々の判断に応じた処理を行うようにすることが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０５−００６４５９号公報
【特許文献２】特開平０５−０２８３１９号公報
【特許文献３】特開昭６２−０２６５８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、文字間隔の分布の谷が存在しない場合であっても、受け付けた文字間隔の統計的性質によって、空白文字がある位置を判定するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、文字と文字の間の距離である文字間隔を受け付ける受付手段と、前記受付手段によって受け付けられた文字間隔を２以上の集合に分割するための閾値を定めるための第１の変数と第２の変数であって、該第１の変数は各集合の分布の統計量であり、該第２の変数は各集合に含まれる文字間隔の個数の割合を示す重み係数であり、該第１の変数と該第２の変数の初期値を設定する初期値設定手段と、前記初期値設定手段によって初期値が設定された第１の変数と第２の変数と前記受付手段によって受け付けられた文字間隔に基づいて、前記第１の変数と前記第２の変数を修正する修正手段と、前記修正手段による処理を繰り返すように制御し、予め定められた条件に基づいて、該処理を終了させるか否かを判定する第１の判定手段と、前記第１の判定手段によって前記修正手段による処理を終了させると判定した後に、該修正手段による処理結果である第１の変数と第２の変数によって定まる前記閾値に基づいて、前記受付手段によって受け付けられた文字間隔が空白文字に対応するか否かを判定する第２の判定手段を具備し、前記修正手段による２回目以降の処理は、前回の修正手段による処理結果である第１の変数と第２の変数と前記受付手段によって受け付けられた文字間隔に基づいて、該第１の変数と該第２の変数を修正することを特徴とする情報処理装置である。
【０００８】
請求項２の発明は、前記集合の分布はガウス分布であることを特徴とする請求項１に記載の情報処理装置である。
【０００９】
請求項３の発明は、前記初期値設定手段は、前記閾値が、文字間隔の代表値と最大値の間の値となるように、文字間隔の代表値と文字間隔が大きなほうから予め定められた個数を除いた後の最大値の間の値となるように、又は、文字間隔の代表値と文字間隔が予め定められた値より大である又は以上である文字間隔を除いた後の最大値の間の値となるように、前記第１の変数と前記第２の変数の初期値を設定することを特徴とする請求項１又は２に記載の情報処理装置である。
【００１０】
請求項４の発明は、前記初期値設定手段は、前記閾値が、文字間隔の代表値と最小値の間の値となるように、文字間隔の代表値と文字間隔が小さなほうから予め定められた個数を除いた後の最小値の間の値となるように、又は、文字間隔の代表値と文字間隔が予め定められた値より小である又は以下である文字間隔を除いた後の最小値の間の値となるように、前記第１の変数と前記第２の変数の初期値を設定することを特徴とする請求項１又は２に記載の情報処理装置である。
【００１１】
請求項５の発明は、前記第２の判定手段は、各文字間隔毎に、該文字間隔が空白文字に対応する確率である第１の確率と、該文字間隔が空白文字に対応しない確率である第２の確率を算出し、該第１の確率と該第２の確率とを比較することによって、該文字間隔が空白文字に対応するか否かを判定することを特徴とする請求項１から４のいずれか一項に記載の情報処理装置である。
【００１２】
請求項６の発明は、前記第２の判定手段は、文字間隔が空白文字に対応する確率と、対応しない確率が同じとなる文字間隔値を算出し、該算出した文字間隔値を閾値として、文字間隔が空白文字に対応するか否かを判定することを特徴とする請求項１から４のいずれか一項に記載の情報処理装置である。
【００１３】
請求項７の発明は、文字間隔値の発生頻度が０となる値を閾値とすることを特徴とする請求項６記載の情報処理装置である。
【００１４】
請求項８の発明は、コンピュータを、文字と文字の間の距離である文字間隔を受け付ける受付手段と、前記受付手段によって受け付けられた文字間隔を２以上の集合に分割するための閾値を定めるための第１の変数と第２の変数であって、該第１の変数は各集合の分布の統計量であり、該第２の変数は各集合に含まれる文字間隔の個数の割合を示す重み係数であり、該第１の変数と該第２の変数の初期値を設定する初期値設定手段と、前記初期値設定手段によって初期値が設定された第１の変数と第２の変数と前記受付手段によって受け付けられた文字間隔に基づいて、前記第１の変数と前記第２の変数を修正する修正手段と、前記修正手段による処理を繰り返すように制御し、予め定められた条件に基づいて、該処理を終了させるか否かを判定する第１の判定手段と、前記第１の判定手段によって前記修正手段による処理を終了させると判定した後に、該修正手段による処理結果である第１の変数と第２の変数によって定まる前記閾値に基づいて、前記受付手段によって受け付けられた文字間隔が空白文字に対応するか否かを判定する第２の判定手段として機能させ、前記修正手段による２回目以降の処理は、前回の修正手段による処理結果である第１の変数と第２の変数と前記受付手段によって受け付けられた文字間隔に基づいて、該第１の変数と該第２の変数を修正することを特徴とする情報処理プログラム。
【発明の効果】
【００１５】
請求項１の情報処理装置によれば、文字間隔の分布の谷が存在しない場合であっても、受け付けた文字間隔の統計的性質によって、空白文字がある位置を判定することができる。
【００１６】
請求項２の情報処理装置によれば、ガウス分布にしたがって、空白文字がある位置を判定することができる。
【００１７】
請求項３の情報処理装置によれば、受け付けた文字間隔によって第１の変数と第２の変数の初期値を設定することができる。
【００１８】
請求項４の情報処理装置によれば、受け付けた文字間隔によって第１の変数と第２の変数の初期値を設定することができる。
【００１９】
請求項５の情報処理装置によれば、文字間隔が空白文字に対応する確率と、その文字間隔が空白文字に対応しない確率によって、文字間隔が空白文字に対応するか否かを判定することができる。
【００２０】
請求項６の情報処理装置によれば、本構成を有していない場合に比較して、少ない計算量で文字間隔が空白文字に対応するか否かを判定することができる。
【００２１】
請求項７の情報処理装置によれば、文字間隔値の発生頻度が０となる値を閾値として、文字間隔が空白文字に対応するか否かを判定することができる。
【００２２】
請求項８の情報処理プログラムによれば、文字間隔の分布の谷が存在しない場合であっても、受け付けた文字間隔の統計的性質によって、空白文字がある位置を判定することができる。
【図面の簡単な説明】
【００２３】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態による処理例を示すフローチャートである。
【図３】文字間隔データテーブルのデータ構造例を示す説明図である。
【図４】文字間隔の例を示す説明図である。
【図５】文字間隔の例を示す説明図である。
【図６】文字間隔の例を示す説明図である。
【図７】文字間隔の頻度の例を示す説明図である。
【図８】文字間隔の頻度の例を示す説明図である。
【図９】文字間隔の頻度の例を示す説明図である。
【図１０】文字間隔の頻度を示すヒストグラムの例を示す説明図である。
【図１１】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００２４】
まず、実施の形態を説明する前に、本実施の形態の前提となる文字間の空白を検出する技術について説明する。
文字認識を行う場合、文字の外接矩形位置と文字コードが出力される。
図４に示されるように、文書４００内のＡＢＣＤの４文字の認識が行われるとする。なお、この場合、文書４００は画像とする。このように、文字間隔が異なる場合、文字認識結果としての出力テキスト列には、ＡＢとＣＤの間にスペースコードを挿入したほうがよい。
又は、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）等のように文字コードと文字位置を指定して、文書を表示させるようなフォーマットが存在する。このような電子文書フォーマットのビューワでは、図４のＡＢＣＤの部分をコピー＆ペーストすることによって、テキスト列をコピーすることが可能となる。なお、この場合、文書４００はＰＤＦの電子文書とする。電子文書のビューワとして、もともとスペースコードが含まれていない場合であっても、文字位置の間隔が広い場合には、テキスト列としてスペースコードを挿入する機能が望ましい。すなわち、出力として、「ＡＢＣＤ」ではなくて、「ＡＢ＿ＣＤ」としたい(左記でアンダースコアはスペース文字、あるいは、空白文字コードを示す)。
【００２５】
このように、文字コードと文字位置のみが与えられた場合に、文字列中にスペース文字を挿入するかどうかを判定するための従来技術が種々存在している。
以下、スペース文字を挿入する場所を「空白文字位置」とする。また、スペース文字を挿入しない場所を「非空白文字位置」とする。本実施の形態は、文字と文字の間が、「空白文字位置」か、「非空白文字位置」かを判定するためのものである。
【００２６】
例えば、特許文献３に記載の技術では、文字と文字の間隔を計測し、文字間隔が予め定められた閾値以上であれば、その間隔は空白文字位置であると判定する。
特許文献３に記載の技術では、予め定められた閾値を用いているため、全体の文字間隔が想定よりも広い場合や、狭い場合に対応困難である。例えば、図５のＡＢＣＤの行では、ＡＢとＣＤの間が空白文字位置であると判定するのがよい。しかしながら、図６のＥＦＧＨＩの行のように、行全体として文字間隔が広い場合、予め定められた閾値を用いると、ＥとＦ、ＦとＧ、ＧとＨの間が空白文字位置となってしまう。その逆に、スペース文字を挿入すべきであっても、空白文字位置と判定されない可能性もある。
【００２７】
特許文献２に記載の技術では、まず、文字間隔の平均値を算出する。文字間隔の平均値を、予め係数の定められた一次式に代入することによって、閾値を定める。この閾値よりも文字間隔が大きな場合は、空白文字位置であると判定し、小さな場合は非空白文字位置と判定する。
特許文献２に記載の技術では、文字間隔の平均値を用いるため、特許文献３のようなこととはならない。文字間隔が全体的に大きな場合には、閾値も大きくなるためである。しかしながら、閾値を決定するための一次式が固定の係数である。空白文字位置と、非空白文字位置との文字間隔の大きさの差は、文書によって、あるいは、同一文書でも行によって異なるため、閾値の大きさは不適切となってしまう。例えば、閾値の大きさが、文字間隔の平均値のａ倍＋ｂと定めるとする。空白文字位置の文字間隔が文字間隔の平均値のａ倍＋ｂ未満となる可能性は存在する。予め係数を定めておくことは、そのような場合に対応できない。
【００２８】
特許文献１に記載の技術では、文字間隔のヒストグラムを作成する。空白文字位置に対応する文字間隔の値（値Ａ）と、非空白文字位置に対応する文字間隔の値（値Ｂ）の２か所に、ヒストグラムのピークが存在する。また、値Ａと値Ｂの間に、ヒストグラムの谷が存在する。この谷の位置を閾値とする。この閾値よりも文字間隔が大きな場合は、空白文字位置であると判定し、小さな場合は非空白文字位置と判定する。
特許文献１に記載の技術では、文字間隔ヒストグラムの谷部分を閾値とする。しかしながら、常にヒストグラムに谷が存在するとは限らない。特に、文字数が少ないときに、空白の検出を失敗することになる。
図７の例に示す文字間隔・頻度分布７００のような頻度分布(ヒストグラム)を考える。文字数が少ない場合は、ヒストグラムに明確なピークが存在しない。また、谷、あるいは、頻度０になる位置が多く出現する。そのため、閾値を設定することが困難である。ヒストグラムを用いる方法には問題がある。
前述の場合、文字間隔が１毎にヒストグラムを設定したために問題が発生しており、ヒストグラム計測の幅を適切に決定すれば、山や谷が発生する場合もある。しかしながら、そのような幅を自動的かつ適切に設定することは一般に難しい。例えば、文字間隔２毎に頻度を計測した場合が、図８の例に示す文字間隔・頻度分布８００である。この場合も、明確な谷は現れない。
文字間隔３毎に頻度を計測した場合が、図９の例に示す文字間隔・頻度分布９００である。この場合も明確な谷が現れない。
【００２９】
以下、図面に基づき本発明を実現するにあたっての好適な実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。また、「Ａである場合、Ｂをする」という意味を有する記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００３０】
本実施の形態である情報処理装置は、空白文字がある位置を判定するものであって、図１の例に示すように、初期値設定モジュール１１０、パラメタ修正モジュール１２０、収束判定モジュール１３０、空白判別モジュール１４０を有している。
本実施の形態は、受け付けた文字間隔の統計的な性質に応じて、また、入力文字数が少ない場合であっても、空白文字位置を判定するものである。また、本実施の形態は、文字列中の空白文字（スペース文字）を判別あるいは検出するものであり、例えば、文字コードと文字位置から、文字列を生成することに利用される。特に、文字認識を行う場合に、出力文字列中に空白文字コードを挿入する場合等に用いるようにしてもよい。
【００３１】
まず、本実施の形態の概要を示す。
まず、文字間隔の測定値をｘｉ（ｉ＝１，２，…，ｎ）とする。Ｘを確率変数とする。Ｘは式（１）である。
【数１】
0005821648.tif 000002
ここで文字間隔が非空白文字位置であるとき、その文字間隔Ｘは、（２）式の分布に従うとする。
【数２】
0005821648.tif 000003
ただし、θ０は、確率密度関数の形状を示すパラメタである。
同様に、文字間隔が空白文字位置であるとき、その文字間隔Ｘは、（３）式の分布に従うとする。
【数３】
0005821648.tif 000004
ただし、θ１は、確率密度関数の形状を示すパラメタである。
文字間隔Ｘは、前記２つの分布の混合分布Ｐ（Ｘ：θ）に従うとする。
【数４】
0005821648.tif 000005
ただし、（５）式のようである。
【数５】
0005821648.tif 000006
【００３２】
このとき、確率変数Ｘに対して、その文字間隔の位置が非空白文字位置である尤度をｑ０（Ｘ）、空白文字位置である尤度をｑ１（Ｘ）とすると、
【数６】
0005821648.tif 000007
となる。この２つの値ｑ０（Ｘ）とｑ１（Ｘ）が定まれば、
【数７】
0005821648.tif 000008
等とすればよいことになる。
等号の場合の判定方法は、適切に定めればよい。空白文字位置と判定する場合に等号が入っていてもよい。また、ｑ０（Ｘ）とｑ１（Ｘ）の分母Ｐ（Ｘ：θ）は同じであるため、分子同士のみを比較してもよい。
【００３３】
この考え方を図１０の例で示す。本実施の形態では、図１０の例に示すように、空白文字位置の分布（（９）式）と非空白文字位置の分布（（８）式）が混合されて、文字間隔の分布を形成するモデルを採っている。
【数８】
0005821648.tif 000009
【数９】
0005821648.tif 000010
この分布において、ｑ０（Ｘ）＝ｑ１（Ｘ）となるように、閾値Ｔｈを設定する。この閾値Ｔｈよりも文字間隔が大きければ、空白文字位置である可能性が高い。Ｔｈよりも文字間隔が小さければ非空白文字位置である可能性が高いと判断可能である。
以上のように、文字間隔を２つの分布の混合分布と仮定し、その混合分布を示すパラメタを決定することによって、文字間隔が空白文字位置か、非空白文字位置かを判定する。
【００３４】
本実施の形態では、受け付けた文字間隔の統計量を用いて空白文字位置と非空白文字位置を判定する。このため、予め定める閾値や係数が無く、受け付けた文字間隔のデータに即した判定を行うことになる。また、ヒストグラムを用いていないことになる。
ｑ０（Ｘ）とｑ１（Ｘ）を定めるためには、分布を示すパラメタθが定まっていればよい。パラメタθの決定方法について述べる。
このようなパラメタの決定方法としてＥＭアルゴリズムと呼ばれる方法がある。本実施の形態ではこのアルゴリズムを用いる。本アルゴリズムでは反復的にパラメタを推定する。
【００３５】
まず、ｔ番目の反復時の値を次の（１０）式のように定義する。
【数１０】
0005821648.tif 000011
次に、初期パラメタθ（０）を決定し、次の（１１）式を用いて反復的にパラメタを推定する。
【数１１】
0005821648.tif 000012
【００３６】
以上は、一般の分布に関する式を示した。さらに、下記では、分布をガウス分布とする場合を示す。分布Ｐ０（Ｘ；θ０）を平均μ０、標準偏差σ０のガウス分布とする。同様に、分布Ｐ１（Ｘ；θ１）を平均μ１、標準偏差σ１のガウス分布とする。この場合の漸化式は（１２）式となる。
【数１２】
0005821648.tif 000013
前記漸化式（（１２）式）を用いて、ガウス分布の場合のパラメタθ＝{ω０，ω１，μ０，σ０，μ１，σ１}を決定することができる。
判別時には、各文字間隔ｘｉについて、下記の（１３）式のように判定すればよい。
【数１３】
0005821648.tif 000014
【００３７】
次に、本実施の形態について、具体的に説明する。
本実施の形態（具体的には、初期値設定モジュール１１０、パラメタ修正モジュール１２０、空白判別モジュール１４０）は、文字と文字の間の距離である文字間隔を受け付ける。例えば、図３の例に示す文字間隔データテーブル３００を受け付ける。図３は、文字間隔データテーブル３００のデータ構造例を示す説明図である。文字間隔データテーブル３００は、ｎ欄３０５、ｘ１欄３１０、ｘ２欄３２０、ｘｎ欄３９０等を有している。ｎ欄３０５は、文字間隔のデータの個数を記憶している。その個数分だけｘ１欄３１０、・・・、ｘｎ欄３９０がある。ｘ１欄３１０等は、順に文字間隔のデータを記憶している。文字間隔のデータは、ドット数、ｍｍ、インチ等であってもよい。
【００３８】
また、例えば、文字認識が行われて、文字の外接矩形位置と、文字コードを受け付けてもよい。そして、文字の外接矩形位置を用いて、文字と文字の間隔を取得してもよい。
例えば、図４の例では、
ＡとＢの間の空白の画素数をｘ１として取得する。
ＢとＣの間の空白の画素数をｘ２として取得する。
ＣとＤの間の空白の画素数をｘ３として取得する。
として、文字間隔データＸ＝{ｘ１，ｘ２，ｘ３}が取得できる。
この文字間隔データＸを用いて、パラメタ修正モジュール１２０が初期値設定を行う。
【００３９】
初期値設定モジュール１１０は、パラメタ修正モジュール１２０と接続されている。パラメタ修正モジュール１２０は、受け付けられた文字間隔を２以上の集合（以下、クラスともいう。例えば、空白文字位置のクラスと非空白文字位置のクラス）に分割するための閾値を定めるための第１の変数と第２の変数の初期値を設定する。第１の変数は各集合の分布の統計量（例えば、以下に示すθ０，θ１等）であり、第２の変数は各集合に含まれる文字間隔の個数の割合を示す重み係数（例えば、以下に示すω０，ω１等）である。集合の分布としてガウス分布を採用してもよい。
より具体的には、初期値設定モジュール１１０では、文字間隔データＸから、パラメタ初期値を設定する。設定するパラメタは、（５）式に示されている数値である。ガウス分布を前提とする場合には、θ＝{ω０，ω１，μ０，σ０，μ１，σ１}の６つの数値となる。
最終的な解が局所解に陥らないようにするためには、適切な初期値設定が望ましい。
【００４０】
＜初期値設定方法１＞
文字間隔データを２つのクラスに分割する閾値Ｔｈを設定する。
文字間隔デーｘｎが、Ｔｈよりも大であるとき、そのデータは空白文字位置であり、小であるとき、そのデータは非空白文字位置であるとする。このようにして、文字間隔データを２つのクラスに分割する。以下、２つのクラスを
クラス０：非空白文字位置に対応するクラス。
クラス１：空白文字位置に対応するクラス。
とする。
クラスＪに属する文字間隔データの数をＮＪとする。（１４）式で、ω０、ω１を求める（ただしＪ＝{０，１}）。
【数１４】
0005821648.tif 000015
次に、クラスＪに属するデータの平均値をμＪとし、クラスＪに属するデータの標準偏差をσＪとする。
前記のようにして定めたパラメタを用いて、初期値として（１５）式を設定する。
【数１５】
0005821648.tif 000016
【００４１】
閾値Ｔｈは、文字間隔データの最大値ｍａｘと最小値ｍｉｎの間の数値で適切なものを選べばよい。次に示したような数値であればよい。
・文字間隔データの平均値ｍｅａｎ
・文字間隔データのヒストグラムの谷の値（特許文献１に記載の技術にあるような値）
・文字間隔データのメディアン値
・上位所定割合となる値
スペースコード数とその他の文字数との比を統計的に調べておき、その割合となるように、文字間隔データの閾値を定める。
・文字間隔データの最大値と最小値の平均値
【００４２】
・通常、空白となる文字間隔の数は空白とならない文字間隔の数よりも少ない。そのため、文字間隔全体の平均値は、おおよそ、空白とならない文字間隔の平均値に近い値となる。空白となる文字間隔は、空白とならない文字間隔よりも、大きな値である。閾値は文字間隔の最大値と文字間隔の平均値の間にある。そこで、文字間隔データ全体の平均値よりも大きな値かつ、文字間隔の最大値よりも小さな値とすることが望ましい。
【数１６】
0005821648.tif 000017
ただし、ｍｅａｎは、文字間隔全体の平均値、ｍａｘは文字間隔の最大値である。
（１６）式では、平均値ｍｅａｎを用いたが、ｍｅａｎの代わりとなる代表値であれば、なんでもよい。例えば、中央値や最頻値等を用いてもよい。以下、ｍｅａｎを使う場合も同様である。
【００４３】
・たまたま離れたところにある文字を同じ行の文字として誤ってしまった場合、最大値は極端に大きな数値となってしまう。ところが、最小値は、文字間隔として０以下の数値はあり得ないため、比較的安定な数値である。そこで、最大値ではなく、最小値を使うこともできる。
【数１７】
0005821648.tif 000018
【００４４】
・さらに、（１６）式と（１７）式の小さいほうを用いてもよい。
・前記で、０＜α＜１の値とすることによって、下記のような閾値を設定できる。このような閾値を設定することによって、２つのクラス（空白、非空白）に分割する混合分布に、結果的に収束するような初期パラメタを設定することができる。
（１）  空白となる文字間隔が１個以上存在し、
（２）  空白とならない文字間隔が１個以上で
（３）  かつ、空白とならない文字間隔のほうには大部分の文字間隔が存在する。
・最大値や最小値は、外れ値である場合があるため、最大値と最小値を除いた平均値を用いるとよい。
・最大値や最小値は、外れ値である場合があるため、下記を最大値や最小値として用いてもよい。（下記でＮは予め定める数値）
（１）  文字間隔データの大きなほうからＮ個を除いた後の最大の値を最大値として用いる。
（２）  文字間隔データの大きなほうからＮ個を除いた後の最小の値を最小値として用いる。
（３）  文字間隔データが予め定められた値より大である又は以上である文字間隔を除いた後の最大の値を最大値として用いる。
（４）  文字間隔データが予め定められた値より小である又は以下である文字間隔を除いた後の最小の値を最小値として用いる。
・平均値を入力とする関数を用いてもよい。平均値をｘとして、（１８）式のように求める。
【数１８】
0005821648.tif 000019
ただし、ａ，ｂは係数。
等とすることができる。
ここで、（１９）式となるように制御してもよい。
【数１９】
0005821648.tif 000020
例えば、（２０）式のようにすると、前記が実現できる。
【数２０】
0005821648.tif 000021
【００４５】
・前記では、文字間隔データの平均値よりも大きな値かつ、最大値よりも小さな値とすることがよいとしたが、これは、平均値である必要はない。何らかの代表値であればよい。
例えば、文字間隔データの中央値でもよい。
Ｎ個の文字間隔データを小さなものから順にならべて、１から順に番号をつけたときに、番号がＮ／２に最も近いものを中央値とする。
中央値と最大値の間の数であればよい。
例えば、中央値と最大値の平均値。
あるいは、Ｎ個の文字間隔データを小さなものから順にならべて、１から順に番号をつけたときに、番号がα×Ｎに最も近い数（累積頻度値）であればよい。αは、０．５より大で１より小の値である。
【００４６】
＜初期値設定方法２＞
最初に閾値を設定する必要は必ずしもない。
直接初期値θ（０）（（１５）式）の値を設定してもかまわない。
【００４７】
パラメタ修正モジュール１２０は、初期値設定モジュール１１０、収束判定モジュール１３０と接続されている。パラメタ修正モジュール１２０は、初期値設定モジュール１１０によって初期値が設定された第１の変数と第２の変数と受け付けられた文字間隔に基づいて、第１の変数と第２の変数を修正する。そして、パラメタ修正モジュール１２０による２回目以降の処理は、前回のパラメタ修正モジュール１２０による処理結果である第１の変数と第２の変数と受け付けられた文字間隔に基づいて、第１の変数と第２の変数を修正する。
具体的には、パラメタ修正モジュール１２０は、パラメタθ（ｔ）と、文字間隔データを用いて、パラメタをθ（ｔ＋１）に修正する。これは、（１１）式あるいは、（１２）式を用いればよい。
【００４８】
収束判定モジュール１３０は、パラメタ修正モジュール１２０、空白判別モジュール１４０と接続されている。収束判定モジュール１３０は、パラメタ修正モジュール１２０による処理を繰り返すように制御し、予め定められた条件に基づいて、その処理を終了させるか否かを判定する。
より具体的には、収束判定モジュール１３０は、反復演算を終了させるか、次の反復に進むかを判定する。
反復演算を終了させると判定した場合、空白判別モジュール１４０による空白判別に進む。
次の反復（パラメタ修正モジュール１２０による処理）に進むと判定した場合、θ（ｔ＋１）をパラメタ修正モジュール１２０に送る。
収束判定方法として、さまざまあるが、一例として、下記のようなものがある。適切な方法を選べばよい。
・反復回数を予め定めておいて、所定の回数だけ反復させる。
・パラメタの変化量が所定の値以下となった時点で終了する。
・クラス０とクラス１に分離される文字間隔が変化しなくなった時点で終了する。
【００４９】
空白判別モジュール１４０は、収束判定モジュール１３０と接続されている。以上で最終的に定められたパラメタθが決定されるため、このパラメタθを用いて、空白判別モジュール１４０が空白か否かを判定すればよい。空白判別モジュール１４０は、収束判定モジュール１３０によってパラメタ修正モジュール１２０による処理を終了させると判定した後に、パラメタ修正モジュール１２０による処理結果である第１の変数と第２の変数によって定まる閾値に基づいて、受け付けられた文字間隔が空白文字に対応するか否かを判定する。
また、空白判別モジュール１４０は、各文字間隔毎に、その文字間隔が空白文字に対応する確率である第１の確率と、その文字間隔が空白文字に対応しない確率である第２の確率を算出し、第１の確率と第２の確率とを比較することによって、その文字間隔が空白文字に対応するか否かを判定するようにしてもよい。第１の確率と第２の確率の高いほうを採用することによって、文字間隔が空白文字に対応するか否かを判定する。つまり、第１の確率が第２の確率よりも高ければ、その文字間隔は空白文字に対応すると判定し、第２の確率が第１の確率よりも高ければ、その文字間隔は空白文字に対応しないと判定する。
また、空白判別モジュール１４０は、文字間隔が空白文字に対応する確率と、対応しない確率が同じとなる文字間隔値を算出し、その算出した文字間隔値を閾値として、文字間隔が空白文字に対応するか否かを判定するようにしてもよい。例えば、閾値よりも値が大であれば、空白文字コードを付与し、そうで無ければ、空白文字コードを付与しないと判定する。また、文字間隔値の発生頻度が０となる値を閾値とするようにしてもよい。
【００５０】
より具体的には、判定アルゴリズムとして、（７）式を用いればよい。
すなわち、各文字間隔ｘｉ毎に、（７）式を用いて、クラス０（非空白文字位置）か、クラス１（空白文字位置）かを判定すればよい。
出力である判別結果は、文字間隔のインデクスｉ毎に、クラス０（非空白文字位置）か、クラス１（空白文字位置）かを示す情報が付与されたものとなる。
【００５１】
＜空白判別の別の形態＞
前記では、ｘｉ毎に、（７）式を適用した。（７）式を適用するには、ｑＪ（ｘｉ）の評価を行わなければならない。この関数ｑ（）は、ガウス分布の場合は指数関数であり、演算量が必要となる。
そこで、本形態では、まず閾値Ｔを設定し、
【数２１】
0005821648.tif 000022
とする。閾値Ｔは、
【数２２】
0005821648.tif 000023
を満たす値として、求めればよい。これはＴに関する方程式であり、ニュートン法等の数値演算手法を用いて、解くことが可能である。このようにすることによって、演算量の必要なｑＪ（ｘｉ）の評価回数を削減することが可能となる。
【００５２】
＜前記に関する別の形態＞
出現頻度が０となる値であって、（２２）式を満たすＴに最も近い値を、閾値とする。この閾値を設定することによって、空白である場合と、非空白である場合とを分離する。
本形態を採らない場合、例えば１異なるだけで空白と非空白を分離することとなる。本形態を採ることで、空白となる文字間隔と、非空白となる文字間隔を２以上離れる値に閾値を設定することが可能となる。
【００５３】
＜さらに別の形態＞
あるいは、候補となる文字間隔の数値の範囲が狭い場合には、全ての文字間隔の数値に対してｑＪ（ｘｉ）の評価をしてもよい。
例えば、文字間隔の数値として、
５，１０，１３
の３種類しか存在しない場合、この３種類に対して、（７）式の評価を行えばよい。
【００５４】
＜その他の例＞
前記例では、２つの分布の混合分布として、空白か否かを推定していた。
ところが、分布の混合数は２つには限らない。
例えば、単語間の空白量や文字間空白量が行によって異なる場合がある。複数行の空白コードを一度に決定しようとする場合、複数種類の単語間空白と、複数種類の文字間空白を判別するとよい。
このような場合、２より大の分布の混合分布とするとよい。
【００５５】
図２は、本実施の形態による処理例を示すフローチャートである。
ステップＳ２０２では、初期値設定モジュール１１０、パラメタ修正モジュール１２０、空白判別モジュール１４０が、文字間隔データを受け付ける。
ステップＳ２０４では、パラメタ修正モジュール１２０が、パラメタを修正する。
ステップＳ２０６では、収束判定モジュール１３０が、収束したか否かを判断し、収束した場合はステップＳ２０８へ進み、それ以外の場合はステップＳ２０４へ戻る。
ステップＳ２０８では、空白判別モジュール１４０が、空白文字位置か否かの判別を行う。
ステップＳ２１０では、空白判別モジュール１４０が、判別結果を出力する。
【００５６】
図１１を参照して、本実施の形態の情報処理装置のハードウェア構成例について説明する。図１１に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部１１１７と、プリンタなどのデータ出力部１１１８を備えたハードウェア構成例を示している。
【００５７】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０１は、前述の実施の形態において説明した各種のモジュール、すなわち、初期値設定モジュール１１０、パラメタ修正モジュール１２０、収束判定モジュール１３０、空白判別モジュール１４０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００５８】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１０２は、ＣＰＵ１１０１が使用するプログラムや演算パラメタ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１０３は、ＣＰＵ１１０１の実行において使用するプログラムや、その実行において適宜変化するパラメタ等を格納する。これらはＣＰＵバスなどから構成されるホストバス１１０４により相互に接続されている。
【００５９】
ホストバス１１０４は、ブリッジ１１０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス１１０６に接続されている。
【００６０】
キーボード１１０８、マウス等のポインティングデバイス１１０９は、操作者により操作される入力デバイスである。ディスプレイ１１１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などがあり、各種情報をテキストやイメージ情報として表示する。
【００６１】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１１１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ１１０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、文字間隔のデータ、空白判別モジュール１４０の結果データなどが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【００６２】
ドライブ１１１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体１１１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース１１０７、外部バス１１０６、ブリッジ１１０５、及びホストバス１１０４を介して接続されているＲＡＭ１１０３に供給する。リムーバブル記録媒体１１１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【００６３】
接続ポート１１１４は、外部接続機器１１１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１１１４は、インタフェース１１０７、及び外部バス１１０６、ブリッジ１１０５、ホストバス１１０４等を介してＣＰＵ１１０１等に接続されている。通信部１１１６は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部１１１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部１１１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００６４】
なお、図１１に示す情報処理装置のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図１１に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図１１に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００６５】
なお、数式を用いて説明したが、数式には、その数式と同等のものが含まれる。同等のものとは、その数式そのものの他に、最終的な結果に影響を及ぼさない程度の数式の変形、又は数式をアルゴリズミックな解法で解くこと等が含まれる。
また、前述の実施の形態の説明において、予め定められた値との比較において、「以上」、「以下」、「より大きい」、「より小さい（未満）」としたものは、その組み合わせに矛盾が生じない限り、それぞれ「より大きい」、「より小さい（未満）」、「以上」、「以下」としてもよい。
【００６６】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００６７】
１１０…初期値設定モジュール
１２０…パラメタ修正モジュール
１３０…収束判定モジュール
１４０…空白判別モジュール
【図１】
0005821648.tif 000024
【図２】
0005821648.tif 000025
【図３】
0005821648.tif 000026
【図４】
0005821648.tif 000027
【図５】
0005821648.tif 000028
【図６】
0005821648.tif 000029
【図７】
0005821648.tif 000030
【図８】
0005821648.tif 000031
【図９】
0005821648.tif 000032
【図１０】
0005821648.tif 000033
【図１１】
0005821648.tif 000034