特許法第30条第2項適用 2020年10月1日付で西田京介、齋藤邦子、甘粕哲郎、磯和之、西岡秀一が、NTT技術ジャーナル、第32巻、第10号、第69~73頁、一般社団法人電気通信協会 にて、長谷川隆明、山田節夫、磯和之、杉崎正之が発明した「推定装置、推定方法、学習装置、学習方法およびプログラム」に関する技術について公開。
以下、本開示の実施の形態について図面を参照して説明する。
(第1の実施形態)
まず、本開示の概要について説明する。
系列データを構成する発話においては、語句が省略されることが比較的多いため、発話の長さ、すなわち、単語数が少なくなる場合がある。また、話題の種類が少なくても、話題同士が類似していたり、話題の出現順序が不定であったりする場合がある。これらの場合にも話題の分類が可能な分類モデルを構築するためには、教師データの準備に多くのコストがかかってしまう。
複数の話題を含む対話の系列データにおける話題を推定するためには、話の切り替わり(区切り)から次の切り替わりの直前の発話までの段落または話の切り替わりから対話の終わりの発話までの段落の範囲を推定することが有効である。段落の範囲を推定することができれば、その段落に含まれる発話に範囲を限定して話題を推定することができるので、話題の推定をより高精度に行うことができる。
本開示は、オペレータとカスタマとの対話といった、複数の話題を含む対話の系列データにおける、話の切り替わりから次の切り替わりの直前の発話までの段落または話の切り替わりから対話の終わりの発話までの段落の範囲の推定、および、段落における話題の推定に関する。
以下では、コンタクトセンタにおけるオペレータとカスタマとの対話を例として考える。オペレータが主導して対話を進めるケースとして、カスタマが抱えている問題を解決するに当たり、オペレータが現在の状況あるいはこれまでの経緯などをカスタマに問診しながら原因を突き止めていくケース、オペレータがカスタマの状況についてインタビューを行いながら業務の手続きに必要な書類を作成するケースなどが存在する。
上述したようなケースの対話では、オペレータが質問している内容の単位を1つの話題と捉えることができる。ただし、多くの話題の種類から最も適切な話題の種類を一意に決定することは難しい。また、上述したような対話における話題はいずれも特定の業務に関連した範囲の話題であり、ある話題と別の話題とが類似していることが多い。そして、類似している話題を区別することは難しい。そのため、対話全体を、話題ごとの一連のまとまりに分割するのは困難である。
しかしながら、オペレータが次の話に移る際には、オペレータは、「このたび」、「では」、「あと」といった、話が切り替わることをカスタマに伝える語句を発することが多い。また、話が終わる際には、オペレータは、カスタマの発話を受けて、「かしこまりました」、「承知いたしました」といった、話が終わることをカスタマに伝える語句を発することが多い。これらの語句は、話の内容に依存しないため、話の切り替わり(話の区切り)を検出する上で有用である。
本開示においては、例えば、上述した話の切り替わりを示す語句などを利用して、系列データにおける発話が、話の切り替わり発話であるか否かを判定するルールを作成する。そして、本開示においては、作成したルールに基づき、系列データにおける発話が、話の切り替わりの発話であるか否かを判定する。また、本開示においては、例えば、話の切り替わりの発話には、話の切り替わりであることを示すラベルを付与し、その他の発話には、話の切り替わりの発話でないことを示すラベルを付与した教師データに基づき、話の切り替わりの発話であるか否かを判定するモデルを作成し、作成したモデルの判定の結果を用いて、話の切り替わりから次の切り替わりの直前の発話までの段落または話の切り替わりから対話の終わりの発話までの段落の範囲を推定する。また、本開示においては、段落あるいは段落に含まれる発話における話題を推定する。対話に多くの話題あるいは類似した内容の話題が含まれている場合であっても、話の切り替わりから次の切り替わりの直前の発話までの段落または話の切り替わりから対話の終わりの発話までの段落の範囲を推定することができれば、その段落に含まれる発話に絞って話題を推定することができるので、より精度の高い話題の推定が可能となる。
上述したように、本開示においては、予め学習されたモデルを用いて、系列データを構成する発話が、話の切り替わりの発話であるか否かを判定する。また、本開示においては、段落における話題の推定に、教師データに基づき学習されたモデルを用いてもよい。まず、これらのモデルの学習について説明する。
系列データを構成する発話が、話題の切り替わりの発話であるか否かを判定するモデルを用いて、系列データを構成する発話が、話題の切り替わりの発話であるか否かを判定し、その判定結果を用いて、段落の範囲を推定してもよい。ただし、系列データを構成する発話が話題の切り替わりの発話であるか否かを判定するモデルの作成のためには、系列データを構成する発話ごとに話題を示す多値ラベルが付与された教師データが必要となる。通常、そのような教師データを作成することは、手間がかかり、困難であることが多い。そこで、本実施形態においては、系列データを構成する発話が、話の切り替わりの発話であるか否かを判定し、その判定結果を用いて、段落の範囲を推定する。ただし、系列データを構成する発話ごとに話題を示す多値ラベルが付与された教師データを用意することができれば、話題の切り替わりに基づき、段落の範囲を推定してもよい。従って、本開示における「話の切り替わり」は、「話題の切り替わり」も含む概念である。
図1は、系列データを構成する発話が話の切り替わりの発話であるか否かを判定する二値分類モデル1を学習する学習装置10の構成例を示す図である。
図1に示す学習装置10は、入力部11と、二値分類学習部12とを備える。
入力部11は、複数の話題を含む対話の系列データが入力される。系列データは、例えば、オペレータおよびカスタマの時系列的な発話が音声認識されたテキストデータである。入力部11に入力される系列データは、発話単位であってもよく、発話を分割した分割単位(例えば、単語単位、文字単位、句点単位など)であってもよい。入力部11は、オンラインで系列データが入力される場合には、対話中の各発話の音声認識により得られたテキストデータが逐次、入力されてよい。入力部11は、オフラインで系列データが入力される場合には、対話中の各発話の開始時刻あるいは終了時刻でソートして、各発話のテキストデータが入力されてよい。
また、入力部11は、系列データを構成する発話または発話を分割した分割単位に対して付与された、話の切り替わりであるか否かを示す二値ラベル(切り替わりラベル)が入力される。二値ラベルは、例えば、「1(話の切り替わりである)」または「0(話の切り替わりでない)」、あるいは、「True(話の切り替わりである)」または「False(話の切り替わりでない)」などのラベルである。また、入力部11は、発話またはその分割単位に対して、話の切り替わりを示す何らかのラベルが付与されていれば、「True(話の切り替わりである)」とみなし、話の切り替わりを示す何らかのラベルが付与されていなければ、「False(話の切り替わりでない)」とみなしてよい。
二値ラベルは系列データを構成する発話またはその分割単位に対して予め人手により付与される。上述したように、話の切り替わりに発せられることが多い語句がある。二値ラベルは、例えば、これらの語句に基づき付与される。なお、例えば、機器の故障を例にすると、機器の故障に関する話題であるか否かを分類したい場合には、原因に関わらず機器の故障に関する発話の話題は「機器の故障」となる。一方、故障の原因に応じて話題を分類したい場合には、故障の原因ごとに異なる話題となる。したがって、分類したい話題の決め方によっては、話に区切りがついても、話題が切り替わっていない場合がある。そのため、二値ラベルの付与にあたっては、ある話題から同じ話題に遷移する発話であっても、話の切り替わりである可能性がある発話またはその分割単位に対して、話の切り替わりであることを示すラベルが付与されることが好ましい。こうすることで、話の切り替わりの発話についての正例を増やし、話の切り替わりの発話の判定の精度を高めることができる。
このように、入力部11は、複数の話題を含む対話の系列データと、系列データを構成する発話またはその分割単位に対して付与された、話の切り替わりであるか否かを示す二値ラベル(第1のラベル)とが入力される。入力部11は、入力された系列データおよび二値ラベルを二値分類学習部12に出力する。
二値分類学習部12は、入力部11から出力された系列データおよび二値ラベルを教師データとして学習を行い、系列データにおける発話が話の切り替わりの発話であるか否かを判定する二値分類モデル1(第1のモデル)を学習する。したがって、二値分類モデル1は、複数の話題を含む対話の系列データを構成する発話またはその分割単位に対して、教師データ(第1の教師データ)に基づいて予め学習されたモデルである。二値分類モデル1の学習に用いられる教師データ(第1の教師データ)は、複数の話題を含む対話の系列データを構成する発話またはその分割単位に対して、話の切り替わりであるか否かを示す二値ラベルが付与されたデータである。モデルの学習には、時系列的なデータの学習に適したLSTMなどを用いることができる。
上述したように、二値分類モデル1の学習に用いられる教師データにおいては、ある話題から同じ話題に遷移する発話を含めて、話の切り替わりである可能性がある発話またはその分割単位に対して、話の切り替わりであることを示すラベルが付与される。したがって、このような教師データを用いて学習された二値分類モデル1によれば、分類したい話題の決め方によっては、話題が切り替わっておらず、同じ話題に関連する発話が続く区間内の発話であっても、話の切り替わりの発話と判定されることがある。
次に、図2を参照して、話題を分類(推定)する多値分類モデル2を学習する学習装置20の構成について説明する。
図2に示すように、学習装置20は、入力部21と、多値ラベル補完部22と、多値分類学習部23とを備える。
入力部21は、複数の話題を含む対話の系列データが入力される。また、入力部21は、系列データを構成する発話またはその分割単位に対して付与された、話の切り替わりであるか否かを示す二値ラベルが入力される。また、入力部21は、系列データにおける、1つの話題が続く範囲およびその範囲における話題を示す多値ラベル(第2のラベル)が入力される。系列データおよび二値ラベルは、図1に示す入力部11に入力される系列データおよび二値ラベルと同様である。多値ラベルは人手により付与される。具体的には、系列データにおいて、1つの話題が続く範囲が特定され、複数の話題のラベルの中から、その特定された範囲における話題を示す多値ラベルが付与される。1つの系列データに対する二値ラベルと多値ラベルとは、別々のファイルで入力されてもよいし、1つのファイルでまとめて入力されてもよい。
入力部21は、入力された、系列データ、二値ラベルおよび多値ラベルを多値ラベル補完部22に出力する。
多値ラベル補完部22は、入力部21から入力された系列データ、二値ラベルおよび多値ラベルから、多値分類モデル2を学習するための教師データ(第2の教師データ)を生成する。具体的には、多値ラベル補完部22は、話の切り替わりであることを示すラベルが付与された発話またはその分割単位に対して、その発話が含まれる範囲における話題を示す多値ラベルを付与する。上述したように、教師データとしての二値ラベルの付与においては、ある話題から同じ話題に遷移する発話も含めて、話の切り替わりである可能性がある発話またはその分割単位に対して、話の切り替わりであることを示すラベルが付与される。したがって、例えば、同じ話題に関連する発話が続く範囲内の発話であっても、話の切り替わりであることを示すラベルが付与されることがある。多値ラベル補完部22は、そのような発話またはその分割単位に対しても、その発話が含まれる範囲における話題を示す多値ラベルを付与する。こうすることで、各話題に関連する発話の教師データを増やし、話題の推定の精度向上を図ることができる。
多値ラベル補完部22は、多値ラベルを付与した発話またはその分割単位と、その発話または分割単位に付与した多値ラベルとを多値分類学習部23に出力する。
多値分類学習部23は、多値ラベル補完部22から出力された、発話またはその分割単位と、その発話または分割単位に付与された多値ラベルとを教師データ(第2の教師データ)として、多値分類モデル2(第2のモデル)を学習する。したがって、多値分類モデル2は、系列データを構成する発話またはその分割単位に対して、教師データ(第2の教師データ)に基づいて予め学習されたモデルである。多値分類モデル2の学習に用いられる教師データは、話の切り替わりの発話またはその分割単位に対して、話の切り替わりであることを示す二値ラベルが付与されるとともに、話題が続く範囲およびその範囲における話題が特定された系列データにおいて、話の切り替わりであることを示すラベルが付与された発話またはその分割単位に、その発話が含まれる範囲における話題を示す多値ラベルを付与することで生成されたデータである。
次に、本実施形態に係る推定装置30の構成について、図3を参照して説明する。本実施形態に係る推定装置30は、オペレータとカスタマとの対話といった、複数の話題を含む対話の系列データにおける、話の切り替わりから次の切り替わりの直前の発話までの段落または話の切り替わりから対話の終わりの発話までの段落の範囲を推定し、その段落における話題を推定する。
図3に示すように、本実施形態に係る推定装置30は、入力部31と、判定部32と、段落推定部33と、話題推定部34と、出力部35とを備える。
入力部31は、複数の話題を含む系列データが入力される。入力部31に入力される系列データは、段落の範囲および段落における話題の推定の対象となる処理対象のデータである。系列データは、例えば、オペレータおよびカスタマの時系列的な発話が音声認識されたテキストデータである。入力部31は、オンラインで系列データが入力される場合には、対話中の各発話の音声認識により得られたテキストデータが逐次、入力されてよい。また、入力部31は、オフラインで系列データが入力される場合には、対話中の各発話の開始時刻あるいは終了時刻でソートして、各発話のテキストデータが入力されてよい。入力部31は、入力された系列データを判定部32に出力する。
判定部32は、二値分類モデル1(第1のモデル)を用いて、入力部31から出力された系列データを構成する発話が、話の切り替わりの発話であるか否かを判定し、判定の結果を段落推定部33に出力する。上述したように、二値分類モデル1は、複数の話題を含む対話の系列データを構成する、発話またはその分割単位に対して、話の切り替わりであるか否かを示す二値ラベルが付与された教師データ(第1の教師データ)に基づいて予め学習されたモデルである。
段落推定部33は、判定部32による判定の結果に基づき、系列データにおける、話の切り替わりから次の切り替わりの直前の発話までの段落または話の切り替わりから対話の終わりの発話までの段落の範囲を推定する。具体的には、段落推定部33は、判定部32により話の切り替わりの発話であると判定された発話から、その次に話の切り替わりの発話であると判定された発話の直前の発話までの範囲を、1つの段落と推定する。上述したように、二値モデル1の学習に用いられる教師データにおいては、同じ話題に関連する発話が続く範囲内の発話であっても、話の切り替わりであることを示すラベルが付与されることがある。そのため、段落推定部33は、同じ話題に関連する発話が続く範囲であっても、その範囲を複数の段落に分類することがある。
話題推定部34は、多値分類モデル2(第2のモデル)を用いて、段落推定部33により範囲が推定された、段落または段落に含まれる発話における話題を推定する。上述したように、多値分類モデル2は、系列データを構成する発話またはその分割単位に対して、その発話が関連する話題を示す多値ラベルが付与された教師データに基づいて予め学習されたモデルである。多値分類モデル2の学習に用いられる教師データは、話の切り替わりの発話またはその分割単位に対して、話の切り替わりであることを二値ラベルが付与されるとともに、話題が続く範囲およびその範囲における話題が特定された系列データを用いて生成される。具体的には、多値分類モデル2の学習に用いられる教師データは、上記の系列データにおいて、話の切り替わりであることを二値ラベルが付与された発話またはその分割単位に、その発話が含まれる範囲における話題を示す多値ラベルを付与することで生成される。
出力部35は、系列データにおける範囲が推定された段落ごとに、その段落を構成する発話を出力する。また、出力部35は、段落における話題を示す多値ラベル、段落の開示時刻および終了時刻などを出力してもよい。
このように本実施形態においては、判定部32は、複数の話題を含む対話の系列データを構成する発話またはその分割単位に対して、話の切り替わりであるか否かを示す二値ラベルが付与された教師データに基づいて予め学習された二値分類モデル1を用いて、処理対象の系列データを構成する発話が、話の切り替わりの発話であるか否かを判定する。そして、段落推定部33は、判定部32による判定の結果に基づき、処理対象の系列データにおける段落の範囲を推定する。また、話題推定部34は、多値分類モデル2を用いて、段落推定部33により範囲が推定された段落または段落に含まれる発話における話題を推定する。また、出力部35は、範囲が推定された段落ごとの発話、段落における話題を示す多値ラベル、あるいは、段落の開示時刻および終了時刻などを出力する。
また、本実施形態においては、学習装置10は、発話またはその分割単位に対して、話の切り替わりであるか否かを示す二値ラベルが付与された教師データを学習することで、系列データを構成する発話が、話の切り替わりの発話であるか否かを判定する二値分類モデル1を生成することができる。また、学習装置20は、系列データを構成する発話またはその分割単位に対して、その発話が関連する話題を示す多値ラベルが付与された教師データを学習することで、段落または段落に含まれる発話における話題を判定する多値分類モデル2を学習することができる。また、推定装置30は、二値分類モデル1の判定の結果に基づき、系列データにおける段落の範囲を推定することができる。また、推定装置30は、多値分類モデル2を用いて、範囲が推定された段落または段落を構成する発話における話題を推定することができる。したがって、本実施形態に係る推定装置30によれば、複数の話題を含む対話の系列データから、話の切り替わりから次の切り替わりの直前の発話までの段落または話の切り替わりから対話の終わりの発話までの段落の範囲を推定することができる。また、本実施形態に係る推定装置30によれば、系列データにおける段落の範囲を推定することで、段落に含まれる発話に限って話題を推定することができるので、話題の推定の精度向上を図ることができる。
図3においては、推定装置30は、多値分類モデル2を用いて話題を推定する例を用いて説明したが、本開示はこれに限られるものではない。上述したように、多値分類モデル2の学習には、系列データにおける1つの話題が連続する範囲およびその範囲における話題が人手により特定された教師データが用いられる。少数の話題を対象とする場合には、このような教師データを準備することも比較的容易である。一方、多数の話題を対象とする場合など、1つの話題が続く範囲、およびその範囲における話題を特定した教師データを、準備することが困難な場合がある。本開示においては、このような場合にも、多値分類モデル2を用いずに、話題を推定することも可能である。
図4は、本実施形態に係る、多値分類モデル2を用いずに話題を推定する推定装置30aの構成例を示す図である。図4において、図3と同様の構成には同じ符号を付し、説明を省略する。
図4に示すように、推定装置30aは、入力部31と、判定部32と、段落推定部33と、キーワード抽出部36と、話題推定部34aと、出力部35とを備える。図4に示す推定装置30aは、図3に示す推定装置30と比較して、キーワード抽出部36を追加した点と、話題推定部34を話題推定部34aに変更した点とが異なる。
キーワード抽出部36は、段落推定部33により範囲が推定された段落に含まれる発話から、少なくとも1つのキーワードを抽出する。キーワードを抽出する手法は、任意の手法を用いることができ、例えば、tf-idf(Term Frequency - Inverse Document Frequency)などの既存の手法を用いることができる。キーワード抽出部36が抽出するキーワードの数は、予め所定の数に制限されてもよいし、ユーザが指定してもよい。
話題推定部34aは、キーワード抽出部36により、段落に含まれる発話から抽出されたキーワードに基づき、その段落または段落に含まれる発話における話題を推定する。話題推定部34aは、例えば、抽出されたキーワードを段落または段落に含まれる発話における話題と推定してよい。また、話題推定部34aは、例えば、予め規定された複数の話題の中から、抽出されたキーワードと類似性の高い話題を、段落または段落に含まれる発話における話題と推定してもよい。
このように、図4に示す推定装置30aによれば、多値分類モデル2を用いずに、段落または段落に含まれる発話における話題を推定することができる。そのため、話題の範囲およびその範囲における話題が特定された大量の教師データを用意することが困難な場合にも、系列データにおける話題を推定することができる。
図5は、本実施形態に係る推定装置30bの構成例を示す図である。図5に示す推定装置30bは、図4に示す推定装置30aと同様に、多値分類モデル2を用いずに話題を推定する。図5において、図4と同様の構成には同じ符号を付し、説明を省略する。
図5に示すように、推定装置30bは、入力部31と、判定部32と、段落推定部33と、クラスタリング部37と、キーワード抽出部36bと、話題推定部34bと、出力部35とを備える。図5に示す推定装置30bは、図4に示す推定装置30aと比較して、クラスタリング部37を追加した点と、キーワード抽出部36をキーワード抽出部36bに変更した点と、話題推定部34aを話題推定部34bに変更した点とが異なる。
図5に示す推定装置30bにおいては、少なくとも1以上の系列データが入力される。クラスタリング部37は、入力された1つ以上の系列データについて段落推定部33により範囲が推定された複数の段落を、類似する段落ごとにクラスタリングする。クラスタリングの手法は、既存の任意の手法を用いることができる。クラスタリング部37は、類似する段落からなるクラスタの中で代表の段落を決定する。クラスタリング部37は、例えば、クラスタを構成する段落のうち、クラスタの中心の段落を代表の段落と決定する。また、クラスタリング部37は、例えば、クラスタを構成する段落のうち、任意の段落を代表の段落と決定してもよい。
キーワード抽出部36bは、クラスタを構成する段落のうち、クラスタリング部37により決定された、代表の段落に含まれる発話からキーワードを抽出する。
話題推定部34bは、クラスタの代表の段落に含まれる発話から、キーワード抽出部36bにより抽出されたキーワードに基づき、そのクラスタを構成する段落における話題を推定する。具体的には、話題推定部34bは、クラスタの代表の段落に含まれる発話から抽出されたキーワードに基づき推定した話題を、そのクラスタを構成する全ての段落における話題と推定する。
図3から図5においては、推定装置30,30a,30bは、コンタクトセンタにおけるオペレータとカスタマとの対話の音声認識の結果を処理する例を用いて説明したが、本開示はこれに限られるものではない。例えば、推定装置30,30a,30bにおいて、テキストチャットに対する形態素解析を行う形態素解析部が入力部31の後段に設けられてもよい。
また、図3から図5においては、複数の発話が時系列的に並ぶ系列データが入力される例を用いて説明したが、本開示はこれに限られるものではない。系列データを構成する発話を1つずつ入力するために、系列データから発話を1つずつ取り出す機能部が入力部31の前段に設けられてもよい。
図6は、図2に示す学習装置20における多値ラベルの補完について説明するためのフローチャートである。
多値ラベル補完部22は、入力部21に入力された系列データから話題を示す多値ラベル、および、話の切り替わりを示す二値ラベルが付与されている発話を1つずつ読み込む(ステップS11)。なお、多値ラベルは話題を示す範囲の最初の発話のみに付与され、他の発話には付与されていない。話の切り替わりを示す二値ラベルは、話の切り替わりを示す発話のみに付与されており、他の発話には付与されていない。
多値ラベル補完部22は、読み込んだ発話に話題を示す多値ラベルが付与されているか否かを判定する(ステップS12)。
多値ラベルが付与されていると判定した場合(ステップS12:Yes)、多値ラベル補完部22は、読み込んだ発話の多値ラベルが分かるように上記発話とは別に、不図示の多値ラベル一時記憶装置にその多値ラベルを記憶する。多値ラベル補完部22は、既に多値ラベル一時記憶装置に記憶している多値ラベルが存在している場合には、記憶している多値ラベルを読み込んだ発話に付与されている多値ラベルに更新して多値ラベル一時記憶装置に記憶する(ステップS13)。
多値ラベルが付与されていないと判定した場合(ステップS12:No)、あるいは、読み込んだ発話に付与されている多値ラベルを更新・記憶すると、多値ラベル補完部22は、読み込んだ発話に、話の切り替わりであることを示す二値ラベルが付与されているか否かを判定する(ステップS14)。
話の切り替わりであることを示す二値ラベルが付与されていると判定した場合(ステップS14:Yes)、多値ラベル補完部22は、多値ラベル一時記憶装置に記憶している多値ラベルを読み込んだ発話に付与する(ステップS15)。このように、多値ラベル補完部22は、読み込んだ発話に、対話の切り替わりであることを示す二値ラベルが付与されている場合、系列データにおける、その発話が含まれる範囲の話題を示す多値ラベルを付与する。
話の切り替わりであることを示す二値ラベルが付与されていないと判定した場合(ステップS14:No)、あるいは、読み込んだ発話に多値ラベルを付与すると、多値ラベル補完部22は、読み込んだ発話が対話の終わりの発話であるか否かを判定する(ステップS16)。
読み込んだ発話が対話の終わりの発話であると判定した場合(ステップS16:Yes)、多値ラベル補完部22は、処理を終了する。
読み込んだ発話が対話の終わりの発話でないと判定した場合(ステップS16:No)、多値ラベル補完部22は、ステップS11の処理に戻り、次の発話を読み込む。
図6においては、多値ラベルは、話題を示す範囲の最初の発話のみに付与され、他の発話には付与されていない例を用いて説明したが、あらかじめ、話題を示す範囲の全ての発話にその話題の多値ラベルが付与されていてもよい。この場合、話の切り替わりを示す二値ラベルが付与されていない発話から多値ラベルを削除すると、話の切り替わりを示す二値ラベルが付与されている発話のみに話題を示す多値ラベルが付与される。
このように、話の切り替わりの発話に、話題を示す多値ラベルが付与される方法であればどのような方法であっても構わない。
次に、図3に示す推定装置30の動作について説明する。図7は、推定装置30の動作の一例を示すフローチャートであり、推定装置30による推定方法を説明するための図である。
判定部32は、入力部31に入力された処理対象の系列データから1つずつ発話を読み込む(ステップS21)。判定部32は、二値分類モデル1を用いて、読み込んだ発話が話の切り替わりの発話であるか否かを判定する(ステップS22)。
段落推定部33は、読み込まれた発話が、判定部32により話の切り替わりの発話であると判定されたか、または、読み込まれた発話が対話の終わりの発話であるか否かを判定する(ステップS23)。
読み込まれた発話が話の切り替わりの発話でないと判定され、かつ、読み込まれた発話が対話の終わりの発話でないと判定した場合(ステップS23:No)、段落推定部33は、読み込まれた発話を、段落を構成する発話として蓄積する(ステップS24)。読み込まれた発話が蓄積されると、ステップS21から処理が繰り返される。
読み込まれた発話が話の切り替わりの発話であると判定された、あるいは、読み込まれた発話が対話の終わりの発話であると判定した場合(ステップS23:Yes)、段落推定部33は、蓄積した発話があるか否かを判定する(ステップS25)。
蓄積した発話があると判定した場合(ステップS25:Yes)、段落推定部33は、蓄積した発話の範囲が段落であると推定し、蓄積した発話を、段落を構成する発話として話題推定部34に出力する。話題推定部34は、多値分類モデル2を用いて、段落推定部33により範囲が推定された段落における話題を推定する(ステップS26)。
図7においては、多値分類モデル2を用いて、段落ごとに話題を推定する例を用いて説明しているが、本開示はこれに限られるものではない。話題推定部34は、段落に含まれる少なくとも1つ以上の発話単位で、話題を推定してもよい。この場合、話題推定部34は、段落の最初の発話だけを用いて話題を推定してもよいし、段落の最初の発話から予め指定された数の発話を用いて話題を推定してもよい。1つ以上の発話を単位として話題を推定する場合、多値分類モデル2は、話題を推定する単位ごとに多値ラベルが付与された教師データに基づき学習される。
話題推定部34は、推定した話題を示す多値ラベルを段落に付与する(ステップS27)。段落推定部33は、発話の蓄積をリセットし(ステップS28)、読み込まれた発話が対話の終わりの発話であるか否かを判定する(ステップS29)。
読み込まれた発話が対話の終わりの発話でないと判定した場合(ステップS29:No)、段落推定部33は、ステップS24の処理に戻り、読み込まれた発話を蓄積する。こうすることで、読み込まれた発話が新たな段落の最初の発話として蓄積される。
読み込まれた発話が対話の終わりの発話であると判定した場合(ステップS29:Yes)、段落推定部33は、処理を終了する。
このように、推定装置30による推定方法は、判定ステップ(ステップS22)と、段落推定ステップ(ステップS23~ステップS25)とを含む。判定ステップでは、複数の話題を含む対話の系列データを構成する発話またはその分割単位に対して、話の切り替わりであるか否かを示す二値ラベル(第1のラベル)が付与された教師データ(第1の教師データ)に基づいて予め学習された二値分類モデル1(第1のモデル)を用いて、処理対象の系列データを構成する発話が、話の切り替わりの発話であるか否かを判定する。段落推定ステップでは、判定の結果に基づき、処理対象の系列データにおける、話の切り替わりから次の切り替わりの直前の発話までの段落または話の切り替わりから対話の終わりの発話までの段落の範囲を推定する。
発話またはその分割単位に対して、話の切り替わりであるか否かを示す二値ラベルが付与された教師データを学習することで、系列データを構成する発話が、話の切り替わりの発話であるか否かを判定する二値分類モデル1を生成することができる。そして、二値分類モデル1の判定の結果に基づき、処理対象の系列データにおける段落の範囲を推定することができる。したがって、複数の話題を含む対話の系列データにおける段落の範囲を推定することができる。
また、本実施形態に係る推定方法は、話題推定ステップ(ステップS26)をさらに含んでよい。話題推定ステップでは、系列データを構成する発話またはその分割単位に対して、その発話が関連する話題を示す多値ラベル(第2のラベル)が付与された教師データに基づいて予め学習された多値分類モデル2(第2のモデル)を用いて、段落または段落に含まれる発話における話題を推定する。段落の範囲を推定することで、段落に含まれる発話に限定して、話題を推定することができるので、話題の推定精度の向上を図ることができる。
次に、図4に示す推定装置30aの動作について説明する。図8は、図4に示す推定装置30aの動作の一例を示すフローチャートであり、推定装置30aによる推定方法を説明するための図である。図8において、図7と同様の処理には同じ符号を付し、説明を省略する。
蓄積した発話があると判定した場合(ステップS25:Yes)、段落推定部33は、蓄積した発話の範囲が段落であると推定し、蓄積した発話をキーワード抽出部36に出力する。キーワード抽出部36は、段落推定部33により範囲が推定された段落に含まれる発話からキーワードを抽出する(ステップS31)。話題推定部34aは、段落に含まれる発話からキーワード抽出部36により抽出されたキーワードに基づき、その段落または段落に含まれる発話における話題を推定する(ステップS32)。
このように、推定装置30aによる推定方法は、キーワード抽出ステップ(ステップS31)と、話題推定ステップ(ステップS32)とを含む。キーワード抽出ステップでは、範囲が推定された段落に含まれる発話からキーワードを抽出する。話題推定ステップでは、段落に含まれる発話から抽出されたキーワードに基づき、段落または段落に含まれる発話における話題を推定する。
次に、図5に示す推定装置30bの動作について説明する。図9は、図5に示す推定装置30bによる段落の範囲の推定の動作の一例を示すフローチャートであり、推定装置30bによる推定方法を説明するための図である。図9において、図7と同様の処理には同じ符号を付し、説明を省略する。
推定装置30bにおいては、蓄積した発話があると判定した場合(ステップS25:Yes)、段落推定部33は、蓄積した発話の範囲が段落であると推定する。そして、段落推定部33は、発話の蓄積をリセットする(ステップS28)。
図10は、図5に示す推定装置30bによる話題の推定の動作の一例を示すフローチャートであり、推定装置30bによる推定方法を説明するための図である。
クラスタリング部37は、段落推定部33により範囲が推定された段落を読み込む(ステップS41)。クラスタリング部37は、少なくとも1つ以上の系列データに含まれる複数の段落を読み込む。すなわち、クラスタリング部37は、ステップS41の処理を必要な回数だけ繰り返す。
クラスタリング部37は、読み込んだ複数の段落を、類似する段落ごとにクラスタリングする(ステップS42)。
次に、クラスタリング部37は、未処理のクラスタがないか否かを判定する(ステップS43)。未処理のクラスタとは、クラスタに含まれる段落に対する多値ラベルの付与が行われていないクラスタである。
未処理のクラスタが存在すると判定した場合(ステップS43:No)、クラスタリング部37は、未処理のクラスタのうちの1つのクラスタを処理対象のクラスタと決定し、処理対象のクラスタに含まれる段落の中から、代表の段落を決定する(ステップS44)。クラスタリング部37は、例えば、クラスタの中心の段落を代表の段落と決定する。
キーワード抽出部36bは、クラスタリング部37により決定されたクラスタの代表の段落に含まれる発話からキーワードを抽出する(ステップS45)。
話題推定部34bは、キーワード抽出部36bにより抽出されたキーワードに基づき、クラスタの代表の段落における話題を推定する(ステップS46)。次に、話題推定部34bは、未処理の段落がないか否かを判定する(ステップS47)。未処理の段落とは、処理対象のクラスタに含まれる段落のうち、多値ラベルが付与されていない段落である。
未処理の段落があると判定した場合(ステップS47:No)、話題推定部34bは、クラスタに含まれる未処理の段落に対して、そのクラスタの代表の段落から抽出したキーワードに基づき推定した話題を示す多値ラベルを付与する(ステップS48)。そして、話題推定部34bは、ステップS47の処理に戻る。
話題推定部34bにより未処理の段落がないと判定された場合(ステップS47:Yes)、ステップS43から処理が繰り返される。
このように、推定装置30bによる推定方法は、クラスタリングステップ(ステップS42)をさらに備える。クラスタリングステップでは、1または複数の系列データに基づき範囲が推定された複数の段落を、類似する段落ごとにクラスタリングする。キーワード抽出ステップでは、類似する段落からなるクラスタに含まれる段落のうち、代表の段落に含まれる発話からキーワードを抽出する。話題推定ステップでは、代表の段落に含まれる発話から抽出されたキーワードに基づき、代表の段落を含むクラスタを構成する段落における話題を推定する。
次に、モデルの学習(二値分類モデル1および多値分類モデル2)について、図11に示す具体例を用いて説明する。以下では、系列データには、「話題A」、「話題B」、「話題C」、「話題D」および「話題E」の5つの話題が含まれるものとする。
図11に示すように、教師データとして用いられる系列データにおいて、1つの話題が続く範囲と、その範囲における話題とが人手により特定され、1つの話題が続く範囲それぞれに対して、その範囲における話題を示す多値ラベルが付与される。また、系列データを構成する発話に対して、話の切り替わりであるか否かを示す二値ラベルが人手により付与される。なお、図11においては、図の簡略化のため、話の切り替わりの発話に対してのみ、その発話が話の切り替わりであることを示している。上述したように、1つの話題に関連する発話が続く範囲内であっても、話の切り替わりの発話に対しては、話の切り替わりであることを示す二値フラグが付与される。したがって、図11においては、例えば、話題Aに関連する発話が続く範囲の途中に存在する発話にも、話の切り替わりであることを示す二値ラベルが付与されることがある。
上述した系列データおよび二値ラベルが学習装置10に入力され、入力された系列データおよび二値ラベルに基づき、LSTMなどを用いて、二値分類モデル1が学習される。
また、上述した系列データ、二値ラベルおよび多値ラベルが学習装置20に入力される。学習装置20では、多値ラベルの補完が行われる。すなわち、図11に示すように、話の切り替わりであることを示すラベルが付与された発話に対して、その発話が含まれる系列データの範囲における話題を示す多値ラベルが付与される。こうすることで、系列データを構成する発話に対して、その発話が関連する話題を示す多値ラベルが付与された教師データが作成される。なお、上述したように、系列データを構成する発話の分割単位に対して、その発話が関連する話題を示す多値ラベルが付与されてもよい。
作成された教師データに基づき、LSTMなどを用いて、多値分類モデル2が学習される。多値分類モデル2の学習においては、多値ラベルが付与された発話だけが学習されてもよいし、多値ラベルが付与された発話を含む段落全体の発話が学習されてもよい。
図12は、図3に示す推定装置30による話題の推定の一例を示す図である。図12においては、多値分類モデル2が発話単位で学習されているものとする。
1つの対話の系列データが推定装置30に入力されると、図12に示すように、二値分類モデル1を用いて、系列データを構成する発話が、話の切り替わりの発話であるか否か判定される。そして、話の切り替わりの発話から、次の話の切り替わりの発話の直前の発話までの範囲あるいは話の切り替わりの発話から、対話の終わりの発話までの範囲が1つの段落と推定される。
次に、図12に示すように、範囲が推定された段落に含まれる発話のうち、話の切り替わりの発話であると判定された発話について、多値分類モデル2により、その発話における話題が推定される。なお、多値分類モデル2は、発話単位でなく、段落単位で学習が行われてもよい。この場合、図13に示すように、多値分類モデル2により、段落単位で、話題が推定される。
図14は、図4に示す推定装置30aによる話題の推定の一例を示す図である。
1つの対話の系列データが推定装置30aに入力されると、図14に示すように、二値分類モデル1を用いて、系列データを構成する発話が、話の切り替わりの発話であるか否か判定される。そして、話の切り替わりの発話から、次の話の切り替わりの発話の直前の発話までの範囲が1つの段落と推定される。
次に、範囲が推定された段落に含まれる発話からキーワードが抽出され、抽出されたキーワードに基づき、その段落の話題が推定され、推定された話題を示す多値ラベルが付与される。このように、多値分類モデル2を用いなくても、段落における話題を推定することができる。そのため、多値分類モデル2の学習に必要な教師データを用意することが難しい場合にも、系列データに含まれる段落の話題を推定することができる。なお、図14においては、各段落に対して異なる多値ラベル(「話題1」~「話題10」)が付与された例を示しているが、これらは必ずしも異なる話題であることを示しているわけではない。
図15は、図5に示す推定装置30bによる話題の推定の一例を示す図である。
1つ以上の対話の系列データが推定装置30bに入力されると、図15に示すように、二値分類モデル1を用いて、系列データを構成する発話が、話の切り替わりの発話であるか否か判定される。そして、話の切り替わりの発話から、次の話の切り替わりの発話の直前の発話までの範囲が1つの段落と推定される。
次に、図15に示すように、範囲の推定された複数の段落が、類似する段落ごとにクラスタリングされる。類似する段落からなるクラスタから代表の段落が決定され、代表の段落に含まれる発話からキーワードが抽出される。図15においては、太線で示される段落が、代表の段落を示す。
次に、クラスタの代表の段落に含まれる発話から抽出されたキーワードに基づき、代表の段落における話題が推定され、推定された話題を示す多値ラベルが代表の段落に付与される。さらに、図15に示すように、クラスタを構成する他の段落にも、クラスタの代表の段落と同じ多値ラベルが付与される。
本実施形態に係る推定方法(以下、「本手法」と称することがある)の有効性を示すために、実験により従来手法との比較を行った。実験では、モデルの学習用に349通話、検証用に50通話を用いた。話題を示す多値ラベルとして、話題Aから話題H、および、通話の最初の発話から1番目の話の切り替わりまでの固定的な話題Sを示す8種類のラベルを用意した。従来手法とは、発話が話の切り替わりである否かを示す二値ラベルを、多値ラベルが切り替わる発話のみに付与したデータを教師データとして二値分類モデルを学習し、また、多値ラベルが切り替わる発話のみを教師データとして多値分類モデルを学習する手法である。
まず、二値分類モデルによる、話の切り替わりであるか否かの判定に基づく、段落の範囲の推定精度(系列データの段落単位での分割精度)を比較した。比較結果を表1に示す。
上述したように、本手法では、ある話題から同じ話題に遷移する発話についても、話の切り替わり発話に含めて、段落の範囲を推定する。そのため、表1に示すように、本手法では、従来手法と比べて、適合率は下がっている。しかしながら、本手法では、従来手法では検出しきれなかった段落および話の切り替わりの発話を検出することができるようになったため、段落分割の再現率は上がった。
次に、二値分類モデルにより話の切り替わりと判定された発話における、多値分類モデルによる話題の推定の精度について比較した。上述したように、従来手法では、多値ラベルが切り替わる発話のみに、人手によりその発話における話題を示す多値ラベルが付与された教師データを学習して多値分類モデルを生成した。一方、本手法では、話の切り替わりであることを示すラベルが人手により付与された発話に対して、多値ラベルを補完した教師データを学習して多値分類モデル2を生成した。従来手法で学習された多値分類モデルおよび本手法で学習された多値分類モデル2それぞれを用いて、従来手法および本手法で学習された二値分類モデルにより話の切り替わりの発話であると判定された発話における話題を推定し、その発話に対して人手により付与された正解の話題と比較した。比較の結果(適合率)を表2に示す。
表2に示すように、本手法では、ある話題から同じ話題に遷移する発話も含めて、話の切り替わりの発話であると判定された発話における話題を、高い精度で推定できていることが分かった。話題Sについては、話の切り替わりの発話は通話の最初の発話となるため、評価を行わなかった。
最後に、評価対象とした100通話において、全ての発話の話題の分類の結果(F値)を評価した。この評価は、二値分類モデルによる話の切り替わりの発話の判定と、多値分類モデルによる話題の推定とを総合的に評価したものである。本手法においては、多値分類モデル2により、ある話題から同じ話題に遷移する発話についても、話の切り替わりの発話であると判定されるが、多値分類モデル2により、同じ話題への遷移の発話の多くが正しい話題に分類された。そのため、表3に示すように、従来手法と比べて、本手法の方が、総合的に高い評価結果が得られた。
このように本実施形態においては、推定装置30は、判定部32と、段落推定部33とを備える。判定部32は、複数の話題を含む対話の系列データを構成する発話またはその分割単位に対して、話の切り替わりであるか否かを示す二値ラベルが付与された教師データ(第1の教師データ)に基づいて予め学習された二値分類モデル1(第1のモデル)を用いて、処理対象の系列データを構成する発話が、話の切り替わりの発話であるか否かを判定する。段落推定部33は、判定部32による判定の結果に基づき、処理対象の系列データにおける、話の切り替わりから次の切り替わりの直前の発話までの段落または話の切り替わりから対話の終わりの発話までの段落の範囲を推定する。
発話またはその分割単位に対して、話の切り替わりであるか否かを示す二値ラベルが付与された教師データを学習することで、系列データを構成する発話が、話の切り替わりの発話であるか否かを判定する二値分類モデル1を生成することができる。そして、二値分類モデル1の判定の結果に基づき、系列データにおける段落の範囲を推定することができる。また、系列データにおける段落の範囲を推定することで、段落に含まれる発話に話題を推定する範囲を限定することができるので、段落における話題の推定の精度の向上を図ることができる。
(第2の実施形態)
第1の実施形態においては、系列データを構成する発話またはその分割単位が、話の切り替わりであるか否かを判定し、その判定結果に基づき段落の範囲を推定する例を用いて説明した。ただし、上述したように、系列データを構成する発話またはその分割単位が、話題の切り替わりであるか否かを判定し、その判定結果に基づき段落の範囲を推定してもよい。
上述したように、コンタクトセンタにおけるオペレータとカスタマとの対話は、時間軸に沿った系列データと見なすことができる。一連の系列データに対して客観的に分類される話題の区間ごとに系列データを分割する手法として、Text Tilingという手法が知られている(例えば、参考文献1参照)。この手法では、テキストの近傍にある単語同士の結束性に基づいて、結束度の極小点でテキストを分割する。また、トピックモデルの代表であるLatent Dirichlet Allocation(LDA)を用いてテキストを分割するTopic Tilingという手法も提案されている(参考文献2参照)。また、事前に定義された分類のラベルを付与した教師データから学習したモデルに基づき、時系列データの各データに対して、そのデータが属するラベルに分類する手法が提案されている(参考文献3参照)。
[参考文献1]
平尾努、北内啓、木谷強「語彙的結束性と単語重要度に基づくテキストセグメンテーション」情報処理学会論文誌、41(SIG_3(TOD_6))pp.24-36、2000-05-15.
[参考文献2]
M.Riedl and C.Biemann、 TopicTiling: A Text Segmentation Algorithm based on LDA"、 Proceedings of the 50th ACL 2012、 2012.
[参考文献3]
坪井祐太、他2名、「深層学習による自然言語処理」、講談社、2017年5月24日、p.32-36
しかしながら、コンタクトセンタにおける対話のような、特定のサービスあるいは商品に関する対話においては、事前に作成されているスクリプトに沿った応対を行っているかなどの、後々に種々の分析ができるように、コンタクトセンタ側から見た主観的な話題に分類することが求められている。主観的な話題とは、例えば、オペレータが特定のサービスを利用できなくなったカスタマ側の原因を切り分ける観点、あるいは、オペレータからカスタマへの営業電話におけるニーズあるいは要望のインタビューの観点から分類される話題である。これらの対話においては、サービス名、商品名あるいはこれらに関連する語彙として同じキーワードが、対話のいたるところで出現するので、内容としては主観的に区別したい話題であっても、表層的・客観的には区別できない話題が対話の大半を占めている。そのため、参考文献1および参考文献2に記載の手法では、主観的な話題ごとに対話を精度よく分割・分類することができない。
また、コンタクトセンタの対話においては、発話自体が短く、その発話だけでは、どの話題に属するのかを一意に決定することができない発話も存在する。このような発話には、本来の話題とは異なる話題のラベルが付与されることになる。本来の話題とは異なるラベルが付与された教師データを学習したモデルでは、分類の精度が低下する。そのため、参考文献3の記載の手法では、時系列順に入力された短い会話を含む各発話のそれぞれを、主観的な話題で適切に分類することは困難である。
以下では、本開示の第2の実施形態に係る推定装置30cの構成および動作について説明する。本実施形態に係る推定装置30cは、系列データを構成する発話またはその分割単位が話題の切り替わりであるか否かを判定し、その判定結果に基づき段落の範囲を推定するものである。
図16は、本実施形態に係る推定装置30cの構成例を示す図である。
図16に示すように、本実施形態に係る推定装置30cは、入力部41と、判定部42と、話題推定部43と、段落推定部44と、出力部45とを備える。
入力部41は、複数の話題を含む対話の系列データが入力される。入力部41に入力される系列データは、段落の範囲および段落における話題の推定の対象となる処理対象のデータである。系列データは、例えば、オペレータおよびカスタマの時系列的な発話が音声認識されたテキストデータである。入力部41は、オンラインで系列データが入力される場合には、対話中の各発話の音声認識により得られたテキストデータが逐次、入力されてよい。また、入力部41は、オフラインで系列データが入力される場合には、対話中の各発話の開始時刻あるいは終了時刻でソートして、各発話のテキストデータが入力されてよい。入力部41は、入力された系列データを判定部42に出力する。
判定部42は、二値分類モデル1aを用いて、入力部41から出力された系列データを構成する発話が、話題の切り替わりの発話であるか否かを判定する。ここで、二値分類モデル1aは、対話の系列データを構成する発話またはその分割単位に対して、話題の切り替わりであるか否かを判定するように予め学習したモデルである。二値分類モデル1aは、例えば、系列データを構成する発話またはその分割単位に対して、話題の切り替わりであるか否かを示す二値ラベル(切り替わりラベル)が付与された教師データを、図1を参照して説明した学習装置10により学習することで作成することができる。
判定部42は、二値分類モデル1aを用いた判定結果から、系列データを構成する発話またはその分割単位を、後述する話題推定部43による処理対象とするか否かを決定する。具体的には、判定部42は、話題の切り替わりであると判定した発話またはその分割単位を、話題推定部43による処理対象と決定する。判定部42は、話題推定部43による処理対象とするか否かの決定結果を、話題推定部43および段落推定部44に出力する。
話題推定部43は、多値分類モデル2aを用いて、判定部42により処理対象と決定された発話(話題の切り替わりの発話)またはその分割単位に対して、その発話が含まれる範囲における話題を示す多値ラベルを付与する。ここで、多値分類モデル2aは、発話またはその分割単位に対して、その発話が含まれる範囲における話題を推定するモデルである。多値分類モデル2aは、例えば、系列データを構成する発話またはその分割単位に対して、その発話が関連する話題を示す多値ラベル(話題ラベル)が付与された教師データを、図2を参照して説明した学習装置20により学習することで作成することができる。多値分類モデル2aの学習にあたっては、話題の切り替わりの発話であり、多値ラベルが付与された発話のみを対象にして、話題の推移についての学習が行われてもよい。話題の切り替わりの発話から次の話題の切り替わりの発話までの間の発話を学習の対象から除外することで、話題の分類に対するノイズを除去することができる。
話題推定部43は、話題の推定結果(推定した話題に対応する多値ラベル)をラベル情報テーブルに保存する。ラベル情報テーブルは、処理しているデータに対する話題の推定結果を格納しておく領域であり、計算機上のメモリであってもよいし、データベースであってもよいし、ファイルであってもよい。
段落推定部44は、判定部42により処理対象と決定された発話(話題の切り替わりの発話)から、次に処理対象と決定された発話の直前の発話までの範囲を1つの段落の範囲と推定する。段落推定部44は、ラベル情報テーブルに格納されている多値ラベルを、範囲を推定した段落に含まれる発話に付与する。具体的には、段落推定部44は、話題の切り替わりの発話から、次の話題の切り替わりの発話の直前の発話までの発話に、ラベル情報テーブルに格納されている、その話題の切り替わりの発話に付与された多値ラベルを付与する。
出力部45は、系列データにおける範囲が推定された段落ごとに、その段落を構成する発話を出力する。また、出力部35は、段落における話題を示す多値ラベル、段落の開始時刻および終了時刻などを出力してもよい。
第1の実施形態と同様に、推定装置30cにおいて、テキストチャットに対する形態素解析を行う形態素解析部が入力部41の後段に設けられてもよい。また、オフラインで処理対象の系列データが入力される場合には、推定装置30cの構成は、話題の切り替わりの発話であるか否かの判定および話題の推定の結果を一度に全て使って、段落の範囲を推定してもよい。この場合、段落推定部44は、話題の切り替わりであるか否かの判定結果と、話題の推定結果とに基づいて、話題の切り替わりから次の話題の切り替わりの直前の発話までの範囲の発話に、話題推定部43により推定された多値ラベルを付与してよい。
図17は、本実施形態に係る推定装置30cの動作の一例を示すフローチャートである。
判定部42は、入力部41に入力された処理対象の系列データにおける対話が終了したか否かを判定する(ステップS51)。
対話が終了したと判定された場合(ステップS51:Yes)、推定装置30cは処理を終了する。
対話が終了していないと判定した場合(ステップS51:No)、判定部42は、処理対象の発話を読み込む(ステップS52)。判定部42は、二値分類モデル1aを用いて、読み込んだ発話が話題の切り替わりの発話であるか否かを判定する(ステップS53)。
読み込まれた発話が話題の切り替わりの発話でないと判定された場合(ステップS54:No)、後述するステップS57の処理が行われる。
読み込まれた発話が話題の切り替わりの発話であると判定された場合(ステップS54:Yes)、話題推定部43は、多値分類モデル2aを用いて、読み込まれた発話の話題を推定する(ステップS55)。話題推定部43は、推定した話題をラベル情報テーブルに格納して、ラベル情報テーブルを更新する(ステップS56)。すなわち、読み込まれた発話が話題の切り替わりの発話であるごとに、ラベル情報テーブルが更新される。
段落推定部44は、読み込まれた発話に、ラベル情報テーブルに格納された多値ラベルを付与する(ステップS57)。上述したように、読み込まれた発話が話題の切り替わりの発話であるごとに、ラベル情報テーブルが更新される。したがって、一つの段落を構成する、話題の切り替わりの発話から次の話題の切り替わりの発話の直前までの発話までに、同一の多値ラベルが付与される。
読み込まれた発話に多値ラベルが付与されると、判定部42は、系列データにおける次の発話を処理対象として(ステップS58)、ステップS51の処理に戻る。
図18は、本実施形態に係る推定装置30cによる話題の推定の一例を示す図である。図18においては、二値分類モデル1aおよび多値分類モデル2aが発話単位で学習されているものとする。
1つの対話の系列データが推定装置30cに入力されると、判定部42は、図18に示すように、二値分類モデル1aを用いて、系列データを構成する発話が、話題の切り替わりの発話であるか否かを判定する。話題推定部43は、多値分類モデル2aを用いて、話題の切り替わりであると判定された発話の話題を推定し、推定した話題を示す多値ラベルをラベル情報テーブルに格納する。段落推定部44は、話題の切り替わりの発話から、次の話題の切り替わりの発話の直前の発話までの範囲を一つの段落と推定する。そして、段落推定部44は、その段落を構成する全ての発話に対して、ラベル情報テーブルに格納されている、その段落の先頭の発話の話題を示す多値ラベルを付与する。
このように本実施形態においては、推定装置30cは、二値分類モデル1aを用いて、系列データを構成する発話が、話題の切り替わりの発話であるか否かを判定する。また、推定装置30cは、多値分類モデル2aを用いて、話題の切り替わりの発話の話題を推定する。また、推定装置30cは、話題の切り替わりの発話から、次の話題の切り替わりの発話の直前までの発話までを段落の範囲と推定し、話題の切り替わりの発話について推定した話題を、その話題の切り替わりの発話を含む段落における話題と推定する。
これにより、類似した話題が大半を占める対話あるいは話題の順序が不定である対話であっても、話題の切り替わりの発話を検出し、その発話に付与すべき多値ラベルを推定することができる。そのため、話題の切り替わりの発話から、次の話題の切り替わりの発話の直前までの発話を、一つの話題からなる段落として推定することができる。
(第3の実施形態)
上述した第1および第2の実施形態においては、発話あるいはその分割単位で、話(話題)の切り替わりであるか否かの推定を行うモデルおよび話題の推定を行うモデルを作成した。上述したように、発話の分割単位とは、例えば、発話を単語ごとに分割した単語単位である。また、発話の分割単位とは、例えば、発話に句読点が付与されている場合には、句読点あるいは句点で分割した単位である。また、上述した第1および第2の実施形態においては、発話の話題を推定する場合、発話あるいは予め定められた分割単位で、話題を推定していた。そして、第1および第2の実施形態においては、発話の分割単位は固定であった。
しかしながら、コンタクトセンタにおける顧客と応対担当者との対話では、予め定められた単位で話題(場面)が切り替わるとは限らない。例えば、自動車事故に関するコンタクトセンタの応対では、けがの有無を確認する場面と、車の損傷を確認する場面とを分けて、応対履歴を記録する場合がある。以下では、発話1から発話4で示す顧客と応対担当者との対話を、けがの有無を確認する場面と、車の損傷を確認する場面とに分ける例を用いて説明する。
応対担当者:「車を車庫に入れるときに、事故にあったと聞いていますが、どのような状況でしたか?」(発話1)
顧客:「車庫に入れているときに、車の後ろのバンパーが電柱に当たり、傷がついてしまったのです。」(発話2)
応対担当者:「そうでしたか、車庫に入れる際、車の後ろのバンパーを電柱で擦ったということで、お体は、大丈夫でしたでしょうか?」(発話3)
顧客:「ケガはなかったです。」(発話4)
上述した例において、発話1および発話2は、車の損傷を確認する場面での発話である。発話3の途中で、車の損傷を確認する場面からケガの有無を確認する場面に切り替わり、ケガの有無を確認する場面が発話4へと続いている。具体的には、発話3の「そうでしたか、車庫に入れる際、車の後ろのバンパーを電柱で擦ったということで、」までが車の損傷を確認する場面であり、発話3の「お体は、大丈夫でしたでしょうか?」からが、ケガの有無を確認する場面である。
第1および第2の実施形態においては、予め単位を決めて学習データを用意する必要がある。そのため、上述した発話3のように、発話の途中で場面が切り替わる場合に対応するモデルを作成することは困難である。発話3の例では、「そうでしたか、車庫に入れる際、車の後ろのバンパーを電柱で擦ったということで、」という単位には、車の損傷を確認する場面であることを示すラベルを付与し、「お体は、大丈夫でしたでしょうか?」という単位には、ケガの有無を確認する場面であることを示すラベルを付与することが望ましいが、予めこのような単位を決定することは困難である。
例えば、句読点単位の分割を採用した場合、発話3は、「そうでしたか」「車庫に入れる際」「車の後ろのバンパーを電柱で擦ったということで」「お体は」「大丈夫でしたでしょうか?」という単位に分割される。しかしながら、例えば、「そうでしたか」「お体は」「大丈夫でしたでしょうか?」といった単位だけでは、どのような場面かを特定することができず、ラベルを付与することが困難である。
また、予め定められた単位を繋げて学習データを作成する場合、「そうでしたか」「車庫に入れる際」「車の後ろのバンパーを電柱で擦ったということで」までを繋げて1つの単位とし、「お体は」「大丈夫でしたでしょうか?」までを繋げて1つの単位とすることで学習データを作成することは可能である。ただし、「そうでしたか」、「車庫に入れる際」、「そうでしたか、車庫に入れる際」など、他の単位で負例とすべきか否かを判定して学習データを作成することは困難である。
また、発話の途中で話(話題)の切り替わりの箇所を推定する場合、推定前に発話の単位を決定することが困難である。
本実施形態においては、学習の単位を固定せず、教師データから動的に様々な単位で正例、負例および対象外の学習データを作成する。すなわち、本実施形態においては、発話の分割単位を可変にして学習データを作成する。こうすることで、発話の途中で話(場面)が切り替わる場合であっても、切り替わりの箇所を高精度に推定することが可能なモデルを学習するための学習データを作成することができる。また、学習の単位を固定せずに作成した学習データを学習したモデルを用いることで、発話の途中で場面が切り替わる場合にも、発話内の各場面を推定することができる。
図19は、本実施形態に係る学習データ作成装置50の構成例を示す図である。本実施形態に係る学習データ作成装置50は、教師データから動的に様々な単位で正例、負例および対象外の学習データを作成する。
図19に示すように、本実施形態に係る学習データ作成装置50は、入力部51と、学習データ作成部52と、出力部53とを備える。
入力部51は、対話の系列データが入力される。系列データは、例えば、オペレータとカスタマとの時系列的な対話の音声データあるいはその対話に含まれる発話が音声認識されたテキストデータである。入力部51は、入力された系列データを学習データ作成部52に出力する。
学習データ作成部52は、入力部51から出力された系列データと、教師データとが入力される。教師データは、学習データを作成する前に、系列データを構成する発話における、場面を特定するために最低限必要な発話の範囲にラベルが付与されたデータである。教師データにおけるラベルは人手により付与される。学習データ作成部52は、入力された系列データおよび教師データに基づき、発話の任意の分割単位で、当該発話における話題(場面)を推定するモデルの学習に用いる学習データを作成する。
図20は、学習データ作成部52の構成例を示す図である。
図20に示すように、学習データ作成部52は、文出力部521と、ID付与部522と、組み合わせ生成部523と、付与部524とを備える。
文出力部521は、入力部51から入力された系列データを構成する発話の文字列を文として出力する。系列データがテキストデータである場合には、文出力部521は、形態素解析により単語単位に分割された文を出力する。また、系列データが音声データである場合には、文出力部521は、音声認識により単語単位に分割された文を出力する。
ID付与部522は、文出力部521から出力された文から、発話を所定の規則で分割した要素を生成する。ID付与部522による分割の単位(要素の単位)は、単語単位、句読点単位、音声認識単位、話し終わり単位など、特定可能な単位なら任意の単位であってよい。ID付与部522は、発話を分割した要素それぞれに対してIDを付与し、各要素に付与したIDをID集合に格納する。
組み合わせ生成部523は、ID集合に格納されたIDに基づいて、モデルの学習に必要なIDの組み合わせ(組み合わせID列)を生成する。
図21は、組み合わせ生成部523の構成例を示す図である。
図21に示すように、組み合わせ生成部523は、ID取り出し部5231と、組み合わせ対象ID格納部5232と、組み合わせ生成ID格納部5233と、組み合わせID生成部5234と、を備える。
ID取り出し部5231は、ID集合から、予め定められた最長単位のIDを取り出し、最長単位のID集合に格納する。ここで、最長単位とは、文出力部521による文の出力の際に分割された単位よりも長い単位であって、予め特定可能な単位であれば、任意の単位であってよい。例えば、文の出力の際の分割の単位が単語単位であれば、最長単位は、単語単位よりも長い、句読点単位あるいは句点単位などである。また、例えば、文の出力の際の分割の単位が句読点単位であれば、最長単位は、句読点単位よりも長い、句点単位あるいは音声認識単位などである。
組み合わせ対象ID格納部5232は、最長単位のID集合から、組み合わせ対象となる範囲のIDを取り出し、組み合わせ対象のID集合に格納する。
組み合わせ生成ID格納部5233は、組み合わせ対象のID集合から、組み合わせID列を生成するための組み合わせ生成IDを取得し、組み合わせ生成IDの集合に格納する。
組み合わせID生成部5234は、組み合わせ生成IDの集合に基づき、組み合わせID列を生成し、組み合わせID列の集合に格納して、組み合わせID列の集合を更新する。
図20を再び参照すると、組み合わせ生成部523は、生成した組み合わせID列を付与部524に出力する。
付与部524は、組み合わせ生成部523から出力された組み合わせID列と、教師データとが入力される。付与部524は、組み合わせID列を文字列に置き換えた分割単位ごとに、教師データに基づき、正例、負例あるいは学習の対象外とするラベルを付与して、学習データを作成する。
図22は、付与部524の構成例を示す図である。
図22に示すように、付与部524は、正例付与部5241と、負例付与部5242と、対象外付与部5243とを備える。
正例付与部5241は、教師データに基づき、組み合わせID列の集合のうち、所定のID列に正例を示すラベルを付与する。こうすることで、所定のID列を文字列に置き換えた分割単位に正例を示すラベルが付与される。
負例付与部5242は、組み合わせID列の集合のうち、所定のID列に負例を示すラベルを付与する。こうすることで、所定のID列を文字列に書き換えた分割単位に負例を示すラベルが付与される。
対象外付与部5243は、組み合わせID列の集合のうち、所定のID列に学習の対象外であることを示すラベルを付与する。こうすることで、組み合わせID列を文字列に置き換えた分割単位に、対象外であることを示すラベルが付与される。対象外付与部5243は、学習の対象外であることを示すラベルが付与された組み合わせID列を削除し、正例あるいは負例を示すラベルが付与された組み合わせID列に対応する分割単位と、正例あるいは負例を示すラベルとを学習データとして出力する。付与部524の動作の詳細については後述する。
図19を再び参照すると、出力部53は、学習データ作成部52により作成された学習データを出力する。
次に、学習データ作成部52の動作について説明する。なお、以下では、場面(話)の切り替わりであるか否かを判定するモデルの学習のための学習データを作成する場合を例として説明する。具体的には、上述した発話3には場面の切り替わりが含まれているので、発話3を例として説明する。また、以下では、場面の切り替わりと判定する範囲にはラベル「T」が付与され、場面の切り替わりと判定しない範囲にはラベル「F」が付与されるものとする。また、文の分割単位は句読点単位であり、最長単位は句点単位であるとする。また、教師データとして、発話3において場面の切り替わりと判定される範囲(「お体は、大丈夫でしたでしょうか?」)にラベル「T」が付与されているものとする。
ID付与部522は、発話3を句読点で分割し、句読点で分割した要素ごとにIDを付与する。以下では、ID付与部522は、以下のようにIDを付与したものとする。
ID1:そうでしたか、
ID2:車庫に入れる際、
ID3:車の後ろのバンパーを電柱で擦ったということで、
ID4:お体は、
ID5:大丈夫でしょうか。
ID付与部522は、発話の各要素に付与したIDをID集合に格納する。
組み合わせ生成部523は、ID集合から、予め定められた最長単位の範囲内で、句読点分割した要素のIDの組み合わせ(ID列)を作成する。組み合わせ生成部523の動作について、図23を参照して説明する。図23は、組み合わせ生成部523の動作の一例を示すフローチャートである。
ID取り出し部5231は、ID集合から、最長単位ごとに全てのIDを取り出し、最長単位のID集合に格納する(ステップS61)。上述したように、最長単位は句点単位なので、最長単位の範囲はID1~ID5となる。ID取り出し部5231は、ID集合からID1~ID5を取り出し、(1,2,3,4,5)を最長単位のID集合に格納する。
組み合わせ対象ID格納部5232は、最長単位のID集合に格納されているIDのうち、一番小さいIDを最長単位のID集合から削除し、組み合わせ対象のID集合に格納する(ステップS62)。上述した例では、組み合わせ対象ID格納部5232は、最長単位のID集合からID1を取り出し、組み合わせ対象のID集合に格納する。また、組み合わせ対象ID格納部5232は、最長単位のID集合からID1を削除する。したがって、最長単位のID集合には、(2,3,4,5)が格納される。
組み合わせ生成ID格納部5233は、組み合わせ対象のID集合に含まれる全てのIDを小さい順に並べて、組み合わせ生成IDの集合と、組み合わせID列の集合とに格納する(ステップS63)。上述した例では、組み合わせ対象のID集合には(1)が格納されているので、全てのIDを小さい順に並べた組み合わせ列は[1]となる。組み合わせ生成ID格納部5233は、組み合わせ生成IDの集合には(1)を格納し、組み合わせID列の集合には[1]を格納する。
組み合わせID生成部5234は、組み合わせ生成IDの集合に格納されているID列のうち、一番小さいIDを削除し、残ったIDを小さい順に並べて組み合わせID列の集合に格納する(ステップS64)。上述した例では、組み合わせ生成IDの集合には、(1)が格納されている。したがって、組み合わせID生成部5234は、一番小さいID1を削除する。
次に、組み合わせID生成部5234は、組み合わせ生成IDの集合が空であるか否かを判定する(ステップS65)。上述した例では、ID1が削除されることで、組み合わせ生成IDの集合は空となっている。
組み合わせ生成IDの集合が空でないと判定すると(ステップS65:No)、組み合わせID生成部5234は、ステップS64の処理を繰り返す。
組み合わせID生成部5234により組み合わせ生成IDの集合が空であると判定されると(ステップS65:Yes)、組み合わせ対象ID格納部5232は、最長単位のID集合が空であるか否かを判定する(ステップS66)。上述した例では、最長単位のID集合には、(2,3,4,5)が格納されているので、最長単位のID集合は空ではない。
最長単位のID集合が空ではないと判定すると(ステップS66:No)、組み合わせ対象ID格納部5232は、ステップS62の処理に戻る。上述した例では、最長単位のID集合には(2,3,4,5)が格納されているので、組み合わせ対象ID格納部5232は、一番小さいID2を取り出し、組み合わせ対象IDに格納する。また、組み合わせ対象ID格納部5232は、最長単位のID集合からID2を削除する。したがって、最長単位のID集合には、(3,4,5)が格納される。
以下、ステップS63およびステップS64の処理が行われ、組み合わせ対象のID集合には、(1,2)が格納される。また、組み合わせ対象のID集合に格納された全てのIDを小さい順に並べたID列が組み合わせ生成IDの集合および組み合わせID列の集合に格納される。組み合わせ対象のID集合には、(1,2)が格納されているので、全てのIDを小さい順に並べた組み合わせ列は[1,2]となり、組み合わせ生成IDの集合には(1,2)が格納される。また、組み合わせ列[1,2]が組み合わせ列の集合に追加され、組み合わせ列の集合は、([1],[1,2])となる。
組み合わせID生成部5234は、組み合わせ生成IDの集合に格納されているID列のうち、一番小さいIDを削除し、残ったIDを小さい順に並べて組み合わせID列の集合に格納する。上述した例では、組み合わせ生成IDの集合には、(1,2)が格納されている。したがって、組み合わせID生成部5234は、一番小さいID1を削除する。ID1が削除され、組み合わせ生成IDの集合には、(2)が残る。組み合わせ生成IDの集合には(2)が残っているので、組み合わせID生成部5234は、組み合わせID列の集合に[2]を格納する。したがって、組み合わせID列の集合は、([1],[1,2],[2])となる。
以下、同様の処理が、最長単位のID集合が空になるまで繰り返される。最長単位のID集合が空になった際には、組み合わせID列の集合には、以下のID列が格納される。このように、組み合わせ生成部523は、発話を所定の規則で分割した一の要素または連続する複数の要からなる組み合わせID列を生成する。
[1]
[1,2]
[2]
[1,2,3]
[2,3]
[3]
[1,2,3,4]
[2,3,4]
[3,4]
[4]
[1,2,3,4,5]
[2,3,4,5]
[3,4,5]
[4,5]
[5]
組み合わせ対象ID格納部5232により最長単位のID集合が空であると判定されると(ステップS66:Yes)、ID取り出し部5231は、ID集合のうち、最長単位のID集合に格納していないIDがあるか否かを判定する(ステップS67)。
最長単位のID集合に格納していないIDがあると判定すると(ステップS67:Yes)、ID取り出し部5231は、ステップS61の処理に戻る。
最長単位のID集合に格納していないIDがないと判定されると(ステップS67:No)、組み合わせ生成部523は、処理を終了する。
次に、付与部524の動作について、図24を参照して説明する。図24は、付与部524の動作の一例を示すフローチャートである。
正例付与部5241は、組み合わせ生成部523により生成された組み合わせID列の集合に含まれるID列の中で、教師データと一致する範囲のID列全てに正例を示すラベルを付与する(ステップS71)。上述したように、教師データとして、発話3において場面の切り替わりと判定される範囲(「お体は、大丈夫でしたでしょうか?」)にラベル「T」が付与されているものとする。したがって、正例付与部5241は、発話3における「お体は、大丈夫でしたでしょうか?」と同じ範囲のID列[4,5]に正例を示すラベル(「T」)を付与する。
負例付与部5242は、組み合わせID列の集合に含まれるID列の中で、正例を示すラベルが付与されたID列に含まれるIDを1つも含まない組み合わせID列全てに、負例を示すラベルを付与する(ステップS72)。上述した例では、ID列[4,5]に正例を示すラベルが付与される。したがって、負例付与部5242は、ID4もID5も含まれない以下の全ての組み合わせID列に、負例を示すラベル(「F」)を付与する。
[1]:F
[1,2]:F
[2]:F
[1,2,3]:F
[2,3]:F
[3]:F
対象外付与部5243は、組み合わせID列の集合に含まれるID列の中で、正例を示すラベルも負例を示すラベルも付与されていない組み合わせID列全てに、対象外を示すラベルを付与する(ステップS73)。上述した例では、対象外付与部5243は、以下の組み合わせID列に、対象外を示すラベルを付与する。
[1,2,3,4]:対象外
[2,3,4]:対象外
[3,4]:対象外
[4]:対象外
[1,2,3,4,5]:対象外
[2,3,4,5]:対象外
[3,4,5]:対象外
[5]
対象外付与部5243は、組み合わせID列の集合から、対象外を示すラベルが付与されている組み合わせID列を削除する。そして、対象外付与部5243は、正例あるいは負例を示すラベルが付与されている組み合わせID列に対応する分割単位を学習データに格納する。上述した例では、以下の組み合わせID列に対応する分割単位を学習データに格納する。
[1]:F
[1,2]:F
[2]:F
[1,2,3]:F
[2,3]:F
[3]:F
[4,5]:T
このように本実施形態に係る学習データ作成装置50、発話を所定の規則(例えば、句読点単位)で分割した一の要素または連続する複数の要素により構成される分割単位に対してラベルを付与して、学習データを作成する。ここで、本実施形態においては、学習データには、構成する要素の数が異なる分割単位が含まれる。
そのため、発話の途中で場面(話)が切り替わるような場合にも、その切り替わりに応じた発話の分割単位で、学習データを作成することができる。また、このようにして作成された学習データを学習することで、発話の途中で場面(話)が切り替わる場合にも、場面の切り替わりを高精度に推定することが可能なモデルを作成することができる。
次に、本実施形態に係る推定装置30dについて説明する。本実施形態に係る推定装置30dは、学習データ作成装置50により作成された学習データに基づいて学習したモデルを用いて、構成する要素の数が異なる発話の分割単位で、場面(話)の切り替わりを推定するものである
図25は、本実施形態に係る推定装置30dの構成例を示す図である。
図25に示すように、本実施形態に係る推定装置30dは、入力部61と、推定部62と、出力部63とを備える。
入力部61は、対話の系列データが入力される。入力部61は、図26に示すように、文出力部611を備える。文出力部611は、文出力部521と同様に、入力部61に入力された系列データを構成する発話の文字列を文として推定部62に出力する。系列データがテキストデータである場合には、文出力部611は、形態素解析により単語単位に分割された文を出力する。また、系列データが音声データである場合には、出力部611は、音声認識により単語単位に分割された文を出力する。
図25を再び参照すると、推定部62は、推定モデル3を用いて、入力部61から出力された文から、話の切り替わりを推定する。推定モデル3は、学習データ作成装置50により作成された学習データの学習により作成されたモデルである。上述したように、学習データ作成部50が作成する学習データは、構成する要素の数が異なる分割単位を含み、分割単位それぞれに対して、話の切り替わりであるか否かのラベルが付与されたデータである。したがって、推定モデル3は、構成する要素の数が異なる分割単位それぞれに対して、話の切り替わりであるか否かを判定するように予め学習したモデルである。推定部62は、処理対象の系列データを構成する発話から、構成する要素の数が異なる分割単位を生成し、生成した分割単位ごとに、第1のモデルとしての推定モデル3を用いて、話の切り替わりであるか否かを判定する
出力部63は、推定部62による推定結果を出力する。
次に、推定部62の構成について説明する。図27は、推定部62の構成例を示す図である。
図27に示すように、推定部62は、ID付与部621と、組み合わせ生成部622と、切り替わり推定部623とを備える。
ID付与部621は、文出力部611から出力された文から、発話を所定の規則で分割した要素を生成する。ID付与部621による分割の単位は、単語単位、句読点単位、音声認識単位、話し終わり単位など、特定可能な単位なら任意の単位であってよい。ID付与部621は、発話を分割した要素それぞれに対してIDを付与し、各要素に付与したIDをID集合に格納する。
組み合わせ生成部622は、ID集合に格納されたIDに基づいて、話の切り替わりの推定に用いるIDの組み合わせ(組み合わせID列)を生成する。
図28は、組み合わせ生成部622の構成例を示す図である。図28に示すように、組み合わせ生成部622は、ID取り出し部6221と、組み合わせ対象ID格納部6222と、組み合わせ生成ID格納部6223と、組み合わせID生成部6224と、を備える。
ID取り出し部6221は、ID取り出し部5231と同様に、ID集合から、予め定められた最長単位のIDを取り出し、最長単位のID集合に格納する。
組み合わせ対象ID格納部6222は、組み合わせ対象ID格納部5232と同様に、最長単位のID集合から、組み合わせ対象となる範囲のIDを取り出し、組み合わせ対象のID集合に格納する。
組み合わせ生成ID格納部6223は、組み合わせ生成ID格納部6223と同様に、組み合わせ対象のID集合から、組み合わせID列を生成するための組み合わせ生成IDを取得し、組み合わせ生成IDの集合に格納する。
組み合わせID生成部6224は、組み合わせID生成部5234と同様に、組み合わせ生成IDの集合に基づき、組み合わせID列を生成し、組み合わせID列の集合に格納して、組み合わせID列の集合を更新する。
図27を再び参照すると、組み合わせ生成部622は、生成した組み合わせID列の集合を切り替わり推定部623に出力する。
切り替わり推定部623は、組み合わせ生成部622から出力された組み合わせID列の集合が入力される。切り替わり推定部623は、推定モデル3を用いて、組み合わせID列に対応する分割単位ごとに、その分割単位が話の切り替わりであるか否かを判定し、判定結果を出力する。
次に、推定部62の動作について、切り替わり推定部623の動作を中心に説明する。組み合わせ生成部622による組み合わせID列の生成の動作は、図23を参照して説明した組み合わせ生成部523の動作と同様であるため、説明を省略する。
図29は、切り替わり推定部623の動作の一例を示すフローチャートである。
切り替わり推定部623は、組み合わせID列の集合から、話の切り替わりであるか否かをまだ推定していないIDだけからなる組み合わせID列を1つ取り出す(ステップS81)。
切り替わり推定部623は、取り出した組み合わせID列を単語列に置き換える(ステップS82)。すなわち、切り替わり推定部623は、組み合わせID列に含まれるIDを、そのIDに対応する発話の要素に置き換える。
次に、切り替わり推定部623は、推定モデル3を用いて、組み合わせID列を置き換えた文字列(発話の分割単位)が、話の切り替わりであるか否かを推定する(ステップS83)。
次に、切り替わり推定部623は、推定結果が正例であったか(話の切り替わりであったか)否かを判定する(ステップS84)。
推定結果が正例でなかったと判定した場合(ステップS84:No)、切り替わり推定部623は、組み合わせID列の集合が空であるか否かを判定する(ステップS85)。
組み合わせID列の集合が空でないと判定した場合(ステップS85:No)、切り替わり推定部623は、ステップS81の処理に戻る。
組み合わせID列の集合が空であると判定した場合(ステップS85:Yes)、切り替わり推定部623は、出力部63を介して、IDごとに推定結果を出力し(ステップS86)、処理を終了する。
判定結果が正例であると判定した場合(ステップS84:Yes)、切り替わり推定部623は、組み合わせID列の集合のなかに、話の切り替わりであるか否かを推定していないIDだけからなる組み合わせID列があるか否かを判定する(ステップS87)。
話の切り替わりであるか否かを推定していないIDだけからなる組み合わせID列があると判定した場合(ステップS87:Yes)、切り替わり推定部623は、ステップS81の処理に戻る。
話の切り替わりであるか否かを推定していないIDだけからなる組み合わせID列がないと判定した場合(ステップS87:No)、切り替わり判定部623は、出力部63を介して、IDごとに推定結果と推定単位とを出力し(ステップS88)、処理を終了する。
以下では、具体例を挙げて、推定部62の動作についてさらに説明する。
以下のような発話を例として考える。
発話:「信号で止まっている時に、追突されたと伺っておりますが、お怪我は、大丈夫でしょうか。」
ID付与部621は、図30Aに示すように、上述した発話を、句読点単位で4つの要素に分割し、各要素にID(ID1~ID4)を付与する。組み合わせ生成部622は、図23を参照して説明した処理により、組み合わせID列を生成する。図30Aに示す例では、組み合わせ生成部622は、10個の組み合わせID列([1],[1,2],[2],[1,2,3],[2,3],[3],[1,2,3,4],[2,3,4],[3,4],[4])を生成する。
切り替わり推定部623は、生成された組み合わせID列の集合から、1つの組み合わせID列を取り出し、取り出した組み合わせID列に対応する分割単位が話の切り替わりであるか否かを推定する。切り替わり推定部623は、図30Bに示すように、正例である(話の切り替わりである)と推定されるまで、組み合わせID列の集合内の組み合わせID列に対応する分割単位が話の切り替わりであるか否かを順に推定する。組み合わせID列[1],[1,2],[2],[1,2,3],[2,3],[3],[1,2,3,4],[2,3,4],に対応する分割単位は正例でないと推定され、組み合わせID列[3,4]に対応する分割単位が正例であると推定されたとする。
切り替わり推定部623は、推定していないIDだけからなる組み合わせID列がないため、IDごとに推定結果と推定単位とを、出力部63を介して出力する。組み合わせID列[3,4]に対応する分割単位が正例であると推定されたため、切り替わり推定部623は、図30Bに示すように、ID3およびID4対して推定結果が正例であったこと、また、正例であると推定された単位(推定単位)が、組み合わせ列[3,4]であったことを出力する。
別の具体例を挙げて、推定部62の動作についてさらに説明する。
以下のような発話を例として考える。
発話:「では、お車の状況を詳しく教えて頂きたいのですが、今回は、等級が下がることはございません。」
ID付与部621は、図31Aに示すように、上述した発話を、句読点単位で4つの要素に分割し、各要素にID(ID1~ID4)を付与する。組み合わせ生成部622は、図23を参照して説明した処理により、組み合わせID列を生成する。図31Aに示す例では、組み合わせ生成部622は、10個の組み合わせID列([1],[1,2],[2],[1,2,3],[2,3],[3],[1,2,3,4],[2,3,4],[3,4],[4])を生成する。
切り替わり推定部623は、生成された組み合わせID列の集合から、1つの組み合わせID列を取り出し、取り出した組み合わせID列に対応する分割単位が話の切り替わりであるか否かを推定する。切り替わり推定部623は、図31Bに示すように、正例である(話の切り替わりである)と推定されるまで、組み合わせID列の集合内の組み合わせID列に対応する分割単位が話の切り替わりであるか否かを順に推定する。以下では、組み合わせID列[1]に対応する分割単位は正例でないと推定され、組み合わせID列[1,2]に対応する分割単位が正例であると推定されたとする。
切り替わり推定部623は、正例であるか否かを推定していないID(ID3およびID4)だけからなる組み合わせID列([3],[3,4],[4])が存在するため、これらのID列についてさらに、正例であるか否かを推定する。以下では、組み合わせID列[3]に対応する分割単位は正例でないと推定され、組み合わせID列[3,4]に対応する分割単位が正例であると推定されたとする。
切り替わり推定部623は、推定していなIDだけからなる組み合わせID列がないため、IDごとに推定結果と推定単位とを、出力部63を介して出力する。組み合わせID列[1,2]および組み合わせID列[3,4]に対応する分割単位が正例であると推定されたため、切り替わり推定部623は、図31Bに示すように、ID1,ID2に対して、推定結果が正例であったこと、また、推定単位が組み合わせ列[1,2]であったことを出力する。また、切り替わり推定部623は、ID3,ID4に対して、推定結果が正例であったこと、また、推定単位が組み合わせ列[3,4]であったことを出力する。
次に、本実施形態のように、分割単位の範囲を可変にする場合と、第1および第2の実施形態のように、分割単位の範囲を固定にする場合とで、話の切り替わりの推定精度の比較を行った結果について説明する。分割単位の範囲を固定にした場合、適合率は0.46、再現率は0.33、F値は0.38であった。一方、分割単位の範囲を可変にした場合、適合率は0.49、再現率は0.35、F値は0.41であった。この結果より、分割単位の範囲を可変にする場合に、分割単位の範囲を固定にする場合よりも、高い推定精度が得られることが確認された。
このように本実施形態においては、発話を所定の規則で分割した一の要素または連続する複数の要素からなり、構成する要素の数が異なる分割単位それぞれに対して、話の切り替わりであるか否かを示すラベルを付与した学習データを作成する。さらに、本実施形態においては、処理対象の系列データを構成する発話から、構成する要素の数が異なる分割単位を生成し、上記学習データを学習済みの推定モデル3を用いて、生成した分割単位ごとに、推定モデル3を用いて、話の切り替わりであるか否かを判定する。
そのため、発話の途中で話が切り替わる場合にも、切り替わりの箇所を高精度に推定することができる。
なお、第1の実施形態においては、二値分類モデル1が学習装置10により作成され、多値分類モデル2が学習装置20により作成される例を用いて説明したが、これに限れられるものではない。例えば、図32に示すように、1つの学習装置70が、二値分類モデル1と、多値分類モデル2とを作成してもよい。
学習装置70は、図32に示すように、入力部11と、第1のモデル学習部としての二値分類学習部12と、入力部21と、多値ラベル補完部22と、第2のモデル学習部としての多値分類学習部23とを備える。
入力部11および二値分類学習部12それぞれの動作は、図1を参照して説明した入力部11および二値分類学習部12それぞれの動作と同じである。詳細な説明は省略するが、二値分類学習部12は、複数の話題を含む対話の系列データを構成する発話または発話を分割した分割単位に対して、話の切り替わりであるか否かを示す二値ラベル(第1のラベル)が付与された教師データ(第1の教師データ)に基づき、処理対象の系列データを構成する発話が、話の切り替わりの発話であるか否かを判定する二値分類モデル1(第1のモデル)を学習する。
入力部21、多値ラベル補完部22および多値分類学習部23それぞれの動作は、図2を参照して説明した入力部21、多値ラベル補完部22および多値分類学習部23それぞれの動作と同じである。詳細な説明は省略するが、多値分類学習部23は、系列データにおける1つの話題が続く範囲に、その範囲における話題を示す多値ラベル(第2のラベル)が付与された教師データ(第2の教師データ)に基づき、処理対象の系列データを構成する発話における話題を推定する多値分類モデル2(第2のモデル)を学習する。
図33は、学習装置70の動作の一例を示す図であり、学習装置70による学習方法について説明するための図である。
二値分類学習部12は、複数の話題を含む対話の系列データを構成する発話または発話を分割した分割単位に対して、話の切り替わりであるか否かを示す二値ラベルが付与された教師データ(第1の教師データ)に基づき、処理対象の系列データを構成する発話が、話の切り替わりの発話であるか否かを判定する二値分類モデル1を学習する(ステップS91)。
多値分類学習部23は、系列データにおける1つの話題が続く範囲に、その範囲における話題を示す多値ラベルが付与された教師データに基づき、処理対象の系列データを構成する発話における話題を推定する多値分類モデル2を学習する(ステップS92)。
次に、本開示に係る推定装置30~30dのハードウェア構成について説明する。なお、以下では、推定装置30のハードウェア構成について説明するが、推定装置30a~30dについても同様のハードウェア構成であってよい。また、学習装置10,20,70および学習データ作成装置50についても同様のハードウェア構成であってよい。
図34は、本開示の推定装置30がプログラム命令を実行可能なコンピュータである場合のハードウェア構成を示すブロック図である。ここで、コンピュータは、汎用コンピュータ、専用コンピュータ、ワークステーション、PC(Personal Computer)、電子ノートパッドなどであってもよい。プログラム命令は、必要なタスクを実行するためのプログラムコード、コードセグメントなどであってもよい。
図32に示す例では、推定装置30は、プロセッサ110、ROM(Read Only Memory)120、RAM(Random Access Memory)130、ストレージ140、入力部150、表示部160および通信インタフェース(I/F)170を有する。各構成は、バス190を介して相互に通信可能に接続されている。プロセッサ110は、具体的にはCPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)、SoC(System on a Chip)などであり、同種または異種の複数のプロセッサにより構成されてもよい。
プロセッサ110は、各構成の制御、および各種の演算処理を実行する。すなわち、プロセッサ110は、ROM120またはストレージ140からプログラムを読み出し、RAM130を作業領域としてプログラムを実行する。プロセッサ110は、ROM120またはストレージ140に記憶されているプログラムに従って、推定装置30の上記各構成の制御および各種の演算処理を行う。本実施形態では、ROM120またはストレージ140には、本開示に係るプログラムが格納されている。プロセッサ110は、当該プログラムを読み出して実行する。判定部32、段落推定部33および話題推定部34は、制御部38を構成する(図3)。該制御部38は、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)など専用のハードウェアによって構成されてもよいし、上述したように1つ以上のプロセッサによって構成されてもよい。また、学習装置70が図34に示すハードウェア構成を備える場合、二値分類学習部12、多値ラベル補完部22および多値分類学習部23は、制御部71を構成する。制御部61は、ASIC、FPGAなど専用のハードウェアによって構成されてもよいし、上述したように1つ以上のプロセッサによって構成されてもよい。
プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、USB(Universal Serial Bus)メモリなどの非一時的(non-transitory)記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
ROM120は、各種プログラムおよび各種データを格納する。RAM130は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ140は、HDD(Hard Disk Drive)またはSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラムおよび各種データを格納する。例えば、ストレージ140は、作成した二値分類モデル1,1a、多値分類モデル2,2aおよび推定モデル3を格納する。
入力部150は、マウスなどのポインティングデバイス、およびキーボードを含み、各種の入力を行うために使用される。
表示部160は、例えば、液晶ディスプレイであり、各種の情報を表示する。表示部160は、タッチパネル方式を採用して、入力部150として機能してもよい。
通信インタフェース170は、外部装置(図示しない)などの他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)などの規格が用いられる。
以上の実施形態に関し、更に以下の付記を開示する。
(付記項1)
プロセッサを備える推定装置であって、
前記プロセッサは、
複数の話題を含む対話の系列データを構成する発話または前記発話を分割した分割単位に対して、第1の教師データに基づいて予め学習された第1のモデルを用いて、処理対象の系列データを構成する発話が、話の切り替わりの発話であるか否かを判定し、
前記判定の結果に基づき、前記処理対象の系列データにおける、話の切り替わりから次の切り替わりの直前の発話までの段落または前記話の切り替わりから前記対話の終わりの発話までの段落の範囲を推定する、推定装置。
(付記項2)
プロセッサを備える学習装置であって、
前記プロセッサは、
複数の話題を含む対話の系列データを構成する発話または前記発話を分割した分割単位に対して、話の切り替わりであるか否かを示す第1のラベルが付与された第1の教師データに基づき、処理対象の系列データを構成する発話が、話の切り替わりの発話であるか否かを判定する第1のモデルを学習し、
前記系列データにおける1つの話題が続く範囲に、前記範囲における話題を示す第2のラベルが付与された第2の教師データに基づき、前記処理対象の系列データを構成する発話における話題を推定する第2のモデルを学習する、学習装置。
(付記項3)
コンピュータによって実行可能なプログラムを記憶した非一時的記憶媒体であって、前記コンピュータを付記項1に記載の推定装置として機能させる、プログラムを記憶した非一時的記憶媒体。
(付記項4)
コンピュータによって実行可能なプログラムを記憶した非一時的記憶媒体であって、前記コンピュータを付記項2に記載の学習装置として機能させる、プログラムを記憶した非一時的記憶媒体。
本明細書に記載された全ての文献、特許出願および技術規格は、個々の文献、特許出願、および技術規格が参照により取り込まれることが具体的かつ個々に記載された場合と同程度に、本明細書中に参照により取り込まれる。
上述した推定装置30,30a,30b,30c,30dおよび学習装置70の各部として機能させるためにコンピュータを好適に用いることが可能である。そのようなコンピュータは、推定装置30,30a,30bの各部の機能を実現する処理内容を記述したプログラムを該コンピュータの記憶部に格納しておき、該コンピュータのプロセッサによってこのプログラムを読み出して実行させることで実現することができる。すなわち、プログラムは、コンピュータを、上述した推定装置30,30a,30b,30c,30dおよび学習装置70として機能させることができる。
また、このプログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD-ROMやDVD-ROMなどの記録媒体であってもよい。また、このプログラムは、ネットワークを介して提供することも可能である。
本開示は、上述した各実施形態で特定された構成に限定されず、請求の範囲に記載した発明の要旨を逸脱しない範囲内で種々の変形が可能である。例えば、各構成部などに含まれる機能などは論理的に矛盾しないように再配置可能であり、複数の構成部などを1つに組み合わせたり、或いは分割したりすることが可能である。