IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソニー株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-09
(45)【発行日】2024-12-17
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
   G06F 3/01 20060101AFI20241210BHJP
   G06F 3/16 20060101ALI20241210BHJP
【FI】
G06F3/01 510
G06F3/16 630
G06F3/16 650
【請求項の数】 19
(21)【出願番号】P 2021556018
(86)(22)【出願日】2020-10-30
(86)【国際出願番号】 JP2020040799
(87)【国際公開番号】W WO2021095564
(87)【国際公開日】2021-05-20
【審査請求日】2023-09-20
(31)【優先権主張番号】P 2019205541
(32)【優先日】2019-11-13
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100121131
【弁理士】
【氏名又は名称】西川 孝
(74)【代理人】
【氏名又は名称】稲本 義雄
(74)【代理人】
【識別番号】100168686
【弁理士】
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】岩瀬 広
(72)【発明者】
【氏名】滝 祐平
(72)【発明者】
【氏名】澤井 邦仁
【審査官】亀澤 智博
(56)【参考文献】
【文献】特開2011-253309(JP,A)
【文献】特開2002-032370(JP,A)
【文献】特表2018-513431(JP,A)
【文献】特開2016-178373(JP,A)
【文献】特開2013-161412(JP,A)
【文献】特開2015-064715(JP,A)
【文献】特開2012-008770(JP,A)
【文献】米国特許出願公開第2014/0281959(US,A1)
【文献】特開2008-294746(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/048 - 3/04895
G06F 3/16
(57)【特許請求の範囲】
【請求項1】
ユーザ操作の習慣性を示す習慣性スコアを算出し、
前記習慣性スコアが所定の閾値よりも高い操作およびユーザに対する対話に応じた操作を含む複数の操作からなるクラスタを登録する制御部を備え
前記ユーザに対する対話に応じた操作は、操作種別が同一で属性が異なる操作であり、
前記制御部は、前記操作種別が同一で前記属性が異なる操作における、前記属性の選択に係る対話を実行するか否かを選択対話フラグにより設定する
情報処理装置。
【請求項2】
前記制御部は、前記属性の選択に係る対話を実行するとき、前記選択対話フラグをtrueに設定すると共に、前記対話において選択肢となる前記属性の情報を選択肢情報として設定する
請求項に記載の情報処理装置。
【請求項3】
前記制御部は、前記選択肢情報における前記選択肢となる前記属性を、前記ユーザに提示することで前記対話を実行し、前記ユーザにより選択された前記選択肢に対応する前記属性に基づいて操作を実行する
請求項に記載の情報処理装置。
【請求項4】
前記制御部は、前記選択肢情報における前記選択肢のそれぞれについて、前記ユーザにより選択された回数を選択回数として設定すると共に、全ての前記選択回数の合計回数を設定する
請求項に記載の情報処理装置。
【請求項5】
前記制御部は、前記選択肢情報における選択肢のそれぞれの前記選択回数と、前記合計回数とに基づいて、前記選択肢のそれぞれの入力確率を求め、前記入力確率に応じた順序で、前記属性を前記ユーザに提示することで前記対話を実行し、前記ユーザにより選択された前記選択肢に対応する前記属性に基づいて操作を実行する
請求項に記載の情報処理装置。
【請求項6】
前記制御部は、前記選択肢のいずれかの前記入力確率が規定値よりも大きくなった場合、前記選択対話フラグをfalseに設定し、前記入力確率が規定値よりも高い選択肢となる前記属性を固定した操作を実行する
請求項に記載の情報処理装置。
【請求項7】
前記ユーザに対する対話に応じた操作は、登録された前記クラスタを構成する複数の操作より、追加された操作および削除された操作を含む操作であり、
前記制御部は、前記追加された操作または削除された操作を実行するか否かを確認する対話を実行するか否かを確認対話フラグにより設定する
請求項1に記載の情報処理装置。
【請求項8】
前記制御部は、前記追加された操作または削除された操作の実行を確認する対話を実行するとき、前記確認対話フラグをtrueに設定すると共に、前記対話による前記確認がなされたことにより前記追加された操作または削除された操作が実行された実行回数と、前記確認がなされた合計回数とを確認情報として設定する
請求項に記載の情報処理装置。
【請求項9】
前記制御部は、前記追加された操作または削除された操作の実行を確認する対話を実行し、前記ユーザの応答に応じて操作を実行する
請求項に記載の情報処理装置。
【請求項10】
前記制御部は、前記確認情報における前記追加された操作または削除された操作について、前記実行回数と、前記合計回数とに基づいて、前記確認情報における前記追加された操作または削除された操作が実行されたい実行確率を求める
請求項に記載の情報処理装置。
【請求項11】
前記制御部は、前記追加された操作または削除された操作の前記実行確率が規定値よりも大きくなった場合、前記確認対話フラグをfalseに設定する
請求項10に記載の情報処理装置。
【請求項12】
前記制御部は、前記追加された操作または削除された操作の前記実行確率が規定値よりも小さくなった場合、前記確認対話フラグが設定された前記クラスタを削除する
請求項10に記載の情報処理装置。
【請求項13】
前記ユーザに対する対話に応じた操作は、観測コンテキストに依存する操作からなる観測コンテキスト依存操作であり、
前記制御部は、前記観測コンテキスト依存操作における選択肢の選択に係る対話を実行するか否かをコンテキスト対話フラグにより設定する
請求項1に記載の情報処理装置。
【請求項14】
前記制御部は、前記観測コンテキスト依存操作からなる選択肢の選択に係る対話を実行するとき、前記コンテキスト対話フラグをtrueにすると共に、前記対話において選択肢となる、前記観測コンテキストに依存する属性の情報、および前記観測コンテキストの情報をコンテキスト情報として設定する
請求項13に記載の情報処理装置。
【請求項15】
前記制御部は、前記コンテキスト情報における前記選択肢となる前記観測コンテキストに依存する属性と前記観測コンテキストとを、前記ユーザに提示することで前記対話を実行し、前記ユーザにより選択された前記選択肢に対応する前記属性に基づいて操作を実行する
請求項14に記載の情報処理装置。
【請求項16】
前記制御部は、前記コンテキスト情報における前記選択肢のそれぞれについて、前記ユーザにより選択された回数を選択回数として設定すると共に、全ての前記選択回数の合計回数を設定する
請求項15に記載の情報処理装置。
【請求項17】
前記制御部は、前記コンテキスト情報における選択肢のそれぞれの選択回数と、前記合計回数とに基づいて、前記選択肢のそれぞれの入力確率を求め、前記入力確率に応じた順序で、前記属性を前記ユーザに提示することで前記対話を実行し、前記ユーザにより選択された前記選択肢に対応する前記属性に基づいて操作を実行する
請求項16に記載の情報処理装置。
【請求項18】
前記制御部は、前記選択肢のいずれかの前記入力確率が規定値よりも大きくなった場合、前記コンテキスト対話フラグをfalseに設定し、前記入力確率が規定値よりも高い選択肢となる前記属性、または、前記観測コンテキストを固定した操作を実行する
請求項17に記載の情報処理装置。
【請求項19】
前記習慣性スコアは、直前の操作から現在の操作までの時間間隔、前記直前の操作から現在の操作までの遷移回数、および前記直前の操作から現在の操作への遷移確率の調和関数に基づいて算出される
請求項1に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置に関し、特に、ユーザの習慣化した複数の操作を一括操作するクラスタを容易に変更できるようにした情報処理装置に関する。
【背景技術】
【0002】
ユーザの操作履歴から、ユーザの操作習慣を推定し、ユーザの操作を補助する技術が提案されている。
【0003】
例えば、操作履歴を記憶して、次の操作を遷移確率から予測して、予測される次の操作を実行する技術が提案されている(特許文献1参照)。
【0004】
また、視聴履歴から、曜日や時刻に対する視聴習慣を推定し、視聴に係る操作を補助する技術が提案されている(特許文献2参照)。
【0005】
しかしながら、特許文献1の技術においては、操作の時間間隔を加味した同時性のある複数の操作(操作のまとまりとしてのクラスタ・終端判定)を推定することはできず、さらに、複数の操作の順序が変化してもよい操作については検知することができない。
【0006】
また、特許文献2の技術においては、複数の操作の連続性や同時性に基づく習慣性を推定することができない。
【0007】
そこで、ユーザの習慣化した複数の操作を、操作のまとまりとしてクラスタリングすることで容易に一括操作できるようなクラスタを生成することが考えられる。
【0008】
このように複数の操作を、操作のまとまりとしてクラスタリングしたクラスタを生成しても、ユーザの行動の変化に伴って個々の操作について変更を加えた使用が必要となることがある。
【0009】
しかしながら、個別の操作に変更を加えるためには、変更を加えたい操作について個別に指定する必要があり、ユーザにとって負担が大きかった。
【0010】
そこで、シナリオベースの対話を生成し、一部にブランク項目を設け、過去の行動履歴からブランク項目を埋めるようにして対話を完成させることで複数の操作を一括操作するクラスタを変更させる技術が提案されている(特許文献3)。
【先行技術文献】
【特許文献】
【0011】
【文献】特許第5340774号公報
【文献】特許第5175518号公報
【文献】特開2019-105685号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、特許文献3の技術を用いて、シナリオベース音声対話にブランク項目を設けて、行動履歴からブランク項目を埋めるようにした場合、複合操作の習慣性に基づいて複数の操作のまとまりからなるクラスタの個別の操作を変更させることはできない。
【0013】
このため、複合操作の習慣の変化に対応して、適切にクラスタを変更することができなかった。
【0014】
本開示は、このような状況に鑑みてなされたものであり、特に、ユーザの習慣化した複数の操作のまとまりであるクラスタを、ユーザの習慣性推定に基づいた適切な対話により容易に変更できるようにするものである。
【課題を解決するための手段】
【0015】
本開示の一側面の情報処理装置は、ユーザ操作の習慣性を示す習慣性スコアを算出し、前記習慣性スコアが所定の閾値よりも高い操作およびユーザに対する対話に応じた操作を含む複数の操作からなるクラスタを登録する制御部を備え、前記ユーザに対する対話に応じた操作は、操作種別が同一で属性が異なる操作であり、前記制御部は、前記操作種別が同一で前記属性が異なる操作における、前記属性の選択に係る対話を実行するか否かを選択対話フラグにより設定する情報処理装置である。
【0016】
本開示の一側面においては、ユーザ操作の習慣性を示す習慣性スコアが算出され、前記習慣性スコアが所定の閾値よりも高い操作およびユーザに対する対話に応じた操作を含む複数の操作からなるクラスタが登録され、前記ユーザに対する対話に応じた操作は、操作種別が同一で属性が異なる操作であり、前記操作種別が同一で前記属性が異なる操作における、前記属性の選択に係る対話を実行するか否かが選択対話フラグにより設定される。
【図面の簡単な説明】
【0017】
図1】これまでのブラウジングを説明する図である。
図2】これまでのマクロ登録処理を説明する図である。
図3】本開示の概要を説明する図である。
図4】本開示の技術を適用した情報処理装置の構成例を説明する図である。
図5】ユーザ操作情報と対応する習慣性スコアを説明する図である。
図6】習慣性操作クラスタリング処理を説明するフローチャートである。
図7】習慣性操作クラスタの統合を説明する図である。
図8】習慣性操作クラスタの統合を説明する図である。
図9】対話クラスタリング処理を説明するフローチャートである。
図10】操作種別(Intent)が同一で属性(Entity)が異なる操作を説明する図である。
図11】操作種別(Intent)が同一で属性(Entity)が異なる操作判定処理を説明するフローチャートである。
図12】Intentが同一でEntityが異なる操作に対する対話生成事例を説明する図である。
図13】Intentが同一でEntityが異なる操作に対する対話処理を説明するフローチャートである。
図14】追加された操作を説明する図である。
図15】削除された操作を説明する図である。
図16】追加および削除された操作判定処理を説明するフローチャートである。
図17】追加および削除された操作に対する対話生成事例を説明する図である。
図18】追加および削除された操作に対する対話処理を説明する図である。
図19】観測コンテキストに依存する操作を説明する図である。
図20】観測コンテキストに依存操作判定処理を説明するフローチャートである。
図21】対話クラスタ候補のコンテキスト情報更新処理を説明するフローチャートである。
図22】観測コンテキスト依存操作に対する対話生成事例を説明する図である。
図23】観測コンテキスト依存操作に対する対話処理を説明するフローチャートである。
図24】汎用のパーソナルコンピュータの構成例を説明する図である。
【発明を実施するための形態】
【0018】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0019】
以下、本技術を実施するための形態について説明する。説明は以下の順序で行う。
1.本開示の概要
2.好適な実施の形態
3.ソフトウェアにより実行させる例
【0020】
<<1.本開示の概要>>
<ブラウジング>
本開示は、ユーザの習慣化した複数の操作のまとまりであるクラスタを、ユーザの習慣性推定に基づいた適切な対話により容易に変更できるようにするものである。
【0021】
まず、本開示の概要について説明する。
【0022】
ユーザが、例えば、PC(Personal Computer)のウェブブラウザを利用してブラウジングする場合を例にして、本開示の概要について説明する。
【0023】
通常のブラウジングに際しては、図1の上部で示されるように、ユーザ11が、PC13のキーボードやマウス等からなる操作入力装置12を操作して、キーワードや各種の動作指示等を入力することでブラウザにより記事を検索させて、検索結果が提示されることでブラウジングが実現される。
【0024】
しかしながら、図1の上部で示されるように、ユーザ11が操作入力装置12を操作してキーワードや各種の動作指示を入力する操作は、複数の情報を所定の順序で入力する必要があり、入力すべき情報量が増えるほど操作が煩雑になる。
【0025】
また、習慣化した操作である場合には、同様の複数の操作が繰り返しなされる必要がある。
【0026】
そこで、図1の下部で示されるように、操作入力装置12に加えて、マイクロフォン等による音声入力装置20等を付して音声による入力を受け付けて、音声エージェント21により対話形式で入力できるようにする技術が提案されている。
【0027】
この場合、ユーザ11は、操作入力装置12を操作するか、または、発話により音声入力装置20を介して音声エージェント21に対して対話形式で情報を入力することが可能となる。
【0028】
この結果、図1の下部で示されるように、音声エージェント21を利用した場合には、操作入力装置12を用いた入力操作では、必要とされる複数の操作をマクロ化して、対応付けられたフレーズを発話するだけで一括して実行させることが可能となる。
【0029】
すなわち、複数の操作がマクロ化されて1つのフレーズに対応付けて記憶され、記憶されたフレーズが発話されることにより、マクロ化された複数の操作が一括して実行される。
【0030】
このように所定のフレーズの音声発話によりマクロ化された複数の操作を一括して実行させるには、まず、複数の操作をマクロ化させて、所定のフレーズと対応付けて登録させるマクロ登録処理が必要となる。
【0031】
<ブラウジングにおけるマクロ登録処理>
このマクロ登録処理は、図2の上部で示されるように、2つの手法がある。
【0032】
すなわち、マクロ登録処理の第1の手法は、図2の左上部で示されるように、マクロ登録されていないフレーズの発話があったとき、フレーズに対応付けて複数の操作をマクロ化して記憶させるものである。
【0033】
また、マクロ登録処理の第2の手法は、図2の右上部で示されるように、複数の操作をマクロ化した後、対応付けて記憶させるフレーズの発話があったとき、そのフレーズに対応付けてマクロ化された複数の操作を記憶させるものである。
【0034】
(マクロ登録処理の第1の手法)
例えば、マクロ登録処理の第1の手法においては、図2の左上部で示されるように、処理SC1において、音声エージェント21が、音声入力装置20を介して、ユーザ11が発した「XXX」というフレーズを検出すると、マクロ登録されたフレーズであるか否かを判定する。
【0035】
ここで、マクロ登録されたフレーズではない場合、処理SC2において、音声エージェント21が、PC13の図示せぬディスプレイやスピーカなどから画像や音声により、例えば、「XXXを覚えようか?」といった情報を提示することにより、「XXX」というフレーズに対応付けて、複数の操作をマクロ化して登録すべきか否かを問合せる。
【0036】
この問い合わせに応じて、処理SC3において、音声入力装置20を介して、ユーザ11により「OK」というフレーズが発せられたことが検出されると、音声エージェント21は、「XXX」に対応付けて、複数の操作のマクロ化して登録する旨の要求があったことを認識する。
【0037】
次に、処理SC4において、音声エージェント21が、PC13の図示せぬディスプレイやスピーカなどから画像や音声により、例えば、「操作をどうぞ」と発することにより、以降における、ユーザ11による操作入力装置12の操作内容を順次記憶する準備が整ったことをユーザ11に通知する。
【0038】
これを受けて、処理SC5において、ユーザ11により操作入力装置12が操作されて、マクロ登録しようとする複数の操作が入力され、音声エージェント21は、入力された複数の操作を順次記憶する。
【0039】
複数の操作入力が完了すると、処理SC6において、例えば、「登録」というフレーズがユーザ11により発せられることにより、音声エージェント21は、マクロ登録しようとする複数の操作入力が完了したことを認識する。
【0040】
そして、処理SC7において、音声エージェント21は、「XXX」のフレーズと、それまでに記憶した複数の操作とを対応付けてマクロとして登録し、PC13の図示せぬディスプレイやスピーカなどから画像や音声により、例えば、「XXXを覚えたよ」と発することで、ユーザ11に、それまでに入力された複数の操作入力をマクロ化して、「XXX」というフレーズと対応付けて登録したことを通知する。
【0041】
この一連の処理により、「XXX」というフレーズと対応付けて複数の操作入力がマクロ化されて登録される。
【0042】
この結果、以降においては、例えば、図2の下部で示されるように、ユーザ11により、「XXX」が発せられると、音声エージェント21は、「XXX」に対応付けて登録されたマクロの実行がユーザから指示されたものとみなし、対応付けて登録された複数の操作入力を一括して実行する。
【0043】
(マクロ登録処理の第2の手法)
例えば、マクロ登録処理の第2の手法においては、図2の右上部で示されるように、ユーザ11が、所定のフレーズに対して複数の操作をマクロ化して登録したいとき、「覚えて」といった発話をする。
【0044】
処理SC11において、音声エージェント21が、音声入力装置20を介して、ユーザ11が発した「覚えて」というフレーズを検出すると、所定のフレーズに対して複数の操作をマクロ化して登録したいことを認識する。
【0045】
そこで、処理SC12において、音声エージェント21が、PC13の図示せぬディスプレイやスピーカなどから画像や音声により、例えば、「操作をどうぞ」と発することにより、以降における、ユーザ11による操作入力装置12の操作内容を順次記憶する準備が整ったことをユーザ11に通知する。
【0046】
これを受けて、ユーザ11により操作入力装置12が操作されて、マクロ登録しようとする複数の操作が入力されると、処理SC13において、音声エージェントが入力された複数の操作入力を記憶する。
【0047】
ユーザ11は、マクロ登録しようとする複数の操作入力を完了したとき、「登録」というフレーズを発することで、複数の操作入力が完了したことを音声エージェント21に対して通知する。
【0048】
これにより、処理SC14において、音声エージェント21は、音声入力装置20を介して、ユーザ11が発した「登録」というフレーズを検出することで、マクロ登録しようとする複数の操作入力の完了を認識する。
【0049】
さらに、処理SC15において、音声エージェント21は、PC13の図示せぬディスプレイやスピーカなどから画像や音声により、例えば、「何て言われたら、この操作する?」と発することにより、ユーザ11により操作入力装置12が操作されることで入力されたマクロ登録しようとする複数の操作に対応付けて記憶されるフレーズを問い合わせる。
【0050】
これを受けて、ユーザ11が、例えば、「XXX」のフレーズに対応付けて、それまでに記憶した複数の操作をマクロ化して登録することを指示する。
【0051】
処理SC16において、音声エージェント21が、音声入力装置20を介して、ユーザ11が発した「XXX」というフレーズを検出すると、「XXX」のフレーズに対応付けて、それまでに記憶した複数の操作をマクロ化して登録する指示があったことを認識する。
【0052】
処理SC17において、音声エージェント21は、「XXX」のフレーズに対応付けて、それまでに記憶した複数の操作をマクロ化して登録する。そして、音声エージェント21は、PC13の図示せぬディスプレイやスピーカなどから画像や音声により、例えば、「XXXを覚えたよ」と発することで、ユーザ11に、それまでに入力された複数の操作入力をマクロ化して、「XXX」というフレーズと対応付けて登録したことを通知する。
【0053】
この一連の処理により、「XXX」というフレーズと対応付けて複数の操作入力がマクロ化されて登録される。
【0054】
このように登録された後でも、図2の下部で示されるように、ユーザ11が、「XXX」というフレーズを発することにより、対応付けて登録されたマクロ化された複数の操作が一括して実行されることになる。
【0055】
しかしながら、上述したマクロ登録処理は、第1の手法でも第2の手法でも、基本的には、ユーザが複数の操作を記憶していることが前提となり、記憶している複数の操作をフレーズに対応付けて登録させることしかできない。
【0056】
すなわち、通常のブラウジングを行う中で、ユーザ自身が、普段の操作の中で自身が何を習慣的に操作しているのかを認知・把握できていない限り、マクロ登録自体することができない。
【0057】
また、仮に、ユーザが自身の習慣的な操作を認知・把握してマクロ登録できたとしても、マクロ登録したフレーズ自体を忘れてしまった場合には、マクロ登録されたフレーズを発して、マクロ化された複数の操作を一括して実行させることができないことがある。
【0058】
そこで、ユーザの習慣的な複数の操作を操作履歴からクラスタとして推定し、ユーザに認知させることにより、ユーザの負荷を低減させつつ、複数の操作を一括実行させることが考えられる。
【0059】
<ユーザ操作履歴のクラスタリング>
すなわち、ユーザ操作履歴に基づいて、習慣性の高い複数の操作をクラスタリングすることで、習慣性操作クラスタを生成し、習慣性操作クラスタを単位とした音声マクロ化処理の実行、状況提案通知によりマクロ化の提案、および、ユーザの発話キーワードと所定の一致度よりも高い一致度のキーワードを含む習慣性操作クラスタを一括実行させることが考えられる。
【0060】
例えば、ユーザ操作履歴が記録されるようにして、図3の左上部で示されるように提示されるようにして、このうち習慣操作性の高い複数の操作について、図3の右上部で示されるような習慣性操作クラスタが設定されるようにする。
【0061】
尚、図3の左上部のユーザ操作履歴においては、上から、3/18 20:40:13において、操作Aがなされ、3/18 20:40:14において、操作Bがなされ、3/18 20:40:16において、操作Cがなされ、3/18 20:40:27において、操作Dがなされたことが示されている。
【0062】
また、3/18 20:40:32において、操作Eがなされ、3/18 20:40:35において、操作Fがなされ、3/18 20:40:39において、操作Gがなされ、3/18 20:40:39において、操作Hがなされ、3/18 20:40:41において、操作Iがなされたことが示されている。
【0063】
さらに、3/18 20:40:44において、操作Jがなされ、3/18 20:40:46において、操作Kがなされ、3/18 20:40:49において、操作Lがなされたことが示されている。
【0064】
図3の左上部で示されるユーザ操作履歴においては、ユーザ操作履歴の一部であるが、ユーザ操作履歴のそれぞれには、操作のそれぞれの習慣性の高さを示す習慣性スコアが求められており、習慣性スコアが所定値よりも高い、2以上の複数の操作がクラスタリングされて、図3の右上部で示されるように習慣性操作クラスタとして設定される。
【0065】
図3の右上部は、習慣性スコアが所定値よりも高い、2以上の複数の操作からなる習慣性操作クラスタの例である。
【0066】
図3の右上部においては、操作F乃至Iの習慣性スコアが所定値よりも高い、2以上の複数の操作であるので、習慣性操作クラスタとしてクラスタリングされている。
【0067】
また、習慣性操作クラスタにおいて、習慣性スコアが所定値よりも高い、2以上の複数の操作の直前の操作Eについても、習慣性操作クラスタに含まれている。
【0068】
このため、図3の右上部においては、習慣性操作クラスタとして、操作E乃至Iが含まれている。
【0069】
図3の右上部の習慣性操作クラスタについては、選択された習慣性スコアの高さを示すスコア表示欄LV1乃至LV5が、操作E乃至Lのそれぞれの左側に表示されている。
【0070】
スコア表示欄LV1乃至LV5のそれぞれにおいては、習慣性スコアが高い程、図中の右方向に伸びる棒グラフが示されており、習慣性スコアに応じて色分けされて表示される。
【0071】
すなわち、図3の右上部においては、操作G,Hのそれぞれのスコア表示欄LV3,LV4の習慣性スコアが最も高く、操作F,Iのそれぞれのスコア表示欄LV2,LV5の習慣性スコアが次に高いことが示されている。
【0072】
また、図3の右上部においては、所定の閾値よりも高い習慣性スコアを備えた操作のスコア表示欄LV2乃至LV5がブラケットBL1,BL2により挟み込まれて表示されている。
【0073】
ブラケットBL1,BL2の表示により、習慣性スコアが所定値よりも高い、2以上の複数の操作からなる操作F乃至Iがあり、その直前の操作Eと併せて、習慣性操作クラスタが形成されていることを目視により確認することが可能となる。
【0074】
さらに、操作E乃至Iにおいては、それぞれのスコア表示欄LV1乃至LV5の左側に、スイッチSSE乃至SSIが設けられており、それぞれを操作することで、マクロ化する際に登録すべき操作を選択することができる。
【0075】
すなわち、図3の左上部、および右上部で示されるように、ユーザ操作履歴に基づいた習慣性操作クラスタが設定されるので、習慣性の高い複数の操作をマクロ化した上で、フレーズを対応付けて記憶させることで、マクロ登録処理がなされて、音声マクロ化が実現される(図3下部の音声マクロ化)。
【0076】
これにより、ユーザは、登録されたフレーズを発話することで、自らの習慣性の高い複数の操作を一括して実行させることが可能となる。
【0077】
また、図3の下部で示されるように、習慣性スコアが所定値よりも高い複数の操作からなる習慣性操作クラスタが提示されることにより、ユーザに対して連続した複数の操作からなる習慣性の状況が提示されて、マクロ化するか否かを判断するための状況提案通知が提示される(図3下部の状況提案通知)。
【0078】
これにより、ユーザは、自らの習慣的な連続する複数の操作を意識することが可能となり、習慣性スコアがある程度高くなったことを認識したタイミングで、習慣性スコアの高い連続した複数の操作をマクロ化してマクロ登録することが可能となる。
【0079】
さらに、図3の下部で示されるように、ユーザが発話したキーワードを含む、習慣性操作クラスタが検索されて提示される(図3下部のキーワード検索)。
【0080】
これにより、習慣性操作クラスタと対応付けてマクロ登録されたフレーズを忘れてしまうことがあっても、関連するフレーズに基づいて検索される習慣性操作クラスタが提示されて一括実行が提案されることにより、マクロ登録された習慣性操作クラスタを活用することができる。
【0081】
ところが、習慣性操作クラスタをマクロ登録した後においても、習慣性操作は変化することがある。
【0082】
このような場合、上述した手法を用いると、習慣性操作に変更があっても、新たな習慣性操作であると認識されるまでには、時間が掛かるので、新たな習慣性操作に対応する習慣性操作クラスタが生成されるまでに時間が掛かってしまう恐れがあった。
【0083】
そこで、本開示においては、ユーザの過去の操作履歴からの習慣性操作が推定されることで、マクロ化された複数の操作のうち、変更が必要な操作がなされるタイミングにおいて、ユーザとの対話を実現し、対話に応じて操作を容易に変更できるようにする。
【0084】
<<2.好適な実施の形態>>
次に、本開示の好適な実施の形態について説明する。
【0085】
図4は、本開示の技術を適用した情報処理装置の好適な実施の形態を示している。
【0086】
図4の情報処理装置41は、入力操作部51、機能アプリケーションプログラム実行部52、操作記憶実行制御部53、ユーザ操作履歴記憶部54、習慣性操作/対話クラスタ記憶部55、音声入力部56、音声認識処理部57、発話意味理解処理部58、画像入力部59、画像認識処理部60、センサ入力部61、センサ認識処理部62、応答生成部63、表示画像処理部64、音声合成処理部65、画像出力部66、および音声出力部67を備えている。
【0087】
入力操作部51は、キーボード・マウス・タッチパネル(入力操作デバイス)などから構成されており、ユーザの操作入力を受け付けて、受け付けた操作入力に対応する操作信号を生成して、機能アプリケーションプログラム実行部52に出力する。
【0088】
機能アプリケーションプログラム実行部52は、入力操作部51より供給される操作信号および操作記憶実行制御部53より供給されるシステム操作指示に基づいて、例えば、ウェブブラウザやアクセスしたサイトより供給されるコンテンツを提示するといった各種の機能を実現するアプリケーションプログラムを実行させる。
【0089】
より具体的には、機能アプリケーションプログラム実行部52は、ゲーム(コントローラ)、テレビ(リモートコントローラ)、音楽/動画プレイヤ、スマートフォン/タブレット、PC(Personal Computer)等の操作一般、AR(Augmented Reality)/VR(Virtual Reality)機器、家電製品、カメラ/カムコーダ、業務用システム、その他の複数の操作機能を備えた機器全般としての機能を実現させる。
【0090】
尚、本明細書の以降においては、機能アプリケーションプログラム実行部52が、ウェブブラウザとして機能する場合についての実施例について説明を進めるものとするが、当然のことながら他の機器の機能を実現させるものであってもよい。
【0091】
また、機能アプリケーションプログラム実行部52は、入力操作部51より供給される操作信号、および操作記憶実行制御部53より供給されるシステム操作指示に基づいた実行結果を構成する動画および静止画からなる画像を画像出力部66に出力する。
【0092】
さらに、機能アプリケーションプログラム実行部52は、入力操作部51より供給される操作信号、および操作記憶実行制御部53より供給されるシステム操作指示に基づいた実行結果を構成する音声を音声出力部67に出力する。
【0093】
音声入力部56は、マイクロフォンなどから構成され、ユーザの発する音声からなる発話フレーズの入力を受け付けて、対応する音声信号を生成し音声認識処理部57に出力する。
【0094】
音声認識処理部57は、音声入力部56より供給される音声信号に基づいて、音声認識処理(ASR:Automatic Speech Recognition)を施して、テキストからなる音声認識結果を発話意味理解処理部58、および操作記憶実行制御部53に出力する。
【0095】
発話意味理解処理部58は、音声認識処理部57より供給されるテキストからなる音声認識結果に対して、発話意味理解処理(NLU:Natural Language Understanding)を施して、ユーザの発話フレーズの発話意図(操作種別)(Intent)と発話の対象となる属性情報(Entity)を推定する。
【0096】
発話意味理解処理部58は、推定結果であるユーザの発話フレーズの発話意図(操作種別)(Intent)と発話の対象となる属性情報(Entity)を操作記憶実行制御部53に出力する。
【0097】
画像入力部59は、カメラなどから構成され、ユーザの状況である表情や周囲の画像の入力を受け付けて、対応する画像信号を生成し画像認識処理部60に出力する。
【0098】
画像認識処理部60は、画像入力部59より供給される画像信号に対して、画像認識処理を施して、その処理結果を、ユーザの状況を表す観測コンテキスト情報として操作記憶実行制御部53に出力する。
【0099】
センサ入力部61は、GPS(Global Positioning System)センサ、脈拍センサ、および血圧センサなどから構成され、各センサのセンシング結果の入力を受け付けて、対応するセンサ信号を生成しセンサ認識処理部62に出力する。
【0100】
センサ認識処理部62は、センサ入力部61より供給されるセンサ信号に対して、センサ認識処理を施して、その処理結果を、ユーザの状況を表す観測コンテキスト情報として操作記憶実行制御部53に出力する。
【0101】
操作記憶実行制御部53は、機能アプリケーションプログラム実行部52より供給されるユーザ操作情報に、タイムスタンプを付与してユーザ操作履歴としてユーザ操作履歴記憶部54に記憶させ、ユーザ操作履歴として蓄積されるようにする。
【0102】
操作記憶実行制御部53は、ユーザ操作履歴記憶部54に記憶されたユーザ操作履歴を、応答生成部63を介して表示画像処理部64により特定の履歴管理画面等を生成させて、例えば、図3の左上部を参照して説明した過去のユーザ操作履歴として時系列に、画像出力部66により表示されるようにして、ユーザが閲覧できるようにしてもよい。
【0103】
ユーザ操作情報は、入力操作部51の操作内容に対応する情報であり、例えば、機能アプリケーションプログラム実行部52により実現される機能がウェブブラウザの場合、クリック、フォーム入力、フォームsubmit、およびサイト遷移などの操作に対応する情報である。
【0104】
さらに、ユーザ操作情報には、それぞれの操作対象であるリンク/フォームなどのUI(User Interface)部品の情報や遷移先URL(Uniform Resource Locator)(+サイトのタイトル)の情報も含まれる。
【0105】
また、ユーザ操作情報には、入力操作部51による操作が行われた時のサイトのURL(+サイトのタイトル)の情報が含まれる。
【0106】
操作記憶実行制御部53は、ユーザ操作履歴記憶部54に蓄積された過去のユーザ操作履歴に基づいて、ユーザの習慣的な複数の操作(複合操作)を習慣性操作クラスタまたは対話クラスタとして推定し、習慣性操作/対話クラスタ記憶部55に記憶させる。
【0107】
操作記憶実行制御部53は、ユーザの発話フレーズと、その発話意図(操作種別)(Intent)および発話の対象となる属性情報(Entity)、観測コンテキスト情報、およびユーザ操作情報に基づいて、習慣性操作/対話クラスタ記憶部55より、対応する習慣性操作クラスタまたは対話クラスタを読み出す。
【0108】
そして、操作記憶実行制御部53は、読み出した習慣性操作クラスタまたは対話クラスタを音声マクロ化したり、習慣性操作クラスタまたは対話クラスタに基づいた複数の操作の一括実行やマクロ実行などにより、システム操作指示を生成し、機能アプリケーションプログラム実行部52に出力して実行させる。
【0109】
機能アプリケーションプログラム実行部52は、習慣性操作クラスタまたは対話クラスタに応じたシステム操作指示に基づいて、習慣性操作クラスタまたは対話クラスタを構成する複数の操作を、それぞれについて時系列に一括実行する。
【0110】
また、操作記憶実行制御部53は、ユーザに対する音声マクロ化や習慣性操作クラスタまたは対話クラスタの実行に係る提案通知や確認対話のため、応答生成部63を制御して、音声マクロ化や習慣性操作クラスタまたは対話クラスタの一括実行に係る提案通知や確認対話のための表示画像や音声を生成して出力させる。
【0111】
応答生成部63は、音声マクロ化や習慣性操作クラスタまたは対話クラスタの実行に係る提案通知や確認対話のための表示画像を表示画像処理部64に生成させると共に、同様の提案通知や確認対話のための音声を音声合成処理部65により生成させる。
【0112】
表示画像処理部64は、生成した音声マクロ化や習慣性操作クラスタまたは対話クラスタの実行に係る提案通知や確認対話のための表示画像を画像出力部66に出力して表示させる。
【0113】
音声合成処理部65は、音声マクロ化や習慣性操作クラスタまたは対話クラスタの実行に係る提案通知や確認対話のための音声を音声出力部67より出力させる。
【0114】
画像出力部66は、ディスプレイやプロジェクタ等から構成されており、機能アプリケーションプログラム実行部52により制御されて、機能アプリケーションプログラム実行部52の処理結果となる表示画像を表示する。
【0115】
また、画像出力部66は、表示画像処理部64より供給される表示画像を表示する。
【0116】
音声出力部67は、スピーカやヘッドフォンなどから構成されており、機能アプリケーションプログラム実行部52により制御されて、機能アプリケーションプログラム実行部52の処理結果となる音声を出力する。
【0117】
また、音声出力部67は、音声合成処理部65より供給される音声を出力する。
【0118】
<ユーザ操作情報と対応する習慣性スコア>
次に、図5を参照して、ユーザ操作情報と対応する習慣性スコアについて説明する。
【0119】
ユーザ操作情報は、例えば、図5のユーザ操作情報Pr1乃至Pr3のような情報として蓄積される。
【0120】
すなわち、図5のユーザ操作情報Pr1は、1行目乃至12行目の記述により構成されており、2行目乃至6行目においては、"url": "https://www.JJJ.co.jp/norikae/","title": "乗換案内|JJJ"で示されるURLの乗換案内のホームページを表示させる操作がなされたことが示されている。
【0121】
また、図5のユーザ操作情報Pr1の7行目乃至10行目においては、"url": "https://www.tootle.co.jp/search?q=%E4%B9%97%E3%82%8A%E6%8F%9B%E3%81%88","title": "乗り換え - Tootle 検索"で示されるネットワーク上の位置に格納された情報が読みだされて表示されていることが示されている。
【0122】
さらに、図5のユーザ操作情報Pr1の11行目においては、"date": "2019-04-05T05:04:38.896Z"で示されるように、ユーザ操作情報ST1の操作が2019年04月05日の時刻05:04:38.896になされたことが示されている。
【0123】
そして、このユーザ操作情報Pr1の操作により、表示された乗換案内のホームページ内に乗車駅の駅名を入力する操作の情報がユーザ操作情報Pr2により記述されている。
【0124】
すなわち、図5のユーザ操作情報Pr2は、1行目乃至15行目の記述により構成されており、2行目乃至9行目においては、乗車駅として新宿を入力する操作がなされたことが示されている。
【0125】
また、図5のユーザ操作情報Pr2の10目乃至13行目においては、"url": "https://www.JJJ.co.jp/norikae/","title": "乗換案内|JJJで示されるネットワーク上の位置に格納された情報が読みだされて表示されていることが示されている。
【0126】
さらに、図5のユーザ操作情報Pr2の14行目においては、"date": "2019-04-05T05:04:46.341Z"で示されるように、ユーザ操作情報ST2の操作が2019年04月05日の時刻05:04:46.341になされたことが示されている。
【0127】
また、このユーザ操作情報Pr1の操作により、表示された乗換案内のホームページ内に降車駅の駅名を入力する操作の情報がユーザ操作情報Pr3により記述されている。
【0128】
すなわち、図5のユーザ操作情報Pr3は、1行目乃至15行目の記述により構成されており、2行目乃至9行目においては、降車駅として大崎を入力する操作がなされたことが示されている。
【0129】
また、図5のユーザ操作情報Pr3の10目乃至13行目においては、"url": "https://www.JJJ.co.jp/norikae/","title": "乗換案内|JJJで示されるネットワーク上の位置に格納された情報が読みだされて表示されていることが示されている。
【0130】
さらに、図5のユーザ操作情報Pr3の14行目においては、"date": "2019-04-05T05:04:57.721Z"で示されるように、ユーザ操作情報ST3の操作が2019年04月05日の時刻05:04:57.721になされたことが示されている。
【0131】
すなわち、図5のユーザ操作情報Pr1乃至Pr3が、順次ユーザ操作履歴記憶部54に時系列に蓄積される。
【0132】
操作記憶実行制御部53は、ユーザ操作情報が供給されると、ユーザ操作履歴記憶部54に順次蓄積させて、ユーザ操作履歴を構成する。
【0133】
また、操作記憶実行制御部53は、ユーザ操作情報が供給されると、ユーザ操作履歴記憶部54に蓄積されているユーザ操作履歴を用いて、習慣性スコアを算出し、ユーザ操作履歴に対応付けて蓄積させ、順次更新する。
【0134】
ここで、習慣性スコアとは、ユーザ操作履歴上における、例えば、n番目の操作に相当する操作nの過去のユーザ操作履歴に対する習慣性の傾向を示す値であり、以下の式(1)で定義されるスコアである。
【0135】
Sn=3/(1/Tn+1/Fn+1/Pn
・・・(1)
【0136】
ここで、Snは、操作nの習慣性スコアであり、Tnは、一つ前の操作n-1から操作nまでの時間間隔であり、Fnは、操作n-1から操作nへの遷移回数であり、Pnは、操作n-1から操作nへの遷移確率である。
【0137】
すなわち、操作nの習慣性スコアは、一つ前の操作n-1から操作nまでの時間間隔Tn、操作n-1から操作nへの遷移回数Fn、および、操作n-1から操作nへの遷移確率Pnの調和平均である。
【0138】
また、一つ前の操作n-1から操作nまでの時間間隔Tnは、以下の式(2)で定義される。
【0139】
Tn=Ht/((tn-t(n-1))+Ht
・・・(2)
【0140】
ここで、Tnは、一つ前の操作n-1から操作nまでの時間間隔であり、tnは、操作nが行われた時刻であり、t(n-1)は、操作n-1が行われた時刻であり、Htは、正規化定数である。正規化定数Htは、例えば30秒等でもよい。
【0141】
尚、正規化定数Htは、ユーザにより可変にするようにしてもよい。すなわち、時間間隔Tnは、正規化定数Hcにより時刻の差分による影響が変化する。このため、例えば、操作に慣れている人と慣れていない人を機器の使用時間や操作時間間隔の平均値から判定し、慣れている人は正規化定数Htを小さく、慣れていない人は正規化定数Htを大きくするようにしてもよい。
【0142】
さらに、操作n-1から操作nへの遷移回数Fnは、以下の式(3)で定義される。
【0143】
Fn=1-Hc/(Ctn+Hc
・・・(3)
【0144】
ここで、Ctnは、ユーザ操作履歴上の過去に操作n-1と同じ操作から、操作nと同じ操作へ遷移した回数であり、Hcは、正規化定数である。正規化定数Hcは、例えば3回である。
【0145】
また、操作n-1から操作nへの遷移確率Pnは、以下の式(4)で定義される。
【0146】
Pn=Ctn/C(n-1)
・・・(4)
【0147】
ここで、C(n-1)は、ユーザ操作履歴の上過去に操作n-1と同じ操作が行われた回数である。
【0148】
すなわち、操作nの習慣性スコアSnは、操作nが一つ前の操作n-1に対して短い時間内に行われ、かつ遷移回数Fnと遷移確率Pnが高くなるほど習慣的に行われていると判定されスコアが高くなる。
【0149】
操作記憶実行制御部53は、ユーザ操作情報が供給されて、ユーザ操作履歴記憶部54におけるユーザ操作履歴に対して新たに蓄積させるとき、順次上述した習慣性スコアSnを算出して、ユーザ操作履歴に蓄積される操作毎に記憶させ、必要に応じて更新する。
【0150】
より詳細には、操作記憶実行制御部53は、操作履歴の時系列上で習慣性スコアSnが習慣性閾値Sth(例えば0.5)より大きくなる操作が2つ以上になると、最初に習慣性スコアSnが習慣性閾値Sthより大きくなる操作の一つ前の操作から最後に習慣性スコアSnが習慣性閾値Sthより大きくなる操作までを習慣性操作クラスタ候補に設定する。
【0151】
次に、操作記憶実行制御部53は、習慣性操作/対話クラスタ記憶部55に記憶されている習慣性操作クラスタ内に、習慣性操作クラスタ候補と同一のシーケンス(習慣性操作クラスタ内の操作と順序が一致する)の習慣性操作クラスタが無く、かつ、操作が同じで、順序だけ異なる習慣性操作クラスタも無い場合、習慣性操作クラスタ候補を新規の習慣性操作クラスタとして習慣性操作/対話クラスタ記憶部55に記憶させる。
【0152】
また、操作記憶実行制御部53は、習慣性操作/対話クラスタ記憶部55に記憶されている習慣性操作クラスタ内に習慣性操作クラスタ候補と操作が同じで、順序が異なる習慣性操作クラスタが存在する場合、この2つの習慣性操作クラスタ候補と習慣性操作クラスタとを比較して、習慣性操作クラスタ内の順序可変操作を検出した上で統合し、習慣性操作クラスタとして、習慣性操作/対話クラスタ記憶部55に更新して記憶させる。
【0153】
また、操作記憶実行制御部53は、操作履歴の時系列上で習慣性スコアSnが習慣性閾値Sth(例えば0.5)より大きくなる操作が2つ以上になると、最初に習慣性スコアSnが習慣性閾値Sthより大きくなる操作の一つ前の操作から最後に習慣性スコアSnが習慣性閾値Sthより大きくなる操作までを対話クラスタ候補に設定する。
【0154】
また、操作記憶実行制御部53は、習慣性操作/対話クラスタ記憶部55に記憶されている習慣性操作クラスタおよび対話クラスタ内(以下、習慣性操作クラスタおよび対話クラスタを単にクラスタとも称する)に、対話クラスタ候補のシーケンスで包含されるクラスタが無く、かつ、対話により置き換えが可能なクラスタも無い場合、対話クラスタ候補を新規の対話クラスタとして習慣性操作/対話クラスタ記憶部55に記憶させる。
【0155】
<習慣性操作クラスタリング処理>
次に、図6のフローチャートを参照して、習慣性操作クラスタリング処理について説明する。
【0156】
ステップS11において、操作記憶実行制御部53は、操作をカウントするカウンタnを1に初期化する。
【0157】
ステップS12において、操作記憶実行制御部53は、操作nのユーザ操作情報が供給されたか否かを判定し、供給されるまで、同様の処理を繰り返す。
【0158】
そして、ステップS12において、操作nのユーザ操作情報が供給された場合、処理は、ステップS13に進む。
【0159】
ステップS13において、操作記憶実行制御部53は、操作nのユーザ操作情報にタイムスタンプを付与して、ユーザ操作履歴としてユーザ操作履歴記憶部54に記憶させる。
【0160】
ステップS14において、操作記憶実行制御部53は、ユーザ操作履歴記憶部54に記憶されているユーザ操作履歴に基づいて、上述した式(1)乃至式(4)を参照して説明した演算により、操作nの習慣性スコアSnを算出する。
【0161】
ステップS15において、操作記憶実行制御部53は、操作nに対応する習慣性スコアSnが、習慣性閾値Sthよりも大きいか否かを判定する。
【0162】
ステップS15において、操作nに対応する習慣性スコアSnが、習慣性閾値Sthよりも大きいと判定された場合、操作nが習慣性の高い操作であるものとみなされて、処理は、ステップS16に進む。
【0163】
ステップS16において、操作記憶実行制御部53は、操作nの1つ前の操作n-1の習慣性スコアSn-1が、習慣性閾値Sthよりも小さいか否かを判定する。
【0164】
ステップS16において、操作nの1つ前の操作n-1の習慣性スコアSn-1が、習慣性閾値Sthよりも小さい場合、処理は、ステップS17に進む。
【0165】
ステップS17において、操作記憶実行制御部53は、操作n-1を習慣性操作クラスタ候補に追加する。
【0166】
ステップS18において、操作記憶実行制御部53は、操作nを習慣性操作クラスタ候補に追加する。
【0167】
ステップS19において、操作記憶実行制御部53は、処理の終了が指示されたか否かを判定し、終了が指示された場合、処理が終了する。
【0168】
また、ステップS19において、終了が指示されていない場合、処理は、ステップS20に進む。
【0169】
ステップS20において、操作記憶実行制御部53は、カウンタnを1インクリメントして、処理は、ステップS12に戻る。
【0170】
すなわち、習慣性操作クラスタリング処理の終了が指示されるまで、習慣性スコアSnが習慣性閾値Sthよりも高い操作nが複数になる(繰り返される)と、ステップS11乃至S20の処理が繰り返されて、カウンタnが順次1ずつインクリメントされ、習慣性操作クラスタ候補の操作が追加され続ける。
【0171】
また、習慣性操作クラスタを構成する操作の先頭の操作は、習慣性スコアSnが習慣性閾値Sthよりも高くなる操作の直前の操作であるので、ステップS16の処理により操作nの直前の操作n-1の習慣性スコアSn-1が習慣性閾値Sthよりも低いときには、ステップS17の処理により、操作nの1つ前の操作n-1が習慣性操作クラスタ候補の先頭操作として含まれるようにする。
【0172】
従って、習慣性操作クラスタ候補を構成する操作のうち、先頭以外の操作については、習慣性スコアSnが習慣性閾値Sthよりも大きくなるので、ステップS16においては、習慣性スコアSnが習慣性閾値Sthよりも小さくはならないので、ステップS17の処理がスキップされる。
【0173】
さらに、ステップS15において、操作nに対応する習慣性スコアSnが、習慣性閾値Sthよりも大きくないと判定された場合、操作nは習慣性の高い操作ではないものとみなされて、処理は、ステップS21に進む。
【0174】
ステップS21において、操作記憶実行制御部53は、1つ前の操作n-1の習慣性スコアSn-1は、習慣性閾値Sthよりも大きいか否かを判定する。
【0175】
ステップS21にいて、操作n-1の習慣性スコアSn-1が、習慣性閾値Sthよりも大きいとみなされた場合、直前までの操作は、習慣性操作クラスタ候補に含まれる操作の一部であるものとみなされて、処理は、ステップS22に進む。
【0176】
尚、ステップS21において、操作n-1の習慣性スコアSn-1が、習慣性閾値Sthよりも小さいとみなされた場合、直前の操作は、習慣性操作クラスタ候補には含まれない操作であるものとみなされて、処理は、ステップS19に進む。
【0177】
ステップS22において、操作記憶実行制御部53は、直前までの操作により構成される習慣性操作クラスタ候補に含まれる操作が2以下であるか否かを判定する。
【0178】
習慣性操作クラスタは、3以上であることを前提とするので、ステップS22において、直前までの操作により構成される習慣性操作クラスタ候補に含まれる操作が2以下である場合、習慣性操作クラスタが構成されていないものとみなされて、処理は、ステップS23に進む。
【0179】
そして、ステップS23において、操作記憶実行制御部53は、習慣性操作クラスタ候補として記憶していた操作の情報をクリアして、処理は、ステップS19に進む。
【0180】
また、ステップS22において、直前までの操作により構成される習慣性操作クラスタ候補に含まれる操作が2以下はない場合、すなわち、習慣性操作クラスタ候補に3以上の操作が含まれているものとみなされるので、処理は、ステップS24に進む。
【0181】
ステップS24において、操作記憶実行制御部53は、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みの習慣性操作クラスタのうち、現在処理中の習慣性操作クラスタ候補に含まれる操作が同一で、かつ、同一シーケンス(その順序が同一)となる完全同一のものがないか否かを判定する。
【0182】
すなわち、習慣性操作クラスタ候補が、習慣性操作/対話クラスタ記憶部55に既に登録されている習慣性操作クラスタと完全同一である場合には、新たに登録する必要がないので、完全同一のものがないか否かが判定される。
【0183】
ステップS24において、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みの習慣性操作クラスタに、現在処理中の習慣性操作クラスタ候補と完全同一のものがある場合、処理は、ステップS23に進む。
【0184】
すなわち、この場合、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みの習慣性操作クラスタに、現在処理中の習慣性操作クラスタ候補と完全同一のものがあるので、処理は、ステップS23に進み、現在処理中の習慣性操作クラスタ候補の情報がクリアにされる。
【0185】
また、ステップS24において、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みの習慣性操作クラスタに、現在処理中の習慣性操作クラスタ候補と完全同一のものがない場合、処理は、ステップS25に進む。
【0186】
ステップ25において、操作記憶実行制御部53は、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みの習慣性操作クラスタのうち、現在処理中の習慣性操作クラスタ候補に含まれる操作が同一であるが、その順序が同一ではないものがあるか否か、すなわち、含まれる操作は同一であるが、順序のみが異なるものがあるか否かを判定する。
【0187】
ステップS25において、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みの習慣性操作クラスタのうち、現在処理中の習慣性操作クラスタ候補に含まれる操作が同一であるが、順序のみが異なるものがない場合、処理は、ステップS26に進む。
【0188】
ステップS26において、操作記憶実行制御部53は、現在処理中の習慣性操作クラスタ候補の操作をそのままの順序で、新規の習慣操作性クラスタとして習慣性操作/対話クラスタ記憶部55に登録する。
【0189】
すなわち、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みの習慣性操作クラスタのうち、現在処理中の習慣性操作クラスタ候補に含まれる操作と同一で、順序のみが異なるものがないので、現在処理中の習慣性操作クラスタ候補は、新たな複数の操作からなる習慣性操作クラスタとみなされるので、習慣性操作/対話クラスタ記憶部55に登録される。
【0190】
ステップS25において、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みの習慣性操作クラスタのうち、現在処理中の習慣性操作クラスタ候補に含まれる操作と同一であるが、その順序が同一ではないもの、すなわち、順序のみが異なるものがある場合、処理は、ステップS27に進む。
【0191】
ステップS27において、操作記憶実行制御部53は、現在処理中の習慣性操作クラスタ候補と、現在処理中の習慣性操作クラスタ候補に含まれる操作と同一であるが、その順序が同一ではない登録済みの習慣性操作クラスタとを比較して、順序可変の操作を検出する。以降、順序可変操作が検出されるともいう。
【0192】
ステップS28において、操作記憶実行制御部53は、現在処理中の習慣性操作クラスタ候補と、現在処理中の習慣性操作クラスタ候補に含まれる操作と同一であるが、その順序が同一ではない登録済みの習慣性操作クラスタとを、順序可変操作の可変範囲の情報と共に1つの習慣性操作クラスタとして統合して習慣性操作/対話クラスタ記憶部55に登録する。
【0193】
尚、習慣性操作クラスタの比較と統合については、図7図8を参照して詳細を後述する。
【0194】
以上の処理により、新たな操作nが受け付けられると、順次、習慣性スコアSnが求められて、習慣性閾値Sthとの比較により、習慣性操作クラスタ候補が設定される。
【0195】
また、習慣性操作クラスタ候補と、既に登録済みの習慣性操作クラスタとの、それぞれを構成する操作との比較により、登録済みの習慣性操作クラスタとは、全く異なる操作からなる習慣性操作クラスタ候補については、新規の習慣性操作クラスタとして登録される。
【0196】
さらに、習慣性操作クラスタ候補と、既に登録済みの習慣性操作クラスタとの、それぞれを構成する操作の比較により、同一の操作から構成されるが、操作順序のみが異なる習慣性操作クラスタ候補については、登録済みの習慣性操作クラスタと共に1つの習慣性操作クラスタとして統合がなされて、習慣性操作/対話クラスタ記憶部55に登録される。
【0197】
これにより、習慣性スコアが高く、ユーザの操作としての習慣性が高い複数の操作が、習慣性操作クラスタとして順次登録することが可能となる。
【0198】
尚、登録された習慣性操作クラスタについては、時間の経過と共に習慣性に乖離が生じる可能性があるので、所定期間以上登録されたままの習慣性操作クラスタについては、削除するようにしてもよい。
【0199】
<習慣性操作クラスタの比較と統合(その1)>
ここで、図7を参照して、習慣性操作クラスタの比較と統合について説明する。
【0200】
習慣性操作クラスタ候補および登録済みの習慣性操作クラスタとして、例えば、図7で示されるような習慣性操作クラスタ候補CL1と、記憶済みの順序のみが異なる習慣性操作クラスタCL2とが存在する場合について考える。
【0201】
ここで、図7の習慣性操作クラスタ候補CL1は、操作A乃至Dの4つの操作から構成され、習慣性操作クラスタCL2も、同様に操作A乃至Dの4つの操作から構成されるものとする。
【0202】
ここで、習慣性操作クラスタ候補CL1においては、操作A、操作C、操作B、操作Dの順序で操作がなされるのに対して、登録済みの習慣操作性クラスタにおいては、操作A、操作B、操作C、操作Dの順序で動作がなされるものとする。
【0203】
尚、操作Aは、乗換案内サイトへ遷移させる操作であり、操作Cは、降車駅として”大崎”を入力する操作であり、操作Bは、乗車駅として”新宿”を入力する操作であり、操作Dは、検索実行ボタンクリックする操作であるものとする。
【0204】
また、習慣性操作クラスタ候補CL1、および習慣性操作クラスタCL2のいずれにおいても、操作B、操作C、操作Dのそれぞれの習慣性スコアSnは、いずれも習慣性閾値Sthよりも大きいものとする。
【0205】
すなわち、習慣性操作クラスタ候補CL1、および習慣性操作クラスタCL2のそれぞれの操作を比較すると、乗車駅の入力操作である操作Bと、降車駅の入力操作である操作Cとの順序が異なっている。
【0206】
しかしながら、乗車駅の入力操作である操作Bと、降車駅の入力操作である操作Cとの順序は異なっていても、最終的な操作Dがなされることにより、同一の乗換案内が表示されることになるため、習慣性操作クラスタ候補CL1、および習慣性操作クラスタCL2は、実質的に同一であり、同一の習慣性操作クラスタとして統合されて扱われることが望ましい。
【0207】
そこで、操作記憶実行制御部53は、図7の比較結果CL3で示されるように、習慣性操作クラスタ候補CL1、および習慣性操作クラスタCL2を構成する、それぞれの操作について、その前後の操作を比較する。
【0208】
すなわち、習慣性操作クラスタ候補CL1の操作Aにおいては、操作Aが先頭操作であるため前操作がなく(図中では先頭と表記されている)、後操作が操作Cである。
【0209】
習慣性操作クラスタ候補CL1の操作Cにおいては、前操作が操作Aであり、後操作が操作Bである。
【0210】
習慣性操作クラスタ候補CL1の操作Bにおいては、前操作が操作Cであり、後操作が操作Dである。
【0211】
そして、習慣性操作クラスタ候補CL1の操作Dにおいては、前操作が操作Bであり、操作Dそのものが終端操作で後操作はない(図中では後操作が終端と表記されている)。
【0212】
また、習慣性操作クラスタCL2の操作Aにおいては、操作Aが先頭操作であるため前操作がなく(図中では先頭と表記されている)、後操作が操作Bである。
【0213】
習慣性操作クラスタCL2の操作Cにおいては、前操作が操作Bであり、後操作が操作Dである。
【0214】
習慣性操作クラスタCL2の操作Bにおいては、前操作が操作Aであり、後操作が操作Cである。
【0215】
そして、習慣性操作クラスタCL2の操作Dにおいては、前操作が操作Cであり、操作Dそのものが終端操作で後操作はない(図中では後操作が終端と表記されている)。
【0216】
ここで、操作記憶実行制御部53は、図7の比較結果CL3に基づいて、習慣性操作クラスタ候補CL1、および習慣性操作クラスタCL2間における前操作と後操作の両方が異なる操作を順序可変操作として検出する。
【0217】
すなわち、図7の比較結果CL3においては、操作のうち操作B、および操作Cは、前操作と後操作とが、いずれも異なるため、順序可変操作として検出されることになる。
【0218】
尚、操作Aは、習慣性操作クラスタ候補CL1においても、習慣性操作クラスタCL2においても、先頭操作であり、また、操作Dは、習慣性操作クラスタ候補CL1においても、習慣性操作クラスタCL2においても、終端操作である。このため、操作A、および操作Dについては、いずれも順序可変操作ではない。
【0219】
そこで、操作記憶実行制御部53は、検出した順序可変操作に基づいて、習慣性操作クラスタ候補CL1、および習慣性操作クラスタCL2を統合した、図7で示されるような統合記憶クラスタCL4を生成して、習慣性操作/対話クラスタ記憶部55に登録する。
【0220】
すなわち、図7の統合記憶クラスタCL4においては、左から操作のうち、操作Aが、乗換案内サイトへ遷移させる操作であり、操作Cが、降車駅として”大崎”を入力する操作であり、操作Bが、乗車駅として”新宿”を入力する操作であり、操作Dが、検索実行ボタンクリックする操作であることが記録される。
【0221】
また、このうち、操作Cおよび操作Bについては、順序可変操作として検出されているので、可変範囲が設定される。
【0222】
可変範囲には、前条件と後条件とがあり、操作の前操作となり得る最も順序の早い操作が前条件として設定され、操作の後操作となり得る最も順序の遅い操作が後条件として設定される。
【0223】
図7の統合記憶クラスタCL4においては、操作Cおよび操作Bが順序可変操作として検出されているので、操作Cおよび操作Bは、いずれも図中の矢印で示されるように、前条件が、操作Aとされ、後条件が、操作Dとされる。
【0224】
すなわち、図7の統合記憶クラスタCL4の情報により、操作Cおよび操作Bのいずれもが、操作Aと操作Dとの間の範囲、すなわち、可変範囲であれば、順序を可変にすることが可能であることが記録される。
【0225】
尚、図7の統合記憶クラスタCL4においては、直近でなされた操作順序で登録される例が示されているが、登録済みの習慣性操作クラスタの操作順序で登録されるようにしてもよい。
【0226】
<習慣性操作クラスタの比較と統合(その2)>
以上においては、習慣性操作クラスタ候補と、登録済みの習慣性操作クラスタとの、それぞれの操作の比較において、前操作と後操作が異なる操作が2つ存在し、それぞれの操作に対して可変範囲が設定される場合について説明してきた。
【0227】
しかしながら、順序可変操作の数は、2つ以外の数であってもよく、例えば、1つだけであってもよい。
【0228】
例えば、習慣性操作クラスタ候補および登録済みの習慣性操作クラスタとして、例えば、図8で示されるような習慣性操作クラスタ候補CL11と、記憶済みの順序のみが異なる習慣性操作クラスタCL12とが存在する場合について考える。
【0229】
ここで、図8の習慣性操作クラスタ候補CL11は、操作A乃至Dの4つの操作から構成され、習慣性操作クラスタCL12も、同様の操作A乃至Dの4つの操作から構成されるものとする。
【0230】
ここで、習慣性操作クラスタ候補CL11においては、操作A、操作D、操作C、操作Bの順序で操作がなされるのに対して、登録済みの習慣操作性クラスタにおいては、操作A、操作B、操作C、操作Dの順序で操作がなされるものとする。
【0231】
尚、操作Aは、動画閲覧サイトへ遷移させる操作であり、操作Dは、音量を30に設定する操作であり、操作Bは、動画コンテンツZを選択する操作であり、操作Cは、再生ボタンをクリックする操作であるものとする。
【0232】
また、習慣性操作クラスタ候補CL11、および習慣性操作クラスタCL12のいずれにおいても、操作B、操作C、操作Dのそれぞれの習慣性スコアSnは、いずれも習慣性閾値Sthよりも大きい。
【0233】
すなわち、習慣性操作クラスタ候補CL11、および習慣性操作クラスタCL12のそれぞれの操作を比較すると、音量を30に設定する操作である操作Dが、操作Aと操作Bとの間において順序可変操作となっている。
【0234】
しかしながら、音量を30に設定する操作である操作Dについては、順序は異なっていても、音量は30に設定されることになるため、習慣性操作クラスタ候補CL11、および習慣性操作クラスタCL12は、実質的に同一であり、同一の習慣性操作クラスタとして統合されて扱われることが望ましい。
【0235】
そこで、操作記憶実行制御部53は、図8の比較結果CL13で示されるように、習慣性操作クラスタ候補CL11、および習慣性操作クラスタCL12を構成する、それぞれの操作について、その前後の操作を比較する。
【0236】
すなわち、習慣性操作クラスタ候補CL11の操作Aにおいては、操作Aが先頭操作であるため前操作がなく(図中では先頭と表記されている)、後操作が操作Dである。
【0237】
習慣性操作クラスタ候補CL11の操作Dにおいては、前操作が操作Aであり、後操作が操作Bである。
【0238】
習慣性操作クラスタ候補CL11の操作Bにおいては、前操作が操作Dであり、後操作が操作Cである。
【0239】
そして、習慣性操作クラスタ候補CL11の操作Cにおいては、前操作が操作Bであり、操作Cそのものが終端操作で後操作はない(図中では後操作が終端と表記されている)。
【0240】
また、習慣性操作クラスタCL12の操作Aにおいては、操作Aが先頭操作であるため前操作がなく(図中では先頭と表記されている)、後操作が操作Bである。
【0241】
習慣性操作クラスタCL12の操作Dにおいては、前操作が操作Cであり、操作Dそのものが終端操作で後操作はない(図中では後操作が終端と表記されている)。
【0242】
習慣性操作クラスタCL12の操作Bにおいては、前操作が操作Aであり、後操作が操作Cである。
【0243】
そして、習慣性操作クラスタCL12の操作Cにおいては、前操作が操作Bであり、後操作が操作Dである。
【0244】
ここで、操作記憶実行制御部53は、図8の比較結果CL13に基づいて、習慣性操作クラスタ候補CL11、および習慣性操作クラスタCL12間における前操作と後操作の両方が異なる操作を順序可変操作として検出する。
【0245】
すなわち、図8の比較結果CL13においては、操作のうち操作Dは、前操作と後操作とが、いずれも異なるため、順序可変操作として検出されることになる。
【0246】
尚、操作A、および操作Cは、後操作は異なるが、前操作は同一である。また、操作Bについては、前操作が異なるが、後操作が同一である。従って、操作A、操作B、操作Cは、いずれも順序可変操作として検出されない。
【0247】
そこで、操作記憶実行制御部53は、検出した順序可変操作に基づいて、習慣性操作クラスタ候補CL11、および習慣性操作クラスタCL12を統合することで、図8で示されるような統合記憶クラスタCL14を生成して、習慣性操作/対話クラスタ記憶部55に登録する。
【0248】
すなわち、図8の統合記憶クラスタCL14においては、左から操作のうち、操作Aが、動画閲覧サイトへ遷移させる操作であり、操作Dが、音量を30に設定する操作であり、操作Bが、動画コンテンツZを選択する操作であり、操作Cが、再生ボタンをクリックする操作であることが記録される。
【0249】
また、このうち、操作Dについては、順序可変操作として検出されているので、可変範囲が設定される。
【0250】
図8の統合記憶クラスタCL14においては、操作Dが順序可変操作として検出されているので、操作Dは、図中の矢印で示されるように、前条件が、操作Aとされ、後条件が、終端とされる。
【0251】
すなわち、図8の統合記憶クラスタCL14の情報により、操作Dが、操作Aと終端操作との間になる可変範囲内であれば、順序を可変にすることが可能であることが記録される。
【0252】
尚、図8の統合記憶クラスタCL14においては、直近でなされた操作順序で登録される例が示されているが、登録済みの習慣性操作クラスタの操作順序で登録されるようにしてもよい。
【0253】
以上の処理により、登録済みの習慣性操作クラスタのうち、操作が同一であって、かつ、順序のみが異なる習慣性操作クラスタ候補については、登録済みの習慣性操作クラスタと統合されて、1つの習慣性操作クラスタ(統合記憶クラスタCL14)として登録される。
【0254】
この際、順序可変操作として認識された操作については、操作の順序を可変とすることができる可変範囲として設定されるようにすることができる。
【0255】
以上の処理により、習慣性操作クラスタが順次習慣性操作/対話クラスタ記憶部55に登録されることになるが、登録された習慣性操作クラスタについては、ユーザに提示して、習慣性操作クラスタを構成する複数の操作を一括して実行させたり、マクロとして登録させることで習慣性の高い複数の操作の実行が実現される。
【0256】
<対話クラスタ>
以上においては、習慣性操作に基づいた習慣性操作クラスタリング処理について説明してきたが、習慣性操作クラスタが生成された後、習慣性操作が変化することで、習慣性操作クラスタに削除、および追加、並びにEntityの変更等が、様々な変更が必要になることがある。
【0257】
そこで、習慣性操作に基づいて、クラスタを構成する一括して実行される複数の操作のうちの少なくとも一部の操作に、ユーザとの対話に基づいた操作が含まれるようにして、習慣性操作の変化に対応できるようにしたクラスタが対話クラスタである。
【0258】
より詳細には、操作記憶実行制御部53は、操作履歴から習慣性操作クラスタ内の以下の3種類の操作を変数とする対話クラスタを記憶し、対話クラスタに記憶されている変数操作の対話情報に基づいて対話生成を行ってクラスタを構成する操作を適宜変化させながら実行する。
【0259】
第1の操作は、操作種別(発話意図)(Intent)が同一で属性(Entity)が異なる操作である。操作種別(Intent)が同一で属性(Entity)が異なる操作について、操作記憶実行制御部53は、対応する操作がなされるときに対話をするか否かを示すフラグとして選択対話フラグfsを設定し、入力された複数のEntityを選択肢情報Isとして実行回数と共に対話クラスタに記憶する。
【0260】
また、操作記憶実行制御部53は、操作種別(Intent)が同一で属性(Entity)が異なる操作に係る対話クラスタを実行する際、選択対話フラグfsの設定に応じて、選択肢情報Isに基づいて、入力確率に基づいた選択肢を提示すると共に選択肢となるEntityの問い合わせ発話を行い、ユーザ応答に基づいて操作を実行すると共に、選択肢情報Isを更新する。
【0261】
第2の操作は、追加および削除された操作である。追加および削除された操作について、操作記憶実行制御部53は、確認対話フラグfaを設定し、実行回数を確認情報Iaとして対話クラスタに記憶する。
【0262】
また、操作記憶実行制御部53は、追加および削除された操作に係る対話クラスタを実行する際には、確認対話フラグfaの設定に応じて、操作の実行の可否の問い合わせ発話を行い、ユーザ応答により操作を実行すると共に、確認情報Iaを更新する。
【0263】
第3の操作は、観測コンテキストに依存する操作である。観測コンテキストに依存する操作について、操作記憶実行制御部53は、コンテキスト対話フラグfcを設定し、観測コンテキストと合致したEntityをコンテキスト情報Icとして対話クラスタに記憶する。
【0264】
また、操作記憶実行制御部53は、観測コンテキストに依存する操作に係る対話クラスタを実行する際には、コンテキスト対話フラグfcの設定に応じて、コンテキスト情報Icに基づき、観測コンテキストと合致しない場合にEntityの問い合わせ発話を行い、ユーザ応答により操作を実行すると共に、コンテキスト情報Icを更新する。
【0265】
(対話クラスタリング処理)
次に、対話クラスタを生成するための処理を説明するために、図9のフローチャートを参照して、対話クラスタリング処理について説明する。
【0266】
ステップS51において、操作記憶実行制御部53は、操作をカウントするカウンタnを1に初期化する。
【0267】
ステップS52において、操作記憶実行制御部53は、操作nのユーザ操作情報が供給されたか否かを判定し、供給されるまで、同様の処理を繰り返す。
【0268】
そして、ステップS52において、操作nのユーザ操作情報が供給された場合、処理は、ステップS53に進む。
【0269】
ステップS53において、操作記憶実行制御部53は、操作nのユーザ操作情報にタイムスタンプを付与して、ユーザ操作履歴としてユーザ操作履歴記憶部54に記憶させる。
【0270】
ステップS54において、操作記憶実行制御部53は、ユーザ操作履歴記憶部54に記憶されているユーザ操作履歴に基づいて、上述した式(1)乃至式(4)を参照して説明した演算により、操作nの習慣性スコアSnを算出する。
【0271】
ステップS55において、操作記憶実行制御部53は、操作nに対応する習慣性スコアSnが、習慣性閾値Sthよりも大きいか否かを判定する。
【0272】
ステップS55において、操作nに対応する習慣性スコアSnが、習慣性閾値Sthよりも大きいと判定された場合、操作nが習慣性の高い操作であるものとみなされて、処理は、ステップS56に進む。
【0273】
ステップS56において、操作記憶実行制御部53は、観測コンテキスト依存操作判定処理を実行し、操作nが観測コンテキストに依存する操作であるか否かを判定し、観測コンテキストに依存する操作であるときには、コンテキスト情報Icと、コンテキスト対話フラグfcとを設定する。
【0274】
尚、観測コンテキスト依存操作判定処理については、図19図20を参照して、詳細を後述する。
【0275】
ステップS57において、操作記憶実行制御部53は、操作nの1つ前の操作n-1の習慣性スコアSn-1が、習慣性閾値Sthよりも小さいか否かを判定する。
【0276】
ステップS57において、操作nの1つ前の操作n-1の習慣性スコアSn-1が、習慣性閾値Sthよりも小さい場合、処理は、ステップS58に進む。
【0277】
ステップS58において、操作記憶実行制御部53は、操作n-1を対話クラスタ候補に追加する。
【0278】
ステップS59において、操作記憶実行制御部53は、操作nを対話クラスタ候補に追加する。
【0279】
ステップS60において、操作記憶実行制御部53は、処理の終了が指示されたか否かを判定し、終了が指示された場合、処理が終了する。
【0280】
また、ステップS60において、終了が指示されていない場合、処理は、ステップS61に進む。
【0281】
ステップS61において、操作記憶実行制御部53は、カウンタnを1インクリメントして、処理は、ステップS52に戻る。
【0282】
すなわち、対話クラスタリング処理の終了が指示されるまで、習慣性スコアSnが習慣性閾値Sthよりも高い操作nが複数になる(繰り返される)と、ステップS52乃至S61の処理が繰り返されて、カウンタnが順次1ずつインクリメントされ、対話クラスタ候補の操作が追加され続ける。
【0283】
また、対話クラスタを構成する操作の先頭の操作は、習慣性スコアSnが習慣性閾値Sthよりも高くなる操作の直前の操作であるので、ステップS57の処理により操作nの直前の操作n-1の習慣性スコアSn-1が習慣性閾値Sthよりも低いときには、ステップS58の処理により、操作nの1つ前の操作n-1が対話クラスタ候補の先頭操作として含まれるようにする。
【0284】
従って、対話クラスタ候補を構成する操作のうち、先頭以外の操作については、習慣性スコアSnが習慣性閾値Sthよりも大きくなるので、ステップS57においては、習慣性スコアSnが習慣性閾値Sthよりも小さくはならない。このため、ステップS58の処理がスキップされる。
【0285】
さらに、ステップS55において、操作nに対応する習慣性スコアSnが、習慣性閾値Sthよりも大きくないと判定された場合、操作nは習慣性の高い操作ではないものとみなされて、処理は、ステップS62に進む。
【0286】
ステップS62において、操作記憶実行制御部53は、Intentが同一でEntityが異なる操作判定処理を実行し、操作nが、Intentが同一でEntityが異なる操作であるか否かを判定し、Intentが同一でEntityが異なる操作であるときには、選択対話フラグfsと、選択肢情報Isとを設定する。
【0287】
尚、Intentが同一でEntityが異なる操作判定処理については、図10図11を参照して詳細を後述する。
【0288】
ステップS63において、操作記憶実行制御部53は、操作nの選択対話フラグfsが、trueに設定されているか否かを判定する。
【0289】
ステップS63において、操作nの選択対話フラグfsが、trueに設定されていると判定された場合、処理は、ステップS59に進む。
【0290】
また、ステップS63において、操作nの選択対話フラグfsが、trueに設定されていないと判定された場合、処理は、ステップS64に進む。
【0291】
ステップS64において、操作記憶実行制御部53は、追加および削除された操作判定処理を実行し、操作nが、追加された操作および削除された操作のいずれかであるか否かを判定し、追加された操作および削除された操作のいずれかであるときには、確認対話フラグfaと、確認情報Iaとを設定し、さらに、必要に応じてダミー対話フラグfdを設定する。
【0292】
尚、追加および削除された操作判定処理については、図14乃至図16を参照して詳細を後述する。
【0293】
ステップS65において、操作記憶実行制御部53は、操作nの確認対話フラグfaが、trueに設定されているか否かを判定する。
【0294】
ステップS65において、操作nの確認対話フラグfaが、trueに設定されていると判定された場合、処理は、ステップS59に進む。
【0295】
また、ステップS65において、操作nの確認対話フラグfaが、trueに設定されていないと判定された場合、処理は、ステップS66に進む。
【0296】
ステップS66において、操作記憶実行制御部53は、操作nのタミー対話フラグfdが、trueに設定されているか否かを判定する。
【0297】
ステップS66において、操作nのダミー対話フラグfdが、trueに設定されていると判定された場合、処理は、ステップS59に進む。
【0298】
また、ステップS66において、操作nのダミー対話フラグfdが、trueに設定されていないと判定された場合、処理は、ステップS67に進む。
【0299】
ステップS67において、操作記憶実行制御部53は、1つ前の操作n-1の習慣性スコアSn-1は、習慣性閾値Sthよりも大きいか、または、選択対話フラグfs、確認対話フラグfa、コンテキスト対話フラグfc、およびダミー対話フラグfdのいずれかがtrueであるか否かを判定する。
【0300】
ステップS67において、操作n-1の習慣性スコアSn-1が、習慣性閾値Sthよりも大きい、または、選択対話フラグfs、確認対話フラグfa、コンテキスト対話フラグfc、およびダミー対話フラグfdのいずれかがtrueであるとみなされた場合、直前までの操作は、対話クラスタ候補に含まれる操作の一部であるものとみなされて、処理は、ステップS68に進む。
【0301】
尚、ステップS67において、操作n-1の習慣性スコアSn-1が、習慣性閾値Sthよりも大きくなく、かつ、選択対話フラグfs、確認対話フラグfa、コンテキスト対話フラグfc、およびダミー対話フラグfdのいずれかもtrueではないとみなされた場合、直前の操作は、対話クラスタ候補には含まれない操作であるものとみなされて、処理は、ステップS60に進む。
【0302】
ステップS68において、操作記憶実行制御部53は、直前までの操作により構成される対話クラスタ候補に含まれる操作が2以下であるか否かを判定する。
【0303】
対話クラスタは、3以上であることを前提とするので、ステップS68において、直前までの操作により構成される対話クラスタ候補に含まれる操作が2以下である場合、対話クラスタが構成されていないものとみなされて、処理は、ステップS69に進む。
【0304】
そして、ステップS69において、操作記憶実行制御部53は、対話クラスタ候補として記憶していた操作の情報をクリアして、処理は、ステップS60に進む。
【0305】
また、ステップS68において、直前までの操作により構成される対話クラスタ候補に含まれる操作が2以下はない場合、すなわち、対話クラスタ候補に3以上の操作が含まれているものとみなされるので、処理は、ステップS70に進む。
【0306】
ステップS70において、操作記憶実行制御部53は、習慣性操作/対話クラスタ記憶部55に記憶されている対話クラスタ候補に、選択対話フラグfs、確認対話フラグfa、コンテキスト対話フラグfc、およびダミー対話フラグfdのいずれかがtrueに設定された操作が含まれているか否かを判定する。
【0307】
ステップS70において、習慣性操作/対話クラスタ記憶部55に記憶されている対話クラスタ候補に、選択対話フラグfs、確認対話フラグfa、コンテキスト対話フラグfc、およびダミー対話フラグfdのいずれかがtrueに設定された操作が含まれていない場合、処理は、ステップS69に進む。
【0308】
すなわち、この場合、対話クラスタとして登録する必要がないので、記憶されている対話クラスタ候補の情報がクリアされる。
【0309】
また、ステップS70において、習慣性操作/対話クラスタ記憶部55に記憶されている対話クラスタ候補に、選択対話フラグfs、確認対話フラグfa、コンテキスト対話フラグfc、およびダミー対話フラグfdのいずれかがtrueに設定された操作が含まれていると判定された場合、処理は、ステップS71に進む。
【0310】
ステップS71において、操作記憶実行制御部53は、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みの習慣性操作クラスタおよび対話クラスタの両方のクラスタ(以下、単に、登録済みのクラスタと称する)のうち、現在処理中の対話クラスタ候補に含まれる操作が同一で、かつ、同一シーケンス(その順序が同一)となる完全同一のものがないか否かを判定する。
【0311】
すなわち、対話クラスタ候補が、習慣性操作/対話クラスタ記憶部55に既に登録されているクラスタと完全同一である場合には、コンテキスト情報Icを更新する必要があるので、完全同一のもの有無が判定される。
【0312】
ステップS71において、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みのクラスタに、現在処理中の対話クラスタ候補と完全同一のものがある場合、処理は、ステップS72に進む。
【0313】
ステップS72において、操作記憶実行制御部53は、対話クラスタ候補のコンテキスト情報更新処理を実行し、対話クラスタ候補のコンテキスト情報Icを更新する。
【0314】
尚、対話クラスタ候補のコンテキスト情報更新処理については、図21を参照して詳細を後述する。
【0315】
また、ステップS71において、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みのクラスタに、現在処理中の対話クラスタ候補と完全同一のものがない場合、ステップS72の処理がスキップされて、処理は、ステップS73に進む。
【0316】
ステップS73において、操作記憶実行制御部53は、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みのクラスタのうち、現在処理中の対話クラスタ候補のシーケンスで包含されるものがないか否かを判定する。
【0317】
ステップS73において、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みのクラスタのうち、現在処理中の対話クラスタ候補のシーケンスで包含されるものがあると判定された場合、処理は、ステップS74に進む。
【0318】
ステップS74において、操作記憶実行制御部53は、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みのクラスタのうち、現在処理中の対話クラスタ候補のシーケンスで包含される登録済みのクラスタを削除する。
【0319】
また、ステップS73において、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みのクラスタのうち、現在処理中の対話クラスタ候補のシーケンスで包含されるものがないと判定された場合、ステップS74の処理がスキップされて、処理は、ステップS75に進む。
【0320】
ステップS75において、操作記憶実行制御部53は、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みのクラスタのうち、現在処理中の対話クラスタで置き換え可能なものがないか否かを判定する。
【0321】
ステップS75において、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みのクラスタのうち、現在処理中の対話クラスタで置き換え可能なものがあると判定された場合、処理は、ステップS76に進む。
【0322】
ステップS76において、操作記憶実行制御部53は、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みの対話クラスタのうち、現在処理中の対話クラスタ候補の対話で置き換え可能な登録済みのクラスタを削除する。
【0323】
また、ステップS75において、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みのクラスタのうち、現在処理中の対話クラスタで置き換え可能なものがないと判定された場合、ステップS76の処理がスキップされて、処理は、ステップS77に進む。
【0324】
ステップS77において、操作記憶実行制御部53は、現在処理中の対話クラスタ候補の操作を、新規の対話クラスタとして習慣性操作/対話クラスタ記憶部55に登録する。
【0325】
すなわち、習慣性操作/対話クラスタ記憶部55に記憶されている既に登録済みのクラスタのうち、現在処理中の対話クラスタ候補に含まれる操作と同一シーケンスのものについては、コンテキスト情報が更新され、現在処理中の対話クラスタ候補に含まれる操作を包含するものや、置き換え可能なものについては、削除され、それ以外の現在処理中の対話クラスタ候補は、新たな複数の操作からなる対話クラスタとみなされるので、習慣性操作/対話クラスタ記憶部55に登録される。
【0326】
以上の処理により、新たな操作nが受け付けられると、順次、習慣性スコアSnが求められて、習慣性閾値Sthとの比較により、対話クラスタ候補が設定される。
【0327】
また、対話クラスタ候補と、既に登録済みのクラスタとの、それぞれを構成する操作との比較により、登録済みのクラスタとは、全く異なる操作からなる対話クラスタ候補については、新規の対話クラスタとして登録される。
【0328】
これにより、習慣性スコアが高く、ユーザの操作としての習慣性が高い複数の操作であって、対話フラグがtrueに設定された操作を含む対話クラスタ候補を、対話クラスタとして順次登録することが可能となる。
【0329】
尚、登録された対話クラスタについては、時間の経過と共に習慣性に乖離が生じる可能性があるので、所定期間以上登録されたままの対話クラスタについては、削除するようにしてもよい。
【0330】
<操作種別(Intent)が同一で属性(Entity)が異なる操作>
次に、図10を参照して、操作種別(Intent)が同一で属性(Entity)が異なる操作について説明する。尚、以降において、操作種別、および属性については、それぞれ単にIntentおよびEntityとも称する。
【0331】
上述した習慣性操作クラスタリング処理により、例えば、図10の左部で示される状態ST101で示される操作1乃至8からなる習慣性操作クラスタが生成されて、実行される場合について考える。
【0332】
状態ST101においては、操作1が、路線情報サイトに遷移させる操作であり、操作2が、乗換案内のページに遷移させる操作であり、操作3が、出発駅に”大崎”を入力する操作であり、操作4が、到着駅に”本厚木”を入力する操作であり、操作5が、日時条件として”出発”を選択する操作であり、操作6が、有料特急使用の条件にチェックを入れる操作であり、操作7が、表示条件として到着が速い順を選択する操作であり、操作8が、検索ボタンをクリックする操作であるものとする。
【0333】
ここで、図10の左部の状態ST101で示される、操作1乃至8からなる習慣性操作クラスタが一括実行される場合に、例えば、図10の中央部の状態ST102で示されるように、操作4に代えて、操作4’がなされて、到着駅として”本厚木”に代えて”藤沢”を入力する操作がなされたものとする。
【0334】
このような場合、習慣性操作クラスタリング処理のみの場合、操作1乃至3までのクラスタと、操作5乃至8までのクラスタとが個別に習慣性操作クラスタとして登録されることになる。すなわち、実質的に、状態ST101の習慣性操作クラスタが分割されて登録されてしまうことになり、一括実行することができない。
【0335】
ここで、操作4と操作4’とは、”到着駅入力”という同一のIntent(操作種別)であり、到着駅の駅名がそれぞれ”本厚木”と”藤沢”でありEntity(属性)が異なる操作である。
【0336】
そこで、操作記憶実行制御部53は、図10の右部の状態ST103で示されるように、操作4に対して同一のIntentである「到着駅入力」を設定したうえで、選択対話フラグfsと、選択肢情報Isとを設定する。
【0337】
選択対話フラグfsとは、例えば、習慣性操作クラスタにより設定された一括操作される操作のうち、Intentが同一でEntityが異なる操作がなされた場合に、ユーザに対して対話により操作の選択肢を提示して、選択させる処理を実現させるか否かを設定するフラグである。
【0338】
より具体的には、選択対話フラグfsは、対話により操作の選択肢を提示してユーザに選択させる処理を実現させるときtrueが設定され、そうではないときfalseが設定される。
【0339】
例えば、図10の状態ST101で示される習慣性操作クラスタに対して、状態ST102で示されるように、操作4に代えて操作4’で示されるような、Intentが同一でEntityが異なる操作がなされるとき、選択対話フラグfsは、図10の状態ST103における操作4で示されるように設定される。
【0340】
ここで、選択肢情報Isは、選択対話フラグfsがtrueに設定されるとき、具体的にユーザに提示される選択肢の情報であり、選択肢と、選択肢のそれぞれが選択された回数および選択肢が選択された合計回数の情報が登録される。
【0341】
より具体的には、図10の状態ST103においては、選択肢情報Isとして”Total:2,本厚木:1,藤沢:1”とがそれぞれ初期値で登録されたときの状態が示されており、選択肢として本厚木と藤沢があり、それぞれが1回ずつ、合計2回選択されていることが示されている。尚、合計回数は初期値として2が設定される。
【0342】
図10の状態ST103の場合、選択肢として、本厚木と藤沢が設定されているが、選択肢として提示される際には、それぞれの入力確率が計算されて、入力確率が高い順に提示され、同率であるときには、直近で選択された選択肢から提示される。ここで、入力確率は、選択肢が選択された回数を合計回数で除したものであり、図10の状態ST103の場合、選択肢である本厚木と藤沢は、いずれも入力確率が0.5(=1/2)とされる。
【0343】
<Intentが同一でEntityが異なる操作判定処理>
次に、図11のフローチャートを参照して、Intentが同一でEntityが異なる操作判定処理について説明する。尚、図11のフローチャートにおけるIntentが同一でEntityが異なる操作判定処理は、図9のフローチャートにおけるステップS62の処理である。
【0344】
ステップS101において、操作記憶実行制御部53は、対話クラスタ候補に格納されている操作の数は、1以上であるか否かを判定する。
【0345】
ステップS101において、対話クラスタ候補に格納されている操作の数は、1以上であると判定された場合、処理は、ステップS102に進む。
【0346】
ステップS102において、操作記憶実行制御部53は、習慣性操作/対話クラスタ記憶部55に記憶済みのクラスタ内に、対話クラスタ候補とシーケンスが前方一致する、記憶済みのクラスタが存在するか否かを判定する。
【0347】
ステップS102において、習慣性操作/対話クラスタ記憶部55に記憶済みの対話クラスタ内に、対話クラスタ候補とシーケンスが前方一致する、記憶済みのクラスタが存在すると判定された場合、処理は、ステップS103に進む。
【0348】
ステップS103において、操作記憶実行制御部53は、対話クラスタ候補とシーケンスが前方一致する、記憶済みのクラスタの一致直後の操作Mnは、操作nとIntentが一致するか否かを判定する。
【0349】
ステップS103において、対話クラスタ候補とシーケンスが前方一致する記憶済みのクラスタの一致直後の操作MnのIntentが、操作nのIntentと一致する場合、処理は、ステップS104に進む。
【0350】
ステップS104において、操作記憶実行制御部53は、操作Mnに選択対話フラグfsが設定されて、選択対話フラグfsがtrueに設定されているか否か、すなわち、選択肢情報Isが設定されているか否かを判定する。
【0351】
ステップS104において、選択対話フラグfsがtrueに設定されており、選択肢情報Isが設定されているとみなされた場合、処理は、ステップS105に進む。
【0352】
ステップS105において、操作記憶実行制御部53は、前方一致する記憶済みのクラスタの操作Mnの選択肢情報Isに操作nのEntity情報を反映したデータを操作nの"選択肢情報Isとして設定する。
【0353】
ステップS106において、操作記憶実行制御部53は、操作nに選択対話フラグfsを設定し、さらに、選択対話フラグfsをtrueに設定する。
【0354】
また、ステップS104において、選択対話フラグfsが設定されていない、または、falseに設定されており、選択肢情報Isが設定されていないとみなされた場合、処理は、ステップS107に進む。
【0355】
ステップS107において、操作記憶実行制御部53は、対話クラスタ候補とシーケンスが前方一致する対話クラスタの一致直後の操作Mnは、操作nとEntityが異なるか否かを判定する。
【0356】
ステップS107において、対話クラスタ候補とシーケンスが前方一致する対話クラスタの一致直後の操作MnのEntityが、操作nのEntityと異なる場合、処理は、ステップS108に進む。
【0357】
ステップS108において、操作記憶実行制御部53は、操作nの選択肢情報Isの選択回数の初期値として1を設定する。
【0358】
また、ステップS101において、対話クラスタ候補に格納されている操作の数が、1以上ではないと判定された場合、ステップS102において、習慣性操作/対話クラスタ記憶部55に記憶済みのクラスタ内に、対話クラスタ候補とシーケンスが前方一致する対話クラスタが存在しないと判定された場合、ステップS103において、対話クラスタ候補とシーケンスが前方一致する記憶済みのクラスタの一致直後の操作MnのIntentが、操作nのIntentと一致しない場合、または、ステップS107において、対話クラスタ候補とシーケンスが前方一致する記憶済みのクラスタの一致直後の操作MnのEntityが、操作nのEntityと同一である場合、処理は、終了する。
【0359】
以上の処理により、ユーザの操作nが、Intentが同一でEntityが異なる操作であるか否かが判定されて、Intentが同一でEntityが異なる操作である場合には、初回において、選択対話フラグfsがtrueに設定されて、選択肢情報Isが初期値で設定され、以降においては、新たな操作nに応じた選択肢情報Isが順次設定される。
【0360】
<Intentが同一でEntityが異なる操作に対する対話生成事例>
次に、図12を参照して、Intentが同一でEntityが異なる操作に対する対話生成事例について説明する。
【0361】
例えば、図12で示されるような状態ST111で示されるような対話クラスタが設定された場合について考える。尚、状態ST111の対話クラスタについては、図10の状態ST103と同一の対話クラスタである。
【0362】
図12の左部における操作4においては、選択対話フラグfsがtrueに設定されているため、対話クラスタによる対話が生成される処理がなされる状態に設定されている。
【0363】
ここで、例えば、図12の右部で示されるように、処理SC101において、ユーザ11により「乗り換え案内」といった発話がなされると、操作記憶実行制御部53は、乗り換え案内に係る図12の左部で示される対話クラスタを実行する指示がなされたものと認識する。
【0364】
処理Ex101において、操作記憶実行制御部53は、「乗り換え案内」との発話に応じて、図12の状態ST111で示される操作1乃至3の操作を実行する。
【0365】
処理Ex102において、操作記憶実行制御部53は、操作4の処理を実行して、選択対話フラグfsがtrueに設定されているので、選択肢情報Isに従って、入力確率が高い順に選択肢を提示する。ここでは、本厚木も、藤沢も入力確率が0.5であるため、例えば、直近の入力結果を入力確率が高い選択肢とみなされて提示されるようにしてもよい。
【0366】
処理Ex103において、操作記憶実行制御部53は、「到着地はどこですか?」といった提示した選択肢の選択を促す音声を出力する。
【0367】
ここで、処理SC102において、ユーザにより「本厚木」といった発話がなされると、操作記憶実行制御部53は、選択肢として「本厚木」が選択されたことを認識する。
【0368】
処理Ex104において、操作記憶実行制御部53は、到着駅に本厚木を入力して選択肢情報Isを更新すると共に、状態ST111の操作5乃至8を実行する。
【0369】
このような一連の処理により、習慣性操作に変化が生じて、Intentが同一でEntityが異なる操作がなされるときには、Entityを選択肢とする問い合わせの対話が提示され、選択結果に応じた処理が実行される。
【0370】
結果として、習慣性操作に変化が生じても習慣性操作クラスタに対して対話クラスタが設定されて、柔軟な対応が可能となる。
【0371】
<Intentが同一でEntityが異なる操作に対する対話処理>
次に、図13のフローチャートを参照して、Intentが同一でEntityが異なる操作に対する対話処理について説明する。
【0372】
尚、この処理は、Intentが同一でEntityが異なる操作であって、選択対話フラグfsがtrueに設定された操作がなされるとき実行される。すなわち、図12の状態ST111における操作4の処理がなされるときに実行される処理である。
【0373】
ステップS131において、操作記憶実行制御部53は、選択肢情報Isに含まれるEntityを入力確率が高い順に選択肢として表示(提示)する。図12の場合、本厚木と藤沢が選択肢として提示されるが、入力確率が同一であるので、例えば、直近に入力された選択肢が入力確率が高い選択肢として先に提示されるようにしてもよい。
【0374】
ステップS132において、操作記憶実行制御部53は、Intent毎に予め登録されている問い合わせフレーズに基づいて、ユーザに選択肢に対する選択(応答)を促すシステム発話を出力する。
【0375】
より詳細には、操作記憶実行制御部53は、応答生成部63を制御して、Intent毎に予め登録されている問い合わせフレーズに基づいて、ユーザに選択肢に対する選択(応答)を促すシステム発話を生成させて、データとして音声合成処理部65に出力させる。音声合成処理部65は、システム発話のデータに、音声合成処理を施し、音声出力部67より音声として出力させる。
【0376】
尚、システム発話の音声出力に係る処理は同様であるので、以降においては、説明を省略する。
【0377】
ステップS133において、操作記憶実行制御部53は、選択肢に対するユーザの選択結果である応答発話があったか否かを判定し、応答発話があったと判定されるまで、同様の処理を繰り返す。
【0378】
より詳細には、操作記憶実行制御部53は、音声入力部56を介して入力されたユーザ発話に対応する音声信号が、音声認識処理部57により音声認識処理されて、テキスト化されたユーザの発話フレーズに基づいて、応答発話があったか否かを判定し、応答発話があったと判定されるまで、同様の処理を繰り返す。
【0379】
尚、ユーザの発話に係る処理は同様であるので、以降においては、説明を省略する。
【0380】
そして、ステップS133において、選択肢に対するユーザの選択結果である応答発話があったとみなされた場合、処理は、ステップS134に進む。
【0381】
ステップS134において、操作記憶実行制御部53は、応答発話に対応する選択肢のEntityにより操作(操作4)を実行する。
【0382】
ステップS135において、操作記憶実行制御部53は、ユーザの応答発話が、選択肢情報Isに含まれるEntityであるか否かを判定する。
【0383】
ステップS135において、ユーザの応答発話が、選択肢情報Isに含まれるEntityであると判定された場合、処理は、ステップS136に進む。
【0384】
ステップS136において、操作記憶実行制御部53は、選択肢情報Isに含まれる応答発話により選択されたEntityの回数を1インクリメントする。
【0385】
一方、ステップS135において、ユーザの応答発話が、選択肢情報Isに含まれないEntityであると判定された場合、処理は、ステップS137に進む。
【0386】
ステップS137において、操作記憶実行制御部53は、選択肢情報Is内に、応答発話により新たに選択されたEntityを新規追加して登録し、回数を初期値である1に設定する。
【0387】
ステップS138において、操作記憶実行制御部53は、選択肢情報Isにおける合計回数(total回数)の情報を1インクリメントする。
【0388】
ステップS139において、操作記憶実行制御部53は、選択肢情報IsにおけるEntityの中で入力確率が規定値以上のEntityがあるか否かを判定する。
【0389】
ステップS139において、選択肢情報IsにおけるEntityの中で入力確率が規定値以上のEntityがある場合、処理は、ステップS140に進む。
【0390】
ステップS140において、操作記憶実行制御部53は、選択対話フラグfsをfalseに設定すると共に、入力確率が規定値以上のEntityに固定する操作に設定し、処理を終了する。
【0391】
ステップS139において、選択肢情報IsにおけるEntityの中で入力確率が規定値以上のEntityがない場合、ステップS140の処理をスキップして、処理を終了する。
【0392】
以上の一連の処理により、選択対話フラグfsがtrueに設定された操作については、選択肢情報IsにおけるEntityを入力確率順に選択肢として提示して選択を促し、選択されたEntityにより処理を実行する。
【0393】
そして、選択されたEntityについては、回数が1インクリメントされ、合計回数(total回数)が1インクリメントされる。このとき、選択肢として提示したEntity以外の新規のEntityが選択された場合については、新たに選択肢として登録すると共に回数が1に設定される。
【0394】
さらに、Entityの入力確率が順次計算されて、規定値以上になった場合については、ユーザが、Entityとして入力確率が規定値以上となる選択肢が常に選択されるものとみなされて、選択対話フラグfsがfalseに設定されて、常に選択される入力確率が規定値以上のEntityに固定された操作がなされるように設定される。
【0395】
すなわち、このようにEntityが固定された操作になると、以降においては、対話がなされることのない、通常の習慣性操作クラスタとして機能し、習慣性操作の変化に対応した複数の操作が一括実行されることになる。
【0396】
結果として、習慣性操作に変化が生じても対話クラスタが設定されて、選択肢の選択が促されるような対話処理がなされるようになり、さらに、入力確率に基づいて、所定のEntityが繰り返し選択されて、規定値以上になると所定のEntityに固定された操作がなされることになり、柔軟な対応が可能となる。
【0397】
<追加および削除された操作>
(追加された操作)
次に、図14を参照して、追加された操作について説明する。
【0398】
上述した習慣性操作クラスタリング処理により、例えば、図14の左部で示される状態ST131で示される操作1乃至8からなる習慣性操作クラスタが生成されて、実行される場合について考える。尚、状態ST131は、図10の状態ST101と同一である。
【0399】
ここで、図14の左部の状態ST131で示される、操作1乃至8からなる習慣性操作クラスタが一括実行される場合に、例えば、図14の中央部の状態ST132で示されるように、操作4,5の間に、操作4’がなされて、経由地に”横浜”を入力する操作がなされたものとする。
【0400】
このような場合、習慣性操作クラスタリング処理のみの場合、操作4’と操作5は、いずれも習慣性スコアSnは、習慣性閾値Sthよりも小さいが、時間間隔Tnが閾値Tthよりも短いときには、対話クラスタとみなし、操作記憶実行制御部53は、図14の右部の状態ST133で示されるように、操作4’を操作5に設定した上で、以降の操作を1ずつ繰り上げて、さらに、操作5を「経由駅に”横浜”を入力」に設定したうえで、確認対話フラグfaと、確認情報Iaとを設定する。
【0401】
確認対話フラグfaとは、例えば、習慣性操作クラスタにより設定された一括操作される操作に追加する操作がなされた場合に、ユーザに対して対話により追加された操作の実行を選択するか否かを設定するフラグである。
【0402】
より具体的には、確認対話フラグfaは、対話により追加操作を提示してユーザに実行させるか否かを問い合わせるときtrueが設定され、そうではないときfalseが設定される。
【0403】
例えば、図14の状態ST131で示される習慣性操作クラスタに対して、状態ST132で示されるように、操作4,5の間に操作4’で示されるような操作がなされるとき、選択対話フラグfaは、操作4’に代わる操作5に対して設定される。
【0404】
確認情報Iaは、確認対話フラグfaがtrueに設定されるとき、具体的にユーザの入力確率を計算するための情報であり、実行が指示された回数および合計回数(total回数)の情報が登録される。尚、合計回数については、初期値が2とされ、初期設定においても実行確率が0.5となるように設定される。
【0405】
より具体的には、図14においては、確認情報Iaとして”Total:2,exec:1”と登録されており、確認回数の合計が2回であり、実行指示が1回選択されていることが示されている。
【0406】
すなわち、図14の場合、実行が指示される実行確率が0.5に計算される。
【0407】
(削除された操作)
次に、図15を参照して、削除された操作について説明する。
【0408】
ここで、図15の左部の状態ST131(図14と同一)で示される、操作1乃至8からなる習慣性操作クラスタが一括実行される場合に、例えば、図15の中央部の状態ST141で示されるように、操作6である「有料特急使用の条件にチェックを入れる」の操作が削除されたものとする。
【0409】
このような場合、習慣性操作クラスタリング処理のみの場合、操作6は、習慣性スコアSnが、習慣性閾値Sthよりも小さいが、時間間隔Tnが閾値Tthよりも短いときには、対話クラスタとしてみなし、操作記憶実行制御部53は、図15の右部の状態ST142で示されるように、操作6を「有料特急使用の条件にチェックを入れる」に設定したうえで、確認対話フラグfaと、確認情報Iaとを設定する。
【0410】
例えば、図15の状態ST131で示される習慣性操作クラスタに対して、状態ST141で示されるように、操作6が削除されるとき、操作記憶実行制御部53は、図15の状態ST142で示されるように、操作6に対して確認対話フラグfaを設定する。
【0411】
また、図15の状態ST142においては、確認情報Iaとして”Total:2,exec:1”と登録されており、確認回数の合計が2回であり、実行指示が1回選択されていることが示されている。
【0412】
すなわち、図15の状態ST142の場合、実行が指示される実行確率が0.5に計算される。
【0413】
<追加および削除された操作判定処理>
次に、図16のフローチャートを参照して、追加および削除された操作判定処理について説明する。尚、図16のフローチャートにおける追加および削除された操作判定処理は、図9のフローチャートにおけるステップS64の処理である。
【0414】
ステップS161において、操作記憶実行制御部53は、操作nの時間間隔Tnは、所定の閾値Tth以上であるか、すなわち、時間間隔が閾値より短いか否かを判定する。
【0415】
ステップS161において、操作nの時間間隔Tnは、所定の閾値Tth以上である場合、処理は、ステップS162に進む。
【0416】
ステップS162において、操作記憶実行制御部53は、対話クラスタ候補に格納されている操作の数は、1以上であるか否かを判定する。
【0417】
ステップS162において、対話クラスタ候補に格納されている操作の数は、1以上であると判定された場合、処理は、ステップS163に進む。
【0418】
ステップS163において、操作記憶実行制御部53は、習慣性操作/対話クラスタ記憶部55に記憶済みのクラスタ内に、対話クラスタ候補とシーケンスが前方一致する記憶済みのクラスタが存在するか否かを判定する。
【0419】
ステップS163において、習慣性操作/対話クラスタ記憶部55に記憶済みのクラスタ内に、対話クラスタ候補とシーケンスが前方一致する記憶済みのクラスタが存在すると判定された場合、処理は、ステップS164に進む。
【0420】
ステップS164において、操作記憶実行制御部53は、対話クラスタ候補とシーケンスが前方一致する記憶済みのクラスタの一致直後の操作Mn以降に、操作nと同一の操作がないか否か、すなわち、操作nが追加操作であるか否かを判定する。
【0421】
ステップS164において、対話クラスタ候補とシーケンスが前方一致する記憶済みのクラスタの一致直後の操作Mn以降に、操作nと同一の操作がない、すなわち、操作nが追加操作であると判定された場合、処理は、ステップS165に進む。
【0422】
ステップS165において、操作記憶実行制御部53は、操作nに確認情報Iaを設定すると共に、初期値を設定する。
【0423】
ステップS166において、操作記憶実行制御部53は、操作nに確認対話フラグfaを設定し、さらに、確認対話フラグfaをtrueに設定する。
【0424】
また、ステップS164において、対話クラスタ候補とシーケンスが前方一致する記憶済みのクラスタの一致直後の操作Mn以降に、操作nと同一の操作があり、すなわち、操作nが追加操作ではないと判定された場合、処理は、ステップS167に進む。
【0425】
ステップS167において、操作記憶実行制御部53は、対話クラスタ候補とシーケンスが前方一致する記憶済みのクラスタの一致直後の操作Mnが、操作nと同一であるか否か、すなわち、削除操作であるか否かを判定する。
【0426】
ステップS167において、対話クラスタ候補とシーケンスが前方一致する記憶済みのクラスタの一致直後の操作Mnが、操作nと同一であり、削除操作ではないとみなされた場合、処理は、ステップS168に進む。
【0427】
ステップS168において、操作記憶実行制御部53は、操作Mnに確認対話フラグfaが設定されて、確認対話フラグfaがtrueに設定されているか否か、すなわち、確認情報Iaが設定されているか否かを判定する。
【0428】
ステップS168において、操作Mnに確認対話フラグfaが設定されて、確認対話フラグfaがtrueに設定されており、すなわち、確認情報Iaが設定されているとみなされた場合、処理は、ステップS169に進む。
【0429】
ステップS169において、操作記憶実行制御部53は、前方一致する記憶済みのクラスタの操作Mnの確認情報Iaに操作nの実行情報を反映したデータを、操作nの確認情報Iaに設定し、処理は、ステップS166に戻る。すなわち、ここでは、確認情報Iaのみが更新される。
【0430】
一方、ステップS167において、対話クラスタ候補とシーケンスが前方一致する記憶済みのクラスタの一致直後の操作Mnが、操作nと同一ではなく、削除操作であるとみなされた場合、処理は、ステップS170に進む。
【0431】
ステップS170において、操作記憶実行制御部53は、前方一致する記憶済みのクラスタの操作Mnから操作nと同一の操作の直前の操作までを削除操作配列Adとして習慣操作性/対話クラスタ記憶部55に格納する。
【0432】
ステップS171において、操作記憶実行制御部53は、習慣操作性/対話クラスタ記憶部55に削除操作配列Adとして格納されている操作数は所定の閾値(例えば、3個)以下であるか否かを判定する。
【0433】
すなわち、削除される操作数が多すぎる場合、同一の習慣性操作クラスタとして扱うことができなくなるので、削除操作配列Adとして格納されている操作数に所定の閾値が設定されている。
【0434】
尚、削除操作配列Adに格納されている操作数に対して設定される所定の閾値については任意に設定できるようにしてもよい。
【0435】
ステップS171において、削除操作配列Adとして格納されている操作数が所定の閾値(例えば、3個)以下である場合、処理は、ステップS172に進む。
【0436】
ステップS172において、操作記憶実行制御部53は、削除操作配列Adとして格納されている全操作に確認情報Iaの初期値を設定すると共に、確認対話フラグfaをtrueに設定して、対話クラスタ候補として習慣操作性/対話クラスタ記憶部55に記憶させる。
【0437】
ステップS173において、操作記憶実行制御部53は、操作nに対して、ダミー対話フラグfdを設定し、ダミー対話フラグfdをtrueに設定する。
【0438】
一方、ステップS168において、操作Mnの確認対話フラグfaがfalseに設定されており、すなわち、確認情報Iaが設定されていないとみなされた場合、処理は、ステップS173に進む。
【0439】
また、ステップS161において、操作nの時間間隔Tnは、所定の閾値Tth以上ではない場合、ステップS162において、対話クラスタ候補に格納されている操作の数は、1以上ではないと判定された場合、ステップS163において、習慣性操作/対話クラスタ記憶部55に記憶済みのクラスタ内に、対話クラスタ候補とシーケンスが前方一致する記憶済みのクラスタが存在しないと判定された場合、または、ステップS171において、削除操作配列Adとして格納されている操作数が所定の閾値(例えば、3個)以下ではない場合、処理は、終了する。
【0440】
以上の処理により、ユーザの操作nが、追加操作であるか否か、または、削除操作であるか否かが判定されて、追加操作、または、削除操作である場合には、確認対話フラグfaがtrueに設定されて、確認情報Iaが初期値で設定され、以降においては、新たな操作nに応じた確認情報Iaが順次設定される。
【0441】
尚、ダミー対話フラグfdは、習慣性スコアSnが閾値Sthより低いが、対話クラスタ候補に含めるべき操作を、図9のフローチャートを参照して説明した対話クラスタリング処理におけるステップS62乃至S66の処理から、ステップS59の処理に遷移させることで、対話クラスタ候補に追加させるためのフラグである。
【0442】
すなわち、ダミー対話フラグfdは、対話クラスタ候補に追加することを目的とした対話フラグであるため、ダミー対話フラグfdがtrueである操作については、実行時においても、ユーザに対して対話がなされない。
【0443】
例えば、図10の状態ST103の操作5は、Entityが異なる操作4の直後なので、遷移回数Fnおよび遷移確率Pnが低いため習慣性スコアSnは閾値Sthより低くなるが、対話クラスタ候補に含めるべき操作であるので、ダミー対話フラグfdがtrueにされる。
【0444】
すなわち、図10の状態ST103の操作5は、図16のフローチャートにおけるステップS168において、前方一致クラスタの操作Mnの確認対話フラグfaがtrueではないので、処理がステップS173に進み、ダミー対話フラグfdがtrueとされる。
【0445】
これにより、図9のフローチャートにおけるステップS66における判定において、ダミー対話フラグfdがtrueである判定されて、処理は、ステップS59に進み、図10の状態ST103の操作5は、対話クラスタ候補として追加される。
【0446】
また、例えば、図14の状態ST133における操作6は、追加された操作5の直後であるため、遷移回数Fnおよび遷移確率Pnが低いため習慣性スコアSnは閾値Sthより低くなるが、対話クラスタ候補に含めるべき操作であるので、ダミー対話フラグfdがtrueにされる。
【0447】
すなわち、図14の状態ST133の操作6は、図16のフローチャートにおけるステップS168において、前方一致クラスタの操作Mnの確認対話フラグfaがtrueではないので、処理がステップS173に進み、ダミー対話フラグfdがtrueとされる。
【0448】
これにより、図9のフローチャートにおけるステップS66における判定において、ダミー対話フラグfdがtrueである判定されて、処理は、ステップS59に進み、図14の状態ST133の操作6は、対話クラスタ候補として追加される。
【0449】
さらに、例えば、図15の状態ST142の操作7は、削除された操作6の直後なので遷移回数Fnおよび遷移確率Pnが低いため、習慣性スコアSnは閾値Sthより低くなるが、対話クラスタ候補に含めるべき操作であるので、ダミー対話フラグfdがtrueにされる。
【0450】
すなわち、図15のST142の操作7は、図16のフローチャートにおけるステップS167において、前方一致クラスタの操作Mnと操作nとが同一ではないので、処理は、ステップS170に進む。
【0451】
また、そして、ステップS170の処理により、前方一致クラスタの操作Mnから操作nまでが削除操作配列Adに格納されると、ステップS171において、格納されている操作数が3個以上であるので、処理は、ステップS172進む。
【0452】
そして、ステップS172において、確認対話フラグfaがtrueに設定されると、ステップS173の処理により、タミー対話フラグfdがtrueに設定される。
【0453】
これにより、図9のフローチャートにおけるステップS66における判定において、ダミー対話フラグfdがtrueである判定されて、処理は、ステップS59に進み、状態ST142の操作7は、対話クラスタ候補として追加される。
【0454】
<追加および削除された操作に対する対話生成事例>
次に、図17を参照して、追加された操作および削除された操作に対する対話生成事例について説明する。
【0455】
例えば、図17で示されるような状態ST161で示されるような対話クラスタが設定された場合について考える。
【0456】
尚、状態ST161の対話クラスタについては、図17の状態ST133と同一の対話クラスタである。
【0457】
図17の状態ST161における操作5においては、確認対話フラグfaがtrueに設定されているため、対話クラスタによる実行がなされる状態に設定されている。
【0458】
ここで、例えば、図17の右部で示されるように、処理SC121において、ユーザ11により「乗り換え案内」といった発話がなされると、操作記憶実行制御部53は、乗り換え案内に係る図17の左部で示される対話クラスタを実行する指示がなされたものと認識する。
【0459】
処理Ex121において、操作記憶実行制御部53は、「乗り換え案内」との発話に応じて、図17の左部で示される操作1乃至4のマクロを実行する。
【0460】
処理Ex122において、操作記憶実行制御部53は、操作5の処理に確認対話フラグfaがtrueに設定されているので、「横浜駅を経由しますか?」といった確認を促す音声を出力する。
【0461】
ここで、処理SC122において、ユーザにより「はい」といった発話がなされると、操作記憶実行制御部53は、「経由駅に横浜を入力」する操作を実行することが指示されたことを認識する。
【0462】
そこで、処理Ex123において、操作記憶実行制御部53は、「経由駅に横浜を入力」する処理が実行されたことを示す実行情報を確認情報Iaに反映させるように実行回数execと合計回数(total回数)を1ずつインクリメントして更新すると共に、操作5乃至8を実行する。
【0463】
また、処理SC122に代えて、処理SC123で示されるように、ユーザにより「いいえ」といった発話がなされると、操作記憶実行制御部53は、「経由駅に横浜を入力」する操作を実行しないことが指示されたことを認識する。
【0464】
処理Ex124において、操作記憶実行制御部53は、「経由駅に横浜を入力」する処理が実行されなかったことを示す実行情報を確認情報Iaに反映させるように、合計回数(total回数)だけを1インクリメントして更新すると共に、操作6乃至8を実行する。
【0465】
このような一連の処理により、習慣性操作に変化が生じて、追加する操作がなされるときには、追加操作の実行の要否の問い合わせの対話が提示され、確認結果に応じた処理が実行される。
【0466】
結果として、習慣性操作に変化が生じても習慣性操作クラスタに対して対話クラスタが設定されて、柔軟な対応が可能となる。
【0467】
図17においては、追加操作における場合の発話生成の事例について説明してきたが、削除操作における場合も同様であるので、その説明は省略する。
【0468】
<追加および削除された操作に対する対話処理>
次に、図18のフローチャートを参照して、追加および削除された操作に対する対話処理について説明する。
【0469】
尚、この処理は、確認対話フラグfaがtrueに設定された操作nがなされるとき実行される。すなわち、例えば、図17の状態ST161における操作5の処理がなされるときに実行される処理である。
【0470】
ステップS191において、操作記憶実行制御部53は、Intent毎に予め登録されている問い合わせフレーズに基づいて、ユーザに実行の可否(応答)を促すシステム発話を出力する。
【0471】
ステップS192において、操作記憶実行制御部53は、ユーザからの実行の可否を指示する応答発話があったか否かを判定し、応答発話があったと判定されるまで、同様の処理を繰り返す。
【0472】
そして、ステップS192において、ユーザの実行の可否を指示する応答発話があったとみなされた場合、処理は、ステップS193に進む。
【0473】
ステップS193において、操作記憶実行制御部53は、ユーザからの実行の可否を指示する応答発話が実行を承諾するものであったか否かを判定する。
【0474】
ステップS193において、ユーザからの実行の可否を指示する応答発話が実行を承諾するものであった場合、処理は、ステップS194に進む。
【0475】
ステップS194において、操作記憶実行制御部53は、操作nを実行する。
【0476】
ステップS195において、操作記憶実行制御部53は、確認情報Iaにおける実行回数execを1インクリメントする。
【0477】
ステップS196において、操作記憶実行制御部53は、確認情報IaにおけるTotal回数(合計回数)を1インクリメントする。
【0478】
尚、ステップS193において、ユーザからの実行の可否を指示する応答発話が実行を承諾するものではなかった場合、ステップS194,S195処理は、スキップされる。
【0479】
ステップS197において、操作記憶実行制御部53は、確認情報Iaにおける実行確率を計算すると共に、計算した実行確率が上限規定値以上であるか否かを判定する。
【0480】
ステップS197において、確認情報Iaにおける実行確率が上限規定値以上である場合、処理は、ステップS198に進む。
【0481】
ステップS198において、操作記憶実行制御部53は、操作nは追加操作として実行確率が上昇した結果、通常の習慣性操作クラスタに組み込まれる操作であるものとみなして、操作nの確認対話フラグfaをfalseに設定し、処理を終了する。
【0482】
また、ステップS197において、確認情報Iaにおける実行確率が上限規定値以上ではない場合、処理は、ステップS199に進む。
【0483】
ステップS199において、操作記憶実行制御部53は、確認情報Iaにおける実行確率を計算し、計算した実行確率が下限規定値以下であるか否かを判定する。
【0484】
ステップS199において、確認情報Iaにおける実行確率が下限規定値以下である場合、処理は、ステップS200に進む。
【0485】
ステップS200において、操作記憶実行制御部53は、操作nが、削除された操作が実際に使用されない状態が継続し、実行確率が下降したものであり、削除してもよいものであるとみなし、対話クラスタから削除して、処理を終了する。
【0486】
尚、ステップS199において、確認情報Iaにおける実行確率が下限規定値以下ではない場合、ステップS200の処理は、スキップされて、処理は終了する。
【0487】
以上の一連の処理により、確認対話フラグfaがtrueに設定された操作については、確認情報Iaにおける実行の可否の応答を促し、実行の可否に係る応答に応じた処理を実行する。
【0488】
そして、実行が指示された場合については、実行回数execが1インクリメントされ、合計回数(Total回数)が1インクリメントされる。
【0489】
さらに、実行確率が順次計算されて、上限規定値以上になった場合については、ユーザが、操作nを常に実行するものとみなされて、確認対話フラグfaがfalseに設定し、常に実行される固定された操作に設定される。
【0490】
また、実行確率が順次計算されて、下限規定値以下になった場合については、ユーザが、操作nを常に実行しないものとみなされて、操作nそのものの対話クラスタが削除されて、常に実行されない状態に設定される。
【0491】
すなわち、いずれにおいても、追加操作が固定された操作になるか、削除操作が削除されると、以降においては、対話がなされることがない、通常の習慣性操作クラスタとして機能する。
【0492】
結果として、習慣性操作に操作が追加されたり、削除されたりするような変化が生じても習慣性操作クラスタに対して対話クラスタが設定されて、柔軟な対応が可能となる。
【0493】
以上の処理により、以下で示すような複数の操作が一括操作される習慣性操作クラスタの変更を容易に実現することが可能となる。
【0494】
例えば、就寝時の習慣的な複数の操作を組み合わせ、「おやすみ」という発話フレーズで、エアコンを消す操作を含む習慣性操作クラスタからなるマクロが存在するものとする。
【0495】
このようなマクロが存在する場合、暑い季節になってきたのでユーザが、「エアコンを消さないでおやすみ」と発話すると、「エアコンを消す操作」は、習慣性操作クラスタから削除された操作として、確認対話フラグfaがtrueに設定されて、対話クラスタとして記録される。
【0496】
そして、次回以降においては、ユーザが「おやすみ」を発話するときには、確認対話フラグに基づいて、例えば、「エアコンを消しますか?」といった問い合わせの発話がなされ、ユーザの応答として「エアコンを消さない」といった実行拒否応答が続くと、「エアコンを消す操作」の確認情報Ia内の実行確率が下がる。
【0497】
さらに実行拒否応答が継続して、エアコンを消す操作の確認情報Ia内の実行確率が下限規定値以下になると、「エアコンを消す操作」が習慣性操作クラスタからなるマクロから削除されて、以降においてはユーザの「おやすみ」発話で問い合わせなくエアコンは消されることなくマクロが実行される。
【0498】
すなわち、上述した動作により、季節の変化(暑くなる)と共にユーザの習慣性操作として、エアコンをつけて寝るといった発話がなされることで、「エアコンを消す操作」がなされることなくマクロが実行されるように、習慣性操作クラスタを変更することが可能となる。
【0499】
<観測コンテキストに依存する操作>
次に、図19を参照して、観測コンテキストに依存する操作について説明する。
【0500】
上述した習慣性操作クラスタリング処理により、例えば、図19の左部で示される状態ST181で示される操作1乃至8からなる習慣性操作クラスタが生成されて、実行される場合について考える。
【0501】
尚、状態ST181については、図10の状態ST101と同一である。
【0502】
ここで、図19の左部の状態ST181で示される、操作1乃至8のうち、操作3の出発駅入力について、依存コンテキスト種別Dcとしてlocationの属性が設定されるものとする。
【0503】
依存コンテキスト種別Dcは、習慣的な操作が実行される際に用いられるコンテキスト情報の種別を指定する情報である。
【0504】
このように、依存コンテキスト種別Dcとしてlocationの属性が設定されている場合、例えば、GPSセンサ等により検出される(観測される)位置情報が、観測コンテキスト情報Coとして取得されて、操作3のEntityとの比較により一致するとき、状態ST182で示されるようにコンテキスト対話フラグfcが設定される。
【0505】
コンテキスト対話フラグfcとは、例えば、習慣性操作クラスタにより設定された一括操作される操作のうち、依存コンテキスト種別Dcが設定された操作のEntityと観測コンテキスト情報Coとが異なる操作がなされた場合に、ユーザに対して対話により操作の選択肢を提示して、選択させる処理を実現させるか否かを設定するフラグである。
【0506】
例えば、操作3における「出発駅に”大崎”を入力」するという操作のEntityである”大崎”付近が、観測コンテキスト情報Coにおける位置情報として検出される場合、図19の状態ST182で示されるように、操作3にはコンテキスト対話フラグfcがtrueに設定される。
【0507】
また、コンテキスト対話フラグfcがtrueに設定されるとき、コンテキスト情報Icが初期値の状態で設定される。
【0508】
ここでは、コンテキスト情報Icには、初期値として予め設定された依存コンテキスト種別Dcとしての”Location”が設定され、検出回数の合計回数totalが2(total:2)に設定され、観測コンテキスト情報Coの入力回数(Co:1)として1が設定され、Entityの入力回数として大崎が1に設定(entity:{大崎:1})される。
【0509】
以降において、ユーザが出発駅を入力すると、コンテキスト情報Icの合計回数total、入力Entity、または観測コンテキスト情報Coが1インクリメントされて、選択肢の入力確率(入力回数/合計回数)が計算される。尚、初期値において、観測コンテキスト情報Coの入力回数と、Entityの入力回数とのそれぞれの入力確率が同一になるように合計回数totalについては、2に設定される。
【0510】
従って、状態ST182においては、観測コンテキスト情報Coと大崎とのそれぞれの入力確率が0.5となる。
【0511】
<観測コンテキスト依存操作判定処理>
次に、図20のフローチャートを参照して、観測コンテキスト依存操作判定処理について説明する。尚、図20のフローチャートにおける観測コンテキスト依存操作判定処理は、図9のフローチャートにおけるステップS56の処理である。
【0512】
ステップS221において、操作記憶実行制御部53は、操作nのIntent属性には、依存コンテキスト種別Dcが設定されているか否かを判定する。
【0513】
ステップS221において、操作nのIntent属性には、依存コンテキスト種別Dcが設定されていると判定された場合、処理は、ステップS222に進む。
【0514】
ステップS222において、操作記憶実行制御部53は、依存コンテキスト種別Dcに対応する観測コンテキスト情報Coが、操作nのEntityと一致するか否かを判定する。
【0515】
ステップS222において、依存コンテキスト種別Dcに対応する観測コンテキスト情報Coが、操作nのEntityと一致すると判定された場合、処理は、ステップS223に進む。
【0516】
ステップS223において、操作記憶実行制御部53は、操作nにコンテキスト情報Icの初期値を設定する。
【0517】
ステップS224において、操作記憶実行制御部53は、操作nにコンテキスト対話フラグfcを設定し、コンテキスト対話フラグfcをtrueに設定する。
【0518】
以上の処理により、予め設定された依存コンテキスト種別Dcの観測コンテキスト情報Coが、操作nのEntityと一致すると、操作nに対して、コンテキスト情報Icの初期値として観測コンテキスト情報の入力回数Coおよびentityの入力回数がそれぞれ1に設定され、合計回数が2に設定されると共に、コンテキスト対話フラグfcがtrueに設定される。
【0519】
<対話クラスタ候補のコンテキスト情報更新処理>
次に、図21のフローチャートを参照して、対話クラスタ候補のコンテキスト情報更新処理について説明する。尚、図21のフローチャートにおける対話クラスタ候補のコンテキスト情報更新処理は、図9のフローチャートにおけるステップS72の処理である。
【0520】
ステップS251において、操作記憶実行制御部53は、対話クラスタ候補と同一シーケンスの記憶済みのクラスタZの操作のうち、未処理の操作を処理対象の操作mに設定する。
【0521】
ステップS252において、操作記憶実行制御部53は、対話クラスタ候補における操作mのコンテキスト対話フラグfcがtrueで、かつ、記憶済みのクラスタZにおける操作mのコンテキスト対話フラグfcがtrueであるか否かを判定する。
【0522】
ステップS252において、対話クラスタ候補における操作mのコンテキスト対話フラグfcがtrueで、かつ、記憶済みクラスタZにおける操作mのコンテキスト対話フラグfcがtrueであるとみなされた場合、処理は、ステップS253に進む。
【0523】
ステップS253において、操作記憶実行制御部53は、対話クラスタ候補における操作m内のコンテキスト情報IcのEntity Ecと、記憶済みクラスタZにおける操作mのコンテキスト情報Icの入力確率が最大値となるEntity Emaxとが一致するであるか否かを判定する。
【0524】
ステップS253において、対話クラスタ候補における操作m内のコンテキスト情報IcのEntity Ecと、記憶済みクラスタZにおける操作mのコンテキスト情報Icの入力確率が最大値となるEntity Emaxとが一致しないと判定された場合、処理は、ステップS254に進む。
【0525】
ステップS254において、操作記憶実行制御部53は、クラスタZの操作mのコンテキスト情報Icの観測コンテキスト情報Coの入力回数を1インクリメントする。
【0526】
ステップS255において、操作記憶実行制御部53は、クラスタZの操作mのコンテキスト情報Icの合計回数totalを1インクリメントする。
【0527】
ステップS256において、操作記憶実行制御部53は、記憶済みのクラスタZの操作mのコンテキスト情報Icを、対話クラスタ候補の操作mのコンテキスト情報Icに設定する。
【0528】
すなわち、対話クラスタ候補における操作m内のコンテキスト情報IcのEntity Ecと、記憶済みクラスタZにおける操作mのコンテキスト情報Icの入力確率が最大値となるEntity Emaxとが一致しない場合には、記憶済みのクラスタZのコンテキスト情報Icが更新される。
【0529】
また、ステップS253において、対話クラスタ候補における操作m内のコンテキスト情報IcのEntity Ecと、記憶済みクラスタにおける操作mのコンテキスト情報Icの入力確率が最大値となるEntity Emaxとが一致すると判定された場合、ステップS254,S255の処理がスキップされて、処理は、ステップS256に進む。
【0530】
すなわち、対話クラスタ候補における操作m内のコンテキスト情報IcのEntity Ecと、記憶済みクラスタにおける操作mのコンテキスト情報Icの入力確率が最大値となるEntity Emaxとが一致する場合には、対話クラスタ候補の操作mのコンテキスト情報Icが、記憶済みのクラスタZのコンテキスト情報Icと同一の情報に設定される。
【0531】
ステップS257において、操作記憶実行制御部53は、対話クラスタ候補と同一シーケンスの記憶済みクラスタZの操作のうち、未処理の操作があるか否かを判定する。
【0532】
ステップS257において、対話クラスタ候補と同一シーケンスの記憶済みクラスタZの操作のうち、未処理の操作があると判定された場合、処理は、ステップS251に戻る。
【0533】
すなわち、対話クラスタ候補と同一シーケンスの記憶済みクラスタZの操作の全てについて、処理がなされるまで、ステップS251乃至S257の処理が繰り返される。
【0534】
そして、ステップS257において、対話クラスタ候補と同一シーケンスの記憶済みクラスタZの操作のうち、未処理の操作がないと判定された場合、対話クラスタ候補と同一シーケンスの記憶済みクラスタZの操作の全てについて、処理がなされたとみなされた場合、処理は、ステップS258に進む。
【0535】
ステップS258において、操作記憶実行制御部53は、対話クラスタ候補と同一シーケンスの記憶済みクラスタZを削除して、処理を終了する。
【0536】
以上の処理により、対話クラスタ候補と同一シーケンスの記憶済みクラスタZが存在する場合には、記憶済みクラスタZのコンテキスト情報Icにより、対話クラスタ候補のコンテキスト情報Icが更新される。
【0537】
<観測コンテキスト依存操作に対する対話生成事例>
次に、図22を参照して、観測コンテキスト依存操作に対する対話生成事例について説明する。
【0538】
例えば、図22で示されるような状態ST201で示されるような対話クラスタが設定された場合について考える。尚、状態ST201の対話クラスタについては、図19の状態ST182と同一の対話クラスタである。
【0539】
図22の左部における操作3においては、コンテキスト対話フラグfcがtrueに設定されているため、対話クラスタによる実行がなされる状態に設定されている。
【0540】
ここで、例えば、図22の右部で示されるように、処理SC141において、ユーザ11により「乗り換え案内」といった発話がなされると、操作記憶実行制御部53は、乗り換え案内に係る図22の左部で示される対話クラスタを実行する指示がなされたものと認識する。
【0541】
処理Ex141において、操作記憶実行制御部53は、「乗り換え案内」との発話に応じて、図22の左部で示される操作1,2のマクロを実行する。また、ここでは、観測コンテキスト情報Coとして”品川”が検出されるものとする。
【0542】
処理Ex142において、操作記憶実行制御部53は、操作3の処理を実行して、コンテキスト対話フラグfcがtrueに設定されているので、コンテキスト情報Icに基づいて、処理を実行する。
【0543】
より詳細には、ここでは、観測コンテキスト情報Coとして”品川”が検出されており、コンテキスト情報IcにおけるEntityである”大崎”と一致しないことになるので、操作記憶実行制御部53は、Entityにおける選択肢を入力確率の高い順に提示する。尚、入力確率が同一である場合については、例えば、直近で入力された選択肢から提示されるようにしてもよい。
【0544】
そして、処理Ex143において、操作記憶実行制御部53は、「出発駅は品川でよいですか?」といった提示した選択肢の選択を促す音声を出力する。
【0545】
ここで、処理SC142において、ユーザにより「品川でいいよ」といった発話がなされると、操作記憶実行制御部53は、選択肢として「品川」が選択されたことを認識する。
【0546】
そこで、処理Ex144において、操作記憶実行制御部53は、出発駅に品川を入力してコンテキスト情報Icを更新すると共に、操作4乃至8を実行する。
【0547】
すなわち、コンテキスト対話フラグfcがtrueである場合、コンテキスト情報Ic内のEntityの中で最大の入力確率を持つEntity Emax(大崎)と、現在の観測コンテキスト情報Co(品川)が合致しないとき、選択肢となるEntityが提示されて、問い合わせの発話が出力され、選択されたEntityによりマクロが実行される。
【0548】
また、コンテキスト情報Ic内のEntityの中で最大の入力確率を持つEntity Emax(大崎)と、現在の観測コンテキスト情報Co(大崎)が合致する場合、ユーザに対しての問い合わせがなされることなく、Entity Emax(大崎)によりマクロが実行される。
【0549】
さらに、提示した選択肢以外の発話入力がなされた場合、コンテキスト情報Icに追加されて更新される。
【0550】
コンテキスト情報Ic内の観測コンテキスト情報Coの入力確率が規定値(例:0.8)以上になるとコンテキスト対話フラグfcがfalseとされて、以降は観測コンテキスト情報CoがEntityとして固定されたマクロが実行される。
【0551】
また、コンテキスト情報Ic内の特定のEntityの入力確率が規定値(例:0.8)以上になると、コンテキスト対話フラグfcがfalseとされて、以降は入力確率が規定値以上のEntityで固定されたマクロが実行される。
【0552】
このような一連の処理により、習慣性操作に変化が生じて、観測コンテキスト情報Coが、登録された入力確率が最も高いEntity Emaxと異なるときには、Entityが選択肢として提示されて、いずれかの選択を促す問い合わせの対話がなされ、選択結果に応じた処理が実行される。
【0553】
結果として、習慣性操作に付随するコンテキストに変化が生じても習慣性操作クラスタに対して対話クラスタが設定されて、柔軟な対応が可能となる。
【0554】
<観測コンテキスト依存操作に対する対話処理>
次に、図23のフローチャートを参照して、観測コンテキスト依存操作に対する対話処理について説明する。
【0555】
尚、この処理は、コンテキスト対話フラグfcがtrueに設定された操作がなされるとき実行される。すなわち、例えば、図22の状態ST201における操作3の処理がなされるときに実行される処理である。
【0556】
ステップS281において、操作記憶実行制御部53は、現在の予め設定された依存コンテキスト種別Dcの観測コンテキスト情報Coと、コンテキスト情報Ic内のEntityの中で入力確率が最大値となるEntity Emaxとが合致するか否かを判定する。
【0557】
ステップS281において、現在の予め設定された依存コンテキスト種別Dcの観測コンテキスト情報Coと、コンテキスト情報Ic内のEntityの中で入力確率が最大値となるEntity Emaxとが合致すると判定された場合、処理は、ステップS282に進む。
【0558】
ステップS282において、操作記憶実行制御部53は、現在の予め設定された依存コンテキスト種別Dcの観測コンテキスト情報CoをEntityとして操作nを実行する。
【0559】
一方、ステップS281において、現在の予め設定された依存コンテキスト種別Dcの観測コンテキスト情報Coと、コンテキスト情報Ic内のEntityの中で入力確率が最大値となるEntity Emaxとが合致しないと判定された場合、処理は、ステップS283に進む。
【0560】
ステップS283において、操作記憶実行制御部53は、Intent毎に予め登録されている問い合わせフレーズに基づいて、ユーザに選択肢に対する選択(応答)を促すシステム発話を出力する。
【0561】
ステップS284において、操作記憶実行制御部53は、選択肢に対するユーザの選択結果である応答発話があったか否かを判定し、応答発話があったと判定されるまで、同様の処理を繰り返す。
【0562】
そして、ステップS284において、選択肢に対するユーザの選択結果である応答発話があったとみなされた場合、処理は、ステップS285に進む。
【0563】
ステップS285において、操作記憶実行制御部53は、応答発話に対応する選択肢のEntityにより操作nを実行する。
【0564】
ステップS286において、操作記憶実行制御部53は、観測コンテキスト情報Coがユーザの応答発話のEntityであるか否かを判定する。
【0565】
ステップS286において、観測コンテキスト情報Coがユーザの応答発話のEntityであると判定された場合、処理は、ステップS287に進む。
【0566】
ステップS287において、操作記憶実行制御部53は、コンテキスト情報Icに含まれる観測コンテキスト情報Coの入力回数を1インクリメントし、処理は、ステップS291に進む。
【0567】
一方、ステップS286において、観測コンテキスト情報Coがユーザの応答発話のEntityではないと判定された場合、処理は、ステップS288に進む。
【0568】
ステップS288において、操作記憶実行制御部53は、応答発話により選択されたEntityがコンテキスト情報Ic内に含まれるEntityであるか否かを判定する。
【0569】
ステップS288において、応答発話により選択されたEntityがコンテキスト情報Ic内に含まれるEntityであると判定された場合、処理は、ステップS289に進む。
【0570】
ステップS289において、操作記憶実行制御部53は、コンテキスト情報Icにおけるユーザが選択したEntityの入力回数の情報を1インクリメントする。
【0571】
一方、ステップS288において、応答発話により選択されたEntityがコンテキスト情報Ic内に含まれるEntityではない判定された場合、処理は、ステップS290に進む。
【0572】
ステップS290において、操作記憶実行制御部53は、コンテキスト情報Icにおけるユーザが選択したEntityの入力回数を初期値1として新規に追加して設定する。
【0573】
ステップS291において、操作記憶実行制御部53は、コンテキスト情報Icにおける合計回数totalの情報を1インクリメントする。
【0574】
ステップS292において、操作記憶実行制御部53は、コンテキスト情報Icにおける観測コンテキスト情報Coの入力確率が規定値以上であるか否かを判定する。
【0575】
ステップS292において、コンテキスト情報Icにおける観測コンテキスト情報Coの入力確率が規定値以上であると判定された場合、処理は、ステップS293に進む。
【0576】
ステップS293において、操作記憶実行制御部53は、コンテキスト対話フラグfcをfalseに設定すると共に、観測コンテキスト情報CoにEntityを固定する操作に設定し、処理を終了する。
【0577】
ステップS292において、コンテキスト情報Icにおける観測コンテキスト情報Coの入力確率が規定値以上ではないと判定された場合、処理は、ステップS294に進む。
【0578】
ステップS294において、操作記憶実行制御部53は、コンテキスト情報IcにおけるEntityの中で入力確率が規定値以上のEntityがあるか否かを判定する。
【0579】
ステップS294において、コンテキスト情報IcにおけるEntityの中で入力確率が規定値以上のEntityがあると判定された場合、処理は、ステップS295に進む。
【0580】
ステップS295において、操作記憶実行制御部53は、コンテキスト対話フラグfcをfalseに設定すると共に、入力確率が規定値以上のEntityに固定する操作に設定し、処理を終了する。
【0581】
ステップS295において、コンテキスト情報IcにおけるEntityの中で入力確率が規定値以上のEntityがない場合、ステップS295の処理がスキップされて、処理を終了する。
【0582】
以上の一連の処理により、コンテキスト対話フラグfcがtrueに設定された操作については、観測コンテキスト情報Coがコンテキスト情報IcにおけるEntityの最大値となるEntity Emaxであるときには、Entity EmaxをEntityとして操作が実行される。
【0583】
また、観測コンテキスト情報Coがコンテキスト情報IcにおけるEntityの最大値となるEntity Emaxではないときには、入力確率順に選択肢となるEntityが提示されて選択が促され、選択されたEntityにより処理が実行される。
【0584】
そして、選択されたEntityについては、回数が1インクリメントされ、Total回数が1インクリメントされる。このとき、選択肢として提示したEntity以外の新規のEntityが選択された場合については、新たに選択肢として登録されると共に回数が1に設定される。
【0585】
さらに、観測コンテキスト情報CoとEntityとのそれぞれの入力確率が順次計算されて、規定値以上になった場合については、ユーザにより、観測コンテキスト情報CoまたはEntityとして規定値以上の選択肢が常に選択されるものとみなされて、コンテキスト対話フラグfcがfalseに設定されて、常に選択される入力確率が規定値以上の観測コンテキスト情報CoまたはEntityに固定された操作に設定される。
【0586】
すなわち、このように観測コンテキスト情報CoまたはEntityが固定された操作になると、以降においては、対話がなされることのない、通常の習慣性操作クラスタとして機能する。
【0587】
結果として、習慣性操作に変化が生じても習慣性操作クラスタに対して対話クラスタが設定されて、柔軟な対応が可能となる。
【0588】
(応用例1)
以上においては、依存コンテキスト種別Dcが、location(位置情報)である場合の例について説明してきたが、それ以外であってもよく、例えば、依存コンテキスト種別Dcがdialog(対話)に設定されるようにしてもよい。
【0589】
例えば、依存コンテキスト種別Dcがdialog(対話)に設定される場合、直前の対話に基づいて、乗換案内の到着駅入力操作が実行されるようにしてもよい。
【0590】
すなわち、この場合、直前の対話より得られるコンテキスト情報として、習慣性操作クラスタが実行されるタイミングから規定時間以内に行われた対話内容やチャット・メッセージ・SNS等のコミュニケーションの内容が利用されて、乗換案内の到着駅入力操作が実行される。
【0591】
より具体的には、依存コンテキスト種別Dcがdialog(対話)に設定されていた場合、到着駅入力=横浜が直前のチャットに話題として含まれていたときには、コンテキスト対話フラグfcがtrueに設定されて、コンテキスト情報IcのEntityに横浜が記憶される。
【0592】
すなわち、この場合、到着駅の場所の依存コンテキスト種別Dcは、location(位置情報)ではなく、直前のdialog(対話)とされる。
【0593】
従って、例えば、習慣性操作クラスタからなるマクロが実行される際、直前のチャットの内容に基づいて得られる観測コンテキスト情報Coが、コンテキスト情報IcのEntityとして登録された「横浜」ではなく、「池袋」が含まれていたときには、到着駅が観測コンテキスト情報Coである池袋とするかを問い合わせる発話がなされ、ユーザの応答に応じた到着駅入力操作がなされて、マクロが実行される。
【0594】
(応用例2)
依存コンテキスト種別Dcは、バイタル系のコンテキスト情報であってもよい。
【0595】
すなわち、依存コンテキスト種別Dcは、例えば、脈拍値を示すpulseなどのバイタル系のコンテキスト情報に設定されるようにしてもよく、音楽のプレイリスト選択操作を含むマクロが存在するときには、プレイリストに、メタ情報として脈拍範囲が設定されるようにしてもよい。
【0596】
このようにすることで、例えば、低い脈拍範囲のメタ情報に対応するプレイリストには、落ち着いた楽曲が設定されるようにし、高い脈拍範囲のメタ情報に対応するプレイリストには、ランニング中向けの楽曲が設定されるようにする。
【0597】
そして、プレイリスト選択操作時に、選択したプレイリストにメタ情報として設定されている脈拍範囲の観測コンテキスト情報Coとしての脈拍が観測(検出)されていれば、コンテキスト対話フラグfcがtrueに設定されるようにし、コンテキスト情報IcのEntityのメタ情報に選択したプレイリストの脈拍範囲が記憶されるようにする。
【0598】
音楽のプレイリスト選択操作を含むマクロが実行される際には、観測コンテキスト情報Coである脈拍値がコンテキスト情報Icに記憶されている脈拍範囲外のときには、プレイリスト選択操作を実行するか否かが問い合わされるようにする。
【0599】
クラスタ実行時の観測コンテキスト情報Coである脈拍値が脈拍範囲となるメタ情報を持つプレイリストが選択肢として提示されて、問い合わせがなされるようにしてもよい。
【0600】
また、プレイリスト選択操作における依存コンテキスト種別Dcは、例えば、感情などを示すemotionに設定されるようにしてもよい。
【0601】
ここで、依存コンテキスト種別Dcがemotionに設定される場合のコンテキスト情報は、例えば、ユーザの画像認識結果、脈拍値、または血圧値等に基づいた感情認識結果であり、感情認識結果に応じたプレイリストの選択操作を促すような発話による問い合わせがなされるようにしてもよい。
【0602】
(応用例3)
依存コンテキスト種別Dcには、周囲の人物の属性を示すattributeが設定されるようにしてもよい。
【0603】
より詳細には、視聴動画コンテンツ選択操作をするマクロが存在する場合、依存コンテキスト種別Dcがattributeに設定されるときのコンテキスト情報は、視聴動画コンテンツ選択操作を行うユーザの周辺にいる人物の属性にする。
【0604】
例えば、ユーザの周辺にいる人物の属性として年齢層などの設定が可能である場合には、視聴動画コンテンツ選択操作において選択肢となるコンテンツにはメタ情報として、例えば、子供向け(12歳まで)や、18歳以上等の対象年齢範囲が設定されるようにする。
【0605】
これにより、視聴動画コンテンツ選択操作からなるマクロの実行時に、選択したコンテンツにメタ情報として設定されている対象年齢範囲に、画像により認識したユーザの周辺にいる人物の年齢からなる依存コンテキスト種別Dcの観測コンテキスト情報Coが検出されればコンテキスト対話フラグfcがtrueに設定され、コンテキスト情報IcのEntityとしてメタ情報に選択したコンテンツの対象年齢範囲が記憶されるようにする。
【0606】
そして、視聴動画コンテンツ選択操作からなるマクロの実行時において、画像認識したユーザの周辺にいる人物の年齢からなる観測コンテキスト情報Coがコンテキスト情報Icに記憶されている対象年齢範囲外の場合は、視聴動画コンテンツ選択操作の際に、対象年齢外の人物が周辺にいるが、動画を再生させてもよいか否かを問い合わせるように発話するようにしてもよい。
【0607】
例えば、視聴動画コンテンツ選択操作からなるマクロの実行時において、習慣的に子供と一緒に見ている子供向け動画コンテンツ選択を、子供がいない時にも選択してよいかを問い合わせるようにしてもよい。
【0608】
(その他の応用例)
依存コンテキスト種別Dcは、ユーザ間のネットワークを介したオンライン/オフライン状態等にして、例えば、観測コンテキスト情報Coであるオンライン/オフラインに応じて、オンライン状態のユーザはメッセージをすぐに受信して読むことができるものとみなし、オフライン状態のユーザはメッセージをすぐに読むことができないものとみなすようにしてもよい。
【0609】
この場合、例えば、観測コンテキスト情報Coであるオンライン/オフラインの情報に応じて、メッセージをすぐに受信して読むことができるユーザをメッセージ送信の宛先に指定した場合には問い合わせ対話を行わず、メッセージをすぐに読むことができないユーザをメッセージ送信の宛先に指定した場合には宛先に含めて良いかの問い合わせ対話を行うようにしてもよい。
【0610】
また、依存コンテキスト種別Dcは、その場にいる人物との関係性等にしてもよく、例えば、観測コンテキスト情報Coであるその場にいる人物との関係性に応じて、プライバシに関する入力や提示系の操作のオンまたはオフが設定されるようにしてもよい。
【0611】
さらに、依存コンテキスト種別Dcは、「天気を教えて」等の問い合わせが成される際の時間帯などであってもよく、観測コンテキスト情報Coである時間帯に応じて、例えば、朝であれば今日一日の天気が提示されるようにして、夜であれば、明日の天気が提示されるようにしてもよい。
【0612】
(変形例1)
習慣性操作クラスタからなるマクロが実行される前/後の操作の修正/追加に対しても対話フラグを設定させるようにしてもよい。
【0613】
すなわち、例えば、「出発駅を品川にしていつもの乗り換え案内」といった場合、出発駅の選択肢が提示されるような選択対話フラグfsが設定されるようにしてもよい。
【0614】
また、「いつもの乗り換え案内」の発話によりマクロが実行された後、「横浜経由でやり直し」といった発話により、「横浜経由でやり直し」により実行される操作を追加操作とみなして、確認対話フラグfaが設定されるようにして、追加操作の要否を問い合わせるようにしてもよい。
【0615】
(変形例2)
スマートスピーカ等のような機器を介して連携することで家電機器のコントロール機能を使用して、習慣性操作クラスタからなるマクロ内の特定の操作がコンテキスト依存で実行できずエラーが発生してしまうような場合には、エラーの要因となる依存コンテキスト種別Dcを変化させられるものであれば問い合わせ発話なしで変化させることで、エラーの発生を抑制しつつマクロを実行するようにしてもよい。
【0616】
すなわち、例えば、エアコンの電源状態を示す依存コンテキスト種別Dcのコンテキスト情報に基づいて、エアコン温度設定操作を含むマクロが実行される場合、エアコンの電源がOFF状態のまま、マクロが実行されるときには、エアコン温度設定操作がなされるタイミングにおいてエアコンの電源がONにされるようにして、エアコン温度設定操作を実現できるようにしてもよい。
【0617】
(変形例3)
また、図9のフローチャートを参照して説明した対話クラスタリング処理により特定の操作に対して異種および複数の対話フラグが設定され、特定の操作を実行する際に複数回の発話による問い合わせが行われることも想定される。
【0618】
このような場合、ユーザの問い合わせに対する応答内容によっては以降のシーケンスが機能上不整合を起こすことも考えられる。
【0619】
この不整合は操作が数回実行されるとユーザ応答の習慣性が反映されることで解消されるが、ユーザの応答時に以降のシーケンスの不整合の有無に応じて、問い合わせをしないようにしてもよい。
【0620】
すなわち、例えば、出発駅が大崎であり、到着駅が横浜および本厚木のいずれかが選択対話フラグにより選択され、経由駅が横浜であることが確認対話フラグにより確認されることにより乗り換え案内を実現するマクロがあった場合、実行時にユーザから到着駅として横浜が選択された後、経由駅として横浜が選択されると、到着駅と経由駅とが同一になるため不整合が生じる。
【0621】
そこで、このように到着駅として横浜が選択された時点で、同時に経由駅が横浜であることは不整合であるので、経由駅を横浜とするか否かについての問い合わせはしないようにしてもよい。
【0622】
以上の如く、本開示においては、習慣性が高く変更の必要のない操作はまとめて習慣性操作クラスタとして1つのマクロとして一括実行され、状況などによって変更したい操作は問い合わせの応答に基づいて実行される。
【0623】
これにより、ユーザにとって気の利いた最適な対話によりマクロを形成する習慣性操作クラスタを変更させることが可能となる。
【0624】
また、特定操作の問い合わせに対するユーザ応答が同じ回答が習慣化したとみなされる場合、対話クラスタ内の確率情報(入力確率、または実行確率)が更新されて、規定値よりも大きくなると、習慣化した回答に固定された操作がなされて、問い合わせが行われなくなるので、ユーザは不要な対話を行わずに複数の操作に変化を加えて一括実行させることが可能となる。
【0625】
さらに、ユーザの置かれているその場の状況(コンテキスト)に応じて必要な場合のみ問い合わせが行われるため、ユーザは習慣的に複合操作を行う状況と異なる状況でも適切な操作内容の変更を低負荷で実現することが可能となる。
【0626】
<<3.ソフトウェアにより実行させる例>>
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のコンピュータなどに、記録媒体からインストールされる。
【0627】
図24は、汎用のコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)1001を内蔵している。CPU1001にはバス1004を介して、入出力インタフェース1005が接続されている。バス1004には、ROM(Read Only Memory)1002およびRAM(Random Access Memory)1003が接続されている。
【0628】
入出力インタフェース1005には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部1006、処理操作画面や処理結果の画像を表示デバイスに出力する出力部1007、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部1008、LAN(Local Area Network)アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部1009が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどのリムーバブル記憶媒体1011に対してデータを読み書きするドライブ1010が接続されている。
【0629】
CPU1001は、ROM1002に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブル記憶媒体1011ら読み出されて記憶部1008にインストールされ、記憶部1008からRAM1003にロードされたプログラムに従って各種の処理を実行する。RAM1003にはまた、CPU1001が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0630】
以上のように構成されるコンピュータでは、CPU1001が、例えば、記憶部1008に記憶されているプログラムを、入出力インタフェース1005及びバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行われる。
【0631】
コンピュータ(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記憶媒体1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【0632】
コンピュータでは、プログラムは、リムーバブル記憶媒体1011をドライブ1010に装着することにより、入出力インタフェース1005を介して、記憶部1008にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部1009で受信し、記憶部1008にインストールすることができる。その他、プログラムは、ROM1002や記憶部1008に、あらかじめインストールしておくことができる。
【0633】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0634】
尚、図24におけるCPU1001が、図4の操作記憶実行制御部53の機能を実現させ、記憶部1008やリムーバブル記憶媒体1011が、ユーザ操作履歴記憶部54、および習慣性操作/対話クラスタ記憶部55の機能を実現する。
【0635】
また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0636】
なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【0637】
例えば、本開示は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0638】
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0639】
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
【0640】
尚、本開示は、以下のような構成も取ることができる。
【0641】
<1> ユーザ操作の習慣性を示す習慣性スコアを算出し、
前記習慣性スコアが所定の閾値よりも高い操作およびユーザに対する対話に応じた操作を含む複数の操作からなるクラスタを登録する制御部
を備える情報処理装置。
<2> 前記ユーザに対する対話に応じた操作は、操作種別が同一で属性が異なる操作であり、
前記制御部は、前記操作種別が同一で前記属性が異なる操作における、前記属性の選択に係る対話を実行するか否かを選択対話フラグにより設定する
<1>に記載の情報処理装置。
<3> 前記制御部は、前記属性の選択に係る対話を実行するとき、前記選択対話フラグをtrueに設定すると共に、前記対話において選択肢となる前記属性の情報を選択肢情報として設定する
<2>に記載の情報処理装置。
<4> 前記制御部は、前記選択肢情報における前記選択肢となる前記属性を、前記ユーザに提示することで前記対話を実行し、前記ユーザにより選択された前記選択肢に対応する前記属性に基づいて操作を実行する
<3>に記載の情報処理装置。
<5> 前記制御部は、前記選択肢情報における前記選択肢のそれぞれについて、前記ユーザにより選択された回数を選択回数として設定すると共に、全ての前記選択回数の合計回数を設定する
<4>に記載の情報処理装置。
<6> 前記制御部は、前記選択肢情報における選択肢のそれぞれの前記選択回数と、前記合計回数とに基づいて、前記選択肢のそれぞれの入力確率を求め、前記入力確率に応じた順序で、前記属性を前記ユーザに提示することで前記対話を実行し、前記ユーザにより選択された前記選択肢に対応する前記属性に基づいて操作を実行する
<5>に記載の情報処理装置。
<7> 前記制御部は、前記選択肢のいずれかの前記入力確率が規定値よりも大きくなった場合、前記選択対話フラグをfalseに設定し、前記入力確率が規定値よりも高い選択肢となる前記属性を固定した操作を実行する
<6>に記載の情報処理装置。
<8> 前記ユーザに対する対話に応じた操作は、登録された前記クラスタを構成する複数の操作より、追加された操作および削除された操作を含む操作であり、
前記制御部は、前記追加された操作または削除された操作を実行するか否かを確認する対話を実行するか否かを確認対話フラグにより設定する
<1>に記載の情報処理装置。
<9> 前記制御部は、前記追加された操作または削除された操作の実行を確認する対話を実行するとき、前記確認対話フラグをtrueに設定すると共に、前記対話による前記確認がなされたことにより前記追加された操作または削除された操作が実行された実行回数と、前記確認がなされた合計回数とを確認情報として設定する
<8>に記載の情報処理装置。
<10> 前記制御部は、前記追加された操作または削除された操作の実行を確認する対話を実行し、前記ユーザの応答に応じて操作を実行する
<9>に記載の情報処理装置。
<11> 前記制御部は、前記確認情報における前記追加された操作または削除された操作について、前記実行回数と、前記合計回数とに基づいて、前記確認情報における前記追加された操作または削除された操作が実行されたい実行確率を求める
<10>に記載の情報処理装置。
<12> 前記制御部は、前記追加された操作または削除された操作の前記実行確率が規定値よりも大きくなった場合、前記確認対話フラグをfalseに設定する
<11>に記載の情報処理装置。
<13> 前記制御部は、前記追加された操作または削除された操作の前記実行確率が規定値よりも小さくなった場合、前記確認対話フラグが設定された前記クラスタを削除する
<11>に記載の情報処理装置。
<14> 前記ユーザに対する対話に応じた操作は、観測コンテキストに依存する操作からなる観測コンテキスト依存操作であり、
前記制御部は、前記観測コンテキスト依存操作における選択肢の選択に係る対話を実行するか否かをコンテキスト対話フラグにより設定する
<1>に記載の情報処理装置。
<15> 前記制御部は、前記観測コンテキスト依存操作からなる選択肢の選択に係る対話を実行するとき、前記コンテキスト対話フラグをtrueにすると共に、前記対話において選択肢となる、前記観測コンテキストに依存する属性の情報、および前記観測コンテキストの情報をコンテキスト情報として設定する
<14>に記載の情報処理装置。
<16> 前記制御部は、前記コンテキスト情報における前記選択肢となる前記観測コンテキストに依存する属性と前記観測コンテキストとを、前記ユーザに提示することで前記対話を実行し、前記ユーザにより選択された前記選択肢に対応する前記属性に基づいて操作を実行する
<15>に記載の情報処理装置。
<17> 前記制御部は、前記コンテキスト情報における前記選択肢のそれぞれについて、前記ユーザにより選択された回数を選択回数として設定すると共に、全ての前記選択回数の合計回数を設定する
<16>に記載の情報処理装置。
<18> 前記制御部は、前記コンテキスト情報における選択肢のそれぞれの選択回数と、前記合計回数とに基づいて、前記選択肢のそれぞれの入力確率を求め、前記入力確率に応じた順序で、前記属性を前記ユーザに提示することで前記対話を実行し、前記ユーザにより選択された前記選択肢に対応する前記属性に基づいて操作を実行する
<17>に記載の情報処理装置。
<19> 前記制御部は、前記選択肢のいずれかの前記入力確率が規定値よりも大きくなった場合、前記コンテキスト対話フラグをfalseに設定し、前記入力確率が規定値よりも高い選択肢となる前記属性、または、前記観測コンテキストを固定した操作を実行する
<18>に記載の情報処理装置。
<20> 前記習慣性スコアは、直前の操作から現在の操作までの時間間隔、前記直前の操作から現在の操作までの遷移回数、および前記直前の操作から現在の操作への遷移確率の調和関数に基づいて算出される
<1>乃至<19>のいずれかに記載の情報処理装置。
<21> ユーザ操作の習慣性を示す習慣性スコアを算出し、
前記習慣性スコアが所定の閾値よりも高い操作およびユーザに対する対話に応じた操作を含む複数の操作からなるクラスタを登録する
を備える情報処理方法。
<22> ユーザ操作の習慣性を示す習慣性スコアを算出し、
前記習慣性スコアが所定の閾値よりも高い操作およびユーザに対する対話に応じた操作を含む複数の操作からなるクラスタを登録する制御部
としてコンピュータを機能させるプログラム。
【符号の説明】
【0642】
41 情報処理装置, 51 入力操作部, 52 機能アプリケーションプログラム実行部, 53 操作記憶実行制御部, 54 ユーザ操作履歴記憶部, 55 習慣性操作/対話クラスタ記憶部, 56 音声入力部, 57 音声認識処理部, 58 発話意味理解処理部, 59 画像入力部, 60 画像認識処理部, 61 センサ入力部, 62 センサ認識部, 63 応答生成部, 64 表示画像処理部, 65 音声合成処理部, 66 画像出力部, 67 音声出力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24