(57)【要約】【課題】  コンピュータに蓄積された文字列情報の高精度な検索を可能とすること。【解決手段】  本検索システム２００は、検索対象となる入力文字列を１以上のトークンに分割するトークン分割部２２２と、出現位置の算出に際し除外するものとして登録されたトークンを除外トークンとし、除外しないトークンを見出し語トークンとして、見出し語トークンに対し、出現位置を定義付ける位置定義部２３２と、除外トークンに対し、該除外トークンが後続する見出し語トークンを起点とした位置情報を付与する情報付与部２３４と、１以上のトークンについて除外トークンが後続するか否かを識別させて索引付けする索引付け処理部２３６とを含む。本検索システム２００は、さらに、除外トークンを考慮した検索処理が求められる場合に、フレーズ検索クエリに含まれる検索トークン列に出現位置および位置情報を含め整合するトークン列を抽出する検索処理部２５０とを含む。【選択図】  図２
2013015967.tif 000002
【特許請求の範囲】
【請求項１】
フレーズ検索を行うための検索システムであって、
検索対象となる入力文字列を１以上のトークンに分割するトークン分割部と、
出現位置の算出に際し除外するものとして登録されたトークンを除外トークンとし、除外しないトークンを見出し語トークンとして、見出し語トークンに対し、出現位置を定義付ける位置定義部と、
除外トークンに対し、該除外トークンが後続する見出し語トークンを起点とした位置情報を付与する情報付与部と、
前記１以上のトークンを除外トークンが後続するか否かを識別させて索引付けする索引付け処理部と
を含む、検索システム。
【請求項２】
索引データであって、前記見出し語トークンに対し付与される前記出現位置と、前記除外トークンに対し付与される前記位置情報と、前記除外トークンが後続するか否かを識別する付加情報とを含み構成される当該索引データと、
フレーズ検索クエリに応答して、除外トークンを考慮した検索処理が求められる場合に、前記索引データを参照して、前記フレーズ検索クエリに含まれる検索トークン列に前記出現位置および前記位置情報を含め整合するトークン列を抽出する検索処理部と
をさらに含む、請求項１に記載の検索システム。
【請求項３】
前記フレーズ検索クエリの設定から、除外トークンを考慮した検索処理が求められているか否かを判定する判定部と、
フレーズ検索で除外トークンを考慮して検索するものとして登録されたトークン列が前記フレーズ検索クエリの検索トークン列に含まれる場合に、前記登録されたトークン列に関し前記除外トークンを考慮した検索処理に変更する変更部と
をさらに含む、請求項２に記載の検索システム。
【請求項４】
前記検索処理部は、抽出された前記出現位置および前記位置情報を含めて整合するトークン列に関し第１の重みを与え、前記フレーズ検索クエリに含まれる見出し語トークン列に前記出現位置を含め整合するものの、除外トークンとの連接関係が整合しないトークン列に関し第２の重みを与ることを特徴とする、請求項３に記載の検索システム。
【請求項５】
前記除外トークンに対し付与される前記見出し語トークンを起点とした位置情報は、該除外トークンの起点となる該見出し語トークンの出現位置と、該見出し語トークンおよび該除外トークン間の位置差分を含む、請求項１に記載の検索システム。
【請求項６】
前記索引付け処理部は、除外トークンが後続するトークンに対し除外トークンが後続する旨を示す付加情報を付すか、または、除外トークンが後続しないトークンに対して除外トークンが後続しない旨を示す付加情報を付して、索引付けを行う、請求項１に記載の検索システム。
【請求項７】
索引データを作成する索引作成装置であって、
検索対象となる入力文字列を構成する１以上のトークンを記憶する記憶部と、
除外するものとして登録されたトークンを除外トークンとし、除外しないトークンを見出し語トークンとして、見出し語トークンに対し、出現位置を定義付ける位置定義部と、
除外トークンに対し、該除外トークンが後続する見出し語トークンを起点とした位置情報を付与する情報付与部と、
前記１以上のトークンを除外トークンが後続するか否かを識別させて索引付けする索引付け処理部と
を含む、索引作成装置。
【請求項８】
前記除外トークンに対し付与される前記見出し語トークンを起点とした位置情報は、該除外トークンの起点となる該見出し語トークンの出現位置と、該見出し語トークンおよび該除外トークン間の位置差分を含む、請求項７に記載の索引作成装置。
【請求項９】
前記索引付け処理部は、除外トークンが後続するトークンに対し除外トークンが後続する旨を示す付加情報を付すか、または、除外トークンが後続しないトークンに対して除外トークンが後続しない旨を示す付加情報を付して、索引付けを行う、請求項７に記載の索引作成装置。
【請求項１０】
フレーズ検索を実行する検索装置であって、
出現位置の算出に際し除外するものとして登録されたトークンを除外トークンとし、除外しないトークンを見出し語トークンとして、検索トークン列を含むフレーズ検索クエリを受け付ける受付部と、
索引データであって、検索対象となる入力文字列を構成する見出し語トークンに対し除外トークンを除外して定義される出現位置と、除外トークンに対し付与される該除外トークンが後続する見出し語トークンを起点とした位置情報とを含む当該索引データを参照し、除外トークンを考慮した検索処理が求められる場合に、前記フレーズ検索クエリに含まれる前記検索トークン列に前記出現位置および前記位置情報を含め整合するトークン列を抽出する検索処理部と
を含む、検索装置。
【請求項１１】
前記フレーズ検索クエリの設定から、除外トークンを考慮した検索処理が求められているか否かを判定する判定部と、
フレーズ検索で除外トークンを考慮して検索するものとして登録されたトークン列が前記フレーズ検索クエリの検索トークン列に含まれる場合に、前記登録されたトークン列に関し前記除外トークンを考慮した検索処理に変更する変更部と
をさらに含む、請求項１０に記載の検索装置。
【請求項１２】
前記検索処理部は、抽出された前記出現位置および位置情報を含めて整合するトークン列に関し第１の重みを与え、前記フレーズ検索クエリに含まれる見出し語トークン列に前記出現位置を含め整合するものの、除外トークンとの連接関係が整合しないトークン列に関し第２の重みを与ることを特徴とし、
前記検索装置は、さらに、前記第１および第２の重みを考慮してランク付けされた検索結果を、前記フレーズ検索クエリに対する応答として作成する結果作成部を含む、請求項１１に記載の検索装置。
【請求項１３】
索引データを作成する索引作成方法であって、コンピュータ・システムに対し、
検索対象となる入力文字列を１以上のトークンに分割するステップと、
出現位置の算出に際し除外するものとして登録されたトークンを除外トークンとし、除外しないトークンを見出し語トークンとして、見出し語トークンに対し、出現位置を定義付けるステップと、
除外トークンが後続する見出し語トークンに関し、該除外トークンに対し、該除外トークンが後続する該見出し語トークンを起点とした位置情報を付与する情報付与部と、
見出し語トークンまたは除外トークンに関し、該トークンに除外トークンが後続するか否かを識別させて索引付けするステップと
を実行させる、索引作成方法。
【請求項１４】
フレーズ検索を実行する検索方法であって、コンピュータ・システムに対し、
出現位置の算出に際し除外するものとして登録されたトークンを除外トークンとし、除外しないトークンを見出し語トークンとして、検索トークン列を含むフレーズ検索クエリを受け付けるステップと、
索引データであって、検索対象となる入力文字列を構成する見出し語トークンに対し除外トークンを除外して定義される出現位置と、除外トークンに対し付与される該除外トークンが後続する見出し語トークンを起点とした位置情報とを含む当該索引データを参照するステップと、
除外トークンを考慮した検索処理が求められる場合に、前記フレーズ検索クエリに含まれる検索トークン列に前記出現位置および前記位置情報を含め整合するトークン列を抽出するステップと
を実行させる、検索方法。
【請求項１５】
索引データを作成する索引作成装置をコンピュータ上に実現するためのコンピュータ実行可能なプログラムであって、コンピュータ・システムを、
検索対象となる入力文字列を構成する１以上のトークンを記憶する記憶部、
除外するものとして登録されたトークンを除外トークンとし、除外しないトークンを見出し語トークンとして、見出し語トークンに対し、出現位置を定義付ける位置定義部、
除外トークンに対し、該除外トークンが後続する見出し語トークンを起点とした位置情報を付与する情報付与部、および
前記１以上のトークンを除外トークンが後続するか否かを識別させて索引付けする索引付け処理部
として機能させるためのプログラム。
【請求項１６】
フレーズ検索を実行する検索装置をコンピュータ上に実現するためのコンピュータ実行可能なプログラムであって、コンピュータ・システムを、
出現位置の算出に際し除外するものとして登録されたトークンを除外トークンとし、除外しないトークンを見出し語トークンとして、検索トークン列を含むフレーズ検索クエリを受け付ける受付部、
索引データであって、検索対象となる入力文字列を構成する見出し語トークンに対し除外トークンを除外して定義される出現位置と、除外トークンに対し付与される該除外トークンが後続する見出し語トークンを起点とした位置情報とを含む当該索引データをし、除外トークンを考慮した検索処理が求められる場合に、前記フレーズ検索クエリに含まれる前記検索トークン列に前記出現位置および前記位置情報を含め整合するトークン列を抽出する検索処理部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報検索技術に関し、より詳細には、コンピュータに蓄積された文字列情報の高精度な検索を可能とする、検索システム、索引作成装置、検索装置、索引作成方法、検索方法およびプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータ、ブロードバンドなどの高速大容量通信基盤が普及し、官公庁、大学、企業など組織における業務のＩＴ化が進み、日々膨大な非定型文書が発生している。このような背景から、検索者が意図する文書を高速かつ的確に検索可能な検索システムの必要性が、ますます高まっている。
【０００３】
検索システムでは、適切な文字列分割方法を使用して、検索対象の文書の文字列を単語や文節などの単位（以下、トークンとして参照する。）に分割し、元文書内におけるトークンの出現順に位置番号を与え、逆引き索引（Inverted Index）に格納している。入力された検索語句も、単語や文節など所定の単位（以下、検索トークンとして参照する。）に分割され、検索対象の文書について登録されたトークンが検索トークンに一致するか否かの判断に応じて、該文書を検索結果として抽出するかどうかを決定している。
【０００４】
検索精度を向上することを目的として、種々の従来技術が知られている。例えば、大量の文章から検索者が意図した文書を的確に検索するために、言語を特定し、形態素解析などの文字列解析を行うことによって、単純な文字列一致よりも高精度な検索を実現する技術が知られている。また、特開２０１０−２５０３８９号公報は、検索漏れをなくしつつ、適切な検索結果を得ることを目的として、１つの文書を形態素解析およびＮグラムの２つの方式によってトークン分割して索引付けする技術を開示している。
【０００５】
しかしながら、高度な文字列解析を導入すると、その反面、文字列が完全に一致していない文書でも、高度な解析結果の影響のために検索結果に含まれることになり、検索結果に含まれる文書が必ずしも検索者の意図したものではない場合が発生し得る。
【０００６】
また、句読点や記号などは、文書作成者により恣意的に用いられるため、通常の検索システムでは、句読点や記号に関しては、これらの語の影響を受けないで検索できるよう、見出し語とせず、索引付けを行わないという手法がとられる。その反面、句読点や記号を考慮した検索ができない。
【０００７】
フレーズ検索では、各トークンに与えられた位置番号を利用して、フレーズに含まれる検索トークンと一致したトークンに対し、連続する位置番号が与えられているか否かを判断する。このため、フレーズ検索をサポートするためには、文書内で隣り合うトークンは、位置番号の差分が固定（通常は１に固定）されるように索引付けしなければならない。この制限ため、フレーズ検索では、句読点や記号を見出し語に含めることは難くなる。
【０００８】
しかしながら、企業においては、企業名、プロジェクト名、製品名などの固有名詞の中に記号がしばしば使用されており、記号を省略して検索処理がなされてしまうと、検索結果から検索者が意図した文書が漏れてしまうという不具合があった。また、固有名詞を単語として辞書登録することもできるが、辞書登録の作業が繁雑であり、さらに、辞書登録のたびに索引を再構築し直す必要があり、充分なものではなかった。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−２５０３８９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、上記従来技術における不具合に鑑みてなされたものであり、本発明は、句読点や記号など通常検索対象とならないトークンを考慮して情報検索が可能な検索システム、索引作成装置、検索装置、索引作成方法、検索方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、上記課題に鑑みてなされたものであり、本発明では、下記の特徴を有する、フレーズ検索を行うための検索システムを提供する。本検索システムは、索引付けのための機能部として、検索対象となる入力文字列から分割された１以上のトークンについて、出現位置の算出に際し除外するものとして登録されたトークンを除外トークンとし、除外しないトークンを見出し語トークンとして、見出し語トークンに対し出現位置を定義付ける位置定義部を含む。本検索システムは、さらに、除外トークンに対し、該除外トークンが後続する見出し語トークンを起点とした位置情報を付与する情報付与部と、上記１以上のトークンを除外トークンが後続するか否かを識別させて索引付けする索引付け処理部とを含む。
【００１２】
さらに、本検索システムは、検索のための機能部として、フレーズ検索クエリに応答して、除外トークンを考慮した検索処理が求められる場合に、索引データを参照して、フレーズ検索クエリに含まれる検索トークン列に出現位置および位置情報を含め整合するトークン列を抽出する検索処理部を含むことができる。
【００１３】
さらに本発明によれば、上記検索システムにおける索引付けのための機能部を備える索引作成装置、該索引作成装置が実行する索引作成方法、上記検索システムにおける検索のための機能部を備える検索装置、該検索装置が実行する検索方法、上記索引作成装置をコンピュータ上に実現するためのプログラム、上記検索装置をコンピュータ上に実現するためのプログラムを提供することができる。
【発明の効果】
【００１４】
上記構成によれば、通常の検索では考慮されない除外トークンについても、該除外トークンが後続する見出し語トークンを起点とする位置情報が付与されて、索引付けされるため、検索時において、除外トークンを考慮してフレーズ検索することが可能となり、ひいては、検索者の意図をより正確に反映した検索結果を得ることができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態による検索システムの概略図。
【図２】本実施形態によるサーバおよびクライアント上に実現される、検索システムの機能ブロック図。
【図３】入力文字列から索引付けまでの文字列解析部および索引構築部が実行する処理を、各処理により生成されるデータ構造とともに示す概略図。
【図４】（Ａ）他の例文による入力文字列のトークン分割から索引付けまでの処理を説明する図、および（Ｂ）。他の実施形態による入力文字列のトークン分割から索引付けまでの処理を説明する図。
【図５】本実施形態による索引作成装置としてのサーバが実行する、索引作成方法を示すフローチャート。
【図６】本実施形態により作成される索引データのデータ構造を例示する図。
【図７】本実施形態による検索システムにおける、通常モードによるフレーズ検索処理について説明する図。
【図８】本実施形態による検索システムにおける、補正モードによるフレーズ検索処理について説明する図（１／３）。
【図９】本実施形態による検索システムにおける、補正モードによるフレーズ検索処理について説明する図（２／３）。
【図１０】本実施形態による検索システムにおける、補正モードによるフレーズ検索処理について説明する図（３／３）。
【図１１】本実施形態におけるランク付けのための重み付けを説明する図。
【図１２】ブラウザ画面を例示する図。
【図１３】固有フレーズが登録可能な実施形態によるサーバ上に実現される、検索部２４０の機能ブロック図。
【図１４】本実施形態による検索装置としてのサーバが実行する、フレーズ検索方法を示すフローチャート（１／２）。
【図１５】本実施形態による検索装置としてのサーバが実行する、フレーズ検索方法を示すフローチャート（２／２）。
【発明を実施するための形態】
【００１６】
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。
【００１７】
図１は、本実施形態による検索システム１００の概略図である。検索システム１００は、検索者が利用することができる複数のクライアント・コンピュータ（以下、クライアントとして参照する。）１０２ａ〜１０２ｃと、各クライアント１０２からの検索要求に応答して検索結果を返すサーバ・コンピュータ（以下、サーバとして参照する。）１０４とを含む。
【００１８】
検索システム１００には、さらに、検索対象となる情報（以下、単にコンテンツとして参照する。）を格納するコンピュータとして、リレーショナル・データベース（ＲＤＢ）１１６と、ファイル・サーバ１１８とを含んでいてもよい。検索システム１００は、さらに、図示しないルータなどを介して、インターネット１１４などの外部のネットワークに接続されてもよく、ＵＲＬ（Uniform Resource Locator）またはＵＲＮ（Uniform Resource Name）などのリソース識別子が指し示す記憶位置にあるコンテンツも検索対象とすることができる。
【００１９】
検索対象となるコンテンツとしては、ドキュメント・データ、イメージ・データ、マルチメディア・データなど、データ本体、タイトルや見出しなどのメタデータ内に文字列を含む各種データを検索対象とすることができる。以下、各コンテンツに含まれ、検索される入力文字列を文書データとして参照する。
【００２０】
クライアント１０２と、サーバ１０４とは、ネットワーク１０８を介して相互接続されている。ネットワーク１０８は、特に限定されるものではないが、イーサネット（登録商標）やＴＣＰ／ＩＰなどのトランザクション・プロトコルによるＬＡＮ（Local Area Network）、ＶＰＮ（Virtual Private Network）や専用線を使用して接続されるＷＡＮ（Wide Area Network）などとして構成することができる。
【００２１】
サーバ１０４は、ＣＧＩ(Common Gateway Interface)、ＳＳＩ（Server Side Include）、サーブレットなどのサーバ・プログラムを実装して構成することができる。例えば、サーバ１０４は、ＨＴＴＰプロトコルを使用して、クライアント１０２からの検索要求を処理し、クライアント１０２に検索結果を返すことができる。サーバ１０４は、シングルコアまたはマルチコアのプロセッサ、ＲＡＭ（Random Access Memory）、ＨＤＤ（Hard Disk Drive）、ＮＩＣ（Network Interface Card）を含み、ＷＩＮＤＯＷＳ（登録商標）２００Ｘ、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）などの適切なオペレーティング・システムにより制御される。
【００２２】
クライアント１０２は、ウェブ・ブラウザなどを実装して構成され、検索用データ１０６を管理するサーバ１０４に検索要求を発行し、検索結果を取得してブラウザ上に表示する。クライアント１０２は、プロセッサ、ＲＡＭ、ＨＤＤ、ＮＩＣ、ディスプレイ・デバイス、ポインティング・デバイスやキーボードなどの入力デバイスを含む、パーソナル・コンピュータまたはワークステーションなどの汎用コンピュータとして構成される。クライアント１０２も、適切オペレーティング・システムにより制御される。
【００２３】
サーバ１０４は、コンテンツを検索するための索引データを含む検索用データ１０６を管理する。検索用データ１０６は、ハードディスク装置などの記憶装置上に構成されるファイルシステムやデータベース上に、コンピュータがアクセス可能なフォーマットで格納される。本実施形態のサーバ１０４は、ハードウェアおよびソフトウェアが協働して、索引作成装置としての機能と、検索エンジンとしての機能との両方の機能を提供する。ここで、索引作成装置としての機能とは、ＲＤＢ１１６、ファイル・サーバ１１８、インターネット１１４などの情報ソース上のコンテンツを検索するための検索用データ１０６を作成する機能をいう。検索エンジンとしての機能とは、クライアント１０２からの検索要求に応答して検索結果を返す機能をいう。
【００２４】
コンテンツを検索対象に加えるために検索用データ１０６に登録する場合、サーバ１０４は、コンテンツに含まれる文書データに対し、形態素解析法などのトークン分割処理法を適用してトークン列を生成し、トークンの文書データ内の出現位置を識別する情報と共に索引付けし、当該コンテンツの存在位置を示すＵＲＩ（Uniform Resource Identifier）などのポインタに対応付けて検索用データ１０６に登録する。
【００２５】
また、図１には、検索システム１００の他の実施形態も示されている。図１に示す他の実施形態では、サーバ１０４は、ハードウェアおよびソフトウェアが協働して、検索エンジンとしての機能を専ら提供する。一方、破線枠１２０で示す別途配置されたサーバ１１０は、ハードウェアおよびソフトウェアが協働して、検索用データ１１２の管理、コンテンツの取得、索引付けなどの索引作成装置としての機能を専ら提供するものである。図１に示した他の実施形態では、検索用データ１０６は、サーバ１１０が管理する検索用データ１１２に同期される。
【００２６】
さらに他の実施形態では、図示しないが、上記索引作成装置としての機能、上記検索エンジンとしての機能およびクライアントとしての機能を兼ね備えた、コンピュータ・システム内のデスクトップ検索システムとして構成してもよい。
【００２７】
図２は、本実施形態によるサーバ１０４およびクライアント１０２上に実現される、検索システム１００の機能ブロック２００を示す。図２に示すクライアント１０２に含まれる各機能部は、クライアント１０２のメモリ上にプログラムを展開し、プログラムを実行することにより、各ハードウェア資源を動作制御することで、クライアント１０２上に実現される。クライアント１０２は、ディスプレイ・デバイス、入力装置などを含むユーザ・インタフェース部と、ＮＩＣを含む通信処理部とを備える。クライアント１０２は、ユーザ・インタフェース部への入力に従って、通信処理部を用いてサーバ１０４へ検索要求を送信し、該要求に対してサーバ１０４から返信された検索結果を通信処理部で受信して、ユーザ・インタフェース部のディスプレイに提示させる。
【００２８】
図２に示すサーバ１０４に含まれる各機能部は、サーバ１０４のメモリ上にプログラムを展開し、プログラムを実行することにより、各ハードウェア資源を動作制御することで、サーバ１０４上に実現される。サーバ１０４は、ＮＩＣなどを含む通信処理部を備える。
【００２９】
図２を参照すると、本実施形態のサーバ１０４は、コンテンツ収集部２１０と、文字列解析部２２０と、索引構築部２３０と、検索部２４０とを含んで構成される。
【００３０】
コンテンツ収集部２１０は、検索対象として追加または更新する情報を収集する機能部である。コンテンツ収集部２１０は、予め収集範囲として設定された、例えばＲＤＢ１１６、ファイル・サーバ１１８、インターネット１１４上の所定ＵＲＬなどの情報ソースから、コンテンツを収集し、収集したコンテンツと該コンテンツのポインタとを対応付けてコンテンツ格納部２１２に格納する。コンテンツ格納部２１２は、ハードディスク装置などの記憶装置上にデータベースまたはファイルシステムとして構成される。
【００３１】
文字列解析部２２０は、コンテンツ格納部２１２に格納された種々のデータ形式のコンテンツから文書データを抽出し、文書データに対し言語の特定や形態素解析等の文字列解析処理を施す機能部である。文字列解析部２２０は、文字列解析処理を行った結果として、解析データを、元のコンテンツに対応付けて解析データ格納部２１４に格納する。解析データ格納部２１４は、ハードディスク装置などの記憶装置上にデータベースまたはファイルシステムとして構成される。
【００３２】
索引構築部２３０は、解析データ格納部２１４に格納された解析データを読み出し、索引付け処理を行って、索引データを索引格納部２１６に格納する機能部である。索引格納部２１６は、ハードディスク装置などの記憶装置上にデータベースまたはファイルシステムとして構成され、検索要求に対し迅速に応答可能なデータ構造で上記索引データを格納する。索引格納部２１６が格納する索引データは、好適には、文書データ中のトークンの出現位置を示す情報を含んだ逆引き索引（Inverted Index）として構成することができる。
【００３３】
検索部２４０は、クライアント１０２からの検索要求に応答して、索引格納部２１６の索引データを照合しながら検索処理を実行する機能部である。検索部２４０は、検索処理が完了すると、検索結果をクライアント１０２へ返す。
【００３４】
以下、索引作成機能に関連する文字列解析部２２０および索引構築部２３０、並びに検索機能に関連する検索部２４０について、各処理の段階に分けて、より詳細に説明する。
【００３５】
（１）サーバによる文字列解析
文字列解析部２２０は、コンテンツ格納部２１２に格納された種々のデータ形式のコンテンツから文書データを抽出し、文書データに対し文字列解析を行う。例えば、ＨＴＭＬ（HyperText Markup Language）やＸＭＬ（eXtensible Markup Language）などの構造化言語により記述されたコンテンツについては、文字列解析部２２０は、タグの除去処理などを施して、文書データを抽出する。ＰＤＦ（Portable Document Format）、特定の文書作成アプリケーションによるファイルなどバイナリ形式のデータについては、文字列解析部２２０は、適切な文書フィルタを用いて文書データを抽出する。
【００３６】
文字列解析部２２０は、より詳細には、トークン分割部２２２を含み構成される。トークン分割部２２２は、抽出された文書データに対し、特定した言語に対応した形態素解析法を実施し、辞書格納部２２６が格納する文法規則や辞書を参照しながら、文書データの入力文字列からトークンを切り出して、１以上のトークンの列に分割する。説明する実施形態では、形態素解析法を適用してトークン分割するものとして説明する。しかしながら、他の実施形態では、形態素解析法に代えて、または形態素解析法と共に、Ｎグラム法を適用してもよく、英語など分かち書きされる言語については、空白や記号等で区切る分割手法を適用してもよい。
【００３７】
文書データから切り出されたトークン列は、元のコンテンツに対応付けて、解析データとして格納される。解析データは、例えば、対応するコンテンツに一意に割当てる文書識別値（DOC_ID）と、該コンテンツのＵＲＩなどのポインタとに関連付けられて格納される。
【００３８】
本実施形態において、切り出されるトークンは、見出し語トークンおよび除外トークンに分類することができる。見出し語トークンは、詳細を後述する索引付け処理において、出現位置の算出の際に考慮される見出し語として登録されたトークンである。除外トークンは、上記出現位置の算出に際し除外されるが、検索時には考慮の対象となり得るものとして登録されたトークンである。
【００３９】
除外トークンとしては、句読点や記号などの文書作成者が恣意的に付すものであるために、フレーズ検索における位置番号に関する制限に起因して、一般的なフレーズ検索において見出し語から除外されるトークンを含むことができる。本実施形態においては、上記除外トークンは、出現位置の算出に際しては除外されるが、検索時には考慮の対象となり得るものであるため、解析データおよび索引データに含ませられる。
【００４０】
上記除外トークンとしては、より具体的には、句点、読点、カンマ、ピリオド、コロン、セミコロン、アポストロフィ、アスタリスク、アットマーク、括弧（丸括弧、二重丸括弧、かぎ括弧、二重かぎ括弧、角括弧、山括弧など）、リーダ（二点リーダ、三点リーダなど）、中点（中黒）、ハイフン、二重ハイフン、感嘆符、疑問符、米印、ダッシュ、波ダッシュ、踊り文字、繰り返し符号、反復符号など、一般に約物と呼ばれる記述記号類を挙げることができる。また、上記除外トークンには、携帯電話のメールサービスで使用される絵文字を含んでもよい。
【００４１】
なお、いずれの記述記号類を除外トークンとして検索時に考慮するかは任意であり、検索システム１００の管理者は、予め辞書等に登録することができる。上記出現位置の算出および検索の両方に際して考慮しないトークンがあれば、切り出したトークン列から予め削除しておいてもよい。
【００４２】
図３は、入力文字列から索引付けまでの文字列解析部２２０および後述する索引構築部２３０が実行する処理を、各処理により生成されるデータ構造とともに示す概略図である。以下、例文１”Ｈｅ  ｉｓ  ａ  ｔａｘｉ  ｄｒｉｖｅｒ”および例文２”Ｈｅ  ｉｓ  ｔｈｅ  ｔａｘｉ−ｄｒｉｖｅｒ”を用いて説明する。図３（Ａ）を参照すると、トークン分割部２２２は、例文１”Ｈｅ  ｉｓ  ａ  ｔａｘｉ  ｄｒｉｖｅｒ”に対し形態素解析を適用すると、例文１の入力文字列を、「ｈｅ」、「ｉｓ」、「ａ」、「ｔａｘｉ」および「ｄｒｉｖｅｒ」の５つのトークンに分割して入力文字列に割当てる。これらのトークンは、説明においては、いずれも見出し語トークンとされる。
【００４３】
一方、図３（Ｂ）を参照すると、例文２”Ｈｅ  ｉｓ  ｔｈｅ  ｔａｘｉ−ｄｒｉｖｅｒ”に対し形態素解析を適用する場合、トークン分割部２２２は、例文２の入力文字列を「ｈｅ」、「ｉｓ」、「ｔｈｅ」、「ｔａｘｉ」、「−」および「ｄｒｉｖｅｒ」の６つのトークンに分割する。上記例文２の場合、５つの見出し語トークンに加えて、記号「−」がトークンとして分割されており、説明においてこのトークン「−」は、上述した除外トークンとされる。
【００４４】
トークン分割部２２２は、トークン分割処理中、入力文字列から分割されたトークンに対し、トークン間の位置関係を維持するデータ構造として解析データに書き込む。本実施形態では、辞書格納部２２６には、見出し語トークンおよび除外トークンが分けて予め登録されており、トークン分割部２２２は、各トークンが見出し語トークンであるか除外トークンであるかを識別可能な解析データを書き込む。
【００４５】
なお、上記文字列解析部２２０は、特に限定されるものではないが、システム管理者からの外部指令に応答して、予めシステム管理者が設定したスケジュールに従って、または予めシステム管理者が設定した規定量の更新または追加すべきコンテンツがコンテンツ格納部２１２に新たに格納されたことに応答して、未処理のコンテンツについて文字列解析を開始することができる。
【００４６】
（２）サーバによる索引作成
ここで再び図２を参照する。索引構築部２３０は、解析データ格納部２１４に格納された解析データを読み出して、トークン列の各トークンについて、フレーズ検索ができるよう位置番号および補足情報を付与して、索引データを作成する。索引構築部２３０は、より詳細には、トークン位置定義部２３２と、位置補正情報付与部２３４と、索引付け処理部２３６とを含み構成される。
【００４７】
トークン位置定義部２３２は、各解析データに含まれるトークン間の位置関係から、各トークンに対して、文書内出現位置番号（TOKEN_POS：以下、単に位置番号として参照する。）を定義して割当てる。上記位置番号（TOKEN_POS）は、索引上、文書データ内でトークンが出現する位置を識別するものである。上述したように、解析データに含まれるトークンには、見出し語トークンと除外トークンとが存在するが、この位置番号（TOKEN_POS）は、見出し語トークンに対し、除外トークンを無視して該見出し語トークンが出現する順に定義付けられる。
【００４８】
位置補正情報付与部２３４は、分割された１以上のトークンのうち除外トークンに対し、この除外トークンが後続する見出し語トークンを起点とした位置情報を付与する。ここで、上記位置情報には、この除外トークンが出現する位置を識別する位置番号と、この除外トークンが後続する起点となる見出し語トークンを基準として該除外トークンの位置関係を規定する位置補正情報とが含まれる。上記除外トークンの位置番号は、該除外トークンが後続する起点となる見出し語トークンと同一の位置番号となる。上記位置補正情報は、より具体的には、当該除外トークンの起点となる見出し語トークンからの該除外トークンの位置差分（以下、この位置差分を位置補正値と参照する。）となる。
【００４９】
索引付け処理部２３６は、対応するコンテンツを識別する文書識別子（DOC_ID）と、トークンと、該トークンが出現する位置番号（TOKEN_POS）と、適宜補足情報とを関連付けて、索引データに対し索引エントリを追加する。その際に、索引付け処理部２３６は、上記見出し語トークンおよび除外トークンの両方について、該トークンに後続する除外トークンが存在するか否かを識別できるようにして、索引エントリの追加を行う。
【００５０】
トークン位置定義部２３２、位置補正情報付与部２３４および索引付け処理部２３６による索引付けは、概略的には以下のように実行される。ここで、再び図３を参照する。図３（Ａ）に示す例文１の場合は、５つのトークンに分割されるが、この場合、トークン位置定義部２３２は、５つの見出し語トークンに対し出現順に位置番号を定義する。
【００５１】
一方、図３（Ｂ）に示す例文２の場合は、５つの見出し語トークンに加えて１つの除外トークン「−」が含まれるが、トークン位置定義部２３２は、除外トークン「−」を無視して５つの見出し語トークンに対し出現順に位置番号を定義する。したがって、図３に示す例では、「ｔａｘｉ」および「ｄｒｉｖｅｒ」には、その間に除外トークンが存在するか否かに関わらず、それぞれ、位置番号（TOKEN_POS=3）および位置番号（TOKEN_POS=4）が定義される。
【００５２】
これに対し、除外トークン「−」については、位置補正情報付与部２３４は、該除外トークンが後続する起点となる見出し語トークン「ｔａｘｉ」と同一の位置番号（TOKEN_POS=3）を付与し、さらに、起点となる見出し語トークン「ｔａｘｉ」からの位置補正値（OFFSET=１）を付与する。
【００５３】
図３（Ｂ）を参照すると、除外トークン「−」が後続する見出し語トークン「ｔａｘｉ」には、さらに、付加情報（HAS_NEXT=true）が付与されている。これは、当該トークンに、後続する除外トークンが存在することを識別できるよう付されるものである。付加情報（HAS_NEXT）の値がｔｒｕｅである場合、後続する除外トークンが存在することを意味し、付加情報（HAS_NEXT）の値がｆａｌｓｅであるか、または省略されている場合、後続トークンが存在しないことを意味する。このように、索引付け処理部２３６は、除外トークンが後続する見出し語トークンに対し、付加情報（HAS_NEXT=true）を付加して、索引付けを行うことにより、逆引き索引付けした後も、当該見出し語トークンに除外トークンが後続していることを容易に識別可能としている。
【００５４】
図４（Ａ）は、他の例文による入力文字列のトークン分割から索引付けまでの処理を説明する図である。図４（Ａ）を参照すると、２つの記号「−」が連続する場合、位置補正情報付与部２３４は、２つの除外トークン「−」各々に対し、これら起点となる見出し語トークン「ｔａｘｉ」と同一の位置番号（TOKEN_POS=3）を付与する。さらに、位置補正情報付与部２３４は、１番目の除外トークン「−」については、位置補正値（OFFSET=1）を付与し、２番目の除外トークン「−」については、起点となる見出し語トークンからの位置関係に対応して、位置補正値（OFFSET=2）を付与する。
【００５５】
また、２番目の除外トークン「−」が後続する１番目の除外トークンには、さらに、付加情報（HAS_NEXT=true）が付与されているが、これは、上記と同様に、後続トークンが存在することを識別できるよう付されるものである。索引付け処理部２３６は、除外トークンが後続する除外トークンに対しても、付加情報（HAS_NEXT=true）を付加して、索引付けを行うことにより、逆引き索引付けした後も除外トークンが後続していることを容易に識別可能としている。
【００５６】
なお、説明する実施形態では、付加情報が、除外トークンが後続するトークンを識別する情報であるとして説明したが、逆引き索引付けした後に除外トークンが後続するトークンを識別可能である限り、特に限定されるものではない。例えば、他の実施形態では、図４（Ｂ）に例示するように、除外トークンが後続しないトークンに対し、付加情報（NOT_HAVE=true）を付与し、付加情報（NOT_HAVE=true）が、除外トークンが後続しないトークンを示す情報であるとしてもよい。
【００５７】
また、説明する実施形態では、位置番号は、見出し語トークン間の差分を固定値１として定義されるものとして説明したが、１以外の他の固定値を用いてもよく、またフレーズ検索をサポートできる限り、固定値に限定されず、本索引作成処理は、種々の変形例に対し適用することができる。
【００５８】
索引構築部２３０は、各解析データ（コンテンツ）について得られた索引エントリを用いて、見出し語（除外トークンに対応する語も含まれる。）毎に全コンテンツにわたって整理し、最終的な逆引き索引付けを行い、索引データを索引格納部２１６に格納する。その際に、索引構築部２３０は、ｔｆ−ｉｄｆ（Term Frequency inverse Document Frequency）などで算出される統計値を、索引全体で各見出し語について整理して付加することもできる。
【００５９】
なお、図１に示した検索用データ１０６，１１２は、図２に示す索引格納部２１６が格納する索引データと、解析データ格納部２１４が格納する解析データとを含んで構成することができる。解析データは、検索結果に含ませるコンテンツ・サマリなどを生成するためなどに使用することもできる。
【００６０】
（３）サーバによる索引作成方法
図５は、本実施形態による索引作成装置としてのサーバ１０４が実行する、索引作成方法を示すフローチャートである。図５に示す処理は、外部指令に応答して、スケジュールされたタイミングの到来に応答して、または新たな解析データが追加されたことに応答して、ステップＳ１００から開始する。なお、図５では、新規追加されたコンテンツの文書データ毎に実行される処理として説明しているが、コンテンツの内容の更新に伴う再索引付けについても、図５に示すものと同様の処理によって行うことができる。
【００６１】
ステップＳ１０１では、文字列解析部２２０は、コンテンツ格納部２１２に格納されたコンテンツから入力文字列を抽出して、文書データを取得する。ステップＳ１０２では、文字列解析部２２０は、索引データにおいてコンテンツ（文書データ）を一意に識別する文書識別子（DOC_ID）を採番する。ステップＳ１０３では、文字列解析部２２０は、トークン分割部２２２により、取得された文書データの入力文字列を１以上のトークンに分割する。得られた解析データは、解析データ格納部２１４に格納される。
【００６２】
ステップＳ１０４では、索引構築部２３０は、解析データを読み出し、まず先頭に位置する見出し語トークンを取得する。ステップＳ１０５では、索引構築部２３０は、取得した見出し語トークンを現在の処理対象として設定する。ステップＳ１０６では、索引構築部２３０は、トークン位置定義部２３２により、処理対象の見出し語トークンに対し位置番号を定義する。位置番号は、例えば、先頭の見出し語トークンを始点の位置番号（TOKEN_POS=0）として、以降の見出し語トークンについて固定値を増分させながら定義される。
【００６３】
ステップＳ１０７では、索引構築部２３０は、トークン列から当該処理対象の見出し語トークンの次に位置するトークンを取得し、その次トークンが除外トークンであるか否かを識別する。ステップＳ１０８では、索引構築部２３０は、次トークンが除外トークンであるか否かに対応して処理を分岐させる。
【００６４】
ステップＳ１０８で、次トークンが除外トークンではないと判定された場合（ＮＯ）は、ステップＳ１０９へ処理を分岐させる。この場合、現在の処理対象の見出し語トークンを起点とする除外トークンが後続しないと判断できる。ステップＳ１０９では、索引構築部２３０は、索引付け処理部２３６により、処理対象の見出し語トークンについて、文書識別子（DOC_ID）および位置番号（TOKEN_POS）をセットにして索引エントリ（"TOKEN" (DOC_ID, TOKEN_POS)）を追加して、そのまま索引付けを行う。
【００６５】
ステップＳ１１０では、索引構築部２３０は、次トークンが存在せず、トークン列の末尾に達したか否かを判定する。ステップＳ１１０で、トークン列の末尾にまだ達していないと判定された場合（ＮＯ）には、索引構築部２３０は、ステップＳ１０５へ処理をループさせて、現在処理対象の見出し語トークンの次の見出し語トークンを処理対象に設定し、トークン列の末尾に達するまで、ステップＳ１０５以降の処理を繰り返させる。
【００６６】
一方、ステップＳ１０８で、次のトークンが除外トークンであると判定された場合（ＹＥＳ）は、ステップＳ１１２へ処理を分岐させる。この場合、現在の処理対象の見出し語トークンを起点として、後続する除外トークンが存在する。ステップＳ１１２では、索引構築部２３０は、索引付け処理部２３６により、処理対象の見出し語トークンについて、文書識別子（DOC_ID）、位置番号（TOKEN_POS）、さらに付加情報（HAS_NEXT=true）をセットにして、後続する除外トークン有りとして索引エントリ（"TOKEN" (DOC_ID, TOKEN_POS, true)）を追加し、索引付けする。
【００６７】
ステップＳ１１３では、索引構築部２３０は、次トークンとして取得された除外トークンを現在の処理対象として設定する。ステップＳ１１４では、索引構築部２３０は、位置補正情報付与部２３４により、現在処理対象の除外トークンに対し、起点となる見出し語トークンと同一の位置番号を付与する。ステップＳ１１５では、索引構築部２３０は、位置補正情報付与部２３４により、現在処理対象の除外トークンに対し、さらに、起点となる見出し語トークンからの位置補正値（OFFSET）を算出し、付与する。
【００６８】
ステップＳ１１６では、索引構築部２３０は、当該処理対象の除外トークンのさらに次に位置するトークンを取得し、次トークンが除外トークンであるか否かを識別する。ステップＳ１１７では、索引構築部２３０は、次トークンが除外トークンであるか否かに対応して処理を分岐させる。
【００６９】
ステップＳ１１７で、次トークンが除外トークンではないと判定された場合（ＮＯ）は、ステップＳ１１８へ処理を分岐させる。この場合、現在処理対象の除外トークンに後続する除外トークンが存在しないと判断できる。ステップＳ１１８では、索引構築部２３０は、索引付け処理部２３６により、処理対象の除外トークンについて、文書識別子（DOC_ID）、位置番号（TOKEN_POS）および位置補正値（OFFSET）をセットにして、索引エントリ（"TOKEN" (DOC_ID, TOKEN_POS, OFFSET)）を追加し、索引付けし、ステップＳ１１０へ分岐させる。この場合、ステップＳ１１０でトークン列の末尾に達したか否かが判定されて、トークン列の末尾に未だ達していないと判定された場合（ＮＯ）には、ステップＳ１０５へループさせる。
【００７０】
一方、ステップＳ１１７で、次トークンが除外トークンであると判定された場合（ＹＥＳ）は、ステップＳ１１９へ処理を分岐させる。この場合、現在処理対象の除外トークンにさらに後続する除外トークンが存在するため、ステップＳ１１９では、索引構築部２３０は、索引付け処理部２３６により、処理対象の除外トークンについて、文書識別子（DOC_ID）、位置番号（TOKEN_POS）、位置補正値（OFFSET）、さらに付加情報（HAS_NEXT=true）をセットにして、後続する除外トークン有りとして索引エントリ（"TOKEN" (DOC_ID, TOKEN_POS, OFFSET, true)）を追加し、索引付けする。この場合、索引構築部２３０は、ステップＳ１１３へ処理をループさせて、現在処理対象の次の除外トークンを処理対象に設定し、見出し語トークンを起点とした除外トークンの末端まで、ステップＳ１１３〜ステップＳ１１９の処理を繰り返させる。
【００７１】
再びステップＳ１１０を参照すると、ステップＳ１０９で処理対象の見出し語トークンの索引付けが行われるか、またはステップＳ１１８で処理対象の除外トークンの索引付けが行われるかして、ステップＳ１１０で、トークン列の末尾に達したと判定される場合（ＹＥＳ）には、ステップＳ１１１へ処理を分岐させて、当該コンテンツについての処理を終了させる。
【００７２】
上述した索引作成方法が行われ、索引構築部２３０により、トークン毎に全コンテンツにわたって整理されて、逆引き索引付けが完了すると、図６に例示されるような索引データが構築される。図６に示すように、索引データには、各見出し語トークンについて、該見出し語トークンが出現する文書データの文書識別子（DOC_ID）、その文書データ内の出現位置（TOKEN_POS）、および適宜その出現位置にかかるトークンに除外トークンが後続するか否かを示す付加情報（HAS_NEXT）が関連付けられたセットが登録される。
【００７３】
除外トークンについても同様に、逆引き索引データには、その除外トークンが出現する文書データの文書識別子（DOC_ID）、該文書データ内における起点となる見出し語トークンの出現位置（TOKEN_POS）、該起点からの位置補正値（OFFSET）、および適宜その出現位置にかかる除外トークンにさらに除外トークンが後続するか否かを示す付加情報（HAS_NEXT）が関連付けられたセットが登録される。
【００７４】
上述したように、本実施形態による索引作成処理では、コンテンツ内の入力文字列が除外トークンを含んで構成される場合でも、除外トークンに対し、該除外トークンが後続する起点となる見出し語トークンからの位置情報が付与される。これにより、詳細を後述するように、除外トークンを考慮したフレーズ検索が可能となる。
【００７５】
（４）サーバによる検索処理
ここで再び図２を参照する。検索部２４０は、クライアント１０２からの検索要求に応答して、索引格納部２１６の索引データを照合して検索処理を実行し、クライアント１０２へ検索結果を返す処理を行う。検索部２４０は、より詳細には、検索要求受付部２４２と、検索結果作成部２４４と、検索モード判定部２４６と、通常モード検索処理部２４８と、補正モード検索処理部２５０とを含んで構成される。
【００７６】
これに対し、クライアント１０２は、ウェブ・ブラウザ、プラグインなどのソフトウェアと、プロセッサ、該プロセッサの実行空間を提供するＲＡＭなどのハードウェアとが協働して機能する検索照会部２６０を含んで構成される。検索照会部２６０は、より詳細には、検索要求部２６２と、検索結果表示部２６４と、補正モード指定部２６６とを含んで構成される。
【００７７】
クライアント１０２の検索要求部２６２は、検索時において、例えば図１２（Ａ）に示すようなブラウザ画面３００上の検索ボタン３０４がクリックされたことに応答して、検索テキスト・ボックス３０２に入力された検索クエリを含む検索要求をサーバ１０４に送信する。上記検索要求は、除外トークンの位置を補正して除外トークンを考慮した検索モード（以下、補正モードという。）による検索を行うか、除外トークンを考慮しない検索モード（以下、通常モードという。）による検索を行うかを指定するモード指定値を含むことができる。モード指定値は、例えばブラウザ画面３００上の検索モードを指定するためのＧＵＩ部品（チェックボックス）３０６に対し、操作が行われたことに対応して、補正モード指定部２６６が設定する。
【００７８】
サーバ１０４の検索要求受付部２４２は、クライアント１０２の検索要求部２６２からの検索要求を受け付けて、検索要求にかかる検索クエリを取得するとともに、モード指定値を取得する。検索モード判定部２４６は、取得したモード指定値を参照して、求められている検索モードを判定する。検索モード判定部２４６は、除外トークンを考慮した補正モードが指定される場合には、補正モード検索処理部２５０に対し検索処理依頼を発行する。一方、除外トークンを考慮しない通常モードが指定されている場合には、検索モード判定部２４６は、通常モード検索処理部２４８に対し検索処理依頼を発行する。
【００７９】
クライアント１０２から送信される検索要求の検索クエリは、検索文字列を含み、検索要求受付部２４２は、形態素解析により検索文字列を検索トークンに分割して、検索トークン列を生成する。検索トークンが単一の場合は、単一語検索となり、検索トークンが複数ある場合は、フレーズ検索となる。単一の検索トークンによる単一語検索の場合は、トークンの位置関係が無関係であるため、モード指定値にかかわらず、通常モードの検索処理が行われる。
【００８０】
通常モードが指定される場合、通常モード検索処理部２４８は、検索処理依頼を受領すると、索引格納部２１６の索引データを照会して、除外トークンを考慮しない検索処理を実行する。通常モード検索処理部２４８は、検索処理の実行結果として、除外トークンとの関係に関わらず、検索クエリに一致するトークン（列）を含むコンテンツの照会集合を取得する。
【００８１】
単一語検索について説明すると、例えば、「ｔａｘｉ」、「ｄｒｉｖｅｒ」、「−」といった検索トークンによる単一語検索が要求される場合、通常モード検索処理部２４８は、そのまま、「ｔａｘｉ」、「ｄｒｉｖｅｒ」、「−」などの指定された検索トークンを含むコンテンツの照会集合を取得する。検索文字列から切り出される検索トークンについても、索引作成処理に関して上述したように、見出し語トークンと、除外トークンとが含まれる。検索トークン「−」が除外トークンであっても、除外トークン「−」を含めて索引データが索引付けされているため、単一語検索では、除外トークン「−」を見出し語として扱って、トークン「−」を含む照会集合を得ることができる。
【００８２】
補正モードが指定される場合、補正モード検索処理部２５０は、検索処理依頼を受領すると、索引格納部２１６の索引データを照会し、詳細を後述する除外トークンを考慮した検索処理を実行する。補正モード検索処理部２５０は、検索処理の実行結果として、除外トークンとの関係を含めて検索クエリに一致するトークン列を含むコンテンツの照会集合を取得する。
【００８３】
検索結果作成部２４４は、検索処理部２４８，２５０が作成したコンテンツ・リストを取得し、リストに含まれる識別値（DOC_ID）を解析データ格納部２１４に与えて、対応する解析データやコンテンツのポインタなどを取得し、検索結果を作成する。照会集合中のコンテンツがランク付けできる態様であれば、検索結果作成部２４４は、照会集合中の総合スコア上位所定数までスコア順にソートし、各コンテンツ毎に、ＵＲＩやパス名を指定してリンク可能な態様としたコンテンツ・サマリを含むデータとして作成することができる。
【００８４】
作成された検索結果のデータは、クライアント１０２に送信される。クライアント１０２の検索結果表示部２６４は、検索結果のデータを受信して、例えば、ブラウザ画面３１０上に、総合スコア上位所定数までのコンテンツ毎に、ＵＲＩやパス名を指定してリンク可能な態様でコンテンツ・サマリ３１２ａ，３１２ｂを表示させる。
【００８５】
（４−１）通常モードのフレーズ検索
以下、通常モードにおけるフレーズ検索処理について説明する。図７は、通常モードによるフレーズ検索処理について説明する図である。図７は、検索文字列が「ｔａｘｉ  ｄｒｉｖｅｒ」または「ｔａｘｉ−ｄｒｉｖｅｒ」である場合であって、例文１（DOC_ID=1）および例文２（DOC_ID=2）について索引データが索引付けされている場合における処理を例示する。検索文字列「ｔａｘｉ−ｄｒｉｖｅｒ」の場合、除外トークン「−」が無視されるため、両検索文字列は、共に、「ｔａｘｉ」および「ｄｒｉｖｅｒ」の検索トークンに分割され、先頭から順に、それぞれのトークンに位置番号０（TOKEN_POS=0）および位置番号１（TOKEN_POS=1）が付される。ここで、「ｔａｘｉ」および「ｄｒｉｖｅｒ」の検索トークン間の位置番号の差分は１となる。
【００８６】
一方、索引データを参照すると、例文１（DOC_ID=1）および例文２（DOC_ID=2）の文書データは、共に、差分が１、すなわち連接するトークン「ｔａｘｉ」およびトークン「ｄｒｉｖｅｒ」を含む。したがって、例文１（DOC_ID=1）および例文２（DOC_ID=2）は、共に、検索クエリの検索トークン列に位置番号を含めて整合するトークン列を含むため、共にヒットとなる。この際、索引データにおいて、例文２（DOC_ID=2）のトークン「ｔａｘｉ」に対し、付加情報（HAS_NEXT=true）が付され、またトークン「ｔａｘｉ」と同じ位置番号を有する除外トークン「−」が存在することは、通常モードの検索結果に影響しない。
【００８７】
（４−２）補正モードのフレーズ検索
以下、補正モードにおけるフレーズ検索処理について説明する。図８〜図１０は、補正モードによるフレーズ検索処理について説明する図である。図８は、検索文字列が「ｔａｘｉ−ｄｒｉｖｅｒ」である場合であって、例文２（DOC_ID=2）について索引データが索引付けされている場合における処理を例示する。
【００８８】
検索文字列「ｔａｘｉ−ｄｒｉｖｅｒ」の場合、補正モードでは、除外トークン「−」も考慮されるため、「ｔａｘｉ」、「−」および「ｄｒｉｖｅｒ」の３つの検索トークンに分割される。また、補正モードであっても、位置番号の算出の際には除外トークン「−」は除外されるため、トークン「ｔａｘｉ」およびトークン「ｄｒｉｖｅｒ」には、それぞれ、先頭から順に位置番号０（TOKEN_POS=0）および位置番号１（TOKEN_POS=1）が付される。
【００８９】
補正モードでは、除外トークンを考慮した検索を行うため、検索トークン列についても、索引作成処理と同様に補足情報が付される。除外トークン「−」が後続する見出し語トークン「ｔａｘｉ」には、後続トークンが存在することを示す付加情報（HAS_NEXT=true）が付される。除外トークン「−」については、その前方の見出し語トークン「ｔａｘｉ」と同一の位置番号０（TOKEN_POS=0）が付され、さらに、位置補正値（OFFSET=1）が付される。
【００９０】
一方、索引データを参照すると、例文２（DOC_ID=2）の文書データは、位置番号の差分が１であるトークン「ｔａｘｉ」および「ｄｒｉｖｅｒ」を含む。さらに、例文２（DOC_ID=2）の文書データでは、トークン「ｔａｘｉ」には、付加情報（HAS_NEXT=true）が付され、さらにトークン「ｔａｘｉ」と同一の位置番号には、除外トークン「−」が存在し、その除外トークン「−」には、位置補正値（OFFSET=1）が付されている。
【００９１】
したがって、図８に示す例では、例文２（DOC_ID=2）は、検索クエリを構成する検索トークン列に、見出し語トークンの連接関係（位置番号）が整合し、かつ、除外トークンとの連接関係（付加情報並びに除外トークンの位置番号および位置補正値を含む。）を含めて整合するトークン列を含むため、ヒットとなる。
【００９２】
図９は、検索文字列が「ｔａｘｉ−ｄｒｉｖｅｒ」である場合であって、例文１（DOC_ID=1）について索引データが索引付けされている場合における処理を例示する。この場合、検索トークン列は、上述した図８の場合と同様となる。
【００９３】
索引データを参照すると、例文１（DOC_ID=1）の文書データは、位置番号の差分が１であるトークン「ｔａｘｉ」およびトークン「ｄｒｉｖｅｒ」を含む。しかしながら、例文１（DOC_ID=1）の文書データでは、トークン「ｔａｘｉ」には、付加情報が存在せず（HAS_NEXT=false）、トークン「ｔａｘｉ」と同一の位置番号に、除外トークン「−」は存在しない。したがって、例文１（DOC_ID=1）は、検索クエリを構成する検索トークン列に、見出し語トークンの連接関係（位置番号）が整合するトークン列を含むものの、除外トークンとの連接関係（付加情報並びに除外トークンの位置番号および位置補正値を含む。）を含めて整合するトークン列が存在しないため、ヒットとはならない。
【００９４】
図１０は、検索文字列が「ｔａｘｉ  ｄｒｉｖｅｒ」である場合であって、例文２（DOC_ID=2）について索引データが索引付けされている場合における処理を例示する。この場合、位置番号（TOKEN_POS=0）を有する「ｔａｘｉ」と、位置番号（TOKEN_POS=1）を有する「ｄｒｉｖｅｒ」の２つの検索トークンに分割される。
【００９５】
補正モードでは、除外トークンを考慮するため、検索トークン列についても、適宜補足情報が付される。除外トークンが後続しない見出し語トークン「ｔａｘｉ」および「ｄｒｉｖｅｒ」には、後続する除外トークンが存在しないことを示す付加情報（HAS_NEXT=false）が付されるか、またはそのまま省略される。
【００９６】
索引データを参照すると、例文２（DOC_ID=2）の文書データは、位置番号の差分が１であるトークン「ｔａｘｉ」および「ｄｒｉｖｅｒ」を含む。しかしながら、例文２（DOC_ID=2）では、トークン「ｔａｘｉ」には、付加情報（HAS_NEXT=true）が存在し、さらに、トークン「ｔａｘｉ」と同一の位置番号に、位置補正値（OFFSET=1）を有する除外トークン「−」が存在する。
【００９７】
したがって、例文２（DOC_ID=2）は、検索クエリを構成する検索トークン列に、見出し語トークンの連接関係が整合するトークン列を含むものの、検索トークン列に存在しない除外トークンを含むという意味で、除外トークンとの連接関係を含めて整合するトークン列が存在しないため、ヒットとはならない。
【００９８】
（４−３）ランク付け
以下、検索結果を作成するためのランク付け処理について説明する。図１１は、本実施形態におけるランク付けのための重み付けを説明する図である。本実施形態による索引データを用いると、見出し語トークンの連接関係が整合し、かつ、除外トークンとの連接関係を含めて整合する完全一致のトークン列と、見出し語トークンの連接関係が整合するものの、除外トークンとの連接関係を含めると整合しない限定付き一致のトークン列とを識別することができる。そこで、本実施形態の検索システム１００では、上記完全一致および限定付き一致に対し、ランク付け結果に差が生じるように、異なる重み値を与えることができる。
【００９９】
例えば、特定の実施形態では、図１１に示すように、見出し語トークンの連接関係が整合する場合に０．５の重み値を与え、さらに除外トークンとの連接関係を含めて整合する場合に０．５を加算した重み値とし、完全一致に対し、限定付き一致に比較して大きな重みを与えることができる。
【０１００】
コンテンツに対して算出される総合スコアは、例えば、文書データ内で完全一致のトークン列が出現する回数に完全一致の重み付けを乗じたスコア（完全一致数×１）と、文書データ内で限定付き一致のトークン列が出現する回数に限定付き一致の重み付けを乗じたスコア（限定付き一致数×０．５）との総和とすることができる。
【０１０１】
上記構成により、除外トークンの整合を加味した検索結果を提供し、検索者が入力した検索文字列により近いコンテンツを上位に配置することができる。また、完全一致しない限定付き一致のコンテンツについても、検索結果に含ませてランク付けを行うことにより、検索漏れも少なくなり、高品質な検索が可能となる。
【０１０２】
（４−４）固有フレーズ検索
また、上述した説明においては、検索モードは、クライアント１０２側の補正モード指定部２６６によって通常モードまたは補正モードが指定されるものとして説明した。しかしながら、予め補正モードで検索する固有のフレーズを登録しておくことにより、クライアント１０２側に煩雑な操作を要求せずに、補正モードの検索処理を呼び出すことができる。
【０１０３】
図１３は、固有フレーズが登録可能な実施形態によるサーバ１０４上に実現される、検索部２４０の機能ブロック図である。図１３を参照すると、図２にも示した検索要求受付部２４２、検索結果作成部２４４、検索モード判定部２４６、通常モード検索処理部２４８および補正モード検索処理部２５０に加えて、検索モード変更部２５２および固有フレーズ登録部２５４を含んで構成される。
【０１０４】
固有フレーズ登録部２５４は、予め登録処理された固有フレーズ（固有のトークン列）を登録している。この固有フレーズは、検索文字列を構成するトークン列中に該固有トークン列が含まれる場合に、指定されたモードが通常モードである場合でも、少なくとも当該固有トークン列かかる部分について、除外トークンを考慮した検索を行うものとして、予め登録されるフレーズである。なお、説明する実施形態では、検索文字列を構成するトークン列中に該固有トークン列が含まれる場合に、すべての検索トークン列について、補正モードによる検索を行うものとする。しかしながら、他の実施形態では、固有トークン列の部分だけ除外トークンを考慮した検索とするよう構成することもできる。
【０１０５】
固有フレーズが登録可能な実施形態においても、モード指定値は、ブラウザ画面３００上のＧＵＩ部品３０６に対し操作が行われたことに対応して、クライアント１０２側の補正モード指定部２６６が設定することができる。検索モード変更部２５２は、検索クエリ内の検索文字列から分割された検索トークン列と、固有フレーズ登録部２５４に登録された固有フレーズ（固有トークン列）とを比較し、検索クエリ中に固有フレーズが含まれるか否かを判定する。そして、検索クエリ中に固有フレーズが含まれる場合は、検索モード変更部２５２は、指定された検索モードに関わらず、補正モードに変更する。検索モード判定部２４６は、検索モードが補正モードに変更されたことに伴い、補正モード検索処理部２５０に対し、検索処理依頼を発行する。
【０１０６】
社名、プロジェクト名、製品名などの固有フレーズを固有フレーズ登録部２５４に登録することで、検索時に、登録された固有フレーズが検索クエリに含まれる場合でも、検索者に追加の操作を要求せずに、暗黙的に除外トークンを考慮した検索結果を返すことが可能となる。
【０１０７】
例えば、検索者にとって「Ａ−Ｂ」という語が製品名であり重要である場合、通常モードの検索では、「−」は無視され、「Ａ／Ｂ」、「Ａ  Ｂ」のような必ずしも正確に一致しない語にもヒットしてしまい、検索者が必ずしも望まない結果となってしまう可能性がある。これに対して、「Ａ−Ｂ」という語を固有フレーズとして登録しておくことにより、検索文字列に固有フレーズ「Ａ−Ｂ」が含まれる場合、正確に一致する語にだけヒットとし、「Ａ／Ｂ」、「Ａ  Ｂ」のような正確に一致しない語については、低い重みでランク付けするか、ヒットから除外することができる。
【０１０８】
また、社名、プロジェクト名、製品名などについては、固有名詞として索引付けの際の辞書に登録することも可能であるが、その場合、固有名詞を追加する度に索引データを一から再構築する必要がある。これに対し、説明する実施形態では、索引データを一から再構築する必要はなく、固有フレーズを固有フレーズ登録部２５４に登録するだけで、これまで構築された索引データをそのまま使用して、特定の固有フレーズについて暗黙的に除外トークンを考慮した検索結果を返すことが可能となる。
【０１０９】
（５）サーバによる検索方法
図１４および図１５は、本実施形態による検索装置としてのサーバ１０４が実行する、フレーズ検索方法を示すフローチャートである。図１４および図１５に示す処理は、連結点Ａおよび連結点Ｂで接続されている点に留意されたい。
【０１１０】
図１４および図１５に示す処理は、クライアント１０２から検索要求を受信したことに応答して、ステップＳ２００から開始する。ステップＳ２０１では、検索部２４０は、検索要求受付部２４２により、クライアント１０２からの、検索文字列および検索モード指定を含む検索要求を受け付ける。ステップＳ２０２では、検索部２４０は、検索要求に含まれる検索文字列を１以上の検索トークンに分割し、検索トークン列を生成する。
【０１１１】
ステップＳ２０３では、検索部２４０は、検索モード判定部２４６により、検索モードを判定する。ステップＳ２０３で、検索モードが補正モードではないと判定された場合（ＮＯ）は、ステップＳ２０４へ処理を分岐し、通常モードによる検索を行う。
【０１１２】
ステップＳ２０４では、検索部２４０は、通常モード検索処理部２４８により、検索トークン列から除外トークンを削除し、各検索トークンに対し位置番号を計算する。ステップＳ２０５では、検索部２４０は、索引格納部２１６内から、各検索トークンに対応する各逆引き索引リストを取得する。ここで、逆引き索引リストとは、索引格納部２１６内のトークン毎に整理された逆引き索引データのうち、所定のトークンに関連して、出現文書、出現位置および適宜補足情報の配列を含むリストをいう。
【０１１３】
ステップＳ２０６では、検索部２４０は、通常モード検索処理部２４８により、連接判定を行いながら、検索トークン列（除外トークンは除外済みである。）に、位置番号を含めて一致するトークン列が含まれる文書データの集合（コンテンツ・リスト）を取得し、ステップＳ２０７へ処理を進める。ステップＳ２０７では、検索部２４０は、検索結果作成部２４４により、通常モード検索処理部２４８により作成されたコンテンツ・リストを用いて、対応する解析データやコンテンツのポインタなどを取得し、検索結果を作成し、検索要求に対する応答として要求元に返却する。ステップＳ２０８では、検索部２４０は、検索処理を終了する。
【０１１４】
一方、ステップＳ２０３で、検索モードが補正モードであると判定された場合（ＹＥＳ）は、ステップＳ２０９へ処理を分岐し、補正モードによる検索を行う。ステップＳ２０９では、検索部２４０は、補正モード検索処理部２５０により、検索トークン列の各検索トークンに対し、位置番号を計算し、適宜付加情報を求め、さらに、除外トークンについては、位置補正値（OFFSET）を計算する。ステップＳ２１０では、検索部２４０は、索引格納部２１６内から、各検索トークンに対応する各逆引き索引リストを取得する。
【０１１５】
ステップＳ２１１では、検索部２４０は、補正モード検索処理部２５０により、連接判定を行いながら、まず、検索トークン列（ここでは、除外トークンを除く。）に位置番号を含めて整合するトークン列が含まれる文書データの照会集合を取得し、ステップＳ２１２へ処理を進める。ステップＳ２１２〜ステップＳ２２４では、検索部２４０は、補正モード検索処理部２５０により、各文書データの各一致点について、ステップＳ２１３〜ステップＳ２２３の処理を行う。
【０１１６】
ステップＳ２１３では、補正モード検索処理部２５０は、検索トークン列の先頭に位置する見出し語トークン（以下、検索見出し語トークンという。）を処理対象に設定する。ステップＳ２１４では、補正モード検索処理部２５０は、処理対象の検索見出し語トークンに関して、索引中の一致点にかかる見出し語トークンとを比較し、付加情報が整合するか否かを判定する。ステップＳ２１４で、検索トークンに付加情報が付され（HAS_NEXT=true）、索引中の見出し語トークンに付加情報が付されていない（HAS_NEXT=false）場合や、逆の場合など、整合しないと判定された場合（ＮＯ）には、連結点Ｂを介してステップＳ２２４へ分岐させ、次の一致点へと処理を進める。
【０１１７】
一方、ステップＳ２１４で、検索トークンおよび索引中の見出し語トークンが共に付加情報が付されている（HAS_NEXT=true）場合、または、共に付加情報が付されていない（HAS_NEXT=false）場合（ＹＥＳ）には、ステップＳ２１５へ処理を進める。
【０１１８】
ステップＳ２１５では、付加情報（HAS_NEXT=true）で整合しているか（つまり後続する除外トークンがあるか）否かを判定する。ステップＳ２１５で、付加情報なし（HAS_NEXT=false）として整合し、後続トークンが無いと判定された場合（ＮＯ）は、ステップＳ２２１へ処理を分岐させて、検索トークン列の末尾に達したか否かを判定する。ステップＳ２２１で、末尾に達していないと判定された場合（ＮＯ）には、ステップＳ２２２へ処理を分岐させ、次の検索見出し語トークンを処理対象に設定し、ステップＳ２１４へ処理をループさせる。
【０１１９】
一方、ステップＳ２１５で、付加情報あり（HAS_NEXT=true）として整合し、後続トークンが有ると判定された場合（ＹＥＳ）は、ステップＳ２１６へ処理を進める。ステップＳ２１６では、補正モード検索処理部２５０は、逆引き索引リストを参照し、現在処理対象の検索トークンに後続する除外トークン（以下、検索除外トークンという。）と、位置番号および位置補正値を含めて整合する除外トークンの取得を試みる。
【０１２０】
ステップＳ２１７では、ステップＳ２１６において整合する除外トークンが有るか否かを判定する。ここでは、上記検索除外トークンに対応する逆引き索引リスト中に、位置番号および位置補正値が整合するエントリが有れば、整合する除外トークンが有ると判定される。
【０１２１】
ステップＳ２１７で、整合する除外トークンが無いと判定された場合（ＮＯ）は、連結点Ｂを介してステップＳ２２４へ分岐させて、次の一致点へと処理を進める。一方、ステップＳ２１７で、整合する除外トークンが有ると判定された場合（ＹＥＳ）には、ステップＳ２１８へ処理を進める。
【０１２２】
ステップＳ２１８では、補正モード検索処理部２５０は、現在処理対象の検索トークンに後続する検索除外トークンに関して、索引中の一致点にかかる除外トークンとを比較し、付加情報（HAS_NEXT）が整合するか否かを判定する。ステップＳ２１８で、検索除外トークンに付加情報が付され（HAS_NEXT=true）、索引中の除外トークンに付加情報が付されていない（HAS_NEXT=false）場合や、逆の場合など、後続判定が整合しないと判定された場合（ＮＯ）には、連結点Ｂを介してステップＳ２２４へ分岐させて、次の一致点へと処理を進める。一方、ステップＳ２１８で、整合すると判定された場合（ＹＥＳ）には、ステップＳ２１９へ処理を進める。
【０１２３】
ステップＳ２１９では、補正モード検索処理部２５０は、さらに後続する除外トークンがあるか否かを判定する。ステップＳ２１９で、付加情報なし（HAS_NEXT=false）として整合し、後続するトークンが無いと判定された場合（ＮＯ）は、ステップＳ２２１へ処理を分岐させて、末尾であるか否かを判定する。一方、ステップＳ２１９で、付加情報あり（HAS_NEXT=true）として整合し、後続するトークンが有ると判定された場合（ＹＥＳ）は、ステップＳ２２０へ処理を分岐させる。
【０１２４】
ステップＳ２２０では、次の検索除外トークンを処理対象に設定し、ステップＳ２１６へ処理をループさせる。この場合、処理対象の検索見出し語トークンを起点とした除外トークンの末端に達するまで、ヒット判定を継続する。
【０１２５】
ステップＳ２２１で、末尾であると判定された場合（ＹＥＳ）には、ステップＳ２２３へ処理を分岐させる。この場合、検索トークン列の先頭から末尾まで、すべてにおいて整合しているため、当該一致点は、完全一致であると判断できる。ステップＳ２２３では、当該文書データを完全一致するトークン列を含むものとして検索結果に含めて、連結点Ｂを介してステップＳ２２４へ分岐させて、次の一致点へと処理を進める。
【０１２６】
ステップＳ２１２〜ステップＳ２２４のループを抜けると、検索結果には、完全一致するトークン列を含む文書データの集合（コンテンツ・リスト）が得られるので、ステップＳ２０７では、検索部２４０は、検索結果作成部２４４により、補正モード検索処理部２５０により作成されたコンテンツ・リストを用いて、対応する解析データやコンテンツのポインタなどを取得し、検索結果を作成し、検索要求に対する応答として要求元に返却する。ステップＳ２０８では、検索部２４０は、検索処理を終了する。
【０１２７】
以上説明したように、本実施形態の文字列解析部２２０および索引構築部２３０により作成された索引データは、除外トークンについても索引付けされており、該除外トークンについては、それが後続する見出し語トークンを起点とする位置情報（位置番号および位置補正値）が付与されて、索引データが構築されている。このため、除外トークンを考慮して検索することが可能となる。
【０１２８】
また、同一の索引データを用いて、除外トークンを考慮しない通常モードの検索と、上記補正モードの検索との両方を共存させることもできる。さらに、除外トークンが後続するトークンに対し、後続の有無を識別する付加情報が付与されているため、逆引き索引においても、効率的にヒット判定を行うことが可能となる。ひいては、検索者の意図をより正確に反映した検索結果を得ることができ、高い適合率かつ効率的な情報検索を実現することができる。
【０１２９】
以上説明したように、本発明の実施形態によれば、句読点や記号など通常検索対象とならないトークンを考慮して情報検索が可能な検索システム、索引作成装置、検索装置、索引作成方法、検索方法およびプログラムを提供することができる。さらに、本発明の実施形態によれば、検索者の意図を的確に反映した検索結果を効率的に提供することを可能とする、検索システム、索引作成装置、検索エンジン、索引作成方法、検索方法およびプログラムを提供することができる。
【０１３０】
なお、本発明の実施形態において、好適に適用できる言語としては、説明に用いた英語の他、例えば、日本語、ドイツ語、フランス語、ロシア語、韓国語、中国語、アラビア語など、上述した以外の言語についても適用可能であることはいうまでもない。
【０１３１】
また、本発明につき、発明の理解を容易にするために各機能部および各機能部の処理を記述したが、本発明は、上述した特定の機能部が特定の処理を実行するほか、処理効率や実装上のプログラミングなどの効率を考慮して、いかなる機能部に、上述した処理を実行するための機能を割当てることができる。
【０１３２】
本発明の上記機能は、Ｃ＋＋、Ｊａｖａ（登録商標）、Ｊａｖａ（登録商標）Ｂｅａｎｓ、Ｊａｖａ（登録商標）Ａｐｐｌｅｔ、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｅｒｌ、Ｒｕｂｙなどのオブジェクト指向プログラミング言語、ＳＱＬなどの検索言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布または伝送して頒布することができる。
【０１３３】
これまで本発明を、特定の実施形態をもって説明してきたが、本発明は、実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【０１３４】
１００…検索システム、１０２…クライアント、１０４…サーバ、１０６…検索用データ、１０８…ネットワーク、１１０…サーバ、１１２…検索用データ、１１４…インターネット、１１６…ＲＤＢ、１１８…ファイル・サーバ、１２０…破線枠、２００…機能ブロック、２１０…コンテンツ収集部、２１２…コンテンツ格納部、２１４…解析データ格納部、２１６…索引格納部、２２０…文字列解析部、２２２…トークン分割部、２２６…辞書格納部、２３０…索引構築部、２３２…トークン位置定義部、２３４…位置補正情報付与部、２３６…索引付け処理部、２４０…検索部、２４２…検索要求受付部、２４４…検索結果作成部、２４６…検索モード判定部、２４８…通常モード検索処理部、２５０…補正モード検索処理部、２５２…検索モード変更部、２５４…固有フレーズ登録部、２６０…検索照会部、２６２…検索要求部、２６４…検索結果表示部、２６６…補正モード指定部、３００，３１０…ブラウザ画面
【図１】
2013015967.tif 000003
【図２】
2013015967.tif 000004
【図３】
2013015967.tif 000005
【図４】
2013015967.tif 000006
【図５】
2013015967.tif 000007
【図６】
2013015967.tif 000008
【図７】
2013015967.tif 000009
【図８】
2013015967.tif 000010
【図９】
2013015967.tif 000011
【図１０】
2013015967.tif 000012
【図１１】
2013015967.tif 000013
【図１２】
2013015967.tif 000014
【図１３】
2013015967.tif 000015
【図１４】
2013015967.tif 000016
【図１５】
2013015967.tif 000017