(57)【要約】      （修正有）【課題】検索の漏れをなくしつつ、適切な検索結果を与えることのできる検索技術を提供する。【解決手段】検索に使用する索引を構築する際に、１つの文書を形態素解析とＮグラム方式の２つの方式によってトークン分割し、複数のトークン分割結果より全トークンの境界を計算し、各トークンの出現位置情報と次に続くトークンの出現位置情報を計算し、索引付けを行う。次に、コンピュータ・システムは、元文書の復元およびヒット位置の強調表示のために、複数のトークン分割結果から算出した全トークン境界からなるトークン列を保管する。この時、各トークンの開始位置番号、終了位置番号と共に保管する。検索にあたっては、ユーザーが入力した検索語をそれぞれのトークン分割方法によって分割し、出来上がったトークン列をORで結合して検索を行う。これによってどちらかのトークン列が一致した場合には検索結果に含まれるため、検索漏れを防ぐことができる。【選択図】図５
2010250389.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータの処理により、記憶装置に格納された文書を検索するための索引作成システムであって、
前記文書を読み込んで、第１の分割手法でトークンを生成する第１のトークン分割部と、
前記文書を読み込んで、前記第１の分割手法とは異なる、第２の分割手法でトークンを生成する第２のトークン分割部と、
前記生成したトークンの各々に、前記文書中の開始位置と終了位置を付与して前記記憶装置に索引として格納する手段を有する、
索引作成システム。
【請求項２】
前記第１の分割手法が、形態素解析手法であり、前記第２の分割手法が、Ｎグラム手法である、請求項１の索引作成システム。
【請求項３】
前記第１及第２のトークン分割手法で得られた全トークン境界を元にしたトークン列を、各トークンの開始位置番号、終了位置番号と共に保管する元文書復元用トークンを生成して前記記憶装置に格納する手段をさらに有する、請求項１の索引作成システム。
【請求項４】
コンピュータの処理により、記憶装置に格納された文書を検索するための索引作成方法であって、
前記文書を読み込んで、第１の分割手法でトークンを生成するステップと、
前記文書を読み込んで、前記第１の分割手法とは異なる、第２の分割手法でトークンを生成するステップと、
前記生成したトークンの各々に、前記文書中の開始位置と終了位置を付与して前記記憶装置に索引として格納するステップを有する、
索引作成方法。
【請求項５】
前記第１の分割手法が、形態素解析手法であり、前記第２の分割手法が、Ｎグラム手法である、請求項４の索引作成方法。
【請求項６】
前記第１及第２のトークン分割手法で得られた全トークン境界を元にしたトークン列を、各トークンの開始位置番号、終了位置番号と共に保管する元文書復元用トークンを生成して前記記憶装置に格納するステップをさらに有する、請求項４の索引作成方法。
【請求項７】
コンピュータの処理により、記憶装置に格納された文書を検索するための索引作成プログラムであって、
前記コンピュータをして、
前記文書を読み込んで、第１の分割手法でトークンを生成するステップと、
前記文書を読み込んで、前記第１の分割手法とは異なる、第２の分割手法でトークンを生成するステップと、
前記生成したトークンの各々に、前記文書中の開始位置と終了位置を付与して前記記憶装置に索引として格納するステップを実行させる、
索引作成フログラム。
【請求項８】
前記第１の分割手法が、形態素解析手法であり、前記第２の分割手法が、Ｎグラム手法である、請求項７の索引作成プログラム。
【請求項９】
前記第１及第２のトークン分割手法で得られた全トークン境界を元にしたトークン列を、各トークンの開始位置番号、終了位置番号と共に保管する元文書復元用トークンを生成して前記記憶装置に格納するステップをさらに有する、請求項７の索引作成プログラム。
【請求項１０】
コンピュータの処理により、記憶装置に格納された文書を検索するための検索システムであって、
前記文書を読み込んで、第１の分割手法で生成された第１のトークンと、前記第１の分割手法とは異なる第２の分割手法で生成されたトークンとに、前記文書中の開始位置と終了位置を付与して前記記憶装置に保管された索引ファイルと、
検索すべき文字列を受け入れる手段と、
前記受け入れられた文字列を、前記第１の分割手法と前記第２の分割手法で分割することにより、複数の検索すべきトークンを得る手段と、
前記検索すべきトークンにより、前記検索ファイルを検索することにより、検索結果として、個々の前記トークンを含む文書の和集合を計算する手段とを有する、
検索システム。
【請求項１１】
前記第１の分割手法が、形態素解析手法であり、前記第２の分割手法が、Ｎグラム手法である、請求項１０の検索システム。
【請求項１２】
前記第１及第２のトークン分割手法で得られた全トークン境界を元にしたトークン列を、各トークンの開始位置番号、終了位置番号と共に前記記憶装置に保管された元文書復元用トークンのファイルと、該元文書復元用トークンから元文書を復元するための元文書復元部をさらに有する、請求項１０の検索システム。
【請求項１３】
コンピュータの処理により、記憶装置に格納された文書を検索するための検索方法であって、
前記文書を読み込んで、第１の分割手法で生成された第１のトークンと、前記第１の分割手法とは異なる第２の分割手法で生成されたトークンとに、前記文書中の開始位置と終了位置を付与して前記記憶装置に保管された索引ファイルを用意するステップと、
検索すべき文字列を受け入れるステップと、
前記受け入れられた文字列を、前記第１の分割手法と前記第２の分割手法で分割することにより、複数の検索すべきトークンを得るステップと、
前記検索すべきトークンにより、前記検索ファイルを検索することにより、検索結果として、個々の前記トークンを含む文書の和集合を計算するステップとを有する、
検索方法。
【請求項１４】
前記第１の分割手法が、形態素解析手法であり、前記第２の分割手法が、Ｎグラム手法である、請求項１３の検索方法。
【請求項１５】
前記第１及第２のトークン分割手法で得られた全トークン境界を元にしたトークン列を、元文書復元用トークンとして、各トークンの開始位置番号、終了位置番号と共に前記記憶装置に保管するステップと、該元文書復元用トークンから元文書を復元するためのステップをさらに有する、請求項１３の検索方法。
【請求項１６】
コンピュータの処理により、記憶装置に格納された文書を検索するための検索プログラムであって、
前記コンピュータをして、
前記文書を読み込んで、第１の分割手法で生成された第１のトークンと、前記第１の分割手法とは異なる第２の分割手法で生成されたトークンとに、前記文書中の開始位置と終了位置を付与して前記記憶装置に保管された索引ファイルを用意するステップと、
検索すべき文字列を受け入れるステップと、
前記受け入れられた文字列を、前記第１の分割手法と前記第２の分割手法で分割することにより、複数の検索すべきトークンを得るステップと、
前記検索すべきトークンにより、前記検索ファイルを検索することにより、検索結果として、個々の前記トークンを含む文書の和集合を計算するステップを実行させる、
検索プログラム。
【請求項１７】
前記第１の分割手法が、形態素解析手法であり、前記第２の分割手法が、Ｎグラム手法である、請求項１６の検索プログラム。
【請求項１８】
前記第１及第２のトークン分割手法で得られた全トークン境界を元にしたトークン列を、元文書復元用トークンとして、各トークンの開始位置番号、終了位置番号と共に前記記憶装置に保管するステップと、該元文書復元用トークンから元文書を復元するためのステップをさらに有する、請求項１６の検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンピュータの記憶装置に蓄積されたテキスト情報などを情報検索する技術に関するものである。
【背景技術】
【０００２】
近年のコンピュータやインターネットの普及などの理由で、ニュース、ブログ、その他のテキストのコンテンツなど、膨大な数の非定型文書が作られるようになり、必要な文書を高速かつ的確に検索できる検索システムの必要性が高まっている。
【０００３】
大量の文章からユーザーが意図した文書を的確に検索するためには、言語の特定や文章の解析を行って単純な文字列一致よりも高精度な検索を実現しているが、日本語などの区切りが明確ではない言語や、日本語やドイツ語など多くの言語に見られる複合語などは、テキスト検索索引の性格上の問題で効率的に利用できないのが現状である。
【０００４】
従来より、このような複合語に対処する典型的な技法として、形態素解析手法と、Ｎグラム解析手法が知られている。
【０００５】
文書の解析に形態素解析手法を利用した場合には、文法や語彙を考慮するため、より検索ユーザーの入力した検索語の意味に近い文書を結果の上位にすることができるが、ユーザーの入力した検索語によっては異なるトークン分割が行われる可能性があるため検索漏れが発生する。
【０００６】
一方、文書の解析にＮグラム解析手法を利用した場合には、検索漏れは生じないが、文法や語彙を考慮しないため検索結果のランキングに、これらの要素を考慮することができない。
【０００７】
これら両手法の問題点を補うために、両手法を用いて作成した検索索引を同時に持ち、結果を統合するような方法も考えられるが、索引だけでなく、要約文作成などのためのトークン列も二重に記憶しなければならないなど効率的ではない。
【０００８】
ここで、典型的な従来技術について、もう少し詳しく説明する。すなわち、従来の検索システムでは、元文書およびユーザーの入力した文章をある単位（以下、トークン）に分割し、そのトークン同士が一致するかどうかで検索結果にその文書を含めるかどうかを判断している。トークンを inverted index （逆引き索引）に格納する際に、元文書内でのトークンの出現順に位置番号を与えて保持する。
【０００９】
そのトークンを作成する際、主に２つの手法が使用されている。１つは、上述の形態素解析で、文章を意味のある単語単位に分割し、その単語をトークンとする方法である。もう１つは、これも上述したＮグラムと呼ばれる方法で、文字をＮ文字ごとに、重なりを考慮して分割する。
【００１０】
形態素解析は辞書を用い、意味のある分割を行い、単語の活用なども考慮できるために高品質な検索が行える半面、辞書にない単語は分割できなかったり、誤った単語分割を行ってしまうことで、たとえ検索文字列とまったく同じ単語が含まれている文書でも検索結果から漏れるという欠点がある。
【００１１】
Ｎグラム技法は、逆に機械的に分割を行うため、検索文字列と完全に一致していれば検索結果に含めることができるが、逆に部分一致（「東京都」に対して「京都」で一致）してしまうノイズや、単語の活用などは対応できないという欠点がある。従来の技法では、一般的には、これら２つの手法を択一で採用するため、どちらにも長所、短所があり、十分な検索品質を提供できていない場合が多い。それぞれの手法で作成した索引に対しての検索をそれぞれ別に行い、結果を合成する手法が用いられることもあるが、合成の仕方が非常に複雑になる上にコストもかかる。また、Ｎグラムに形態素の単語境界の情報を記録してランキングの精度を向上させる手法もよく知られているが、この手法では形態素の大きな特徴である活用や表記の”ゆれ”などを拾うことができず、優れた解決方法とは言えない。
【００１２】
特開平１１−２０４８６７号公報は、Ｎグラムをベースに、単語境界の情報をそれぞれのＮグラムに記憶することで、検索の精度を向上させる手法を開示する。この手法では、単語分割とＮグラム分割で使用する文字列がまったく同一でなくてはならないため、形態素解析の特徴である活用や表記のゆれを考慮した検索を行うことができない。更には、この技法においては、実際に文書が保管されている場所より元文書を取得することなく、ユーザーに検索した文書の内容を表示する方法や、ユーザーが要求に合う文書を実際に文書全体を読まずに判断できるよう、検索結果に含まれた文書に対してユーザーの検索要求に即した要約を作成し検索結果に含める方法がよく利用される。その場合に、実際の元文書を取得することなく高速に要約を作成するために、索引時に元文書のトークン分割結果を保持しておくことにより、検索結果提示時に元文書を再現し、検索索引から取得したヒット位置から、再現された元文書内での位置を計算し、その箇所を強調表示するという方法が使用されている。しかし、形態素解析とＮグラム解析手法など幾つかの解析手法を使用する場合は異なるトークン分割結果を生じることとなり、検索索引では、トークンの出現順に位置番号を与えて保持しているため、それぞれのトークン分割結果を個別に記憶しなければならず、また、検索結果も、それぞれの方法で生成した後に結果を統合しなければならず、効率的ではない。
【００１３】
特開平８−２４９３４６号公報は、文書の索引での単語並び、および、元文書での表記と索引の単語表記が異なる場合に単語を再生するためのインデックスを持つことで、元文書の復元、および、ヒット位置の強調表示を可能とする技術を開示する。一つのトークン分割列（主に形態素解析）を取り扱うための手法であり、この手法では複数のトークン分割手法を用いた場合には元文書の復元およびヒット位置の強調表示を行うことができない。
【００１４】
特開２００６−９９４２７公報に開示の手法においては、あらかじめ、Ｎグラムインデックスと形態素インデックスの二つが作成される。そうして、検索要求の処理に際して、Ｎグラムインデックスによる一次検索（正確ではないが高速）のヒット数と形態素インデックスによる検索のヒット数の近似度を判定し、近似している場合にはＮグラムインデックスによる二次検索（正確だが一次検索おり低速）を省略することで、検索精度をある程度確保しながら、全文検索の高速化を図る手法である。この手法では、一旦近似度を判定することが必要である。
【００１５】
本出願に係る特願２００８−４６５８２号明細書には、ある基準となる一つの分割方法により生成されたトークン列に、その他の分割方法で生成されたトークン列をマッピングし、マッピングに必要となる情報を各トークンに付加することで、複数の分割方法を同時に使用した検索システムを構築する方法が記載されている。しかし、この方法は、基準となる分割方法が無い場合には適用することができない。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開平１１−２０４８６７号公報
【特許文献２】特開平８−２４９３４６号公報
【特許文献３】特開２００６−９９４２７公報
【特許文献４】特願２００８−４６５８２号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１７】
従って、この発明の目的は、検索の漏れをなくしつつ、適切な検索結果を与えることのできる検索技術を提供することにある。
【課題を解決するための手段】
【００１８】
本発明は、上記目的を達成するために、少なくとも２つのトークン分割の手法を利用する。本発明はこれには限定されないが、好適には形態素解析とＮグラム方式という、２つの手法が用いられる。
【００１９】
本発明に従うコンピュータ・システムは先ず、検索に使用する索引を構築する際に、１つの文書をそれぞれの方式によってトークン分割する。そして、複数のトークン分割結果より全トークンの境界を計算し、各トークンの出現位置情報と次に続くトークンの出現位置情報を計算し、索引付けを行う。
【００２０】
次に、コンピュータ・システムは、元文書の復元およびヒット位置の強調表示のために、複数のトークン分割結果から算出した全トークン境界からなるトークン列を保管する。この時、各トークンの開始位置番号、終了位置番号と共に保管する。
【００２１】
検索にあたっては、コンピュータ・システムは、ユーザーが入力した検索語をそれぞれのトークン分割方法によって分割し、出来上がったトークン列を OR で結合して検索を行う。これによってどちらかのトークン列が一致した場合には検索結果に含まれるため、検索漏れを防ぐことができる。
【００２２】
コンピュータ・システムが元文書の復元およびヒット位置の強調表示を行う際には、ヒットしたトークンの位置情報および次に続くトークンの出現位置情報を使用することで、複数のトークン分割が行われていても、保管している全トークン境界からなるトークン列より元文書の復元およびヒット位置の強調表示を正確に効率よく行うことができる。
【発明の効果】
【００２３】
以上のように、本発明によれば、形態素解析とＮグラム解析手法などの複数のトークン分割手法を組み合わせることにより、ある検索語が複数のトークン分割方法により、複数のトークン列に展開されるような場合にも正しく検索を行うことができる。また、文書をトークン分割した際に、形態素解析とＮグラム解析手法によるものなど、複数候補が考えられる場合においても、両者の結果を個別に保持することなく、かつ、元文書の復元及びヒット位置の強調表示を正確に行うことができる。
【図面の簡単な説明】
【００２４】
【図１】インターネットを介して複数のクライアント・コンピュータがウェブ・サーバに接続される構成を示す図である。
【図２】クライアント・コンピュータの構成を示すブロック図である。
【図３】ウェブ・サーバの構成を示すブロック図である。
【図４】論理構成の機能ブロック図である。
【図５】索引作成処理のフローチャートを示す図である。
【図６】複数の分割方法を適用する処理を示す図である。
【図７】保留中トークンから、元文書復元用と索引用トークンを出力する処理のフローチャートを示す図である。
【図８】索引用トークンの例を示す図である。
【図９】元文書復元用トークン列の例を示す図である。
【図１０】検索処理のフローチャートを示す図である。
【図１１】元文書復元処理のフローチャートを示す図である。
【図１２】検索結果の重要度計算の例を示す図である。
【発明を実施するための形態】
【００２５】
以下、図面を参照して、本発明の実施例を説明する。特に断わらない限り、同一の参照番号は、図面を通して、同一の対象を指すものとする。また、以下で説明するのは、本発明の検索システムを、Ｗｅｂサーバ上で使用する実施例であるが、これは本発明の一実施形態であり、スタンドアロンのコンピュータ上でも同様に実施可能であることを理解されたい。
【００２６】
図１において、ウェブ・サーバ１０２には、インターネット１０４を介して、複数のクライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚが接続されている。図１のシステムにおいては、クライアント・コンピュータのユーザは、Ｗｅｂブラウザを通じて、インターネット１０４の回線を介して、ウェブ・サーバ１０２に、ログインする。具体的には、所定のＵＲＬをＷｅｂブラウザに打ち込んで、所定のページを表示する。なお、Ｗｅｂブラウザではなく、所定の専用クライアント・アプリケーション・プログラムを使ってログ・インするようにしてもよい。
【００２７】
クライアント・コンピュータのユーザは、インターネット１０４を経由してウェブ・サーバ１０２にアクセスすると、所望のキーワードを打ち込んで、文書の検索を行う。
【００２８】
次に、図２を参照して、図１で参照番号１０６ａ、１０６ｂ・・・１０６ｚのように示されているクライアント・コンピュータのハードウェア・ブロック図について、説明する。図２において、クライアント・コンピュータは、メイン・メモリ２０６、ＣＰＵ２０４、ＩＤＥコントローラ２０８をもち、これらは、バス２０２に接続されている。バス２０２には更に、ディスプレイ・コントローラ２１４と、通信インターフェース２１８と、ＵＳＢインターフェース２２０と、オーディオ・インターフェース２２２と、キーボード・マウス・コントローラ２２８が接続されている。ＩＤＥコントローラ２０８には、ハードディスク・ドライブ（ＨＤＤ）２１０と、ＤＶＤドライブ２１２が接続されている。ＤＶＤドライブ２１２は、必要に応じて、ＣＤ−ＲＯＭやＤＶＤから、プログラムを導入するために使用する。ディスプレイ・コントローラ２１４には、好適には、ＬＣＤ画面をもつディスプレイ装置２１６が接続されている。ディスプレイ装置２１６には、ウェブ・ブラウザを通じて、ウェブの画面が表示される。
【００２９】
ＵＳＢインターフェース２２０には、必要に応じて、専用コントローラ、加速度センサ・デバイスなどのデバイスを接続をすることができる。これらのデバイスは、ウェブ内での操作性を向上するために使用することができる。
【００３０】
キーボード・マウス・コントローラ２２８には、キーボード２３０と、マウス２３２が接続されている。キーボード２３０は、ユーザーが検索したい文字を、ディスプレイ２１６に表示された検索用のダイアログ（図示しない）に打ち込んだりするために使用される。
【００３１】
ＣＰＵ２０４は、例えば、３２ビット・アーキテクチャまたは６４ビット・アーキテクチャに基づく任意のものでよく、インテル社のＰｅｎｔｉｕｍ（インテル・コーポレーションの商標）４、Ｃｏｒｅ（商標）２  Ｄｕｏ、ＡＭＤ社のＡｔｈｌｏｎ（商標）などを使用することができる。
【００３２】
ハードディスク・ドライブ２１０には、少なくとも、オペレーティング・システムと、オペレーティング・システム上で動作するＷｅｂブラウザ（図示しない）が格納されており、システムの起動時に、オペレーティング・システムは、メインメモリ２０６にロードされる。オペレーティング・システムは、Ｗｉｎｄｏｗｓ  ＸＰ（マイクロソフト・コーポレーションの商標）、Ｗｉｎｄｏｗｓ  Ｖｉｓｔａ（マイクロソフト・コーポレーションの商標）、Ｌｉｎｕｘ（Linus Torvaldsの商標）などを使用することができる。
【００３３】
通信インターフェース２１８は、オペレーティング・システムが提供するＴＣＰ／ＩＰ通信機能を利用して、イーサネット（商標）・プロトコルなどにより、ウェブ・サーバ１０２と、通信する。
【００３４】
図３は、ウェブ・プロバイダ側のハードウェア構成の概要ブロック図である。図３に示すように、クライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚは、インターネット１０４を経由して、ウェブ・サーバ１０２の通信インターフェース３０２に接続される。通信インターフェース３０２はさらに、バス３０４に接続され、バス３０４には、ＣＰＵ３０６、主記憶（ＲＡＭ）３０８、及びハードディスク・ドライブ（ＨＤＤ）３１０が接続されている。
【００３５】
図示しないが、ウェブ・サーバ１０２にはさらに、キーボード、マウス、及びディスプレイが接続され、これらによって、ウェブ・サーバ１０２全体の管理やメンテナンス作業を行うようにしてもよい。
【００３６】
ウェブ・サーバ１０２のハードディスク・ドライブ３１０には、オペレーティング・システム、クライアント・コンピュータクライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚのログイン管理のための、ユーザＩＤとパスワードの対応テーブルが保存されている。ハードディスク・ドライブ３１０にはさらに、ウェブ・サーバ１０２をＷｅｂサーバとして機能させるためのＡｐａｃｈｅなどのソフトウェアが保存され、ウェブ・サーバ１０２の立ち上げ時に、主記憶３０８にロードされて、動作する。これによって、クライアント・コンピュータ１０６ａ、１０６ｂ・・・１０６ｚが、ＴＣＰ／ＩＰのプロトコルで、ウェブ・サーバ１０２にアクセスすることが可能となる。
【００３７】
後で詳しく説明するが、ハードディスク・ドライブ３１０には、検索される文書のコンテンツ、文書のインデックス、インデックス作成用モジュール、検索用モジュールなどが保存され、必要に応じて、主記憶３０８にロードされる。
【００３８】
尚、上記ウェブ・サーバ１０２として、インターナョナル・ビジネス・マシーンズ・コーポレーションから購入可能な、ＩＢＭ（インターナョナル・ビジネス・マシーンズ・コーポレーションの商標）Ｓｙｓｔｅｍ  Ｘ、Ｓｙｓｔｅｍ  ｉ、Ｓｙｓｔｅｍ  ｐなどの機種のサーバを使うことができる。その際、使用可能なオペレーティング・システムは、ＡＩＸ（インターナョナル・ビジネス・マシーンズ・コーポレーションの商標）、ＵＮＩＸ（The Open Groupの商標）、Ｌｉｎｕｘ（商標）、Ｗｉｎｄｏｗｓ（商標）２００３  Ｓｅｒｖｅｒなどがある。
【００３９】
図４は、本発明の実施例に係る機能論理ブロック図である。この機能論理ブロック図は、ウェブ・サーバ１０２に含まれる部分４０２と、クライアント・コンピュータ１０６に含まれる部分４０４と、外部コンテンツ源としてのインターネット２０６と、データの収集範囲を指定するリレーショナル・データベース（ＲＤＢ）４０８と、ファイルサーバ４１０とからなる。
【００４０】
ウェブ・サーバ１０２において、コンテンツ収集部４１２は、インターネット４０６、ＲＤＢ４０８、及びファイル・サーバ４１０などの情報ソースから、検索対象となるコンテンツを巡回収集し、収集したコンテンツと、そのコンテンツに対するポインタとを対応付けて、コンテンツ格納部４１４に一時的に格納する。
【００４１】
コンテンツ格納部４１４は、ハードディスク・ドライブ３１０などの記憶装置内に構成され、収集したコンテンツを検索可能とする処理を行なうための一時的記憶領域を与える。ここに巡回収集されるコンテンツからは、少なくとも文書データが抽出され、その際、テキスト以外の画像や音声、ビデオなどのコンテンツも、必要に応じて収集される。
【００４２】
コンテンツ収集部４１２は、予め設定されたスケジュールに従うなど、所定のタイミングでコンテンツの巡回収集を行なう。
【００４３】
ウェブ・サーバ１０２はさらに、文字列解析部４１６を有する。文字列解析部４１６は、コンテンツ格納部４１４に格納された様々なデータ形式のコンテンツから、文書データを抽出する。文字列解析部４１６は、ＨＴＭＬやＸＭＬなどで記述されたコンテンツの場合、タグを除去して、文書データを抽出する。文字列解析部４１６は、ＰＤＦ形式のファイルから、埋め込まれている文書情報を抽出する機能をもつ。さらに文字列解析部４１６は、ＯＣＲ機能により、イメージデータ中の文字を抽出する機能ももつ。
【００４４】
文字列解析部４１６は、コンテンツ格納部４１４に格納されている文書をトークンに分割するための規則や辞書を含むトークン位置定義部４１８を含む。
【００４５】
本発明によれば、文字列解析部４１６は、少なくとも２とおりの方法で文書をトークンに分割する。この実施例では、その１つの方法は、形態素解析法であり、もう１つの方法は、Ｎグラム分割法である。
【００４６】
トークン分割部４２０は、トークン位置定義部４１８に格納されている辞書を参照しながら、形態素解析法により、文字列からトークンを切り出して分割する。トークン分割部４２０の初期の分割の粒度は任意であるが、好適には、複合語など大きな意味単位の語を残すようにする。
【００４７】
トークン展開部４２２は、同様に、トークン位置定義部４１８に格納されている辞書を参照しながら、分割されたトークンに対して、必要に応じて表記の揺れ、活用語、同義語、複合語及び略語を展開し派生したトークンを付加していく。トークンの展開のために使用できる辞書としては、同義語のトークンを関連付けて登録する同義語辞書、複合語のトークンとその複合語を構成するさらに小さな意味単位のトークンとを関連付けて登録する複合語辞書、及び、略語とその略語が表す語とのトークンを関連付けて登録する略語辞書などがある。この際、種々の辞書を用いてトークンを展開し、派生したトークンを文字列に割り当てることにより、情報検索の再現率を向上させることが可能となる。更には、係り受けなどの構文解析、意味解析、文脈解析、固有表現抽出など、他のテキスト・マイニングを行なうことにより、トークン間の関連性を抽出し、トークンに対して、関連情報をあらわすトークンを追加して割り当てることができる。
【００４８】
トークン分割部４２４は、Ｎグラム分割法により、文字列からトークンを切り出して分割する。結果のトークンは、トークン展開部４２６に格納される。
【００４９】
なお、文字列解析部４１６で使用するトークン分割方法は、形態素解析法及びＮグラム分割法以外に、単にタブやスペースで単語を分割する、という方法も使うことができる。
【００５０】
本発明によれば、基本的に既知の任意のトークン分割方法を採用することができ、しかも、２種類以上の任意の種類のトークン分割方法を併せて使用することができるを理解されたい。
【００５１】
文字列解析部４１６において、トークンの解析処理中、文字列から分割されたトークン及び派生したトークンは、トークン間の位置関係を維持するデータ構造として、解析データ格納部４２８に書き込まれる。このときの解析データのデータ構造は、特に限定されないが、例えば、コンテンツ中の文書データにおけるトークン及び、文書データ中での文字位置の組を概ね出現順に繋げた構造とすることができる。さらに、トークンの解析処理中に、各トークンについて、ＨＴＭＬやＸＭＬのタグなどからさらにその重要度を判定し、検索時のランキングのために、トークンの重要度を関連付けることもできる。
【００５２】
文字列解析部４１６は、システム管理者による操作や、予め設定されたスケジュールに従って、または、所定量のコンテンツがコンテンツ格納部４１４に新たに追加されたり更新された場合に、処理を開始するようにしてもよい。また、トークン分割部４２０、４２４及び、トークン展開部４２２、４２６は、好適にはＣＰＵ３０６の実行空間を提供するＲＡＭ３０８にロードされて、実行される。
【００５３】
ウェブ・サーバ１０２はさらに、索引構築部４３０を有する。索引構築部４３０は、解析データ格納部４２８に書き込まれた解析データを読み出して、索引付けを施して、索引格納部４３６に格納する。索引構築部４３０は、トークン位置定義部４３２と文書内索引作成部４３４のモジュールを有し、これらのモジュールは、好適にはＣＰＵ３０６の実行空間を提供するＲＡＭ３０８にロードされて、実行される。
【００５４】
索引格納部４３６は、ハードディスク・ドライブ３１０上に、データベースまたはファイルとして  構成される。
【００５５】
索引格納部４３６が格納する索引データは、好適には、文書中のトークンの出現位置を示す情報を含んだ転置インデックス(inverted index)として構成することができる。しかし、これは、一例であって、索引データのデータ構造は、トークンと、そのトークンを文書内に有するコンテンツと、その文書データ中の当該トークンの出現位置とが対応付けられる限り、任意のデータ構造でよい。
【００５６】
トークン位置定義部４３２は、各解析データに表れる各トークン間の位置関係から、各トークンに対して、文書内位置番号を定義して、割り当てる。文書内位置番号は、コンテンツ内の位置を識別する。
【００５７】
文書内索引作成部４３４は、コンテンツ毎に、トークン、文書内位置番号、及び適宜付加情報を対応づけて、文書データ内での索引である、索引エントリを作成する。索引エントリのデータ構造は、例えば、各トークン毎に、文書内位置番号及び適宜付加情報を整理した配列に、コンテンツ識別値を関連付けたものとして構成することができる。
【００５８】
ウェブ・サーバ１０２は更に、検索部４３８を有する。検索部４３８は、クライアント・コンピュータ１０６からの検索要求に応じて、その検索要求に含まれる検索式について、索引格納部４３６からの索引データと照合しながら検索処理を実行し、検索結果をクライアント・コンピュータ１０６に返す。
【００５９】
検索部４３８は、検索要求受付部４４０、検索結果作成部４４２、検索処理部４４６及び元文書復元部４４８を有し、これらのモジュールは、好適にはＣＰＵ３０６の実行空間を提供するＲＡＭ３０８にロードされて、実行される。
【００６０】
一方、クライアント・コンピュータ１０６側では、ウェブ・ブラウザ、プロセッサ２０４、プロセッサ２０４の実行空間を与えるメイン・メモリ２０６などが協働して機能するの検索照会部４０４が構成される。検索照会部４０４は、検索要求部４５０と、検索結果表示部４５２とからなる。
【００６１】
検索時には、検索要求部４５０は、ユーザが、クライアント・コンピュータ１０６のウェブ・ブラウザの画面のテキスト入力領域にユーザが検索したい文字を打ち込んで、所定のボタンをマウスでクリックすることに応答して、検索要求を、検索要求受付部４４０に送る。この際、ＣＧＩなどの周知の技術を使うことができる。
【００６２】
検索要求受付部４４０では、検索照会部４５０からの検索要求を受け取ると、その受け取った検索要求を解析して、その解析結果を、検索処理部４３８に発行する。検索要求は、検索文字列、及び検索文字列間を接続する論理演算子などの検索式を含むことができる。検索文字列はさらに、形態素解析などにより、検索トークンに分割することができる。この分割の際に、文字列解析部４１６を呼び出すことができる。
【００６３】
検索処理部４３８は、検索要求に基づき、索引格納部４３６の索引データに対する照会を実行して、その照会に対する照会集合を取得する。元文書復元部４４８は、当該照会集合に基づき、解析データ格納部４２８のデータを参照して、元文書を復元する。復元された元文書は、検索結果作成部４４２を介して、クライアント・コンピュータ１０６の検索結果表示部４５２に送られ、その内容は、クライアント・コンピュータ１０６のウェブ・ブラウザの画面に表示される。このとき、元文書復元部４４８は、元文書を復元しつつ、ヒット位置が強調表示可能であるように、ウェブ・ブラウザの画面上の属性を設定可能である。典型的には、元文書復元部４４８は、ヒット位置に<font color=red>〜</font>などのタグを付与して、復元した元文書を、クライアント・コンピュータ１０６に送出してもよい。
【００６４】
次に、図５のフローチャートを参照して、インデックスを作成する処理について説明する。
【００６５】
先ず、ステップ５０２では、コンテンツ収集部４１２が、インターネット４０６、ファイルサーバ４１０などから、文書データを取得して、コンテンツ格納部４１４に格納する。
【００６６】
ステップ５０４では、文字列解析部４１６が、コンテンツ格納部４１４に格納された文書データに含まれる文字列を、用意されている複数のトークン分割手法で分割する。この実施例では、トークン分割部４２０による形態素解析手法と、トークン分割部４２４によるＮグラム手法である。こうして分割されたトークンはさらに、トークン展開部４２２、４２４でそれぞれ適宜展開される。これらの展開は、好適には、主記憶３０８に展開されるが、主記憶３０８に十分な容量がない場合は、ハードディスク・ドライブ３１０に展開される。
【００６７】
図６に、「日本IBM株式会社」という文字列を、形態素解析手法である分割方法１と、Ｎグラム手法である分割方法２で分割する様子が示されている。図６にはまた、「株式会社」というトークンに、「(株)」という同義語が展開によって付加されることも示されている。
【００６８】
ステップ５０６では、文字列解析部４１６が、分割されたトークンを出現順に選択する。
【００６９】
ステップ５０８では、トークンの開始境界と異なるかどうか、文字列解析部４１６が判断する。もしそうでないなら、処理は、ステップ５３２に進む。ステップ５３２については、後で説明する。
【００７０】
ステップ５０８での判断が肯定的だと、処理は、ステップ５１０に進み、そこで、位置決定保留中トークンがあるかどうかが判断される。
【００７１】
ステップ５１０で、位置決定保留中トークンがあると判断されると、ステップ５１２で、位置決定保留中トークンが選択される。後で詳しく説明するが、位置決定保留中トークンとは、好適には主記憶３０８上の所定の領域に保持され、元文書復元用トークンを作成する基となるものである。
【００７２】
ステップ５１０で、位置決定保留中トークンがないと判断されると、処理は、ステップ５２４に進む。ステップ５２４については、後で説明する。
【００７３】
戻って、ステップ５１２の後は、ステップ５１４で、選択中トークンの開始境界が、選択した保留中トークンの終了境界より大きいかどうかが判断される。もしそうであるなら、処理はステップ５２４に進む。
【００７４】
ステップ５１４で、選択中トークンの開始境界が、選択した保留中トークンの終了境界より大きくないと判断されると、ステップ５１６で、記憶している境界が、選択した保留中トークンの終了境界より小さいかどうかが判断される。ここでいう記憶している境界とは、後述するステップ５２０で記憶される保留中トークンの終了位置と、ステップ５２８におけるトークンの開始位置とで規定されるものである。なお、記憶している境界、保留中トークンの終了位置、トークンの開始位置などは、好適には主記憶３０８の所定の共有メモリ領域に書き換え可能に維持されて、文字列解析部４１６などのモジュールによってアクセス可能な変数である。
【００７５】
ステップ５１６で、記憶している境界が、選択した保留中トークンの終了境界より小さいと判断されると、ステップ５１８で、記憶している境界と保留中トークンの終了境界より、元文書復元用トークンが生成され、次のステップ５２０で、位置カウンタを増加し、保留中トークンの終了位置を記憶し、位置決定保留中全トークンの終了位置の再計算を行なう処理が行なわれ、ステップ５２２で、選択した保留中トークンを索引用トークンとして出力し、位置決定保留中トークンから除くという処理が行なわれて、処理はステップ５１０の判断に戻る。
【００７６】
ステップ５１６で、記憶している境界が、選択した保留中トークンの終了境界より小さくないと判断されると、直ちにステップ５２２に進んで、そこでの処理の後、ステップ５１０の判断に戻る。
【００７７】
さて、ステップ５２４の判断は、ステップ５１０で位置決定保留中トークンがないと判断された場合、あるいはステップ５１４で選択中トークンの開始位置が選択した保留中トークンの終了境界より大きいと判断される場合に、実行される。
【００７８】
そのステップ５２４で、トークンの開始境界が記憶している境界より大きいと判断されると、ステップ５２６では、記憶している境界とトークンの開始境界より、元文書復元用トークンが生成される。次にステップ５２８で、位置カウンタを増加し、トークンの開始位置を記憶する処理が行なわれ、ステップ５３０では、位置決定保留中全トークンの終了位置の再計算が行なわれる。
【００７９】
ステップ５２４で、トークンの開始境界が記憶している境界より大きくないと判断されると、ステップ５２６とステップ５２８をスキップして、直接ステップ５３０の処理に進む。
【００８０】
次のステップ５３０では、選択したトークンが、位置決定保留中トークンに追加される。なお、ステップ５０８での処理が否定的である場合にも、処理は直接ステップ５３０に来る。
【００８１】
ステップ５３４では、最後のトークンかどうかが判断され、そうであれば処理はステップ５３６に進み、そうでなければ、処理はステップ５０８の判断に戻る。
【００８２】
ステップ５３６では、保留中トークンから、元文書復元用トークンと、索引用トークンを出力する処理が行なわれる。このとき、出力された元文書復元用トークンと、索引用トークンの情報は、後で検索及び文書の表示に利用するため、ハードディスク・ドライブ３１０に書き出されて保存される。
【００８３】
図７は、図５のステップ５３６の処理をより詳細に示すフローチャートである。図７のステップ７０２では、位置決定保留中トークンを調べて、位置決定保留中トークンがある限り、ステップ７０６〜７１０を実行する。
【００８４】
すなわち、ステップ７０４では、位置決定保留中トークンが選択され、ステップ７０６では記憶している境界と保留中トークンの終了境界により、元文書復元用トークンが生成される。
【００８５】
ステップ７０８では、位置カウンタを増加し、位置決定保留中トークンの終了位置を記憶し、位置決定保留中全トークンの終了位置の再計算する処理が行なわれ、次のステップ７１０では、選択した位置決定保留中トークンを索引用トークンとして出力し、位置決定保留中トークンから除く処理が行なわれる。
【００８６】
こうして、位置決定保留中トークンがなくなると、ステップ７０２の判断が否定的となって、処理が終了する。
【００８７】
図８は、「日本IBM株式会社」という文字列に対して、図５及び図７のフローチャートの処理で生成された索引用トークンを示す図である。これは、採用されている全種類のトークン分割方法（この実施例では、形態素解析とＮグラム）で分割された全てのトークンを含む。例えば、「株式」は、位置番号3で登録され、その次に来るトークンの位置は5である、という情報をトークンがもつようにする。より効率的には、トークン位置の差分を保持するようにしてもよい。実際は、トークンの先頭に、そのトークンがあらわれる文書の文書ＩＤが付けられることになる。
【００８８】
図９は、元文書復元用トークン列を示す図である。元文書復元用トークンは、図８に示すような、全種類のトークン分割方法で得られたトークンの分割結果から算出された全トークン境界を元にしたトークン列を、各トークンの開始位置番号、終了位置番号と共に保管したものである。この場合も、より効率的には、トークン位置の差分を保持するようにしてもよい。
【００８９】
次に、図１０のフローチャートを参照して、作成された索引に基づき、検索を行う処理を説明する。この処理は、図４の検索処理部４４６によって実行される。図１０においてまず、ステップ１００２では、ユーザが入力し、検索要求受付部４４０が受領した検索語が、全解析手法で解析され、トークンに分解され、分解されたトークンは更に展開される。このとき、好適には、図５のステップ５０４と同じ処理が行なわれる。
【００９０】
ステップ１００４では、索引作成と同様に、各トークン位置の検出が行なわれる。ここでは、好適には、図５で実行されるトークン生成方法と同様にして、検索トークン列が生成され、ステップ１００６では、そうして生成された複数の検索トークン列が順次選ばれる。
【００９１】
ステップ１００８では、選ばれた検索トークン列を文書データ内に含むコンテンツの集合１〜Ｓが検索により取得される。ここでＳは、１以上の整数である。この検索は、好適には、索引格納部４３６を検索することによって行われる。
【００９２】
ステップ１０１０では、集合１〜Ｓが交わりをもつかどうか判断され、もし交わりをもたないなら、ステップ１０２６に進み、最後のトークン列かどうかが判断され、もし最後のトークン列であるなら、処理は終わり、もしそうでないなら、ステップ１００６に戻る。
【００９３】
ステップ１０１０で、集合１〜Ｓが交わりをもつと判断されると、ステップ１０１２で、集合１〜Ｓの積集合が中間照会集合として作成される。
【００９４】
ステップ１０１４で、中間照会集合に含まれるコンテンツが選択される。
【００９５】
ステップ１０１６で、選択したコンテンツの文書データ内での検索トークン列の連続性が検証される。これは、検索トークン列が文書データの境界に跨らないかどうかの検証である。
【００９６】
ステップ１０１８では、連続が少なくとも１つ維持されたかどうかが判断され、もしそうなら、ステップ１０２０で、選択したコンテンツが中間照会集合に維持され、そうでなければ、ステップ１０２２で選択したコンテンツが中間照会集合から削除される。
【００９７】
ステップ１０２４では、照会結果集合と中間照会集合の和集合が、照会結果集合とされる。そして、ステップ１０２６に進み、最後のトークン列かどうかが判断され、もし最後のトークン列であるなら、処理は終わり、もしそうでないなら、ステップ１００６に戻る。
【００９８】
図１１は、元文書復元処理のフローチャートを示す図である。この処理は、図４の元文書復元部４４８によって実行される。図１１のステップ１１０２では、表示する文書に含まれる全ての元文書復元用トークンが取得される。
【００９９】
ステップ１１０４では、例えば図１０の検索結果として得られた、ヒットしたトークンの索引格納部４３６に保持されている開始位置情報及び終了位置情報が取得される。
【０１００】
ステップ１１０６では、ステップ１１０２で選択されたトークンが順次選択される。
【０１０１】
ステップ１１０８では、選択されたトークンの開始位置が、ヒット範囲としての開始位置情報及び終了位置情報の間に含まれるかどうかが判断され、もしそうなら、ステップ１１１０で、強調表示が開始される。
【０１０２】
ステップ１１１２では、トークンが、元文書復元文字列に追加される。
【０１０３】
ステップ１１１４では、選択されたトークンの終了位置が、ヒット範囲としての開始位置情報及び終了位置情報の間に含まれるかどうかが判断され、もしそうなら、ステップ１１１６で、強調表示が終了される。
【０１０４】
そして、ステップ１１１８に進み、最後のトークン列かどうかが判断され、もし最後のトークン列であるなら、処理は終わり、もしそうでないなら、ステップ１１０６に戻る。
【０１０５】
結果の元文書復元文字列は、検索結果作成部４４２から、検索結果表示部４５２に送られて、ユーザのクライアント・コンピュータ１０５のディスプレイ２１６に表示される。
【０１０６】
図１２は、検索結果を重要度で重み付けするための処理の例を示す図である。この例では、「東京都」という元検索文字列が、形態素解析と所定の論理操作によって、(東京都 OR (東京 AND 京都))と論理式に分解される。
【０１０７】
論理式中で、「東京都」のところは、元検索文字列と同一なので1と置かれ、「東京」のところは、形態素解析によって「東京都」と同一視されるので1と置かれ、「京都」のところは、「東京都」の文脈では、「東」＋「京都」と読まれる場合なので、可能性は1/3であると看做すと、
(東京都 OR (東京 AND 京都)) = (1 + (1 * 1/3)) = 4/3で、この値で正規化すると、「東京都」の部分の重みは0.75、(東京 AND 京都)の部分の重みは0.25となる。
【０１０８】
索引中では、例えば、その個々のキーワード毎の、ヒットした文書中の出現率に、その重みを掛けた値を個々のキーワードの重みと看做して、元の論理式に代入して全体の重みを計算するなどして、検索結果の重要度を計算することにより、複数の検索結果を重要度順にソートして表示することが可能となる。
【０１０９】
これは検索結果の重要度を計算するための、本発明に適用し得る一例に過ぎないことを理解されたい。
【０１１０】
なお、この実施例では、クライアント・コンピュータは、通常のパーソナル・コンピュータとして示されているが、携帯、ＰＤＡなどのモバイル・デバイスからアクセスして検索できるようにしてもよい。
【０１１１】
また、トークン分割方法は、２つでなく３つ以上を適用してもよい。その際、形態素解析分割法とＮグラム分割法を含んでいてもよく、そうでなくてもよい。すなわち、単にタブやスペースで単語を分割する、という分割方法も適宜使用することができる。本発明によれば、どのような分割方法で得られたトークンでも、統一的に扱うことができる。
【０１１２】
また、上記実施例では、文書として、日本語の文書を検索するものであったが、英語、ドイツ語、フランス語などの任意の印欧語、アラビア語、ヘブライ語などのセム語、あるには文字をもつ任意の言語で書かれた文書の検索に本発明を適用することが可能である。その際、本発明における、任意のトークン分割方法を使用できるという柔軟性が、多様な言語への適用性を高めることが理解されるだろう。
【０１１３】
さらに、本発明を、ウェブ・サーバ上で索引の作成及び検索を行う構成の実施例で説明したが、本発明は、スタンドアロンのコンピュータ・システム上でも実現できることは当業者に明らかであろう。
【符号の説明】
【０１１４】
４２０・・・第１のトークン分割部
４２４・・・第２のトークン分割部
４２８・・・解析データ格納部
４３０・・・索引構築部
４３６・・・索引格納部
【図１】
2010250389.tif 000003
【図２】
2010250389.tif 000004
【図３】
2010250389.tif 000005
【図４】
2010250389.tif 000006
【図５】
2010250389.tif 000007
【図６】
2010250389.tif 000008
【図７】
2010250389.tif 000009
【図８】
2010250389.tif 000010
【図９】
2010250389.tif 000011
【図１０】
2010250389.tif 000012
【図１１】
2010250389.tif 000013
【図１２】
2010250389.tif 000014