(57)【要約】【課題】  タグにより区分された複数のテキストを横断するキーワードを含む構造化文書データの検出を可能とする。【解決手段】  索引テーブル１０２には、構造化文書データベース１０１に記憶された構造化文書データのテキストを内容とする要素に含まれる文字列が、その文字列を含む構造化文書データのＩＤ、その文字列を含む要素のＩＤ、および、その要素内におけるその文字列の位置の情報と関連付けて記憶されている。テキスト要素間接続テーブル１０３には、構造化文書データのテキスト要素間のつながり情報が記憶されている。文字列検出部１０６ａは、入力されたキーワードに含まれる文字列を索引テーブル１０２から検出し、文書ＩＤ取得部１０６ｂは、索引テーブル１０２とテキスト要素間接続テーブル１０３を用いて、それらの文字列のつながりを解析して、キーワードを含む構造化文書データのＩＤを取得する。【選択図】  図１
2006172268.tif 000002
【特許請求の範囲】
【請求項１】
複数のタグとそのタグにより区分されたテキストとを含む複数の構造化文書データから所望のキーワードを含む構造化文書データを検出する構造化文書処理装置であって、
複数の構造化文書データを記憶する第１の記憶手段と、
前記第１の記憶手段に記憶された構造化文書データのテキストに含まれ、あらかじめ定めた文字数からなる複数の文字列を、それらの文字列を含む構造化文書データの識別子、それらの文字列を含むテキストの識別子およびそのテキスト内におけるそれらの文字列の位置の情報と関連付けて記憶する第２の記憶手段と、
前記第１の記憶手段に記憶された構造化文書データのテキスト間のつながり情報を記憶した第３の記憶手段と、
キーワードを入力する手段と、
前記入力されたキーワードを前記あらかじめ定めた文字数の文字列の組に分割する手段と、
前記第２の記憶手段から前記キーワードを分割して得た文字列を検出する手段と、
前記検出された文字列ごとに、前記第２の記憶手段からその文字列を含むテキストの識別子とそのテキスト内におけるその文字列の位置の情報を得、その得られたテキストの識別子および文字列の位置の情報と、前記第３の記憶手段に記憶された前記検出された文字列を含むテキスト間のつながり情報とを用いて、前記キーワードを含む構造化文書データの識別子を取得する手段と、
前記取得された識別子に対応する構造化文書データを前記第１の記憶手段から検出する手段と、
を備えることを特徴とする構造化文書処理装置。
【請求項２】
前記第２の記憶手段は、さらに、タグにより区分された２つのテキストを横断する前記あらかじめ定めた文字数からなる複数の文字列を、それらの文字列を含む構造化文書データの識別子、それらの文字列を含む少なくともひとつのテキストの識別子およびそのテキスト内におけるそれらの文字列の位置の情報と関連付けて記憶することを特徴とする請求項１に記載の構造化文書処理装置。
【請求項３】
前記第３の記憶手段は、タグにより区分されたテキストごとに、そのテキストの直前のテキストの識別子を記憶することを特徴とする請求項１に記載の構造化文書処理装置。
【請求項４】
複数のタグとそのタグにより区分されたテキストとを含む複数の構造化文書データを記憶した第１の記憶手段から所望のキーワードを含む構造化文書データを検出する構造化文書処理方法であって、
キーワードを入力するステップと、
前記入力されたキーワードをあらかじめ定めた文字数の文字列の組に分割するステップと、
前記第１の記憶手段に記憶された構造化文書データのテキストに含まれ、あらかじめ定めた文字数からなる複数の文字列を、それらの文字列を含む構造化文書データの識別子、それらの文字列を含むテキストの識別子およびそのテキスト内におけるそれらの文字列の位置の情報と関連付けて記憶する第２の記憶手段から、前記キーワードを分割して得た文字列を検出する文字列検出ステップと、
前記検出された文字列ごとに、前記第２の記憶手段からその文字列を含むテキストの識別子とそのテキスト内におけるその文字列の位置の情報を得、その得られたテキストの識別子および文字列の位置の情報と、前記第１の記憶手段に記憶された構造化文書データのテキスト間のつながり情報を記憶した第３の記憶手段に記憶された前記検出された文字列を含むテキスト間のつながり情報とから、前記キーワードを含む構造化文書データの識別子を取得する識別子取得ステップと、
前記取得された識別子に対応する構造化文書データを前記第１の記憶手段から検出するステップと、
を有することを特徴とする構造化文書処理方法。
【請求項５】
前記第２の記憶手段は、さらに、タグにより区分された２つのテキストを横断する前記あらかじめ定めた文字数からなる複数の文字列を、それらの文字列を含む構造化文書データの識別子、それらの文字列を含む少なくともひとつのテキストの識別子およびそのテキスト内におけるそれらの文字列の位置の情報と関連付けて記憶し、
前記文字列検出ステップは、前記第２の記憶手段から前記キーワードを分割して得た文字列を検出し、
前記識別子取得ステップは、前記検出された文字列ごとに、前記第２の記憶手段からその文字列を含むテキストの識別子とそのテキスト内におけるその文字列の位置の情報を得、その得られたテキストの識別子および文字列の位置の情報と、前記第１の記憶手段に記憶された構造化文書データのテキスト間のつながり情報を記憶した第３の記憶手段に記憶された前記検出された文字列を含むテキスト間のつながり情報とから、前記キーワードを含む構造化文書データの識別子を取得することを特徴とする請求項４に記載の構造化文書処理方法。
【請求項６】
コンピュータに、複数のタグとそのタグにより区分されたテキストとを含む複数の構造化文書データを記憶した第１の記憶手段から所望のキーワードを含む構造化文書データを検出させる構造化文書処理プログラムであって、
キーワードを入力する機能と、
前記入力されたキーワードをあらかじめ定めた文字数の文字列の組に分割する機能と、
前記第１の記憶手段に記憶された構造化文書データのテキストに含まれ、あらかじめ定めた文字数からなる複数の文字列を、それらの文字列を含む構造化文書データの識別子、それらの文字列を含むテキストの識別子およびそのテキスト内におけるそれらの文字列の位置の情報と関連付けて記憶する第２の記憶手段から、前記キーワードを分割して得た文字列を検出する文字列検出機能と、
前記検出された文字列ごとに、前記第２の記憶手段からその文字列を含むテキストの識別子とそのテキスト内におけるその文字列の位置の情報を得、その得られたテキストの識別子および文字列の位置の情報と、前記第１の記憶手段に記憶された構造化文書データのテキスト間のつながり情報を記憶した第３の記憶手段に記憶された前記検出された文字列を含むテキスト間のつながり情報とから、前記キーワードを含む構造化文書データの識別子を取得する識別子取得機能と、
前記取得された識別子に対応する構造化文書データを前記第１の記憶手段から検出する機能と、
を備えることを特徴とする構造化文書処理プログラム。
【請求項７】
前記第２の記憶手段は、さらに、タグにより区分された２つのテキストを横断する前記あらかじめ定めた文字数からなる複数の文字列を、それらの文字列を含む構造化文書データの識別子、それらの文字列を含む少なくともひとつのテキストの識別子およびそのテキスト内におけるそれらの文字列の位置の情報と関連付けて記憶し、
前記文字列検出機能は、前記第２の記憶手段から前記キーワードを分割して得た文字列を検出し、
前記識別子取得機能は、前記検出された文字列ごとに、前記第２の記憶手段からその文字列を含むテキストの識別子とそのテキスト内におけるその文字列の位置の情報を得、その得られたテキストの識別子および文字列の位置の情報と、前記第１の記憶手段に記憶された構造化文書データのテキスト間のつながり情報を記憶した第３の記憶手段に記憶された前記検出された文字列を含むテキスト間のつながり情報とから、前記キーワードを含む構造化文書データの識別子を取得することを特徴とする請求項６に記載の構造化文書処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書処理装置、構造化文書処理方法および構造化文書処理プログラムに係り、特にタグにより区分された複数のテキストを横断するキーワードを含む構造化文書データの検出を可能とする構造化文書処理装置、構造化文書処理方法および構造化文書処理プログラムに関する。
【背景技術】
【０００２】
近年、コンピュータでの文書データの管理や処理を容易にするために、地の文書中に文書の構造を示す特定の文字列である「タグ」が付加された文書（構造化文書）が広く用いられている。そして、この構造化文書を記述するための規約として、ＳＧＭＬ（Ｓｔａｎｄａｒｄ  Ｇｅｎｅｒａｌｉｚｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）やＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）などの構造化文書規約の標準化が進められている。
【０００３】
このような構造化文書規約に基づいて記述された構造化文書では、タグにより区分されたテキストを検索の単位として、例えば、文書データ中の「見出し」というタグが付加されたテキストに特定のキーワードが含まれている文書データを検出する、というような、文書データの構造を利用した検索が可能になる（例えば、特許文献１を参照）。そのため、このような構造化文書規約を利用すれば、複数の構造化文書を含むデータベースから、ユーザ所望のキーワードを含む文書データを効率よく検索することが可能になる。
【０００４】
しかし、このようなタグにより区分されたテキストを単位とする構造化文書の検索技術では、例えば、図２１に示すように、ユーザが指定したキーワード（「日本代表」）が、タグにより２つのテキストに分割されている場合には、そのキーワードを検出することができなかった。
【特許文献１】特開２０００−２０７４０９公報（３頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したように、従来のタグにより区分されたテキストを検索の単位とする構造化文書の検索技術では、タグにより区分された複数のテキストを横断するキーワードを含む構造化文書データを検出することができなかった。
【０００６】
本発明は、上記従来技術の問題点を解決するためになされたものであって、タグにより区分された複数のテキストを横断するキーワードを含む構造化文書データの検出を可能とする構造化文書処理装置、構造化文書処理方法および構造化文書処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の構造化文書処理装置は、複数のタグとそのタグにより区分されたテキストとを含む複数の構造化文書データから所望のキーワードを含む構造化文書データを検出する構造化文書処理装置であって、複数の構造化文書データを記憶する第１の記憶手段と、前記第１の記憶手段に記憶された構造化文書データのテキストに含まれ、あらかじめ定めた文字数からなる複数の文字列を、それらの文字列を含む構造化文書データの識別子、それらの文字列を含むテキストの識別子およびそのテキスト内におけるそれらの文字列の位置の情報と関連付けて記憶する第２の記憶手段と、前記第１の記憶手段に記憶された構造化文書データのテキスト間のつながり情報を記憶した第３の記憶手段と、キーワードを入力する手段と、前記入力されたキーワードを前記あらかじめ定めた文字数の文字列の組に分割する手段と、前記第２の記憶手段から前記キーワードを分割して得た文字列を検出する手段と、前記検出された文字列ごとに、前記第２の記憶手段からその文字列を含むテキストの識別子とそのテキスト内におけるその文字列の位置の情報を得、その得られたテキストの識別子および文字列の位置の情報と、前記第３の記憶手段に記憶された前記検出された文字列を含むテキスト間のつながり情報とを用いて、前記キーワードを含む構造化文書データの識別子を取得する手段と、前記取得された識別子に対応する構造化文書データを前記第１の記憶手段から検出する手段と、を備えることを特徴とする。
【０００８】
また、本発明の構造化文書処理方法は、複数のタグとそのタグにより区分されたテキストとを含む複数の構造化文書データを記憶した第１の記憶手段から所望のキーワードを含む構造化文書データを検出する構造化文書処理方法であって、キーワードを入力するステップと、前記入力されたキーワードをあらかじめ定めた文字数の文字列の組に分割するステップと、前記第１の記憶手段に記憶された構造化文書データのテキストに含まれ、あらかじめ定めた文字数からなる複数の文字列を、それらの文字列を含む構造化文書データの識別子、それらの文字列を含むテキストの識別子およびそのテキスト内におけるそれらの文字列の位置の情報と関連付けて記憶する第２の記憶手段から、前記キーワードを分割して得た文字列を検出する文字列検出ステップと、前記検出された文字列ごとに、前記第２の記憶手段からその文字列を含むテキストの識別子とそのテキスト内におけるその文字列の位置の情報を得、その得られたテキストの識別子および文字列の位置の情報と、前記第１の記憶手段に記憶された構造化文書データのテキスト間のつながり情報を記憶した第３の記憶手段に記憶された前記検出された文字列を含むテキスト間のつながり情報とから、前記キーワードを含む構造化文書データの識別子を取得する識別子取得ステップと、前記取得された識別子に対応する構造化文書データを前記第１の記憶手段から検出するステップと、を有することを特徴とする。
【０００９】
また、本発明の構造化文書処理プログラムは、コンピュータに、複数のタグとそのタグにより区分されたテキストとを含む複数の構造化文書データを記憶した第１の記憶手段から所望のキーワードを含む構造化文書データを検出させる構造化文書処理プログラムであって、キーワードを入力する機能と、前記入力されたキーワードをあらかじめ定めた文字数の文字列の組に分割する機能と、前記第１の記憶手段に記憶された構造化文書データのテキストに含まれ、あらかじめ定めた文字数からなる複数の文字列を、それらの文字列を含む構造化文書データの識別子、それらの文字列を含むテキストの識別子およびそのテキスト内におけるそれらの文字列の位置の情報と関連付けて記憶する第２の記憶手段から、前記キーワードを分割して得た文字列を検出する文字列検出機能と、前記検出された文字列ごとに、前記第２の記憶手段からその文字列を含むテキストの識別子とそのテキスト内におけるその文字列の位置の情報を得、その得られたテキストの識別子および文字列の位置の情報と、前記第１の記憶手段に記憶された構造化文書データのテキスト間のつながり情報を記憶した第３の記憶手段に記憶された前記検出された文字列を含むテキスト間のつながり情報とから、前記キーワードを含む構造化文書データの識別子を取得する識別子取得機能と、前記取得された識別子に対応する構造化文書データを前記第１の記憶手段から検出する機能と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、タグにより区分された複数のテキストを横断するキーワードを含む構造化文書データの検出が可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態について説明する。
【００１２】
（第１の実施形態）
まず、図３（ａ）に構造化文書データの例を示す。なお、本実施形態では、ＸＭＬを構造化文書規約として記述された構造化文書データの例を示すが、本発明が適用可能な構造化文書データは、ＸＭＬを構造化文書規約とするものに限定されるものではなく、例えば、ＳＧＭＬなどのほかの構造化文書データにも本発明を適用することが可能である。
【００１３】
ＸＭＬでは、地の文に「タグ」を付加することによって文書データを構造化する。またＸＭＬでは、タグは、タグの内容を表す名称を「＜」と「＞」で囲むことによって表現される。図３（ａ）に示す例では、「＜ｄｏｃ＞」「＜／ｄｏｃ＞」「＜ｔｉｔｌｅ＞」「＜ｐ＞」などがタグを表す。また、特に、「＜」と「＞」で囲まれるタグは開始タグ、「＜／」と「＞」で囲まれるタグは終了タグと呼ばれる。そして、この開始タグと終了タグでテキストを囲むことにより、そのテキストが構造化される。図３（ａ）に示す例では、例えば、「＜ｔｉｔｌｅ＞」と「＜／ｔｉｔｌｅ＞」とで、「重要なお知らせ」というテキストを囲むことにより、そのテキストに対して「タイトル」という構造を付与している。
【００１４】
また図３（ａ）の構造化文書データを、木構造によって表現したものを図３（ｂ）示す。図３（ｂ）では、タグおよびタグによって区分されたテキストが木構造のノードとして表されている。なお、ＸＭＬでは、図３（ｂ）に示す木構造のノードに該当するタグおよびタグによって区分されたテキストを「要素」と呼ぶが、以下では、タグを表す要素を「タグ要素」、タグによって区分されたテキストを内容とする要素を「テキスト要素」と呼ぶ。
【００１５】
図１は、本発明の第１の実施形態に係わる構造化文書処理装置を示すブロック図である。
【００１６】
この第１の実施形態に係わる構造化文書処理装置は、複数の構造化文書データを記憶する構造化文書データベース１０１と、構造化文書データベースに記憶された構造化文書データのテキスト要素に含まれる文字列を、その文字列を含む構造化文書データのＩＤ、その文字列を含むテキスト要素のＩＤ、および、そのテキスト要素内において、その文字列が現れる位置の情報と関連付けて記憶した索引テーブル１０２と、構造化文書データベース１０１に含まれるテキスト要素間のつながり情報を記憶したテキスト要素間接続テーブル１０３と、キーワードを入力するキーワード入力部１０４と、キーワード入力部１０４で入力されたキーワードを複数の文字列の組に分割するキーワード分割部１０５と、キーワード分割部１０５で得られた文字列を索引テーブル１０２から検出する文字列検出部１０６ａと、検出された文字列のつながりを解析して、キーワード入力部１０４で入力されたキーワードを含む構造化文書データのＩＤを取得する文書ＩＤ取得部１０６ｂとからなる検索処理部１０６と、構造化文書データベース１０１から検索処理部１０６で取得された識別子に対応する構造化文書データを検出する構造化文書データ検出部１０７と、を備える。
【００１７】
次に、図４から図８を用いて、構造化文書データベース１０１、索引テーブル１０２およびテキスト要素間接続テーブル１０３に記憶されているデータの内容について説明する。
【００１８】
構造化文書データベース１０１には、複数の構造化文書データが記憶されている。また、各構造化文書データは、その識別子としてＩＤを有している。このＩＤは、構造化文書データベース１０１に含まれる構造化文書データに付与された構造化文書データを一意に特定するための識別番号であり、このＩＤを指定することにより、構造化文書データベース１０１から、そのＩＤに対応する構造化文書データを検出して取得することが可能になる。
【００１９】
次に、索引テーブル１０２には、構造化文書データベース１０１に記憶された構造化文書データのテキスト要素に含まれる、あらかじめ定められた文字数の複数の文字列が、それらの文字列を含む構造化文書データのＩＤ、それらの文字列を含むテキスト要素のＩＤ、および、その要素内でそれらの文字列が現れる位置の情報と関連付けて記憶されている。図４に、図３（ａ）に示す構造化文書データを文書ＩＤ「１」として、索引テーブル１０２に記憶した場合の例を示す。図４に示すように、索引テーブル１０２には、構造化文書データのテキスト要素に含まれる文字列、その文字列を含む構造化文書データのＩＤ（文書ＩＤ）、その文字列を含むテキスト要素のＩＤ（要素ＩＤ）、および、要素内でその文字列が現れる位置の情報（オフセット、末尾フラグ）が記憶されている。なお、図４に示す索引テーブルでは、あらかじめ定めた文字数を「２文字」として、テキスト要素に含まれる文字列を、２文字ごとに索引テーブル１０２に記憶している。ただし、末尾の文字（図４では「社」および「中」）については、１文字で記憶している。
【００２０】
また、ここで要素ＩＤとは、構造化文書データベース１０１に含まれるすべての構造化文書データの要素（タグ要素とテキスト要素）に付与された要素を一意に特定するための識別番号である。要素ＩＤとしては、例えば、すべての構造化文書データの各要素に通し番号を付与すればよい。図５（ｂ）に、図５（ａ）に示した構造化文書データを木構造で表し、その各要素に要素ＩＤを付与した例を示す。
【００２１】
次に、オフセットは、索引テーブル１０２に記憶された文字列が、その文字列を含むテキスト要素内において現れる位置を表す。すなわち、オフセットとは、図６に示すように、その文字列を含む要素内において、文字列の先頭の文字がその要素内において何番目の文字であるかを表している。例えば、図６に示す例では、「会社」という文字列の先頭の文字「会」は、テキスト要素「新会社」において２番目に現れるため、オフセットは「２」と表される。
【００２２】
また、末尾フラグは、索引テーブル１０２に記憶された文字列が、その文字列を含むテキスト要素の末尾に現れる文字列であるか否かを表す。具体的には、索引テーブル１０２に記憶された文字列が、テキスト要素の最後に現れる文字列である場合は「１」、そうではない場合は「０」と表す。ただし、図４に示す例では、文字列が２文字からなる場合のみ末尾フラグの対象とし、文字列が１文字のみからなる場合には、末尾フラグを「０」としている。
【００２３】
また、構造化文書データベース１０１に記憶された構造化文書データのあるテキスト要素に含まれる文字列が、ほかのテキスト要素にも含まれる場合には、その文字列を、その文字列を含むすべての文書ＩＤや要素ＩＤなどのデータと関連付けて記憶しておくとよい。すなわち、例えば、図７に示すように、文字列「会社」が文書ＩＤ「１」の構造化文書データ以外にも、文書ＩＤ「２２」および文書ＩＤ「３５」の構造化文書データにも含まれている場合には、これらもあわせて文字列「会社」に関連付けて記憶しておく。このようにすることで、索引テーブル１０２から、特定の文字列を含む構造化文書データやテキスト要素を容易に検出することが可能になる。
【００２４】
次に、テキスト要素間接続テーブル１０３には、構造化文書データベース１０１に記憶された構造化文書データに含まれるテキスト要素間のつながり情報が記憶されている。図８に、テキスト要素間接続テーブル１０３に記憶された、テキスト要素間のつながり情報を表すデータの例を示す。ここで、図８は、図５（ａ）の構造化文書データに対して、図５（ｂ）に示すように要素ＩＤが付与されている場合のテキスト要素間のつながり情報を表す例であり、テキスト要素ごとに、タグ要素を除いた場合に、そのテキスト要素の直前の要素となるテキスト要素の要素ＩＤが「前方リンク」に記憶されている。なお、各構造化文書データの先頭に現れるテキスト要素については、つながりを有するテキスト要素が存在しないので、テキスト要素間接続テーブル１０３の「前方リンク」の項目には「−」を記憶する。
【００２５】
以上が構造化文書データベース１０１、索引テーブル１０２およびテキスト要素間接続テーブル１０３に記憶されるデータの例である。なお、構造化文書データベース１０１、索引テーブル１０２およびテキスト要素間接続テーブル１０３としては、例えば、半導体メモリ、ハードディスク、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＡＭ，ＤＶＤ−ＲＷなどの記憶媒体を適用できる。
【００２６】
次に図１および図２を用いて、本発明の第１の実施形態に係わる構造化文書処理装置の動作について説明する。なお、図２は、本発明の第１の実施形態に係わる構造化文書処理装置の動作を示すフローチャートである。
【００２７】
まず、キーワード入力部１０４に、ユーザによってキーワードが入力される（ステップＳ１０１）。キーワード入力部１０４には、例えば、マウスやキーボードなどの装置が適用できる。また、キーワードの入力は、あらかじめ定められた複数のキーワードを別途設けた図示しない表示部に表示しておき、その中からユーザ所望のキーワードを、マウスなどを用いて指定できるようにしてもよい。このように、キーワード入力部１０４に入力されたキーワードは、次に、キーワード分割部１０５に送られる。
【００２８】
キーワード分割部１０５は、キーワード入力部１０４に入力されたキーワードを、あらかじめ定めた文字数の文字列の組に分割する（ステップＳ１０２）。なお、あらかじめ定めた文字数は、索引テーブル１０２に記憶されている各文字列の文字数であり、図４に示す索引テーブルでは「２文字」である。すなわち、例えば、入力されたキーワードが「会社設立」である場合には、それぞれ２文字の文字列「会社」と「設立」に分割される。なお、キーワードを２文字ごとに分割する場合、キーワードが「会社設立中」のように奇数の文字数の場合には、「会社」「設立」「立中」のように、末尾の文字列も２文字になるように分割する。このようにしてキーワードを分割して得られた複数の文字列は、次に、検索処理部１０６に送られる。
【００２９】
検索処理部１０６では、まず、文字列検出部１０６ａが、キーワード分割部１０５から送られた文字列を索引テーブル１０２から検出する（ステップＳ１０３）。次に、文書ＩＤ取得部１０６ｂが、索引テーブル１０２およびテキスト要素間接続テーブル１０３を用いて、文字列検出部１０６ａで検出された文字列のつながりを解析し、検出された文字列のうち構造化文書データ内でキーワードを構成する文字列の組み合わせを求め、その求められた文字列の組み合わせを含む構造化文書データのＩＤをキーワード入力部１０４で入力されたキーワードを含む構造化文書データのＩＤとして取得する（ステップＳ１０４）。以下では、キーワードが「会社設立」である場合に、文書ＩＤ取得部１０６ｂにおいて、そのキーワードを含む構造化文書データのＩＤを取得する方法について、図９を用いて詳細に説明する。
【００３０】
図９（ａ）、（ｂ）、（ｃ）および（ｄ）は、文字列検出部１０６ａにおいて索引テーブル１０２から検出された文字列「会社」と「設立」の文書ＩＤ、要素ＩＤ、オフセットおよび末尾フラグの例を表している。以下、それぞれの場合について、「会社」と「設立」のつながりを解析する方法を説明する。なお、図９には、索引テーブル１０２およびテキスト要素間接続テーブル１０３のうち、関連する箇所のみを示し、他の部分については省略している。
【００３１】
まず、図９（ａ）に示す例では、「会社」と「設立」が異なる文書ＩＤを有するため、これらの「会社」と「設立」は、つながりを有さないことがわかる。したがって、これらの文字列はキーワードを構成しない。
【００３２】
次に、図９（ｂ）に示す例では、「会社」と「設立」は同じ文書ＩＤを有するため、これらの文字列は同じ構造化文書データ内に属することがわかる。また、要素ＩＤも同じであるため、これらの文字列が同じテキスト要素内に含まれていることがわかる。しかし、オフセットから、そのテキスト要素内における、これらの文字列の出現位置は、図１０に示すように、連続しない関係であることがわかる。したがって、これらの文字列はキーワードを構成しない。
【００３３】
次に、図９（ｃ）に示す例では、図９（ｂ）に示す例と同様に、「会社」と「設立」が同じ構造化文書データ内の同じテキスト要素内にあることがわかる。そして、オフセットから、図１１に示すように、そのテキスト要素内において、これらの文字列が連続して現れていることがわかる。したがって、これらの文字列はキーワードを構成する。そこで、文書ＩＤ取得部１０６ｂは、これらの文字列を含む文書ＩＤ「３」を、構造化文書データ取得部１０７に送る。
【００３４】
次に、図９（ｄ）に示す例では、「会社」と「設立」が、同じ構造化文書データ内の異なるテキスト要素内に属することがわかる。また、末尾フラグから、「会社」が、要素「５」の末尾の文字列であることがわかる。一方、オフセットから、「設立」が、要素「７」の先頭の文字列であることがわかる。ここで、テキスト要素間接続テーブルに示す要素間のつながりから、要素「５」と要素「７」は、つながりを有するテキスト要素であるため、この「会社」と「設立」は、テキストを横断する連続した文字列の組み合わせであることがわかる。したがって、これらの文字列はキーワードを構成する。そこで、文書ＩＤ取得部１０６ｂは、これらの文字列を含む文書ＩＤ「１」を、構造化文書データ取得部１０７に送る。
【００３５】
このように、索引テーブル１０２およびテキスト要素間接続テーブル１０３を用いて文字列のつながりを解析して、キーワードを構成する文字列の組み合わせを検出することで、テキスト要素内に含まれるキーワードのみならず、テキスト要素を横断するキーワードを含む構造化文書データのＩＤを取得することが可能になる。そして、このようにして取得された構造化文書データのＩＤは、次に、構造化文書データ検出部１０７に送られる。
【００３６】
構造化文書データ検出部１０７は、検索処理部１０６から送られる構造化文書データのＩＤに基づいて、構造化文書データベース１０１から構造化文書データを検出する（ステップＳ１０５）。検出された構造化文書データは、例えば、別途設けた図示しない表示部に表示させてもよく、メモリやＣＤ−Ｒなどの記憶媒体に記憶できるようにしてもよい。
【００３７】
このように、第１の実施形態に係わる構造化文書処理装置によれば、索引テーブルからキーワードを分割して得られる文字列を検出し、それらの文字列が異なるテキスト要素に含まれている場合に、それらの文字列のつながりを、それらの文字列がテキスト要素内で現れる位置およびその文字列を含むテキスト要素間のつながり情報を用いて解析することにより、タグにより２つのテキスト要素に区分されたキーワードを含む構造化文書データを検出することが可能となる。
【００３８】
なお、上述した実施形態では、索引テーブル１０２に記憶される文字列の文字数は「２文字」であるとしたが、索引テーブル１０２に記憶される文字列の文字数は「２文字」に限定されない。例えば、日本語のテキストについては「２文字」、英語などのアルファベットのテキストについては「３文字」というように、テキストの種類に応じて異なった文字数とすることも可能である。
【００３９】
また、上述した実施形態では、各文字列がテキスト要素の末尾に現れる文字列であるか否かを、末尾フラグによって表していたが、文字列ごとに、その文字列を含むテキスト要素に含まれる文字数をあわせて記憶しておき、文字列のオフセットと、その文字列を含むテキスト要素の文字数から、その文字列がテキスト要素の末尾に現れる文字列であるか否かを判定できるようにすることも可能である。
【００４０】
また、上述した実施形態では、索引テーブル１０２に記憶される要素ＩＤを、構造化文書データベース１０１に含まれるすべての構造化文書データの要素に付与された通し番号であるとしたが、索引テーブル１０２に記憶される要素ＩＤを、その要素が含まれる構造化文書データ内の要素の通し番号とすることも可能である。この場合、テキスト要素間接続テーブル１０３には、例えば、図１２に示すように、文書ＩＤをインデックスとして、要素ＩＤと文書ＩＤとを関連付けてテキスト要素間の接続を記憶すれば、その要素ＩＤと文書ＩＤから、構造化文書データベース１０１の構造化文書データに含まれる要素を一意に特定することができ、任意の構造化文書データに含まれるテキスト要素間の接続を知ることが可能となる。そして、このように、要素ＩＤを構造化文書データ内の通し番号として、要素ＩＤと文書ＩＤとを結び付けて構造化文書データに含まれる要素を一意に特定できるようにすることにより、構造化文書データベース１０１に記録されている構造化文書データの内容を修正する場合に、索引テーブル１０２およびテキスト要素間接続テーブル１０３に記憶されているほかの構造化文書データのテキスト要素の要素ＩＤを修正する必要がなくなるため、索引テーブル１０２およびテキスト要素間接続テーブル１０３の修正箇所を減らし、修正を簡易に行うことが可能になる。
【００４１】
また、上述した実施形態では、図４に示すように、索引テーブル１０２に記憶された文字列が、その文字列を含むテキスト要素の末尾に現れる文字列であるか否かを末尾フラグによって表していた。そして、文書ＩＤ取得部１０６ｂは、その末尾フラグが「１」である場合に、その文字列を含むテキスト要素の要素ＩＤからテキスト要素間接続テーブル１０３を参照して、テキスト要素間の接続を解析していた。これに対して、末尾フラグとして「１」を記憶する代わりに、図１３に示すように、その文字列を含むテキスト要素が接続する先のテキスト要素の要素ＩＤを末尾フラグの値として記憶しておくことも可能である。このように、構造化文書データのテキスト要素間のつながり情報を索引テーブル１０２に記憶された文字列と関連付けて記憶することで、末尾フラグの値から短時間でその文字列を含むテキスト要素が接続する先のテキスト要素の探索を行うことが可能になる。
【００４２】
なお、この構造化文書処理装置は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、キーワード入力部１０４、キーワード分割部１０５、文字列検出部１０６ａ、文書ＩＤ取得部１０６ｂおよび構造化文書データ検出部１０７は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、構造化文書処理装置は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、ＣＤ−ＲＯＭなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、構造化文書データベース１０１、索引テーブル１０２およびテキスト要素間接続テーブル１０３は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスクもしくはＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒなどの記憶媒体などを適宜利用して実現することができる。
【００４３】
（第２の実施例）
上述した第１の実施形態に係わる構造化文書処理装置では、例えば、キーワードが「会社設立」であれば、キーワード分割部１０５において、キーワードが「会社」と「設立」とに分割され、それぞれの文字列が図４に示す索引テーブルから検出されていた。ここで、例えば、キーワードが「新会社設立」である場合には、キーワード分割部１０５で得られる文字列は「新会」、「社設」および「設立」となる。このとき、「新会」および「設立」は文書ＩＤ「１」に含まれる文字列として、図４に示す索引テーブル１０２に記憶されているが、テキスト要素間を横断する文字列「社設」は、文書ＩＤ「１」には含まれているが、図４に示す索引テーブル１０２には記憶されていない。そのため、文字列検出部１０６ａは、この図４に示す索引テーブルから「社設」という文字列を検出しない。そのため、第１の実施形態に係わる構造化文書処理装置は、キーワード「新会社設立」に対して、図４に示す文書ＩＤ「１」を検出しないことになる。
【００４４】
そこで、第２の実施形態では、索引テーブルに、テキスト要素に含まれる文字列のみならず、２つのテキスト要素を横断する文字列をも記憶しておく構造化文書処理装置の実施の形態について説明する。
【００４５】
図１４は、本発明の第２の実施形態に係わる構造化文書処理装置を示すブロック図である。
【００４６】
この第２の実施形態に係わる構造化文書処理装置は、複数の構造化文書データを記憶する構造化文書データベース２０１と、構造化文書データベースに記憶された構造化文書データのテキスト要素に含まれる文字列と２つのテキスト要素を横断する文字列とを、その文字列を含む構造化文書データのＩＤ、その文字列を含む少なくともひとつのテキスト要素のＩＤ、および、そのテキスト要素内において、その文字列が現れる位置の情報と関連付けて記憶した索引テーブル２０２と、構造化文書データベース２０１に含まれるテキスト要素間のつながり情報を記憶したテキスト要素間接続テーブル２０３と、キーワードを入力するキーワード入力部２０４と、キーワード入力部２０４で入力されたキーワードを複数の文字列の組に分割するキーワード分割部２０５と、キーワード分割部２０５で得られた文字列を索引テーブル２０２から検出する文字列検出部２０６ａと、検出された文字列のつながりを解析して、キーワード入力部２０４で入力されたキーワードを含む構造化文書データのＩＤを取得する文書ＩＤ取得部２０６ｂとからなる検索処理部２０６と、構造化文書データベース２０１から検索処理部２０６で取得された識別子に対応する構造化文書データを検出する構造化文書データ検出部２０７と、を備える。
【００４７】
つまり、第１の実施形態とは、構造化文書処理装置の構成は同じであり、索引テーブル２０２に、２つのテキスト要素を横断する文字列が、その文字列を含む構造化文書データのＩＤ、その文字列を含む少なくともひとつのテキスト要素のＩＤ、および、そのテキスト要素内において、その文字列が現れる位置の情報と関連付けて記憶されている点と、検索処理部２０６において文字列検出部２０６ａが、索引テーブル２０２に記憶されたテキスト要素内の文字列に加えて、２つのテキスト要素を横断する文字列をも検出する点が異なるのみである。したがって、以下では、第１の実施形態と共通の動作を行う部分（キーワード入力部２０４、キーワード分割部２０５および構造化文書データ検出部２０７）については、説明を省略する。
【００４８】
まず、図１６を用いて、索引テーブル２０２に記憶されているデータの内容について説明する。
【００４９】
索引テーブル２０２には、構造化文書データベース２０１に記憶された構造化文書データのテキスト要素に含まれる、あらかじめ定められた文字数の複数の文字列と、構造化文書データベース２０１に記憶された構造化文書データの２つのテキスト要素を横断する文字列とが、それらの文字列を含む構造化文書データのＩＤ、それらの文字列を含む少なくともひとつの要素のＩＤ、および、その要素内でそれらの文字列が現れる位置の情報と関連付けて記憶されている。
【００５０】
図１６に、図３（ａ）に示す構造化文書データを文書ＩＤ「１」として、索引テーブル２０２に記憶した場合の例を示す。図１６に示すように、索引テーブル２０２には、テキスト要素に含まれる文字列（例えば、「新会」「設立」など）に加えて、２つのテキスト要素を横断する文字列（例えば、「社設」「中弊」など）が記憶されている。そして、２つのテキスト要素を横断する文字列を含む要素ＩＤとして、先頭の文字（例えば、「社設」であれば「社」）が含まれるテキスト要素のＩＤを記憶している。そして、さらに、その文字列が、そのテキスト要素内において、２つのテキスト要素を横断する位置に表れることを示すため、「横断フラグ」を設けて、２つのテキスト要素を横断する文字列を「１」、そうではない文字列を「０」として記憶している。
【００５１】
次に図１４および図１５を用いて、本発明の第２の実施形態に係わる構造化文書処理装置の動作について説明する。なお、図１５は、本発明の第２の実施形態に係わる構造化文書処理装置の動作を示すフローチャートである。
【００５２】
検索処理部２０６は、まず、文字列検出部２０６ａにおいて、キーワード分割部２０５から送られた文字列を索引テーブル２０２から検出する（ステップＳ２０３）。次に、文書ＩＤ取得部２０６ｂが、索引テーブル２０２およびテキスト要素間接続テーブル２０３を用いて、文字列検出部２０６ａで検出された文字列のつながりを解析し、検出された文字列のうち構造化文書データ内でキーワードを構成する文字列の組み合わせを求め、その求められた文字列の組み合わせを含む構造化文書データのＩＤを、キーワード入力部２０４で入力されたキーワードを含む構造化文書データのＩＤとして取得する（ステップＳ２０４）。以下では、キーワードが「新会社設立」である場合に、文書ＩＤ取得部２０６ｂにおいて、そのキーワードを含む構造化文書データのＩＤを取得する方法について、図１７を用いて説明する。なお、キーワードが「新会社設立」である場合、文字数が奇数であるため、上述したように、キーワード分割部２０５は「新会社設立」を「新会」「社設」「設立」のように、末尾の文字列も２文字になるように分割する。
【００５３】
図１７は、文字列検出部２０６ａにおいて索引テーブル２０２から検出された文字列「新会」「社設」「設立」の文書ＩＤ、要素ＩＤ、オフセット、末尾フラグおよび横断フラグの例を表している。この例では、まず「新会」と「社設」は、ともに構造化文書データ「１」の要素「５」に属することがわかる。そして、オフセットから、図１８に示すように、これらの文字列が、その要素内において連続して現れていることがわかる。
【００５４】
次に、横断フラグから、要素「５」に属する「社設」は、テキスト要素を横断する文字列であることがわかる。すなわち、「社設」の「社」が要素「５」に属し、「設」は異なるテキスト要素に属する。
【００５５】
一方、「設立」は、その要素ＩＤとオフセットから、要素「７」の先頭の文字列であることがわかる。ここで、テキスト要素間接続テーブルに示す要素間のつながり情報から、要素「５」と要素「７」は、つながりを有するテキスト要素であるので、「新会」「社設」「設立」は、図１９に示すように、テキスト要素を横断する連続する文字列の組み合わせであることがわかる。したがって、これらの文字列はキーワードを構成する。そこで、文書ＩＤ取得部２０６ｂは、これらの文字列を含む文書ＩＤ「１」を、構造化文書データ検出部２０７に送る。
【００５６】
このように、第２の実施形態に係わる構造化文書処理装置によれば、索引テーブル２０２に、テキスト要素に含まれる文字列のみならず、２つのテキスト要素を横断する文字列をも記憶しておくことで、構造化文書データのテキスト要素を横断する文字列からも、キーワード分割部２０５得られた文字列を検出することが可能になる。
【００５７】
なお、上述した実施形態では、各文字列が２つのテキスト要素を横断する文字列であるか否かを横断フラグによって表していたが、文字列ごとに、その文字列を含むテキスト要素に含まれる文字数をあわせて記憶しておき、文字数のオフセットと、その文字列を含むテキスト要素の文字数から、その文字数がテキスト要素を横断する文字列であるか否かを判定するようにすることも可能である。すなわち、例えば、図１６に示す索引テーブルにおいて、文字列「社設」について、横断フラグの代わりに、オフセット「３」と、その文字列を含むテキスト要素に含まれる文字数「３文字」を記憶しておけば、オフセットから「社設」の「社」が、そのテキスト要素の末尾に現れる文字であることがわかるので、「社設」を２つのテキスト要素を横断する文字列であると判定することが可能になる。
【００５８】
また、上述した実施形態では、図１６に示すように、索引テーブル２０２に記憶された文字列が、その文字列を含むテキスト要素の末尾に現れる文字列であるか否かを末尾フラグで、その文字列が２つのテキスト要素を横断する文字列であるか否かを横断フラグによって表していた。そして、文書ＩＤ取得部２０６ｂは、その末尾フラグが「１」である場合、もしくは、その横断フラグが「１」である場合に、その文字列を含むテキスト要素の要素ＩＤからテキスト要素間接続テーブル２０３を参照して、テキスト要素間の接続を解析していた。これに対して、末尾フラグとして「１」、もしくは、横断フラグとして「１」を記憶する代わりに、図２０に示すように、その文字列を含むテキスト要素が接続する先のテキスト要素の要素ＩＤを末尾フラグ、もしくは、横断フラグの値として記憶しておくことも可能である。このように、構造化文書データのテキスト要素間のつながり情報を索引テーブル２０２に記憶された文字列と関連付けて記憶することで、末尾フラグもしくは横断フラグの値から短時間でその文字列を含むテキスト要素が接続する先のテキスト要素の探索を行うことが可能になる。
【００５９】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明の第１の実施形態に係わる構造化文書処理装置の構成を示すブロック図。
【図２】本発明の第１の実施形態の動作を示すフローチャート。
【図３】本発明の第１の実施形態の構造化文書データの一例を示す図。
【図４】本発明の第１の実施形態の索引テーブルの一例を示す図。
【図５】本発明の第１の実施形態の要素ＩＤの一例を示す図。
【図６】本発明の第１の実施形態の索引テーブルに記憶されたオフセットを説明するための図。
【図７】本発明の第１の実施形態の索引テーブルの一例を示す図。
【図８】本発明の第１の実施形態のテキスト要素間接続テーブルの一例を示す図。
【図９】本発明の第１の実施形態の索引テーブルに記憶された文字列の例を示す図。
【図１０】本発明の第１の実施形態のオフセットと文字列の関係を示す図。
【図１１】本発明の第１の実施形態のオフセットと文字列の関係を示す図。
【図１２】本発明の第1の実施形態のテキスト要素間接続テーブルの一例を示す図。
【図１３】本発明の第1の実施形態の索引テーブルの一例を示す図。
【図１４】本発明の第２の実施形態に係わる構造化文書処理装置の構成を示すブロック図。
【図１５】本発明の第２の実施形態の動作を示すフローチャート。
【図１６】本発明の第２の実施形態の索引テーブルの一例を示す図。
【図１７】本発明の第２の実施形態の索引テーブルに記憶された文字列の一例を示す図。
【図１８】本発明の第２の実施形態のオフセットと文字列の関係を示す図。
【図１９】本発明の第２の実施形態のテキスト要素を横断するキーワードの一例を示す図。
【図２０】本発明の第２の実施形態の索引テーブルの一例を示す図。
【図２１】従来技術の課題を説明するための図。
【符号の説明】
【００６１】
１０１、２０１・・・構造化文書データベース
１０２、２０２・・・索引テーブル
１０３、２０３・・・テキスト要素間接続テーブル
１０４、２０４・・・キーワード入力部
１０５、２０５・・・キーワード分割部
１０６、２０６・・・検索処理部
１０６ａ、２０６ａ・・・文字列検出部
１０６ｂ、２０６ｂ・・・文書ＩＤ取得部
１０７、２０７・・・構造化文書データ検出部
【図１】
2006172268.tif 000003
【図２】
2006172268.tif 000004
【図３】
2006172268.tif 000005
【図４】
2006172268.tif 000006
【図５】
2006172268.tif 000007
【図６】
2006172268.tif 000008
【図７】
2006172268.tif 000009
【図８】
2006172268.tif 000010
【図９】
2006172268.tif 000011
【図１０】
2006172268.tif 000012
【図１１】
2006172268.tif 000013
【図１２】
2006172268.tif 000014
【図１３】
2006172268.tif 000015
【図１４】
2006172268.tif 000016
【図１５】
2006172268.tif 000017
【図１６】
2006172268.tif 000018
【図１７】
2006172268.tif 000019
【図１８】
2006172268.tif 000020
【図１９】
2006172268.tif 000021
【図２０】
2006172268.tif 000022
【図２１】
2006172268.tif 000023