[第1実施形態]
以下に添付図面を参照して、本発明に係る対話インターフェースの第1実施形態を詳細に説明する。
(ハードウェアの構成)
図1は、本実施形態で用いられる情報処理端末のハードウェア構成を示すブロック図であり、図2Aは、本実施形態に係る情報処理端末のCPU上に仮想的に構築されるPN値算出機能に関するモジュールを示すブロック図である。
情報処理端末1は、図1に示すように、演算処理を行うCPU11と、データを一時的に記憶するメモリ12と、通信ネットワーク2を介して外部との通信を行う通信I/F13と、データを格納しておく記憶装置14とを有している。なお、本実施形態では、これらのCPU11、メモリ12及び通信I/F13、記憶装置14,出力I/F15と、入力I/F16等は、CPUバス10を介して接続されており、相互にデータの受け渡しが可能となっている。
CPU11は、各部を制御する際に必要な種々の演算処理を行う装置である。このCPU11は、メモリ12に格納されているアプリケーションプログラム及び設定情報に基づいて、入力I/F16から入力される内容に応じて、本発明に係る対話インターフェースアプリケーションを実行させる。CPU11上で、対話インターフェースアプリケーションが実行されることで、本発明の対話インターフェースが機能モジュールとして仮想的に構築される。
また、通信I/F13は、通信ネットワーク2を介して通信を行うモジュールであり、公知の装置を用いることができる。なお、この通信I/F13に外線若しくは内線用の電話回線を接続することにより、有線で通信を行うことができ、また、携帯電話等を接続することによって無線で通信を行うこともできる。この通信ネットワーク2は、電話回線に限られることなく、LANなどでも同様の機能を実現することができる。
記憶装置14は、データを記録媒体に蓄積するとともに、これら蓄積されたデータを各デバイスの要求に応じて読み出す記憶装置であり、例えば、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)、メモリカード等により構成することができる。
また、CPUバス10には出力I/F15と、入力I/F16が接続されており、入力されたユーザー操作信号が入力I/F16からCPUバス10を通してCPUに入力されるとともに、各部に対する操作に関する情報がCPUバス10を介して出力I/F15を介して、各出力デバイスから出力・表示される。
(対話インターフェースの構成)
本実施形態に係る対話インターフェースは、スマートフォンやパーソナルコンピュータその他の情報処理装置、ロボットなどに備えられ、ユーザーとの対話により情報を入力したり、検索して応答するためのモジュールである。ここで、モジュールとは、CPU等の演算処理装置において、各種プログラムを実行することにより、CPU上に仮想的に構築される機能ブロックであり、装置や機器等のハードウェア、或いはその機能を持ったソフトウェア、又はこれらの組み合わせなどによって構成される。
本実施形態において対話インターフェースのエンジン部分は、CPU11上で、対話インターフェースアプリケーションが実行されることで、機能モジュールとして仮想的に構築され、具体的には、図2Aに示すように、ユーザーとの対話を行う対話入出力部60と、対話に必要な情報を収集したり対話入出力部60を通じて入出力されるデータに対して予め必要な処理を行う初期化処理部100と、コア機能を実行するコア機能実行部20と、ユーザー情報データベース50とから概略構成される。
対話入出力部60は、ユーザーと対話するためにデータを入出力するモジュールであり、ハードウェアとしては、出力I/F15,入力I/F16を通じて、PC1に接続されたディスプレイ5bやスピーカー5a等の出力デバイス、ポインティングデバイス6aやキーボード6b、マイク6c、CCDカメラ6d等の各種入力デバイス6a〜6d、その他のセンサーや時計、GPS機能を通じてデータを入出力する。そして、この対話入出力部60は、ユーザーからの問いかけを取得する入力部60aと、ユーザーに対して情報を提示して回答する回答出力部60bとを備えている。入力部60aは、ユーザーが入力したテキスト文章や音声の他、ユーザーの表情を撮影した画像・動画、タッチパネルへのタッチ操作、加速度センサー、時刻、GPSによる位置情報などの環境に関するデータも入力される。回答出力部60bは、回答生成部107が生成した回答を、対話入出力部60を通じてユーザーに向けて出力するモジュールであり、この出力もテキスト文章や音声の他、映像・動画、ロボットのアクションなど、種々の表現に対応できるように、所定の出力信号に変換する機能も備えている。
ユーザー情報データベース50は、PC1に備えられた記憶装置14や外部に設けられたストレージ装置に格納されるデータベースであり、他のデータベースとリレーションを設定することにより、情報を相互に参照し合えるリレーショナルデータベースである。このユーザー情報データベース50は、情報ソースから得られるテキストデータについて前記キーワード解析部が抽出した固有名詞キーワード及び事象キーワードと、これら固有名詞キーワード及び事象キーワードについて前記PN値設定部が設定したPN値とを関連づけて蓄積する記憶装置である。
初期化処理部100は、情報ソース取得部101が取得した情報ソースや、ユーザーから入力された入力データについて、コア機能部での処理を行う前に予め処理し、コア機能実行部20に受け渡すモジュールである。本実施形態において、具体的に初期化処理部100は、情報ソース取得部101と、センテンス解析部102と、省略単語検出部103と、推定単語検出部104と、テキスト再構成部105とを備えている。
情報ソース取得部101は、Web等の通信ネットワークを通じて取得される一般的な情報の他、端末内に蓄積されている各ユーザーに固有のプライベートなローカルデータなどを情報ソースとして収集し、情報ソースデータベース40aやユーザー情報データベース50に蓄積するモジュールである。すなわち、この情報ソースとしては、ユーザーがアクセスした情報やその履歴についても蓄積されており、情報ソース取得部101は、一般的な情報と、ユーザーが利用したプライベートな情報とを区分して情報ソースデータベース40aやユーザー情報データベース50に蓄積され、管理されている。
センテンス解析部102は、情報ソース取得部101が取得した情報ソースから得られるテキストデータからセンテンスを抽出するモジュールである。例えば、このセンテンス解析部102は、文章のテキストデータから、句点から句点、或いはピリオドからピリオドまでなど、一連のセンテンスを切り出し、省略単語検出部103に入力する。
省略単語検出部103は、センテンス解析部102が抽出した各センテンスを構成する単語に関する品詞を解析し、省略された単語を検出するモジュールである。具体的には、名詞、形容詞、動詞などの各文に含まれる単語の品詞を抽出し、主語となり得る名詞、特に固有名詞を検査し、見つからない場合は、主語が省略されているとして、その旨のフラグを文章データ中に挿入し、推定単語検出部104に入力する。
推定単語検出部104は、省略単語検出部103が検出した省略単語が含まれるセンテンスの当該情報ソース内における位置関係に基づいて、当該省略単語の品詞に応じた単語を推定単語として検出するモジュールである。この推定単語は、先行する直前のセンテンスや段落、記事のヘッドラインなどに含まれる固有名詞などを選定する。検出された推定単語は、テキスト再構成部105へ入力される。
テキスト再構成部105は、入力されたテキストデータに対して、省略単語検出部103が検出した省略単語の検出位置に、推定単語検出部104が検出した推定単語を追加して、センテンスとして再構成するモジュールである。このテキスト再構成部105により再構成された文書データは、原文とともに情報ソースデータベース40aに蓄積されるとともに、コア機能実行部20に入力される。
コア機能実行部20は、本実施形態では、PN値算出機能200を有している。このPN値算出機能200は、キーワード解析部106と、文章PN値算出部203と、回答生成部107と、PN値設定部201とを備えている。
キーワード解析部106は、入力されたテキストデータから、固有名詞キーワード又は事象キーワードを抽出するモジュールであり、本実施形態では、固有名詞キーワード又は事象キーワードに加えて、日時又は場所に関する環境キーワードを抽出する機能を備えている。この環境キーワードとしては、入力された文章や対話音声のみならず、時計やGPS、天気、気温、湿度等の気象情報などからも取得することができ、日時又は場所に関する環境キーワードを加味して提供すべき情報を選定し、加工することにより、時と場所によって変動するユーザーの心理に対応した検索結果や回答表現を提供することが可能となる。そして、このキーワード解析部106で解析された各キーワードは、PN値設定部201に入力される。
また、キーワード解析部106、テキスト再構成部105によって再構成されたテキストデータから固有名詞キーワード又は事象キーワードを抽出する。具体的にキーワード解析部106は、情報ソースやユーザーからの問いかけについて、省略された単語を追加して再構成されたテキストデータを初期化処理部100から受け取りし、この再構成されたテキストデータから固有名詞キーワード又は事象キーワードを抽出する。これにより、省略された主語や目的語などを推定することにより、暗に話題の中心となっている人物や団体、場所をキーワードとして検索すべき情報を選定し、加工することができ、より正確にユーザーが所望する検索結果や回答表現を提供することが可能となる。
PN値設定部201は、入力された各キーワードに対するユーザーのポジティブ又はネガティブの度合いを示すPN値を設定するモジュールである。本実施形態では、キーワード解析部106から入力されたテキストデータに含まれる文章内における文節を切り出し、文節間の分岐関係を抽出して、抽出された各分岐に含まれる単語の出現頻度に基づいて各単語の優先度を設定するフィルタリング部201aを備え、PN値設定部201は、フィルタリング部201aが設定した優先度に基づいてPN値を設定する。PN値設定部201で設定されたPN値は、ユーザー情報データベース50に蓄積されるとともに、文章PN値算出部203に入力される。
本実施形態では、PN値設定部201は、PN値の学習機能として、テンプレート生成部201bと、トレーニングデータ作成部201cと、学習部201dとを備えている。本実施形態においてこれらの学習機能は、ユーザーがPN値を設定したキーワード以外のキーワードについて、自動的に一般的なPN値を設定する。
テンプレート生成部201bは、図4Dに示すように、学習処理にあたり、一般的なPN値を学習するためのテンプレートデータD101を生成するモジュールである。このテンプレートデータD101は、任意のPN値を、テキストデータ内のキーワードに当てはめて、各話題や記事毎にキーワード群にPN値をまとめて設定するためのデータであり、収集した話題毎の記事から任意の文章(テキストデータ)を抽出してレコードとして格納したテーブルデータである。このとき抽出する文章は、名詞、動詞、形容詞などの品詞のいずれかを含む単文であり、この単文は、そのまま文章中に記載されているものと、複文を分解して単文に連結し直したものが含まれる。
トレーニングデータ作成部201cは、学習したPN値を評価するためのトレーニングデータD102を作成するモジュールである。このトレーニングデータD102は、テンプレートデータD101において、固有名詞や、ユーザーが既にPN値を設定したキーワードを、一般的な代名詞、動詞に置き換えたうえで、その置きかえられた文章(テキストデータ)に対する文章PN値(基準文章PN値)を設定したテーブルデータである。詳述すると、テンプレートデータD101には、固有名詞や、ユーザーが既にPN値を設定した動詞、形容動詞などのキーワードA〜Eを含むセンテンスが複数格納されており、トレーニングデータD102では、各レコードのテキスト中に含まれている固有名詞A〜Eが、「私」や「彼(彼女)」等の代名詞に置き換えられており、一般的な名詞や動詞、形容動詞など固有名詞が代名詞に置き換えられた文章について学習の基準となる基準文章PN値が設定される。この基準文章PN値は、単一又は複数のユーザー若しくはユーザー以外の操作者が入力したものであり、専門のオペレーターが入力したり、Web上のアンケートなどにより収集することができる。
学習部201dは、学習用PN値セットD104を、遺伝的アルゴリズムによってランダムに生成するなどして選定し、テンプレートデータD103への当て嵌めを行い、学習文章PN値の算出と基準文章PN値との比較を複数世代にわたり実行し、世代間で上位或いは代表的な値を選定し、それらの値を学習用PN値セットとして生成し、一般的なPN値としてPN値設定部201に設定させるモジュールである。
詳述すると、学習部201dは、テンプレートデータD101に含まれる固有名詞、及びその文章中における品詞を解析し、各固有名詞をその品詞に応じた代名詞に置き換える機能を備えており、固有名詞以外の一般名詞や一般動詞などの単語O〜Uに対してランダムな値のPN値を設定した学習用PN値セットD104を当てはめて学習用データD105を生成する。
さらに、学習部201dは、学習用データD105について、学習文章PN値を算出するとともに、その学習用PN値セットD104の適応度を算出する機能も有している。すなわち、学習部201dは、図4Dに示すように、テンプレートデータD103内の単語O〜Uに対して学習用PN値セットD104のPN値を当てはめて文章PN値算出部203により学習文章PN値を算出させ、この学習文章PN値と基準文章PN値と比較し、その一致度から適応度を算出する。
この学習文章PN値と基準文章PN値との比較に際し、学習部201dは、学習用PN値セットD104内のPN値を変動させつつ、複数世代にわたり実行し、世代間で最良の、学習用PN値セットを選定する。そのために、学習部201dは、変動された各世代のPN値のセットに基づく学習文章PN値と基準文章PN値との一致度から、各世代における適応度を算出し、世代間の適応度を比較し、その時点における最良又は最悪、平均的或いは代表的なセットを記憶保持しておく。そして、記憶保持された世代数が所定数に達せず、且つ算出される適応度が所定範囲に収束していない場合には、適応度が上位である複数セットの一部を抽出して組み合わせて次世代の学習用PN値セットを生成する処理を行いつつ、学習用PN値セットの選定及び適応度の算出等を繰り返させる。
この学習用PN値セットの選定及び適応度の算出等を繰り返させる際、学習部201dは、本実施形態では、遺伝的アルゴリズムによって、学習用PN値セット内のキーワード及びそのPN値について交叉・突然変異処理を施し、その処理結果が終了条件(本実施形態では、学習部201dに記憶保持された世代数が所定数に達するか、或いは算出される適応度が所定範囲に収束すること)を満たすまで繰り返す。ここで、交叉処理とは、それぞれのPN値セットで対応するデータ列の2つのデータ要素の値を入れ替える処理であり、突然変異とは、学習用PN値セットのデータ列のうち、ランダムに選択したデータ要素を、所定の確率をもって変化させる。
そして、学習部201dは、記憶保持された世代数が所定数に達するか、或いは算出される適応度が所定範囲に収束した場合に、世代間において最上位の学習文章PN値に係るキーワード及び設定されたPN値のセットを、一般的なPN値としてPN値設定部201に設定させる。
文章PN値算出部203は、対話に含まれる固有名詞キーワード又は事象キーワードを抽出し、抽出された固有名詞キーワード又は事象キーワードについて、ユーザー情報データベースを参照し、対話に含まれる固有名詞キーワード又は事象キーワードについて設定されたPN値に基づいて、対話に関してユーザーが抱いている感情を数値化した文章PN値を算出するモジュールである。この文章PN値算出部203により算出された文章PN値は、回答生成部107に入力される。
この文章PN値の算出では、文章中に含まれるキーワードに設定されたPN値を所定の演算処理により、文書全体で、ユーザーにとってどの程度ポジティブなのかネガティブなのかを判定する。この算出方法は、図4Aに示すように、各文節BL1,BL2内ではそれぞれの単語KW01とKW02、及びKW03とKW04のPN値を加算し、文節BL1,BL2間ではそれぞれの文節BL1及びBL2内で加算されたPN値を積算することを基本とする。なお、文節内のPN値が0となった場合には、積算の際には除外する。この各キーワードのPN値は、話題や記事毎に設定されており、固有名詞など特定の人や団体を意味するキーワードについては、ユーザー操作に基づくPN値が設定され、その他のキーワードには学習処理により一般的なPN値が設定されている。
これにより、例えば図4B(a)に示すように、情報ソースが「チームA 危険球で危険水域」というヘッドラインの記事であり、その記事の内容が「また、頑張ります。」という文章であった場合には、ユーザーがチームAのファンであるか否かで、この記事の文章PN値が変化する。
先ず、ユーザーがチームAのファンであった場合には、「チームA」という固有名詞にはポジティブなPN値(+)が与えられており、また、「頑張る」という単語には一般的な意味合いから、ポジティブなPN値(+)が与えられている。このとき、記事本文の文章中では主語が省略されているため、主語推定を行う。ここでは、ヘッドラインに「チームA」とあることから、この文章の省略された主語は「チームA」であるため、暗黙の主語として文章中に追加して文章PN値の算出を行う。この結果、ユーザーがチームAのファンである場合には、同図(b)に示すように、暗黙の主語である固有名詞「チームA」に対するPN値(+)と、「頑張る」という一般的なPN値(+)とが含まれていることから、各文節内を加算した後、これらを積算することによって、文章全体としてもその値はポジティブな「+0.01」となる。なお、図中にある「また」の文節にはニュートラルのキーワードのみが含まれるため、この文節のPN値は0となることから積算の際には除外する。そして、各文説の数値は、ユーザーが「チームA」に付与したPN値や、ヘッドラインとの掛かり受けなどの文章構造に応じて加減される。
一方、ユーザーがチームAのファンでなかった(アンチチームAであった)場合には、「チームA」という固有名詞にはネガティブなPN値(−)が与えられており、また、「頑張る」という単語には一般的な意味合いから、ポジティブなPN値(+)が与えられている。このときにも、記事本文の文章中では主語が省略されているため、「チームA」を暗黙の主語として文章中に追加して、文章PN値の算出を行う。この結果、同図(c)に示すように、暗黙の主語である固有名詞「チームA」に対するPN値(−)と、「頑張る」という一般的なPN値(+)とが含まれていることから、ニュートラルのみの文節を除外した文節を積算することによって、文章全体としてもその値はネガティブな「−0.01」となる。
また、他の例としては、例えば図4B(d)に示すように、情報ソースが「チームA 危険球で危険水域」というヘッドラインの記事であり、その記事の内容に「2戦連続の逆転負け」という文章であった場合にも、ユーザーがチームAのファンであるか否かで、この記事の文章PN値が変化する。ただし、ここでは、「逆転」と「負け」というキーワードの組み合わせでポジティブ・ネガティブが反転する情報が環境キーワードとして保持されている。すなわち、「逆転」の意味合いとしては一般的にはポジティブであるが、前後に連結される他のキーワードの種類によっては、その意味が反転し、強調するような機能が環境キーワードに保持されている。
そして、上記と同様に、ユーザーがチームAのファンであった場合には、「チームA」という固有名詞にはポジティブなPN値(+)が与えられている。また、「逆転」及び「負け」という単語には一般的な意味合いから、「逆転」にはポジティブなPN値(+)、「負け」にはネガティブなPN値(−)が与えられているとともに、これらの組み合わせでポジティブ・ネガティブが反転する情報が環境キーワードとして保持されている。この結果、ユーザーがチームAのファンである場合には、同図(e)に示すように、暗黙の主語である固有名詞「チームA」に対するPN値(+)と、「逆転」という一般的なPN値(+)が「負け」というキーワードによってPN値が反転されることから、これらを積算することによって、文章全体としてもその値はネガティブな「−0.01」となる。
一方、ユーザーがチームAのファンでなかった(アンチチームAであった)場合には、チームA」という固有名詞にはネガティブなPN値(−)が与えられている。また、「逆転」及び「負け」という単語には一般的な意味合いから、「逆転」にはポジティブなPN値(+)、「負け」にはネガティブなPN値(−)が与えられているとともに、これらの組み合わせでポジティブ・ネガティブが反転する情報が環境キーワードとして保持されている。この結果、ユーザーがチームAのアンチファンである場合には、同図(f)に示すように、暗黙の主語である固有名詞「チームA」に対するPN値(−)と、「逆転」という一般的なPN値(+)が「負け」というキーワードによってPN値が反転されることから、これらを積算することによって、文章全体としてもその値はポジティブな「+0.01」となる。
なお、PN値としては、ポジティブでもないネガティブでもないニュートラルな値として「0」も設定が可能となっていることから、本実施形態では、文節単位でPN値が0のときは、積算処理に含めずに無視するか、或いは他の文節に加算することで、文章全体としての文章PN値が「0」値になるのを回避している。
回答生成部107は、文章PN値算出部203が算出した文章PN値に基づき、情報ソース取得部101を通じて検索を行い、ユーザーに対する回答を生成するモジュールである。また、辞書データベース40bは、単語の上位又は下位関係、部分又は全体関係、同義関係、類義関係の少なくとも一つに基づいて単語を分類し、体系づけたシソーラス辞書に基づいて、解析対象となる単語を分類するシソーラス辞書を格納している。
(PN値算出機能の動作)
以上の構成を有するPN値算出機能は、以下のように動作する。図3Aは、PN値算出機能の動作順序を示すフローチャート図である。
先ず、ユーザーとの対話に先行し且つ常時周期的に、予め情報ソースの収集を行う(S101)。具体的には、情報ソース取得部101が、Web等の通信ネットワークを通じて取得される一般的な情報の他、サービス提供側で準備されたデータソース、端末内に蓄積されている各ユーザーに固有のプライベートなローカルデータなどを情報ソースとして収集する。Web等の通信ネットワークにおける情報収集としては、Webクローラーと呼ばれる、通信ネットワーク上のリンクを辿ってWebデータ間を遷移することにより、通信ネットワーク上のありとあらゆる情報データを回収する検索ロボットプログラムを用いる手法が挙げられる。サービス提供側で準備されたデータソースとしては、例えば、「選手年鑑」や辞書・辞典など、オフラインの情報を独自にデータベース化したデータが挙げられ、さらには、人物や有名建築物の画像などを解析し、同一名の人物や地名を関連情報と紐付けてデータベース化したものも含めてもよい。他方、プライベートなローカルデータの収集としては、ユーザーがWeb検索した際のキーワードや実際にアクセスしたWebページ、コンテンツの他、ユーザーが作成した文書、送受信した電子メール、ユーザーのスケジュールなどが挙げられる。また、情報ソースとしては、その情報を取得した時点の日付や時刻、場所、気象情報、関連するニュースなどを紐付けして取得するようにしてもよい。
次いで、収集された情報データがテキストデータではない場合には、必要に応じてテキストデータに変換し、不要なデータが含まれている場合にはクレンジング処理を施す(S102)。テキスト化処理としては、例えば、取得されたデータが音声であるときに音声認識処理によりテキスト化したり、映像や動画であるときに画像認識処理により写っている人物や場所等を所定の単語に置き換えたりすることが挙げられる。また、クレンジング処理としては、Webページに含まれるタグデータやその他の制御文字、音声に含まれる不要な発生やノイズなどを排除することが挙げられる。
このようにテキスト化され不要なデータが削除されたテキストデータについて、形態素解析を行うとともに、省略された主語などの推定を行う(S103〜S105)。具体的には、情報ソースについて、センテンスを抽出し、各センテンスを構成する単語に関する品詞を解析し、省略された単語を検出し、そのセンテンスの当該情報ソース内における位置関係に基づいて、当該省略単語の品詞に応じた単語を推定単語として検出して、この推定単語を省略単語の検出位置に推定単語を追加して、テキストデータを再構成する。また、省略された単語が追加され再構成されたテキストデータについて、木構造の解析を行い、木構造に基づくフィルタリングを行う。具体的には、図4Eに示すように、文章構造が分岐を有する複文などになっている場合に、分岐毎に単語の出現頻度を解析して、単語の優先度を設定し、優先度の低い単語を削除するなどのフィルタリングを行う。
次いで、情報ソースから得られたテキストデータから、固有名詞キーワード、事象キーワード及び環境キーワードを抽出するとともに、抽出された各キーワードに対するユーザーのポジティブ又はネガティブの度合いを示すPN値を設定する(S106)。このキーワードの検出や、PN値の設定に際しては、いわゆるシソーラス辞書を用いて、類義語のマージを行う。具体的には、単語の上位又は下位関係、部分又は全体関係、同義関係、類義関係の少なくとも一つに基づいて単語を分類し、体系づけたシソーラス辞書に基づいて、解析対象となる単語を分類するシソーラス分類を行う。
併せて、本実施形態では、取得された情報ソースから得られたテキストが、一つの話題に関連する一連の文章である場合、その一連の文章を一塊の単位記事として、単位記事毎にキーワード解析部106に入力して、当該単位記事に関してユーザーが抱いている感情を数値化した文章PN値を算出する(S107)。
その後、各キーワードとともに、各キーワードについてPN値設定部201が設定したPN値とを関連づけて、ユーザー情報データベース50に蓄積するとともに、ステップS102〜S107によって加工された情報ソースを単位記事毎に、文章PN値を関連づけて、情報ソースデータベース40aに蓄積する(S108)。
この情報ソースの蓄積に合わせて、予め或いは定期的に、各単語に対するPN値の収集も行う(S301)。このPN値の収集方法としては、例えば、SNSにおける「いいね!」ボタンのクリックなど賛同操作、レビュー入力などの評価操作を収集したり、各キーワードに対する心証をアンケート手続によって収集したりするなどが挙げられる。この収集されたPN値は、キーワード毎に「+」、「−」及び数値(0を含む。)として紐付けられて設定され、ユーザー情報データベース50に蓄積される。
そして、ユーザーとの対話においてユーザーからの問いかけなどの入力があった場合には(S201)、ユーザーによる入力データがテキストデータではない場合には、必要に応じてテキストデータに変換し、不要なデータが含まれている場合にはクレンジング処理を施す(S202)。テキスト化処理としては、例えば、取得されたデータが音声であるときに音声認識処理によりテキスト化したり、映像や動画であるときに画像認識処理により写っている人物や場所等を所定の単語に置き換えたりすることが挙げられる。また、クレンジング処理としては、Webページに含まれるタグデータやその他の制御文字、音声に含まれる不要な発生やノイズなどを排除することが挙げられる。
このようにテキスト化され不要なデータが削除されたテキストデータについて、形態素解析を行うとともに、省略された主語などの推定を行う(S203〜S205)。具体的には、情報ソースについて、センテンスを抽出し、各センテンスを構成する単語に関する品詞を解析し、省略された単語を検出し、そのセンテンスの当該情報ソース内における位置関係に基づいて、当該省略単語の品詞に応じた単語を推定単語として検出して、この推定単語を省略単語の検出位置に推定単語を追加して、テキストデータを再構成する。また、省略された単語が追加され再構成されたテキストデータについて、木構造の解析を行い、木構造に基づくフィルタリングを行う。具体的には、図4Eに示すように、文章構造が分岐R1,R2を有する複文などになっている場合(同図(a))に、省略された主語W301を追加して再構成されたセンテンスについて、分岐毎に単語の出現頻度を解析して、単語の優先度を設定し、優先度の低い分岐に含まれる単語を無視するなどのフィルタリングを行う。図4Eに示した例では、分岐R1には単語W101及びW102が含まれ(同図(b))、分岐R2には、単語W102〜103の3つ含まれていることから(同図(c))、分岐R2の優先度を高くして、低い分岐R1に含まれる単語W101を無視し、分岐R2側の単語のみをカウントする。
次いで、情報ソースから得られたテキストデータから、固有名詞キーワード、事象キーワード及び環境キーワードを抽出するとともに、抽出された各キーワードに対するユーザーのポジティブ又はネガティブの度合いを示すPN値を設定する(S206)。このキーワードの検出や、PN値の設定に際しては、いわゆるシソーラス辞書を用いて、類義語のマージを行う。具体的には、単語の上位又は下位関係、部分又は全体関係、同義関係、類義関係の少なくとも一つに基づいて単語を分類し、体系づけたシソーラス辞書に基づいて、解析対象となる単語を分類するシソーラス分類を行う。
併せて、本実施形態では、取得された情報ソースから得られたテキストが、一つの話題に関連する一連の文章である場合、その一連の文章を一塊の単位記事として、単位記事毎にキーワード解析部106に入力して、当該単位記事に関してユーザーが抱いている感情を数値化した文章PN値を算出する(S207)。その後、回答生成部107は、文章PN値算出部203が算出した文章PN値に基づき、情報ソース取得部101を通じて検索を行い、ユーザーに対する回答を生成する(S208)。
(PN値の学習処理)
上述したステップS206におけるPN値の設定では、ユーザー操作によってPN値を設定したが、本実施形態では、ユーザーがPN値を設定したキーワード以外のキーワードについては、学習機能により自動的に一般的なPN値を設定することができる。図4Cは、学習機能の動作を示すフローチャート図であり、図4Dは、学習時のデータ処理の概要を示す説明図である。
図4C及び図4Dに示すように、学習処理にあたり、先ず一般的なPN値を学習するためのテンプレートデータD101を生成する(S801)。このトレーニングデータD102は、テンプレートデータD101において、固有名詞や、ユーザーが既にPN値を設定したキーワードを、一般的な代名詞、動詞に置き換えたうえで、その置きかえられた文章(テキストデータ)に対する文章PN値(基準文章PN値)を設定したテーブルデータである。詳述すると、テンプレートデータD101には、固有名詞や、ユーザーが既にPN値を設定した動詞、形容動詞などのキーワードA〜Eを含むセンテンスが複数格納されている。
次いで、学習したPN値を評価するためのトレーニングデータD102を作成する(S802)。このトレーニングデータD102は、テンプレートデータD101において、固有名詞や、ユーザーが既にPN値を設定したキーワードを、一般的な代名詞、動詞に置き換えたうえで、その置きかえられた文章(テキストデータ)に対する文章PN値(基準文章PN値)を設定したテーブルデータである。詳述すると、テンプレートデータD101には、固有名詞や、ユーザーが既にPN値を設定した動詞、形容動詞などのキーワードA〜Eを含むセンテンスが複数格納されており、トレーニングデータD102では、各レコードのテキスト中に含まれている固有名詞A〜Eが、「私」や「彼(彼女)」等の代名詞に置き換えられており、一般的な名詞や動詞、形容動詞など固有名詞が代名詞に置き換えられた文章について学習の基準となる基準文章PN値が設定される。この基準文章PN値は、単一又は複数のユーザー若しくはユーザー以外の操作者が入力したものであり、専門のオペレーターが入力したり、Web上のアンケートなどにより収集することができる。
次いで、学習用PN値セットを選定し、テンプレートデータD103へのPN値の当て嵌めを行う(S803)。詳述すると、テンプレートデータD101に含まれる固有名詞、及びその文章中における品詞を解析し、各固有名詞をその品詞に応じた代名詞に置き換えたうえで、固有名詞以外の一般名詞や一般動詞などの単語O〜Uに対してランダムな値のPN値を設定した学習用PN値セットD104を当てはめて学習用データD105を生成する。
そして、学習用データD105について、学習文章PN値を算出する(S804)とともに、その学習用PN値セットD104の適応度を算出する(S805)。すなわち、テンプレートデータD103に学習用PN値セットD104のPN値を当てはめて得られる文章PN値算出部203により学習文章PN値を算出させ、この学習文章PN値と基準文章PN値と比較し、その一致度から適応度を算出する。
本実施形態では、この学習文章PN値と基準文章PN値との比較は、学習用PN値セットD104内のPN値を変動させつつ、学習文章PN値の算出、及び基準文章PN値との比較を複数世代にわたり実行し、世代間で最良の、学習用PN値セットを選定する。そのために、変動された各世代のPN値のセットに基づく学習文章PN値と基準文章PN値との一致度から、各世代における適応度を算出し、世代間の適応度を比較し、その時点における最良又は最悪、平均的或いは代表的なセットを記憶保持しておく(S806)。
次いで、記憶保持された世代数が所定数に達するか、或いは算出される適応度が所定範囲に収束するかを判断し(S807)、記憶保持された世代数が所定数に達せず、且つ算出される適応度が所定範囲に収束していない場合には(S807における”N”)、学習用PN値セットの選定及び適応度の算出等(S803〜S806)を繰り返させる。このとき、ステップS803における学習用PN値セットの選定では、適応度が上位である複数セットの一部を抽出して組み合わせて次世代の学習用PN値セットを生成する突然変異生成処理を行う。
そして、ステップS807において、記憶保持された世代数が所定数に達するか、或いは算出される適応度が所定範囲に収束した場合には(S807における”Y”)、世代間において最上位の学習文章PN値に係るキーワード及び設定されたPN値のセットを、一般的なPN値としてPN値設定部201に設定させる(S808)。
(作用・効果)
本実施形態によれば、ユーザーとの対話に関してユーザーが抱いている感情を数値化した文章PN値を算出し、その文章PN値に合致した情報を検索し、選定し、加工して提示することができるため、話し手の感情が大きく影響する日常会話において、話題の中心となっている人物や団体、場所などに対して、話し手がどのような感情を抱いているかによって、ユーザーが所望する検索結果や回答表現を提供することが可能となる。
特に、本実施形態では、情報ソースやユーザーからの問いかけについて、推定単語を省略単語の検出位置に推定単語を検出し、省略された主語や目的語などを推定することから、暗に話題の中心となっている人物や団体、場所をキーワードとして検索すべき情報を選定し、加工することができ、より正確にユーザーが所望する検索結果や回答表現を提供することが可能となる。
また、本実施形態では、いわゆるワードシソーラス分類を応用することにより、情報の検索や回答の生成に際し、同義関係、類義関係を考慮することができ、単純に音声やテキストを解析して得られるキーワード検索では漏れてしまう情報を適正に包含することができ、より正確にユーザーが所望する検索結果や回答表現を提供することが可能となる。
さらに、本実施形態では、情報データから得られるテキストデータに含まれる文章内における、文章構造が分岐を有する複文などになっている場合にも、分岐毎に単語の出現頻度を解析して、単語の優先度を設定しフィルタリングすることで、主たる話題となっているキーワードを適切に抽出することができる。
以上述べたように、本実施形態によれば、話し手であるユーザーが、特定の話題に対してポジティブな感情を抱いているか、ネガティブな感情を抱いているかを予測することによって、曖昧な日常会話をより正確に解析することができる。この結果、日常生活の中で大まかに無造作に交わされる会話のような自然文章を正確に解析し、さらには、話し相手の意図を推定して回答できる思考方法を模倣したコミュニケーションを図ることができる。
[第2実施形態]
以下に添付図面を参照して、本発明に係る対話インターフェースの第2実施形態を詳細に説明する。本実施形態では、上述した第1実施形態に係る対話インターフェースと、これと連動する関連対話インターフェースとを組み合わせて対話インターフェースシステムとし、核対話インターフェース間で演算結果や収集データを相互に利用し、解析・学習等を向上させることを要旨とする。
(対話インターフェースエンジンの概要)
本実施形態に係る対話インターフェースシステムは、人間の思考方法を模倣する仕組みとしての対話インターフェースエンジンを備えている。すなわち、対話インターフェースエンジンは、従来の人工知能の機能に加えて、より人間に近い受け答えをするためのアルゴリズムを有し、入力される各種情報に対して、利用ユーザーの友人のような対応すべく、そのユーザーに関する情報や心理状態をも加味して応答するように、そのユーザー用に特化され、且つ、そのユーザーとの相性を考慮した擬人格によって、多種多様な回答(リアクション)を表現する。
具体的に対話インターフェースエンジンは、ユーザーからの質問などがあった場合、その質問に係る文章についてユーザーが抱いている感情を計算し、質問の意図を推定する。例えば、ユーザーからの質問が、何についての話題なのか、どのような返答(回答なのか、相づちなのか)を求めているのか、回答の内容(いずれの情報源からの回答なのか、概要なのか、詳細なのか、ピンポイントなのか)、ユーザーの今の気分はどうなのかを推定する。そして、対話インターフェースエンジンは、その推定した質問の意図に従って、ユーザーの欲しがっている情報についてどのような回答をすべきかを決定することができる。例えば、どのような回答をすればユーザーが喜ぶか、検索して見つかった情報が残念なものしかなければ、回答の仕方も残念な表現とするなど、対話インターフェースエンジンがユーザーの好みや気分に合致した情報の提示の仕方を決定する。
この対話インターフェースエンジンは、特定のユーザーとの対話を積み重ねるいわゆるインタラクションを継続的に行うことによって、対話インターフェースエンジンの擬人格が変化される学習機能を有する。この学習機能は、ユーザー間のインタラクションによるユーザー自身の変化に対応するように、対話インターフェースエンジン間もインタラクションできるようになっており、これにより、対話中の話題に登場する他のユーザー(或いは他の対話インターフェースエンジン)との関係性に応じて回答も変化され、十人十色の対話インターフェースエンジンが出来上がっていくように設計されている。
(コア機能三要素)
上記対話インターフェースエンジンは、図7に示すように、人間の心理状態を計算するシステムとして、大きく分けて3つの要素からなるコア機能を備えている。具体的に、このコア機能は、文章の感情を推定する「PN値」算出機能と、言葉と言葉の関係性を示す「ワード間距離」算出機能、ユーザーの性格による各話題に対する反応の違いであるエゴグラムを用いる「ポテンシャル場」算出機能とを含んでいる。
「PN値」算出機能は、文章中に上がっている特定の話題に対するポジティブさ、ネガティブさの指標であるPN値を算出する。例えば、同一の話題であっても、ユーザー(若しくはその文章の書き手)の好きな人にとって嬉しいことが起こるとユーザー自身も嬉しいと感じ、ユーザーの嫌いな人に悲しいことが起こるとユーザー自身は嬉しいと感じる、というように、話題に上がっている主体(人、団体、物等)と、事象(事件等)との掛け合わせにより、ユーザーの受け捉え方がポジティブとなるか、ネガティブとなるかが変化することから、「PN値」算出機能は、この変化の度合いをPN値として算出する。
「ワード間距離」算出機能は、文章中に上がっている特定の主体(人、団体、物等)同士の繋がりや類似性など、実社会における関係性の程度をワード間距離として算出する。例えば、ユーザー(若しくは文章の書き手)の好きな人の近くにいる人(団体、物等を含む)の近くにいる人(団体、物等を含む)に対してはユーザー自身も好感を抱き、ユーザーの嫌いな人の近くにいる人に対してはユーザー自身も嫌いになることから、「ワード間距離」算出機能は、このような関係性をワード間距離として算出する。
「ポテンシャル場」算出機能は、ユーザーの性格に基づく反応の仕方の相違を示すポテンシャル場を算出する。例えば、ユーザーは人間であり一番大切なのは自分であるとする価値観を持ち、ユーザーの各話題に対する価値観と、その人の性格とによって、厳しく反応したり、寛大に反応したりすることから、「ポテンシャル場」算出機能は、そのユーザーの性格による各話題に対する反応パターンを、ポテンシャル場として算出する。
そして、これらのコア機能三要素は、相互に算出結果を利用し合うことが可能であり、三要素が個々に学習して得られたパラメーターと、他の要素から得られたパラメーターとを用いて、さらにユーザーに適した対話インターフェースエンジンとなる。
例えば「PN値」算出機能は、ユーザーが発した言葉(質問)や生成した文言(文章)の感情を計算し、学習結果として蓄積し、その学習結果を、シソーラス辞書として「ワード間距離」算出機能に渡すとともに、ユーザーにとっての文章のPN値として、「ポテンシャル場」算出機能に渡す。その一方で、「PN値」算出機能は、ワード間距離算出機能からワード間距離を受け取るとともに、「ポテンシャル場」算出機能からユーザーの固有名詞に対するPN値を受け取る。
「ワード間距離」算出機能は、一般的な情報ソースや、ユーザーが発した言葉(質問)や生成した文言(文章)の感情を計算して学習結果として蓄積し、その学習結果をワード間距離として「PN値」算出機能に渡すとともに、一般的なワード間距離、頻度、助詞係数として、「ポテンシャル場」算出機能に渡す。その一方で、「ワード間距離」算出機能は、「PN値」算出機能から受け取ったシソーラス辞書、及び「ポテンシャル場」算出機能から受け取ったユーザーにとってのワード間距離を一般的なワード間距離の計算に用いる。
「ポテンシャル場」算出機能は、ユーザーの性格の違いによるポテンシャル場を計算して学習結果として蓄積し、その学習結果をユーザーの固有名詞PN値として「PN値」算出機能に渡すとともに、ユーザーにとってのワード間距離として、「ワード間距離」算出機能に渡す。その一方で、「ポテンシャル場」算出機能は、「PN値」算出機能から受け取ったユーザーにとっての文章のPN値、及び「ワード間距離」算出機能から受け取った一般的なワード間距離をポテンシャル場の計算に用いる。
(対話インターフェースエンジンの動作例)
このような構成の対話インターフェースエンジンは、例えば以下のように動作する。
(1)ユーザーが過去に同じ話題に触れていた場合
例えば、ユーザーが過去にも同じ話題について対話した履歴がある場合であって、「今日の試合どうだった?」と、「何の試合か」という文言を省略して対話インターフェースエンジンに対し質問をしたときには、先ず、情報ソースにアクセスしてその日にあった試合のデータを検索し、検出された試合に基づいて話題を推定する。ここでは、本日の試合がテニスのみ3試合あったことから、話題として「テニス」をピックアップしたものとする。
そして、先ず、ワード間距離算出機能が、テニスという文言から「選手N、勝つ」という文言を、一般的な関連性、及びユーザーにとって近しいワード間距離を有するキーワードとして「PN値」算出機能に渡す。このキーワードを受け取った 「PN値」算出機能は、これらのキーワードについて、固有名詞場又は事象場として、各場に対するユーザーのポジティブ又はネガティブの度合いを示すPN値を設定する。ここでは、ユーザーは、「選手N」に対してはポジティブな感情を抱いていることから、そのPN値は(+)であり、「勝つ」という文言に対する一般的なポジティブな意味合いから、そのPN値も(+)である。「ポテンシャル場」算出機能は、この受け取ったキーワードに基づいてユーザー感情表を「PN値」算出機能に受け渡すとともに、このユーザー感情表に基づく、「選手N、勝つ」の2つのキーワードに対するユーザーにとってのワード間距離を算出して、ワード間距離算出機能に受け渡す。
そして、「PN値」算出機能は、「選手N、勝つ」という2つのキーワードと、これらキーワードを固有名詞場又は事象場として各場に対するPN値に基づく「ユーザーPN値」を算出し、回答生成部107に出力する。ここでは、「選手N、勝つ」の2つのキーワードがともにポジティブな値(+)であることから、これらを掛け合わせて得られる全体的なユーザーPN値も(+)となる。回答生成部107では、これら2つのキーワードを用いたポジティブな表現の「選手N勝ったよ」という回答をユーザーに対して生成する。
(2)ユーザーが新たな話題に触れた場合
例えば、ユーザーが過去に触れたことのない新しい話題について対話をし始めた場合であって、「囲碁、面白い?」と、対話インターフェースエンジンに対し抽象的な質問をしたときには、先ず、情報ソースにアクセスして「囲碁、面白い」をキーワードとしてデータを検索し、検出された囲碁に関する話題を絞り込む。ここでは、過去に触れた話題ではないので、ユーザー自身のワールドマップからは、なにもピックアップされなかったものとする。
この場合には、先ず、ワード間距離算出機能が、情報ソースに対して「囲碁」に関する問合せを行い、これに対する検索結果として「囲碁」に関する文章を取得し、その文章に記載された一般的な「囲碁」に関するキーワードを抽出するとともに、それらのワード間距離を算出する。その算出された一般的な囲碁に関連するキーワードを、それらのワード間距離とともに「PN値」算出機能に渡す。このキーワードを受け取った 「PN値」算出機能は、これらのキーワードについて、固有名詞場又は事象場として、各場に対するユーザーのポジティブ又はネガティブの度合いを示すPN値を設定する。ここでは、ユーザーは、「囲碁」に対してはポジティブな感情を抱いていることから、そのPN値は(+)であり、「面白い」という文言に対する一般的なポジティブな意味合いから、そのPN値も(+)である。「ポテンシャル場」算出機能は、この受け取ったキーワードに基づいてユーザー感情表を「PN値」算出機能に受け渡すとともに、このユーザー感情表に基づく、「囲碁、面白い」の2つのキーワードに対するユーザーにとってのワード間距離(ワールドマップ)を算出して、ワード間距離算出機能に受け渡す。
そして、「PN値」算出機能は、「囲碁、面白い」という2つのキーワードと、これらキーワードを固有名詞場又は事象場として各場に対するPN値に基づく「ユーザーPN値」を算出し、回答生成部107に出力する。ここでは、「囲碁、面白い」の2つのキーワードがともにポジティブな値(+)であることから、これらを掛け合わせて得られる全体的なユーザーPN値も(+)となる。回答生成部107では、これら2つのキーワードを用いたポジティブな表現の「選手N勝ったよ」という回答をユーザーに対して生成する。
(ハードウェアの構成)
以上説明した対話インターフェースエンジンの具体的な構成について以下に説明する。本実施形態に係るシステムも情報処理端末で実現することができる。この情報処理端末の構成としては、上述した第1実施形態と同様である。すなわち、本実施形態に係る情報処理端末1は、図1に示すように、演算処理を行うCPU11と、データを一時的に記憶するメモリ12と、通信ネットワーク2を介して外部との通信を行う通信I/F13と、データを格納しておく記憶装置14とを有している。なお、本実施形態では、これらのCPU11、メモリ12及び通信I/F13、記憶装置14,出力I/F15と、入力I/F16等は、CPUバス10を介して接続されており、相互にデータの受渡しが可能となっている。
(対話インターフェースシステムの処理動作)
そして、対話インターフェースシステムは、上述した対話インターフェースエンジンのコア機能及び初期化処理機能が協働していくつかの処理段階を実行する。図8は、本実施形態に係る対話インターフェースシステムの動作処理を示す説明図である。具体的に、この処理段階としては、情報データ取得phase1と、入力データ分析phase2と、ユーザー意図推定phase3と、回答生成phase4と、表現生成phase5と、表現出力phase6とが含まれ、各処理段階で算出されたパラメーターや辞書、その他のデータはデータベース群との間で各機能間で共有される。
情報データ取得phase1では、ユーザー自身が入力した文章を取得する処理であり、テキスト入力機能と、STT機能と、SPR機能と、3Dセンサー機能、手付けReward機能と、現在時刻及び現在位置を取得する時計やGPS等から情報データを取得する。
入力データ分析phase2は、ユーザーによって入力された文章や、対話、ユーザーが読んだWebページなどを入力データとして、それに含まれる文章を解析する処理であり、具体的には、クレンジング機能と、キーワード抽出機能と、単語抽出機能、品詞解析機能と、主語推定機能、フィラー機能、一般的なPN値算出機能が用いられる。
ユーザー意図推定phase3は、ユーザーの質問の意図を推定する処理であり、具体的には、意図推定機能と、上述した対話インターフェースエンジンのコア機能であるPN値算出機能、ワード間距離算出機能、ポテンシャル場算出機能を備えている。
回答生成phase4は、対話インターフェースエンジンが抽出した回答に関するパラメーターに基づいて、回答を生成する処理であり、具体的には、回答候補抽出機能と、回答選択機能と、文言生成機能とが用いられる。
表現生成phase5は、対話インターフェースエンジンにより生成された回答を、ユーザーに対して提示する際の、表現データを生成する処理であり、アバターエゴグラム機能と、アバター感情選択機能と、話題遷移機能と、感情付きTTS入力機能とが用いられる。
表現出力phase6は上記表現生成phase5で生成した表現データを出力する処理であり、テキスト出力機能、TTS機能、表情機能、リップシンク機能、動作制御機能とが用いられる。
また、対話インターフェースエンジンは、ブラックボードデータベースと、ユーザー情報と、一般情報とを含むデータベース群を備えている。ブラックボードデータベースは、ユーザー、アバター、やり取り(アクティビティ)を蓄積しておく。 ユーザー情報としては、ユーザー固有の情報として、ユーザー固有のポテンシャル場などが含まれる。一般情報としては、いわゆる情報ソースが含まれ、この情報ソースとしては、Webなどで取得される情報に関する一般的な情報(PN値やシソーラス辞書)や、ユーザー自身が作成したり、取得したりした個別情報が含まれる。このデータベース群は、具体的には、情報ソースデータベース40a、辞書データベース40b、ユーザー情報データベース50で構成され、各情報は相互に関連づけられている。
(対話インターフェースシステムの構成)
次いで、以上説明した対話インターフェースエンジンを有する対話インターフェースシステムの具体的な構成について説明する。図9は、本実施形態に係る対話インターフェースエンジンの概略構成を示すブロック図であり、図10及び図11は、対話インターフェースシステムの全体構成及び初期化処理部の構成を示すブロック図である。図9に示すように、対話インターフェースエンジンには、初期化処理部100と、コア機能実行部20とが含まれる。
初期化処理部100は、情報ソースを取得し、後段のコア機能実行部20における処理で必要なデータ加工を実行するモジュールであり、加工された情報データはコア機能実行部20に出力される。コア機能実行部20は、上述したコア機能を用いて実行するモジュールであり、PN値算出機能200と、ワード間距離算出機能300と、ポテンシャル場算出機能400とを有する。初期化処理部100で加工された情報データは、PN値算出機能200及びワード間距離算出機能300に入力される。PN値算出機能200では、PN値表(環状表)が生成され、データベース群に蓄積されるとともに、ポテンシャル場算出機能400に受け渡される。ワード間距離算出機能300では、話題ワールドマップが生成され、データベース群に蓄積されるとともに、ポテンシャル場算出機能400に受け渡される。ポテンシャル場算出機能400では、PN値表(環状表)及び話題ワールドマップに基づいて、ユーザーポテンシャル場が生成され、データベース群に蓄積される。なお、これらのモジュールでは、情報ソースデータベース40a、辞書データベース40b及びユーザー情報データベース50を介して連携され、シソーラス辞書やPN値、ワード間距離などの各種パラメーターが共有される。
このような対話インターフェースを含む対話インターフェースシステムの各モジュールの具体的な構成及び動作について詳述する。
(1)初期化処理部
初期化処理部100では、主として上述した情報データ取得phase1及び入力データ分析phase2を行う。すなわち、情報データ取得phase1において、記事データ等の各種情報ソースを取得し、入力データ分析phase2においてデータのクレンジングを行う。入力データ分析phase2では、コア機能による処理に対する前処理として、形態素解析により単語や助詞などを抽出するとともに、文節のツリー構造について解析を行い、解析結果をPN値算出機能200及びワード間距離算出機能300に入力する。PN値算出機能200は、これらのデータを用いてPN値表を生成する。このPN値表は、情報ソースデータベース40a及びユーザー情報データベース50に格納されるとともに、ポテンシャル場算出機能400に受けわたされる。一方、ワード間距離算出機能300は、前処理による解析結果を用いて話題ワールドマップを作成する。このワールドマップは、情報ソースデータベース40a及びユーザー情報データベース50に格納されるとともに、ポテンシャル場算出機能400に受け渡される。ポテンシャル場算出機能400では、PN値算出機能200から取得したPN値表と、ワード間距離算出機能300から取得した話題ワールドマップとに基づいて、ユーザーポテンシャル場を作成する。
上記入力データ分析phase2における前処理では、記事データのPNを計算するために必要な情報を得るために、以下の処理を実行する。
(1)固有名詞の記事単位のマージ
(2)暗黙の主語の推定
(3)単語のシソーラス分類
(4)助詞係数の算出
を行う。
上記入力データ分析phase2における前処理につき、それぞれの処理について以下に説明する。
(1)固有名詞の記事単位のマージ
取得した記事文章内に登場する固有名詞を、記事毎にマージしてテンポラリ辞書を作成する。例えば、プロ野球の特定のチームに関する記事であれば、記事のヘッドラインには選手名の略称や俗称、ニックネームなどが使用されている場合が多く、本文中ではその選手名の本名が主語として用いられることが多い。このため、記事毎に、その文章内に登場する固有名詞や略称、俗称をマージすることにより、特定の話題に関連する単語を検索できるようになる。
(2)暗黙の主語の推定
日本語では主語を省略する傾向があり、単に文章中に登場する固有名詞の出現頻度をカウントするだけでは正確なユーザー意図は算出できないため、省略された主語を推定して、基の文章中に追加して再構成し、そのうえで、各固有名詞の出現頻度を家運とすることにより、より正確なユーザー意図を算出することができる。
この暗黙の主語の推定は、一定のルールに基づいて、省略されている主語を検出する。このルールとしては、例えば、以下のものが挙げられる。
(a)推定する主語は固有名詞とする。
(b)暗黙の主語を推定する文章としては、「固有名詞+“は”」、「固有名詞+“が”」、「固有名詞+“も”」、「固有名詞+“,”:のいずれも含まれない文章を選択する。
(c)その文章が存在している段落の最初の文章で主語となっている固有名詞を、推定される”暗黙”の固有名詞とする。
(d)(c)において「推定される”暗黙”の固有名詞」が存在しない場合は、その記事のヘッドラインで最初の固有名詞とする。
(e)推定された暗黙が既に文章に含まれているときは、固有名詞となっている(直)前の文章の主語とする。
(3)単語のシソーラス分類
一般的な単語については、個別に扱わずに、同義語又は類似語等を、体系化及びグルーピングを行う。シソーラス分類は、単語の上位 / 下位関係、部分 / 全体関係、同義関係、類義関係などによって単語を分類し、体系づけた辞書を備えており、これらの単語間の関係を、木構造又は表形式でデータ構造により保持している。PN値の設定などは、単語毎には行わず、単語の集合毎に設定する。
(4)助詞係数の算出
助詞係数は、文書中における単語間の距離や関係性を計算するための重要なパラメーターであり、助詞の種類間における結合の関係を表す係数である。具体的に、初期化処理は、初期化処理部100により実行される。図11は、本実施形態に係る初期化処理部の内部構成を示すブロック図である。
初期化処理部100は、情報ソース取得部101が取得した情報ソースや、ユーザーから入力された入力データについて、コア機能部での処理を行う前に予め処理し、コア機能実行部20に受け渡すモジュールである。本実施形態において、具体的に初期化処理部100は、情報ソース取得部101と、センテンス解析部102と、省略単語検出部103と、推定単語検出部104と、テキスト再構成部105と、キーワード解析部106とを備えている。
情報ソース取得部101は、Web等の通信ネットワークを通じて取得される一般的な情報の他、端末内に蓄積されている各ユーザーに固有のプライベートなローカルデータなどを情報ソースとして収集し、情報ソースデータベース40aやユーザー情報データベース50に蓄積するモジュールである。すなわち、この情報ソースとしては、ユーザーがアクセスした情報やその履歴についても蓄積されており、情報ソース取得部101は、一般的な情報と、ユーザーが利用したプライベートな情報とを区分して情報ソースデータベース40aやユーザー情報データベース50に蓄積され、管理されている。
センテンス解析部102は、情報ソース取得部101が取得した情報ソースから得られるテキストデータからセンテンスを抽出するモジュールである。例えば、このセンテンス解析部102は、文章のテキストデータから、句点から句点、或いはピリオドからピリオドまでなど、一連のセンテンスを切り出し、省略単語検出部103に入力する。
省略単語検出部103は、センテンス解析部102が抽出した各センテンスを構成する単語に関する品詞を解析し、省略された単語を検出するモジュールである。具体的には、名詞、形容詞、動詞などの各文に含まれる単語の品詞を抽出し、主語となり得る名詞、特に固有名詞を検査し、見つからない場合は、主語が省略されているとして、その旨のフラグを文章データ中に挿入し、推定単語検出部104に入力する。
推定単語検出部104は、省略単語検出部103が検出した省略単語が含まれるセンテンスの当該情報ソース内における位置関係に基づいて、当該省略単語の品詞に応じた単語を推定単語として検出するモジュールである。この推定単語は、先行する直前のセンテンスや段落、記事のヘッドラインなどに含まれる固有名詞などを選定する。検出された推定単語は、テキスト再構成部105へ入力される。
テキスト再構成部105は、入力されたテキストデータに対して、省略単語検出部103が検出した省略単語の検出位置に、推定単語検出部104が検出した推定単語を追加して、センテンスとして再構成するモジュールである。このテキスト再構成部105により再構成された文書データは、原文とともに情報ソースデータベース40aに蓄積されるとともに、コア機能実行部20に入力される。
キーワード解析部106は、本実施形態では、コア機能間で共通して用いられ、入力されたテキストデータから、固有名詞キーワード又は事象キーワードを抽出するモジュールであり、本実施形態では、固有名詞キーワード又は事象キーワードに加えて、日時又は場所に関する環境キーワードを抽出する機能を備えている。この環境キーワードとしては、入力された文章や対話音声のみならず、時計やGPS、天気、気温、湿度等の気象情報などからも取得することができ、日時又は場所に関する環境キーワードを加味して提供すべき情報を選定し、加工することにより、時と場所によって変動するユーザーの心理に対応した検索結果や回答表現を提供することが可能となる。そして、このキーワード解析部106で解析された各キーワードは、PN値設定部201、群体パラメーター設定部301又はポテンシャル場形成部402に入力される。
また、キーワード解析部106は、テキスト再構成部105によって再構成されたテキストデータから固有名詞キーワード又は事象キーワードを抽出する機能を有している。具体的にキーワード解析部106は、情報ソースやユーザーからの問いかけについて、省略された単語を追加して再構成されたテキストデータを初期化処理部100から受け取りし、この再構成されたテキストデータから固有名詞キーワード又は事象キーワードを抽出する。これにより、省略された主語や目的語などを推定することにより、暗に話題の中心となっている人物や団体、場所をキーワードとして検索すべき情報を選定し、加工することができ、より正確にユーザーが所望する検索結果や回答表現を提供することが可能となる。
(2)コア機能実行部
コア機能実行部20は、主として、上記ユーザー意図推定phase3などを実行するモジュールであり、PN値算出機能200、ワード間距離算出機能300及びポテンシャル場算出機能400を有している。
(2−1)PN値算出機能
PN値算出機能200は、文章PN値算出部203と、PN値設定部201とを備えている。
PN値設定部201は、入力された各キーワードに対するユーザーのポジティブ又はネガティブの度合いを示すPN値を設定するモジュールである。本実施形態では、キーワード解析部106から入力されたテキストデータに含まれる文章内における文節を切り出し、文節間の分岐関係を抽出して、抽出された各分岐に含まれる単語の出現頻度に基づいて各単語の優先度を設定するフィルタリング部201aを備え、PN値設定部201は、フィルタリング部201aが設定した優先度に基づいてPN値を設定する。PN値設定部201で設定されたPN値は、ユーザー情報データベース50に蓄積されるとともに、文章PN値算出部203に入力される。
本実施形態では、PN値設定部201は、PN値の学習機能として、テンプレート生成部201bと、トレーニングデータ作成部201cと、学習部201dとを備えている。本実施形態においてこれらの学習機能は、ユーザーがPN値を設定したキーワード以外のキーワードについて、自動的に一般的なPN値を設定する。
テンプレート生成部201bは、図4Dに示すように、学習処理にあたり、一般的なPN値を学習するためのテンプレートデータD101を生成するモジュールである。このテンプレートデータD101は、任意のPN値を、テキストデータ内のキーワードに当てはめて、各話題や記事毎にキーワード群にPN値をまとめて設定するためのデータであり、収集した話題毎の記事から任意の文章(テキストデータ)を抽出してレコードとして格納したテーブルデータである。このとき抽出する文章は、名詞、動詞、形容詞などの品詞のいずれかを含む単文であり、この単文は、そのまま文章中に記載されているものと、複文を分解して単文に連結し直したものが含まれる。
トレーニングデータ作成部201cは、学習したPN値を評価するためのトレーニングデータD102を作成するモジュールである。このトレーニングデータD102は、テンプレートデータD101において、固有名詞や、ユーザーが既にPN値を設定したキーワードを、一般的な代名詞、動詞に置き換えたうえで、その置きかえられた文章(テキストデータ)に対する文章PN値(基準文章PN値)を設定したテーブルデータである。詳述すると、テンプレートデータD101には、固有名詞や、ユーザーが既にPN値を設定した動詞、形容動詞などのキーワードA〜Eを含むセンテンスが複数格納されており、トレーニングデータD102では、各レコードのテキスト中に含まれている固有名詞A〜Eが、「私」や「彼(彼女)」等の代名詞に置き換えられており、一般的な名詞や動詞、形容動詞など固有名詞が代名詞に置き換えられた文章について学習の基準となる基準文章PN値が設定される。この基準文章PN値は、単一又は複数のユーザー若しくはユーザー以外の操作者が入力したものであり、専門のオペレーターが入力したり、Web上のアンケートなどにより収集することができる。
学習部201dは、学習用PN値セットD104を、遺伝的アルゴリズムによってランダムに生成するなどして選定し、テンプレートデータD103への当て嵌めを行い、学習文章PN値の算出と基準文章PN値との比較を複数世代にわたり実行し、世代間で上位或いは代表的な値を選定し、それらの値を学習用PN値セットとして生成し、一般的なPN値としてPN値設定部201に設定させるモジュールである。
詳述すると、学習部201dは、テンプレートデータD101に含まれる固有名詞、及びその文章中における品詞を解析し、各固有名詞をその品詞に応じた代名詞に置き換える機能を備えており、固有名詞以外の一般名詞や一般動詞などの単語O〜Uに対してランダムな値のPN値を設定した学習用PN値セットD104を当てはめて学習用データD105を生成する。
さらに、学習部201dは、学習用データD105について、学習文章PN値を算出するとともに、その学習用PN値セットD104の適応度を算出する機能も有している。すなわち、学習部201dは、図4Dに示すように、テンプレートデータD103内の単語O〜Uに対して学習用PN値セットD104のPN値を当てはめて文章PN値算出部203により学習文章PN値を算出させ、この学習文章PN値と基準文章PN値と比較し、その一致度から適応度を算出する。
この学習文章PN値と基準文章PN値との比較に際し、学習部201dは、学習用PN値セットD104内のPN値を変動させつつ、複数世代にわたり実行し、世代間で最良の、学習用PN値セットを選定する。そのために、学習部201dは、変動された各世代のPN値のセットに基づく学習文章PN値と基準文章PN値との一致度から、各世代における適応度を算出し、世代間の適応度を比較し、その時点における最良又は最悪、平均的或いは代表的なセットを記憶保持しておく。そして、記憶保持された世代数が所定数に達せず、且つ算出される適応度が所定範囲に収束していない場合には、適応度が上位である複数セットの一部を抽出して組み合わせて次世代の学習用PN値セットを生成する処理を行いつつ、学習用PN値セットの選定及び適応度の算出等を繰り返させる。
この学習用PN値セットの選定及び適応度の算出等を繰り返させる際、学習部201dは、本実施形態では、遺伝的アルゴリズムによって、学習用PN値セット内のキーワード及びそのPN値について交叉・突然変異処理を施し、その処理結果が終了条件(本実施形態では、学習部201dに記憶保持された世代数が所定数に達するか、或いは算出される適応度が所定範囲に収束すること)を満たすまで繰り返す。ここで、交叉処理とは、それぞれのPN値セットで対応するデータ列の2つのデータ要素の値を入れ替える処理であり、突然変異とは、学習用PN値セットのデータ列のうち、ランダムに選択したデータ要素を、所定の確率をもって変化させる。
そして、学習部201dは、記憶保持された世代数が所定数に達するか、或いは算出される適応度が所定範囲に収束した場合に、世代間において最上位の学習文章PN値に係るキーワード及び設定されたPN値のセットを、一般的なPN値としてPN値設定部201に設定させる。
文章PN値算出部203は、対話に含まれる固有名詞キーワード又は事象キーワードを抽出し、抽出された固有名詞キーワード又は事象キーワードについて、ユーザー情報データベースを参照し、対話に含まれる固有名詞キーワード又は事象キーワードについて設定されたPN値に基づいて、対話に関してユーザーが抱いている感情を数値化した文章PN値を算出するモジュールである。この文章PN値算出部203により算出された文章PN値は、回答生成部107に入力される。
この文章PN値の算出では、文章中に含まれるキーワードに設定されたPN値を所定の演算処理により、文書全体で、ユーザーにとってどの程度ポジティブなのかネガティブなのかを判定する。この算出方法は、図4Aに示すように、各文節BL1,BL2内ではそれぞれの単語KW01とKW02、及びKW03とKW04のPN値を加算し、文節BL1,BL2間ではそれぞれの文節BL1及びBL2内で加算されたPN値を積算することを基本とする。なお、文節内のPN値が0となった場合には、積算の際には除外する。この各キーワードのPN値は、話題や記事毎に設定されており、固有名詞など特定の人や団体を意味するキーワードについては、ユーザー操作に基づくPN値が設定され、その他のキーワードには学習処理により一般的なPN値が設定されている。
これにより、例えば図4B(a)に示すように、情報ソースが「チームA 危険球で危険水域」というヘッドラインの記事であり、その記事の内容が「また、頑張ります。」という文章であった場合には、ユーザーがチームAのファンであるか否かで、この記事の文章PN値が変化する。
先ず、ユーザーがチームAのファンであった場合には、「チームA」という固有名詞にはポジティブなPN値(+)が与えられており、また、「頑張る」という単語には一般的な意味合いから、ポジティブなPN値(+)が与えられている。このとき、記事本文の文章中では主語が省略されているため、主語推定を行う。ここでは、ヘッドラインに「チームA」とあることから、この文章の省略された主語は「チームA」であるため、暗黙の主語として文章中に追加して文章PN値の算出を行う。この結果、ユーザーがチームAのファンである場合には、同図(b)に示すように、暗黙の主語である固有名詞「チームA」に対するPN値(+)と、「頑張る」という一般的なPN値(+)とが含まれていることから、各文節内を加算した後、これらを積算することによって、文章全体としてもその値はポジティブな「+0.01」となる。なお、図中にある「また」の文節にはニュートラルのキーワードのみが含まれるため、この文節のPN値は0となることから積算の際には除外する。そして、各文説の数値は、ユーザーが「チームA」に付与したPN値や、ヘッドラインとの掛かり受けなどの文章構造に応じて加減される。
一方、ユーザーがチームAのファンでなかった(アンチチームAであった)場合には、「チームA」という固有名詞にはネガティブなPN値(−)が与えられており、また、「頑張る」という単語には一般的な意味合いから、ポジティブなPN値(+)が与えられている。このときにも、記事本文の文章中では主語が省略されているため、「チームA」を暗黙の主語として文章中に追加して、文章PN値の算出を行う。この結果、同図(c)に示すように、暗黙の主語である固有名詞「チームA」に対するPN値(−)と、「頑張る」という一般的なPN値(+)とが含まれていることから、ニュートラルのみの文節を除外した文節を積算することによって、文章全体としてもその値はネガティブな「−0.01」となる。
また、他の例としては、例えば図4B(d)に示すように、情報ソースが「チームA 危険球で危険水域」というヘッドラインの記事であり、その記事の内容に「2戦連続の逆転負け」という文章であった場合にも、ユーザーがチームAのファンであるか否かで、この記事の文章PN値が変化する。ただし、ここでは、「逆転」と「負け」というキーワードの組み合わせでポジティブ・ネガティブが反転する情報が環境キーワードとして保持されている。すなわち、「逆転」の意味合いとしては一般的にはポジティブであるが、前後に連結される他のキーワードの種類によっては、その意味が反転し、強調するような機能が環境キーワードに保持されている。
そして、上記と同様に、ユーザーがチームAのファンであった場合には、「チームA」という固有名詞にはポジティブなPN値(+)が与えられている。また、「逆転」及び「負け」という単語には一般的な意味合いから、「逆転」にはポジティブなPN値(+)、「負け」にはネガティブなPN値(−)が与えられているとともに、これらの組み合わせでポジティブ・ネガティブが反転する情報が環境キーワードとして保持されている。この結果、ユーザーがチームAのファンである場合には、同図(e)に示すように、暗黙の主語である固有名詞「チームA」に対するPN値(+)と、「逆転」という一般的なPN値(+)が「負け」というキーワードによってPN値が反転されることから、これらを積算することによって、文章全体としてもその値はネガティブな「−0.01」となる。
一方、ユーザーがチームAのファンでなかった(アンチチームAであった)場合には、チームA」という固有名詞にはネガティブなPN値(−)が与えられている。また、「逆転」及び「負け」という単語には一般的な意味合いから、「逆転」にはポジティブなPN値(+)、「負け」にはネガティブなPN値(−)が与えられているとともに、これらの組み合わせでポジティブ・ネガティブが反転する情報が環境キーワードとして保持されている。この結果、ユーザーがチームAのアンチファンである場合には、同図(f)に示すように、暗黙の主語である固有名詞「チームA」に対するPN値(−)と、「逆転」という一般的なPN値(+)が「負け」というキーワードによってPN値が反転されることから、これらを積算することによって、文章全体としてもその値はポジティブな「+0.01」となる。
なお、PN値としては、ポジティブでもないネガティブでもないニュートラルな値として「0」も設定が可能となっていることから、本実施形態では、文節単位でPN値が0のときは、積算処理に含めずに無視するか、或いは他の文節に加算することで、文章全体としての文章PN値が「0」値になるのを回避している。
辞書データベース40bは、単語の上位又は下位関係、部分又は全体関係、同義関係、類義関係の少なくとも一つに基づいて単語を分類し、体系づけたシソーラス辞書に基づいて、解析対象となる単語を分類するシソーラス辞書を格納している。
(PN値算出機能の動作)
以上の構成を有するPN値算出機能は、以下のように動作する。図3Aは、PN値算出機能の動作順序を示すフローチャート図である。
先ず、ユーザーとの対話に先行し且つ常時周期的に、予め情報ソースの収集を行う(S101)。具体的には、情報ソース取得部101が、Web等の通信ネットワークを通じて取得される一般的な情報の他、サービス提供側で準備されたデータソース、端末内に蓄積されている各ユーザーに固有のプライベートなローカルデータなどを情報ソースとして収集する。Web等の通信ネットワークにおける情報収集としては、Webクローラーと呼ばれる、通信ネットワーク上のリンクを辿ってWebデータ間を遷移することにより、通信ネットワーク上のありとあらゆる情報データを回収する検索ロボットプログラムを用いる手法が挙げられる。サービス提供側で準備されたデータソースとしては、例えば、「選手年鑑」や辞書・辞典など、オフラインの情報を独自にデータベース化したデータが挙げられ、さらには、人物や有名建築物の画像などを解析し、同一名の人物や地名を関連情報と紐付けてデータベース化したものも含めてもよい。他方、プライベートなローカルデータの収集としては、ユーザーがWeb検索した際のキーワードや実際にアクセスしたWebページ、コンテンツの他、ユーザーが作成した文書、送受信した電子メール、ユーザーのスケジュールなどが挙げられる。また、情報ソースとしては、その情報を取得した時点の日付や時刻、場所、気象情報、関連するニュースなどを紐付けして取得するようにしてもよい。
次いで、収集された情報データがテキストデータではない場合には、必要に応じてテキストデータに変換し、不要なデータが含まれている場合にはクレンジング処理を施す(S102)。テキスト化処理としては、例えば、取得されたデータが音声であるときに音声認識処理によりテキスト化したり、映像や動画であるときに画像認識処理により写っている人物や場所等を所定の単語に置き換えたりすることが挙げられる。また、クレンジング処理としては、Webページに含まれるタグデータやその他の制御文字、音声に含まれる不要な発生やノイズなどを排除することが挙げられる。
このようにテキスト化され不要なデータが削除されたテキストデータについて、形態素解析を行うとともに、省略された主語などの推定を行う(S103〜S105)。具体的には、情報ソースについて、センテンスを抽出し、各センテンスを構成する単語に関する品詞を解析し、省略された単語を検出し、そのセンテンスの当該情報ソース内における位置関係に基づいて、当該省略単語の品詞に応じた単語を推定単語として検出して、この推定単語を省略単語の検出位置に推定単語を追加して、テキストデータを再構成する。また、省略された単語が追加され再構成されたテキストデータについて、木構造の解析を行い、木構造に基づくフィルタリングを行う。具体的には、図4Eに示すように、文章構造が分岐を有する複文などになっている場合に、分岐毎に単語の出現頻度を解析して、単語の優先度を設定し、優先度の低い単語を削除するなどのフィルタリングを行う。
次いで、情報ソースから得られたテキストデータから、固有名詞キーワード、事象キーワード及び環境キーワードを抽出するとともに、抽出された各キーワードに対するユーザーのポジティブ又はネガティブの度合いを示すPN値を設定する(S106)。このキーワードの検出や、PN値の設定に際しては、いわゆるシソーラス辞書を用いて、類義語のマージを行う。具体的には、単語の上位又は下位関係、部分又は全体関係、同義関係、類義関係の少なくとも一つに基づいて単語を分類し、体系づけたシソーラス辞書に基づいて、解析対象となる単語を分類するシソーラス分類を行う。
併せて、本実施形態では、取得された情報ソースから得られたテキストが、一つの話題に関連する一連の文章である場合、その一連の文章を一塊の単位記事として、単位記事毎にキーワード解析部106に入力して、当該単位記事に関してユーザーが抱いている感情を数値化した文章PN値を算出する(S107)。
その後、各キーワードとともに、各キーワードについてPN値設定部201が設定したPN値とを関連づけて、ユーザー情報データベース50に蓄積するとともに、ステップS102〜S107によって加工された情報ソースを単位記事毎に、文章PN値を関連づけて、情報ソースデータベース40aに蓄積する(S108)。
この情報ソースの蓄積に合わせて、予め或いは定期的に、各単語に対するPN値の収集も行う(S301)。このPN値の収集方法としては、例えば、SNSにおける「いいね!」ボタンのクリックなど賛同操作、レビュー入力などの評価操作を収集したり、各キーワードに対する心証をアンケート手続によって収集したりするなどが挙げられる。この収集されたPN値は、キーワード毎に「+」、「−」及び数値(0を含む。)として紐付けられて設定され、ユーザー情報データベース50に蓄積される。
そして、ユーザーとの対話においてユーザーからの問いかけなどの入力があった場合には(S201)、ユーザーによる入力データがテキストデータではない場合には、必要に応じてテキストデータに変換し、不要なデータが含まれている場合にはクレンジング処理を施す(S202)。テキスト化処理としては、例えば、取得されたデータが音声であるときに音声認識処理によりテキスト化したり、映像や動画であるときに画像認識処理により写っている人物や場所等を所定の単語に置き換えたりすることが挙げられる。また、クレンジング処理としては、Webページに含まれるタグデータやその他の制御文字、音声に含まれる不要な発生やノイズなどを排除することが挙げられる。
このようにテキスト化され不要なデータが削除されたテキストデータについて、形態素解析を行うとともに、省略された主語などの推定を行う(S203〜S205)。具体的には、情報ソースについて、センテンスを抽出し、各センテンスを構成する単語に関する品詞を解析し、省略された単語を検出し、そのセンテンスの当該情報ソース内における位置関係に基づいて、当該省略単語の品詞に応じた単語を推定単語として検出して、この推定単語を省略単語の検出位置に推定単語を追加して、テキストデータを再構成する。また、省略された単語が追加され再構成されたテキストデータについて、木構造の解析を行い、木構造に基づくフィルタリングを行う。具体的には、図4Eに示すように、文章構造が分岐R1,R2を有する複文などになっている場合(同図(a))に、省略された主語W301を追加して再構成されたセンテンスについて、分岐毎に単語の出現頻度を解析して、単語の優先度を設定し、優先度の低い分岐に含まれる単語を無視するなどのフィルタリングを行う。図4Eに示した例では、分岐R1には単語W101及びW102が含まれ(同図(b))、分岐R2には、単語W102〜103の3つ含まれていることから(同図(c))、分岐R2の優先度を高くして、低い分岐R1に含まれる単語W101を無視し、分岐R2側の単語のみをカウントする。
次いで、情報ソースから得られたテキストデータから、固有名詞キーワード、事象キーワード及び環境キーワードを抽出するとともに、抽出された各キーワードに対するユーザーのポジティブ又はネガティブの度合いを示すPN値を設定する(S206)。このキーワードの検出や、PN値の設定に際しては、いわゆるシソーラス辞書を用いて、類義語のマージを行う。具体的には、単語の上位又は下位関係、部分又は全体関係、同義関係、類義関係の少なくとも一つに基づいて単語を分類し、体系づけたシソーラス辞書に基づいて、解析対象となる単語を分類するシソーラス分類を行う。
併せて、本実施形態では、取得された情報ソースから得られたテキストが、一つの話題に関連する一連の文章である場合、その一連の文章を一塊の単位記事として、単位記事毎にキーワード解析部106に入力して、当該単位記事に関してユーザーが抱いている感情を数値化した文章PN値を算出する(S207)。その後、回答生成部107は、文章PN値算出部203が算出した文章PN値に基づき、情報ソース取得部101を通じて検索を行い、ユーザーに対する回答を生成する(S208)。
(PN値の学習処理)
上述したステップS206におけるPN値の設定では、ユーザー操作によってPN値を設定したが、本実施形態では、ユーザーがPN値を設定したキーワード以外のキーワードについては、学習機能により自動的に一般的なPN値を設定することができる。図4Dは、学習機能の動作を示すフローチャート図であり、図4Dは、学習時のデータ処理の概要を示す説明図である。
図4C及び図4Dに示すように、学習処理にあたり、先ず一般的なPN値を学習するためのテンプレートデータD101を生成する(S801)。このトレーニングデータD102は、テンプレートデータD101において、固有名詞や、ユーザーが既にPN値を設定したキーワードを、一般的な代名詞、動詞に置き換えたうえで、その置きかえられた文章(テキストデータ)に対する文章PN値(基準文章PN値)を設定したテーブルデータである。詳述すると、テンプレートデータD101には、固有名詞や、ユーザーが既にPN値を設定した動詞、形容動詞などのキーワードA〜Eを含むセンテンスが複数格納されている。
次いで、学習したPN値を評価するためのトレーニングデータD102を作成する(S802)。このトレーニングデータD102は、テンプレートデータD101において、固有名詞や、ユーザーが既にPN値を設定したキーワードを、一般的な代名詞、動詞に置き換えたうえで、その置きかえられた文章(テキストデータ)に対する文章PN値(基準文章PN値)を設定したテーブルデータである。詳述すると、テンプレートデータD101には、固有名詞や、ユーザーが既にPN値を設定した動詞、形容動詞などのキーワードA〜Eを含むセンテンスが複数格納されており、トレーニングデータD102では、各レコードのテキスト中に含まれている固有名詞A〜Eが、「私」や「彼(彼女)」等の代名詞に置き換えられており、一般的な名詞や動詞、形容動詞など固有名詞が代名詞に置き換えられた文章について学習の基準となる基準文章PN値が設定される。この基準文章PN値は、単一又は複数のユーザー若しくはユーザー以外の操作者が入力したものであり、専門のオペレーターが入力したり、Web上のアンケートなどにより収集することができる。
次いで、学習用PN値セットを選定し、テンプレートデータD103へのPN値の当て嵌めを行う(S803)。詳述すると、テンプレートデータD101に含まれる固有名詞、及びその文章中における品詞を解析し、各固有名詞をその品詞に応じた代名詞に置き換えたうえで、固有名詞以外の一般名詞や一般動詞などの単語O〜Uに対してランダムな値のPN値を設定した学習用PN値セットD104を当てはめて学習用データD105を生成する。
そして、学習用データD105について、学習文章PN値を算出する(S804)とともに、その学習用PN値セットD104の適応度を算出する(S805)。すなわち、テンプレートデータD103に学習用PN値セットD104のPN値を当てはめて得られる文章PN値算出部0により学習文章PN値を算出させ、この学習文章PN値と基準文章PN値と比較し、その一致度から適応度を算出する。
本実施形態では、この学習文章PN値と基準文章PN値との比較は、学習用PN値セットD104内のPN値を変動させつつ、学習文章PN値の算出、及び基準文章PN値との比較を複数世代にわたり実行し、世代間で最良の、学習用PN値セットを選定する。そのために、変動された各世代のPN値のセットに基づく学習文章PN値と基準文章PN値との一致度から、各世代における適応度を算出し、世代間の適応度を比較し、その時点における最良又は最悪、平均的或いは代表的なセットを記憶保持しておく(S806)。
次いで、記憶保持された世代数が所定数に達するか、或いは算出される適応度が所定範囲に収束するかを判断し(S807)、記憶保持された世代数が所定数に達せず、且つ算出される適応度が所定範囲に収束していない場合には(S807における”N”)、学習用PN値セットの選定及び適応度の算出等(S803〜S806)を繰り返させる。このとき、ステップS803における学習用PN値セットの選定では、適応度が上位である複数セットの一部を抽出して組み合わせて次世代の学習用PN値セットを生成する突然変異生成処理を行う。
そして、ステップS807において、記憶保持された世代数が所定数に達するか、或いは算出される適応度が所定範囲に収束した場合には(S807における”Y”)、世代間において最上位の学習文章PN値に係るキーワード及び設定されたPN値のセットを、一般的なPN値としてPN値設定部201に設定させる(S808)。
本機能によれば、ユーザーとの対話に関してユーザーが抱いている感情を数値化した文章PN値を算出し、その文章PN値に合致した情報を検索し、選定し、加工して提示することができるため、話し手の感情が大きく影響する日常会話において、話題の中心となっている人物や団体、場所などに対して、話し手がどのような感情を抱いているかによって、ユーザーが所望する検索結果や回答表現を提供することが可能となる。
特に、本実施形態では、情報ソースやユーザーからの問いかけについて、推定単語を省略単語の検出位置に推定単語を検出し、省略された主語や目的語などを推定することから、暗に話題の中心となっている人物や団体、場所をキーワードとして検索すべき情報を選定し、加工することができ、より正確にユーザーが所望する検索結果や回答表現を提供することが可能となる。
また、本実施形態では、いわゆるワードシソーラス分類を応用することにより、情報の検索や回答の生成に際し、同義関係、類義関係を考慮することができ、単純に音声やテキストを解析して得られるキーワード検索では漏れてしまう情報を適正に包含することができ、より正確にユーザーが所望する検索結果や回答表現を提供することが可能となる。
さらに、本実施形態では、情報データから得られるテキストデータに含まれる文章内における、文章構造が分岐を有する複文などになっている場合にも、分岐毎に単語の出現頻度を解析して、単語の優先度を設定しフィルタリングすることで、主たる話題となっているキーワードを適切に抽出することができる。
以上述べたように、本実施形態によれば、話し手であるユーザーが、特定の話題に対してポジティブな感情を抱いているか、ネガティブな感情を抱いているかを予測することによって、曖昧な日常会話をより正確に解析することができる。この結果、日常生活の中で大まかに無造作に交わされる会話のような自然文章を正確に解析し、さらには、話し相手の意図を推定して回答できる思考方法を模倣したコミュニケーションを図ることができる。
(2−2)ワード間距離算出機能
ワード間距離算出機能300は、動的クラスタリング部303と、群体パラメーター設定部301とを備えている。
群体パラメーター設定部301は、各キーワードに対して、入力されたキーワードの重要度、及びキーワード間の関連性の度合いに関する群体パラメーターを設定するモジュールである。本実施形態にかかる群体パラメーターとしては、
単語の出現頻度(暗黙の主語を含む。)
他のワードと同じ記事(話題)や文章、段落、文節内に出現した回数
文章の木構造において並列又は直列かの回数
その単語に係る「の」、「が」、「は」の他の助詞の出現頻度
出現時刻
を用いる。
なお、固有名詞はそれぞれマージしたあとのものを使用し、一般的な用語(勝つ、負ける)は、シソーラス辞書に引き当てて同義語をグルーピングしたあとに使用してもよい。この場合、出現頻度のカウントについては、グループ単位でのシソーラス辞書に対する引き当て数とすることができる。また、同義語のグループ内でもニュアンスや強調などを考慮した重み付をして頻度を算出してもよい。例えば、「勝つ」という文言と「連勝」という文言とは、「勝つ」という括りで同義語として扱うことができるため、"勝"が2回というようにカウントすることができ、さらにはその強調するニュアンスを加味した重みをつけて、1+1×2=3というように計算してもよい。
また、さらにこの群体パラメーターには、あるキーワードが出現しない経過時間に関する風化係数が含まれ、各キーワードに付与された風化係数に応じて、そのキーワードの重要度が減衰されるようになっている。この出現しない経過時間は上記(5)に掲げたような、最後の出現時刻からの経過時間に基づいて算出することができる。
このようにして算出された群体パラメーターは、図5C(b)に示すようなデータセットとして蓄積される。すなわち、各ワードに関する出現頻度や助詞係数、木構造パターン、関連テキストなどをメインのテーブルデータD1として、このテーブルデータD1の項目「助詞係数」にはテーブルデータD11をリレーションで関連づけ、項目「木構造」には、テーブルデータD12をリレーションで関連づけた構造を有するリレーショナルデータベースとなっている。これにより、一つの単語に、その単語自身の出現頻度やや関連テキストデータの他、他の単語それぞれとの関係性を示す助詞係数、木構造などが紐付けられており、動的クラスタリングにおける変位処理を行う場合には、図5Bに示すように、中心となる各単語を動的オブジェクトとして順番に取り上げ、その単語と紐付けられたテーブルデータD11,D12(図5C)中にある単語を仮想空間上の影響範囲R内で探索し、検出されればその他の単語との関係から移動方向や移動量を決定する。
このとき複数の単語が検出された場合には、それぞれに対するベクトル(F1及びF2)を計算し、テーブルデータD11,D12内で検出されなかった場合には、その検出されなかった単語をその中心となった単語(動的オブジェクト)の影響範囲Rから追い出すように移動方向及び移動量のベクトル(F4)を決定する。さらに、他の動的オブジェクトが中心となったときに、その他の動的オブジェクトについての変位処理によるベクトル(F3)も加算される。そして、それらのベクトルF1〜F4の合成ベクトルに基づいて変位処理を実行する。図5Bの例では、Word_k及びWord_lが影響範囲R内で関連づけられた単語として検出され、Word_oが関連のない単語として検出されているとともに、Word_i自身は、Word_zに対して関連のない単語として検出されている。
そして、群体パラメーター設定部301で設定された群体パラメーターは、ユーザー情報データベース50に蓄積されるとともに、動的クラスタリング部303に入力される。
動的クラスタリング部303は、図5C(a)に示すように、人や環境、話者の趣味や気分などいろいろな指標や切り口によって、言葉相互の関係性(距離)をクラスタリングするモジュールである。例えば、同じ野球ファンであっても、そのユーザーがピッチャーのファンである場合と、バッターのファンである場合とでは、そのチーム名や選手名、監督名などの固有名詞相互の関係性や、それぞれの重要度が異なる。
この動的クラスタリング部303によるクラスタリングは、各キーワードを、図5Bに示すように、各キーワードに設定された群体パラメーターに応じた挙動を取る動的オブジェクトとして仮想空間上にそれぞれ配置し、これらの動的オブジェクトに対する変位処理により行われる。具体的には、各動的オブジェクトについて、各動的オブジェクトを中心とする影響範囲Rに存在する他の動的オブジェクトに対する位置関係に基づき、一定のルールに則った変位処理を実行し、前記仮想空間上における各キーワード間の距離をワード間距離として算出する。この動的クラスタリング部303により算出された各ワード間距離は、話題ワールドマップとして、ユーザー情報データベース50に蓄積されるとともに、回答生成部107に入力される。
この動的クラスタリング部303による変位処理では、先ず、中心となる動的オブジェクトを自動で設定し、その中心となった動的オブジェクトの影響範囲内にある他の動的オブジェクトについて、所定のルールに従って動的オブジェクトを移動させる。この中心となる動的オブジェクトの選定は、出現頻度やユーザーの切り口(話題や記事等)に応じて行う。そして、ここで用いられるルールには、
(a)各キーワードの関連性の度合い基づいて、所定の影響範囲内に存在する他の動的オブジェクトに接近する方向に移動させること
(b)各キーワードの重要度に基づいて、移動量を決定すること
(c)各キーワードの関連性がない動的オブジェクト間は、影響範囲外へ追い出すようにして、離間する方向に移動させること
が含まれる。
このルールに従って変位処理をさせると、図5Bに示すように、例えば、中心となった動的オブジェクトWord_iと関連づけられた他の動的オブジェクトWord_k及びWord_lに対するベクトル(F1及びF2)を計算し、関連づけられていない動的オブジェクトWord_oを、影響範囲Rから追い出すように移動方向及び移動量のベクトル(F4)を決定する。さらに、他の動的オブジェクトWord_zが中心となったときに、その他の動的オブジェクトWord_zについての変位処理によるベクトル(F3)も加算される。そして、それらのベクトルF1〜F4の合成ベクトルに基づいて変位処理を実行する。
なお、上記辞書データベース40bは、単語の上位又は下位関係、部分又は全体関係、同義関係、類義関係の少なくとも一つに基づいて単語を分類し、体系付けたシソーラス辞書に基づいて、解析対象となる単語を分類するシソーラス辞書を格納している。
(群体パラメーター算出機能の動作)
以上の構成を有する群体パラメーター算出機能は、以下のように動作する。図3Bは、群体パラメーター算出機能の動作順序を示すフローチャート図である。
先ず、ユーザーとの対話に先行し且つ常時周期的に、予め情報ソースの収集を行う(S401)。具体的には、情報ソース取得部101が、Web等の通信ネットワークを通じて取得される一般的な情報の他、端末内に蓄積されている各ユーザーに固有のプライベートなローカルデータなどを情報ソースとして収集する。Web等の通信ネットワークにおける情報収集としては、Webクローラーと呼ばれる、通信ネットワーク上のリンクを辿ってWebデータ間を遷移することにより、通信ネットワーク上のありとあらゆる情報データを回収する検索ロボットプログラムを用いる手法が挙げられる。一方、プライベートなローカルデータの収集としては、ユーザーがWeb検索した際のキーワードや実際にアクセスしたWebページ、コンテンツの他、ユーザーが作成した文書、送受信した電子メール、ユーザーのスケジュールなどが挙げられる。また、情報ソースとしては、その情報を取得した時点の日付や時刻、場所、気象情報、関連するニュースなどを紐付けして取得するようにしてもよい。
次いで、収集された情報データがテキストデータではない場合には、必要に応じてテキストデータに変換し、不要なデータが含まれている場合にはクレンジング処理を施す(S402)。テキスト化処理としては、例えば、取得されたデータが音声であるときに音声認識処理によりテキスト化したり、映像や動画であるときに画像認識処理により写っている人物や場所等を所定の単語に置き換えたりすることが挙げられる。また、クレンジング処理としては、Webページに含まれるタグデータやその他の制御文字、音声に含まれる不要な発生やノイズなどを排除することが挙げられる。
このようにテキスト化され不要なデータが削除されたテキストデータについて、形態素解析を行うとともに、省略された主語などの推定を行う(S403,S404)。具体的には、情報ソースについて、センテンスを抽出し、各センテンスを構成する単語に関する品詞を解析し、省略された単語を検出し、そのセンテンスの当該情報ソース内における位置関係に基づいて、当該省略単語の品詞に応じた単語を推定単語として検出して、この推定単語を省略単語の検出位置に推定単語を追加して、テキストデータを再構成する。
次いで、情報ソースから得られたテキストデータから、キーワードを抽出するとともに、助詞係数の算出を行う(S405)。このキーワードの検出に際しては、いわゆるシソーラス辞書を用いて、類義語のマージを行う。具体的には、単語の上位又は下位関係、部分又は全体関係、同義関係、類義関係の少なくとも一つに基づいて単語を分類し、体系付けたシソーラス辞書に基づいて、解析対象となる単語を分類するシソーラス分類を行う。
また、助詞係数の算出では、ワード間距離を設定する対象となっているキーワードに付随する助詞の種類に基づいて、群体パラメーターを設定する。例えば、図5Aに示すように、野球の話題において、解析対象が「チームA」という単語であった場合、その単語に続く助詞がいずれとなっているかを解析し、さらにその後に続く単語との関係性の強弱を推定する。ここでは、「の」>「が、は」>「と」>その他、というように助詞係数を設定している場合、図5Aに示した例では、単語「チームA」と単語「マジック」とは助詞「が」で連結されており、「選手S」とは助詞「の」で連結されていることから、「チームA」と「選手S」との関係性は、「チームA」と「マジック」との関係性よりも強いと設定される。ここで抽出された助詞係数は、群体パラメーター設定部301に入力される。
次いで、省略された単語が追加され再構成されたテキストデータについて、文章内における文節を切り出し、文節間の分岐関係を抽出して、抽出された各分岐に基づく文章の木構造を算出するとともに、群体パラメーター設定部301は、ステップS405で算出した助詞係数と、センテンス解析部102が算出した木構造とに基づいて、群体パラメーターを設定する(S406)。
そして、各キーワードを動的オブジェクトとして、群体パラメーターに従って仮想空間上で変位処理をするシミュレーションを実行し、動的クラスタリングを行う(S407)。具体的には、各キーワードに設定された群体パラメーターに応じた挙動を取る動的オブジェクトとして仮想空間上にそれぞれ配置し、各動的オブジェクトについて、各動的オブジェクトを中心とする所定範囲に存在する他の動的オブジェクトに対する位置関係に基づき、一定のルールに則った変位処理を実行する。このシミュレーションを繰り返すことにより、各キーワードは、関係性の強い単語同士はそれぞれ集合して群体を形成し、関係性の弱い単語同士は離間していく。このシミュレーションは、話題毎に行い、このシミュレーションの結果として得られた、各単語の仮想空間上の座標を、話題毎の話題ワールドマップとして生成し、蓄積しておく(S407)。
その後、各キーワードとともに、各キーワードについて群体パラメーター設定部301が設定した群体パラメーターとを関連づけて、ユーザー情報データベース50に蓄積するとともに、ステップS402〜S407によって加工された情報ソースを単位記事毎に、話題ワールドマップを関連づけて、ユーザー情報データベース50に蓄積する(S408)。
そして、ユーザーとの対話においてユーザーからの問いかけなどの入力があった場合には(S501)、ユーザーによる入力データがテキストデータではない場合には、必要に応じてテキストデータに変換し、不要なデータが含まれている場合にはクレンジング処理を施す(S502)。テキスト化処理としては、例えば、取得されたデータが音声であるときに音声認識処理によりテキスト化したり、映像や動画であるときに画像認識処理により写っている人物や場所等を所定の単語に置き換えたりすることが挙げられる。また、クレンジング処理としては、Webページに含まれるタグデータやその他の制御文字、音声に含まれる不要な発生やノイズなどを排除することが挙げられる。
このようにテキスト化され不要なデータが削除されたテキストデータについて、形態素解析を行うとともに、省略された主語などの推定を行う(S503)。具体的には、情報ソースについて、センテンスを抽出し、各センテンスを構成する単語に関する品詞を解析し、省略された単語を検出し、そのセンテンスの当該情報ソース内における位置関係に基づいて、当該省略単語の品詞に応じた単語を推定単語として検出する。そして、ステップS503で得られた推定単語を省略単語の検出位置に推定単語を追加して、テキストデータを再構成する(S504)。
次いで、再構成されたテキストデータから、キーワードを抽出するとともに、助詞係数の算出を行う(S505)。このキーワードの検出に際しては、いわゆるシソーラス辞書を用いて、類義語のマージを行う。具体的には、単語の上位又は下位関係、部分又は全体関係、同義関係、類義関係の少なくとも一つに基づいて単語を分類し、体系付けたシソーラス辞書に基づいて、解析対象となる単語を分類するシソーラス分類を行う。
また、助詞係数の算出では、ワード間距離を設定する対象となっているキーワードに付随する助詞の種類に基づいて、群体パラメーターを設定する。例えば、図5Aに示すように、野球の話題において、解析対象が「チームA」という単語であった場合、その単語に続く助詞がいずれとなっているかを解析し、さらにその後に続く単語との関係性の強弱を推定する。ここでは、「の」>「が、は」>「と」>その他、というように助詞係数を設定している場合、図5Aに示した例では、単語「チームA」と単語「マジック」とは助詞「が」で連結されており、「選手S」とは助詞「の」で連結されていることから、「チームA」と「選手S」との関係性は、「チームA」と「マジック」との関係性よりも強いと設定される。ここで抽出された助詞係数は、群体パラメーター設定部301に入力される。
次いで、省略された単語が追加され再構成されたテキストデータについて、文章内における文節を切り出し、文節間の分岐関係を抽出して、抽出された各分岐に基づく文章の木構造を算出するとともに、群体パラメーター設定部301は、ステップS405で算出した助詞係数と、センテンス解析部102が算出した木構造とに基づいて、群体パラメーターを設定する(S506)。
そして、各キーワードを動的オブジェクトとして、群体パラメーターに従って仮想空間上で変位処理をするシミュレーションを実行し、動的クラスタリングを行う(S407)。具体的には、各キーワードに設定された群体パラメーターに応じた挙動を取る動的オブジェクトとして仮想空間上にそれぞれ配置し、各動的オブジェクトについて、各動的オブジェクトを中心とする所定範囲に存在する他の動的オブジェクトに対する位置関係に基づき、一定のルールに則った変位処理を実行する。このシミュレーションを繰り返すことにより、各キーワードは、関係性の強い単語同士はそれぞれ集合して群体を形成し、関係性の弱い単語同士は離間していく。このシミュレーションは、話題毎に行い、このシミュレーションの結果として得られた、各単語の仮想空間上の座標を、話題毎の話題ワールドマップとして生成し、又は更新しておく(S507)。
その後、回答生成部107は、ステップS507で生成した話題ワールドマップ上におけるワード間の距離を算出し、その算出結果をワード間距離として単語間の関係性の強弱として反映させつつ、情報ソース取得部101を通じて検索を行い、ユーザーに対する回答を生成する(S508)。
本機能によれば、話題ワールドマップ上のワード間距離を用いることにより、ユーザーの指標や切り口によって、そのユーザーが対話の中で用いている言葉相互の関係性や、話題に関する指標に基づいて関連性の高い単語をキーワードとして、そのユーザーにとって最適な情報を選定し、加工することができ、個々のユーザーが所望する検索結果や回答表現を提供することが可能となる。
特に、ユーザーが利用した情報データについて繰り返し一定のルールに則った変位処理を施すシミュレーションを実行することにより、関係性を有する単語は、重要度の高いものを中心として集まり、関係性のないものは離間していき、ユーザーの特性を反映させつつ動的に、より最適なワールドマップを形成することができる。また、本実施形態では、キーワードが使用されない期間に応じた風化係数によって、その使用されなくなったキーワードの重要度を減衰させるため、話題に上がらなくなった情報や死語となった流行語など、風化した単語がいつまでも検索結果に登場してしまうことを回避できる。
またこのとき、本実施形態では、情報ソースやユーザーからの問いかけについて、推定単語を省略単語の検出位置に推定単語を検出し、省略された主語や目的語などを推定することから、暗に話題の中心となっている人物や団体、場所をキーワードとして検索すべき情報を選定し、加工することができ、より正確にユーザーが所望する検索結果や回答表現を提供することが可能となる。
さらに、本実施形態では、ワード間距離を設定する対象となっているキーワードの助詞係数に基づいて前記群体パラメーターを設定することから、単語間における関連性の強度を、文章中で直接使われている「の」、「は」、「が」「と」などの助詞から求めることができ、日本人の感覚により適合した手法で、群体パラメーターを設定することができる。
本実施形態では、情報ソース取得部101が取得した情報ソースに含まれるテキストデータを、情報ソースのデータ構造に基づいて記事単位で切り出し、切り出された各記事単位に含まれる固有名詞を相互に関連づける記事単位辞書を生成することから、本名とニックネームといったように、本来同一の人物や団体、場所などを示す異なる固有名詞を、同一グループとして扱うことができ、単純に音声やテキストを解析して得られるキーワード検索では別個のものとして扱われてしまう情報を適正に包含することができ、より正確にユーザーが所望する検索結果や回答表現を提供することが可能となる。このとき、Web上のニュースなどの記事単位でグルーピングを行うため、同じ言葉であっても記事、すなわち話題毎に複数のグループに分類することができ、話題を特定することによりその話題に関連性の強い単語同士を同一の人や団体として扱うことができ、無関係な単語が検索キーワードに含まれるのを回避することができる。
また、本実施形態では、いわゆるワードシソーラス分類を応用することにより、情報の検索や回答の生成に際し、同義関係、類義関係を考慮することができ、単純に音声やテキストを解析して得られるキーワード検索では漏れてしまう情報を適正に包含することができ、より正確にユーザーが所望する検索結果や回答表現を提供することが可能となる。
さらに、本実施形態では、群体パラメーター設定部301が、木構造に基づいて群体パラメーターを設定することから、文章構造が分岐を有する複文など文章中で直接使われている文章表現から、単語間における関連性の強度を求めることができ、その文章の作者の意図を反映させた手法で、群体パラメーターを設定することができる。
以上述べたように、本実施形態によれば、同じ言葉(単語)の組合せであっても、それらの言葉が登場する話題や分野において、話し手であるユーザーがその言葉についてどのような指標や切り口でクラスタリングしているかを考慮することができ、曖昧な日常会話をより正確に解析することができる。この結果、日常生活の中で大まかに無造作に交わされる会話のような自然文章を正確に解析し、さらには、話し相手の意図を推定して回答できる思考方法を模倣したコミュニケーションを図ることができる。
(2−3)ポテンシャル場算出機能
ポテンシャル場算出機能400は、エゴグラム設定部401と、ポテンシャル場形成部402とを備えている。
エゴグラム設定部401は、 キーワード解析部106が抽出したキーワード、或いは情報ソースデータベース40aに蓄積されたキーワードのうち、特定の人、物又は事象に関するキーワードを話題キーワードとしてグルーピングし、そのグループ毎に、群体パラメーターに従って、各キーワードの分布状態を三次元の座標で形成されたマップとして作成し、マップ上における各キーワードに対するユーザーの自我状態を示すエゴグラムパラメーターを設定するモジュールである。
このエゴグラムパラメーターは、人間の性格を5つの独立したパラメーターで表現した係数であり、エゴグラムとは、これらのパラメーターにより表される5つの自我状態が放出する心的エネルギーの高さをグラフにしたものであり、アンケートや性格診断などで求めることができる。エゴグラムパラメーターとしては、
CP(批判的親):厳しい心。自分の価値観を正しいものと信じて譲らず、責任を持って行動し、他人に批判的である。この部分が低いと、ルーズな性格になる。
NP(養育的親):優しい心。他人を思いやって行動し、保護的で親切である。この部分が低いと、冷淡な性格になる。
A(大人):合理的な心。現実を重視しており、物事をきちんと計算して行動し、合理的である。この部分が低いと、非合理的な性格になる。
FC(自由な子ども):自由奔放な心。明るく無邪気でユーモアがあり、わがままで自己中心的である。この部分が低いと、閉鎖的でネクラな性格になる。
AC(順応した子ども):従順な心。他人に嫌われたくないという気持ちが強く、言いたいことを言わずに我慢してしまい、妥協的である。この部分が低いと、マイペースな性格になる。
といったものが挙げられる。
ポテンシャル場形成部402は、エゴグラム設定部401によって設定されたエゴグラムパラメーター、及び群体パラメーター設定部301が設定した群体パラメーターに基づいて、動的クラスタリング部303が算出したワード間距離を補正し、各キーワードに対するユーザーの反応パターンを示すユーザーポテンシャル場を算出するモジュールである。本実施形態では、動的クラスタリング部303で算出された各単語に関するワード間距離は、ワールドマップデータとしてユーザー情報データベース50に蓄積されており、ポテンシャル場形成部402は、このワールドマップデータを読み出し、ワールドマップ上に配置された各単語(動的オブジェクト)に対して、前記エゴグラムパラメーターを反映させる補正処理を実行して、動的オブジェクトを再配置させる。
この補正処理は、各キーワードの重要度をそのキーワードのサイズとし、少なくとも各キーワードのサイズとエゴグラムパラメーターの組合せに基づく定数と、に基づいて行う。例えば、各キーワードが有する影響力であるエネルギーを決定し、ワード間距離に係る2つのキーワード間の距離を、各キーワードの有する各エネルギーの積に比例し、当該キーワードのサイズに反比例する引力又は斥力が作用しているとして、前記ワード間距離を補正する。
具体的に、補正処理においては、図6(c)に示すように、ワールドマップ上に含まれる各単語の群体パラメーターと、エゴグラムパラメーターとを用いて、補正用の要素を以下のように定義する。
・ 各wordのサイズ半径r = size/2
・ 各wordが持っているエネルギーE=nr(A)xnr(pn)xnr(size
・ 各wordのエネルギーの及ぶ範囲σ=nr(NP)
・ 各wordのエネルギーの放出の勢いΔd=nrm(FC)
ここで、nrmはnormalize[0.7−1]である。
・ 各wordのまわりの影響力の濃度(強度分布)の計算 an+1=anΔd
・ 各wordの自分への引き寄せ力→初期配置の移動量=nr(cp)
ここで、nrはnormalize [0,1]
・各word(星)の単位ベクトル PNの(+)(−)でベクトルの向きを逆とする。
そして、これらの要素に基づいて、単語間相互に作用する引力又は反発力を次の式により求める。
この式において、一方の単語をユーザー自身を意味する一人称の単語群とすることにより、他方の単語との間の引力又は反発力を求めることができ、その言葉がユーザー自身に与える影響度を推定することができる。
さらに、動的クラスタリング部303では、引き込みのルールに従って、ユーザーポテンシャル場を補正する。この引き込みルールは、振動子群が相互作用や周期外力の作用によって振動タイミングを揃える同期現象を応用した補正処理であり、次式で表される。
なお、θtは特定の動的オブジェクトの位相であり、θneiighber,tは、時刻tでの周辺の他の動的オブジェクトの位相を意味する。また、上式においてACは、エゴグラムパラメーターであり、上式の引き込み係数として用いられている。
そして、この引込のルールでは、
(1)特定の動的オブジェクトが所定の振動(位相θt)をしているものとし、
(2)当該特定の動的オブジェクトと、その周囲で振動(位相θneiighber,t)する他の複数の動的オブジェクトとが、各摂動(位相θt−θneiighber,t)を介して相互作用を生じさせているものとし、
(3)各摂動が消失されて、それぞれの動的オブジェクトの各振動が一定の周期解に漸近し、確動的オブジェクトの変位が同期する
として、各動的オブジェクトを再配置するための変位処理を実行する。なお、本実施形態では、各単語(自身を意味する一人称の単語群を含む)に係る動的オブジェクトは、その言葉が使用された時間差などをノーマライズした値を位相とし、その言葉を発したときの音量や、その言葉の出現頻度、重要度振動をノーマライズした値を振幅として振動しているものとして演算する。
この引き込みルールにより、それぞれが所定の摂動(ずれ)をもってバラバラに変位している動的オブジェクト群が、摂動を消失させるように周囲の動的オブジェクトを引き込んで同期させることにより、特定の言葉や情報が突出して使用されるのを平準化できる一方で、普段使用されない言葉や情報を活性化させることができる。引き込まれて活性化された単語はその言葉自身がまた上式により引力又は反発力を有することとなり、その言葉がユーザーに対して与える影響度が変化され、動的にワールドマップを更新されることとなる。
(対話インターフェースの動作)
以上の構成を有する対話インターフェースは、以下のように動作する。図3は、対話インターフェースの動作順序を示すフローチャート図である。
先ず、ユーザーとの対話に先行し且つ常時周期的に、予め情報ソースの収集を行う(S601)。具体的には、情報ソース取得部101が、Web等の通信ネットワークを通じて取得される一般的な情報の他、端末内に蓄積されている各ユーザーに固有のプライベートなローカルデータなどを情報ソースとして収集する。Web等の通信ネットワークにおける情報収集としては、Webクローラーと呼ばれる、通信ネットワーク上のリンクを辿ってWebデータ間を遷移することにより、通信ネットワーク上のありとあらゆる情報データを回収する検索ロボットプログラムを用いる手法が挙げられる。一方、プライベートなローカルデータの収集としては、ユーザーがWeb検索した際のキーワードや実際にアクセスしたWebページ、コンテンツの他、ユーザーが作成した文書、送受信した電子メール、ユーザーのスケジュールなどが挙げられる。また、情報ソースとしては、その情報を取得した時点の日付や時刻、場所、気象情報、関連するニュースなどを紐付けして取得するようにしてもよい。
次いで、収集された情報データがテキストデータではない場合には、必要に応じてテキストデータに変換し、不要なデータが含まれている場合にはクレンジング処理を施す(S602)。テキスト化処理としては、例えば、取得されたデータが音声であるときに音声認識処理によりテキスト化したり、映像や動画であるときに画像認識処理により写っている人物や場所等を所定の単語に置き換えたりすることが挙げられる。また、クレンジング処理としては、Webページに含まれるタグデータやその他の制御文字、音声に含まれる不要な発生やノイズなどを排除することが挙げられる。
このようにテキスト化され不要なデータが削除されたテキストデータについて、形態素解析を行うとともに、省略された主語などの推定を行う(S603,S604)。具体的には、情報ソースについて、センテンスを抽出し、各センテンスを構成する単語に関する品詞を解析し、省略された単語を検出し、そのセンテンスの当該情報ソース内における位置関係に基づいて、当該省略単語の品詞に応じた単語を推定単語として検出して、この推定単語を省略単語の検出位置に推定単語を追加して、テキストデータを再構成する。
次いで、情報ソースから得られたテキストデータから、キーワードを抽出するとともに、助詞係数の算出を行う(S605)。このキーワードの検出に際しては、いわゆるシソーラス辞書を用いて、類義語のマージを行う。具体的には、単語の上位又は下位関係、部分又は全体関係、同義関係、類義関係の少なくとも一つに基づいて単語を分類し、体系付けたシソーラス辞書に基づいて、解析対象となる単語を分類するシソーラス分類を行う。
また、助詞係数の算出では、ワード間距離を設定する対象となっているキーワードに付随する助詞等の付随語の種類に基づいて、群体パラメーターを設定する。例えば、図5B(a)に示すように、野球の話題において、解析対象が「チームA」という単語であった場合、その単語に続く助詞がいずれとなっているかを解析し、さらにその後に続く単語との関係性の強弱を推定する。
ここで、「の」>「が、は」>「と」>その他、というように助詞係数を設定している場合、図5B(a)に示した例では、単語「チームA」と単語「マジック」とは助詞「が」で連結されており、「選手S」とは助詞「の」で連結されていることから、「チームA」と「選手S」との関係性は、「チームA」と「マジック」との関係性よりも強いと設定される。ここで抽出された助詞係数は、群体パラメーター設定部301に入力される。
なお、本実施形態では、ここでいうところの「付随語」としては、単語間の関連性を示すものであれば、日本語の「助詞」に限定されず、各言語の文法に応じて適宜選択することができ、英語であれば語順や前置詞、関係代名詞やその他用法などから求めることもできる。
次いで、省略された単語が追加され再構成されたテキストデータについて、文章内における文節を切り出し、文節間の分岐関係を抽出して、抽出された各分岐に基づく文章の木構造を算出するとともに、群体パラメーター設定部301は、ステップS605で算出した助詞係数と、センテンス解析部102が算出した木構造とに基づいて、群体パラメーターを設定する(S606)。
そして、各キーワードを動的オブジェクトとして、群体パラメーターに従って仮想空間上で変位処理をするシミュレーションを実行し、動的クラスタリングを行う(S607)。具体的には、各キーワードに設定された群体パラメーターに応じた挙動を取る動的オブジェクトとして仮想空間上にそれぞれ配置し、各動的オブジェクトについて、各動的オブジェクトを中心とする所定範囲に存在する他の動的オブジェクトに対する位置関係に基づき、一定のルールに則った変位処理を実行する。このシミュレーションを繰り返すことにより、各キーワードは、関係性の強い単語同士はそれぞれ集合して群体を形成し、関係性の弱い単語同士は離間していく。このシミュレーションは、話題毎に行い、このシミュレーションの結果として得られた、各単語の仮想空間上の座標を、話題毎の話題ワールドマップとして生成し、蓄積しておく(S607)。
その後、各キーワードとともに、各キーワードについて群体パラメーター設定部301が設定した群体パラメーターとを関連づけて、ユーザー情報データベース50に蓄積するとともに、ステップS602〜S607によって加工された情報ソースを単位記事毎に、話題ワールドマップを関連づけて、ユーザー情報データベース50に蓄積する(S608)。
他方、この情報ソースの蓄積に合わせて、予め或いは定期的に、各単語に対する群体パラメーター及びエゴグラムの収集も行う(S301)。この群体パラメーターの収集方法としては、例えば、SNSにおける「いいね!」ボタンのクリックなど賛同操作、レビュー入力などの評価操作を収集したり、各キーワードに対する心証をアンケート手続によって収集したりするなどが挙げられる。また、エゴグラムの収集は、性格診断などにより収集される。この収集された群体パラメーターは、キーワード毎に「+」、「−」及び数値(0を含む。)として紐付けられて設定され、ユーザー情報データベース50に蓄積される。エゴグラムパラメーターも、話題毎にグルーピングしたうえで、ユーザー情報データベース50に蓄積される。
そして、ユーザーとの対話においてユーザーからの問いかけなどの入力があった場合には(S701)、ユーザーによる入力データがテキストデータではない場合には、必要に応じてテキストデータに変換し、不要なデータが含まれている場合にはクレンジング処理を施す(S702)。テキスト化処理としては、例えば、取得されたデータが音声であるときに音声認識処理によりテキスト化したり、映像や動画であるときに画像認識処理により写っている人物や場所等を所定の単語に置き換えたりすることが挙げられる。また、クレンジング処理としては、Webページに含まれるタグデータやその他の制御文字、音声に含まれる不要な発生やノイズなどを排除することが挙げられる。
このようにテキスト化され不要なデータが削除されたテキストデータについて、形態素解析を行うとともに、省略された主語などの推定を行う(S703)。具体的には、情報ソースについて、センテンスを抽出し、各センテンスを構成する単語に関する品詞を解析し、省略された単語を検出し、そのセンテンスの当該情報ソース内における位置関係に基づいて、当該省略単語の品詞に応じた単語を推定単語として検出する。そして、ステップS703で得られた推定単語を省略単語の検出位置に推定単語を追加して、テキストデータを再構成する(S704)。
次いで、再構成されたテキストデータから、キーワードを抽出するとともに、助詞係数の算出を行う(S705)。このキーワードの検出に際しては、いわゆるシソーラス辞書を用いて、類義語のマージを行う。具体的には、単語の上位又は下位関係、部分又は全体関係、同義関係、類義関係の少なくとも一つに基づいて単語を分類し、体系付けたシソーラス辞書に基づいて、解析対象となる単語を分類するシソーラス分類を行う。
また、助詞係数の算出では、ワード間距離を設定する対象となっているキーワードに付随する助詞の種類に基づいて、群体パラメーターを設定する。例えば、図5B(a)に示すように、野球の話題において、解析対象が「チームA」という単語であった場合、その単語に続く助詞がいずれとなっているかを解析し、さらにその後に続く単語との関係性の強弱を推定する。ここでは、「の」>「が、は」>「と」>その他、というように助詞係数を設定している場合、図5B(a)に示した例では、単語「チームA」と単語「マジック」とは助詞「が」で連結されており、「選手S」とは助詞「の」で連結されていることから、「チームA」と「選手S」との関係性は、「チームA」と「マジック」との関係性よりも強いと設定される。ここで抽出された助詞係数は、群体パラメーター設定部301に入力される。
次いで、省略された単語が追加され再構成されたテキストデータについて、文章内における文節を切り出し、文節間の分岐関係を抽出して、抽出された各分岐に基づく文章の木構造を算出するとともに、群体パラメーター設定部301は、ステップS605で算出した助詞係数と、センテンス解析部102が算出した木構造とに基づいて、群体パラメーターを設定する(S706)。
そして、ユーザー情報データベース50に蓄積されているワールドマップを読み出して参照し、ユーザーポテンシャル場を生成する(S707)。具体的には、各キーワードを動的オブジェクトとして、群体パラメーターに従って仮想空間上に配置するとともに、ワールドマップ上に配置された動的オブジェクト全体の重心位置を、ユーザーの自我の中心として設定する。この重心位置は、仮想空間上に存在するすべての動的オブジェクトの座標と、質量(出現頻度や優先度から換算)とから重量を加味した座標位置として求め、この重心位置に、ユーザー自身(「わたし」、「ぼく」などの一人称)を配置する。なお、このユーザー自身を意味する一人称は、単一の単語ではなく、「わたし」、「ぼく」などの一般的な一人称のほか、本人の氏名やニックネームなどの同義語をマージしてグルーピングした単語群とする。
そして、この自我の中心を示す座標原点が設定されたワールドマップ上において、変位処理を行うための群体シミュレーションを実行し、動的クラスタリングを行う。その際、ステップS301で収集されたエゴグラムパラメーター及び群体パラメーターに基づいて、ステップS607で生成されたワールドマップにおけるワード間距離を話題毎の補正し、各キーワードに対するユーザーの反応パターンを示すユーザーポテンシャル場を算出する。ユーザー自身(「わたし」、「ぼく」などの一人称を意味する単語群)を重心位置に配置したユーザーポテンシャル場を参照することで、ユーザー自身と各キーワードとの相対的なワード間距離を算出することができる。
詳述すると、各キーワードに設定された群体パラメーターに応じた挙動を取る動的オブジェクトとして仮想空間上にそれぞれ配置し、各動的オブジェクトについて、各動的オブジェクトを中心とする所定範囲に存在する他の動的オブジェクトに対する位置関係に基づき、上式に則った単語間の引力及び反発力を求め、各言葉(キーワード)がユーザー自身に及ぼす影響力を推定することができる。
これにより、各キーワードは動的オブジェクトとして、ユーザーの性格に応じて、且つ、話題毎に関係性に応じて、その大きさや位置、影響力が設定された群体として配置され、ユーザーポテンシャル場が形成される。このとき、関係性の弱い単語同士や、ユーザーの性格上受け入れにくい単語は離間していく。また、ユーザーの性格や話題、単語との相性に余よっては、ユーザーが嫌いな単語が近づいてくることもあり、ユーザー自身にとってストレスフルな状態がユーザーポテンシャル場に自動的に形成される場合もある。このシミュレーションは、話題毎に行い、このシミュレーションの結果として再配置された、各単語の仮想空間上の座標を、話題毎のユーザーポテンシャル場として生成し、又は保存しておく(S707)。
その後、回答生成部107は、ステップS707で生成したユーザーポテンシャル場上におけるワード間の距離を算出し、その算出結果をワード間距離として単語間の関係性の強弱として反映させつつ、情報ソース取得部101を通じて検索を行い、ユーザーに対する回答を生成する(S708)。
本機能によれば、ユーザーの性格が反映されたユーザー固有のユーザーポテンシャル場上のワード間距離を用いることにより、話し手の感情が大きく影響する日常会話において、ユーザーが対話の中で用いている言葉や話題に基づく関連性の高い単語をキーワードとして、そのユーザーの性格に合わせて、ときには心地よい或いは有益な情報を選定し、ときにはストレスフルな情報や表現となるように加工することで、個々のユーザーの性格に合わせて興味を惹いたり、対話を継続できるような検索結果や回答表現を提供することが可能となる。
このとき、ユーザーの受け止め方や、ユーザーに与える心的な影響度を、話題毎に考慮するため、話題が順次移っていくような日常会話であっても、自然な形でユーザーの趣味嗜好に合わせたコミュニケーションを取ることができる。
特に、ユーザーが利用した情報データについて、群体シミュレーション、及びエゴグラムパラメーターによる補正処理を実行することにより、ユーザーの性格を反映させたユーザーポテンシャル場を生成できる。詳述すると、本来、ユーザー自身にとっての自己中心的な理想は、図6(a)に示すように、自分にとって心地よいものが近くに存在し、心地悪いものが遠くに存在している。ところが、現実は、同図(b)に示すように、自分の意思とは関係なく、気に入っていた物がなくなったり、嫌いな人が接近してきたり、好きな人が遠距離に転勤したり等、外からの影響で周囲の環境が変わってしまい、自己中心的な理想が崩され、ポテンシャル場がゆがめられたストレスフルな状況が形成される。
本実施形態では、このようなリアルなユーザー固有のポテンシャル場を動的に形成することにより、このユーザーポテンシャル場を利用することで、話し相手の性格を考慮したうえで、ユーザーの興味を惹いたり、対話を継続させられるような情報を選択し、ユーザーを面白がらせるような加工して回答できる。
またこのとき、本実施形態では、情報ソースやユーザーからの問いかけについて、推定単語を省略単語の検出位置に推定単語を検出し、省略された主語や目的語などを推定することから、暗に話題の中心となっている人物や団体、場所をキーワードとして検索すべき情報を選定し、加工することができ、より正確にユーザーが所望する検索結果や回答表現を提供することが可能となる。
さらに、本実施形態では、ワード間距離を設定する対象となっているキーワードの助詞係数に基づいて前記群体パラメーターを設定することから、単語間における関連性の強度を、文章中で直接使われている「の」、「は」、「が」「と」などの助詞から求めることができ、日本人の感覚により適合した手法で、群体パラメーターを設定することができる。
本実施形態では、情報ソース取得部101が取得した情報ソースに含まれるテキストデータを、情報ソースのデータ構造に基づいて記事単位で切り出し、切り出された各記事単位に含まれる固有名詞を相互に関連づける記事単位辞書を生成することから、本名とニックネームといったように、本来同一の人物や団体、場所などを示す異なる固有名詞を、同一グループとして扱うことができ、単純に音声やテキストを解析して得られるキーワード検索では別個のものとして扱われてしまう情報を適正に包含することができ、より正確にユーザーが所望する検索結果や回答表現を提供することが可能となる。このとき、Web上のニュースなどの記事単位でグルーピングを行うため、同じ言葉であっても記事、すなわち話題毎に複数のグループに分類することができ、話題を特定することによりその話題に関連性の強い単語同士を同一の人や団体として扱うことができ、無関係な単語が検索キーワードに含まれるのを回避することができる。
さらに、本実施形態では、群体パラメーター設定部301が、木構造に基づいて群体パラメーターを設定することから、文章構造が分岐を有する複文など文章中で直接使われている文章表現から、単語間における関連性の強度を求めることができ、その文章の作者の意図を反映させた手法で、群体パラメーターを設定することができる。
(2−4)回答生成機能
本実施形態では、コア機能間で共通して用いられる回答生成部107を有している。回答生成部107は、上記phase4〜6を実行するモジュールであり、上述したように、文章PN値算出部203や、動的クラスタリング部303、ポテンシャル場形成部402が算出した文章PN値や、ワールドマップ、ユーザーポテンシャル場などに基づき、情報ソース取得部101を通じて検索を行い、ユーザーに対する回答を生成するモジュールである。この回答生成部107で生成された回答は、対話入出力部60の回答出力部60bを通じて出力される。
(作用・効果)
以上説明した、本実施形態に係る対話インターフェースシステムによれば、従来の人工知能の機能に加えて、より人間に近い受け答えをするためのアルゴリズムであるコア機能の三要素(「PN値」算出機能、「ワード間距離」算出機能、「ポテンシャル場」算出機能)により、入力される各種情報に対して、利用ユーザーの友人のような対応すべく、そのユーザーに関する情報や心理状態をも加味して応答するように、そのユーザー用に特化され、且つ、そのユーザーとの相性を考慮した擬人格によって、多種多様な回答(リアクション)を表現することができる。特に、「PN値」算出機能、及び「ワード間距離」算出機能で生成された文章の感情(PN値)及び各話題に応じたワード間距離に関する算出データを、「ポテンシャル場」算出機能に集約し、リアルなユーザー固有のポテンシャル場を動的に形成し、このユーザーポテンシャル場を利用することで、話し相手の性格を考慮したうえで、ユーザーの興味を惹いたり、対話を継続させられるような情報を選択し、ユーザーを面白がらせるような加工して回答できる思考方法を模倣したコミュニケーションを実現できる。