(57)【要約】【課題】複数回のメールのやり取りが行われ引用階層が乱れた場合でも、より正確な文の単位が認識できるようにメールの本文データを整形することである。【解決手段】文書階層判定部３０はメールの本文データの各行のデータ長及び引用階層を判定し、同一階層判定部３１は文書階層判定部３０で判定した各行のデータ長及び引用階層に基づいて同一階層の文字列を判定する。文書整形部３２は同一階層判定部３１で同一階層と判定された行同士を結合した結合文字列を作成し、文認識処理部３３は結合文字列から文を識別して、引用階層が乱れる前のメールの本文データを作成する。【選択図】  図１
2010108326.tif 000002
【特許請求の範囲】
【請求項１】
文書解析プログラムを記憶した記憶装置と、
メールの本文データを入力する入力装置と、
前記記憶装置に記憶された前記文書解析プログラムを演算実行する演算制御装置と、
前記演算制御装置の演算結果を出力する出力装置とを備えた文書解析装置において、
前記入力装置から入力された前記メールの本文データを改行ごとに読み込み前記記憶装置に記憶する入力処理部と、
前記記憶装置に記憶された前記メールの本文データを行ごとに読み出して各行文字列の文字の数に基づき各行ごとにデータ長を判定するとともに各行文字列の引用記号の数に基づいて各行ごとに引用階層を判定し各行ごとの文字列、データ長及び引用階層を前記記憶装置に記憶する文書階層判定部と、
前記文書階層判定部で判定したデータ長のうちデータ長が最大値の近似範囲内であるデータ長近似最大行の引用階層が次の行の引用階層より大きい場合は前記データ長近似最大行の文字列に含まれる引用記号及び改行を取り除いた文字列と次の行の文字列に含まれる引用記号及び改行を取り除いた文字列との結合文字列の長さが前記データ長の最大値の近似範囲内かどうかを判定し前記結合文字列の長さが前記データ長の最大値の近似範囲内であるときには前記データ長近似最大行とその次の行との実際の階層は同一階層の文字列であると判定する同一階層判定部と、
前記同一階層判定部で同一階層と判定された前記データ長近似最大行とその次の行の文字列を結合して結合文字列とし前記データ長近似最大行の引用階層を表す引用記号を前記結合文字列に付与して新たな行として前記記憶装置に記憶する文書整形部と、
前記文書整形部により新たに付与された行を含む前記メールの本文データを行ごとに前記記憶装置から順次読み出し先に読み出した行の文字列の引用階層と次に読み出した行の文字列の引用階層とが同じであるときは次に読み出した行の文字列の引用記号及び改行を取り除いて先に読み出した行の文字列に結合し結合文字列内の句点の位置で一文と判定し一文ごとの文の先頭にその引用階層の引用記号を付した文字列を前記記憶装置に記憶し前記先に読み出した行の文字列の引用階層と次に読み出した行の文字列の引用階層とが異なるときはその引用階層の引用記号を付した文字列を前記記憶装置に記憶する文認識処理部と、
前記文認識処理部で処理され前記記憶装置に記憶された前記メールの本文データの文字列を前記出力装置に出力する出力処理部とを備えたことを特徴とする文書解析装置。
【請求項２】
前記同一階層判定部は、前記結合文字列の長さが前記データ長の最大値の近似範囲内ではないときは、前記データ長近似最大行の引用階層と次の行の文字列とを比較し、前記データ長近似最大行の引用階層が次の行の文字列より大きいときは、前記データ長近似最大行とその次の行との実際の階層は同一階層の文字列であると判定することを特徴とする請求項１記載の文書解析装置。
【請求項３】
前記同一階層判定部は、前記結合文字列の長さが前記データ長の最大値の近似範囲内ではないときは、前記データ長近似最大行の引用階層と予め定めた引用階層閾値とを比較し、前記データ長近似最大行の引用階層が予め定めた引用階層閾値以上であるときは、前記データ長近似最大行とその次の行との実際の階層は同一階層の文字列であると判定することを特徴とする請求項１記載の文書解析装置。
【請求項４】
前記同一階層判定部は、前記結合文字列の長さが前記データ長の最大値の近似範囲内ではないときは、前記データ長近似最大行の次の行の文字列と予め定めた文字数とを比較し、前記データ長近似最大行の次の行の文字列が予め定めた文字数以下であるときは、前記データ長近似最大行とその次の行との実際の階層は同一階層の文字列であると判定することを特徴とする請求項１記載の文書解析装置。
【請求項５】
文書解析プログラムを記憶した記憶装置と、メールの本文データを入力する入力装置と、前記記憶装置に記憶された前記文書解析プログラムを演算実行する演算制御装置と、前記演算制御装置の演算結果を出力する出力装置とを備えたコンピュータにより構成された文書解析装置に用いられる文書解析プログラムにおいて、前記コンピュータに、
前記入力装置から入力された前記メールの本文データを改行ごとに読み込み前記記憶装置に記憶する手順と、
前記記憶装置に記憶された前記メールの本文データを行ごとに読み出して各行文字列の文字の数に基づき各行ごとにデータ長を判定する手順と、
前記記憶装置に記憶された前記メールの本文データを行ごとに読み出して各行文字列の引用記号の数に基づいて各行ごとに引用階層を判定する手順と、
前記読み出した各行ごとの文字列、前記判定したデータ長及び前記判定した引用階層を前記記憶装置に記憶する手順と、
前記判定したデータ長のうちデータ長が最大値の近似範囲内であるデータ長近似最大行の引用階層が次の行の引用階層より大きい場合は前記データ長近似最大行の文字列に含まれる引用記号及び改行を取り除いた文字列と次の行の文字列に含まれる引用記号及び改行を取り除いた文字列との結合文字列の長さが前記データ長の最大値の近似範囲内かどうかを判定する手順と、
前記結合文字列の長さが前記データ長の最大値の近似範囲内であるときには前記データ長近似最大行とその次の行との実際の階層は同一階層の文字列であると判定する手順と、
前記同一階層と判定された前記データ長近似最大行とその次の行の文字列を結合して結合文字列とする手順と、
前記データ長近似最大行の引用階層を表す引用記号を前記結合文字列に付与して新たな行として前記記憶装置に記憶する手順と、
前記新たに付与された行を含む前記メールの本文データを行ごとに前記記憶装置から順次読み出す手順と、
この手順により先に読み出した行の文字列の引用階層と次に読み出した行の文字列の引用階層とが同じであるときは次に読み出した行の文字列の引用記号及び改行を取り除いて先に読み出した行の文字列に結合して結合文字列を得る手順と、
この手順で得られた前記結合文字列内の句点の位置で一文と判定し一文ごとの文の先頭にその引用階層の引用記号を付した文字列を前記記憶装置に記憶する手順と、
前記先に読み出した行の文字列の引用階層と次に読み出した行の文字列の引用階層とが異なるときはその引用階層の引用記号を付した文字列を前記記憶装置に記憶する手順と、
前記記憶装置に記憶された前記メールの本文データの文字列を前記出力装置に出力する手順とを実行させるための文書解析プログラム。
【請求項６】
文書解析プログラムを記憶した記憶装置と、
メールの本文データを入力する入力装置と、
前記記憶装置に記憶された前記文書解析プログラムを演算実行する演算制御装置と、
前記演算制御装置の演算結果を出力する出力装置とを備えた文書解析装置において、
前記入力装置から入力された前記メールの本文データを改行ごとに読み込み前記記憶装置に記憶する入力処理部と、
前記記憶装置に記憶された前記メールの本文データを行ごとに読み出して各行文字列の文字の数に基づき各行ごとにデータ長を判定して前記記憶装置に記憶するとともに前記記憶装置に記憶されたデータ長の最大値とその最大値以外で出現頻度が高いデータ長の値との差分を行結合判定閾値として算出する行結合判定閾値算出部と、
前記記憶装置に記憶された前記メールの本文データを行ごとに読み出し読み出した行のデータ長が最大値の近似範囲でありその行のデータ長と次の行のデータ長との差が前記行結合判定閾値の近似範囲であるときは読み出した行及びその次の行に行結合の指標である繰り返し情報を付与して前記記憶装置に記憶する結合行判定部と、
前記記憶装置に記憶された前記メールの本文データを行ごとに読み出し読み出した行の前記結合行判定部で付与された繰り返し情報で行間の結合が指示されているときは行を結合して結合文字列を前記記憶部に記憶するデータ整形部と、
前記文整形部で処理され前記記憶装置に記憶された前記メールの本文データの文字列を前記出力装置に出力する出力処理部とを備えたことを特徴とする文書解析装置。
【請求項７】
文書解析プログラムを記憶した記憶装置と、メールの本文データを入力する入力装置と、前記記憶装置に記憶された前記文書解析プログラムを演算実行する演算制御装置と、前記演算制御装置の演算結果を出力する出力装置とを備えた文書解析装置に用いられる文書解析プログラムにおいて、
前記入力装置から入力された前記メールの本文データを改行ごとに読み込み前記記憶装置に記憶する手順と、
前記記憶装置に記憶された前記メールの本文データを行ごとに読み出して各行文字列の文字の数に基づき各行ごとにデータ長を判定して前記記憶装置に記憶する手順と、
前記記憶装置に記憶されたデータ長の最大値とその最大値以外で出現頻度が高いデータ長の値との差分を行結合判定閾値として算出する手順と、
前記記憶装置に記憶された前記メールの本文データを行ごとに読み出し読み出した行のデータ長が最大値の近似範囲でありその行のデータ長と次の行のデータ長との差が前記行結合判定閾値の近似範囲であるときは読み出した行及びその次の行に行結合の指標である繰り返し情報を付与して前記記憶装置に記憶する手順と、
前記記憶装置に記憶された前記メールの本文データを行ごとに読み出し読み出した行に付与された繰り返し情報で行間の結合が指示されているときは行を結合して結合文字列を前記記憶部に記憶する手順と、
前記記憶装置に記憶された前記メールの本文データの文字列を前記出力装置に出力する手順とを実行させるための文書解析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メールツールにより自動的に改行が行われた場合であっても、引用階層を整形して同一階層内で文の認識処理を行う文書解析装置及び文書解析プログラムに関する。
【背景技術】
【０００２】
近年、パソコンの普及率は高く、インターネット環境が整備されるに伴って、電子メールによる海外との情報のやり取りが益々盛んになってきている。また、電子メールの翻訳に機械翻訳を使用する利用者も増えてきている。
【０００３】
これまでの電子メールの利用者は、学校や企業などにおいて電子メールの記述に関するマナー教育を受けており、一定文字数で改行を挿入するなど、読みやすさを考慮した記述が行われていたが、パソコンの普及により、このようなマナーを知らない利用者も増えてきている。この結果、画面の横幅一杯に文字を入力したり、改行なしで記述されたメールも多数見受けられるようになっている。
【０００４】
このようなことから、メールソフトによっては、指定した桁数で自動的に折り返す(改行する)機能を有しているものがある。この機能が有効な場合には、明示的に改行したところと、自動折り返しによる改行の二重の改行により、非常に読み難い状態になる。また、メールの返信時には元のメールの引用部分に引用記号が挿入されることにより、さらに改行され返信が繰り返されるうちに、もともとは同じ階層の文であっても階層が乱れてしまい、引用部分か返答部分かを判断するのも困難となる。
【０００５】
そこで、パソコン等から受信したメールを表示した場合に本文が不自然な箇所で改行されないようにするために、受信したメールの本文の改行データを整形して不自然な改行を解消するようにしたものがある（例えば、特許文献１参照）。すなわち、この特許文献１のものは、メール文において、引用文の最初の引用記号を記憶し、改行データを検出するとメールソフトにより自動的に挿入された改行か利用者が意図して挿入した改行かを判断して、自動的に挿入された改行と判断した場合は改行を削除して引用文の一部とし、意図した改行と判断した場合は、前述の引用文の終端に引用終端記号を付与し、画面の表示幅に応じて改行の挿入と、引用文字から引用終端記号の間に存在する文の先頭に引用記号を挿入することで、メール文書の可読性を向上させるという手法をとっている。
【特許文献１】特開平１１−１８４７７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１のものでは、行頭に引用記号を検出した後のデータを検査し、２回目以降の引用記号を検出した場合は削除する。そして、改行データを検出した場合は、改行データの次の文字、すなわち行頭文字が、「  」（スペース）、「（」（開き括弧）、「？」（疑問符）、「数字」、「・」（中黒）、のいずれでもない場合は、自動的に挿入された改行と判断して改行を削除する。また、改行データの一つ前の文字が、句読点、「）」（閉じ括弧）のいずれでもない場合は、自動的に挿入された改行と判断して改行を削除する。
【０００７】
一方、自動的に挿入された改行ではないと判断した場合は、引用の終端を意味するコードを付与し、画面に表示する場合に、現在の画面幅に合わせた位置で改行を行う。そして、引用部分に相当する文の場合は改行コードに続いて引用記号を付与することで、メール文書の可読性を向上させるというものである。従って、引用の階層が異なる場合でも、同じ階層のデータとして認識されてしまうという問題がある。また、下記に示すようなメールの本文データＡ１では、数字で始まるため「２」の前の自動的に挿入された改行が削除されないという問題が発生する。
【０００８】
［メールの本文データＡ１］
2010108326.tif 000003
本発明の目的は、複数回のメールのやり取りが行われ引用階層が乱れた場合でも、自動改行データが挿入された場合の規則性を判定することにより、より正確な文の単位が認識できるようにメールの本文データを整形できる文書解析装置及び文書解析プログラムを提供することである。
【課題を解決するための手段】
【０００９】
本発明に係わる文書解析装置は、文書解析プログラムを記憶した記憶装置と、メールの本文データを入力する入力装置と、前記記憶装置に記憶された前記文書解析プログラムを演算実行する演算制御装置と、前記演算制御装置の演算結果を出力する出力装置とを備えた文書解析装置において、前記入力装置から入力された前記メールの本文データを改行ごとに読み込み前記記憶装置に記憶する入力処理部と、前記記憶装置に記憶された前記メールの本文データを行ごとに読み出して各行文字列の文字の数に基づき各行ごとにデータ長を判定するとともに各行文字列の引用記号の数に基づいて各行ごとに引用階層を判定し各行ごとの文字列、データ長及び引用階層を前記記憶装置に記憶する文書階層判定部と、前記文書階層判定部で判定したデータ長のうちデータ長が最大値の近似範囲内であるデータ長近似最大行の引用階層が次の行の引用階層より大きい場合は前記データ長近似最大行の文字列に含まれる引用記号及び改行を取り除いた文字列と次の行の文字列に含まれる引用記号及び改行を取り除いた文字列との結合文字列の長さが前記データ長の最大値の近似範囲内かどうかを判定し前記結合文字列の長さが前記データ長の最大値の近似範囲内であるときには前記データ長近似最大行とその次の行との実際の階層は同一階層の文字列であると判定する同一階層判定部と、前記同一階層判定部で同一階層と判定された前記データ長近似最大行とその次の行の文字列を結合して結合文字列とし前記データ長近似最大行の引用階層を表す引用記号を前記結合文字列に付与して新たな行として前記記憶装置に記憶する文書整形部と、前記文書整形部により新たに付与された行を含む前記メールの本文データを行ごとに前記記憶装置から順次読み出し先に読み出した行の文字列の引用階層と次に読み出した行の文字列の引用階層とが同じであるときは次に読み出した行の文字列の引用記号及び改行を取り除いて先に読み出した行の文字列に結合し結合文字列内の句点の位置で一文と判定し一文ごとの文の先頭にその引用階層の引用記号を付した文字列を前記記憶装置に記憶し前記先に読み出した行の文字列の引用階層と次に読み出した行の文字列の引用階層とが異なるときはその引用階層の引用記号を付した文字列を前記記憶装置に記憶する文認識処理部と、前記文認識処理部で処理され前記記憶装置に記憶された前記メールの
本文データの文字列を前記出力装置に出力する出力処理部とを備えたことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、複数回のメールのやり取りが行われ引用階層が乱れた場合でも、自動改行データが挿入された場合の規則性を判定することにより、より正確な文の単位が認識できるようにメールの本文データを整形できる。
【発明を実施するための最良の形態】
【００１１】
図１は本発明の実施の形態に係わる文書解析装置１１の機能ブロック図であり、図２は本発明の実施の形態に係る文書解析装置のハードウエア構成を示すブロック構成図である。
【００１２】
図２において、文書解析装置１１は、例えば一般的なコンピュータに文書解析プログラムなどのソフトウェアプログラムがインストールされ、そのソフトウェアプログラムが演算制御装置１２のプロセッサ１３において実行されることにより実現される。
【００１３】
演算制御装置１２は文書解析に関する各種演算を行うものであり、演算制御装置１２はプロセッサ１３とメモリ１４とを有し、メモリ１４には翻訳に関する文書解析プログラム１５が記憶され、プロセッサ１３により処理が実行される際には作業エリア１６が用いられる。演算制御装置１２の演算結果等は出力装置１７である表示装置１８に表示出力され、また、通信制御装置１９を介して通信ネットワークに出力される。
【００１４】
入力装置２０は演算制御装置１２に情報を入力するものであり、例えば、マウス２１、キーボード２２、ディスクドライブ２３、通信制御装置１９から構成され、例えば、マウス２１やキーボード２２は表示装置１８を介して演算制御装置１２に各種指令を入力し、キーボード２２、ディスクドライブ２３、通信制御装置１９はメールの本文データを入力する。
【００１５】
すなわち、ディスクドライブ２３はメールの本文データを記憶媒体に入出力するものであり、通信制御装置１９は文書解析装置１１をインターネットやＬＡＮなどの通信ネットワークに接続するものである。通信制御装置１９はＬＡＮカードやモデムなどの装置であり、通信制御装置１９を介して通信ネットワークと送受信したデータは入力信号又は出力信号として演算制御装置１２に送受信される。さらに、演算制御装置１２の演算結果やメールツールのプログラム等を記憶するハードディスクドライブ（ＨＤＤ）２４が設けられている。
【００１６】
図１は本発明の実施の形態に係わる文書解析装置１１の機能ブロック図である。図２に示す演算制御装置１２内の各機能ブロックは、上述の文書解析プログラム１５を構成する各プログラムに対応する。すなわち、プロセッサ１３が文書解析プログラム１５を構成する各プログラムを実行することで、演算制御装置１２は、各機能ブロックとして機能することとなる。また、記憶装置２５のブロックは、演算制御装置１２内のメモリ１４及びハードディスクドライブ２４の記憶領域に対応する。
【００１７】
入力処理部２６は、外部との入力のインターフェースを行うものであり、インターネットなどの通信制御装置１９やキーボード２３などの入力装置２０を通じてメールの本文データやコマンドを受け取るものである。
【００１８】
出力処理部２７は、外部との出力のインターフェースを行うものであり、インターネットなどの通信制御装置１９や表示装置１８などの出力装置１７を通じてメールの本文データを出力するものである。
【００１９】
制御部２８は装置全体の制御を行うものであり、入力処理部２６から送られたメールの本文データを記憶装置２５のデータ一時記憶部２９に記憶したり、文書階層判定部３０、同一階層判定部３１、文書整形部３２、文認識処理部３３を制御したり、これらの演算結果を記憶したデータ一時記憶部２９の内容を出力処理部２７に送り出力装置１７に出力したりする。
【００２０】
文書階層判定部３０は、入力処理部２６を介して入手されたメールの本文データの階層を判定するものである。すなわち、メールの本文データの各行文字列の文字の数に基づき各行ごとにデータ長を判定するとともに、各行文字列の引用記号の数に基づいて各行ごとに引用階層を判定する。そして、各行ごとの文字列、データ長及び引用階層を記憶装置２５のデータ一時記憶部２９に記憶する。
【００２１】
同一階層判定部３１は、隣接する行の引用階層が同一階層かどうかを判定するものである。この判定の仕方については後述する。
【００２２】
文書整形部３２は、同一階層判定部３１で同一階層と判定された行の文字列を結合して結合文字列とし、その引用階層を表す引用記号を結合文字列に付与して新たな行として記憶装置２５のデータ一時記憶部２９に記憶するものである。
【００２３】
文認識処理部３３は、文書整形部３２により新たに付与された行を含むメールの本文データの隣接する同一階層の行を結合し、結合文字列内の句点の位置で一文と判定し、その一文ごとの文の先頭にその引用階層の引用記号を付した文字列を作成し、記憶装置２５のデータ一時記憶部２９に記憶するものである。
【００２４】
次に、本発明の実施の形態に係わる文書解析装置１１の実施例１の動作について説明する。図３は、本発明の実施の形態に係わる文書解析装置１１の実施例１の動作を示すフローチャートである。
【００２５】
入力装置２０から演算処理装置１２にメールの本文データが入力されると、制御部２８は入力処理部２６を起動し、入力処理部２６はメールの本文データの改行毎にデータを読み込む（Ｓ２０１）。いま、下記のようなメールの本文データＡ２が読み込まれたとする。
【００２６】
［メールの本文データＡ２］
2010108326.tif 000004
このメールの本文データＡ２は、以下に示すメールの本文データＡ３がメールツールの設定により全角２０文字の位置で自動的に改行され、１度目の返信時に「はい。」が挿入され、さらに２度の転送が行われたものである。
【００２７】
［メールの本文データＡ３］
2010108326.tif 000005
メールの本文データＡ２及びメールの本文データＡ３から分かるように、メールの本文データＡ２は、本来同一行であった文字が自動改行により異なる行になった上、引用階層も異なった状態になってしまったものである。
【００２８】
入力処理部２６により読み込まれたメールの本文データＡ２は記憶装置２５のデータ一時記憶部２９に記憶される。表１は、記憶装置２５のデータ一時記憶部２９に記憶されたメールの本文データＡ２のテーブルの一例を示している。
【表１】
2010108326.tif 000006
【００２９】
表１に示すように、配列番号はメールの本文データの各行毎のデータに付された番号であり、データは本文データの各行毎の文字列である。長さは本文データの各行毎のデータの長さ（文字列の数）であり、引用階層はメールの返信の回数を示す階層である。表１では、メールの本文データＡ２を読み込んだままデータを記憶しているので、長さ及び引用階層は空白となっている。
【００３０】
メールの本文データＡ２が改行毎に読み込まれ、記憶装置２５のデータ一時記憶部２９に表１のように記憶されると、制御部２８は文書階層判定部３０が起動され、文書階層判定が行われる（Ｓ２０２）。
【００３１】
図４は、文書階層判定部３０の文書階層判定の処理内容を示すフローチャートである。文書階層判定部３０での文書階層判定は、メールの本文データの階層を判定するものである。
【００３２】
まず、文書階層判定部３０は、行データ指定変数ｉに初期値「１」をセットし（Ｓ３０１）、記憶装置２５のデータ一時記憶部２９に記憶されているメールの本文データＡ２の配列番号がｉ番目のデータＳｉを取得する（Ｓ３０２）。ｉが「１」であるときは、データＳ１として（>>> メールツールの設定が、「メール送信時）が取得される。
【００３３】
次に、引用階層を示す変数Ｌ、データＳｉの各要素を指定する変数Ｎ、引用記号配列の位置を示す変数Ｍに初期値「１」をセットする（Ｓ３０３）。引用階層を示す変数Ｌはメールの返信の回数を示す変数であり、データＳｉの各要素を指定する変数ＮはデータＳｉの要素（文字列）の位置を指定する変数であり、引用記号配列の位置を示す変数Ｍは引用記号を指定するための変数である。表２に引用記号配列のテーブルの一例を示す。
【表２】
2010108326.tif 000007
【００３４】
引用記号配列の位置を示す変数Ｍが「１」であるときは、引用記号として「>」が取得され、引用記号配列の位置を示す変数Ｍが「２」であるときは、引用記号として「|」が取得される。
【００３５】
次に、引用記号配列の位置を示す変数Ｍが指示する位置の引用記号ＣＭを取得する（３０４）。そして、変数Ｎから始まるデータＳｉの文字は引用記号ＣＭと一致したかどうかを判定し（Ｓ３０５）、一致しない場合は、引用記号ＣＭは最後のデータか判定し（Ｓ３０６）、引用記号ＣＭが最後のデータではない場合はＭ＝Ｍ＋１を行い（Ｓ３０７）、ステップＳ３０４に戻る。これにより、ステップＳ３０４では、引用記号ＣＭとして「|」が取得されることになる。このようにして、データＳｉの先頭からデータＳｉの文字が表２に示される引用記号配列に格納されている各引用記号と一致するかどうかを判定していくことになる。
【００３６】
いま、ｉ、Ｌ、Ｎ、Ｍがいずれも「１」であるとする。ｉが「１」である１行目のデータＳ１は（>>> メールツールの設定が、「メール送信時）である。ステップＳ３０４の判定においては、変数Ｍは１であるので、引用記号ＣＭは「>」であり、変数Ｎ（＝１）が示す位置のデータＳｉ（Ｓ１）が示す文字は「>」である。従って、ステップＳ３０５での判定では、変数Ｎ（＝１）から始まるデータＳｉ（Ｓ１）の文字「>」は引用記号ＣＭ（＝>）と一致するので、ステップＳ３０８に進む。
【００３７】
ステップＳ３０８では、データＳｉの判定開始位置を示す変数Ｎに、一致した引用記号ＣＭ「>」の長さを加える。これにより、変数Ｎを次の判定開始位置に更新する。また、引用階層を示す変数Ｌに１を加えてＬ＋１とし、変数Ｌを次の引用階層に更新する。なお、引用記号配列の位置を示す変数ＭはＭ＝１のままとする。変数Ｍの更新はステップＳ３０７で行われるからである。また、データＳｉのＮ番目の位置がスペースである場合には、変数Ｎに１を加えてＮ＋１とし、変数Ｎを次の判定開始位置に更新する。
【００３８】
そして、ステップＳ３０４の処理に戻り、ステップＳ３０５においてデータＳｉの変数Ｎの位置の文字が引用記号ＣＭと一致しなくなるまで、ステップＳ３０４、Ｓ３０５、Ｓ３０８を繰り返し行う。ステップＳ３０５においてデータＳｉの変数Ｎの位置の文字が引用記号ＣＭと一致しなくなるとステップＳ３０６に移行し、引用記号ＣＭが最後のデータになるまで、ステップＳ３０４、Ｓ３０５、Ｓ３０８を繰り返し行う。
【００３９】
ステップＳ３０６の判定で、引用記号ＣＭが最後のデータになったと判定されると、ステップＳ３０９に進む。ステップＳ３０９では、メールツールによっては引用記号ＣＭとともにスペースが挿入される場合があるため、スペースに対する評価を行う。ＳｉデータのＮ番目がＮ≠１、かつＮ番目の文字はスペース、かつＮ−１番目の文字はスペースではないかどうかを判定し、そうである場合には、スペースは引用記号として扱いＳ３０８に進む。ステップＳ３０９の条件を満たさない場合は、引用階層を示す変数ＬとともにデータＳｉ、データＳｉの長さをデータ一時記憶部２９に記憶する（Ｓ３１０）。これにより、表３に示すように、メールの本文データの１行目のデータＳ１については、データＳ１の長さは４０、引用階層は４が記憶される。データＳ１の長さは半角文字数で示され、引用階層は引用記号ＣＭの数とスペースとの合計で示されている。
【表３】
2010108326.tif 000008
【００４０】
次に、データＳｉは最後の行かどうかを判定し（Ｓ３１１）、最後の行でないときは、行データ指定変数ｉに１を加算して（Ｓ３１２）、ステップＳ３０２に戻る。これにより、２行目以降に対しても同様の処理を行い、最後の行に達すると処理を終了する。このとき、記憶装置２５のデータ一時記憶部２９に記憶されたメールの本文データＡ２のテーブルは、表４に示すように、各行のＳｉに対して、データＳ１の長さ及び引用階層が記憶される。
【表４】
2010108326.tif 000009
【００４１】
このようにして、文書階層判定部３０によりメールの本文データの階層が判定されると、同一階層判定部３１は、隣接する行の引用階層が同一階層かどうかを判定する。同一階層判定部３１は、図３のステップＳ２０３において、記憶装置２５のデータ一時記憶部２９に記憶された表４に示すメールの本文データＡ２のテーブルより、メールの本文データＡ２のデータＳｉのうち引用階層の最大値ｎ及びデータ長の最大値ＭＡＸを取得しデータ一時記憶部２９に記憶する。また、行データ指定変数ｉに「１」をセットし、ループ変数Ｊに「１」をセットする（Ｓ２０３）。
【００４２】
続いて、同一階層判定部３１は、表４に示すメールの本文データＡ２より、ｉ番目のデータＳｉと引用階層Ｌｉを取得する(Ｓ２０４)。そして、取得したデータＳｉの長さがデータ長最大値ＭＡＸの近似範囲にあるデータ長近似最大行かどうかを判定する。すなわち、同一階層判定部３１は、データＳｉの長さ＞ＭＡＸ−補正値であるかどうかを判断する（Ｓ２０５）。ここで、補正値はデータ長最大値ＭＡＸの±２を近似値として判断する。この補正値はユーザにより設定できるようにしてもよい。補正値を設定するのは、例えば、引用階層の一部にスペースが挿入されたり、英語の場合には単語間にスペースが入るので、その影響を考慮するためである。
【００４３】
ステップＳ２０５の判定で、データＳｉの長さがデータ長近似最大行であると判定されたときは、同一階層判定部３１は、次の行であるｉ＋１行目のデータＳｉ＋１が取得できるかどうかを判定し（Ｓ２０６）、データＳｉ＋１が取得できるとときは、次の行であるｉ＋１行目のデータＳｉ＋１と引用階層Ｌｉ＋１とを取得する（Ｓ２０７）。
【００４４】
そして、同一階層判定部３１は、データ長近似最大行であるデータＳｉの引用階層ＬｉがデータＳｉ＋１の引用階層Ｌｉ＋１よりも大きく、かつ、データＳｉとデータＳｉ＋１との引用記号部分を取り除いた長さを加えた値が、データ長最大値ＭＡＸの近似値かを判定する。すなわち、Ｌｉ＞Ｌｉ＋１かつ引用記号を取り除いたＳｉとＳｉ＋１の長さがＭＡＸ近似値内かどうかを判定する（Ｓ２０８）。ステップＳ２０８の条件を満たした場合には、同一階層判定部３１は、データ長近似最大行とその次の行との実際の階層は同一階層の文字列であると判定する。これは、データＳｉ＋１はもともとデータＳｉの一部であったが自動改行により改行が挿入されたデータと判定できるからである。
【００４５】
次に、文書整形部３２は、Ｓｉ＋１の引用記号を取り除きＳｉに結合する(Ｓ２０９)。すなわち、データＳｉ＋１の先頭からの引用記号を取り除き、データＳｉのデータの最後に結合する。この場合の引用記号には、引用記号に付加される引用記号に続く最初のスペースも含まれる。
【００４６】
そして、文書整形部３２は、データＳｉ＋１が最後のデータであるかどうかを判定し（Ｓ２１０）、最後のデータでない場合には、ｉ＝ｉ＋２とし（Ｓ２１１）、ステップＳ２０４に戻る。文書整形部３２は、データＳｉが最後のデータである場合はＪ＝Ｊ＋１とし（Ｓ２１２）、ループ変数Ｊが引用階層の最大値ｎと等しいかどうかを判断する。すなわち、Ｊ＝ｎかどうかを判断し（Ｓ２１３）、Ｊ＝ｎでないときはｉ＝１とし（Ｓ２１４）、ステップＳ２０４に戻り、ステップＳ２０４〜Ｓ２１４の処理を繰り返し行う。
【００４７】
なお、ステップＳ２０５の判定でデータＳｉの長さがデータ長近似最大行でないと判定されたとき、ステップ２０８の判定でステップＳ２０８の条件を満たさなかった場合はステップＳ２１０に進む。また、ステップＳ２０６の判定でＳｉ＋１が取得できなかったときはステップＳ２１２に進む。
【００４８】
ここで、１回目のステップＳ２０４〜Ｓ２１４の処理が完了した時点では、表４に示すメールの本文データＡ２の配列番号１、２、配列番号４、５、配列番号７、８がそれぞれ結合され、表５に示すようなメールの本文データとなる。
【表５】
2010108326.tif 000010
【００４９】
さらに、ループ変数Ｊが引用階層の最大値ｎと等しくなるまで、Ｓ２０４〜Ｓ２１４の処理を繰り返すことにより、表６に示すようなメールの本文データとなり、自動改行により乱れた引用階層が整形される。
【表６】
2010108326.tif 000011
【００５０】
このように、文書整形部３２は同一階層と判定されたデータ長近似最大行とその次の行の文字列とを結合して結合文字列とし、データ長近似最大行の引用階層を表す引用記号を結合文字列に付与して新たな行として、記憶装置２５のデータ一時記憶部２９に記憶する。
【００５１】
続いて、表６に示す引用階層が整形されたメールの本文データに対して文認識処理が行われる（Ｓ２１５）。図５は、文認識処理部３３の文認識処理の処理内容を示すフローチャートである。文認識処理部３３での文認識処理は、文書整形部３２により新たに付与された行を含むメールの本文データの隣接する同一階層の行を結合し、文の文字列とするものである。
【００５２】
表６に示す文書整形されたメールの本文データの各行からデータＳｉを取り出すために、図５に示すように、まず、行データ指定変数ｉに初期値「１」をセットする（Ｓ４０１）。
【００５３】
続いてｉ番目のデータＳｉを取得し、取得したデータＳｉの引用記号を取り除いてデータ一時記憶部２９の文認識処理記憶領域に格納する。すなわち、データＳｉから引用記号を取り除いてデータ一時記憶部に格納する（Ｓ４０２）。そして、取り除いた引用記号の引用階層Ｌｉをデータ一時記憶部２９に記憶する(Ｓ４０３)。この取り除いた引用記号の引用階層Ｌｉはデータ一時記憶部２９の引用階層記憶領域に記憶しておくことになる。次に、ｉ番目の位置から引用階層が異なるデータが出現するまで処理を繰り返すためのループカウンタの役割を行う変数ｐに初期値「１」をセットする（Ｓ４０４）。
【００５４】
続いてデータＳｉ＋ｐの引用記号の引用階層は取得できたかどうかを判定し（Ｓ４０５）、データＳｉ＋ｐの引用記号の引用階層が取得できなかったときは処理を終了する。一方、データＳｉ＋ｐの引用記号の引用階層が取得できたときは、データＳｉの引用階層ＬｉとデータＳｉ＋ｐの引用階層とが同じかどうかを判定する（Ｓ４０６）。引用階層が同じである場合は、データＳｉ＋ｐの引用記号の文字列を削除し、データＳｉ＋ｐの末尾に改行コードを付与してデータ一時記憶部２９に記憶する（Ｓ４０７）。これらのデータは、データ一時記憶部２９の文認識処理記憶領域に追加して記憶されることになる。そして、次のデータを取得するために変数ｐをｐ＝ｐ＋１とし（Ｓ４０８）、ステップＳ４０５に戻る。
【００５５】
ステップＳ４０６の判定で、引用階層が異なるデータＳｉが出現した場合は、文認識処理記憶領域のデータを基に文の判定処理を行う（Ｓ４０９）。この場合、
文認識処理記憶領域のデータは、表７に示すように、引用階層が同じデータが格納されたメール本文データとなっている。
【表７】
2010108326.tif 000012
【００５６】
ステップＳ４０９での文判定処理では、例えば、「。」などの句点を文末と判断して、「メールツールの設定が…になっている。」を切り出す。続いて、「全」から次に出現する「。」までを一文とする。続いて「以上」を一文とする。
【００５７】
最後まで達したら、文毎の先頭に引用記号を挿入する（Ｓ４１０）。すなわち、データ一時記憶部２９の引用階層記憶領域に一時的に記憶した引用記号の文字列を各々の文の先頭に付加すると、表８に示すようなメールの本文データとなる。
【表８】
2010108326.tif 000013
【００５８】
そして、データＳｉは最後のデータかどうかを判定し（Ｓ４１１）、最後のデータまで達していない場合は、変数ｉをｐ分進めるべくｉ＝ｉ＋ｐとし（Ｓ４１２）、ステップＳ４０２に戻り、データＳｉ＋ｐからＳ４０２〜Ｓ４１１の処理を繰り返し行う。これにより、表９に示すように、「はい。」が文認識処理の対象となり、「はい。」が文の単位として取得される。
【表９】
2010108326.tif 000014
【００５９】
そして、「はい。」に一時的に記憶した引用記号の文字列を挿入すると、表１０に示すようなメールの本文データが得られる。
【表１０】
2010108326.tif 000015
【００６０】
本発明の実施の形態の実施例１によれば、メールツールの設定により自動的に改行が行われ、メールの書き手が同じで階層が異なるデータとなった場合であっても、自動的に挿入された改行により乱れた階層を整形して、同一階層内で文の認識処理を行うので、文の認識精度を向上させることができる。このように、改行により乱れた階層を整形して文の認識精度を向上できるので、翻訳対象となるメールの本文データの翻訳精度も向上できる。例えば、翻訳装置では正しい翻訳結果を得るためには、翻訳対象となる文の単位を正確に認識する必要があるが、その要請にも応えることができる。
【００６１】
次に、本発明の実施の形態に係わる文書解析装置１１の実施例２の動作について説明する。図６は、本発明の実施の形態に係わる文書解析装置１１の実施例２の動作を示すフローチャートである。この実施例２は、図３に示すフローチャートのステップＳ２０８の条件が満たされないと判定された場合に、引用階層ＬｉがデータＳｉ＋１の長さより大きいかどうかを判定するステップＳ２０８ａを追加して設けたものである。
【００６２】
これにより、同一階層判定部３１は、ステップＳ２０８の条件を満たさないとき、すなわち、データ長近似最大行の引用階層Ｌｉが次の行の引用階層Ｌｉ＋１より大きく、かつ結合文字列の長さがデータ長の最大値の近似範囲内ではないときは、データ長近似最大行の引用階層Ｌｉと次の行の文字列とを比較し、データ長近似最大行の引用階層が次の行の文字列より大きいときは、データ長近似最大行とその次の行との実際の階層は同一階層の文字列であると判定するようにしたものである。
【００６３】
いま、メール本文データとして、次に示すメール本文データＡ４を用いて説明する。
【００６４】
［メール本文データＡ４］
2010108326.tif 000016
【００６５】
メール本文データＡ４は、１１文字目で明示的に改行を入れたデータが複数回のメールのやりとりにより、メールツールの設定により２０文字で自動的に折り返され、本来同一の階層のデータが異なる階層になったものである。メール本文データＡ４は、図６のステップＳ２０８までの処理で表１１に示すメール本文データとなる。
【表１１】
2010108326.tif 000017
【００６６】
表１１のメール本文データに対して、図６のステップＳ２０８において、１番目のデータＳ１の引用記号を取り除いた「メールツールの設定」と２番目のデータＳ２の「が」とを結合したデータの長さは２０となる。従って、ステップＳ２０８では、データ長最大値ＭＡＸである３９の近似値と判定されず、１番目のデータＳ１と２番目のデータＳ２とは結合しないと判定される。
【００６７】
そこで、実施例２では、図６のステップＳ２０８で結合しないと判定された場合に、２番目のデータＳ２の長さと１番目のデータＳ１の引用階層Ｌ１とを比較し、２番目のデータＳ２の長さが１番目のデータＳ１の引用階層Ｌ１より小さい場合は、同一階層のデータであると判定する（Ｓ２０８ａ）。そして、文書整形部３２は、ステップＳ２０８ａの判定に基づきデータＳｉとデータＳｉ＋１とを結合することになる。
【００６８】
この、図６のフローチャートにおいて、１回目のステップＳ２０４〜Ｓ２１４の処理で、表１２に示すメール本文データとなる。
【表１２】
2010108326.tif 000018
【００６９】
そして、２回目のステップＳ２０４〜Ｓ２１４の処理で表１３に示すメール本文データとなる。
【表１３】
2010108326.tif 000019
【００７０】
２回目のＳ２０４〜Ｓ２１４の処理で表１３に示すメール本文データのようにデータの階層が同じとなるため、図６のステップＳ２１３において、変数Ｊが引用階層の最大値ｎに達するか、または処理結果が前回と同じである場合は、文書整形部３２の処理を終了し(Ｓ２１３)、文認識処理に移行する（Ｓ２１５）。
【００７１】
以上の説明では、同一階層判定部３１は、ステップＳ２０８の条件を満たさないときは、データ長近似最大行の引用階層Ｌｉと次の行の文字列とを比較し、データ長近似最大行の引用階層が次の行の文字列より大きいときは、データ長近似最大行とその次の行との実際の階層は同一階層の文字列であると判定するようにしたが、データ長近似最大行の引用階層と予め定めた引用階層閾値とを比較し、データ長近似最大行の引用階層が予め定めた引用階層閾値以上であるときは、データ長近似最大行とその次の行との実際の階層は同一階層の文字列であると判定するようにしてもよい。また、データ長近似最大行の次の行の文字列と予め定めた文字数とを比較し、データ長近似最大行の次の行の文字列が予め定めた文字数以下であるときは、データ長近似最大行とその次の行との実際の階層は同一階層の文字列であると判定するようにしてもよい。
【００７２】
本発明の実施の形態の実施例２によれば、実施例１の効果に加え、引用階層が深い場合であっても、自動的に挿入された改行により乱れた階層を整形できる。
【００７３】
次に、本発明の実施の形態に係わる文書解析装置１１の他の一例を説明する。図７は本発明の実施の形態に係わる文書解析装置１１の他の一例の機能ブロック図である。文書解析装置１１のハードウエア構成は、図２に示した構成と同じである。
【００７４】
入力処理部２６は、外部との入力のインターフェースを行うものであり、インターネットなどの通信制御装置１９やキーボード２３などの入力装置２０を通じてメールの本文データやコマンドを受け取るものである。
【００７５】
出力処理部２７は、外部との出力のインターフェースを行うものであり、インターネットなどの通信制御装置１９や表示装置１８などの出力装置１７を通じてメールの本文データを出力するものである。
【００７６】
制御部２８は装置全体の制御を行うものであり、入力処理部２６から送られたメールの本文データを記憶装置２５のデータ一時記憶部２９に記憶したり、行結合判定閾値算出部３４、結合行判定部３５、データ整形部３６を制御したり、これらの演算結果を記憶したデータ一時記憶部２９の内容を出力処理部２７に送り出力装置１７に出力したりする。
【００７７】
行結合判定閾値算出部３４は、記憶装置３５に記憶されたメールの本文データを行ごとに読み出して各行文字列の文字の数に基づき、各行ごとにデータ長を判定して記憶装置に記憶するとともに記憶装置に記憶されたデータ長の最大値とその最大値以外で出現頻度が高いデータ長の値との差分を行結合判定閾値として算出する。
【００７８】
結合行判定部３５は、記憶装置２５に記憶されたメールの本文データを行ごとに読み出し、読み出した行のデータ長が最大値の近似範囲であり、その行のデータ長と次の行のデータ長との差が行結合判定閾値算出部３４で算出された行結合判定閾値の近似範囲であるときは、読み出した行及びその次の行に行結合の指標である繰り返し情報を付与して記憶装置２５に記憶するものである。
【００７９】
データ整形部３６は、記憶装置２５に記憶されたメールの本文データを行ごとに読み出し、読み出した行の結合行判定部３５で付与された繰り返し情報で行間の結合が指示されているときは、行を結合して結合文字列を記憶部２５に記憶するものである。
【００８０】
次に、図７に示した本発明の実施の形態の文書解析装置の他の一例の動作について説明する。図８は本発明の実施の形態の文書解析装置の他の一例の動作を示すフローチャートである。
【００８１】
いま、入力処理部２６より、次に示すメールの本文データＡ５が入力されたとする。
【００８２】
「メールの本文データＡ５」
2010108326.tif 000020
【００８３】
メールの本文データＡ５は、以下に示すメールの本文データＡ６がメールツールの設定により、全角２０文字の位置で改行されたものである。
【００８４】
「メールの本文データＡ６」
2010108326.tif 000021
【００８５】
入力装置２０から演算処理装置１２にメールの本文データＡ５が入力されると、制御部２８は入力処理部２６を起動し、入力処理部２６はメールの本文データＡ５の改行毎に記憶部２５のデータ一時記憶部２９にデータを読み込む（Ｓ８０１）。表１４はデータ一時記憶部２９の入力データ記憶領域に記憶されたメールの本文データＡ５を示している。
【表１４】
2010108326.tif 000022
【００８６】
次に、制御部２８は行結合判定閾値算出部３４を起動する。行結合判定閾値算出部３４は、記憶装置３５のデータ一時記憶部２９の入力データ記憶領域に記憶されたメールの本文データＡ５を行ごとに読み出して各行文字列の文字の数に基づき各行ごとに各行のデータ長を判定し（Ｓ８０２）、記憶装置３５のデータ一時記憶部２９に記憶し、記憶装置２５のデータ一時記憶部２９に記憶したデータ長の最大値とその最大値以外で出現頻度が高いデータ長の値との差分を行結合判定閾値として算出する（Ｓ８０３）。
【００８７】
すなわち、行結合判定閾値算出部３４は、表１４のメールの本文データＡ５に対して、改行毎にデータを読み込み各行のデータ長さを調べ、その結果を表１５に示すようなメールの本文データとして記憶装置２５のデータ一時記憶部２９に記憶する。
【表１５】
2010108326.tif 000023
【００８８】
そして、表１５のメールの本文データより、データ長最大値と、その最大値以外で出現頻度が高いデータ長とを検出し、データ長最大値から出現頻度が高いデータ長を引いた値を行結合判定閾値とする。
【００８９】
ここで、表１５のメールの本文データでは、データ長最大値が４０、出現頻度が高いデータ長が１０であるので、ステップＳ８０３で算出される行結合判定閾値は３０となる。
【００９０】
次に、行結合判定部３５は、行データ指定変数ｉに初期値「１」をセットし（Ｓ８０４）、繰り返し情報を示す変数Ｑに初期値「１」をセットする（Ｓ８０５）。行データ指定変数ｉは表１５のメールの本文データから各行のデータＳｉを取得するための変数ｉであり、変数Ｑは行結合を判定するための変数である。
【００９１】
そして、行結合判定部３５は、表１５のメールの本文データからデータＳｉの文字列及びデータＳｉの長さを取得する（Ｓ８０６）。これにより、データＳｉの文字列として（メールツールの設定が、「メール送信時に２）が取得され、データＳｉの長さとして４０が取得される。これらのデータが取得できたかどうかを判定し（Ｓ８０７）、データが取得できない場合は、繰り返し情報の変数Ｑに「０」をセットし（Ｓ８０８）、行結合判定部３５は表１６のメールの本文データの繰り返し情報には「０」を記憶し処理を終了する。
【表１６】
2010108326.tif 000024
【００９２】
行結合判定部３５は、データＳｉの文字列及びデータＳｉの長さが取得できたときは、データＳｉの長さがデータ長最大値ＭＡＸの近似範囲であるかどうかを判定する（Ｓ８０９）。近似範囲はデータ長最大値ＭＡＸから補正値を引いた値を最大値の近似範囲判定値とする。ＭＡＸ−補正値＜｜データＳｉの長さ｜＜ＭＡＸとする。ここでは、補正値を例えば２とするが利用者が任意の値を設定できるようにしてもよい。
【００９３】
データＳｉの長さがデータ長最大値ＭＡＸの近似範囲でないときは、行結合判定部３５は、データＳｉの行が繰り返しの対象にはならないと判断し、繰り返し情報の変数Ｑに「０」をセットし（Ｓ８１０）、変数ｉに１を加えてｉ＝ｉ＋１とし（Ｓ８１１）、ステップＳ８０５の処理に戻る。この場合、表１６のメールの本文データの繰り返し情報には「０」が記憶される。
【００９４】
ステップＳ８０９の判定で、データＳｉの長さがデータ長最大値ＭＡＸの近似範囲である場合は、次のデータＳｉ＋１の文字列とデータＳｉ＋１の長さとを取得する（Ｓ８１２）。これにより、データＳｉ＋１の文字列として（０文字で自）、データＳｉ＋１の長さとして１０が取得される。データが取得できない場合は、これらのデータが取得できたかどうかを判定し（Ｓ８１３）、繰り返し情報の変数Ｑに「０」をセットし（Ｓ８０８）、行結合判定部３５は表１６のメールの本文データの繰り返し情報には「０」を記憶し処理を終了する。
【００９５】
行結合判定部３５は、データＳｉ＋１の文字列及びデータＳｉ＋１の長さが取得できたときは、データＳｉの長さとデータＳｉ＋１の長さとの差分を算出する（Ｓ８１４）。続いて、その差分が行結合判定閾値と近似範囲であるかどうかを判定する（Ｓ８１５）。ここでは、差分は３０であるので、行結合判定閾値と近似範囲であるため、表１６のメールの本文データのデータＳｉとデータＳｉ＋１との繰り返し情報に変数Ｑの値（Ｑ＝１）をセットし、Ｑ＝Ｑ＋１とする（Ｓ８１６）。
【００９６】
一方、ステップＳ８１５の判定で、差分が行結合判定閾値と近似範囲ではない場合には、繰り返し情報の変数Ｑに「０」をセットし（Ｓ８１７）、行結合判定部３５は表１６のメールの本文データの繰り返し情報には「０」を記憶する。そして、データＳｉ＋１が最後のデータかどうかを判定し（Ｓ８１８）、データＳｉ＋１が最後のデータである場合は、行結合判定部３５は処理を終了し、次のデータ整形処理に移行する（Ｓ８１９）。一方、最後のデータではない場合は、変数ｉに２を加えてｉ＝ｉ＋２とし（Ｓ８２０）、ステップＳ８０６に戻る。
【００９７】
続いて、表１６に示す繰り返し情報が付与されたメールの本文データに対してデータ整形処理が行われる（Ｓ８１９）。図９は、データ整形部３６のデータ整形の処理内容を示すフローチャートである。データ整形部３６でのデータ整形処理は、読み出した行に付与された繰り返し情報で行間の結合が指示されているときは、行を結合して結合文字列を作成しデータを整形するものである。
【００９８】
まず、表１６に示す繰り返し情報が付与されたメールの本文データにアクセスするための行データ指定変数ｉに「１」をセットするとともに、繰り返し状態変数Ｋに「０」をセットする（Ｓ９０１）。
【００９９】
続いて、表１６に示すメールの本文データよりデータＳｉの文字列とデータＳｉの繰り返し情報とを取得する（Ｓ９０２）。これらのデータが取得できたかどうかを判定し（Ｓ９０３）、データが取得できない場合は、データ整形部３６は処理を終了する。データＳｉの文字列とデータＳｉの繰り返し情報とが取得できた場合は、繰り返し情報が０か否かを判定する（Ｓ９０４）。
【０１００】
繰り返し情報が０の場合は、次の行とは結合しないため、データＳｉに改行を付与して整形し、その整形結果したデータＳｉを記憶する（Ｓ９０５）。この場合、データＳｉは記憶装置２５のデータ一時記憶部２９の整形結果記憶領域に記憶される。そして、変数ｉに１を加算しｉ＝ｉ＋１として（Ｓ９０６）、ステップＳ９０２に戻る。
【０１０１】
繰り返し情報が０以外の場合は、データＳｉの次のデータＳｉ＋１の文字列とデータＳｉ＋１の繰り返し情報とを取得する（Ｓ９０７）。これらのデータが取得できたかどうかを判定し（Ｓ９０８）、データが取得できない場合は、データ整形部３６は処理を終了する。
【０１０２】
データＳｉ＋１の文字列とデータＳｉ＋１の繰り返し情報とが取得できた場合には、データＳｉ＋１の次のデータＳｉ＋２の繰り返し情報を取得する（Ｓ９０９）。データＳｉ＋２の繰り返し情報が取得できたかどうかを判定し（Ｓ９１０）、データＳｉ＋２の繰り返し情報が取得できた場合は０か否かを判定する（Ｓ９１１）。
【０１０３】
ステップＳ９１０の判定でＳｉ＋２の繰り返し情報が取得できない場合、または、ステップＳ９１１の判定でデータＳｉ＋２の繰り返し情報が０の場合は、変数Ｋは「１」がどうかを判定する（Ｓ９１２）。ステップＳ９１２の判定で変数Ｋの値が「１」である場合は、データＳｉの文字列とデータＳｉ＋１の文字列とを結合して末尾に改行を付与し、記憶装置２５のデータ一時記憶部２９の整形結果記憶領域に記憶する。すなわち、ＳｉとＳｉ＋１とを結合して記憶する（Ｓ９１３）。繰り返し変数Ｋが「１」以外の場合は、データＳｉとデータＳｉ＋１の末尾にそれぞれ改行を付与し、記憶装置２５のデータ一時記憶部２９の整形結果記憶領域に記憶する。すなわち、ＳｉとＳｉ＋１とそれぞれ記憶する（Ｓ９１４）。そして、繰り返し状態が解除されるため、変数Ｋに「０」をリセットする（Ｓ９１５）。
【０１０４】
一方、ステップＳ９１１の判定で、データＳｉ＋２の繰り返し情報が「０」以外の場合は、データＳｉとデータＳｉ＋１とデータＳｉ＋２とデータＳｉ＋３とが一定の規則で連続する行と判断できる。そこで、データＳｉの文字列とデータＳｉ＋１の文字列とを結合して末尾に改行を付与し、記憶装置２５のデータ一時記憶部２９の整形結果記憶領域に記憶する。すなわち、ＳｉとＳｉ＋１とを結合して記憶する（Ｓ９１６）。そして、繰り返し状態にあるため、変数Ｋに「１」をセットする（Ｓ９１７）。データＳｉ＋１は最後のデータであるかどうかを判定し（Ｓ９１８）、最後のデータである場合は処理を終了し、最後のデータではない場合は、変数ｉに２を加算しｉ＝ｉ＋２として（Ｓ９１９）、Ｓ９０２に戻る。
【０１０５】
ステップＳ９０１〜ステップＳ９１９の処理が終了した時点で、記憶装置２５のデータ一時記憶部２９の整形結果記憶領域に記憶された表１７に示すようなメールの本文データが得られる。表１７に示すように、文字列が整形されている。
【表１７】
2010108326.tif 000025
【０１０６】
このように、メールツールの設定により自動的に改行が行われ、文の途中で改行されて、長い文、短い文、長い文、短い文のような状態となったとしても、文のデータ整形処理を行うことにより文を整形できる。
【０１０７】
本発明の実施の形態によれば、自動的に挿入された改行により乱れた階層を整形した後に、同一階層内で文の認識処理を行うので、文の認識精度を向上させることができる。
【図面の簡単な説明】
【０１０８】
【図１】本発明の実施の形態に係わる文書解析装置の機能ブロック図。
【図２】本発明の実施の形態に係る文書解析装置のハードウエア構成を示すブロック構成図。
【図３】本発明の実施の形態に係わる文書解析装置の実施例１の動作を示すフローチャート。
【図４】本発明の実施の形態における文書階層判定部の文書階層判定の処理内容を示すフローチャート。
【図５】本発明の実施の形態における文認識処理部の文認識処理の処理内容を示すフローチャート。
【図６】本発明の実施の形態に係わる文書解析装置の実施例２の動作を示すフローチャート。
【図７】本発明の実施の形態に係わる文書解析装置の他の一例の機能ブロック図。
【図８】本発明の実施の形態の文書解析装置の他の一例の動作を示すフローチャート。
【図９】本発明の実施の形態におけるデータ整形部のデータ整形の処理内容を示すフローチャート。
【符号の説明】
【０１０９】
１１…文書解析装置、１２…演算制御装置、１３…プロセッサ、１４…メモリ、１５…文書解析プログラム、１６…作業エリア、１７…出力装置、１８…表示装置、１９…通信制御装置、２０…入力装置、２１…マウス、２２…キーボード、２３…ディスクドライブ、２４…ハードディスクドライブ、２５…記憶装置、２６…入力処理部、２７…出力処理部、２８…制御部、２９…データ一時記憶部、３０…文書階層判定部、３１…同一階層判定部、３２…文書整形部、３３…文認識処理部、３４…行結合判定閾値算出部、３５…結合行判定部、３６…データ整形部
【図１】
2010108326.tif 000026
【図２】
2010108326.tif 000027
【図３】
2010108326.tif 000028
【図４】
2010108326.tif 000029
【図５】
2010108326.tif 000030
【図６】
2010108326.tif 000031
【図７】
2010108326.tif 000032
【図８】
2010108326.tif 000033
【図９】
2010108326.tif 000034