(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
(第1の実施の形態)
以下、
図1〜12を参照して、本発明による意図推定システムの一実施形態を説明する。
【0009】
図1は、意図推定システム1の構成を示すブロック図である。意図推定システム1は、車載器200と、中継サーバ1000と、音声認識サーバ300と、施設検索サーバ400と、管理端末500とから構成される。中継サーバ1000、車載器200、音声認識サーバ300、施設検索サーバ400、および管理端末500は、通信網Xを介して互いに通信を行う。中継サーバ1000の構成は、後に
図2を用いて説明する。以下では
図1を参照して車載器200の構成を説明する。
【0010】
車載器200は、たとえば、自動車に搭載されるカーナビゲーション装置である。車載器200は、音声入力部1020と、操作入力部1030と、表示部1040と、音声出力部1050と、位置取得部1060と、制御部1070と、通信部1080とを備える。制御部1070は、後述するように、音声入力部1020、操作入力部1030、表示部1040、音声出力部1050、位置取得部1060、および通信部1080に動作指令を出力し様々な情報を授受する。
【0011】
音声入力部1020は、たとえばマイクである。音声入力部1020は、制御部1070から指令を受けると動作を開始する。音声入力部1020は、車載器200のユーザが発話した音声を検出して電気信号に変換し、制御部1070に出力する。
操作入力部1030は、たとえば押しボタンおよびポインティングデバイスである。操作入力部1030は、ユーザによる入力操作を検出して制御部1070に出力する。操作入力部1030はこれから音声入力を行うユーザを選択するボタン、および音声入力を開始するボタンを備える。
【0012】
表示部1040は、たとえば液晶ディスプレイである。表示部1040は、制御部1070からの出力に従い、文字および画像を表示してユーザに提示する。
音声出力部1050は、たとえばスピーカである。音声出力部1050は、制御部1070からの出力に従い、音声を発してユーザに報知する。
位置取得部1060は、たとえばGPS受信機である。位置取得部1060は、制御部1070からの指令により衛星から電波を受信し、当該車載器200の位置を算出する。位置取得部1060は、算出した位置を制御部1070に出力する。
【0013】
制御部1070は、CPU、ROM、およびRAMを備える。ROMには、当該車載器200を識別する端末IDが保存される。制御部1070は、操作入力部1030からユーザを選択するボタンの信号を受信すると、ユーザを識別するユーザIDをRAMに保存する。制御部1070は、操作入力部1030から音声入力を開始するボタンの信号を受信すると、音声入力部1020および位置取得部1060に動作指令を出力する。制御部1070は、音声入力部1020が出力する音声信号、位置取得部1060が出力する位置、ROMに保存される端末ID、およびユーザIDを中継サーバ1000に送信する。送信した情報は中継サーバ1000で意図推定され、通信部1080がその意図推定結果を受信する。制御部1070は、通信部1080から入力された意図推定結果に従って動作する。たとえば、制御部1070が「自宅ルート設定」という意図推定結果を受信すると、ルート検索部1010に予め設定されている自宅へのルートを検索させる。その検索結果を表示部1040に表示させるとともに、音声出力部1050から音声を出力して処理が完了したことをユーザに報知する。
【0014】
通信部1080は、通信網Xを介して中継サーバ1000と通信を行う。通信部1080は、中継サーバ1000から意図推定結果を受信すると、受信した意図推定結果を制御部1070に出力する。
音声認識サーバ300は、発話の音声信号が入力されると、対応する文字情報、すなわちテキストを出力する不図示の音声認識部を備える。音声認識サーバ300は、中継サーバ1000から音声信号を受信すると、音声認識部に当該音声信号を入力し、得られたテキストを中継サーバ1000に送信する。
施設検索サーバ400は、施設に関する情報を記憶した不図示のPOIデータベースを備える。施設検索サーバ400は、中継サーバ1000から検索クエリを受信すると、検索クエリを用いてPOIデータベースを検索し、得られた検索結果を中継サーバ1000に送信する。
管理端末500は、オペレータの操作に従い、中継サーバ1000を管理する。
【0015】
(中継サーバの構成)
図2を用いて中継サーバ1000の構成を説明する。中継サーバ1000は、外部と通信を行う通信部1110と、不図示の制御部と、不図示の記憶部を備える。
図2では、制御部により実行される複数の機能、および記憶部に保存される複数のデータを、概念的に機能ブロックとして表現している。ここでは全ての構成要素の概要、および各構成要素の相関を説明し、その後にデータの構造や具体的な動作を説明する。
【0016】
不図示の制御部により実行される機能は、意図推定を実行する意図推定部1120と、POI検索の指令を出力する検索部1140と、基礎学習データ群1201および追加学習データ群1202が入力されると評価用統計モデル1240およびルールテーブル1132を出力する学習部1220と、評価用統計モデル1240を評価する評価部1230と、基礎学習データ群1201および追加学習データ群1202の修正をはじめとして、学習部1220や評価部1230に動作指令を出力するデータ修正部1260、である。
【0017】
不図示の記憶部に保存されるデータは、意図推定部1120が意図推定に用いる意図推定モデル1130と、意図推定部1120の推定結果およびその正誤が記されるユーザログ1180と、ユーザログ1180から作成される学習データである追加学習データ群1202、および基礎学習データ群1201と、評価用統計モデル1240の評価に用いる評価データ1210と、学習部1220により作成される評価用統計モデル1240と、後に説明する優先度を算出する際に利用する優先度基礎情報1270である。
【0018】
(機能の概要)
通信部1110は、通信網Xを介して車載器200、音声認識サーバ300、施設検索サーバ400、管理端末500と通信を行う。通信部1110は、車載器200から音声信号、位置情報、端末ID、およびユーザIDを受信すると、音声信号を音声認識サーバ300に送信し、位置情報を検索部1140に出力し、音声信号、端末ID、ユーザID、現在の日付および現在時刻をユーザログ1180に記録する。通信部1110は、音声認識サーバ300から音声信号を認識した結果であるテキストを受信すると、そのテキストを意図推定部1120に出力する。通信部1110は、検索部1140から検索クエリが入力されると、その検索クエリを施設検索サーバ400に送信する。通信部1110は、施設検索サーバ400から検索結果を受信すると、その検索結果を検索部1140に出力する。
【0019】
意図推定部1120は、意図推定モデル1130を用いて、通信部1110から入力されたテキストの意図を推定し、意図推定結果を出力する。意図推定結果は、後に詳しく説明する。意図推定部1120は、推定結果を通信部1110を通じて車載器200に出力するとともに、ユーザログ1180に書き込む。ただし、意図推定結果が周辺検索などのようにPOI検索を要するものの場合は、車載器200に直接出力せず検索部1140に出力する。そして、検索部1140が検索した結果とともに車載器200に出力する。
【0020】
検索部1140は、通信部1110から入力された位置情報、および意図推定部1120から入力された検索条件にしたがい検索クエリを作成し、通信部1110を通じて施設検索サーバ400に送信する。検索部1140は、施設検索サーバ400から受信した検索結果を意図推定部1120に出力する。
【0021】
学習部1220は、追加学習データ群1202および基礎学習データ群1201を用いて、評価用統計モデル1240を作成する。評価用統計モデル1240は、統計モデル1131を置き換えるために作成される。評価部1230が評価用統計モデル1240に対して肯定的な評価を行うと、従前の統計モデル1131が破棄され、評価用統計モデル1240が新たな統計モデル1131として意図推定モデル1130に記憶される。詳しくは後述するが、学習部1220は評価用統計モデル1240を作成する過程において、または評価用統計モデル1240を作成した後において、ルールテーブル1132を更新する。
【0022】
評価部1230は、評価データ1210を用いて評価用統計モデル1240を評価する。評価方法および評価基準は後述する。評価部1230が肯定的な評価を行うと、上記のようにして評価用統計モデル1240が統計モデル1131に置き換わる。評価部1230が否定的な評価を行うと、データ修正部1260が動作を開始する。
【0023】
データ修正部1260は、追加学習データ群1202の作成を行う。また、追加学習データ群1202および基礎学習データ群1201を後述するように修正する。この修正には、増加方式と減少方式があり、いずれの方式を採用するかは、事前に管理端末500から入力される。この修正を行った後に、再度、学習部1220に評価用統計モデル1240の作成を指示する。すなわち、データ修正部1260における追加学習データ群1202および基礎学習データ群1201の修正は、再度作成される評価用統計モデル1240が、評価部1230により肯定的な評価を得られることを意図している。
【0024】
正解判定部1280は、ユーザログ1180に記録されているテキスト、およびそのテキストを意図推定部1120が処理した意図推定結果を参照し、意図推定部1120の意図推定結果が正しいか否かを判断する。正解判定部1280は、その判断結果、および間違っていたと判断する場合には、正しい意図(以後、正解意図表現)をユーザログ1180に記録する。オペレータが管理端末500を操作して、正解判定部1280を動作させる。すなわち、意図推定部1120の意図推定結果が正しいか否か、および正解意図表現が何であるかは、オペレータが判断する。
【0025】
(データの概要)
意図推定モデル1130は、統計モデル1131およびルールテーブル1132から構成される。統計モデル1131およびルールテーブル1132は、意図推定部1120が音声認識サーバ300の出力したテキストを意図推定するために用いられる。前述のように、統計モデル1131は、学習部1220により評価用統計モデル1240として作成され、評価部1230により肯定的な評価がされたものである。
【0026】
ユーザログ1180は、通信部1110、意図推定部1120、および正解判定部1280から情報が書きこまれる。通信部1110は、端末ID、ユーザID、および受信時刻を書き込む。意図推定部1120は、音声認識サーバ300から受信したテキスト、および意図推定部1120が処理した意図推定結果を互いに関連付けて、ユーザログ1180に書き込む。正解判定部1280は、入力されたテキストに対する意図推定部1120の意図推定結果が正しいか否か、および意図推定結果が正しくない場合には、正解意図表現を書き込む。ユーザログ1180は、データ修正部1260により後述する一連の処理の後で削除される。
【0027】
追加学習データ群1202は、ユーザログ1180に基づいて作成された学習データ(追加学習データ)を複数集めて構成される。追加学習データは、データ修正部1260によりユーザログ1180から抽出されたデータに、後述する優先度と倍率を加えたものである。データ修正部1260は、ユーザログ1180を読込み、正解判定部1280が不正解であると判断したデータのテキスト、およびそのテキストに対して正解判定部1280が付与した正解意図表現を抽出する。そして、抽出したこれらの情報を互いに関連付けて、追加学習データとして追加学習データ群1202に記録する。このとき、後述する手法により優先度および倍率を記録する。追加学習データ群1202に含まれるデータは、後述する処理により基礎学習データ群1201に移動される。
【0028】
基礎学習データ群1201は、テキスト、正解意図、優先度および倍率が関連付けられた学習データ(基礎学習データ)を複数集めて構成される。基礎学習データ群1201に含まれる基礎学習データは、システム運用開始時に最初から用意しておいた学習データと、過去に追加学習データとして追加学習データ群1202に蓄積されたものとを合わせたものである。すなわち、ある時点における基礎学習データ群1201は、それまでに追加学習データ群1202が有していた全ての学習データを含む。
評価データ1210は、評価用統計モデル1240の評価に使用されるデータであり、テキストと正解意図の組合せから構成される。本実施の形態では、評価データ1210は、追加学習データ群1202および基礎学習データ群1201と同じ内容のデータから構成されるものとする。すなわち、追加学習データ群1202および基礎学習データ群1201の各学習データにおけるテキストと正解意図の組合せが、評価データ1210として用いられる。
【0029】
評価用統計モデル1240は、学習部1220により基礎学習データ群1201および追加学習データ群1202に基づいて作成される。評価用統計モデル1240は、評価部1230により評価され、肯定的な評価がされると統計モデル1131となり、否定的な評価がされると後述する処理により再度作成される。すなわち、評価用統計モデル1240は、一時的にしか存在しない。
優先度基礎情報1270は、データ修正部1260が後述する優先度を決定する際に読み込まれる。
【0030】
(トピックとスロット)
統計モデル1131を用いた意図推定は、音声認識サーバ300から受信したテキストを、ユーザが意図した車載器200に対する操作を表す意図表現に変換する。意図表現の形式は、任意の形式を採用することができるが、本実施形態では、文字列で表すこととする。また、1個の意図表現は、実行する機能の種類に相当する「トピック」と、機能を実行する際に決める必要があり多様に変わりうる変数を表す「スロット」との2つに分けて推定する。トピックとは、たとえば、周辺検索、ルート沿い検索、エアコン設定、自宅ルート検索、などである。スロットとは、たとえば、周辺検索やルート沿い検索における施設検索クエリ、エアコン設定におけるエアコンの設定温度、などである。また、本実施形態では、1個の意図表現を、トピックとスロットをカンマで区切った文字列で表現する。
【0031】
たとえば、“周辺検索、クエリ=レストラン”は、「自車位置の周辺でレストランを検索する」という意図を示す意図表現である。“ルート沿い検索、クエリ=レストラン”は、「自車位置から目的地まで行く途中のルートの周辺でレストランを検索する」という意図を示す意図表現である。また、“自宅ルート検索”は、「車載器に設定されている自宅位置へのルートを検索し、ルート案内を開始する」という意図を示す意図表現である。自宅ルート検索のように、スロットが存在せずトピックだけで表現される意図表現もある。この意図表現は、車載器が、どのような機能を実行すればよいかが特定できる表現になっている。
【0032】
(学習データ)
図3〜4を参照して基礎学習データ群1201、追加学習データ群1202、およびこの2つを併せた学習データ群1200、のデータ構造を説明する。これらはいずれも、1または複数の学習データから構成される。学習データは、それぞれ1つの、テキストと、当該テキストの正しい意図である正解意図表現と、倍率と、優先度とから構成される。学習データを構成する、テキストと、正解意図表現と、倍率と、優先度とは、互いに関連付けられている。
【0033】
テキストは、車載器200のユーザの発話を文字列に変換したものである。テキストは、音声認識サーバ300の出力するテキストでもよいし、人が音声を聞いて書き起こした音声認識誤りのないテキストでもよい。正解意図表現は、テキストの正しい意図をトピックとスロットに分けて記述したものである。管理端末500のオペレータが正解判定部1280を操作して、テキストに関連付けられる正解意図表現を決定する。優先度は、関連付けられたテキストが正しく意図推定されることの重要さを示す指標である。倍率は、学習における当該倍率に関連付けられたテキストの重みを示す値である。
【0034】
図3に基礎学習データ群1201の一例を、
図4に追加学習データ群1202の一例を示す。なお、以降の説明では、基礎学習データ群1201と追加学習データ群1202とをあわせて、学習データ群1200と呼ぶこともある。
図3および
図4に示す例では、たとえば、優先度は0〜1の実数、倍率は0〜10の実数である。
図3に示す例では、基礎学習データ群1201の先頭の6つのレコード、すなわち6つの学習データが示されている。先頭のレコードは、「近くのレストラン」というテキストの正しい意図表現は、機能の種類に相当するトピックは「周辺検索」であり、変数に相当するスロットは「レストラン」であることを示している。
基礎学習データ群1201は複数のレコードから構成される。
【0035】
(ユーザログ)
図5を参照して、ユーザログ1180のデータ構造を説明する。
図5は、ユーザログ1180の一例を示す図である。ユーザログ1180は、複数のレコードから構成される。1つのレコードは、音声信号を受信した日付および時刻と、車載器200を識別する機器IDと、車載器200のユーザを識別するユーザIDと、テキストと、意図推定部1120がテキストを意図推定した結果である意図表現と、管理端末500のオペレータにより付与される正解フラグ、および正解意図表現とから構成される。ただし、正解フラグが正解の場合には、正解意図表現は存在しない。
図5の例では、正解フラグが正解の場合には、正解意図表現は、ブランク(−)として表現している。
【0036】
(トピック意図重要度、スロット意図重要度)
図6〜8を参照して、優先度基礎情報1270を構成する、トピック意図重要度1271、およびスロット意図重要度1272のデータ構造を説明する。いずれも、ユーザの発話に基づいて生成されたテキストが、統計モデル1131により誤って意図推定されたときに、どの程度ユーザに不利益をもたらすかを数値化している。数値が大きいほど不利益が大きいことを示している。本実施の形態では、優先度と重要度は、直接の大小比較が可能な関係にある。
【0037】
トピック意図重要度1271は、トピックの推定が正しくない場合にユーザへ与える不利益の大きさを重要度として数値化した表である。
図6は、トピック意図重要度1271の一例を示す図である。正解意図表現のトピックにより行を特定し、意図表現のトピックにより列を特定し、その行と列の交点の数値がユーザへ与える不利益の大きさ、すなわち重要度である。たとえば、
図5に示すユーザログ1180の、上から3つ目のレコードを用いて説明する。正解意図表現が「自宅ルート設定」なので1行目を選択し、意図表現が「周辺検索」なので2列目を選択する。この交点は「0.6」なので、重要度は0.6である。
【0038】
トピック意図重要度1271の値はたとえば、以下のように決定される。たとえば、ユーザが「一画面戻り」の発話をした結果、意図推定結果が「自宅ルート設定」となった場合を考える。この場合、ユーザは単に一個だけ前の画面に戻りたかっただけのに、車載器200は、ユーザが見ていた表示部1040の表示を消去し、自宅へのルートを検索してルート案内を開始する。ルート案内が開始した状態から、ユーザが見たかった画面に遷移するには、まず自宅へのルート案内をキャンセルしたのち、さきほどユーザが見ていた画面を見るための操作を行う必要がある。このように、ユーザが行いたい操作を行うまでの手間が多くかかる。そのため、ユーザの不利益の度合いが大きいと判断し、表の値を大きく設定している。一方、ユーザが「周辺検索」を行うために、「このあたりでレストラン探して」と発話したのに、意図推定結果が「ルート沿い検索」になった場合を想定する。
【0039】
この場合、車載器200は、ルート沿いにてレストランを検索した結果を表示するが、そのなかには、自車の周辺に存在するレストランも多く含まれていると考えられる。また、「簡単に行けるレストラン」のように、周辺検索でもルート沿い検索でもユーザの希望に合致するような発話も多く存在する。そのため、周辺検索をルート沿い検索と誤って意図推定するときのユーザの不利益の程度は相対的に小さく、表の値を小さく設定する。
【0040】
スロット意図重要度1272は、スロットの推定が正しくない場合にユーザへ与える不利益の大きさを数値化した表である。
図7は、スロット意図重要度1272の一例を示す図である。正解意図表現のトピックにより行を特定し、意図表現のスロットの誤りのパターンにより列を特定する。スロットの誤りのパターンとは、たとえば、内包、部分一致、不一致、などである。以下、例を用いてスロットの誤りのパターンを説明する。
【0041】
たとえば、テキストが「近くのおいしいイタリアンへ行く」だった場合、正解意図表現は“周辺検索、クエリ=おいしいイタリアン”である。内包とは、推定されたスロットに正解の文字列だけではなく正解以外の文字列が混入していることをいう。上記の例で内包に該当するスロットの誤りは、たとえば、「クエリ=おいしいイタリアンへ行く」である。この場合、必要となるクエリは抽出されたクエリに内包されているため、POI検索は正しく行われる可能性が高い。そのため、この誤りパターンに対する表の値は小さくする。
【0042】
部分一致とは、推定されたスロットが、正解のスロットの一部であることをいう。上記の例で部分一致に該当するスロットの誤りは、たとえば「クエリ=イタリアン」である。この場合、必要となるクエリの一部は検索に使用されるため、POI検索が正しく行われる可能性は中程度である。そのため、この誤りパターンに対する表の値は中程度にする。
不一致とは、推定されたスロットが、正解のスロットをまったく含まない文字列であることをいう。上記の例で不一致に該当するスロットの誤りは、たとえば「クエリ=行く」である。この場合、正しく検索される可能性は無い。そのため、この誤りパターンに対する表の値は大きく設定する。
【0043】
(ルールテーブル)
図8を参照してルールテーブル1132の構造を説明する。
ルールテーブル1132は、複数のレコードから構成される。1つのレコードは、テキストと正解意図表現とから構成される。ルールテーブル1132の各レコードは、学習データ群1200のうち対応するレコードから、優先度および倍率を除いて作成される。意図推定部1120は、音声認識サーバ300の出力するテキストと一致する、ルールテーブル1132の文字列を検索する。意図推定部1120は、テキストと一致する文字列に関連付けられた正解意図表現を、意図表現として通信部1110およびユーザログ1180に出力する。ただし、ユーザログ1180へはルールテーブル1132を参照したことを明示するために、ユーザログ1180の正解フラグを、「ルール」とする。
【0044】
(統計モデルとルールテーブルの関係)
意図推定モデル1130に含まれる統計モデル1131およびルールテーブル1132を説明する。統計モデル1131は、統計的手法により意図推定を実行する際に用いられる。ルールテーブル1132は、パターンマッチングにより意図推定を実行する際に用いられる。本実施の形態では、2つの手法による意図推定を相補的に用いる。パターンマッチングによる意図推定は、ルールテーブル1132に記載されたルールにしたがって明示的にユーザ発話と特定の意図に理解することができる。そのため、パターンマッチングによる意図推定は、特定の発話パターンを狙って意図推定させることができるメリットがある。しかし、あらかじめ用意した発話パターンに沿った発話しか理解できないため、多様な言い回しを受理する手法としては、一般に統計的な手法のほうが向いている。そのため、本実施の形態では、入力されたテキストがルールテーブル1132に含まれる場合には、統計モデル1131を用いずに、ルールテーブル1132を用いたパターンマッチングによる意図推定を行う。
【0045】
(統計モデル)
統計的手法による意図推定を実行するためには、あらかじめ、多数のテキストと正解意図表現の対を集めた学習データから、両者の関係を統計的手法によりモデル化した意図推定モデルを構築しておく必要がある。このプロセスを学習という。たとえば、非特許文献1では、本実施の形態におけるトピックに相当する部分を、Support Vector Machineと呼ばれる統計的手法を用いた分類器により推定し、スロットに相当する部分を、Conditional Random Fieldと呼ばれる手法により推定する技術が開示されている。非特許文献2の方法では、本実施の形態におけるスロットに相当する部分を、最大エントロピー法と呼ばれる統計的手法で実現している。非特許文献3では、1個のトピックを表す多次元空間上の代表点を学習データから求めておき、入力文から求めた多次元ベクトルと、トピックの代表点との距離を計算し、もっとも距離が小さかったトピックを意図推定結果として出力するベクトルベースの手法が開示されている。
【0046】
(非特許文献1)
X. Liu, R. Sarikaya, C. Brockett, C. Quirk, W.B. Dolan: ``Paraphrase features to improve natural language understanding," Proc. of Interspeech 2013, pp.3776-3779, 2013
(非特許文献2)
C. Chelba, M. Mahajan, A. Acero: ``Speech utterance classification,” Proc. of ICASSP, pp.280-283, 2003
(非特許文献3)
J. Chu-Carroll, B. Carpenter: "Vector-based natural language call routing," Computational Linguistics, vol.25, no.3, pp.361-388, 1999
【0047】
(優先度)
本実施の形態では、この統計的手法による意図推定に、独自の概念である優先度および倍率を導入する。優先度および倍率は、テキストに関連付けられる、優先度同士、倍率同士で大小比較が可能な概念である。たとえば、0.0〜1.0や−10〜+10の数値で表してもよいし、A〜Zのアルファベットで表してもよい。優先度と倍率は異なる概念なので、優先度と倍率の大小比較は行わない。本実施の形態では、優先度は0〜1の実数、倍率は0〜10の実数とする。
優先度は、関連付けられたテキストが正しく意図推定されることの重要さを示す指標である。優先度は、統計モデル1131の学習には用いられず、統計モデル1131の評価、および学習データ群1200の修正に用いられる。優先度は、データ修正部1260により設定される。
【0048】
たとえば、
図3に示す基礎学習データ群1201の例では、テキスト「近くのレストラン」の優先度が「0.9」という高い値に設定されている。この理由は、「近くのレストラン」と発話するユーザが多いため、正しく意図推定が行われないとユーザの不利益が大きいと判断されているためである。同じく
図3において、テキスト「我が家に戻る」の優先度が、「0.2」という低い値に設定されている。この理由は、「我が家に戻る」と発話するユーザが少ない、または、「我が家に戻る」と過去に発話したユーザがいたが、すでに車載器を使用していない、などの理由により、正しく意図推定できなくてもユーザの不利益が少ないと判断されているためである。
【0049】
(倍率)
倍率は、学習における当該倍率に関連付けられたテキストの重みを示す値である。倍率2030の初期値は「1」であり、データ修正部1260により後述する処理により更新される。
この倍率は、学習部1220における学習において、たとえば、以下のように利用される。非特許文献2に示した最大エントロピー法を使用する統計モデルの学習において、倍率に記載された値に応じて、学習に用いるテキストの数を増加させる方法がある。
図3に示す基礎学習データ群1201の例では、テキストが「一個戻る」であるレコードは、倍率が2に設定されている。そのため、統計モデルの学習において、「一個戻る」というテキストと、「一画面戻り」という正解意図表現の組を2つ入力する。
【0050】
また、次のように倍率を利用することもできる。非特許文献3に示したベクトルベースの手法を使用する統計モデルの学習では、あらかじめ学習データのテキストを単語ごとのベクトル要素による多次元ベクトルに変換する。この際、各単語に対応するベクトルの要素値として、単に1にする手法だけでなく、その単語がそのトピックにおいてどの程度重要であるかを示す値を何らかの手法で計算して、要素値に使用することが行われる。たとえば、非特許文献3の場合には、当該単語が出現するトピックの種類数が少ないほど大きくなるような値(IDF: inverse document frequency)を要素値として使用する。本実施の形態においては、本実施の形態で計算した倍率を、ベクトルの要素値として使用することができる。たとえば、「一個戻る」から得られる「一個」「戻る」というそれぞれの単語に該当するベクトルの要素を、1ではなく2にする。そのほか、使用する統計的手法に依存して、テキストが倍率の値に応じて重要視される方法をとることができる。
【0051】
(増加法と減少法)
あるテキストを正しく意図推定させたい場合には、そのテキストに関連付ける倍率を高く設定すればよい。これを本実施の形態では増加法と呼ぶ。しかし、あるテキストの倍率が高いために、他のテキストの学習へ悪影響を及ぼすことがある。たとえば、「我が家に戻る」が学習データに存在するために、他の優先度が高いデータ(たとえば、「自宅に帰る」など)が正しく意図推定できないような場合である。そこで、倍率を変更する方法として逆のアプローチをとることも考えられる。
【0052】
すなわち、正しく意図推定させたいテキスト以外の、全ての学習に用いるテキストに関連付けられた倍率を減少させることでも同様の効果が得られる。ただし、多数の倍率を変更することは煩雑なので、高い効果が期待できる以下の対象に限定する。すなわち、倍率を減少させるべきテキストとは、正しく意図推定させたいテキストと正解意図表現が異なり、かつテキストが類似しているテキストである。このように、正しく意図推定を行わせたいテキストと所定の関係にあるテキストの倍率を減少させる方法を、本実施の形態では減少法と呼ぶ。なお、減少法により倍率が減少されると、そのテキストは正しく意図推定されない可能性があるので、優先度が高いテキストの倍率はなるべく減少させないことが望ましい。
【0053】
(メインのフローチャート)
オペレータは、所定の時間ごと、たとえば12時間ごとに管理端末500を用いて中継サーバ1000にアクセスし、通信部1110を介して正解判定部1280にアクセスする。オペレータは、ユーザログ1180を閲覧して、これまでの経験などに基づき正解フラグをユーザログ1180に書き込む。正解フラグを不正解とする場合は、正解意図表現も併せて書きこむ。
【0054】
データ修正部1260は、オペレータによるユーザログ1180の書き込みが終わるたびに正解フラグが不正解であるレコードの数をカウントし、所定の数よりも多いと判断すると、
図9〜12のフローチャートにより動作が示されるプログラムの実行を開始する。このプログラムは、追加学習データ群1202の作成、優先度の設定、統計モデル1131およびルールテーブル1132の更新、および車載器200のユーザへの通知を行う。このプログラムの実行が開始される時点で、ユーザログ1180は
図5に示すように正解フラグや正解意図表現が付された複数のレコードを有している。このプログラムの実行が開始される時点で、追加学習データ群1202は空であり、基礎学習データ群1201は
図3に示すように複数のレコードを有している。
【0055】
以下で説明するフローチャートの実行主体は、中継サーバ1000の不図示のCPUである。
まず
図9を参照してメインのフローチャートの動作を説明し、その後に、
図10〜12を参照してサブルーチンの動作を説明する。
【0056】
ステップS4010において、データ修正部1260は、基礎学習データ群1201を読み込む。
ステップS4020において、データ修正部1260は、追加学習データ群1202を作成するために、
図10に示すサブルーチンを実行する。このサブルーチンにおいて、
図3に示すように複数のレコードを有する追加学習データ群1202が作成される。
図10に示すサブルーチンの動作は後に説明する。その後、ステップS4030に進む。
ステップS4030において、データ修正部1260は、ステップS4010において読み込んだ基礎学習データ群1201と、ステップS4020において作成した追加学習データ群1202とを用いて、学習部1220に評価用統計モデル1240を作成させる。学習部1220は、たとえば、トピックを推定するためのSupport Vector Machineの手法を用いた統計モデル、およびスロットを推定するためのConditional Random Fieldの手法を用いた統計モデルを作成する。前述のとおり、統計モデルを作成するための学習では、テキスト、正解意図表現、および倍率が用いられる。次にステップS4040に進む。
【0057】
ステップS4040において、データ修正部1260は、評価データ1210に基づいて、ステップS4030において作成した評価用統計モデル1240を評価部1230に評価させる。すなわち、追加学習データ群1202および基礎学習データ群1201の各学習データにおけるテキストと正解意図の組合せを用いて、評価部1230により、評価用統計モデル1240の評価を行う。たとえば、評価部1230は、次の3つの基準について評価用統計モデル1240を評価する。
(A)統計モデル1131と評価用統計モデル1240の両方に評価データ1210のテキストを入力し、それぞれ推定意図表現を得る。その推定意図表現が、入力したテキストに関連付けられた正解意図表現に一致する場合を正解とする。評価用統計モデル1240の方が、統計モデル1131よりも所定の割合以上、正解となる割合が多い。
(B)統計モデル1131と評価用統計モデル1240の両方に評価データ1210のテキストを入力し、それぞれ推定意図表現を得る。その推定意図表現が、入力したテキストに関連付けられた正解意図表現に一致しない場合を不正解とする。統計モデル1131では正解であるが、評価用統計モデル1240では不正解である評価データ1210の割合が所定の割合より少ない。
(C)評価用統計モデル1240に評価データ1210のテキストを入力し、推定意図表現を得る。正解数が所定の数より多い、または正解の割合が所定の割合よりも高い。
以上の3つを全て評価し、ステップS4050に進む。
【0058】
ステップS4050において、データ修正部1260は、ステップS4040における評価部1230による評価の結果、評価用統計モデル1240が所定の合格基準に達したか、たとえば3つの基準の全てを満たすか否かを判断する。合格基準に達したと判断する場合はステップS4200に進み、合格基準に達しないと判断する場合はステップS4060に進む。
【0059】
ステップS4060において、データ修正部1260は、追加学習データ群1202および基礎学習データ群1201から誤りデータの抽出を行う。ここでは、統計モデル1131に基づいて出力される意図推定結果が正しく、かつ評価用統計モデル1240に基づいて出力される意図推定結果が誤りとなるようなテキストを特定する。そして、追加学習データ群1202および基礎学習データ群1201において、このテキストに対応する学習データを特定し、誤りデータとして抽出する。具体的には、追加学習データ群1202および基礎学習データ群1201を構成する複数の学習データの中から、統計モデル1131は正解を出力するが、評価用統計モデル1240は不正解を出力するテキストを含む全ての学習データを、誤りデータとして抽出する。すなわち、誤りデータのいずれかのテキストを統計モデル1131に入力すると、そのテキストに関連付けられた正解意図表現を出力するが、同一のテキストを評価用統計モデル1240に入力しても、正解意図表現を得られない。抽出した誤りデータのデータ数をmとする。次にステップS4061に進む。
【0060】
ステップS4061において、データ修正部1260は、追加学習データ群1202および基礎学習データ群1201を修正するために、
図11に示すサブルーチンを実行する。このサブルーチンにおいて、追加学習データ群1202および基礎学習データ群1201に含まれる倍率が修正される。
図11に示すサブルーチンの動作は後に説明する。その後、ステップS4030に戻る。
評価用統計モデル1240が合格基準に達していると判断されたときに実行されるステップS4200において、データ修正部1260は、ステップS4060と同様に、追加学習データ群1202および基礎学習データ群1201から誤りデータを抽出する。そして、抽出した各誤りデータが表すテキストと正解意図表現の組み合わせを、ルールテーブル1132に追加する。次にステップS4220に進む。
【0061】
ステップS4220において、データ修正部1260は、追加学習データ群1202の全てのレコードを基礎学習データ群1201に移動させ、既存のレコードと併せて基礎学習データ群1201に格納する。これにより、追加学習データ群1202を用いて基礎学習データ群1201を更新する。また、ステップS4200において抽出した誤りデータを含むレコードは、更新後の基礎学習データ群1201から削除してもよい。次にステップS4230に進む。
ステップS4230において、データ修正部1260は、ステップS4220で更新した基礎学習データ群1201から新規理解テキストを抽出する。ここでは、基礎学習データ群1201に含まれる複数の学習データのテキストの中で、統計モデル1131に基づいて出力される意図推定結果が誤りであり、かつ評価用統計モデル1240に基づいて出力される意図推定結果が正しくなるようなテキストを、新規理解テキストとして抽出する。換言すると、ステップS4210において作成された評価用統計モデル1240は正解を出力するが、統計モデル1131は不正解を出力するテキストを、新規理解テキストとして基礎学習データ群1201から抽出する。すなわち、新規理解テキストを評価用統計モデル1240に入力すると、そのテキストに関連付けられた正解意図表現を出力するが、同一のテキストを統計モデル1131に入力しても、正解意図表現を得られない。さらに、S4200でルールテーブル1132に追加されたテキストのうち、統計モデル1131とS4200の処理の前のルールテーブル1132の組み合わせによる意図推定では、正しく理解できなかったテキストもある。このテキストも、新規理解テキストに追加する。次にステップS4240に進む。
【0062】
ステップS4240において、データ修正部1260は、ユーザログ1180を検索し、新規理解テキストを含み、なおかつ正解フラグが不正解であるレコードに記載されている機器IDを抽出する。すなわち、その機器IDを有する車載器200から新規理解テキストを表す音声信号が過去に出力され、その際には中継サーバ1000が正解意図表現を出力できなかった機器IDを、ユーザログ1180から抽出する。次にステップS4250に進む。
【0063】
ステップS4250において、データ修正部1260は、ステップS4250において抽出した機器IDを有する車載器200に対して、その新規理解テキストが意図推定可能になった旨の通知を行う。たとえば、データ修正部1260は、新規理解テキストを○○で表現すると、「システム更新により○○を理解できるようになりました」というメッセージを車載器200に送信する。このメッセージを受信した車載器200は、表示部1040または音声出力部1050を用いてユーザに報知する。次にステップS4260に進む。
ステップS4260において、データ修正部1260は、現在の統計モデル1131を削除し、ステップS4030で作成した評価用統計モデル1240を、新しい、更新された統計モデル1131とする。以上で
図9に示したフローチャートの動作を終了する。
【0064】
(追加学習データを作成するサブルーチン)
図9のステップS4001から呼び出されるサブルーチンの動作を、
図10を用いて説明する。
ステップS4002において、データ修正部1260は、ユーザログ1180を読込み、その総レコード数をnとして保存する。この総レコード数nは、後のステップS4015において利用される。次にステップS4003に進む。
ステップS4003において、データ修正部1260は、変数iに1を代入してステップS4004に進む。
【0065】
ステップS4004において、データ修正部1260は、ユーザログ1180のi番目のレコードの一部、すなわち、テキスト、意図表現、正解フラグ、および正解意図表現を読み込む。次にステップS4005に進む。
ステップS4005において、データ修正部1260は、読込んだ正解フラグが「不正解」か否かを判断する。「不正解」であると判断する場合はステップS4006に進み、「正解」、または「ルール」であると判断する場合はステップS4015に進む。
【0066】
ステップS4006において、データ修正部1260は、意図表現のトピックと、正解意図表現のトピックが一致するか否かを判断する。一致すると判断する場合はステップS4007に進み、一致しないと判断する場合はステップS4008に進む。
トピックが一致するが不正解の場合、すなわちスロットが不正解である場合に実行されるステップS4007において、データ修正部1260は、
図7に例示したスロット意図重要度1272を参照し、該当する重要度を読み取る。すなわち、まずスロット誤りのパターンが、内包、部分一致、不一致、などのいずれのパターンに該当するかを判断する。そして、正解意図表現のトピックからスロット意図重要度1272の行を特定し、判断したスロット誤りのパターンからスロット意図重要度1272の列を特定し、重要度を読取る。次にステップS4009に進む。
【0067】
トピックが一致しない場合に実行されるステップS4008において、データ修正部1260は、
図6に例示したトピック意図重要度1271を参照し、該当する重要度を読み取る。すなわち、正解意図表現のトピックからトピック意図重要度1271の行を特定し、意図表現のトピックからトピック意図重要度1271の列を特定し、重要度を読み取る。次にステップS4009に進む。
ステップS4009において、データ修正部1260は、ユーザログ1180のi番目のレコードに記載のテキストと同一のテキストを有するレコードを、追加学習データ群1202および基礎学習データ群1201から検索し、ステップS4010に進む。
【0068】
ステップS4010において、データ修正部1260は、ステップS4009における検索の結果、同一のテキストを有するレコードが検索されたか否かを判断する。同一のテキストを有するレコードが検索によりヒットしたと判断する場合はステップS4011に進み、ヒットしなかったと判断する場合はステップS4013に進む。
同一のテキストを有するレコードが検索された場合に実行されるステップS4011において、データ修正部1260は、ステップS4009における検索により得られたレコードの優先度(以後、レコードの優先度)と、ステップS4007またはステップS4008において読取った重要度(以後、読取り重要度)の大きさを比較する。レコードの優先度の方が大きいと判断する場合はステップS4012に進み、それ以外の場合はステップS4013に進む。
【0069】
レコードの優先度の方が読取り優先度よりも大きいと判断する場合に実行されるステップS4012において、データ修正部1260は、レコードの優先度を新たに設定する優先度として決定し、ステップS4014に進む。ここでは、従前に優先度が大きく設定されたにもかかわらず、同一のテキストに小さな優先度を付与することを避けることを意図している。
同一のテキストを有するレコードが検索されなかった場合、または読取り重要度がレコードの優先度以下であると判断された場合に実行されるステップS4013において、データ修正部1260は、読取り重要度を新たに設定する優先度として決定し、ステップS4014に進む。
【0070】
ステップS4014において、データ修正部1260は、ユーザログ1180のi番目のレコードのテキスト、正解意図表現、ステップS4012またはステップS4013において決定した優先度、および初期値である「1」に設定した倍率を追加学習データ群1202の新たなレコードに書き込む。次にステップS4015に進む。
【0071】
ステップS4015において、データ修正部1260は、変数iがユーザログ1180の総レコード数であるnと同一か否かを判断する。変数iがnと同一であると判断する場合はステップS4017に進み、変数iがnと同一でない、すなわち変数iがn未満であると判断する場合はステップS4016に進む。
ステップS4016において、データ修正部1260は、変数iに1を加えてステップS4004に戻る。
ステップS4017において、データ修正部1260は、ユーザログ1180を削除し、
図10に示すフローチャートを終了し、
図9のステップS4030に進む。
【0072】
(学習データを修正するサブルーチン)
図9のステップS4061から呼び出されるサブルーチンの動作を、
図11を用いて説明する。
図11に示すサブルーチンは、データ総数がmである誤りデータを用いて、追加学習データ群1202および基礎学習データ群1201の倍率を修正する。誤りデータは抽出された順番に1〜mの番号が付されている。
ステップS4070において、データ修正部1260は、処理対象の誤りデータを示す変数jに1を代入してステップS4080に進む。
【0073】
ステップS4080において、データ修正部1260は、j番目の誤りデータに対する対立データを追加学習データ群1202および基礎学習データ群1201から抽出する。対立データとは、学習データ群1200のレコードであって、学習データ群1200にその対立データが存在するがゆえに、その学習データ群1200を用いて構築した統計モデルに誤りデータを入力した際に、正解意図表現が得られない原因になると考えられるデータ」である。具体的には、たとえば、j番目の誤りデータに対する対立データとして、当該誤りデータと同一または類似するテキストと、当該誤りデータに関連付けられた正解意図とは異なる正解意図とを有する学習データを、学習データ群1200から抽出することができる。
【0074】
統計的手法にもとづいた意図推定技術では、ユーザが発話したテキストを、多次元ベクトル表現に変換することが一般的である。具体的には、テキストを単語分割し、各単語の表記、単語の2個連鎖(2-gram)、単語の3個連鎖(3-gram)、各単語の品詞、各単語の意味を表す別に定義されたID、などに変換される。これらテキストから得られたそれぞれの情報は、素性(feature)と呼ばれる。学習データ群1200、評価データ1210がすべて既知である場合には、データに含まれるテキストから得られる素性の種類数は有限である。そこで、素性のそれぞれを多次元ベクトルの1個の要素とみなして、あるテキストにおいて得られる素性に対応する要素を1とし、他の要素を0とした多次元ベクトルが得られる。
【0075】
意図推定におけるトピック推定では、多次元空間のなかに、それぞれのトピックを代表する点や、それぞれのトピックと解釈される空間が定義されている状態を考える。そして、テキストから得られた多次元ベクトルを空間にマッピングしたとき、どのトピックの代表点といちばん近いのか、または、どのトピックの空間に属するのか、ということを計算により求める。そして、得られたトピックを意図推定結果として出力する。以上の処理を考えた場合、誤りデータのテキストから得られた多次元ベクトルと、学習データのテキストから得られた多次元ベクトルの類似度を計算し、この距離が基準値以下である学習データを、対立データとする。ベクトルの類似度を計算する方法としては、純粋なユークリッド距離を使う方法や、ベクトルコサイン類似度を計算する方法などが考えられる。さらに、テキストから得られた多次元ベクトルに対して変換行列を掛け合わせて次元数を削減する方法を用いることもできる(潜在的意味インデキシング)。この手法を使用する場合には、変換行列をかけたあとの多次元ベクトル間において距離を計算する。次にステップS4090に進む。
【0076】
ステップS4090において、データ修正部1260は、学習データ群1200から、j番目の対立データとステップS4080において検索した誤りデータの優先度を抽出する。次にステップS4100に進む。
ステップS4100において、データ修正部1260は、ステップS4090において抽出した対立データの優先度と誤りデータの優先度の大小関係を比較する。誤りデータの優先度の方が大きいと判断する場合はステップS4140に進み、誤りデータの優先度が対立データの優先度以下であると判断する場合はステップS4110に進む。
【0077】
ステップS4110において、データ修正部1260は、データ修正部1260が管理端末500から予め指定された調整方式を判断する。前述の増加方式を指定されたと判断する場合はステップS4120に進み、減少方式を指定されたと判断する場合はステップS4130に進む。
ステップS4120において、データ修正部1260は、対立データである学習データ群1200の1レコードに含まれる倍率を所定の量、たとえば1増加させてステップS4162に進む。
ステップS4130において、データ修正部1260は、誤りデータである学習データ群1200の1レコードに含まれる倍率を所定の量、たとえば0.5減少させてステップS4162に進む。
【0078】
ステップS4140において、データ修正部1260は、データ修正部1260が管理端末500から指定された調整方式を判断する。増加方式を指定されたと判断する場合はステップS4150に進み、減少方式を指定されたと判断する場合はステップS4160に進む。
ステップS4150において、データ修正部1260は、誤りデータである学習データ群1200の1レコードに含まれる倍率を所定の量、たとえば1増加させてステップS4162に進む。
ステップS4160において、データ修正部1260は、対立データである学習データ群1200の1レコードに含まれる倍率を所定の量、たとえば0.5減少させてステップS4162に進む。
以上説明したステップS4120、S4130、S4150、S4160のいずれかの処理を実行することにより、データ修正部1260は、学習部1220による評価用統計モデル1240の作成における誤りデータまたは対立データの影響を変化させるように、学習データ群1200の修正を行うことができる。
【0079】
ステップS4162において、データ修正部1260は、直前のステップにおいて行った倍率の増減により、増減後の倍率が所定の範囲、たとえば0.5以上10未満の範囲内か否かを判断する。範囲内であると判断する場合はステップS4170に進み、範囲外であると判断する場合はステップS4164に進む。
【0080】
ステップS4164において、データ修正部1260は、ステップS4162において倍率が所定の範囲外であると判断した対立データである学習データ群1200の1レコード、またはステップS4162において倍率が所定の範囲外であると判断した誤りデータである学習データ群1200の1レコードを、ルールテーブル1132に移動する。すなわち、そのレコードを学習データ群1200から削除し、そのレコードのテキストおよび正解意図表現を、ルールテーブル1132に追記する。次に、ステップS4170に進む。
【0081】
ステップS4170において、データ修正部1260は、処理対象の誤りデータを示す変数jが、誤りデータの総数を表すmと同一か否かを判断する。jがmと同一、すなわち最後の誤りデータの処理が完了したと判断する場合は
図11に示すフローチャートの実行を終了し、
図9のステップS4030に戻る。jがmと同一でない、すなわちまだ最後の誤りデータまで処理していないとい判断する場合はステップS4180に進む。
ステップS4180において、データ修正部1260は、変数jに1を追加して処理対象の誤りデータを次の番号が付されたものに変更し、ステップS4080に戻る。
【0082】
(統計モデルと学習データの遷移)
中継サーバ1000の動作のまとめとして、フローチャートを適宜参照しながら、統計モデル1131と評価用統計モデル1240の関係、およびユーザログ1180と、追加学習データ群1202と、基礎学習データ群1201との関係を説明する。
図12は、統計モデル1131が更新される過程を示す概要図である。
図12において時間は上から下に向かって経過している。ここまでの説明では更新の前後に関わらず統計モデル1131の名称を区別していなかったが、ここでは作成するたびにバージョンを1増加させて区別する。また、ユーザログ1180と、追加学習データ群1202と、基礎学習データ群1201のレコード数の例も明示する。
【0083】
時刻t1において、中継サーバ1000は、たとえばバージョン3の統計モデル1131と、レコード数1000の基礎学習データ群1201とを有する。ユーザログ1180および追加学習データ群1202は、ともにレコード数がゼロなので記載していない。この後、中継サーバ1000は車載器200からの音声信号の受信や、バージョン3の統計モデルを用いた意図推定などを行い、ユーザログ1180に記録を行った。
【0084】
時刻t2において、中継サーバ1000は、時刻t1と同様に、バージョン3の統計モデル1131とレコード数1000の基礎学習データ群1201とを有する。さらに、たとえばレコード数800のユーザログ1180を有する。追加学習データ群1202はレコード数がゼロなので記載していない。ユーザログ1180に保存されている各レコードには、正解判定部1280により正解フラグが付与されており、そのうち不正解のフラグはたとえば200レコードに付されている。時刻t2からデータ修正部1260による
図9のフローチャートで示す処理が開始した。これ以後、時刻t4までは、車載器200から音声信号は出力されず、ユーザログ1180に追加されるデータはない。
【0085】
時刻t3において、中継サーバ1000は、時刻t1およびt2と同様に、バージョン3の統計モデル1131と基礎学習データ群1201とを有する。さらに、追加学習データ群1202と、バージョン4の統計モデルすなわち評価用統計モデル1240を有する。基礎学習データ群1201のレコード数は、時刻t2から変わらず1000である。
図10のステップS4005に示すように、ユーザログ1180の正解フラグが不正解の場合のみ、追加学習データ群1202のレコードが作成される。そのため、追加学習データ群1202のレコード数は、時刻t2におけるユーザログ1180の正解フラグが不正解であるレコード数と同じ、200である。ユーザログ1180は、
図10のステップS4017の処理により削除、すなわちレコード数がゼロになったので記載していない。バージョン4の統計モデルは、1000レコードの基礎学習データ群1201と、200レコードの追加学習データ群1202を用いて、学習部1220により作成された(
図9のステップS4030)。
【0086】
この時刻t3の状態において、評価部1230における評価(ステップS4040)が1回目で合格基準に達したので(ステップS4050:YES)、ステップS4200以降の処理が実行される。すなわち、
図12に関連することに限定すれば、ステップS4220において追加学習データ群1202を基礎学習データ群1201に追加し、ステップS4260において統計モデル1131が更新される。
【0087】
時刻t4において、中継サーバ1000は、バージョン4の統計モデル1131と、レコード数1200の基礎学習データ群1201とを有する。基礎学習データ群1201は、時刻t3における基礎学習データ群1201に、追加学習データ群1202を追加したものなのでレコード数は1200である。バージョン3の統計モデル1131は、バージョン4に置き換えられたために削除された。
この時刻t4の状態は、統計モデル1131のバージョン番号、および基礎学習データ群1201のレコード数を除けば、時刻t1の状態と同一である。すなわち、中継サーバ1000は、この時刻t1〜t3の状態を繰り返す。
【0088】
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)本実施の形態における中継サーバ1000、すなわち意図推定装置は、テキストおよび正解意図表現を関連付けて構成される学習データを複数含む第1の学習データ群、すなわち基礎学習データ群1201と、この第1の学習データ群に含まれる複数の学習データおよび第1の学習データ群に含まれない複数の学習データを含む第2の学習データ群、すなわち基礎学習データ群1201と追加学習データ群1202を合わせた学習データ群1200と、テキストが入力されると当該テキストの意図を推定して意図推定結果を出力する統計モデルを学習データを用いて作成するモデル作成部、すなわち学習部1220(
図11のステップS4030)と、学習部1220により基礎学習データ群1201を用いて作成された第1の統計モデル、すなわち統計モデル1131と、学習部1220により学習データ群1200を用いて作成された第2の統計モデル、すなわち評価用統計モデル1240と、を備える。
【0089】
中継サーバ1000は、さらに、統計モデル1131に基づいて出力される意図推定結果が正しく、かつ評価用統計モデル1240に基づいて出力される意図推定結果が誤りであるテキストに対応する学習データを、誤りデータとして学習データ群1200から抽出する誤りデータ抽出部(
図9のステップS4060)と、評価用統計モデル1240に基づく誤りデータの意図推定結果が誤りとなる原因の学習データを、対立データとして学習データ群1200から抽出する対立データ抽出部(
図11のステップS4080)と、を備える。
【0090】
中継サーバ1000は、さらに、学習部1220による統計モデルの作成における誤りデータまたは対立データの影響を変化させるように学習データ群1200の修正を行う、データ修正部1260(
図11のステップS4120、S4130、S4150、S4160)と、を備える。
このような中継サーバ1000によれば、複数のユーザの自然言語のログを用いた学習により、テキストがより正しく意図推定されるので、ユーザの利便性を高めることができる。
誤りデータの倍率を増加させる場合は、優先度が低いテキストも正しく意図推定される可能性が残る。対立データの倍率を減少させる場合は、優先度が高いテキストに対する悪影響が速やかに取り除かれるため、優先度が高いデータは正しく理解されるようになる。また、学習データの増加が起こらないため、学習時間が増加しない。
【0091】
(2)学習データ群1200に含まれる学習データは、当該テキストの意図推定における重要性の指標を示す優先度をさらに含む。データ修正部1260は、誤りデータの優先度と対立データの優先度を比較し(
図11のステップS4110)、その比較結果に基づいて、ステップS4120、S4130、S4150、S4160のいずれかの処理を実行することにより、学習データ群1200の修正を行う。このようにしたので、誤りデータおよび対立データの意図推定における重要性を考慮して、学習データ群1200の修正を適切に行うことができる。
(3)データ修正部1260は、誤りデータの優先度が対立データの優先度よりも大きい場合には、ステップS4150において誤りデータの倍率を増加させることにより、統計モデルの作成における誤りデータの影響を大きくするか、または、ステップS4160において対立データの倍率を減少させることにより、統計モデルの作成における対立データの影響を小さくするように、学習データ群1200の修正を行う。このようにしたので、優先度がより高い誤りデータに対応するテキストが正しく意図推定されるように、学習データ群1200を修正することができる。
(4)一方、データ修正部1260は、誤りデータの優先度が対立データの優先度よりも小さい場合には、ステップS4130において誤りデータの倍率を減少させることにより、統計モデルの作成における誤りデータの影響を小さくするか、または、ステップS4120において対立データの倍率を増加させることにより、統計モデルの作成における対立データの影響を大きくするように、学習データ群1200の修正を行う。このようにしたので、優先度がより高い対立データに対応するテキストが正しく意図推定されるように、学習データ群1200を修正することができる。
【0092】
(5)学習データ群1200に含まれる学習データは、学習部1220による統計モデルの作成における当該テキストの重みを表す倍率をさらに含む。データ修正部1260は、ステップS4120、S4130、S4150、S4160において、誤りデータまたは対立データの倍率を増減させることにより、学習データ群1200の修正を行う。このようにしたので、学習部1220による統計モデルの作成における誤りデータまたは対立データの影響を変化させるような学習データ群1200の修正を、簡潔な処理で容易に行うことができる。
【0093】
(6)データ修正部1260は、ステップS4080において、学習データ群1200から、誤りデータと同一または類似するテキストと、誤りデータに関連付けられた正解意図とは異なる正解意図とを有する学習データを、対立データとして抽出する。このようにしたので、誤りデータに対する対立データを確実かつ容易に抽出することができる。
【0094】
(7)中継サーバ1000は、任意のテキストを評価用統計モデル1240に入力して得られた意図推定結果に基づいて、評価用統計モデル1240が所定の基準を満たすか否かを判断する評価部1230(
図9のステップS4040、S4050)をさらに備える。データ修正部1260は、評価用統計モデル1240が所定の基準を満たさないと評価部1230が判断した場合に、ステップS4061の処理を実行して学習データ群1200を修正する。学習部1220は、こうしてデータ修正部1260により修正された学習データ群1200を用いて、ステップS4030の処理を再度実行することにより、評価用統計モデル1240を再度作成する。このようにしたので、学習データ群1200の修正を繰り返し行って、高い水準で評価用統計モデル1240を作成することができる。
【0095】
(8)データ修正部1260は、以下に示すA〜Cの少なくとも1つの条件に基づいて、評価用統計モデル1240が所定の基準を満たすか否かを判断する。(A)評価用統計モデル1240は、正解意図が得られる割合が、統計モデル1131に比べて所定の割合以上高い。(B)統計モデル1131からは正解意図が得られ、評価用統計モデル1240からは正解意図が得られない割合が、所定の割合以下である。(C)前記第2の学習データ群に含まれるが前記第1の学習データ群に含まれない学習データを評価用統計モデル1240に入力すると、所定の割合以上で正解意図が得られる。
そのため、評価用統計モデル1240を異なる観点から評価することができる。(A)による評価では、意図推定の正解率が高いことを評価する。(B)による評価では、これまで正しく意図推定が可能であったのに、不可能となったテキストが十分に少ないことを評価する。(C)による評価では、新たに意図推定が正しく行えるようになったことを評価する。
【0096】
(9)第2の学習データ群、すなわち学習データ群1200は、第1の学習データ群、すなわち基礎学習データ群1201、および音声入力部1020を備える車載器200から送信される情報に基づいて、音声認識サーバ300および正解判定部1280により作成された追加学習データ群1202から構成される。
そのため、学習部1220は、意図推定部1120が意図推定を行う場合と同様のデータを用いて学習を行うことができる。
【0097】
(10)中継サーバ1000は、テキストおよび当該テキストの正解意図が関連付けられて保存されるルールテーブル1132と、統計モデル1131またはルールテーブル1132に基づいて入力されたテキストに対する意図推定結果を出力する意図推定部1120とをさらに備える。データ修正部1260は、学習データ群1200に含まれる学習データのうち倍率が所定の範囲外にある学習データをルールテーブル1132に移動する(
図11のステップS4164)。意図推定部1120は、入力されたテキストがルールテーブル1132に含まれる場合は、統計モデル1131を用いずに、ルールテーブル1132に基づいて意図推定結果を出力する。
【0098】
そのため、性質の異なる2つの意図推定手法を組み合わせることにより、多くのテキストを正しく意図推定し、ユーザの利便性を高めることができる。また、学習データ群1200の修正を行った結果、ある学習データにおいてテキストに関連付けられた倍率が所定の範囲外となった場合には、その学習データがルールテーブル1132に移動され、学習データ群1200からは削除される。そのため、学習部1220が評価用統計モデル1240を作成する際に、倍率の高い学習データが他の学習データに悪影響を与えるのを防止することができる。さらに、倍率が低く評価用統計モデル1240には反映されにくい学習データについても、ルールテーブル1132を用いて正しく意図推定を行うことができる。したがって、様々なテキストに対して頑健に意図推定を行うことができる。
【0099】
(11)データ修正部1260は、統計モデル1131に基づいて出力される意図推定結果が誤りであり、かつ評価用統計モデル1240に基づいて出力される意図推定結果が正しいテキストを、そのテキストを表す音声信号を過去に出力した車載器200に対して、新規理解テキストとして通知する(
図9のステップS4230〜S4250)。そのため、評価用統計モデル1240を更新後の統計モデル1131とした場合に、これを用いることで意図推定部1120が正しく意図推定できるようになったテキストを、当該テキストの音声を過去に発話したことがあるユーザに明示することができる。したがって、意図推定部1120の機能向上をわかりやすく、簡潔にアピールすることができる。たとえば、ユーザにとってみれば、自分向けに改善してくれたという実感を持つことができ、より車載器に対して親近感や信頼感を持つことができるようになり、より快適に使用することができるようになる。
【0100】
(12)中継サーバ1000は、正解意図、誤った意図推定結果、および当該誤った意図推定結果を出力することによりユーザの受ける不利益の大きさである不利益度の関係を示す意図重要度表、すなわちトピック意図重要度1271、およびスロット意図重要度1272に関する情報を含む優先度基礎情報1270と、これらの意図重要度表を参照し、不利益度の大きさに基づいて優先度を設定する優先度設定部(
図10のステップS4007、S4008、S4014)とを備える。
そのため、不利益度が大きいほど優先度が高く設定されるので、ユーザが大きい不利益を受けることが少ない。すなわち、ユーザの利便性を高めることができる。
【0101】
(13)意図推定結果は、機能推定結果すなわちトピックと、変数推定結果すなわちスロットとから構成される。優先度基礎情報1270は、トピック誤りに対応する第1の意図重要度表、すなわちトピック意図重要度1271と、スロット誤りに対応する第2の意図重要度表、すなわちスロット意図重要度1272とから構成される。
優先度設定部(
図10のステップS4006〜S4014)は、トピックに誤りがある場合にトピック意図重要度1271を参照し、スロットに誤りがある場合にスロット意図重要度1272を参照し、不利益度の大きさに基づいて優先度を設定する。
そのため、トピックの誤り、およびスロットの誤りに対して独立した不利益度を設定し、詳細に優先度を設定することができる。
【0102】
(変形例)
以上説明した第1の実施の形態を以下のように変形して実施することができる。
(1)
図11に示した倍率の更新(S4110〜S4160)において、増加方式または減少方式のいずれかの方式を採用したが、両者を併用してもよい。すなわち、たとえば誤りデータの方が優先度が大きい場合に(S4100:YES)、対立データの倍率を減少させるとともに、誤りデータの倍率を増加させてもよい。また、誤りデータの方が優先度が小さい場合は、学習データの倍率を変更しなくてもよい。
【0103】
増加方式、減少方式のいずれかを使用するかに関しては、事前に管理端末500から入力される方式に従う方法が考えられるが、データ修正の最中に自動的にいずれを使用するか、または切り替える方法もある。たとえば、データ修正の初期段階においては、まず減少方式を用いて、学習データの倍率を減少させる。この修正により、対立データおよび誤りデータの双方が正しく意図推定される状態を保つことを目指す。両データが正しく意図推定させることに成功すれば、データ修正は終了となる。しかしながら、ある学習データの倍率を減少させることにより、当該学習データの意図推定結果が誤りに転ずることがある。この場合のみ、減少方式による修正をやめて、増加方式による修正に移行する。すなわち、片方の学習データが正しく意図推定される最低限の倍率を保ちつつ、もう片方の学習データも正しく意図推定されるように倍率を増加させていく。このアルゴリズムにより、学習データ全体の意図推定正解率を高く保ちつつ、かつ特異的に倍率が大きい学習データの存在を防ぐことができる。
【0104】
(2)中継サーバ1000は、車載器200から音声信号を受信し、車載器200に推定意図表現を送信したが、車載器200は、携帯電話でもよいし、コンピュータでもよい。すなわち、通信部と音声入力部を備え、中継サーバ1000から受信する推定意図表現にしたがって動作する端末であればよい。
【0105】
(3)中継サーバ1000は、必要に応じて音声認識サーバ300および施設検索サーバ400と通信を行ったが、中継サーバ1000が音声認識サーバ300の機能、または施設検索サーバ400の機能、の少なくとも1つを備えてもよい。
車載器200、中継サーバ1000は、別のユニットになっている必要は無く、同一のユニットにあってもよい。
本実施の形態は、中継サーバ以外のサーバにて、施設検索のサービスを行う構成としたが、楽曲検索やWeb検索など、別のサービスを提供するサーバが存在する構成でもよい。また、中継サーバ以外のサーバに接続しない形態でもよい。
【0106】
(4)中継サーバ1000は、車載器200から音声信号を受信したが、テキストを受信してもよい。すなわち、車載器200が音声認識部を備えてもよいし、車載器200がテキスト入力部を備えてもよい。
(5)評価用統計モデル1240の評価において、データ修正部1260は3つの基準の全てを満たすことを合格基準とした(ステップS4040)。しかし、2つ以上を満たすことを合格基準としてもよいし、少なくとも1つを満たすことを合格基準としてもよい。
また、第1の実施の形態で説明した(A)(B)(C)の合格基準における「正解(不正解)の割合」は、正解数(不正解数)を評価データの数で割った値として算出する方法が基本的な方法である。これに加えて、それぞれの評価データの優先度を考慮した値を計算することもできる。たとえば、「正解(不正解)の割合」として、正解(不正解)だった評価データの優先度を合計した値を、すべての評価データの優先度を合計した値で割った値を使ってもよい。または、優先度の大きさを低(0〜0.3)、中(0.3〜0.7)、高(0.7〜1.0)のように数段階に分けておき、それぞれの段階の優先度の評価データごとに「正解(不正解)の割合」「正解(不正解)数」を計算し、それぞれの段階ごとに合格と判定する基準値を別に設けてもよい。
【0107】
(6)オペレータが管理端末500から正解判定部1280を操作して、ユーザログ1180に正解フラグおよび正解意図表現を付与していた。しかし、中継サーバ1000が意図推定モデル1130とは異なる、第2の意図推定モデルを有し、第2の意図推定モデルを用いて正解フラグ、および正解意図表現を付与してもよい。
(7)評価部1230は、評価データ1210として学習データ群1200を用いたが、学習データ群1200と無関係のデータを用いてもよい。すなわち、学習部1220が学習に用いたか否かに関わらず、複数の、テキストとそのテキストの正解意図表現の組合せを評価データ1210として用いてもよい。
【0108】
(8)データ修正部1260による評価用統計モデル1240の評価基準、すなわち合否判定(
図9のステップS4050)を行う際の基準は、データ修正を行った回数が多くなるほど、基準を緩和してもよい。たとえば、前述のA〜Cの条件を満たす数を減らしてもよいし、A〜Cに含まれる所定の割合を、条件を満たしやすいように低減してもよい。
(9)通信部1080は、車載器200に内蔵せず、他の通信機器が有する通信機能を利用してもよい。
(10)データ修正部1260による評価用統計モデル1240の評価において、優先度を考慮してもよい。たとえば、正解意図表現が得られた数をカウントする際に、一律に1を加えるのではなく、0.0〜1.0の優先度を加算してもよい。これにより、優先度が高いデータの正解・不正解が合否判定における重要さを増すように計算される。
【0109】
(11)学習データ群1200から対立データを抽出するために、第1の実施の形態では多次元ベクトルを用いたが、実験的手法を用いてもよい。具体的には、それぞれの学習データを順に注目し、注目されたデータだけを学習データ群1200から除外して評価用統計モデル1240を生成し、さらに誤りデータの意図推定を実行する。もし、この結果、誤りデータの意図推定結果が正解になれば、除外した学習データが対立データだと考えられる。この手法は、対立データを抽出できていることの確証が得られること、スロット推定誤りの対立データの抽出にも利用できる、という利点がある。
【0110】
(12)意図推定モデル1130は、統計モデル1131とルールテーブル1132とから構成されたが、統計モデル1131のみから構成されてもよい。その場合には、
図11のステップS4164の処理を行わなくてもよいし、ルールテーブルに移動する代わりに学習データ群1200から削除してもよい。
(13)
図9のステップS4220において、データ修正部1260は、追加学習データ群1202の全てのレコードを基礎学習データ群1201に追加したが、倍率が所定の値より小さいレコードは基礎学習データ群1201に追加しなくてもよい。たとえば、倍率が0.2未満のレコードは基礎学習データ群1201に追加することなく、追加学習データ群1202から削除してもよい。
【0111】
(14)データ修正部1260は、追加学習データ群1202の優先度を決定する際に、既存の同一のテキストを有する学習データの優先度を考慮しなくてもよい。すなわち、
図10においてステップS4007およびステップS4008を実行した後に、ステップS4013、ステップS4014と進み、読取った重要度をそのまま優先度としてもよい。
(15)ルールテーブル1132は、学習データのうち統計手法では正しく意図推定できないものが自動的に格納されるという前提で説明した。しかし、ルールテーブル1132のデータには、自動的に格納されるもののほかに、人が追加したデータがあってもよい。また、学習データから選定されたデータを運用者が見て、文字列や正解意図表現を編集したうえで、ルールテーブル1132に追加する方式をとってもよい。
【0112】
(16)トピック意図重要度1271は、正解の意図表現と誤りの意図表現のペアで決定されるものとした。しかし、正解の意図表現のみ、または誤りの意図表現のみから、一意にトピック意図重要度を決定する方式でも良い。
(17)上述した実施の形態では、ステップS4005の動作を、読み込んだ正解フラグが「不正解」である場合のみ、ステップS4006に進むとした。しかし、実際には「正解」であったデータも、正しく意図推定される状態が継続することが望ましく、そのことを検証するには、「正解」であったデータも追加学習データに入れる必要がある。そのため、S4005の分岐の条件を、「正解」「不正解」のいずれかであったときにS4006に遷移するように変更してもよい。
【0113】
(変形例1)
上述した実施の形態では、オペレータが管理端末500から正解判定部1280を操作して、ユーザログ1180に正解フラグを付与していたが、正解判定部1280はオペレータの操作なく正解フラグを付与してもよい。
意図推定部1120が統計モデル1131の出力した推定意図表現を車載器200に送信すると、車載器200は受信した推定意図表現に従って動作する。このとき、車載器200のユーザは自らの意図と異なる動作が行われると、ユーザはたとえば次のA〜Dのような行動を行うと考えられる。
【0114】
(A)受信した推定意図表現によって実行された車載器の機能を取り消す。
(B)受信した推定意図表現によって機能が実行された直後に、操作入力部1030から本来意図していた機能を実行する。
(C)ユーザがもう一度同じ発話を行い音声入力部1020に入力する。
(D)ユーザが、同じ意図を実行させるために、異なる言い回しによる発話を行い音声入力部1020に入力する。
たとえば、異なる言い回しの検出には、複数回のユーザ発話から、単語列の一致数、多次元ベクトルに変換したときの空間上の距離、などの値を測定することにより、検出することができる。
【0115】
そこで、車載器200は中継サーバ1000から受信した意図推定表現に従って動作を開始するとともに、所定時間、たとえば30秒間にわたって音声入力部1020および操作入力部1030からの入力(以後、動作ログ)を記録し、中継サーバ1000に送信する。動作ログを受信した中継サーバ1000の通信部1110は、正解判定部1280に動作ログを出力する。正解判定部1280は、動作ログを解析して上記A〜Dのいずれかの動作を推定すると正解フラグに不正解を設定し、いずれの動作も推定されないと正解フラグに正解を設定する。
【0116】
この変形例1によれば、以下の作用効果を奏する。
(1)中継サーバ1000は、ユーザの発声行動および入力操作行動に基づく入力をそれぞれ検出する音声入力部1020および操作入力部1030を備える車載器200との間で情報の送受信を行う通信部1110と、統計モデル1131に基づいて入力されたテキストに対する意図推定結果を出力する意図推定部1120と、意図推定部1120による意図推定結果の正誤を判断する正解判定部1280とを備える。通信部1110は、意図推定部1120から出力された意図推定結果を車載器200に送信すると共に、意図推定結果を受信してから所定時間以内に音声入力部1020および操作入力部1030により検出された入力に基づく入力情報を車載器200から受信する。正解判定部1280は、通信部1110により受信された入力情報に基づいて、意図推定部1120による意図推定結果の正誤を判断する。
そのため、正解判定部1280がユーザログに正解フラグを付与するので、オペレータの負荷を軽減することができる。
【0117】
変形例1は、さらに以下のように変形できる。
音声認識の意図推定結果が正しかった場合、および誤りであった場合のユーザ操作ログを事前に用意する。ユーザおよび機器の状態が確率的に遷移するマルコフモデルを想定し、各状態において各ユーザ行為が行われる確率、および状態間を遷移する確率をモデル化しておく。このマルコフモデルを、意図推定結果が正しかった場合と、誤りであった場合のそれぞれで、ユーザ操作ログから学習しておく。実際にユーザが行った行為順序が、どちらのマルコフモデルから生成される確率が高いかを評価する。確率が高かったモデルが、正しかった場合のモデル/誤りであった場合のモデル、のいずれであるかにより、正解フラグを正解/不正解としてもよい。
【0118】
(第2の実施の形態)
図13〜16を参照して、本発明による意図推定システムの第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、優先度の決定方法が第1の実施の形態と異なる。
【0119】
(構成)
第2の実施の形態における、車載器200と、音声認識サーバ300と、施設検索サーバ400と、管理端末500の構成、および動作は、第1の実施の形態と同様である。中継サーバ1000の構成は、第1の実施の形態における構成に加えて、発話回数ポイントデータ3000、機器/ユーザデータ3100、およびポイント表を備える点が異なり、データ修正部1260の動作が異なる。データ修正部1260が、発話回数ポイントデータ3000、機器/ユーザデータ3100、およびポイント表を更新する。データ修正部1260が、発話回数ポイントデータ3000、機器/ユーザデータ3100、およびポイント表を用いて優先度を決定する。
【0120】
発話回数ポイントデータ3000は、これまでに音声認識サーバ300から中継サーバ1000が受信したテキストの種類と同じ数のレコードを有するデータベースである。すなわち、各レコードのテキストは異なる。発話回数データ3000の一例を
図13に示す。発話回数ポイントデータ3000の1レコードは、テキストと、そのテキストが発話された回数と、詳細情報と、詳細情報および機器/ユーザデータ3100から算出されたポイントとから構成される。詳細情報とは、同一レコードに含まれるテキストの音声信号を出力した車載器200のID、その車載器200のユーザID、およびテキストの音声信号を受信した日時である。
【0121】
機器/ユーザデータ3100は、これまでに中継サーバ1000が通信した音声認識サーバ300と同じ数のレコードを有するデータベースである。すなわち、1レコードに1台の車載器200に関する情報が保存される。機器/ユーザデータ3100の一例を
図14に示す。機器/ユーザデータ3100の1レコードは、車載器200の機器IDと、その車載器200を使用するユーザのユーザIDと、その車載器200から中継サーバ1000に音声信号が送信される1月あたりの回数と、最終利用日と、初回利用日と、その車載器200が重要であることを示す重要フラグと、から構成される。
【0122】
中継サーバ1000の通信部1110が車載器200から音声信号を受信すると、通信部1110が音声信号に付帯する端末IDおよびユーザIDをデータ修正部1260に伝達する。データ修正部1260は、機器/ユーザデータ3100の利用頻度、および最終利用日を更新する。ただし、伝達された機器IDおよびユーザIDが機器/ユーザデータ3100のいずれのレコードにも記録されていない場合は、新たにレコードを作成してサービス利用開始日に処理している日を記録する。重点フラグは、オペレータにより管理端末500からの操作により付与される。
【0123】
ポイント表3200は、優先度と発話回数ポイントデータ3000に記載のポイントとの関係を示すものである。ポイント表3200の一例を
図15に示す。
図15の例では、最高の1.0から0.1までの0.1刻みの優先度と、それぞれの優先度に該当する最小のポイントが記載されている。たとえば、ポイントが15000の場合には、17000未満で14000以上なので、優先度は0.8である。
【0124】
(動作)
中継サーバ1000の通信部1110が音声認識サーバ300からテキストを受信すると、通信部1110がそのテキストを意図推定部1120とデータ修正部1260に伝達する。データ修正部1260は、伝達されたテキストと、テキストが伝達される直前に伝達された機器IDおよびユーザIDとを対応させて扱う。データ修正部1260は、伝達されたテキストに一致するテキストを発話回数データ3000から検索し、一致するレコードの発話回数を1増加させる。データ修正部1260は、機器/ユーザデータ3100を参照し、その伝達されたテキストに対応する機器IDを有するレコードの、利用頻度、最終利用日、初回利用日、および重点フラグを所定の算出式に代入してポイントを算出する。データ修正部1260は、算出したポイントを発話回数データ3000の、伝達されたテキストを含むレコードのポイントに追加する。
【0125】
ポイントの算出式は、利用頻度、最終利用日、初回利用日、および重点フラグによる重みづけであり、たとえば利用頻度が高いほど、最終利用日から日数が経過していないほど、初回利用日から日数が経過しているほど、重点フラグがあると、ポイントが多くなるように構築されている。たとえば、利用頻度をA、最終利用日からの経過日数をB、初回利用日からの経過日数をC、中継サーバ1000の稼働開始からの日数をwork、重点フラグをDとすると、ポイントPは、以下の(式1)で表される。
P=A÷10+1÷B+C÷work+D・・・・・・(式1)
ただし、Dは、重点フラグを有する場合は所定の値、たとえば5を設定し、重点フラグを有さない場合は0を設定する。
【0126】
(追加学習データを作成するサブルーチン)
図16のフローチャートに示すプログラムは、第1の実施の形態における
図10に示すサブルーチンに代わって、第2の実施の形態においてデータ修正部1260が実行する処理手順を示すものである。
ステップS5001において、データ修正部1260は、発話回数データ3000を読込み、ステップS5002に進む。
【0127】
ステップS5002において、データ修正部1260は、発話回数データ3000に記載されている全てのポイントに注目し、ポイントにより降順に並べ替える。すなわち、並べ替えにより先頭のレコードが発話回数データ3000の最大のポイントを有し、最後のレコードは発話回数データ3000の最小のポイントを有する。次に、ステップS5003に進む。
ステップS5003において、データ修正部1260は、既知である発話回数データ3000の総レコード数を勘案し、並べ替えた10%ごとの境界となるポイントを算出する。たとえば、最上位の10%のグループと次の10%の境界となるポイントである。次にステップS5004に進む。
【0128】
ステップS5004において、データ修正部1260は、ステップS5003において算出したポイントをポイント表5300に記録して、ポイント表5300を更新する。
図16に示すポイント表5300の例では、左の列、すなわち優先度の1.0、0.9、などは変更されず、右の列、すなわち境界となるポイントが更新される。次にステップS5005に進む。
ステップS5005において、データ修正部1260は、ユーザログ1180を読込み、その総レコード数をnとして保存する。この総レコード数nは、後のステップS5012において利用される。次にステップS5006に進む。
【0129】
ステップS5006において、データ修正部1260は、変数iに1を代入してステップS5007に進む。
ステップS5007において、データ修正部1260は、ユーザログ1180のi番目のレコードの一部、すなわち、テキスト、および正解フラグを読み込む。次にステップS5008に進む。
ステップS5008において、データ修正部1260は、読込んだ正解フラグが「不正解」か否かを判断する。「不正解」であると判断する場合はステップS5009に進み、「正解」、または「ルール」であると判断する場合はステップS5011に進む。
【0130】
ステップS5009において、データ修正部1260は、発話回数データ3000を参照し、読込んだテキストを含むレコードのポイントを読み取る。たとえば、発話回数データが
図13に示す例の場合に、読込んだテキストが「周辺のコンビニ」の場合には、ポイントとして「23456」を読み取る。次に、ステップS5010に進む。
ステップS5010において、データ修正部1260は、ポイント表3200を参照し、ステップS5009において読取ったポイントが該当する優先度を読み取る。たとえば、ポイント表3200が
図15に示す例の場合に、読取ったポイントが「23456」の場合には、21000よりも大きいことから優先度は「1.0」であると読取る。次に、ステップS5011に進む。
【0131】
ステップS5011において、データ修正部1260は、ユーザログ1180のi番目のレコードのテキスト、正解意図表現、ステップS5010において読取った優先度、および初期値である「1」に設定した倍率を追加学習データ群1202の新たなレコードに書き込む。次にステップS5012に進む。
ステップS5012において、データ修正部1260は、変数iがユーザログ1180の総レコード数であるnと同一か否かを判断する。変数iがnと同一であると判断する場合は
図16に示すフローチャートを終了し、
図9のステップS4030に進む。変数iがnと同一でない、すなわち変数iがn未満であると判断する場合はステップS5013に進む。
ステップS5013において、データ修正部1260は、変数iに1を加えてステップS5007に戻る。
【0132】
上述した第2の実施の形態によれば、次の作用効果が得られる。
(1)学習データ群1200に含まれるテキストは、音声入力部1020を備える車載器200から送信される音声信号に基づいて音声認識サーバ300において作成される。中継サーバ1000は、通信部1110により受信されたユーザからの入力情報に基づいて音声認識サーバ300により作成されたテキストの頻度に基づいて、学習データ群1200の優先度を設定する優先度設定部、すなわちデータ修正部1260を備える。
そのため、中継サーバ1000が受信する頻度が高いテキストほど高い優先度が付され、正しく意図推定が行われるようにデータ修正部1260が倍率を変更するので、受信する頻度が高いテキストほど正しく意図推定が行われるようになる。すなわち、ユーザが高い頻度で発話する言葉が正しく意図推定が行われるため、ユーザの利便性が向上する。
【0133】
(2)データ修正部1260は、以下のA〜Dの少なくとも1つに基づき、学習データ群1200の優先度を設定する。
【0134】
(A)あらかじめ設定された車載器200の重要度、すなわち機器/ユーザデータ3100の重点フラグ
(B)車載器200が前記情報を送信する頻度、すなわち機器/ユーザデータ3100の利用頻度
(C)車載器200が直前に前記情報を送信してからの経過時間、すなわち機器/ユーザデータ3100の最終利用日から算出される経過日数
(D)車載器200が最初に前記情報を送信してからの経過時間、すなわち機器/ユーザデータ3100の初回利用日から算出される経過日数
【0135】
そのため、上記のA〜Dのそれぞれに以下の利点がある。
Aに示すように重点フラグを用いる場合は、当該システムにおいて重要であるとオペレータが判断し、重点フラグを付与した車載器200に入力された発話音声が、正しく意図推定されやすくなる。すなわち、利用頻度や利用期間などを問わず、オペレータの操作により任意の車載器200を優先することができる。
Bに示すように利用頻度を用いる場合は、利用頻度が高い熱心なユーザの発話を優先することができる。
【0136】
Cに示すように直前に送信してからの経過時間を用いる場合は、経過時間が短いほど利用頻度が高いと推測できるので、利用頻度を用いる場合と同様に熱心なユーザの発話を優先することができる。
Dに示すように初回利用日からの経過時間を用いる場合は、利用期間の長いユーザの発話を優先することができる。
【0137】
(変形例)
以上説明した実施の形態を以下のように変形して実施することができる。
(1)機器/ユーザデータ3100の重点フラグは、車載器200に対してではなく、車載器200を使用するユーザに対して付与してもよい。すなわち、ユーザIDがあらかじめ設定されたユーザIDと一致するか否かにより重点フラグを設定してもよい。
なお、ユーザIDを車載器200が送信しない場合であっても、車載器200にユーザのニックネームを入力してもらいそれをIDの代わりとして送信する方法や、車載器200に接続して使用するスマートフォンのユーザ情報を利用する方法や、ユーザの声を車載器または中継サーバにあらかじめ保存しておき、ユーザが音声認識にて発話した音声からユーザを推定する方法などを取ることができる。
【0138】
(2)第2の実施の形態では、式(1)を用いて、利用頻度、直前の利用からの経過日数、初回利用日からの経過日数、重点フラグ、の全てを用いて優先度を算出したが、少なくとも1つを用いればよい。
(3)第2の実施の形態では、利用頻度が高いほど、直前の利用からの経過日数が短いほど、初回利用日からの経過日数が長いほど、優先度を高く設定した。しかし、利用頻度が低いほど、直前の利用からの経過日数が長いほど、初回利用日からの経過日数が短いほど、優先度を高く設定してもよい。これらの場合は、あまり利用していないユーザや使い始めたばかりのユーザに、サービスを継続的に使用する意欲を増すことができる。
または、利用頻度の高低とポイントの大小の関係は、ユーザIDごとに変えてもよい。
【0139】
(4)ステップS5008動作は、読み込んだ正解フラグが「不正解」である場合のみ、ステップS5009に進むとした。しかし、実際には「正解」であったデータも、正しく意図推定される状態が継続することが望ましく、そのことを検証するには、「正解」であったデータも追加学習データに入れる必要がある。そのため、S5008の分岐の条件を、「正解」「不正解」のいずれかであったときにS5009に遷移するように変更してもよい。
【0140】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。
上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。