以下に、本実施の形態について図面に基づいて説明する。
図1は、話題提供システム1の概要を示す図である。図2は、会話制御端末装置2の概要を示す図である。図3は、保守装置3の概要を示す図である。
<<<話題提供システムの概要>>>
図1に示すように、本実施の形態による話題提供システム1の特徴は、
ユーザが入力情報を入力するための入力部と、
前記入力情報を分析して入力特定情報を生成する入力情報分析部と、
話題に関する応答情報を規定するためのシナリオデータを抽出するシナリオデータ記憶部と、
前記シナリオデータと前記入力特定情報とに基づいて前記応答情報を決定する応答情報決定部と、
前記応答情報決定部によって決定された応答情報を出力する出力部と、を備えることである。
本実施の形態による話題提供システム1は、図1に示すように、主に、入力部と入力情報分析部とシナリオデータ記憶部と応答情報決定部と出力部とを備える。図1においては、これらの構成を実線の四角で示した。点線の四角で示した送信部と受信部と切替入力情報入力部とについては、後述する。図1において破線で囲んだ部分が、後述する図2に示す会話制御端末装置2の構成である。
入力部は、ユーザが入力情報を入力するための部材や部位である。入力部は、ユーザが所望する情報を入力情報として入力できるものであればよい。たとえば、入力部は、キーボードやタッチパネルやマイクロフォンやカメラなどがある。ユーザは、入力部からテキストデータや音声データや画像データなどを入力できる。入力部に入力された入力情報は、次に説明する入力情報分析部に供給される。入力情報は、後述する送信部を介して入力情報分析部に供給されるのが好ましい。
入力情報分析部は、入力情報を分析して入力特定情報を生成する。入力特定情報は、入力情報に含まれる各種の情報を分析した結果、生成される情報である。たとえば、特定のキーワード(後述する関連詞など)が入力情報に含まれる数や頻度などの統計的な分析などがある。さらに、入力情報の分析により、ユーザが入力した質問などからユーザの意思や嗜好を分析することができる。さらに、他のユーザとの比較により相対的な分析結果も取得することができる。さらにまた、分析用辞書などのデータを予め生成しておき、分析用辞書によって、入力情報を分析することもできる。入力情報分析部は、生成した入力特定情報を後述する応答情報決定部に供給する。
シナリオデータ記憶部は、シナリオデータを抽出するための部材や部位である。シナリオデータは、後述するシナリオデータ記憶部(複数のシナリオデータ)に予め記憶されているデータである。入力情報分析部によって生成された入力特定情報に基づいて必要であると判断されたシナリオデータが抽出されて、抽出されたシナリオデータがシナリオデータ記憶部に記憶される。シナリオデータ記憶部(複数のシナリオデータ)から抽出されたシナリオデータは、後述する受信部と応答情報決定部とを経てシナリオデータ記憶部に記憶される。
シナリオデータは、ユーザに提供する話題に関する応答情報を規定するためデータである。すなわち、シナリオデータには、ユーザに提供するための話題の情報が含まれている。
さらに、シナリオデータには、複数の話題の情報からなる話題紹介リストも含まれる。話題紹介リストはユーザに提供される。ユーザは、提供された話題紹介リストに含まれる話題を選択することで、入力情報の入力の代替の情報にすることができる。ユーザは、選択操作で会話を進めることができるので、文字を入力する場合に比べて、ユーザの入力操作を簡素にすることができ、会話を円滑に進めることができる。
また、話題紹介リストによって複数の話題をユーザに提供することができ、ユーザは、各種の話題を知得でき、興味の範囲を広げることができる。
さらに、シナリオデータは、ユーザに挨拶をするための情報を含むものが好ましい。単に、ユーザに話題を提供するための情報のみならず、挨拶をするための情報をシナリオデータに含めることにより、ユーザと挨拶をすることができ会話をより自然なものにすることができる。
シナリオデータは、話題提供システム1の契約者がユーザに提供したい情報を含めて事前に作成しておくデータである。シナリオデータによって、ユーザに提供したい情報を規定することができる。
さらに、シナリオデータは複数のステートメントからなる。ステートメントには、出力用情報や出力用コマンドや制御コマンドなどが含まれる。
出力用情報は、出力部で出力される情報である。出力用情報には、話題の情報や挨拶の情報などが含まれる。話題の情報や挨拶の情報は、ユーザに提供してユーザとの会話を進めるための情報である。
出力用コマンドは、話題の情報や挨拶の情報を出力部に出力するとき、出力の仕様を制御するためのコマンドである。たとえば、画面を消去したり、改行したり、出力している時間を制御したり、所定の画像を表示したりするためのコマンドである。
制御コマンドは、ステートメントを制御するための判断や、話題名(たとえば、テーマなど)を切り替えたり、状態制御指標を変更したりするためのコマンドである。特に、判断は、時間や時刻によって分岐させるための判断や、状態制御指標の内容によって、分岐させるための判断などがある。判断によって分岐させることによって、所定のステートメントに遷移させることができる。
なお、本実施の形態では、ステートメントの各々を区別する必要がない場合には、ステートメントはシナリオデータと同義である。
なお、単一のステートメントに、出力用情報と出力用コマンドと制御コマンドとの全てを含める必要はない。たとえば、所定のステートメントを出力用情報のみで構成したり、出力用コマンドのみで構成したり、制御コマンドのみで構成したりすることができる。
このように、ステートメントには、単に、ユーザに提供する情報のみならず、各種のコマンドも含まれる。これにより、出力部において、話題の情報や挨拶の情報をさまざまな仕様で出力することができ、会話を自然にかつ円滑に進めることができる。
上述したように、シナリオデータ(ステートメント)には、出力用情報や出力用コマンドや制御コマンドなどが含まれている。出力用情報や出力用コマンドや制御コマンドを適宜規定することによって、話題制御ルールを構築することができる。特に、話題提供システム1の契約者がユーザに提供したい各種の情報(話題)をシナリオデータに含めることにより、契約者が所望する話題制御ルールを構築することができる。
シナリオデータは、契約者が提供したい情報について適宜規定すればよいので、話題提供システム1の全般に亘る高度かつ専門的な知識や技術に依存することなく、話題制御ルールの変更、追加、修正などの保守作業を別個に行うことができる。
応答情報決定部は、応答情報を決定する。応答情報は、上述した入力情報分析部から供給されたシナリオデータと入力特定情報とに基づいて決定される。すなわち、ユーザが入力した入力情報を分析して得られた入力特定情報を用いて応答情報を決定する。したがって、シナリオデータによって話題提供システム1の契約者の意思を応答情報に反映させることができるとともに、入力特定情報によってユーザの意思を応答情報に反映させることができ、会話の主体の双方の意思を反省させて応答情報を生成することができる。話題提供システム1の契約者とユーザとのバランスを図って会話を円滑に進めることで自然な応答を実現することができる。
応答情報には、シナリオデータのステートメントが含められる。ステートメントに含まれるユーザに提供する出力用情報のみならず、出力用コマンドなどの各種のコマンドも応答情報に含めることができる。このようにすることで、話題の情報や挨拶の情報をさまざまな仕様で出力部から出力することができる。
出力部は、応答情報決定部によって決定された応答情報を出力する。ユーザは、出力部から出力された応答情報を認識することによって、話題が提供される。
このように、本実施の形態による話題提供システム1は、出力部に出力される応答情報によってユーザに各種の話題を提供することができる。すなわち、本実施の形態による話題提供システム1は、入力情報から入力特定情報を生成し、シナリオデータと入力特定情報とから応答情報を決定し、応答情報の出力によってユーザに各種の話題を提供する。
本実施の形態による話題提供システム1は、シナリオデータ(たとえば、後述するステートメントや話題紹介リストなど)と、入力情報分析部によって分析された入力特定情報とによって応答情報を決定するので、話題と会話の流れとに合わせた自然な応答を実現することができる。
さらに、シナリオデータに基づいて話題に関する応答情報を規定することができるので、話題制御システムの全般に亘る高度かつ専門的な知識や技術に依存することなく、話題制御ルールの変更、追加、修正などの保守作業を別個に行うことができる。
さらに、図1に示すように、本実施の形態による話題提供システム1の特徴は、
前記入力情報及び前記応答情報に関する状態制御指標を記憶する状態制御指標記憶部をさらに備え、
前記応答情報決定部は、前記シナリオデータ及び前記入力特定情報のほかに前記状態制御指標を加えて前記応答情報を決定することである。
話題提供システム1は、状態制御指標記憶部を備える。状態制御指標記憶部は、状態制御指標を記憶する。状態制御指標は、入力情報と応答情報とに関する指標である。状態制御指標は、主に会話の履歴に基づく指標であり、さらには、会話の履歴に基づいて判別できるユーザの感情や性格なども示す指標である。たとえば、ユーザが過去に入力した入力情報に基づいて定められる指標や、過去にユーザに提供した応答情報に基づいて定められる指標などがある。さらに、過去にユーザに提供した応答情報に対するユーザの入力から得られるユーザの感情や性格などを示す指標などもある。
応答情報決定部は、シナリオデータ及び入力特定情報のほかに状態制御指標を加えて応答情報を決定する。このように、状態制御指標も用いて応答情報を決定するので、ユーザとの過去の会話や、会話から得られたユーザの感情や性格なども踏まえて話題を提供したり会話を進めたりすることができる。したがって、同じ話題を重複してユーザに提供したり、飛躍した話題をユーザに提供したりすることを防止でき、ユーザの感情や性格などにあわせた円滑な会話を進めることができる。
本実施の形態において、状態制御指標記憶部は、会話制御端末装置2に備えられている。状態制御指標は、応答情報決定部によって決定されたり変更されたりするのが好ましい。状態制御指標は、シナリオデータと入力特定情報とに基づいて応答情報決定部によって決定されるのが好ましい。
本実施の形態による話題提供システム1は、シナリオデータ及び入力特定情報のほかに状態制御指標を使って応答情報を決定するので、より話題と会話の流れとに合わせた自然な応答を実現することができる。
さらにまた、図1に示すように、本実施の形態による話題提供システム1の特徴は、
前記シナリオデータは、異なる話題への遷移を規定する情報(たとえば、後述する話題切替情報など)を含み、
前記異なる話題への遷移を規定する情報に応じて、現在の話題に関する応答情報を規定するためのシナリオデータから、異なる話題に関する応答情報を規定するためのシナリオデータへ、シナリオデータを切り替える話題切替部を、さらに備えることである。
本実施の形態では、話題切替部は、切替入力情報入力部と入力情報分析部とを含む。話題切替部は、シナリオデータ及び入力特定情報に基づいて、シナリオデータを切り替えるか否かを判断する。具体的には、状態制御指標に基づいてシナリオデータを切り替えるのが好ましい。切替入力情報入力部は、話題切替入力情報が後述する送信部に送信され、入力情報分析部に供給される。入力情報分析部は、入力情報のほかに話題切替入力情報にも基づいて、シナリオデータ記憶部(複数のシナリオデータ)に記憶されているシナリオデータを抽出する。
シナリオデータは、異なる話題(話題名)への遷移を規定する情報を含む。話題切替部は、シナリオデータを切り替える。この切り替えは、現在の話題に関する応答情報を規定するためのシナリオデータから、異なる話題に関する応答情報を規定するためのシナリオデータへ切り替えるものである。
たとえば、サーバなどに全てのシナリオデータを記憶させておき、異なる話題への遷移を規定する情報に基づいてサーバの全てのシナリオデータから組み替え直したシナリオデータを生成し、組み替え直されたシナリオデータがシナリオデータ記憶部に記憶される。このシナリオデータの組み替えは、複数のステートメントの組み合せを話題名に応じて定めることで実行できる。
したがって、ユーザとの会話で一の話題から他の話題に移った場合も、異なる話題への遷移を規定する情報にしたがって他の話題に遷移させることができ、あらゆる話題に対応することができ、様々なユーザに対応することができる。組み替えたシナリオデータによって他の話題をユーザに提供することができる。
また、話題ごと(話題名)にシナリオデータを準備すればよいので、シナリオデータの保守が容易になる。具体的には、シナリオデータに変更が必要になった場合には、そのシナリオデータのみを修正すればよい。また、新たな話題が必要になった場合には、そのシナリオデータのみを追加すればよい。さらに、古い話題となって必要でなくなった場合には、そのシナリオデータのみを削除すればよい。
シナリオデータは、契約者が提供したい情報について、話題ごと(話題名)に適宜規定すればよいので、話題が増えた場合であっても、話題提供システム1の全般に亘る高度かつ専門的な知識や技術に依存することなく、話題制御ルールの変更、追加、修正などの保守作業を話題ごとに行うことができる。
異なる話題への遷移を規定する情報を有するので、このようなシナリオデータの更新があった場合でも、シナリオデータの遷移の整合を容易に図ることができる。
たとえば、状態制御指標のうち、後述する性格指標に基づいて話題を切り替えるか否かを判断するのが好ましい。性格指標は、ユーザが、話題に対して積極的であるのか又は消極的であるのかを示す指標である。
本実施の形態による話題提供システム1は、シナリオデータを使って話題を切り替えることができるので、話題と会話との流れに合わせた自然な応答を実現することができる。
図1において点線の四角で示した送信部と受信部と切替入力情報入力部とについて説明する。本実施の形態による話題提供システム1は、これらの送信部と受信部と切替入力情報入力部とを備えることができる。
また、図1に示した送信部は、入力情報を外部に送信するための装置や部材である。入力情報を外部に送信するものであればよい。外部は、たとえば、サーバや、会話制御端末装置2などにすることができる。
さらに、図1に示した受信部は入力特定情報を受信するための装置や部材である。入力特定情報は、外部で生成される。すなわち、受信部は、外部で生成された入力特定情報を受信する装置や部材である。外部では、送信部から送信された入力情報を分析して入力特定情報を生成し、生成された入力特定情報は受信部に送信される。
さらにまた、図1に示した切替入力情報入力部は、異なる話題への遷移を規定する情報に応じて話題切替入力情報(たとえば、後述する性格指標など)を生成する。異なる話題への遷移を規定する情報は、シナリオデータに含まれる情報であり、たとえば、後述する話題切替情報などがある。
上述した話題切替部は、入力情報分析部と切替入力情報入力部とを含むのが好ましい。入力情報に基づいて、話題切替入力情報を生成するので、ユーザの意思を反映させた話題に遷移させることができる。
また、図1に示したシナリオデータ記憶部(複数のシナリオデータ)は、複数のシナリオデータを記憶する。ここで、複数のシナリオデータは、ユーザと会話をするために必要な話題名に対応する全てのシナリオデータである。全てのシナリオデータのうち、入力特定情報に基づいて必要であると判断されたシナリオデータが抽出される。
<<<会話制御端末装置2の概要>>>
図2に示すように、本実施の形態による会話制御端末装置2の特徴は、
ユーザが入力情報を入力するための入力部と、
話題に関する応答情報を規定するためのシナリオデータを記憶するシナリオデータ記憶部と、
前記入力情報及び前記応答情報に関する状態制御指標を記憶する状態制御指標記憶部と、
前記シナリオデータと前記状態制御指標とに基づいて前記応答情報を決定する応答情報決定部と、
前記応答情報決定部によって決定された応答情報を出力する出力部と、を備えることである。
本実施の形態による会話制御端末装置2は、図2に示すように、主に、入力部とシナリオデータ記憶部と状態制御指標記憶部と応答情報決定部と出力部とを備える。図2においては、これらの構成を実線の四角で示した。図2において大きく破線で囲んだ部分が、会話制御端末装置2の構成である。なお、点線の四角で示したシナリオデータ記憶部(複数のシナリオデータ)と入力情報分析部とは、話題提供サーバ4に含まれる構成である。
入力部は、本実施の形態による話題提供システム1の入力部と同様に、ユーザが入力情報を入力するための部材や部位である。入力部は、ユーザが所望する情報を入力情報として入力できるものであればよい。たとえば、入力部は、キーボードやタッチパネルやマイクロフォンやカメラなどがある。ユーザは、入力部からテキストデータや音声データや画像データなどを入力できる。入力部に入力された入力情報は、次に説明する入力情報分析部に供給される。入力情報は、後述する送信部を介して入力情報分析部に供給されるのが好ましい。
シナリオデータ記憶部は、シナリオデータを記憶するための部材や部位である。シナリオデータは、図2に示す話題提供サーバ4のシナリオデータ記憶部(複数のシナリオデータ)に予め記憶されているデータである。入力情報分析部によって生成された入力特定情報に基づいて必要であると判断されたシナリオデータが抽出されて、抽出されたシナリオデータがシナリオデータ記憶部に記憶される。シナリオデータ記憶部(複数のシナリオデータ)から抽出されたシナリオデータは、後述する受信部と応答情報決定部とを経てシナリオデータ記憶部に記憶される。
シナリオデータは、ユーザに提供する話題に関する応答情報を規定するためデータである。シナリオデータには、ユーザに提供するための話題の情報が含まれている。なお、会話制御端末装置2で用いるシナリオデータの構成や機能などについては、本実施の形態による話題提供システム1のシナリオデータと同じである。
本実施の形態による会話制御端末装置2は、状態制御指標記憶部を備える。状態制御指標記憶部は、状態制御指標を記憶する。状態制御指標は、主に会話の履歴に基づく指標であり、さらには、会話の履歴に基づいて導くことができるユーザの感情や性格なども示す指標である。たとえば、ユーザが過去に入力した入力情報に基づいて定められる指標や、過去にユーザに提供した応答情報に基づいて定められる指標などがある。さらに、過去にユーザに提供した応答情報に対するユーザの入力から導くことができるユーザの感情や性格なども示す指標などもある。
このように、本実施の形態においては、会話制御端末装置2が状態制御指標記憶部を備える。すなわち、会話制御端末装置2の外部、たとえば、話題提供サーバ4などが状態制御指標記憶部を備える構成ではない。したがって、本実施の形態では、話題提供サーバ4などの外部の装置によって、ユーザとの会話が制御されるのではなく、会話制御端末装置2によってユーザとの会話が制御される。
応答情報決定部は、話題提供サーバ4の入力情報分析部から供給されたシナリオデータと状態制御指標とに基づいて応答情報を決定する。シナリオデータによって話題提供システム1の契約者の意思を応答情報に反映させることができる。
応答情報には、シナリオデータのステートメントが含められる。ステートメントに含まれるユーザに提供する出力用情報のみならず、出力用コマンドなどの各種のコマンドも応答情報に含めることができる。このようにすることで、話題の情報や挨拶の情報をさまざまな仕様で出力部から出力することができる。
さらに、状態制御指標を用いて応答情報を決定するので、ユーザとの過去の会話や、会話から得られたユーザの感情や性格なども踏まえて話題を提供したり会話を進めたりすることができる。したがって、同じ話題を重複してユーザに提供したり、飛躍した話題をユーザに提供したりすることを防止でき、より円滑な会話を進めることで自然な応答を実現することができる。
状態制御指標は、応答情報決定部によって決定されたり変更されたりするのが好ましい。状態制御指標は、シナリオデータと入力特定情報とに基づいて応答情報決定部によって決定されるのが好ましい。
出力部は、応答情報決定部によって決定された応答情報を出力する。ユーザは、出力部から出力された応答情報を認識することによって、話題が提供される。
本実施の形態による会話制御端末装置2は、会話制御端末装置2にシナリオデータ記憶部と状態制御指標記憶部との双方を設けて応答情報を決定するので、ユーザとの会話が可能であるか否かを会話制御端末装置2で判断して制御でき、会話制御端末装置2における処理の負担を著しく増加させることなく、かつ、サーバの負担も増加させることなく、さらに、ネットワークのトラフィックも増加させることなく、ユーザとの会話の流れに合わせて円滑に会話を進めることができる。
さらに、本実施の形態による会話制御端末装置2は、シナリオデータと状態制御指標とに基づいて応答情報を決定するので、ユーザとの会話の進行状態に応じて応答情報を決定でき、サーバの負担を増大させることなく、ユーザの状態に応じて的確に応答することができる。
さらに、図2に示すように、本実施の形態による会話制御端末装置2の特徴は、
前記入力情報を外部に送信する送信部と、
送信された入力情報を分析して生成された入力特定情報を受信する受信部と、をさらに備え、
前記応答情報決定部は、前記シナリオデータ及び前記状態制御指標に前記入力特定情報を加えて前記応答情報を決定することである。
本実施の形態による会話制御端末装置2は、送信部と受信部とをさらに備える。
送信部は、入力情報を外部に送信する。入力情報を会話制御端末装置2の外部に送信するものであればよい。外部は、たとえば、サーバや、他の会話制御端末装置2などにすることができる。
受信部は、入力特定情報を受信する。入力特定情報は、会話制御端末装置2の外部で生成される。すなわち、受信部は、会話制御端末装置2の外部で生成された入力特定情報を受信する装置や部材である。会話制御端末装置2の外部では、送信部から送信された入力情報を分析して入力特定情報を生成し、生成された入力特定情報は、会話制御端末装置2の受信部に送信される。
応答情報決定部は、シナリオデータ及び状態制御指標に入力特定情報を加えて応答情報を決定する。ユーザが入力した入力情報を分析して得られた入力特定情報も含めて応答情報を決定する。したがって、シナリオデータによって話題提供システム1の契約者の意思を応答情報に反映させることができるとともに、入力特定情報によってユーザの意思を応答情報に反映させることができ、会話の主体の双方の意思を反省させて応答情報を生成することができる。話題提供システム1の契約者とユーザとのバランスを図って会話を円滑に進めることで自然な応答を実現することができる。
本実施の形態による会話制御端末装置2は、入力特定情報を加えて応答情報を決定するので、サーバなどの外部で分析した結果である入力特定情報を含めて応答情報を決定でき、ユーザとの会話の流れに合わせて円滑に会話を進めることができる。
さらにまた、図2に示すように、本実施の形態による会話制御端末装置2の特徴は、
前記受信部は前記入力情報に基づいて抽出されたシナリオデータを受信し、
前記シナリオデータ記憶部は受信したシナリオデータを記憶することである。
本実施の形態による会話制御端末装置2の受信部は、入力情報に基づいて抽出されたシナリオデータを受信する。すなわち、シナリオデータは、会話制御端末装置2の外部で抽出される。会話制御端末装置2の外部に送信された入力情報に基づき、会話制御端末装置2の外部において、入力情報に基づいてシナリオデータは抽出される。抽出されたシナリオデータは、会話制御端末装置2の受信部に送信される。
シナリオデータ記憶部は、会話制御端末装置2の受信部で受信したシナリオデータを記憶する。上述したように、会話制御端末装置2で用いるシナリオデータの構成や機能などについては、本実施の形態による話題提供システム1のシナリオデータと同じである。
本実施の形態による会話制御端末装置2は、入力情報に基づいて抽出されたシナリオデータを受信するので、ユーザが入力した入力情報に基づいてシナリオデータを切り替えていくことができ、ユーザとの会話の流れに合わせて円滑に会話を進めることができる。
さらに、図2に示すように、本実施の形態による会話制御端末装置2の特徴は、
前記シナリオデータは、異なる話題への遷移を規定する情報(たとえば、後述する話題切替情報など)を含み、
前記異なる話題への遷移を規定する情報に応じて話題切替入力情報(たとえば、後述する性格指標など)を生成する切替入力情報入力部を備え、
前記送信部は、前記話題切替入力情報を外部に送信し、
前記受信部は、前記話題切替入力情報に基づいたシナリオデータを受信することである。
本実施の形態による会話制御端末装置2で用いるシナリオデータは、異なる話題への遷移を規定する情報を含む。
本実施の形態による会話制御端末装置2は、切替入力情報入力部を備える。切替入力情報入力部は、異なる話題への遷移を規定する情報に応じて話題切替入力情報を生成する。異なる話題への遷移を規定する情報は、たとえば、後述するステートメントの要素である話題切替情報などがある。また、話題切替入力情報は、たとえば、後述する性格指標などがある。
切替入力情報入力部は、シナリオデータ及び入力特定情報に基づいて、シナリオデータを切り替えるか否かを判断する。具体的には、状態制御指標に基づいてシナリオデータを切り替えるのが好ましい。切替入力情報入力部は、話題切替入力情報が送信部に送信され、入力情報分析部に供給される。入力情報分析部は、入力情報のほかに話題切替入力情報にも基づいて、話題提供サーバ4のシナリオデータ記憶部(複数のシナリオデータ)に記憶されているシナリオデータを抽出する。
さらに、本実施の形態による会話制御端末装置2の送信部は、話題切替入力情報を外部に送信する。また、受信部は、話題切替入力情報に基づいたシナリオデータを受信する。
現在の話題に関する応答情報を規定するためのシナリオデータから、異なる話題に関する応答情報を規定するためのシナリオデータへ切り替えることができる。
たとえば、サーバなどに全てのシナリオデータを記憶させておき、話題切替入力情報に基づいてサーバの全てのシナリオデータから組み替え直したシナリオデータを生成し、組み替え直されたシナリオデータが会話制御端末装置2のシナリオデータ記憶部に記憶される。
したがって、ユーザとの会話で一の話題から他の話題に移った場合も、異なる話題への遷移を規定する情報にしたがって他の話題に遷移させることができ、あらゆる話題に対応することができ、様々なユーザに対応することができる。
また、話題ごと(話題名)にシナリオデータを準備すればよいので、シナリオデータの保守が容易になる。具体的には、シナリオデータに変更が必要になった場合には、そのシナリオデータのみを修正すればよい。また、新たな話題が必要になった場合には、そのシナリオデータのみを追加すればよい。さらに、古い話題となって必要でなくなった場合には、そのシナリオデータのみを削除すればよい。
状態制御指標のうち、後述する性格指標に基づいて話題を切り替えるか否かを判断するのが好ましい。性格指標は、ユーザが、話題に対して積極的であるのか又は消極的であるのかを示す指標である。
本実施の形態による会話制御端末装置2によれば、状態制御指標とシナリオデータとに基づいて話題を切り替えることができるので、ユーザとの会話の状態を見ながら話題を切り替ることができ、ユーザとの会話の流れに合わせて円滑に会話を進めることができる。
図2に示した入力情報分析部は、入力情報を分析して入力特定情報を生成する。入力特定情報は、入力情報に含まれる各種の情報を分析した結果、生成される情報である。たとえば、特定のキーワード(後述する関連詞など)が入力情報に含まれる数や頻度などの統計的な分析などがある。
また、図2に示したシナリオデータ記憶部(複数のシナリオデータ)は、複数のシナリオデータを記憶する。ここで、複数のシナリオデータは、ユーザと会話をするために必要な話題名に対応する全てのシナリオデータである。全てのシナリオデータのうち、入力特定情報に基づいて必要であると判断されたシナリオデータが抽出される。
<<<保守装置3の概要>>>
図3に示すように、本実施の形態による保守装置3の特徴は、
ユーザが入力する入力情報を分析することによって生成された入力特定情報に基づいて話題に関わる応答情報を規定するためのシナリオデータを記憶するシナリオデータ記憶部と、
前記入力特定情報を受信する受信部と、
前記シナリオデータを編集可能にするためのシナリオデータ編集部と、
前記受信部で受信した入力特定情報に基づいて編集したシナリオデータの応答を検証可能にするシナリオデータ検証部と、
編集したシナリオデータを外部に送信するシナリオデータ送信部と、を備えることである。
本実施の形態による保守装置3は、図3に示すように、主に、シナリオデータ記憶部と受信部とシナリオデータ編集部とシナリオデータ検証部とシナリオデータ送信部とを備える。図3においては、これらの構成を実線の四角で示した。なお、点線の四角で示したシナリオデータ記憶部(複数のシナリオデータ)と入力情報分析部とは、話題提供サーバ4(図2参照)に含まれる構成である。図3に示すように、シナリオデータ検証部に状態制御指標記憶部を加えたものが、後述する端末装置仮想構築部を構成する。これらの構成の間で授受される情報は、上述した話題提供システム1や会話制御端末装置2と同様である。
上述した話題提供システム1や会話制御端末装置2は、主として、一般のユーザが会話制御端末装置2と会話をするためのものである。これに対して、保守装置3は、主として、話題提供システム1の契約者が使用するものであり、一般のユーザに話題を提供するためのシナリオデータの保守を話題提供システム1の契約者が行うための装置である。保守装置3は、このような相違があるが、図3において、話題提供システム1や会話制御端末装置2と同様の機能を有し同様のデータを用いる構成には、同じ名称を付した。
この保守装置3におけるシナリオデータ記憶部及び受信部は、上述した話題提供システム1や会話制御端末装置2におけるシナリオデータ記憶部及び受信部と機能的に実質的に同じものである。話題提供システム1や会話制御端末装置2と同じものにすることができる。たとえば、ユーザが使用すると想定される会話制御端末装置2に保守装置3のシナリオデータ記憶部及び受信部を実装してもよい。さらに、後述するように、保守装置3において会話制御端末装置2を仮想的に構築し、仮想的な会話制御端末装置2のシナリオデータ記憶部及び受信部としてもよい。
シナリオデータ記憶部は、シナリオデータを記憶するための部材や部位である。シナリオデータは、話題提供サーバ4(図2参照)のシナリオデータ記憶部(複数のシナリオデータ)に予め記憶されているデータである。入力情報分析部によって生成された入力特定情報に基づいて必要であると判断されたシナリオデータが抽出されて、抽出されたシナリオデータがシナリオデータ記憶部に記憶される。シナリオデータ記憶部(複数のシナリオデータ)から抽出されたシナリオデータは、後述する受信部と応答情報決定部とを経てシナリオデータ記憶部に記憶される。
シナリオデータは、入力特定情報に基づいて話題に関わる応答情報を規定するためのデータである。入力特定情報は、入力情報を分析することによって生成された情報である。入力情報は、たとえば、会話制御端末装置2においてユーザが入力する情報である。
なお、上述したように、保守装置3は、主として、話題提供システム1の契約者が使用するものである。この保守装置3においては、入力情報は、仮想的にユーザが入力した情報とすることができる。保守装置3は、ユーザに対してシナリオデータを利用可能にする前にシナリオデータを検証するためのものである。したがって、ここでのユーザは、仮想的なユーザでよく、また、実際のユーザが入力するであろうと想定される情報を入力情報とすればよい。したがって、想定される様々な入力情報を用いて入力特定情報を生成し、後述するシナリオデータ検証部によってシナリオデータの応答を検証することができる。
シナリオデータには、ユーザに提供するための話題の情報が含まれている。保守装置3で用いるシナリオデータの構成や機能などについては、上述した本実施の形態による話題提供システム1のシナリオデータや、会話制御端末装置2のシナリオデータと同じである。
なお、シナリオデータの構成や機能などについては、話題提供システム1や会話制御端末装置2におけるシナリオデータと同じではあるが、上述したように、保守装置3は、ユーザに対してシナリオデータを利用可能にする前にシナリオデータを検証するためのものである。したがって、保守装置3が対象とするシナリオデータは、検証するためのシナリオデータであり、ユーザに対してシナリオデータを利用可能にする前のデータである。
受信部は、入力特定情報を受信する。入力特定情報は、保守装置3の外部で生成される。すなわち、受信部は、保守装置3の外部で生成された入力特定情報を受信する装置や部材である。保守装置3の外部で、入力情報を分析して入力特定情報を生成し、保守装置3の外部で生成された入力特定情報が、保守装置3の受信部に送信される。
上述したように、入力情報は、仮想的にユーザが入力した情報とすることができる。したがって、ここでの入力特定情報は、実際のユーザが入力するであろうと想定される情報を入力情報として、保守装置3の外部で生成されたものにすることができる。このように、実際のユーザが入力するであろうと想定される情報を入力情報にすることで、様々な入力情報に基づいてシナリオデータを検証することができる。
シナリオデータ編集部は、シナリオデータを編集可能にするための装置や部材である。シナリオデータは、話題提供システム1の契約者の担当者がキーボードなどを操作することによって、編集することができる。編集は、シナリオデータの追加、削除、変更などである。具体的には、編集は、シナリオデータを構成するステートメントを追加したり、削除したり、変更したりする工程である。シナリオデータの編集により、複数のユーザの各々に対してシナリオデータのカスタムを施すことができる。
シナリオデータ検証部は、シナリオデータの応答を検証可能にするための装置や部材である。ここでのシナリオデータは、編集したシナリオデータである。シナリオデータ編集部で編集したシナリオデータの応答が適切であるか否かを検証するための装置や部材である。
このように、シナリオデータ検証部は、想定される様々な入力情報を用いて入力特定情報を生成し、シナリオデータ編集部によって編集されたシナリオデータの応答を検証することができる。このため、あらゆるユーザに対してシナリオデータの応答が適切であるか否かを検証できるので、シナリオデータ編集部により複数のユーザの各々に対して施したシナリオデータのカスタムを検証することができる。
シナリオデータ送信部は、編集したシナリオデータを外部に送信する。外部は、たとえば、サーバや、他の会話制御端末装置2などにすることができる。このように、編集したシナリオデータを外部に送信することによって、検証済みのシナリオデータをユーザに対して利用可能にすることができる。
なお、上述したように、仮想的にユーザが入力した情報を入力情報として、シナリオデータ編集部でシナリオデータを編集したり、シナリオデータ検証部がシナリオデータを検証する例を示したが、後述するように、話題解析部によって話題リストを生成し、話題リストに基づくシナリオデータを編集したり検証したりすることができる。話題解析部については後述する。
シナリオデータ検証部によって、シナリオデータ編集部で編集したシナリオデータの応答が適切であるか否かを検証する。このようにしたことにより、サーバなどの外部にシナリオデータを送信する前に、シナリオデータの内容や整合性を確認することができる。サーバなどの外部に送信された検証済みのシナリオデータは、最終的には、少なくともその一部が会話制御端末装置2に送信され、ユーザとの会話に用いられる。
会話制御システムにおけるデータは、ユーザが入力した入力情報を分析して入力特定情報を生成するためのデータと、この入力特定情報に基づいて応答情報を決定するためのシナリオデータとの双方がある。このシナリオデータは、ユーザへの回答である応答情報を多様化することができるデータである。上述した構成によれば、シナリオデータ編集部によって、シナリオデータを編集でき、シナリオデータ検証部によって、編集したシナリオデータの応答を検証できる。このようにすることで、会話制御システムの全般に亘る高度に専門的な知識や技術がなくても、シナリオデータについて、会話制御システムを利用する複数のユーザの各々に対してカスタムを施すことができる。
さらに、図3に示すように、本実施の形態による保守装置3の特徴は、
ユーザが入力情報を入力するための入力部と、
前記入力情報及び前記応答情報に関する状態制御指標を記憶する状態制御指標記憶部と、
前記シナリオデータと前記状態制御指標とに基づいて前記応答情報を決定する応答情報決定部と、
前記応答情報決定部によって決定された応答情報を出力する出力部と、を備える会話制御端末装置を仮想的に構築する端末装置仮想構築部を有することである。
本実施の形態による保守装置3は、図3に示すように、端末装置仮想構築部を有する。この端末装置仮想構築部によって、会話制御端末装置2’が仮想的に構築される。
さらに、本実施の形態による保守装置3は、図3に示すように、シナリオデータ検証部を有する。このシナリオデータ検証部に状態制御指標記憶部を加えたものが、端末装置仮想構築部を構成する。
このように、保守装置3には、会話制御端末装置2’が機能として備えられている。シミュレーション用のパッケージとして会話制御端末装置2’の機能を保守装置3に備えることができる。あるいは、仮想的に構築された会話制御端末装置2’から保守機能を省いたものを、実際の会話制御端末装置2とすることもできる。仮想的に構築される会話制御端末装置2’は、ハードウェアとして実現してもソフトウェアで実現してもよい。ハードウェアとして実現する場合には、実際の会話制御端末装置2とは異なる別個の装置を仮想的に構築される会話制御端末装置2’とすればよい。また、ソフトウェアで実現する場合には、保守装置3においてエミュレーションなどによって会話制御端末装置2’を実現させればよい。
保守装置3は、主として、話題提供システム1の契約者が使用するものであり、一般のユーザに話題を提供するためのシナリオデータの保守をするための装置であればよい。
端末装置仮想構築部及びシナリオデータ検証部は、図3に示すように、主に、入力部と応答情報決定部と出力部と、を備える。さらに、端末装置仮想構築部は、状態制御指標記憶部を備える。
入力部は、ユーザが入力情報を入力するための部材や部位である。入力部は、ユーザが所望する情報を入力情報として入力できるものであればよい。たとえば、入力部は、キーボードやタッチパネルやマイクロフォンやカメラなどがある。ユーザは、入力部からテキストデータや音声データや画像データなどを入力できる。
上述したように、ここで、入力情報は、仮想的にユーザが入力した情報でよい。ユーザも、仮想的なユーザでよく、また、実際のユーザが入力するであろうと想定される情報を入力情報とすればよい。
状態制御指標記憶部は、状態制御指標を記憶する。状態制御指標は、入力情報と応答情報とに関する指標である。状態制御指標は、主に履歴に関する指標である。たとえば、ユーザが過去に入力した入力情報に関する指標や、ユーザに過去に提供した応答情報に関する指標などがある。
応答情報決定部は、シナリオデータ及び入力特定情報のほかに状態制御指標を加えて応答情報を決定する。
出力部は、応答情報決定部によって決定された応答情報を出力する。
このように、仮想的に構築される会話制御端末装置2’で、編集したシナリオデータを使用したり、検証済みのシナリオデータを使用したりすることができ、ユーザに対して利用可能にするよりも前に、シナリオデータの内容や制御を確認することができる。ユーザに適切な話題を提供することができる。
端末装置仮想構築部は、会話制御端末装置2’を保守装置3において仮想的に構築して実行することができる。したがって、一般のユーザが使用する会話制御端末装置2と同様の環境を保守装置3において実現することができる。これにより、ユーザが実際に会話を進める環境と同様の環境で、シナリオデータの内容や動作を予め確認することができ、ユーザと会話をする前にシナリオデータの内容を検証することができ、サーバに接続してくる複数のユーザの各々に対して施したカスタムが適切であるか否かを事前に検証することができる。
さらに、図3に示すように、本実施の形態による保守装置3の特徴は、
話題を関係付ける関連詞を介して話題の近さや繋がり方を付与した話題リストを生成するための話題解析部を、さらに備え、
前記シナリオデータ編集部は、前記話題リストと前記関連詞を利用してユーザに話題を紹介するための話題紹介シナリオおよびユーザの入力に応答するための入力関連シナリオを前記シナリオデータとして編集可能にすることである。
本実施の形態による保守装置3は、話題解析部(図示せず)を備える。話題解析部は、話題リストを生成するための装置や部材である。話題リストは、話題を関係付ける関連詞を介して話題の近さや繋がり方を付与したデータである。話題解析部によって、話題に関連付けられる関連詞が話題リストに蓄積されていく。保守装置3においては、話題リストは、話題提供システム1の契約者に提供されるデータであり、シナリオデータを生成する際に用いられる。
たとえば、保守装置3の出力部には、後述する図17に示すように、話題リストが出力される。話題提供システム1の契約者は、保守装置3の出力部に出力された話題リストを参照して、ユーザに提供するための話題紹介シナリオのデータ及び入力関連シナリオのデータを構築することができる。このようにすることで、話題提供システム1の契約者は、容易かつ簡便に話題紹介シナリオのデータ及び入力関連シナリオのデータを構築することができる。
シナリオデータ編集部は、話題紹介シナリオと入力関連シナリオとをシナリオデータとして編集可能にする。話題紹介シナリオ及び入力関連シナリオは、話題リスト及び関連詞によって編集可能にされる。話題リスト及び関連詞を用いて編集できるので、容易かつ簡便に入力関連シナリオを構築できる。
話題紹介シナリオは、ユーザに話題を紹介するためのシナリオである。ユーザは、話題紹介シナリオによって話題が提供される。入力関連シナリオは、ユーザの入力に応答するためのシナリオである。ユーザが所定の情報、たとえば挨拶などの情報を入力すると入力関連シナリオによって、対応する挨拶などの情報がユーザに回答される。
このシナリオデータ編集部によって、話題提供システム1の契約者は、話題紹介シナリオと入力関連シナリオとを編集して所望するものにできる。
話題リストは、各種のログ、たとえば、ツイッターやブログなどの取得可能なデータに基づいて、更新することができる。すなわち、話題リストには、最新の情報を関連詞として蓄積していくことができる。このため、話題リストに基づいて話題紹介シナリオ及び入力関連シナリオを編集したり検証したりする際に、話題提供システム1の契約者は、話題リストによって最新の情報を知得して、話題紹介シナリオ及び入力関連シナリオを編集することができ、ユーザに最新の情報を含めた話題を提供することができるとともに、最新の情報によって新たなユーザ層を開拓することもできる。
会話制御システムにおけるデータは、ユーザが入力した入力情報を分析して入力特定情報を生成するためのデータと、この入力特定情報に基づいて応答情報を決定するためのシナリオデータとの双方がある。このシナリオデータは、ユーザへの回答である応答情報を多様化することができるデータである。上述した構成によれば、シナリオデータ編集部によって、話題解析部と連携しながらシナリオデータを編集でき、シナリオデータ検証部によって、編集したシナリオデータの応答を検証できる。このようにすることで、会話制御システムの全般に亘る高度に専門的な知識や技術がなくても、シナリオデータについて、会話制御システムを利用する複数のユーザの各々に対してカスタムを施すことができる。
また、図3に示した送信部は、入力情報を外部に送信するための装置や部材である。入力情報を外部に送信するものであればよい。外部は、たとえば、話題提供サーバ4(図2参照)や、会話制御端末装置2などにすることができる。
さらに、図3に示した入力情報分析部は、入力情報を分析して入力特定情報を生成する。入力特定情報は、入力情報に含まれる各種の情報を分析した結果、生成される情報である。たとえば、特定のキーワード(後述する関連詞など)が入力情報に含まれる数や頻度などの統計的な分析などがある。
さらにまた、図3に示したシナリオデータ記憶部(複数のシナリオデータ)は、複数のシナリオデータを記憶する。ここで、複数のシナリオデータは、ユーザと会話をするために必要な話題名に対応する全てのシナリオデータである。全てのシナリオデータのうち、入力特定情報に基づいて必要であると判断されたシナリオデータが抽出される。
<<<話題提供システム1のシステム構成>>>
図4は、話題提供システム1のシステム構成の概略を示すブロック図である。
話題提供システム1は、topiclet20とiWA30とiWA Manager40とを有する。
<<Topiclet20>>
本実施の形態において、Topiclet20は、たとえば、ユーザが使用する端末装置などのハードウェアに相当する。また、Topiclet20は、図2に示した会話制御端末装置2に対応する。Topiclet20によって話題がユーザに提供される。なお、本実施の形態において、「Topiclet」は、話題をユーザに提供するために端末装置で実行されるソフトウェアや、端末装置やこれらのソフトウェアによって実現できる話題提供環境と同義に用いる場合がある。
具体的には、Topiclet20は、CPU(中央処理装置)、ROM(リードオンリーメモリ)、RAM(ランダムアクセスメモリ)、ディスプレイ、キーボード(いずれも図示せず)などを有する。Topiclet20は、パーソナルコンピュータや携帯端末装置などにすることができる。
Topiclet20は、入力部210と出力部220と送信部230と受信部240と応答情報決定部250と切替入力情報入力部260とシナリオデータ記憶部270と状態制御指標記憶部280とを有する。
<入力部210>
入力部210は、ユーザが入力情報を入力するための装置や部材である。入力部210は、キーボードやタッチパネルやマイクなどがある。入力部210は、ユーザが質問などの情報を入力できる装置や部材であればよい。
<出力部220>
出力部220は、後述する応答情報決定部によって決定された応答情報を出力する。出力部220には、ディスプレイやスピーカなどがある。出力部220は、応答情報をユーザに認識可能に出力できるものであればよい。
このように、ユーザは、入力部210に入力情報を入力し、出力部220に出力された応答情報を認識することで、会話を進めることができる。
<送信部230及び受信部240>
送信部230は、入力部210に入力された入力情報をiWA30に送信するための装置や部材である。たとえば、送信部230は、通信用インターフェースなどがある。
なお、iWA30に送信する入力情報には、ユーザが入力部210から入力情報のほかに、ユーザを識別するためのユーザIDも含まれる。ユーザIDは、ユーザを識別できる情報であればよい。ユーザの各々に割り当てた情報でもよい。さらに、ユーザIDは、Topiclet20のシリアル番号などのTopiclet20を一義的に識別できる情報にすることもできる。ユーザIDは、話題提供システム1や会話制御端末装置2を利用するユーザの各々を識別できる情報であればよい。
受信部240は、iWA30から送信された入力特定情報とシナリオデータとを受信するための装置や部材である。たとえば、送信部230は、通信用インターフェースなどがある。Topiclet20は、送信部230及び受信部240によって、iWA30と通信可能に接続される。
<応答情報決定部250>
応答情報決定部250は、入力特定情報及びシナリオデータに基づいて応答情報を決定する。たとえば、応答情報決定部250は、Topiclet20のCPU、ROM、RAMなどから構成される。このように、iWA30から送信された入力特定情報及びシナリオデータを用いて応答情報を決定する。
応答情報決定部250では、入力とは関係なくシナリオデータに基づいて応答情報は動的に変化する。
応答情報決定部250は、応答情報を決定する。応答情報は、シナリオデータと入力特定情報とに基づいて決定される。すなわち、ユーザが入力した入力情報を分析して得られた入力特定情報を用いて応答情報を決定する。したがって、ユーザの意思を反映させた応答情報を生成することができ、ユーザが所望する話題を提供することによってユーザとの会話を円滑に進めることができる。
応答情報には、入力特定情報に基づいてシナリオデータのステートメントが含められる。ステートメントに含まれるユーザに提供する出力用情報のみならず、出力用コマンドなどの各種のコマンドも応答情報に含めることができる。このようにすることで、出力部において、話題の情報や挨拶の情報をさまざまな仕様で出力することができる。
応答情報決定部250は、シナリオデータ及び入力特定情報のほかに状態制御指標を加えて応答情報を決定する。このように、状態制御指標も用いて応答情報を決定することで、ユーザとの過去の会話を踏まえて話題を提供したり会話を進めたりすることができる。したがって、同じ話題を重複してユーザに提供したり、飛躍した話題をユーザに提供したりすることを防止でき、より円滑な会話を進めることができる。
また、応答情報決定部250は、シナリオデータと状態制御指標とに基づいて応答情報を決定してもよい。
<切替入力情報入力部260>
切替入力情報入力部260は、Topiclet20のCPU、ROM、RAMなどから構成される。
切替入力情報入力部260は、異なる話題への遷移を規定する情報に応じて話題切替入力情報を生成する。異なる話題への遷移を規定する情報は、たとえば、後述する話題切替情報などがある。また、話題切替入力情報は、たとえば、後述する性格指標などがある。
<シナリオデータ記憶部270>
シナリオデータ記憶部270は、話題に関する応答情報を規定するためのシナリオデータを抽出する。たとえば、シナリオデータ記憶部270は、Topiclet20のROMやRAMなどから構成される。
後述するように、本実施の形態では、シナリオデータは、複数のステートメントからなる。Topiclet20において、一のステートメントから他のステートメントに遷移させていくことで、ユーザに話題を提供しつつ、ユーザと会話をすることができる。シナリオデータ記憶部270は、ユーザとの会話を進めていくための複数のステートメントを記憶する。ステートメントを遷移させていくことでユーザとの会話を進める具体例は、図5〜図14で具体的に説明する。
後述するように、iWA30もシナリオデータ記憶部320を備える。iWA30のシナリオデータ記憶部320は、全てのシナリオデータを記憶する。これに対して、Topiclet20のシナリオデータ記憶部270は、一部のシナリオデータとして記憶すればよい。Topiclet20を使用するユーザの会話に必要なシナリオデータとしてTopiclet20に送信すればよい。
本実施の形態では、ユーザがTopiclet20と会話をする際に、会話をする度に、回答などの情報がiWA30からTopiclet20に送信されるわけではない。ユーザに提供したい話題を含むシナリオデータがiWA30から送信されたときには、Topiclet20のシナリオデータ記憶部270にシナリオデータが記憶される。ユーザがTopiclet20と会話をするときには、シナリオデータ記憶部270に既に記憶されているシナリオデータが用いられる。本実施の形態では、会話をする度にiWA30からTopiclet20に回答などの情報が送信されるわけではないので、ユーザと円滑に会話をすることができる。
なお、iWA30のシナリオデータ記憶部320に記憶されている全てのシナリオデータをTopiclet20に送信するようにしてもよい。より円滑に話題をユーザに提供することができる。
<状態制御指標記憶部280>
状態制御指標記憶部280は、状態制御指標を記憶する。状態制御指標は、入力情報及び応答情報に関する指標である。状態制御指標記憶部280は、Topiclet20のROMやRAMなどから構成される。
Topiclet20は、状態制御指標記憶部280を有し、状態制御指標記憶部280に状態制御指標が記憶される。本実施の形態では、状態制御指標は、サーバ(後述するiWA30)には送信されず、Topiclet20で保持される情報である。Topiclet20は、状態制御指標記憶部280に記憶されている状態制御指標を参照して応答情報を決定する。状態制御指標をTopiclet20で保持するようにすることで、iWA30との通信量を減らすことができる。また、Topiclet20で状態制御指標を参照してシナリオデータを用いればよいので、迅速に処理をすることができ、ユーザと円滑に会話をすることができる。
<状態制御指標>
本実施の形態では、状態制御指標には、入力指標と進捗指標と性格指標との三種類の指標を用いて、ユーザに提供する話題を制御している。なお、他の指標を用いてもよい。
入力指標は、これまでにユーザがどのような入力をしてきたのか、すなわち、ユーザの入力の履歴を示す情報である。入力指標を用いることによって、ユーザが質問をしやすい状況に誘導することができる。すなわち、入力指標を用いることにより、ユーザの以前の入力を踏まえた話題をユーザに提供することができる。これにより、ユーザが、同じような質問を繰り返すなど無駄な質問をすることなく、ユーザに話題を提供することができる。
進捗指標は、これまでにユーザに対してどのような話題を提供してきたのか、すなわち、ユーザに提供した話題の履歴を示す情報である。進捗指標によって、ユーザに提供したい話題を維持(記憶)することができる。これにより、ユーザがストレスを感じさせることなく、ユーザに話題を提供することができる。進捗指標を用いることにより、一連の説明を話題として提供している際に、途中でユーザから質問されても、一連の説明の続きを再開することができる。
性格指標は、これまでにユーザがどのような姿勢で入力してきたのか、すなわち、ユーザの姿勢の履歴を示す情報である。たとえば、ある話題について、ユーザが積極的な入力してきたのか消極的な入力してきたのかを示す情報である。積極的な場合には、あるテーマに関する話題を提供し続けることができると判断することができる。一方、消極的な場合には、あるテーマとは別のテーマに切り替えて話題を提供しなければならないと判断することができる。
たとえば、車に興味があると思われるユーザには、車に関する話題を提供し続ければよいと判断することができる。一方、車に興味がないと思われるユーザには、車とは関係のない食べ物などに関する話題を提供しなければならないと判断することができる。
このように、性格指標により、ユーザに提供する話題の話題名(テーマ)を切り替えることができる。ユーザは、話題の話題名を意識することなく切り替えられた話題名に属する話題に触れることができる。
<iWA30>
本実施の形態において、iWA30は、たとえば、サーバなどのハードウェアに相当する。iWA30は、図2に示した話題提供サーバ4に対応する。iWA30は、Topiclet20と通信可能に接続される。Topiclet20においてユーザに提供される話題に関する処理を実行するためのハードウェアである。
具体的には、iWA30は、CPU(中央処理装置)、ROM(リードオンリーメモリ)、RAM(ランダムアクセスメモリ)、HDD(ハードディスクドライブ)、ディスプレイ、キーボード(いずれも図示せず)などを有する。
iWA30は、入力情報分析部310とシナリオデータ記憶部320とを備える。
<入力情報分析部310>
入力情報分析部310は、入力情報を分析して入力特定情報を生成する。入力情報は、ユーザによって入力部210にから入力された情報である。入力特定情報は、入力情報を統計的に解析した結果や、その結果から話題提供に必要な情報が含まれる。たとえば、入力情報に関連詞が出現する回数や頻度などの情報がある。また、その結果によって話題提供に必要になると判断されたシナリオデータ(ステートメント)などが含まれる。
さらに、入力情報の分析により、ユーザが入力した質問などからユーザの意思や嗜好を分析することができる。他のユーザの入力情報やその入力特定情報との比較により相対的な分析結果も取得することができる。また、分析用辞書などのデータを予め生成しておき、分析用辞書によって入力情報を分析することもできる。
たとえば、入力特定情報には、関連詞、シナリオデータ、シナリオデータに含まれる関連詞の数などの各種の情報を含む。シナリオデータには、ユーザに提供する話題の情報や、ユーザと会話をするために必要な挨拶の情報などが含まれる。
<関連詞>
本実施の形態による話題提供システム1、会話制御端末装置2及び保守装置3で用いる各種のデータは、関連詞と呼ばれるデータを基礎として構成されている。関連詞は、通常の検索処理などに用いられる通常のキーワードとは異なり、履歴情報や嗜好などの各種の情報を互いに関連付けることができる。関連詞が保持している関連情報に基づいて、入力情報を分析することができる。
<シナリオデータ記憶部320>
シナリオデータ記憶部320は、複数のシナリオデータを記憶する。ここで、複数のシナリオデータは、Topiclet20でユーザと会話をするために必要な話題名に対応する全てのシナリオデータである。全てのシナリオデータのうち、入力特定情報に基づいて必要であると判断されたシナリオデータがTopiclet20に送信される。したがって、Topiclet20においてユーザと会話をする際に、会話をする度に、シナリオデータがTopiclet20に送信されるわけではない。上述したように、シナリオデータは、複数のステートメントからなる。したがって、入力特定情報に基づいて必要であると判断されたシナリオデータを構成する複数のステートメントがTopiclet20に送信される。
生成した入力特定情報に基づいて、必要であると判断された場合にステートメントがシナリオデータとしてTopiclet20に送信される。必要でないと判断された場合には、既にTopiclet20に送信しているステートメントで十分であり、この場合には、ステートメントはTopiclet20に送信されない。
なお、入力特定情報に基づいて必要であると判断されたシナリオデータのみをTopiclet20に送信するのではなく、シナリオデータ記憶部320に記憶されている全てのシナリオデータをTopiclet20に送信するようにしてもよい。Topiclet20に全てのシナリオデータを既に送信しているので、シナリオデータの送受信に要する時間を短縮でき、ユーザとの会話を円滑に進めることができる。
また、話題名を切り替える場合には、シナリオデータ記憶部320に記憶されているシナリオデータを組み替えて、その話題名に対応するシナリオデータをTopiclet20に送信する。すなわち、その話題名に対応するシナリオデータに対応するステートメントがTopiclet20に送信される。組み替えたシナリオデータは、topiclet20のシナリオデータ記憶部270に記憶される。このシナリオデータの組み替えは、話題名に応じて実行できる。
ユーザと会話が進むに従って、一の話題名から他の話題名に移す必要が生ずる場合も想定される。このような場合には、一の話題名に対応するシナリオデータでは十分に対応できなくなる。このような場合のため、他の話題名に対応するシナリオデータに切り替えることができる。
<iWA Manager40>
本実施の形態において、iWA Manager40は、たとえば、サーバなどのハードウェアに相当する。iWA Manager40は、図3に示した保守装置3に対応する。iWA Manager40は、iWA30と通信可能に接続される。iWA Manager40は、主に、iWA30で用いるシナリオデータに関する処理を実行するためのハードウェアである。
具体的には、iWA Manager40は、CPU(中央処理装置)、ROM(リードオンリーメモリ)、RAM(ランダムアクセスメモリ)、HDD(ハードディスクドライブ)、ディスプレイ、キーボード(いずれも図示せず)などを有する。
iWA Manager40は、シナリオデータ編集部410と、シナリオデータ検証部420と、シナリオデータ送信部430と、を有する。
<シナリオデータ編集部410>
シナリオデータ編集部410は、シナリオデータを編集可能にする装置又は部材である。シナリオデータは、話題提供システム1の契約者の担当者がキーボードなどを操作することによって、編集することができる。編集は、シナリオデータの追加、削除、変更などである。具体的には、編集は、シナリオデータを構成するステートメントを追加したり、削除したり、変更したりする工程である。
新しい商品が販売されたり、新しいサービスが提供されたり、各種の事件が起こったり、新しい層のユーザが増えたりするなどに応じて、最新の話題に対応できるようにシナリオデータを更新する必要がある。このため、担当者は、ネットワークを介して各種の情報を取得し、これらの情報に基づいてシナリオデータを最新のものに更新することができる。シナリオデータを更新することで、最新の情報に対応した話題をユーザに提供することができる。
また、シナリオデータ編集部410によって、誤字・脱字など不適切な情報や誤った情報を訂正することにより、適切な情報に対応した話題をユーザに提供することができる。
<シナリオデータ検証部420>
シナリオデータ検証部420は、入力情報分析部で生成された入力特定情報に基づいて編集したシナリオデータの応答を検証可能にする装置や部材である。すなわち、シナリオデータ検証部420は、シナリオデータ編集部410で編集したシナリオデータの応答が適切であるか否かを検証するための装置や部材である。
シナリオデータの内容が適切であれば、シナリオデータの応答は適切になる。本実施の形態のシナリオデータは、出力部220で出力される出力用情報や、出力部220への出力の仕様を制御するための出力用コマンドや、ステートメントを制御するための判断や、話題名を切り替えたり、状態制御指標を変更したりするための制御コマンドを含む。このため、出力部220に出力されるデータが適切であるかどうかを検証するだけでなく、出力部220への出力の制御が適切であるかどうかの検証や、シナリオデータの遷移などの制御が適切であるかどうかの検証をする必要がある。
シナリオデータ検証部420は、想定される様々な入力情報を用いて入力特定情報を生成し、シナリオデータ編集部410によって編集されたシナリオデータの応答を検証することができる。このため、あらゆるユーザに対してシナリオデータの応答が適切であるか否かを検証できるので、ユーザの各々に対してカスタムを施すことができる。
<端末装置仮想構築部>
シナリオデータ検証部420は、端末装置仮想構築部によって、Topiclet20と同様の環境を仮想的に構築することができる。仮想的な環境下でシナリオデータを検証することにより、ユーザが実際に使用する環境に近い環境で、シナリオデータの出力や動作を検証することができ、シナリオデータが適切であるか否かを容易かつ的確に判断することができる。
<シナリオデータ送信部430>
シナリオデータ送信部430は、編集したシナリオデータを外部、たとえば、iWA30に送信する。特に、シナリオデータ編集部410によって編集され、さらに、シナリオデータ検証部420によって検証されたシナリオデータをiWA30に送信する。したがって、シナリオデータ送信部430は、検証済みのシナリオデータをiWA30に送信する。
このようにすることで、iWA30からTopiclet20に送信されるシナリオデータを常に適切な状態に保つことができる。したがって、適切なシナリオデータを用いた話題をiWA30を介してユーザに提供することができる。
<<<話題提供サーバが提供するデータ構成>>>
図15に示すように、iWA30からは、シナリオデータと入力特定情報と話題紹介リストとが出力される。以下では、シナリオデータの例と入力特定情報の例と話題紹介リストの例とを説明する。
<<<シナリオデータの実例>>>
図14は、本実施の形態の話題提供システム1、会話制御端末装置2及び保守装置3で用いるシナリオデータの例である。以下では、この図14に示したシナリオデータを具体的な処理手順によって説明する。図14に示したシナリオデータは、第1〜第13の複数のステートメントからなる。図5〜図12は、これらの第1〜第13のシナリオデータの処理手順を示すフローチャートである。図13は、第1〜第13のシナリオデータを処理することによって出力部220に出力される例を示す図である。
上述したように、本実施の形態の話題提供システム1、会話制御端末装置2及び保守装置3で用いるシナリオデータ(ステートメント)は、出力用情報や、出力用コマンドや、制御コマンドが含まれる。シナリオデータ(ステートメント)は、このような出力用情報や出力用コマンドや制御コマンドなどの各種の要素によって構成される。
図5は、第1、第2及び第3のステートメントの処理を示すフローチャートである。
<第1のステートメント>
最初に、第1のステートメントに遷移する。図5では、ステップS511〜S521が、第1のステートメントの処理に対応する。
まず、進捗指標を−1に設定する(ステップS511)。この値が進捗の状態を示す。次いで、出力部220を一旦消去して(ステップS513)、出力部220に「不安を解消する話題にシフトします。」と出力する(ステップS515)。この処理によって、たとえば、図13(a)に示すように、「地震が心配だ」という話題がユーザの操作によって入力されて、出力部220のテキストデータ表示領域に、「不安を解消する話題にシフトします。」と表示される(図13の1311)。
次に、所定の画像を出力して(ステップS517)、3秒間待機する(ステップS519)。この処理によって、図13(a)に示すように、出力部220の画像データ表示領域に所定の色の顔画像M1が表示されて、3秒間待機する(図13の1311)。
次いで、「心配だ。」という語を入力情報として、「話題ネタ」という話題名に切り替える(ステップS521)。この処理によって、この例では、第2のステートメントに遷移する(図13の1313)。
<第2のステートメント>
図5では、ステップS523〜S525が、第2のステートメントの処理に対応する。
第2のステートメントに遷移して、まず、絶対時間、たとえば、12時00分に至ったか否かの監視を開始する(ステップS523)。次いで、絶対時間が到来したか否かを判断する(ステップS525)(図13の1315)。絶対時間が到来していない場合には(NO)、第3のステートメントに遷移させる。絶対時間に至った場合には(YES)、絶対時間の監視を解除して第13のステートメントに遷移させる(符号EE)。
<第3のステートメント>
図5では、ステップS527〜S533が、第3のステートメントの処理に対応する。
第3のステートメントに遷移したときには、進捗指標が−1であるか否かを判断する(ステップS527)(図13の1317)。進捗指標が−1であると判別したときには(YES)、第4のステートメントに遷移させる(符号E1)。
進捗指標が−1でないと判別したときには(NO)、進捗指標が−2であるか否かを判断する(ステップS529)。進捗指標が−2であると判別したときには(YES)、第5のステートメントに遷移させる(符号E2)。
進捗指標が−2でないと判別したときには(NO)、進捗指標が−3であるか否かを判断する(ステップS531)。進捗指標が−3であると判別したときには(YES)、第6のステートメントに遷移させる(符号E3)。
進捗指標が−3でないと判別したときには(NO)、進捗指標が−4であるか否かを判断する(ステップS533)。進捗指標が−4であると判別したときには(YES)、別のステートメント(sta:200)に遷移させる。進捗指標が−4でないと判別したときには(NO)、なにもしない。
上述した第2のステートメントや第3のステートメントは制御コマンドのみからなる。このように、ステートメントは、出力部220に出力するための出力用情報を有しないものでもよい。
<第4のステートメント及び第7のステートメント>
図6は、第4のステートメント及び第7のステートメントに対応する処理を示す。第4のステートメントは、ステップS611〜S621に対応する。第7のステートメントは、ステップS623〜S629に対応する。
<第4のステートメント>
第4のステートメントに遷移したときには、相対時間、たとえば、120秒の測定の開始する(ステップS611)。次いで、入力指標を1に設定するとともに(ステップS613)、入力指標を1に設定した回数を計数する(ステップS615)。
次に、入力指標を1に設定した回数が5回に至ったか否かを判断する(ステップS617)(図13の1319)。入力指標を1に設定した回数が5回に至った場合には(YES)、第10のステートメントに遷移させる(符号E11)。
入力指標を1に設定した回数が5回に至っていない場合には(NO)、相対時間、たとえば、120秒を経過したか否かを判断する(ステップS619)(図13の1319)。相対時間を経過した場合には(YES)、相対時間の測定を終了し(ステップS621)、第10のステートメントに遷移させる(符号E11)。
相対時間を経過していない場合には(NO)、第7のステートメントに遷移させる。
<第7のステートメント>
第7のステートメントに遷移したときには、出力部220を消去し(ステップS623)、出力部220に「「心配だ」について質問はありませんか?」と出力する(ステップS625)。次いで、所定の画像(たとえば、所定の色の顔画像M1)を出力して(ステップS627)、10秒間待機する(ステップS629)。この処理によって、図13(b)に示すように、出力部220の画像データ表示領域に所定の色の顔画像M1が表示されて、10秒間待機する。次いで、第2のステートメントに遷移させる(符号ES)。
<第5のステートメント及び第8のステートメント>
図7は、第5のステートメント及び第8のステートメントに対応する処理を示す。第5のステートメントは、ステップS711〜S721に対応する。第8のステートメントは、ステップS723〜S729に対応する。
<第5のステートメント>
第5のステートメントに遷移したときには、相対時間、たとえば、120秒の測定の開始する(ステップS711)。次いで、入力指標を2に設定するとともに(ステップS713)、入力指標を2に設定した回数を計数する(ステップS715)。
次に、入力指標を2に設定した回数が5回に至ったか否かを判断する(ステップS717)(図13の1319)。入力指標を2に設定した回数が5回に至った場合には(YES)、第11のステートメントに遷移させる(符号E12)。
入力指標を2に設定した回数が5回に至っていない場合には(NO)、相対時間、たとえば、120秒を経過したか否かを判断する(ステップS719)(図13の1319)。相対時間を経過した場合には(YES)、相対時間の測定を終了し(ステップS721)、第11のステートメントに遷移させる(符号E12)。
相対時間を経過していない場合には(NO)、第8のステートメントに遷移させる。
<第8のステートメント>
第8のステートメントに遷移したときには、出力部220を消去し(ステップS723)、出力部220に「「大丈夫」について質問はありませんか?」と出力する(ステップS725)。次いで、所定の画像(たとえば、所定の色の顔画像M1)を出力して(ステップS727)、10秒間待機する(ステップS729)。次いで、第2のステートメントに遷移させる(符号ES)。
<第6のステートメント及び第9のステートメント>
図8は、第6のステートメント及び第9のステートメントに対応する処理を示す。第6のステートメントは、ステップS811〜S821に対応する。第9のステートメントは、ステップS823〜S829に対応する。
<第6のステートメント>
第6のステートメントに遷移したときには、相対時間、たとえば、120秒の測定の開始する(ステップS811)。次いで、入力指標を3に設定するとともに(ステップS813)、入力指標を3に設定した回数を計数する(ステップS815)。
次に、入力指標を3に設定した回数が5回に至ったか否かを判断する(ステップS817)(図13の1319)。入力指標を3に設定した回数が5回に至った場合には(YES)、第11のステートメントに遷移させる(符号E13)。
入力指標を3に設定した回数が5回に至っていない場合には(NO)、相対時間、たとえば、120秒を経過したか否かを判断する(ステップS819)(図13の1319)。相対時間を経過した場合には(YES)、相対時間の測定を終了し(ステップS821)、第12のステートメントに遷移させる(符号E13)。
相対時間を経過していない場合には(NO)、第9のステートメントに遷移させる。
<第9のステートメント>
第9のステートメントに遷移したときには、出力部220を消去し(ステップS823)、出力部220に「「危険だ」について質問はありませんか?」と出力する(ステップS825)。次いで、所定の画像(たとえば、所定の色の顔画像M1)を出力して(ステップS827)、10秒間待機する(ステップS829)。次いで、第2のステートメントに遷移させる(符号ES)。
<第10のステートメント>
図9は、第10のステートメントに対応する処理を示す。上述した図6の処理(符号E11)によって、第10のステートメントに遷移する。
第10のステートメントに遷移したときには、進捗指標を−2に設定する(ステップS911)。次いで、出力部220を消去し(ステップS913)、出力部220に「次の話題にシフトします」と出力する(ステップS915)。所定の画像(たとえば、所定の色の顔画像M1)を出力して(ステップS917)、3秒間待機する(ステップS919)。次いで、「大丈夫」という語を入力情報として、この語に対応する話題名に切り替える(ステップS921)。次いで、第2のステートメントに遷移させる(符号ES)。
上述した処理によって、図13(d)に示すように、出力部220のテキストデータ表示領域に、「次の話題にシフトします」と表示される。このようにすることで、一の話題名のシナリオデータから他の話題名のシナリオデータに遷移することができる。
<第11のステートメント>
図10は、第11のステートメントに対応する処理を示す。上述した図7の処理(符号E12)によって、第11のステートメントに遷移する。
第11のステートメントに遷移したときには、進捗指標を−3に設定する(ステップS1011)。次いで、出力部220を消去し(ステップS1013)、出力部220に「次の話題にシフトします」と出力する(ステップS1015)。所定の画像(たとえば、所定の色の顔画像M1)を出力して(ステップS1017)、3秒間待機する(ステップS1019)。次いで、「危険だ」という語を入力情報として、この語に対応する話題名に切り替える(ステップS1021)。次いで、第2のステートメントに遷移させる(符号ES)。
<第12のステートメント>
図11は、第12のステートメントに対応する処理を示す。上述した図8の処理(符号E13)によって、第12のステートメントに遷移する。
第12のステートメントに遷移したときには、進捗指標を−4に設定する(ステップS1111)。次いで、出力部220を消去し(ステップS1113)、出力部220に「時間になりました」と出力する(ステップS1115)。所定の画像(たとえば、所定の色の顔画像M1)を出力して(ステップS1117)、3秒間待機する(ステップS1119)。次いで、第13のステートメントに遷移させる(符号EE)。
<第13のステートメント>
図12は、第13のステートメントに対応する処理を示す。上述した図11の処理(符号EE)によって、第13のステートメントに遷移する。
第13のステートメントに遷移したときには、出力部220を消去し(ステップS1211)、出力部220に「説明を終了します」と出力する(ステップS1213)(図8の1321)。所定の画像(たとえば、所定の色の顔画像M1)を出力して(ステップS1215)、3秒間待機する(ステップS1217)。次いで、別のステートメント(sta:200)に遷移させる。
なお、図13(b)に示す状態で、ユーザが「やっぱり、政治が心配ですね」と入力した場合には(図13(c))、出力部220のテキストデータ表示領域に、「政治家は嘘をつかないので心配する必要はありません」と表示され(図13(c))、再び、図13(b)に示す状態に戻る。
<シナリオデータの構成>
上述した第1〜第13のステートメントのように、本実施の形態では、シナリオデータは複数のステートメントからなる。一のステートメントに遷移して、その一のステートメントに基づく処理を実行したあと、他のステートメントに遷移して、そのステートメントに基づく処理を実行する。このようなステートメントの遷移とステートメントにおける処理とを繰り返していくことによって、ユーザに話題を提供していくことができる。このように、本実施の形態における話題提供システム1、会話制御端末装置2及び保守装置3では、シナリオデータ(複数のステートメント)が用いられる。ここでは、単一のステートメントの構成について説明する。
上述した第1〜第13のステートメントのように、本実施の形態のステートメントは、遷移情報や判断などの各種の要素から構成される。ユーザに話題を提供するための制御や、ユーザとの会話の制御に必要な要素をステートメントに含めることができる。
識別情報は、ステートメントを識別するために付された情報である。ステートメントを遷移させるときに、この識別情報が参照される。1つのステートメントには、遷移先情報も含まれている。
すなわち、1つのステートメントには、識別情報と遷移先情報との双方が含まれている。識別情報は、ステートメントを識別するための識別情報であり、そのステートメント自身を示す情報である。一方、遷移先情報は、次に遷移させるべきステートメントを指定するための情報である。識別情報及び遷移先情報は、他のステートメントから一のステートメントに遷移するときに用いられる情報である。すなわち、他のステートメントに定められている遷移先情報にしたがって、その遷移先情報と一致する識別情報のステートメントを探し、遷移先情報と一致した識別情報のステートメント(一のステートメント)に遷移させる。このように、識別情報と遷移先情報との双方を用いることによって、ステートメントを次々に遷移させていくことができる。
判断は、指標に基づく判断と時間に基づく判断とがある。指標に基づく判断は、指標が所定の条件を満たすか否かを判断するための判断である。指標が、所定の条件を満たした場合には真と判別し、所定の条件を満たさなかった場合には偽と判別して分岐させることができる。時間に基づく判断は、時間が所定の条件を満たすか否かを判断するための判断である。時間や時刻が、所定の条件を満たした場合には真と判別し、所定の条件を満たさなかった場合には偽と判別して分岐させることができる。
出力情報は、出力部220に出力するためのテキストデータである。なお、出力情報の画像データを指定する識別情報(たとえば、ファイル名など)を含ませることによって、出力情報によって画像も出力部220に出力することができる。
設定要素は、状態指標を設定するための要素である。設定された状態指標に基づいて、ステートメントを遷移させたり分岐させたりすることができる。
その他の要素として、たとえば、改行や消去などがある。改行は、出力部220においてテキストを改行して出力するためのものである。消去は、出力部220に出力したテキストや画像を消すためのものである。
出力制御要素は、上述した出力情報の出力を制御するための要素である。たとえば、出力情報を出力する時間を規定したり、出力情報の出力とともに出力する画像を規定したりすることができる。
遷移先情報は、次の遷移先のステートメントを指定するための情報である。この遷移先情報に一致する識別情報を探し、その識別情報のステートメントに遷移させる。
話題切替情報は、話題名を切り替えるための要素である。本実施の形態のシナリオデータ(複数のステートメント)は、複数の話題名ごとに規定されている。すなわち、複数の話題名の各々にシナリオデータが対応するように、シナリオデータは規定されている。すなわち、本実施の形態では、複数の話題名の各々にシナリオデータが対応するように規定され、さらに、シナリオデータの各々は、複数のステートメントによって構成されている。
ユーザと会話で一の話題名で足りる場合には、一の話題名に対応するシナリオデータを使ってステートメントを次々に遷移させていけばよい。しかしながら、ユーザと会話が進むに従って、一の話題名から他の話題名に移す必要が生ずる場合も想定される。このような場合には、一の話題名に対応するシナリオデータでは十分に対応できなくなる。このため、複数の話題名の各々に対応するシナリオデータを予め規定しておくことによって、一の話題名から他の話題名に話題が移る必要が生じた場合でも、他の話題名に対応するシナリオデータに切り替えることができる。他の話題名に対応するシナリオデータも複数のステートメントによって構成されている。他の話題名に対応するシナリオデータのステートメントを次々に遷移させることで、他の話題名についてユーザと会話を進めることができる。
話題名を切り替える場合には、iWA30に記憶されている全てのシナリオデータを組み替えて、その話題名に対応するシナリオデータを生成する。組み替えたシナリオデータは、topiclet20のシナリオデータ記憶部270に記憶される。このシナリオデータの組み替えは、複数のステートメントの組み合せを話題名に応じて定めることで実行できる。
また、話題名を切り替えるか否かは、上述した性格指標に基づいて判断するのが好ましい。性格指標は、ある話題について、ユーザが積極的であるのか消極的であるのかを示す情報である。積極的な場合には、話題名を切り替えることなく話題を提供し続けることができると判断することができる。一方、消極的な場合には、話題名を切り替えて話題を提供しなければならないと判断することができる。
<<入力特定情報の実例>>
入力特定情報には、入力情報に対応する識別情報あるいは識別情報を特定するための情報が付加されており、この情報によりシナリオデータを起動することができる。
なお、図15では、図1〜図4における入力特定情報には、次に述べる話題紹介リストも含まれる。
<<話題紹介リストの実例>>
図16は、話題紹介リストの構成の例を示す図である。
<話題紹介リストの構成>
話題紹介リストは、関連詞集合と話題との組のリストである。関連詞集合は、話題に含まれている関連詞の集合である。関連詞の近傍は、ある関連詞Aに着目した場合に、関連詞Aを含む関連詞の集合である。関連詞の近傍系は、関連詞の近傍の集合である。関連詞の近傍数は、関連詞の近傍系の要素数である。関連詞の位相は、関連詞の近傍系を見ることによりわかるものである。話題解析を実施することにより、全ての関連詞の組に対して近傍系を表示できる。嗜好解析を実施することにより、関連詞の近傍系を嗜好順に表示することができる。話題紹介に関わるシナリオは、関連詞の近傍系に基づき話題の近さや繋がりに基づいて構成できるシナリオである。
話題は、アクションとインデックスとが割り当てられたテキストである。アクションは、テキストをクリック等により起動する変化である。話題にはインデックスとしての関連詞集合が付加されている。インデックスをクリックするとインデックスに含まれる関連詞の関連詞仲間が表示される。
<話題紹介リストの利用>
図17は、関連詞辞書や嗜好辞書などの関連詞構造が導入された関連詞により、話題紹介リストの話題は繋がっていることを示している。利用者は話題紹介リストの話題の繋がり方に着目して話題を検知することができる。
また、利用者は、話題紹介リストにおける関連詞構造を参考にしながら、関連詞に基づいて話題切替を実施することにより、多様な観点から話題を検知することが可能となる。
<関連詞による話題切替>
話題に関わる応答情報を規定するシナリオデータにおいては、話題名による話題切替だけではなく、話題そのものを切り替えて紹介することが必要となる。話題解析は、話題紹介リストを介して、シナリオデータで話題そのものを切り替えるために必要な「関連詞と関連詞構造」を提供している。
図17に示したように関連詞により話題の近さや繋がり方を見ることができるので、関連詞をシナリオデータで利用することにより、話題そのものの話題切替が実施できることになる。例えば、現在の話題に対して、内容の近い話題への話題切替や内容が繋がっている話題への話題切替などが実施できる。
また、関連詞に関連詞構造が導入されていることにより、関連詞を変数化した変数関連詞(例えば、最も頻度の高い関連詞、最も人気のある関連詞など)をシナリオデータで利用することにより、話題の多様な紹介が可能となる。
関連詞による話題切替ができることにより、利用者が話題紹介リストを用いて話題を検知する手作業を、話題提供システム1がシナリオデータを用いて話題提供サービスとして再現することができる。
<<<話題解析>>>
次に、改めて、図15乃至図18に基づいて、図4における保守装置3に設けられた話題解析部について説明する。前述したように、保守装置3は、話題提供システム1の契約者がユーザに提供したい情報を含めて事前に作成するためのシナリオデータ検証部を構成している。そして、ユーザに提供したい情報(話題紹介リスト)を作成するためには必要が無いが、シナリオデータ検証部に対して前述した状態制御指標記憶部を加えることにより、この実施形態の保守装置3は、仮想的に前記会話制御端末装置2として機能させるための端末装置仮想構築部としても機能するように構成している。つまり、前記状態制御指標記憶部をシナリオデータ検証部に加えることにより端末装置仮想構築部を構成し、この端末装置仮想構築部が前述したtopiclet20とiWA Manager40とに相当する。
図15に図示されているように、本話題解析部によれば、話題を解析することが可能であるとともに、話題紹介リストの可視化を行うための出力を行うことができる。つまり、話題を関係付ける関連詞を介して、話題の近さや繋がり方を付与した話題リストを生成することが話題解析部で実行されるようにしている。また、保守装置3は、この話題解析部に加えて、話題リストと前記関連詞とを利用してユーザに話題を紹介するための話題紹介リスト(図17における話題リストに相当)、及びユーザの入力に応答するための入力関連シナリオを前記シナリオデータとして編集可能にするためのシナリオデータ編集部とを有していることも特徴としている。保守装置3の場合には、会話制御端末装置2に仮想的に構築しているので、ここでのユーザの入力はシミュレーター(担当者)の入力に相当する。
以下、前述した話題解析部における話題解析、話題紹介リストの生成、シナリオデータ編集部によるシナリオデータ編集について説明する。
<<<話題解析に基づく応答の出力>>>
図15は、話題解析に基づいて応答情報を生成して応答情報を出力部に出力する過程を示す図である。図16は、話題紹介リストの構成の例を示す図である。図17は、話題の抽出、関連詞辞書の生成及び嗜好辞書の生成の過程を示す図である。話題解析は、話題解析部によって実行されて、サーバとしてのiWA30の嗜好辞書や関連詞辞書が構築される。保守装置3のCPU等で構成される制御部は、これらの辞書を利用して、契約者の担当者が入力した複数の話題(話題ネタ)の夫々に、話題に含まれる複数の関連詞を自動的に付与する。
図15は、話題解析に基づいて応答情報を生成して応答情報を出力部に出力する過程を示す図である。
話題解析をした結果、iWA30によって、入力関連シナリオや話題紹介シナリオからシナリオデータを生成する。iWA30によって、識別情報などの要素から入力特定情報を生成する。iWA30によって、関連詞の集合と話題とから話題リストを生成する。
そして、生成したシナリオデータと入力特定情報と話題紹介リストとに基づいて応答情報を生成し、出力部220から応答情報を出力する。
このようにすることで話題解析から応答情報を生成し、応答情報を出力することができる。話題解析により応答情報を生成することにより、ユーザとの会話で用いる応答情報をユーザの各々に対して適切な内容にすることができ、ユーザとの会話をより円滑にすることができる。
<話題紹介リストの構成>
図16は、話題紹介リストの構成の例を示す図である。
話題紹介リストは、関連詞集合と話題との組のリストである。関連詞集合は、話題に含まれている関連詞の集合である。関連詞の近傍は、ある関連詞Aに着目した場合に、関連詞Aを含む関連詞の集合である。関連詞の近傍系は、関連詞の近傍の集合である。関連詞の近傍数は、関連詞の近傍系の要素数である。関連詞の位相は、関連詞の近傍系を見ることによりわかるものである。話題解析を実施することにより、全ての関連詞の組に対して近傍系を表示できる。嗜好解析を実施することにより、関連詞の近傍系を嗜好順に表示することができる。話題紹介に関わるシナリオは、関連詞の近傍系に基づき話題の近さや繋がりに基づいて構成できるシナリオである。
話題は、アクションとインデックスとが割り当てられたテキストである。アクションは、テキストをクリック等により起動する変化である。話題にはインデックスとしての関連詞集合が付加されている。インデックスをクリックするとインデックスに含まれる関連詞の関連詞仲間が表示される。
<話題の抽出、関連詞辞書の生成、嗜好辞書の生成>
図17は、話題紹介リストの作成と、嗜好辞書を用いたユーザのプロファイリング化とを示す図である。
前記話題紹介リストは、図17における保守装置3に設けられた表示装置の画面(符号1813と符号1811)に示されるような表示形態で可視化されて、関連詞辞書Fや外部のニュースソースから得た話題リストGをiWA30から抽出しつつ、担当者の入力による話題の手入力と、外部から取り入れた話題のデータ群からなる前記話題リストGに基づき保守装置3の制御によって自動的に話題を追加構築されていくものである。
話題紹介リストに話題(画面1813と1811の話題ネタ設定の欄)として入力され表示される内容の入力源は、第1に、契約者の担当者が、保守装置3の入力装置としての入力キーボードで話題ネタを直接にインプットして設定する第1形態と、iWA30が外部から収集したログデータ、たとえば、ツイッターやブログなどのネットワークを介して収集できるデータから前記保守装置3の入力装置で担当者が入力した話題に基づいて、自動的にiWA30が話題ネタを抽出する(1811)第2形態が存在する。抽出した話題から、話題紹介リストの候補となる話題閲覧リストのデータが生成される。iWA30は、保守装置3を通じて担当者が手入力した話題に対し、画面1815に表示するために、関連詞辞書Fを参照して、複数の関連詞がiWA30の制御の基で入力された話題に関連付けられる段階と、次に、担当者が手入力した話題に対して関連づけられた関連詞辞書をキーとして、iWA30が外部から収集した一般的なニュース群からなる話題リストGを参照し、担当者が入力した話題と関連する外部の話題を自動的にiWA30が抽出し、その抽出したデータを保守装置3が受信して画面1811に示すように表示する段階とを主な構成している。
そして、担当者は入力キーボードなどの直接的な入力装置による話題の入力と、外部からの情報をiWA30が予め蓄積した話題リストのデータベースから得られた話題を自動的な減数又は追加を繰り返しつつ話題紹介リストを構築するのである。
一方、本実施例の保守装置3では、前述した話題紹介リストの生成に加えて、iWA30から得られた嗜好辞書Eを参照しつつ、入力された話題に対して、関連詞辞書Fに基づいて紐付された画面1815に表示される関連詞群と、他のユーザの応答履歴から生成されたユーザIDとユーザタイプと、関連詞とが関連付けられたユーザタイプリストのデータの関連詞を比較する。この比較によって、例えば、画面1817に示すように、ある話題に対する関連詞として抽出された「一番怖い」が、過去の他のユーザ履歴で構築された嗜好辞書Eを参照して、どのようなユーザタイプのユーザが入力した情報に、同じような関連詞が関連付けられたかを分析処理して表示して可視化を行うことができる。
この分析結果は同じ関連詞を入力したユーザを特定するためのユーザIDと、ユーザタイプ(例えば、昨日のお客)と、全てのユーザに共通する関連詞とともに記憶され、この記憶されたデータに基づいて、ユーザの嗜好を分析するために利用することができる。その利用の仕方としては、例えば、同じ嗜好を持つと考えられるようなユーザに、その嗜好に合致すると考えられる特定のサービスを、前記ユーザIDからユーザのメールアドレス等の送付先を特定できるので、送付先を特定して配信したり、サービス以外でも嗜好に合った話題を前記特定した送付先に提供したりするために利用することが可能となる。
図18に示すのが、前述した保守装置3の第1形態による手入力によって話題が話題ネタ設定画面に入力されて、前記関連詞辞書、前記話題リストによって話題紹介リストを生成しサーバとしてのiWA30に出力するまでの処理の流れを示したものである。図17では、嗜好辞書を用いて入力された話題からユーザのプロファイルを行う処理を説明したが、このプロファイルを行う処理は話題紹介リスト生成とは異なる処理となるので、この図18のフローでは入力された話題からユーザのプロファイルを行う処理の説明を省略する。
図18を参照して、保守装置3の制御部は、保守装置3の表示画面に話題ネタの設定画面を表示して、話題の入力が前記担当者により実行されるのを待つ(S2000)。
次に、入力画面に対して話題がキーボード等の入力装置を介して入力され、話題ネタ設定のスイッチが入力されたと判定された場合(S2001:YES)、サーバとしてのiWA30に対して、話題ネタ設定された話題ネタが送信され、この送信された話題ネタのデータの内容に応じて、関連詞辞書FからiWA30のCPUの制御の基で1つ以上の関連詞が抽出される。図17の画面1813の場合には、話題ネタとして「パニック議論ネタ」が保守装置3からiWA30に送信され、この「パニック議論ネタ」の内容からiWA30のCPUの制御の基で、「パニック」という関連詞が抽出される。そして、この関連詞「パニック」をキーとして、予めiWA30のデータベース内に存在する話題リストGのデータから、関連する話題を抽出すると、画面1813に図示されているように、話題リスト(選択話題数:1424 全話題数1424) スルーブット:17.25が表示される。この画面1813から見出せるのは、「パニック」という関連詞をキーとして、iWA30のCPUの制御の基で、1424の話題が抽出されて、最終的に話題紹介リストを構成する可能性のある1424個の話題とその話題に関連付けられた複数の関連詞が、保守装置3に受信されて画面1813に図示される。端的に説明すると、図17の画面1813の表示を行うための、「パニック」という関連詞をキーとして、複数の話題と、それぞれの話題に対して複数の代表関連詞が関連つけられたリストデータを表示するためのデータをiWA30から受信する(S2002)。
このような入力は、第1回目の「パニック」という関連詞をキーとして1424件の話題が話題紹介リスト候補として提供可能に生成され表示されたが、この数が多い場合は、可視化されている話題の内容を前記担当者が判断して、より目的となる話題紹介リストに採用する話題となるように絞込みを実行することができる。つまり、図18のフローを参照して、ステップS2004の話題紹介リストのリストデータとして確定させることなく、一定時間経過後にタイムアウトして、再度に、ステップS2001における追加の話題ネタの入力を実行することができる。例えば、画面1815では、第2回目の「安心します」という話題ネタを入力することによって、入力された代表関連詞と話題となる受信されたデータを表示したものであり、そこには、選択話題数136 全話題数1424)スループット:16.54と表示される。つまり、話題提供リストとして生成中のリストデータは、1424から136へ減数したということになる。これによって、前記担当者の意向に沿った話題提供リストに近い形態に改変されたことになる。
さらに、新たな話題を担当者が思いつかないような場合には、その表示形態を関連詞中心とした表示形態に変更することができる。この表示形態は、画面1815に示されるように「条件設定:優先関連詞」を前記入力装置の操作によって入力することで、関連詞を優先したリスト形態で表示することができるようになっている。つまり、第2回目の話題に対して、iWA30のCPUの制御の基で付与した複数の関連詞は、図17の画面1815に示すように、136個の各話題(1,2,3・・・・,136)ごとの行に、複数の関連詞が複数列で表示される表示形態に切り替えることが可能となっている。この表示形態の切替は、前述したように、保守装置3の図示しない制御部は、前記入力装置の画面切替入力に応じて、行ごとに表示される話題ごとの関連詞を列方向に列挙する形態に表示変更する。前記担当者は、この表示形態から自らが作成しようとする話題紹介に適した関連詞を画面1815に表示される複数の関連詞から決定し、その関連詞を前記入力装置で入力することが可能である(S2001:YES)。この入力した状態を示すのが、画面1811であり、この場合は、関連詞「一番怖い」を新たな話題ネタとして入力した。そして、関連詞「一番怖い」を話題リストのデータベースをiWA30のCPUの制御の基で参照し、入力された話題ネタに基づいて、複数の関連詞と話題とからなる新たな話題紹介リストの候補としてのリストデータを受信し(S2002)、表示する(S2003)。
前記話題リストGは、サーバとしてのiWA30が外部からインターネットなどの外部情報収集手段によって集めた情報からなるリストである。そして、話題リストGの各話題には、複数の関連詞が予め関連付けてiWA30のデータベースに記憶されている。このように、この実施形態では、前記担当者の知識不足や能力不足で、話題を設定するバリエーションが陳腐なものとなる可能性があって、サーバとしてのiWA30話題リストから得た他の関連話題を抽出して、保守装置3の画面に話題そのものと、その話題に関連する複数の関連詞を表示することによって可視化することになるから、これらの話題リストから得た話題をベースに前述したように遷移する話題のバリエーションを豊富なものとできる可能性が高まるのである。
前述したような話題提供リストの候補の改変は、入力完了の入力がなされる(S2004:YES)まで、所定時間が経過するとタイムアウトして、上述した話題を入力させるための入力画面を表示し、次の話題を待って、上記S200〜S2003の処理を順次繰り返す。
そして、入力完了の入力(S2004:YES)がなされると、サーバとしてのiWA30に対して話題紹介リストとしてのデータを出力する(S2005)。
<<<情報検索システムにおける技術的思想の概要>>>
本発明の情報検索システムは、図1に示すような話題提供システム1の仕組みを用いて、ユーザに、既知でない最新の話題を取得しうるキーワード(文字列)を提供するものである。最初に、本発明の情報検索システムにおける技術的思想の概要について、図19を参照して説明する。
本発明の情報検索システムでは、個人が生成した風説情報等を含む外部ログ502から、文解析処理511、嗜好解析処理512、話題解析処理513を経て、話題を識別可能な重要な文字列(特定文字列)の関係性や分布状況を表示し、この表示をユーザが閲覧することによって話題(トピック)を把握することができる。外部ログ502の入力から特定文字列の表示の提供までが瞬時に行われる。特定文字列の例として、ここでは関連詞が用いられる。
例えば、インターネット上のWEBページ等を検索した結果を話題情報ととらえると、この話題情報を圧縮・要約することにより、話題情報の要約である話題辞書が得られる。本発明の情報検索システムでは、話題辞書の圧縮は、上述した文解析処理511の前に行われる。例えば、WEBページ等を検索した結果のうち、タグやスクリプト文などを除いた、話題情報となりうるテキストデータだけが抽出され、そのように抽出されたテキストデータが文解析処理511の処理対象となる。
より具体的な例では、企業情報(話題情報)は、個人が生成したテキストデータからなる、企業に関わる情報であり、これは、企業に関わる知識空間である。この知識空間を、上述の処理で、言語に関わる辞書を利用することなく圧縮・要約して、部分知識空間に変換する。このような処理により、結果的に、企業情報が識別できる分解テキストデータ(関連詞)の集合からなる辞書(企業に関わる部分知識空間)が得られる。この部分知識空間には、後述するように、関連詞同士の繋がりを表す情報が含まれる。
会話制御端末装置2’’において、(例えば、会話制御端末装置2’’のユーザから)外部ログ502を収集するための条件が与えられ、上述した処理(文解析処理511、嗜好解析処理512、及び話題解析処理513)の処理結果として、会話制御端末装置2’’に関連詞が提供される。会話制御端末装置2’’は、例えば、PC(パーソナルコンピュータ)、スマートフォン、ロボットといった装置であり、会話制御端末装置2’’がPCであれば、処理結果の関連詞は、会話制御端末装置2’’のディスプレイに表示され、それらが、会話制御端末装置2’’のユーザに、瞬時に話題を把握するための情報として提供される。会話制御端末装置2’’は、上述の会話制御端末装置2や会話制御端末装置2’の変形例として構成される。
上述の文解析処理511、嗜好解析処理512、及び話題解析処理513は、話題提供サーバ4’によって行われる。話題提供サーバ4’は、上述の話題提供サーバ4の変形例として構成される。
<<文解析処理の概要の説明>>
文解析処理511は、外部ログ502に含まれる文情報を、文字列の出現特性に基づいて解析し、関連詞503を選出する。
文解析処理511は、外部ログ502から、形態素データのような事前に記憶・調製された辞書データを用いることなく、話題を識別可能な関連詞を選出(抽出)する。すなわち、外部ログ502に出現する共通の文字列を検索し、それらの文字列の直前の隣接文字の異なり度合い、及び直後の隣接文字の異なり度合いに応じて、関連詞を抽出する。
外部ログ502は、上述のように個人により作成した風説情報(例えば、所定のログフォーマットにより記憶されたデータ、インターネット上に公開されているWEBページ(ホームページ)やブログのテキストデータ、及びTWITTER(登録商標)のツイート情報)や、任意の機関によって事前に生成・編集されたデータやデータベース内のテキスト情報が含まれる。また、音声ファイル・動画ファイルから音声認識処理を経て取得されるテキストデータ等、様々なデータであってもよい。
また、外部ログ502は、収集条件によって収集されたデータである。例えば、キーワード検索の検索結果として示されたWEBページ(ホームページ)501に記載されているテキストデータや、ある属性を有するユーザのブログに記載された文や、TWITTERにおけるツイート情報などであってもよい。キーワード検索における検索条件等は、ユーザが、会話制御端末装置2’’から指定することができる。なお、1つの外部ログ502は、複数のテキストファイルを含むもの(例えば、1つのWEBサイトに含まれる複数のWEBページ(HTMLファイル)を含むもの)であってもよいし、1つのテキストファイルを分割した一部(例えば、1ファイルに含まれるテキストを1万ラインごとに分割したうちの1つ)であってもよい。
<<嗜好解析処理の概要の説明>>
嗜好解析処理512は、文解析処理511によって抽出された関連詞について、それらの使われ方を内部ログ506に基づいて捉え、それらの重要性を判定する。
内部ログ506はユーザ(ユーザの所属する機関や組織等を含む)の嗜好を示すデータであり、例えば、所定のログフォーマットにより記憶されたデータである。内部ログ506は、例えば、ユーザによってどのような関連詞が利用される傾向にあるか等を示すデータを含む。このように、ユーザの嗜好に応じた重要度によって関連付けられた関連詞を、本明細書では、話題鍵(クラスタ)504と称する。
<<話題解析処理の概要の説明>>
話題解析処理513は、嗜好解析処理512によって生成された話題鍵504について、話題ネタ507に基づいて、その分布を捉え、互いに関連付けられた関連詞の分布をユーザに提供する。
話題ネタ507は、上述のように、契約者の担当者が、保守装置3の入力装置で直接インプットして設定する場合と、話題提供サーバ4’が、保守装置3の入力装置で担当者が入力したキーワードに基づいて、外部から収集した外部ログ502(例えば、TWITTERやブログなどのネットワークを介して収集できるデータ)から自動的に抽出する場合等がある。
こうした話題解析処理513によって、話題のなかで関連詞がどのように分布しているかを示すことができ、会話制御端末装置2’’のユーザに合わせて関連詞を推奨するようにもできる。
<<<情報検索システムの概要>>>
次に、図20を参照して、情報検索システムの概要について説明する。図20に示す情報検索システム100は、会話制御端末装置2’’、及び話題提供サーバ4’を含み、会話制御端末装置2’’と話題提供サーバ4’の間は、所定のネットワーク(LAN、インターネット、WAN、無線通信等)で接続される。
<<会話制御端末装置2’’の概要>>
会話制御端末装置2’’は、入力制御部21、検索制御部22、送信制御部23、受信制御部24、応答情報決定部25、出力制御部26、及びネットワークインタフェース(I/F)部27を含む。また、RAMのような主記憶装置、またはハードディスクや半導体メモリのような外部記憶装置に、シナリオデータ28を記憶する。
入力制御部21は、会話制御端末装置2’’のユーザがキーボードやマウス等を用いて入力を受け付け、入力の内容に応じて入力データ等を対応する機能部に渡す。例えば、ユーザは、キーボードにより検索キーワードを入力したり、マウスにより興味のある関連詞の表示領域をクリックしたりする。
検索制御部22は、会話制御端末装置2’’で動作する一般的なWEBブラウザを含む。会話制御端末装置2’’は例えばインターネットに接続されており、ユーザがこのWEBブラウザを操作して、WEBページの検索(一般的に利用可能なインターネット検索)を行うと、検索制御部22は、得られた検索結果を送信制御部23に送信する。検索結果には、検索キーワードに関連するWEBページのアドレス(例えば、URL等のインターネットアドレス識別情報)が含まれている。
送信制御部23は、検索制御部22から検索結果を受信すると、これを、例えば、API送信により、入力情報として、話題提供サーバ4’の入力情報分析部41に送信する。
受信制御部24は、話題提供サーバ4’の入力情報分析部41から送信される入力特定情報等を受信し、これを応答情報決定部25に供給する。
応答情報決定部25は、シナリオデータ28と入力特定情報とに基づいて応答情報を決定する。入力情報分析部41から、入力特定情報(例えば、関連詞の分布を表示するためのデータ)と当該表示に必要であると判断されたシナリオデータとに基づいて応答情報を決定する。
出力制御部26は、応答情報決定部25により決定された応答情報を会話制御端末装置2’’に表示するよう制御する。
ネットワークインタフェース部27は、ネットワークを介して接続された話題提供サーバ4’との間のアクセスやデータ送受信、及びその他のコンピュータ(例えば、インターネットを介して接続されるインターネット検索エンジンを備えるサーバ等)との間のアクセスやデータ送受信を制御する。
シナリオデータ28は、図14に示すような、ユーザに提供する話題に関する応答情報を規定するためデータである。シナリオデータ28は、後述する話題提供サーバ4’のシナリオデータ55に予め記憶されているデータである。話題提供サーバ4’の入力情報分析部41によって生成された入力特定情報に基づいて必要であると判断されたシナリオデータが、シナリオデータ55から抽出され、抽出されたシナリオデータが、会話制御端末装置2’’のシナリオデータ28に記憶される。シナリオデータ55から抽出されたシナリオデータは、受信制御部24と応答情報決定部25の処理によってシナリオデータ28に記憶される。
話題提供サーバ4’のシナリオデータ55にすべてのシナリオデータを記憶させておき、異なる話題への遷移を規定する情報に基づいて、シナリオデータ55のシナリオデータから組み替え直したシナリオデータを生成し、組み替え直されたシナリオデータのみを会話制御端末装置2’’のシナリオデータ28に記憶することができる。
<<話題提供サーバ4’の概要>>
話題提供サーバ4’は、入力情報分析部41、及びネットワークインタフェース(I/F)部47を含む。また、RAMのような主記憶装置、またはハードディスクや半導体メモリのような外部記憶装置に、検索結果データ48、関連詞候補データ49、関連詞辞書50、嗜好データ51、関連詞・共起語データ52、話題データ53、比較結果データ54、及びシナリオデータ55が記憶される。なお、これらのデータは、様々なデータフォーマット、データ記憶形式をとることができる。
入力情報分析部41は、会話制御端末装置2’’から受信した入力情報を分析して入力特定情報を生成する。入力特定情報は、入力情報に含まれる各種の情報を分析した結果、生成される情報であり、例えば、後述する関連詞の分布などが含まれる。入力情報分析部41はさらに、外部ログ取得制御部42、文解析部43、嗜好解析部44、話題解析部45、及び情報更新部46を含む。
外部ログ取得制御部42は、会話制御端末装置2’’から受信した入力情報が、外部ログ502を識別する識別情報(例えば、検索キーワードに関連するWEBページ501のアドレスを含む検索結果)である場合に、例えば、インターネット経由でその識別情報にアクセスし、対応するHTMLデータ等を取得する。また、会話制御端末装置2’’から受信した入力情報が、関連詞を抽出する対象となるテキストデータそのものを含んでいる場合は、そのデータを外部ログ502として文解析部43に提供する。
また、所定の間隔で自動起動されるクローラー(図39参照)から、外部ログ502を識別する情報(例えば、検索キーワードに関連するWEBページ501のアドレスを含む検索結果)を受信した場合は、当該外部ログ502にアクセスし、対応するデータを取得して、取得したデータを、関連詞辞書を比較するために情報更新部46に提供する。
文解析部43は、外部ログ取得制御部42によって取得された外部ログ502からテキストデータを取得し、文字列の出現特性に応じて当該テキストデータに含まれる重要な関連詞を抽出し、関連詞辞書50に記憶する。
嗜好解析部44は、文解析部43によって関連詞辞書50に記憶された関連詞について、嗜好データ51に基づいて重要性を判定し、判定結果を関連詞・共起語データ52に記憶する。嗜好データ51は、ユーザによる関連詞の利用態様を記憶した内部ログ506を含むデータである。
話題解析部45は、嗜好解析部44によって生成された関連詞・共起語データ52に記憶された関連詞について、話題データ53に基づいて、その分布を捉え、互いに関連詞を関連付け、関連詞・共起語データ52を更新する。話題データ53は、契約者の担当者がインプットして設定、または自動的に抽出された話題ネタ507を含むデータである。
情報更新部46は、異なる収集条件により収集されたテキストデータに基づいて、それぞれ関連詞を選出して関連詞辞書を生成し、こうして生成された関連詞辞書を比較し、比較結果を比較結果データ54に記憶する。
ネットワークインタフェース部47は、ネットワークを介して接続された会話制御端末装置2’’との間のアクセスやデータ送受信、及びその他のコンピュータ(例えば、インターネットを介して接続されるインターネット検索エンジンを備えるサーバ等)との間のアクセスやデータ送受信を制御する。
なお、この実施例では、情報検索システム100を、会話制御端末装置2’’、及び話題提供サーバ4’を含むシステムとして説明したが、会話制御端末装置2’’、及び話題提供サーバ4’を一体化させた1つのコンピュータとして構成することもできる。また逆に、同様の機能を、ネットワーク接続された3つ以上のコンピュータに分散させて実現することもできる。また、文解析部43を、1つの独立した文解析装置として構成することができ、同様に、情報更新部46を、1つの独立した情報更新装置として構成することができる。文解析装置と情報更新装置がネットワークを介して他の装置と接続され、上述の情報検索システム100を構成することができる。
<文解析部の概要>
次に、図21を参照して、文解析部43の概要について説明する。文解析部43では、テキストデータから同じ文字列を検索し、当該検索された同じ文字列についてそれぞれ、前の隣接文字の異なり度合いと後の隣接文字の異なり度合いを判定し、その判定された異なり度合いに基づいて、その検索された「同じ文字列」が、話題に関して重要性が高く、テキストデータを意味識別可能な関連詞であるか否かを決定する。前の隣接文字の異なり度合いとは、検索された「同じ文字列」の直前に出現する文字が、どの程度異なっているかを示す指標である。同様に、後の隣接文字の異なり度合いとは、検索された「同じ文字列」の直後に出現する文字が、どの程度異なっているかを示す指標である。
ここで、例えば、検索された「同じ文字列」のうち、前の隣接文字の異なり度合いと後の隣接文字の異なり度合いが大きい文字列が、関連詞として決定される。このようにして決定された1つまたは複数の文字列は、必要に応じて、所定の記憶手段に記憶される。
このような文字列の抽出は、テキストデータに含まれる複数の同じ文字列に注目したときに、それぞれの文字列の直前に位置する文字として多くのバリエーションの文字が出現するとともに、それぞれの文字列の直後に位置する文字として多くのバリエーションの文字が出現するという出現特性が認められる場合、その文字列が、独立した、よく用いられる用語である、との考えに基づくものである。このように、本発明の文解析部43では、文字列の運動学(kinematics)を基礎におく考えに基づいて文字列が抽出される。
ここで、「いろは」という文字列が100回出現する日本語テキストデータを仮定すると、この文字列「いろは」を100個検索し、それぞれの文字列「いろは」について、直前の文字が何かを調べる。その結果、「あ」や「い」を含む30通りの文字が出現するという事実が得られるものとする。このことは、例えば、「・・・あいろは・・・」や「・・・いいろは・・・」といった表現が、上記の日本語テキストデータに存在するということを示している。一方、それぞれの文字列「いろは」について、直後の文字が何かを調べる。その結果、「わ」や「ん」を含む20通りの文字が出現するという事実が得られるものとする。このことは、例えば、「・・・いろはわ・・・」や「・・・いろはん・・・」といった表現が、上記の日本語テキストデータに存在するということを示している。
この場合、前の隣接文字の異なり度合いは、例えば、「あ」や「い」を含む30通りというバリエーションの数に基づいて判定され、後の隣接文字の異なり度合いは、例えば、「わ」や「ん」を含む20通りというバリエーションの数に基づいて判定される。ここで、前の隣接文字の異なり度合いと後の隣接文字の異なり度合いが大きいと判定された場合は、「いろは」という文字列の前後の文字が大きな多様性をもって変化しており、これによって文字列「いろは」が、独立した用語であって重要性の高い語である可能性が高いと判断され、関連詞として決定され、必要に応じて記憶手段に記憶される。前の隣接文字の異なり度合いと後の隣接文字の異なり度合いが大きいか否かは、共通の、または個別の判断基準により判断される。
文解析部43は、テキストデータ取得処理部43a、文字列検索処理部43b、異なり度合い判定処理部43c、及び関連詞決定処理部43dを備える。さらに、関連詞決定処理部43dには、関連詞決定部43d−1、及びランク付け管理部43d−2が含まれる。
テキストデータ取得処理部43aは、外部ログ502(処理の対象となるテキストデータ)を取得し、これを文字列検索処理部43bに提供する(後述の図25に示すテキストデータ取得処理520)。文字列検索処理部43bは、図25に示す文字列検索処理530を行う。異なり度合い判定処理部43cは、図25に示す異なり度合い判定処理540を行う。
関連詞決定処理部43dは、関連詞を決定し、必要に応じて、決定された関連詞を関連詞辞書50に記憶する(図25に示す関連詞決定処理550)。
また、関連詞決定部43d−1は、外部ログ502に含まれる同じ文字列に関する前後の隣接文字の異なり度合い等から、当該同じ文字が関連詞であるか否かを決定する。ランク付け管理部43d−2は、1つの外部ログ502において、複数の関連詞が決定される場合に、必要に応じてその関連詞についてランク付けを行う。
<情報更新部の概要>
次に、図22を参照して、情報更新部46の概要について説明する。情報更新部46は、テキストデータ取得処理部46a、文字列抽出処理部46b、辞書比較処理部46c、及び比較結果出力部46dを備える。
テキストデータ取得処理部46aは、外部ログ502(処理の対象となるテキストデータ)を取得し、これを文字列抽出処理部46bに提供する(後述の、図39に示すテキストデータ取得処理700)。文字列抽出処理部46bは、外部ログ502から関連詞を抽出し、これを、対応する関連詞辞書50に記憶する(図39に示す文字列抽出処理710)。文字列抽出処理部46bは、例えば、上述した文解析部43による処理と同様の処理である。
辞書比較処理部46cは、複数の関連詞辞書50を比較し、比較結果を比較結果データ54に記憶する(図39に示す辞書比較処理720)。
比較結果出力部46eは、比較結果データ54から表示すべき比較結果を取得し、これを含む入力特定情報を会話制御端末装置2’’に送信する。
<<<本発明の情報検索システムをFAQ検索に適用した実施例の説明>>>
次に、本発明の一実施形態に係る情報検索システムを用いて、ユーザの指示に応じてFAQ検索の結果を表示するFAQ検索システムについて説明する。
<<FAQ検索システムの画面遷移>>
図23には、FAQ検索システムの画面遷移が示されている。ユーザは最初に、会話制御端末装置2’’において所定の指示を行い、ディスプレイにFAQ検索画面600を表示させて、そこで所望の検索キーワードを(キーボード等を用いて)入力する。FAQ検索画面600は、例えば、図35(A)に示すような入力指示画面であり、FAQ検索画面600には、検索キーワード入力部601と「FAQ検索」ボタン602が表示されている。
ユーザがここで、検索キーワード入力部601に検索キーワード(図35(A)の例では、「ネットワーク」)を入力し、「FAQ検索」ボタン602をマウス等でクリックすると、FAQ候補表示画面610が表示される。FAQ候補表示画面610は、例えば、図35(B)に示すような表示画面であり、関連詞索引表示部611、候補質問文表示部612、及び「FAQ検索画面に戻る」ボタン613が表示されている。候補質問文表示部612に示された質問は、すべて「ネットワーク」に関するもので、ユーザが入力した検索キーワードに基づいて検索された結果が表示されている。関連詞索引表示部611に示された関連詞の集合は、それぞれ対応する質問に含まれる関連詞の集合である。ユーザがここで、「FAQ検索画面に戻る」ボタン613をクリックすると、会話制御端末装置2’’のディスプレイの表示がFAQ検索画面600に戻る。
FAQ候補表示画面610において、ユーザが候補質問文表示部612に表示された候補質問文のうちの1つをマウスのクリック等によって選択すると(矢印(1))、FAQ表示画面630が表示される。FAQ表示画面630は、例えば、図36に示すような表示画面であり、質問表示部631、関連詞索引表示部632、回答表示部633、及び「FAQ候補表示画面に戻る」ボタン634が表示されている。ユーザがここで、「FAQ候補表示画面に戻る」ボタン634をクリックすると、会話制御端末装置2’’のディスプレイの表示がFAQ候補表示画面610に戻る。
FAQ候補表示画面610において、ユーザが関連詞索引表示部611に表示された関連詞索引のうちの1つをマウスのクリック等によって選択すると(矢印(2))、関連詞・共起語一覧表示画面650が表示される。関連詞・共起語一覧表示画面650は、例えば、図37に示すような表示画面であり、NO表示部651、関連詞表示部652、近傍関連詞表示部(653〜656)、及び「FAQ候補表示画面に戻る」ボタン657が表示されている。ユーザがここで、「FAQ候補表示画面に戻る」ボタン657をクリックすると、会話制御端末装置2’’のディスプレイの表示がFAQ候補表示画面610に戻る。
関連詞・共起語一覧表示画面650において、ユーザが関連詞表示部652または近傍関連詞表示部(653〜656)に表示された関連詞のうちの1つをマウスのクリック等によって選択すると、FAQ検索画面660が表示される。FAQ検索画面660は、例えば、図38(B)に示すような表示画面であり、これは、図35(A)に示すFAQ検索画面600と実質的に同様のものであり、画面制御が元に戻ったことを示している。そして、FAQ検索画面660の検索キーワード入力部661には、検索キーワードとして、関連詞・共起語一覧表示画面650で選択した関連詞(例えば、図37の例では、「SNS」)が、自動的にセットされる。
ユーザがこの状況で、「FAQ検索」ボタン662をクリックすると、再び、FAQ候補表示画面610が表示され、今度は、「SNS」に関する質問文が、候補質問文表示部612に示される。
<<FAQ候補表示画面の表示処理に関する説明>>
次に、図24を参照して、FAQ候補表示画面の表示処理について説明する。図24は、FAQ候補表示画面の表示処理を表すフローチャートであり、会話制御端末装置2’’と話題提供サーバ4’においてそれぞれどのような処理が行われるかを示している。会話制御端末装置2’’では、例えば、上述したTopiclet20によって各処理が行われ、図35〜図38に示した、会話制御端末装置2’’のディスプレイへの画面表示は、ここでは、Topiclet20によって、またはTopiclet20の制御によって動作するWEBブラウザ等によって行われる。
最初に、ステップS11において、ユーザがFAQ検索画面600で「FAQ検索」ボタン602をクリックしたか否かが判定される。「FAQ検索」ボタン602がクリックされない間は(NO)、この判定が繰り返される。「FAQ検索」ボタン602がクリックされた場合(YES)、ステップS12において、ユーザによって検索キーワード入力部601に入力された検索キーワードによる検索結果を入力情報として話題提供サーバ4’に送信する。この実施例においては、検索結果は、一般的なインターネット検索サイトでキーワード検索を行った結果であり、Topiclet20は、このインターネット検索サイトでの検索を制御し、検索結果をAPI送信により話題提供サーバ4’に送信する。検索結果は、例えば、当該キーワード検索にヒットしたWEBページのアドレスである。
話題提供サーバ4’が会話制御端末装置2’’から入力情報を受け取ると、ステップS13において、入力情報を分析し、入力情報に含まれるWEBページのアドレスにアクセスして、WEBページに対応するHTMLデータ等から、対象となるテキストデータとなる外部ログ502を取得する。
次に、話題提供サーバ4’は、ステップS14において、取得した外部ログ502に対して文解析処理を実行し、外部ログ502から関連詞を抽出する。文解析処理については、後で詳細に説明する。
その後、話題提供サーバ4’は、ステップS15において、ステップS14で外部ログ502から抽出された関連詞から、関連詞辞書50を生成する。関連詞辞書50には、外部ログ502内のそれぞれの文情報に対する関連詞索引50aが含まれる。
次に、話題提供サーバ4’は、ステップS16において、FAQ候補表示画面610に表示するために、関連詞辞書50から関連詞索引50a等を取得し、これらの情報を入力特定情報として会話制御端末装置2’’に送信する。
会話制御端末装置2’’は、話題提供サーバ4’から入力特定情報を受信すると(ステップS17)、ステップS18において、受信した入力特定情報とシナリオデータ28に基づいて、応答情報を決定する。なお、話題提供サーバ4’は、必要に応じてシナリオデータ55を会話制御端末装置2’’に送信し、会話制御端末装置2’’はこれをシナリオデータ28に記憶する。
次に、ステップS19において、ステップS18で決定された応答情報を会話制御端末装置2’’のディスプレイに表示する。例えば、図35(B)に示すようなFAQ候補表示画面610が表示さる。この実施例では、例えば、候補質問文表示部612には、収集された質問文の一部(Q1、Q8、Q13、Q24、Q25)が候補質問文としてリスト表示される。また、関連詞索引表示部611には、候補質問文として表示された質問文にそれぞれ対応する関連詞索引が示されている。
<<文解析処理の詳細な説明>>
次に、図25を参照して、話題提供サーバ4’の文解析部43(図20、図21参照)で実行される文解析処理の概要を説明する。最初に、文解析部43は、テキストデータである外部ログ502を取得する(テキストデータ取得処理520)。外部ログ502は、前述のように、様々なデータソースから受信することができる。この実施例では、会話制御端末装置2’’から受信したWEBページのアドレスに基づいて、各WEBページにアクセスし、対応するHTMLデータ等からテキストデータを取得している。また、取得した外部ログ502、または外部ログ502を取得する際に、特定のテキストデータだけを取得するようフィルタ処理を行ったり、特定の分類によりグルーピングをしたりすることもできる。
次に、文解析部43は、テキストデータ取得処理520により取得された外部ログ502から、同じ(共通の)文字列を検索する(文字列検索処理530)。この処理は、例えば、取得した外部ログ502の中の「いろは」という同じ文字列を検索し、取り出す処理である。1つのテキストデータに100個の文字列「いろは」が存在する場合は、そのすべてが取り出される。また、テキストデータの中には、「いろは」以外にも同じ文字列が複数存在する可能性があるが、その場合は、それらの文字列も同様に検索して取り出す。例えば、文字列「いろは」の他に、文字列「にほへと」が複数含まれていれば、その文字列も同様に取り出される。なお、文字列「いろはに」などのように、同じ文字列としてすでに取り出されている「いろは」をそのまま含む文字列が複数ある場合も、文字列「いろは」とは別に、同じ文字列として検索される。
文字列検索処理530はさらに、同じ文字列として検索された文字列を、それぞれ、その文字列の前の隣接文字と後の隣接文字とともに、検索結果データ48に記憶する。検索結果データ48に記憶されるデータは、例えば、上記の例の文字列「いろは」については、100個のそれぞれの「いろは」について、文字列「いろは」、「いろは」の前の隣接文字、及び「いろは」の後の隣接文字を含むデータである。上述した例の場合、文字列「にほへと」や文字列「いろはに」についても同様に、それらの文字列と、前の隣接文字、及び後の隣接文字が検索結果データ48に記憶される。
このように、文字列検索処理530において、同じ文字列が検索された場合に、その文字列と、前後の隣接文字を記憶するのは、最終的に、重要な意味を持つ関連詞を決定するためであるが、外部ログ502のなかに同じ文字列が複数存在する場合であっても、その出現頻度が所定の頻度に達しない場合は、この時点で、関連詞として決定される可能性がないとの判断を行い、その文字列に関するデータを検索結果データ48として記憶しないようにすることができる。多くの文字からなる外部ログ502において、わずかな回数しか出現しない語(文字列)は、そもそも重要性が高くないと判断できるからである。
また、文字列検索処理530において、外部ログ502から同じ文字列を検索し記憶するために、本実施形態では、サフィックスアレイ(Suffix Array:接尾辞配列)という検索用データ構造を用い、これを二分探索(Binary Search)により検索することで、同じ文字列を高速に検索している。なお、本実施形態では、上記のような方法により、文字列検索処理530を行っているが、他の様々な方法を採用して、同様の検索処理を行うことができる。サフィックスアレイと二分探索を用いた文字列検索処理530の処理については、後で詳細に説明する。
次に、文解析部43は、文字列検索処理530によって検索結果データ48に記憶された文字列とその前後の隣接文字の内容から、前の隣接文字の異なり度合いと後の隣接文字の異なり度合いを判定する(異なり度合い判定処理540)。
ここで、1つの文字をs(i)と表し、
s(i)〜s(j)より構成される文字列m(i,j)を、
m(i,j)=(s(i),s(i+1),s(i+2),・・・s(j−2),s(j−1),s(j))と表し、
s(i)〜s(j−1)より構成される文字列m(i,j−1)を、
m(i,j−1)=(s(i),s(i+1),s(i+2),・・・s(j−2),s(j−1))と表し、
s(i+1)〜s(j)より構成される文字列m(i+1,j)を、
m(i+1,j)=(s(i+1),s(i+2),・・・s(j−2),s(j−1),s(j))と表す。
この場合、前の隣接文字に関する境界条件は、
T(i−1)={S(i−1)|m(i,j)}
T(i)={S(i)|m(i+1,j)}
で定義され、
後の隣接文字に関する境界条件は、
B(j)={S(j)|m(i,j−1)}
B(j+1)={S(j+1)|m(i,j)}
で定義される。
ここで、例えば、{S(i−1)|m(i,j)}は、文字列m(i,j)を共通とし、その直前に出現する文字の集合を意味する。なお、ここで、s(i)∈T(i)、及びs(j)∈B(j)が成立する。
例えば、T(i−1)の要素数が多く、T(i)の要素数が1の場合、s(i)が関連詞の先頭になる可能性が高く、一方、B(j)の要素数が1で、B(j+1)の要素数が多い場合、s(j)が関連詞の末尾になる可能性が高く、結果的に、文字列m(i,j)は、関連詞の候補として判断される。
このように、同じ文字列について、それらの前(または後)の隣接文字の出現態様、すなわち、隣接文字がどれくらいのバリエーションで出現するかに基づいて、同じ文字列についての隣接文字に関する異なり度合いを判定する。前後の隣接文字に関する異なり度合いが判定されると、判定された異なり度合いは、対応する文字列とともに、関連詞候補データ49に記憶される。なお、異なり度合い判定処理540の処理は、後で詳細に説明する。
次に、文解析部43は、異なり度合い判定処理540により判定された、同じ文字列の前後の隣接文字に関する異なり度合いに基づいて、その同じ文字列が関連詞であるか否かを決定し、関連詞であると決定された場合、その文字列を関連詞辞書50に記憶する(関連詞決定処理550)。
上述のように、同じ文字列について、それらの前後の隣接文字にどのようなバリエーションがあるかを見ると、隣接文字の出現要素数が小さい場合、その隣接文字と「同じ文字列」は一体となって、よく使われる別の文字列を形成していると考えることができ、他方、隣接文字の出現要素数が大きい場合は、隣接文字と「同じ文字列」が区切られ、その「同じ文字列」が独立した用語であって重要性の高い語である可能性が高いと考えられる。また、その「同じ文字列」が関連詞であるか否かは、前の隣接文字の異なり度合いと後の隣接文字の異なり度合いのほかに、さらなる要素を考慮して決定することができる。こうした、関連詞決定処理550については、後で詳細に説明する。
さらに、関連詞決定処理550では、関連詞が複数決定された場合に、関連詞として決定された文字列の間でランク付けを行うようにすることができる。こうしたランク付けは、例えば、文字列の重要度に関するランク付けであり、その文字列に関する、前後の隣接文字の異なり度合いのほかに、さらなる要素を考慮して決定することができる。例えば、文字列の文字長、出現頻度等に基づいてランク付けがされうる。また、順位を示すだけでなく、相対的な程度の差を表すことができるように、数値によってランク付けを行うこともできる。
<具体的な外部ログの例に対する文解析処理の説明>
図26は、外部ログ502の一例である外部ログ502aを示している。外部ログ502aは、図26(A)に示すように、検索キーワードによる検索結果として、質問文の記載部分に「ネットワーク」を含む文情報だけが集められたものであり、元のデータは、例えば、インターネット上の様々なサーバにおいて様々な利用者によって書き込まれた問題解決のためのテキストデータである。これらのテキストデータの代表的な例としては、インターネット上に公開されているWEBページ(ホームページ)やブログのテキストデータ、及びTWITTERのツイート情報などがある。また、任意の機関によって事前に生成・編集されたデータやデータベース内のテキスト情報が含まれてもよい。元のデータでは、質問文(Q(質問))と回答文(A(回答))とが1対1に対応するよう構成されているものとする。なお、ここでは、質問文の記載部分に文字列「ネットワーク」が含まれる文情報のみを元のデータから抽出しているが、質問文と回答文の記載部分に文字列「ネットワーク」が含まれる文情報を抽出するなど、様々なバリエーションを考えることができる。
ここで、文解析部43による文解析処理が行われると、図26(A)に示した外部ログ502aがテキストデータ取得処理520によって取得され、その後、上述した文字列検索処理530、異なり度合い判定処理540、及び関連詞決定処理550が行われると、図26(B)に示すように、抽出された文情報の質問文について、それぞれ複数の関連詞が抽出されている。例えば、質問文のうち、Q1については、「ネットワーク」、「トラブル」、「対応」、及び「設定」が選出されている。Q1の質問の記載において、検索キーワードに相当する「ネットワークには」下線が付され、他の関連詞は矩形で囲まれている。また、Q1の質問の記載に対応する、抽出された関連詞の集合として、{ネットワーク、設定、トラブル、対応}が示されている。この関連詞の集合は、関連詞決定処理550に関して上述したランク付けの順に記載されている。
同様に、Q8については、「ネットワーク」、「設定」、及び「事象別に」が選出されている。Q8の質問の記載において、検索キーワードに相当する「ネットワークには」下線が付され、他の関連詞は矩形で囲まれている。また、Q8の質問の記載に対応する、抽出された関連詞の集合として、{ネットワーク、設定、事象別に}が示されている。また、ここで、質問文だけでなく、回答文の記載内容に関しても関連詞を抽出し、関連詞索引に含めるように構成することもできる。
このような関連詞決定処理550によって生成された関連詞辞書50の例が、図27(A)に示されている。関連詞索引50aとして、図26(B)に示した、それぞれの質問に関する関連詞の集合がそのまま記憶されている。関連詞辞書50としては、こうした関連詞索引50aのみを記憶しておけば十分な場合もあるが、この実施例では、関連詞索引に対応する質問文を質問文50bに記憶し、さらに、その質問文50bに対応する回答を、回答文50cに記憶する。
関連詞辞書50に記憶された関連詞索引50aは、図27(A)に示すように、対応する文情報にそれぞれ対応付けて記憶されることにより、1の関連詞の集合と他の関連詞の集合との間で共通する関連詞を介して、他の集合に属する関連詞同士が関連付けられることになる。例えば、図27(B)に示すように、質問文のうち、Q1の質問についての関連詞の集合として、{ネットワーク、設定、トラブル、対応}が把握され、質問文のうち、Q8の質問についての関連詞の集合として、{ネットワーク、設定、事象別に}が把握される場合、(検索キーワードである関連詞「ネットワーク」を除いて)共通している関連詞「設定」が存在し、それによって、関連詞「設定」と関連する関連詞(共起関連詞ということもできる)が{トラブル、対応、事象別に}であることが把握され、さらに、関連詞「トラブル」や「対応」が関連詞「事象別に」と関連する、すなわち、共に、関連詞「設定」と共起するという共通点を有しているという点で関係性を有していることが把握される。
このような、関連詞同士の関係性は、この実施例では、検索キーワード「ネットワーク」で収集された外部ログ502aの文情報の間で見られたものであるが、まったく異なる検索キーワードで収集された文情報の関連詞同士に、このような関連性を見いだすことができる場合もあり、この場合に、潜在的な話題の関係性を発見することもできる。
<文解析部における文字列検索処理の詳細な説明>
図28ないし図30を参照して、文字列検索処理530を説明する。図28は、文字列検索処理530の処理手順を表すフローチャートである。図29、図30は、サフィックスアレイと二分探索を用いた文字列検索の仕組みを示す図であり、検索対象の文字列として、例えば、外部ログ502の文字列の一部である「このコードがコードリストにある」とのテキストデータ502−1が設定される。通常は、外部ログ502のテキスト部分すべてが検索対象となるが、ここでは、例示のため、テキスト部分の一部としている。
最初に、文字列「このコードがコードリストにある」のなかから同じ文字列を検索するために、サフィックスアレイを作成する。図28のステップS21において、テキストデータの最初の文字から最終の文字まで、サフィックスを展開する。ここで、図29を参照すると、図29(A)に示された、検索対象のテキストデータ502−1(「このコードがコードリストにある」)から、図29(B)に示すように、1〜15までのインデックスが付されたサフィックスが展開されている。それぞれのサフィックスは、検索対象のテキストデータ502−1において、インデックスの位置(開始文字位置)から末尾までの文字列であり、例えば、インデックス「1」については、検索対象のテキストデータ502−1の1文字目から末尾(15文字目)までの文字列「このコードがコードリストにある」が示されている。また、インデックス「10」については、検索対象のテキストデータ502−1の10文字目から末尾(15文字目)までの文字列「リストにある」が示されている。最後のインデックス「15」については、末尾である15文字目の文字「る」が示されている。
次に、図28のステップS22において、展開されたサフィックスを所定順序でソートし、サフィックスアレイを作成する。ここで、図29を参照すると、図29(B)に示されたサフィックスがソートされ、ソート後のサフィックスアレイが図29(C)に示されている。ソートは、例えば、各文字に対応する文字コード(この例ではJISコード)によって行われ、1レコード目から4レコード目にかけて、1文字目が、「ー」(JISコード=213C)、「あ」(JISコード=2422)、「が」(JISコード=242C)のように、当該文字コード順にソートされていることが分かる。1レコード目と2レコード目は、1文字目と2文字目が同じであるが、3文字目が「が」と「リ」で異なり(「が」(JISコード=242C)、「リ」(JISコード=256A))、それによって、1レコード目が最初に配置されている。なお、インデックスは、図29(B)のインデックスが、対応するレコードに付随してそのまま付与されている。
次に、図28のステップS23において、順次、テキストデータ内から検索文字列を1つずつ決定する。これは、テキストデータ内に同じ文字列があるかどうかを検索するのであるから、テキストデータ内のすべての部分文字列を検索文字列として、テキストデータと照合する。例えば、図29の検索対象のテキストデータ502−1に関しては、1文字の検索文字列「こ」〜「る」、2文字の検索文字列「この」、「のコ」、・・・、「にあ」、「ある」、3文字の検索文字列「このコ」、「のコー」、・・・、「トにあ」、「にある」等が順に決定され、以下同様に、15文字の「このコードがコードリストにある」までが検索文字列となる。ただしこの場合、1文字や15文字の検索文字列については、検索対象のテキストデータ502−1と照合する意味がないので、省略することができる。また、それ以外にも、検索文字列の文字長を所定の範囲に限定することができる。
次に、図28のステップS24において、検索を行う検索文字列がすべて終了したか否かが判定される。ここで、すべて終了した場合は、文字列検索処理が終了する。まだすべてが終了していない場合は、ステップS25において、検索文字列を検索キーとして、サフィックスアレイを検索する。ここで、図30を参照すると、図30(A)及び図30(B)に示すように、検索文字列として、検索対象のテキストデータ502−1内から3文字の文字列「コード」が決定された場合の検索処理が示されている。このとき、図30(C)のサフィックスアレイに対して二分探索が行われる。図30(C)のサフィックスアレイは、図29(C)に示すサフィックスアレイと同じものであり、図30(C)では、二分探索による検索の過程が示されている。
図30(C)を参照すると、まず、サフィックスアレイの中央のレコード(1)(インデックス=15、文字列「る」)と検索文字列「コード」を比較する。このとき、「る」のJISコードは246B、「コ」のJISコードは2533で、「コ」の方が大きいので、レコード(1)より下でサフィックスアレイの下半分の中心に位置するレコード(2)(インデックス=12、文字列「トにある」)と検索文字列「コード」を比較する。このとき、「ト」のJISコードは2548、「コ」のJISコードは2533で、「コ」の方が小さいので、レコード(1)とレコード(2)の中心に位置するレコード(3)(インデックス=7、文字列「コードリストにある」)と検索文字列「コード」を比較する。
そうすると、レコード(3)の最初の3文字と検索文字列「コード」が一致するため、検索文字列と同じ文字列が検索対象のテキストデータ502−1に見つかったことになる。さらにその後、レコード(3)の上下のレコードと比較すると、レコード(4)の最初の3文字と検索文字列「コード」が一致するため、検索文字列と同じ文字列が検索対象のテキストデータ502−1が見つかったことになる。このような二分探索により、検索対象のテキストデータ502−1のなかに、「コード」という文字列が2つあることがわかる(そのうちの1つは、検索対象のテキストデータ502−1から抽出された検索文字列「コード」それ自体である)。
次に、図28のステップS26において、検索文字列が所定数ヒットしたか否かが判定される。検索文字列が所定数ヒットしないと判定された場合、その文字列を関連詞の候補とすることなく、次の検索文字列による検索を行うため、ステップS23に進む。ここで、所定数は、検索対象のテキストデータ502−1の文字数や、検索文字列の文字数など、様々な要素に基づいて決定されうる。所定数ヒットしないということは、検索対象のテキストデータ502−1において、その検索文字列の出現頻度が小さく、重要な語ではないということを表している。なお、この段階では、出現頻度を評価することなく、関連詞の候補として記憶しておき、後続の関連詞決定処理等において最終的に判断するように構成することもできる。
ステップS26において、検索文字列が所定数ヒットしたと判定された場合、ステップS27に進み、そこで、検索キー(検索文字列)に一致した文字列を関連詞の候補とし、それぞれ、前後の隣接文字とともに、1レコードとして関連詞候補データ49に記憶する。ここで、図30(C)を参照すると、検索結果として、検索文字列「コード」と一致する文字列が先頭に見つかったレコード(3)とレコード(4)について、それぞれ、検索文字列と同じ文字列「コード」と、前後の隣接文字が、1レコードとして記憶される。例えば、レコード(3)については、「が」、「コード」、「リ」が1レコードとして記憶される。前の隣接文字が「が」であり、後の隣接文字が「リ」である。また、レコード(4)については、「の」、「コード」、「が」が1レコードとして記憶される。前の隣接文字が「の」であり、後の隣接文字が「が」である。
このように、この実施例における文解析部43では、上述のように、サフィックスアレイと二分探索を用いて、高速にテキストデータ内で同じ文字列を見つけ出すように構成されているが、本発明は当該処理方法に限定されるものではない。上述した以外の方法で、テキストデータ内の同じ文字列を見つけ出すようにすることができる。
<文解析部における異なり度合い判定処理の詳細な説明>
次に、図31及び図32を参照して、この実施例における文解析部43の異なり度合い判定処理について、より詳細に説明する。
図31は、異なり度合い判定処理540の処理手順を表すフローチャートである。図32は、前後の隣接文字の異なり度合いを判定するための仕組みを示す図であり、図30に示すような、検索文字列「コード」での文字列検索処理を、多くの文字を含む検索対象文字列に対して行った結果、検索結果として検索文字列「コード」が26個得られ、それに対応する26件のレコードを処理する状況を示している。
最初に、図31のステップS31において、文字列検索処理530で、検索結果データ48に記憶された文字列のレコード(前後の隣接文字を含む)から、1つの文字列に関するレコードを取り出す。ここで、図32(A)を参照すると、検索結果データ48に記憶された文字列「コード」についてのレコード(全26レコード)が取り出され、メモリに展開された様子が示されている。
次に、図31のステップS32において、検索結果データ48に記憶された文字列のレコードをすべて取得し、異なり度合い判定処理を行うべきデータがなくなったと判定された場合、図31の異なり度合い判定処理は終了する。ステップS32において、すべての処理が終了しておらず、検索結果データ48に記憶された文字列の1つについてすべてのレコードが取得できている場合は、ステップS33に進む。
次に、図31のステップS33において、検索結果データ48に記憶された文字列の1つについて取得したすべてのレコードについて、前の隣接文字でソートし、前の隣接文字に関する出現文字のパターン数を求める。ここで、図32(A)を参照すると、検索結果データ48に記憶された文字列「コード」について取得したレコード(全26件)について、前の隣接文字561でソートした結果が示されている。このソートは、上述した文字列検索処理におけるサフィックスアレイの作成のときと同様、文字コード(例えば、JISコード)を用いて行うことができる。このようなソートを行った後、レコード間で前の隣接文字561の値が変化した(ブレークした)回数をカウントすることによって、前の隣接文字561の出現文字のパターン数が分かる。図32(A)の場合、前の隣接文字561は、「 」、「(」、「、」、「「」、「が」、「た」、「で」、「ど」、「の」、「は」、「べ」、「も」、「り」の13パターンである。
このように、この実施例の文解析部43では、前の隣接文字561をソートし、その値が各レコード間で変化したかどうかで、前の隣接文字に関する出現文字のパターン数を求めているが、本発明は当該処理方法に限定されるものではない。出現文字のパターン数は、他の様々な方法で求めることができる。また、所定の文字や文字パターンに関する扱いを、仕様に応じて柔軟に設定することができる。例えば、改行・改ページなどの制御文字等を考慮しないようにすることができる。また、句点や読点などを考慮することもできるし、無視することもできる。さらに、英字の大文字と小文字を同じ文字として扱うこともできるし、別の文字として扱うこともできる。また、ソートについては、半角英数などの1バイトコード文字については、対応する1バイトをソートし、漢字などの2バイトコード文字については、対応する2バイトをソートする。また、前の隣接文字561をソートする場合、本実施形態では、1文字の隣接文字をソートすることとしているが、2文字以上の文字をソートして、その異なり度合いを判定するようにもできる。
次に、図31のステップS34において、前の隣接文字561に関する異なり度合いを判定する。この場合、異なり度合いは、隣接文字561が(図32(A)の26件のレコードの間で)、どの程度異なっているかを示す指標であり、従って、上述した前の隣接文字に関する出現文字のパターン数に基づいて判定される。異なり度合いは、パターン数そのものであってもよいが、例えば、文字列の出現頻度(図32(A)の場合は、「コード」の出現頻度が26)等を考慮して判定することもできる。また、異なり度合いを所定の閾値により複数の段階(例えば、3段階)で評価することもできる。またさらに、隣接文字561が特定の文字である場合に、その文字のカウントや異なり度合いの判定に関し、任意の重み付けを行うようにすることもできる。
次に、図31のステップS35において、検索結果データ48に記憶された文字列の1つについて取得したすべてのレコードについて、後の隣接文字でソートし、後の隣接文字に関する出現文字のパターン数を求める。ここで、図32(B)を参照すると、検索結果データ48に記憶された文字列「コード」について取得したレコード(全26件)について、後の隣接文字563でソートした結果が示されている。このようなソートにより、図32(A)に示したレコード565、レコード566は、それぞれ点線矢印に示す位置に配置される。
このソートは、上述した文字列検索処理におけるサフィックスアレイの作成のときと同様、文字コード(例えば、JISコード)を用いて行うことができる。このようなソートを行った後、レコード間で後の隣接文字563の値が変化した(ブレークした)回数をカウントすることによって、後の隣接文字563の出現文字のパターン数が分かる。図32(B)の場合、後の隣接文字213は、「、」、「「」、「」」、「が」、「で」、「と」、「に」、「の」、「は」、「を」、「リ」、「支」の12パターンである。
このように、この実施例の文解析部43では、後の隣接文字563をソートし、その値が各レコード間で変化したかどうかで、後の隣接文字に関する出現文字のパターン数を求めているが、本発明は当該処理方法に限定されるものではない。出現文字のパターン数は、他の様々な方法で求めることができる。また、所定の文字については、当該パターン数のカウントに含めないようにすることができる。また、ソートについては、半角英数などの1バイトコード文字については、対応する1バイトをソートし、漢字などの2バイトコード文字については、対応する2バイトをソートする。また、後の隣接文字563をソートする場合、本実施形態では、1文字の隣接文字をソートすることとしているが、2文字以上の文字をソートして、その異なり度合いを判定するようにもできる。
次に、図31のステップS36において、後の隣接文字563に関する異なり度合いを判定する。この場合、異なり度合いは、隣接文字563が(図32(B)の26件のレコードの間で)、どの程度異なっているかを示す指標であり、従って、上述した後の隣接文字に関する出現文字のパターン数に基づいて判定される。異なり度合いは、パターン数そのものであってもよいが、例えば、文字列の出現頻度(図32(B)の場合は、「コード」の出現頻度が26)等を考慮して判定することもできる。また、異なり度合いを所定の閾値により複数の段階(例えば、3段階)で評価することもできる。またさらに、隣接文字563が特定の文字である場合に、その文字のカウントや異なり度合いの判定に関し、任意の重み付けを行うようにすることもできる。
次に、図31のステップS37において、判定対象の文字列、及び、その文字列に関して判定された、前の隣接文字に関する異なり度合いと後の隣接文字に関する異なり度合いが、関連詞候補データ49に記憶される。
図31のステップS37の処理が終了すると、ステップS31に進み、次の「同じ文字列」に関する処理が行われる。
<文解析部における関連詞決定処理の詳細な説明>
関連詞決定処理550においては、異なり度合い判定処理540により関連詞候補データ49に記憶されたデータを順次読み出し、判定された前後の隣接文字の異なり度合いに基づいて、対応する文字列が関連詞か否かを決定し、決定された関連詞を、例えば、上述した関連詞索引の形で関連詞辞書50に記憶するとともに、その関連詞索引に対応する文情報(例えば、上述の例では、質問文と回答文)を関連詞辞書50に記憶する。関連詞決定処理550は、例えば、前後の隣接文字の異なり度合いの大小に応じて、対応する文字列が関連詞であるか否かを決定する。
前後の隣接文字の異なり度合いの大小については、共通の、または前後で異なる判断基準により判断されうる。前後の隣接文字の異なり度合いが、所定の大きさであると判断された場合に、対応する文字列は、独立した用語であって、話題を識別する重要な語である関連詞として決定される。すなわち、前後の隣接文字の異なり度合いによりスコアが計算され、そのスコアに基づいて、その対応する文字列が関連詞であるか否かを決定するようにしてもよい。
また、関連詞決定処理550では、前後の隣接文字の異なり度合いに加えて、対応する文字列の文字長、対応する文字列の出現頻度、特定の文字が前の隣接文字として出現する確率・頻度、特定の文字が後の隣接文字として出現する確率・頻度、特定の文字の組合せが前後の隣接文字として出現する確率・頻度等を考慮してスコアを計算し、計算されたスコアに基づいて、その対応する文字列が関連詞であるか否かを決定するようにしてもよい。
さらに、1つのテキストデータ(検索対象の文字列)において、複数の関連詞の候補がある場合に、その候補の数や、それぞれについて計算されたスコアの分布に応じて、関連詞として決定するための決定条件を変化させることもできる。
またさらに、関連詞決定処理550では、外部ログ502、または外部ログ502に含まれる文情報のそれぞれについて決定された関連詞が複数ある場合に、関連詞として決定された文字列の間でランク付けを行うようにすることができる。こうしたランク付けは、例えば、話題に関する文字列の重要度に関するランク付けであり、上述した、前後の隣接文字の異なり度合いにより計算されたスコアや、前後の隣接文字の異なり度合いに加え、他の様々な要素を加味して計算されたスコア等に基づいて決定される。また、このようなランク付けは、関連詞として決定された文字列の重要度を順序付けるだけでなく、関連詞間の相対的な重要度を示すことができるように、例えば、上述のスコアの値を用いる等して、具体的な数値によりランク付けを行うことができる。
また、このようなランク付けは、関連詞が複数決定された場合に行われるが、1つのテキストデータに関して決定された複数の関連詞について行うこともできるし、所定の条件によりグルーピングされた複数のテキストデータに関して決定された複数の関連詞について行うこともできる。
例えば、所定の条件によりグルーピングされた複数のテキストデータとして、入力された検索キーワードにヒットしたWEBページ群のテキストデータや、所定の属性に該当するユーザのTWITTERの内容などが考えられる。
<<FAQ表示画面の表示処理に関する説明>>
次に、図33を参照して、FAQ表示画面の表示処理について説明する。図33は、FAQ表示画面の表示処理を表すフローチャートであり、会話制御端末装置2’’と話題提供サーバ4’においてそれぞれどのような処理が行われるかを示している。会話制御端末装置2’’では、例えば、上述したTopiclet20によって各処理が行われる。
最初に、ステップS41において、ユーザが、図35(B)に示すFAQ候補表示画面610で、候補質問文表示部612に表示された候補質問文のうちの1つをマウスのクリック等によって選択したか否かが判定される。候補質問文のうちの1つが選択されていない間は(NO)、この判定が繰り返される。候補質問文のうちの1つが選択された場合(YES)、ステップS42において、選択された候補質問文を、入力情報として話題提供サーバ4’に送信する。入力情報には、選択された質問文そのものを含むこともできるが、この質問文を識別できる識別子が含まれていれば十分である。なお、ユーザは、関心のある質問文を複数同時に選択するようにもできる。
話題提供サーバ4’が会話制御端末装置2’’から入力情報を受け取ると、ステップS43において、入力情報を分析し、入力情報に含まれる質問文に対応する回答文を、関連詞辞書50から取得する。なお、この実施例では、図27(A)に示すように、関連詞辞書50に質問文50bと、これに対応する回答文50cを記憶するようにしているが、これらの質問文50bと回答文50cを、関連詞辞書50の関連詞索引50aと関連付けながら、別のファイルに記憶させることもできる。
次に、話題提供サーバ4’は、ステップS44において、FAQ表示画面630に表示するために、関連詞辞書50から取得した質問文50bに対応する回答文50cを含む情報を関連詞・共起語データ52に記憶するとともに、この情報を入力特定情報として会話制御端末装置2’’に送信する。
会話制御端末装置2’’は、話題提供サーバ4’から入力特定情報を受信すると(ステップS45)、ステップS46において、受信した入力特定情報とシナリオデータ28に基づいて、応答情報を決定する。なお、話題提供サーバ4’は、必要に応じてシナリオデータ55を会話制御端末装置2’’に送信し、会話制御端末装置2’’はこれをシナリオデータ28に記憶する。
次に、ステップS47において、ステップS46で決定された応答情報を会話制御端末装置2’’のディスプレイに表示する。例えば、図35(B)に示すようなFAQ候補表示画面610において、候補質問文表示部612にリスト表示されている質問文の1つ(例えば、矢印(1)に示すQ24の質問)を選択すると、図36に示されるようなFAQ表示画面630が表示され、そこで、質問表示部631に、選択した質問文であるQ24の質問が表示されるとともに、関連詞索引表示部632に、Q24の質問に対応する関連詞索引が表示され、さらに、回答表示部633に、Q24の質問に対応する回答(A24の回答)が表示される。
このような、FAQ検索画面600からFAQ表示画面630までの画面遷移により、ユーザは、ユーザの指定した検索キーワードでFAQを検索し、検索結果として複数の質問文の候補を表示させることができ、さらにそこで、それぞれの候補質問文において、どのような重要なキーワードが現れているか(すなわち、どのような事項に関連するものであるか)を、関連詞索引を見ることによって容易に把握することができる。
また、この実施例では、FAQ候補表示画面610において、質問文に対応する回答文を表示していないが、候補質問文をリスト表示させる段階で、それぞれ対応する回答文を表示するようにすることもできる。
<<関連詞・共起語一覧画面の表示処理に関する説明>>
次に、図34を参照して、関連詞・共起語一覧画面の表示処理について説明する。図34は、関連詞・共起語一覧画面の表示処理を表すフローチャートであり、会話制御端末装置2’’と話題提供サーバ4’においてそれぞれどのような処理が行われるかを示している。会話制御端末装置2’’では、例えば、上述したTopiclet20によって各処理が行われる。
最初に、ステップS51において、ユーザが、図35(B)に示すFAQ候補表示画面610で、関連詞索引表示部611に表示された関連詞索引のうちの1つをマウスのクリック等によって選択したか否かが判定される。関連詞索引のうちの1つが選択されていない間は(NO)、この判定が繰り返される。関連詞索引のうちの1つが選択された場合(YES)、ステップS52において、選択された関連詞索引を、入力情報として話題提供サーバ4’に送信する。入力情報には、選択された関連詞索引そのものを含むこともできるが、この関連詞索引を識別できる識別子が含まれていれば十分である。なお、ユーザは、関心のある関連詞索引を複数同時に選択するようにもできる。
話題提供サーバ4’が会話制御端末装置2’’から入力情報を受け取ると、ステップS53において、入力情報を分析し、関連詞辞書50から、入力情報に含まれる関連詞索引を含むすべての関連詞索引を取得する。
次に、話題提供サーバ4’は、ステップS54において、嗜好データ51のような内部ログ506に基づいて、ステップS53で取得した関連詞索引に含まれるすべての関連詞について嗜好解析を行う。嗜好データ51は、それぞれのユーザによって、これまでにどのような関連詞がどのように利用されてきたかといった利用態様を示すデータを記憶したログファイルであり、例えば、図38(A)に示すように、ユーザID51aごとに、そのユーザがどの関連詞51bを、参照または検索キーワードとして入力してきたかを記憶している。このほか、嗜好データ51として、関連詞の利用日時や詳細な利用内容を記憶しておき、これらの情報をも加味して嗜好解析を行うこともできる。
話題提供サーバ4’は、連詞索引に含まれるすべての関連詞について、この嗜好データ51に基づいて、嗜好解析を行い、各関連詞の重要度を決定する。例えば、嗜好データ51を参照して、同じユーザにおいて、利用頻度の高い関連詞ほど、高い重要度となるよう関連詞の重要度を設定する。このような重要度によって関連付けられた関連詞は、上述の話題鍵(クラスタ)504に相当する。
次に、話題提供サーバ4’は、ステップS55において、話題データ53のような話題ネタ507に基づいて、ステップS54で重要度が設定された関連詞について、さらに話題解析を行う。話題データ53は、契約者の担当者が入力した話題であったり、当該担当者が入力した話題に基づいて、外部ログ502から自動的に抽出した話題であったりする。このような話題データ53に基づいて、その分布を捉え、互いに関連付けられた関連詞の分布をユーザに提供する。例えば、FAQのなかで話題となっている関連詞とその共起語を関連付け、話題の中で関連詞がどのように分布しているのか表すようにできる。また、話題ネタの入力や自動抽出において、会話制御端末装置2’’のユーザごとに調整を行い、ユーザに合わせて関連詞を推奨するように構成することができる。例えば、対象となる質問文を、所定の範囲に限定するよう、話題を調整することもできる。
次に、話題提供サーバ4’は、ステップS56において、関連詞・共起語一覧表示画面650に表示するために、最終的にステップS55において関連付けがされた関連詞を含む情報を入力特定情報として会話制御端末装置2’’に送信する。
会話制御端末装置2’’は、話題提供サーバ4’から入力特定情報を受信すると(ステップS57)、ステップS58において、受信した入力特定情報とシナリオデータ28に基づいて、応答情報を決定する。なお、話題提供サーバ4’は、必要に応じてシナリオデータ55を会話制御端末装置2’’に送信し、会話制御端末装置2’’はこれをシナリオデータ28に記憶する。
次に、ステップS59において、ステップS58で決定された応答情報を会話制御端末装置2’’のディスプレイに表示する。例えば、図37に示すような関連詞・共起語一覧表示画面650が、会話制御端末装置2’’のディスプレイに表示される。関連詞・共起語一覧表示画面650には、NO表示部651、関連詞表示部652、近傍関連詞表示部(653〜656)、及び「FAQ候補表示画面に戻る」ボタン657が表示され、関連詞が2次元のマトリックスの形態で表示されている。
マトリックスの縦軸方向について、関連詞表示部652には、この実施例のFAQ検索に関して関連詞として抽出され、関連詞辞書50の関連詞索引に現れるすべての関連詞が、重複無く順に表示されている。表示順は、嗜好解析によって決定された各関連詞の重要度に応じて設定され、この実施例では、NO表示部651に示された数字が低いほど(図37の上部に表示されるほど)、対応する関連詞の重要度が高いものとなっている。なお、図37では、NO表示部651に示された数字は、1〜17までとなっているが、関連詞・共起語一覧表示画面650のスライダーバーを操作して下方向に移動させることによって、より多くの関連詞を閲覧することができる。
マトリックスの横軸方向について、関連詞表示部652に表示された関連詞の右横には、近傍関連詞表示部653〜近傍関連詞表示部656が示され、ここには、関連詞表示部652に表示された関連詞に関する近傍関連詞が表示される。近傍とは、図16に関して説明したように、ある関連詞Aに着目した場合、関連詞Aを含む関連詞集合は、「関連詞の近傍」であり、そのような関連詞をここでは、近傍関連詞としている。なお、関連詞集合は、ある話題に含まれている関連詞の集合であり、ここでは、関連詞索引がこれに相当する。
なお、図37では、近傍関連詞は、近傍関連詞1〜近傍関連詞4までの4つしか示されていないが、関連詞・共起語一覧表示画面650のスライダーバーを操作して右方向に移動させることによって、より多くの近傍関連詞を閲覧することができる。近傍関連詞は、関連詞表示部652に表示された関連詞と共起する関連詞(共起関連詞:すなわち、同じ話題で、共に出現する関連詞)ということができる。近傍関連詞の(横方向における)表示順は、共起関係が強いもの、すなわち、関連詞表示部652に表示された関連詞と共に出現する頻度が高いものほど、関連詞表示部652に表示された関連詞に近い位置に表示されるよう調整される。また、この横方向の表示順に関して、関連詞のランク付けや、ユーザまたは情報検索システムによる設定等を考慮して決定することもできる。
また、関連詞・共起語一覧表示画面650では、関連詞表示部652に表示された関連詞のうち、図35(B)に示すFAQ候補表示画面610で、関連詞索引表示部611に表示された関連詞索引のうちの1つをマウスのクリック等によって選択した際に、その関連詞索引に含まれていた関連詞(この実施例では、例えば、「ネットワーク」、「接続」、「ルータ」、及び「モデム」)は、ユーザが認識しやすいようにハイライト表示となっている。
ユーザは、関連詞・共起語一覧表示画面650の関連詞表示部652、及び近傍関連詞表示部(653〜)に表示された関連詞のマトリックス表示により、ユーザ自身が元来着目していた関連詞(検索キーワード)と関連する別の関連詞を、自身が関連詞をどのように利用してきたかという観点と、ユーザまたは情報検索システムによって着目・推奨する話題に近いかという観点で見ることができ、新たな関連詞についての「気づき」が与えられうる。例えば、図37の関連詞・共起語一覧表示画面650における関連詞のマトリックス表示では、検索キーワード「ネットワーク」による検索を行ったが、NO表示部651に表示された数字が、1〜13、及び15の場合には、表示された関連詞の集合から、概ね通信ネットワークに関連する話題であることが分かるが、NO表示部651に表示された数字が14、16、及び17の場合は、ソーシャルネットワークに関連する話題となっており、他と異なる話題が出現していることが分かる。
ユーザが、関連詞・共起語一覧表示画面650の関連詞表示部652、または近傍関連詞表示部(653〜)に表示された関連詞の1つをマウスのクリック等によって選択すると(図37の矢印)、画面が、図38(B)に示すようなFAQ検索画面660に自動的に遷移し、そこで、選択された関連詞(この実施例では、近傍関連詞の「SNS」)が、FAQ検索画面660の検索キーワード入力部661に自動的にセットされる。ユーザがこの状況で、「FAQ検索」ボタン662をクリックすると、再び、FAQ候補表示画面610が表示され、今度は、「SNS」に関する質問文が、候補質問文表示部612に示される。
<<<情報更新部における処理概要の説明>>>
情報更新部46は、異なる収集条件によって収集された外部ログ502(テキストデータ)から、意味識別可能な文字列を抽出し、抽出された文字列を、テキストデータに対応する関連詞辞書に記憶し、これらの関連詞辞書について比較処理を行うことによって得られた比較結果を比較結果データ54に記憶し更新する。比較処理は、関連詞辞書の更新がされた場合に自動的に行われる。
異なる関連詞辞書に対応付けられたテキストデータは、異なる収集条件によって収集されたテキストデータであり、これらのテキストデータは、例えば、同様の対象やデータソースについて異なるタイミングで収集される複数のテキストデータであったり、同様のタイミングにおいて、異なる主題や検索条件によって収集される複数のテキストデータであったりする。
上記の比較処理は、複数の関連詞辞書を比較して、新たに出現した関連詞のほか、消滅した関連詞、共通して出現する関連詞、(3つ以上の時系列テキストデータに対応する辞書において)再度出現した関連詞など、関連詞の出現状況を判定し、関連詞がこのような出現状況のうちいずれかである場合に、その関連詞を比較結果として記憶する。
また、1つのテキストデータから複数の関連詞が抽出された場合に、それらの関連詞を1つの集合として(共起関連詞として)関連付け、対応する関連詞辞書に記憶することができる。このように構成することにより、比較処理において、複数の関連詞辞書で共通する関連詞があると判定された場合に、その関連詞の共起関連詞を比較し、さらなる判定を行うことができる。
このように、関連詞の出現に関する履歴等をとらえることにより、関連詞の意味を炙りだせるようになる。すなわち、このような処理を繰り返すことにより、関連詞が所属する話題名が明確となるほか、いつもの関連詞と(新たに出現した)新着関連詞とを区別して扱うことができたり、関連詞辞書の比較処理によって、話題の類似性や相違性についての判断をしたりすることができる。こうした機能を、関連詞学習機能と称することとする。関連詞学習機能により、エンドユーザの入力識別手段が多様化することが期待できる。
図39を参照して、情報更新部46の処理概要について説明する。最初に、情報更新部46は、テキストデータである外部ログ502を取得する(テキストデータ取得処理700)。外部ログ502は、例えば、クローラー730によって収集される。クローラー730が、WEBページのネットワークアドレス(URL等)を返す場合は、そのネットワークアドレスにアクセスすることにより外部ログ502を取得するようにもできる。またさらに、取得した外部ログ502、または外部ログ502を取得する際に、特定のテキストデータだけを取得するようフィルタ処理を行ったり、特定の分類によりグルーピングをしたりすることもできる。
クローラー730は、例えば、自動起動され、決められた時間に決められた話題名に対して話題解析を行う(すなわち、検索を行って、定期的に話題を収集する)。話題名は、例えば、関連詞辞書50を保持しているサービス(ユーザが扱う話題にそれぞれ対応したサービスIDに割り当てられた領域)に記憶され、ユーザが10個の話題を扱いたい場合は、10個のサービスを利用してそれらの話題を扱うことになる。また、上述した1つ1つのサービスについて、対応する話題チップを設定し、各話題チップが常時、対応する話題に関する情報を収集し、ユーザの入力に応じて、関連する話題チップを連携・統合させ、より多様な話題提供サービスを実現することもできる。
クローラー730による検索は、例えば、インターネット上の既存のインターネット検索サイトにアクセスし、そこで検索キーワードを指定することにより、当該インターネット検索サイトの検索サーバから検索結果を受信する。検索結果には、例えば、検索キーワードに合致または類似するコンテンツを含んだWEBページのアドレス(WEBページ1のアドレス、WEBページ2のアドレス、WEBページ3のアドレス、・・・、WEBページXのアドレス)が含まれる。
クローラー730は、この実施例では、既存のインターネット検索サイトにおける検索を実行することで検索結果を取得するようにしているが、他の様々な方法により、所定の条件を満たすWEBページのアドレスを取得することができる。また、検索対象はインターネット上のWEBページに限定されるものではなく、TWITTERのツイート情報や、任意の機関や組織によって事前に生成・編集された(ネットワーク上またはローカルの)データやデータベース内のテキスト情報であってもよい。
既存のインターネット検索サイトは、そのインターネット検索サイトが使用する検索サーバに備えられた検索エンジンにより、インターネット上のデータソースから検索キーワードに合致、または類似するWEBページのアドレスを、検索のリクエストに応じて(あるいは事前の定期的収集活動により)収集する。
クローラー730は、検索サーバから検索結果が送信されると、クローラー730が動作するコンピュータから、その検索結果を(例えば、API送信により)話題提供サーバ4’に送信する。また、クローラー730は、フィルタを用いて、検索結果のうち、所定の条件を満たすものを除外するよう構成することができる。
この実施例では、クローラー730が、決められた時間に自動的に起動されるが、話題提供サーバ4’の動作制御に応じてクローラー730の動作を制御し、検索結果を取得するようにしてもよい。また、クローラー730が所定のインターバルで検索結果を取得し、クローラー730が動作するコンピュータにその検索結果を保持しておき、話題提供サーバ4’が、必要なタイミングで、当該コンピュータにアクセスして検索結果を取得するようにもできる。また、クローラー730が話題提供サーバ4’で実行されるように構成することもできる。
また、この実施例では、クローラー730が動作するコンピュータが、検索結果として検索キーワードに関連するWEBページのアドレスを話題提供サーバ4’に送信するが、クローラー730が動作するコンピュータにおいて、これらのWEBページにアクセスし、その結果得られたテキストデータを外部ログ502として話題提供サーバ4’に送信するようにもできる。
次に、情報更新部46は、テキストデータ取得処理700により取得された外部ログ502から、意味識別可能な文字列を抽出し、抽出された文字列を関連詞辞書50に記憶する(文字列抽出処理710)。このように抽出された文字列は、上述の関連詞に相当するものであり、これらの関連詞は、その関連詞が抽出された外部ログ502に対応する関連詞辞書1〜3等に、それぞれ記憶される。
外部ログ502から関連詞を抽出する方法として様々な方法が考えられる。例えば、上述した文解析部43による方法で関連詞の抽出を行うことができる。
文字列抽出処理710では、複数の外部ログ502から関連詞が抽出され、それぞれ対応する関連詞辞書50に記憶される。例えば、複数の外部ログ502は、同様の対象やデータソースについて異なるタイミングで収集されたテキストデータであったり、同様のタイミングにおいて、異なる主題や検索条件によって収集される複数のテキストデータであったりする。文字列抽出処理710の詳細な処理については、後で説明する。
次に、情報更新部46は、文字列抽出処理710により、それぞれ関連詞が記憶された複数の関連詞辞書50を比較し、関連詞の出現状況に応じて、比較結果を比較結果データ54に記憶する(辞書比較処理720)。
例えば、異なるタイミングで収集された2つの関連詞辞書(関連詞辞書1、関連詞辞書2)を比較する場合、関連詞辞書1に存在せず、関連詞辞書2に存在する関連詞があれば、これを、新たに出現した新着の関連詞として、比較結果データ54に記憶し、逆に、関連詞辞書1に存在し、関連詞辞書2に存在しない関連詞があれば、これを、消滅した関連詞として、比較結果データ54に記憶する。
また、例えば、異なる主題について同様のタイミングで収集された3つの関連詞辞書(関連詞1〜3)を比較する場合、すべての関連詞辞書1〜3に存在する関連詞があれば、これを、共通した関連詞として比較結果データ54に記憶する。
なお、複数の関連詞辞書において、関連詞がどのような出現状況のときに比較結果データ54に記憶するかは、情報更新部46の利用態様に応じて柔軟に規定することができる。辞書比較処理720の詳細な処理については、後で詳細に説明する。
会話制御端末装置2’’から、ユーザが直接、あるいは応答シナリオに応じて、所定の関連詞辞書を比較した比較結果データ54の表示が要求されると、話題提供サーバ4’がこれらの比較結果データ54を含む入力特定情報を会話制御端末装置2’’に送信し、会話制御端末装置2’’は、この入力特定情報を受け取ると、入力特定情報とシナリオデータ28に基づいて応答情報を決定し、会話制御端末装置2’’のディスプレイに当該応答情報を表示するよう制御する。
会話制御端末装置2’’のディスプレイには、例えば、話題名と、この話題における関連詞の変化が表示される。関連詞の変化の表示には、例えば、関連詞の出現状況とこれに対応する関連詞が含まれる。
後述する図46の比較結果データ54に関しては、例えば、話題名「2013年10月10日、t2における「株の取引」の話題」について、出現状況が「新着関連詞」である関連詞「税率」と、出現状況が「消滅関連詞」である関連詞「口座」が表示される。この表示は、図46に示す比較結果データ54の、レコード54aに対応するものである。ユーザは、ディスプレイに表示された内容を見て、話題名に関する話題において、t2というタイミングで、新たに「税率」という関連詞が出現し、これと同時に、「口座」という関連詞が消滅したという気づきを得ることができる。
<<情報更新部における文字列抽出処理の説明>>
図40を参照して、文字列抽出処理710について説明する。図40は、文字列抽出処理710の処理手順を表すフローチャートである。最初に、ステップS61において、関連詞を抽出する対象となる外部ログ502(テキストデータ)を読み込む。テキストデータは、上述のように、テキストデータが取得できる限り、どのようなデータであってもよい。
次に、ステップS62において、ステップS61で読み込んだテキストデータから、意味識別可能な文字列である関連詞を抽出する。テキストデータから関連詞を抽出する方法は、上述のように、文解析部43による、前後の隣接文字の異なり度合いに基づく方法や、形態素解析を用いた方法などを含む様々な方法がある。
次に、ステップS63において、ステップS62で1つのテキストデータに対して複数の関連詞が抽出された場合に、所定の判断基準により、その複数の関連詞にランク付けを行う。例えば、テキストデータにおける関連詞の重要度に応じてランク付けを行うことができ、関連詞の文字長や出現頻度に応じてランク付けが行われうる。また、関連詞を、前後の隣接文字の異なり度合いに基づく方法により抽出する場合は、前後の隣接文字の異なり度合いに応じてランク付けが行われる。なお、ランク付けは、このような基準のほか様々な要素、及びこれらの組合せによって行うことができる。このような「ランク」は、話題との関連性を示すものである。また、関連詞が複数抽出された場合であっても、このようなランク付けを行わないようにすることもできる。
次に、ステップS64において、ステップS63でランク付けされた関連詞を、テキストデータに対応する関連詞辞書に記憶する。例えば、1つのテキストデータから抽出された関連詞は、1つのレコードにまとめて記憶され、各関連詞は、ランク付けに応じた記憶位置(配列エントリー)に記憶される。関連詞は、このように記憶されることにより、複数の関連詞が、1つのテキストデータ(それらの関連詞が抽出されたテキストデータ)に関連付けられた集合として定義される。ランク付けは、その集合のなかで関連詞を順位付けるものである。
文字列抽出処理は、処理対象のテキストデータが複数ある場合は、上述したステップS61からステップS64までの処理を、テキストデータごとに繰り返す。
<<情報更新部における辞書比較処理の説明>>
図41を参照して、辞書比較処理720について説明する。図41は、辞書比較処理720の処理手順を表すフローチャートである。この実施例では、時系列データとして収集された2つのテキストデータ(テキストデータ1、テキストデータ2)から関連詞が抽出され、それぞれ対応する関連詞辞書(i−1)、関連詞辞書(i)、に記憶されている状況で比較処理が行われるものとする。
最初に、ステップS71において、関連詞辞書(i−1)、関連詞辞書(i)に記憶されている関連詞を読み出す。次に、ステップS72において、関連詞辞書(i−1)と関連詞辞書(i)の関連詞を比較し、そのなかから関連詞辞書(i−1)に存在せず、関連詞辞書(i)に存在する関連詞を、新たに出現した関連詞(新着関連詞)として比較結果データ54に記憶する。それぞれの関連詞辞書は、例えば、話題名に対応付けられており、辞書比較処理720は、この話題名を用いて比較を行うことができる。新着関連詞は、対応する関連詞辞書を表すことができる話題名、出現状況(この場合は、新たに出現したことを表す「新着」の文字やこれに対応するコード等)とともに比較結果データ54に記憶される。
次に、ステップS73において、関連詞辞書(i−1)と関連詞辞書(i)の関連詞を比較し、そのなかから関連詞辞書(i−1)に存在し、関連詞辞書(i)に存在しない関連詞を、消滅した関連詞(消滅関連詞)として比較結果データ54に記憶する。それぞれの関連詞辞書は、例えば、話題名に対応付けられており、消滅関連詞は、この話題名、出現状況(この場合は、新たに出現したことを表す「消滅」の文字やこれに対応するコード等)とともに比較結果データ54に記憶される。
その後、ステップS74において、関連詞辞書(i−1)の内容を関連詞辞書(i)にコピーする。これは、次のタイミングにおいて、文字列抽出処理710が関連詞を記憶するための関連詞辞書(i−1)を用意するためであり、その後、この新たな関連詞辞書(i−1)と、関連詞辞書(i−1)の内容がコピーされた関連詞辞書(i)が、辞書比較処理720によって比較される。
このように、文字列抽出処理710と辞書比較処理720は、所定のタイミングで繰り返し実行されるが、詳細な説明については後述する。また、辞書比較処理720が繰り返し処理されることによって、比較結果データ54に、その処理タイミングにおいてそれぞれ比較結果が記憶されることになるが、比較結果を記憶する際に、それ以前に記憶されていた比較結果を消去するか、累積的に記憶するかは、本発明に係る情報検索システム100の仕様に応じて決定される。また、比較結果データ54を、辞書比較処理720ごとに別個に用意するようにしてもよい。
また、この例では省略したが、関連詞辞書(i−1)と関連詞辞書(i)を比較して、共通する関連詞(共通関連詞)を比較結果データ54に記憶することもできる。この場合、例えば、関連詞辞書(i−1)において共通関連詞とともに記憶されている他の関連詞(共起関連詞)と、関連詞辞書(i)において共通関連詞とともに記憶されている他の関連詞(共起関連詞)との間に共通性があるか否かをさらに比較して、当該共通性に関する情報を比較結果データ54に記憶することができる。
さらに、上記のような共起関連詞を比較する場合に、それらの共起関連詞に関連付けられたランクを考慮して共通性に関する情報を判定してもよい。例えば、ランクの高い(それらの関連詞で示される話題にとって重要性が高い)共起関連詞が、関連詞辞書(i−1)と関連詞辞書(i)において共通する場合、共通関連詞の共通性はより高く評価されうる。
<<<情報更新部における文字列抽出処理と辞書比較処理の説明>>>
図42は、同じWEBページから時系列に収集された5つのテキストデータ(テキストデータ1〜5)から、文字列抽出処理710によって、それぞれ異なるタイミングで関連詞が抽出され、抽出された関連詞が、それぞれ対応する関連詞辞書(i−1)または関連詞辞書(i)に記憶され、その後、関連詞辞書(i)が更新された場合に、関連詞辞書(i−1)と関連詞辞書(i)とを対象として辞書比較処理720が行われ、これらの処理が、時間(T=t1)から(T=t5)まで周期的に行われている例を示している(時間(T=t6以降は省略した)。
最初に、時間(T=t1)において、この時点で所定のWEBページから収集されたテキストデータ1から、文字列抽出処理710aによって関連詞が抽出され、抽出された関連詞が関連詞辞書(i−1)に記憶される。この文字列抽出処理710aは、図40を参照して説明した文字列抽出処理710に対応する。
次の、時間(T=t2)において、T=t1の場合と同様に、同じWEBページから収集されたテキストデータ2から、文字列抽出処理710bによって関連詞が抽出され、抽出された関連詞が関連詞辞書(i)に記憶される。ここで、対象のWEBページにおいて話題や記載内容の変化があれば、抽出される関連詞もそれに応じて変化することになる。関連詞辞書(i)に関連詞が記憶されると(更新されると)、辞書比較処理720aによって関連詞辞書(i−1)と関連詞辞書(i)の比較が行われ、関連詞の出現状況に応じて、例えば、新たに出現した新着関連詞等が比較結果データ54に記憶される。また、比較処理が終わると、関連詞辞書(i)の内容が、関連詞辞書(i−1)にコピーされる。
この辞書比較処理720aは、図41を参照して説明した辞書比較処理720に対応する。なお、この図では、辞書比較処理720aが、T=t2のタイミングで行われているように記載されているが、関連詞辞書(i)が更新された後に行われるものである。
次の、時間(T=t3)において、T=t1、t2の場合と同様に、同じWEBページから収集されたテキストデータ3から、文字列抽出処理710cによって関連詞が抽出され、抽出された関連詞が関連詞辞書(i)に記憶される。ここで、対象のWEBページにおいて話題や記載内容の変化があれば、抽出される関連詞もそれに応じて変化することになる。関連詞辞書(i)に関連詞が記憶されると(更新されると)、辞書比較処理720bによって関連詞辞書(i−1)と関連詞辞書(i)の比較が行われ、関連詞の出現状況に応じて、例えば、新たに出現した新着関連詞等が比較結果データ54に記憶される。また、比較処理が終わると、関連詞辞書(i)の内容が、関連詞辞書(i−1)にコピー(待避)される。
以降、同様にこれらの文字列抽出処理(710d、710e)及び辞書比較処理(720c、720d)を繰り返して、比較結果データ54が、関連詞辞書(i−1)と関連詞辞書(i)を比較した結果得られた関連詞により、各タイミング(T=t2〜t5)ごとに更新される。比較結果としての関連詞を最新のものだけ記憶するか累積的に記憶するかは、上述したように、適用する応用システム等の仕様による。
図43は、同じWEBページから時系列に収集された5つのテキストデータ(テキストデータ1〜5)から、文字列抽出処理710によって、それぞれ異なるタイミングで関連詞が抽出され、抽出された関連詞が、それぞれ対応する関連詞辞書(i−1)、関連詞辞書(i)、または関連詞辞書(i+1)に記憶され、その後、関連詞辞書(i+1)が更新された場合に、関連詞辞書(i−1)、関連詞辞書(i)、関連詞辞書(i+1)とを対象として辞書比較処理720が行われ、これらの処理が、時間(T=t1)から(T=t5)まで周期的に行われている例を示している(時間(T=t6)以降は省略した)。図41との相違は、関連詞辞書がサイクリックに3つ用いられている点である。
最初に、時間(T=t1)において、この時点で所定のWEBページから収集されたテキストデータ1から、文字列抽出処理710fによって関連詞が抽出され、抽出された関連詞が関連詞辞書(i−1)に記憶される。
次の、時間(T=t2)において、T=t1の場合と同様に、同じWEBページから収集されたテキストデータ2から、文字列抽出処理710gによって関連詞が抽出され、抽出された関連詞が関連詞辞書(i)に記憶される。ここで、対象のWEBページにおいて話題や記載内容の変化があれば、抽出される関連詞もそれに応じて変化することになる。その後、時間(T=t3)において、T=t1、t2の場合と同様に、同じWEBページから収集されたテキストデータ3から、文字列抽出処理710hによって関連詞が抽出され、抽出された関連詞が関連詞辞書(i+1)に記憶される。ここで、対象のWEBページにおいて話題や記載内容の変化があれば、抽出される関連詞もそれに応じて変化することになる。
時間(T=t3)において、関連詞辞書(i+1)に関連詞が記憶されると(更新されると)、辞書比較処理720fによって3つの関連詞辞書(関連詞辞書(i−1)、関連詞辞書(i)、関連詞辞書(i+1))の比較が行われ、関連詞の出現状況に応じて、関連詞等が比較結果データ54に記憶される。この実施例では、3つの関連辞書に関する比較が行われるため、2つの関連詞辞書に関する変化に基づいて記憶する関連詞として、例えば、新たに出現した新着関連詞や消滅した消滅関連詞のほか、3つの関連詞辞書に亘る変化に基づいて記憶すべきと判定される関連詞もある。例えば、関連詞辞書(i)において一旦消滅して、関連詞辞書(i+1)において再度出現した復活関連詞などである。その他、関連詞辞書において関連詞の出現頻度を記憶していることが条件となるが、短期間のうちに(3つの関連詞辞書において)急激に出現頻度が高まった関連詞、(3つの関連詞辞書において)出現頻度が激減した関連詞、(3つの関連詞辞書において)出現頻度が再び高くなった関連詞、他の関連詞の出現頻度が変化するなかで一定範囲の出現頻度を維持する関連詞などを把握することも可能である。
辞書比較処理720fにおいて、比較処理が終わると、関連詞辞書(i)の内容が、関連詞辞書(i−1)にコピーされるとともに、関連詞辞書(i+1)の内容が、関連詞辞書(i)にコピーされる。なお、この図では、辞書比較処理720fが、T=t3のタイミングで行われているように記載されているが、関連詞辞書(i−1)、及び関連詞辞書(i)が更新された後に行われるものである。
次の、時間(T=t4)において、T=t1〜t3の場合と同様に、同じWEBページから収集されたテキストデータ4から、文字列抽出処理710iによって関連詞が抽出され、抽出された関連詞が関連詞辞書(i+1)に記憶される。ここで、対象のWEBページにおいて話題や記載内容の変化があれば、抽出される関連詞もそれに応じて変化することになる。関連詞辞書(i+1)に関連詞が記憶されると(更新されると)、辞書比較処理720gによって3つの関連詞辞書(関連詞辞書(i−1)、関連詞辞書(i)、関連詞辞書(i+1))の比較が行われ、関連詞の出現状況に応じて、関連詞等が比較結果データ54に記憶される。また、比較処理が終わると、関連詞辞書(i)の内容が、関連詞辞書(i−1)にコピーされるとともに、関連詞辞書(i+1)の内容が、関連詞辞書(i)にコピーされる。
以降、同様にこれらの文字列抽出処理710j及び辞書比較処理720hを繰り返して、比較結果データ54が、関連詞辞書(i−1)、関連詞辞書(i)、関連詞辞書(i+1)を比較した結果得られた関連詞により、各タイミング(T=t3〜t5)ごとに更新される。比較結果としての関連詞を最新のものだけ記憶するか累積的に記憶するかは、上述したように、適用する応用システム等の仕様による。
なお、図42の実施例では2つの関連詞辞書を、図43の実施例では3つの関連詞辞書を(サイクリックに)用いて比較結果データ54を記憶・更新しているが、これ以上の関連詞辞書を用いて辞書比較処理を行ってもよい。これによって、より多くのタイミングにおける関連詞の出現状況を把握することができ、この出現状況が所定条件を満たす場合に、当該関連詞を比較結果データ54に記憶することができる。
図44は、異なるWEBページ(異なる主題に関するWEBページ)から同タイミングで収集された3つのテキストデータ(テキストデータA〜C)から、文字列抽出処理710によって関連詞が抽出され、抽出された関連詞が、それぞれ対応する関連詞辞書A、関連詞辞書B、または関連詞辞書Cに記憶され、その後、これらの3つの関連詞辞書を対象として辞書比較処理720が行われ、これらの処理が、時間(T=t1)から(T=t3)まで周期的に行われている例を示している(時間(T=t4)以降は省略した)。
最初に、時間(T=t1)において、この時点で所定の異なるWEBページからそれぞれ収集された3つのテキストデータ(テキストデータA〜C)から、文字列抽出処理710k、文字列抽出処理710m、文字列抽出処理710nによって関連詞が抽出され、抽出された関連詞がそれぞれ、関連詞辞書A、関連詞辞書B、関連詞辞書Cに記憶される。
その後、辞書比較処理720kによって3つの関連詞辞書(関連詞辞書A、関連詞辞書B、関連詞辞書C)の比較が行われ、関連詞の出現状況に応じて、関連詞等が比較結果データ54に記憶される。この実施例では、例えば、3つの関連詞辞書に共通して存在する関連詞が比較結果データ54に記憶される。この場合、テキストデータA〜Cは、それぞれ異なる主題に関するWEBページから収集されたテキストデータであり、異なる関連詞よりも、3つの関連詞辞書に共通する関連詞(共通関連詞)に着目したほうが、共通の話題を発見することが可能となり、その点で意味のある場合が多い。
また、関連詞辞書Aにおいて共通関連詞とともに記憶されている他の関連詞(共起関連詞)、関連詞辞書Bにおいて共通関連詞とともに記憶されている他の関連詞(共起関連詞)、及び関連詞辞書Cにおいて共通関連詞とともに記憶されている他の関連詞(共起関連詞)との間に共通性があるか否かをさらに比較して、当該共通性に関する情報を比較結果データ54に記憶することができる。
さらに、上記のような共起関連詞を比較する場合に、それらの共起関連詞に関連付けられたランクを考慮して共通性に関する情報を判定してもよい。例えば、ランクの高い(それらの関連詞で示される話題にとって重要性が高い)共起関連詞が、3つの関連詞辞書において共通する場合、共通関連詞の共通性はより高く評価されうる。
このような、時間(T=t1)における3つの関連詞辞書の比較を、時間(T=t2)において繰り返し行うことができる。このような処理を行うことにより、比較結果データ54を時系列に更新することができる。
時間(T=t2)において、時間(T=t1)と同様に、この時点で所定の異なるWEBページからそれぞれ収集された3つのテキストデータ(テキストデータA’〜C’)から、文字列抽出処理710k’、文字列抽出処理710m’、文字列抽出処理710n’によって関連詞が抽出され、抽出された関連詞がそれぞれ、関連詞辞書A’、関連詞辞書B’、関連詞辞書C’に記憶される。この実施例では、テキストデータA’は、テキストデータAと同じWEBページ、または同じ主題のWEBページを想定している。同様に、テキストデータB’は、テキストデータBと同じWEBページ、または同じ主題のWEBページであり、テキストデータC’は、テキストデータCと同じWEBページ、または同じ主題のWEBページである。
その後、辞書比較処理720k’によって3つの関連詞辞書(関連詞辞書A’、関連詞辞書B’、関連詞辞書C’)の比較が行われ、関連詞の出現状況に応じて、関連詞等が比較結果データ54に記憶される。この実施例では、例えば、3つの関連詞辞書に共通して存在する関連詞が比較結果データ54に記憶される。
さらに、時間(T=t3)において、時間(T=t1、t2)と同様に、この時点で所定の異なるWEBページからそれぞれ収集された3つのテキストデータ(テキストデータA’’〜C’’)から、文字列抽出処理710k’’、文字列抽出処理710m’’、文字列抽出処理710n’’によって関連詞が抽出され、抽出された関連詞がそれぞれ、関連詞辞書A’’、関連詞辞書B’’、関連詞辞書C’’に記憶される。この実施例では、テキストデータA’’は、テキストデータA、テキストデータA’と同じWEBページ、または同じ主題のWEBページを想定している。同様に、テキストデータB’’は、テキストデータB、テキストデータB’と同じWEBページ、または同じ主題のWEBページであり、テキストデータC’’は、テキストデータC、テキストデータC’と同じWEBページ、または同じ主題のWEBページである。
その後、辞書比較処理720k’’によって3つの関連詞辞書(関連詞辞書A’’、関連詞辞書B’’、関連詞辞書C’’)の比較が行われ、関連詞の出現状況に応じて、関連詞等が比較結果データ54に記憶される。この実施例では、例えば、3つの関連詞辞書に共通して存在する関連詞が比較結果データ54に記憶される。
なお、図44の実施例では、同じタイミングで、異なるWEBページ(異なる主題に関するWEBページ)から収集された3つのテキストデータに基づいて関連詞の抽出を行ったが、2つのテキストデータからそれぞれ関連詞の抽出を行ってもよいし、4つ以上のテキストデータからそれぞれ関連詞の抽出を行ってもよい。
<<情報更新部における文字列抽出処理と辞書比較処理の詳細な説明>>
次に、図45を参照して、図43に示した文字列抽出処理710と辞書比較処理720の例をより詳細に説明する。図45は、3つのテキストデータ(テキストデータ1〜3)に対してそれぞれ文字列抽出処理(710f、710g、710h)が行われ、対応する関連詞辞書(i−1)、関連詞辞書(i)、関連詞辞書(i+1)に対して、辞書比較処理720fが行われるところを示している。
この実施例では、3つのテキストデータは、共通の主題「株の取引」に関連する同じWEBページから収集されたものである。例えば、WEB検索により、検索キーワード「株の取引」を入力し、その結果得られた3つのWEBページを1つのテキストデータとして扱う。図45では、テキストデータ1は、時間(T=t1)における、第1のWEBページから得られたテキストデータ1−1、第2のWEBページから得られたテキストデータ1−2、第3のWEBページから得られたテキストデータ1−3を含む。同様に、テキストデータ2は、時間(T=t2)における、第1のWEBページから得られたテキストデータ2−1、第2のWEBページから得られたテキストデータ2−2、第3のWEBページから得られたテキストデータ2−3を含み、テキストデータ3は、時間(T=t3)における、第1のWEBページから得られたテキストデータ3−1、第2のWEBページから得られたテキストデータ3−2、第3のWEBページから得られたテキストデータ3−3を含む。ここで、第1のWEBページのURLはすべて同じであり、第2のWEBページのURLはすべて同じであり、第3のWEBページのURLはすべて同じである。
ここで、1つのテキストデータに含まれる3つのWEBページに対応するテキストデータ(テキストデータ1−1、テキストデータ1−2、テキストデータ1−3)はそれぞれ、図26に示すような質問文に対応付けて考えることができる。例えば、テキストデータ1−1はQ1の質問であり、テキストデータ1−2はQ8の質問であり、テキストデータ1−3はQ13の質問である。
文字列抽出処理710fは、時間(T=t1)において、テキストデータ1から所定の方法により関連詞を抽出し、関連詞辞書(i−1)に記憶する。この実施例では、関連詞が4つ抽出され、それぞれをランクの順に配列して、1レコードとし関連詞辞書(i−1)に格納する。関連詞のランク付けは、例えば、出現頻度等に基づいて決定することができる。抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「○社」、「△銀行」、「申込みは」、「口座」である。形態素解析等では、意味を持つ最小の単位(形態素)に分解して文字列を把握するが、他の方法では、形態素より大きな単位(例えば、文や文の一部)が関連詞として抽出されうる。上述の「申込みは」といった、名詞と助詞からなる文字列も関連詞として抽出されている。
また、この実施例では、それぞれのテキストデータに関して4つの関連詞が抽出されるようになっているが、これは説明の便宜のためのものである(以降の実施例も同様である)。実際には、関連詞がいくつ抽出されてもよく、テキストデータによってその数が異なる。文字列抽出処理において、一定の判定基準において閾値を超えた場合に文字列が関連詞として決定される場合は、その判定に応じて抽出される関連詞の数が変わってくる。また、抽出する関連詞の数を固定数とすることもできるし、テキストデータの文字数等に応じて設定するようにもできる。
文字列抽出処理710gは、時間(T=t2)において、テキストデータ2から所定の方法により関連詞を抽出し、関連詞辞書(i)に記憶する。この実施例では、関連詞が4つ抽出され、それぞれをランクの順に配列して、1レコードとし関連詞辞書(i)に格納する。関連詞のランク付けは、例えば、出現頻度等に基づいて決定することができる。抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「税率」、「○社」、「△銀行」、「申込みは」である。
同様に、文字列抽出処理710hは、時間(T=t3)において、テキストデータ3から所定の方法により関連詞を抽出し、関連詞辞書(i+1)に記憶する。この実施例では、関連詞が4つ抽出され、それぞれをランクの順に配列して、1レコードとし関連詞辞書(i+1)に格納する。関連詞のランク付けは、例えば、出現頻度等に基づいて決定することができる。抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「○社」、「口座」、「△銀行」、「申込みは」である。
次に、関連詞辞書(i−1)、関連詞辞書(i)、関連詞辞書(i+1)に対して、辞書比較処理720fが行われる。この実施例では、辞書比較処理720fは、新たに出現した関連詞(新着関連詞)、消滅した関連詞(消滅関連詞)、及び再度出現した関連詞(復活関連詞)を検出し、これらを比較結果データ54に記憶するものとする。
例えば、関連詞辞書(i−1)と関連詞辞書(i)を比較すると、関連詞辞書(i)で、関連詞「税率」が新たに出現しており、さらに、関連詞「口座」が消滅している。そこで、比較結果データ54には、図46のレコード54aに示すように、関連詞「税率」「口座」が記憶される。また、比較結果データ54には、これらの関連詞とともに、出現状況を表すデータ(この実施例では、新たに出現した関連詞の場合「新着」、消滅した関連詞の場合「消滅」)が同じレコードに記憶される。さらに、この実施例では、当該出現状況となったタイミングを示すために、関連詞辞書を識別する「話題名」のデータが記憶される。各関連詞辞書は、話題名や日付けと対応付けられ、関連詞辞書(i)は、ここでは「2013年10月10日、t2における「株の取引」の話題」といった話題名に対応付けられている。
次に、関連詞辞書(i)と関連詞辞書(i+1)を比較すると、関連詞辞書(i+1)で、関連詞「税率」が消滅しており、さらに、関連詞「口座」が復活している(関連詞辞書(i−1)に存在し、関連詞辞書(i)で消滅していた)。そこで、比較結果データ54には、図46のレコード54bに示すように、関連詞「口座」「税率」が記憶される。また、比較結果データ54には、これらの関連詞とともに、出現状況を表すデータ(この実施例では、再度出現した(復活した)関連詞の場合「復活」、消滅した関連詞の場合「消滅」)が同じレコードに記憶される。さらに、この実施例では、当該出現状況となったタイミングを示すために、関連詞辞書を識別する「話題名」のデータが記憶される。各関連詞辞書は、話題名や日付けと対応付けられ、関連詞辞書(i+1)は、ここでは「2013年10月10日、t3における「株の取引」の話題」といった話題名に対応付けられている。
次に、図47を参照して、図44に示した文字列抽出処理710と辞書比較処理720の例をより詳細に説明する。図47は、時間(T=t1)において、3つのテキストデータ(テキストデータA〜C)に対してそれぞれ文字列抽出処理(710k、710m、710n)が行われ、対応する関連詞辞書A、関連詞辞書B、関連詞辞書Cに対して、辞書比較処理720kが行われるところを示している。
この実施例では、3つのテキストデータは、同じ時間(T=t1)において、異なる主題に関連するWEBページから収集されたものである。すなわち、テキストデータAは、「A社の技術」を主題としたWEBページに基づくものであり、テキストデータBは、「B社の技術」を主題としたWEBページに基づくものであり、テキストデータCは、「AI(人工知能)関連技術」を主題としたWEBページに基づくものである。
例えば、テキストデータAに関しては、WEB検索により、検索キーワード「A社の技術」を入力し、その結果得られた3つのWEBページを1つのテキストデータとして扱う。同様に、テキストデータBに関しては、WEB検索により、検索キーワード「B社の技術」を入力し、その結果得られた3つのWEBページを1つのテキストデータとして扱い、テキストデータCに関しては、WEB検索により、検索キーワード「AI(人工知能)関連技術」を入力し、その結果得られた3つのWEBページを1つのテキストデータとして扱う。
図47では、テキストデータ1は、主題「A社の技術」に関連した、第1のWEBページから得られたテキストデータA−1、第2のWEBページから得られたテキストデータA−2、第3のWEBページから得られたテキストデータA−3を含む。同様に、テキストデータ2は、主題「B社の技術」に関連した、第1のWEBページから得られたテキストデータB−1、第2のWEBページから得られたテキストデータB−2、第3のWEBページから得られたテキストデータB−3を含み、テキストデータ3は、主題「AI(人工知能)関連技術」に関連した、第1のWEBページから得られたテキストデータC−1、第2のWEBページから得られたテキストデータC−2、第3のWEBページから得られたテキストデータC−3を含む。
文字列抽出処理710kは、テキストデータAから所定の方法により関連詞を抽出し、関連詞辞書Aに記憶する。この実施例では、関連詞が4つ抽出され、それぞれをランクの順に配列して、1レコードとし関連詞辞書Aに格納する。関連詞のランク付けは、例えば、出現頻度等に基づいて決定することができる。抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「A社」、「音声」、「音声認識」、「営業」となっている。
文字列抽出処理710mは、テキストデータBから所定の方法により関連詞を抽出し、関連詞辞書Bに記憶する。この実施例では、関連詞が4つ抽出され、それぞれをランクの順に配列して、1レコードとし関連詞辞書Bに格納する。関連詞のランク付けは、例えば、出現頻度等に基づいて決定することができる。抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「音声」、「研究開発」、「B社の業績」、「音声認識」となっている。
同様に、文字列抽出処理710nは、テキストデータCから所定の方法により関連詞を抽出し、関連詞辞書Cに記憶する。この実施例では、関連詞が4つ抽出され、それぞれをランクの順に配列して、1レコードとし関連詞辞書Cに格納する。関連詞のランク付けは、例えば、出現頻度等に基づいて決定することができる。抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「AI」、「ロボット」、「音声認識」、「エージェント」となっている。
次に、関連詞辞書A、関連詞辞書B、関連詞辞書Cに対して、辞書比較処理720kが行われる。この実施例では、辞書比較処理720kは、3つの辞書に共通する関連詞(共通関連詞)を検出し、これらを比較結果データ54に記憶するものとする。
関連詞辞書A、関連詞辞書B、関連詞辞書Cを比較すると、それぞれ上述した関連詞を記憶しており、共通関連詞として「音声認識」が存在することが認められる。そこで、この「音声認識」を比較結果データ54に記憶する。
このような共通関連詞を把握することにより、企業間関連情報の分析を効果的に実現することができる。例えば、A社の技術に関する記述で多く用いられている関連詞をテキストデータAに基づく文字列抽出処理710kにより抽出し、B社の技術に関する記述で多く用いられている関連詞をテキストデータBに基づく文字列抽出処理710mにより抽出し、AI(人工知能)関連技術に関する記述で多く用いられている関連詞をテキストデータCに基づく文字列抽出処理710nにより抽出することによって、A社とB社とが、どのようなAI関連技術で共通性を有している可能性があるかを、客観的に把握することができる。
なお、図47に示す実施例では、同じ時間(T=t1)において、異なる主題に関連するWEBページから収集されたテキストデータに基づく関連詞辞書を比較するものであり、WEBページは、それぞれは意図的なWEB検索により収集されたものであるが、まったく偶然に集められたWEBページからそれぞれ得られた関連詞辞書を比較した結果、偶然にも共通の関連詞が見いだされるといったケースも考えられる。
次に、図48を参照して、情報更新部46における文字列抽出処理710と辞書比較処理720の他の実施例を説明する。図48は、図45に示した文字列抽出処理710と辞書比較処理720の変形例を示すものである。図48には、2つのテキストデータ(テキストデータ1、テキストデータ2)に対してそれぞれ文字列抽出処理710が行われ、対応する関連詞辞書(i−1)、関連詞辞書(i)に対して、辞書比較処理720が行われるところを示している。図45に示す、テキストデータ3に関する処理については表示を省略した。
この実施例では、2つのテキストデータは、共通の主題「株の取引」に関連する同じWEBページから収集されたものである。例えば、WEB検索により、検索キーワード「株の取引」を入力し、その結果得られた3つのWEBページを1つのテキストデータとするが、関連詞は、WEBページの単位ごとに抽出する。これによって、関連詞が、WEBページごとに管理されるが、3つのWEBページに基づくテキストデータを3つ用意し、そのテキストデータごとに関連詞が抽出されるようにしてもよい。ここでは、関連詞が、複数のテキストデータから抽出されていることが重要である。
図48では、テキストデータ1は、時間(T=t1)における、第1のWEBページから得られたテキストデータ1−1、第2のWEBページから得られたテキストデータ1−2、第3のWEBページから得られたテキストデータ1−3を含む。同様に、テキストデータ2は、時間(T=t2)における、第1のWEBページから得られたテキストデータ2−1、第2のWEBページから得られたテキストデータ2−2、第3のWEBページから得られたテキストデータ2−3を含む。ここで、第1のWEBページのURLはすべて同じであり、第2のWEBページのURLはすべて同じであり、第3のWEBページのURLはすべて同じである。
文字列抽出処理710は、時間(T=t1)において、テキストデータ1から所定の方法により関連詞を抽出する。これは、上述のように、テキストデータ1に含まれるテキストデータごとに行われ、例えば、テキストデータ1−1から所定の方法により関連詞が抽出され、テキストデータ1−2から所定の方法により関連詞が抽出され、テキストデータ1−3から所定の方法により関連詞が抽出される。この実施例では、それぞれについて関連詞が4つ抽出され、各関連詞をランクの順に配列する。関連詞のランク付けは、例えば、出現頻度等に基づいて決定することができる。テキストデータ1−1に関し、抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「○社」、「口座」、「申込手続」、「△銀行」である。テキストデータ1−2に関し、抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「口座」、「△銀行」、「申込みは」、「◇社」である。テキストデータ1−3に関し、抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「株の購入」、「△銀行」、「指し値」、「○社」である。
次に、文字列抽出処理710は、このように抽出された関連詞のそれぞれについて、近傍関連詞を求め、それらを関連詞辞書(i−1)に記憶する。近傍関連詞は、ある関連詞に着目した場合に、その関連詞とともに出現する(共起する)関連詞である。各テキストデータ(1−1、1−2、1−3)において、そのテキストデータに対応する話題に含まれている関連詞の集合は関連詞集合であり、ある関連詞に着目した場合、その関連詞を含む関連詞集合を、関連詞の近傍と称し、関連詞の近傍の集合を、関連詞の近傍系と称する。関連詞辞書(i−1)には、関連詞ごとに、関連詞の近傍系が記憶される。
例えば、関連詞「○社」に着目すると、この関連詞は、テキストデータ1−1について抽出されており、関連詞の近傍は{○社、口座、申請手続、△銀行}である。同様に、この関連詞は、テキストデータ1−3について抽出されており、関連詞の近傍は{株の購入、△銀行、指し値、○社}である。これらから、関連詞「○社」について、関連詞の近傍系は、{○社、口座、株の購入、△銀行、申請手続、指し値}となる(テキストデータ1−1についての関連詞の近傍と、テキストデータ1−3についての関連詞の近傍とで重複する関連詞「△銀行」は1つだけ含められる)。
こうして求められた関連詞の近傍系が、それぞれの関連詞「○社」、「口座」、「△銀行」、「申請手続」、「株の購入」、「申込みは」、「指し値」、「◇社」について、関連詞辞書(i−1)に記憶される。各関連詞については、関連詞の近傍系(近傍関連詞1〜7)が記憶されるが、これらの順序は、文字列抽出処理710により行われたランク付けや、共起性の高さ等を考慮して定められる。
さらに、文字列抽出処理710は同様に、時間(T=t2)において、テキストデータ2から所定の方法により関連詞を抽出する。これは、上述のように、テキストデータ2に含まれるテキストデータごとに行われ、例えば、テキストデータ2−1から所定の方法により関連詞が抽出され、テキストデータ2−2から所定の方法により関連詞が抽出され、テキストデータ2−3から所定の方法により関連詞が抽出される。この実施例では、それぞれについて関連詞が4つ抽出され、各関連詞をランクの順に配列する。関連詞のランク付けは、例えば、出現頻度等に基づいて決定することができる。テキストデータ2−1に関し、抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「○社」、「口座」、「新しい制度」、「申請手続」である。テキストデータ2−2に関し、抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「口座」、「△銀行」、「◇社」、「株の購入」である。テキストデータ2−3に関し、抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「株の購入」、「△銀行」、「○社」、「新しい制度」である。
次に、文字列抽出処理710は、このように抽出された関連詞のそれぞれについて、近傍関連詞を求め、それらを関連詞辞書(i)に記憶する。例えば、関連詞「○社」に着目すると、この関連詞は、テキストデータ2−1について抽出されており、関連詞の近傍は{○社、口座、新しい制度、申請手続}である。同様に、この関連詞は、テキストデータ2−3について抽出されており、関連詞の近傍は{株の購入、△銀行、○社、新しい制度}である。これらから、関連詞「○社」について、関連詞の近傍系は、{○社、口座、株の購入、新しい制度、申請手続、△銀行}となる(テキストデータ2−1についての関連詞の近傍と、テキストデータ2−3についての関連詞の近傍とで重複する関連詞「新しい制度」は1つだけ含められる)。
こうして求められた関連詞の近傍系が、それぞれの関連詞「○社」、「口座」、「△銀行」、「申請手続」、「株の購入」、「新しい制度」、「◇社」について、関連詞辞書(i)に記憶される。各関連詞については、関連詞の近傍系(近傍関連詞1〜6)が記憶されるが、これらの順序は、文字列抽出処理710により行われたランク付けや、共起性の高さ等を考慮して定められる。
次に、辞書比較処理720により、関連詞辞書(i−1)と関連詞辞書(i)が比較される。その結果、関連詞「指し値」、「申込みは」は、時間(T=t2)で消滅した消滅関連詞であり(図48の符号753参照)、関連詞「新しい制度」は、時間(T=t2)で新たに出現する新着関連詞であり(図48の符号752参照)、これらの関連詞は、関連詞辞書(i−1)と関連詞辞書(i)の変化分として比較結果データ54に記憶される。
さらに、辞書比較処理720は、関連詞「○社」、「口座」、「△銀行」、「申請手続」、「株の購入」、「◇社」については、時間(T=t1)及び時間(T=t2)の両方で存在する関連詞であるが、各関連詞の近傍関連詞についても比較を行う。そうすると、近傍関連詞(または近傍関連詞の順序)が変化していることが分かる(図48の符号751参照)。このことは、話題における当該関連詞の関係性や位置づけが変化していることを示している。本発明に係る情報検索システム100が、こうした近傍関連詞の変化についても可視化しようとする場合は、これらの情報についても比較結果データ54に記憶する。
次に、図49を参照して、情報更新部46における文字列抽出処理710と辞書比較処理720の他の実施例を説明する。図49は、図47に示した文字列抽出処理710と辞書比較処理720の変形例を示すものである。図49には、3つのテキストデータ(テキストデータA〜C)に対してそれぞれ文字列抽出処理710が行われ、対応する関連詞辞書A、関連詞辞書B、関連詞辞書Cに対して、辞書比較処理720が行われるところを示している。
この実施例では、3つのテキストデータは、同じ時間(T=t1)において、異なる主題に関連する同じWEBページから収集されたものである。すなわち、テキストデータAは、「A社の技術」を主題としたWEBページに基づくものであり、テキストデータBは、「B社の技術」を主題としたWEBページに基づくものであり、テキストデータCは、「AI(人工知能)関連技術」を主題としたWEBページに基づくものである。
例えば、テキストデータAに関しては、WEB検索により、検索キーワード「A社の技術」を入力し、その結果得られた2つのWEBページから2つのテキストデータ(テキストデータA−1、テキストデータA−2)を取得し、これらを文字列抽出処理710においては個別に扱う。同様に、テキストデータBに関しては、WEB検索により、検索キーワード「B社の技術」を入力し、その結果得られた2つのWEBページから2つのテキストデータ(テキストデータB−1、テキストデータB−2)を取得し、これらを文字列抽出処理710においては個別に扱う。同様に、テキストデータCに関しては、WEB検索により、検索キーワード「AI(人工知能)関連技術」を入力し、その結果得られた2つのWEBページから2つのテキストデータ(テキストデータC−1、テキストデータC−2)を取得し、これらを文字列抽出処理710においては個別に扱う。図48では、テキストデータA、テキストデータB、テキストデータCにそれぞれ3つのテキストデータが含まれていたが、この実施例では、それぞれ2つのテキストデータを含むものとする。
文字列抽出処理710は、時間(T=t1)において、テキストデータAから所定の方法により関連詞を抽出する。これは、上述のように、テキストデータAに含まれるテキストデータごとに行われ、例えば、テキストデータA−1から所定の方法により関連詞が抽出され、テキストデータA−2から所定の方法により関連詞が抽出される。この実施例では、それぞれについて関連詞が4つ抽出され、各関連詞をランクの順に配列する。関連詞のランク付けは、例えば、出現頻度等に基づいて決定することができる。テキストデータA−1に関し、抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「A社」、「音声」、「音声認識」、「ロボット」である。テキストデータA−2に関し、抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「圧縮技術」、「音声認識」、「営業」、「音声」である。
次に、文字列抽出処理710は、このように抽出された関連詞のそれぞれについて、近傍関連詞を求め、それらを関連詞辞書Aに記憶する。近傍関連詞は、ある関連詞に着目した場合に、その関連詞とともに出現する(共起する)関連詞である。各テキストデータ(A−1、A−2)において、そのテキストデータに対応する話題に含まれている関連詞の集合は関連詞集合であり、ある関連詞に着目した場合、その関連詞を含む関連詞集合を、関連詞の近傍と称し、関連詞の近傍の集合を、関連詞の近傍系と称する。関連詞辞書Aには、関連詞ごとに、関連詞の近傍系が記憶される。
例えば、関連詞「音声認識」に着目すると、この関連詞は、テキストデータA−1について抽出されており、関連詞の近傍は{A社、音声、音声認識、ロボット}である。同様に、この関連詞は、テキストデータA−2について抽出されており、関連詞の近傍は{圧縮技術、音声認識、営業、音声}である。これらから、関連詞「音声認識」について、関連詞の近傍系は、{音声認識、A社、圧縮技術、音声、ロボット、営業}となる(テキストデータA−1についての関連詞の近傍と、テキストデータA−2についての関連詞の近傍とで重複する関連詞「音声」は1つだけ含められる)。
こうして求められた関連詞の近傍系が、それぞれの関連詞「A社」、「音声認識」、「音声」、「圧縮技術」、「営業」、「ロボット」について、関連詞辞書Aに記憶される。各関連詞については、関連詞の近傍系(近傍関連詞1〜5)が記憶されるが、これらの順序は、文字列抽出処理710により行われたランク付けや、共起性の高さ等を考慮して定められる。
さらに、文字列抽出処理710は、時間(T=t1)において、テキストデータBから所定の方法により関連詞を抽出する。これは、上述のように、テキストデータBに含まれるテキストデータごとに行われ、例えば、テキストデータB−1から所定の方法により関連詞が抽出され、テキストデータB−2から所定の方法により関連詞が抽出される。この実施例では、それぞれについて関連詞が4つ抽出され、各関連詞をランクの順に配列する。関連詞のランク付けは、例えば、出現頻度等に基づいて決定することができる。テキストデータB−1に関し、抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「音声」、「B社の業績」、「音声認識」、「研究開発」である。テキストデータB−2に関し、抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「研究開発」、「音声」、「音声認識」、「認証技術」である。
次に、文字列抽出処理710は、このように抽出された関連詞のそれぞれについて、近傍関連詞を求め、それらを関連詞辞書Bに記憶する。例えば、関連詞「音声」に着目すると、この関連詞は、テキストデータB−1について抽出されており、関連詞の近傍は{音声、B社の業績、音声認識、研究開発}である。同様に、この関連詞は、テキストデータB−2について抽出されており、関連詞の近傍は{研究開発、音声、音声認識、認証技術}である。これらから、関連詞「音声」について、関連詞の近傍系は、{音声、研究開発、B社の業績、音声認識、認証技術}となる(テキストデータB−1についての関連詞の近傍と、テキストデータB−2についての関連詞の近傍とで重複する関連詞「音声認識」、「研究開発」はそれぞれ1つだけ含められる)。
こうして求められた関連詞の近傍系が、それぞれの関連詞「音声」、「研究開発」、「B社の業績」、「音声認識」、「認証技術」について、関連詞辞書Bに記憶される。各関連詞については、関連詞の近傍系(近傍関連詞1〜4)が記憶されるが、これらの順序は、文字列抽出処理710により行われたランク付けや、共起性の高さ等を考慮して定められる。
さらに、文字列抽出処理710は、時間(T=t1)において、テキストデータCから所定の方法により関連詞を抽出する。これは、上述のように、テキストデータCに含まれるテキストデータごとに行われ、例えば、テキストデータC−1から所定の方法により関連詞が抽出され、テキストデータC−2から所定の方法により関連詞が抽出される。この実施例では、それぞれについて関連詞が4つ抽出され、各関連詞をランクの順に配列する。関連詞のランク付けは、例えば、出現頻度等に基づいて決定することができる。テキストデータC−1に関し、抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「AI」、「エージェント」、「ロボット」、「音声認識」である。テキストデータC−2に関し、抽出された4つの関連詞(関連詞1〜関連詞4)は、ランク順に「ロボット」、「音声認識」、「AI」、「学習機能」である。
次に、文字列抽出処理710は、このように抽出された関連詞のそれぞれについて、近傍関連詞を求め、それらを関連詞辞書Cに記憶する。例えば、関連詞「AI」に着目すると、この関連詞は、テキストデータC−1について抽出されており、関連詞の近傍は{AI、エージェント、ロボット、音声認識}である。同様に、この関連詞は、テキストデータC−2について抽出されており、関連詞の近傍は{ロボット、音声認識、AI、学習機能}である。これらから、関連詞「AI」について、関連詞の近傍系は、{AI、ロボット、エージェント、音声認識、学習機能}となる(テキストデータC−1についての関連詞の近傍と、テキストデータC−2についての関連詞の近傍とで重複する関連詞「ロボット」、「音声認識」はそれぞれ1つだけ含められる)。
こうして求められた関連詞の近傍系が、それぞれの関連詞「AI」、「ロボット」、「音声認識」、「エージェント」、「学習機能」について、関連詞辞書Cに記憶される。各関連詞については、関連詞の近傍系(近傍関連詞1〜4)が記憶されるが、これらの順序は、文字列抽出処理710により行われたランク付けや、共起性の高さ等を考慮して定められる。
次に、辞書比較処理720により、関連詞辞書A〜Cが比較される。その結果、関連詞「音声認識」は、時間(T=t1)において、3つの関連詞辞書に共通する関連詞(共通関連詞)であり(図49の符号755、755’、755’’参照)、これが比較結果データ54に記憶される。このような共通関連詞を把握することにより、異なる主題のなかから共通する話題を発見することができ、この実施例のような主題の設定を行えば、企業間関連情報の分析にもつながる。
また、辞書比較処理720は、この共通関連詞について、各関連詞の近傍関連詞についても比較を行う。そうすると、近傍関連詞の共通性や近傍関連詞の順序の共通性等を把握することができ、これによって、共通関連詞の間の共通性のレベルを判定することができる。
なお、関連詞辞書Aと関連詞辞書Bにおける共通関連詞として「音声」が把握されうるが(図49の符号756、756’参照)、このような一部の関連詞辞書における共通関連詞も重要な情報となる場合があるため、比較結果データ54に記憶することができる。
<<<文脈学習機能とサービスIDの切り換え>>>
本発明の一実施形態に係る情報検索システム100では、会話制御端末装置2’’と、この装置を利用するユーザとの間の対話において、上述したように、入力指標や進捗指標等を学習して、その入力指標や進捗指標等に応じた対話を実現することができる。このような機能が、文脈学習機能である。入力指標は、これまでにユーザがどのような入力をしてきたのか、すなわち、ユーザの入力の履歴を示す情報である。また、進捗指標は、これまでにユーザに対してどのような話題を提供してきたのか、すなわち、ユーザに提供した話題の履歴を示す情報である。
さらに、情報検索システム100では、話題提供サーバ4’の情報更新部46で関連詞の出現に関する履歴等をとらえることにより、関連詞が所属する話題名を明確にすることができるほか、いつもの関連詞と(新たに出現した)新着関連詞とを区別して扱うことができたり、関連詞辞書の比較処理によって、話題の類似性や相違性についての判断をしたりすることができる、関連詞学習機能を実現できる。こうした関連詞学習機能により、会話制御端末装置2’’のユーザは、多くの話題名に関わる入力タイプを扱うことができるようになり、ユーザの入力識別手段が多様化できる。
シナリオデータは、ユーザの会話制御端末装置2’’における入力状況から判定される入力タイプに基づいてサービスIDを切り換えるよう制御する。例えば、情報検索システム100における話題提供サーバ4’の文解析部43、嗜好解析部44、及び話題解析部45によって提供される関連詞辞書50や関連詞・共起語一覧表示画面650等を提供する機能に対応するサービスIDと、話題提供サーバ4’の情報更新部46によって提供される関連詞辞書50や比較結果データ54の表示等を提供する機能に対応するサービスIDを、シナリオデータによって自動的に切り換える。
対応するシナリオデータのステートメントは、例えば、所定の入力タイプが入力された場合のアクションとして、対応するサービスIDのサービスに遷移させるように設定される。これを、図14に示すようなシナリオデータで表すと、以下のようなステートメントとなる。
<sto:$IDN$:<sta:$num$>:$input$>
ここで、「sto」は、状態を遷移させる記述(shift to)であり、「$IDN$」は遷移先のサービスの識別番号であり、「<sta:$num$>」は、その遷移先のサービスにおける状態番号であり、「<$input$>」は、ユーザの入力文である。
<<<本発明の一実施形態に係る話題提供サーバのハードウェア構成の説明>>>
次に、図50を参照して、本発明の一実施形態に係る話題提供サーバ4’を構成するコンピュータのハードウェア構成の例について説明する。ただし、図50に示す話題提供サーバ4’の構成は、その代表的な構成を例示したにすぎない。
話題提供サーバ4’は、CPU(Central Processing Unit)801、RAM(Random Access Memory)802、ROM(Read Only Memory)803、ネットワークインタフェース804、オーディオ制御部805、マイクロフォン806、スピーカ807、ディスプレイコントローラ808、ディスプレイ809、入力機器インタフェース810、キーボード811、マウス812、外部記憶装置813、外部記録媒体インタフェース814、及びこれらの構成要素を互いに接続するバス815を含んでいる。
CPU801は、話題提供サーバ4’の各構成要素の動作を制御し、OSの制御下で、本発明に係る文解析部43、嗜好解析部44、話題解析部45、情報更新部46における処理等の実行を制御する。
RAM802には、CPU801で実行される各処理を実行するためのプログラムや、それらのプログラムが実行中に使用するデータが一時的に格納される。また、上述のように、関連詞辞書50や比較結果データ54等も記憶されうる。ROM803には、話題提供サーバ4’の起動時に実行されるプログラム等が格納される。
ネットワークインタフェース804は、ネットワーク900に接続するためのインタフェースである。ネットワーク900は、例えば、図20に示す会話制御端末装置2’’やクローラー730が動作するコンピュータとの間のネットワークや、インターネットのようなネットワークである。
オーディオ制御部805は、マイクロフォン806とスピーカ807を制御して音声の入出力を制御する。ディスプレイコントローラ808は、CPU801が発行する描画命令を実際に処理するための専用コントローラである。ディスプレイ809は、例えば、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)で構成される表示装置である。
入力機器インタフェース810は、キーボード811やマウス812から入力された信号を受信して、その信号パターンに応じて所定の指令をCPU801に送信する。
外部記憶装置813は、例えば、ハードディスクや半導体メモリのような記憶装置であり、この装置内には上述したプログラムやデータが記録され、実行時に、必要に応じてそこからRAM802にロードされる。例えば、また、上述のように、関連詞辞書50や比較結果データ54等も記憶されうる。
外部記録媒体インタフェース814は、外部記録媒体910にアクセスして、そこに記録されているデータを読み取る。外部記録媒体910は、例えば、可搬型のフラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)などである。CPU801で実行され、本発明の各機能を実現するためのプログラムは、この外部記録媒体インタフェース814を介して外部記録媒体910から提供されうる。また、本発明の各機能を実現するためのプログラムの他の流通形態としては、ネットワーク上の所定のサーバから、ネットワーク900及びネットワークインタフェース804を介して外部記憶装置813やRAM802に格納されるというルート等も考えられる。
本発明の一実施形態に係る話題提供サーバ4’のハードウェア構成について、一例を説明したが、本発明の情報検索システム100に含まれる会話制御端末装置2’’やクローラー730が動作するコンピュータのハードウェア構成も基本的に、図50に示す構成と同様である。ただし、ここで、話題提供サーバ4’やクローラー730が動作するコンピュータについては、オーディオ制御部805、マイクロフォン806、スピーカ807、ディスプレイコントローラ808、ディスプレイ809、入力機器インタフェース810、キーボード811、及びマウス812は必須の構成要素ではない。
また、ここまでに説明した情報検索システム100は、会話制御端末装置2’’で動作するTopiclet20と、話題提供サーバ4’との間で、シナリオデータ28(または、シナリオデータ55)による制御に応じてデータの送受信を行うことにより、会話制御端末装置2’’のディスプレイに関連詞等の情報を表示する構成である。また、Topiclet20を、例えば、所定のタイミングで会話制御端末装置2’’にダウンロードされ起動されるようにし、そのTopiclet20がインターネット等のネットワークを介して話題提供サーバ4’と通信を行う、いわゆるクラウドコンピューティングによるシステムとして構成することができる。
しかしながら、本発明に係る情報検索システム100は、他の様々な構成・方法により、本発明の技術的思想を効果的に実現することができる。例えば、上述した話題提供サーバ4’の各機能を、WEBサーバやASP(Active Server Pages)サーバ等で構成し、会話制御端末装置2’’で動作する一般的なWEBブラウザが、シナリオデータに制御されることなく(あるいは、シナリオデータによる制御の下で)、ユーザの指示に応じて、会話制御端末装置2’’のディスプレイに、関連詞等の情報を表示したり、話題や関連詞辞書や比較結果データの切り換えを行ったりするように構成することができる。この場合、話題提供サーバ4’として機能する、WEBサーバやASPサーバ等は、会話制御端末装置2’’のディスプレイに画面表示を行うために、当該表示のためのデータ(例えば、HTMLデータ)を編集し生成する。
<<<話題提供システムの他のシステム構成>>>
次に、図51を参照して、話題提供システムの他のシステム構成の概略について説明する。
図51に示す話題提供システム1’は、会話制御端末装置1002(Topiclet1020)、話題提供サーバ1004(iWA1030)、保守装置1003(iWA Manager1040)、および話題解析装置1005を有する。図4に示す話題提供システム1では、話題解析処理による結果の(シナリオデータ編集部410への)提供が、保守装置3(iWA Manager40)において行われるように示されているが、図51に示す話題提供システム1’では、話題解析処理自体が話題解析装置1005という、保守装置1003(iWA Manager1040)とは別個の装置により実行されることが示されており、話題提供システムをこのようなシステム構成で実現することもできる。
話題提供システム1と話題提供システム1’は、その他の構成については同様であり、詳細な説明については省略する。会話制御端末装置1002は、受信部1240、および送信部1230を含む。受信部1240は会話制御端末装置2の受信部240に対応し、送信部1230は会話制御端末装置2の送信部230に対応する。会話制御端末装置1002は、基本的に図4の会話制御端末装置2と同様であり、他の構成要素については表示を省略する。話題提供サーバ1004は、入力情報分析部1310、およびシナリオデータ記憶部1320を含み、保守装置1003は、シナリオデータ送信部1430、シナリオデータ編集部1410、および端末装置仮想構築部1420を含む。話題解析装置1005は、話題解析部1510を含む。
図51に示す話題提供システム1’において、話題解析装置1005の話題解析部1510は、話題提供サーバ1004に対してネットワークを介して接続され、話題解析処理により求められたシナリオデータやその他のデータを、話題提供サーバ1004の入力情報分析部1310に提供する。また、話題解析装置1005の話題解析部1510は、保守装置1003に対してネットワークを介して接続され(または、話題提供サーバ1004を介して間接的に接続され)、話題解析処理により求められたシナリオデータやその他のデータを、保守装置1003のシナリオデータ編集部1410に提供する。
話題解析装置1005の話題解析部1510は、話題リストを生成し、話題リストに基づくシナリオデータを編集したり検証したりする。話題リストは、話題を関係付ける関連詞を介して話題の近さや繋がり方を付与したデータである。話題解析部1510によって、話題に関連付けられる関連詞が話題リストに蓄積されていく。保守装置1003に提供された話題リストは、話題提供システム1’の契約者に提供されるデータであり、これらのデータは、例えば、シナリオデータを生成する際に用いられる。
また、話題解析装置1005の話題解析部1510は、図20に示す話題提供サーバ4’の文解析部43の処理を実現するように構成されてもよいし、入力情報分析部41の各処理を実現するように構成されてもよい。
さらに、話題解析装置1005の話題解析部1510は、話題提供システム1’の契約者のそれぞれに対応付けられるように複数配置することができる。その場合に、それぞれの話題解析装置1005で取得した情報を利用(または整理・統合したうえで利用)し、対応する保守装置1003や話題提供サーバ1004にデータを提供することもできる。話題解析装置1005の話題解析部1510によりデータが提供されるタイミングとデータの内容は、提供先によって(すなわち、保守装置1003と、話題提供サーバ1004とで)異なっていてもよい。
また、契約者(または、契約者に属する担当者)は、保守装置1003を用いて、話題解析装置1005から提供されるデータにより、話題リストを構築したりシナリオデータを編集・作成することができるが、図51に示す話題提供システム1’のような構成により、インターネット上のサービスとして遠隔から利用できるPaaS(Platform as a Service)やSaaS(Software as a Service)といった仕組みにより、保守装置1003において各機能を実現することもできる。
ここまで、本発明の一実施形態に係る情報検索システム100について、本発明を実施することができるいくつかの実施例を示しながら説明してきたが、これらの実施例は本発明を説明するための一例に過ぎず、本発明の権利範囲はこれらの実施例に限定されることはない。これらの実施例以外の様々な方法や構成によって、本発明の技術的思想を実現することができる。