(57)【特許請求の範囲】
【請求項１】
コンピュータがアクセスできる形式で格納された情報を検索するための検索エンジンであって、前記検索エンジンは、
前記情報が含む文字列を抽出し、異なる文字列解析により得られる複数種類のトークンを割当てるトークン割当部と、
前記トークンと、前記文字列解析の種類を識別するための種類識別値と、前記情報を識別するための情報識別値とを対応付けて登録すると共に、前記種類識別値に対応して割当てられたスコアを登録する索引リストを生成する索引生成部と、
前記情報を照会するための検索語を受領し、前記検索語から生成された前記複数種類の検索トークンを並列連結して前記情報を並列照会する検索指令を発行し、前記検索指令により前記索引リストを検索させ、前記複数種類の検索トークンについての並列照会で得られたスコアを生成する検索処理部と、
前記並列照会により前記検索語に関連付けて検索された前記情報を検索結果として表示させるためのファイルを作成する検索結果作成部と
を含む、検索エンジン。
【請求項２】
さらに前記検索処理部は、前記複数種類の検索トークンについて割当てられたスコアの合計値を生成し、前記スコアの合計値の高い順に前記情報を前記ファイルに登録する請求項１に記載の検索エンジン。
【請求項３】
前記検索結果作成部は、前記情報が含む前記文字列からサマリーを作成し、前記複数種類の検索トークンによりそれぞれ照会された前記トークンと、前記複数種類の検索トークンにより重複して照会された他トークンとを識別表示するため、異なる属性情報を前記サマリーに追加して、前記複数種類の検索トークンの一致レベルを表示する前記ファイルを作成する、請求項２に記載の検索エンジン。
【請求項４】
前記検索処理部は、複数の検索語を含む検索語列を受領して複数の前記検索語それぞれから複数種類の検索トークンを生成し、前記検索語列に対応する複数の前記並列照会を含む検索指令を生成し、抽出された情報が含む前記検索トークンに割当てられたスコアのスコア合計を取得して、検索語列に対する前記ファイルを生成する、請求項３に記載の検索エンジン。
【請求項５】
前記文字列は、シングルバイト文字を含む文字列、または中国語、日本語、韓国語、アラビア語を含む、文字列中にマルチバイト文字を含む文字列である、請求項４に記載の検索エンジン。
【請求項６】
検索の対象とされる情報を格納するデータベースと、
検索語を含む検索要求を受領して、前記データベースに対する検索要求を送付し、かつ検索結果を送出する通信処理部と、
前記通信処理部を介して前記検索要求を取得し、前記情報を検索する請求項１〜請求項４のいずれか１項に記載の検索エンジンを含む検索エンジンと
を含む検索システム。
【請求項７】
前記データベースは、前記通信処理部を介して接続されたリモート・サーバにより管理される、請求項６に記載の検索システム。
【請求項８】
前記文字列は、シングルバイト文字を含む文字列、または中国語、日本語、韓国語、アラビア語を含む、文字列中にマルチバイト文字を含む文字列である、請求項６に記載の検索システム。
【請求項９】
コンピュータがアクセスできる形式で格納された情報を検索するための、コンピュータが実行する検索方法であって、前記検索方法は、コンピュータが、
前記情報が含む文字列を抽出するステップと、
異なる文字列解析により得られる複数種類のトークンを前記文字列に割当てるステップと、
前記情報を照会するための検索語を受領し、前記検索語から生成された前記複数種類の検索トークンを並列結合して前記情報を並列照会する検索指令を生成するステップと、
生成した前記検索指令を、前記トークンと、前記文字列解析の種類を識別するための種類識別値と、前記種類識別値に対応して割当てられたスコアと、前記情報を識別するための情報識別値とを対応付けて登録する索引リストに対して発行するステップと、
前記検索指令に含まれる前記検索トークンを使用して、前記索引リストを並列照会により検索するステップと、
前記並列照会によって検索された前記情報について前記複数の種類識別値に関連付けて割当てられたスコアの合計値を生成し、前記スコアの合計値の高い順に前記情報を登録するステップと、
登録した前記情報を検索結果として表示させるファイルを作成するステップと、
を実行する、検索方法。
【請求項１０】
前記検索結果を生成するステップは、前記情報が含む前記文字列からサマリーを作成するステップと、
前記複数種類の検索トークンによりそれぞれ照会された前記トークンと、前記複数種類の検索トークンにより重複して照会された他トークンとを識別表示するため、異なる属性情報をサマリーに追加して、前記複数種類の検索トークンの一致レベルを表示するステップと
を含む請求項９に記載の検索方法。
【請求項１１】
前記検索指令を生成するステップは、複数の検索語を含む検索語列を受領して複数の前記検索語それぞれから複数種類の検索トークンを生成し、前記検索語列に対応する複数の前記並列照会を含む検索指令を生成するステップを含む、請求項１０に記載の検索方法。
【請求項１２】
前記文字列は、シングルバイト文字を含む文字列、または中国語、日本語、韓国語、アラビア語を含む、文字列中にマルチバイト文字を含む文字列である、請求項１１に記載の検索方法。
【請求項１３】
請求項１〜請求項５のいずれか１項に記載の機能手段をコンピュータに実現するためのコンピュータ実行可能なプログラム。
【請求項１４】
コンピュータに対して、
検索の対象とされる情報を格納するデータベースと、
検索語を含む検索要求を受領して、前記データベースに対する検索要求を送付し、かつ検索結果を送出する通信処理部と、
前記通信処理部を介して前記検索要求を取得し、前記情報を検索する請求項１〜請求項４のいずれか１項に記載の検索エンジンを含む検索エンジンと
を実現するコンピュータ実行可能なプログラム。
【請求項１５】
前記データベースは、前記通信処理部を介して接続されたリモート・サーバにより管理される、請求項１４に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報検索に関し、より詳細には、複数の文字列解析を並列的に適用する検索技術に関する。
【背景技術】
【０００２】
近年、コンピュータ、インターネットなどの高速大容量通信基盤の普及などの理由から、膨大な数の情報が作成され、ネットワークを介してアクセス可能に登録されるようになっている。これに伴って、近年、ネットワークを介して情報にアクセスする場合、情報検索する者が、文書、画像、音響ファイルなどを含む情報を高速に検索し、かつアクセスできる検索システムの必要性が高まっている。
【０００３】
検索システムでは、多くの場合、検索対象の情報を、適切な文字列解析方法を使用して文字、単語、センテンスなどの単位（以下、トークンとして参照する。）に分割して索引付けを行う。また、入力された検索語または検索語列についても、文字、単語、センテンスなど所定の単位（以下、検索トークンとして参照する。）に分割され、検索対象の情報について登録されたトークンが、検索トークンに一致するか否かの判断に応じて情報を検索結果として抽出するかどうかを決定する。この際、文字列からトークンを生成する処理が必要とされる。トークンを生成する処理は、従来では主に２つの手法が使用されている。
【０００４】
第１の手法は、文字列の形態素解析法である。形態素解析におけるトークンの生成は、まず、文字列を有為な意味を持つ単語単位に分割し、分割された単語をそれぞれトークンとして登録する。第２の手法は、Ｎグラム法と参照される方法である。Ｎグラム法では、文字をＮ文字ごとに文字の重なりを考慮してＮ文字単位に分割し、トークンとして登録する。
【０００５】
形態素解析法は、辞書を用い、トークン自体が有為な意味のある単位で分割および生成される。このため、形態素解析法は、辞書を参照することにより単語の活用なども考慮でき、高品質な検索が可能とされる。一方、形態素解析法はその半面で、（ｉ）辞書にない単語は分割できないこと、（ｉｉ）誤った単語分割を行ってしまうことで、文字列とまったく同じ単語が含まれている情報であっても検索結果から排除されてしまうこと、（ｉｉｉ）辞書のメンテナンスが必要なこと、という欠点もある。
【０００６】
また、Ｎグラム法は、この逆に文字列の機械的な分割によりトークンを生成する。したがって、Ｎグラム法は、完全に一致する文字列を含む情報を検索結果に含めることができる。一方で、Ｎグラム法は、（ｉ）部分一致、例えば、「東京都」という単語について、トークンが「京都」である場合に一致と判断してしまうことによりノイズが生成されやすいこと、（ｉｉ）トークンとして登録する単語の活用など、単語の同義的な「ゆれ」には対応できないこと、という欠点もある。
【０００７】
図１２に、従来の形態素解析法およびＮグラム法を使用する検索情報の照会処理を示す。図１２（ａ）が形態素解析法を使用する場合の照会処理であり、図１２（ｂ）がＮグラム法を使用する場合の照会処理を示す。検索者が、クライアント・コンピュータから検索語として「都庁」および「取り扱い時間」を入力し、ネットワークを介して検索エンジンに対して検索要求を発行するものとする。検索エンジンは、例えばリレーショナル・データベースなどを含んで構成されており、受領した検索語を、リレーショナル・データベースが管理する情報に対してＳＱＬ文などを使用して照会する。
【０００８】
ここで、現在検索の対象とされている情報が含む文書データは、「東京都庁のご案内取扱い時間」という、メタデータ、タイトル、または見出し情報を含んでいるものとする。形態素解析法では、情報を構成する文字列を、辞書を使用してトークンに分解し、辞書を参照して同義・活用・送り仮名などの表記のゆれなどが相違するトークンを、文書データの対応するトークンに関連付け、索引リストに表現の揺れを含めたトークンを、その出現位置、トークン番号などと共に登録する。
【０００９】
図１２（ａ）の従来例では、情報が含む文書データは、辞書にしたがって、「東京都」、「庁」、「の」、「ご」、「案内」、「取扱い」、「時間」のトークンに分解され、トークン「取扱い」に対しては、辞書を参照して送り仮名の異なるトークン「取り扱い」が元のトークン「取扱い」に対応付けて索引付けが行われる。この状況下で図１２（ａ）の照会処理を行うと、検索トークン「都庁」は、情報の索引リストに登録されていないのでミスヒットの値を返す。一方、検索トークン「取り扱い」および検索トークン「時間」は、対応するトークンが索引リストに登録されているので、ヒットの値を返す。
【００１０】
図１２（ａ）の場合、検索システムの実装方式に応じ、検索語「都庁」がヒットしなかったため、ミスヒットとして検索結果として返す場合もあるし、また、信頼度確率などを付け、本来検索者が検索したい情報を他の情報よりも下位にランク付けした検索結果を返してしまう。
【００１１】
一方、図１２（ｂ）は、Ｎグラム法を使用する照会処理であり、「都庁」、「取り扱い時間」という検索語については、Ｎグラム法で情報について索引付けされた「都庁」、「扱い」、「い時」、「時間」がヒットしている。一方、検索語から生成された検索トークン「取り」および検索トークン「り扱」についてはヒットとなるトークンが索引付けされておらず、ミスヒットの値が検索システムによって返される。この場合も、検索システムの実装方式によっては、検索全体に対してミスヒットであった結果が返されるか、または本来意図しない情報よりも下位にランク付けされてクライアント・コンピュータに検索結果として返される。
【００１２】
この理由は、図１２（ａ）では、主として辞書のメンテナンスの不備によるものであり、図１２（ｂ）では、Ｎグラムにおいて活用や表記のゆれを考慮することができないという欠点によるものである。
【００１３】
形態素解析法とＮグラム法とを使用する文書検索技術として、これまで例えば特開２００１−３４６２３号公報（特許文献１）、特開２００６−９９４２７号公報（特許文献２）、および特開２００６−１０６９０７号公報（特許文献３）を挙げることができる。
【００１４】
特許文献１では、検索対象テキストを単語単位に分割し、単語単位に分割したテキストから、単語の区切りを示す単語情報を持ち文字数がＮである単語情報付文字列インデックスを作成し、単語情報付文字列インデックスから、検索語を文字列検索または単語検索、またはその両方で検索する情報検索技術が開示されている。さらに、特許文献１では、Ｎグラムに形態素の単語境界の情報を記録してランキングの精度を向上させる手法も知られているが、この手法では、単語境界の単語を使用するという点で、形態素の大きな特徴である活用や表記の“ゆれ”などを反映させた検索を行う技術については直接適用することができる技術ではない。
【００１５】
また、特許文献２では、Ｎグラム・インデックスによる一次検索のヒット件数と形態素インデックスによる形態素検索のヒット件数との近似度を判定する近似度判定手段と、前記Ｎグラムインデックスによる一次検索のヒット件数と前記形態素インデックスによる形態素検索のヒット件数とが近似していると近似度判定手段によって判定された場合、前記Ｎグラムインデックスによる二次検索が省略されるように前記第１の検索手段を制御して、前記一次検索の結果または前記形態素検索の結果を検索結果として採用する全文検索実行制御手段とを具備することを特徴とする全文検索技術が開示されている。
【００１６】
さらに、特許文献３では、索引を付与すべき、構造化文書に含まれる各要素毎に、当該要素に基づいて、当該要素に適した索引種別を決定する索引種別決定手段と、索引種別決定手段によって各要素毎に決定された索引種別に基づいて、当該要素に対応する当該決定された索引種別の索引を構築して前記索引格納手段に格納する索引構築手段とを具備することを特徴とする構造化文書管理技術が開示されている。
【００１７】
特許文献１〜特許文献３では、形態素解析法およびＮグラム法の２つの手法を、いずれか一方を択一的に選択し、文字列解析法の異なる索引付けがなされた情報に対して検索を行うものである。また、それぞれの文字列解析方法で作成した索引に対する検索を独立して行い、結果を合成することにより、形態素解析とＮグラム法の両方の結果を含ませることもできる。
【００１８】
しかしながら、結果を合成する方法は、結果処理が複雑化する上に、形態素解析法での検索を行うエンジンとＮグラム法での検索エンジンの両方を実装することが必要となり、コスト的にも高くつくものとなる。また、検索結果をＮグラム法、形態素解析法を使用してそれぞれ生成させ、各結果集合を合成するにしても、各結果集合は、それぞれの文字列解析方法の長所・短所を有したままなので、これらを単に独立して検索を実行し、検索結果を外部的に結合させても、例えば図１２に示した従来例では、各々の方法の欠点を反映してしまうことになって、充分な精度をおよび検索満足度を提供することができないことになる。なお、「検索品質」とは、検索漏れが最小で、ノイズも適切な程度に除去でき、さらに検索者の入力した検索語（列）に対して忠実性の高い検索結果を得ることを意味する。
【００１９】
さらに、検索結果の両方法による検索処理を独立して行う場合、２種類の検索エンジンを実装することが必要であること、検索を、文字列解析方法に関連する回数分実行しなければ成らないこと、各検索結果は、依然として文字列解析方法固有の長所・短所を含んだままであり、単に結果を結合させるだけでは検索品質を改善することにはつながらないことなど、人的・ハードウェア資源的・および品質・コスト面から魅力的なものとはいえない。
【特許文献１】特開２００１−３４６２３号公報
【特許文献２】特開２００６−９９４２７号公報
【特許文献３】特開２００６−１０６９０７号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
上述したように、従来の技術では、単に入力した検索語（列）が一致しているなどの理由で検索結果の上位にリストされる文書は、必ずしも検索者が意図している文書であるとはいえず、効果的な検索が行えていないという問題があった。また、形態素解析法は、言語によって表現の揺れが多様な場合、単語の活用、送り仮名、謙譲語、敬語など多様な表記の揺れを含む文字列については、辞書メンテナンスに関する労力が多大となる反面、形態素解析法固有の問題点は依然として残されてしまう。
【００２１】
一方で、単語の間に空白文字、例えばスペースといった区切りで区切られず、非空白の文字による連続シーケンスで特定の意味を有する単語、例えば「東京都」、「日本」、「町田市」を与え、「町田市は、日本の東京都にあります。」などの文章表現を行う言語については、文字が２バイトで表現され、文字それ自体が簡潔または未完結の意味を有している。このような言語については、Ｎグラム法も有効と考えられ、Ｎグラム法を有効に使用することで、検索漏れを最小限とすることが期待できる。しかしながら、Ｎグラム法は、形態素解析法に比較して、意味に関係なく文字列の一致でヒット判定を行う特徴を有しているので、ノイズが増加してしまう点、本来的に表現の揺れに対応することができない点、などＮグラム法固有の欠点は依然として残されてしまう。
【００２２】
本発明は、上記従来技術の問題点に鑑みてなされたものであり、本発明は、より検索者の入力した検索語（列）に対する忠実度が高い検索結果を提供することができる検索エンジン、検索システム、検索方法およびプログラムを構築することを目的とする。
【００２３】
また、本発明は、単語の間にスペースといった区切りを配置することなく、文字の特定の連続により有意的な意味を与える言語、例えば、日本語、中国語、韓国語、アラビア語など、マルチバイト文字を含んで構成される文字列について検索精度を向上させ、より忠実度の改善された検索結果を提供する検索エンジン、検索システム、検索方法およびプログラムを構築することを目的とする。
【００２４】
さらに本発明は、検索結果の表示を、形態素解析法およびＮグラム法の両方の長所を保持させながら、かつ短所を相互的に低減させ、検索結果の識別性を向上させる、検索エンジン、検索システム、検索方法およびプログラムを構築することを目的とする。
【課題を解決するための手段】
【００２５】
本発明は、上記従来技術の不都合に鑑みてなされたものであり、本発明では、検索対象の情報に対し、検索者が入力した検索語（列）から、形態素解析法およびＮグラム法で得られた検索トークンを、並列結合した並列照会を生成する。生成された並列照会を使用して、検索対象の情報を検索する。情報が含む文書データは、形態素解析法およびＮグラム法により生成されたトークンにより索引付けられている。並列照会による検索では、並列照会が同一の検索語に基づき、異なる文字列解析方法により生成された検索トークンを含むため、いずれかの種類の検索トークンが文書データのトークンと一致することにより、当該検索語についての検索がヒットと判定される。なお、本発明において並列照会とは、ＳＱＬ文などとして構成される検索指令に同一の検索語から生成された、異なる文字列解析により生成された検索トークンを連結させ、ヒットした情報を抽出した照会集合として、各検索トークンのヒット結果の集合和を返す照会処理を意味する。
【００２６】
検索語が複数の検索語列として与えられる場合、検索語単位で並列照会が実行され、照会集合は、全照会集合をリストアップするように生成される。検索語または検索語列に対応する各並列照会の照会集合は、検索トークンごとに割当てられた、スコアを合計することによりランク付けされ、スコア合計が高い情報から検索結果とされる。
【００２７】
上述のように生成されたスコアは、検索対象の情報が、形態素解析法およびＮグラム法で生成されたトークンを、検索対象の情報が含む程度を反映する。この結果、本発明により生成される検索結果は、検索対象とされた情報が含む文字列やテキスト部分が含む検索語（列）に退位する忠実度が向上する。さらに、辞書メンテナンスによるトークン化の漏れといった形態素解析法の欠点については、Ｎグラム法の長所により補強でき、また、Ｎグラム法の表現の揺れへの未対応といった欠点については、形態素解析の長所により補強することができる。
【００２８】
本発明では、情報のスコア計算は、Ｎグラム法および形態素解析法により抽出されたそれぞれのトークンが検索トークンにそれぞれ一致した情報について高スコアを与えるように実行される。この結果、形態素解析法およびＮグラム法によらず、情報の文書データの検索語（列）に対する忠実度がさらに改善される。
【００２９】
さらに本発明では、検索結果は、検索結果に含まれる情報のサマリーを作成し、サマリーに対してＮグラム・トークン分割の結果を利用して検索トークンの出現位置を決定し、検索語のハイライトを形態素解析により生成された単語により行う。Ｎグラム法により生成されたトークンは、情報のテキスト部分の正確な位置を与え、また形態素解析の結果をＮグラム・トークンにより与えられたテキスト部分の位置にマッピングすることで、正確な位置決定を行うことともに、Ｎグラム法および形態素解析によるトークン列についての一致レベルについても対応付けてハイライトを行うことが可能となる。
【００３０】
なお、本発明によりトークン分割が行われた後の処理は言語に依存しないので、本発明は、日本語、中国語、韓国語、アラビア語、ヒンディー語、ヘブライ語などのいわゆるマルチバイト文字で表現される文字を使用する言語の他、英語、ドイツ語、フランス語、イタリア語、スペイン語など単語間のスペースなど、区切りを含みシングルバイト文字で表現される言語での情報の検索についても適用することが可能である。
【発明を実施するための最良の形態】
【００３１】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図１は、本実施形態の検索システム１００の実施形態を示す。検索システム１００は、複数のクライアント・コンピュータ（以下、クライアントとして参照する。）１０２と、クライアント１０２からの検索要求を受領し、検索結果をクライアントに返すサーバ・コンピュータ（以下、サーバとして参照する。）１０４とを含んで構成されている。
【００３２】
クライアント１０２と、サーバ１０４とは、ネットワーク１０８を介して相互接続されている。また、クライアント１０２と、サーバ１０４との間は、ネットワーク１０８を介して、ＴＣＰ／ＩＰなどのトランザクション・プロトコルを使用し、ＲＭＩ(Remote Method Invocation)、ＲＰＣ(Remote Procedure Call)、ＥＪＢ(Enterprise
Ｊａｖａ（登録商標） Beans)、ＣＯＲＢＡ(Common Object Broker Architecture)などの分散コンピューティング環境またはＨＴＴＰプロトコルを使用して、クライアント１０２側にウェブ・ブラウザ、サーバ１０４側にＣＧＩ(Common
Gateway Interface)、サーブレット、データベース・アプリケーションなどのサーバ・プログラムを実装して構成することができる。
【００３３】
クライアント１０２は、パーソナル・コンピュータまたはワークステーションなど、これまで知られた、いかなるシングルコア・プロセッサまたはデュアルコア・プロセッサを含んでいてもよい。また、クライアント１０２は、ＷＩＮＤＯＷＳ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、ＭＡＣ  ＯＳなど、いかなるオペレーティング・システムを実行させてもよい。
【００３４】
サーバ１０４は、また、ＷＩＮＤＯＷＳ（登録商標）２００Ｘ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）などのオペレーティング・システムにより制御され、クライアント１０２からの検索要求を処理し、クライアント１０２に処理結果を変えることができる限り、分散コンピューティングのプロキシ・サーバとして実装することもできるし、ウェブ・サーバとして実装することができる。
【００３５】
また、クライアントは、データベース１０６に遠隔的に接続して検索結果を取得するため、ＪＤＢＣ(Ｊａｖａ（登録商標）Database
Component)およびその他のコンポーネント・クラスを実装し、ＭｙＳＱＬ、ＤＢ２、ＯＲＡＣＬＥ（商標）、ＰｏｓｔａｇｅＳＱＬ、ＳＱＬｓｅｒｖｅｒ、ＡＣＥＳＳなどのデータベースにアクセスすることが可能とされていてもよい。なお、この他、特に商用データベースを使用することなく、ウェブ・ブラウザ、ＣＧＩ、ＪＡＶＡ（登録商標）、ＰＥＲＬ、ＲＵＢＹなどの言語を使用してサーバ・プログラムを作成し、同等の機能を提供することができることは、いうまでもない。
【００３６】
図１に示したサーバ１０４は、ハードディスク装置などの記憶装置上に構成されＲＡＭなどのデータベース・アプリケーションを展開して実現され、データベース手段として機能する、データベース（ＤＢ）１０６を管理している。データベース１０６は、コンピュータがアクセス可能なフォーマットとされた情報を格納している。上述した情報としては、ドキュメント・データ、イメージ・データ、マルチメディア・データなどを挙げることができ、これらの情報は、文字列を、例えばデータ本体、メタデータ、タイトル、見出しなどとして含むことができる。以下、情報がみ、検索対象となる文字列について、文書データとして参照する。サーバ１０４は、情報をデータベース１０６に登録する場合、情報に含まれる文書データに対して形態素解析またはＮグラム法を適用して、各方法に対応したトークンを生成し、トークンの位置情報(Posting List)と共に索引リストとしてデータ・マイニングを行った後、データベース１０６に当該情報に対応付けて登録する。
【００３７】
なお、データベース手段は、上述した特定のデータベース・アプリケーションにより実装されることは必要とはされず、特定の情報について複数の項目を対応付けて登録することができる限り、いかなる構成として実装することができ、また、リレーショナル・データベースの外、ＯＯＤＢ(Object Oriented Database)として構成することができる。
【００３８】
図１には、検索システムの他の実施形態も示されている。他の実施形態では、サーバ１０４は、ハードウェアおよびソフトウェアが協働して検索エンジンの機能を専ら提供する検索エンジン手段の機能を提供し、破線枠１２０で示すように、プロキシ・サーバとして配置されたデータベース・サーバ１１０がデータベース１１２を管理し、情報などの取得、データ・マイニング、および情報の格納などを処理するものである。図１に示した他の実施形態では、サーバ１０４からの検索要求を受領して、データベース・サーバ１１０がデータベース１１２に対して照会を実行し、照会の実行結果を、サーバ１０４に返すことにより、クライアント１０２に対して検索結果を提示する。
【００３９】
図１に示した他の実施形態では、サーバ１０４は、データベース１０６を実装する必要が無く、クライアントからの検索要求を処理するだけで済むので、検索処理および検索結果の表示処理を高速に行うことができ、サーバ１０４をウェブ・サーバとして構成する場合に好適な実施形態ということができる。
【００４０】
なお、データベース・サーバ１１０を実装する場合、リモート・プロキシとして構成するのではなく、サーバ１０４のハードウェア資源の一部をデータベース・サーバのために割当てる構成とすることもできるし、アプライアンス・サーバやシンサーバなどを使用して、サーバ１０４と、データベース・サーバ１１０とを単一のラック内に設置した構成とすることもできる。
【００４１】
さらに、本発明の他の実施形態では、検索システム１００を、大容量のハードディスク装置を実装するスタンドアローンのパーソナル・コンピュータまたはサーバ、メインフレームなどの情報検索用のモジュールとして実装することもできる。
【００４２】
図２は、本実施形態のサーバ１０４上に実現される検索システム１００の機能ブロック２００を示す。図２に示した各機能部は、サーバ１０４のメモリ上にプログラムを展開し、プログラムの実行により各ハードウェア資源を動作制御することによりサーバ１０４上に実現することができる。
【００４３】
より詳細にサーバ１０４の機能を説明する。サーバ１０４は、ネットワーク・アダプタ２０２を含んで構成されている。ネットワーク・アダプタ２０２は、ネットワーク・インタフェース・カード（ＮＩＣ）などを含んだ通信処理部として構成されており、インターネット、ＬＡＮまたはＷＡＮといったネットワーク１０８から、クライアント１０２が発行した検索要求を受領し、各機能手段へと受領した検索要求を送付する。また、ネットワーク・アダプタ２０２は、ネットワーク１０８を介してデータベース１０６に蓄積するための情報を受領して、情報に対してデータ・マイニングを行い、データベース１０６に登録する処理を可能とさせている。以下、サーバ１０４の処理を、各処理段階ごとに分けて説明する。
【００４４】
（１）サーバによる情報蓄積
サーバ１０４は、蓄積するべき情報を受領すると、データベース管理部２０４に通知し、取得した情報のデータベースへの登録およびデータ・マイニングを実行させて索引リストを生成する。データベース管理部２０４は、プロセッサの実行空間を提供するＲＡＭなどにプログラムを展開することにより、データベース管理手段としてサーバ１０４上に実現される。データベース管理部２０４は、情報を受領すると、データベース１０６の情報格納部１０６ａに情報を格納する。そして、データベース管理部２０４は、形態素トークン生成部２１６、Ｎグラム・トークン解析部２１８を呼出して、取得した情報に対し、形態素解析およびＮグラム法を実行し、形態素トークンおよびＮグラム・トークンを生成させる。用語「形態素トークン」は、文書データから形態素解析により生成されたトークンである。また、用語「Ｎグラム・トークン」は、文書データからＮグラム法により生成されたトークンである。
【００４５】
なお、形態素トークン生成部２１６、Ｎグラム・トークン生成部２１８は、プロセッサの実行空間を提供するＲＡＭなどにプログラムを展開することにより、形態素トークン生成手段およびＮグラム・トークン生成手段としてサーバ１０４上に実現される。また、形態素トークン生成部２１６およびＮグラム・トークン生成部２１８は、本実施形態では、統合的にハードウェアおよびソフトウェアが協働してトークン割当手段として機能するトークン割当部２２２として参照される。なお、特定の用途に応じて、トークン割当部２２２は、さらに他の文字列解析手法を使用した文字列解析トークン生成部を実装することができる。各解析によるトークンの生成処理中に、情報中の文書データにおけるトークンのシリアル番号（ＴＯＫ＿ＩＤ）および文書データ中での文字範囲（ＰＯＳ＿ＩＤ）、位置情報(Posting List)として取得する。
【００４６】
その後、データベース管理部２０４は、生成した形態素トークン、Ｎグラム・トークン、トークンのシリアル番号、および文書データにおける絶対位置範囲を、当該文書データを含む情報の情報識別値であるＩＮＦ＿ＩＤに対応付けて登録し、索引リストを生成する。さらに、この際、データベース管理部２０４は、索引リストには、検索語（列）に対するランク付けを可能とするために、形態素トークン、Ｎグラム・トークンについてそれぞれ割当てられたスコアを登録する。生成された索引リストは、データベース１０６の適切な記憶領域、図２に示した実施形態では索引リスト格納部１０６ｂに格納する。
【００４７】
（２）トークン生成
各トークン生成部２１６、２１８のトークン生成は、概略的に以下のように実行される。各トークン生成部２１６、２１８は、それぞれの分割手法にしたがって１つの文書データの文字列を分割して所定のトークンとして生成する。例えば、情報の文書データ部分が、「町田市は東京都にあります」というテキストで与えられているものと仮定する。上記のテキストに対し、形態素解析を適用する場合、形態素トークン生成部２１６は、辞書を参照しながら、テキストを、「町田、市、は、東京都、に、あり（ある）、ます」と分割する。括弧内は、表現の揺れを含め辞書に登録されている活用変化を対応付けたことを示す。一方、Ｎグラム（Ｎ＝２）では、重複文字数を重複させて、「町田、田市、市は、は東、東京、京都、都に、にあ、あり、りま、ます」と分割する。なお、Ｎグラム法では、辞書は必要とされず、文字列の並び順にトークンが生成されて行く。また、Ｎグラム法では、Ｎ＝２とする場合、１文字文だけ重複する用にしてＮグラム・トークンを生成する。なお、他の実施形態では、Ｎを、他の正の整数とし、重複文字数をさらに他の正の整数とすることができる。
【００４８】
（３）索引リスト生成
索引リストは、生成された形態素トークンおよびＮグラム・トークンを文書データが由来する情報に索引付けするようなフォーマットとして、索引生成部２２０が生成し、データベース１０６の索引リスト格納部１０６ｂに格納する。なお、索引生成部２２０は、プロセッサの実行空間を提供するＲＡＭなどにプログラムを展開することにより、索引生成手段としてサーバ１０４上に実現される。例示的な実装例では、索引リストは、そのフィールドとして、形態素トークンを登録するｍｔｅｘｔ、Ｎグラム・トークンを登録するｎｔｅｘｔとを定義し、それぞれのフィールドにこれらのトークンを対応付けて保持しておき、元の情報を索引付け可能に登録することができる。
【００４９】
なお、索引リスト内でトークンを保持する場所が明確に分離できない場合は、たとえばトークンに型を付加することや、トークンの文字列自体を加工して区別して登録することもできる。なお、ｍｔｅｘｔおよびｎｔｅｘｔのフィールド自体またはフィールド名、または型、文字などは、トークンを生成した際の文字列解析の種類を識別するための種類識別値として機能する。
【００５０】
さらに、索引リストには、情報識別値、文書データから生成された各トークンのシリアル番号および元の文書データ内でのトークンの位置範囲、およびトークンについて割当てられ、文字列解析法に固有に付されたスコアを登録する。
【００５１】
（４）スコア割当て
また、形態素トークン生成およびＮグラム・トークン生成により生成されるトークン数は、一般的にみて、Ｎグラム法の方が多い。上述したテキスト「町田市は東京都にあります」については、形態素トークンは、表現の揺れを含めて８個であり、Ｎグラム・トークンは、１１個となる。この条件を考慮して、形態素トークンについて割当てるスコアおよびＮグラム・トークンについて割当てるスコアに対して重み付けを行うことができる。例えば、形態素トークンについて、Ｎグラム・トークンのスコアを１とした場合、１１／８に設定することができる。
【００５２】
上述した重み付けは、検索のランク付けに応じて適宜設定することができ、例えば、形態素トークンとＮグラム・トークンとに対して、同一のスコアを割当てることもできるし、形態素トークンおよびＮグラム・トークンそれぞれの存在数を情報から実際に取得した後、形態素トークンの全一致とＮグラム・トークンの全一致で、同一の合計スコアを与えるように設定してもよい。さらに他の実施形態では、トークンの意味表現の有意性を考慮して、形態素トークンの一致に対して有意性を付与するために、形態素トークンの全一致の合計を、Ｎグラム・トークンの全一致の合計のｓ倍（ｓは、１以上の任意の実数）となるように設定することができる。
【００５３】
さらに他の実施形態では、形態素トークンについては、スコア＝１０、Ｎグラム・トークンについてはスコア＝１など固定的に割当てることもできる。以上のデータを含む索引リストは、索引生成部２２０により生成された後、データベース１０６の適切な記憶領域に確保された索引リスト格納部１０６ｂに、情報が含む文書データを参照可能に登録される。
【００５４】
（５）検索処理
検索処理は、検索処理部２０６が実行する。検索処理部２０６、照会文生成部２０８、照会文発行部２１０、照会処理部２１２は、それぞれプロセッサの実行空間を提供するＲＡＭなどにプログラムを展開することにより、検索手段、照会処理手段、照会文生成手段、および照会処理手段としてサーバ１０４上に実現される。また、データベース１０６がデータベース・サーバなどにより管理される実施形態の場合には、図２に示した検索処理部２０６は、データベースに対して検索を依頼する検索手段として機能する。紹介文生成部２０８は、クライアント１０２から受領した検索要求を解析して、検索語（列）から検索語（列）を取得し、例えば、ＳＱＬ(Structured Query Language)などの照会文への引数として設定して、照会文を生成する。紹介文生成部２０８が生成した照会文は、照会文発行部２１０に送付され、照会文発行部２１０からデータベース管理部２０４へと、検索指令として発行または送付される。
【００５５】
データベース管理部２０４は、照会文を受領すると、データベース１０６に対する照会を実行し、当該照会に対応する照会集合を取得する。取得した照会集合は、照会処理部２１２に送られる。照会処理部２１２は、スコア付けされた情報の会々を使用して、例えば最大値から１０００個を検索結果として抽出する処理を実行する。このため、照会処理部２１２は、合計スコアについてソーティングを実行することもできる。その後、照会処理部２１２は、検索結果作成部２１４に対して検索結果とするべき結果集合を構成するためのデータを検索結果作成部に送付する。
【００５６】
（６）検索結果作成処理
検索結果作成部２１４は、プロセッサの実行空間を提供するＲＡＭなどにプログラムを展開することにより、それぞれ検索結果作成手段としてサーバ１０４上に実現される。検索結果作成部２１４は、結果集合を構成するためのデータを受領すると、索引リストを参照してPosting Listを取得し、情報の文書データからサマリーを作成し、トークンおよびPosting Listを使用してハイライト表示を追加する。検索結果作成部２１４は、処理したサマリーに例えば元情報のＵＲＩやパス名を指定してリンク可能な態様とし、例えばＨＴＭＬ、ＸＭＬなどの構造化文書、またはそれ以外のアプリケーション固有のフォーマットのファイルとして生成する。生成された検索結果は、ネットワーク・アダプタ２０２を介してクライアント１０２に送付され、クライアント１０２が検索結果を参照することを可能とさせる。
【００５７】
なお、他の実施形態では、サーバ１０４として図２の破線で示すように、検索エンジン２３０を構成させることもできる。この実施形態では、検索エンジン２３０は、例えばウェブ・サーバにおける検索手段として機能し、検索処理部２０６、データベース管理部２０４、形態素トークン生成部２１６、Ｎグラム・トークン生成部２１８、索引生成部２２０を含んで構成することができる。なお、検索エンジン２３０は、データベース１０６を管理するデータベース・サーバとは別に構成することができ、データベース・サーバを別のプロキシ・サーバとして構成する場合、サーバ１０４のデータベース管理部２０４、形態素トークン生成部２１６、Ｎグラム・トークン生成部２１８、索引生成部２２０は、データベース・サーバが実装してもよい。
【００５８】
この実施形態では、サーバ１０４は、検索エンジン検索処理部２０６は、ＪＤＢＣなどのコンポーネント・クラスを実装し、取得した検索語、検索語トークンなどをデータベース・サーバに送付し、その結果を取得してクライアント１０２に返す処理を実行する処理を実行する。説明している他の実施形態の場合、リモート・プロキシとして構成されたデータベース・サーバ１１０への問合わせを省略するために、照会処理部２１２が照会集合として取得するデータに、さらにPosting Listとして機能する位置情報についてのデータ・セットを含ませることができる。以下、本実施形態では、説明の便宜上、サーバ１０４は、データベース１０６についても管理するものとして説明する。
【００５９】
図３は、本実施形態におけるデータベース管理部２０４、形態素トークン生成部２１６、Ｎグラム・トークン生成部２１８および索引生成部２２０の処理を、各処理により生成されるデータ構造と共に示した概略図である。データベース管理部２０４は、新規な情報を取得すると、情報識別値などを付してデータベース１０６に登録する。図３に示した実施形態では、情報は、文書データ「取扱い時間」３００であり、情報識別値（ＩＮＦ＿ＩＤ）＝１であるものと仮定して説明を行う。文書データ「取扱い時間」３００は、形態素トークン生成部２１６およびＮグラム・トークン生成部２１８に送られ、それぞれの分割方法にしたがって、トークンが生成される。
【００６０】
形態素トークン生成部２１６では、辞書を参照して、文書データ「取扱い時間」３００を「取扱い」、「取り扱い」、「時間」のトークン列３０２に分割する。さらに、形態素トークン生成部２１６は、「取扱い」について、ＴＯＫ＿ＩＤ＝１、文書データ中の位置ＰＯＳ＿ＩＤ＝１−３としてPosting Listを生成する。同様に、「取り扱い」についてＴＯＫ＿ＩＤ＝１、ＰＯＳ＿ＩＤ＝１−３として取得し、「時間」について、ＴＯＫ＿ＩＤを２、ＰＯＳ＿ＩＤ＝４−５として取得する。そして、これらのトークンは、形態素解析から生成されたトークンなので、索引生成部２２０は、ＳＣＯＲＥ＝ｍを対応付けて登録する。これらのデータは、図示する実施形態では、ＴＯＫ＿ＩＤが若い順にトークンフィールド３１０のｍｔｅｘｔフィールド、ＩＮＦ＿ＩＤフィールド３１２、ＴＯＫ＿ＩＤフィールド３１４、ＰＯＳ＿ＩＤフィールド３１６およびＳＣＯＲＥフィールド３１８に登録される。
【００６１】
一方、Ｎグラム・トーン生成部２１８は、文字列「取扱い時間」３００を、「取扱」、「扱い」、「い時」、「時間」のトークン列３０４に分解する。その後、Ｎグラム・トークン生成部２１８は、ＴＯＫ＿ＩＤおよびＰＯＳ＿ＩＤといったPosting Listを生成する。索引生成部２２０は、上述の値を取得し、さらにＳＣＯＲＥについては、Ｎグラム・トークン解析から生成されたのでＳＣＯＲＥ＝ｎを取得し、ＴＯＫ＿ＩＤが若い順に、トークンフィールド３１０のｎｔｅｘｔフィールド、ＯＣ＿ＩＤフィールド３１２、ＴＯＫ＿ＩＤフィールド３１４、ＰＯＳ＿ＩＤフィールド３１６およびＳＣＯＲＥフィールド３１８に登録することにより、ＩＮＦ＿１で参照される情報についての索引データ３０８を構成する。
【００６２】
これらのデータが、ＩＮＦ＿１について終了すると、次の情報ＩＮＦ＿２、ＩＮＦ＿３、ＩＮＦ＿４、・・・、ＩＮＦ＿ｎが取得され、それぞれの情報が含む検索対象となる文書データについて、対応する索引データが生成される。索引リスト３０６は、図３に示した実施形態では、情報の識別値であるＩＮＦ＿ＩＤに対応する索引データが降順に登録されて行き、データベース１０６の索引リスト格納部１０６ｂに登録される。なお、索引リスト格納部１０６ｂは、情報格納部１０６ａと別に与えられた記憶領域とすることができ、例えば、表データの情報登録部１０６ａとは異なるフィールドを割当てて構成させることもできる。
【００６３】
なお、好ましい実施形態では、照会の発行先とされる索引リストに、形態素トークンおよびＮグラム・トークンをともに登録するものとして説明した。しかしながら、特定の用途において、上述した好ましい形態に比較してハードウェア資源の消費量および処理効率の点で許容される場合、形態素トークンを含む索引リストおよびＮグラム・トークンを含む索引リストを別リストとして構成させ、照会するべき索引リストの識別値を変えて各別に並列照会させ、それらの結果を集合和することもできる。
【００６４】
図４は、索引リスト３０６の生成処理を、フローチャートとして示した実施形態である。処理は、ステップＳ４００から開始し、ステップＳ４０１で最初の情報を選択する。ステップＳ４０２で、形態素トークン生成部２１６を呼出して、辞書データを参照して形態素トークンに分割する。ステップＳ４０３では、Ｎグラム・トークン生成部２１８を呼出してＮグラム・トークンに分割する。なお、ステップＳ４０２とステップＳ４０３は、図４に示すように、順次処理ではなく、並列処理で実行させることもできる。
【００６５】
ステップＳ４０４では、形態素トークン、Ｎグラム・トークン、および各トークンの位置データであるＴＯＫ＿ＩＤ、ＰＯＳ＿ＩＤを、Posting Listとして取得し、ステップＳ４０５で索引データの形式にコンバートして、索引リスト３０６にＩＮＦ＿１に対応するように登録する。ステップＳ４０６では、全情報について索引付けが終了したか否かを判断する。ステップＳ４０６の判断で、全文書の処理が終了したと判断された場合（ｙｅｓ）、ステップＳ４０７で処理を終了させる。また、ステップＳ４０６で、全情報の処理が終了していない都判断された場合（ｎｏ）、処理をステップＳ４０１に分岐させ、全文書の索引付けが終了するまで処理を反復させる。
【００６６】
図５は、図４のステップＳ４０４の処理の詳細を示すフローチャートを示す。処理はステップＳ５００から開始し、ステップＳ５０１で形態素トークン生成手段２１６およびＮグラム・トークン生成手段２１８を使用して、各トークンを抽出する。ステップＳ５０２では、抽出したトークンに、トークンのシリアル番号となるＴＯＫ＿ＩＤおよび対象の情報中のトークンが示す位置データであるＰＯＳ＿ＩＤを追加する。ステップＳ５０３で、トークン／ＴＯＫ＿ＩＤ／ＰＯＳ＿ＩＤ／情報識別値であるＩＮＦ＿ＩＤのデータ・セットを生成して登録該当するレコードに登録し、ステップＳ５０４で形態素トークン列およびＮグラム・トークン列のデータ・セットを、ｍｔｅｘｔおよびｎｔｅｘｔなどで項目付けられた別々のレコードに登録して索引リストにおいて結合する。
【００６７】
ステップＳ５０５では、特定の情報についての各トークン列が生成された段階で、これを、当該特定の情報識別値に対する索引データとして登録し、処理をステップＳ５０６で処理を終了する。
【００６８】
図６は、検索システムが実行する検索方法の実施形態のフローチャートを示す。図６の処理は、サーバ１０４のサービスまたはＤａｅｍｏｎプロセスとして構成され、サーバ１０４が起動している間、要求に対する結果を送付した後、処理をステップＳ６００から開始させ、検索要求を待機させることが好ましい。図６の検索方法は、ステップＳ６００から開始し、ステップＳ６０１で検索要求を受領する。検索要求は、サーバ１０４がウェブ・サーバとして実装されている場合、ＨＴＴＰプロトコルで送付され、他の分散コンピューティング基盤上で構築されている場合、ＴＣＰ／ＩＰなどのトランザクション・プロトコルを使用したパケットとして送付される。
【００６９】
ステップＳ６０２で、サーバ１０４は、検索要求を解析し、検索語（列）を取得する。検索語は、検索者がクライアント１０２から入力した文字列のことを意味し、検索語列とは、区切文字（例えばスペース文字）などで区切られた非空白文字からなる検索語の列を意味する。ステップＳ６０３では、索引リストから情報の索引データに対して検索語（列）を使用した照会を発行する。照会は、照会が含む検索語をｍｔｅｘｔまたはｎｔｅｘｔに登録されているかを検索することにより行われる。
【００７０】
ステップＳ６０４では、すべての検索語についてｍｔｅｘｔ、ｎｔｅｘｔの照会を終了したか否かを判断する。ステップＳ６０４で、すべての検索語についてｍｔｅｘｔ、ｎｔｅｘｔの照会が終了した場合（ｙｅｓ）には、ステップＳ６０５で、情報を、当該検索語に関連してスコア付けする。また、すべての検索語についてｍｔｅｘｔ、ｎｔｅｘｔの照会が終了しない場合（ｎｏ）、すべての検索語についてｍｔｅｘｔ、ｎｔｅｘｔの照会が終了するまで処理を反復させる。このスコア付けは、ｍｔｅｘｔのスコアと、ｎｔｅｘｔのスコアとを、同一の情報について別々にではなく同時に総和することにより実行される。なお、この総和（ＳＵＭ）を与える式は、数学的に種々考えられるものの、最も直接的には、下記式（１）により与えることができる。
【００７１】
【数１】
0005224851.tif 000002
【００７２】
上記式（１）中、ｍは、形態素トークンに割当てたスコアであり、ｎは、Ｎグラム・トークンに割当てたスコアである。また、ｈｉｔ＿ｍｔｅｘｔは、検索語にヒットした形態素トークンの数であり、ｈｉｔ＿ｎｔｅｘｔは、検索語にヒットしたＮグラム・トークンの数である。なお、スコアｍ、スコアｎについては、上述した通り、形態素トークンのヒットを重視するように、別途、適切な重付けｗｍ、ｗｎを与えておくことができる。なお、重み付けｗｍは、形態素トークンについての重みであり、ｗｎは、Ｎグラム・トークンについての重みであり、形態素トークンおよびＮグラム・トークン両方についてヒットした場合、ｗｍ＝ｗｍｎ（ｗｍｎ＞ｗｍ）として、さらに形態素トークンについてのヒットを加重評価させることもできる。
【００７３】
その後、ステップＳ６０６では、結果として、情報の参照を可能とするように、情報識別値ＩＮＦ＿ＩＤと、スコアとを対応付けて登録し、ステップＳ６０７では、すべての情報についてスコア付けを終了したか否かを判断する。ステップＳ６０７でスコア付けが終了していない場合（ｎｏ）、ステップＳ６０８で次の情報を選択して処理をステップＳ６０３に分岐させ、処理を繰り返す。また、ステップＳ６０７ですべての情報についてスコア付けが終了した場合（ｙｅｓ）、処理をステップＳ６０９で終了させる。なお、結果集合は、例えばＲＡＷ＿ＴＡＢＬＥとしてテンポラリ・テーブル（グローバル変数）として定義することができ、当該ＲＡＷ＿ＴＡＢＬＥを使用して以後に検索結果を作成する場合に利用される。
【００７４】
図７は、図６の処理を、特定の実施形態として、ＤＢ２（ＤＢ２は、インターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である。）などのデータベース・アプリケーションを使用し、ＳＱＬ文を使用して実装する場合の実施形態を示す。サーバ１０４は、検索要求７００を受領する。検索要求は、検索語＝都庁、検索語＝取り扱い時間の２検索語がＡＮＤにより結合された検索語列として送付される。サーバ１０４の照会文生成部２０８は、形態素トークン生成部２１６を呼出して辞書を参照して検索要求解析７０２において要求を解析して、検索語を、形態素解析について検索語トークンを、「都庁」、「取り扱い」、「時間」として抽出し、照会文７０６のＳＱＬ文の値に当該検索語を設定する。
【００７５】
同様に、照会文生成部２０８は、要求解析７０４で、Ｎグラム・トークン生成部２１８を呼出して検索語を、「都庁」、「取り」、「り扱」、「扱い」、「い時」、「時間」の検索語トークンに分解し、照会文７０６のＳＱＬに当該検索語を設定する。照会文発行部２１０は、データベース管理部２０４に対して照会文を発行し、照会を実行させる。
【００７６】
ここで、検索語の関係は、図７に示す特定の実施形態では、検索要求に含まれた検索語の種類、すなわち、「都庁」と、「取り扱い時間」についての照会集合をＵＮＩＯＮ  ＡＬＬで結合することにより実行される。また、「都庁」についての照会は、ＷＨＥＲＥ  ｍｔｅｘｔ＝都庁  ＯＲ  ｎｔｅｘｔ＝都庁としてＯＲで形態素トークンとＮグラム・トークンとをＯＲで連結した単一照会文とし、「取り扱い時間」についての照会は、「取り扱い時間」から派生するトークン全種を、ＷＨＥＲＥ内でＯＲで連結した単一ＳＱＬ文とし、これらの照会集合を、重複を含めて連結する。
【００７７】
さらに多くの検索語列がある場合、検索語単位で、検索語トークンを生成し、照会条件を｛ＷＨＥＲＥ  形態素トークン  ＯＲ  Ｎグラム・トークン｝として照会文を生成させ照会を実行して照会集合を生成させる。検索語単位の照会集合は、ＳＱＬ文の実施形態では、ＵＮＩＯＮ  ＡＬＬ句を使用して結合されて、結果集合を生成することで、情報が含む文書データの形態素トークンおよびＮグラム・トークン両方の存在を検索段階で考慮した照会集合およびスコア付けが可能となる。
【００７８】
生成された照会集合は、ＲＡＷ＿ＴＡＢＬＥの名称で、例えばビュー、新規テーブルとしてデータベース管理部２０４により生成される。その後、データベース管理部２０４は、照会文７０８を使用して結果集合であるＲＡＷ＿ＴＡＢＬＥからＩＮＦ＿ＩＤおよびＳＣＯＲＥの合計を抽出し、テンポラリ・テーブル（グローバル）としてＴＥＭＰ＿ＴＡＢＬＥを生成し、照会文７１０を使用してのＴＥＭＰ＿ＴＡＢＬＥにＩＮＦ＿ＩＤおよびＳＣＯＲＥ＿ＳＵＭのフィールドを生成させ、各フィールドにＩＮＦ＿ＩＤの値およびＳＵＭの値を登録する。その後、ブロック７１２で、照会するべき情報を指定するＩＮＦ＿ＩＤの値を、次情報を指定する値に設定し、次情報に対して照会文７０６を適用する。
【００７９】
上述の照会処理が全情報について完了した段階で検索処理が終了する。この段階で、ＴＥＭＰ＿ＴＡＢＬＥには、検索語（列）に関連付けられた情報のＩＮＦ＿ＩＤおよび検索語（列）による形態素スコアおよびＮグラムスコアのスコアの合計が登録された中間結果集合が生成される。なお、上述した照会処理は、ＪＡＶＡ（登録商標）、ＰＥＲＬ、ＲＵＢＹなど適切なプログラミング言語を使用してマクロ・オブジェクトとして構成させ、ＪＤＢＣなどの適切なコンポーネント・クラスを使用してサーバに対して実行させることができる。また、特定のデータベース・アプリケーションを使用せずに、ウェブ・ブラウザ、ＪＡＶＡ（登録商標）ＳＣＲＩＰＴ、ＣＧＩ、ＪＡＶＡ（登録商標）などのサーバ・プログラムなどを使用して実装することができる。いずれの実装形態を使用するかについては、データベース・アプリケーションの利用性（データベース・アプリケーションが構築済み、ライセンス供与済み）などに応じて適宜選択することができる。
【００８０】
なお、本実施形態で、データベース１０６を管理するデータベース・サーバをプロキシ・サーバとして用いる場合、ＲＡＷ＿ＴＡＢＬＥ内に、形態素トークンおよびＮグラム・トークンに対応付けられたＴＯＫ＿ＩＤ、ＰＯＳ＿ＩＤなどのPosting Listを構成するデータを照会集合として含ませ、より詳細に後述するＴＥＭＰ＿ＴＡＢＬＥや、ＲＥＳＵＬＴ＿ＴＡＢＬＥのエントリ・フィールドに記入したデータ構造とすることができる。この実施形態では、サーバ１０４が、都度リモート・プロキシが管理するべき索引リストをネットワーク１０８を介して参照する必要が排除でき、より高い処理効率で検索結果の表示処理を実行することができる。
【００８１】
さらに他の実施形態では、照会文７０６で示されるように、ＵＮＩＯＮ  ＡＬＬで結果を結合するのではなく、データベース１０６に登録された情報量が少ない場合など、ハードウェア資源が許容する限り、並列照会によりＲＡＷ＿ＴＡＢＬＥを作成し、ＲＡＷ＿ＴＡＢＬＥに対してさらに他の検索トークンによる並列照会を行うという、シーケンシャルな検索処理を適用し、照会集合を生成することも可能である。
【００８２】
図８は、図６および図７で説明した処理にしたがって生成された中間結果集合から、クライアント１０２に対して表示させるための結果集合の生成処理を示す。中間結果集合８００は、ＴＥＭＰ＿ＴＡＢＬＥとして生成され、情報を指定するための情報識別値を登録するフィールド８０２と、当該情報識別値で指定される情報の検索語（列）に関連付けられたスコア合計値を登録するフィールド８０４とを含んでおり、それぞれのフィールド８０２、８０４に情報識別値と当該情報のスコア合計とがレコードとして登録されている。
【００８３】
クライアント１０２に対して検索結果を表示する場合には、特定の実施形態では、中間結果集合８００から、スコア合計により中間結果集合８００をソーティングして結果集合８１０を生成し、結果集合８１０のエントリ順で、クライアント１０２に対して検索結果として表示する。この処理は、照会処理部２１２により実行される。結果集合８１０の形式で結果を処理した場合、照会処理部２１２は、結果集合８１０をテーブル形式で、検索結果作成部２１４に送付する。また、他の実施形態では、照会処理部２１２は、明示的に結果集合８１０を作成することなく、中間結果集合８００から、スコア合計順に検索結果作成部２１４にＣＳＶ、カンマ区切り、スペース区切りなどのフォーマットでレコード・データを送付する処理を実行することもできる。
【００８４】
いずれの実施形態でも、検索結果作成部２１４が受領したデータを使用して、検索結果作成部２１４は、情報の格納されているＵＲＩ、ＵＲＬ、またはパス名などを取得し、その後、情報の文書データを参照してサマリーを作成して、情報の参照およびサマリーを別々に表示可能なフォーマットとして検索結果を作成する。さらに、検索結果作成部２１４は、サマリーに対して検索語をハイライト表示するハイライト処理を行い、クライアント１０２への表示可能なフォーマットとして、検索結果を作成する。
【００８５】
図９は、本検索システムが実行するトークン並列検索処理によるヒット率向上の実施形態を、従来例と比較して示す。図９（ａ）が、Federation型またはＮグラム・ベースの単語境界型など、形態素トークンおよびＮグラム・トークンを分離して検索させる場合の比較例である。また、図９（ｂ）が、本実施形態により、形態素トークンおよびＮグラム・トークンを連結して検索する場合の実施形態である。
【００８６】
図９（ａ）に示すように、比較例では、形態素トークンが、検索語トークン「都庁」を含んでいない場合には、当該検索語トークンについてはミスヒットと判定され、当該情報が検索結果から除外されるか、またはミスヒットを反映して表示ランクが降下することになる。一方、本実施形態では、検索トークンとして、形態素解析およびＮグラム法により生成された両方の検索語トークンを使用して検索を実行する。図９（ｂ）に示した実施形態では、形態素解析による検索語トークン「都庁」と、Ｎグラム法による「都庁」とが並列的に使用され、情報の検索が実行される。情報は、形態素トークンおよびＮグラム・トークンで索引付けされており、また検索は、形態素解析およびＮグラム法により生成された検索語トークンをＯＲ連結して実行される。この結果、検索トークンは、善美ヒットし、この結果、形態素解析と、Ｎグラム法の各トークンを独立して検索させるよりも、ヒット率または表示ランクを昇位させることが可能となる。
【００８７】
なお、図９に示した実施形態では、検索語トークン「取り扱い」、「時間」について、形態素トークンにより索引付けされているものとして説明した。しかしながら、辞書メンテナンス周期や用語の斬新性などによっては、検索結果が完全にミスヒットとなり、検索結果から排除される情報もある。この場合でも、本実施形態の検索システムでは、辞書メンテナンスや用語の斬新性などに依存することなく、その時点でサーバ１０４に登録されている情報に基づいて、形態素解析およびＮグラム法の特徴を効果的に統合した高精度の検索が可能となる。
【００８８】
さらに、本実施形態では、形態素トークンおよびＮグラム・トークンでそれぞれ索引付けされた索引リストを使用することなく、索引リストのデータ量を削減でき、さらに、ハイライト処理を可能とすることが可能となる。
【００８９】
図１０は、検索結果作成部２１４が実行する検索結果作成処理の実施形態のフローチャートを示す。処理は、ステップＳ１０００から開始し、ステップＳ１００１で情報についてＮグラム・トークン列からサマリーを生成する。サマリーは、情報が含む文字列の中から最も早くに特定の検索語を含む文字列を所定長さ分だけ抽出し、それぞれをテキストエディタなどで結合して生成することができる。また、他の実施形態では、所定長さの文字列内にヒットした検索語の出現頻度が高い文字列を任意的に抽出して適宜結合することによっても生成することができる。サマリーをＮグラム・トークン列から生成するのは、ハイライト表示の処理で、位置情報を正確に取得し、かつ形態素およびＮグラムごとのヒットおよび両方のヒットのマッピングを容易にするためである。ステップＳ１００２では、ヒットした形態素トークンのトークン識別値（ＴＯＫ＿ＩＤ）のうち、サマリーに含まれる形態素トークンの、情報に含まれる文書データの絶対位置を示すＰＯＳ＿ＩＤを取得する。
【００９０】
ステップＳ１００３では、形態素トークンのＰＯＳ＿ＩＤをサマリーに含まれるＮグラム・トークンのトークン識別値（ＴＯＫ＿ＩＤ）にマッピングして、両方のトークンの位置を照合する。
【００９１】
ステップＳ１００４では、形態素トークンの範囲でＮグラム・トークンもヒットしているか否かをマッピング結果を使用して判断する。なお、一部が重合する場合でも、両トークンの重合として判断し、この場合、意味的により認識しやすい可能性がある形態素トークンの範囲をヒットとして設定する。ステップＳ１００４の判断で、両方ヒットとして判断された場合、ステップＳ１００５で両方のヒットを示すハイライト表示である第１ハイライト表示を、形態素トークンに対応する検索語の範囲の文字色、背景色、フォントなどの文字表示フォーマットを変更するなどの設定によりサマリーの属性情報として登録する。
【００９２】
また、形態素トークンのみがヒットした場合、ステップＳ１００７で形態素トークンのみがヒットしたことに対応する文字色などの文字表示フォーマットに設定して、対応する検索語に関して第２ハイライト表示としたサマリーの属性情報を登録する。さらに、Ｎグラム・トークンのみがヒットした場合、ステップＳ１００８でＮグラム・トークンのみがヒットしたことを示すように対応する検索語を第３ハイライト表示を与えるための属性情報を、サマリーに追加設定する。なお、他の実施形態では、検索者が入力した検索語をハイライト表示させるのではなく、検索語が含む形態素トークンを、表現の揺れに対応した形式で表示させることもできる。
【００９３】
ステップＳ１００６では、ハイライト処理したサマリーを検索結果である情報のＵＲＩまたはパス名と共に表示する構造化文書など、適切なフォーマットの結果表示を作成し、ネットワーク・アダプタ２０２を介してクライアント１０２に対して送信し、クライアント１０２のディスプレイ画面上に表示させ、ステップＳ１００９で処理を終了する。
【００９４】
図１１は、本実施形態で、情報が含む文書データのサマリーに対してハイライト表示を行う実施形態を示す。図１１に示すように、クライアント１０２のディスプレイ画面上には、ウィンドウ１１００が表示され、ウィンドウ１１００の内側に検索語入力フィールド１１０２および検索実行ボタン１１０４が表示されている。図１１に示した実施形態では、ユーザは、まず、サーバ１０４にアクセスし、検索エンジンの入力画面を取得する。なお、この場合、検索エンジンへのアクセスを制限する必要がある場合、パスワードおよびユーザＩＤなどのセットでアクセス制限してもよい。
【００９５】
ユーザは、図１１に示された検索画面の検索語入力フィールド１１０２に検索語を入力する。図示した実施形態では、検索語は、検索語間にスペースを挿入することにより、検索語列として識別される。この他、情報を検索する領域、例えば、メタデータ、タイトル、本文など検索範囲毎に入力フィールドを設け、それぞれＡＮＤまたはＯＲの検索語入力を可能とすることができる。図１１に示した実施形態では、検索語列は、「コンピューター」、「デイトレ」、「東京市場」である。
【００９６】
その後、ユーザが検索実行ボタン１１０４をクリックして検索語（列）を、検索要求と共にサーバ１０４に送信する。検索要求を受領したサーバ１０４は、検索処理部２０６を起動し、検索語（列）を解析し、データベース管理部２０４を呼出して検索を実行させ、検索結果作成部２１４により検索結果を生成させ、検索結果は、結果を表示させるためのファイルを生成するために使用される。生成された検索結果は、サーバ１０４からクライアント１０２へと送信され、クライアント１０２のディスプレイ画面上に図１１に示されたＧＵＩ(Graphical User Interface)として表示される。図１１では、検索対象とされた情報のＵＲＩまたはパス名がリンク可能に表示され、その下側のテキスト表示フィールドに、情報が含む文書データのサマリーが表示されている。なお、検索結果を表示させるためのファイルは、ＨＴＭＬ、ＸＭＬなどこれまで知られた、いかなる構造化文書とすることができる。また、他の実施形態で、ウェブ・サービスではなく分散コンピューティングを使用してシステムを構築する場合、検索された情報にリンク可能であり、かつハイライトを付することができるいかなるファイルとして検索結果を生成させることができる。
【００９７】
表示されたサマリーは、検索時のヒット状態に対応してトークン間の一致レベルに対応して、第１ハイライト表示から第３ハイライト表示として、文書データが含むトークンのうち、検索トークンがヒットした領域の形態素トークンを、表現の揺れがある場合には表現の揺れに対応するトークンを使用して示されている。例えば、Ｎグラム・トークンのみのヒットは、ヒットしたＮグラム・トークンの検索トークンの領域に対応する形態素トークンが第３ハイライト表示１１０６で示されている。また、図１１に示した実施形態では、形態素トークンのみのヒットは、形態素トークンに相当する表現の揺れを含めた検索トークンの領域が第２ハイライト表示１１０８で示されている。なお、図１１の実施形態では、「コンピュータ」が辞書に登録されており、検索語「コンピューター」の末尾の長音が一致しておらず、Ｎグラム・トークンのヒットとは判定されていない。一方、検索語「コンピューター」は、揺れの範囲として、形態素トークンが一致するものとしてヒットの値が返されることになる。
【００９８】
さらに、形態素トークンおよびＮグラム・トークンの両方がヒットした場合には、対応する形態素トークンの領域が、第１ハイライト表示１１１０として表示されている。図１１に示した実施形態の場合、形態素トークンとして「東京市場」が登録され、東京市場に一致するＮクラム・トークンも全部ヒットしているので、形態素トークンに対して、第１ハイライト表示が重畳されて表示されている。第１ハイライト表示、第２ハイライト表示、第３ハイライト表示は、ユーザに対して検索結果の信頼度を示すため、第１ハイライト表示を最も心理的に印象づける色調、文字サイズ、背景色などのフォーマットとし、順次第２ハイライト表示、第３ハイライト表示へと心理的効果が低い表示フォーマットとすることができる。
【００９９】
本実施形態では、検索結果に、形態素トークンおよびＮグラム・トークンを並列的に含めて、両方についてコンフィデンシャルなランク付けを行うことができるので、検索語に対する忠実度を向上させると共に、検索漏れを最小限とし、辞書メンテナンスの状態や斬新な用語、特殊な用語への対応も可能となる。また、図１１に示した実施形態で、検索結果のランク付けと共にハイライト表示を行うことで、ユーザが、検索結果に満足せず、画面をプルダウンする操作を低減させることができ、検索エンジンに対してユーザの満足度をささらに向上させることが可能となる。
【０１００】
以上説明したように、本発明によれば、文字列の解析方法を等価的に含めて情報検索を可能とするので、情報が含む文字列により即した情報検索を可能とする検索システム、検索方法およびプログラムを提供することができる。また、本発明では、特定の実施形態として文字列解析方法について形態素解析およびＮグラム法を使用して説明した。しかしながら、特定の言語により適切な文字列解析方法が存在する場合、形態素解析、Ｎグラム法の他、特定の言語に最適な文字列解析方法での索引付けおよび検索処理も可能であることは、当業者であれば、容易に想到することができるものである。このような、言語としては、例えば、中国語、日本語、韓国語など、いわゆるＣＪＫ(Chinese, Japanese, Korean)として参照される、アルファベット以外の文字を使用する言語、アラビア語などなどを挙げることができるが、本発明は、上述した以外の言語についても適用可能である。
【０１０１】
なお、本発明につき、発明の理解を容易にするために各機能手段および各機能手段の処理を記述したが、本発明は、上述した特定の機能手段が特定の処理を実行する外、処理効率や実装上のプログラミングなどの効率を考慮して、いかなる機能手段に、上述した処理を実行するための機能を割当てることができる。
【０１０２】
本発明の上記機能は、Ｃ＋＋、Ｊａｖａ（登録商標）、Ｊａｖａ（登録商標）Ｂｅａｎｓ、Ｊａｖａ（登録商標）Ａｐｐｌｅｔ、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、Ｐｅｒｌ、Ｒｕｂｙなどのオブジェクト指向プログラミング言語、ＳＱＬなどの検索専用言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布または伝送して頒布することができる。
【０１０３】
これまで本発明を、特定の実施形態をもって説明してきたが、本発明は、実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【０１０４】
【図１】本実施形態の検索システムの機能ブロック図。
【図２】本実施形態のサーバ１０４上に実現される検索システム１００の機能ブロック図。
【図３】本実施形態におけるデータベース管理部２０４、形態素トークン生成部２１６、Ｎグラム・トークン生成部２１８および索引生成部２２０の処理を、各処理により生成されるデータ構造と共に示した概略図。
【図４】索引リスト３０６の生成処理を、フローチャートとして示した実施形態を示した図。
【図５】図４のステップＳ４０４の処理の詳細を示すフローチャート。
【図６】検索システムが実行する検索方法のフローチャート。
【図７】図６の処理を、データベース・アプリケーションを使用し、ＳＱＬ文を使用して実装する場合の実施形態を示した図。
【図８】図６および図７で説明した処理にしたがって生成された中間結果集合から、クライアントに対して表示させるための結果集合の生成処理を示した図。
【図９】本検索システムが実行するトークン並列検索処理によるヒット率向上の実施形態を、従来例に比較して示した図。
【図１０】検索結果作成部２１４が実行する検索結果作成処理の実施形態のフローチャート。
【図１１】本実施形態で、情報が含む文書データのサマリーに対してハイライト表示を行う実施形態を示した図。
【図１２】従来の形態素解析法およびＮグラム法を使用する検索情報の照会処理を示した図。
【符号の説明】
【０１０５】
１００…検索システム、１０２…クライアント・コンピュータ（クライアント）、１０４…サーバ、１０６…データベース、１０８…ネットワーク、１１０…データベース・サーバ、１１２…データベース、２００…機能ブロック（サーバ）、２０２…ネットワーク・アダプタ、２０４…データベース管理部、２０６…検索処理部、２０８…照会文生成部、２１０…照会文発行部、２１２…照会処理部、２１４…検索結果作成部、２１６…形態素トークン生成部、２１８…Ｎグラム・トークン生成部、２２０…索引生成部、２３０…検索エンジン、３０６…索引リスト、３０８…索引データ
【図１】
0005224851.tif 000003
【図２】
0005224851.tif 000004
【図３】
0005224851.tif 000005
【図４】
0005224851.tif 000006
【図５】
0005224851.tif 000007
【図６】
0005224851.tif 000008
【図７】
0005224851.tif 000009
【図８】
0005224851.tif 000010
【図９】
0005224851.tif 000011
【図１０】
0005224851.tif 000012
【図１１】
0005224851.tif 000013
【図１２】
0005224851.tif 000014