(58)【調査した分野】(Int.Cl.,DB名)
前記判定手段は、前記取得手段により取得された文字列において、偏差が第2の予め定められた値以下の文字間隔が含まれる場合、当該文字間隔の偏差を0として当該文字列の標準偏差を再計算し、再計算後の標準偏差が、第1の予め定められた値以下であるとき、当該文字列には空白の文字コードを挿入する必要がないと判定する請求項2記載の文書処理装置。
【発明を実施するための最良の形態】
【0024】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【0025】
[第1の実施形態]
図1は、本発明の一実施形態の文書処理システムのシステム構成を示す図である。
【0026】
本発明の第1の実施形態の文書処理システムは、
図1に示されるように、端末装置10と、画像形成装置20と、文書処理サーバ(文書処理装置)30がネットワーク40を介して相互に接続されている。端末装置10は、文書データを生成して、ネットワーク40経由にて生成した文書データを文書処理サーバ30に対して送信する。文書処理サーバ30は、端末装置10から送信された文書データを受け付けて、文書データに対して後述する処理を行う。なお、画像形成装置20は、印刷(プリント)機能、スキャン機能、複写(コピー)機能、ファクシミリ機能等の複数の機能を有するいわゆる複合機と呼ばれる装置である。
【0027】
また、本実施形態における文書データは、文字コードを含むPDF(Portable Document Format)等の形式により作成され、分かち書きの言語である英語で構成されたものを対象として説明する。なお、分かち書きとは、文章を書くとき、一定の方針で語句の単位を切り、その切れ目ごとに間隔をおく書き方のこと、換言すれば、文書において語の区切りに空白を挟んで記述することである。
【0028】
また、本実施形態における文書データは、文字コードと座標情報に基づいて文字を配置することにより、空白の文字コードを含まずに文字間の空白を表現している。
【0029】
次に、本実施形態の文書処理システムにおける文書処理サーバ30のハードウェア構成を
図2に示す。
【0030】
文書処理サーバ30は、
図2に示されるように、CPU11、メモリ12、ハードディスクドライブ(HDD)等の記憶装置13、ネットワーク40を介してデータの送信及び受信を行う通信インタフェース(IF)14、タッチパネル又は液晶ディスプレイ並びにキーボードを含むユーザインタフェース(UI)装置15を有する。これらの構成要素は、制御バス16を介して互いに接続されている。
【0031】
CPU11は、メモリ12または記憶装置13に格納された制御プログラムに基づいて所定の処理を実行して、文書処理サーバ30の動作を制御する。なお、本実施形態では、CPU11は、メモリ12または記憶装置13内に格納された制御プログラムを読み出して実行するものとして説明したが、当該プログラムをCD−ROM等の記憶媒体に格納してCPU11に提供することも可能である。
【0032】
図3は、CPU11によりメモリ12または記憶装置13に格納された制御プログラムが実行されることにより実現される文書処理サーバ30の機能構成を示す図である。
【0033】
図3に示されるように、本実施形態における文書処理サーバ30は、文書データ受付部301と、文字列取得部302と、標準偏差算出部303と、空白挿入判定部304と、文字間隔リスト作成部305と、一次微分リスト作成部306と、閾値決定部307と、空白挿入部308とによって構成される。
【0034】
文書データ受付部301は、端末装置10または画像形成装置20からネットワーク40を介して送信された文書データを受け付ける。
【0035】
例えば、
図4(A)に示されるように、文字列101〜103を含む文書データを受け付ける。
【0036】
文字列取得部302は、文書データ受付部301により受け付けられた文書データに含まれる文字コードに基づいて文字列を取得する。このとき、文字列取得部302は、文書データにおける各行ごとに文字列を取得する。
【0037】
例えば、
図4(A)に示されるように、文字列取得部302は、文書データに含まれる文字列102の「this is a pen」という文字列において、それぞれの文字の文字コード及び座標情報を抽出することによって、文字列102を取得する。
【0038】
また、文字列取得部302は、前記受付手段により受け付けられた文書データに含まれる文字コードに基づいて文字列を取得する。また、文字列取得部302は、取得した文字列に含まれる隣接する2つの文字の距離である文字間隔を取得する。具体的には、
図4(B)に示されるように、文字列取得部302において抽出された座標情報から各文字の外接矩形を求め、隣接する文字間において、左側の文字の外接矩形の右端のx座標と、右側の文字の外接矩形の左端のx座標との距離を、当該隣接する文字間の文字間隔とする。例えば、文字列102においては、文字列取得部302は、
図4(B)に示されるように、「t」の外接矩形の右端と、「h」の外接矩形の左端との距離を「t」と「h」の文字間隔として検出する。また、文字列取得部302は、文字列102における他の文字間に対しても同様にして、
図4(C)に示されるように、文字列102のそれぞれの文字において隣接する文字間の文字間隔を検出する。
【0039】
標準偏差算出部303は、文字列取得部302により取得された文字列の文字間隔の標準偏差を算出する。
【0040】
また、標準偏差算出部303は、文字列取得部302により取得された文字列の文字間隔において、偏差が設定値B(第2の予め定められた値)以下の文字間隔が含まれる場合、この文字間隔の偏差を0として当該文字列の標準偏差を再計算する。
【0041】
例えば、
図5(A)に示されるように、文字列101の「Example」という文字それぞれにおいて、隣接する文字の文字間隔がそれぞれ「0、0、6、6、6、6(ピクセル)」である場合、文字列101の文字間隔の平均値は「4(ピクセル)」である。
【0042】
ここで、「E」と「x」の文字間隔「0(ピクセル)」及び「x」と「a」の文字間隔は「0(ピクセル)」であり、文字列101の平均値は「4(ピクセル)」であるため、「E」と「x」の文字間隔及び「x」と「a」の文字間隔の偏差は「−4」である。そして、「E」と「x」の文字間隔及び「x」と「a」の文字間隔の偏差は設定値Bである「−2」以下であるため、標準偏差算出部303は、「E」と「x」の文字間隔及び「x」と「a」の文字間隔の偏差が0であるものとして扱う。具体的には、「E」と「x」との文字間隔及び「x」と「a」との文字間隔を「4(ピクセル)」に変更して、文字列101の文字間隔を「4、4、6、6、6、6」に変換する。
【0043】
そして、標準偏差算出部303は、変換された文字列101の文字間隔の偏差に基づいて標準偏差を算出する。具体的には、
図5(B)に示されるように、標準偏差算出部303は、変換された後の文字列101の各文字の文字間隔を、変換される前の文字列101の文字間隔の平均値により減算することで偏差を求め、各文字間隔の偏差の二乗の和を、文字列101の文字間隔数で除算して平方根を求めることによって標準偏差を算出する。これにより、分かち書き言語において単語の区切りである可能性が低い「E」と「x」間及び「x」と「a」間の偏差の影響が排除された標準偏差が算出される。
【0044】
空白挿入判定部304は、標準偏差算出部303により算出された標準偏差に基づいて、取得された文字列が、空白の文字コードを挿入する必要があるか否かを判定する。
【0045】
具体的には、空白挿入判定部304は、標準偏差算出部303により算出された標準偏差が、設定値A(第1の予め定められた値)よりも大きい場合には、文字列に空白の文字コードを挿入する必要があると判定し、標準偏差が設定値A以下である場合には、文字列に空白の文字コードを挿入する必要がないと判定する。例えば、
図5(B)に示されるように、文字列101の標準偏差が1.63であり、設定値Aの2以下であるため、空白挿入判定部304は、文字列101には空白の文字コードを挿入する必要がないと判定する。
【0046】
文字間隔リスト作成部305は、文字列取得部302により取得された文字列に空白の文字コードを挿入する必要があると空白挿入判定部304によって判定された場合に、当該文字列において隣接する2つの文字の距離である文字間隔を、大きさの順に並べた文字間隔リストを作成する。本実施形態においては、文字間隔リスト作成部305は、文字列において隣接する2つの文字の文字間隔を小さい順に並べた文字間隔リストを作成する。
【0047】
一次微分リスト作成部306は、文字間隔リスト作成部305により作成された文字間隔リストにおける各文字間隔を一次微分することにより、一次微分リスト(変化量リスト)を作成する。ここで、一次微分リストとは、文字間隔リストにおける各文字間隔の前後の文字間隔に対する変化量を示すリストである。
【0048】
閾値決定部307は、一次微分リストにおける最大値に対応する文字間隔リストの文字間隔が、文字間隔リストにおける文字間隔の平均値以上である場合に、当該文字間隔を閾値として決定する。
【0049】
空白挿入部308は、取得された文字列に対して、閾値決定部307により決定された閾値以上の文字間隔の文字間に空白の文字コードを挿入する。また、空白挿入部308は、空白の文字コードを挿入する必要がないと空白挿入判定部304により判定された文字列に対しては、空白の文字コードを挿入する処理を行わない。さらに、空白挿入部308は、文字列に空白の文字コードを挿入した場合には、文字列に空白の文字コードが挿入された文書データをネットワーク40を介して端末装置10または画像形成装置20に送信する。
【0050】
以下、文字間隔リスト作成部305、一次微分リスト作成部306、閾値決定部307及び空白挿入部308における処理の具体例について、
図6及び
図7を参照して詳細に説明する。
【0051】
まず、文字列102に対する処理について、
図6を参照して詳細に説明する。
【0052】
まず、
図6(A)に示されるように、文字間隔リスト作成部305は、文字列102における各文字の文字間隔「2、3、3、7、3、6、7、4、3(ピクセル)」を、左から小さい順に並べ替えて、文字間隔リスト「2、3、3、3、3、4、6、7、7(ピクセル)」を作成する。
【0053】
そして、
図6(B)に示されるように、一次微分リスト作成部306は、文字列102の文字間隔リストにおける各文字間隔を一次微分することにより一次微分リストを作成する。具体的には、一次微分リスト作成部306は、文字列102の文字間隔リスト「2、3、3、3、3、4、6、7、7(ピクセル)」において、それぞれの文字間隔ごとに、前後の文字間隔との差を算出して、これらの差を各文字間隔の前後の変化量とすることによって、一次微分リスト「1、0、0、0、1、2、1、0」を作成する。ここで、
図6(B)に示されるように、一次微分リスト作成部306は、一次微分リストの値を、それぞれの算出元となった文字間隔リストにおける2つの文字間隔うち、右側(大きい側)の文字間隔と対応するよう作成する。
【0054】
次に、
図6(B)に示されるように、閾値決定部307は、文字列102の一次微分リストを参照して、一次微分リストにおける最大値として「2」を検出する。そして、閾値決定部307は、文字列102の文字間隔リストを参照して、一次微分リストの「2」に対応する文字間隔として「6(ピクセル)」を検出する。そして、文字列102の文字間隔リストの平均値は約「4.22(ピクセル)」であるため、閾値決定部307は、検出された文字間隔「6(ピクセル)」を閾値として決定する。
【0055】
そして、
図6(C)に示されるように、空白挿入部308は、文字列102に対して、閾値決定部307により決定された閾値である「6(ピクセル)」以上の文字間隔である文字間に空白の文字コードを挿入する。具体的には、文字列102における「this」の「s」と「is」の「i」との間、「is」の「s」と「a」との間、「a」と「pen」の「p」との間にそれぞれ空白の文字コードを挿入する。
【0056】
次に、文字列103に対する処理について、
図7を参照して詳細に説明する。
【0057】
まず、
図7(A)に示されるように、文字間隔リスト作成部305は、文字列103における各文字の文字間隔「0、0、0、7、3、6、7、4、3(ピクセル)」を小さい順に並べ替えて、文字間隔リスト「0、0、0、3、3、4、6、7、7」を作成する。
【0058】
そして、
図7(A)に示されるように、一次微分リスト作成部306は、文字列103の文字間隔リスト「0、0、0、3、3、4、6、7、7(ピクセル)」の一次微分リスト「0、0、3、0、1、2、1、0」を作成する。
【0059】
次に、閾値決定部307は、文字列103の一次微分リストを参照して、一次微分リストにおける最大値として「3」を検出する。そして、閾値決定部307は、文字列103の文字間隔リストを参照して、一次微分リストの「3」と対応する文字間隔として「3(ピクセル)」を検出する。ここで、
図7(A)に示されるように、文字列103の文字間隔リストの平均値は「約3.33(ピクセル)」であり、検出された「3(ピクセル)」は文字間隔リストの平均値未満であるため、閾値決定部307は、一次微分リストの「3」と、検出された文字間隔「3(ピクセル)」を閾値の候補から除外する。
【0060】
次に、閾値決定部307は、
図7(B)に示されるように、一次微分リストにおいて「3」の次に大きい値である「2」を検出する。次に、閾値決定部307は、一次微分リストの「2」に対応する文字間隔リストの文字間隔として「6(ピクセル)」を検出する。そして、検出された文字間隔「6(ピクセル)」は文字列103の文字間隔リストの平均値「3.33(ピクセル)」以上であるため、閾値決定部307は、閾値として「6(ピクセル)」を決定する。
【0061】
そして、
図7(C)に示されるように、空白挿入部308は、文字列103に対して、閾値決定部307により決定された閾値である「6(ピクセル)」以上の文字間隔である文字間に空白の文字コードを挿入する。具体的には、文字列103における「this」の「s」と「is」の「i」との間、「is」の「s」と「a」との間、「a」と「pen」の「p」との間にそれぞれ空白の文字コードを挿入する。
【0062】
なお、本実施形態においては、閾値決定部307は、一次微分リストにおける最大値に対応する文字間隔リストの文字間隔が、文字間隔リストにおける文字間隔の平均値以上である場合に当該文字間隔を閾値として決定するものとして説明しているが、一次微分リストにおける最大値に対応する文字間隔リストの文字間隔が、文字間隔リストの中央に位置する文字間隔より大きい場合に当該文字間隔を閾値として決定するようにしてもよい。
【0063】
次に、第1の実施形態における文書処理サーバ30の処理を、
図8のフローチャートを参照して説明する。
【0064】
まず、文書データ受付部301は、端末装置10または画像形成装置20からネットワーク40を介して文書データを受け付ける(ステップS101)。
【0065】
次に、文字列取得部302は、受け付けた文書データの文字コード及び文字の座標情報に基づいて文字列を取得する(ステップS102)。この時、文字列取得部302は、取得された文字列の文字間隔を取得する。
【0066】
また、標準偏差算出部303は、取得された文字列における文字間隔の標準偏差を算出する(ステップS103)。
【0067】
そして、空白挿入判定部304は、算出された標準偏差が設定値A以下であるか否かを判定する(ステップS104)。算出された標準偏差が設定値A以下である場合には(ステップS104においてyes)、処理を終了する。
【0068】
また、算出された標準偏差が設定値Aより大きい場合には(ステップS104においてno)、文字間隔リスト作成部305は、取得された文字列の文字間隔を小さい順に並べた文字間隔リストを作成する(ステップS105)。
【0069】
次に、一次微分リスト作成部306は、作成された文字間隔リストの各文字間隔を一次微分することにより一次微分リストを作成する(ステップS106)。
【0070】
そして、閾値決定部307は、一次微分リストにおける最大値に対応する文字間隔リストの文字間隔が、文字間隔リストにおける文字間隔の平均値以上である場合に当該文字間隔を閾値として決定する(ステップS107)。
【0071】
そして、空白挿入部308は、決定された閾値以上の文字間隔である2つの文字間に空白の文字コードを挿入する(ステップS108)。
【0072】
[第2の実施形態]
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。
【0073】
第2の実施形態においては、第1の実施形態における処理が行われた後、空白挿入部308により空白の文字コードが挿入された文字列に対して、文書データを構成する言語の単語であるか否かを判定し、当該文字列が単語ではない場合に、再度、空白の文字コードを挿入する処理を行う。なお、第1の実施形態と同じ構成については、同一の符号を付して説明を省略する。
【0074】
第2の実施形態における文書処理システムは、
図1に示される第1の実施形態の文書処理システムにおいて、文書処理サーバ30が文書処理サーバ30aに置き換えられている。なお、文書処理サーバ30aのハードウェア構成は、第1の実施形態と同じ構成であるため説明を省略する。
【0075】
次に、文書処理サーバ30aの機能構成について、
図9を参照して詳細に説明する。
【0076】
図9に示されるように、第2の実施形態における文書処理サーバ30aは、第1の実施形態における文書処理サーバ30に対して、文字列分割部309と、記憶部310と、単語判定部311とが追加されている。
【0077】
文字列分割部309は、第1の実施形態と同様に処理によって、文字列取得部302により取得された文字列に対して空白の文字コードが挿入された後、この文字列を、空白挿入部308により挿入された空白の文字コードを境に分割する。
【0078】
記憶部310は、文書データを構成する分かち書きの言語の単語を記憶する。本実施形態においては、記憶部310は、英単語辞書のデータを登録することにより英単語のデータを予め記憶しておく。
【0079】
単語判定部311は、文字列分割部309により分割された文字列が記憶部310に記憶された単語と一致するか否かを判定する。本実施形態においては、単語判定部311は、文字列取得部302により取得された文字コードと座標情報とに基づいて、当該文字コードの並び順と、記憶部310に記憶された単語における文字の並び順とを比較することにより一致するか否かを判定する。また、単語判定部311は、文字列分割部309により分割された文字列が記憶部310に記憶された単語と一致すると判定した場合には、文字列に空白の文字コードが挿入された文書データを、ネットワーク40を介して端末装置10または画像形成装置20に送信する。
【0080】
また、文字間隔リスト作成部305は、文字列分割部309によって分割された文字列が、記憶部310に記憶された単語と一致しないと単語判定部311により判定された場合に、当該分割された文字列の文字間隔を、大きさの順に並べた文字間隔リストを作成する。
【0081】
一次微分リスト作成部306は、文字列分割部309により分割された文字列の文字間隔リストにおける各文字間隔を一次微分することにより一次微分リストを作成する。
【0082】
閾値決定部307は、文字列分割部309により分割された文字列の一次微分リストにおける最大値に対応する文字間隔リストの文字間隔を第2の閾値として決定する。
【0083】
空白挿入部308は、文字列分割部309により分割された文字列に対して、閾値決定部307により決定された第2の閾値以上の文字間隔の文字間に空白の文字コードを挿入する
【0084】
例えば、
図10(A)に示されるような文書データにおいて、文字列取得部302により、「this is a pen」という文字列104が取得された場合、文書処理サーバ30は、まず、第1の実施形態と同様の処理を行う。
【0085】
具体的には、
図10(B)に示されるように、文字間隔リスト作成部305は、文字列104の文字間隔を小さい順に並べることにより、文字間隔リスト「2、2、3、3、3、4、8、8、18(ピクセル)」を作成する。
【0086】
そして、一次微分リスト作成部306は、
図10(B)に示されるように、文字間隔リスト「2、2、3、3、3、4、8、8、18(ピクセル)」の一次微分リスト「0、1、0、0、1、4、0、10」を作成する。
【0087】
そして、閾値決定部307は、一次微分リストにおける最大値「10」を検出し、これに対応する文字間隔「18(ピクセル)」を検出する。そして、文字間隔リストの平均値は「約5.67(ピクセル)」であるため、文字間隔「18(ピクセル)」を第1の閾値として決定する。
【0088】
次に、空白挿入部308は、
図10(B)に示されるように、文字列104に対して、第1の閾値として決定された文字間隔「18(ピクセル)」以上の文字間隔である「is」の「s」と「a」との間に空白の文字コードを挿入する。
【0089】
次に、文字列分割部309は、文字列に空白の文字コードが挿入された文字列104を、
図10(C)に示されるように、文字列104aとして「this is」、及び文字列104bとして「a pen」に分割する。そして、単語判定部311は、記憶部310に記憶された英単語辞書のデータを参照して、「this is」及び「a pen」という単語が存在するか否かを判定する。
【0090】
そして、英単語辞書には「this is」という単語及び「a pen」という単語は存在しないため、文字間隔リスト作成部305は、
図10(C)に示されるように、文字列104a及び文字列104bそれぞれの文字間隔リストを作成する。
【0091】
次に、一次微分リスト作成部306は、
図10(C)に示されるように、文字列104a及び文字列104bそれぞれの文字間隔リストにおける各文字間隔を一次微分することにより一次微分リストを作成する。
【0092】
そして、閾値決定部307は、文字列104a及び文字列104bそれぞれの一次微分リストにおける最大値に対応する文字間隔リストの文字間隔をそれぞれの文字列の第2の閾値として決定する。
【0093】
例えば、
図10(C)に示されるように、閾値決定部307は、文字列104aの一次微分リストにおける最大値「5」を検出し、これに対応する文字間隔リストの文字間隔「8」を文字列104aの第2の閾値として決定する。また、閾値決定部307は、
図10(C)に示されるように、文字列104bの一次微分リストにおける最大値「4」を検出し、これに対応する文字間隔リストの文字間隔「8」を文字列104bの第2の閾値として決定する。
【0094】
そして、空白挿入部308は、文字列104a及び文字列104bに対して、閾値決定部307により決定された第2の閾値以上の文字間隔の文字間に空白の文字コードを挿入する。例えば、
図10(C)に示されるように、空白挿入部308は、文字列104aにおいては、「this」の「s」と「is」の「i」との間に空白の文字コードを挿入する。また、空白挿入部308は、
図10(C)に示されるように、文字列104bにおいては、「a」と「p」との間に空白の文字コードを挿入する。
【0095】
次に、第2の実施形態における文書処理サーバ30aの処理を
図11のフローチャートを参照して説明する。なお、第1の実施形態と同じ処理については説明を省略する。
【0096】
まず、文字列分割部309は、空白挿入部308により第1の閾値以上の文字間隔である文字間に空白の文字コードが挿入された文字列を、挿入された空白コードごとに分割する(ステップS201)。
【0097】
次に、単語判定部311は、文字列分割部309により分割された文字列が、記憶部310に記憶された単語と一致するか否かを判定する(ステップS202)。文字列分割部309により分割された文字列が、記憶部310に記憶された単語と一致する場合(ステップS202においてno)、処理を終了する。
【0098】
また、文字列分割部309により分割された文字列が、記憶部310に記憶された単語と一致しないと判定された場合(ステップS202においてyes)、文字間隔リスト作成部305は、分割された文字列の文字間隔を小さい順に並べた文字間隔リストを作成する(ステップS203)。
【0099】
そして、一次微分リスト作成部306は、ステップS203において作成された文字間隔リストの文字間隔の各文字間隔を一次微分することにより一次微分リストを作成する(ステップS204)。
【0100】
次に、閾値決定部307は、ステップS204において作成された一次微分リストにおける最大値に対応する文字間隔リストの文字間隔を第2の閾値として決定する(ステップS205)。
【0101】
そして、空白挿入部308は、分割された文字列に対して、ステップS205において決定された閾値以上の文字間隔の文字間に空白の文字コードを挿入する(ステップS206)。そして、ステップS201に戻り、ステップS201〜ステップS206の処理を繰り返す。
【0102】
なお、第2の実施形態においては、空白の文字コードを挿入する処理を2回行うものとして説明しているが、空白挿入部308により文字列に対して空白の文字コードが挿入されるごとに、当該文字列が文書データを構成する言語の単語であるか否かを判定し、当該文字列が単語ではない場合には、第2の実施形態と同様の方法により空白の文字コードを挿入する処理を再帰的に繰り返すようにしてもよい。
【0103】
また、第2の実施形態においては、記憶部310に記憶される言語の単語が英語であるものとして説明したが、文書データを構成する言語が他の分かち書きの言語である場合には、当該言語の単語を記憶するようにしてもよい。また、文書データが複数の言語により構成されている場合には、記憶部310は、複数の言語の単語を記憶するようにしてもよい。
【0104】
[第3の実施形態]
次に、本発明の第3の実施形態について図面を参照して詳細に説明する。
【0105】
第3の実施形態においては、第1の実施形態における空白の文字コードを挿入する処理が行われる前に、既に空白の文字コードが挿入されている場合に、この空白の文字コードが過挿入であるか否かを判定する場合について説明する。なお、第3の実施形態においても、第1の実施形態と同じ構成については説明を省略する。
【0106】
第3の実施形態における文書処理システムは、
図1に示される第1の実施形態における文書処理システムにおいて、文書処理サーバ30が文書処理サーバ30bに置き換えられている。なお、文書処理サーバ30bのハードウェア構成は、第1の実施形態と同じ構成であるため説明を省略する。
【0107】
次に、
図12を参照して、第3の実施形態における文書処理サーバ30bの機能構成を詳細に説明する。なお、第1の実施形態と同じ構成については、同じ符号を付して説明を省略する。
【0108】
図12に示されるように、第3の実施形態における文書処理サーバ30bは、第1の実施形態における文書処理サーバ30に対して、判別分析部312と、過挿入判定部313が追加されている。
【0109】
判別分析部312は、文字列取得部302により取得された文字列に空白の文字コードを挿入する必要があると空白挿入判定部304により判定された場合に、判別分析法を用いて判別分析の閾値を決定する。
【0110】
過挿入判定部313は、取得された文字列に対して、空白挿入部308により判別分析の閾値に基づいて空白の文字コードが挿入された場合に、当該空白の文字コードの数が、取得された文字列の文字間隔数の予め定められた割合以上であるか否かを判定する。本実施形態においては、予め定められた割合を40%として予め設定されている。
【0111】
また、過挿入判定部313は、空白の文字コードの数が、取得された文字列の文字間隔数の40%以上である場合には、文字間隔リスト作成部305に対して、当該文字列に既に含まれている空白の文字コードを全て削除した後、文字間隔リストを作成するよう指示する。
【0112】
以下、第3の実施形態における処理の具体例を
図13、
図14を参照して詳細に説明する。
【0113】
例えば、文書データ受付部301によって、
図13(A)に示されるような文書データを受け付けて、
図13(B)に示されるように、文字列取得部302によって文字列105を取得される。次に、判別分析部312は、
図13(C)に示されるように、文字列105の文字間隔のヒストグラムを作成する。
【0114】
そして、判別分析部312は、作成したヒストグラムに対して判別分析法を用いることにより、判別分析の閾値を境界として、ヒストグラムの値を2つのグループに分類する。例えば、
図13(C)に示されるように、「3(ピクセル)」を判別分析の閾値として算出し、ヒストグラムの値を「3(ピクセル)」より大きい文字間隔と、「3(ピクセル)」以下の文字間隔との2つのグループに分類する。
【0115】
そして、空白挿入部308は、判別分析部312により決定された判別分析の閾値より大きい文字間隔の文字間に空白の文字コードを挿入する。例えば、
図14(A)に示されるように、文字列105において、「Failed」の「a」と「i」との間、「Failed」の「l」と「e」との間、「Failed」の「d」と「example」の「e」との間、「example」の「x」と「a」との間、「example」の「a」と「m」との間にそれぞれ空白の文字コードを挿入する。
【0116】
次に、
図14(B)に示されるように、文字列105の文字間隔数が12個、判別分析の閾値より大きい文字間隔に挿入された空白の文字コード数が5個である場合、空白コードの数は、文字列105の文字間隔数の約41.67%であるため、過挿入判定部313は、文字列105に対して挿入された空白の文字コードの数が、文字列105の文字間隔数の予め定められた割合以上であると判定する。
【0117】
また、過挿入判定部313は、文字列に対して挿入された空白コードが、文字列105の文字間隔数の予め定められた割合以上であると判定した場合には、文字間隔リスト作成部305に対して、文字列105に含まれる空白の文字コードを全て削除した後、文字列105の文字間隔リストを作成するよう指示する。
【0118】
そして、文字間隔リスト作成部305は、文字列105に含まれる空白の文字コードを全て削除した後、第1の実施形態と同様に、文字列105の文字間隔リストを作成する。例えば、
図14(C)に示されるように、文字列105の文字間隔リストとして「1、1、2、2、2、2、3、4、4、4、4、6」を作成する。
【0119】
また、一次微分リスト作成部306は、第1の実施形態と同様に、文字列105の文字間隔リストにおける各文字間隔を一次微分することにより一次微分リストを作成する。例えば、
図14(C)に示されるように、文字列105の一次微分リストとして「0、1、0、0、0、1、1、0、0、0、2」を作成する。
【0120】
次に、閾値決定部307は、文字列105の一次微分リストにおける最大値として「2」を検出し、これに対応する文字間隔リストの「6(ピクセル)」を閾値として決定する。
【0121】
そして、空白挿入部308は、
図14(D)に示されるように、「6(ピクセル」以上の文字間隔の文字間に空白の文字コードを挿入する。具体的には、「Failed」の「d」と「example」のうち先頭の「e」との間に空白の文字コードを挿入する。
【0122】
次に、第3の実施形態における文書処理サーバ30bの処理について、
図15のフローチャートを参照して説明する。なお、第1の実施形態と同様の処理については同じ符号を付して説明を省略する。
【0123】
まず、文書データ受付部301により文書データが受け付けられ、文字列取得部302により取得された文字列の標準偏差が設定値Aより大きいと空白挿入判定部304により判定された場合に、判別分析部312は、判別分析法を用いて判別分析の閾値を決定する(ステップS301)。
【0124】
次に、空白挿入部308は、ステップS301において決定された閾値より大きい文字間隔である文字間に空白の文字コードを挿入する(ステップS302)。
【0125】
そして、過挿入判定部313は、ステップS302において挿入された空白の文字コードの数が、取得された文字列の文字間隔数の40%以上であるか否かを判定する(ステップS303)。挿入された空白の文字コードの数が、取得された文字列の40%未満である場合(ステップS303においてno)、処理を終了する。
【0126】
また、ステップS302において挿入された空白の文字コードの数が、取得された文字列の文字間隔数の40%以上である場合(ステップS303においてyes)、過挿入判定部313は、文字間隔リスト作成部305に対して、挿入された空白の文字コードを全て削除して、文字間隔リストを作成するよう指示する(ステップS304)。
【0127】
そして、過挿入判定部313が文字間隔リストを作成するよう指示した場合には、文書処理サーバ30bは、空白の文字コードが全て削除された文字列に対して、第1の実施形態と同様の処理により空白の文字コードを挿入する処理を行う(ステップS105〜ステップS108)。
【0128】
[変形例]
なお、第3の実施形態においては、判別分析の閾値に基づいて挿入された空白の文字コードの数が、文字列の文字間隔数の予め定められた割合以上であるか否かを判定するものとして説明した。しかし、文書データ受付部301において受け付けられた文書データの文字列に既に空白の文字コードが含まれている場合には、判別分析の閾値に基づく空白の文字コードの挿入処理を行わずに、取得された文字列における空白の文字コードの数が、文字列の文字間隔数の予め定められた割合以上であるか否かを判定するようにしてもよい。
【0129】
なお、上記の説明では、第1、第2及び第3の実施形態においてそれぞれ異なる構成を有する文書サーバ30について説明したが、文書サーバ30は、第1、第2及び第3の実施形態の構成を一部または全て含むようにしてもよい。
【0130】
また、上記第1から第3の実施形態では、文書データが英語により構成された場合を用いて説明しているが、ドイツ語、フランス語、韓国語、ベトナム語等のように、単語間の区切りに空白を挿入して記述する分かち書きの言語により文書データが構成されている場合であれば同様に本発明を適用可能である。また、一般的に日本語は分かち書きの言語ではないが、ひらがな文を分かち書きにより記述したような文書データであれば本発明を同様に適用可能である。
【0131】
さらに、上記第1から第3の実施形態では、文字コードと座標情報とが含まれている文書データに対して空白を挿入する場合を用いて説明しているが、書類をスキャンして読み取ったデータをOCR(optical character recognition)処理して得られた文書データに対して空白を挿入するような場合にも本発明は適用可能である。
【0132】
本発明の構成を採用することで文書データの適切な位置に空白の文字コードを挿入することが可能となり、その後の翻訳処理などの精度の向上に寄与する。なお、過挿入を抑制することに加え、場合によっては、本来挿入すべき位置に空白の文字コードを挿入できない未挿入を抑制することも可能である。