(57)【特許請求の範囲】
【請求項１】
電子化された文書データを処理する文書処理装置において、
入力されたテキストデータのエンコード形式を判断する文字種判断手段と、上記文字種判断手段の判断結果に基づき、入力された上記テキストデータの文字コード体系を所定の文字コード体系に変換する文字コード変換手段とを備え、入力された上記テキストデータのテキスト形式を判断し、上記文字コード変換手段により所定の文字コード体系に変換されたテキストデータを出力するテキスト形式判断手段と、
上記テキスト形式判断手段から出力された上記テキストデータを、該テキストデータの構成に応じて所定のブロックに分割し、分割されたブロックであることを示す所定のタグ情報を付与して、ブロック構造データとして出力するブロック分割手段と、
上記ブロック分割手段から出力された上記ブロック構造データの文書構造を上記テキストデータの構成に基づき解析して文単位に分割し、分割された上記文に上記テキストデータの構成に応じてタグ情報を付加して上記文を構造化し、文構造データとして出力する文書構造化手段と、
上記文書構造化手段から出力された上記文構造データの上記タグ情報に基づき上記文の切り出しを制御する文切り出し手段と
を有し、
上記ブロック分割手段は、上記テキスト形式判断手段により上記テキストデータがテキスト形式の文書であると判断された場合には、所定の固まりを上記ブロックと判断し、上記テキスト形式判断手段により上記テキストデータがタグ付きテキスト形式の文書であると判断された場合には、上記テキストデータに付与されたタグ情報のうち、上記文切り出し手段による文切り出しに利用されない不要なタグ情報の削除を行い、
上記文書構造化手段は、上記テキストデータが上記タグ付きテキスト形式の文書であって、文の構造を指定するタグ情報が予め付与されている場合には、上記予め付与されているタグ情報をそのまま使う
文書処理装置。
【請求項２】
請求項１に記載の文書処理装置において、
上記テキスト形式判断手段は、文字コード体系の指定を行う処理系文字コード指定手段をさらに有し、上記所定の文字コード体系の代わりに他の文字コード体系を選択可能としたことを特徴とする文書処理装置。
【請求項３】
請求項２に記載の文書処理装置において、
上記処理系文字コード指定手段による上記文字コード体系の指定が無い場合は、所定に与えられた文字コード体系に従って処理を行うことを特徴とする文書処理装置。
【請求項４】
請求項１に記載の文書処理装置において、
上記所定の固まりは、空白行と空白行とで挟まれた固まりである
文書処理装置。
【請求項５】
請求項１に記載の文書処理装置において、
上記所定の固まりは、１行の文字数が共通な行の固まりである
文書処理装置。
【請求項６】
請求項１に記載の文書処理装置において、
上記所定の固まりは、文字列の始まる位置が共通な行の固まりである
文書処理装置。
【請求項７】
請求項１に記載の文書処理装置において、
上記所定の固まりは、予め指定された罫線の対象となる文字列により囲まれた固まりである
文書処理装置。
【請求項８】
請求項１に記載の文書処理装置において、
上記所定の固まりは、予め指定された文字または文字列の連続からなる罫線により囲まれた固まりである
文書処理装置。
【請求項９】
請求項１に記載の文書処理装置において、
上記所定の固まりは、予め指定された仕切り線の対象となる文字列により仕切られた固まりである
文書処理装置。
【請求項１０】
請求項１に記載の文書処理装置において、
上記ブロック分割手段は、上記テキスト形式判断手段により上記入力されたテキストデータがテキスト形式の文書であると判断された場合に、オリジナルテキストの文字位置をタグ情報として保存することを特徴とする文書処理装置。
【請求項１１】
請求項１に記載の文書処理装置において、
上記文書構造化手段は、罫線として用いられる文字に基づき切り出されたブロックに対して、仕切り線として用いられる文字により区切られたセルを判別し、判別された上記各セルから文を分割することを特徴とする文書処理装置。
【請求項１２】
請求項１に記載の文書処理装置において、
上記文切り出し手段は、上記文書構造化手段により作成された上記タグ情報により上記構造化された上記文を木構造のデータとして表現することを特徴とする文書処理装置。
【請求項１３】
電子化された文書データを処理する文書処理方法において、
文字種判断手段によって、入力されたテキストデータのエンコード形式を判断する文字種判断のステップと、
上記文字種判断のステップにおける判断結果に基づき、文字コード変換手段によって、入力された上記テキストデータの文字コード体系を所定の文字コード体系に変換する文字コード変換のステップと、
上記文字種判断手段と上記文字コード変換手段とを備えるテキスト形式判断手段により、入力された上記テキストデータのテキスト形式を判断し、上記文字コード変換のステップにより所定の文字コード体系に変換されたテキストデータを出力するテキスト形式判断のステップと、
ブロック分割手段によって、上記テキスト形式判断のステップにより出力された上記テキストデータを、該テキストデータの構成に応じて所定にブロックに分割し、分割されたブロックであることを示す所定のタグ情報を付与して、ブロック構造データとして出力するブロック分割のステップと、
文書構造化手段によって、上記ブロック分割のステップにより出力された上記ブロック構造データの文書構造を上記テキストデータの構成に基づき解析して文単位に分割し、分割された上記文に上記テキストデータの構成に応じてタグ情報を付加して上記文を構造化し、文構造データとして出力する文書構造化のステップと、
文切り出し手段によって、上記文書構造化のステップにより出力された上記文構造データの上記タグ情報に基づき上記文の切り出しを制御する文切り出しのステップと
を有し、
上記ブロック分割のステップにおいては、上記テキスト形式判断のステップにより上記テキストデータがテキスト形式の文書であると判断された場合には、所定の固まりを上記ブロックと判断し、
上記テキスト形式判断のステップにより上記テキストデータがタグ付きテキスト形式の文書であると判断された場合には、上記テキストデータに付与されたタグ情報のうち、上記文切り出し手段による文切り出しに利用されない不要なタグ情報の削除を行い、
上記文書構造化のステップは、上記テキストデータが上記タグ付きテキスト形式の文書であって、上記タグ情報が予め付与されている場合には、上記予め付与されているタグ情報をそのまま使う
文書処理方法。
【請求項１４】
電子化された文書データを処理する文書処理方法をコンピュータ装置に実行させる文書処理プログラムにおいて、
文字種判断手段によって、入力されたテキストデータのエンコード形式を判断する文字種判断のステップと、
上記文字種判断のステップにおける判断結果に基づき、文字コード変換手段によって、入力された上記テキストデータの文字コード体系を所定の文字コード体系に変換する文字コード変換のステップと、
上記文字種判断手段と上記文字コード変換手段とを備えるテキスト形式判断手段により、入力された上記テキストデータのテキスト形式を判断し、上記文字コード変換のステップにより所定の文字コード体系に変換されたテキストデータを出力するテキスト形式判断のステップと、
ブロック分割手段によって、上記テキスト形式判断のステップにより出力された上記テキストデータを、該テキストデータの構成に応じて所定にブロックに分割し、分割されたブロックであることを示す所定のタグ情報を付与して、ブロック構造データとして出力するブロック分割のステップと、
文書構造化手段によって、上記ブロック分割のステップにより出力された上記ブロック構造データの文書構造を上記テキストデータの構成に基づき解析して文単位に分割し、分割された上記文に上記テキストデータの構成に応じてタグ情報を付加して上記文を構造化し、文構造データとして出力する文書構造化のステップと、
文切り出し手段によって、上記文書構造化のステップにより出力された上記文構造データの上記タグ情報に基づき上記文の切り出しを制御する文切り出しのステップと
を有し、
上記ブロック分割のステップにおいては、上記テキスト形式判断のステップにより上記テキストデータがテキスト形式の文書であると判断された場合には、所定の固まりを上記ブロックと判断し、上記テキスト形式判断のステップにより上記テキストデータがタグ付きテキスト形式の文書であると判断された場合には、上記テキストデータに付与されたタグ情報のうち、上記文切り出し手段による文切り出しに利用されない不要なタグ情報の削除を行い、
上記文書構造化のステップは、上記テキストデータが上記タグ付きテキスト形式の文書であって、上記タグ情報が予め付与されている場合には、上記予め付与されているタグ情報をそのまま使う
文書処理方法をコンピュータ装置に実行させる文書処理プログラム。
【請求項１５】
電子化された文書データを処理する文書処理方法をコンピュータ装置に実行させる文書処理プログラムが記録された記録媒体において、
文字種判断手段によって、入力されたテキストデータのエンコード形式を判断する文字種判断のステップと、
上記文字種判断のステップにおける判断結果に基づき、文字コード変換手段によって、入力された上記テキストデータの文字コード体系を所定の文字コード体系に変換する文字コード変換のステップと、
上記文字種判断手段と上記文字コード変換手段とを備えるテキスト形式判断手段により、入力された上記テキストデータのテキスト形式を判断し、上記文字コード変換のステップにより所定の文字コード体系に変換されたテキストデータを出力するテキスト形式判断のステップと、
ブロック分割手段によって、上記テキスト形式判断のステップにより出力された上記テキストデータを、該テキストデータの構成に応じて所定にブロックに分割し、分割されたブロックであることを示す所定のタグ情報を付与して、ブロック構造データとして出力するブロック分割のステップと、
文書構造化手段によって、上記ブロック分割のステップにより出力された上記ブロック構造データの文書構造を上記テキストデータの構成に基づき解析して文単位に分割し、分割された上記文に上記テキストデータの構成に応じてタグ情報を付加して上記文を構造化し、文構造データとして出力する文書構造化のステップと、
文切り出し手段によって、上記文書構造化のステップにより出力された上記文構造データの上記タグ情報に基づき上記文の切り出しを制御する文切り出しのステップと
を有し、
上記ブロック分割のステップにおいては、上記テキスト形式判断のステップにより上記テキストデータがテキスト形式の文書であると判断された場合には、所定の固まりを上記ブロックと判断し、上記テキスト形式判断のステップにより上記テキストデータがタグ付きテキスト形式の文書であると判断された場合には、上記テキストデータに付与されたタグ情報のうち、上記文切り出し手段による文切り出しに利用されない不要なタグ情報の削除を行い、
上記文書構造化のステップは、上記テキストデータが上記タグ付きテキスト形式の文書であって、上記タグ情報が予め付与されている場合には、上記予め付与されているタグ情報をそのまま使う
文書処理方法をコンピュータ装置に実行させる文書処理プログラムが記録された記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、電子化されたテキスト情報を、読み上げるのに適当なように切り出すようにした文書処理装置、文書処理方法および文書処理プログラム、ならびに、記録媒体に関する。
【０００２】
【従来の技術】
近年では、インターネットの普及などにより、ネットワークを介して大量の電子化されたテキストデータが扱われる。特にインターネット上では、ＷＷＷ(World Wide Web)上のＷｅｂサイトや電子メールなどにより、電子化されたテキストデータが大量にやりとりされる。電子メールは、テキスト情報が中心である。一方、Ｗｅｂサイトでは、主にＨＴＭＬ(Hyper Text Markup Language)を用いてテキストデータが記述される。
【０００３】
なお、ＨＴＭＬでは、テキストデータによる文書中に、同じくテキストデータにより表現されるタグと称される符号を埋め込み、このタグにより、文書構造を定義することができる。ＨＴＭＬによって記述された文書を、対応するビューアソフトウェアに読み込ませることで、文書の表示などに、タグによって定義された文書構造に応じたレイアウトで文書の表示がなされる。以下、ＨＴＭＬ形式で記述された文書をＨＴＭＬ文書と略称する。
【０００４】
【発明が解決しようとする課題】
このように、ネットワーク上でやりとりされるテキストデータでも、電子メールとＨＴＭＬ文書とではデータの形式が異なるため、それぞれに対応したビューアを用意する必要があった。
【０００５】
また、上述のようにしてネットワークを介して入手したテキストデータから、その文書の構造に基づいて文を所定に切り出すことが必要とされる場合がある。例えば、文書を合成音声などを用いてみ上げる場合、入手されたテキストデータから読み上げるべき部分を自動的に切り出す必要がある。文書をディスクプレイなどに表示させる場合でも、必要な部分の選択的な切り出しが自動的に行われるようにすると、より使い易いものとなる。
【０００６】
従来では、上述のＨＴＭＬ文書から文を切り出すには、単純に、タグ情報を取り除くだけの処理が行われているに過ぎなかったという問題点があった。
【０００７】
一方、従来からの、テキストデータを表示するようにされたビューワでは、電子メールなどのテキスト形式で表現される文書において、「＊」や「−」などの記号を１行中で連続的に繰り返し用いたり、「｜」などの記号を用いることで、罫線などが表現されていた。このような記号を駆使することで、テキスト形式の文書中に表を作成することができる。このような文書に対して文の切り出しを行うと、従来では、単に罫線として用いられている記号が文字列として切り出されるだけで、表としての判断ができなかったという問題点があった。
【０００８】
また、テキストデータにおいて、「＞」などの引用記号を用いて他者の文書を引用することが一般的に行われる。例えば、電子メールにおいては、返信の際に、返信元の電子メールの内容に対して各行頭に上述の引用記号を付して、その文が返信元の文書からの引用であることを示していた。
【０００９】
このような場合、従来でも、引用されている部分のブロックを判定して引用部分とそうでない部分とを、それぞれ異なる色で表示するようにされたものは存在した。しかし、この場合でも、引用部分のテキストから文を抽出すると、文が「＞」などの引用記号を含んだ形で切り出されてしまうという問題点があった。
【００１０】
さらに、近年では、電子メールの応用的な利用方法として、所謂メールマガジンに代表されるように、同じ情報を多数の送信先に同報的に送信するシステムも普及している。このような場合、送信される電子メールには、本文以外の情報である、広告やシグネチャなどのまとまった部分が多く存在する場合が一般的である。従来では、このようなテキストデータからこれら本文以外の情報を取り除いた本文情報のみを取得することが難しいという問題点があった。
【００１１】
さらにまた、上述したように、ＨＴＭＬ文書においては、タグを用いて文書構造を定義し、対応するビューアでは、タグに対応した表示を行い文書構造が表現される。これを利用して、タグを、表示を行う際の視覚的機能、すなわち、レイアウトを指示する制御符号として用いるのが一般的に行われ、ＨＴＭＬ文書であっても、タグからでは、そのタグに属するテキスト部分が表なのか、見出しなどかなど、文書内での位置付けを把握することができなかった。
【００１２】
そのため、従来のＨＴＭＬ文書を読み上げる読み上げ装置などでは、ＨＴＭＬ文書中の読み上げたい部分とそうでない部分とを、タグからだけでは判断することができず、また、オペレータも、どの部分を読み上げの対象にするかといった指定を行うことができないという問題点があった。
【００１３】
したがって、この発明の目的は、電子メールによるテキストデータやＨＴＭＬ形式によるテキストデータから、読み上げに適した部分を適切に切り出すことができるような文書処理装置、文書処理方法および文書処理プログラム、ならびに、記録媒体を提供することにある。
【００１４】
また、この発明の他の目的は、電子メールおよびＨＴＭＬ形式による文書処理を、統一的に行うことができるようにした文書処理装置、文書処理方法および文書処理プログラム、ならびに、記録媒体を提供することにある。
【００１５】
【課題を解決するための手段】
この発明は、電子化された文書データを処理する文書処理装置において、入力されたテキストデータのエンコード形式を判断する文字種判断手段と、文字種判断手段の判断結果に基づき、入力されたテキストデータの文字コード体系を所定の文字コード体系に変換する文字コード変換手段とを備え、入力されたテキストデータのテキスト形式を判断し、文字コード変換手段により所定の文字コード体系に変換されたテキストデータを出力するテキスト形式判断手段と、テキスト形式判断手段から出力されたテキストデータを、テキストデータの構成に応じて所定のブロックに分割し、分割されたブロックであることを示す所定のタグ情報を付与して、ブロック構造データとして出力するブロック分割手段と、ブロック分割手段から出力されたブロック構造データの文書構造をテキストデータの構成に基づき解析して文単位に分割し、分割された文に上記テキストデータの構成に応じてタグ情報を付加して文を構造化し、文構造データとして出力する文書構造化手段と、文書構造化手段から出力された文構造データのタグ情報に基づき文の切り出しを制御する文切り出し手段とを有し、ブロック分割手段は、テキスト形式判断手段によりテキストデータがテキスト形式の文書であると判断された場合には、所定の固まりをブロックと判断し、テキスト形式判断手段によりテキストデータがタグ付きテキスト形式の文書であると判断された場合には、テキストデータに付与されたタグ情報のうち、文切り出し手段による文切り出しに利用されない不要なタグ情報の削除を行い、文書構造化手段は、テキストデータがタグ付きテキスト形式の文書であって、文の構造を指定するタグ情報が予め付与されている場合には、予め付与されているタグ情報をそのまま使う文書処理装置である。
【００１６】
電子化された文書データを処理する文書処理方法において、文字種判断手段によって、入力されたテキストデータのエンコード形式を判断する文字種判断のステップと、文字種判断のステップにおける判断結果に基づき、文字コード変換手段によって、入力されたテキストデータの文字コード体系を所定の文字コード体系に変換する文字コード変換のステップと、文字種判断手段と文字コード変換手段とを備えるテキスト形式判断手段により、入力されたテキストデータのテキスト形式を判断し、文字コード変換のステップにより所定の文字コード体系に変換されたテキストデータを出力するテキスト形式判断のステップと、ブロック分割手段によって、テキスト形式判断のステップにより出力されたテキストデータを、テキストデータの構成に応じて所定にブロックに分割し、分割されたブロックであることを示す所定のタグ情報を付与して、ブロック構造データとして出力するブロック分割のステップと、文書構造化手段によって、ブロック分割のステップにより出力されたブロック構造データの文書構造をテキストデータの構成に基づき解析して文単位に分割し、分割された文にテキストデータの構成に応じてタグ情報を付加して文を構造化し、文構造データとして出力する文書構造化のステップと、文切り出し手段によって、文書構造化のステップにより出力された文構造データのタグ情報に基づき文の切り出しを制御する文切り出しのステップとを有し、ブロック分割のステップにおいては、テキスト形式判断のステップによりテキストデータがテキスト形式の文書であると判断された場合には、所定の固まりをブロックと判断し、テキスト形式判断のステップによりテキストデータがタグ付きテキスト形式の文書であると判断された場合には、テキストデータに付与されたタグ情報のうち、文切り出し手段による文切り出しに利用されない不要なタグ情報の削除を行い、文書構造化のステップは、テキストデータがタグ付きテキスト形式の文書であって、タグ情報が予め付与されている場合には、予め付与されているタグ情報をそのまま使う文書処理方法である。
【００１７】
電子化された文書データを処理する文書処理方法をコンピュータ装置に実行させる文書処理プログラムにおいて、文字種判断手段によって、入力されたテキストデータのエンコード形式を判断する文字種判断のステップと、文字種判断のステップにおける判断結果に基づき、文字コード変換手段によって、入力されたテキストデータの文字コード体系を所定の文字コード体系に変換する文字コード変換のステップと、文字種判断手段と文字コード変換手段とを備えるテキスト形式判断手段により、入力されたテキストデータのテキスト形式を判断し、文字コード変換のステップにより所定の文字コード体系に変換されたテキストデータを出力するテキスト形式判断のステップと、ブロック分割手段によって、テキスト形式判断のステップにより出力されたテキストデータを、テキストデータの構成に応じて所定にブロックに分割し、分割されたブロックであることを示す所定のタグ情報を付与して、ブロック構造データとして出力するブロック分割のステップと、文書構造化手段によって、ブロック分割のステップにより出力されたブロック構造データの文書構造をテキストデータの構成に基づき解析して文単位に分割し、分割された文にテキストデータの構成に応じてタグ情報を付加して文を構造化し、文構造データとして出力する文書構造化のステップと、文切り出し手段によって、文書構造化のステップにより出力された文構造データのタグ情報に基づき文の切り出しを制御する文切り出しのステップとを有し、ブロック分割のステップにおいては、テキスト形式判断のステップによりテキストデータがテキスト形式の文書であると判断された場合には、所定の固まりをブロックと判断し、テキスト形式判断のステップによりテキストデータがタグ付きテキスト形式の文書であると判断された場合には、テキストデータに付与されたタグ情報のうち、文切り出し手段による文切り出しに利用されない不要なタグ情報の削除を行い、文書構造化のステップは、テキストデータがタグ付きテキスト形式の文書であって、タグ情報が予め付与されている場合には、予め付与されているタグ情報をそのまま使う文書処理方法をコンピュータ装置に実行させる文書処理プログラムである。
【００１８】
電子化された文書データを処理する文書処理方法をコンピュータ装置に実行させる文書処理プログラムが記録された記録媒体において、文字種判断手段によって、入力されたテキストデータのエンコード形式を判断する文字種判断のステップと、文字種判断のステップにおける判断結果に基づき、文字コード変換手段によって、入力されたテキストデータの文字コード体系を所定の文字コード体系に変換する文字コード変換のステップと、文字種判断手段と文字コード変換手段とを備えるテキスト形式判断手段により、入力されたテキストデータのテキスト形式を判断し、文字コード変換のステップにより所定の文字コード体系に変換されたテキストデータを出力するテキスト形式判断のステップと、ブロック分割手段によって、テキスト形式判断のステップにより出力されたテキストデータを、テキストデータの構成に応じて所定にブロックに分割し、分割されたブロックであることを示す所定のタグ情報を付与して、ブロック構造データとして出力するブロック分割のステップと、文書構造化手段によって、ブロック分割のステップにより出力されたブロック構造データの文書構造をテキストデータの構成に基づき解析して文単位に分割し、分割された文にテキストデータの構成に応じてタグ情報を付加して文を構造化し、文構造データとして出力する文書構造化のステップと、文切り出し手段によって、文書構造化のステップにより出力された文構造データのタグ情報に基づき文の切り出しを制御する文切り出しのステップとを有し、ブロック分割のステップにおいては、テキスト形式判断のステップによりテキストデータがテキスト形式の文書であると判断された場合には、所定の固まりをブロックと判断し、テキスト形式判断のステップによりテキストデータがタグ付きテキスト形式の文書であると判断された場合には、テキストデータに付与されたタグ情報のうち、文切り出し手段による文切り出しに利用されない不要なタグ情報の削除を行い、文書構造化のステップは、テキストデータがタグ付きテキスト形式の文書であって、タグ情報が予め付与されている場合には、予め付与されているタグ情報をそのまま使う文書処理方法をコンピュータ装置に実行させる文書処理プログラムが記録された記録媒体である。
【００１９】
上述したように、この発明は、入力されたテキストデータを、テキストデータの構成に応じて所定にブロックに分割し、分割されたブロックの文書構造をテキストデータの構成に基づき解析して文単位に分割し、分割された文にテキストデータの構成に応じてタグ情報を付加して文を構造化して構造化された文に付与されたタグ情報に基づき文の切り出しを制御するようにしているため、入力されたテキストデータからの文の切り出しを容易に行うことができる。
【００２０】
【発明の実施の形態】
以下、この発明の実施の一形態を、図面を参照しながら説明する。図１は、この発明による文書処理の概略的な流れを示すフローチャートである。入力された電子メールやＨＴＭＬ形式の文字情報は、先ず、ステップＳ１０でデータのタイプなどが調べられ、テキスト形式が判断され、この文書処理装置で処理可能な形式に変換される。次に、ステップＳ２０で、文書が所定にブロックに分割され、次のステップＳ３０で引用部分や見出し部分、表、段落などが抽出され、文書の構造化がなされる。そして、ステップＳ４０で、構造化された文書から文が所定に切り出される。
【００２１】
切り出された文を、例えば合成音声による文読み上げ装置に入力することで、音声情報として出力することができる。また、切り出された文の構造に対応したアクションを起こすことも可能である。勿論、切り出された文を単に表示装置に表示することもできる。なお、文切り出しの際に、予め作成しておいたテンプレートを用いることで、効率よく切り出しを行うことができる。
【００２２】
図２は、この発明の実施の一形態による文書処理装置３００の機能を実現するための一例の機能ブロック図を示す。制御部１は、この文書処理装置の全体を制御する部分であり、装置的にはＣＰＵ(Central Processing Unit)であり、ソフトウェア的にはソフトウェア全体の管理を行う部分である。
【００２３】
制御部１に接続された入力装置２から入力された入力テキストデータは、文書データ４に格納される。文書データ４は、例えばハードディスクドライブ（ＨＤＤ）などの記憶媒体の所定領域である。制御部１に接続された表示装置３は、入力装置２により入力されたテキストデータや、この文書処理装置３００で最終的に切り出された文などが表示される。
【００２４】
なお、入力装置２は、キーボードであってもよいし、音声によって入力されたテキスト情報をテキストデータに変換して出力する音声入力装置であってもよい。これに限らず、インターネットなどの外部のネットワークとの通信インターフェイスを入力装置として用い、外部のネットワークを介してテキストデータを得るようにしてもよい。さらに、対応する他の機器と接続するための所定のコネクタを入力装置として設け、外部の機器からテキストデータを得るようにしてもよい。勿論、フレキシブルディスク（ＦＤ）や光磁気ディスク（ＭＯ：Magneto Optical Disk)、ＣＤ−ＲＯＭ(Compact Disc-Read Only Memory)などの換装可能な記憶媒体からテキストデータを得るようにしてもよい。
【００２５】
テキスト判定部５は、上述した図１のフローチャートのステップＳ１０に対応する処理を行う部分である。テキスト判定部５は、処理系文字コード指定部６、文字コード変換部７および文字種判断部８からなり、入力テキストデータに対する、テキストのデータ形式の判定や変換などが行われる。文字種判断部８では、入力テキストデータのエンコード方法が判断される。処理系文字コード指定部６では、この文書処理装置３００内で扱う文字コード（ＥＵＣ、ＳＪＩＳなど）が指定される。
【００２６】
テキスト形式判定部５で上述のように処理されたテキストデータは、文字変換バッファ９としてＲＡＭ１１１などに溜め込まれる。文字変換バッファ９として溜め込まれたテキストデータは、制御部１によりブロック分割部１０に渡される。
【００２７】
ブロック分割部１０は、文字変換バッファ９から渡されたテキストデータに対し、上述の図１のフローチャートのステップＳ２０に対応する処理を行う。ブロック分割部１０は、仕切線判定部１１、仕切線文字登録部１２、罫線文字判定部１３、連続文字罫線文字登録部１４、連続文字回数指定部１５、罫線文字登録部１７、文字位置記憶部１６、利用タグ判定部１８および利用タグ登録部１９からなる。
【００２８】
仕切線判定部１１では、仕切線文字登録部１２により登録された内容に基づき、テキストデータに含まれる仕切線が抽出され、所定のタグが付与される。罫線文字判定部１３では、連続文字罫線文字登録部１４および罫線文字登録部１７による登録内容、ならびに、連続文字回数指定部１５の指定内容に基づき、テキストデータに含まれる罫線が抽出され、所定のタグが付与される。文字位置記憶部１６では、元のテキストデータにおける各行の位置情報を示すタグが行毎に付与される。利用タグ判定部１８では、利用タグ登録部１９により登録された内容に基づき、テキストデータに含まれる、利用しないタグが抽出され、削除される。
【００２９】
このような処理を経てブロック分割されブロック構造データとされたテキストデータは、例えばＨＤＤなどの記憶媒体の所定領域であるブロック構造データ２０に格納される。
【００３０】
文書構造化部２１は、上述の図１のフローチャートのステップＳ３０に対応する処理を行う。文書構造化部１２は、下線判定部２２、下線文字登録部２３、引用判定部２４、引用文字登録部２５、見出し判定部２６、見出し文字登録部２７、表判定部２８、正規表現判定部２９、正規表現登録部３０、空白行判定部３１、括弧判定部３２、段落判定部３３および英文判定部３４からなる。
【００３１】
下線判定部２２では、下線文字登録部２３により登録された内容に基づき、テキストデータに含まれる下線が抽出され、所定のタグが付与される。引用判定部２４では、引用文字登録部により登録された内容に基づき、テキストデータに含まれる引用部分が抽出され、所定のタグが付与される。見出し判定部２６では、見出し文字登録部２７により登録された内容に基づき、テキストデータに含まれる見出し部分が抽出され、所定のタグが付与される。表判定部２８は、テキストデータに含まれる表部分が抽出されると共に表構造が解析され、所定のタグが付与される。正規表現判定部２９では、正規表現登録部３０により登録された内容に基づき、テキストデータに含まれる正規表現を用いて抽出可能な部分が検出され、所定のタグが付与される。空白判定部では、テキストデータに含まれる空白部が抽出され、所定のタグが付与される。括弧判定部３２では、テキストデータに含まれる括弧が判定され、所定のタグが付与されると共に、後述する段落判定部３３で判定された段落の、括弧位置に基づく補正が行われる。段落判定部３３は、文章情報中の段落分け可能な箇所が検出され、所定のタグが付与される。英文判定部３４では、文書中に含まれる英文で構成された文が抽出され、所定のタグが付与されると共に、英文のハイフネーション処理が行われる。
【００３２】
このような処理を経て構造毎に所定のタグが付与され、構造化され文構造化データとされたテキストデータは、例えばＨＤＤなどの記憶媒体の所定領域である文構造データ３５に格納される。
【００３３】
文切り出し部３６は、上述の図１のフローチャートのステップＳ４０に対応する処理を行う。文切り出し部３６は、木構造部３７、木構造データ３８、タグ判別部３９、タグアクションデータ４０、助数詞テーブル４１および文切り出しモード４２からなる。
【００３４】
木構造化部３７では、タグが所定に付与され文構造データ３５に格納されたテキストデータが、木構造データ３８に変換される。タグ判別部３９では、文構造データ３５に格納されたテキストデータに付与されたタグに対して、タグアクションデータ４０に登録されている、タグ毎に規定されているアクションが起こされる。助数詞テーブルは、例えば表中の文に対して、その表において指定された助数詞を付して文を切り出す際に参照される。文切り出しモード４２により、文構造データ３５に格納されたテキストデータから文を切り出す際に、文に付与されたタグに基づき切り出される文が指定される。
【００３５】
また、この実施の一形態では、構造化されたテキストデータから文を切り出す際に、文切り出しテンプレート４４に保存されているテンプレートを用いることができる。テンプレートは、テンプレート登録部４３で所定に登録され、文切り出しテンプレート４４に保存される。文切り出しテンプレート４４は、例えばＨＤＤなどの記憶媒体の所定領域である。テンプレート検索モード４６で指定された内容に基づき、テンプレート検索部４５で、保存されている文切り出しテンプレート４４から適当なテンプレートが検索される。
【００３６】
図３は、上述した文書処理装置３００を適用可能なコンピュータ装置１００の一例の構成を示す。図３に示されるように、上述の文書処理装置３００は、一般的なコンピュータ装置１００上で実現可能である。バス１０１に対してＣＰＵ１１０、ＲＡＭ(Random Access Memory)１１１、ＲＯＭ(Read Only Memory)１１２およびグラフィック部１１６が接続される。ＣＰＵ１１０は、ＲＡＭ１１１をワークメモリとして用い、所定のプログラムに基づき、このコンピュータ装置１００の全体を制御する。ＲＡＭ１１１は、上述した文字変換バッファ９としても用いられる。ＲＯＭ１１２は、このコンピュータ装置１００の初期起動用のプログラムおよびデータなどが予め格納される。
【００３７】
また、ＣＰＵ１１０において、プログラムの指示に従い所定の表示制御信号が生成され、バス１０１を介してグラフィック部１１６に供給される。グラフィック部１１６では、供給された表示制御信号に応じてディスプレイ１３０で表示可能な表示信号を生成する。表示信号は、グラフィック部１１６から例えばＣＲＴ(Cathode Ray Tube)やＬＣＤ(Liquid Crystal Display)からなるディスプレイ１３０に供給され、所定の表示がなされる。
【００３８】
バス１０１には、さらに、Ｉ／Ｏ部１１３、ハードディスクドライブ（ＨＤＤ）１１４および通信Ｉ／Ｆ１１５が接続される。
【００３９】
Ｉ／Ｏ部１１３は、このコンピュータ装置１００と外部とのデータのやりとりを制御する。例えばキーボード１２０やマウス１２１がＩ／Ｏ部１１３に接続される。キーボード１２０から入力された文字情報や、マウス１２１の移動情報およびボタン情報がＩ／Ｏ部１１３に供給され、バス１０１を介して例えばＣＰＵ１１０に供給される。
【００４０】
また、Ｉ／Ｏ部１１３にディスクドライブ１２２を接続することができる。ディスクドライブ１２２は、ＣＤ−ＲＯＭ(Compact Disc-ROM)を再生可能なＣＤ−ＲＯＭドライブであって、ＣＤ−ＲＯＭに記録されたテキストデータを、このコンピュータ装置１００に入力することができる。勿論ディスクドライブ１２２は、ＣＤ−ＲＯＭドライブに限らず、例えばフレキシブルディスクドライブやＭＯ(Magneto-Optical Disk)ドライブであってもよい。
【００４１】
外部Ｉ／Ｏ１２３は、例えば所定の形式のコネクタを有し、対応する形式のコネクタを有する他の機器とケーブル接続することで、データ通信を行うことができるようにされている。外部の機器で作成されたテキストデータを、この外部Ｉ／Ｏ１２３を介してコンピュータ装置１００に入力することができる。勿論、例えばこのコンピュータ装置１００でテキストデータから最終的に切り出された文を、この外部Ｉ／Ｏ１２３を介して外部に出力するようにもできる。外部Ｉ／Ｏ１２３は、ケーブル接続に限らず、例えば赤外線信号によって通信を行うようなインターフェイスとしてもよい。
【００４２】
ＨＤＤ１１４は、例えば、上述した文書データ４、ブロック構造データ２０、文構造データ３５および文切り出しテンプレート４４の領域が設けられ、それぞれのデータが格納される。また、上述の図２における各登録部において登録されるデータや各種テーブルは、このＨＤＤ１１４に格納される。上述した文字変換バッファ９として、ＨＤＤ１１４を用いることも可能である。さらに、ＨＤＤ１１４には、このコンピュータ装置１００の基本的な制御システムであるＯＳ(Operating System)プログラムや、このコンピュータ装置１００において上述した文書処理装置３００を実現するためのプログラムおよびデータなどが格納される。
【００４３】
通信Ｉ／Ｆ１１５は、このコンピュータ装置１００と、例えばインターネットといった外部のネットワークと接続され、ＣＰＵ１１０の指示に基づき、外部のネットワークとの通信を制御する。ネットワークに接続された他の機器で作成されたテキストデータを、この通信Ｉ／Ｆ１１５を介してコンピュータ装置１００に入力することができる。勿論、このコンピュータ装置１００でテキストデータから最終的に切り出された文を、この通信Ｉ／Ｆ１１５を介して外部に送信することもできる。これに限らず、コンピュータ装置１００において、この実施の一形態による文書処理装置３００を構成するためのプログラムデータを、ネットワークから通信Ｉ／Ｆ１１５を介して入手するようにしてもよい。
【００４４】
なお、図３では省略されているが、コンピュータ装置１００において、音声合成手段と音声出力手段とをさらに設けることができる。音声合成手段では、供給されたテキストデータに基づき、音声が合成される。合成された音声は、音声出力手段により音声として出力される。これにより、このコンピュータ装置１００上で構成される文書処理装置３００で処理され切り出された文を、音声として読み上げ処理を行うことができる。
【００４５】
このように構成されれたコンピュータ装置１００において、先ず、上述の文書処理装置００を構成するためのプログラムをインストールする必要がある。例えば、プログラムが記録されたＣＤ−ＲＯＭを対応するディスクドライブ１２２に装填し、再生する。ＣＤ−ＲＯＭから読み出されたプログラムデータが例えばＨＤＤ１１４上に所定に展開および格納され、インストールが完了される。インストール完了後に、コンピュータ装置１００に対する所定の装置により当該プログラムが起動され、コンピュータ装置１００上にこの実施の一形態による文書処理装置３００が構成される。
【００４６】
なお、プログラムは、ＣＤ−ＲＯＭやＭＯのような記録媒体によって供給されるのに限らず、例えばネットワークに接続された他のコンピュータ装置などから入手するようにしてもよい。通信Ｉ／Ｆ１１５の制御によりネットワークから当該プログラムデータがダウンロードされる。ダウンロードされたプログラムデータが例えば所定にＨＤＤ１１４上に展開および格納され、インストールが完了される。勿論、これに限らず、外部Ｉ／Ｏ１２３を介して外部の他の機器からプログラムデータを入手するようにしてもよい。
【００４７】
以下、この発明の実施の一形態による文書処理装置３００の動作について、より詳細に説明する。図４は、この実施の一形態による文書処理を概略的に示すフローチャートである。図４は、上述した図１のフローチャートをより詳細に示し、対応するステップには同一の符号を付している。先ず、ステップＳ１０で、入力された文字情報のテキスト形式が判別され、次のステップＳ１１で、文字情報で用いられている文字コードがこの文書処理装置３００において内部的に処理可能な文字コードに変換される。
【００４８】
内部的に処理可能となった文字情報は、ステップＳ２０で、所定の単位のブロック毎に分割され、ステップＳ２１で、ブロック構造データとされたテキストデータが作成される。作成されたテキストデータは、ブロック構造データ２０に格納される。
【００４９】
ステップＳ３０’では、ブロック構造とされたデータに対してブロック内タグ処理し、テキストデータの構造化処理を行う。なお、ステップＳ３０’は、上述した図１では、文書構造化として記されている。ステップＳ３０’でブロック内のタグ処理がなされ、ステップＳ３１で括弧のチェック、ステップＳ３２で英文チェックおよびステップＳ３３で文の分割処理がそれぞれなされ、構造化されたテキストデータが作成される（ステップＳ３４）。作成された構造化テキストデータは、文書構造化データ３５に格納される。
【００５０】
最後に、文書構造化データ３５に格納されたテキストデータに対して、ステップＳ４０で文の切り出し処理が行われる。
【００５１】
図５は、上述したステップＳ１０の、テキスト形式判別の処理をさらに詳細に示す一例のフローチャートであって、テキスト形式判定部５において実行される。なお、図５中で、「Ａ」、「Ｂ」で示されるフローは、図４の対応する記号へ処理が移行することを示す。
【００５２】
先ず、このフローチャートの説明に先んじて、タグについて概略的に説明する。タグは、一般的には、範囲の開始および終了をそれぞれ示す一対の記号からなり、テキスト中に埋め込んで任意の範囲を指定することができる。例えば、範囲の開始を示すタグは、予め定義された文字列を記号「<」と「>」とで囲んで表現され（開始タグと称する）、終了を示すタグは、開始を示すタグ中に記される文字列と同一の文字列が記号「</」と「>」とで囲んで表現される（終了タグと称する）。一対のタグによって指定された範囲に対して、記号「<」と「>」（あるいは記号「</」と「>」）とで囲まれた文字列によって、任意の意味を持たせることが可能である。また、タグ中に、所定のパラメータの記述を含ませることができる。なお、タグに定義された意味によっては、開始のタグだけで用いられることもある。
【００５３】
図５において、最初のステップＳ１００で、入力されたテキストデータの文字種が判別される。先ず、文字種判断部８で、入力テキストデータのエンコード方法が判断される。例えば、入力された文字情報が標準的なテキストデータに対して、Ｂａｓｅ６４やＵＵＥＮＣＯＤＥといった、何らかのエンコード処理を施したものであるか否かが判断される。何らかのエンコード処理が施されていれば、当該テキストデータに対して対応するデコード処理が施される。
【００５４】
また、テキスト形式判定部５では、入力されたテキストデータのコード体系が処理系文字コード指定部６により指定された文字コード体系と一致するかどうかの判別がなされる。若し、文字種判断部８で変換されたテキストデータの文字コードが指定された文字コードと異なる場合には、テキストデータが文字コード変換部７に渡され、当該テキストデータが指定されたコード体系のデータに変換される。
【００５５】
なお、処理系文字コード指定部６により、処理系の文字コードの指定がなされていない場合は、与えられたテキストデータのコード体系に従って処理が行われる。
【００５６】
以下、ステップＳ１０１、Ｓ１０２およびＳ１０３で、タグによるテキストの分類が行われる。例えば、テキスト形式判定部５において、ステップＳ１００による、テキストデータの変換結果を受けたテキスト形式判定部５により、変換結果の最初に、上述したような、「< >」で囲まれたタグがあるかどうかが調べられ、タグがある場合には、そのタグのタイプが調べられる。その結果、そのタグがＨＴＭＬ形式を表すタグである場合は、テキストデータの形式がＨＴＭＬ形式であると判断され、ＸＭＬ(Extensible Markup Language)を表すタグの場合は、ＸＭＬ形式であると判断される。
【００５７】
また、この文書処理装置３００に固有の、ブロック構造化されたデータであることを表すタグの場合は、テキストデータの形式がブロック構造データであると判断され、文書構造化されたデータであること表すタグである場合は、文書構造データであると判断される。これらのタグについては、後述する。
【００５８】
さらに、テキスト形式判定部５において、テキストデータが上述した各タグによって表現されていないと判断された場合、各行に記号「：」が含まれるかどうかが判断される。記号「：」が含まれる場合、各行の最初の記号“：”の手前までをヘッダと解釈し、ヘッダに「DATE」と「FROM」と「TO」とがあった場合は、当該テキストデータが電子メール（Ｅ＿Ｍａｉｌ）によるものであると解釈される。
【００５９】
このような考えに基づき、ステップＳ１０１で、当該テキストデータがブロック構造データであるかどうかが判断される。若し、当該テキストデータが、この文書処理装置３００において定義されるブロック構造化処理が既に施されたブロック構造データであると判断された場合は、図５中の「Ａ」で示されるフローに従い、上述した図４のフローチャートのうちブロック分割を行うステップＳ２０の処理を行わずに、処理はステップＳ３０’に移行する。
【００６０】
一方、ステップＳ１０１で、当該テキストデータがブロック構造データではないと判断されれば、処理はステップＳ１０２に移行する。ステップＳ１０２では、当該テキストデータが文構造データであるかどうかが判断される。若し、当該テキストデータが、この文書処理装置３００において定義される文構造化処理が既に施された文構造データであると判断された場合は、図５中の「Ｂ」で示されるフローに従い、上述した図４のフローチャートのうちステップＳ３０’のブロック内タグ処理〜ステップＳ３４の文構造データの作成処理までを行わずに、処理はステップＳ４０に移行する。
【００６１】
一方、ステップＳ１０２で、当該テキストデータが文構造データではないと判断されれば、処理はステップＳ１０３に移行する。ステップＳ１０３では、当該テキストデータが、テキスト中に例えばＨＴＭＬ形式あるいはＸＭＬ形式を表すタグが埋め込まれたタグ付きテキストであるかどうかが判断される。若し、当該テキストデータがタグ付きテキストであると判断された場合は、処理はステップＳ１０５に移行し、当該テキストデータのテキスト形式が「タグ付きテキスト」に設定される。
【００６２】
上述のステップＳ１０３で、当該テキストデータがタグ付きテキストでないと判断されれば、処理はステップＳ１０４に移行する。ステップＳ１０４では、当該テキストデータが電子メールとして送信されたものであるかどうかが判断される。若し、当該テキストデータが電子メールによって送信されたものであると判断されれば、処理はステップＳ１０７に移行し、当該テキストデータのテキスト形式が「電子メール形式」に設定される。なお、電子メール形式のテキストデータは、実体的にはプレーンテキストである。
【００６３】
一方、ステップＳ１０４で、当該テキストデータが電子メールによって送信されたものでないと判断されれば、処理はステップＳ１０６に移行され、当該テキストデータのテキスト形式が「プレーンテキスト形式」に設定される。
【００６４】
こうして、図５のフローチャートに従いテキスト形式が判別された当該テキストデータは、必要に応じて、さらに文字コードの変換などの処理がなされ、文字変換バッファ９に溜め込まれる。
【００６５】
次に、上述の図４のフローチャートにおけるステップＳ２０の、ブロック分割処理について説明する。図６は、上述したステップＳ２０の、ブロック分割の処理をさらに詳細に示す一例のフローチャートであって、ブロック分割部１０において実行される。ブロック分割部１０では、文字変換バッファ９から入力されたテキストデータが電子メール形式やプレーンテキスト形式のような、タグ無しのテキスト形式の場合に、文字種から判断できる簡単なレベルでのブロック分割処理が行われる。
【００６６】
ブロック分割部１０において、上述の図５のフローチャートによる処理がなされ、文字変換バッファ９に溜め込まれたテキストデータに対して、最初のステップＳ２００で、当該テキストデータのテキスト形式がプレーンテキスト形式であるかどうかが判別される。
【００６７】
若し、プレーンテキスト形式であると判別されれば、処理はステップＳ２０１に移行する。ステップＳ２０１では、罫線文字判定部１３において、当該テキストデータに含まれる罫線文字が判別される。そして、ステップＳ２０２で判別された罫線文字が罫線を構成しているかどうかが判断され、罫線を構成していると判断されれば、ステップＳ２０３で、当該部分に罫線を示すように定義された罫線タグが付与される。
【００６８】
図７は、罫線文字によるタグの付与の一例の様子を概略的に示す。図７Ａに一例が示されるように文書中に罫線が含まれている場合、先ず、この罫線が罫線文字で構成されているかどうかが調べられる。罫線文字は、例えば日本語表記のような２バイト文字において、罫線の一部を構成可能なようにされた一連の文字である。
【００６９】
罫線文字が罫線文字登録部１７により登録される。図８は、罫線文字登録部１７に罫線文字が登録された一例の様子を示す。罫線文字登録部１７において、罫線文字が複数のパターンに分類されて登録される。この例では、Ｔｙｐｅ＝７、８および９の３タイプが登録されている。また、罫線文字登録部１７により、登録されている罫線文字に対する整合性情報も登録される。整合性情報は、例えば、タイプ毎の各々の罫線文字について、行方向や列方向に連続的に現れた場合に、組み合わせ可能な罫線文字の情報である。
【００７０】
なお、罫線文字および整合性情報は、デフォルトのデータとして幾つかを予め登録しておいてもよい。この場合でも、登録されている罫線文字および整合性情報は、罫線文字登録部１７からユーザにより追加および変更が可能なようにされている。
【００７１】
上述のように登録された罫線文字が参照され、テキストデータに含まれる罫線文字がこれらのタイプのうちどのタイプに相当するかが判別される。さらに、行単位で調べていき、同タイプの罫線文字が連続的に出現するかどうかが調べられる。罫線文字が所定数以上、連続して現れているとされれば、罫線文字同士の整合性がチェックされる。整合性に矛盾がなければ、罫線文字が連続的に出現している範囲が一つのブロックであるとして判別される。このとき、例えば罫線文字の整合性の情報に基づき、最後に来るべき罫線文字を判別することもできる。
【００７２】
なお、図７Ａにおいて、「｜重さ｜長さ｜値段｜」の行や「｜１０｜２０｜３０｜」の行は、罫線文字と非罫線文字とが混在しているが、このような場合、例えば上下の行の罫線文字との関係（位置関係や整合性）に基づき、一連の罫線文字のブロックに含まれるかどうかを判別することができる。また、罫線文字の連続回数は、連続文字回数指定部１５で指定することができる。例えば、連続文字回数指定部１５には、罫線文字毎の連続回数が予め登録されると共に、罫線文字毎の連続回数をユーザが指定することもできるようにされる。
【００７３】
上述のようにして罫線文字によるブロックが特定されたら、罫線によるブロック構造を示すタグ（以下、罫線タグと称する）が当該ブロックの上下、すなわち開始位置および終了位置に付与される。図７Ｂは、図７Ａの文書に対して罫線タグが付与された様子を示す。タグ「<TC_TSF_BLOCK>」および「</TC_TSF_BLOCK>」は、この実施の一形態によるブロック構造を示すタグである。それぞれブロック構造の開始および終了を示す。タグ「<TC_TSF_BLOCK>」および「</TC_TSF_BLOCK>」は、パラメータ「type」によりブロックの種類が示され、「type=0」でプレーンテキストによるブロックであることが表される。
【００７４】
この図７Ｂの例では、開始を示すタグ「<TC_TSF_BLOCK>」に対してタイプを表すパラメータ「type=7」が付加され、この一対のタグで囲まれた範囲がタイプ＝７の罫線文字によるブロック構造であることが示される。
【００７５】
罫線によるブロックの判別の際には、上述のように罫線文字による判別だけでなく、所定の文字により構成された罫線も判別される。図９は、文字罫線による罫線についてタグを付与する一例の様子を示す。プレーンテキストで形成される文書においては、通常使用される文字を利用して罫線を形成することが一般的に行われる。罫線として利用される文字としては、例えば、「＋」、「−」、「＊」、「＝」などがある。これらの文字が複数回繰り返されたり、組み合わされたりして、罫線が表現可能である。また、罫線における縦線に限って「｜」が用いられる場合がある。図９Ａの例では、「＋−」、「−」、「−＋」および「｜」が用いられて罫線が構成され、表が形成されている。
【００７６】
なお、以下では、文字によって構成される罫線を文字罫線と称し、文字罫線を構成可能な文字を文字罫線文字と称する。
【００７７】
文字罫線の判別は、連続文字罫線文字登録部１４により登録された文字罫線文字が参照されて行われる。図１０は、連続文字罫線文字登録部１４の一例の登録内容を示す。このように、文字罫線文字と、その文字罫線文字が最低何回、連続して現れたら罫線として判別するかを示す最低回数とが対応付けられて登録されている。例えば文字「−」は、２回以上連続して文書中に現れた場合、文字罫線が構成されていると判別される。
【００７８】
なお、この連続文字罫線文字登録部１４により、上述した文字罫線を登録してもよい。また、文字罫線文字および最低連続回数は、予め登録しておいてもよい。この場合でも、登録内容は、連続文字罫線文字登録部１４からユーザにより追加、変更、削除を行うことができる。
【００７９】
上述のようにして文字罫線文字によるブロックが特定されたら、罫線タグが当該ブロックの上下、すなわち開始位置および終了位置に付与される。図９Ｂは、図８Ａの文書に対して罫線タグが付与された様子を示す。ブロック構造を示すタグ「<TC_TSF_BLOCK>」および「</TC_TSF_BLOCK>」において、パラメータ「type=10」が付加され、この一対のタグで囲まれた範囲がタイプ＝１０の文字罫線文字によるブロック構造であることが示される。
【００８０】
図６の説明に戻り、ステップＳ２０１〜Ｓ２０３の処理が終了されると、処理はステップＳ２０４に移行する。ステップＳ２０４では、仕切り文字判定部１１において、当該テキストデータに含まれる仕切り線文字が判別される。そして、ステップＳ２０５で判別された仕切り線文字が仕切り線を構成しているかどうかが判断され、仕切り線を構成していると判断されれば、ステップＳ２０６で、当該部分に仕切り線を示すように定義された仕切り線タグが付与される。
【００８１】
図１１は、仕切り線文字による仕切り線についてタグを付与する一例の様子を示す。プレーンテキストで形成される文書においては、通常使用される文字を利用して仕切り線を形成することが一般的に行われる。仕切り線として利用される文字としては、例えば、「−」、「＊」などがある。これらの文字が複数回繰り返されたり、組み合わされたりして、仕切り線が表現可能である。
【００８２】
仕切り線の判別は、仕切り線文字登録部１２により登録された仕切り線文字が参照されて行われる。図１２は、仕切り線文字登録部１２の一例の登録内容を示す。仕切り線は、仕切り線文字が１行において連続的に繰り返されて現れ、しかもそれが１行で終了している場合に、それが仕切り線であると判別される。なお、仕切り線文字は、予め登録しておいてもよい。この場合でも、登録内容は、仕切り線文字登録部１３からユーザにより追加、変更、削除を行うことができる。
【００８３】
上述のようにして仕切り線によるブロックが特定されたら、仕切り線を示す仕切り線タグが当該仕切り線のの上下の行に付与される。図１１Ｂは、図１１Ａの文書に対して仕切り線タグが付与された様子を示す。ブロック構造を示すタグ「<TC_TSF_BLOCK>」および「</TC_TSF_BLOCK>」において、パラメータ「type=1」が付加され、この一対のタグで囲まれた範囲がタイプ＝１の仕切り線文字によるブロック構造であることが示される。
【００８４】
図６の説明に戻り、ステップＳ２０４〜Ｓ２０６の処理が終了されると、処理はステップＳ２０７に移行する。ステップＳ２０７では、図示されない空白行判定部において、当該テキストデータに含まれる空白行が判別される。そして、ステップＳ２０８で、空白行と空白行とで挟まれた部分をブロック構造と定義するブロックタグが当該部分に付与される。
【００８５】
図１３は、空白行によりブロックタグを付与する一例の様子を示す。図１３Ａのようなテキストがあった場合、行単位でテキストを調べていって、行全体が空白を示す文字で埋まっている空白行が判別される。図１３Ａの例では、先頭行、中間行および末尾行が空白行であると判別される。そして、空白行に挟まれた部分がブロックであるとされ、図１３Ｂに示されるように、当該ブロックの開始と終了を示すタグ「<TC_TSF_BLOCK>」および「</TC_TSF_BLOCK>」が付与される。このとき、ブロック構造を示すタグ「<TC_TSF_BLOCK>」および「</TC_TSF_BLOCK>」において、パラメータ「type=0」が付加され、この一対のタグで囲まれた範囲がタイプ＝０の空白行で挟まれたブロック構造であることが示される。
【００８６】
ステップＳ２０７およびＳ２０８の処理が終了されると、処理はステップＳ２０９に移行する。ステップＳ２０９では、正規表現判定部２９において、当該テキストデータに含まれる正規表現により示される部分が判別される。なお、上述の図２の例では、正規表現判定部２９および正規表現登録部３０は、ブロック分割部１０と文書構造化部２１とで共有的に用いられる。ステップＳ２１０で、判別された部分が２次元の正規表現で表されたブロックに適合しているかどうかが判断され、適合していると判断されれば、ステップＳ２１１で当該部分に２次元の正規表現により表されるブロックであることを示すように定義された正規表現ブロックタグが付与される。
【００８７】
図１４は、２次元の正規表現によるタグの付与の一例の様子を概略的に示す。
図１４Ａに一例が示されるように、文書中に特定のパターンによって囲まれた部分がある場合、そのパターンが２次元の正規表現に適合しているかどうかが調べられる。これは、正規表現判定部２９により、正規表現登録部３０で登録された正規表現パターンが参照されて行われる。
【００８８】
図１５は、正規表現登録部３０により登録された一例の正規表現を示す。この情報は、通常の１次元の正規表現により、ブロックの先頭パターンと終了パターンがそれぞれ示され、それぞれのパターンの間に存在し得る行数の最大値を表すデータと、２次元の正規表現によるブロックであると判断された場合にそのブロックにどのようなタグを付与するかを示すデータとから構成される。なお、正規表現は、予め登録しておいてもよい。この場合でも、登録内容は、正規表現登録部３０からユーザにより追加、変更、削除を行うことができる。
【００８９】
図１５の例では、例えば「★（黒星印）」が２つ連なった「★★」が連続的に繰り返されて現れる行がテキストデータ中に存在し、その行から下へ５行以内に、対応する終了パターンである「★★」が連続的に繰り返されて現れる行が存在すれば、それぞれブロックの開始行および終了行とされ、ブロック構造であることを示すタグ「<TC_TSF_BLOCK>」および「</TC_TSF_BLOCK>」がそれぞれ付与される。このとき、ブロック構造を示すタグ「<TC_TSF_BLOCK>」および「</TC_TSF_BLOCK>」において、パラメータ「type=101」が付加され、この一対のタグで囲まれた範囲がタイプ＝１０１の２次元の正規表現によるブロック構造であることが示される。さらに、この例では、この２次元の正規表現によるブロック構造がヘッダを表すものであるとされ、ブロック構造を示すタグに対し、さらにパラメータ「tag=HEAD」が付加される。
【００９０】
また、例えば記号「\」、「-」および「+」、ならびに、アルファベット「A〜Z」の任意の組み合わせが連続的に繰り返されて現れる行がテキストデータ中に存在し、対応する終了パターンで終了していれば、その行がブロック構造であると判断され、ブロック構造を示すタグ「<TC_TSF_BLOCK>」および「</TC_TSF_BLOCK>」がそれぞれ付与される。このとき、ブロック構造を示すタグ「<TC_TSF_BLOCK>」および「</TC_TSF_BLOCK>」において、パラメータ「type=101」が付加され、この一対のタグで囲まれた範囲がタイプ＝１０１の２次元の正規表現によるブロック構造であることが示される。さらに、この例では、この２次元の正規表現によるブロック構造が仕切り線を表すものであるとされ、ブロック構造を示すタグに対し、さらにパラメータ「tag=HR」が付加される。このように、２次元の正規表現によるブロック構造が付与された一例の様子を図１４Ｂに示す。
【００９１】
正規表現登録部３０によって登録されるデータおよび正規表現判定部２９は、汎用的に用いることができるので、上述したように、ブロック分割部１０と後述する文書構造化部２１とで、共有的に、各種タグの付与に利用可能である。そのため、ブロック構造データ２０に対応するタグと、文構造データ３５に対応するタグとが判断され、記述されている正規表現の適応が行われる。つまり、記述されているデータは、ブロック分割部１０と文構造化部２１との何方のプロセスにおいて利用されるものかということを付与すべきタグにより、自動判別が行われる。
【００９２】
ステップＳ２０９〜Ｓ２１１の処理が終了されると、処理はステップＳ２１２に移行する。ステップＳ２１２では、処理すべき最後のテキストデータの処理が終了したかどうかが判断される。若し、未処理のテキストデータが残っていると判断されれば、処理はステップＳ２００に戻される。処理すべきテキストデータの処理が全て終了したと判断されれば、一連のブロック分割処理が終了される。
【００９３】
なお、上述したステップＳ２００で、当該テキストデータのテキスト形式がプレーンテキスト形式でないと判断されれば、処理はステップＳ２１０に移行する。この場合、当該テキストデータのテキスト形式は、タグ付きテキスト形式である。ステップＳ２１０では、利用タグ判定部１８において、そのタグ付きテキスト形式のテキストデータ（以下、タグ付きテキスト）に、この文書処理装置３００で用いられない不要タグが埋め込まれているかどうかが判定される。
【００９４】
当該テキストデータに埋め込まれているタグが検出され、ステップＳ２１１で、検出されたタグがこの文書処理装置３００で文切り出しに利用されるかどうかが判断される。若し、検出されたタグが利用されないものであると判断された場合には、処理はステップＳ２１２に移行し、当該タグが削除される。当該タグと対になるタグが存在するときには、それも削除される。不要タグが削除されるか、または、ステップＳ２１１で検出されたタグが利用されるものであると判断された場合は、処理はステップＳ２１２に移行する。
【００９５】
図１６は、タグ付きテキストから不要タグを削除する一例の様子を示す。図１６Ａに示されるようなタグ付きテキストにおいて、行毎にタグが検出される。そして、利用タグ判定部１８において、検出されたタグが利用タグ登録部１９で登録されたタグであるかどうかが判断される。図１７は、利用タグ登録部１９で利用タグが登録された一例の利用タグリストを示す。左欄に利用されるタグが一覧され、右欄に利用されない、すなわち削除されるタグが一覧されて示されている。この図１７の例では、対応する終了タグおよび介した具中に含まれるパラメータが省略されている。なお、利用タグおよび削除タグは、予め登録しておいてもよい。この場合でも、登録内容は、利用タグ登録部１９からユーザにより追加、変更、削除を行うことができる。
【００９６】
図１６Ａに示されるタグ付きテキストに対して利用タグリストが参照され、削除されるべき不要タグが検出される。図１７Ａの例では、コメントを表すタグ「<!--」と他文書の参照を表すタグ「<A>」とが削除タグとして登録されているので、これらのタグおよびそれぞれの終了タグが削除され、図１６Ｂに一例が示されるようなタグ付きテキストとされる。
【００９７】
なお、図６のフローチャートでは省略されているが、文字位置記憶部１６により、オリジナルのテキストデータにおける各行毎の文字位置を示す文字位置タグが付与される。図１８は、この各行毎の文字位置を示すタグが付与された一例の様子を示す。各行の先頭に付与されたタグにより、その行の文字位置が示される。「nn」を数値としたとき、「pos=nn」は、その行が含まれるブロック内においてその行の先頭がブロックの先頭から何バイト目のデータであるかを示す。「top=nn」は、その行が、その行の含まれるブロックの何行目であるかを示す。「left=nn」は、左から何文字目からのデータであるかを示す。「right=nn」は、その行の末尾が左から何バイト目のデータであるかを示す。また、図示されていないが、「rows=nn」は、そのブロックに何行のデータがあるかを示し、ブロック全体を示すタグ「<TC_TSF_BLOCK>」の中の「cols=nn」は、そのブロック内での１行あたりの最大文字数を示す。
【００９８】
以上のようにして、ブロック分割部１０によるテキストデータのブロック構造化が行われる。ブロック構造化されたテキストデータは、ブロック構造データ２０に格納される。このとき、テキストデータに対して、ブロック分割されたデータであることを表すこの文書処理装置３００に固有のタグ「<?TSF…?>」が付与される。ブロック構造化されたテキストデータを、例えばディスクドライブ１２２や外部Ｉ／Ｏ１２３などを介して外部の記憶装置に格納することもできる。
【００９９】
ここで、文字変換バッファ９に溜め込まれた入力テキストデータが、テキスト形式判定部５により、プレーンテキスト形式以外のタグ付きのテキストと判断された場合、当該入力テキストデータに対して上述のタグタグ「<?TSF…?>」が付与され、ブロック構造化されたテキストデータと同様に、ブロック構造データ２０に格納される。
【０１００】
なお、このとき、この際、ＨＴＭＬ形式などのタグ付き言語によるタグ「<!--…-->」といったコメント部分を取り除いた形で、ブロック構造データ２０に登録することも可能である。
【０１０１】
なお、図６のフローチャートにおける処理の順序は、上述の例に限定されない。図６のフローチャートにおいて、処理は、罫線文字の判別を行うステップＳ２０１〜Ｓ２０３、仕切り文字の判別を行うステップＳ２０４〜Ｓ２０６、空白行によるブロック化を行うステップＳ２０７〜Ｓ２０８、ならびに、正規表現による判別を行うステップＳ２０９〜Ｓ２１１の４つに分けられるが、この単位で順番の入れ替えが可能である。
【０１０２】
次に、上述した図４のステップＳ３０’の処理に従い、ブロック構造データ２０に対してブロック内タグ処理がなされ、文書が構造化される。すなわち、ブロック構造データ２０を木構造化されたタグ付きテキストに変換するために、制御部１により、ブロック構造データ２０が文書構造化部２１に渡される。
【０１０３】
図１９は、文書構造化部２１によりなされる、文書構造化の一例の処理を示すフローチャートである。この図１９のフローチャートにおける処理は、ブロック構造データ２０のブロック毎に行われる。また、各ブロック内においては、各行毎に処理が行われる。
【０１０４】
ステップＳ３００で、下線判定部２２において、ブロック構造データ２０に下線文字が含まれているかどうかが判別される。そして、ステップＳ３０１で下線文字が対応していると判断された文字列に対して、下線が付されていることを示す下線タグが付与される。なお、下線文字は、当該文字の直上に表示されるべき文字に対して下線として表示される文字であり、下線文字を用いることで、下線文字の直上に表示されるべき文字を強調することができる。
【０１０５】
図２０は、下線文字により強調された文字列に下線による強調を示す下線タグを付与する一例の様子を示す。図２０Ａに示されるように、ブロック構造データ２０に対して下線文字が挿入され、「花見」の２文字からなる文字列が強調表示されている。下線文字は、例えば「￣」や「〜」などにより、下線文字により強調したい文字列を含む行の直下の１行が用いられて挿入される。
【０１０６】
下線文字の判別は、下線判定部２２において、下線文字登録部２３により登録された下線文字が参照されて行われる。図２１は、下線文字登録部２３による一例の登録内容を示す。下線文字が所定回数以上連続的に繰り返して現れた場合に、当該下線文字により下線文字の直上に表示されるべき文字列に対する下線が表現され、その文字列が強調表示されていると判別される。なお、下線文字は、予め登録しておいてもよい。この場合でも、登録内容は、下線文字登録部２３からユーザにより追加、変更、削除を行うことができる。
【０１０７】
上述のようにして下線文字が特定されたら、当該下線文字により強調される文字列に対して、図２０Ｂに一例が示されるように、下線による強調がなされていることを示す下線タグ「<EM underline="￣">」および「</EM>」が付与される。それと共に、当該下線文字が記述されている行が削除または所定のコメントが付けられ除外可能とされる。なお、下線タグにおいて、パラメータ中の「" "」により囲まれた部分に記される下線文字で下線による強調表示が行われることが示される。
【０１０８】
ステップＳ３００〜Ｓ３０２の処理が終了されると、処理はステップＳ３０３に移行し、引用判定部２４において、ブロック構造データ２０内の行の行頭に引用文字が存在するかどうかが判別される。ステップＳ３０４で引用文字が行頭に付された行（文字列）が例えば電子メールにおける引用行であるかどうかが判断され、引用行であると判断されれば、ステップＳ３０５で、当該行の引用文字を取り除くと共に、当該行にどんな引用文字が付されていたかを示す引用タグが付与される。
【０１０９】
図２２は、引用文字により他からの引用であることが示された文字列に対して引用タグを付与する一例の様子を示す。この例では、記号「＞」が引用文字として用いられ、引用された行あるいは文字列の先頭にこの引用文字が挿入されている。
【０１１０】
引用文字の判別は、引用判定部２４において、引用文字登録部２５により登録された引用文字が参照されて行われる。図２３は、引用文字登録部２５による一例の登録内容を示す。登録された引用文字が２行以上に渡り行頭に出現した場合に、その引用文字が行頭に挿入された行が、例えば電子メールにおける引用部分であると判断される。引用部分であると判断された行は、図２２Ｂに一例が示されるように、引用文字が取り除かれると共に、引用部分であることを示す引用タグ「<BLOCKQUOTE header="＞">」（および「</BLOCKQUOTE>」が付与される。この引用タグは、引用部分であることが示されると共に、パラメータ「header」によって、どのような引用文字によって引用されていたかが示される。すなわち、引用文字として用いられた文字あるいは記号がパラメータ「header="＞"」の「" "」に囲まれた部分に記述される。
【０１１１】
また、この実施の一形態では、図２２Ｂに示されるように、引用部分が特定されたら、特定された引用部分は、引用タグで囲まれると共に、ＨＴＭＬ形式において段落を表すタグ「<P>」および「</P>」と、整形済みテキストであることを表すタグ「<PRE>」および「</PRE>」とで囲まれる。さらに、ブロック構造データ２０においてブロックを示すタグ「<TC_TSF_BLOCK>」および「</TC_TSF_BLOCK>」が削除される。
【０１１２】
なお、オリジナルのブロック構造データに付されている引用文字に対して、引用文字であることを示すタグを付与することも可能である。図２４は、引用文字に対してタグを付与する場合の例を示す。図２４Ａに示されるデータについて引用文字が検出され、図２４Ｂに一例が示されるように、引用文字そのものに対して引用文字を表すタグ「<QUOTE>」および「</QUOTE>」が付与される。
【０１１３】
このとき、オリジナルデータにおける引用文字の種類や引用文字の重複付与などに基づき、引用者の違いや引用の深さなどの引用の属性を示すパラメータを、引用文字を表すタグに付加することができる。
【０１１４】
また、上述では、引用文字を行頭に挿入されている行が２行以上で、その部分を引用部分であると判断したが、これはこの例に限定されない。例えば、指定行数以上に渡り連続的に、引用文字が行頭に挿入されている場合に、その部分を引用部分であると判断するようにもできる。指定行数は、ユーザにより指定されるものであってもいいし、予め決められた行数であってもよい。
【０１１５】
さらに、入力されたブロック構造データ２０内において、どこか一つのブロックで引用の利用が認められた場合には、そのブロックを含み、他の全てのブロックで、登録された引用文字で始まる行が連続していない場合でも、全て引用部分であるとして判断することも可能である。これによれば、ブロック構造データ２０内の任意の位置で２行以上の引用部分が判別されれば、１行のみの引用も引用部分と判断することができる。さらに、引用文字から始まっている行の連続状態に制限をおかずに適合する場合は、すべて引用文字と判断することも可能である。
【０１１６】
ステップＳ３０３〜ステップＳ３０５の処理が終了されたら、処理はステップＳ３０６に移行する。ステップＳ３０６では、見出し判定部２６により、ブロック構造データ２０に見出しが含まれているかどうかが判別される。そして、ステップＳ３０７で見出し行が判断され、ステップＳ３０８で、見出し行であることを示すタグが付与される。
【０１１７】
図２５は、見出し行を検出しタグを付与する一例の様子を示す。図２５Ａに示されるように、ブロック構造データ２０中で、記号「◎（二重丸）」を見出し文字として、その行が見出し行であることが表現されている。見出し文字の判別は、見出し判定部２６において、見出し文字登録部２７により登録された見出し文字が参照されて行われる。図２６は、見出し文字登録部２７による一例の登録内容を示す。ブロック内の行の先頭に、登録された見出し文字と一致する文字が出現した場合に、当該行が見出し行であると判別される。なお、見出し文字は、予め登録しておいてもよい。この場合でも、登録内容は、見出し文字登録部２７からユーザにより追加、変更、削除を行うことができる。
【０１１８】
上述のようにして見出し行が特定されたら、図２５Ｂに一例が示されるように、見出し行を表すタグ「<HEAD>」および「</HEAD>」が見出し行に対して付与される。なお、見出しを判断する場合に、見出し文字に加えて、行末が「、」に代表される次の行への継続文字で終了していない場合を条件とすることができる。
【０１１９】
また、この実施の一形態では、図２５Ｂに示されるように、見出し行が特定されたら、見出し行が含まれるブロックにおいて、特定された見出し行が見出しを表すタグで囲まれると共に、見出し以外の行がＨＴＭＬ形式において段落を表すタグ「<P>」および「</P>」と、整形済みテキストであることを表すタグ「<PRE>」および「</PRE>」とで囲まれる。さらに、当該ブロックにおいてブロックを示すタグ「<TC_TSF_BLOCK>」および「</TC_TSF_BLOCK>」が削除される。
【０１２０】
見出し判定部２６では、ブロック内のある行が、上述した文字位置タグにより保持されている文字位置や１行の文字数に基づき、センタリングされた位置にある文字列であるかどうかを判断し、判断結果に基づき見出しを判別することができる。図２７は、センタリングによる見出し判別の一例の様子を示す。図２７Ａに示されるように、「問題」と記された文字列がセンタリングされた位置にある文字列であると判断されれば、当該文字列が含まれる行が見出し行であると判断され、図２７Ｂに示されるように、見出し行を表すタグが当該行に付与される。
【０１２１】
また、見出し判定部２６では、ブロック内のある行が、上述した文字位置タグにより保持されている文字位置に基づき、同一ブロック内の他の行よりも開始位置が手前であるかどうかを判断し、判断結果に基づき見出しを判別することができる。図２８は、文字位置による見出し判別の一例の様子を示す。図２８Ａに示されるように、「問題」と記された文字列の開始位置がブロック内の他の行の開始位置よりも手前であると判断されれば、当該文字列が含まれる行が見出し行であると判断され、図２８Ｂに示されるように、見出し行を表すタグが当該行に付与される。
【０１２２】
さらに、見出し判定部２６では、ブロック内のある行が隅付き括弧のような、特定の括弧で括られた文字列からなる行であるかどうかを判断し、判断結果に基づき見出しを判別することができる。例えば、特定の括弧の一対によって文字列が括られて１行が完結しているかどうかが判断される。図２９は、括弧による見出し判別の一例の様子を示す。図２９Ａに示されるように、「問題」と記された文字列が隅付き括弧で括られていると判断されれば、当該文字列が含まれる行が見出し行であると判断され、図２９Ｂに示されるように、見出し行を表すタグが当該行に付与される。
【０１２３】
なお、見出し行であることを示す括弧は、ユーザにより所定に登録が可能である。また、予め登録しておいてもよい。この場合には、ユーザにより登録された括弧の追加、変更、削除を行うことができる。
【０１２４】
さらにまた、見出し判定部２６では、上述した見出しの判定基準により見出し行と判断される行が同一条件で連続される場合には、連続された各行を箇条書きと判断して、タグの付与を行うことができる。図３０は、この箇条書き判別の一例の様子を示す。図３０Ａに示されるようなブロックに対して、「１．」、「２．」および「３．」を見出し文字として登録することで、これらの行が見出し行として判別される。見出し行と判断される行が同一条件で連続的に出現しているため、箇条書きであると判別され、図３０Ｂに一例が示されるように、ＨＴＭＬ形式において箇条書きを表すタグ「<LI>」および「</LI>」が各行に付与される。
【０１２５】
ステップＳ３０６〜Ｓ３０８の処理が終了されると、処理はステップＳ３０９に移行し、表判定部２８において、ブロック構造データ２０に表が含まれるかどうかが判別される。ブロック構造データ２０がタグ付きテキストである場合には、例えばＨＴＭＬ形式であれば、ＨＴＭＬ形式において表を表すタグ「<TABLE>」および「</TABLE>」などがデータ２０に付与されていれば当該データ２０に表が含まれていると判別され、そのタグがそのまま流用される。
【０１２６】
一方、ブロック構造データ２０がプレーンテキスト形式である場合には、ステップＳ３１０で、上述した図６のステップＳ２０１〜Ｓ２０３において罫線文字判定部１３により判別された罫線文字に従い、表を構成する各セルが判別され、セルの切り出しが行われる。図３１は、ブロック構造データ２０に含まれる、罫線文字で構成された一例の表を示す。ブロック構造データ２０では、この図３１のような表に対して、上述の図７に示したような、罫線文字を示すタグ「<TC_TSF_BLOCK type=10>」および「</TC_TSF_BLOCK>」が付与されている。このタグに基づき罫線文字を抽出し、用いられている罫線文字の種類や罫線文字の表示位置の関係を解析することで、表を構成するセルを切り出すことが可能である。
【０１２７】
例えば、罫線文字を示すタグで囲まれた全行をスキャンして、罫線文字だけで構成された行と、罫線文字（この場合は、縦の仕切り線）と通常の文字とが繰り返されて出現する行とを抽出すると共に、スキャンした部分が罫線文字で囲まれているかどうかを調べる。罫線文字で囲まれているとされれば、その部分は、表であると考えることができる。さらに、各行において縦の仕切り線が出現した位置を記憶しておくと共に、最大のセル数を求める。縦の仕切り線の位置と、行方向の最大セル数から、行方向におけるセルの結合を知ることができる。このようにして、表の解析を行うことができる。
【０１２８】
切り出されたセルには、ステップＳ３１１で、例えばＨＴＭＬ形式に定められる表を示すタグが所定に付与される。図３２は、図３１の表をセルに切り出し表を示すタグを付与した例を示す。切り出されたセルは、タグ「<TD>」および「</TD>」で囲まれて表現される。また、同一の行に並ぶセルは、タグ「<TR>」および「</TR>」によって囲まれて表現される。
【０１２９】
さらに、この図３２の例では、各セル内の表示がブロックとして表される。また、複数の行や列に跨るセルに関しては、それぞれ何行、何列に跨るセルであるかを表すパラメータ「rowspan="nn"」、「colspan="nn"」がタグ「<TD>」に付与される。図３２の例では、図３１において複数行を用いて構成されるセル（「ソフト１」、「ソフト２」、「ソフト３」など）は、複数行（この場合３行）に跨るセルとされ、タグ「<TD rowspan="3">」が付与されている。
【０１３０】
ステップＳ３１０およびＳ３１１の処理が終了されると、処理はステップＳ３１２に移行し、正規表現判定部２９で、ブロック構造データ２０に含まれる正規表現の判定が行われる。この正規表現判定部２９は、図６にて上述したブロック分割部１０の処理におけるステップＳ２０９〜Ｓ２１１で用いられたものが共通して用いられる。ステップＳ３１３で、正規表現登録部２９において登録されているデータのうち、文書構造化部２１において処理されるべきタグに関する条件のみが検索される。検索の結果、条件に適合したものに関しては、ステップＳ３１４で、その範囲に対して指定されたタグが付与される。
【０１３１】
図３３は、ブロック構造データ２０に対する正規表現判定の一例の様子を示す。図３３Ａは、上述した図１４Ｂと同一の内容であり、図６のステップＳ２０９〜Ｓ２１１の処理によりブロック構造化されているデータである。このブロック構造データ２０に対して、ステップＳ３１２〜Ｓ３１４の処理を行うことで、正規表現によるブロックを表すタグ「<TC_TSF_BLOCK type=101 tag=HEAD>」および「</TC_TSF_BLOCK>」、ならびに、タグ「<TC_TSF_BLOCK type=101 tag=HR>」および「</TC_TSF_BLOCK>」が付与された部分に対して、図３３Ｂに一例が示されるように、正規表現による仕切り線を表すタグ「<HR>」および「</HR>」、ならびに、「<HEAD>」および「</HEAD>」が付与される。
【０１３２】
ステップＳ３１２〜Ｓ３１４におけるタグ付与は、例えばこのように、ブロック分割部１０における図１４に示す正規表現によるブロック判定の結果を受けてなされる。
【０１３３】
ステップＳ３１２〜Ｓ３１４の処理が終了されると、処理はステップＳ３１５に移行し、空白行判定部３１において、それぞれのブロックにおける空白行によるブロックの分割の判定が行われる。図３４は、空白行によるブロック分割の判定の一例の様子を示す。
【０１３４】
ここで、上述した図５のフローチャートに基づき、当該ブロック構造データ２０がプレーンテキスト形式の文書として判別されている場合には、ブロック分割部１０において、上述の図６のステップＳ２０７およびＳ２０８により既にブロック分割が行われている。
【０１３５】
しかしながら、テキスト形式がタグ付きテキストであると判別されている場合には、例えば図３４Ａに一例が示されているように、ブロック分割されたブロック内において、空白行によるブロック分割をさらに行うことができる可能性がある。そこで、ステップＳ３１６によりブロック内の空白行を判別し、空白行が存在すると判別されれば、ステップＳ３１７で、当該ブロックが判別された空白行を挟んで、それぞれのブロックに分割され、分割されたそれぞれのブロックにブロックであることを示すタグが付与される。この例では、タグ「<P>」および「</P>」、ならびに、タグ「<PRE>」および「</PRE>」が当該ブロックに対してそれぞれ付与される。
【０１３６】
ステップＳ３１５〜Ｓ３１７の処理が終了されると、処理はステップＳ３１８に移行し、括弧判定部３２により、ブロック内およびブロック間での括弧の整合性が判定される。図３５は、括弧判定部３２による括弧の整合性の判定の一例の様子を示す。例えば図３５Ａのように、一対の括弧が２つのブロックに跨って存在する場合、ブロック内において括弧の整合性が取れていないことになる。そこで、先ずステップＳ３１８でブロック内にある括弧の対応が調べられ、ステップＳ３１９で、括弧の整合性が取れているかどうかが判別される。ブロック内の括弧の整合性が取れていないと判別された場合には、処理はステップＳ３２０に移行し、当該ブロックと隣接するブロックとの結合を行った場合の括弧の整合性が調べられる。この結果、整合性が取れると判断された場合には、当該ブロックおよび隣接するブロックとが結合され、図３５Ｂに一例が示されるように、２つのブロックが１つのブロックに再編成される。
【０１３７】
ステップＳ３１８〜Ｓ３２０の処理が終了されたら、処理はステップＳ３２１に移行し、段落判定部３３により、ブロック内の段落の判定がなされる。段落判定部３３では、ブロック内の文字列の開始位置が着目される。そして、連続する行の開始位置が２種類ある場合に、その開始位置が後ろにずれている方が段落の頭の行であると判断され、ブロック分割が行われる。
【０１３８】
なお、その行が段落である判定するずれ量のしきい値を決めておき、予めＨＤＤ１１４などに記憶させておく。行の開始位置のずれ量が予め記憶されているしきい値を超えている場合に、その行を段落と判断しないようにする。
【０１３９】
図３６は、段落の判別によるブロック分割の一例の様子を示す。ステップＳ３２１で、図３６Ａに一例が示されるブロックに対して、行の開始位置が後ろにずれている行が判別される。次のステップＳ３２２で、例えば当該行の開始位置のずれ量が上述のしきい値以下であると判断され当該行が段落の区切りを形成していると判断されれば、ステップＳ３２３で、その部分に段落を示すタグが付与される。図３６Ｂに段落を示すタグが付与された様子を示す。この例では、段落を示すタグとして、タグ「<P>」および「</P>」、ならびに、タグ「<PRE>」および「</PRE>」が用いられ、段落により分割されたブロックのそれぞれに対して付与される。
【０１４０】
なお、段落の判別に、上述した文字位置記憶部１６により記憶された各行の位置情報を用いることができる。
【０１４１】
ステップＳ３２１〜ステップＳ３２３の処理が終了されると、処理はステップＳ３２４に移行し、英文判定部３４において英文の判別が行われる。ステップＳ３２５で、ブロック内のある行が全て英数記号文字列で記述されているかどうかが判別される。全て英数文字および記号で記述されていれば、当該行が英文行であると判断される。
【０１４２】
そして、英文行であると判断される行がブロック内において連続的に出現する場合、ステップＳ３２６で、以下に示すような行末処理が英文処理として行われる。すなわち、行末処理として、行末がハイフォン「-」で終了している場合は、このハイフン「-」とそれに続く改行記号が削除され、行末の文字と次の英文行の先頭文字とが接続され、一つの単語とされる。また、行末がカンマ「,」やピリオド「.」といった区切り記号で終了しておらず、且つ、アルファベットで終了していている場合は、行末と次の英文行の先頭の単語との間に、スペース「」が補われると共に、当該行の改行記号が削除される。行の結合は、次の行との結合をあらわすタグ「<pos …eol=1 or 0>」により表現される。このタグにおいて、「eol=1」であれば、当該行が次の行と結合されることを示す。
【０１４３】
上述のようにしてステップＳ３００〜Ｓ３２６までの処理が終了したら、処理はステップＳ３２７に移行し、例えば入力された文書データ４の全てについて、一連の処理が終了したかどうかが判断される。未だ処理されていないブロックが存在すると判断されれば、処理はステップＳ３００に移行し、未処理のブロックに対して一連の処理が行われる。
【０１４４】
なお、図１９のフローチャートにおける処理の順序は、上述の例に限定されない。図１９のフローチャートにおいて、処理は、ステップＳ３００〜Ｓ３０２、ステップＳ３０３〜Ｓ３０５、ステップＳ３０６〜Ｓ３０８、ステップＳ３１０およびＳ３１１、ステップＳ３１２〜Ｓ３１４、ステップＳ３１５〜Ｓ３１７、ステップＳ３１８〜Ｓ３２０、ステップＳ３２１〜Ｓ３２３、ならびに、ステップＳ３２４〜Ｓ３２６の各部分に分けられるが、この単位で順番の入れ替えが可能である。
【０１４５】
入力された文書データ４の全てについて一連の処理が終了されたと判断されれば、次に、英文判定部３４により英文と判断されず、ブロック内にタグが付与されない形で改行記号が残っている行に関して、全て繋ぎ合わされる。このとき、行頭、行末にある空白は、文字列としては削除され、その行の開始文字位置、行の文字数により空白の存在が示される。また、行の結合は、次の行との結合をあらわすタグ「<pos …eol=1 or 0>」により表現される。このタグにおいて、「eol=1」であれば、当該行が次の行と結合されることを示す。
【０１４６】
さらに、文書構造化部２１では、それぞれのブロックについて、「。（句点）」および「．（ピリオド）」をキーとした文の分割が行われる。図３７は、この、句点およびピリオドをキーとして行う文の分割の一例の様子を示す。図３７Ａに示されるブロックに対して句点およびピリオドをキーとして文の分割処理がなされ、図３７Ｂに示されるように、それぞれの文に所定のタグが付与される。
【０１４７】
図３７Ａに示されるブロックに対して、句点またはピリオド毎に文が分割される。分割された文のそれぞれは、タグ「<PRE>」および「</PRE>」が付与され、１文であることが示される。さらに、１文として示された文中で改行されている場合には、上述したタグ「<pos …eol=1>」により、改行の位置、すなわち行末の位置と、その行が次の行に結合されることとが示される。
【０１４８】
ここまでの処理で、文を最小とした単位でのタグ付与による文書の構造化が完了され文構造データが生成される。以上の処理により、文に分割された各ブロックに対して、この文書処理装置３００のシステムにおいて固有の、文構造データを示す文書形式宣言タグ「<?SSF …?>」が付与される。
【０１４９】
文書形式宣言タグ「<?SSF …?>」を付与された文構造データは、文構造データ３５に格納される。これに限らず、文構造データは、例えばディスクドライブ１２２や外部Ｉ／Ｏ１２３を介し、この文書処理装置３００外の記憶媒体に格納してもよい。さらに、文構造データは、通信Ｉ／Ｆ１１５を介して外部のネットワークに送信し、ネットワークに接続された別の記憶装置に格納することもできる。
【０１５０】
以上で、入力されたテキストは、その種類が判別され、文字コードを統一にして文単位の処理が出来るようにタグ付けされた構造化テキストに変換された。つまり、以上では、従来技術における、文単位には処理出来ない、プレーンテキスト形式からＨＴＭＬ形式のようなタグ付きテキストに変換するフィルタに相当する部分について述べた。以下では、変換された構造化テキストを処理する方法、つまり従来のブラウザなどに相当するような処理を行う部分について述べる。
【０１５１】
この発明では、文単位に処理可能な文構造データを、例えばデータに付与されたタグに基づき木構造化し、木構造化された木構造データを用いて文の切り出しを行う。このときに、タグの種類に応じて文を切り出すかどうかを設定したテンプレートを用いることができる。また、切り出された文に対してアプリケーションがどのような処理を行うかを、タグの種類毎に設定したアクションタグを用いることができる。
【０１５２】
図３８は、この実施の一形態による、木構造化された文構造データからの文切り出し処理の一例のフローチャートである。先ず、ステップＳ４００で、文構造データから木構造データが作成される。図３９は、木構造データの一例を概略的に示す。各データ２００、２０１、２０２および２０３は、上下（前後）の階層を表す位置情報である「上の階層へのポインタ」および「下の階層へのポインタ」と、同一階層内での前後のタグ付き情報に対する位置情報である「同一階層内の上へのポインタ」および「同一階層内への下へのポインタ」と、実質的なデータの本体である「現ノードの文字列」および「現ノードの文字列」に付与されたタグを示す「タグ情報」とからなる。
【０１５３】
図３９において、図の左側がより上位（前方）の階層となっている。文の前後関係でいうとデータ２００、２０１、２０２の順であり、さらに、この順で階層が構成されている。同一階層内でも上下（前後）関係が定義され、例えば同一階層内でより先に現れる文が上（前）とされる。データ２０１と２０３とは同一階層のデータであり、データ２０１がより先に現れる。このような上下（前後）に基づき、木構造が形成される。なお、木構造において、各データ２００、２０１、２０２および２０３は、それぞれノードと称される。
【０１５４】
図３８の説明に戻り、ステップＳ４００では、文構造データに付与されたタグおよび文構造データの順番に基づき、文構造データが木構造化される。文切り出し部３６では、この木構造データ３８を用いて文の切り出しを行うことができると共に、木構造データ３８により、文の切り出しを行う際の次の文への移動に、階層単位での移動と、同一階層内での文単位での移動を行うことができる。
【０１５５】
木構造データ３８が作成されると、処理は次のステップＳ４０１に移行する。上述したように、この実施の一形態では、木構造化されたデータから文を切り出す際に、テンプレートを用いることができる。テンプレートは、テンプレート登録部３６により例えばユーザの指示に基づき登録され、文切り出しテンプレート４４に保存される。ステップＳ４０１では、既に登録されているテンプレートのうち、ステップＳ４００で作成された木構造データ３８に適用可能なテンプレートの検索が行われる。テンプレートの検索は、対象としているデータに付されたテキストＩＤに基づきなされる。なお、テンプレートおよびテンプレートの検索については、後述する。
【０１５６】
次のステップＳ４０２で、検索されたテンプレートを適用するかどうかが判断される。若し、例えばユーザの指示に基づきテンプレートを適用すると判断されれば、処理はステップＳ４１１に移行する。ステップＳ４１１以降の、テンプレート適応、作成の処理については、後述する。一方、テンプレートを適用しないと判断されれば、処理はステップＳ４０３に移行する。
【０１５７】
ステップＳ４０３では、切り出しモード４２が参照される。切り出しモード４２により、データ中に付与されたタグに対して、そのタグに対応する文を切り出すかどうかが指定される。図４０は、文切り出しモード４２の一例を示す。このように、各タグに対応する各項目について、文を切り出すかどうかをそれぞれ指定することができる。この例では、「ＯＮ」の項目に対応するタグが付与された文の切り出しを行い、「ＯＦＦ」の項目に対応するタグが付与された文の切り出しを行わない。
【０１５８】
文切り出しモード４２は、ユーザの指示により指定され、例えばＨＤＤ１１４に格納される。また、これに限らず、各項目の「ＯＮ／ＯＦＦ」が設定された文切り出しモード４２を、デフォルトの文切り出しモード４２として予めＨＤＤ１１４などに格納しておいてもよい。
【０１５９】
ステップＳ４０４では、逐行的にタグの探索がなされ、切り出しモード４２に基づき、探索されたタグが切り出し対象となるタグであるかどうかが判断される。若し、切り出し対象とされているタグでないと判断されれば、処理はステップＳ４０９に移行される。
【０１６０】
一方、ステップＳ４０４で探索されたタグが切り出し対象とされているタグであると判断されれば、処理はステップＳ４０５に移行される。ステップＳ４０５では、探索されたタグが表を示すタグであるかどうかが判断される。若し、探索されたタグが表を示すタグではないと判断されれば、処理はステップＳ４０７に移行する。一方、探索されたタグが表を示すタグであると判断されれば、処理はステップＳ４０６に移行し、表の処理が行われる。
【０１６１】
上述したように、表の部分には、文構造化部２１により、各セル毎にタグが付与されている。そのため、文切り出し部３６において、木構造データ３８から行毎あるいは列毎に、セル単位での文の切り出しを行うことができる。上述した図３１および図３２を参照して、タグ「<TD>」および「</TD>」によりセル単位での文の切り出しを行うことができ、タグ「<TR>」および「</TR>」に基づき、行毎あるいは列毎の切り出しが可能である。このようにして、ステップＳ４０６における表の処理が行われ、表からの文の切り出しが行われる。
【０１６２】
また、この実施の一形態では、表から文の切り出しを行う際に、助数詞テーブル４１を参照し、切り出された文に指定された助数詞を付与することが可能である。図４１は、助数詞テーブル４１の一例を示す。数助詞テーブル４１には、このように、複数の数助詞がそれぞれ様々な形態で登録されている。助数詞テーブル４１は、予め所定の数助詞が登録され、例えばＨＤＤ１１４に格納される。また、数助詞テーブル４１に対して、ユーザが数助詞を登録することも可能である。
【０１６３】
表から文の切り出しを行うときには、上述したように、データが木構造化され、各セルに対してタグが付与されている。そのため、例えば表の一番始めの行あるいは一番始めの列において、助数詞テーブル４１に登録されている助数詞が存在し、且つ、それ以降の行または列において、数字情報のみが記述されているようなセルが連続する場合は、助数詞テーブル４１を参照して、数字部分に対応する行または列の助数詞を付与した形で、セルから文を切り出すようにできる。セル中の文（数字）に助数詞を付与するかどうかは、上述した文切り出しモード４２により指定することが可能である。
【０１６４】
なお、上述では助数詞に関して説明したが、これはこの例に限られない。例えば、表の一番始めの行または列に記述されている文字列を付与した形で、同様に各セルの切り出しを行うことも可能である。この場合も同様に、文切り出しモード４２において、一行目あるいは一列目のセルの内容を付加するかどうかを設定できる。
【０１６５】
図３８には明確に示されていないが、表の処理以外にも、他のタグについても文切り出しモード４２に基づく切り出し処理が行われる。
【０１６６】
例えば、テキストを逐次切り出す際に、文切り出しモード４２において引用を切り出すという設定がある場合は、文構造データにおいて引用を示すタグが付与されている部分に関しても、文の切り出しが行われる。一方、文切り出しモード４２において、引用を切り出さないと設定されている場合には、引用部分を飛ばして文の切り出しを行ことが可能である。ここで、文切り出しモード４２において引用を切り出すと設定されている場合に、引用を示すタグに収められた引用記号により、どの種類の引用記号により引用されている部分であるかがタグ判別部３９により判別される。
【０１６７】
処理はステップＳ４０７に移行し、データ中に、ユーザによって定義されたユーザタグが含まれているかどうかが判断される。すなわち、この実施の一形態では、ユーザがタグを定義することができると共に、ユーザにより、既存のタグおよびユーザ定義のタグに所定のアクションを定義することができる。ユーザにより定義されたタグおよびユーザにより所定のアクションを定義されたタグをユーザタグと称する。また、ユーザによりタグに定義されたアクションは、タグアクションデータ４０として登録される。タグアクションデータ４０は、例えばＨＤＤ１１４に格納される。
【０１６８】
図４２は、タグアクションデータ４０の一例を示す。このように、例えばＨＴＭＬ形式において既存のタグ（この例では「<H>」、「<TABLE>」）に対して、所定のアクションを定義することができる。また、ユーザにより独自のタグを定義し（この例では「<USER_01>」、「<USER_02>」、「<USER_03>」、・・・）、定義されたそれぞれのタグに所定のアクションを定義することができる。
【０１６９】
このようにアクションが定義されたタグを、一般の表示装置やテキスト読み上げ装置と組み合わせれば、指定されたタグに対して、そのタグに対応する文を表示装置においては色を変える、ハイライトにする、下線を引くなどのアトリビュートの変更によって表現できる。また、テキスト読み上げ装置においては、読み上げる声の種類を変える、速度を変えるなどのアトリビュートの変更が可能ある。
【０１７０】
つまり、例として、対象になるタグを見出しを表すタグに絞り込めば、文書中の見出しの部分に対してだけ色をつけたり、見出しだけの読み上げを行ったり、見出しの部分の声を変えたりすることができるシステムを構築することが可能となる。
【０１７１】
特に、見出しを表すタグ、引用を表すタグ、段落を表すタグは、文の構造上大きな意味を持っているため、表示装置やテキスト読み上げ装置において、これらのタグに対応した文について所定のアクションを設定することは、非常に有用である。
【０１７２】
図３８の説明に戻り、ステップＳ４０７では、タグ判別部３９によってタグアクションデータ４０が参照され、タグアクションデータ４０に登録されたタグが付与された文が判別される。若し、タグアクションデータ４０に登録されたタグが付与された文が無いと判断されれば、処理はステップＳ４０９に移行する。
【０１７３】
一方、ステップＳ４０７でタグアクションデータ４０に登録されたタグが付与された文があると判断されれば、処理はステップＳ４０８に移行し、タグアクションデータ４０に登録されたタグが付与されていると判断されたした文に対して、タグアクションデータ４０に規定されたアクションが起こされる。
【０１７４】
例えば、タグに表示のハイライトが定義されている場合、当該タグが付与された文と、当該タグおよび当該タグに対して定義されたアクションデータとが、タグ判別部３９から文切り出し部３６を介して制御部１に渡される。そして、これらのデータに基づき制御部１により所定の表示制御信号が生成され、この表示制御信号に基づく表示信号が表示装置３に供給される。これにより、当該タグにより指定された文が表示装置３においてハイライト表示される。
【０１７５】
次のステップＳ４０９では、次の文も切り出すかどうかが判断され、切り出さないとされた場合には、一連の処理が終了される。次の文も切り出す場合には、処理はステップＳ４１０に移行し、最後の文まで処理が終了したかどうかが判断される。最後の文まで終了したならば、一連の処理が終了される。一方、未だ処理すべき文が残っていれば、処理はステップＳ４０２に戻される。
【０１７６】
なお、ステップＳ４１０で処理すべき文が残っている場合に、図３８において点線で示されるように、ステップＳ４０４に処理を戻すようにしても良い。
【０１７７】
以上のようにして、文切り出し部３６において、文構造データに基づき木構造データ３８が作成され、その木構造が探索されると共に、文の切り出しが行われる。
【０１７８】
次に、上述した文切り出しテンプレート４４に保存されるテンプレートについて説明する。テンプレートは、木構造データ３８と対をなすような形で構成され、各ノードに対してそのノードの切り出しを行うかどうかを指定するフラグ情報が記述される。この実施の一形態では、文切り出し部３６による文切り出しの際に、この文切り出しテンプレートに保存されているテンプレートを用い、テンプレートにおいて規定された文の切り出し方法に従って文を切り出すことができる。
【０１７９】
図４３は、文切り出しテンプレート４４に保存されるテンプレートの一例の構造を示す。テンプレートは、文に付与されたタグとタグの階層構造とが、タグをノードとして記述され、ノードのそれぞれに対して切り出しを行うかどうかを示す符号が付されて成る。このようなテンプレートは、例えば、木構造データ３８に基づき、木構造データ３８中のタグ情報と、木構造データ３８中の各ノード間の位置関係を表す位置情報に基づき木構造を構成することで、作成することができる。
【０１８０】
テンプレートにおいて、木構造の枝分かれの部分で「○（丸印）」で示されるのが切り出しの対象となるノードであり、「×（バツ印）」で示されるのが切り出しの対象外であるノードである。また、木構造においてより上位のノードが優先的なノードである。このようなテンプレートは、テンプレート登録部４３からユーザにより登録することができる。また、予め作成し、例えばＨＤＤ１１４などに格納させておいてもよい。
【０１８１】
ここで、テンプレート登録部４３によるテンプレートの文切り出しテンプレート４４への登録は、当該テンプレートが適用されるデータをユニークに決定できるＩＤと関連付けて行うことができる。図４３では、このＩＤがテキストＩＤとして示されている。例えば当該テンプレートが適用されるテキストデータのファイル名やＵＲＬ(Uniform Resource Locator)を、テキストＩＤとして用いることができる。こうすることで、入力テキストに適用可能なテンプレートを容易に検索可能となる。
【０１８２】
また、例えば新聞のコラムなどのように、文書の形態が各文書毎に類似している場合には、同一のテンプレートを各文書に対して転用して用いることができる。このような場合、各文書の文書ファイル名あるいはＵＲＬが類似している可能性があり、最初に作成されたテンプレートの元となった文書ファイルのファイル名あるいはＵＲＬをテキストＩＤとして用いると、後述するあいまい検索を行うことで、各文書に適用可能なテンプレートを容易に検索することができる。
【０１８３】
これに限らず、例えばユーザにより指定されたテンプレートを入力テキストに対して適用することも可能である。
【０１８４】
テンプレート登録部４３において、テンプレートにおける各ノードへのフラグ情報の指示は、表示装置３による表示に基づき、入力装置２から行うことができる。このときのフラグ情報の指示方法としては、例えば次の２つの方法が考えられる。
【０１８５】
第１の方法は、図４４に一例が示されるように、木構造データ３８に基づき、表示装置３に対してテキストのイメージでの表示に対する指示による設定方法である。図４４では、対象となっているテキストのイメージが木構造データ３８に基づき２次元的に展開されている。図４４に示されるように、入力装置２であるマウス１２１の動きに応じて表示装置３の画面上を移動するカーソルといった所定の指示方法を用いて、切り出しを行う部分を指定することができる。この例では、カーソル表示により指示されている文が、マウス１２１のボタン操作により非切り出し状態に変更されている。
【０１８６】
第２の方法は、図４５に一例が示されるように、木構造データ３８に基づく木構造をそのまま表示し、各ノードに対して指示を行うことで設定する方法である。この場合でも、上述のカーソル表示を用い、ノード上の、そのノードの文を切り出すかどうかを指示する記号「○」および「×」をカーソルで指定し、マウス１２１のボタン操作を行うことで、切り出しおよび非切り出し状態を切り換えることができる。図４５の例では、タグ「<SPAN>」が付与された文「メールの引用・・・」が切り出し状態から非切り出し状態に切り換えられている。
【０１８７】
ここで、説明は、上述した図３８のフローチャートに戻る。図３８のフローチャートにおけるステップＳ４０２において、テンプレートを適用させると判断された場合には、処理はステップＳ４１１に移行する。ステップＳ４１１では、現在処理の対象となっているデータに適用可能なテンプレートが存在するかどうかが判断される。例えば、テンプレート検索部４５によりＨＤＤ１１４の所定の場所が調べられ、当該テンプレートが存在するかどうかが調べられる。
【０１８８】
このとき、テンプレートが上述のようにファイル名やＵＲＬなどに関連付けられていれば、テンプレートは、制御部１の指示によりテンプレート検索部４５で検証される。テンプレート検索部４５では、テンプレート検索部モード４６において文切り出しテンプレート４４に保存されたテンプレートのファイル名やＵＲＬのあいまい検索を行うように設定されている場合、検索文字に指定された文字列と、検索対象のファイル名やＵＲＬとが完全に一致していなくても、両者が一致したものと見なし、テンプレートの適応を行うことができる。
【０１８９】
図４６は、テンプレート検索モード４６の一例を示す。テンプレート検索モード４６において、文切り出しテンプレート４４から適応させるテンプレートを検索する際のテンプレート参照モードが指定される。この図４６の例では、テンプレートを検索する際に、テキストＩＤについてあいまい検索を行うかどうか、また、あいまい検索を行う場合には、どの程度の精度で行うかを指定することができる。同様に、検索された文切り出しテンプレート４４をデータに適応させる際に、あいまい適応を行うかどうか、また、あいまい適応を行う場合には、どの程度の精度で行うかを指定することができる。
【０１９０】
なお、テンプレート検索モード４６では、テキストＩＤやテンプレートの検索あるいは適応条件の設定の他に、図４６に示されるように、テンプレートの編集モード、テンプレートの自動保存を行うかどうか、テンプレート検索の際の不一致通知などの設定がなされる。
【０１９１】
図４７は、テキストＩＤのあいまい検索の一例を概略的に示す。入力装置１から入力されたテキストデータのテキストＩＤ４００に対して、文切り出しテンプレート４４に保存されているテキストＩＤ４０１に対応したテンプレートを検索することを考える。テンプレート検索モード４６において、例えば前方一致などの文字列検索による文字列参照が行われる。図４７の例では、保存されているテキストＩＤ４０１の長さ４９バイトの文字列のうち、４０バイト分が入力されたテキストデータのテキストＩＤ４００と一致している。すなわち、テキストＩＤ４０１の文字列の略８２％がテキストＩＤ４００と一致しており、あいまい精度が８２％であるとされる。
【０１９２】
図４６に示されるテンプレート検索モード４６では、テキストＩＤのあいまい検索の際のあいまい精度が７０％と設定されているので、テキストＩＤ４００とテキストＩＤ４０１とが一致すると判断される。この場合、ファイル名やＵＲＬが１００％一致しない場合でもテンプレートの適応を行う。
【０１９３】
なお、テンプレート検索モード４６において、テキストＩＤのあいまい検索が「しない」に設定されている場合は、入力テキストのテキストＩＤ４００と、保存されている文切り出しテンプレート４４のテキストＩＤ４０１とが１００％一致した場合にのみ、テキストＩＤ４０１に対応するテンプレートの適応を行う。
【０１９４】
また、テンプレート検索部４５では、テンプレート検索モード４６において、テンプレートのあいまい適応をするかどうかの設定で、「する」に設定されている場合は、木構造データ３８の階層の高いところから、逐次適応が行われる。このとき、過不足のあるノードは、吸収されて適応が行われる。ここで用いるあいまい適応は、どのような方法を用いてもかまわない。例えば、用いられているタグの種類とノード位置や、同一種類のタグの個数などをあいまい精度の判定基準として用いることが考えられる。
【０１９５】
一方、テンプレート検索モード４６において、テンプレートあいまい検索が「しない」に設定されている場合は、用いられるテンプレートとテンプレートを適用しようとするデータの木構造とが一致した場合にのみ、テンプレートの適応を行う。
【０１９６】
以上のテンプレートの説明に基づき、上述した図３８におけるテンプレートに関する部分の処理について説明する。ステップＳ４０２でテンプレートの適応を行うとされたら、処理はステップＳ４１１に移行し、現在処理対象としているデータに適応可能なテンプレートが文切り出しテンプレート４４に保存されているかどうかが検索される。検索は、上述したように、あいまい検索を用いることができる。
【０１９７】
検索結果に基づき、若し、適応可能なテンプレートが文切り出しテンプレート４４に保存されていると判断されれば、処理はステップＳ４１２に移行し、検索されたテンプレートが処理対象のデータに適応される。このとき、上述したあいまい適応を用いることができる。テンプレートの適応がなされると、処理はステップＳ４１３に移行する。
【０１９８】
一方、ステップＳ４１１で、検索結果に基づき、適応可能なテンプレートが文切り出しテンプレート４４に保存されていないと判断されれば、処理はステップＳ４１４に移行する。ステップＳ４１４では、テンプレートが新たに作成される。例えば、現在処理対象とされているデータの木構造データ３８に基づき、上述した図４４あるいは図４５を用いて説明したような方法によって、新たなテンプレートが作成される。作成されたテンプレートは、文切り出しテンプレート４４に保存することができる。テンプレートが作成されると、処理はステップＳ４１３に移行する。
【０１９９】
ステップＳ４１３では、処理対象のデータにテンプレートに基づく切り出し対象のノードがあるかどうかが判断される。切り出し対象ノードがあると判断されれば、処理はステップＳ４０３に移行され、文の切り出し処理が行われる。一方、切り出し対象ノードが無いと判断されれば、処理はステップＳ４０９に移行し、次の文の切り出しを行うかどうかが判断される。
【０２００】
このようにして、テンプレートに従ってテキストの切り出す部分と、そうでない部分との指示を行うことができる。また、テンプレートを検索する際にあいまい検索を用いて行っているので、テンプレートの保存および再利用の際に、インターネットなどの配信により刻々内容の変わるものに対しても追従してテンプレートの適応を行うことができる。
【０２０１】
なお、上述では、この発明による文書処理装置３００が例えばパーソナルコンピュータ上で稼働するソフトウェアで実現されるように説明したが、これはこの例に限定されない。例えば、文書処理装置３００は、他の装置に組み込んで用いることもできる。一例として、ロボット型の装置に文書処理装置３００と、テキスト情報に基づく合成音声を行い音声出力を得る手段とを組み込むことで、電子メールやインターネットにおけるホームページ（Ｗｅｂサイト）上のテキストを、恰もロボット型の装置が読み上げているような効果を得るようにできる。
【０２０２】
また、このような場合、この発明による文書処理装置３００をコンピュータ制御が可能な所定の機構部と組み合わせることで、タグアクションデータに応じた動作を設定することも可能である。
【０２０３】
さらに、インターネットなどのネットワーク上のサービスとして、この発明による文書処理装置３００を用いることができる。すなわち、インターネット上に公開されている、一般のホームページのテキストを文に切り出して、アクセスしているパーソナルコンピュータなどに送る。また、これを応用して、一般のホームページ（Ｗｅｂサイト）から切り出したテキストに基づき音声合成を行い、得られた音声出力を携帯電話装置などに送信するサービスも考えられる。
【０２０４】
さらにまた、ネットワークにおいて、図２に示した構成を複数のサーバに分割して置き、これら複数のサーバに分割された構成で統合的に処理するようにしてもよい。このとき、入力装置２を例えば携帯電話装置などにすることができる。
【０２０５】
【発明の効果】
以上説明したように、この発明では、入力されたテキストデータを、データ中に用いられている文字のパターンなどに基づきブロック分割し、ブロック分割された部分に、ブロック分割されたことを示すタグを付与する。さらに、ブロック分割されたデータを、ブロック分割されたことを示すタグに基づき構造化した構造化データに変換する。そして、構造化データを木構造化して木構造化されたデータに対して文の切り出しを行うようにしている。
【０２０６】
そのため、この発明を用いることにより、電子メールにおける引用記号を分離したテキストの抽出や、例えば文字罫線によって表現された表といった、テキスト中の各項目の抽出などの、テキストデータのコントロールを行うことができるという効果がある。
【０２０７】
また、この発明の実施の一形態によれば、従来別々の処理系によって処理されていた、プレーンテキスト、タグ付きテキストおよび電子メール形式のテキストを、一つの処理系で統一的に表現および処理することができるという効果がある。またそれにより、文書処理のシステムをシンプルに構成することができる効果がある。
【０２０８】
さらに、この発明の実施の一形態によれば、従来、タグだけでは判断できないためにマニュアル操作で行っていた、タグ付きテキストからの切り出したい部分およびそうでない部分の指定を、容易に行うことができるという効果がある。
【０２０９】
さらにまた、この発明による構成を、テキスト音声合成による読み上げシステムの前処理として用いることで、電子メールやインターネット上のホームページ（Ｗｅｂサイト）などの読み上げが容易に行われるシステムを実現することができるという効果がある。
【０２１０】
このように、この発明を用いることで、テキスト処理全般にわたって様々な効果を期待することができる。
【図面の簡単な説明】
【図１】この発明による文書処理の概略的な流れを示すフローチャートである。
【図２】この発明の実施の一形態による文書処理装置の機能を実現するための一例の機能ブロック図である。
【図３】この発明の実施の一形態による文書処理装置を適用可能なコンピュータ装置の一例の構成を示すブロック図である。
【図４】実施の一形態による文書処理を概略的に示すフローチャートである。
【図５】テキスト形式判別の処理をさらに詳細に示す一例のフローチャートである。
【図６】ブロック分割の処理をさらに詳細に示す一例のフローチャートである。
【図７】罫線文字によるタグの付与の一例の様子を概略的に示す略線図である。
【図８】罫線文字登録部に罫線文字が登録された一例の様子を示す略線図である。
【図９】文字罫線による罫線についてタグを付与する一例の様子を示す略線図である。
【図１０】連続文字罫線文字登録部の一例の登録内容を示す略線図である。
【図１１】仕切り線文字による仕切り線についてタグを付与する一例の様子を示す略線図である。
【図１２】仕切り線文字登録部の一例の登録内容を示す略線図である。
【図１３】空白行によりブロックタグを付与する一例の様子を示す略線図である。
【図１４】２次元の正規表現によるタグの付与の一例の様子を概略的に示す略線図である。
【図１５】正規表現登録部により登録された一例の正規表現を示す略線図である。
【図１６】タグ付きテキストから不要タグを削除する一例の様子を示す略線図である。
【図１７】利用タグ登録部で利用タグが登録された一例の利用タグリストを示す略線図である。
【図１８】各行毎の文字位置を示すタグが付与された一例の様子を示す略線図である。
【図１９】文書構造化の一例の処理を示すフローチャートである。
【図２０】下線文字により強調された文字列に下線による強調を示す下線タグを付与する一例の様子を示す略線図である。
【図２１】下線文字登録部による一例の登録内容を示す略線図である。
【図２２】引用文字により他からの引用であることが示された文字列に対して引用タグを付与する一例の様子を示す略線図である。
【図２３】引用文字登録部による一例の登録内容を示す略線図である。
【図２４】引用文字に対してタグを付与する場合の例を示す略線図である。
【図２５】見出し行を検出しタグを付与する一例の様子を示す略線図である。
【図２６】見出し文字登録部による一例の登録内容を示す略線図である。
【図２７】センタリングによる見出し判別の一例の様子を示す略線図である。
【図２８】文字位置による見出し判別の一例の様子を示す略線図である。
【図２９】括弧による見出し判別の一例の様子を示す略線図である。
【図３０】箇条書き判別の一例の様子を示す略線図である。
【図３１】罫線文字で構成された一例の表を示す略線図である。
【図３２】表をセルに切り出し表を示すタグを付与した例を示す略線図である。
【図３３】ブロック構造データに対する正規表現判定の一例の様子を示す略線図である。
【図３４】空白行によるブロック分割の判定の一例の様子を示す略線図である。
【図３５】括弧判定部による括弧の整合性の判定の一例の様子を示す略線図である。
【図３６】段落の判別によるブロック分割の一例の様子を示す略線図である。
【図３７】句点およびピリオドをキーとして行う文の分割の一例の様子を示す略線図である。
【図３８】実施の一形態による木構造化された文構造データからの文切り出し処理の一例のフローチャートである。
【図３９】木構造データの一例を概略的に示す略線図である。
【図４０】文切り出しモードの一例を示す略線図である。
【図４１】助数詞テーブルの一例を示す略線図である。
【図４２】タグアクションデータの一例を示す略線図である。
【図４３】文切り出しテンプレートに保存されるテンプレートの一例の構造を示す略線図である。
【図４４】テンプレートにおける各ノードへのフラグ情報の指示方法を示す略線図である。
【図４５】テンプレートにおける各ノードへのフラグ情報の指示方法を示す略線図である。
【図４６】テンプレート検索モードの一例を示す略線図である。
【図４７】テキストＩＤのあいまい検索の一例を概略的に示す略線図である。
【符号の説明】
１・・・制御部、２・・・入力装置、３・・・表示装置、５・・・テキスト形式判定部、９・・・文字変換バッファ、１０・・・ブロック分割部、２０・・・ブロック構造データ、２１・・・文書構造化部、３５・・・文構造データ、３６・・・文切り出し部、３７・・・木構造化部、３８・・・木構造データ、４０・・・タグアクションデータ、４４・・・文切り出しテンプレート
【図１】
0004843867.tif 000002
【図２】
0004843867.tif 000003
【図３】
0004843867.tif 000004
【図４】
0004843867.tif 000005
【図５】
0004843867.tif 000006
【図６】
0004843867.tif 000007
【図７】
0004843867.tif 000008
【図８】
0004843867.tif 000009
【図９】
0004843867.tif 000010
【図１０】
0004843867.tif 000011
【図１１】
0004843867.tif 000012
【図１２】
0004843867.tif 000013
【図１３】
0004843867.tif 000014
【図１４】
0004843867.tif 000015
【図１５】
0004843867.tif 000016
【図１６】
0004843867.tif 000017
【図１７】
0004843867.tif 000018
【図１８】
0004843867.tif 000019
【図１９】
0004843867.tif 000020
【図２０】
0004843867.tif 000021
【図２１】
0004843867.tif 000022
【図２２】
0004843867.tif 000023
【図２３】
0004843867.tif 000024
【図２４】
0004843867.tif 000025
【図２５】
0004843867.tif 000026
【図２６】
0004843867.tif 000027
【図２７】
0004843867.tif 000028
【図２８】
0004843867.tif 000029
【図２９】
0004843867.tif 000030
【図３０】
0004843867.tif 000031
【図３１】
0004843867.tif 000032
【図３２】
0004843867.tif 000033
【図３３】
0004843867.tif 000034
【図３４】
0004843867.tif 000035
【図３５】
0004843867.tif 000036
【図３６】
0004843867.tif 000037
【図３７】
0004843867.tif 000038
【図３８】
0004843867.tif 000039
【図３９】
0004843867.tif 000040
【図４０】
0004843867.tif 000041
【図４１】
0004843867.tif 000042
【図４２】
0004843867.tif 000043
【図４３】
0004843867.tif 000044
【図４４】
0004843867.tif 000045
【図４５】
0004843867.tif 000046
【図４６】
0004843867.tif 000047
【図４７】
0004843867.tif 000048