(57)【要約】【課題】文書検索処理における検索精度およびユーザビリティの向上を図ること。【解決手段】取得部２０１は、ＸＭＬ文書を取得する。生成部２０２は、ＸＭＬ文書からノードリストを生成する。入力部２０３は、検索条件の入力を受け付ける。算出部２０４は、ノードリストに示されているノードごとに、検索条件の合致度を示すスコアを算出する。判断部２０５は、ノードリストに示されているノードごとに、所定の適合条件を満たすか否かを判断する。加算部２０６は、判断部２０５によって所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算する。決定部２０７は、加算部２０６によって加算されたスコアと、算出部２０４によって算出されたスコアと、に基づいて、ノードリストに示されているノードの中から、前記検索条件の合致度が高いノードを検索結果として決定する。【選択図】図２
2008146209.tif 000002
【特許請求の範囲】
【請求項１】
階層構造化された文書セットから、自然文により入力された検索条件に合致するノードを検索する文書検索装置であって、
前記文書セットを取得する取得手段と、
前記取得手段によって取得された文書セットからノードリストを生成する生成手段と、
前記検索条件の入力を受け付ける入力手段と、
前記生成手段によって生成されたノードリストに示されているノードごとに、前記入力手段によって入力された検索条件に基づいた、前記検索条件の合致度を示すスコアを算出する算出手段と、
前記生成手段によって生成されたノードリストに示されているノードごとに、前記算出手段によって算出されたスコアに基づいて、所定の適合条件を満たすか否かを判断する判断手段と、
前記判断手段によって所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算する加算手段と、
前記加算手段によって加算されたスコアと、前記算出手段によって算出されたスコアと、に基づいて、前記生成手段によって生成されたノードリストの中から、前記検索条件の合致度が高いノードを検索結果として決定する決定手段と、
を備えたことを特徴とする文書検索装置。
【請求項２】
前記決定手段によって決定されたノードを、前記検索条件の合致度が高い順に表示されるよう出力を制御する出力制御手段をさらに備えたことを特長とする請求項１に記載の文書検索装置。
【請求項３】
前記決定手段は、前記加算手段によって加算されたスコアと、前記算出手段によって算出されたスコアと、に基づいて、前記生成手段によって生成されたノードリストを、前記検索条件の合致度が高い順にソートし、ソートされたノードリストの中から、上位から所定数のノードを検索結果として決定することを特徴とする請求項１または２に記載の文書検索装置。
【請求項４】
前記算出手段は、ＴＦ−ＩＤＦ法を用いて、前記生成手段によって生成されたノードリストに示されているノードごとに、前記入力手段によって入力された検索条件に基づいた、検索条件の合致度を示すスコアを算出することを特徴とする請求項１〜３のいずれか一つに記載の文書検索装置。
【請求項５】
階層構造化された文書セットから、自然文により入力された検索条件に合致するノードを検索する文書検索方法であって、
前記文書セットを取得する取得工程と、
前記取得工程によって取得された文書セットからノードリストを生成する生成工程と、
前記検索条件の入力を受け付ける入力工程と、
前記生成工程によって生成されたノードリストに示されているノードごとに、前記入力工程によって入力された検索条件に基づいた、前記検索条件の合致度を示すスコアを算出する算出工程と、
前記生成工程によって生成されたノードリストに示されているノードごとに、前記算出工程によって算出されたスコアに基づいて、所定の適合条件を満たすか否かを判断する判断工程と、
前記判断工程によって所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算する加算工程と、
前記加算工程によって加算されたスコアと、前記算出工程によって算出されたスコアと、に基づいて、前記生成工程によって生成されたノードリストの中から、前記検索条件の合致度が高いノードを検索結果として決定する決定工程と、
をコンピュータに実行させることを特徴とする文書検索方法。
【請求項６】
階層構造化された文書セットから、自然文により入力された検索条件に合致するノードを検索する文書検索プログラムであって、
前記文書セットを取得する取得工程と、
前記取得工程によって取得された文書セットからノードリストを生成する生成工程と、
前記検索条件の入力を受け付ける入力工程と、
前記生成工程によって生成されたノードリストに示されているノードごとに、前記入力工程によって入力された検索条件に基づいた、前記検索条件の合致度を示すスコアを算出する算出工程と、
前記生成工程によって生成されたノードリストに示されているノードごとに、前記算出工程によって算出されたスコアに基づいて、所定の適合条件を満たすか否かを判断する判断工程と、
前記判断工程によって所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算する加算工程と、
前記加算工程によって加算されたスコアと、前記算出工程によって算出されたスコアと、に基づいて、前記生成工程によって生成されたノードリストの中から、前記検索条件の合致度が高いノードを検索結果として決定する決定工程と、
をコンピュータに実行させることを特徴とする文書検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、階層構造化された文書セットから、自然文により入力された検索条件に合致するノードを検索する文書検索装置、文書検索方法および文書検索プログラムに関する。
【背景技術】
【０００２】
従来より、一連の文書を、章や節などの適切な単位の部分文書に分割し、階層構造化することによって、出版の多様性、情報検索の的確性、分割／結合の容易性など、多くのメリットを得ることができるものとされている。たとえば、階層構造化された文書の代表的なものとしては、ＸＭＬ文書が挙げられる。このＸＭＬ文書は、タグによって文書要素や文書テキストがマークアップされている。このため、要素ノードおよびテキストノードによって構成される木構造でモデル化することができる。これにより、ノード単位での部分文書の検索をおこなうことができる。
【０００３】
ＸＭＬ文書に対する部分文書の検索処理に用いられる検索方法の一般的なものとして、指定された検索文字列を含む最小単位の部分文書をＸＭＬ文書の中から全て検索する方法が挙げられる（たとえば、下記特許文献１参照。）。
【０００４】
【特許文献１】特開平１１−３０６２０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に記載の従来技術にあっては、検索文字列を含む複数の最小単位の部分文書が同一の部分文書に含まれている場合であっても、複数の最小単位の部分文書が断片的に検索されてしまう。たとえば、文書が、章、節、項、文ごとに分割されていた場合、検索文字列を含む文単位の部分文書が断片的に検索されてしまう。このような場合、ユーザにとっては、複数の最小単位の部分文書を包括する単位（たとえば、章や節など）の部分文書が検索結果として検索されることが望ましいものである。
【０００６】
このような問題に対応すべく、検索文字列を含む最小単位（たとえば、文）の部分文書を全て検索するだけでなく、検索文字列に関連する様々な単位（たとえば、章、節、項など）の部分文書も全て検索する方法が考案されているが、この場合、検索された部分文書の中には、検索文字列との関連性が低く、ユーザが意図したものとはかけ離れている部分文書も多く含まれる。
【０００７】
また、上記特許文献１に記載の従来技術にあっては、関連性の強弱を考慮した検索処理をおこなっていないため、より検索文字列との関連性の強い部分文書のみを検索することや、検索された部分文書を検索文字列との関連性の強弱に応じた順序で表示することができない。
【０００８】
このように、上述した従来技術においては、適切な単位および数の部分文書を検索することができないだけでなく、検索された部分文書を適切な順序で表示することができないといった問題が生じていた。
【０００９】
この発明は、上述した従来技術による問題点を解消するため、適切な単位および数の部分文書を検索したうえ、検索された部分文書を適切な順序で表示することによって、文書検索処理における検索精度およびユーザビリティの向上を図ることができる文書検索装置、文書検索方法および文書検索プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、この発明にかかる文書検索装置は、階層構造化された文書セットから、自然文により入力された検索条件に合致するノードを検索する文書検索装置であって、前記文書セットを取得する取得手段と、前記取得手段によって取得された文書セットからノードリストを生成する生成手段と、前記検索条件の入力を受け付ける入力手段と、前記生成手段によって生成されたノードリストに示されているノードごとに、前記入力手段によって入力された検索条件に基づいた、前記検索条件の合致度を示すスコアを算出する算出手段と、前記生成手段によって生成されたノードリストに示されているノードごとに、所定の適合条件を満たすか否かを判断する判断手段と、前記判断手段によって所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算する加算手段と、前記加算手段によって加算されたスコアと、前記算出手段によって算出されたスコアと、に基づいて、前記生成手段によって生成されたノードリストの中から、前記検索条件の合致度が高いノードを検索結果として決定する決定手段と、を備えたことを特徴とする。
【００１１】
この発明によれば、文書検索処理において、テキストノードを持つノードが所定の適合条件を満たしている場合、このノードが属する親ノードを、検索条件の合致度が高いノードとして扱うことができる。
【００１２】
また、この発明にかかる文書検索装置は、上記に記載の発明において、前記決定手段によって検索結果として決定されたノードを、前記検索条件の合致度が高い順に表示されるよう出力を制御する出力制御手段をさらに備えたことを特長とする
【００１３】
この発明によれば、文書セットの中から検索された検索条件の合致度が高いノードを、適切な順序で表示されるよう出力を制御することができる。
【００１４】
また、この発明にかかる文書検索装置は、上記に記載の発明において、前記決定手段は、前記加算手段によって加算されたスコアと、前記算出手段によって算出されたスコアと、に基づいて、前記生成手段によって生成されたノードリストを、前記検索条件の合致度が高い順にソートし、ソートされたノードリストの中から、上位から所定数のノードを検索結果として決定することを特徴とする。
【００１５】
この発明によれば、検索条件の合致度がより高いノードを、必要な数だけ文書セットの中から検索することができる。
【００１６】
また、この発明にかかる文書検索装置は、上記に記載の発明において、前記算出手段は、ＴＦ−ＩＤＦ法を用いて、前記生成手段によって生成されたノードリストに示されているノードごとに、前記入力手段によって入力された検索条件に基づいた、検索条件の合致度を示すスコアを算出することを特徴とする。
【００１７】
この発明によれば、文書検索処理において、ＴＦ−ＩＤＦ法を用いてスコアを算出することにより、単に検索条件に含まれるキーワードが多く出現するノードではなく、そのキーワードをノードの特徴的なものとするノードを、検索条件の合致度が高いノードとして扱うことができる。
【００１８】
また、この発明にかかる文書検索方法は、階層構造化された文書セットから、自然文により入力された検索条件に合致するノードを検索する文書検索方法であって、前記文書セットを取得する取得工程と、前記取得工程によって取得された文書セットからノードリストを生成する生成工程と、前記検索条件の入力を受け付ける入力工程と、前記生成工程によって生成されたノードリストに示されているノードごとに、前記入力工程によって入力された検索条件に基づいた、前記検索条件の合致度を示すスコアを算出する算出工程と、前記生成工程によって生成されたノードリストに示されているノードごとに、所定の適合条件を満たすか否かを判断する判断工程と、前記判断工程によって所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算する加算工程と、前記加算工程によって加算されたスコアと、前記算出工程によって算出されたスコアと、に基づいて、前記生成工程によって生成されたノードリストの中から、前記検索条件の合致度が高いノードを検索結果として決定する決定工程と、をコンピュータに実行させることを特徴とする。
【００１９】
この発明によれば、文書検索処理において、テキストノードを持つノードが所定の適合条件を満たしている場合、このノードが属する親ノードを、検索条件の合致度が高いノードとしてコンピュータに扱わせることができる。
【００２０】
また、この発明にかかる文書検索プログラムは、階層構造化された文書セットか、自然文により入力された検索条件に合致するノードを検索する文書検索プログラムであって、前記文書セットを取得する取得工程と、前記取得工程によって取得された文書セットからノードリストを生成する生成工程と、前記検索条件の入力を受け付ける入力工程と、前記生成工程によって生成されたノードリストに示されているノードごとに、前記入力工程によって入力された検索条件に基づいた、前記検索条件の合致度を示すスコアを算出する算出工程と、前記生成工程によって生成されたノードリストに示されているノードごとに、所定の適合条件を満たすか否かを判断する判断工程と、前記判断工程によって所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算する加算工程と、前記加算工程によって加算されたスコアと、前記算出工程によって算出されたスコアと、に基づいて、前記生成工程によって生成されたノードリストの中から、前記検索条件の合致度が高いノードを検索結果として決定する決定工程と、をコンピュータに実行させることを特徴とする。
【００２１】
この発明によれば、文書検索処理において、テキストノードを持つノードが所定の適合条件を満たしている場合、このノードが属する親ノードを、検索条件の合致度が高いノードとしてコンピュータに扱わせることができる。
【発明の効果】
【００２２】
本発明にかかる文書検索装置、文書検索方法および文書検索プログラムによれば、適切な単位および数の部分文書を検索したうえ、検索された部分文書を適切な順序で表示することによって、文書検索処理における検索精度およびユーザビリティの向上を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２３】
以下に添付図面を参照して、この発明にかかる文書検索装置、文書検索方法および文書検索プログラムの好適な実施の形態を、階層構造化された文書セットの一例としてＸＭＬ文書を用いて詳細に説明する。
【００２４】
（文書検索装置１００のハードウェア構成）
まず、この実施の形態にかかる文書検索装置のハードウェア構成について説明する。図１は、この実施の形態にかかる文書検索装置のハードウェア構成の一例を示すブロック図である。
【００２５】
図１において、文書検索装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）１０４と、ＨＤ（Ｈａｒｄ  Ｄｉｓｃ）１０５と、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｃ  Ｄｒｉｖｅ）１０６と、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｃ）１０７と、ＣＤ−ＲＷ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  ＲｅＷｒｉｔａｂｌｅ）ドライブ１０８と、ＣＤ−ＲＷ１０９と、ディスプレイ１１０と、キーボード１１１と、マウス１１２と、ネットワークＩ／Ｆ（インタフェース）１１３と、通信ケーブル１１４と、バス１２０とを備えて構成されている。
【００２６】
ＣＰＵ１０１は、文書検索装置１００全体を制御する。ＲＯＭ１０２は、各種制御プログラムなどを格納する。ＲＡＭ１０３は、可変的なデータを書き換え自在に記憶し、ＣＰＵ１０１のワークエリアとして機能する。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御にしたがって書き込まれたデータを記憶する。
【００２７】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、着脱自在であり、ＦＤＤ１０６の制御にしたがって書き込まれたデータを記憶する。ＣＤ−ＲＷドライブ１０８は、ＣＰＵ１０１の制御にしたがってＣＤ−ＲＷ（または、ＣＤ−Ｒ、ＣＤ−ＲＯＭ）１０９に対するデータのリード／ライトを制御する。ＣＤ−ＲＷ１０９は、着脱自在であり、ＣＤ−ＲＷドライブ１０８の制御にしたがって書き込まれたデータを記憶する。
【００２８】
ディスプレイ１１０は、カーソル、メニュー、ウィンドウ、あるいは文字や画像などの各種データを表示する。キーボード１１１は、文字、数値、各種指示などの入力のための複数のキーを備える。マウス１１２は、各種指示の選択や実行、処理対象の選択、マウスポインタの移動などを行う。ネットワークＩ／Ｆ１１３は、通信ケーブル１１４を介してＬＡＮ、ＷＡＮ、インターネットなどのネットワークに接続され、当該ネットワークとＣＰＵ１０１とのインタフェースとして機能する。バス１２０は上記各部を接続する。
【００２９】
（文書検索装置１００の機能的構成）
つぎに、この実施の形態にかかる文書検索装置１００の機能的構成について説明する。図２は、この実施の形態にかかる文書検索装置１００の機能的構成を示すブロック図である。
【００３０】
図２に示すように、文書検索装置１００は、取得部２０１と、生成部２０２と、入力部２０３と、算出部２０４と、判断部２０５と、加算部２０６と、決定部２０７と、出力制御部２０８と、表示部２０９と、を備えて構成されている。
【００３１】
取得部２０１は、ＸＭＬ文書を取得する。たとえば取得部２０１は、ユーザによって指定されたＸＭＬ文書ファイルを読み取ることによってＸＭＬ文書を取得する。この場合、ＸＭＬ文書ファイルは、文書検索装置１００内部に記憶されているものに限らず、たとえば、文書検索装置１００と接続された他の装置に記憶されているものであってもよい。取得部２０１は、具体的には、たとえば図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７に記憶されたプログラムをＣＰＵ１０１が実行することによってその機能を実現する。
【００３２】
生成部２０２は、取得部２０１によって取得されたＸＭＬ文書からノードリストを生成する。ここでいうノードリストとは、木構造にモデル化されたＸＭＬ文書に基づいてＸＭＬ文書内に存在する全ての要素ノードをリスト化したものであり、各要素ノードごとに、たとえば、インデックス、パスなどの情報を含む。また、要素ノードにテキストノードが属している場合は、そのテキストノードの、インデックス、テキストなどの情報が関連付けられる。生成部２０２によって生成されたノードリストは、たとえば各ノードのパスが示されたリスト形式でメモリ上に一時的に記憶される。
【００３３】
なお、生成部２０２は、ＸＭＬ文書に存在する全てのノードに関するノードリストを生成するだけでなく、所定の範囲内のノードに関するノードリストや、ユーザによって指定された範囲内のノードに関するノードリストを生成するようにしてもよい。また、ノードリストの具体的な生成手順については、図４を用いて後述する。生成部２０２は、具体的には、たとえば図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７に記憶されたプログラムをＣＰＵ１０１が実行することによってその機能を実現する。
【００３４】
入力部２０３は、検索条件（検索クエリ文）の入力を受け付ける。たとえば、検索条件は「Ｊ社  Ｉ太郎」や「（Ｊ社  Ｉ太郎）」のように入力され、前者は、「Ｊ社」および「Ｉ太郎」の両方を含む、を意味し、後者は、「Ｊ社」または「Ｉ太郎」のいずれかを含む、を意味する。ここで、検索条件は、ユーザが文書検索装置１００に直接入力したものに限らず、たとえば、文書検索装置１００と接続された他の装置から送信されたものであってもよい。入力部２０３は、具体的には、たとえば図１に示したキーボード１１１、マウス１１２、ネットワークＩ／Ｆ１１３などによってその機能を実現する。
【００３５】
算出部２０４は、生成部２０２によって生成されたノードリストに示されているノードごとに、入力部２０３によって入力された検索条件に基づいた、検索条件の合致度を示すスコアを算出する。スコア（ＴＦ−ＩＤＦ）は、以下算出式（１）により求めることができる。
【００３６】
ＴＦＩＤＦ＝ＴＦ×ｌｏｇ（Ｎ／ＤＦ）・・・（１）
【００３７】
上記算出式（１）において、ＴＦは、テキストノード内における検索文字列の出現数を示す。また、Ｎは、全テキストノード数を示す。そして、ＤＦは、検索文字列を含むテキストノード数を示す。
【００３８】
なお、本実施の形態においては、ＴＦ−ＩＤＦ法を用いてスコアを算出しているが、これに限らず、他の方法を用いて、スコアを算出するようにしてもよい。算出部２０４は、具体的には、たとえば図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７に記憶されたプログラムをＣＰＵ１０１が実行することによってその機能を実現する。
【００３９】
判断部２０５は、生成部２０２によって生成されたノードリストに示されているノードごとに、算出部２０４によって算出されたスコアに基づいて、所定の適合条件を満たすか否かを判断する。適合条件としては、たとえば、「スコアが所定以上または所定値未満の場合であるか否か」、「他の同位ノードのスコアとの合計スコアは所定値以上となるか否か」、「他の同位ノードとの合計ノード数が所定値以下か否か」、などが挙げられるが、これに限らず、他の適合条件を用いてもよい。また、適合条件は、あらかじめ設定されているものであってもよく、ユーザによって指定されたものであってもよい。判断部２０５は、具体的には、たとえば図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７に記憶されたプログラムをＣＰＵ１０１が実行することによってその機能を実現する。
【００４０】
加算部２０６は、判断部２０５によって所定の適合条件を満たすと判断されたノードのスコアを、このノードが属する親ノードのスコアに加算する。たとえば、所定の適合条件を満たすと判断されたノード「Ａ／Ｂ／Ｄ」のスコアが「５」であり、このノードが属する親ノード「Ａ／Ｂ」のスコアが「５」であった場合、加算部２０６による加算処理によって、ノード「Ａ／Ｂ」のスコアのスコアは「１０」となる。加算部２０６は、上記加算処理を、根ノード（すなわち、階層の深いノード）からルートノードに向かって、順に、生成部２０２によって生成されたノードリストに示されている全てのノードについておこなう。加算部２０６は、具体的には、たとえば図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７に記憶されたプログラムをＣＰＵ１０１が実行することによってその機能を実現する。
【００４１】
決定部２０７は、加算部２０６によって加算されたスコアと、算出部２０４によって算出されたスコアと、に基づいて、生成部２０２によって生成されたノードリストを検索条件の合致度が高い順にソートし、ソートされたノードリストの中から、上位から所定数のノードを検索結果として決定する。
【００４２】
なお、決定部２０７によって検索結果として決定されるノードの検索数は、あらかじめ設定されているものに限らず、たとえば、ユーザによって指定されたものであってもよい。決定部２０７は、具体的には、たとえば図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７に記憶されたプログラムをＣＰＵ１０１が実行することによってその機能を実現する。
【００４３】
出力制御部２０８は、決定部２０７によって検索結果として決定されたノードが、検索条件の合致度が高い順に表示部２０９に表示されるよう出力を制御する。なお、出力制御部２０８は、決定部２０７によって検索結果として決定されたノードを表示するように制御するだけでなく、たとえば、ファイルに出力するように制御したり、文書検索装置１００と接続された他の装置へ送信するように制御してもよい。出力制御部２０８は、具体的には、たとえば図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７に記憶されたプログラムをＣＰＵ１０１が実行することによってその機能を実現する。
【００４４】
表示部２０９は、出力制御部２０８の制御によって、決定部２０７によって検索結果として決定されたノードを、検索条件の合致度が高い順に表示する。表示部２０９は、具体的には、たとえば図１に示したディスプレイ１１０によってその機能を実現する。
【００４５】
（ＸＭＬ文書の一例）
つぎに、この発明の実施の形態にかかる文書検索装置１００に用いられるＸＭＬ文書の一例について説明する。図３は、この発明の実施の形態にかかる文書検索装置１００に用いられるＸＭＬ文書の一例を示す説明図である。
【００４６】
図３は、木構造にモデル化されたＸＭＬ文書「ｃ：￥ｄｏｃｕｍｅｎｔｓ￥０１２３．ｘｍｌ」を示したものである。図３において、ノード１〜ノード１１は、要素ノードを示し、各数字「１」〜「１１」はインデックスを示す。また、ノードＡ〜Ｅは、テキストノードを示し、各英字「Ａ」〜「Ｅ」はインデックスを示す。
【００４７】
図３において、たとえば、要素ノード４にはテキストノードＡが属している。また、テキストノードＡは、テキスト「ＸＭＬ，ｓｃｈｅｍｅ」を持つ。たとえば、このテキストノードＡをタグを用いて示した場合、「＜ａｒｔｉｃｌｅ＞＜ｂｏｄｙ＞＜ｓｅｃ＞＜ｐ１＞ＸＭＬ，ｓｃｈｅｍｅ＜／ｐ１＞＜／ｓｅｃ＞＜／ｂｏｄｙ＞＜／ａｒｔｉｃｌｅ＞」と示すことができる。
【００４８】
（生成部２０２によるノードリストの生成手順）
つぎに、生成部２０２によるノードリストの生成手順について説明する。図４は、生成部２０２によるノードリストの生成手順の一例を示すフローチャートである。
【００４９】
まず、木構造にモデル化されたＸＭＬ文書の中から、要素ノードを一つ選択する（ステップＳ４０１）。最初は、最上位の要素ノードを選択する。たとえば、図３に示したＸＭＬ文書の場合、要素ノード１が選択される。
【００５０】
つぎに、ステップＳ４０１で選択された要素ノードをノードリストに追加する（ステップＳ４０２）。ここで、ノードリストに追加される情報は、要素ノードのインデックスやパスなどである。たとえば、図３に示したＸＭＬ文書における要素ノード１の場合は、インデックス「１」やパス「／ａｒｔｉｃｌｅ」などである。
【００５１】
つぎに、ステップＳ４０１で選択された要素ノードにテキストノードが属しているか否かを判断する（ステップＳ４０３）。たとえば、図３に示したＸＭＬ文書における要素ノード１の場合は、テキストノードが属していないと判断され、要素ノード４の場合は、テキストノードが属していると判断される。
【００５２】
ステップＳ４０３において、テキストノードが属していると判断した場合（ステップＳ４０３：Ｙｅｓ）は、ステップＳ４０１で選択された要素ノードと、この要素ノードに属しているテキストノードとの関連付けをおこなって（ステップＳ４０４）、ステップＳ４０５へ進む。
【００５３】
ここで、要素ノードに関連付けられる情報は、テキストノードのインデックスやテキストなどである。たとえば、図３に示したＸＭＬ文書におけるテキストノードＡの場合は、インデックス「Ａ」やテキスト「ＸＭＬ，ｓｃｈｅｍｅ」などである。一方、ステップＳ４０３において、テキストノードが属していないと判断した場合（ステップＳ４０３：Ｎｏ）は、ステップＳ４０４を飛ばして、ステップＳ４０５へ進む。
【００５４】
つぎに、ＸＭＬ文書に含まれる全ての要素ノードが選択されたか否かを判断する（ステップＳ４０５）。ステップＳ４０５において、全ての要素ノードが選択されたと判断した場合（ステップＳ４０５：Ｙｅｓ）は、一連の処理を終了する。一方、ステップＳ４０５において、全ての要素ノードが選択されていないと判断した場合（ステップＳ４０５：Ｎｏ）は、ＸＭＬ文書において、ステップＳ４０１で選択された要素ノードを基準に、次の要素ノードを選択する（ステップＳ４０６）。このとき、下位ノードと同位ノードが存在する場合は下位ノードを優先して選択する。たとえば、図３に示したＸＭＬ文書において、要素ノードが選択される順番は、インデックス番号の順番とおりとなる。
【００５５】
そして、ステップＳ４０２に戻り、ステップＳ４０５で全てのノードが選択されたと判断されるまで、ステップＳ４０２〜ステップＳ４０６を繰り返しおこなう。これにより、ＸＭＬ文書に含まれる全ての要素ノードをノードリストに追加することができる。また、ＸＭＬ文書に含まれる全てのテキストノードを、それぞれ、ノードリストに示された要素ノードのいずれかと関連付けることができる。
【００５６】
（生成部２０２によって生成されたノードリストの一例）
つぎに、生成部２０２によって生成されたノードリストの一例について説明する。図５は、生成部２０２によって生成されたノードリストの一例を示す説明図である。
【００５７】
図５に示すノードリストは、図４を用いて上述した手順によって、図３に示したＸＭＬ文書から生成されたノードリストであり、列「ｉｎｄｅｘ１」,「ｐａｓｓ」，「ｉｎｄｅｘ２」，「ｔｅｘｔ」によって構成されている。
【００５８】
このうち、列「ｉｎｄｅｘ１」には、要素ノードのインデックスが設定されている。また、列「ｐａｓｓ」には、要素ノードのパスが設定されている。そして、列「ｉｎｄｅｘ２」には、要素ノードと関連付けられているテキストノードのインデックスが設定されている。さらに、列「ｔｅｘｔ」には、要素ノードと関連付けられているテキストノードのテキストが設定されている。
【００５９】
たとえば、図５に示すノードリストから、インデックス「４」が付与されたパス「／ａｒｔｉｃｌｅ／ｂｏｄｙ／ｓｅｃ／ｐ１」によって示される要素ノードには、インデックス「Ａ」が付与され、かつテキスト「ＸＭＬ，ｓｃｈｅｍｅ」を含むテキストノードが関連付けられていると判断することができる。
【００６０】
（文書検索装置１００による文書検索処理の手順）
つぎに、この発明の実施の形態にかかる文書検索装置１００による文書検索処理の手順について説明する。図６は、この発明の実施の形態にかかる文書検索装置１００による文書検索処理の手順の一例を示すフローチャートである。
【００６１】
まず、取得部２０１によって、ＸＭＬ文書を取得して（ステップＳ６０１）、生成部２０２によって、ステップＳ６０１で取得されたＸＭＬ文書からノードリストを生成する（ステップＳ６０２）。ノードリストの具体的な生成手順については図４を用いて上述したとおりである。
【００６２】
つぎに、入力部２０３によって、検索条件の入力を受け付けて（ステップＳ６０３）、算出部２０４によって、ステップＳ６０２で生成されたノードリストに示されているノードごとに、ステップＳ６０３で入力された検索条件に基づいた、検索条件の合致度を示すスコアを算出する（ステップＳ６０４）。
【００６３】
続いて、判断部２０５によって、ステップＳ６０２で生成されたノードリストに示されているノードを一つ選択して（ステップＳ６０５）、ステップＳ６０５で選択されたノードについて、ステップＳ６０４で算出されたスコアに基づいて、所定の適合条件を満たすか否かを判断する（ステップＳ６０６）。
【００６４】
ステップＳ６０６において、所定の適合条件を満たすと判断した場合（ステップＳ６０６：Ｙｅｓ）は、加算部２０６によって、ステップＳ６０５で選択されたノードのスコアを、このノードが属する親ノードのスコアに加算して（ステップＳ６０７）、ステップＳ６０８へ進む。一方、ステップＳ６０６において、所定の適合条件を満たさないと判断した場合（ステップＳ６０６：Ｎｏ）は、ステップＳ６０７を飛ばして、ステップＳ６０８へ進む。
【００６５】
続いて、判断部２０５によって、ステップＳ６０２で生成されたノードリストに示されているノードが全て選択されたか否かを判断する（ステップＳ６０８）。ステップＳ６０８において、ノードが全て選択されていないと判断した場合（ステップＳ６０８：Ｎｏ）は、ステップＳ６０８においてノードが全て選択されたと判断されるまで、ステップＳ６０５〜ステップＳ６０８を繰り返しおこなう。
【００６６】
一方、ステップＳ６０８において、ノードが全て選択されたと判断した場合（ステップＳ６０８：Ｙｅｓ）は、決定部２０７によって、ステップＳ６０７で加算されたスコアと、ステップＳ６０４で算出されたスコアと、に基づいて、ステップＳ６０２で生成されたノードリストを検索条件の合致度が高い順にソートして（ステップＳ６０９）、ソートされたノードリストの中から、上位から所定数のノードを検索結果として決定する（ステップＳ６１０）。
【００６７】
そして、出力制御部２０８の制御によって、ステップＳ６１０で検索結果として決定されたノードを、検索条件の合致度が高い順に表示部２０９に表示して（ステップＳ６１１）、一連の処理を終了する。
【００６８】
（算出部２０４によって算出されたスコアの一例）
つぎに、算出部２０４によって算出されたスコアの一例について説明する。図７は、算出部２０４によって算出されたスコアの一例を示す説明図である。
【００６９】
図７は、図５に示したノードリストと、算出部２０４によって算出された各要素ノードのスコアと、の関連付けを示したものである。図７において、列「ｓｃｏｒｅ１」には、算出部２０４によって算出されたスコアが設定されている。このときの、算出処理に用いられた検索文字列は「ＸＭＬ，ｔａｇ，ｓｃｈｅｍｅ」である。
【００７０】
たとえば、図７から、インデックス「４」が付与されたパス「／ａｒｔｉｃｌｅ／ｂｏｄｙ／ｓｅｃ／ｐ１」によって示される要素ノードには、算出部２０４によって算出されたスコア「３８」が関連付けられていると判断することができる。ここで、このスコア「３８」は以下のＴＦ−ＩＤＦ算出式（２）によって算出されたものである。
【００７１】
３８（ＴＦＩＤＦ：スコア）＝１（ＴＦ：テキストノード内における検索文字列「ＸＭＬ」の出現数）×２０（ＩＤＦ：ｌｏｇ（全テキストノード数／検索文字列「ＸＭＬ」を含むテキストノード数））＋１（ＴＦ：テキストノード内における検索文字列「ｓｃｈｅｍｅ」の出現数）×１８（ＩＤＦ：ｌｏｇ（全テキストノード数／検索文字列「ｓｃｈｅｍｅ」を含むテキストノード数））・・・（２）
【００７２】
また、インデックス「５」が付与されたパス「／ａｒｔｉｃｌｅ／ｂｏｄｙ／ｓｅｃ／ｐ２」によって示される要素ノードには、算出部２０４によって算出されたスコア「８０」が関連付けられていると判断することができる。こで、このスコア「８０」は以下のＴＦ−ＩＤＦ算出式（３）によって算出されたものである。
【００７３】
８０（ＴＦＩＤＦ：スコア）＝２（ＴＦ：テキストノード内における検索文字列「ｔａｇ」の出現数）×４０（ＩＤＦ：ｌｏｇ（全テキストノード数／検索文字列「ｔａｇ」を含むテキストノード数））・・・（３）
【００７４】
なお、算出部２０４によって算出されたスコアは、ノードリストに持たせてもよく、ノードリストとは別のテーブルなどに持たせてもよい。
【００７５】
（加算部２０６によって加算されたスコアの一例）
つぎに、加算部２０６によって加算されたスコアの一例について説明する。図８は、加算部２０６によって加算されたスコアの一例を示す説明図である。
【００７６】
図８は、図５に示したノードリストと、算出部２０４によって算出された各要素ノードのスコアと、加算部２０６によって加算されたスコアと、の関連付けを示したものである。図８において、列「ｓｃｏｒｅ２」には、加算部２０６によって加算されたスコアが設定されている。
【００７７】
たとえば、図８から、インデックス「３」が付与されたパス「／ａｒｔｉｃｌｅ／ｂｏｄｙ／ｓｅｃ」によって示される要素ノードには、加算部２０４によって加算されたスコア「１１８」が関連付けられていると判断することができる。ここで、このスコア「１１８」は、この要素ノードに属する、インデックス「４」が付与された要素ノードのスコア「３８」と、インデックス「５」が付与された要素ノードのスコア「８０」とが加算されたものである。
【００７８】
上記加算処理に先立っては、判断部２０５によって、インデックス「４」および「５」についての、インデックス「３」に加算するか否かの判断処理がおこなわれている。このときの、判断処理に用いられた判断条件は「合計スコア５０以上となる場合は加算する」と、「連結ノード数が１００以下の場合は加算する」である。そして、インデックス「４」および「５」については、上記条件を満たしているため、ともにスコアをインデックス「３」のスコアに加算すると判断されている。
【００７９】
また、図８に示すように、インデックス「４」および「５」のスコアは、加算部２０４によって「０」とされている。これは、インデックス「３」と、インデックス「４」および「５」とが、重複して検索結果として決定されることを避けるためである。
【００８０】
同様に、図８から、インデックス「９」が付与されたパス「／ａｒｔｉｃｌｅ／ｂｏｄｙ／ｓｅｃ／ｔｉｔｌｅ／ｎａｍｅ」によって示される要素ノードには、加算部２０４によって加算されたスコア「６６」が関連付けられていると判断することができる。ここで、このスコア「６６」は、この要素ノードに属する、インデックス「１０」が付与された要素ノードのスコア「２２」と、インデックス「１１」が付与された要素ノードのスコア「４４」とが加算されたものである。そして、インデックス「１０」および「１１」のスコアは、加算部２０４によって「０」とされている。
【００８１】
（決定部２０７によってソートされたノードリストの一例）
つぎに、決定部２０７によってソートされたノードリストの一例について説明する。図９は、決定部２０７によってソートされたノードリストの一例を示す説明図である。
【００８２】
図９は、決定部２０７によって、図８に示したように加算部２０６によって加算されたスコアと、図７に示したように算出部２０４によって算出されたスコアと、に基づいて、図５に示したノードリストを検索条件の合致度が高い順にソートしたものである。このようにソートされたノードリストから、決定部２０７は、上位から所定数のノードを検索結果として決定する。
【００８３】
たとえば、検索数が３件と指定されている場合、決定部２０７は、図９に示したノードリストの中から、インデックス「３」が付与された要素ノードと、インデックス「８」が付与された要素ノードと、インデックス「９」が付与された要素ノードと、の３件の要素ノードを検索結果として決定する。
【００８４】
（表示部２０９に表示された検索結果の一例）
つぎに、表示部２０９に表示された検索結果の一例について説明する。図１０は、表示部２０９に表示された検索結果の一例を示す説明図である。
【００８５】
図１０は、図３に示したＸＭＬ文書に対して、図６を用いて上述した手順による文書検索処理がおこなわれた結果、表示部２０９に表示された検索結果を示すものである。図１０に示すように、文書検索処理をおこなうにあたり、検索対象文書「ｃ：￥ｄｏｃｕｍｅｎｔｓ￥０１２３．ｘｍｌ」、検索条件「ＸＭＬ,ｔａｇ,ｓｃｈｅｍｅ」、検索数「３（件）」がユーザによって指定されている。
【００８６】
そして、「検索」ボタンが押下されたことにより、検索対象文書「ｃ：￥ｄｏｃｕｍｅｎｔｓ￥０１２３．ｘｍｌ」に対する文書検索処理がおこなわれ、その結果として、検索対象文書「ｃ：￥ｄｏｃｕｍｅｎｔｓ￥０１２３．ｘｍｌ」の中から決定された、上位３件のノードが検索結果として表示されている。
【００８７】
以上説明したように、本実施の形態にかかる文書検索装置１００によれば、ＸＭＬ文書を取得し、取得されたＸＭＬ文書からノードリストを生成し、検索条件の入力を受け付け、生成されたノードリストに示されているノードごとに、入力された検索条件に基づいた、検索条件の合致度を示すスコアを算出し、生成されたノードリストに示されているノードごとに、所定の適合条件を満たすか否かを判断し、所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算し、加算されたスコアと、算出されたスコアと、に基づいて、生成されたノードリストを、検索条件の合致度が高い順にソートし、ソートされたノードリストの中から、上位から所定数のノードを検索結果として決定し、決定されたノードを、検索条件の合致度が高い順に表示する構成とした。
【００８８】
これにより、文書検索処理において、テキストノードを持つノードが所定の適合条件を満たしている場合、このノードが属する親ノードを、検索条件の合致度が高いノードとして扱うことができる。そのうえで、検索条件の合致度がより高いノードを、必要な数だけＸＭＬ文書の中から検索することができる。さらに、検索されたノードを、適切な順序で表示することができる。このため、適切な単位および数の部分文書を検索することができるうえ、検索された部分文書を適切な順序で表示することができ、結果的に、文書検索処理における検索精度およびユーザビリティの向上を図ることができる。
【００８９】
なお、この発明にかかる文書検索装置、文書検索方法および文書検索プログラムは、階層構造化された文書セットであれば、ＸＭＬ文書以外の文書に対する文書検索にも適用することができる。また、ファイル化された文書に限らず、たとえば、データベース化された文書に対する文書検索にも適用することができる。さらに、単独のファイルにファイル化された文書や単独のデータベースにデータベース化された文書に限らず、複数のファイルにファイル化された文書や、複数のデータベースにデータベース化された文書に対する文書検索にも適用することができる。
【００９０】
なお、本実施の形態で説明した文書検索方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【００９１】
以上のように、本発明にかかる文書検索装置、文書検索方法および文書検索プログラムは、階層構造化された文書セットから、自然文により入力された検索条件に合致するノードを検索するパーソナル・コンピュータ、ドキュメントサーバ、文書検索ソフトウェアなどへの利用に適している。
【図面の簡単な説明】
【００９２】
【図１】この実施の形態にかかる文書検索装置のハードウェア構成の一例を示すブロック図である。
【図２】この実施の形態にかかる文書検索装置の機能的構成を示すブロック図である。
【図３】この発明の実施の形態にかかる文書検索装置に用いられるＸＭＬ文書の一例を示す説明図である。
【図４】生成部によるノードリストの生成手順の一例を示すフローチャートである。
【図５】生成部によって生成されたノードリストの一例を示す説明図である。
【図６】この発明の実施の形態にかかる文書検索装置による文書検索処理の手順の一例を示すフローチャートである。
【図７】算出部によって算出されたスコアの一例を示す説明図である。
【図８】加算部によって加算されたスコアの一例を示す説明図である。
【図９】決定部によってソートされたノードリストの一例を示す説明図である。
【図１０】表示部に表示された検索結果の一例を示す説明図である。
【符号の説明】
【００９３】
１００  文書検索装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  ＨＤＤ
１０５  ＨＤ
１０６  ＦＤＤ
１０７  ＦＤ
１０８  ＣＤ−ＲＷドライブ
１０９  ＣＤ−ＲＷ
１１０  ディスプレイ
１１１  キーボード
１１２  マウス
１１３  ネットワークＩ／Ｆ
１１４  通信ケーブル
１２０  バス
２０１  取得部
２０２  生成部
２０３  入力部
２０４  算出部
２０５  判断部
２０６  加算部
２０７  決定部
２０８  出力制御部
２０９  表示部
【図１】
2008146209.tif 000003
【図２】
2008146209.tif 000004
【図３】
2008146209.tif 000005
【図４】
2008146209.tif 000006
【図５】
2008146209.tif 000007
【図６】
2008146209.tif 000008
【図７】
2008146209.tif 000009
【図８】
2008146209.tif 000010
【図９】
2008146209.tif 000011
【図１０】
2008146209.tif 000012