(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022093814
(43)【公開日】2022-06-24
(54)【発明の名称】チャットシステムおよびチャットプログラム
(51)【国際特許分類】
G06F 16/33 20190101AFI20220617BHJP
G06F 13/00 20060101ALI20220617BHJP
【FI】
G06F16/33
G06F13/00 650B
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2020206501
(22)【出願日】2020-12-14
(71)【出願人】
【識別番号】515211544
【氏名又は名称】株式会社サイシード
(74)【代理人】
【識別番号】100105784
【弁理士】
【氏名又は名称】橘 和之
(72)【発明者】
【氏名】安藤 光太郎
【テーマコード(参考)】
5B084
5B175
【Fターム(参考)】
5B084AA01
5B084AA16
5B084AB11
5B084AB39
5B084BB19
5B084CA12
5B084DB01
5B084DC02
5B084DC03
5B175DA01
5B175HA02
5B175HB03
(57)【要約】 (修正有)
【課題】より適切な内容の回答を質問者に対して提供するチャットシステム及びチャットプログラムを提供する。
【解決手段】サーバ装置と通信ネットワークを介して接続される複数のユーザ端末で構成されたチャットシステムにおいて、サーバ装置100は、質問者から質問を受け付けたとき、複数のユーザに質問を転送して複数の他のユーザから回答を取得するユーザ回答取得部13と、会話データ記憶部10のデータベースに記憶されている回答内容および複数の他のユーザから得た回答内容の何れかを用いて質問者への回答を行う回答部14と、を備える。
【効果】データベースに記憶されている回答内容及び複数のユーザから得た回答内容の中から何れかを選択して回答することで、より適切な内容の回答を質問者に対して提供することができる。
【選択図】
図2
【特許請求の範囲】
【請求項1】
質問内容と回答内容とを紐付けてデータベースとして記憶する会話データ記憶部と、
質問者であるユーザの端末から質問を受け付けたとき、上記質問者以外の複数の他のユーザの端末に上記質問を転送し、上記複数の他のユーザから回答を得るユーザ回答取得部と、
上記会話データ記憶部に記憶されている回答内容および上記ユーザ回答取得部により上記複数の他のユーザから得た回答内容の何れかを用いて上記質問者への回答を行う回答部とを備えた
ことを特徴とするチャットシステム。
【請求項2】
上記質問者であるユーザの端末から質問を受け付けたとき、質問に対する回答として上記会話データ記憶部に記憶されている回答内容を用いることの適否を判定する適否判定部を更に備え、
上記ユーザ回答取得部は、上記会話データ記憶部に記憶されている回答内容を用いることが適していないと上記適否判定部により判定された場合に、上記複数の他のユーザの端末に上記質問を転送し、
上記回答部は、
上記会話データ記憶部に記憶されている回答内容を用いることが適していると上記適否判定部により判定された場合、上記会話データ記憶部に記憶されている回答内容を用いて上記質問者への回答を行う第1の回答部と、
上記会話データ記憶部に記憶されている回答内容を用いることが適していないと上記適否判定部により判定された場合、上記ユーザ回答取得部により上記複数の他のユーザから得た回答内容の中から所定の判定基準に合致する何れか1つを選択して上記質問者への回答を行う第2の回答部とを備えた
ことを特徴とする請求項1に記載のチャットシステム。
【請求項3】
上記回答部は、上記会話データ記憶部に記憶されている回答内容および上記ユーザ回答取得部により上記複数の他のユーザから得た回答内容の中から所定の判定基準に合致する何れか1つを選択して上記質問者への回答を行うことを特徴とする請求項1に記載のチャットシステム。
【請求項4】
上記回答部が上記ユーザ回答取得部により取得された回答内容を用いて上記質問者への回答を行った場合に、上記質問者から受け付けた質問の内容と、上記回答部が上記質問者に対して行った回答の内容とを紐付けて上記会話データ記憶部のデータベースに追加して記憶させる会話履歴記録部を更に備えたことを特徴とする請求項1~3の何れか1項に記載のチャットシステム。
【請求項5】
上記質問者からの質問を受け付けたとき、その質問の内容を解析し、より抽象度の高い抽象質問に置換する質問抽象化部を更に備え、
上記適否判定部は、上記質問抽象化部により生成された上記抽象質問に対する回答として上記会話データ記憶部に記憶されている回答内容を用いることの適否を判定し、
上記ユーザ回答取得部は、上記会話データ記憶部に記憶されている回答内容を用いることが適していないと上記適否判定部により判定された場合、上記複数の他のユーザの端末に上記抽象質問を転送する
ことを特徴とする請求項2に記載のチャットシステム。
【請求項6】
上記質問者からの質問を受け付けたとき、その質問の内容を解析し、より抽象度の高い抽象質問に置換する質問抽象化部を更に備え、
上記ユーザ回答取得部は、上記複数の他のユーザの端末に上記抽象質問を転送する
ことを特徴とする請求項3に記載のチャットシステム。
【請求項7】
上記回答部が上記ユーザ回答取得部により取得された回答内容を用いて上記質問者への回答を行った場合に、上記質問抽象化部により生成された上記抽象質問の内容と、上記回答部が上記質問者に対して行った回答の内容とを紐付けて上記会話データ記憶部のデータベースに追加して記憶させる会話履歴記録部を更に備えたことを特徴とする請求項5または6に記載のチャットシステム。
【請求項8】
上記他のユーザから得た回答の内容を解析し、より抽象度の高い抽象回答に置換する回答抽象化部を更に備え、
上記第2の回答部は、上記回答抽象化部により生成された上記抽象回答の中から上記所定の判定基準に合致する何れか1つを選択して上記質問者への回答を行う
ことを特徴とする請求項5に記載のチャットシステム。
【請求項9】
上記他のユーザから得た回答の内容を解析し、より抽象度の高い抽象回答に置換する回答抽象化部を更に備え、
上記回答部は、上記会話データ記憶部に記憶されている回答内容および上記回答抽象化部により生成された上記抽象回答の中から上記所定の判定基準に合致する何れか1つを選択して上記質問者への回答を行う
ことを特徴とする請求項6に記載のチャットシステム。
【請求項10】
上記回答部が上記回答抽象化部により生成された上記抽象回答を用いて上記質問者への回答を行った場合に、上記質問抽象化部により生成された上記抽象質問の内容と、上記回答部が上記質問者に対して行った上記抽象回答の内容とを紐付けて上記会話データ記憶部のデータベースに追加して記憶させる会話履歴記録部を更に備えたことを特徴とする請求項8または9に記載のチャットシステム。
【請求項11】
上記会話履歴記録部は、上記質問者から質問を受け付けた場合、上記質問抽象化部により生成された上記抽象質問と上記質問者とを紐付けて上記会話データ記憶部のデータベースに記憶させ、
上記ユーザ回答取得部は、上記質問者から受け付けた質問について上記質問抽象化部により生成された上記抽象質問と同じまたは類似の抽象質問に紐付けて上記質問者として上記会話データ記憶部に記憶されているユーザを除く他の複数のユーザの端末に上記抽象質問を転送する
ことを特徴とする請求項7または10に記載のチャットシステム。
【請求項12】
質問者であるユーザの端末から質問を受け付けたとき、上記質問者以外の複数の他のユーザの端末に上記質問を転送し、上記複数の他のユーザから回答を得るユーザ回答取得手段、および
質問内容と回答内容とを紐付けてデータベースとして記憶している会話データ記憶部の回答内容および上記ユーザ回答取得手段により上記複数の他のユーザから得た回答内容の何れかを用いて上記質問者への回答を行う回答手段
としてコンピュータを機能させるためのチャットプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、チャットシステムおよびチャットプログラムに関し、特に、人間との間で会話を自動的に行うシステムに用いて好適なものである。
【背景技術】
【0002】
近年、テキストや音声を通じて人間との間で会話を自動的に行うプログラム、いわゆるチャットボットが注目され、広く活用されつつある。多くのチャットボットでは、ユーザから入力された質問や発言の内容を解析し、それに対する回答を生成して返信する。チャットボットには、あらかじめ決められたシナリオによって選択式で会話をするタイプや、会話ログを利用して文脈に近しい応答をするタイプなどがある。
【0003】
また、コンピュータによる回答と人間による回答とを併用したシステムも知られている(例えば、特許文献1参照)。特許文献1には、質問内容とデータベース内の回答群との適合度に基づいて、データベースまたは回答者の何れかより回答をすることが開示されている。特許文献1に記載の質問応答システムでは、ユーザから送信された質問を回答用のデータベースに転送することの適否(質問に対するその回答群の適合度)を質問内容に基づいて判定し、その判定結果に応じてデータベースまたは回答者インタフェースの何れかに質問を転送し、転送した質問に対する回答をデータベースまたは回答者インタフェースから受け取って返送する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記特許文献1に記載の質問応答システムによれば、質問内容との適合度が高い回答がデータベース内にない場合に、回答者から回答を得て質問者に返送することができる。しかしながら、回答者による回答が必ずしも適切な内容であるとは限らないという問題があった。
【0006】
本発明は、このような問題を解決するために成されたものであり、より適切な内容の回答を質問者に対して提供できるようにすることを目的とする。
【課題を解決するための手段】
【0007】
上記した課題を解決するために、本発明では、質問者であるユーザの端末から質問を受け付けたとき、質問者以外の複数の他のユーザの端末に質問を転送して当該複数の他のユーザから回答を取得し、会話データ記憶部のデータベースに記憶されている回答内容および複数の他のユーザから得られる回答内容の何れかを用いて質問者への回答を行うようにしている。
【発明の効果】
【0008】
上記のように構成した本発明によれば、複数のユーザから回答を得て、データベースに記憶されている回答内容および複数のユーザから得た回答の中から何れかが選択されて質問者への回答に使われるので、1人のユーザのみから回答を得る場合に比べて、より適切な内容の回答を質問者に対して提供することができる。
【図面の簡単な説明】
【0009】
【
図1】第1の実施形態によるチャットシステムの全体構成例を示す図である。
【
図2】第1の実施形態によるサーバ装置の機能構成例を示すブロック図である。
【
図3】第1の実施形態によるチャットシステムの動作例を示す図である。
【
図4】第2の実施形態によるサーバ装置の機能構成例を示すブロック図である。
【
図5】第2の実施形態によるチャットシステムの動作例を示す図である。
【
図6】第3の実施形態によるサーバ装置の機能構成例を示すブロック図である。
【
図7】第3の実施形態によるチャットシステムの動作例を示す図である。
【発明を実施するための形態】
【0010】
(第1の実施形態)
以下、本発明の第1の実施形態を図面に基づいて説明する。
図1は、第1の実施形態によるチャットシステムの全体構成例を示す図である。
図1に示すように、本実施形態のチャットシステムは、サーバ装置100と、複数のユーザ端末200A,200B,200C,・・・(以下、特に区別しないときはユーザ端末200という)とを備えて構成される。サーバ装置100とユーザ端末200との間は、インターネットまたは携帯電話網等の通信ネットワーク500を介して接続される。
【0011】
サーバ装置100は、いわゆるチャットボットとして機能するものであり、ユーザ端末200を使用するユーザとの間で会話を自動的に行う。第1の実施形態では基本的に、サーバ装置100は、ユーザ端末200から送信された質問に対して、データベースにあらかじめ記憶されている回答を返送する。ただし、質問に対して適切な回答がデータベースに存在しない場合は、質問者とは異なる他のユーザが使用する複数のユーザ端末200に質問を転送し、複数の他のユーザから複数の回答を得て、その中から所定の判定基準に合致する何れか1つを選択して質問者への回答を行う。
【0012】
図2は、第1の実施形態によるサーバ装置100の機能構成例を示すブロック図である。
図2に示すように、第1の実施形態によるサーバ装置100は、機能構成として、質問受付部11、適否判定部12、ユーザ回答取得部13、回答部14および会話履歴記録部15を備えている。ユーザ回答取得部13は、具体的な機能構成として、質問転送部13Aおよび回答受付部13Bを備えている。また、回答部14は、具体的な機能構成として、第1の回答部14Aおよび第2の回答部14Bを備えている。また、第1の実施形態によるサーバ装置100は、記憶媒体として、会話データ記憶部10を備えている。
【0013】
上記各機能ブロック11~15は、ハードウェア、DSP(Digital Signal Processor)、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック11~15は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたチャットプログラムが動作することによって実現される。
【0014】
会話データ記憶部10は、質問内容と回答内容とを紐付けてデータベースとして記憶する。会話データ記憶部10は、想定される複数の質問内容と、それに対してそれぞれ想定される複数の回答内容とをあらかじめ紐付けて記憶している。また、詳細を後述するように、会話データ記憶部10には、当初のデータベースには存在しない質問内容と回答内容との組み合わせが会話履歴記録部15によって追加して記憶される。
【0015】
質問受付部11は、質問者であるユーザが使用するユーザ端末200から質問を受け付ける。質問者は、ユーザ端末200A,200B,200C,・・・を使用するユーザA,B,C,・・・の何れもがなり得る。なお、以下では説明を簡便にするために、ユーザ端末200AのユーザAが質問者である場合について説明する。
【0016】
適否判定部12は、質問受付部11が質問を受け付けたとき、質問に対する回答として、会話データ記憶部10に記憶されている回答内容を用いることの適否を判定する。例えば、適否判定部12は、質問受付部11が受け付けた質問の内容と、会話データ記憶部10に記憶されている複数の質問の内容との類似度をそれぞれ算出し、類似度が所定レベル以上の質問内容が存在するか否かを判定する。そして、類似度が所定レベル以上の質問内容が存在する場合は、それに紐付けて記憶されている回答内容を用いることが適していると判定する。一方、類似度が所定レベル以上の質問内容が存在しない場合は、会話データ記憶部10に記憶されている回答内容を用いることが適していないと判定する。
【0017】
ここで、質問内容の類似度は、公知の技術を用いて算出することが可能である。例えば、質問内容の文章を形態素解析して複数の単語を抽出し、抽出された複数の単語の組み合わせから所定の数値化ルールに従って文章ベクトルを算出して、文章ベクトルの類似度を算出するといった方法を用いることが可能である。文章ベクトルの類似度を算出する際に、文章ベクトルについて所定の関数を用いて特徴量を抽出し、特徴量の類似度を評価するようにしてもよい。あるいは、文章ベクトルを構成する複数の要素値について算出されるユークリッド距離やコサイン類似度を用いるようにしてもよいし、編集距離を用いるようにしてもよい。
【0018】
ユーザ回答取得部13は、会話データ記憶部10に記憶されている回答内容を用いることが適していないと適否判定部12により判定された場合に、質問者であるユーザA以外の複数の他のユーザB,C,・・・が使用するユーザ端末200B,200C,・・・に質問を転送し、複数の他のユーザB,C,・・・から回答を得る。回答部14は、会話データ記憶部10に記憶されている回答内容およびユーザ回答取得部13により複数の他のユーザB,C,・・・から得た回答内容の何れかを用いて、質問者であるユーザAへの回答を行う。
【0019】
具体的には、会話データ記憶部10に記憶されている回答内容を用いることが適していると適否判定部12により判定された場合、第1の回答部14Aは、会話データ記憶部10に記憶されている回答内容を用いて、質問者であるユーザAへの回答を行う。すなわち、回答内容のデータをユーザ端末200Aに返送する。ここで、類似度が所定レベル以上の質問内容が会話データ記憶部10に複数記憶されている場合がある。この場合、第1の回答部14Aは、例えば、類似度が最も大きい質問内容に紐付けて記憶されている回答内容を用いて質問者への回答を行う。
【0020】
一方、会話データ記憶部10に記憶されている回答内容を用いることが適していないと適否判定部12により判定された場合、質問転送部13Aは、ユーザ端末200A以外の複数のユーザ端末200B,200C,・・・に対して、質問受付部11が受け付けた質問を転送する。ここで質問を転送するユーザ端末200B,200C,・・・は、転送する時点で通信ネットワーク500に接続されている端末である。なお、通信ネットワーク500に接続されている他のユーザ端末200B,200C,・・・の全てに質問を転送してもよいし、一部のユーザ端末200に質問を転送してもよい。一部のユーザ端末200に質問を転送する場合、転送するユーザ端末200をランダムに選定するようにしてもよいし、あらかじめ定めた所定の選定基準に従って選定するようにしてもよい。
【0021】
回答受付部13Bは、質問を転送した複数のユーザ端末200B,200C,・・・から返送されてくる回答を受け付ける。この回答は、ユーザ端末200B,200C,・・・を使用するユーザB,C,・・・が質問を見て、キーボードやタッチパネル等の入力デバイスを操作して入力したものである。ここで、質問の転送を受けた複数のユーザB,C,・・・の全員が回答を返送するとは限らない。また、回答を返送するタイミングは区々である。そこで、回答受付部13Bは、複数のユーザ端末200B,200C,・・・から送られてくる回答を受け付ける都度、受け付けた回答を第2の回答部14Bに順次供給する。また、回答受付部13Bは、質問転送部13Aが質問を転送した時点からタイムアウト時間以内に返送されてくる回答のみを受け付ける。
【0022】
第2の回答部14Bは、回答受付部13Bがタイムアウト時間以内に受け付けた複数の回答の中から、所定の判定基準に合致する何れか1つを選択する。所定の判定基準は、任意に設定し得る。例えば、複数の判定項目を設定し、それらの判定項目を回答内容が満たすか否かによって、複数のユーザ端末200B,200C,・・・から受け付けた回答のスコアをそれぞれ算出し、その中から最高スコアの回答を選択する。なお、スコアが所定値以上となる回答が1つもない場合、何れの回答も選択しないようにしてもよい。
【0023】
また、機械学習により生成した学習モデルによってスコアを算出するようにしてもよい。例えば、チャットシステムの運用を開始した当初の初期状態では乱数または上記のような判定項目に基づいてスコアリングを行いつつ、運用時に実際にユーザ間でやり取りされる質問と回答とをデータセットとして逐次蓄積していく。そして、蓄積されたデータセットのうち、回答に対する質問者の反応が良いものを正例とする教師データを生成し、当該教師データを用いて機械学習を行う。質問者の反応が良いものとは、例えば、回答に対して肯定的な内容の返信を行っているものである。
【0024】
ここで、学習モデルは、例えば、単純な文字の数が多い回答ほどスコアが高くなるようなモデルとすることが可能である。あるいは、ポジティブワードおよびネガティブワードを定義した辞書データを利用して、回答内容に含まれる単語を解析し、ポジティブワードが多く含まれる回答ほどスコアが高くなるようなモデルとしてもよい。あるいは、回答内容から回答者の感情を推定し、ポジティブな感情の度合いが大きい回答ほどスコアが高くなるようなモデルとしてもよい。
【0025】
別の例として、第2の回答部14Bは、回答受付部13Bから回答が供給される都度、その回答のスコアを算出し、スコアが所定値以上である場合には直ちにその回答を選択するようにしてもよい。このようにすれば、質問者に対する回答のレスポンスをなるべく速くすることができる。
【0026】
第2の回答部14Bは、以上のようにして選択した回答を質問者であるユーザAのユーザ端末200Aに返送する。なお、スコアが所定値以上となる回答が1つもなくて回答が選択されなかった場合、第2の回答部14Bは、ユーザ端末200Aに対する回答の返送は行わない。あるいは、適切な回答が見つからないといった趣旨の回答を返送するようにしてもよい。
【0027】
会話履歴記録部15は、質問受付部11が質問者から受け付けた質問(質問に対する回答として、会話データ記憶部10に記憶されている回答内容を用いることが適切でないと適否判定部12により判定された場合の質問)の内容と、第2の回答部14Bが質問者に対して行った回答(複数のユーザB,C,・・・より得た回答の中から選択された回答)の内容とを紐付けて会話データ記憶部10のデータベースに追加して記憶させる。このように、当初のデータベースには存在しない質問内容と回答内容との組み合わせを会話履歴記録部15によって追加して記憶することにより、それ以降は、データベースの使用のみで第1の回答部14Aが回答できる可能性を高めることができる。会話データ記憶部10に追加記憶される回答内容は、所定の判定基準を満たしたものであるから、回答内容として相応しいものであると言える。
【0028】
図3は、以上のように構成した第1の実施形態によるチャットシステムの動作例を示す図である。
図3において、まず、質問者であるユーザAがユーザ端末200Aからサーバ装置100に質問を送信する(ステップS1)。
図3に示す例において、ユーザAは、「今日の渋谷でのランチは何がお勧めですか?」という質問を送信している。
【0029】
サーバ装置100では、質問受付部11がこの質問をユーザ端末200Aから受け付けると、適否判定部12は、質問受付部11が受け付けた質問に対する回答として、会話データ記憶部10に記憶されている回答内容を用いることの適否を判定する(ステップS2)。
【0030】
ここで、会話データ記憶部10に記憶されている回答内容を用いることが適していると適否判定部12により判定された場合、第1の回答部14Aは、会話データ記憶部10に記憶されている回答内容を用いてユーザAへの回答を行う(ステップS3-1)。
図3に示す例において、第1の回答部14Aは、「ABC店の○○ハンバーグ定食がお勧めです。」という回答を送信している。
【0031】
一方、会話データ記憶部10に記憶されている回答内容を用いることが適していないと適否判定部12により判定された場合、質問転送部13Aは、ユーザ端末200A以外の複数のユーザ端末200B,200C,・・・に対し、質問受付部11が受け付けた質問を転送する(ステップS3-2)。質問の転送を受けたユーザB,C,・・・は、ユーザ端末200B,200C,・・・から回答を入力してサーバ装置100に返送する(ステップS4)。
図3に示す例において、ユーザBは「MMM店の□□牛丼セットをお勧めします。」という回答を返送し、ユーザCは「XYZ店の△△ラーメンです。」という回答を送信している。
【0032】
サーバ装置100では、回答受付部13Bがこれらの回答を複数の200B,200C,・・・から順次受け付けると、第2の回答部14Bは、所定の判定基準に合致する何れか1つの回答を選択する(ステップS5)。
図3に示す例において、第2の回答部14Bは、ユーザ端末200Bから受け付けた「MMM店の□□牛丼セットをお勧めします。」という回答を選択している。
【0033】
そして、第2の回答部14Bは、以上のようにして選択した回答を質問者であるユーザAのユーザ端末200Aに返送する(ステップS6)。また、会話履歴記録部15は、質問受付部11が質問者から受け付けた質問の内容(「今日の渋谷でのランチは何がお勧めですか?」)と、第2の回答部14Bにより選択された回答の内容(「MMM店の□□牛丼セットをお勧めします。」)とを紐付けて会話データ記憶部10のデータベースに追加して記憶させる(ステップS7)。
【0034】
以上詳しく説明したように、第1の実施形態のサーバ装置100では、質問者であるユーザAのユーザ端末200Aから質問を受け付けたとき、質問に対する回答として、会話データ記憶部10のデータベースに記憶されている回答内容を用いることの適否を判定し、適していると判定された場合はデータベースの回答内容を用いてユーザAへの回答を行う。一方、適していないと判定された場合は、ユーザA以外の複数の他のユーザB,C,・・・のユーザ端末200B,200C,・・・に質問を転送して複数の他のユーザB,C,・・・から複数の回答を得て、その中から所定の判定基準に合致する何れか1つを選択してユーザAへの回答を行うようにしている。
【0035】
このように構成した第1の実施形態によれば、質問内容との適合度が高い回答が会話データ記憶部10のデータベースになくて、データベースの回答内容を用いることが相応しくない場合でも、複数のユーザB,C,・・・から回答を得て、その中から所定の判定基準に合致するものが選択されて質問者であるユーザAへの回答に使われるので、1人のユーザのみから回答を得る場合に比べて、より適切な内容の回答を質問者に対して提供することができる。
【0036】
(第2の実施形態)
次に、本発明の第2の実施形態を図面に基づいて説明する。第2の実施形態によるチャットシステムの全体構成は、
図1と同様である。ただし、サーバ装置100に代えてサーバ装置100’を用いる。
図4は、第2の実施形態によるサーバ装置100’の機能構成例を示すブロック図である。この
図4において、
図2に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
【0037】
図4に示すように、第2の実施形態によるサーバ装置100’は、機能構成として、質問抽象化部16および回答抽象化部17を更に備える。また、第2の実施形態によるサーバ装置100’は、
図2に示した会話データ記憶部10、適否判定部12、ユーザ回答取得部13、回答部14および会話履歴記録部15に代えて、会話データ記憶部10’、適否判定部12’、ユーザ回答取得部13’回答部14’および会話履歴記録部15’を備える。
【0038】
図5は、第2の実施形態によるチャットシステムの動作例を示す図である。この
図5において、
図3に示したステップ番号と同一の番号を付した部分は同一の処理を行うものであるので、ここでは重複する説明を省略する。以下、
図4と
図5を併用して第2の実施形態を説明する。
【0039】
質問抽象化部16は、ユーザ端末200から送信された質問者からの質問を質問受付部11にて受け付けたときに、その質問の内容を解析し、より抽象度の高い抽象質問に置換する。
図5の例において、質問抽象化部16は、ユーザAから受け付けた「今日の渋谷でのランチは何がお勧めですか?」という質問を「食事は何がお勧めですか?」という抽象質問に置き換えている(ステップS11)。
【0040】
質問内容を抽象化するアルゴリズムは、例えば以下のようにすることが可能である。すなわち、質問受付部11が受け付けた質問の文章を形態素解析して複数の単語を抽出し、抽出された単語の品詞を特定する。そして、抽出した複数の単語のうち、時間や時期を表す単語、場所や位置を表す単語およびそれらに接続される助詞(上記の例の場合は「今日」、「の」、「渋谷」、「で」)を省略する。また、副詞、連体詞、接続詞、感動詞、指示詞も省略する。名詞、動詞、形容詞、判定詞については、可能な場合は下位概念の単語を上位概念の単語に置き換える(上記の例の場合は「ランチ」を「食事」に置換)。固有名詞については、省略または一般名詞への置き換えを行う。以上のような処理を行うに当たって、単語との品詞との関係および上位概念と下位概念との関係を示した辞書データを使用する。
【0041】
なお、ここで説明したアルゴリズムは一例に過ぎない。例えば、以下のようにしてもよい。すなわち、抽象化済みの抽象質問とキーワードとなる複数の単語とのセットを予め大量に用意する。そして、質問受付部11が受け付けた質問の文章の中にキーワードがどの程度含まれるかを判定し、質問文中のキーワードが最も多く含まれる抽象質問を採用する。この方法では、個人情報などのセンシティブな情報が抽象質問の中に紛れ込むというリスクを原理的に排除することができる。
【0042】
適否判定部12’は、質問抽象化部16により生成された抽象質問に対する回答として、会話データ記憶部10’に記憶されている回答内容を用いることの適否を判定する。会話データ記憶部10’には、抽象質問の内容と抽象回答の内容とを紐付けて成るデータベースが記憶されている。ここで、適否判定部12’は、第1の実施形態と同様に、質問抽象化部16により生成された抽象質問の内容と、会話データ記憶部10’に記憶されている複数の抽象質問の内容との類似度をそれぞれ算出し、類似度が所定レベル以上の抽象質問が存在するか否かを判定するようにしてよい。
【0043】
第1の回答部14A’は、会話データ記憶部10’に記憶されている回答内容を用いることが適していると適否判定部12’により判定された場合、会話データ記憶部10’に記憶されている抽象回答の内容を用いて、質問者であるユーザAへの回答を行う。
【0044】
ユーザ回答取得部13’は、会話データ記憶部10’に記憶されている回答内容を用いることが適していないと適否判定部12’により判定された場合、複数の他のユーザB,C,・・・が使用するユーザ端末200B,200C,・・・に抽象質問を転送し(質問転送部13A’)、複数の他のユーザB,C,・・・から回答を得る(回答受付部13B’)。
【0045】
回答抽象化部17は、回答受付部13B’が他のユーザから得た回答を、その内容を解析してより抽象度の高い抽象回答に置換する。回答内容を抽象化するアルゴリズムは、質問内容を抽象化するアルゴリズムと同様でよい。
図5の例において、回答抽象化部17は、ユーザBから受け付けた「MMM店の□□牛丼セットをお勧めします。」という回答を「牛丼をお勧めします。」という抽象回答に置換し、ユーザCから受け付けた「XYZ店の△△ラーメンです。」という回答を「ラーメンです。」という抽象回答に置換している(ステップS12)。
【0046】
第2の回答部14B’は、回答抽象化部17により生成された複数の抽象回答の中から所定の判定基準に合致する何れか1つを選択し、質問者であるユーザAへの回答を行う。所定の判定基準に基づき回答内容を選択するアルゴリズムは、第1の実施形態と同様でよい。
図5の例において、第2の回答部14B’は、ユーザBからの回答に基づき生成された「牛丼をお勧めします。」という抽象回答を選択している。
【0047】
会話履歴記録部15’は、質問抽象化部16により生成された抽象質問(質問に対する回答として、会話データ記憶部10’に記憶されている回答内容を用いることが適切でないと適否判定部12’により判定された場合の抽象質問)の内容と、第2の回答部14B’が質問者に対して行った抽象回答(第2の回答部14B’により選択された抽象回答)の内容とを紐付けて会話データ記憶部10’のデータベースに追加して記憶させる。
【0048】
このように構成した第2の実施形態によれば、質問者から受け付けた質問の内容を抽象化して複数のユーザに転送するので、複数のユーザが受け取る質問は、個別具体的な質問内容ではなくなる。このため、できるだけ多くのユーザから回答を得やすくなり、質問者からの質問に適した回答を得やすくすることができる。また、会話データ記憶部10’にも抽象質問が記憶されるため、質問抽象化部16により生成された抽象質問の内容との類似度が所定レベル以上となる抽象質問が会話データ記憶部10’に存在する可能性が高くなり、会話データ記憶部10’に記憶されている回答内容を用いて自動的に回答できる可能性を高くすることもできる。
【0049】
また、第2の実施形態では、複数のユーザから受け付けた回答の内容を抽象化して質問者に返送するので、質問者が受け取る回答は、個別具体的な回答内容ではなくなる。このため、質問者が聞きたい内容に対して的外れな回答となる可能性を低減することができ、質問者が行った質問に適した回答を得やすくすることができる。
【0050】
なお、上記第2の実施形態では、質問受付部11が受け付けた質問と回答受付部13B’が受け付けた回答の両方について抽象化処理を行う例について説明したが、これに限定されない。例えば、質問受付部11が受け付けた質問についてのみ抽象化処理を行うようにしてもよい。この場合、
図4に示した回答部14’に代えて回答部14を用いる。また、会話履歴記録部15’は、質問抽象化部16により生成された抽象質問の内容と、第2の回答部14Bが質問者に対して行った回答の内容とを紐付けて会話データ記憶部10’のデータベースに追加して記憶させる。
【0051】
(第3の実施形態)
次に、本発明の第3の実施形態を図面に基づいて説明する。第3の実施形態によるチャットシステムの全体構成は、
図1と同様である。ただし、サーバ装置100に代えてサーバ装置100”を用いる。
図6は、第3の実施形態によるサーバ装置100”の機能構成例を示すブロック図である。この
図6において、
図4に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。
【0052】
図6に示すように、第3の実施形態によるサーバ装置100”は、
図4に示した適否判定部12’に代えて記憶回答取得部18を備えるとともに、
図2に示した回答部14’に代えて回答部14”を備える。回答部14”は、第2の回答部14B”のみを備え、
図4に示した第1の回答部14A’は備えていない。
【0053】
図7は、第3の実施形態によるチャットシステムの動作例を示す図である。この
図7において、
図5に示したステップ番号と同一の番号を付した部分は同一の処理を行うものであるので、ここでは重複する説明を省略する。以下、
図6と
図7を併用して第3の実施形態を説明する。
【0054】
第3の実施形態において、質問抽象化部16は、ユーザ端末200から受け付けた質問者からの質問をもとに生成した抽象質問を、記憶回答取得部18および質問転送部13A’に供給する。記憶回答取得部18は、質問抽象化部16により生成された抽象質問に対応する抽象回答を会話データ記憶部10’から取得する。例えば、記憶回答取得部18は、質問抽象化部16により生成された抽象質問の内容と、会話データ記憶部10’に記憶されている複数の抽象質問の内容との類似度をそれぞれ算出し、最も類似度が大きい抽象質問に紐づけて記憶されている抽象回答を会話データ記憶部10’から取得する。
図7の例において、記憶回答取得部18は、「ハンバーグがお勧めです。」という抽象回答を会話データ記憶部10’から取得している(ステップS3-1’)。
【0055】
質問転送部13A’は、ユーザ端末200Aから受け付けた質問に対する回答として、記憶回答取得部18により会話データ記憶部10’から取得された抽象回答を用いることが適しているか否かによらず、質問抽象化部16から供給された抽象質問を複数のユーザ端末200B,200C,・・・に転送する。
【0056】
回答部14”(第2の回答部14B”)は、記憶回答取得部18により取得された抽象回答(会話データ記憶部10’に記憶されている回答内容)および回答抽象化部17により生成される抽象回答の中から所定の判定基準に合致する何れか1つを選択して質問者への回答を行う。所定の判定基準に基づき回答内容を選択するアルゴリズムは、第1の実施形態と同様でよい。
【0057】
図7の例において、第2の回答部14B”は、記憶回答取得部18により会話データ記憶部10’から取得された「ハンバーグがお勧めです。」という抽象回答と、ユーザBからの回答に基づき生成された「牛丼をお勧めします。」という抽象回答と、ユーザCからの回答に基づき生成された「ラーメンです。」という抽象回答との3つの抽象回答の中から、ユーザBからの回答に基づき生成された「牛丼をお勧めします。」という抽象回答を選択している。
【0058】
このように構成した第3の実施形態によれば、常に抽象質問を他のユーザに転送し、他のユーザから得た回答と、会話データ記憶部10’のデータベースに登録されている回答とを含めて、その中から最もよい回答を選んで質問者に提供することができる。これにより、質問内容との適合度がある程度高い回答が会話データ記憶部10’のデータベースに記憶されている場合でも、より良い回答が他のユーザから得られれば、ユーザから得た回答を質問者に提供することができる。このため、質問者からの質問に対してより適した回答を提供することができるようになる。
【0059】
なお、上記第3の実施形態においても、質問受付部11が受け付けた質問と回答受付部13B’が受け付けた回答の両方について抽象化処理を行っているが、質問受付部11が受け付けた質問についてのみ抽象化処理を行うようにしてもよい。
【0060】
上記実施形態では、質問受付部11が受け付けた質問を、通信ネットワーク500に接続されている他のユーザ端末200B,200C,・・・のうち一部のユーザ端末200に転送する場合、あらかじめ定めた所定の選定基準に従ってユーザ端末200を選定する例について説明した。この選定基準の一例として、以下のような基準を設定するようにしてもよい。
【0061】
例えば、会話履歴記録部15’は、質問受付部11が質問者から質問を受け付けた場合、適否判定部12’による判定の結果によらず、質問抽象化部16により生成された抽象質問と質問者とを紐付けて会話データ記憶部10’のデータベースに記憶させる。例えば、チャットシステムを利用する際にユーザがログインを行うようにし、質問者がログイン時に使用したユーザIDと抽象質問とを紐付けて会話データ記憶部10’に記憶させる。
【0062】
ユーザ回答取得部13’は、質問者から受け付けた質問について質問抽象化部16により生成された抽象質問と同じまたは類似(類似度が所定レベル以上)の抽象質問に紐付けて質問者として会話データ記憶部10’に記憶されているユーザを除く他の複数のユーザのユーザ端末200に抽象質問を転送する。このようにすれば、仮に、今回の質問者Aよりも前に、質問者Aの質問内容と同様の質問をユーザBが行っていた場合(質問抽象化部16によりユーザBの質問から生成された抽象質問が、質問者Aの質問から生成された抽象質問と同じまたは類似となる場合)に、ユーザAからの質問について生成された抽象質問をユーザBには転送しないようにすることができる。
【0063】
さらに、以下のようにしてもよい。すなわち、質問者に対して第2の回答部14’,14”により回答を行ったときに、抽象質問と紐付けて会話データ記憶部10’のデータベースに記憶していた質問者に対して回答済みであることを示すフラグ情報を更に記憶させるようにする。そして、質問者Aからの質問を受け付けたときに、会話データ記憶部10’を参照して、質問者Aと同様の質問をしていたユーザBに対して既に回答済みか否かを判定する。ここで、回答済みの場合にはユーザBにもユーザAからの質問について生成された抽象質問を転送し、回答済みでない場合にはユーザBにユーザAの抽象質問を転送しないようにする。この場合、ユーザBは、以前に自身の質問に対して得た回答をユーザAからの質問に対して回答するかもしれない。
【0064】
また、上記第1~第3の実施形態において、通信ネットワーク500に接続されているユーザ端末200の数が所定数以上か否かを判定し、所定数以上の場合は質問の転送を行い、所定数未満の場合は会話データ記憶部10(10’)に記憶されている回答内容を用いるようにしてもよい。例えば夜間などで接続ユーザ数が少ないときは、他のユーザから回答を得るまでの時間が長くなる可能性があるからである。質問を転送することなく、会話データ記憶部10(10’)に記憶されている回答内容を用いる場合、適否判定部12(12’)が回答内容の適否判定の閾値として用いる類似度の所定レベルを通常よりも引き下げて、会話データ記憶部10(10’)に記憶されている回答内容を用いることの適否を判定し、適しているものが見つかれば回答を行うようにしてもよい。
【0065】
その他、上記第1~第3の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0066】
10,10’ 会話データ記憶部
11 質問受付部
12,12’ 適否判定部
13,13’ ユーザ回答取得部
13A,13A’ 質問転送部
13B,13B’ 回答受付部
14,14’,14” 回答部
14A,14A’ 第1の回答部
14B,14B’,14B” 第2の回答部
15,15’ 会話履歴記録部
16 質問抽象化部
17 回答抽象化部
18 記憶回答取得部
100,100’,100” サーバ装置
200A,200B,200C ユーザ端末