(57)【特許請求の範囲】
【請求項１】
文書構造を解析する文書構造解析装置における文書構造解析方法において、
文書入力手段が、解析対象の文書を入力する文書入力ステップと、
引用符検出手段が、前記文書の行頭の引用符の有無を調べ、該文書の行頭に引用符がある場合には削除する引用符検出ステップと、
特定ラベル検出手段が、前記文書中の日時、場所を含む特定の文字列を特定文字列ラベルとして検出し、該特定文字列ラベルの行頭の位置及び空白を含んだ長さ、該特定文字列ラベル中の空白の有無、該特定文字列の文字種を含む正規表現をラベル特徴格納手段に格納する特定ラベル検出ステップと、
箇条書きラベル検出手段が、前記文書中に行頭の位置が前記ラベル特徴格納手段に格納された行頭の位置と一致する行がある場合には、前記文書中の行頭の位置が一致した行を箇条書きラベルの候補とし、該箇条書きラベルの候補中に空白を含む場合は、該箇条書きラベルの候補の行頭の位置から前記ラベル特徴格納手段に格納された文字列の長さだけ文字列を箇条書きラベルとして検出し、前記箇条書きラベルの候補中に空白を含まない場合は、前記箇条書きラベルの候補中の文字種を含む正規表現が前記ラベル特徴格納手段に格納された文字列の文字種を含む正規表現と一致する文字列を箇条書きラベルとして検出する箇条書きラベル検出ステップと、
箇条書き範囲特定手段が、前記箇条書きラベルが検出された行の行頭の位置と、その次以降の箇条書きラベルが検出されない行頭の位置とを調べることにより箇条書き範囲を抽出する箇条書き範囲特定ステップと、
文切り出し手段が、箇条書き範囲と判定されない行に対し、その次以降の行を接続し、文単位に区切る文切り出しステップと、
文書出力手段が、前記抽出された箇条書き範囲及び前記文単位に区切られた文に、各文の文書構造を示すタグを付与して出力する文書出力ステップと、
を行うことを特徴とする文書構造解析方法。
【請求項２】
前記箇条書き範囲特定ステップにおいて、
前記箇条書き範囲特定手段が、
前記検出された箇条書きラベルそれぞれについて、
前記箇条書きラベルを含む行と、前記箇条書きラベルを含む行の行頭の位置よりも次以降の箇条書きラベルを含まない行の行頭位置が右にインデントされている行と、により構成される範囲をそれぞれ箇条書きの範囲として抽出する手段であることを特徴とする請求項１記載の文書構造解析方法。
【請求項３】
文書構造を解析する文書構造解析装置であって、
解析対象の文書を入力する文書入力手段と、
前記文書の行頭の引用符の有無を調べ、該文書の行頭に引用符がある場合には削除する引用符検出手段と、
前記文書中の日時、場所を含む特定の文字列を特定文字列ラベルとして検出し、該特定文字列ラベルの行頭の位置及び空白を含んだ長さ、該特定文字列ラベル中の空白の有無、該特定文字列の文字種を含む正規表現をラベル特徴格納手段に格納する特定ラベル検出手段と、
前記文書中に行頭の位置が前記ラベル特徴格納手段に格納された行頭の位置と一致する行がある場合には、前記文書中の行頭の位置が一致した行を箇条書きラベルの候補とし、該箇条書きラベルの候補中に空白を含む場合は、該箇条書きラベルの候補の行頭の位置から前記ラベル特徴格納手段に格納された文字列の長さだけ文字列を箇条書きラベルとして検出し、前記箇条書きラベルの候補中に空白を含まない場合は、前記箇条書きラベルの候補中の文字種を含む正規表現が前記ラベル特徴格納手段に格納された文字列の文字種を含む正規表現と一致する文字列を箇条書きラベルとして検出する箇条書きラベル検出手段と、
前記箇条書きラベルが検出された行の行頭の位置と、その次以降の箇条書きラベルが検出されない行頭の位置とを調べることにより箇条書き範囲を抽出する箇条書き範囲特定手段と、
箇条書き範囲と判定されない行に対し、その次以降の行を接続し、文単位に区切る文切り出し手段と、
前記抽出された箇条書き範囲及び前記文単位に区切られた文に、各文の文書構造を示すタグを付与して出力する文書出力手段と、
を有することを特徴とする文書構造解析装置。
【請求項４】
前記箇条書き範囲特定手段は、
前記検出された箇条書きラベルそれぞれについて、
前記箇条書きラベルを含む行と、前記箇条書きラベルを含む行の行頭の位置よりも次以降の箇条書きラベルを含まない行の行頭位置が右にインデントされている行と、により構成される範囲をそれぞれ箇条書きの範囲として抽出する手段であることを特徴とする請求項３記載の文書構造解析装置。
【請求項５】
文書構造を解析する文書構造解析プログラムを格納した記憶媒体であって、
前記請求項１または、２記載の文書構造解析方法を実現するための処理をコンピュータに実行させるプログラムを格納したことを特徴とする文書構造解析プログラムを格納した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文書構造解析方法及び装置及び文書構造解析プログラムを格納した記憶媒体に係り、特に、ネットワークを介して伝達された、あるいは、ＯＣＲで読み込んだ電子文書の文書構造中の箇条書きを特定するするための文書構造解析方法及び装置及び文書構造解析プログラムを格納した記憶媒体に関する。
【０００２】
【従来の技術】
従来の文書構造を解析する方法において、箇条書きを特定する際に、予め決められたラベル付箇条書きを表しうる単語や記号を用意して、文書に対して検索を行い、これに一致した文字列を箇条書きと判定している。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来の予め決められた箇条書きを表す単語や記号を用いて文書を検索し、箇条書きを判定する方法では、予想しうる単語や記号を多く用意しなければならないことと、特定の記号がない場合や文字間に空白が含まれる場合には箇条書きと判定することができないという問題がある。
【０００４】
本発明は、上記の点に鑑みなされたもので、箇条書きラベルを含んだり、特定の記号等がなくても、文字列の長さや行頭の位置情報を使うことによって、ラベル付箇条書きと本文の単文化についての文書構造を解析することが可能な文書構造解析方法及び装置及び文書構造解析プログラムを格納した記憶媒体を提供することを目的とする。
【０００５】
【課題を解決するための手段】
図１は、本発明の原理を説明するための図である。
本発明は、文書構造を解析する文書構造解析装置における文書構造解析方法において、
文書入力手段が、解析対象の文書を入力する文書入力ステップと（ステップ１）、
引用符検出手段が、文書の行頭の引用符の有無を調べ、該文書の行頭に引用符がある場合には削除する引用符検出ステップと（ステップ２）、
特定ラベル検出手段が、文書中の日時、場所を含む特定の文字列を特定文字列ラベルとして検出し、特定ラベル検出手段が、前記文書中の日時、場所を含む特定の文字列を特定文字列ラベルとして検出し、該特定文字列ラベルの行頭の位置及び空白を含んだ長さ、該特定文字列ラベル中の空白の有無、該特定文字列の文字種を含む正規表現をラベル特徴格納手段に格納する特定ラベル検出ステップと（ステップ３）、
箇条書きラベル検出手段が、文書中に行頭の位置がラベル特徴格納手段に格納された行頭の位置と一致する行がある場合には、文書中の行頭の位置が一致した行を箇条書きラベルの候補とし、該箇条書きラベルの候補中に空白を含む場合は、該箇条書きラベルの候補の行頭の位置からラベル特徴格納手段に格納された文字列の長さだけ文字列を箇条書きラベルとして検出し、箇条書きラベルの候補中に空白を含まない場合は、箇条書きラベルの候補中の文字種を含む正規表現がラベル特徴格納手段に格納された文字列の文字種を含む正規表現と一致する文字列を箇条書きラベルとして検出する箇条書きラベル検出ステップと（ステップ４）、
箇条書き範囲特定手段が、箇条書きラベルが検出された行の行頭の位置と、その次以降の箇条書きラベルが検出されない行頭の位置とを調べることにより箇条書き範囲を抽出する箇条書き範囲特定ステップと（ステップ５）、
文切り出し手段が、箇条書き範囲と判定されない行に対し、その次以降の行を接続し、文単位に区切る文切り出しステップと（ステップ５）、
文書出力手段が、抽出された箇条書き範囲及び文単位に区切られた文に、各文の文書構造を示すタグを付与して出力する文書出力ステップと（ステップ６）、を行う。
【０００７】
本発明は、箇条書き範囲特定ステップにおいて、
箇条書き範囲特定手段が、
検出された箇条書きラベルそれぞれについて、
箇条書きラベルを含む行と、箇条書きラベルを含む行の行頭の位置よりも次以降の箇条書きラベルを含まない行の行頭位置が右にインデントされている行と、により構成される範囲をそれぞれ箇条書きの範囲として抽出する手段である。
【０００８】
図２は、本発明の原理構成図である。
本発明は、文書構造を解析する文書構造解析装置であって、
解析対象の文書を入力する文書入力手段１と、
文書の行頭の引用符の有無を調べ、該文書の行頭に引用符がある場合には削除する引用符検出手段２と、
文書中の日時、場所を含む特定の文字列を特定文字列ラベルとして検出し、該特定文字列ラベルの行頭の位置及び空白を含んだ長さ、該特定文字列ラベル中の空白の有無、該特定文字列の文字種を含む正規表現をラベル特徴格納手段４に格納する特定ラベル検出手段３と、
文書中に行頭の位置がラベル特徴格納手段４に格納された行頭の位置と一致する行がある場合には、文書中の行頭の位置が一致した行を箇条書きラベルの候補とし、該箇条書きラベルの候補中に空白を含む場合は、該箇条書きラベルの候補の行頭の位置からラベル特徴格納手段４に格納された文字列の長さだけ文字列を箇条書きラベルとして検出し、箇条書きラベルの候補中に空白を含まない場合は、箇条書きラベルの候補中の文字種を含む正規表現がラベル特徴格納手段４に格納された文字列の文字種を含む正規表現と一致する文字列を箇条書きラベルとして検出する箇条書きラベル検出手段５と、
箇条書きラベルが検出された行の行頭の位置と、その次以降の箇条書きラベルが検出されない行頭の位置とを調べることにより箇条書き範囲を抽出する箇条書き範囲特定手段６と、
箇条書き範囲と判定されない行に対し、その次以降の行を接続し、文単位に区切る文切り出し手段７と、
抽出された箇条書き範囲及び文単位に区切られた文に、各文の文書構造を示すタグを付与して出力する文書出力手段８と、を有する。
【００１０】
本発明の箇条書き範囲特定手段６は、
検出された箇条書きラベルそれぞれについて、
箇条書きラベルを含む行と、箇条書きラベルを含む行の行頭の位置よりも次以降の箇条書きラベルを含まない行の行頭位置が右にインデントされている行と、により構成される範囲をそれぞれ箇条書きの範囲として抽出する手段である。
【００１１】
本発明は、文書構造を解析する文書構造解析プログラムを格納した記憶媒体であって、
請求項１または、２記載の文書構造解析方法を実現するための処理をコンピュータに実行させるプログラムを格納した記憶媒体である。
【００１４】
上記のように、本発明は、文書内の特定の種類のラベル付箇条書きに着目し、そのラベル付箇条書きとして記述されている特徴を用いることによって、その文書内の任意のラベル付箇条書きを特定し、文書の構造を解析することが可能となる。
【００１５】
例えば、イベントの案内について通知する電子メール文書の構造を解析する場合について述べる。文書入力手段によって、受信した電子メールを入力し、本文と引用文に分割するため、行頭の引用符を検出し、これを除く。次に、日時、場所等を示す特定文字列をラベルとする箇条書きを検出し、検出した当該特定文字列の箇条書きラベルの文字列の長さや行頭の位置やパターンの特徴（ラベルの特徴）を格納する。格納されたラベルの特徴を用いて、文書から任意の箇条書きラベルを検出する。さらに、箇条書きラベルが検出された行とそれ以降の箇条書きラベルが検出されない行に対して、行頭の位置を比べることによって、箇条書きの範囲を特定し、箇条書きの範囲でない行に対して、それ以降の行を接続し、句点等を使って文単位に区切る。最後に箇条書きや文を示すタグを文書に付けて出力する。
【００１６】
【発明の実施の形態】
図３は、本発明の文書構造解析装置の構成を示す。
同図に示す文書構造解析装置は、文書入力部１、引用符検出部２、特定ラベル検出部３、ラベル特徴格納部４、箇条書きラベル検出部５、箇条書き範囲特定部６、文切り出し部７及び文書出力部８から構成される。
【００１７】
文書入力部１は、構造解析を行う文書を入力する。
引用符検出部２は、本文と引用文の区別を示す行頭の引用符を検出し、これを除去する。
特定ラベル検出部３は、文書から特定の箇条書きを示すラベルを検出する。
ラベル特徴格納部４は、特定ラベル検出部３で得られた箇条書きラベルの特徴を格納する。
【００１８】
箇条書きラベル検出部５は、ラベル特徴格納部４に格納された特徴を用いることによって、文書から任意の箇条書きのラベルを検出する。
箇条書き範囲特定部６は、特定ラベル検出部３や箇条書きラベル検出部５により検出された箇条書きの行とそれ以降の箇条書きが検出されていない行に対して、行頭の位置を比べることにより、箇条書きの範囲を特定する。
【００１９】
切り出し部７は、箇条書き範囲特定部６で箇条書きの範囲と特定されない行に対して、行を接続し、句点等で文単位に切り出しを行う。
文書出力部８は、文書構造を文書にタグ付けして出力する。
次に、上記の構成における動作を説明する。
図４は、本発明の文書解析装置の動作を示すフローチャートである。
【００２０】
ステップ１０１）  文書入力部１より文書構造を解析する対象の文書を入力する。
ステップ１０２）  引用符検出部２により、入力された文書の行頭に引用符があるかどうかを調べ、ある場合にはステップ１０３に移行し、ない場合にはステップ１０４に移行する。
【００２１】
ステップ１０３）  文書の行頭に引用符がある場合には、引用符検出部２は、当該引用符を削除する。
ステップ１０４）  特定ラベル検出部３が、日時、場所等の特定の文字列があるかを調べ、ある場合にはステップ１０５に移行し、ない場合にはステップ１０９に移行する。
【００２２】
ステップ１０５）  特定ラベル検出部３により特定の文字列がある場合には、当該文字列を特定文字列ラベルとして検出する。
ステップ１０６）  検出された特定文字列ラベルの文字列の長さ、行頭の位置、空白の有無、パターンの特徴等をラベル特徴格納部４に格納する。
ステップ１０７）  箇条書きラベル検出部５は、当該文書中にラベル特徴格納部４に格納されている特徴に合致する文字列があるかどうかを調べ、ある場合にはステップ１０８に移行し、ない場合にはステップ１０９に移行する。
【００２３】
ステップ１０８）  特徴に合致するラベルがある場合には、当該文字列を箇条書きラベルとして抽出する。
ステップ１０９）  箇条書き範囲特定部６は、箇条書きラベルが検出されたかを調べ、検出されている場合には、ステップ１１０に移行し、検出されていない場合にはステップ１１１に移行する。
【００２４】
ステップ１１０）  箇条書き判定特定部６は、特定ラベル検出部３及び箇条書きラベル検出部５により検出された箇条書きの行と、それ以降の箇条書きが検出されない行に対して行頭の位置を調べることにより箇条書きの範囲を特定する。
ステップ１１１）  文切り出し部７により箇条書き範囲特定部６で箇条書きの範囲と特定されない行に対して、行を接続し、句点等を用いて、文単位に切り出しを行う。
【００２５】
ステップ１１２）  切り出された文の文書構造にタグを付与して文書出力部８から出力する。
次に、上記の箇条書きラベル検出部５におけるステップ１０７及びステップ１０８の動作を詳細に説明する。
図５は、本発明の箇条書きラベル検出部の動作のフローチャートである。
【００２６】
ステップ２０１）  得られているラベルのパターンに特定の記号、数字、アルファベット等の特定の記号があるかを判定し、ある場合にはステップ２０２に移行し、ない場合にはステップ２０３に移行する。
ステップ２０２）  特定の記号等を含む行を候補とし、ステップ２０５に移行する。
【００２７】
ステップ２０３）  特定の記号等を含む行がなければ、各行に対し行頭の位置が一致している行があるかを調べ、一致する行があればステップ２０４に移行し、なければ、処理を終了する。
ステップ２０４）  一致する行があれば、この行を箇条書きラベルの候補とし、ステップ２０５に移行する。
【００２８】
ステップ２０５）  当該箇条書きラベルの候補に空白を含むかを調べ、含む場合にはステップ２０６に移行し、ない場合にはステップ２０７に移行する。
ステップ２０６）  当該箇条書きラベルの候補に空白を含む場合には、行頭の位置から文字列の長さだけ文字列を抽出し、処理を終了する。
ステップ２０７）  ラベルに空白を含まない場合には、パターンにマッチする文字列を抽出する。
【００２９】
次に、箇条書き範囲特定部６のステップ１１０について説明する。
図６は、本発明の箇条書き範囲特定部の動作のフローチャートである。
ステップ３０１）  文書内に箇条書きラベルがある限り以下の処理を繰り返す。
ステップ３０２）  次の行の処理に進む。
【００３０】
ステップ３０３）  箇条書きラベルがないかを調べ、ない場合にはステップ３０４に移行し、ある場合には、ステップ３０１に移行する。
ステップ３０４）  箇条書きラベルがない場合には、行頭の位置が箇条書きの行よりも右側にあるかを調べ、ある場合にはステップ３０５に移行し、ない場合にはステップ３０１に移行する。
【００３１】
ステップ３０５）  行全体を箇条書きの範囲とする。
【００３２】
【実施例】
以下、図面と共に本発明の実施例を説明する。
図７は、本発明の一実施例の入力されたサンプル文書である。
まず、図７に示す文書が文書入力部１より入力されると、引用符検出部２により、入力された文書の行頭に引用符があるかどうかを調べ、ある場合には当該引用符を削除する。同図の場合には引用符はないものとする。
【００３３】
次に、特定ラベル検出部３が、『日時』、『場所』等の特定の文字列があるかを調べる。同図の例では、「日時」、「場所」の特定文字列が存在するので、これらを特定文字列ラベルとして検出し、特定文字列ラベルの文字列の長さ、行頭の位置、空白の有無、パターンの特徴等をラベル特徴格納部４に格納する。同図の例では、ラベルの特徴は、
・ラベルの文字列の先頭位置―５バイト目
・ラベル文字列の長さ(空白を含む)−８バイト目
・ラベル文字列中の空白の有無―有り
・ラベル文字列のパターン（数字、記号等の文字種を含む正規表現）−［数字記号以外］（[空白（０個以上の繰り返し）]［数字記号以外］（０個以上の繰り返し））
同図の例では、これらの特徴に合致するラベルがあるので、箇条書き判定特定部６は、箇条書きラベルとして抽出する。この例では、上記特徴に合致する
「会    費」、「交通手段」、「経    路」
が検出される。これらのラベルが検出された行は、ラベル行としてタグが付けられる（タグは、ラベル名とその内容のセットを含んでいるものとし、特にフォーマットは規定しない）。
【００３４】
箇条書き範囲特定部６は、箇条書きラベルが検出されたかを調べ、箇条書きの範囲を特定する。同図の例では、「場所」ラベル行以外は、すべて１行のみなので、それがそのまま箇条書きの範囲である。「場所」ラベルはその行以降の通常の先頭位置と比較し、１７バイト、１７バイト、２５バイト、２５バイトとなっていて、場所「ラベル」の先頭位置の８バイトよりも大きい、つまり、右にインデントされているので、「場所」ラベルの箇条書きの範囲に含め、内容を接続する（なお、その次の行の「会費」ラベル付はラベル行なので、先頭位置の比較対象とはならない）。
【００３５】
上記により、箇条書きの範囲が合計４行となり、文は３つに区切られる。
このようにして  切り出された文の文書構造にタグ（「日時」「場所」「会費」「交通手段」「経路」）を付与して文書出力部８から出力する。
上記のように、文字列の長さや行頭の位置情報を使うことによってラベル付箇条書き部と本文の単文化についての文書構造を解析することが可能となる。
【００３６】
また、上記の実施例では、図３の構成要素に基づいて説明しているが、この例に限定されることなく、図３の構成要素をプログラムとして構築し、文書構造解析装置として利用されるコンピュータに接続されるディスク装置や、フロッピーディスクやＣＤ−ＲＯＭ等の可搬記憶媒体に格納しておき、本発明を実施する際にインストールすることにより容易に本発明を実現することができる。
【００３７】
なお、本発明は、上記の実施例に限定されることなく、特許請求の範囲内で種々変更・応用が可能である。
【００３８】
【発明の効果】
上述のように、本発明によれば箇条書きラベルに空白を含んだり、特定の記号等がなくても、列の長さや行頭の位置情報を使うことによって、ラベル付箇条書きと本文の単文化について文書構造を解析することができる。
【図面の簡単な説明】
【図１】本発明の原理を説明するための図である。
【図２】本発明の原理構成図である。
【図３】本発明の文書構造解析装置の構成図である。
【図４】本発明の文書解析装置の動作を示すフローチャートである。
【図５】本発明の箇条書きラベル検出部の動作のフローチャートである。
【図６】本発明の箇条書き範囲特定部の動作のフローチャートである。
【図７】本発明の一実施例の入力されたサンプル文書である。
【符号の説明】
１  文書入力手段、文書入力部
２  引用符検出手段、引用符検出部
３  特定ラベル検出手段、特定ラベル検出部
４  ラベル特徴格納手段、ラベル特徴格納部
５  箇条書きラベル検出手段、箇条書きラベル検出部
６  箇条書き範囲特定手段、箇条書き範囲特定部
７  文切り出し手段、文切り出し部
８  文書出力手段、文書出力部
【図１】
0003767180.tif 000002
【図２】
0003767180.tif 000003
【図３】
0003767180.tif 000004
【図４】
0003767180.tif 000005
【図５】
0003767180.tif 000006
【図６】
0003767180.tif 000007
【図７】
0003767180.tif 000008