(57)【要約】【課題】真に会話のコンテキストに合った情報が提供される可能性を高める。【解決手段】分析サーバ２０において、テキスト取得部２１は、会話のテキストデータを取得し、キーワード抽出部２２は、そのテキストデータから複数のキーワードを抽出し、重要キーワード決定部２３は、その複数のキーワードのうちユーザとの関係で重要なキーワードを重要キーワードに決定する。また、キーワードペア決定部２６は、重要キーワードを検索機能に投入して得られる頻度情報に基づいて検索のためのキーワードペアを決定する。更に、通信制御部２８は、キーワードペアをクライアントに送信し、そのキーワードペアの選択操作に応じて検索機能による検索結果をクライアントに送信する。【選択図】図５
2009070180.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介した会話に関連する情報の検索を支援する装置であって、
前記会話のテキストデータを取得する取得部と、
前記取得部により取得された前記テキストデータから複数のキーワードを抽出する抽出部と、
前記複数のキーワードを検索機能に１つずつ投入して得られる第１の頻度情報と、前記複数のキーワードを当該検索機能に２つずつ投入して得られる第２の頻度情報とを用いて、前記検索のためのキーワードペアを決定する決定部と、
前記決定部により決定された前記キーワードペアを提示する提示部と
を備えた、装置。
【請求項２】
前記第１の頻度情報は、前記複数のキーワードのうちの第１のキーワードを含む情報の件数を示す第１の値と、前記複数のキーワードのうちの第２のキーワードを含む情報の件数を示す第２の値とを含み、
前記第２の頻度情報は、前記第１のキーワードと前記第２のキーワードの両方を含む情報の件数を示す第３の値を含み、
前記決定部は、前記第１の値と前記第２の値と前記第３の値とを用いて算出された前記第１のキーワードと前記第２のキーワードとの相関度に基づいて、前記キーワードペアを決定する、請求項１の装置。
【請求項３】
前記決定部は、前記第１の値及び前記第２の値の少なくとも何れか一方が第１の水準に達していない場合、前記第３の値を求めるために前記第１のキーワードと前記第２のキーワードのペアを前記検索機能に投入しない、請求項２の装置。
【請求項４】
前記決定部は、前記第１のキーワードと前記第２のキーワードとの前記相関度が第２の水準に達する可能性があるかどうかを前記第３の値を得ることなく調査し、当該可能性がないと判定された場合、当該第１のキーワードと当該第２のキーワードのペアを前記検索機能に投入しない、請求項２の装置。
【請求項５】
前記決定部は、前記第１の値及び前記第２の値の少なくとも何れか一方が第１の水準に達していない場合、前記第１のキーワードと前記第２のキーワードとの前記相関度が前記第２の水準に達する可能性があるかどうかを調査しない、請求項４の装置。
【請求項６】
前記抽出部は、現在の会話のテキストデータにおける各キーワードの第１の出現頻度と、当該現在の会話を行っている少なくとも１人のユーザの過去の会話のテキストデータにおける各キーワードの第２の出現頻度とを用いて、前記複数のキーワードを抽出する、請求項１の装置。
【請求項７】
前記抽出部は、前記第１の出現頻度に前記第２の出現頻度よりも高い重みを付与し、複数の過去の会話がある場合には、当該複数の過去の会話にそれぞれ対応する複数の前記第２の出現頻度のうち近い過去の会話に対応する前記第２の出現頻度ほど高い重みを付与することにより得られた重要度に基づいて、前記複数のキーワードを抽出する、請求項６の装置。
【請求項８】
前記抽出部は、前記第１の出現頻度に前記第２の出現頻度よりも高い重みを付与し、複数の過去の会話がある場合には、当該複数の過去の会話にそれぞれ対応する複数の前記第２の出現頻度に略同等の重みを付与することにより得られた重要度に基づいて、前記複数のキーワードを抽出する、請求項６の装置。
【請求項９】
ネットワークを介した会話に関連する情報の検索を支援する方法であって、
前記会話のテキストデータを取得するステップと、
取得された前記テキストデータから複数のキーワードを抽出するステップと、
前記複数のキーワードを検索機能に１つずつ投入して得られる第１の頻度情報と、前記複数のキーワードを当該検索機能に２つずつ投入して得られる第２の頻度情報とを用いて、前記検索のためのキーワードペアを決定するステップと、
決定された前記キーワードペアを提示するステップと
を含む、方法。
【請求項１０】
ネットワークを介した会話に関連する情報の検索を支援する装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
前記会話のテキストデータを取得する取得部と、
前記取得部により取得された前記テキストデータから複数のキーワードを抽出する抽出部と、
前記複数のキーワードを検索機能に１つずつ投入して得られる第１の頻度情報と、前記複数のキーワードを当該検索機能に２つずつ投入して得られる第２の頻度情報とを用いて、前記検索のためのキーワードペアを決定する決定部と、
前記決定部により決定された前記キーワードペアを提示する提示部と
して機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報の検索を支援する装置及び方法に関する。特に、本発明は、ネットワークを介した会話に関連する情報の検索を支援する装置及び方法に関する。
【背景技術】
【０００２】
近年、ネットワーク基盤の普及やＰＣ（Personal Computer）の低価格化等により、製品のカスタマサポートや社内のヘルプデスクをＩＭ（Instant Messenger）製品を利用して行うシーンが見られるようになっている。例えば、製品の障害や人事に関する問い合わせにチャットで対応するような場面が想定される。
かかる場面で、報告されている問題や質問等に関する情報をスムーズに検索し、情報を必要なときに取得できることは、業務の生産性の向上に欠かせない要素である。即ち、チャットによる会話のコンテキストに応じて有用と思われる情報が自動的に表示されれば、カスタマサポート等における生産性は高まると考えられる。このようなことから、現在行っている対話内容に即した関連情報を表示させることが従来から行われていた（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００３−１８６８９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１は、対話情報から重要語を抽出しこれを用いて関連情報を取得しているに過ぎず、相関のある重要語のペアを抽出しこれを用いて関連情報を取得しているわけではない。よって、特許文献１では、真に会話のコンテキストに合った情報が提供されない可能性があるという問題点があった。
【０００５】
本発明の目的は、真に会話のコンテキストに合った情報が提供される可能性を高めることにある。
【課題を解決するための手段】
【０００６】
かかる目的のもと、本発明は、会話のテキストデータから抽出したキーワードに基づき、検索のためのキーワードペアを決定して提示するようにした。即ち、本発明は、ネットワークを介した会話に関連する情報の検索を支援する装置であって、会話のテキストデータを取得する取得部と、取得部により取得されたテキストデータから複数のキーワードを抽出する抽出部と、複数のキーワードを検索機能に１つずつ投入して得られる第１の頻度情報と、複数のキーワードを検索機能に２つずつ投入して得られる第２の頻度情報とを用いて、検索のためのキーワードペアを決定する決定部と、決定部により決定されたキーワードペアを提示する提示部とを備えた、装置を提供する。
【０００７】
また、この装置において、第１の頻度情報は、複数のキーワードのうちの第１のキーワードを含む情報の件数を示す第１の値と、複数のキーワードのうちの第２のキーワードを含む情報の件数を示す第２の値とを含み、第２の頻度情報は、第１のキーワードと第２のキーワードの両方を含む情報の件数を示す第３の値を含み、決定部は、第１の値と第２の値と第３の値とを用いて算出された第１のキーワードと第２のキーワードとの相関度に基づいて、キーワードペアを決定する、ものであってもよい。
更に、決定部は、第１の値及び第２の値の少なくとも何れか一方が第１の水準に達していない場合、第３の値を求めるために第１のキーワードと第２のキーワードのペアを検索機能に投入しない、ものであってもよい。
また、決定部は、第１のキーワードと第２のキーワードとの相関度が第２の水準に達する可能性があるかどうかを第３の値を得ることなく調査し、可能性がないと判定された場合、第１のキーワードと第２のキーワードのペアを検索機能に投入しない、ものであってもよい。
更に、決定部は、第１の値及び第２の値の少なくとも何れか一方が第１の水準に達していない場合、第１のキーワードと第２のキーワードとの相関度が第２の水準に達する可能性があるかどうかを調査しない、ものであってもよい。
【０００８】
一方、この装置において、抽出部は、現在の会話のテキストデータにおける各キーワードの第１の出現頻度と、現在の会話を行っている少なくとも１人のユーザの過去の会話のテキストデータにおける各キーワードの第２の出現頻度とを用いて、複数のキーワードを抽出する、ものであってもよい。
また、抽出部は、第１の出現頻度に第２の出現頻度よりも高い重みを付与し、複数の過去の会話がある場合には、複数の過去の会話にそれぞれ対応する複数の第２の出現頻度のうち近い過去の会話に対応する第２の出現頻度ほど高い重みを付与することにより得られた重要度に基づいて、複数のキーワードを抽出する、ものであってもよい。
更に、抽出部は、第１の出現頻度に第２の出現頻度よりも高い重みを付与し、複数の過去の会話がある場合には、複数の過去の会話にそれぞれ対応する複数の第２の出現頻度に略同等の重みを付与することにより得られた重要度に基づいて、複数のキーワードを抽出する、ものであってもよい。
【０００９】
また、本発明は、ネットワークを介した会話に関連する情報の検索を支援する方法であって、会話のテキストデータを取得するステップと、取得されたテキストデータから複数のキーワードを抽出するステップと、複数のキーワードを検索機能に１つずつ投入して得られる第１の頻度情報と、複数のキーワードを検索機能に２つずつ投入して得られる第２の頻度情報とを用いて、検索のためのキーワードペアを決定するステップと、決定されたキーワードペアを提示するステップとを含む、方法も提供する。
【００１０】
更に、本発明は、ネットワークを介した会話に関連する情報の検索を支援する装置としてコンピュータを機能させるプログラムであって、コンピュータを、会話のテキストデータを取得する取得部と、取得部により取得されたテキストデータから複数のキーワードを抽出する抽出部と、複数のキーワードを検索機能に１つずつ投入して得られる第１の頻度情報と、複数のキーワードを検索機能に２つずつ投入して得られる第２の頻度情報とを用いて、検索のためのキーワードペアを決定する決定部と、決定部により決定されたキーワードペアを提示する提示部として機能させる、プログラムも提供する。
【発明の効果】
【００１１】
本発明によれば、真に会話のコンテキストに合った情報が提供される可能性が高まる。
【発明を実施するための最良の形態】
【００１２】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、「実施の形態」という）について詳細に説明する。
まず、本実施の形態の概要を説明する。
図１は、本実施の形態の大まかな流れを模式的に示した図である。
例えば、ユーザＡとユーザＢがチャットで会話をしているとする。ここで、ユーザＡは、カスタマサポートセンターの担当者とし、ユーザＢは、カスタマサポートセンターに問い合わせてきた顧客であるとする。この場合、ユーザＡの端末のチャット画面４０１に、ユーザＢとの間でなされた会話が表示される。
【００１３】
このようにユーザＡとユーザＢとの間でチャットが行われると、本実施の形態では、まず、分析機能２００が、（１）に示すように、リアルタイムでチャットメッセージをインターセプトする。ここで、分析機能２００は、ユーザＡの端末に存在していても、その端末以外の装置に存在していてもよい。
次に、分析機能２００は、（２）に示すように、リアルタイムでチャットメッセージを分析し、そこからキーワードを抽出する。このキーワードの抽出において、本実施の形態では、特殊な処理を行う。特に、ユーザＡがユーザＢの問い合わせのコンテキストに合った情報を容易に取得できるよう、ユーザＢが発した会話の中から相関の高いキーワードのペアを求め、キーワードペア表示画面４０２に表示することでユーザＡに知らせる。
【００１４】
その後、例えば、ユーザＡがキーワードペアの何れかを選択すると、（３）に示すように、分析機能２００は、その選択されたキーワードペアを検索機能３００に投入する。これにより、検索機能３００は、コンテンツを検索する。ここで、検索機能３００には、複数の検索機能が含まれていてよい。図では、検索機能Ａ、検索機能Ｂ、検索機能Ｃが示されている。これらの検索機能は、インターネット上のコンテンツからキーワードに合致するコンテンツを検索するＷｅｂ検索エンジンであってよい。或いは、社内の不具合情報を蓄積したデータベースや知識ベースであってもよい。以下、本明細書において「検索機能」というときは、この両方を含むものとする。
そして、最後に、（４）に示すように、検索機能３００から検索結果がユーザＡの端末に送信され、検索結果表示画面４０３に表示される。この場合、検索機能が複数あれば、図示するように、検索機能ごとに検索結果が表示される。
【００１５】
さて、このような流れにおけるキーワードの抽出について、以下、詳細に説明する。
本実施の形態では、分析機能２００において、次の２つの機能を実現する。
第１の機能は、言語処理で抽出したキーワードから、発話者とタイムスタンプという２種類の情報を用いて、会話のコンテキストとの関連性が高いと考えられる重要キーワード（優先度の高いキーワード）を抽出する、という機能である。
第２の機能は、多数の重要キーワードの中から、相関が高いと考えられるキーワードのペアを、外部の検索機能を用いて求めるというものである。
【００１６】
まず、第１の機能について説明する。
現在の会話から抽出されたキーワードが、過去の会話記録において重要であるとされている場合、そのキーワードの現時点での重要性も高いと考えられる。また、同一のキーワードであっても、会話している相手に応じてその重要性は変わると考えられる。
そこで、現在の会話の相手と現在進行中の会話も含めてｎ回会話を行っている場合を考える。この場合において、ｉ回前の会話におけるキーワードＫの出現回数をＦ（Ｋ，ｉ）としたとき、キーワードＫの重要度Ｗ（Ｋ）は以下の式で表される。
【００１７】
【数１】
2009070180.tif 000003
【００１８】
尚、α（ｉ）は、抽出されたキーワードに対する重み付け係数である。
ここでは、重み付け係数α（ｉ）（ｉ＝０，１，…，ｎ−１）を２種類提案する。
【００１９】
まず、１種類目の重み付け係数について説明する。
この重み付け係数では、経過した時間が長くなればなるほどα（ｉ）が小さくなるような減衰関数を用いる。つまり、現在進行中の会話に対する重み付け係数α（０）が最も大きくｉが増加するに従ってα（ｉ）が減少する狭義単調減少関数を採用する。このように、α（ｉ）に減衰関数を用いれば、古い会話から抽出されたキーワードの影響力は小さくなる。
例えば、α（ｉ）＝ｅｘｐ（−βｉ）（β＞０）とすると、影響力はｉが増加するに従って指数関数的に小さくなる。その結果、過去の数回の会話から抽出されたキーワードが重要視されるようになる。 
【００２０】
次に、２種類目の重み付け係数について説明する。
この重み付け係数では、過去の会話の重要度は時間に影響されるものではなく、均一であるという考えに基づき、α（ｉ）（ｉ≠０）を単一の値とする。
即ち、α（０）＞α（１）＝α（２）＝…＝α（ｉ）＝…α（ｎ−１）とする。
会話で話される内容は単発的なものも多く、現在進行中の会話の内容とその直前の会話の内容との関連性が深いという保証はない。逆に、現在進行中の会話の内容と遥か昔の会話の内容との関連性が深い場合もあると考えられる。そのため、過去の会話全体の影響力を同じにしたほうがよりよい結果が得られる可能性も高く、このような手法が有効であると考えられる。
但し、α（ｉ），α（２），…，α（ｎ−１）は完全に等しくなければならないというわけではなく、略同等であってもよい。
【００２１】
尚、これらの２種類の重み付け係数の何れを用いるかは、ユーザが指定するとよい。この場合、ユーザは、直近の話題と過去まで遡った話題の何れに関心があるかにより、その指定を行うことになる。或いは、２種類の重み付け係数の両方を用いて得られる情報を併せて提示してもよい。但し、この場合は、１種類の重み付け係数を用いた場合よりも多くの情報が提示されるので、重要度の閾値は、１種類の重み付け係数を用いた場合よりも高く設定するのが好ましい。
【００２２】
次に、第２の機能について説明する。
チャット中の会話テキストに自然言語処理を適用してキーワードを抽出し、そのキーワードを検索条件として使うことにより、話題の内容に対するドリルダウンをする場合について考える。例えば、あるＰＣについての会話がなされているときに、そのＰＣに関連するドキュメントを調べるといった場合である。
しかしながら、テキストから抽出された複数のキーワードのうちのどのキーワードに注目すればよいかをユーザが判断できないことはしばしばある。
図２は、このことを説明するための図である。
図には、ＰＣコールセンターのログ中、キーワード「黒い」を含む１７９０件の文書集合内のキーワード（名詞）の頻度分布が示されている。ところが、このような頻度分布だけでは、どのキーワードが「黒い」に関連するのか、また、どのような関連があるのかが分からない。
【００２３】
そこで、第２の機能では、２つの重要キーワードの相互情報量（Mutual Information）を用いて、相関の高いキーワードのペアを抽出する。
第１の機能により抽出された重要キーワードをｋｗ［１］，ｋｗ［２］，…，ｋｗ［ｍ］とすると、ここでのキーワードペアの抽出は、次のように行われる。
まず、検索機能にｋｗ［１］，ｋｗ［２］，…，ｋｗ［ｍ］を投入し、ヒット数ｆ［１］，ｆ［２］，…，ｆ［ｍ］を得る。次に、検索機能に“ｋｗ［ｉ］  ａｎｄ  ｋｗ［ｊ］”（ｉ≠ｊ）を投入し、ヒット件数ｆ［ｉ，ｊ］を得る。
これにより、以下の計算を各（ｉ，ｊ）に対して行う。
【００２４】
【数２】
2009070180.tif 000004
【００２５】
そして、ＭＩ（ｉ，ｊ）の値の大きい方からＭ番目以内の（ｋｗ［ｉ］，ｋｗ［ｊ］）を返す。尚、Ｍは予め決めておくものとする（例えば、Ｍ＝５）。
ここで、ｆ［ＡＬＬ］は、その検索機能が検索対象としているデータの全件数を意味する。もし検索機能がこの数を公開していなければ、ヒット数が多い一般的な単語で検索した結果の件数をｆ［ＡＬＬ］とするとよい。例えば、ヒット数が多い一般的な単語として「日本」を採用したとすると、ｆ［ＡＬＬ］＝ｆ［日本］となる。但し、この場合は、重要キーワードで検索する際にも、その重要キーワードにこのヒット数が多い一般的な単語を常に付け加えて検索する必要がある。
【００２６】
次に、図２の頻度分布に加え、相関値を表示した例を示す。
図３は、キーワードの頻度及び相関値の分布の表示例を示した図である。尚、本実施の形態では、相関値として、上述した相互情報量ＭＩ（ｉ，ｊ）を用いている。
ここでは、まず、キーワード「黒い」を含む文書を検索している。その結果は、１７９０件である。そして、このキーワード「黒い」に対する相関値が高いキーワードを求め、相関値の大きい順に表示している。例えば、「日本語ＤＯＳゲーム」について見ると、キーワード「黒い」に対する相関値が２０．１であるというのは、全文書中の「日本語ＤＯＳゲーム」の出現頻度に比べて、キーワード「黒い」を含む文書中の「日本語ＤＯＳゲーム」の出現頻度が約２０倍である、ということを意味している。
【００２７】
このように、本実施の形態では、会話テキストから抽出される複数のキーワードの中から、相関の高いキーワードのペアを検出する。これにより、ユーザが気づかない新規な事実を提供すると共に、ドリルダウンを効果的にサポートする。
例えば、図３では、キーワード「黒い」に対する相関値の高いキーワードの順に表示されており、「枠」、「日本語ＤＯＳゲーム」といったキーワードが「黒い」との相関が高いことが分かる。これらはそれぞれ、「ディスプレイの調節方法が分からない」、「特定のゲームでコマンドウインドウが全画面表示になりＷｉｎｄｏｗｓ画面に戻れない」という問い合わせに対応しており、このような問い合わせがあることを新たに発見することが可能になる（「Ｗｉｎｄｏｗｓ」は米国マイクロソフト社の米国及びその他の国における登録商標又は商標）。
【００２８】
尚、Ｗｅｂ検索エンジンの中にも、相関の高いキーワードのペアを返すものはある。
しかしながら、このようなＷｅｂ検索エンジンでは、自らが保持する文書とそのキーワード一覧との対応をバックエンドで索引として有することにより、かかる処理を可能にしている。
また、本実施の形態は、「与えられたキーワード又はキーワードのペアの入力に対してヒット数を返す」機能さえ持っていれば、如何なるデータベースにも適用することができる。
このことから分かるように、Ｗｅｂ検索エンジンであっても独自のデータベースであっても、本実施の形態の手法は適用可能である。Ｗｅｂ検索エンジンに本実施の形態の手法を適用した場合は、コールセンターのログと異なり「一般的に相関が高いと考えられる」キーワードのペアが返されることになるが、ユーザがそのキーワードに対する知見を持っていない場合に有効に働くことには変わりない。
【００２９】
ところで、ｋｗ［１］，ｋｗ［２］，…，ｋｗ［ｍ］に加え、“ｋｗ［ｉ］  ａｎｄ  ｋｗ［ｊ］”（ｉ≠ｊ）を検索機能に投入して得られたヒット値に基づいてキーワードのペアを求める手法には、次のような問題がある。
即ち、チャットが進むにつれて累積するキーワードの個数が増加し、キーワードのペアの相互情報量の計算コストが増大するという問題である。尚、ここでの計算コストとは、主に、検索機能が通信回線を介して接続されている場合における通信コストである。
具体的に述べると、キーワードがｍ個の場合、全てのキーワードのペアについての計算量はＯ（ｍ２）（＝ｍ×（ｍ＋１）／２）となる。
ここで、既にキーワードがｐ個あり、新しい発言でｑ個増えたとすると、追加の計算量は（ｐ＋１）×ｑとなる。このことから、ｐが大きくなると、ｑ＝１でも無視できないこととなる。
【００３０】
そこで、本実施の形態では、計算コストを抑えるため、以下の２つの工夫を行っている。
第１の工夫点としては、非同期処理を行うということである。即ち、チャット処理のプロセスと相互情報量を計算するプロセスを非同期に実行する。これにより、内部に保持する計算結果とユーザに提示するスコアの高いペアのリストを随時更新する。
【００３１】
第２の工夫点としては、ヒューリスティクスによる方法を用いるということである。
ヒューリスティクスの１つとして、単独でヒット数の少ないキーワードは計算対象にしない、ということがある。例えば、ヒット数が１００００未満のキーワードは無視する、といったことである。ヒット数が少ないキーワードはそれだけで文書を特定する能力が高く、ペアをとる動機に乏しいからである。ここで、頻度閾値（上記の例では１００００）は、例えば検索機能ごとに予め決めておいたものを用いればよい。
【００３２】
また、ヒューリスティクスのもう１つとして、相互情報量の単調性を使ったプルーニング（pruning）がある。
先に述べたように、相互情報量ＭＩ（ｉ，ｊ）は、次の式で表される。
【００３３】
【数３】
2009070180.tif 000005
【００３４】
まず、この式において、ｆ［ＡＬＬ］はキーワードに依存しないので、ＭＩ（ｉ，ｊ）の大小を比べるだけなら、次の式で求められるＭＩ’の値を比較すればよい。
【００３５】
【数４】
2009070180.tif 000006
【００３６】
ここで、明らかにｆ［ｉ，ｊ］≦ｍｉｎ（ｆ［ｉ］，ｆ［ｊ］）だから、ＭＩ’（ｉ，ｊ）≦ｍｉｎ（１／ｆ［ｉ］，１／ｆ［ｊ］）が成り立つ。
さて、既に上位Ｍ番目までのペアの相互情報量が計算済みで、Ｍ番目のスコアがＲ（Ｍ）であるとする（但し、Ｒ（Ｍ）は、ＭＩ’（ｉ，ｊ）を用いて算出したスコアとする）。この状態で、新たにｋｗ［ｉ］とｋｗ［ｊ］の相互情報量を計算するとする。その場合、上記不等式から、ｍａｘ（１／ｆ［ｉ］，１／ｆ［ｊ］）≦Ｒ（Ｍ）なら、ｋｗ［ｉ］とｋｗ［ｊ］の相互情報量はＲ（Ｍ）を超えないので、計算をしなくても上位Ｍ番目までにランクされないことが分かる。
従って、全てのペアについて、その相互情報量を計算する前にこのチェックを行い、上位Ｍ番目に入る可能性のあるペアだけについて検索機能に問い合わせればよい。
この手法を用いると、両方の単語の頻度が小さいためにたまたま高い相関を持つペア（統計的に有意な相関値でない）が抽出されてしまうことがある。しかし、前述の頻度閾値によって頻度が極端に小さな語を事前に取り除いているため、そのようなペアは計算対象とならない。このように、２種類のヒューリスティクスを組み合わせることによって、より有効な結果が得られることになる。
【００３７】
次に、以上のような動作を行うコンピュータシステムについて詳細に説明する。尚、これまでは、チャットメッセージからの重要キーワード及びキーワードのペアの抽出について説明してきた。しかしながら、同様の処理は、電子メールでの会話、電子掲示板を利用した会話等、ネットワークを介した種々の会話に適用可能である。そこで、以下では、チャット、電子メール、電子掲示板等によるメッセージの交換を「会話」と総称して説明する。
【００３８】
図４は、このようなコンピュータシステムの全体構成例を示した図である。
図示するように、このコンピュータシステムは、会話サーバ１０と、分析サーバ２０と、検索サーバ３０と、クライアント４０ａと、クライアント４０ｂとが、ネットワーク８０を介して接続されている。
【００３９】
会話サーバ１０は、ネットワーク８０を介したメッセージの交換を管理するサーバコンピュータである。チャットの場合であれば、同じチャットに対するユーザＡのクライアント４０ａからの参加要求とユーザＢのクライアント４０ｂからの参加要求に応じて、そのチャットの識別情報、ユーザＡ及びＢの識別情報、クライアント４０ａ及び４０ｂの識別情報等を管理する。そして、ユーザＡやユーザＢからメッセージが入力された場合には、そのメッセージが相手のクライアントへ送信されるように制御する。
分析サーバ２０は、ネットワーク８０を介して交換されるメッセージを会話サーバ１０から受け取り、そのメッセージに含まれるキーワードの中から重要キーワードを決定したり、相関するキーワードのペアを決定したりするサーバコンピュータである。つまり、図１の分析機能２００を１台のサーバコンピュータで実現したものである。
検索サーバ３０は、分析サーバ２０で決定されたキーワードのペアを用いた検索要求に応じて、検索結果であるコンテンツを返すサーバコンピュータである。つまり、図１の検索機能３００を１台のサーバコンピュータで実現したものである。
【００４０】
クライアント４０ａ、４０ｂは、ユーザが使用するＰＣ等の端末装置である。より詳しくは、各ユーザが他のユーザとの間でメッセージ交換を行うために用いる端末装置である。また、本実施の形態では、メッセージから抽出されたキーワードやそのキーワードを用いた検索により得られた検索結果の表示も行う。尚、図では、２台のクライアントしか示していないが、３台以上のクライアントを設けてもよい。また、以下で、クライアント４０ａ、４０ｂを区別しない場合は、単に「クライアント４０」ということもある。
ネットワーク８０は、メッセージの交換に用いる通信手段である。このネットワーク８０としては、インターネットやＬＡＮ（Local Area Network）が例示される。
【００４１】
これらの構成のうち、分析サーバ２０で上記の第１の機能及び第２の機能を実現するので、ここで分析サーバ２０の機能構成について説明する。
図５は、分析サーバ２０の機能構成例を示したブロック図である。
図示するように、分析サーバ２０は、テキスト取得部２１と、キーワード抽出部２２と、重要キーワード決定部２３と、会話履歴記憶部２４と、キーワードリスト記憶部２５と、キーワードペア決定部２６と、キーワードペアリスト記憶部２７と、通信制御部２８とを備えている。
【００４２】
テキスト取得部２１は、会話サーバ１０から受け取ったメッセージからユーザ情報や日時情報等の付随情報を取り除き、テキスト（テキストデータ）のみを抜き出す。本実施の形態では、テキストデータを取得する取得部の一例として、テキスト取得部２１を設けている。
キーワード抽出部２２は、テキスト取得部２１が抜き出したテキストに自然言語処理を適用して、複数のキーワードを抽出する。
【００４３】
重要キーワード決定部２３は、キーワード抽出部２２が抽出した複数のキーワードのうち、会話のコンテキストからみて特に重要と考えられる重要キーワードを決定する。本実施の形態では、複数のキーワードを抽出する抽出部の一例として、重要キーワード決定部２３を設けている。
会話履歴記憶部２４は、重要キーワード決定部２３が重要キーワードを決定する際に参照する会話履歴を記憶する。
キーワードリスト記憶部２５は、重要キーワード決定部２３が現在の会話について処理する間、現在の会話における重要キーワードをその重みと共に記憶する。
【００４４】
キーワードペア決定部２６は、重要キーワード決定部２３が決定した重要キーワードのペア（キーワードペア）のうち、相関するキーワードペアを、例えば通信制御部２８を用いて検索サーバ３０に問い合わせることで得られた頻度情報に基づいて決定する。本実施の形態では、キーワードペアを決定する決定部の一例として、キーワードペア決定部２６を設けている。
キーワードペアリスト記憶部２７は、キーワードペア決定部２６が決定したキーワードペアをその相関値と共に記憶する。
通信制御部２８は、キーワードペア決定部２６がキーワードペアを決定する際に、検索サーバ３０に対して問い合わせを行う。また、キーワードペア決定部２６が決定したキーワードペアの情報を、会話を行っているユーザのクライアント４０に送信する。更に、ユーザによりそのキーワードペアの中から所望のキーワードペアが選択されると、そのキーワードペアを検索サーバ３０に送信し、検索サーバ３０から検索結果を受信し、その検索結果をユーザのクライアント４０に送信する。本実施の形態では、キーワードペアを提示する提示部の一例として、通信制御部２８を設けている。
【００４５】
次に、本実施の形態の動作について説明する。
まず、分析サーバ２０のメインの動作について説明する。
図６は、分析サーバ２０のメインの動作の例を示したフローチャートである。尚、ここでは、ユーザＡが使用するクライアント４０ａとユーザＢが使用するクライアント４０ｂとの間で会話が行われており、ユーザＡが、ユーザＢの発言に関連する情報の取得を希望するユーザであるとする。また、この動作は、会話の開始から終了まで継続して行われる。
【００４６】
テキスト取得部２１は、クライアント４０ａとクライアント４０ｂとの間で送受信されるメッセージを会話サーバ１０から受け取り、ユーザＡ、Ｂの何れかが会話を終了したかどうかを判定する（ステップ２２１）。例えば、会話サーバ１０から受け取ったメッセージに会話の終了を示す情報が含まれていれば、会話が終了したものと判定する。
【００４７】
その結果、会話が終了したと判定されれば、処理は終了するが、会話が終了したと判定されなければ、テキスト取得部２１は、ユーザＡ、Ｂの何れかがテキストを入力したかどうかを判定する（ステップ２２２）。例えば、会話サーバ１０から受け取ったメッセージにユーザ情報としてユーザＡ又はユーザＢの識別情報が付加されており、かつ、メッセージが会話の内容に対応するテキストを含んでいれば、テキストが入力されたものと判定する。
【００４８】
ここで、テキストが入力されたと判定されなければ、ステップ２２２を繰り返す。即ち、テキストが入力されるまで待ち合わせる。一方、テキストが入力されたと判定されれば、テキスト取得部２１は、そのテキストをキーワード抽出部２２に受け渡し、キーワード抽出部２２以降の処理部が、情報抽出処理を実行する（ステップ２２３）。
【００４９】
以下、このステップ２２３における情報抽出処理について詳細に説明する。
図７は、情報抽出処理の概略の流れを示したフローチャートである。
この情報抽出処理においては、まず、キーワード抽出部２２が、テキスト取得部２１が新たに取得したテキストからのキーワード抽出処理を実行する（ステップ２４１）。具体的には、対象のテキストに自然言語処理の技術を適用し、検索に有用と考えられるキーワードを抽出する。ここで、キーワードは、例えば、（動詞，“動く”）、（地名，“長野”）のように、カテゴリと文字列の組で表すようにするとよい。また、このキーワードの抽出の段階で、検索に不要なキーワードをフィルタリングしてもよい。例えば、（名詞，“物”）は一般的過ぎるため、キーワードとして抽出しないようにしてもよい。
【００５０】
次に、重要キーワード決定部２３が、キーワード抽出部２２が抽出した複数のキーワードからの重要キーワード導出処理を実行する（ステップ２４２）。この処理の詳細については後述する。
更に、キーワードペア決定部２６が、重要キーワード決定部２３が導出した重要キーワードに基づくキーワードペア算出処理を実行する（ステップ２４３）。この処理の詳細についても後述する。
【００５１】
まず、図７のステップ２４２における重要キーワード導出処理について説明する。
図８は、重要キーワード導出処理の流れを示したフローチャートである。
まず、重要キーワード決定部２３は、新規に取得したキーワードがまだ残っているかを判定する（ステップ２６１）。即ち、図６のステップ２２２で今回入力されたと判定されたテキストからキーワード抽出部２２が抽出したキーワードに対して以下の処理が行われるが、既にこの処理が行われることで未処理のキーワードがなくなっていないかをここで判定している。
その結果、キーワードが残っていない場合は処理を終了する。一方、キーワードが残っている場合は、その残っているキーワードの中から１つのキーワードＫを取得し、現在の会話におけるそのキーワードの出現頻度Ｆ（Ｋ）を求める（ステップ２６２）。ここで、Ｆ（Ｋ）は、例えば、現在の会話におけるキーワードのＫの出現総数を、現在の会話における全てのキーワードの出現総数で割った値を用いるとよい。
【００５２】
そして、重要キーワード決定部２３は、ユーザＢの過去の会話履歴が会話履歴記憶部２４に記憶されているかどうかを判定する（ステップ２６３）。
ここで、ユーザＢの会話履歴が会話履歴記憶部２４に記憶されていると判定されれば、まず、そのユーザＢの会話履歴の中でキーワードＫが出現した直近の会話を特定する。次に、その特定された会話におけるキーワードＫの重みＷ（Ｋ）を取り出す。そして、例えば、Ｆ（Ｋ）＋α×Ｗ（Ｋ）を新しい重みＷとする（ステップ２６４）。ここで、αとしては、先に述べたように、キーワードＫが出現した直近の会話が、現在の会話からみてｉ回前の会話である場合に、ｉの増加に従って減少する減衰関数α（ｉ）を用いるとよい。
一方、ユーザＢの会話履歴が会話履歴記憶部２４に記憶されていないと判定されれば、例えば、Ｆ（Ｋ）をそのままキーワードＫの重みＷとする（ステップ２６５）。
【００５３】
その後、重要キーワード決定部２３は、会話履歴記憶部２４に記憶された会話履歴内のキーワードＫに関するエントリを更新する（ステップ２６６）。具体的には、現在の会話を一意に識別する会話ＩＤと、現在注目している発話者を一意に識別する発話者ＩＤと、ステップ２６２で取得したキーワードと、ステップ２６４又はステップ２６５で決定した重みとを含むエントリを追加する。
また、重要キーワード決定部２３は、キーワードリスト記憶部２５に記憶されたキーワードリストを更新する（ステップ２６７）。例えば、まず、キーワードリスト記憶部２５に記憶されたキーワードリストを読み込む。次に、今回ステップ２６２で取得したキーワードと、ステップ２６４又はステップ２６５で決定した重みとを、読み込んだキーワードリストに反映させて、重みの大きい順に上位Ｎ番目までのキーワードリストを新たに生成する。そして、これをキーワードリスト記憶部２５に記憶する。
【００５４】
ここで、会話履歴記憶部２４に記憶される会話履歴について説明する。
図９は、会話履歴の一例を示した図である。
図示するように、会話履歴は、会話を一意に識別する会話ＩＤと、発話者を一意に識別する発話者ＩＤと、キーワードと、重みとを対応付けたものとなっている。尚、キーワードは、カテゴリと文字列とからなる場合もあるが、ここでは説明を簡略化するため、文字列のみとしている。この会話履歴に対しては、図６のステップ２２２でテキストの入力が検出され、図８のステップ２６２でそのテキストからキーワードが抽出される都度、ステップ２６６でそのキーワードに関するエントリが追加されていく。
【００５５】
この会話履歴において、例えば、キーワード「ハードディスク」に着目する。このキーワードの重みは、会話ＩＤ「００１」では「３．３」であるが、会話ＩＤ「００２」では「４．８」である。これは、前者の発話者がユーザＡで、後者の発話者がユーザＢであるからであり、発話者が異なれば同じキーワードであっても重みが違ってくることを意味している。また、図には示していないが、発話者ＩＤ、キーワードが同じであるのに、重みが異なる場合もある。これは、会話を行った時期によって、同じキーワードであっても重みが違ってくるからである。
【００５６】
また、キーワードリスト記憶部２５に記憶されるキーワードリストについても説明する。
図１０は、キーワードリストの一例を示した図である。
図示するように、キーワードリストは、キーワードと重みとを対応付けたものになっている。会話が開始された時点では、キーワードリストにキーワードと重みの対応は登録されていない。しかし、会話が進み、図８のステップ２６２でキーワードが取得されると、そのキーワードの重みが上位Ｎ番目までであれば、ステップ２６７でそのキーワードと重みの対応がキーワードリスト記憶部２５に記憶される。
【００５７】
このキーワードリストにおいて、例えば、キーワード「ハードディスク」に着目する。このキーワードについて、今回の処理で重み「４．８」が算出されたとし、上位４番目までにランクしているとする（Ｎ＝４の場合）。すると、図示するように、キーワード「ハードディスク」はキーワードリストに登録される。
尚、このキーワードリストに対しては、キーワード及び重みが重要キーワード決定部２３により登録され、新たに追加されたキーワードがキーワードペア決定部２６により特定される。従って、キーワードリストは、会話の開始から終了までの間だけ、重要キーワード決定部２３及びキーワードペア決定部２６から参照可能なメモリであるキーワードリスト記憶部２５に保持しておけばよい。
【００５８】
次に、図７のステップ２４３におけるキーワードペア算出処理について説明する。
図１１は、キーワードペア算出処理の流れを示したフローチャートである。
まず、キーワードペア決定部２６は、現在の会話において既にこの処理が呼ばれているかどうかを判定する（ステップ２８１）。
その結果、この処理が一度も呼ばれていない、つまり、初めて呼ばれる場合は、この時点でキーワードリスト記憶部２５のキーワードリストに含まれている全てのキーワードｋｗ［ｉ］と、それらのキーワードの全てのペア（ｋｗ［ｉ］，ｋｗ［ｊ］）とを検索機能に投入し、出現頻度ｆ［ｉ］及びｆ［ｉ，ｊ］を求める（ステップ２８２）。ここで、キーワードリストに含まれるキーワードの数をｍとすると、ｉ＝１，２，…，ｍ、ｊ＝１，２，…，ｍ（ｉ≠ｊ）である。本実施の形態では、第１の頻度情報の一例として、出現頻度ｆ［ｉ］を用い、第２の頻度情報の一例として、出現頻度ｆ［ｉ，ｊ］を用いている。尚、この処理は、会話開始直後に行われるので、ｍはまだそれほど大きな数でない。従って、出現頻度ｆ［ｉ］及びｆ［ｉ，ｊ］を求めるためのコストもそれほど大きなものにはならないと考えられる。
【００５９】
尚、ステップ２８２におけるキーワード及びキーワードペアの検索機能への投入は、通信制御部２８を介して行えばよい。
また、ステップ２８２では、出現頻度ｆ［ｉ］が予め決めた頻度閾値を超えていないものは、ｆ［ｉ，ｊ］を求める際の処理対象にしなくてもよい。本実施の形態では、第１の水準の一例として、頻度閾値を用いている。
【００６０】
一方、この処理が既に呼ばれている場合は、前回のこの処理の呼出し以降、今回のこの処理の呼出しまでに新たにキーワードリストに追加されたキーワードを検索機能に投入し、出現頻度を求める（ステップ２８３）。ここでは、この処理の呼出し時に既に相関値を計算済みのキーワードをｋｗ［１］，ｋｗ［２］，…，ｋｗ［ｐ］とし、新たに追加されたキーワードをｋｗ［ｐ＋１］，ｋｗ［ｐ＋２］，…，ｋｗ［ｍ］とする。この場合、ステップ２８３では、ｋｗ［ｐ＋１］，ｋｗ［ｐ＋２］，…，ｋｗ［ｍ］を検索機能に投入して、出現頻度ｆ［ｐ＋１］，ｆ［ｐ＋２］，…，ｆ［ｍ］を求める。
尚、ステップ２８３におけるキーワードの検索機能への投入は、通信制御部２８を介して行えばよい。
【００６１】
次に、キーワードペア決定部２６は、この処理の呼出し時に相関値を既に計算済みのキーワードと新たに追加されたキーワードのペア、及び、新たに追加されたキーワードどうしのペアについて、相関値が上位Ｍ番目までにはいる可能性があるかどうかを判定する（ステップ２８４）。この処理の呼出し時に既に相関値を計算済みのキーワードをｋｗ［１］，ｋｗ［２］，…，ｋｗ［ｐ］とし、新たに追加されたキーワードをｋｗ［ｐ＋１］，ｋｗ［ｐ＋２］，…，ｋｗ［ｍ］とすると、まず、キーワードペア（ｋｗ［ｉ］，ｋｗ［ｊ］）（ｉ＝１，２，…，ｐ、ｊ＝ｐ＋１，ｐ＋２，…，ｍ）についてこの判定を行う。また、キーワードペア（ｋｗ［ｉ］,ｋｗ［ｊ］）（ｉ＝ｐ＋１，ｐ＋２，…，ｍ、ｊ＝ｐ＋１，ｐ＋２，…，ｍ、ｉ≠ｊ）についても同じ判定を行う。つまり、ステップ２８３で求めた出現頻度ｆ［ｉ］とｆ［ｊ］とから、ｍａｘ（１／ｆ［ｉ］，１／ｆ［ｊ］）を求める。一方で、キーワードペアリスト記憶部２７のキーワードペアリスト内の相関値のうち、最も小さい相関値Ｒ（Ｍ）を求める（但し、Ｒ（Ｍ）は、ユーザに提示される相関値をｆ［ＡＬＬ］で除したものとする）。そして、ｍａｘ（１／ｆ［ｉ］，１／ｆ［ｊ］）とＲ（Ｍ）を比較する。その結果、先に述べたように、Ｒ（Ｍ）が大きければ、キーワードペア（ｋｗ［ｉ］，ｋｗ［ｊ］）の相関値は、上位Ｍ番目に入り得ない。従って、検索機能に“ｋｗ［ｉ］  ａｎｄ  ｋｗ［ｊ］”を投入して検索する必要はない。本実施の形態では、第２の水準の一例として、Ｒ（Ｍ）を用いている。
尚、ステップ２８４では、ステップ２８３で求めた出現頻度ｆ［ｉ］のうち、予め決めた頻度閾値を超えていないものは、判定処理の対象から除外してもよい。本実施の形態では、第１の水準の一例として、頻度閾値を用いている。
【００６２】
その後、キーワードペア決定部２６は、上位Ｍ番目に入る可能性があるキーワードのペア（ｋｗ［ｉ］，ｋｗ［ｊ］）について、検索機能に“ｋｗ［ｉ］  ａｎｄ  ｋｗ［ｊ］”の形式でクエリーを投入することで、出現頻度ｆ［ｉ，ｊ］を取得する（ステップ２８５）。
尚、ステップ２８５におけるキーワードの検索機能への投入は、通信制御部２８を介して行えばよい。
最後に、キーワードペア決定部２６は、既に呼ばれたことがある場合もない場合も、上述した式を用いて、各キーワードペアについて相関値を求める。そして、上位Ｍ番目までの相関値をキーワードペアリスト記憶部２７のキーワードペアリストに登録する（ステップ２８６）。尚、本実施の形態では、相関度の一例として、相関値を用いている。
【００６３】
ここで、キーワードペアリスト記憶部２７に記憶されるキーワードペアリストについて説明する。
図１２は、キーワードペアリストの一例を示した図である。
図示するように、キーワードペアリストは、キーワードペアと相関値とを対応付けたものになっている。例えば、キーワード「ハードディスク」とキーワード「電源」のペアの相関値は「１０．５」であり、このキーワードペアリストの中では、最も相関の高いキーワードのペアとなっている。
【００６４】
このように、本実施の形態では、検索機能に重要キーワードを投入して返されるヒット数に基づきキーワードペアを決定している。これにより、専用の検索インデックスを構築することなく、相関の高いキーワードペアを発見することができる。
また、これに加えて、キーワードペアを決定するのに用いるキーワードの集合として、会話を行っているユーザと関連の深い重要キーワードの集合を決定している。これにより、検索機能をパーソナライズすることも可能になっている。
【００６５】
また、キーワードペア決定部２６が相関の高いキーワードペアを決定すると、通信制御部２８が、ユーザＡが使用するクライアント４０ａに対して、キーワードペアの情報を送信する。
これにより、クライアント４０ａにはキーワードペアの情報が表示される。この状態で、ユーザＡがキーワードペアの中から所望のキーワードペアを選択したとする。
すると、通信制御部２８が、この選択の情報を受信し、選択されたキーワードペアを検索機能に投入し、検索結果を得る。そして、クライアント４０ａに対して、この検索結果を送信する。
【００６６】
尚、ここでは、ユーザＡがキーワードペアを選択すると、このキーワードペアによる検索を改めて行うようにした。しかしながら、相関の高いキーワードペアを決定するために検索機能を用いて検索を行った際に、検索結果も記憶しておき、キーワードペアが選択されると、この記憶された検索結果のうち該当するものをクライアント４０ａに送信するようにしてもよい。
【００６７】
また、このとき、コンテキストを判断するために、キーワードが持つカテゴリの情報を用いてもよい。例えば、ある会話のテキストから抽出されたキーワードが（地名，“長野”）であったとする。この場合、検索機能が返す検索結果の各ページのテキストを言語処理することにより、地名として「長野」に言及しているページのみを返すことができる。こうすることで、検索用のキーワードが会話のコンテキストによりマッチするものとなるため、検索される情報の精度の向上が期待できる。
【００６８】
更に、キーワードは様々なカテゴリを含むため、検索用のキーワードのカテゴリに応じて最適な検索機能を選択することも可能である。例えば、キーワードが（地名，xxx）であれば、対象となる検索機能を、地図検索サービスとすればよい。
一般に、抽出されるキーワードごとに、カテゴリは異なる。従って、キーワードごとに対象となる検索機能を変更してもよい。或いは、キーワードの出現頻度ごとに重み付けして上位の検索機能から優先的に使用するようにしてもよい。
【００６９】
尚、ここでは、重要キーワードの導出やキーワードペアの決定の処理を分析サーバ２０で行うこととしたが、上述したように、かかる処理は、どのコンピュータで行ってもよい。例えば、情報検索の主体であるユーザＡが使用するクライアント４０ａにて行うようにしてもよい。この場合は、図示しない表示制御部が、キーワードペアをディスプレイに表示し、図示しない操作受付部が、キーワードペアの選択操作を受け付け、図示しない表示制御部が、検索結果をディスプレイに表示する構成となる。
【００７０】
ところで、過去の会話履歴を参照した重要キーワードの導出に関しては、これまで異なる会話間での重み付けのみを考えてきた。しかしながら、同じ会話における新しい発言と古い発言とで重み付けを変えることも考えられる。
以下、このような例について説明する。
ここでは、ユーザＡとユーザＢが会話をしているとし、そのテキストをＴ（Ａ，Ｂ）とする。また、ユーザＡとユーザＢの過去の会話ログのテキストをＨＴ（Ａ，Ｂ）（１），ＨＴ（Ａ，Ｂ）（２），…，ＨＴ（Ａ，Ｂ）（ｎ−１）とする。特に、ＨＴ（Ａ，Ｂ）（ｎ）＝Ｔ（Ａ，Ｂ）とする。ｉ≦ｎ−１のとき、過去の会話は終了しているため、ＨＴ（Ａ，Ｂ）（ｉ）の量が増えることはない。一方、ＨＴ（Ａ，Ｂ）（ｎ）、つまりＴ（Ａ，Ｂ）の量は、現在チャットが進行中なので、増えていく。
【００７１】
ここで、各キーワードＫに対して、Ｔ（Ａ，Ｂ）とＨＴ（Ａ，Ｂ）（ｉ）の時間に伴う重み付けを二重にとることを考える。
まず、Ｔ＝ＨＴ（Ａ，Ｂ）（ｉ）を１つ固定する。そして、ＴにおけるユーザＡ、ユーザＢの発言を、ｓ（１），ｓ（２），…，ｓ（ｍ）とする。即ち、Ｔ＝｛ｓ（１），ｓ（２），…，ｓ（ｍ）｝とする。このとき、キーワードＫのＴ内での重み付けＷ（Ｋ，Ｔ，ｉ）は、次のようになる。
【００７２】
【数５】
2009070180.tif 000007
【００７３】
ここで、αは重み付けのための係数で、０＜α＜１とする。このように重み付けを定義することにより、時間が経過するほど、キーワードＫに対する昔の発言の重みが小さくなっていくことになる。
【００７４】
次に、これをＨＴ（Ａ，Ｂ）（１），Ｈ（Ａ，Ｂ）（２），…，ＨＴ（Ａ，Ｂ）（ｎ）の時系列を考慮した重み付けに拡張する。キーワードＫのＨＴ（Ａ，Ｂ）（１），ＨＴ（Ａ，Ｂ）（２），…，ＨＴ（Ａ，Ｂ）（ｎ）内での重み付けを以下のように定義する。
即ち、ＨＴ（Ａ，Ｂ）（ｉ）内で、Ｗ（Ｋ，Ｔ（Ａ，Ｂ）（ｉ），ｊ）が最大になるようなｊを１つ選び、ｊ（ｉ，Ｋ）とする。これは、ＨＴ（Ａ，Ｂ）（ｉ）（ｉ＜ｎ）の記録時に予め求めておくことができる。
すると、会話ごとの重み付けＷ（Ｋ，ｉ）は、次のようになる。
【００７５】
【数６】
2009070180.tif 000008
【００７６】
ここで、α（ｉ）は重み付けのための関数で、（ｉ−１）回目のチャットとｉ回目のチャットとの間の経過日数ｔの単調減少関数で、０＜α（ｉ）＜１を満たすものである。例えば、α（ｉ）＝ｅｘｐ（−βｔ）（β＞０）とするとよい。
【００７７】
以上述べたように、本実施の形態によれば、ユーザは会話を行うだけで、会話のコンテキストに見合った情報が自動的に取得される。特に、会話が続くにつれて、コンテキストにぶれが生じなくなるため、検索される情報も会話のコンテキストにより沿ったものとなる。
また、メッセージ送信時にリアルタイムで分析を行うため、会話を進めることで、より必要な情報が必要に応じて提供されるようになる。
【００７８】
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図１３は、このようなコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるＣＰＵ(Central Processing Unit）９０ａと、Ｍ／Ｂ(マザーボード）チップセット９０ｂを介してＣＰＵ９０ａに接続されたメインメモリ９０ｃと、同じくＭ／Ｂチップセット９０ｂを介してＣＰＵ９０ａに接続された表示機構９０ｄとを備える。また、Ｍ／Ｂチップセット９０ｂには、ブリッジ回路９０ｅを介して、ネットワークインターフェイス９０ｆと、磁気ディスク装置（ＨＤＤ）９０ｇと、音声機構９０ｈと、キーボード／マウス９０ｉと、フレキシブルディスクドライブ９０ｊとが接続されている。
【００７９】
尚、図１３において、各構成要素は、バスを介して接続される。例えば、ＣＰＵ９０ａとＭ／Ｂチップセット９０ｂの間や、Ｍ／Ｂチップセット９０ｂとメインメモリ９０ｃの間は、ＣＰＵバスを介して接続される。また、Ｍ／Ｂチップセット９０ｂと表示機構９０ｄとの間は、ＡＧＰ（Accelerated Graphics Port）を介して接続されてもよいが、表示機構９０ｄがＰＣＩ Ｅｘｐｒｅｓｓ対応のビデオカードを含む場合、Ｍ／Ｂチップセット９０ｂとこのビデオカードの間は、ＰＣＩ Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バスを介して接続される。また、ブリッジ回路９０ｅと接続する場合、ネットワークインターフェイス９０ｆについては、例えば、ＰＣＩ Ｅｘｐｒｅｓｓを用いることができる。また、磁気ディスク装置９０ｇについては、例えば、シリアルＡＴＡ（AT Attachment）、パラレル転送のＡＴＡ、ＰＣＩ（Peripheral Components Interconnect）を用いることができる。更に、キーボード／マウス９０ｉ、及び、フレキシブルディスクドライブ９０ｊについては、ＵＳＢ（Universal Serial Bus）を用いることができる。
【００８０】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（装置又は機器）、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【００８１】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の形態の概要について説明するための図である。
【図２】キーワードの出現頻度を表示する画面の例を示した図である。
【図３】キーワードの出現頻度及び相関値を表示する画面の例を示した図である。
【図４】本発明の実施の形態が適用可能なコンピュータシステムの全体構成を示した図である。
【図５】本発明の実施の形態における分析サーバの機能構成例を示したブロック図である。
【図６】本発明の実施の形態におけるメインの動作を示したフローチャートである。
【図７】本発明の実施の形態における情報抽出処理の流れを示したフローチャートである。
【図８】本発明の実施の形態における重要キーワード導出処理の流れを示したフローチャートである。
【図９】会話履歴記憶部に記憶される会話履歴の例を示した図である。
【図１０】キーワードリスト記憶部に記憶されるキーワードリストの例を示した図である。
【図１１】本発明の実施の形態におけるキーワードペア算出処理の流れを示したフローチャートである。
【図１２】キーワードペアリスト記憶部に記憶されるキーワードペアリストの例を示した図である。
【図１３】本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
【符号の説明】
【００８３】
２０…分析サーバ、２１…テキスト取得部、２２…キーワード抽出部、２３…重要キーワード決定部、２４…会話履歴記憶部、２５…キーワードリスト記憶部、２６…キーワードペア決定部、２７…キーワードペアリスト記憶部、２８…通信制御部
【図１】
2009070180.tif 000009
【図２】
2009070180.tif 000010
【図３】
2009070180.tif 000011
【図４】
2009070180.tif 000012
【図５】
2009070180.tif 000013
【図６】
2009070180.tif 000014
【図７】
2009070180.tif 000015
【図８】
2009070180.tif 000016
【図９】
2009070180.tif 000017
【図１０】
2009070180.tif 000018
【図１１】
2009070180.tif 000019
【図１２】
2009070180.tif 000020
【図１３】
2009070180.tif 000021