説明

文書検索装置、文書検索方法および文書検索プログラム

【課題】文書検索処理における検索精度およびユーザビリティの向上を図ること。
【解決手段】取得部201は、XML文書を取得する。生成部202は、XML文書からノードリストを生成する。入力部203は、検索条件の入力を受け付ける。算出部204は、ノードリストに示されているノードごとに、検索条件の合致度を示すスコアを算出する。判断部205は、ノードリストに示されているノードごとに、所定の適合条件を満たすか否かを判断する。加算部206は、判断部205によって所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算する。決定部207は、加算部206によって加算されたスコアと、算出部204によって算出されたスコアと、に基づいて、ノードリストに示されているノードの中から、前記検索条件の合致度が高いノードを検索結果として決定する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、階層構造化された文書セットから、自然文により入力された検索条件に合致するノードを検索する文書検索装置、文書検索方法および文書検索プログラムに関する。
【背景技術】
【0002】
従来より、一連の文書を、章や節などの適切な単位の部分文書に分割し、階層構造化することによって、出版の多様性、情報検索の的確性、分割/結合の容易性など、多くのメリットを得ることができるものとされている。たとえば、階層構造化された文書の代表的なものとしては、XML文書が挙げられる。このXML文書は、タグによって文書要素や文書テキストがマークアップされている。このため、要素ノードおよびテキストノードによって構成される木構造でモデル化することができる。これにより、ノード単位での部分文書の検索をおこなうことができる。
【0003】
XML文書に対する部分文書の検索処理に用いられる検索方法の一般的なものとして、指定された検索文字列を含む最小単位の部分文書をXML文書の中から全て検索する方法が挙げられる(たとえば、下記特許文献1参照。)。
【0004】
【特許文献1】特開平11−306205号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上記特許文献1に記載の従来技術にあっては、検索文字列を含む複数の最小単位の部分文書が同一の部分文書に含まれている場合であっても、複数の最小単位の部分文書が断片的に検索されてしまう。たとえば、文書が、章、節、項、文ごとに分割されていた場合、検索文字列を含む文単位の部分文書が断片的に検索されてしまう。このような場合、ユーザにとっては、複数の最小単位の部分文書を包括する単位(たとえば、章や節など)の部分文書が検索結果として検索されることが望ましいものである。
【0006】
このような問題に対応すべく、検索文字列を含む最小単位(たとえば、文)の部分文書を全て検索するだけでなく、検索文字列に関連する様々な単位(たとえば、章、節、項など)の部分文書も全て検索する方法が考案されているが、この場合、検索された部分文書の中には、検索文字列との関連性が低く、ユーザが意図したものとはかけ離れている部分文書も多く含まれる。
【0007】
また、上記特許文献1に記載の従来技術にあっては、関連性の強弱を考慮した検索処理をおこなっていないため、より検索文字列との関連性の強い部分文書のみを検索することや、検索された部分文書を検索文字列との関連性の強弱に応じた順序で表示することができない。
【0008】
このように、上述した従来技術においては、適切な単位および数の部分文書を検索することができないだけでなく、検索された部分文書を適切な順序で表示することができないといった問題が生じていた。
【0009】
この発明は、上述した従来技術による問題点を解消するため、適切な単位および数の部分文書を検索したうえ、検索された部分文書を適切な順序で表示することによって、文書検索処理における検索精度およびユーザビリティの向上を図ることができる文書検索装置、文書検索方法および文書検索プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決し、目的を達成するため、この発明にかかる文書検索装置は、階層構造化された文書セットから、自然文により入力された検索条件に合致するノードを検索する文書検索装置であって、前記文書セットを取得する取得手段と、前記取得手段によって取得された文書セットからノードリストを生成する生成手段と、前記検索条件の入力を受け付ける入力手段と、前記生成手段によって生成されたノードリストに示されているノードごとに、前記入力手段によって入力された検索条件に基づいた、前記検索条件の合致度を示すスコアを算出する算出手段と、前記生成手段によって生成されたノードリストに示されているノードごとに、所定の適合条件を満たすか否かを判断する判断手段と、前記判断手段によって所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算する加算手段と、前記加算手段によって加算されたスコアと、前記算出手段によって算出されたスコアと、に基づいて、前記生成手段によって生成されたノードリストの中から、前記検索条件の合致度が高いノードを検索結果として決定する決定手段と、を備えたことを特徴とする。
【0011】
この発明によれば、文書検索処理において、テキストノードを持つノードが所定の適合条件を満たしている場合、このノードが属する親ノードを、検索条件の合致度が高いノードとして扱うことができる。
【0012】
また、この発明にかかる文書検索装置は、上記に記載の発明において、前記決定手段によって検索結果として決定されたノードを、前記検索条件の合致度が高い順に表示されるよう出力を制御する出力制御手段をさらに備えたことを特長とする
【0013】
この発明によれば、文書セットの中から検索された検索条件の合致度が高いノードを、適切な順序で表示されるよう出力を制御することができる。
【0014】
また、この発明にかかる文書検索装置は、上記に記載の発明において、前記決定手段は、前記加算手段によって加算されたスコアと、前記算出手段によって算出されたスコアと、に基づいて、前記生成手段によって生成されたノードリストを、前記検索条件の合致度が高い順にソートし、ソートされたノードリストの中から、上位から所定数のノードを検索結果として決定することを特徴とする。
【0015】
この発明によれば、検索条件の合致度がより高いノードを、必要な数だけ文書セットの中から検索することができる。
【0016】
また、この発明にかかる文書検索装置は、上記に記載の発明において、前記算出手段は、TF−IDF法を用いて、前記生成手段によって生成されたノードリストに示されているノードごとに、前記入力手段によって入力された検索条件に基づいた、検索条件の合致度を示すスコアを算出することを特徴とする。
【0017】
この発明によれば、文書検索処理において、TF−IDF法を用いてスコアを算出することにより、単に検索条件に含まれるキーワードが多く出現するノードではなく、そのキーワードをノードの特徴的なものとするノードを、検索条件の合致度が高いノードとして扱うことができる。
【0018】
また、この発明にかかる文書検索方法は、階層構造化された文書セットから、自然文により入力された検索条件に合致するノードを検索する文書検索方法であって、前記文書セットを取得する取得工程と、前記取得工程によって取得された文書セットからノードリストを生成する生成工程と、前記検索条件の入力を受け付ける入力工程と、前記生成工程によって生成されたノードリストに示されているノードごとに、前記入力工程によって入力された検索条件に基づいた、前記検索条件の合致度を示すスコアを算出する算出工程と、前記生成工程によって生成されたノードリストに示されているノードごとに、所定の適合条件を満たすか否かを判断する判断工程と、前記判断工程によって所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算する加算工程と、前記加算工程によって加算されたスコアと、前記算出工程によって算出されたスコアと、に基づいて、前記生成工程によって生成されたノードリストの中から、前記検索条件の合致度が高いノードを検索結果として決定する決定工程と、をコンピュータに実行させることを特徴とする。
【0019】
この発明によれば、文書検索処理において、テキストノードを持つノードが所定の適合条件を満たしている場合、このノードが属する親ノードを、検索条件の合致度が高いノードとしてコンピュータに扱わせることができる。
【0020】
また、この発明にかかる文書検索プログラムは、階層構造化された文書セットか、自然文により入力された検索条件に合致するノードを検索する文書検索プログラムであって、前記文書セットを取得する取得工程と、前記取得工程によって取得された文書セットからノードリストを生成する生成工程と、前記検索条件の入力を受け付ける入力工程と、前記生成工程によって生成されたノードリストに示されているノードごとに、前記入力工程によって入力された検索条件に基づいた、前記検索条件の合致度を示すスコアを算出する算出工程と、前記生成工程によって生成されたノードリストに示されているノードごとに、所定の適合条件を満たすか否かを判断する判断工程と、前記判断工程によって所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算する加算工程と、前記加算工程によって加算されたスコアと、前記算出工程によって算出されたスコアと、に基づいて、前記生成工程によって生成されたノードリストの中から、前記検索条件の合致度が高いノードを検索結果として決定する決定工程と、をコンピュータに実行させることを特徴とする。
【0021】
この発明によれば、文書検索処理において、テキストノードを持つノードが所定の適合条件を満たしている場合、このノードが属する親ノードを、検索条件の合致度が高いノードとしてコンピュータに扱わせることができる。
【発明の効果】
【0022】
本発明にかかる文書検索装置、文書検索方法および文書検索プログラムによれば、適切な単位および数の部分文書を検索したうえ、検索された部分文書を適切な順序で表示することによって、文書検索処理における検索精度およびユーザビリティの向上を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【0023】
以下に添付図面を参照して、この発明にかかる文書検索装置、文書検索方法および文書検索プログラムの好適な実施の形態を、階層構造化された文書セットの一例としてXML文書を用いて詳細に説明する。
【0024】
(文書検索装置100のハードウェア構成)
まず、この実施の形態にかかる文書検索装置のハードウェア構成について説明する。図1は、この実施の形態にかかる文書検索装置のハードウェア構成の一例を示すブロック図である。
【0025】
図1において、文書検索装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、HDD(Hard Disc Drive)104と、HD(Hard Disc)105と、FDD(Flexible Disc Drive)106と、FD(Flexible Disc)107と、CD−RW(Compact Disc ReWritable)ドライブ108と、CD−RW109と、ディスプレイ110と、キーボード111と、マウス112と、ネットワークI/F(インタフェース)113と、通信ケーブル114と、バス120とを備えて構成されている。
【0026】
CPU101は、文書検索装置100全体を制御する。ROM102は、各種制御プログラムなどを格納する。RAM103は、可変的なデータを書き換え自在に記憶し、CPU101のワークエリアとして機能する。HDD104は、CPU101の制御にしたがってHD105に対するデータのリード/ライトを制御する。HD105は、HDD104の制御にしたがって書き込まれたデータを記憶する。
【0027】
FDD106は、CPU101の制御にしたがってFD107に対するデータのリード/ライトを制御する。FD107は、着脱自在であり、FDD106の制御にしたがって書き込まれたデータを記憶する。CD−RWドライブ108は、CPU101の制御にしたがってCD−RW(または、CD−R、CD−ROM)109に対するデータのリード/ライトを制御する。CD−RW109は、着脱自在であり、CD−RWドライブ108の制御にしたがって書き込まれたデータを記憶する。
【0028】
ディスプレイ110は、カーソル、メニュー、ウィンドウ、あるいは文字や画像などの各種データを表示する。キーボード111は、文字、数値、各種指示などの入力のための複数のキーを備える。マウス112は、各種指示の選択や実行、処理対象の選択、マウスポインタの移動などを行う。ネットワークI/F113は、通信ケーブル114を介してLAN、WAN、インターネットなどのネットワークに接続され、当該ネットワークとCPU101とのインタフェースとして機能する。バス120は上記各部を接続する。
【0029】
(文書検索装置100の機能的構成)
つぎに、この実施の形態にかかる文書検索装置100の機能的構成について説明する。図2は、この実施の形態にかかる文書検索装置100の機能的構成を示すブロック図である。
【0030】
図2に示すように、文書検索装置100は、取得部201と、生成部202と、入力部203と、算出部204と、判断部205と、加算部206と、決定部207と、出力制御部208と、表示部209と、を備えて構成されている。
【0031】
取得部201は、XML文書を取得する。たとえば取得部201は、ユーザによって指定されたXML文書ファイルを読み取ることによってXML文書を取得する。この場合、XML文書ファイルは、文書検索装置100内部に記憶されているものに限らず、たとえば、文書検索装置100と接続された他の装置に記憶されているものであってもよい。取得部201は、具体的には、たとえば図1に示したROM102、RAM103、HD105、FD107に記憶されたプログラムをCPU101が実行することによってその機能を実現する。
【0032】
生成部202は、取得部201によって取得されたXML文書からノードリストを生成する。ここでいうノードリストとは、木構造にモデル化されたXML文書に基づいてXML文書内に存在する全ての要素ノードをリスト化したものであり、各要素ノードごとに、たとえば、インデックス、パスなどの情報を含む。また、要素ノードにテキストノードが属している場合は、そのテキストノードの、インデックス、テキストなどの情報が関連付けられる。生成部202によって生成されたノードリストは、たとえば各ノードのパスが示されたリスト形式でメモリ上に一時的に記憶される。
【0033】
なお、生成部202は、XML文書に存在する全てのノードに関するノードリストを生成するだけでなく、所定の範囲内のノードに関するノードリストや、ユーザによって指定された範囲内のノードに関するノードリストを生成するようにしてもよい。また、ノードリストの具体的な生成手順については、図4を用いて後述する。生成部202は、具体的には、たとえば図1に示したROM102、RAM103、HD105、FD107に記憶されたプログラムをCPU101が実行することによってその機能を実現する。
【0034】
入力部203は、検索条件(検索クエリ文)の入力を受け付ける。たとえば、検索条件は「J社 I太郎」や「(J社 I太郎)」のように入力され、前者は、「J社」および「I太郎」の両方を含む、を意味し、後者は、「J社」または「I太郎」のいずれかを含む、を意味する。ここで、検索条件は、ユーザが文書検索装置100に直接入力したものに限らず、たとえば、文書検索装置100と接続された他の装置から送信されたものであってもよい。入力部203は、具体的には、たとえば図1に示したキーボード111、マウス112、ネットワークI/F113などによってその機能を実現する。
【0035】
算出部204は、生成部202によって生成されたノードリストに示されているノードごとに、入力部203によって入力された検索条件に基づいた、検索条件の合致度を示すスコアを算出する。スコア(TF−IDF)は、以下算出式(1)により求めることができる。
【0036】
TFIDF=TF×log(N/DF)・・・(1)
【0037】
上記算出式(1)において、TFは、テキストノード内における検索文字列の出現数を示す。また、Nは、全テキストノード数を示す。そして、DFは、検索文字列を含むテキストノード数を示す。
【0038】
なお、本実施の形態においては、TF−IDF法を用いてスコアを算出しているが、これに限らず、他の方法を用いて、スコアを算出するようにしてもよい。算出部204は、具体的には、たとえば図1に示したROM102、RAM103、HD105、FD107に記憶されたプログラムをCPU101が実行することによってその機能を実現する。
【0039】
判断部205は、生成部202によって生成されたノードリストに示されているノードごとに、算出部204によって算出されたスコアに基づいて、所定の適合条件を満たすか否かを判断する。適合条件としては、たとえば、「スコアが所定以上または所定値未満の場合であるか否か」、「他の同位ノードのスコアとの合計スコアは所定値以上となるか否か」、「他の同位ノードとの合計ノード数が所定値以下か否か」、などが挙げられるが、これに限らず、他の適合条件を用いてもよい。また、適合条件は、あらかじめ設定されているものであってもよく、ユーザによって指定されたものであってもよい。判断部205は、具体的には、たとえば図1に示したROM102、RAM103、HD105、FD107に記憶されたプログラムをCPU101が実行することによってその機能を実現する。
【0040】
加算部206は、判断部205によって所定の適合条件を満たすと判断されたノードのスコアを、このノードが属する親ノードのスコアに加算する。たとえば、所定の適合条件を満たすと判断されたノード「A/B/D」のスコアが「5」であり、このノードが属する親ノード「A/B」のスコアが「5」であった場合、加算部206による加算処理によって、ノード「A/B」のスコアのスコアは「10」となる。加算部206は、上記加算処理を、根ノード(すなわち、階層の深いノード)からルートノードに向かって、順に、生成部202によって生成されたノードリストに示されている全てのノードについておこなう。加算部206は、具体的には、たとえば図1に示したROM102、RAM103、HD105、FD107に記憶されたプログラムをCPU101が実行することによってその機能を実現する。
【0041】
決定部207は、加算部206によって加算されたスコアと、算出部204によって算出されたスコアと、に基づいて、生成部202によって生成されたノードリストを検索条件の合致度が高い順にソートし、ソートされたノードリストの中から、上位から所定数のノードを検索結果として決定する。
【0042】
なお、決定部207によって検索結果として決定されるノードの検索数は、あらかじめ設定されているものに限らず、たとえば、ユーザによって指定されたものであってもよい。決定部207は、具体的には、たとえば図1に示したROM102、RAM103、HD105、FD107に記憶されたプログラムをCPU101が実行することによってその機能を実現する。
【0043】
出力制御部208は、決定部207によって検索結果として決定されたノードが、検索条件の合致度が高い順に表示部209に表示されるよう出力を制御する。なお、出力制御部208は、決定部207によって検索結果として決定されたノードを表示するように制御するだけでなく、たとえば、ファイルに出力するように制御したり、文書検索装置100と接続された他の装置へ送信するように制御してもよい。出力制御部208は、具体的には、たとえば図1に示したROM102、RAM103、HD105、FD107に記憶されたプログラムをCPU101が実行することによってその機能を実現する。
【0044】
表示部209は、出力制御部208の制御によって、決定部207によって検索結果として決定されたノードを、検索条件の合致度が高い順に表示する。表示部209は、具体的には、たとえば図1に示したディスプレイ110によってその機能を実現する。
【0045】
(XML文書の一例)
つぎに、この発明の実施の形態にかかる文書検索装置100に用いられるXML文書の一例について説明する。図3は、この発明の実施の形態にかかる文書検索装置100に用いられるXML文書の一例を示す説明図である。
【0046】
図3は、木構造にモデル化されたXML文書「c:¥documents¥0123.xml」を示したものである。図3において、ノード1〜ノード11は、要素ノードを示し、各数字「1」〜「11」はインデックスを示す。また、ノードA〜Eは、テキストノードを示し、各英字「A」〜「E」はインデックスを示す。
【0047】
図3において、たとえば、要素ノード4にはテキストノードAが属している。また、テキストノードAは、テキスト「XML,scheme」を持つ。たとえば、このテキストノードAをタグを用いて示した場合、「<article><body><sec><p1>XML,scheme</p1></sec></body></article>」と示すことができる。
【0048】
(生成部202によるノードリストの生成手順)
つぎに、生成部202によるノードリストの生成手順について説明する。図4は、生成部202によるノードリストの生成手順の一例を示すフローチャートである。
【0049】
まず、木構造にモデル化されたXML文書の中から、要素ノードを一つ選択する(ステップS401)。最初は、最上位の要素ノードを選択する。たとえば、図3に示したXML文書の場合、要素ノード1が選択される。
【0050】
つぎに、ステップS401で選択された要素ノードをノードリストに追加する(ステップS402)。ここで、ノードリストに追加される情報は、要素ノードのインデックスやパスなどである。たとえば、図3に示したXML文書における要素ノード1の場合は、インデックス「1」やパス「/article」などである。
【0051】
つぎに、ステップS401で選択された要素ノードにテキストノードが属しているか否かを判断する(ステップS403)。たとえば、図3に示したXML文書における要素ノード1の場合は、テキストノードが属していないと判断され、要素ノード4の場合は、テキストノードが属していると判断される。
【0052】
ステップS403において、テキストノードが属していると判断した場合(ステップS403:Yes)は、ステップS401で選択された要素ノードと、この要素ノードに属しているテキストノードとの関連付けをおこなって(ステップS404)、ステップS405へ進む。
【0053】
ここで、要素ノードに関連付けられる情報は、テキストノードのインデックスやテキストなどである。たとえば、図3に示したXML文書におけるテキストノードAの場合は、インデックス「A」やテキスト「XML,scheme」などである。一方、ステップS403において、テキストノードが属していないと判断した場合(ステップS403:No)は、ステップS404を飛ばして、ステップS405へ進む。
【0054】
つぎに、XML文書に含まれる全ての要素ノードが選択されたか否かを判断する(ステップS405)。ステップS405において、全ての要素ノードが選択されたと判断した場合(ステップS405:Yes)は、一連の処理を終了する。一方、ステップS405において、全ての要素ノードが選択されていないと判断した場合(ステップS405:No)は、XML文書において、ステップS401で選択された要素ノードを基準に、次の要素ノードを選択する(ステップS406)。このとき、下位ノードと同位ノードが存在する場合は下位ノードを優先して選択する。たとえば、図3に示したXML文書において、要素ノードが選択される順番は、インデックス番号の順番とおりとなる。
【0055】
そして、ステップS402に戻り、ステップS405で全てのノードが選択されたと判断されるまで、ステップS402〜ステップS406を繰り返しおこなう。これにより、XML文書に含まれる全ての要素ノードをノードリストに追加することができる。また、XML文書に含まれる全てのテキストノードを、それぞれ、ノードリストに示された要素ノードのいずれかと関連付けることができる。
【0056】
(生成部202によって生成されたノードリストの一例)
つぎに、生成部202によって生成されたノードリストの一例について説明する。図5は、生成部202によって生成されたノードリストの一例を示す説明図である。
【0057】
図5に示すノードリストは、図4を用いて上述した手順によって、図3に示したXML文書から生成されたノードリストであり、列「index1」,「pass」,「index2」,「text」によって構成されている。
【0058】
このうち、列「index1」には、要素ノードのインデックスが設定されている。また、列「pass」には、要素ノードのパスが設定されている。そして、列「index2」には、要素ノードと関連付けられているテキストノードのインデックスが設定されている。さらに、列「text」には、要素ノードと関連付けられているテキストノードのテキストが設定されている。
【0059】
たとえば、図5に示すノードリストから、インデックス「4」が付与されたパス「/article/body/sec/p1」によって示される要素ノードには、インデックス「A」が付与され、かつテキスト「XML,scheme」を含むテキストノードが関連付けられていると判断することができる。
【0060】
(文書検索装置100による文書検索処理の手順)
つぎに、この発明の実施の形態にかかる文書検索装置100による文書検索処理の手順について説明する。図6は、この発明の実施の形態にかかる文書検索装置100による文書検索処理の手順の一例を示すフローチャートである。
【0061】
まず、取得部201によって、XML文書を取得して(ステップS601)、生成部202によって、ステップS601で取得されたXML文書からノードリストを生成する(ステップS602)。ノードリストの具体的な生成手順については図4を用いて上述したとおりである。
【0062】
つぎに、入力部203によって、検索条件の入力を受け付けて(ステップS603)、算出部204によって、ステップS602で生成されたノードリストに示されているノードごとに、ステップS603で入力された検索条件に基づいた、検索条件の合致度を示すスコアを算出する(ステップS604)。
【0063】
続いて、判断部205によって、ステップS602で生成されたノードリストに示されているノードを一つ選択して(ステップS605)、ステップS605で選択されたノードについて、ステップS604で算出されたスコアに基づいて、所定の適合条件を満たすか否かを判断する(ステップS606)。
【0064】
ステップS606において、所定の適合条件を満たすと判断した場合(ステップS606:Yes)は、加算部206によって、ステップS605で選択されたノードのスコアを、このノードが属する親ノードのスコアに加算して(ステップS607)、ステップS608へ進む。一方、ステップS606において、所定の適合条件を満たさないと判断した場合(ステップS606:No)は、ステップS607を飛ばして、ステップS608へ進む。
【0065】
続いて、判断部205によって、ステップS602で生成されたノードリストに示されているノードが全て選択されたか否かを判断する(ステップS608)。ステップS608において、ノードが全て選択されていないと判断した場合(ステップS608:No)は、ステップS608においてノードが全て選択されたと判断されるまで、ステップS605〜ステップS608を繰り返しおこなう。
【0066】
一方、ステップS608において、ノードが全て選択されたと判断した場合(ステップS608:Yes)は、決定部207によって、ステップS607で加算されたスコアと、ステップS604で算出されたスコアと、に基づいて、ステップS602で生成されたノードリストを検索条件の合致度が高い順にソートして(ステップS609)、ソートされたノードリストの中から、上位から所定数のノードを検索結果として決定する(ステップS610)。
【0067】
そして、出力制御部208の制御によって、ステップS610で検索結果として決定されたノードを、検索条件の合致度が高い順に表示部209に表示して(ステップS611)、一連の処理を終了する。
【0068】
(算出部204によって算出されたスコアの一例)
つぎに、算出部204によって算出されたスコアの一例について説明する。図7は、算出部204によって算出されたスコアの一例を示す説明図である。
【0069】
図7は、図5に示したノードリストと、算出部204によって算出された各要素ノードのスコアと、の関連付けを示したものである。図7において、列「score1」には、算出部204によって算出されたスコアが設定されている。このときの、算出処理に用いられた検索文字列は「XML,tag,scheme」である。
【0070】
たとえば、図7から、インデックス「4」が付与されたパス「/article/body/sec/p1」によって示される要素ノードには、算出部204によって算出されたスコア「38」が関連付けられていると判断することができる。ここで、このスコア「38」は以下のTF−IDF算出式(2)によって算出されたものである。
【0071】
38(TFIDF:スコア)=1(TF:テキストノード内における検索文字列「XML」の出現数)×20(IDF:log(全テキストノード数/検索文字列「XML」を含むテキストノード数))+1(TF:テキストノード内における検索文字列「scheme」の出現数)×18(IDF:log(全テキストノード数/検索文字列「scheme」を含むテキストノード数))・・・(2)
【0072】
また、インデックス「5」が付与されたパス「/article/body/sec/p2」によって示される要素ノードには、算出部204によって算出されたスコア「80」が関連付けられていると判断することができる。こで、このスコア「80」は以下のTF−IDF算出式(3)によって算出されたものである。
【0073】
80(TFIDF:スコア)=2(TF:テキストノード内における検索文字列「tag」の出現数)×40(IDF:log(全テキストノード数/検索文字列「tag」を含むテキストノード数))・・・(3)
【0074】
なお、算出部204によって算出されたスコアは、ノードリストに持たせてもよく、ノードリストとは別のテーブルなどに持たせてもよい。
【0075】
(加算部206によって加算されたスコアの一例)
つぎに、加算部206によって加算されたスコアの一例について説明する。図8は、加算部206によって加算されたスコアの一例を示す説明図である。
【0076】
図8は、図5に示したノードリストと、算出部204によって算出された各要素ノードのスコアと、加算部206によって加算されたスコアと、の関連付けを示したものである。図8において、列「score2」には、加算部206によって加算されたスコアが設定されている。
【0077】
たとえば、図8から、インデックス「3」が付与されたパス「/article/body/sec」によって示される要素ノードには、加算部204によって加算されたスコア「118」が関連付けられていると判断することができる。ここで、このスコア「118」は、この要素ノードに属する、インデックス「4」が付与された要素ノードのスコア「38」と、インデックス「5」が付与された要素ノードのスコア「80」とが加算されたものである。
【0078】
上記加算処理に先立っては、判断部205によって、インデックス「4」および「5」についての、インデックス「3」に加算するか否かの判断処理がおこなわれている。このときの、判断処理に用いられた判断条件は「合計スコア50以上となる場合は加算する」と、「連結ノード数が100以下の場合は加算する」である。そして、インデックス「4」および「5」については、上記条件を満たしているため、ともにスコアをインデックス「3」のスコアに加算すると判断されている。
【0079】
また、図8に示すように、インデックス「4」および「5」のスコアは、加算部204によって「0」とされている。これは、インデックス「3」と、インデックス「4」および「5」とが、重複して検索結果として決定されることを避けるためである。
【0080】
同様に、図8から、インデックス「9」が付与されたパス「/article/body/sec/title/name」によって示される要素ノードには、加算部204によって加算されたスコア「66」が関連付けられていると判断することができる。ここで、このスコア「66」は、この要素ノードに属する、インデックス「10」が付与された要素ノードのスコア「22」と、インデックス「11」が付与された要素ノードのスコア「44」とが加算されたものである。そして、インデックス「10」および「11」のスコアは、加算部204によって「0」とされている。
【0081】
(決定部207によってソートされたノードリストの一例)
つぎに、決定部207によってソートされたノードリストの一例について説明する。図9は、決定部207によってソートされたノードリストの一例を示す説明図である。
【0082】
図9は、決定部207によって、図8に示したように加算部206によって加算されたスコアと、図7に示したように算出部204によって算出されたスコアと、に基づいて、図5に示したノードリストを検索条件の合致度が高い順にソートしたものである。このようにソートされたノードリストから、決定部207は、上位から所定数のノードを検索結果として決定する。
【0083】
たとえば、検索数が3件と指定されている場合、決定部207は、図9に示したノードリストの中から、インデックス「3」が付与された要素ノードと、インデックス「8」が付与された要素ノードと、インデックス「9」が付与された要素ノードと、の3件の要素ノードを検索結果として決定する。
【0084】
(表示部209に表示された検索結果の一例)
つぎに、表示部209に表示された検索結果の一例について説明する。図10は、表示部209に表示された検索結果の一例を示す説明図である。
【0085】
図10は、図3に示したXML文書に対して、図6を用いて上述した手順による文書検索処理がおこなわれた結果、表示部209に表示された検索結果を示すものである。図10に示すように、文書検索処理をおこなうにあたり、検索対象文書「c:¥documents¥0123.xml」、検索条件「XML,tag,scheme」、検索数「3(件)」がユーザによって指定されている。
【0086】
そして、「検索」ボタンが押下されたことにより、検索対象文書「c:¥documents¥0123.xml」に対する文書検索処理がおこなわれ、その結果として、検索対象文書「c:¥documents¥0123.xml」の中から決定された、上位3件のノードが検索結果として表示されている。
【0087】
以上説明したように、本実施の形態にかかる文書検索装置100によれば、XML文書を取得し、取得されたXML文書からノードリストを生成し、検索条件の入力を受け付け、生成されたノードリストに示されているノードごとに、入力された検索条件に基づいた、検索条件の合致度を示すスコアを算出し、生成されたノードリストに示されているノードごとに、所定の適合条件を満たすか否かを判断し、所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算し、加算されたスコアと、算出されたスコアと、に基づいて、生成されたノードリストを、検索条件の合致度が高い順にソートし、ソートされたノードリストの中から、上位から所定数のノードを検索結果として決定し、決定されたノードを、検索条件の合致度が高い順に表示する構成とした。
【0088】
これにより、文書検索処理において、テキストノードを持つノードが所定の適合条件を満たしている場合、このノードが属する親ノードを、検索条件の合致度が高いノードとして扱うことができる。そのうえで、検索条件の合致度がより高いノードを、必要な数だけXML文書の中から検索することができる。さらに、検索されたノードを、適切な順序で表示することができる。このため、適切な単位および数の部分文書を検索することができるうえ、検索された部分文書を適切な順序で表示することができ、結果的に、文書検索処理における検索精度およびユーザビリティの向上を図ることができる。
【0089】
なお、この発明にかかる文書検索装置、文書検索方法および文書検索プログラムは、階層構造化された文書セットであれば、XML文書以外の文書に対する文書検索にも適用することができる。また、ファイル化された文書に限らず、たとえば、データベース化された文書に対する文書検索にも適用することができる。さらに、単独のファイルにファイル化された文書や単独のデータベースにデータベース化された文書に限らず、複数のファイルにファイル化された文書や、複数のデータベースにデータベース化された文書に対する文書検索にも適用することができる。
【0090】
なお、本実施の形態で説明した文書検索方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【0091】
以上のように、本発明にかかる文書検索装置、文書検索方法および文書検索プログラムは、階層構造化された文書セットから、自然文により入力された検索条件に合致するノードを検索するパーソナル・コンピュータ、ドキュメントサーバ、文書検索ソフトウェアなどへの利用に適している。
【図面の簡単な説明】
【0092】
【図1】この実施の形態にかかる文書検索装置のハードウェア構成の一例を示すブロック図である。
【図2】この実施の形態にかかる文書検索装置の機能的構成を示すブロック図である。
【図3】この発明の実施の形態にかかる文書検索装置に用いられるXML文書の一例を示す説明図である。
【図4】生成部によるノードリストの生成手順の一例を示すフローチャートである。
【図5】生成部によって生成されたノードリストの一例を示す説明図である。
【図6】この発明の実施の形態にかかる文書検索装置による文書検索処理の手順の一例を示すフローチャートである。
【図7】算出部によって算出されたスコアの一例を示す説明図である。
【図8】加算部によって加算されたスコアの一例を示す説明図である。
【図9】決定部によってソートされたノードリストの一例を示す説明図である。
【図10】表示部に表示された検索結果の一例を示す説明図である。
【符号の説明】
【0093】
100 文書検索装置
101 CPU
102 ROM
103 RAM
104 HDD
105 HD
106 FDD
107 FD
108 CD−RWドライブ
109 CD−RW
110 ディスプレイ
111 キーボード
112 マウス
113 ネットワークI/F
114 通信ケーブル
120 バス
201 取得部
202 生成部
203 入力部
204 算出部
205 判断部
206 加算部
207 決定部
208 出力制御部
209 表示部

【特許請求の範囲】
【請求項1】
階層構造化された文書セットから、自然文により入力された検索条件に合致するノードを検索する文書検索装置であって、
前記文書セットを取得する取得手段と、
前記取得手段によって取得された文書セットからノードリストを生成する生成手段と、
前記検索条件の入力を受け付ける入力手段と、
前記生成手段によって生成されたノードリストに示されているノードごとに、前記入力手段によって入力された検索条件に基づいた、前記検索条件の合致度を示すスコアを算出する算出手段と、
前記生成手段によって生成されたノードリストに示されているノードごとに、前記算出手段によって算出されたスコアに基づいて、所定の適合条件を満たすか否かを判断する判断手段と、
前記判断手段によって所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算する加算手段と、
前記加算手段によって加算されたスコアと、前記算出手段によって算出されたスコアと、に基づいて、前記生成手段によって生成されたノードリストの中から、前記検索条件の合致度が高いノードを検索結果として決定する決定手段と、
を備えたことを特徴とする文書検索装置。
【請求項2】
前記決定手段によって決定されたノードを、前記検索条件の合致度が高い順に表示されるよう出力を制御する出力制御手段をさらに備えたことを特長とする請求項1に記載の文書検索装置。
【請求項3】
前記決定手段は、前記加算手段によって加算されたスコアと、前記算出手段によって算出されたスコアと、に基づいて、前記生成手段によって生成されたノードリストを、前記検索条件の合致度が高い順にソートし、ソートされたノードリストの中から、上位から所定数のノードを検索結果として決定することを特徴とする請求項1または2に記載の文書検索装置。
【請求項4】
前記算出手段は、TF−IDF法を用いて、前記生成手段によって生成されたノードリストに示されているノードごとに、前記入力手段によって入力された検索条件に基づいた、検索条件の合致度を示すスコアを算出することを特徴とする請求項1〜3のいずれか一つに記載の文書検索装置。
【請求項5】
階層構造化された文書セットから、自然文により入力された検索条件に合致するノードを検索する文書検索方法であって、
前記文書セットを取得する取得工程と、
前記取得工程によって取得された文書セットからノードリストを生成する生成工程と、
前記検索条件の入力を受け付ける入力工程と、
前記生成工程によって生成されたノードリストに示されているノードごとに、前記入力工程によって入力された検索条件に基づいた、前記検索条件の合致度を示すスコアを算出する算出工程と、
前記生成工程によって生成されたノードリストに示されているノードごとに、前記算出工程によって算出されたスコアに基づいて、所定の適合条件を満たすか否かを判断する判断工程と、
前記判断工程によって所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算する加算工程と、
前記加算工程によって加算されたスコアと、前記算出工程によって算出されたスコアと、に基づいて、前記生成工程によって生成されたノードリストの中から、前記検索条件の合致度が高いノードを検索結果として決定する決定工程と、
をコンピュータに実行させることを特徴とする文書検索方法。
【請求項6】
階層構造化された文書セットから、自然文により入力された検索条件に合致するノードを検索する文書検索プログラムであって、
前記文書セットを取得する取得工程と、
前記取得工程によって取得された文書セットからノードリストを生成する生成工程と、
前記検索条件の入力を受け付ける入力工程と、
前記生成工程によって生成されたノードリストに示されているノードごとに、前記入力工程によって入力された検索条件に基づいた、前記検索条件の合致度を示すスコアを算出する算出工程と、
前記生成工程によって生成されたノードリストに示されているノードごとに、前記算出工程によって算出されたスコアに基づいて、所定の適合条件を満たすか否かを判断する判断工程と、
前記判断工程によって所定の適合条件を満たすと判断されたノードのスコアを、当該ノードが属する親ノードのスコアに加算する加算工程と、
前記加算工程によって加算されたスコアと、前記算出工程によって算出されたスコアと、に基づいて、前記生成工程によって生成されたノードリストの中から、前記検索条件の合致度が高いノードを検索結果として決定する決定工程と、
をコンピュータに実行させることを特徴とする文書検索プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2008−146209(P2008−146209A)
【公開日】平成20年6月26日(2008.6.26)
【国際特許分類】
【出願番号】特願2006−330571(P2006−330571)
【出願日】平成18年12月7日(2006.12.7)
【出願人】(390024350)株式会社ジャストシステム (123)
【Fターム(参考)】