(57)【要約】【課題】商品名と顧客との類似度を計算する方法を提供する。更に、ある商品を購入する可能性のある顧客リストを出力するシステムを提供する。【解決手段】入出力装置と、商品ＩＤと、そのベクトル表現を記憶した商品テーブルと、顧客ＩＤと、その履歴データとの対応関係を記憶した顧客テーブルと、顧客ＩＤを顧客ベクトルに変換する顧客変換装置と、該入出力装置から入力される商品情報を商品情報ベクトルに変換する商品情報変換装置と、該商品情報ベクトルと顧客ベクトルとの類似度を計算する類似度計算装置と、該類似度に基づいて顧客ＩＤのソーティング・リストを生成する処理装置により構成される顧客データベース管理システム。【選択図】        図１
2004362284.tif 000002
【特許請求の範囲】
【請求項１】
入出力装置と、商品ＩＤと、そのベクトル表現を記憶した商品テーブルと、
顧客ＩＤと、その履歴データとの対応関係を記憶した顧客テーブルと、
顧客ＩＤを顧客ベクトルに変換する顧客変換装置と、
該入出力装置から入力される商品情報を商品情報ベクトルに変換する商品情報変換装置と、
該商品情報ベクトルと顧客ベクトルとの類似度を計算する類似度計算装置と、
該類似度に基づいて顧客ＩＤのソーティング・リストを生成する処理装置により構成される顧客データベース管理システム。
【請求項２】
上記類似度計算装置は、
上記商品情報ベクトルから変換行列を生成する変換行列生成手段と、
該変換行列を用いて該商品情報ベクトルを変換する商品情報ベクトル変換手段と、
該変換行列を用いて上記顧客ベクトルを変換する顧客ベクトル変換手段と、
該変換された商品情報ベクトルと該変換された顧客ベクトルとの類似度を計算する計算手段を含むことを特徴とする、請求項１に記載の顧客データベース管理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
データベースの類似検索装置であり、特に顧客データベースシステムへの応用に関する技術である。
【０００２】
【従来の技術】
顧客の履歴データには、購買／参照した商品の情報が含まれている（例えば、特許文献１参照）。従って、ある商品がどの程度顧客の関心を集めているかという類の解析は、対象とする商品名を履歴データに含むような顧客ＩＤを抽出すれば良い。これは例えば、リレーショナルＤＢにおけるセレクト文で簡単に実行できる。
【０００３】
【特許文献１】
特許第３００９３９１号公報
【０００４】
【発明が解決しようとする課題】
しかし、上記従来例では、解析の対象とする商品名が履歴データに含まれていなければ、何の情報も与えてくれない。例えば、新発売する商品、新しいコンセプトの商品等は、従来にない商品名、或いはコンセプトを打ち出しているので、顧客の履歴データに含まれることは希である。このような状況では、上記従来例のようなパターンマッチングに基づく手法では限界である。また、メーカーやジャンルの違う商品が履歴データに含まれていたとしても、これらの情報から顧客の新たなニーズを抽出することはできない。
【０００５】
【課題を解決するための手段】
本発明によれば、顧客ＩＤと、その履歴データとの対応関係を記憶した顧客テーブルと、顧客ＩＤを顧客ベクトルに変換する顧客変換装置と、該入出力装置から入力される商品情報を商品情報ベクトルに変換する商品情報変換装置と、該商品情報ベクトルと顧客ベクトルとの類似度を計算する類似度計算装置を設けることによって、顧客の履歴データに一致する商品名が存在しない場合でも、顧客ＩＤと商品情報との類似度を計算することができるようになった。
【０００６】
更に、本発明によれば、上記類似度計算装置において、上記商品情報ベクトルから変換行列を生成する変換行列生成手段と、該変換行列を用いて該商品情報ベクトルを変換する商品情報ベクトル変換手段と、該変換行列を用いて上記顧客ベクトルを変換する顧客ベクトル変換手段と、該変換された商品情報ベクトルと該変換された顧客ベクトルとの類似度を計算する計算手段を設けたことによって、顧客と商品との意味的な分析、商品と商品との意味的な分析をすることができるようになった。
【０００７】
【発明の実施の形態】
［実施形態１］
図１は、本発明の１実施形態である情報処理装置の機能構成を表す図である。装置の各部は、以下に説明する機能を実現するものであれば、それぞれが専用のプログラムメモリやプロセッサを含む機器であってもよいし、複数の機能部を、同一のＣＰＵがＲＯＭやディスクメモリ等に記載された各機能プログラムを実行することにより、あるいは各機能に対応する特定のハードウェアを制御する制御プログラムを実行することにより実現してもよい。実施形態１は第１の処理装置１０１、第２の処理装置１０２、第３の処理装置１０３、第４の処理装置１０４、顧客データベース管理システム１０５、商品データベース管理システム１０６、顧客データベース１０７、商品データベース１０８、通信装置１０９、入出力装置１１０より構成される。
【０００８】
＜通信装置１０９＞
ユーザ端末とデータの入出力を制御する装置であり、ユーザ端末から文脈語群や検索語群を受信し、検索結果としてのデータ集合がユーザ端末に送信される。ユーザ端末から送信されるデータは、例えばコマンドを表すコマンド部とコマンドに対する引数を表す引数部とで構成される。
【０００９】
＜入出力装置１１０＞
システム管理者とのデータの入出力を制御する装置であり、空間生成語群や比較対象語群が入力される。システム管理者から入力されるデータは、例えばコマンドを表すコマンド部とコマンドに対する引数部とで構成される。
【００１０】
＜第４の処理装置１０４＞
第４の処理装置の処理の流れ図を図１５に示す。Ｓ１５０１では、通信装置１０９、及び入出力装置１１０からの入力があるかどうかを検査し、なければＳ１５０１の処理を繰り返す。あればＳ１５０２に進む。本実施例では、入出力装置１１０からの入力は、システム管理者からのものであり、また通信装置１０９からの入力は、商品名、商品ＩＤ等、商品を特定する情報であるとする。
【００１１】
Ｓ１５０２では、コマンド＝‘ＯＰＮ’を第１の処理装置に送信し、戻り値としてハンドルコード＝ＨＣを得る。
【００１２】
Ｓ１５０３では、コマンド＝‘ＧＥＮ’、ハンドルコード＝ＨＣ、入力パラメタとして英英辞典に基づくテキストファイルを設定して、第１の処理装置に送信する。
【００１３】
Ｓ１５０４では、図１６を用いて後述する処理を実行する。
【００１４】
Ｓ１５０５では、コマンド＝‘ＣＸＴ’、ハンドルコード＝ＨＣ、入力パラメタとして文脈語群を設定して、第１の処理装置に送信する。
【００１５】
Ｓ１５０６では、コマンド＝‘ＫＥＹ’、ハンドルコード＝ＨＣ、入力パラメタとして文脈語群を設定して、第１の処理装置に送信する。
【００１６】
Ｓ１５０７では、コマンド＝‘ＯＵＴ’、ハンドルコード＝ＨＣを第１の処理装置に送信する。
【００１７】
Ｓ１５０８では、コマンド＝‘ＣＬＳ’、ハンドルコード＝ＨＣを第１の処理装置に送信する。
【００１８】
Ｓ１５０９では、検索結果を通信装置を介して、ユーザ端末に出力する。
【００１９】
Ｓ１５０９が終了したら、Ｓ１５０１へ進む。
【００２０】
図１６を用いて比較対象語群の抽出方法を説明する。Ｓ１６０１でデータ集合１を空集合に初期化する。Ｓ１６０２で顧客データベース管理システム１０５から送信された顧客データベース１０７のデータ全てに基づいてデータ集合１を更新する。Ｓ１６０３でデータ集合２を空集合に初期化する。Ｓ１６０４で商品データベース管理システム１０６から送信された商品データベース１０８のデータ全てに基づいてデータ集合２を更新する。Ｓ１６０５でデータ集合３を空集合に初期化する。Ｓ１６０６でデータ集合１とデータ集合２の共通データを結合し、結合したデータに基づいてデータ集合３を更新する。
【００２１】
Ｓ１６０７では、コマンド＝‘ＣＭＰ’、ハンドルコード＝ＨＣ、入力パラメタとして比較対象データの集合であるデータ集合３を設定して、第１の処理装置に送信する。
【００２２】
上記処理中、ＧＥＮコマンドで生成される意味空間と、ＣＭＰコマンドで生成される比較対象ベクトル群は、通常の場合アプリケーション毎に共通のものを用いればよい場合が多い。本実施例の場合は、例えば英英辞典を入力パラメタとして生成される意味空間、および、顧客データと商品データをジョイントして得られるデータを入力パラメタとして生成される顧客に対応する比較対象ベクトル群である。このような場合には、上記処理手順のうち、Ｓ１５０３と１５０４はユーザからの検索要求毎に実行する必要はなく、システム管理者が適当なタイミングでオフラインで行えば良い。
【００２３】
＜顧客データベース管理システム１０５＞
顧客データベース管理システム（以下顧客ＤＢＭＳと略す）は、顧客ＤＢに対するデータベース操作を実行するシステムである。
【００２４】
＜商品データベース管理システム１０６＞
商品データベース管理システム（以下商品ＤＢＭＳと略す）は、商品ＤＢに対するデータベース操作を実行するシステムである。
【００２５】
＜顧客データベース１０７＞
顧客データベース（以下顧客ＤＢと略す）は、顧客情報を管理しているデータベースであり、顧客コード、顧客名、顧客が商品を購買／参照した回数、品数、商品コード等の履歴で構成され、計算機の補助記憶装置もしくは外部記憶装置に格納されている。商品コードは商品データベース１０８に格納されている商品コードと対応付けられ、第５の処理装置の結合処理で使用される。
【００２６】
＜商品データベース１０８＞
商品データベース（以下商品ＤＢと略す）は、商品情報を管理しているデータベースであり、商品コード、商品名、金額、特徴語等で構成され、計算機の補助記憶装置もしくは外部記憶装置に格納されている。商品コードは顧客データベース１０７に格納されている商品コードと対応付けられ、第５の処理装置の結合処理で使用される。
【００２７】
＜第１の処理装置１０１＞
図１において、第１の処理装置１０１は、第４の処理装置から送信された信号を解析し、必要なデータを第２の処理装置、或いは第３の処理装置に送信し、これら処理装置を起動する。
【００２８】
第１の処理装置１０１では、以下のコマンド群がサポートされている：
コマンド名  ＧＥＮ
入力パラメタ  ハンドルコード、空間生成データの集合
出力パラメタ  無し
機能          意味空間の生成と記憶
コマンド名  ＣＭＰ
入力パラメタ  ハンドルコード、比較対象データの集合
出力パラメタ  無し
機能          比較対象ベクトルの生成と記憶
コマンド名  ＯＰＮ
入力パラメタ  無し
出力パラメタ  ハンドルコード
機能          データ領域の確保
コマンド名  ＣＬＳ
入力パラメタ  ハンドルコード
出力パラメタ  無し
機能          データ領域の開放
コマンド名  ＣＸＴ
入力パラメタ  ハンドルコード、文脈語の集合
出力パラメタ  無し
機能          文脈ベクトルの計算と記憶
コマンド名  ＰＲＭ
入力パラメタ  ハンドルコード、出力様式
出力パラメタ  無し
機能          結果の出力様式の変更
コマンド名  ＯＵＴ
入力パラメタ  ハンドルコード
出力パラメタ  出力様式
機能          検索結果の出力
コマンド名  ＫＥＹ
入力パラメタ  ハンドルコード、検索語或いは検索式
出力パラメタ  無し
機能          検索語と比較対象データとの距離を計算
図２乃至図４は、本実施形態のシステムの処理手順を示すフローチャートである。まず、第１の処理装置１０１に外部装置から入力があると、ステップＳ２０１からＳ２０２に進み、入力データが空間生成語群であれば、Ｓ２０３で、第２の処理を初期モードに設定し、第２の処理装置に空間生成語群を送信し、図５及び図６につき後述する第２の処理装置の処理を実行し、第１の変換行列と第２の変換行列を生成する（ステップＳ２０２からＳ２０４）。また、入力データが比較対象語群であれば、Ｓ２０６で、第２の処理装置を通常モードに設定し、第２の処理装置に比較対象語群を送信し、図５及び図６につき後述する第２の処理装置の処理を実行し、Ｓ２０８で、第２の処理装置からの出力を比較対象Ｍ−ベクトルとして記憶装置に記憶する（ステップＳ２０５から２０８）。入力データが、新規ユーザからのアクセス許可要求であれば、Ｓ２１０で、新規ユーザのためのデータ領域を記憶装置に確保する（ステップＳ２０９からＳ２１０）。入力データがユーザからの切断要求のときには、Ｓ２１２で、該当するユーザのデータ領域を削除する（ステップＳ２１１からＳ２１２）。入力データが上記以外の場合には、Ｓ２１３で該当するユーザのデータ領域の先頭にデータポインタを設定する。Ｓ２１４では、入力データが文脈語かどうかを検査し、そうであればＳ２１５で、第３の処理装置を初期モードに設定し、第３の処理装置に空集合を送信し、Ｓ２１６で、図１２につき後述する第３の処理装置の処理を実行する。更にＳ２１７で、第２の処理装置に文脈語群を送信し、Ｓ２１８で第２の処理装置の処理を実行し、Ｓ２１９で第２の処理装置の出力を第３の処理装置に送信し、Ｓ２２０で第３の処理装置の処理を実行し、意味射影作用素のインデクス集合を生成する（ステップＳ２１４からＳ２２０）。Ｓ２１１では入力データがパラメタ設定コマンドかどうかを検査し、そうであれば、Ｓ２２２で、ユーザデータ領域に記憶されている出力書式を変更する（ステップＳ２２１からＳ２２２）。入力データが出力要求コマンドであれば、Ｓ２２４で、データ領域に記憶されている出力書式に従って出力する（ステップＳ２２３からＳ２２４）。Ｓ２２５では入力データが検索語かどうかを検査し、そうであればＳ２２６で、第２の処理装置を通常モードに設定し、第２の処理装置に検索語群を送信し、Ｓ２２７で第２の処理装置の処理を実行して検索語群を検索Ｍ−ベクトルに変換し、Ｓ２２８で、検索Ｍ−ベクトルＸＭと比較対象Ｍ−ベクトルＹＭとの距離計算を実行する（ステップＳ２２５からＳ２２８）。ここで、距離ρの計算式は、例えば次式による。
【外１】
2004362284.tif 000003
【００２９】
ただし下付きの英文字ｊはベクトルのｊ番目の要素を表している。距離ρの小さい順に比較対象Ｍ−ベクトルを並べ替える。ただし検索語群がヌルストリングの場合には比較対象Ｍ−ベクトルのノルム大きい順に比較対象Ｍ−ベクトルを並べ替える。
【００３０】
それ以外の入力データの場合は、エラーコードを２にセットし、図１１につき後述するエラー処理を実行する（ステップＳ２２９）。
【００３１】
以下に、本実施形態のシステムの各部の構成と処理手順を順に説明する。
【００３２】
＜第２の処理装置１０２＞
図５及び図６は第２の処理装置１０２の処理のフローチャートである。Ｓ５０１で、第２の処理装置が初期モードか通常モードかを判定し、初期モードのときには、Ｓ５０９からＳ５１３を実行する。Ｓ５０９では、ＬＵＴを生成する。
【００３３】
以下ＬＵＴについて説明する。Ｋ個の単語の集合として入力される単語群のそれぞれの単語ｗｊを、計算機上で処理に適した形式に変換する。これを以後Ｉ−ベクトルと呼び、ｗｊＩと書く。Ｉ−ベクトルｗｊＩは、例えば以下のように実現する。例えばｗｊ＝“ａｂａｃｋ”という文字列が英英辞典の見出し語として８番目に出てくるとすると、８番目の要素だけが１でその他が０であるようなＫ次元ベクトルをＩ−ベクトルｗｊＩと定義する：
ｗｊＩ＝（０００００００１０．．．０）Ｔ          （２）
文字列としての単語とＩ−ベクトルの対応表をＬＵＴと称し、記憶装置に記憶する。
【００３４】
Ｓ５１０では第１の変換行列Ａを算出して記憶する。第１の変換行列Ａは以下の（３）式或いは（４）式を用いて、ｗｊＩとｗｊＦの外積として算出する：
【外２】
2004362284.tif 000004
【００３５】
或いはｗｊＩのｎ番目の要素をｗｊ，ｎＩと書けば、
【外３】
2004362284.tif 000005
【００３６】
ここで（・）Ｔは行列の転置を表す。またｗｊＦは単語ｗｊのＦ−ベクトルであり、図８につき後述する処理によって生成されるベクトルである。第１の変換行列Ａの作成手順は図７につき後述する。第１の変換行列Ａは、列ベクトルに関する２ノルムで正規化する。Ｓ５１１で、第１の変換行列の相関行列を生成し、この固有値及び固有ベクトルを、例えば特異値分解によって算出する：
ＡＴＡ＝Ｑｄｉａｇ（λ）ＱＴ          （５）
ここで、ｄｉａｇ（ｘ）はベクトルｘを対角要素として持つ対角行列、またはλ及びＱは、固有値λ１、λ２、．．．、λＮと、対応する固有ベクトルｑ１、ｑ２、．．．、ｑＮを用いて次式で与えられる：
λ＝（λ１λ２．．．λＮ）Ｔ          （６）
Ｑ＝（ｑ１ｑ２．．．ｑＮ）          （７）
相関行列は対称行列であるから、その固有値λ１、λ２、．．．、λＮは全て実数であり、零でない固有値（ν個あるとする）に対応する固有ベクトルｑ１、ｑ２、．．．、ｑνは互いに直交する。Ｓ５１２で、図９につき後述する、添え字集合Λを算出する処理を実行する。添え字集合Λは、ある条件を満足する固有ベクトルの番号の集合であり、その要素数を（ν−Ｌ）個とする。Ｓ５１３では、この添え字集合に含まれない添え字を持つＬ個の固有ベクトルを用いて、第２の変換行列Ｒを構成する：
Ｒ＝（ｑ１ｑ２．．．ｑＬ）          （８）
ただし、（８）式の添え字は、（７）式に現れる添え字とは異なり、添え字集合Λに属する添え字に関して番号付けし直したものである。
【００３７】
Ｓ５０９でのＬＵＴ、及びＳ５１０の第１の変換行列Ａの作成手順を図７に沿って説明する。Ｓ７０１で、空間生成語群を入力し、Ｓ７０２で空間生成語の個数を数える。以下これをＫ個とする。Ｓ７０３及びＳ７０４で、記憶装置にＬＵＴ、及び第１の変換行列の格納場所を確保する。Ｓ７０５で第１の変換行列の全ての要素の値を０に初期化する。Ｓ７０６で、ｊを１に設定する。Ｓ７０７で、ｊ番目の空間生成語と空間生成語のＩ−ベクトルとの対応をＬＵＴに追加する。Ｓ７０８で、図８で後述する、Ｆ−ベクトルの生成処理を実行する。Ｓ７０９で、第１の変換行列の更新を行う。ここで行う更新処理は、（３）式或いは（４）式での和算処理である。Ｓ７１０でｊを１つ増やして、Ｓ７１１で、ｊがＫを超えたかどうかを検査し、そうであれば処理を終了し、そうでなければＳ７０７からＳ７１１までの処理を繰り返す。
【００３８】
図８は、単語ｗｊのＦ−ベクトルｗｊＦを生成する処理のフローチャートであり、Ｓ７０８で実行される処理である。Ｆ−ベクトルとは基本語を基底とする表現空間でのベクトルであり、基本語とは、例えば
●  Ｌｏｎｇｍａｎ  Ｄｉｃｔｉｏｎａｒｙ  ｏｆ  Ｃｏｎｔｅｍｐｏｒａｒｙ  Ｅｎｇｌｉｓｈ（以下ＬＤＣＥと略記する）
●  Ｔｈｅ  Ｇｅｎｅｒａｌ  Ｂａｓｉｃ  Ｅｎｇｌｉｓｈ  Ｄｉｃｔｉｏｎａｒｙ（以下ＧＢＥＤと略記する）
等で見出し語を説明するために使われている約２０００語（ＬＤＣＥ）或いは８７０語（ＧＢＥＤ）を指している。
【００３９】
例えば単語“ｉｎｄｕｓｔｒｙ”に対するＦ−ベクトルは以下のように生成する。Ｓ８０１で、英英辞典から見出し語と本文を辞書から抽出する。図中、見出し語が“ｉｎｄｕｓｔｒｙ”で本文が“ｎ．  Ｑｕａｌｉｔｙ  ｏｆ  ｂｅｉｎｇ  ｈａｒｄｗｏｒｋｉｎｇ”である。Ｓ８０２で、不要な記号を削除する。図中、“，”、“ｎ”、“．”が該当する記号である。Ｓ８０３で、大文字を修正する。図中、“Ｑ”が“ｑ”に修正された。Ｓ８０４で、複合単語を分解する。図中“ｈａｒｄｗｏｒｋｉｎｇ”が“ｈａｒｄ”と“ｗｏｒｋｉｎｇ”に分解された。Ｓ８０５で、不要な単語を削除する。図中、“ｏｆ”と“ｂｅｉｎｇ”が削除された。Ｓ８０６では、活用を主制する。図中、“ｗｏｒｋｉｎｇ”が“ｗｏｒｋ”に修正された。Ｓ８０７で、対応する特徴に値をつける。
【００４０】
図９を用いて添え字集合Λの生成方法を説明する。Ｓ９０１で、記憶装置から第１の変換行列Ａと第２の変換行列Ｒを読み出す。Ｓ９０２では、（９）式により、全ての空間生成語（Ｋ個）のＩ−ベクトルＸｊＩをＭ−ベクトルＸｊＭに変換する。
【００４１】
ＸｊＭ＝（ＡＲ）ＴＸｊＩ          （９）
Ｓ９０３で、全ての空間生成語のＭ−ベクトルＸｊＭの和を計算する。
【外４】
2004362284.tif 000006
【００４２】
Ｓ９０４で、添え字集合Λを空集合に初期化する。Ｓ９０５でｔを１に設定する。Ｓ９０６で、次式によりｍを決定する。
【００４３】
ｍ＝ＡＭＡＸ（ＸＭ，ｔ）          （１１）
ここでＡＭＡＸ（Ｙ，ｔ）は、図１０で後述する関数である。Ｓ９０７では同様にｎを決定する。
【００４４】
ｎ＝ＡＭＡＸ（ＸＭ，ｔ＋１）          （１２）
Ｓ９０８ではＸｍとＸｎを用いて算出される以下の値
ｌｏｇ（｜Ｘｎ｜／｜Ｘｍ｜）          （１３）
が予め設定された正の実数値ε２より小さいかどうかを判定し、小さければ処理を終了し、そうでなければＳ９０９を実行する。Ｓ９０９では、添え字集合Λに添え字ｎを加える。Ｓ９１０ではｔをｔ＋１に設定する。ν次元ベクトルの全ての要素について処理を実行したかどうか、即ちｔがνを超えたかどうかを判定し、超えたら処理を終了し、超えなかったらＳ９０６からの処理を繰り返す。
【００４５】
図１０により、ＡＭＡＸ（Ｙ、ｔ）の処理を説明する。Ｓ１００１で引数としてのベクトルＹと正整数ｔを受け取る。Ｓ１００２でベクトルＹの要素のうち絶対値がｔ番目に多い要素を決定する。Ｓ１００３で、上記要素の番号（何番めの要素か）を出力する。
【００４６】
図５のＳ５０１で第２の処理装置が通常モードに設定されていると判断された場合は、Ｓ５０２に進む。Ｓ５０２では入力データから単語部分だけを抽出し、単語列を生成する。第１の処理装置に入力されるデータのうち、検索語群と文脈語群は、一般に論理演算子を含んでいる。従って、これら論理演算子を保存し、単語のみについて、以下のＳ５０３からＳ５０７の処理を施す。この処理対象の単語を以下Ｘと書く。Ｓ５０３では、記憶装置からＬＵＴを読み出し、単語ＸをＩ−ベクトルＸＩに変換する。Ｓ５０４で、記憶装置から第１の変換行列Ａを読み出し、Ｉ−ベクトルＸＩをＦ−ベクトルＸＦに変換する。
【００４７】
ＸＦ＝ＡＴＸＩ          （１４）
Ｓ５０５で、第２の変換行列Ｒを記憶装置から読み出し、第３の処理装置へ送信する。
【００４８】
Ｓ５０６では、図１２により後述する第３の処理装置の処理を実行し、その出力を第３の変換行列Ｒ’として記憶する。Ｓ５０７では、次式によりＦ−ベクトルをＭ−ベクトルに変換する。
【００４９】
ＸＭ＝（Ｒ’）ＴＸＦ          （１５）
Ｓ５０８では、Ｓ５０２で分離した論理演算子をＭ−ベクトルの間に挿入し、検索式を再構成する。
【００５０】
＜第３の処理装置１０３＞
図１２を用いて第３の処理装置の処理を説明する。Ｓ１２０１で、処理モードが初期モードかどうかを判定しそうであればＳ１２０２へ、そうでなければＳ１２０８へ進む。初期モードのときには、第３の処理装置には、Ｍ−ベクトルＸｊＭ（ｊ＝１，．．．，Ｈ）と、後ろに位置するベクトルに作用する単項演算子ξｊと、前後に位置する２つのベクトルに作用する２項演算子ηｊによって構成される記号列：
｛ξ１，Ｘ１Ｍ，η１，ξ２，Ｘ２Ｍ，η２，．．．，ξＨ，ＸＨＭ，ηＨ｝        （１６）
が、初期モードでないときには第２の変換行列Ｒが入力される。ただし、以下の説明では、ξｊは否定演算子か何もしないかの２種類、ηｊは論理積、論理和の２種類とする。Ｓ１２０２では、Ｍ−ベクトル群が空集合かどうかを判定し、そうであればＳ１２０３へ、そうでなければＳ１２０４へ進む。Ｓ１２０３では、Ｓ１２０９で説明する意味射影作用素の正のインデクス集合Λ＋と負のインデクス集合Λ−を、それぞれ、１からＬまでの正整数に設定する。即ち、
Λ＋＝｛１，２，．．．，ν｝          （１７）
Λ−＝｛１，２，．．．，ν｝          （１８）
とする。ここでνは非零の固有値の数である。Ｓ１２０４では（１６）式のそれぞれの単項演算子が否定演算子かどうかを判定し、そうである単項演算子があれば、該当する単項演算子の後ろに位置するＭ−ベクトルに対して、Ｓ１２０５で、図１４につき後述する否定演算子の処理を実行する。否定演算子が作用していなければＳ１２０６に進み、２項演算子の処理を実行することによってＭ−ベクトルを合成する。
【００５１】
Ｇ＝Ｖ／‖Ｖ‖∞          （１９）
ただしＶは（１６）式におけるηｊの処理を行って得られたν次元ベクトルであり、例えばηｊが論理積のときには、ηｊの左側に位置するＭ−ベクトル及び演算子の演算結果とηｊの右側に位置するＭ−ベクトルとの要素毎の論理積或いは乗算を行い、例えばηｊが論理和のときには、ηｊの左側に位置するＭ−ベクトル及び演算子の演算結果とηｊの右側に位置するＭ−ベクトルとの要素毎の論理和或いは足し算を行う。
【００５２】
また（１９）式中の‖Ｖ‖∞はベクトルＶの無限大ノルムを表す。（１９）式で得られたベクトルＧのｊ番目の要素をｇｊと書く。
【００５３】
Ｓ１２０７では、予め設定された正数ε１とＧの各要素ｇｊを比較し、
ｇｊ＞ε１            （２０）
なるｊの集合をΛ＋とし、同様に、
ｇｊ＜−ε１          （２１）
なるｊの集合をΛ−とし、Λ＋とΛ−を記憶装置に記憶する。
【００５４】
Ｓ１２０１で初期モードと判定されなかった場合には、Ｓ１２０８に進み、Ｓ１２０８では記憶装置から正のインデクス集合Λ＋と負のインデクス集合Λ−を読み出す。Ｓ１２０９で図１３につき後述する意味射影作用素の処理を実行し、第２の変換行列を第３の変換行列に修正する。
【００５５】
意味射影作用素の処理を図１３を用いて説明する。Ｓ１３０１では、（８）式で定義された行列Ｒ、（２０）式をもとに構成された正のインデクス集合Λ＋、（２１）式をもとに構成された負のインデクス集合Λ−を読み込む。
【００５６】
Ｓ１３０２でｓを１に設定する。Ｓ１３０３で行列Ｒから、ｓ行目の横ベクトルを抽出する。これは（８）式からも明らかなように、ｓ番目の基本語のＬ個の固有ベクトルが張る空間での表現であり、以下では説明のためにＸＭと書き、このベクトルのｔ番目の要素をＸｔＭと書く。Ｓ１３０４でｔを１に設定する。Ｓ１３０５でｔがΛ＋に含まれかつＸｔＭが正であるか、或いはｔがΛ−に含まれかつＸｔＭが負であるかを判定し、そうであったらＳ１３０６に、そうでなかったらＳ１３０７に進む。Ｓ１３０６では、以下の式によってＸｔＭを修正する。
【００５７】
ＸｔＭ＝｜ｇｔ｜ＸｔＭ          （２３）
Ｓ１３０７ではＸｔＭを０にする。Ｓ１３０８でｔをｔ＋１に設定し、Ｓ１３０９でｔが有効固有ベクトルの個数であるＬを超えるかどうかを判定し超えたらＳ１３１０へ、そうでなければＳ１３０５からＳ１３０９の処理を繰り返す。Ｓ１３１０では、ｓをｓ＋１に設定し、Ｓ１３１１ではｓが基本語の個数であるＮを超えたかどうかを判定し、超えたら処理を終了し、そうでなければＳ１３０３からＳ１３１１の処理を繰り返す。
【００５８】
Ｍ−ベクトルの否定演算子の処理を図１４に沿って説明する。
【００５９】
Ｓ１４０１でＭ−ベクトルの要素のうち、零の要素を１に、非零の要素を０に変換する。
【００６０】
Ｓ１４０２で、変換したＭ−ベクトルをノルムが１になるように正規化する。
【００６１】
【発明の効果】
以上説明したように、本発明によれば、顧客の履歴データに含まれない新商品であっても、それに意味的に近い顧客リストを出力することができるようになった。
【図面の簡単な説明】
【図１】実施形態１の構成図である。
【図２】第１の処理装置の処理のフローチャートである。
【図３】第１の処理装置の処理のフローチャートである。
【図４】第１の処理装置の処理のフローチャートである。
【図５】第２の処理装置の処理のフローチャートである。
【図６】第２の処理装置の処理のフローチャートである。
【図７】ＬＵＴと第１の変換行列を生成する処理のフローチャートである。
【図８】単語のＦ−ベクトルを生成する処理のフローチャートである。
【図９】添え字集合を生成する処理のフローチャートである。
【図１０】関数ＡＭＡＸの処理のフローチャートである。
【図１１】エラー処理のフローチャートである。
【図１２】第３の処理装置の処理のフローチャートである。
【図１３】意味射影作用素の処理のフローチャートである。
【図１４】文脈語の否定演算子の処理のフローチャートである。
【図１５】第４の処理装置の処理のフローチャートである。
【図１６】比較対象語群を抽出する処理のフローチャートである。
【図１】
2004362284.tif 000007
【図２】
2004362284.tif 000008
【図３】
2004362284.tif 000009
【図４】
2004362284.tif 000010
【図５】
2004362284.tif 000011
【図６】
2004362284.tif 000012
【図７】
2004362284.tif 000013
【図８】
2004362284.tif 000014
【図９】
2004362284.tif 000015
【図１０】
2004362284.tif 000016
【図１１】
2004362284.tif 000017
【図１２】
2004362284.tif 000018
【図１３】
2004362284.tif 000019
【図１４】
2004362284.tif 000020
【図１５】
2004362284.tif 000021
【図１６】
2004362284.tif 000022