(57)【要約】【課題】適切に検索結果を取得して出力する構造化文書検索装置を提供すること。【解決手段】検索キーワードの入力を受付ける受付部１０１と、受付けた検索キーワードを含む構造化文書を文書管理装置から検索する検索部１０２と、検索された構造化文書に含まれる論理構造の単位である構造要素の出現に関する統計情報を算出する算出部１０６と、算出した統計情報に基づいて特徴ベクトルを生成する生成部１１３と、特徴ベクトルに基づいて構造化文書を特徴づける構造要素を選択し、選択した構造要素から、検索された構造化文書間で類似する構造要素である類似部分構造を抽出する構造抽出部１０７と、抽出した類似部分構造に対応する構造化文書内の部分文書を抽出する文書抽出部１０８と、抽出した部分文書を構造要素ごとに出力する出力部１１１と、を備えた。【選択図】        図１
2008084192.tif 000002
【特許請求の範囲】
【請求項１】
階層化された論理構造を有する構造化文書を格納する文書管理装置とネットワークを介して接続された構造化文書検索装置であって、
検索キーワードの入力を受付ける受付手段と、
受付けた前記検索キーワードを含む複数の前記構造化文書を前記文書管理装置から検索する検索手段と、
検索された複数の前記構造化文書に含まれる前記論理構造の単位である構造要素の出現に関する統計情報を算出する算出手段と、
算出された前記統計情報に基づいて、検索された複数の前記構造化文書の特徴ベクトルを生成する生成手段と、
生成された前記特徴ベクトルに基づいて、検索された複数の前記構造化文書を特徴づける前記構造要素を選択し、選択した前記構造要素から、検索された前記構造化文書間で類似する前記構造要素である類似部分構造を抽出する構造抽出手段と、
抽出した前記類似部分構造に対応する前記構造化文書内の部分文書を抽出する文書抽出手段と、
抽出した前記部分文書を前記構造要素ごとに出力する出力手段と、
を備えたことを特徴とする構造化文書検索装置。
【請求項２】
前記構造抽出手段は、検索された複数の前記構造化文書のそれぞれで選択した前記構造要素間の類似度を算出し、検索された複数の前記構造化文書から、算出した前記類似度が予め定められた第１閾値より大きい前記構造化文書を取得し、取得した前記構造化文書に含まれる前記構造要素を、前記類似部分構造として抽出すること、
を特徴とする請求項１に記載の構造化文書検索装置。
【請求項３】
前記構造抽出手段は、検索された前記構造化文書に含まれる前記構造要素のうち、前記検索キーワードを含む前記構造要素を、前記類似部分構造としてさらに抽出すること、
を特徴とする請求項１に記載の構造化文書検索装置。
【請求項４】
前記算出手段は、検索された前記構造化文書に含まれる前記構造要素が、前記文書管理装置に格納された前記構造化文書内に出現する頻度を前記統計情報として算出し、
前記構造抽出手段は、前記頻度が予め定められた第２閾値より大きい前記構造要素を、前記構造化文書を特徴づける前記構造要素として選択すること、
を特徴とする請求項１に記載の構造化文書検索装置。
【請求項５】
前記構造要素の要素名が、検索された複数の前記構造化文書間で互いに同義語の関係にあるか否かを判断する第１判断手段と、
互いに同義語の関係にある一方の要素名を他方の要素名に変更する変更手段と、をさらに備え、
前記算出手段は、変更元の要素名に対応する前記構造要素の前記頻度を、変更先の要素名に対応する前記構造要素の前記頻度に加算して前記統計情報として算出すること、
を特徴とする請求項４に記載の構造化文書検索装置。
【請求項６】
前記検索キーワードのそれぞれについて、検索された前記構造化文書に含まれる前記構造要素のうち、前記構造要素の実情報と前記検索キーワードとが一致する度合いを表す適合度が最大の前記構造要素の要素名である代表要素名を決定する決定手段と、
検索された前記構造化文書に含まれる前記構造要素のうち、要素名に前記検索キーワードを含む前記構造要素の要素名を前記代表要素名に変更し、変更した前記構造要素の実情報として前記検索キーワードを含む要素名を対応づける変更手段と、をさらに備え、
前記算出手段は、要素名を前記代表要素名に変更した前記構造要素の前記頻度を、前記代表要素名に対応する前記構造要素の前記頻度に加算して前記統計情報として算出すること、
を特徴とする請求項４に記載の構造化文書検索装置。
【請求項７】
抽出した前記部分文書に含まれない前記検索キーワードが存在するか否かを判断する第２判断手段と、
抽出した前記部分文書に含まれない前記検索キーワードが存在する場合に、前記検索キーワードを含む前記部分文書を、前記構造化文書から抽出して前記部分文書に追加する追加手段と、をさらに備えたこと、
を特徴とする請求項１に記載の構造化文書検索装置。
【請求項８】
前記文書抽出手段は、前記類似部分構造に含まれる前記構造要素を最も多く含む前記部分文書を抽出すること、
を特徴とする請求項１に記載の構造化文書検索装置。
【請求項９】
前記文書抽出手段は、前記論理構造の階層数が最も少ない前記部分文書を抽出すること、
を特徴とする請求項１に記載の構造化文書検索装置。
【請求項１０】
前記構造化文書を記憶する構造化文書記憶手段をさらに備え、
前記検索手段は、受付けた前記検索キーワードを含む前記構造化文書を前記構造化文書記憶手段から検索すること、
を特徴とする請求項１に記載の構造化文書検索装置。
【請求項１１】
前記構造化文書記憶手段に記憶された前記構造化文書の前記構造要素の要素名が、複数の前記構造化文書間で互いに同義語の関係にあるか否かを判断する第１判断手段と、
互いに同義語の関係にある一方の要素名を他方の要素名に変更し、変更した前記第１構造化文書を前記構造化文書記憶手段に保存する変更手段と、をさらに備えたこと、
を特徴とする請求項１０に記載の構造化文書検索装置。
【請求項１２】
複数の前記構造化文書から抽出した前記論理構造を記憶する構造情報記憶手段をさらに備え、
前記構造抽出手段は、検索された前記構造化文書に対応する前記論理構造を前記構造情報記憶手段から取得し、生成された前記特徴ベクトルに基づいて、取得した前記論理構造を特徴づける前記構造要素を選択し、選択した前記構造要素から前記類似部分構造を抽出すること、
を特徴とする請求項１に記載の構造化文書検索装置。
【請求項１３】
階層化された論理構造を有する構造化文書を格納する文書管理装置とネットワークを介して接続された構造化文書検索装置における構造化文書検索方法であって、
受付手段によって、検索キーワードの入力を受付ける受付ステップと、
検索手段によって、受付けた前記検索キーワードを含む複数の前記構造化文書を前記文書管理装置から検索する検索ステップと、
算出手段によって、検索された複数の前記構造化文書に含まれる前記論理構造の単位である構造要素の出現に関する統計情報を算出する算出ステップと、
構造抽出手段によって、算出された前記統計情報に基づいて、検索された複数の前記構造化文書の特徴ベクトルを生成する生成ステップと、
生成された前記特徴ベクトルに基づいて、検索された複数の前記構造化文書を特徴づける前記構造要素を選択し、選択した前記構造要素から、検索された前記構造化文書間で類似する前記構造要素である類似部分構造を抽出する構造抽出ステップと、
文書抽出手段によって、抽出した前記類似部分構造に対応する前記構造化文書内の部分文書を抽出する文書抽出ステップと、
出力手段によって、抽出した前記部分文書を前記構造要素ごとに出力する出力ステップと、
を備えたことを特徴とする構造化文書検索方法。
【請求項１４】
階層化された論理構造を有する構造化文書を格納する文書管理装置とネットワークを介して接続された構造化文書検索装置における構造化文書検索プログラムであって、
検索キーワードの入力を受付ける受付手順と、
受付けた前記検索キーワードを含む複数の前記構造化文書を前記文書管理装置から検索する検索手順と、
検索された複数の前記構造化文書に含まれる前記論理構造の単位である構造要素の出現に関する統計情報を算出する算出手順と、
算出された前記統計情報に基づいて、検索された複数の前記構造化文書の特徴ベクトルを生成する生成手順と、
生成された前記特徴ベクトルに基づいて、検索された複数の前記構造化文書を特徴づける前記構造要素を選択し、選択した前記構造要素から、検索された前記構造化文書間で類似する前記構造要素である類似部分構造を抽出する構造抽出手順と、
抽出した前記類似部分構造に対応する前記構造化文書内の部分文書を抽出する文書抽出手順と、
抽出した前記部分文書を前記構造要素ごとに出力する出力手順と、
をコンピュータに実行させる構造化文書検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、異なる階層構造を有する複数の構造化文書から検索キーワードに適合する構造化文書を検索する構造化文書検索装置、構造化文書検索方法および構造化文書検索プログラムに関するものである。
【背景技術】
【０００２】
近年、コンピュータでの文書データの管理や処理を容易にするために、構造化文書が広く用いられている。例えば、文書の題名を「タイトル」というタグで囲み、さらに文書全体を「ドキュメント」というタグで囲むといったように、階層的に構造化した構造化文書を定義することができる。
【０００３】
このような構造化文書を記述するための規約として、例えば、ＳＧＭＬ（Standard Generalized Mark-up Language）やＸＭＬ（eXtensible Markup Language）などの構造化文書規約の標準化が進められ、広く用いられている。
【０００４】
構造化文書の検索では、キーワードと共に構造を検索範囲として指定する検索が可能である。例えば、検索キーワード「ＸＭＬ」が「見出し」というタグに含まれる文書を検索するという検索条件を指定することができる。このため、「見出し」というタグ以外の文字列のみに検索キーワード「ＸＭＬ」が含まれている構造化文書を検索対象から除くことができる。
【０００５】
すなわち、従来のプレインテキスト文書のキーワード検索ではキーワードを含むすべての文書を検出するが、構造化文書のキーワード検索では指定要素範囲にキーワードが含まれる文書のみを検出するため、より目的に近い検索が可能である。
【０００６】
一方、文書の検索結果を構造化文書として出力する技術も提案されている。例えば、特許文献１では、指定した検索キーワードが含まれている構造化文書内の要素を検出し、検出した要素のみを検索結果として列挙する技術が提案されている。特許文献１の方法によれば、検索結果にはキーワードを含む要素のみが出力され、キーワードを含まない要素は省略することが可能となる。また、特許文献１の方法では、検索結果である１つの構造化文書内で関連する要素を抽出し、抽出した要素を１つの要素として整形して出力することができる。
【０００７】
【特許文献１】特開２００５−２６７３４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１の方法では、文書単位で文書の整形をしているため、複数の文書について出力された検索結果を確認するときに比較することが容易でない場合があるという問題があった。これは、検索結果である複数の文書間の要素の関連性を考慮していないことに起因する問題である。
【０００９】
なお、複数の文書間の要素の関連性を考慮する場合は、ＸＭＬのように任意のタグ名や構造を取りうる構造化文書が存在することに注意する必要がある。例えば、ＸＭＬでは、同一の要素を含むが要素間の階層関係が異なる文書や、同じ意味内容の要素を表すが要素名が異なる文書などが存在しうる。このような場合であっても、各構造化文書間で関連性のある要素を検索し、比較可能に整形して出力することが望ましい。
【００１０】
本発明は、上記に鑑みてなされたものであって、ＸＭＬのように構造が不定の構造化文書に対しても適切に検索結果を取得して出力することができる構造化文書検索装置、構造化文書検索方法および構造化文書検索プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、階層化された論理構造を有する構造化文書を格納する文書管理装置とネットワークを介して接続された構造化文書検索装置であって、検索キーワードの入力を受付ける受付手段と、受付けた前記検索キーワードを含む複数の前記構造化文書を前記文書管理装置から検索する検索手段と、検索された複数の前記構造化文書に含まれる前記論理構造の単位である構造要素の出現に関する統計情報を算出する算出手段と、算出された前記統計情報に基づいて、検索された複数の前記構造化文書の特徴ベクトルを生成する生成手段と、生成された前記特徴ベクトルに基づいて、検索された複数の前記構造化文書を特徴づける前記構造要素を選択し、選択した前記構造要素から、検索された前記構造化文書間で類似する前記構造要素である類似部分構造を抽出する構造抽出手段と、抽出した前記類似部分構造に対応する前記構造化文書内の部分文書を抽出する文書抽出手段と、抽出した前記部分文書を前記構造要素ごとに出力する出力手段と、を備えたことを特徴とする。
【００１２】
また、本発明は、上記装置を実行することができる構造化文書検索方法および構造化文書検索プログラムである。
【発明の効果】
【００１３】
本発明によれば、統計情報に基づいて複数の文書間で類似する構造要素を抽出し、抽出した構造要素に対応する部分文書を検索して出力することができる。このため、ＸＭＬのように構造が不定の構造化文書に対しても適切に検索結果を取得して出力することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照して、この発明にかかる構造化文書検索装置、構造化文書検索方法および構造化文書検索プログラムの最良な実施の形態を詳細に説明する。
【００１５】
（第１の実施の形態）
第１の実施の形態にかかる構造化文書検索装置は、検索された構造化文書の構造要素の統計情報を算出し、算出した統計情報に基づいて複数の構造化文書間で類似する構造要素を抽出し、抽出した構造要素に対応する部分文書を取得して一覧形式で出力するものである。
【００１６】
図１は、第１の実施の形態にかかる構造化文書検索装置１００の構成を示すブロック図である。なお、構造化文書検索装置１００は、ネットワーク３００を介して構造化文書を管理する文書管理装置２００と接続されている。
【００１７】
ネットワーク３００は、文書管理装置２００と構造化文書検索装置１００とを接続するもので、例えば、インターネット、有線ＬＡＮ（Local Area Network）、無線ＬＡＮなどのあらゆるネットワーク構成を適用することができる。
【００１８】
文書管理装置２００は、検索対象となる構造化文書を格納する構造化文書記憶部２２１を備えている。なお、文書管理装置２００は、１つに限られるものではなく、複数の文書管理装置２００に格納された構造化文書を対象として検索を実行できる。
【００１９】
構造化文書記憶部２２１は、複数の構造化文書を記憶している。構造化文書記憶部２２１は、ＨＤＤ（Hard Disk Drive）、光ディスク、メモリカード、ＲＡＭ（Random Access Memory）などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００２０】
ここで、構造化文書について説明する。図２は、構造化文書の一例を示す説明図である。同図は、ＸＭＬを構造化文書規約として記述された構造化文書の例を示している。なお、構造化文書は、ＸＭＬを構造化文書規約とするものに限定されるものではなく、例えば、ＳＧＭＬやＨＴＭＬなどの他の構造化文書であってもよい。
【００２１】
同図に示すように、ＸＭＬでは、文書の実情報を表す文字列に対して「タグ」が付加されている。同図に示す例では、「＜新譜＞」、「＜／新譜＞」、「＜アーティスト＞」および「＜タイトル＞」などがタグを表す。このタグにより、文書データを階層化した論理構造で表すことができる。ＸＭＬでは、タグは、タグの内容を表す名称を記号「＜」と記号「＞」とで囲むことによって表現される。
【００２２】
なお、記号「＜」と記号「＞」とで囲まれるタグを開始タグといい、記号「＜／」と記号「＞」とで囲まれるタグは終了タグという。また、文字列を開始タグと終了タグで囲んだ単位を、論理構造を構成する１単位である構造要素（以下、単に要素という。）という。またタグの内容を表す名称を要素名と呼ぶ。要素をさらにタグで囲むことにより、文書を階層的に構造化することができる。また文字列を挟む最も内側の開始タグと終了タグに対応する要素をテキスト要素と称する。
【００２３】
同図に示す例では、「＜アーティスト＞」と「＜／アーティスト＞」とで、「Ｌｉｍｉｔｅｄ  Ｔｉｍｅ」という文字列が囲まれている。これにより、この文字列に対して「アーティスト」という要素名が付与されている。さらにアーティスト要素は、「＜新譜＞」と「＜／新譜＞」タグによって囲まれており、新譜要素内に含まれる要素として構造化されている。また、アーティスト要素は文字列「Ｌｉｍｉｔｅｄ  Ｔｉｍｅ」の最も内側のタグであるため、アーティスト要素はテキスト要素である。
【００２４】
図３は、図２と構造が異なる別の構造化文書の一例を示す説明図である。構造化文書記憶部２２１には、図２および図３に示すような構造化文書の他、要素名、構造、構造の深さ、または要素の数が異なる構造化文書を同時に記憶することができる。なお、構造化文書記憶部２２１は、検索部１０２で検索可能な形式であればあらゆる保存形式で構造化文書を記憶できる。
【００２５】
以下に、本実施の形態における構造化文書の保存形式の概要について説明する。図４および図５は、それぞれ図２および図３に示した構造化文書の論理構造を示した説明図である。
【００２６】
図４および図５に示すように、各要素は木構造の階層構造として表現されている。各要素は円形で示され、テキスト要素に含まれる文字列（テキストデータ）は四角形で示されている。また、円形の中の文字列は要素名を表している。
【００２７】
例えば図４の「アーティスト」は要素であるため円形で表現されており、要素名（アーティスト）が表示されている。また、「Ｌｉｍｉｔｅｄ  Ｔｉｍｅ」は、テキスト要素であるアーティスト要素内のテキストデータであるため、四角形で表現されている。「Ｌｉｍｉｔｅｄ  Ｔｉｍｅ」はアーティスト要素に含まれるテキストデータであるため、上下関係の線で連結表現されている。
【００２８】
それぞれの要素、テキスト要素の右肩には、後述する各処理で利用するＩＤが表示されている。ＩＤの値は、左から順に要素ＩＤと要素名ＩＤとを表している。要素ＩＤとは、その文書内で要素を一意に識別する識別子を意味する。要素名ＩＤとは、すべての構造化文書で要素名を一意に識別する識別子を意味する。
【００２９】
図４のアーティスト要素は要素ＩＤが２、要素名ＩＤが２である。図５のアーティスト要素は、要素ＩＤが４であるため図４と異なっているが、要素名ＩＤは図４のアーティスト要素と同じ要素名であるため、同一の値（２）である。
【００３０】
テキストデータの右肩の小さい円形の値は、その文書内でテキストデータを一意に識別するテキストデータＩＤである。図４では、例えば、「Ｌｉｍｉｔｅｄ  Ｔｉｍｅ」のテキストデータのテキストデータＩＤは１である。
【００３１】
このように、構造化文書記憶部２２１では、構造化文書の木構造の各要素に対して、各要素を識別するためのＩＤを付与して構造化文書を保存している。
【００３２】
図１に戻り、構造化文書検索装置１００は、統計情報記憶部１２２と、受付部１０１と、検索部１０２と、第１判断部１０３と、決定部１０４と、変更部１０５と、算出部１０６と、生成部１１３と、構造抽出部１０７と、文書抽出部１０８と、第２判断部１０９と、追加部１１０と、出力部１１１と、を備えている。
【００３３】
統計情報記憶部１２２は、構造化文書に含まれる各要素に関する統計情報を格納するものである。具体的には、統計情報記憶部１２２は、統計情報として、文書管理装置２００内に格納されている構造化文書における、当該構造化文書に含まれる各要素の出現頻度を格納する。
【００３４】
図６は、統計情報記憶部１２２に記憶される統計情報のデータ構造の一例を示す説明図である。同図に示すように、統計情報は、各要素の要素名ＩＤと、文書管理装置２００内に格納されている構造化文書内での出現頻度とを対応づけて格納している。
【００３５】
統計情報記憶部１２２に記憶された統計情報は、後述する算出部１０６が、検索された構造化文書の各要素の統計情報を算出するときに参照される。
【００３６】
受付部１０１は、ユーザーにより入力された検索キーワードを受付けるものである。受付部１０１は、キーボードなどの入力装置から入力された検索キーワードを受付けるように構成してもよいし、ネットワーク３００を介して外部装置で入力された検索キーワードを受付けるように構成してもよい。
【００３７】
検索部１０２は、受付部１０１により受付けられた検索キーワードを検索条件として、文書管理装置２００内の構造化文書記憶部２２１から検索キーワードを含む構造化文書を検索するものである。検索部１０２は、検索キーワードがテキスト要素のテキストデータに含まれている場合のみならず、要素名にキーワードが含まれている場合を検出することができる。
【００３８】
なお、検索部１０２は、テキストデータのみを検索対象とするように構成してもよい。また、検索部１０２は、図示しない同義語辞書等を参照して、検索キーワードの意味を拡張したキーワードを含む構造化文書を検索するように構成してもよい。例えば、検索時のユーザーの設定、または事前の設定により、検索キーワードの意味を拡張して検索することを指定可能とすることにより実現できる。
【００３９】
図７は、検索部１０２による検索結果の一例を示した説明図である。同図は、検索キーワードとして「Ｌｉｍｉｔｅｄ  Ｔｉｍｅ」および「ＣＤ」が入力されたときの検索結果の例を表している。
【００４０】
例えば、図２の構造化文書には第１のキーワード「Ｌｉｍｉｔｅｄ  Ｔｉｍｅ」がアーティスト要素に、第２のキーワード「ＣＤ」がメディア要素に含まれている。すべての検索キーワードが含まれている文書であるため、図２の文書は、検索キーワードに適合する適合文書として検索される。
【００４１】
図３の構造化文書には第１のキーワードがアーティスト要素に、第２のキーワードはジャンル要素に含まれる要素名として複数回含まれている。すべての検索キーワードが含まれている文書であるため、図３の文書も適合文書として検索される。
【００４２】
図７では、検索キーワードごとに、適合する構造化文書を一意に識別する文書ＩＤと、テキスト要素であるか否かを表すテキスト要素フラグと、要素ＩＤと、要素名ＩＤとを対応づけた検索結果の例が示されている。なお、テキスト要素フラグは、検索キーワードを含む要素がテキスト要素である場合にＴ（Ｔｒｕｅ）を、それ以外の場合にＦ（Ｆａｌｓｅ）を設定する。同図は、図２の構造化文書の文書ＩＤを１、図３の構造化文書の文書ＩＤを２とした場合の例が示されている。
【００４３】
このように、検索部１０２は、すべてのキーワードを検出した文書について、その文書と、検出した要素と、その要素名とを特定する情報を作成し検索結果として次の処理に渡す。このとき、テキスト要素が検出された場合は検出したテキスト要素に含まれるテキストデータのテキストデータＩＤを渡すように構成してもよい。
【００４４】
図７では、第１のキーワード「Ｌｉｍｉｔｅｄ  Ｔｉｍｅ」を検出したテキスト要素の情報がぞれぞれの文書で１件ずつ列挙されており、それぞれテキスト要素フラグは「Ｔ」となっている。また、第２のキーワード「ＣＤ」を検出した要素は、文書ＩＤが１の場合はテキスト要素でありテキスト要素フラグには同様に「Ｔ」が設定される。文書ＩＤが２の場合、要素ＩＤが３と８の要素が検出されるため、２件列挙される。また、要素ＩＤ＝３および８の要素はテキスト要素ではないため、テキスト要素フラグは双方「Ｆ」が設定される。
【００４５】
図１に戻り、第１判断部１０３は、検索された構造化文書に含まれる各要素について、構造化文書間で同義語の関係にある要素名が存在するか否かを判断するものである。具体的には、第１判断部１０３は、図示しない同義語辞書を参照して、各構造化文書内に同義語関係にある要素名が存在するか判断する。なお、同義語と判断された要素名は、後述する変更部１０５により、いずれかの要素名に統一するように変更される。
【００４６】
決定部１０４は、検索キーワードをテキストデータ内に含むテキスト要素から、検索キーワードと一致する度合いを表す適合度が最大の要素の要素名である代表要素名を決定するものである。具体的には、決定部１０４は、以下の条件を満たす要素の要素名を代表要素名として決定する。
条件１：データ長／キーワード長（＝Ｎ）が最小（Ｎ＞＝１）
条件２：検索キーワードの出現頻度が最大
【００４７】
このように決定された代表要素名は、後述する変更部１０５により、検索キーワードを要素名内に含む要素の要素名を、当該代表要素名に変更するときに参照される。
【００４８】
変更部１０５は、第１判断部１０３が同義語の関係にあると判断した要素名について、類似の要素名を統一する要素名の正規化処理を実行するものである。具体的には、変更部１０５は、一方の要素名を同義語の関係にある他方の要素名に変更する。
【００４９】
また、変更部１０５は、検索キーワードを要素名内に含む要素の要素名を変更する適合要素名変更処理を行う。具体的には、変更部１０５は、まず、検索キーワードを要素名内に含む要素の要素名を、当該検索キーワードに対して決定部１０４が決定した代表要素名に変更する。そして、変更部１０５は、変更前の要素名を代表要素名に対応するテキストデータとして付加し、当該代表要素名の要素をテキスト要素に変更する。
【００５０】
算出部１０６は、検索された構造化文書の各要素の統計情報を算出するものである。具体的には、算出部１０６は、検索された構造化文書内の各要素について、対応する出現頻度を統計情報記憶部１２２から取得して統計情報とする。また、正規化処理を行った場合は、算出部１０６は、要素名を変更した要素の出現頻度を変更先の要素名の出現頻度に加算して統計情報を算出する。さらに、算出部１０６は、変更部１０５が適合要素名変更処理を実行した場合は、要素名を代表要素名に変更した要素の出現頻度を、代表要素名の出現頻度に加算して統計情報を算出する。
【００５１】
生成部１１３は、算出部１０６により算出された統計情報を参照し、さらに検索キーワードを検出した要素を加味して、文書ごとに特徴ベクトルを生成するものである。特徴ベクトルとは、構造化文書を特徴づける要素を表す情報である。本実施の形態では、生成部１１３は、出現頻度が所定の閾値（出現頻度に関する閾値）より高い要素を抽出し、さらに検索キーワードが検出された要素を追加することにより特徴ベクトルを生成する。特徴ベクトルの詳細については後述する。
【００５２】
構造抽出部１０７は、生成された特徴ベクトルから、検索された構造化文書間で類似する要素（類似部分構造）を抽出するものである。すなわち、構造抽出部１０７は、検索された複数の構造化文書の特徴ベクトル間の類似度を、ベクトル空間法などを用いて算出する。具体的には、２つの特徴ベクトルをそれぞれＡ、Ｂとすると、構造抽出部１０７はＡ×Ｂ／｜Ａ｜｜Ｂ｜により類似度を算出する。Ａ×Ｂは、ベクトルＡとベクトルＢとの内積を表す。なお、類似度の算出方法はこれに限られるものではなく、２つの構造化文書の構造の類似度を算出するものであれば、あらゆる方法を適用できる。
【００５３】
そして、構造抽出部１０７は、算出した類似度が所定の閾値（類似度に関する閾値）より大きい構造化文書に含まれる各要素を類似部分構造として抽出する。
【００５４】
文書抽出部１０８は、類似部分構造ごとに、検索結果である構造化文書から適合する部分文書を抽出し分類する処理を行うものである。具体的には、文書抽出部１０８は、抽出した類似部分構造を含む構造化文書を取得し、取得した構造化文書に対して、検索キーワードが適合した要素から構造を辿り、類似部分構造に含まれる要素を部分文書として検出する。
【００５５】
第２判断部１０９は、抽出した部分文書に含まれない検索キーワードが存在するか否かを判断するものである。具体的には、第２判断部１０９は、検索キーワードが適合した要素のうち、文書抽出部１０８により抽出された部分文書に含まれない要素が存在するかを判断する。
【００５６】
追加部１１０は、類似部分構造ごとに抽出されることで分類されている部分文書について、検索結果要素を過不足なく統合するとともに、部分文書のサイズを調整する処理を行うものである。具体的には、追加部１１０は、検索キーワードが適合した要素であって部分文書に含まれない要素が存在すると第２判断部１０９により判断された場合に、当該要素に対応する部分文書を追加する。また、抽出された部分文書のサイズが所定の閾値（部分文書サイズに関する閾値）より大きい場合に、検索キーワードを含まない要素などを削除することにより、部分文書のサイズを縮小する。
【００５７】
出力部１１１は、統合され、サイズ調整された部分文書を、類似部分構造による分類ごとに最適な形式で出力するものである。具体的には、出力部１１１は、類似部分構造に相当する要素のテキストデータを、表形式で出力する。
【００５８】
次に、このように構成された第１の実施の形態にかかる構造化文書検索装置１００による構造化文書検索処理について説明する。図８は、第１の実施の形態における構造化文書検索処理の全体の流れを示すフローチャートである。
【００５９】
まず、受付部１０１が、ユーザーにより入力された検索キーワードを受付ける（ステップＳ８０１）。次に、検索部１０２が、受付けた検索キーワードで検索処理を実行する（ステップＳ８０２）。具体的には、検索部１０２は、受付けた検索キーワードを含む構造化文書を、文書管理装置２００の構造化文書記憶部２２１から検索する。
【００６０】
次に、検索した構造化文書のそれぞれについて各要素の統計情報を算出する構造統計情報算出処理を実行する（ステップＳ８０３）。構造統計情報算出処理の詳細については後述する。
【００６１】
次に、構造抽出部１０７が、検索された構造化文書から類似部分構造を抽出する類似部分構造抽出処理を実行する（ステップＳ８０４）。類似部分構造抽出処理の詳細については後述する。
【００６２】
次に、文書抽出部１０８が、類似部分構造に対応する部分文書を抽出する部分文書抽出処理を実行する（ステップＳ８０５）。部分文書抽出処理の詳細については後述する。
【００６３】
次に、必要な部分文書の統合およびサイズの調整を行う部分文書統合処理を実行する（ステップＳ８０６）。部分文書統合処理の詳細については後述する。
【００６４】
最後に、出力部１１１が、統合された部分文書を表示して（ステップＳ８０７）、構造化文書検索処理を終了する。
【００６５】
次に、ステップＳ８０３の構造統計情報算出処理の詳細について説明する。図９は、第１の実施の形態における構造統計情報算出処理の全体の流れを示すフローチャートである。
【００６６】
まず、第１判断部１０３が、検索キーワードと適合した要素を含む構造化文書を取得する（ステップＳ９０１）。次に、要素名の正規化処理が実行される。正規化処理では、まず、第１判断部１０３が、取得した複数の構造化文書間で、同義語関係となる要素が存在するか否かを判断する（ステップＳ９０２）。この際、第１判断部１０３は、同義語辞書（図示せず）等を参照することにより、ある要素名と同義語または類義語の関係にある他の要素名を検出する。
【００６７】
例えば、第１判断部１０３は、図２の構造化文書の「タイトル」要素の要素名と、図３の構造化文書の「題名」要素の要素名とが同義語の関係にあると判断する。
【００６８】
同義語関係となる要素が存在する場合は（ステップＳ９０２：ＹＥＳ）、変更部１０５は、一方の要素名を他方の要素名に変更する正規化を行う（ステップＳ９０３）。上述の例では、変更部１０５は、例えば「題名」要素の要素名「題名」を、「タイトル」に変更する。同時に変更部１０５は「題名」要素の要素名ＩＤを１１から３に変更する。すなわち、図５では「題名」要素の要素ＩＤ＝６、要素名ＩＤ＝１１であったが、変更後は、要素ＩＤ＝６、要素名ＩＤ＝３となる。
【００６９】
なお、統一する要素名は、例えば、出現頻度の多い要素名に変更する方法などのあらゆる方法により決定できる。また、要素名の正規化処理は省略するように構成してもよい。
【００７０】
同義語関係となる要素が存在しない場合（ステップＳ９０２：ＮＯ）、または正規化処理実行後（ステップＳ９０３）、適合要素名変更処理が実行される。適合要素名変更処理の前段階として、決定部１０４による代表要素名決定処理が実行される。代表要素名決定処理では、まず、決定部１０４が、検索キーワードが要素名として検索されたか否かを判断する（ステップＳ９０４）。
【００７１】
検索された場合は（ステップＳ９０４：ＹＥＳ）、決定部１０４は、検索キーワードのそれぞれについて、代表要素名を決定する（ステップＳ９０５）。具体的には、決定部１０４は、上述の条件１、条件２に最も適合する条件を有する要素の要素名を代表要素名とする。
【００７２】
例えば、検索キーワード「Ｌｉｍｉｔｅｄ  Ｔｉｍｅ」が入力された場合、図２の構造化文書（文書ＩＤ＝１）については、テキストデータが検索キーワードと完全に一致するため、データ長／キーワード長＝１であり、最小となる。また、文書ＩＤ＝１の文書のように、「アーティスト」要素に「Ｌｉｍｉｔｅｄ  Ｔｉｍｅ」が出現する頻度が最も高ければ、代表要素名は「アーティスト」であると決定される。
【００７３】
同様に、検索キーワード「ＣＤ」が入力された場合も、文書ＩＤ＝１の文書では、データ長／キーワード長＝１であるため、「メディア」要素に「ＣＤ」が出現する頻度が最も高ければ、「メディア」が代表要素名として決定される。
【００７４】
次に、変更部１０５が、適合要素名変更処理を実行する。具体的には、変更部１０５は、要素名が検索キーワードと適合した要素のそれぞれについて、要素名を、当該検索キーワードについて決定された代表要素名に変更する。また、当該要素に、検索キーワードと適合した要素名をテキストデータとして付加する（ステップＳ９０６）。
【００７５】
例えば、検索キーワード「ＣＤ」が入力された場合、図３の構造化文書では、「ＣＤ」要素の要素名内に検索キーワードが含まれているため、当該要素が適合要素として検索される。図１０は、この例について適合要素名変更処理を実行した結果の一例を示す説明図である。同図に示すように、図５では、ジャンルの子要素であった２つの「ＣＤ」要素はそれぞれ「メディア」要素となり、要素名ＩＤも５に変更される。さらに、変更した「メディア」要素それぞれの子要素として文字列「ＣＤ」を含むテキストデータが付加されている。同図に示すように、付加したテキストデータは、変更前の要素名「ＣＤ」である。
【００７６】
なお、キーワード検索を要素名に対して行わない場合などでは、適合要素名変更処理を省略するように構成してもよい。
【００７７】
図９に戻り、ステップＳ９０４で検索キーワードが要素名として検索されていないと判断された場合（ステップＳ９０４：ＮＯ）、または、ステップＳ９０６で適合要素名変更処理実行後、算出部１０６は、要素名ごとの出現頻度の統計を算出する（ステップＳ９０７）。
【００７８】
具体的には、算出部１０６は、統計情報記憶部１２２から検索キーワードに適合した文書に含まれる要素名ＩＤの出現頻度を取得し、正規化処理または適合要素名変更処理を行った要素については変更前の要素の出現頻度を変更後の要素の出現頻度に加算することにより、出現頻度の統計を算出する。
【００７９】
図１１は、算出した統計情報の一例を示す説明図である。同図に示すように、算出部１０６は、算出した頻度を表形式で表した要素名ＩＤ頻度表を出力する。同図は、図６に示した統計情報記憶部１２２から取得した頻度を基にして算出した例を示している。また、例えば、図５に示した構造化文書の「題名」要素（要素名ＩＤ＝１１）は、正規化処理により要素名ＩＤ＝３に変更されているため、要素名ＩＤ＝１１の頻度（１０）が、要素名ＩＤ＝３の頻度（３９）に加算された値（４９）が、要素名ＩＤ頻度表に設定されている。同時に、要素名ＩＤ頻度表からは要素名ＩＤ＝１１の要素が削除されている。
【００８０】
同様に、図５に示した構造化文書の「ＣＤ」要素（要素名ＩＤ＝１０）は、適合要素名変更処理により要素名ＩＤ＝５に変更されているため、要素名ＩＤ＝１０の頻度（１２）が、要素名ＩＤ＝５の頻度（３３）に加算された値（４５）が、要素名ＩＤ頻度表に設定されている。同時に、要素名ＩＤ頻度表からは要素名ＩＤ＝１０の要素が削除されている。
【００８１】
なお、検索に適合した他の文書に他の要素名ＩＤが存在する場合は、それらも列挙され出現頻度が算出される。また、高頻度欄には、頻度数が上位の要素名ＩＤに対してその順位が設定される。さらに、キーワードヒット欄には、検索キーワードと適合した要素の要素名ＩＤに対して１が設定され、それ以外の要素名ＩＤには０が設定される。算出部１０６は、このようにして作成された要素名ＩＤ頻度表を次の処理に渡す。
【００８２】
次に、ステップＳ８０４の類似部分構造抽出処理の詳細について説明する。図１２は、第１の実施の形態における類似部分構造抽出処理の全体の流れを示すフローチャートである。
【００８３】
まず、構造抽出部１０７は、検索キーワードの適合要素を含む構造化文書を取得する（ステップＳ１２０１）。次に、生成部１１３は、取得した構造化文書ごとに、出現頻度の高い要素の特徴ベクトルを生成する（ステップＳ１２０２）。
【００８４】
図１３は、生成した特徴ベクトルの一例を示す説明図である。同図では、構造化文書を構成する要素の要素名を列挙し、文書ごとにそれら要素の有無を１（要素あり）および０（要素なし）で表現した特徴ベクトルの例を示している。また、特徴ベクトルには、算出部１０６から渡された要素名ＩＤ頻度表から所定数の高頻度の要素と、検索キーワードと適合した要素とが含まれる。
【００８５】
図１３の例では、図１１に示したような要素名ＩＤ頻度表から、高頻度の要素として要素名ＩＤ＝２の「アーティスト」要素、要素名ＩＤ＝３の「タイトル」要素、要素名ＩＤ＝４の「日付」要素の３つの要素を選出し、さらにキーワードが適合した要素として「メディア」要素を選出している。検索キーワードが適合した要素の追加は省略可能だが、追加した方がより適切な検索結果を取得して出力することが可能となる。
【００８６】
文書ＩＤ＝１の列は、図１１から選出した要素名ＩＤに対応する要素の有無を図４の文書の構造について抽出した特徴ベクトルを表す。他の文書も同様にそれぞれの文書の構造について特徴ベクトルを抽出する（図１３の文書ＩＤ＝２、３、・・・）
【００８７】
図１２に戻り、次に構造抽出部１０７は、特徴ベクトルから構造化文書間の類似度を算出する（ステップＳ１２０３）。具体的には、上述のように、２つの構造化文書のそれぞれに対する特徴ベクトルをそれぞれＡ、Ｂとすると、構造抽出部１０７は、Ａ×Ｂ／｜Ａ｜｜Ｂ｜により類似度を算出する。
【００８８】
図１３の表の下部には、特徴ベクトルから算出した各文書間の類似度を算出した結果が示されている。なお、ここでは、要素ありの場合を１、要素なしの場合を−１とした特徴ベクトルを用いて類似度を算出している。
【００８９】
類似度が高い構造化文書が相互に類似すると判定することができる。同図の例では、文書ＩＤ＝１、２、３が相互に類似すると判定される。
【００９０】
次に、構造抽出部１０７は、類似度の高い構造化文書に含まれる要素の和を類似部分構造として抽出する（ステップＳ１２０４）。図１３の例では、文書ＩＤ＝１、２、３の要素の和として、同図に示されている全要素が類似部分構造として選択される。
【００９１】
図１４は、抽出された類似部分構造の一例を示す説明図である。同図は、図１３の文書ＩＤ＝１、２、３から抽出された類似部分構造を表している。同図では、要素名ＩＤ＝０の要素を親要素として、要素名ＩＤ＝２〜５の要素（「アーティスト」要素、「タイトル」要素、「日付」要素、「メディア」要素）が子要素として含まれる構造が、類似部分構造として抽出された例が示されている。
【００９２】
このとき、類似部分構造には検索キーワードが検出された要素が含まれていることが望ましい。図１３の例では、文書ＩＤ＝１で「アーティスト」要素および「メディア」要素で検索キーワードが検出されているため、類似部分構造に検索キーワードが検出された要素が含まれている。
【００９３】
もし検索キーワードが検出された要素が含まれていない場合は、検索キーワードが検出された要素を１つ以上含める。例えば、類似度が次に高い構造化文書を調べ、検索キーワードが検出された要素が含まれている場合に、その要素を類似部分構造に追加する。また、追加した要素を含む構造化文書に含まれる要素と、当該構造化文書と最も類似度が高い構造化文書に含まれる要素との和を取り、その中にさらにキーワードが検出された場合にその要素を追加するという方式など、あらゆる方法により検索キーワードを含む要素を追加することができる。
【００９４】
なお、特徴ベクトルから類似部分構造を抽出し、当該類似部分構造に該当する文書を判定した後、当該類似部分構造に該当しない他の文書に関して、さらに類似部分構造を抽出できる場合がある。図１５は、生成した特徴ベクトルの別の例を示す説明図である。図１５に示すような特徴ベクトルが生成された場合、文書ＩＤ＝１、２、３間の類似度が高いことがわかるため、これらの構造化文書の要素の和を類似部分構造とする。残りの構造化文書である文書ＩＤ＝４、５についても相互に類似すると判定できるため、文書ＩＤ＝４、５の要素の和をもう一つの類似部分構造として抽出することができる。
【００９５】
次に、ステップＳ８０５の部分文書抽出処理の詳細について説明する。図１６は、部分文書抽出処理の全体の流れを示すフローチャートである。
【００９６】
まず、文書抽出部１０８は、類似部分構造に適合する文書を取得する（ステップＳ１６０１）。例えば、図１４に示すような類似部分構造が抽出された場合、抽出の基になった文書ＩＤ＝１、２、３の構造化文書が取得される。
【００９７】
次に、文書抽出部１０８は、検索キーワードが検出された要素（以下、ヒット要素という。）を基点として、取得した構造化文書の階層構造を辿り、類似部分構造に対応する要素を検出して部分文書として抽出する（ステップＳ１６０２）。
【００９８】
部分文書は、検索キーワードが検出された要素に近い領域から抽出する。例えば、検索キーワードが検出された要素がテキスト要素である場合は、その親要素に近い要素、すなわち、その兄弟要素を確認する。検索キーワードが要素名内で検出された場合は、その要素以下の構造を先に調べ、その後必要があれば親、兄弟、先祖の要素へと拡張して部分文書を抽出する。なお、類似部分構造に含まれるすべての要素が部分文書に含まれない場合もありうるが、その場合は含まれない要素は無視して同様の処理を行う。
【００９９】
以下に、部分文書抽出の具体例について説明する。例えば、図４の構造化文書の場合、類似部分構造には、検索キーワードが検出されたテキスト要素が２つとも含まれている。それらを基点とし、近くに存在する要素として、まず、検索キーワードが検出された要素の兄弟要素が調査される。次に親要素、親要素の兄弟要素以下の構造、先祖要素というように、必要に応じて調査範囲は拡張される。この例の場合は、検索キーワードが検出されたテキスト要素の兄弟要素に類似部分構造に含まれる要素が検出される。文書抽出部１０８は、検出した要素の親要素以下を、類似部分構造に適合する部分文書として抽出する。
【０１００】
また、図５の構造化文書の場合、類似部分構造には、テキストデータから検索キーワード「Ｌｉｍｉｔｅｄ  Ｔｉｍｅ」が検出されたテキスト要素が１つと、要素名からキーワード「ＣＤ」が検出されたテキスト要素が１つ含まれる。テキストデータから検索キーワードが検出されたテキスト要素の兄弟要素には類似部分構造に含まれる要素が検出される。さらにその要素の親要素は別の検索キーワード（「ＣＤ」）が要素名内で検出された要素そのもの（「ＣＤ」要素）であるため、文書抽出部１０８は、「ＣＤ」要素以下を部分文書として抽出する。
【０１０１】
また、複数の検索キーワードで検索を実施した際に、類似部分構造に検索キーワードが検出された構造がすべて含まれない場合、例えば１つしか含まれない場合も生じる。図１７は、このような場合が生じうる構造化文書の論理構造の別の例を示した説明図である。
【０１０２】
例えば、図１７のような論理構造を有する構造化文書の場合、類似部分構造から部分文書を抽出すると、要素ＩＤ＝５の要素以下の部分文書が抽出される。これは類似部分構造に含まれる検索キーワード「ＣＤ」が検出された要素である「ｍｅｄｉａ」要素を基点として抽出された結果である。
【０１０３】
なお、この構造化文書の場合、もう１つの検索キーワード「Ｌｉｍｉｔｅｄ  Ｔｉｍｅ」が要素ＩＤ＝２の「ｔｉｔｌｅ」要素に含まれているが、当該要素を含む構造を抽出すると、要素ＩＤ＝１の「ｄｏｃ」要素以下のすべての要素が含まれることになる。したがって、このような場合はすべての検索キーワードを含む部分文書ではなく、少なくとも１つの検索キーワードを含む部分文書である、要素ＩＤ＝５の要素以下の部分文書を抽出する。
【０１０４】
また、図１７のような論理構造を有する構造化文書の場合、類似部分構造に含まれる「ｍｅｄｉａ」要素は、検索キーワードに適合する要素であり、さらに同一の構造化文書内で複数回検出されうる要素である。このような場合は、それぞれの検出された要素を基点として、部分文書を抽出する処理を行う。すなわち、要素ＩＤ＝１３の要素を基点として抽出した要素ＩＤ＝１０の「ｍｕｓｉｃ」要素も部分文書として抽出される。
【０１０５】
図１６に戻り、文書抽出部１０８は、抽出した部分文書のサイズが予め定められた閾値（部分文書サイズに関する閾値）より小さいか否かを判断する（ステップＳ１６０３）。閾値より大きい場合は（ステップＳ１６０３：ＮＯ）、後述する部分文書統合処理内で、部分文書のサイズを縮小する処理を行うため、部分文書抽出処理を終了する。
【０１０６】
閾値より小さい場合は（ステップＳ１６０３：ＹＥＳ）、文書抽出部１０８は、複数の部分文書が抽出されたか否かを判断する（ステップＳ１６０４）。上述のように、類似部分構造に対応する部分文書が複数抽出される場合があるため、いずれの部分文書を採用するかを以下の処理で決定する必要があるからである。
【０１０７】
複数の部分文書が抽出された場合は（ステップＳ１６０４：ＹＥＳ）、文書抽出部１０８は、部分文書ごとに検索キーワードに適合する要素数を算出する（ステップＳ１６０５）。そして、適合する要素数が最も多い部分文書を選択する（ステップＳ１６０６）。複数の部分文書が抽出されない場合は（ステップＳ１６０４：ＮＯ）、部分文書抽出処理を終了する。
【０１０８】
なお、部分文書の選択処理では、要素数だけでなく、部分文書のサイズを考慮して選択するように構成してもよい。すなわち、以下のような基準により部分文書に優先順位を付加し、優先順位の最も高い部分文書を選択する。
【０１０９】
最も優先順位が高い部分文書は、すべての検索キーワードが含まれるテキスト要素を含む部分文書の中で、類似部分構造に含まれる要素を最も多く含み、部分文書の階層の深さが最も小さいものである。この段階で同等の部分文書が複数存在する場合は、それらすべてを抽出する。またこの段階で部分文書が抽出できた場合は、当該構造化文書の当該類似部分構造についてのほかの部分文書候補は抽出しない。
【０１１０】
次に優先順位が高い部分文書は、複数の検索キーワードがそれぞれ異なるテキスト要素または要素名で適合し、当該テキスト要素が類似部分構造に含まれている場合の当該テキスト要素を含む部分文書である。
【０１１１】
次に優先順位が高い部分文書は、複数の検索キーワードがそれぞれ異なるテキスト要素または要素名で適合し、類似部分構造に適合した要素がより多く含まれており、さらにより多くの適合した要素を含む部分文書である。
【０１１２】
さらに、この段階までで部分文書が抽出されない場合は、類似部分構造と検索キーワードが含まれる要素とをすべてまとめて部分文書として抽出する。
【０１１３】
すべての類似部分構造について、その類似部分構造に近い構造を持つ検索に適合した構造化文書から部分文書を抽出した後、１つの部分文書も抽出していない適合文書が存在する場合は、当該適合文書から、検索キーワードに適合した要素のみを含む部分文書を抽出する。
【０１１４】
図１８は、構造化文書の論理構造の別の例を示した説明図である。同図は、これまで述べた類似する論理構造を有する構造化文書（図４、図５、図１７）とはまったく異なる論理構造を有する構造化文書の論理構造の例を示している。
【０１１５】
図１８のような構造化文書の場合、類似部分構造に対応する部分文書が抽出できないため、文書抽出部１０８は、検索キーワードに適合した要素である「内容」要素を部分文書として抽出する。
【０１１６】
次に、ステップＳ８０６の部分文書統合処理の詳細について説明する。図１９は、部分文書統合処理の全体の流れを示すフローチャートである。
【０１１７】
まず、第２判断部１０９は、抽出した部分文書のそれぞれについて、検索キーワードのうち部分文書に含まれない検索キーワード（以下、不足キーワードという。）が存在するか否かを判断する（ステップＳ１９０１）。このような状況は、複数の検索キーワードが指定された場合に発生しうる。
【０１１８】
不足キーワードが存在する場合（ステップＳ１９０１：ＹＥＳ）、追加部１１０は、不足キーワードを含む要素を検出する（ステップＳ１９０２）。次に、追加部１１０は、検出した要素を部分文書に統合する（ステップＳ１９０３）。
【０１１９】
例えば、図１７のような構造化文書の場合、部分文書として抽出された要素ＩＤ＝５の要素以下の文書には、検索キーワード「Ｌｉｍｉｔｅｄ  Ｔｉｍｅ」が含まれていない。このような場合に、検索キーワード「Ｌｉｍｉｔｅｄ  Ｔｉｍｅ」を含む要素である「ｔｉｔｌｅ」要素を、抽出済みの部分文書と組み合わせる。なお、図１７の例では、要素ＩＤ＝１０の要素以下の部分文書も抽出される。この部分文書に対しても、不足キーワードが存在する場合は、不足キーワードを含む要素を追加する処理を行う。
【０１２０】
また、不足キーワードを含む要素が複数存在する場合は、すべて選択して追加するように構成してもよい。追加する要素数が多い場合は、抽出済みの部分文書に対する位置の近さ、文字列長などを用いて優先順位をつけ、優先順位の高い要素を追加するように構成してもよい。
【０１２１】
不足キーワードが存在しない場合（ステップＳ１９０１：ＮＯ）、または要素を統合した後（ステップＳ１９０３）、第２判断部１０９は、部分文書サイズが予め定められた閾値（部分文書サイズに関する閾値）より大きいか否かを判断する（ステップＳ１９０４）。
【０１２２】
閾値より大きい場合は（ステップＳ１９０４：ＹＥＳ）、追加部１１０は、部分文書のサイズを縮小する（ステップＳ１９０５）。文書サイズを縮小する手法としては、抽出した部分文書からさらに不要な要素を削除していく方法をとる。
【０１２３】
例えば、図４のような構造化文書に対し、「新譜」要素以下が部分文書として抽出された場合を考える。この部分文書が所定の閾値以上のサイズを有する場合は、類似部分構造に含まれる要素ではない要素を省略することによりサイズを縮小する。例えば、「価格」要素や、「レーベル」要素を削除することにより、部分文書サイズを縮小する。また、テキスト要素のテキストデータのサイズが大きい場合は、検索キーワードが多く含まれている一定サイズの部分文字列をテキストデータから抽出し、それ以外は省略するという方法によりサイズを縮小するように構成してもよい。
【０１２４】
以下に、上述のようにして抽出された部分文書の出力方法について説明する。図２０は、出力部１１１により出力される部分文書の出力形式の一例を示した説明図である。この例では、「アーティスト」、「メディア」、「タイトル」、および「日付」要素を含む部分文書を表形式で表示している。また、類似部分構造に適合しなかった図１８に示すような適合文書に対しては、当該表の下に列挙形式で表示している。
【０１２５】
また、表形式で結果を表示する例では、部分文書に含まれている要素のうち、類似部分構造に含まれている要素以外の要素をその他欄（ＥＸ欄）に表示している。表示形式は、列挙型、表形式以外に限られるものではなく、定義型、ＸＭＬ形式など他のあらゆる表示形式を利用できる。
【０１２６】
このように、第１の実施の形態にかかる構造化文書検索装置では、検索された構造化文書の要素について算出した統計情報に基づいて複数の構造化文書間で類似する要素を抽出し、抽出した要素に対応する部分文書を取得して一覧形式で出力することができる。このため、ＸＭＬのように構造が不定の構造化文書に対しても適切に検索結果を取得して出力することができる。この結果、ユーザーによる検索結果の確認コストを軽減することができる。
【０１２７】
また、従来から、大量文書の管理方式の提案の一環として、大量の文書から自動的に類似の文書を抽出する技術や、複数の文書の内容に応じて自動的に分類するためのクラスタリング手法など、様々な技術が提案されている。しかし、これらの技術では、単語の頻度やそれらの共起の頻度、文書属性やユーザーによる判定などによって、文書を意味的に分類するものであり、文書の構造的特徴による分類や、結果出力を考慮した最適な部分文書の抽出を実現できない。
【０１２８】
これに対し、本実施の形態によれば、構造が特定できない構造化文書に対する検索結果であっても、文書構造の特徴にしたがって適切な部分文書を抽出して、分類して出力することができる。
【０１２９】
さらに、ユーザーが構造化文書の論理構造に関する知識を有さず、構造に関する条件を指定した検索を実行しない場合であっても、文書の構造を活用した検索結果を取得することができる。
【０１３０】
（第２の実施の形態）
第２の実施の形態にかかる構造化文書検索装置は、事前に検索対象となる構造化文書を自装置内に登録し、登録した構造化文書に対して検索処理を実行するものである。また、その際に、検索処理前に実行可能な処理を事前に実行することにより、検索処理の負荷を軽減し、検索の高速化を図るものである。
【０１３１】
図２１は、第２の実施の形態にかかる構造化文書検索装置２１００の構成を示すブロック図である。同図に示すように、構造化文書検索装置２１００は、統計情報記憶部１２２と、構造化文書記憶部２１２１と、受付部１０１と、検索部２１０２と、第１判断部２１０３と、決定部１０４と、変更部２１０５と、算出部１０６と、生成部１１３と、構造抽出部１０７と、文書抽出部１０８と、第２判断部１０９と、追加部１１０と、出力部１１１と、登録部２１１２と、を備えている。
【０１３２】
第２の実施の形態では、構造化文書記憶部２１２１と登録部２１１２とを追加したことが第１の実施の形態と異なっている。また、検索部２１０２、第１判断部２１０３、および変更部２１０５の機能が第１の実施の形態と異なっている。その他の構成および機能は、第１の実施の形態にかかる構造化文書検索装置１００の構成を表すブロック図である図１と同様であるので、同一符号を付し、ここでの説明は省略する。
【０１３３】
構造化文書記憶部２１２１は、構造化文書記憶部２２１と同様に、検索対象となる構造化文書を記憶するものである。
【０１３４】
検索部２１０２は、構造化文書記憶部２１２１を対象として構造化文書を検索する点が、第１の実施の形態の検索部１０２と異なっている。
【０１３５】
第１判断部２１０３は、構造化文書記憶部２１２１に記憶する、または記憶された構造化文書に含まれる各要素について、構造化文書間で同義語の関係にある要素名が存在するか否かを判断するものである。
【０１３６】
変更部２１０５は、第１判断部２１０３が同義語の関係にあると判断した要素名について、類似の要素名を統一する要素名の正規化処理を実行し、変更した要素名を構造化文書記憶部２１２１に記憶するものである。
【０１３７】
登録部２１１２は、検索前に、文書管理装置２００の構造化文書記憶部２２１から構造化文書を取得し、構造化文書検索装置２１００内の構造化文書記憶部２１２１に登録するものである。
【０１３８】
このように、第２の実施の形態では、構造化文書を自装置内に記憶し、正規化処理を事前に実行できるため、検索処理内で正規化処理を実行する必要がなくなり、検索処理の高速化を実現可能となる。
【０１３９】
次に、このように構成された第２の実施の形態にかかる構造化文書検索装置２１００による構造化文書登録処理について説明する。図２２は、第２の実施の形態における構造化文書登録処理の全体の流れを示すフローチャートである。
【０１４０】
まず、登録部２１１２は、文書管理装置２００から構造化文書を取得する（ステップＳ２２０１）。次に、第１判断部２１０３は、取得した複数の構造化文書間、または、取得した構造化文書と既に記憶している構造化文書との間で同義語関係となる要素が存在するか否かを判断する（ステップＳ２２０２）。
【０１４１】
同義語関係となる要素が存在する場合は（ステップＳ２２０２：ＹＥＳ）、変更部２１０５は、要素名の正規化処理を実行する（ステップＳ２２０３）。正規化処理は、第１の実施の形態におけるステップＳ９０３と同様の処理である。
【０１４２】
同義語関係となる要素が存在しない場合（ステップＳ２２０２：ＮＯ）、または、正規化処理実行後、登録部２１１２は、構造化文書を構造化文書記憶部２１２１に保存する（ステップＳ２２０４）。
【０１４３】
次に、登録部２１１２は、構造化文書の統計情報を更新する（ステップＳ２２０５）。具体的には、登録部２１１２は、保存した構造化文書に含まれる各要素の頻度を算出し、統計情報記憶部１２２の頻度情報を更新する。
【０１４４】
このように、第２の実施の形態では、正規化処理を構造化文書の登録時に実行する。なお、登録時に実行可能な処理は正規化処理に限られず、特徴ベクトルの生成処理なども対象とすることができる。
【０１４５】
次に、このように構成された第２の実施の形態にかかる構造化文書検索装置２１００による構造化文書検索処理について説明する。第２の実施の形態における構造化文書検索処理の全体の流れは、第１の実施の形態の図８と同様である。ただし、ステップＳ８０３の構造統計情報算出処理の詳細が異なる。
【０１４６】
以下に、第２の実施の形態における構造統計情報算出処理の詳細について説明する。図２３は、第２の実施の形態における構造統計情報算出処理の全体の流れを示すフローチャートである。
【０１４７】
同図は、第１の実施の形態における構造統計情報算出処理の全体の流れを示す図９から、ステップＳ９０２およびステップＳ９０３の正規化処理を削除した処理になっている。すなわち、第２の実施の形態では、登録時に正規化処理を実行するため、検索時に正規化処理を実行する必要がない。
【０１４８】
その他の処理であるステップＳ２３０１、ステップＳ２３０２からステップＳ２３０５は、それぞれステップＳ９０１、ステップＳ９０４からステップＳ９０７と同様の処理なので、その説明を省略する。
【０１４９】
このように、第２の実施の形態にかかる構造化文書検索装置では、事前に自装置内に登録した構造化文書に対して検索処理を実行するとともに、検索処理前に実行可能な処理を事前に実行することにより、検索処理の負荷を軽減し、検索の高速化を図ることができる。
【０１５０】
（第３の実施の形態）
大量の構造化文書は、作成される際にその構造のフォーマットが決められていることが多い。例えば、ルート要素「プロジェクト」の子要素として「メンバー」という要素が存在し、その子要素として必ず１つ以上の「メンバー名」という要素が存在するような構造のフォーマットを決めることができる。
【０１５１】
この場合、プロジェクトに応じて「メンバー名」要素が２つ存在する構造化文書が作成されることもあれば、５つ存在する構造化文書が作成されることもある。このように、構造のフォーマットの自由度は高いため、類似の目的で作成された構造であっても、別の場所で作成された構造とフォーマットが異なる場合がある。例えば、市役所における同じ目的で利用される書類でも、書類を作成した市が異なる場合にはそのフォーマットが異なる場合がある。
【０１５２】
一方、第１の実施の形態における類似部分構造抽出処理では、検索に適合したそれぞれの構造化文書に対して実行していた。しかし、検索対象の構造化文書が、それぞれの構造フォーマットに則った複数の構造化文書セットである場合、類似部分構造の調査処理は、検索に適合したそれぞれの構造化文書の構造フォーマット間で行えば処理コストを低減できると考えられる。各構造化文書で共通する構造フォーマットを検証対象とすれば、構造化文書ごとに調査する場合に比較して検証対象が限定されるからである。
【０１５３】
第３の実施の形態にかかる構造化文書検索装置は、事前に登録された構造化文書の構造のフォーマットに関する構造情報を参照して類似部分構造抽出処理を簡略化するものである。
【０１５４】
図２４は、第３の実施の形態にかかる構造化文書検索装置２４００の構成を示すブロック図である。同図に示すように、構造化文書検索装置２４００は、統計情報記憶部１２２と、構造情報記憶部２４１３と、受付部１０１と、検索部１０２と、第１判断部１０３と、決定部１０４と、変更部１０５と、算出部１０６と、生成部１１３と、構造抽出部２４０７と、文書抽出部１０８と、第２判断部１０９と、追加部１１０と、出力部１１１と、を備えている。
【０１５５】
第３の実施の形態では、構造情報記憶部２４１３を追加したこと、および構造抽出部２４０７の機能が第１の実施の形態と異なっている。その他の構成および機能は、第１の実施の形態にかかる構造化文書検索装置１００の構成を表すブロック図である図１と同様であるので、同一符号を付し、ここでの説明は省略する。
【０１５６】
構造情報記憶部２４１３は、構造化文書から抽出した論理構造に関する構造情報を記憶するものである。図２５は、構造情報記憶部２４１３に記憶された構造情報のデータ構造の一例を示す説明図である。同図に示すように、構造情報は、要素名ＩＤと、要素名と、子要素と、兄弟要素とを対応づけて格納している。なお、同図は、図２に示した構造化文書から抽出した構造情報を記憶した例を表している。また、構造情報記憶部２４１３には、このような構造情報が、フォーマットの異なる構造ごとに記憶されている。
【０１５７】
次に、このように構成された第３の実施の形態にかかる構造化文書検索装置２４００による構造化文書検索処理について説明する。第３の実施の形態における構造化文書検索処理の全体の流れは、第１の実施の形態の図８と同様である。ただし、ステップＳ８０４の類似部分構造抽出処理の詳細が異なる。
【０１５８】
以下に、第３の実施の形態における類似部分構造抽出処理の詳細について説明する。図２６は、第３の実施の形態における類似部分構造抽出処理の全体の流れを示すフローチャートである。
【０１５９】
まず、構造抽出部２４０７は、検索キーワードの適合要素を含む構造化文書を取得する（ステップＳ２６０１）。次に、構造抽出部２４０７は、取得した構造化文書に対応する構造情報を、構造情報記憶部２４１３から取得する（ステップＳ２６０２）。
【０１６０】
次に、生成部１１３は、取得した構造情報ごとに、出現頻度の高い要素の特徴ベクトルを生成する（ステップＳ２６０３）。特徴ベクトルの生成は図１２のステップＳ１２０２と同様である。
【０１６１】
次に、構造抽出部２４０７は、特徴ベクトルから構造情報間の類似度を算出する（ステップＳ２６０４）。類似度の算出方法は、図１２のステップＳ１２０３と同様である。次に、構造抽出部２４０７は、類似度の高い構造情報に含まれる要素の和を類似部分構造として抽出する（ステップＳ２６０５）。
【０１６２】
このようにしてある構造情報間の類似部分構造の抽出が実行されれば、他の検索結果である構造化文書が同一の構造情報を有する場合、類似部分構造の抽出処理を省略することができる。これにより、検索処理の高速化が実現可能となる。
【０１６３】
なお、事前に構造情報を入手して構造情報記憶部２４１３に保存できない場合であっても、第２の実施の形態のように自装置内に構造化文書を登録する構成であれば、文書を登録する際にその構造情報を解析してフォーマットを抽出し、構造情報記憶部２４１３に保存することができる。フォーマットの抽出処理では、例えば、構造に含まれる要素名セットが共通しており、要素名と要素名の親子関係が同一である場合は同一のフォーマットとするなどの方法を適用できる。このように構成すれば、事前に構造情報を入手できない場合であっても上述と同様の効果を得られる。
【０１６４】
このように、第３の実施の形態にかかる構造化文書検索装置では、事前に登録された構造化文書の構造のフォーマットに関する構造情報を参照し、構造情報間で類似部分構造を抽出することにより、全構造化文書間で類似部分構造抽出処理を実行する場合に比較して処理を簡略化し、結果として検索処理を高速化することができる。
【０１６５】
図２７は、第１〜第３の実施の形態にかかる構造化文書検索装置のハードウェア構成を示す説明図である。
【０１６６】
第１〜第３の実施の形態にかかる構造化文書検索装置は、ＣＰＵ（Central Processing Unit）５１などの制御装置と、ＲＯＭ（Read Only Memory）５２やＲＡＭ５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、ＨＤＤ、ＣＤ（Compact Disc）ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス６１を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１６７】
第１〜第３の実施の形態にかかる構造化文書検索装置で実行される構造化文書検索プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact Disk Recordable）、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１６８】
また、第１〜第３の実施の形態にかかる構造化文書検索装置で実行される構造化文書検索プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第１〜第３の実施の形態にかかる構造化文書検索装置で実行される構造化文書検索プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１６９】
また、第１〜第３の実施の形態の構造化文書検索プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１７０】
第１〜第３の実施の形態にかかる構造化文書検索装置で実行される構造化文書検索プログラムは、上述した各部（受付部、検索部、第１判断部、決定部、変更部、算出部、構造抽出部、文書抽出部、第２判断部、追加部、出力部、登録部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ５１（プロセッサ）が上記記憶媒体から構造化文書検索プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【０１７１】
以上のように、本発明にかかる構造化文書検索装置、構造化文書検索方法および構造化文書検索プログラムは、ＸＭＬのように構造を自由に定義可能な構造化文書を検索対象とする検索装置、検索方法、および検索プログラムに適している。
【図面の簡単な説明】
【０１７２】
【図１】第１の実施の形態にかかる構造化文書検索装置の構成を示すブロック図である。
【図２】構造化文書の一例を示す説明図である。
【図３】構造化文書の一例を示す説明図である。
【図４】構造化文書の論理構造を示した説明図である。
【図５】構造化文書の論理構造を示した説明図である。
【図６】統計情報記憶部に記憶される統計情報のデータ構造の一例を示す説明図である。
【図７】検索部による検索結果の一例を示した説明図である。
【図８】第１の実施の形態における構造化文書検索処理の全体の流れを示すフローチャートである。
【図９】第１の実施の形態における構造統計情報算出処理の全体の流れを示すフローチャートである。
【図１０】適合要素名変更処理を実行した結果の一例を示す説明図である。
【図１１】算出した統計情報の一例を示す説明図である。
【図１２】第１の実施の形態における類似部分構造抽出処理の全体の流れを示すフローチャートである。
【図１３】生成した特徴ベクトルの一例を示す説明図である。
【図１４】抽出された類似部分構造の一例を示す説明図である。
【図１５】生成した特徴ベクトルの別の例を示す説明図である。
【図１６】部分文書抽出処理の全体の流れを示すフローチャートである。
【図１７】構造化文書の論理構造の別の例を示した説明図である。
【図１８】構造化文書の論理構造の別の例を示した説明図である。
【図１９】部分文書統合処理の全体の流れを示すフローチャートである。
【図２０】出力される部分文書の出力形式の一例を示した説明図である。
【図２１】第２の実施の形態にかかる構造化文書検索装置の構成を示すブロック図である。
【図２２】第２の実施の形態における構造化文書登録処理の全体の流れを示すフローチャートである。
【図２３】第２の実施の形態における構造統計情報算出処理の全体の流れを示すフローチャートである。
【図２４】第３の実施の形態にかかる構造化文書検索装置の構成を示すブロック図である。
【図２５】構造情報記憶部に記憶された構造情報のデータ構造の一例を示す説明図である。
【図２６】第３の実施の形態における類似部分構造抽出処理の全体の流れを示すフローチャートである。
【図２７】構造化文書検索装置のハードウェア構成を示す説明図である。
【符号の説明】
【０１７３】
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  通信Ｉ／Ｆ
６１  バス
１００  構造化文書検索装置
１０１  受付部
１０２  検索部
１０３  第１判断部
１０４  決定部
１０５  変更部
１０６  算出部
１０７  構造抽出部
１０８  文書抽出部
１０９  第２判断部
１１０  追加部
１１１  出力部
１１３  生成部
１２２  統計情報記憶部
２００  文書管理装置
２２１  構造化文書記憶部
３００  ネットワーク
２１００  構造化文書検索装置
２１０２  検索部
２１０３  第１判断部
２１０５  変更部
２１１２  登録部
２１２１  構造化文書記憶部
２４００  構造化文書検索装置
２４０７  構造抽出部
２４１３  構造情報記憶部
【図１】
2008084192.tif 000003
【図２】
2008084192.tif 000004
【図３】
2008084192.tif 000005
【図４】
2008084192.tif 000006
【図５】
2008084192.tif 000007
【図６】
2008084192.tif 000008
【図７】
2008084192.tif 000009
【図８】
2008084192.tif 000010
【図９】
2008084192.tif 000011
【図１０】
2008084192.tif 000012
【図１１】
2008084192.tif 000013
【図１２】
2008084192.tif 000014
【図１３】
2008084192.tif 000015
【図１４】
2008084192.tif 000016
【図１５】
2008084192.tif 000017
【図１６】
2008084192.tif 000018
【図１７】
2008084192.tif 000019
【図１８】
2008084192.tif 000020
【図１９】
2008084192.tif 000021
【図２０】
2008084192.tif 000022
【図２１】
2008084192.tif 000023
【図２２】
2008084192.tif 000024
【図２３】
2008084192.tif 000025
【図２４】
2008084192.tif 000026
【図２５】
2008084192.tif 000027
【図２６】
2008084192.tif 000028
【図２７】
2008084192.tif 000029