(57)【特許請求の範囲】
【請求項１】
質問文を入力するための入力手段と、
単語をＮ次元ベクトル空間内の単語ベクトルに対応づける単語辞書と、
前記単語辞書を用いて前記質問文から質問文ベクトルを生成すると共に検索対象であるデータベースから入力され少なくとも一部に単語を含むデータから１又は複数のデータベクトルを生成するベクトル生成手段と、
前記質問文ベクトルと前記データベクトルとの類似度に基づいて前記質問文に適合するデータの検索を行う検索手段とを含む検索装置において、
前記単語辞書に登録された単語が少なくとも１つ以上含まれた前記質問文中に
前記単語辞書に登録されていない新単語があれば、前記新単語および前記新単語の単語ベクトルを前記単語辞書に追加する単語追加手段を持ち、
前記単語追加手段は、
（Ａ）前記検索手段にて検索された前記データベクトルの１つが選択された場合には、
前記ベクトル生成手段で生成された前記質問文ベクトルと、
選択された前記データベクトルとの重み付け平均を正規化したものを追加する単語の単語ベクトルとして生成し、
（Ｂ）前記データベクトルが選択されない場合には、
前記ベクトル生成手段で生成された前記質問文ベクトルを追加する単語の単語ベクトルとして
前記単語辞書に前記新単語および前記新単語の単語ベクトルを追加することを特徴とする検索装置。
【請求項２】
請求項１に記載の検索装置において、
前記単語追加手段が追加する単語を選別するための追加単語選別手段を備えることを特徴とする検索装置。
【請求項３】
コンピュータに質問文を入力するための入力手段の機能と、
単語をＮ次元ベクトル空間内の単語ベクトルに対応づける単語辞書の機能と、
前記単語辞書を用いて前記質問文から質問文ベクトルを生成すると共に検索対象であるデータベースから入力され少なくとも一部に単語を含むデータから１又は複数のデータベクトルを生成するベクトル生成手段の機能と、
前記質問文ベクトルと前記データベクトルとの類似度に基づいて前記質問文に適合するデータの検索を行う検索手段の機能と、
前記単語辞書に登録された単語が少なくとも１つ以上含まれた前記質問文中に
前記単語辞書に登録されていない新単語があれば、前記新単語および前記新単語の単語ベクトルを前記単語辞書に追加する単語追加手段の機能であって、
（Ａ）前記検索手段にて検索された前記データベクトルの１つが選択された場合には、
前記ベクトル生成手段で生成された前記質問文ベクトルと、
選択された前記データベクトルとの重み付け平均を正規化したものを追加する単語の単語ベクトルとして生成し、
（Ｂ）前記データベクトルが選択されない場合には、
前記ベクトル生成手段で生成された前記質問文ベクトルを追加する単語の単語ベクトルとして
前記単語辞書に前記新単語および前記新単語の単語ベクトルを追加する単語追加手段の機能と、を
コンピュータに実行させるプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子ブック・電子辞書等のテキストデータベース、写真画像等の画像データベース、インターネット上のデータベース、あるいはそれらの複合されたマルチメディアデータベースの検索装置及び検索プログラムを記録した記録媒体に関するものである。
【０００２】
【従来の技術】
ベクトルを使用した検索装置として、特開平６−１９５３８８号公報の文書検索装置がある。この文書検索装置で利用されているベクトルとは、（社）電子情報通信学会発行の信学技報ＡＩ９２−９９（１９９３）「大規模データベースからの連想検索」で提案された文脈ベクトルのことである。
【０００３】
文脈ベクトルとは、文章中の単語が持つ概念と文脈との関係の程度を示したものであり、多数の特徴単語との意味的な結合関係の程度をベクトル表現したものである。Ｎ個の概念分類を特徴単語とすると、Ｎ次元ベクトルの各要素の値を一つ一つの特徴単語に対応させることになる。単語ｉの特徴ベクトルＸi＝(ｘi1，ｘi2，‥‥‥，ｘiN）の各要素の値は、０≦ｘij≦Ｅmとなる。Ｅmは、正の定数である。単語ｉと特徴単語ｊとの間に関係がない場合には、ｘij＝０になり、関係がある場合にはその関係の程度に応じて大きい値をとる。例えば、特徴ベクトルが５つの特徴単語
（自然，都会，騒音，動物，緑）
から成り立っているとし、それぞれの要素の値が０か１の２値である場合には、単語「山」の文脈ベクトルを、
（１，０，０，１，１）
等と表すことができる。
【０００４】
このように単語とベクトルとを対応づけた単語辞書を持っておき、検索対象のデータベース内のデータからデータベクトルを、検索質問文から質問文ベクトルを生成し、それらのベクトルの類似度に基づいて検索を行っている。
このような検索装置の持つ単語ベクトルを修正する方法として、特開平９−２８８６７５号公報に記載の検索装置がある。この検索装置では、ある単語の単語ベクトルを他の単語の単語ベクトルに書き換えたり、単語ベクトルの要素を表示させてその要素の値を直接変更したり、利用者が検索結果に対してプラス評価やマイナス評価を付けることによってベクトルの修正を行っている。
【０００５】
【発明が解決しようとする課題】
ただし、この検索装置では既に単語辞書に存在する単語に対応づけられているベクトルしか修正することができないために、新しい単語を含むデータに対しては効果がないという問題がある。例えば、「山田」というような固有名詞で検索を行いたい場合、単語辞書に「山田」という単語が含まれていなければ、「山」と「田」というような分割された語で検索が行われることになる。
また、この検索装置では利用者が意図的にベクトルの修正の作業を行わなければならないので、検索装置で検索を行うだけではベクトルの修正が行われないという問題がある。
【０００６】
【課題を解決するための手段】
本発明の検索装置は、質問文を入力するための入力手段と、単語をＮ次元ベクトル空間内の単語ベクトルに対応づける単語辞書と、前記単語辞書を用いて前記質問文から質問文ベクトルを生成すると共に検索対象であるデータベースから入力され少なくとも一部に単語を含むデータから１又は複数のデータベクトルを生成するベクトル生成手段と、前記質問文ベクトルと前記データベクトルとの類似度に基づいて前記質問文に適合するデータの検索を行う検索手段とを含むものであって、単語辞書に含まれていない単語を追加する場合、前記ベクトル生成手段で生成された前記質問文ベクトルと、前記データベクトルとに基づいて追加する単語の単語ベクトルを生成して前記単語辞書に追加する単語追加手段を備えるものである。
また、前記単語追加手段が追加する単語を選別するための追加単語選別手段を備えることで、追加する必要のない単語を選別して追加の対象から除外することができる。
【０００７】
また、本発明の検索装置は、質問文を入力するための入力手段と、単語をＮ次元ベクトル空間内の単語ベクトルに対応づける単語辞書と、前記単語辞書を用いて前記質問文から質問文ベクトルを生成すると共に検索対象であるデータベースから入力され少なくとも一部に単語を含むデータから１又は複数のデータベクトルを生成するベクトル生成手段と、前記質問文ベクトルと前記データベクトルとの類似度に基づいて前記質問文に適合するデータの検索を行う検索手段とを含むものであって、単語辞書の単語ベクトルの修正を行う場合、前記ベクトル生成手段で生成された前記質問文ベクトルと、前記データベクトルとに基づいて修正する単語の単語ベクトルを生成して前記単語辞書に修正する単語ベクトル修正手段を備えるものである。これにより、単語辞書内の単語ベクトルの修正を行うことができる。
【０００８】
さらに、本発明は、コンピュータを、質問文を入力するための入力手段と、単語をＮ次元ベクトル空間内の単語ベクトルに対応づける単語辞書と、前記単語辞書を用いて前記質問文から質問文ベクトルを生成すると共に検索対象であるデータベースから入力され少なくとも一部に単語を含むデータから１又は複数のデータベクトルを生成するベクトル生成手段と、前記質問文ベクトルと前記データベクトルとの類似度に基づいて前記質問文に適合するデータの検索を行う検索手段とを含む検索装置であって、前記単語辞書に新たな単語及び単語ベクトルを追加する単語追加手段、または前記単語辞書の単語ベクトルを修正する単語ベクトル修正手段の少なくとも一つを備える検索装置として、前記ベクトル生成手段で生成された前記質問文ベクトルと、前記データベクトルとに基づいて追加する単語、または修正する単語の少なくとも一つの単語ベクトルを生成して前記単語辞書に追加または修正の少なくとも一つの機能を行うプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体である。
【０００９】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図１に、本発明による検索装置の一例の概略構成を示す。この検索装置は、検索質問文の入力を行うためのキーボード等の入力手段１、検索結果を表示するためのディスプレイ等の出力手段２、検索装置を制御するための制御手段３、単語とその単語に対応づけられている単語ベクトルを保持する単語辞書９、出力手段２に表示された検索結果を選択するためのキーボード等の選択手段１１、種々のデータを格納する外部記憶装置１２、検索プログラムを記録したＣＤ−ＲＯＭ２１の読み取り装置であるＣＤ−ＲＯＭドライバ２０からなると共に、その中に少なくとも１つは単語の含まれている検索対象となるデータを保持するデータベース１０が接続される。また、制御手段３は、単語辞書９を参照して入力手段１から入力された検索質問文から質問文ベクトルを生成し、データベース中のデータからデータベクトルを生成するベクトル生成手段４、検索を行う検索手段５、新しい単語を追加するための単語追加手段６、単語追加手段６で追加すべき単語を選別するための追加単語選別手段７、単語ベクトルのベクトルの修正を行う単語ベクトル修正手段８からなる。
【００１０】
単語辞書９、データベース１０は制御手段３に接続された外部記憶装置１２に格納されたものでもよい。また、データベース１０は、分散型データベースでもよく、ネットワーク上に存在するものでもよい。入力手段１は選択手段１１の機能を兼ねるようにしてもよい。
【００１１】
利用者がキーボード等の入力手段１から質問文を入力すると、質問文は制御手段３の中のベクトル生成手段４によってＮ次元ベクトル空間内の質問文ベクトルに変換される。質問文は、単一の単語からなるものであってもよいし、複数の単語を含む文であっても構わない。ベクトル生成手段４は、入力された質問文を一つ一つの単語に分解し、単語辞書９からそれぞれの単語に対応する単語ベクトルを読み出し、それらの単語ベクトルの和を計算し、和ベクトルの大きさが一定になるよう正規化することで、質問文ベクトルを生成する。同様に、ベクトル生成手段４は、データベース１０に含まれる各データに対しても、それらのデータを一つ一つの単語に分解し、単語辞書９からそれぞれの単語に対応する単語ベクトルを読み出し、それらの単語ベクトルの和を計算し、和ベクトルの大きさが一定になるように正規化することで、データベクトルを生成する。
【００１２】
検索手段５では、この質問文ベクトルとデータベクトルとの内積を計算して質問文ベクトルと各データベクトルとの距離を求め、最も距離の近いデータベクトルを持つデータから順に並べ、それらを検索結果として出力手段２に出力する。出力するデータの数は、全てのデータとしても、決められた数のデータとしても、内積がある値以上のデータとしてもよい。
【００１３】
出力手段２に表示された検索結果のデータの中から目的のデータを選択するために、利用者は選択手段１１から所望のデータの選択を行う。例えば、インターネット上のデータの検索を想定した場合には、検索結果にはインターネット上のデータのタイトル、ＵＲＬ（Uniform Resource Locator）、要約を表示しておき、選択手段１１で目的のデータを選択すると、そのデータのＵＲＬの情報を表示するというような場面で使用するものである。
【００１４】
ここで、単語追加手段６の機能について説明する。単語追加手段６での処理の流れを図４に示す。単語追加手段６での単語追加の処理は、検索手段５で検索が行われた後に、選択手段１１で検索結果を選択した時か、検索手段５で次の検索が行われる直前か、検索装置の使用を終了する直前の内のいずれか最初の状態になった時に行う。まず、単語追加手段６で単語の追加を行うかどうかの判定を行う（Ｓ１１）。ここでは、入力手段１から入力された検索質問文自体が単語辞書９に含まれていない場合に単語を追加することにする。単語辞書９の一例を図２に示す。ここでは、７次元のベクトルを使用しており、ベクトルの各要素の値は０と１の二値であるとする。例えば、質問文として「青空」と入力された場合には、「青」と「空」は単語辞書に含まれているが、「青空」自体は単語辞書に含まれていないので、「青空」で検索を行った場合には「青空」を新しい単語として追加することになる。質問文「青空」で検索を行った時の検索結果の一例を図３に示す。そして、利用者が３位に検索されたデータを閲覧しようとして、選択手段１１から３位に検索されたデータを選択したとする。この選択データを元にして、新しい単語の追加を行う（Ｓ１２）。新しい単語ベクトルＶnは、まずＶn'を、
Ｖn'＝αＶq＋βＶd
のように計算し、Ｖn'を正規化したものをＶnとする。ここで、Ｖqは質問文ベクトル、Ｖdは選択手段１１で選択したデータのデータベクトル、α，βは正の定数である。選択手段１１でデータを選択しなかった場合には、Ｖd＝０として新しい単語のベクトルを作成する。すなわち、質問文ベクトルＶqと、選択したデータのデータベクトルＶdとの重み付き平均を正規化したものを新しい単語のベクトルＶnとする。例えば、α＝β＝１として、上で述べた質問文「青空」で検索した場合は次のようになる。まず、質問文ベクトルＶqは、単語「青」と単語「空」のベクトルの和を正規化したものになるので、
Ｖq＝(３.１，６.３，６.３，０，３.１，０，０)
となる。ただし、大きさ１０になるように正規化し、各要素の値は小数第２位で四捨五入してある。また、データベクトルＶdは、単語「地方」と単語「風景」と単語「写真」の和を正規化したものになるので、
Ｖd＝(３.３，３.３，０，３.３，３.３，６.６，３.３)
となる。よって、
0003701515.tif 000002
となる。Ｖnを求める際に正規化を行うのであるが、図２に示した元の単語辞書のベクトルは二値であるので、ここでは、Ｖn'の要素の最も大きい値の１／２以上の要素を１、１／２未満の要素を０となるように正規化したとすると、
Ｖn＝(１，１，１，０，１，１，０)
となる。そして、これを新しく追加する単語「青空」の単語ベクトルにする。
【００１５】
次に、追加単語選別手段７の機能について説明する。この実施の形態における単語追加手段６では、入力手段１から入力された検索質問文自体が単語辞書９に含まれていない場合に単語を追加するようになっているが、何の選別も行わずに単語を追加していくと、追加を行う必要のない単語まで追加することになる。例えば、質問文が「空が青い」のように文になっている場合、同じ文が再び検索に使用される可能性は、文でない単語からなる質問文の場合に比べると低いと考えられるので、新しい単語として追加する効果があまり見込めない。そこで、図４に示した単語追加手段６の単語追加の処理Ｓ１２を行う際に、追加単語選別手段７では図５に示したような処理を行い、追加すべき単語であるかどうかの選別を行う。ここでは、追加する単語が漢字のみからなる場合と、カタカナのみからなる場合に実際に単語の追加を行うとする。追加単語選別手段７では、まず質問文が漢字のみからなるかを判別する（Ｓ２１）。もし、漢字のみからなっていれば、追加単語の対象とする（Ｓ２３）。そうでない場合は、次に質問文がカタカナのみからなるかを判別する（Ｓ２２）。もし、カタカナのみからなっていれば、追加単語の対象とする（Ｓ２３）。そうでなければ、その質問文は追加単語の対象としないことにする。
【００１６】
次に、単語ベクトル修正手段８の機能について説明する。単語ベクトル修正手段８での処理の流れを図６に示す。単語ベクトル修正手段８での単語ベクトル修正の処理は、検索手段５で検索が行われた後に、選択手段１１で検索結果を選択した時に行い、選択が行われなかった時には行わない。まず、単語ベクトル修正手段８で単語ベクトルの修正を行うかどうかの判定を行う（Ｓ３１）。ここでは、入力手段１から入力された検索質問文自体が単語辞書９に含まれている１つの単語の場合に、その単語の単語ベクトルを修正することにする。図２に示した単語辞書９を使っている場合に、単語「空」で検索した場合、「空」自体が１つの単語なので、単語ベクトルの修正の対象となる。ここで、図３に示した検索結果を、質問文「空」で検索を行った場合の結果であると考え、以下説明する。検索を行った後で、利用者が３位に検索されたデータを閲覧しようとして、選択手段１１から３位に検索されたデータを選択したとする。この選択データを元にして、単語ベクトルの修正を行う（Ｓ３２）。修正後の単語ベクトルＶaは、まず、Ｖa'を
Ｖa'＝αＶo＋βＶd
のように計算し、Ｖa'を正規化したものをＶaとする。ここで、Ｖoは修正する単語の元の単語ベクトルによる質問文ベクトル、Ｖdは選択手段１１で選択したデータのデータベクトル、α，βは正の定数である。例えば、α＝β＝１として、上で説明した質問文「空」で検索した場合は次のようになる。まず、単語「空」の元の単語ベクトルによる質問文ベクトルＶoは、
Ｖo＝(０，５.８，５.８，０，５.８，０，０)
となる。ただし、大きさ１０になるように正規化し、各要素の値は小数第２位で四捨五入してある。また、データベクトルＶdは、単語「地方」と単語「風景」と単語「写真」の和を正規化したものになるので、
Ｖd＝(３.３，３.３，０，３.３，３.３，６.６，３.３)
となる。よって、
0003701515.tif 000003
となる。Ｖaを求める際に正規化を行うのであるが、図に示した元の単語辞書のベクトルは二値であるので、Ｖn'の要素の最も大きい値の１／２以上の要素を１、１／２未満の要素を０となるように正規化するとすると、
Ｖa＝(０，１，１，０，１，１，０)
となる。そして、これを修正後の単語「空」の単語ベクトルにする。
【００１７】
以下に本発明の具体例を示す。データベース１０をインターネット上の分散データベースとし、いわゆるインターネット検索エンジンに本発明を利用した場合を考える。インターネット検索エンジンでは、インターネット上に分散しているデータの場所（ＵＲＬ）とそのデータの一部をデータベースとして持っている。そのようなデータの例を図７に示す。一番上の行がＵＲＬで、次がデータのタイトル、最後がデータの一部のテキストである。インターネット検索エンジンでは、データベース中にこのようなデータを膨大に持っており、利用者が入力した検索質問文に対して、何らかの検索処理を行った後に検索結果の表示を行う。検索結果にはＵＲＬによるリンクが付加されているので、利用者が検索結果を選択することによってそのデータの存在するサーバから直接データを受け取ることができるようになっている。
【００１８】
このようなインターネット検索エンジンに本発明を利用し、検索質問文「ホームベース」で検索を行った結果が図８のようであったとする。ただし、図８にはタイトル以外のデータの情報の表示は省略してある。また図８には、単語辞書９を使ってデータをデータベクトルに変換した結果も示している。単語辞書９には、図９のように「ホーム」と「ベース」の単語は存在していたが、「ホームベース」という単語は存在していなかったとする。すると、検索質問文「ホームベース」の質問文ベクトルＶq1は、「ホーム」と「ベース」のベクトルの和を正規化したものになるので、
Ｖq1＝(０，４.１，４.１，４.１，４.１，４.１，４.１)
となる。ただし、大きさ１０になるように正規化し、各要素の小数第２位を四捨五入してある。よって、質問文ベクトルとデータベクトルとの内積値は図８に示した通りになる。
【００１９】
ここで、図８の検索結果の中から利用者が４位の「昨日の本塁打」を選択したとする。すると、検索質問文「ホームベース」は単語辞書９に含まれていないので、新たに「ホームベース」を単語として単語辞書９に追加することになる。追加単語「ホームベース」の単語ベクトルＶnは、先に述べたように検索質問文と選択したデータベクトルを一定の割合で足し合わせたものになり、
Ｖn＝(４.２，６.２，３.１，３.７，１.３，４.３，０)
となる。ただし、α＝β＝１として、大きさ１０になるように正規化し、各要素の小数第２位を四捨五入してある。
【００２０】
ここで再び、検索質問文「ホームベース」で検索を行うとする。図８に示したデータベクトルは、単語「ホームベース」が加わることによって変化する可能性があるが、ここではデータベクトルには変化がないと仮定して話を進める。すると、単語「ホームベース」の単語ベクトルＶnとデータベクトルとの内積値を計算すると図１０のようになり、前回選択したデータ「昨日の本塁打」に関連する内容のデータが上位に検索されるのが分かる。
【００２１】
また、仮に単語「ホームベース」が含まれるデータが存在したとすると、「ホームベース」という単語が含まれるために、データベクトルの内容は単語「ホームベース」のベクトル内容に近づくようにデータベクトルが変化するので、検索質問文「ホームベース」に関連するデータが検索結果の上位に来るというのは変わらない。
なお、本発明は上記実施の形態に限定されるものではない。
【００２２】
以上説明した検索装置は、この検索装置を機能させるためのプログラムでも実現される。このプログラムはコンピュータで読み取り可能な記録媒体に格納されている。本発明では、この記録媒体として、図示しないメインメモリそのものがプログラムメディアであってもよいし、また外部記憶装置としてＣＤ−ＲＯＭドライバ２０等のプログラム読み取り装置が設けられ、そこに記録媒体を挿入することで読み取り可能なＣＤ−ＲＯＭ２１等のプログラムメディアであってもよい。いずれの場合においても、格納されているプログラムはＣＰＵ（図示せず）がアクセスして実行させる構成であってもよいし、あるいはいずれの場合もプログラムを読み出し、読み出されたプログラムは、図示されていないプログラム記憶エリアにダウンロードされて、そのプログラムが実行される方式であってもよい。このダウンロード用のプログラムは予め本体装置に格納されているものとする。
【００２３】
ここで、上記プログラムメディアは、本体と分離可能に構成される記録媒体であり、磁気テープやカセットテープ等のテープ系、フロッピーディスクやハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ等の光ディスクのディスク系、ＩＣカード／光カード等のカード系、あるいはマスクＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュＲＯＭ等による半導体メモリを含めた固定的にプログラムを担持する媒体であってもよい。
【００２４】
さらに、図示されていないが、外部の通信ネットワークとの接続が可能な手段を備えている場合には、その通信接続手段を介して通信ネットワークからプログラムをダウンロードするように、流動的にプログラムを担持する媒体であってもよい。なお、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード用プログラムは予め本体装置に格納しておくか、あるいは別な記録媒体からインストールされるものであってもよい。なお、記録媒体に格納されている内容としてはプログラムに限定されず、データであってもよい。
【００２５】
【発明の効果】
本発明によれば、単語辞書に含まれていない単語で検索を行うと、新しく単語を追加することができ、検索結果を良くすることができる。
また、検索結果に対する利用者の閲覧情報を元に単語辞書の修正を行うので、利用者が意図的にベクトルの修正の作業を行う必要がなく、検索とデータの閲覧を繰り返すだけで、単語ベクトルの修正を行うことができ、検索を行うほど検索結果が利用者にとって好ましいものに修正されることになる。
【図面の簡単な説明】
【図１】本発明による検索装置の一例の概略構成図である。
【図２】単語辞書の一例を示す図である。
【図３】検索結果の一例を示す図である。
【図４】単語追加手段での処理の流れを示す図である。
【図５】単語選別手段での処理の流れを示す図である。
【図６】単語ベクトル修正手段での処理の流れを示す図である。
【図７】データの例を示す図である。
【図８】データの検索結果の例を示す図である。
【図９】単語と単語ベクトルの対応を示す図である。
【図１０】検索されたデータとデータベクトルと内積値を示す図である。
【符号の説明】
１    入力手段
２    出力手段
３    制御手段
４    ベクトル生成手段
５    検索手段
６    単語追加手段
７    追加単語選別手段
８    単語ベクトル修正手段
９    単語辞書
１０  データベース
１１  選択手段
１２  外部記憶装置
２０  ＣＤ−ＲＯＭドライバ
２１  ＣＤ−ＲＯＭ
【図１】
0003701515.tif 000004
【図２】
0003701515.tif 000005
【図３】
0003701515.tif 000006
【図４】
0003701515.tif 000007
【図５】
0003701515.tif 000008
【図６】
0003701515.tif 000009
【図７】
0003701515.tif 000010
【図８】
0003701515.tif 000011
【図９】
0003701515.tif 000012
【図１０】
0003701515.tif 000013