(57)【要約】【課題】構造化データと非構造化データの混在する文書データの検索が高速にしかも効率よく行える文書検索装置および方法を提供する。【解決手段】異なる２つの検索方式のうちの１つの第１の検索方式の検索対象となる構造化データと、他の１つの第２の検索方式の検索対象となる非構造化データとを含む複数の文書データを記憶した記憶手段から所望の文書データを検索するためのものであって、構造化データに対する第１の検索条件と、非構造化データに対する第２の検索条件を入力し、記憶手段に記憶された各文書データ中の構造化データを第１の検索方式を用いて検索することにより、第１の検索条件を満たす構造化データを含む文書データを求め、この求めた各文書データの非構造化データを第２の検索方式を用いて検索することにより、前記第２の検索条件を満たす非構造化データを含む文書データを求める。【選択図】    図１
2004258912.tif 000002
【特許請求の範囲】
【請求項１】
異なる２つの検索方式のうちの１つである第１の検索方式の検索対象となる構造化データと、前記２つの検索方式のうちの他の１つである第２の検索方式の検索対象となる非構造化データとを含む複数の文書データを記憶する記憶手段と、
前記構造化データに対する第１の検索条件と、前記非構造化データに対する第２の検索条件を入力する入力手段と、
前記記憶手段に記憶された各文書データ中の前記構造化データを前記第１の検索方式を用いて検索することにより、前記第１の検索条件を満たす構造化データを含む文書データを求める第１の検索手段と、
前記第１の検索手段での検索の結果得られた各文書データ中の前記非構造化データを前記第２の検索方式を用いて検索することにより、前記第２の検索条件を満たす非構造化データを含む文書データを求める第２の検索手段と、
この第２の検索手段での検索の結果得られた文書データを出力する出力手段と、
を具備したことを特徴とする文書検索装置。
【請求項２】
前記第１の検索条件は、構造化データを構成する要素の要素名と当該要素名に対応付けられたデータに含まれる文字列を指定したものであり、
前記第２の検索条件は、前記非構造化データに含まれる文字列を指定したものであり、
前記第１の検索手段は、前記第１の検索条件として指定された要素名と文字列をもつ要素を含む文書データを求め、
前記第２の検索手段は、前記第２の検索条件として指定された文字列を含む非構造化データを含む文書データを求めることを特徴とする請求項１記載の文書検索装置。
【請求項３】
異なる２つの検索方式のうちの１つである第１の検索方式の検索対象となる構造化データと、前記２つの検索方式のうちの他の１つである第２の検索方式の検索対象となる非構造化データとを含む複数の文書データを記憶した記憶手段から所望の文書データを検索するための検索方式であって、
前記構造化データに対する第１の検索条件と、前記非構造化データに対する第２の検索条件を入力する入力ステップと、
前記記憶手段に記憶された各文書データ中の前記構造化データを前記第１の検索方式を用いて検索することにより、前記第１の検索条件を満たす構造化データを含む文書データを求める第１の検索ステップと、
前記第１の検索ステップでの検索の結果得られた各文書データ中の前記非構造化データを前記第２の検索方式を用いて検索することにより、前記第２の検索条件を満たす非構造化データを含む文書データを求める第２の検索ステップと、
この第２の検索ステップでの検索の結果得られた文書データを出力する出力ステップと、
を有することを特徴とする文書検索方法。
【請求項４】
前記第１の検索条件は、前記構造化データを構成する要素の要素名と当該要素名に対応付けられたデータに含まれる文字列を指定したものであり、
前記第２の検索条件は、前記非構造化データに含まれる文字列を指定したものであり、
前記第１の検索ステップは、前記第１の検索条件として指定された要素名と文字列をもつ要素を含む文書データを求め、
前記第２の検索ステップは、前記第２の検索条件として指定された文字列を含む構造化データを含む文書データを求めることを特徴とする請求項３記載の文書検索方法。
【請求項５】
異なる２つの検索方式のうちの１つである第１の検索方式の検索対象となる構造化データと、前記２つの検索方式のうちの他の１つである第２の検索方式の検索対象となる非構造化データとを含む複数の文書データを記憶した記憶手段から所望の文書データを検索するためのプログラムであって、
コンピュータに、
前記構造化データに対する第１の検索条件と、前記非構造化データに対する第２の検索条件を入力する入力ステップと、
前記記憶手段に記憶された各文書データ中の前記構造化データを前記第１の検索方式を用いて検索することにより、前記第１の検索条件を満たす構造化データを含む文書データを求める第１の検索ステップと、
前記第１の検索ステップでの検索の結果得られた各文書データ中の前記非構造化データを前記第２の検索方式を用いて検索することにより、前記第２の検索条件を満たす非構造化データをもつ文書データを求める第２の検索ステップと、
この第２の検索ステップでの検索の結果得られた文書データを出力する出力ステップと、
を実行されるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は文書検索装置および方法に関する。
【０００２】
【従来の技術】
インターネットやイントラネットにおいて顧客情報や商品情報などのデータベースと連動したサービスやアプリケーションを構築する技術として、従来のリレーショナルデータベース（以下ＲＤＢ）技術に加えて近年はＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ：株式会社メディアフュージョンＸＭＬラボ発行所ソフトバンクパブリッシング株式会社「ＭＬデータベースによるＷｅｂアプリケーション開発」２００１年３月）といったマークアップ言語によるデータベース技術が普及してきている。
【０００３】
ＸＭＬデータの検索技術としては、ＸＱＬ（ＸＭＬ  Ｑｕｅｒｙ  Ｌａｎｕｇａｇｅ：［ＵＲＬ］ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴａｎｄＳ／ＱＬ／ＱＬ９８／ｐｐ／ｘｑｌ．ｈｔｍｌ）などが知られている。一方、文書情報の検索方式としては従来からテキスト検索、特にフルテキスト検索技術がよく知られている。
【０００４】
一般にＸＭＬ技術は従来のＲＤＢ技術が扱ってきたような構造化されたデータと、従来のテキスト検索技術が扱ってきたような非構造化データの中間に位置するようなデータ（半構造化データ）を処理するのに適しているといわれている。
【０００５】
ところで、ＸＭＬの普及に伴い従来テキスト検索で扱ってきたデータをＸＭＬデータ化してＸＭＬ検索しようという要求が高まってきている。既存のテキスト文書の完全なＸＭＬ化のコストは膨大であり、当面はその文書中の限られた情報データについてだけＸＭＬ化を行うことが多いと思われる。また管理上、ＸＭＬ化の対象である文書自体にＸＭＬタグを付加していく形でＸＭＬ化を行うケースが多い。ＸＭＬ化の対象でない文書部分は、適当なタグで囲むことによりコメント部分として処理される。このようにすれば、元のデータとＸＭＬ化したデータがファイル単位で一元管理でき、元のデータのどの部分がＸＭＬ化されていて、どの部分がまだそうでないかが自明であるからである。元のデータの情報はすべてファイル中で保持されているので、将来のＸＭＬ  化作業の際にもタグを追加していくだけでよく、便宜がいい。
【０００６】
このような情報の一部がＸＭＬ化されたデータに対してＸＭＬ検索を行う場合、未だＸＭＬ化されていないデータ部分はＸＭＬデータではないので、当然のことながらうまく検索できないという問題がある。
【０００７】
ＸＭＬ文書などの構造化文書の検索においてフルテキスト検索を利用しているものがある（例えば、特許文献１参照）。この手法は、ＸＭＬ文書全体を上記したようなコメント部分も含めてすべて事前に処理してフルテキスト検索用インデクスを作成しておく。そのため、通常のＸＭＬ検索に必要でないコメント部分もインデクスに含まれるため、インデクスが巨大になり検索速度を低下させる。
【０００８】
また、文書のレイアウト情報なども含めてＸＭＬ化して統一管理するというものもある（例えば、特許文献２参照）。
【０００９】
しかし、上記いずれの技術も、ＸＭＬ化されたデータと未だＸＭＬ化されていないデータ部分とが混在する文書データを高速に、しかも効率よく検索することはできない。
【００１０】
【特許文献１】
特開２００１−１６７０８７公報
【００１１】
【特許文献２】
特開２０００−９９５４３公報
【００１２】
【発明が解決しようとする課題】
以上説明したように、従来は、ＸＭＬデータ化された構造化データと、ＸＭＬデータ化されていない非構造化データとが混在する文書データを高速に、しかも効率よく検索することができないという問題点があった。
【００１３】
そこ、本発明は、上記問題点に鑑み、構造化データと非構造化データの混在する文書データの検索が高速にしかも効率よく行える文書検索装置および方法を提供することを目的とする。
【００１４】
【課題を解決するための手段】
本発明は、異なる２つの検索方式のうちの１つである第１の検索方式の検索対象となる構造化データと、前記２つの検索方式のうちの他の１つである第２の検索方式の検索対象となる非構造化データとを含む複数の文書データを記憶した記憶手段から所望の文書データを検索するためのものであって、前記構造化データに対する第１の検索条件と、前記非構造化データに対する第２の検索条件を入力し、前記記憶手段に記憶された各文書データ中の前記構造化データを前記第１の検索方式を用いて検索することにより、前記第１の検索条件を満たす構造化データを含む文書データを求め、その結果得られた各文書データ中の前記非構造化データを前記第２の検索方式を用いて検索することにより、前記第２の検索条件を満たす非構造化データを含む文書データを求め、その結果得られた文書データを出力することを特徴とする。本発明によれば、構造化データと非構造化データとが混在する文書データに対し、構造化データに対しては、構造化データの検索に適した検索方式を用いて検索を行い、非構造化データに対しては、非構造化データの検索に適した検索方式を用いて検索を行い、しかも、先に、構造化データに対する検索を行って得られた結果を検索対象として非構造化データに対する検索を行うことにより、構造化データと非構造化データの混在する文書データの検索が高速にしかも効率よく行える。
【００１５】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して説明する。
【００１６】
図１は、本実施形態に係る文書検索システムの構成例を示したもので、入力部１、検索処理部２、第１の検索部３、第２の検索部４、文書記憶部５、出力部６から構成されている。
【００１７】
文書記憶部５には、複数の文書データが記憶されている。ここに記憶されている複数の文書データは、もともと、構造化されていない（所定のタグでマークアップされていない）非構造化文書データであったものを、構造化するためのＸＭＬタグで囲まれたデータを挿入して、あるいは、ＸＭＬタグで文書中の所定のデータを囲むことによりマークアップして作成された、構造化（ＸＭＬ化）されたデータと構造化されていないデータとが混在する文書データである。
【００１８】
構造化されたデータ（構造化データ）は、上記のように、構造化するための所定のＸＭＬタグと当該タグで囲まれたデータとからなる少なくとも１つの要素からなるデータである。各要素は、ＸＭＬタグ（要素名とも呼ぶ）に当該ＸＭＬタグに対応するデータを対応付けたもの、とも云える。
【００１９】
また、各文書中の構造化されていないデータ領域は、ここでは、コメント領域と呼び、コメント領域内のデータを非構造化データとも呼ぶ。各文書中でコメント領域（非構造化データ部分）と、構造化データ部分とを区別するために、ここでは、コメント領域は、「＜！−−」と「−−＞」という記号で囲むことにする。この記号で囲まれた領域は、通常のＸＭＬ  処理系において（例えば、図１の第１の検索部３において）、コメントとして無視して処理される。
【００２０】
なお、コメント領域を定めるための特定のタグを予め定義し、そのような特定のタグで囲まれた領域は、上記コメント領域として取り扱うようにしてもよい。この場合は、後述する第１の検索部３の処理に、文書中の上記特定のタグで囲まれた領域をコメント領域として無視するような機能を新たに追加する必要がある。
【００２１】
図２はＸＭＬ化する前の構造化データを含まない非構造化文書データであるオリジナル文書の具体例を示したものである。内容は会議の開催通知である。図３は図２  に示した文書データの一部のデータをＸＭＬ化したものである。既に述べたように、非構造化文書データ中の予め定義したＸＭＬタグに対応するデータを当該ＸＭＬタグに対応付ける（例えば、ここでは、ＸＭＬタグでマークアップする）形で、ＸＭＬ文書化されている。この例では、会議の名称、「日時」、「場所」を表すデータが、ＸＭＬタグでマークアップされている。すなわち、会議の名称は、＜ｎａｍｅ＞タグでマークアップされ、「日時」は＜ｄａｔｅ＞タグでマークアップされ、「場所」は＜ｐｌａｃｅ＞タグでマークアップされている。なお、ここでは、＜ｄａｔｅ＞タグで始まる要素では、＜ｙｅａｒ＞、＜ｍｏｎｔｈ＞、＜ｄａｙ＞、＜ｄａｙ  ｏｆ  ｔｈｅ  ｙｅａｒ＞、＜ｈｏｕｒ  ｆｒｏｍ＞、＜ｈｏｕｒ  ｔｏ＞といったタグで、年、月、日、曜日、開始時間と終了時間を表すデータがそれぞれマークアップされて構成された要素を包含する構造を有している。また、＜ｐｌａｃｅ＞タグで始まる要素は、＜ａｄｄｒｅｓｓ＞タグで住所データがマークアップされて構成された要素を包含する構造を有している。
【００２２】
図３に示した文書データでは、元の文書データ（図２参照）の改行やインデントといった書式構造はそのまま保存されている。上記したようなタグで囲まれた部分以外は、コメント領域として、「＜！−−」と「−−＞」という記号で囲まれている。
【００２３】
文書記憶部５に記憶された各文書中の、＜ｎａｍｅ＞タグ、＜ｄａｔｅ＞タグ＜ｐｌａｃｅ＞タグといったタグでマークアップされた構造化データが、後述する第１の検索部３におけるＸＭＬ検索の検索対象となり、非構造化データの領域（コメント領域）は、後述する第２の検索部４におけるフルテキスト検索（あるいは全文検索）の検索対象となる。
【００２４】
入力部１は、グラフィカル・ユーザ・インターフェイス（以下ＧＵＩ）を備えており、所望の文書を検索するための検索条件を入力するためのものである。ここで、検索条件としては、文書データ中の構造化データに対する検索条件と、コメント領域内の非構造化データに対する検索条件とがある。ここでは、前者を第１の検索条件、後者を第２の検索条件と呼ぶ。
【００２５】
図４は、入力部１により所定のディスプレイに表示される検索条件の入力画面の一例を示したものである。図４に示した検索条件入力画面では、「会議名」「日時」「場所」の各項目に対応する空欄部分にユーザが所望の文字列（キーワード）を入力することにより、構造化データに対する検索条件（第１の検索条件）を指定することができるようになっている。「会議名」「日時」「場所」といった項目は、文書記憶部５に記憶されている文書データに含まれるタグ名に対応する。すなわち、「会議名」は＜ｎａｍｅ＞タグに対応し、「日時」は＜ｄａｔｅ＞タグに対応し、「場所」は＜ｐｌａｃｅ＞タグに対応する。
【００２６】
また、図４に示した検索条件入力画面では、「その他」の項目に対応する空欄部分に、ユーザが所望の文字列（キーワード）を入力することにより、非構造化データに対する検索条件（第２の検索条件）を指定することができるようになっている。
【００２７】
検索処理部２は、入力部１から入力された検索条件を、第１の検索部３でのＸＭＬ検索で用いる検索条件（第１の検索条件）と、第２の検索部４でのテキスト検索で用いる検索条件（第２の検索条件）とに分離する。第１の検索条件を第１の検索部３が解釈可能な形式の第１の検索条件文に変換して第１の検索部３に出力し、第２の検索条件を第２の検索部４が解釈可能な形式の第２の検索条件文に変換して第２の検索部４に出力する。そして、第１の検索部３、第２の検索部４のそれぞれから出力された検索結果を基に、ユーザに提示するための表示データを生成し、それを出力部６へ出力する。
【００２８】
出力部６は、検索処理部２で作成された表示データを、例えば所定のディスプレイに表示する。ＧＵＩを備えており、ユーザが検索結果をブラウズすることができるようになっている。
【００２９】
第１の検索部３は、検索処理部２から渡された上記第１の検索条件文を基に、公知のＸＭＬ検索方式を用いて、文書記憶部５に記憶された各文書データの構造化データを検索対象として、当該第１の検索条件文に含まれる上記第１の検索条件を満たす文書データを検索する。例えば、文書記憶部５に記憶された文書の中から、第１の検索条件として指定されたタグ名（要素名）の要素（構成要素）を含み、しかも、当該要素に当該第１の検索条件として指定された文字列を含むデータが対応付けられているような文書を検索する。検索結果として得られた文書は、検索処理部２に返される。
【００３０】
第２の検索部４は、検索処理部２から渡された上記第２の検索条件文を基に、検索処理部２から渡された、第１の検索部５で検索された各文書のコメント領域内を検索対象として、公知のフルテキスト検索方式を用い、コメント領域内の非構造化データが上記第２の検索条件文に含まれる上記第２の検索条件を満たす文書を検索する。例えば、第１の検索部５で検索された文書の中から、第２の検索条件として指定された文字列を含むコメント領域をもつような文書を検索する。検索結果として得られた文書は、検索処理部２に返される。
【００３１】
次に、図５、図６に示すフローチャートを参照して、検索処理部２の処理動作について説明する。
【００３２】
例えば、ユーザが、図４に示した検索条件入力画面上で、図７に示すように、「日時」という項目に対応する空欄に、「１２月１２日」という文字列を検索条件として指定したとする。
【００３３】
この検索条件は入力部１から検索処理部２に送信される（ステップＳ１）。検索処理部２は、ユーザの検索条件を調べて、第１の検索条件と、第２の検索条件とに分離する（ステップＳ２）。まず、第１の検索条件から第１の検索条件文を生成する。上記例の場合、「日時」はタグ名＜ｄａｔｅ＞に対応し、第１の検索条件のみが入力されている。従って、この第１の検索条件から、＜ｄａｔａ＞タグの要素をもち、当該要素が文字列「１２月１２日」を含むような文書を検索するための第１の検索条件文が生成される。そして、この第１の検索条件文を第１の検索部３に渡し、検索を要求し、検索結果を得る（ステップＳ３）。上記例の場合、第１の検索部３では、＜ｄａｔｅ＞タグの要素をもち、当該要素が文字列「１２月１２日」を含む文書（すなわち、＜ｄａｔｅ＞タグの要素をもち、＜ｄａｔｅ＞タグに対応付けられたデータに文字列「１２月１２日」が含まれている文書）が検索され、それが検索処理部２に渡される。
【００３４】
入力部１から入力した検索条件に第２の検索条件が含まれている場合には（ステップＳ４）、当該第２の検索条件から第２の検索条件文を生成し、第１の検索部３での検索により得られた文書と、当該第２の検索条件文を第２の検索部４に渡し、検索を要求する（図６のステップＳ６）。
【００３５】
なお、上記例の場合、ユーザにより入力された検索条件は、第１の検索条件だけであったので（ステップＳ４）、第１の検索部３で検索した結果得られた文書から、表示データを生成し、それを出力部６へ渡す（図５のステップＳ５）。出力部６では、当該表示データを所定のディスプレイに表示する。
【００３６】
図８は、出力部８により表示される、第１の検索部３で検索した結果得られた文書から生成された表示データの表示画面の一例を示したものである。ここでは、２件の文書が検索結果として得られ、この２件の文書中の、会議名、日時、場所のそれぞれに対応するとタグ名に対応付けられたデータの全部または１部を表示するための表示データが表示されている。この表示画面上、例えば、各文書の会議名の欄をマウスでクリックすることにより、検索された文書全体を表示する表示画面に移行することができる。なお、この表示処理は、従来のＨＴＭＬ文書やＸＭＬ文書の処理技術で実現可能である。
【００３７】
次に、ユーザが図４の検索条件入力画面上に、上記例（図７参照）とは異なる検索条件を入力した場合を例にとり図５〜図６に示すフローチャートを参照して検索処理部２の処理動作を説明する。
【００３８】
例えば、ユーザが、図４に示した検索条件入力画面上で、図９に示すように、「日時」という項目に対応する空欄に、「１２月１２日」という文字列を検索条件として指定するとともに、「その他」という項目に対応する空欄に、「田中」という文字列を検索条件として指定したとする。
【００３９】
この検索条件は入力部１から検索処理部２に送信される（ステップＳ１）。検索処理部２は、前述同様、ユーザの検索条件を調べて、第１の検索条件と、第２の検索条件とに分離する（ステップＳ２）。まず、第１の検索条件から第１の検索条件文を生成する。上記例の場合、前述同様、第１の検索条件から、＜ｄａｔａ＞タグの要素をもち、当該要素が文字列「１２月１２日」を含むような文書を検索するための第１の検索条件文が生成され、この第１の検索条件文を第１の検索部３に渡し、検索を要求し、検索結果を得る（ステップＳ３）。
【００４０】
また、上記例の場合、入力部１から入力した検索条件には、「その他」という項目に対応する空欄で、「田中」という文字列が指定されており、この「その他」という項目に対応する空欄に入力された文字列は、非構造化データに対する検索条件（第２の検索条件）として用いられる。すなわち、ユーザにより入力された検索条件から第２の検索条件として、文字列「田中」が得られる（ステップＳ４）。
【００４１】
この第２の検索条件から、第１の検索部５で検索された文書の中からコメント領域内の非構造化データが上記第２の検索条件として与えられた文字列「田中」を含む文書を検索するための第２の検索条件文が生成される。そして、そして、この第２の検索条件文を第２の検索部４に渡し、検索を要求し、検索結果を得る（図６のステップＳ６）。なお、上記「田中」という文字列のように、ＸＭＬ文書のマークアップに使われていない検索キーのことを、「フリーワード」と呼ぶこともある。
【００４２】
上記例の場合、第２の検索部４では、第１の検索部３で検索された各文書のコメント領域内に対してフルテキスト検索を実施し、「田中」という文字列を含むコメント領域をもつ文書を検索する。そして、検索された文書が検索処理部２へ渡される。
【００４３】
例えば、図３に示した文書のコメント領域には、「田中」という文字列が含まれているので、この文書が第１の検索部３で検索されると、当該文書は、第２の検索部４でも、検索結果として検出される。
【００４４】
第２の検索部４で、例えば図３に示した文書等が検索されたときには（ステップＳ７）、当該検索された各文書に対して所定の言語処理を行う（ステップＳ９）。例えば、検索された各文書中の上記第２の検索条件として指定された文字列（上記例の場合、「田中」）が出現する箇所について、言語処理を行う。ここでは、その文字列の出現個所の前後一定文字数部分がＫＷＩＣ（Ｋｅｙ  Ｗｏｒｄ  Ｉｎ  Ｃｏｎｔｅｘｔ）として抽出する。
【００４５】
そして、この言語処理結果を利用して、検索結果の表示データを生成し、それを出力部６に出力する（ステップＳ１０）。出力部６では、当該表示データを所定のディスプレイに表示する。
【００４６】
図１０は、出力部８により表示される、第２の検索部４で検索した結果得られた文書から生成された表示データの表示画面の一例を示したものである。ここでは、１件の文書（例えば、図３に示した文書）が検索結果として得られ、この文書中の、「会議名」に対応するタグ名に対応付けられたデータの全部または一部と、検索条件として指定された「日時」に対応するタグ名に対応付けられたデータの全文または一部と、検索条件として指定された文字列「田中」の前後一定文字数部分を表示するための表示データが表示されている。この表示画面上、検索条件として指定された文字列「田中」の前後一定文字数部分を表示する箇所をマウスでクリックすることにより、検索された文書中の、文字列「田中」が出現する個所の表示に移行することができる。その表示画面の一例を図１１に示す。
【００４７】
図１１に示した表示画面では、文字列「田中」は、反転、強調表示など特殊表示がなされており、ユーザに視認しやすくなっている。この処理の実現には、公知公用技術を用いればよい。
【００４８】
このように、検索された文書中でユーザが与えたフリーワードの出現個所の前後の文脈を表示する機能と、検索された文書中の該当個所の表示にすばやく移行できる機能は重要である。なぜなら、フリーワードに基づく検索は、タグ名などを用いた構造化データに対する検索（ＸＭＬ検索）と違って意味的曖昧性を含んでおり、検索結果がユーザが所望するものとは必ずしも限らないからである。ユーザは検索された文書が自分の所望する文書であるかどうかを確認しなければならない。その判断を行う際に有益な情報は、指定したフリーワードの文書中での文脈情報である。上述したＫＷＩＣの提示機能と検索された文書中の該当個所の表示にすばやく移行できる機能はこの文脈情報を効果的に与えるものである。
【００４９】
なお、上述の検索例ではフリーワードとして文字列を１つ（例えば、上記例の場合「田中」）を与えた場合を示したが、複数の単語がある場合も上記同様に処理を行うことができる。その場合、検索条件入力画面上で「その他」という項目に対応する空欄に、例えば、「田中」、「山田」、「佐藤」のような複数の文字列を列挙して記述すればよい。例えば、１つの空欄内に、スペースや「、」や「／」などで１つ１つの文字列を分けて入力してもよいし、複数の空欄があれば、各空欄にそれぞれ１つの文字列を入力してもよい。
【００５０】
次に、ユーザが図４の検索条件入力画面上に、上記例（例えば図９参照）とは異なる検索条件を入力した場合を例にとり図５〜図６に示すフローチャートを参照して検索処理部２の処理動作を説明する。
【００５１】
例えば、ユーザが、図４に示した検索条件入力画面上で、図１２に示すように、「日時」という項目に対応する空欄に、「１２月１２日」という文字列を検索条件として指定するとともに、「その他」という項目に対応する空欄に、「主催」「ＥＩＡ」という文字列を検索条件として指定したとする。
【００５２】
この検索条件は入力部１から検索処理部２に送信される（ステップＳ１）。検索処理部２は、前述同様、ユーザの検索条件を調べて、第１の検索条件と、第２の検索条件とに分離する（ステップＳ２）。まず、第１の検索条件から第１の検索条件文を生成する。上記例の場合、前述同様、第１の検索条件から、＜ｄａｔａ＞タグの要素をもち、当該要素が文字列「１２月１２日」を含むような文書を検索するための第１の検索条件文が生成され、この第１の検索条件文を第１の検索部３に渡し、検索を要求し、検索結果を得る（ステップＳ３）。
【００５３】
また、上記例の場合、入力部１から入力した検索条件には、「その他」という項目に対応する空欄で、「主催」、「ＥＩＡ」という文字列が指定されており、この「その他」という項目に対応する空欄に入力された文字列は、非構造化データに対する検索条件（第２の検索条件）として用いられる。すなわち、ユーザにより入力された検索条件から第２の検索条件として「主催」、「ＥＩＡ」が得られる（ステップＳ４）。
【００５４】
ところで、図４の検索画面の「その他」行の２つのフィールドに単語を指定する場合、最初のフィールドに項目名，次のフィールドに項目値が来ることが想定されている。項目名は一般に「日時」「場所」といった一般名詞や普通名詞である。項目値は「１２月１２日」、「金曜日」、「東京」といった数値や固有名詞である場合が多いが、一般名詞である場合もある。この事例における検索単語「主催」は一般名詞であり、「ＥＩＡ」は固有名詞である。
【００５５】
フリーワード検索の常として検索キーとなる検索単語中に一般名詞や普通名詞がある場合、同義語展開が実行される。この場合、「主催」という文字列には「共催」、「開催者」のように同義の検索単語が追加されてから、第２の検索が実行される。
【００５６】
一方、「ＥＩＡ」のような固有名詞については、異表記展開と呼ばれる検索単語の追加処理が行われる。具体的には、長音記号「ー」の有無，検索単語中の小文字のカタカナ「ッ」を「ツ」に置換した単語，略記表現の元の単語等が追加される。この場合、「ＥＩＡ」には「Ｅｌｅｃｔｒｉｃ  Ｉｎｆｏｒｍａｔｉｏｎ  Ａｓｓｏｃｉａｔｉｏｎ」や「電子情報協会」のように異表記語が追加されたあと、第２の検索が実行される。
【００５７】
通常この同義語展開や異表記展開には汎用および特定の単語辞書が利用される。このような検索単語の同義語展開や異表記展開は情報検索の公知の技術で実現できる。
【００５８】
以下の説明ではこのように展開された同義語や異表記語についての説明は省くが、これらの技術の利用を除外するものではないことを補足しておく。
【００５９】
第２の検索条件から、第１の検索部５で検索された文書の中からコメント領域内の非構造化データが上記第２の検索条件として与えられた文字列「主催」、「ＥＩＡ」を含む文書を検索するための第２の検索条件文が生成される。そして、この第２の検索条件文を第２の検索部４に渡し、検索を要求し、検索結果を得る（図６のステップＳ６）。
【００６０】
上記例の場合、第２の検索部４では、第１の検索部３で検索された各文書のコメント領域内に対してフルテキスト検索を実施し、「主催」、「ＥＩＡ」という文字列を含むコメント領域をもつ文書を検索する。そして、検索された文書が検索処理部２へ渡される。
【００６１】
上記例の場合、検索キーとして２つの文字列（「主催」、「ＥＩＡ」）があるが、１つのコメント領域に両方の文字列が出現している文書が優先的に検索される。なぜなら、検索キーとして指定された複数の文字列（ここでは、２つの文字列）は、意味的に関連するものであり、これら複数の文字列は文書中でも互いに近い位置に出現していることが多いからである。
【００６２】
例えば、図３に示した文書は、そのコメント領域に「主催」、「ＥＩＡ」の両文字列を含むので、検索結果として検出される（ステップＳ７）。
【００６３】
次に、検索された各文書中のコメント領域について言語処理が行われる（ステップＳ９）。
【００６４】
２つのフリーワード「主催」、「ＥＩＡ」は、情報論的な観点では「主催」がキーで、「ＥＩＡ」が値、つまり「主催」が項目名で「ＥＩＡ」がその内容という意味構造を持っている。このように与えられた複数のフリーワードに意味構造がある場合は、ステップＳ９の言語処理において、検索された各文書中のコメント領域に対して、公知・公用の情報抽出技術を適用する。今の場合、例えば、ｐｌａｉｎ２（ｐｌａｉｎ２  ｆａｎ  ［ＵＲＬ］ｈｔｔｐ：／／ｓｈｉｋａ．ａｉｓｔ−ｎａｒａ．ａｃ．ｊｐ／ｐｒｏｄｕｃｔｓ／ｐｌａｉｎ２／ｐｌａｉｎ２−ｊ．ｈｔｍｌ）等を適用することにより、項目名：「主催」、  項目内容：「社団法人電子情報協会（ＥＩＡ）」という対応関係を表した情報を抽出することができる。ｐｌａｉｎ２は、文書の改行情報やインデント情報を利用して文書の構造解析を行うものである。すなわち、テキストから箇条書きや表の構造を抽出してテキストを構造化するものである。
【００６５】
図３に示した文書は、元の文書（図２参照）の改行情報やインデント情報を含んでいるので、ｐｌａｉｎ２を適用することができる。また、このような文書の書式情報がなくても、ＭＵＣ（Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｓｉｘｔｈ  Ｍｅｓｓａｇｅ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ  Ｃｏｎｆｅｒｅｎｃｅ  （ＭＵＣ−６），  Ｍｏｒｇａｎ  Ｋａｕｆｍａｎ）等で開示されている技術を使えば、同様の情報抽出を行うことが可能である。
【００６６】
文書記憶部５に記憶されている文書が、特定のワープロ文書であったり、ＲＴＦ（ｒｉｃｈ  ｔｅｘｔ  ｆｏｒｍａｔ）やＨＴＭＬのような箇条書きやインデントといった文書のレイアウト情報を含んだ構造化文書である場合も同様である。このような場合、文書のレイアウト情報を直接得るため、上記ＭＵＣのような技術を用いて、上述した「項目名」−「項目内容」といた対応関係を表した情報を取得できる。
【００６７】
第２の検索部４では、フリーワードとして指定された複数の文字列を含むコメント領域を持つ各文書のうち、コメント領域内の、フリーワードとして指定された複数の文字列間の対応関係が、検索キーとしての複数のフリーワードの間の意味構造に合致する文書を、優先して検索する。
【００６８】
さて、ステップＳ９では、検索された各文書中の上記第２の検索条件として指定された文字列、すなわち、フリーワード（上記例の場合、「主催」、「ＥＩＡ」）が出現する箇所について、言語処理を行う。ここでは、その文字列の出現個所の前後一定文字数部分がＫＷＩＣ（Ｋｅｙ  Ｗｏｒｄ  Ｉｎ  Ｃｏｎｔｅｘｔ）として抽出する。
【００６９】
そして、この言語処理結果を利用して、検索結果の表示データを生成し、それを出力部６に出力する（ステップＳ１０）。出力部６では、当該表示データを所定のディスプレイに表示する。
【００７０】
図１３は、出力部８により表示される、第２の検索部４で検索した結果得られた文書から生成された表示データの表示画面の一例を示したものである。ここでは、１件の文書（例えば、図３に示した文書）が検索結果として得られ、この文書中の、「会議名」に対応するタグ名に対応付けられたデータの全部または一部と、検索条件として指定された「日時」に対応するタグ名に対応付けられたデータの全文または一部と、検索条件として指定された文字列「主催」、「ＥＩＡ」の前後一定文字数部分を表示するための表示データが表示されている。なお、第２の検索部４で、「主催」が項目名で、「ＥＩＡ」が項目内容といった対応関係が得られているとき、この対応関係にある「主催」と「ＥＩＡ」を含むコメント領域をもつ文書が検索される。従って、この対応関係に基づき、図１３に示した表示例では、検索された文書が、項目名「主催」とその項目内容に「ＥＩＡ」が含まれるという関係があることを表現すべく表示されている。すなわち、図１３では、文字列「主催」と、文字列「ＥＩＡ」を含むデータが、項目名と項目内容という対応関係にあることが明らかとなるように、項目名に対応する「主催」という文字列を、「名称」「日時」といった（タグ名に対応する項目名と同列に表示し、項目内容として、文字列「ＥＩＡ」の前後一定文字数部分を表示する箇所を表示している。この項目内容を表示する箇所は、図１０と同様、ＫＷＩＣとして表示されている。図１３の表示画面上、ＫＷＩＣ表示されている部分（検索条件として指定された文字列「ＥＩＡ」の前後一定文字数部分を表示する箇所）をマウスでクリックすることにより、検索された文書中の、文字列「ＥＩＡ」が出現する個所の表示に移行することができる。その表示画面の一例を図１４に示す。
【００７１】
図１４に示した表示画面では、文字列「主催」と、これを項目名とする項目内容に対応する文字列部分（文字列「ＥＩＡ」を含む文字列）は、反転、強調表示など特殊表示がなされており、ユーザに視認しやすくなっている。この処理の実現には、公知公用技術を用いればよい。
【００７２】
なお、上記実施形態では、文書記憶部５に記憶されている各文書中のコメント領域のマークアップのための記号として「＜！−−」と「−−＞」  を用いて説明を行ったが、この場合に限らず、例えば、コメント領域である旨を表すために定義した（コメントの意味を持たせた）任意のＸＭＬのタグ（マークアップ記号）を用いてもかまわないことはいうまでもない。
【００７３】
また、第１の検索部３におけるＸＭＬ検索は、上記実施形態の場合、タグ名と当該タグ名の要素に含まれる文字列を検索条件として指定して、指定されたタグ名の要素をもち、その要素が指定された文字列を包含するような構造化データ（をもつ文書データ）を検索するものであるが、この場合に限らない。例えば、検索条件として１つまたは複数のタグ名のみが指定されたときには、当該指定されたタグ名の要素をもつ構造化データ（をもつ文書データ）を検索するようにしてもよい。また、例えば、あるタグ名の要素を包含する要素とか、ある要素に包含される要素といったような文書構造や、文書構造といずれかの要素に含まれる文字列とを検索条件として指定された場合の検索も、やはり公知のＸＭＬ検索技術を用いれば容易に実現可能である。上記実施形態では、第１の検索部３では、構造化データに対し、公知のＸＭＬ検索技術を用いて検索を行う場合の一例を示したにすぎず、公知のＸＭＬ検索技術を用いて実現可能な検索であれば、どのような検索をおこなってもよい。その場合に、入力すべき検索条件に応じて、検索条件を入力するための入力画面等を変更すればよい。
【００７４】
以上説明したように、上記実施形態によれば、異なる２つの検索方式のうちの１つである第１の検索方式（例えば、ＸＭＬ検索方式）の検索対象となる所定の要素名と当該要素名に対応付けられたデータとからなる少なくとも１つの要素から構成される（構造化データ）と、前記２つの検索方式のうちの他の１つである第２の検索方式（たとえば、フルテキスト検索方式）の検索対象となるデータ（コメント領域内の非構造化データ）とを含む複数の文書データを文書記憶部５に記憶する。そして、構造化データに対する第１の検索条件と、非構造化データに対する第２の検索条件が入力されると、第１の検索部３では、文書記憶部５に記憶された各文書データ中の構造化データをＸＭＬ検索方式を用いて検索することにより、上記第１の検索条件を満たす要素を含む文書データを求め、第２の検索部４では、第１の検索部３での検索の結果得られた各文書データ中の非構造化データをフルテキスト検索方式を用いて検索することにより、上記第２の検索条件を満たす非構造化データをもつ文書データを求める。
【００７５】
すなわち、上記実施形態では、構造化データと非構造化データとが混在する文書データに対し、構造化データに対しては、構造化データの検索に適した検索方式を用いて検索を行い、非構造化データに対しては、非構造化データの検索に適した検索方式を用いて検索を行う。一般的に、構造化データに対する検索時間は、非構造化データに対する検索時間よりも短時間である。従って、先に、構造化データに対する検索を行って得られた結果を検索対象として非構造化データに対する検索を行う。
【００７６】
このように、上記実施形態によれば、処理時間の比較的長い非構造化データに対する検索を行う前に、構造化データに対する検索を行って、検索対象の文書を絞り込み、さらに、各文書中の検索位置を（コメント領域に）限定した上で、非構造化データに対する検索を行うことにより、構造化データと非構造化データの混在する文書データの検索が高速にしかも効率よく行える。
【００７７】
なお、上記実施形態では、構造化データとして、ＸＭＬタグでマークアップして構造化したデータを例にとり説明したが、この場合に限らず、例えばＲＤＢ内のデータのように、所定の項目（上記実施形態における要素名に対応する）に当該項目に対応するデータを対応付けて構造化したデータであっても、上記同様の効果が得られる。
【００７８】
本発明の実施の形態に記載した本発明の手法は（特に、図５、６のフローチャートに示した検索処理部２の処理動作、さらに、検索処理動作以外にも図１の各部の処理動作も含めて）、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、半導体メモリなどの記録媒体に格納して頒布することもできる。
【００７９】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明は含まれており、開示される複数の構成要件における適宜な組み合わせにより、種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題（の少なくとも１つ）が解決でき、発明の効果の欄で述べられている効果（のなくとも１つ）が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【００８０】
【発明の効果】
以上説明したように、本発明によれば、構造化データと非構造化データの混在する文書データの検索が高速にしかも効率よく行える。
【図面の簡単な説明】
【図１】本発明の実施形態に係る文書検索システムの構成例を示した図。
【図２】構造化データを含まないオリジナルの文書の具体例を示した図。
【図３】文書記憶部に記憶される、構造化データと非構造化データを含む文書の具体例であって、図２のオリジナルの文書から生成された文書を示している。
【図４】検索条件入力画面の一例を示した図。
【図５】図１の検索処理部の処理動作を説明するためのフローチャート。
【図６】図１の検索処理部の処理動作を説明するためのフローチャート。
【図７】検索条件入力画面に入力された検索条件の一例を示した図。
【図８】図７に示した検索条件に基づく検索結果の表示例を示した図。
【図９】検索条件入力画面に入力された検索条件の他の例を示した図。
【図１０】図９に示した検索条件に基づく検索結果の表示例を示した図。
【図１１】検索結果の他の表示例を示した図。
【図１２】検索条件入力画面に入力された検索条件のさらに他の例を示した図。
【図１３】図１２に示した検索条件に基づく検索結果の表示例を示した図。
【図１４】検索結果の他の表示例を示した図。
【符号の説明】
１…入力部、２…検索処理部、３…第１の検索部、４…第２の検索部、５…文書記憶部、６…出力部
【図１】
2004258912.tif 000003
【図２】
2004258912.tif 000004
【図３】
2004258912.tif 000005
【図４】
2004258912.tif 000006
【図５】
2004258912.tif 000007
【図６】
2004258912.tif 000008
【図７】
2004258912.tif 000009
【図８】
2004258912.tif 000010
【図９】
2004258912.tif 000011
【図１０】
2004258912.tif 000012
【図１１】
2004258912.tif 000013
【図１２】
2004258912.tif 000014
【図１３】
2004258912.tif 000015
【図１４】
2004258912.tif 000016