(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024088640
(43)【公開日】2024-07-02
(54)【発明の名称】ボットシステムの性能に関する見解
(51)【国際特許分類】
G06F 16/90 20190101AFI20240625BHJP
G06F 3/0481 20220101ALI20240625BHJP
【FI】
G06F16/90 100
G06F3/0481
【審査請求】有
【請求項の数】15
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024037129
(22)【出願日】2024-03-11
(62)【分割の表示】P 2021563286の分割
【原出願日】2020-03-25
(31)【優先権主張番号】62/839,270
(32)【優先日】2019-04-26
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】サブラマニアム,スリカント
(72)【発明者】
【氏名】シェンバガム,サンダー
(72)【発明者】
【氏名】バット,ニールジャ
(72)【発明者】
【氏名】クマール,ガネーシュ
(57)【要約】 (修正有)
【課題】ボットシステムと一体化され、ボットシステムの性能を監視、分析、視覚化、診断および改善するための分析システム、方法及び非一時的コンピュータ可読メモリを提供する。
【解決手段】分析システムにおいて、ボット分析システムのイベントコレクタは、イベントコレクタの構成に基づいて、ボットシステムとの会話中に発生したイベントの属性を収集すること320と、会話中に発生し、イベントコレクタによって捕捉されたイベントの属性を集約して分析すること330と、概観報告、インテント報告、経路報告、会話報告、ボット改善報告又はそれらの任意の組合せなど、集約メトリックに基づいて、会話についての様々な分析的見解報告を生成すること340と、ボット所有者、管理者又は開発者の要求で、特定の状態で終了する会話など、特定の基準を満たす1つまたは複数の会話に関する情報を提供すること350と、を含む。
【選択図】
図3
【特許請求の範囲】
【請求項1】
方法であって、
分析システムのイベントコレクタが、ボットシステムとの会話のセットに関連付けられる1つまたは複数のイベントについての1つまたは複数の属性を収集することと、
ユーザによって選択された1つまたは複数のフィルタリング基準を用いる前記分析システムの分析エンジンが、前記1つまたは複数のイベントについての前記1つまたは複数の属性に基づいて前記会話のセットから1つまたは複数の会話を選択することと、
前記分析システムの前記分析エンジンが、前記選択された1つまたは複数の会話について集約経路図を生成することとを含み、前記集約経路図は、複数のノードおよび前記複数のノード間の複数の接続を含み、
前記複数のノードの各ノードは、前記1つまたは複数の会話中の前記ボットシステムのそれぞれの状態に対応し、各ノードの状態は、前記1つまたは複数の会話においてその点で必要な機能を提供する前記ボットシステムのコンポーネントを指名し、
前記複数の接続の各接続は、前記1つまたは複数の会話中の前記ボットシステムの1つの状態から前記ボットシステムの別の状態への遷移を表し、前記方法はさらに、
前記集約経路図をGUI上にグラフィカルに表示することを含み、前記集約経路図を表示することは、各ノードにおける前記1つまたは複数の会話中の前記ボットシステムの状態に対するユーザコンテキストを提供し、前記コンテキストは、前記集約経路図内の他のノードの直前にあるノードの状態、および前記集約経路図内の各状態のために定義された前記コンポーネントを含む、方法。
【請求項2】
前記1つまたは複数のフィルタリング基準は、未完了の結果を含み、
前記属性は、ダイアログ状態属性、インテント解決属性、エンティティ解決属性、エラーおよびタイムアウト属性、またはそれらの組み合わせであり、
前記集約経路図を表示することは、前記複数のノードの各ノードをユーザ選択可能な項目として表示することと、前記複数のノードのうち、前記未完了の結果をもたらした、前記1つまたは複数の会話の停止点を示すノードを表示することとを含む、請求項1に記載の方法。
【請求項3】
前記方法はさらに、
前記停止点を示す前記ノードの第1のユーザ選択を前記GUIを通じて受信することと、
前記第1のユーザ選択に基づいて前記GUI上にグラフィカルに、前記1つまたは複数の会話を停止する前に前記ボットシステムによって受信された1つまたは複数の発話を表示することとをさらに含む、請求項2に記載の方法。
【請求項4】
前記方法はさらに、
前記1つまたは複数の会話の1つまたは複数のトランスクリプトに対するユーザ選択可能な項目を前記第1のユーザ選択に基づいて前記GUI上にグラフィカルに表示することと、
前記GUIを通じて、前記1つまたは複数の会話の前記1つまたは複数のトランスクリプトの第2のユーザ選択を受信することと、
前記第2のユーザ選択に基づいて前記GUI上にグラフィカルに、前記1つまたは複数の会話を停止する前に、前記ユーザと前記ボットシステムとの間の前記1つまたは複数の会話の前記1つまたは複数のトランスクリプトを表示することとを含む、請求項3に記載の方法。
【請求項5】
前記分析システムが、前記ボットシステムを、少なくとも、前記1つまたは複数の会話を停止する前に前記ボットシステムによって受信された前記1つまたは複数の発話に基づ
いてトレーニングすることをさらに含む、請求項3に記載の方法。
【請求項6】
前記集約経路図は、各それぞれの接続に関連付けられる数を含み、前記数は、前記1つまたは複数の会話のうち、前記それぞれの接続によって表される遷移を含む会話の総数を示す、請求項1に記載の方法。
【請求項7】
前記方法はさらに、
前記分析システムの前記分析エンジンが、前記選択された1つまたは複数の会話に関する1つまたは複数の報告を生成することと、
前記GUI上にグラフィカルに、前記1つまたは複数の報告からの第1の報告と、前記第1の報告に関連付けられる1つまたは複数のユーザ選択可能な項目とを表示することとを含み、前記1つまたは複数のユーザ選択可能な項目は、前記会話のセットから特定のエンドユーザのインテントに関連付けられる会話を選択するためのメニューを含み、前記方法はさらに、
前記GUIを通じて、前記会話のセットから前記特定のエンドユーザのインテントに関連付けられる前記会話のうちのある会話のユーザ選択を受信することと、
前記ユーザ選択に基づいて前記GUI上にグラフィカルに、前記1つまたは複数の報告から前記ある会話を含む第2の報告を表示することとを含む、請求項1に記載の方法。
【請求項8】
1つまたは複数のプロセッサによって実行可能な複数の命令を格納する非一時的コンピュータ可読メモリであって、前記複数の命令は、前記1つまたは複数のプロセッサによって実行されると前記1つまたは複数のプロセッサに処理を実行させる命令を含み、前記処理は、
分析システムのイベントコレクタが、ボットシステムとの会話のセットに関連付けられる1つまたは複数のイベントについての1つまたは複数の属性を収集することと、
ユーザによって選択された1つまたは複数のフィルタリング基準を用いる前記分析システムの分析エンジンが、前記1つまたは複数のイベントについての前記1つまたは複数の属性に基づいて前記会話のセットから1つまたは複数の会話を選択することと、
前記分析システムの前記分析エンジンが、前記選択された1つまたは複数の会話について集約経路図を生成することとを含み、前記集約経路図は、複数のノードおよび前記複数のノード間の複数の接続を含み、
前記複数のノードの各ノードは、前記1つまたは複数の会話中の前記ボットシステムのそれぞれの状態に対応し、各ノードの状態は、前記1つまたは複数の会話においてその点で必要な機能を提供する前記ボットシステムのコンポーネントを指名し、
前記複数の接続の各接続は、前記1つまたは複数の会話中の前記ボットシステムの1つの状態から前記ボットシステムの別の状態への遷移を表し、前記処理はさらに、
前記集約経路図をGUI上にグラフィカルに表示することを含み、前記集約経路図を表示することは、各ノードにおける前記1つまたは複数の会話中の前記ボットシステムの状態に対するユーザコンテキストを提供し、前記コンテキストは、前記集約経路図内の他のノードの直前にあるノードの状態、および前記集約経路図内の各状態のために定義された前記コンポーネントを含む、非一時的コンピュータ可読メモリ。
【請求項9】
前記1つまたは複数のフィルタリング基準は、未完了の結果を含み、
前記属性は、ダイアログ状態属性、インテント解決属性、エンティティ解決属性、エラーおよびタイムアウト属性、またはそれらの組み合わせであり、
前記集約経路図を表示することは、前記複数のノードの各ノードをユーザ選択可能な項目として表示することと、前記複数のノードのうち、前記未完了の結果をもたらした、前記1つまたは複数の会話の停止点を示すノードを表示することとを含む、請求項8に記載の非一時的コンピュータ可読メモリ。
【請求項10】
前記処理は、さらに、
前記停止点を示す前記ノードの第1のユーザ選択を前記GUIを通じて受信することと、
前記第1のユーザ選択に基づいて前記GUI上にグラフィカルに、前記1つまたは複数の会話を停止する前に前記ボットシステムによって受信された1つまたは複数の発話を表示することとをさらに含む、請求項9に記載の非一時的コンピュータ可読メモリ。
【請求項11】
前記処理は、さらに、
前記1つまたは複数の会話の1つまたは複数のトランスクリプトに対するユーザ選択可能な項目を前記第1のユーザ選択に基づいて前記GUI上にグラフィカルに表示することと、
前記GUIを通じて、前記1つまたは複数の会話の前記1つまたは複数のトランスクリプトの第2のユーザ選択を受信することと、
前記第2のユーザ選択に基づいて前記GUI上にグラフィカルに、前記1つまたは複数の会話を停止する前に、前記ユーザと前記ボットシステムとの間の前記1つまたは複数の会話の前記1つまたは複数のトランスクリプトを表示することとを含む、請求項10に記載の非一時的コンピュータ可読メモリ。
【請求項12】
前記処理は、前記分析システムが、前記ボットシステムを、少なくとも、前記1つまたは複数の会話を停止する前に前記ボットシステムによって受信された前記1つまたは複数の発話に基づいてトレーニングすることをさらに含む、請求項10に記載の非一時的コンピュータ可読メモリ。
【請求項13】
前記集約経路図は、各それぞれの接続に関連付けられる数を含み、前記数は、前記1つまたは複数の会話のうち、前記それぞれの接続によって表される遷移を含む会話の総数を示す、請求項8に記載の非一時的コンピュータ可読メモリ。
【請求項14】
前記処理は、さらに、
前記分析システムの前記分析エンジンが、前記選択された1つまたは複数の会話に関する1つまたは複数の報告を生成することと、
前記GUI上にグラフィカルに、前記1つまたは複数の報告からの第1の報告と、前記第1の報告に関連付けられる1つまたは複数のユーザ選択可能な項目とを表示することとを含み、前記1つまたは複数のユーザ選択可能な項目は、前記会話のセットから特定のエンドユーザのインテントに関連付けられる会話を選択するためのメニューを含み、前記処理はさらに、
前記GUIを通じて、前記会話のセットから前記特定のエンドユーザのインテントに関連付けられる前記会話のうちのある会話のユーザ選択を受信することと、
前記ユーザ選択に基づいて前記GUI上にグラフィカルに、前記1つまたは複数の報告から前記ある会話を含む第2の報告を表示することとを含む、請求項8に記載の非一時的コンピュータ可読メモリ。
【請求項15】
システムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに接続されるメモリとを備え、前記メモリは、前記1つまたは複数のプロセッサによって実行可能な複数の命令を格納し、前記複数の命令は、前記1つまたは複数のプロセッサによって実行されると前記1つまたは複数のプロセッサに処理を実行させる命令を含み、前記処理は、
分析システムのイベントコレクタが、ボットシステムとの会話のセットに関連付けられる1つまたは複数のイベントについての1つまたは複数の属性を収集することと、
ユーザによって選択された1つまたは複数のフィルタリング基準を用いる前記分析シス
テムの分析エンジンが、前記1つまたは複数のイベントについての前記1つまたは複数の属性に基づいて前記会話のセットから1つまたは複数の会話を選択することと、
前記分析システムの前記分析エンジンが、前記選択された1つまたは複数の会話について集約経路図を生成することとを含み、前記集約経路図は、複数のノードおよび前記複数のノード間の複数の接続を含み、
前記複数のノードの各ノードは、前記1つまたは複数の会話中の前記ボットシステムのそれぞれの状態に対応し、各ノードの状態は、前記1つまたは複数の会話においてその点で必要な機能を提供する前記ボットシステムのコンポーネントを指名し、
前記複数の接続の各接続は、前記1つまたは複数の会話中の前記ボットシステムの1つの状態から前記ボットシステムの別の状態への遷移を表し、前記処理はさらに、
前記集約経路図をGUI上にグラフィカルに表示することを含み、前記集約経路図を表示することは、各ノードにおける前記1つまたは複数の会話中の前記ボットシステムの状態に対するユーザコンテキストを提供し、前記コンテキストは、前記集約経路図内の他のノードの直前にあるノードの状態、および前記集約経路図内の各状態のために定義された前記コンポーネントを含む、システム。
【請求項16】
前記1つまたは複数のフィルタリング基準は、未完了の結果を含み、
前記属性は、ダイアログ状態属性、インテント解決属性、エンティティ解決属性、エラーおよびタイムアウト属性、またはそれらの組み合わせであり、
前記集約経路図を表示することは、前記複数のノードの各ノードをユーザ選択可能な項目として表示することと、前記複数のノードのうち、前記未完了の結果をもたらした、前記1つまたは複数の会話の停止点を示すノードを表示することとを含む、請求項15に記載のシステム。
【請求項17】
前記処理はさらに、
前記停止点を示す前記ノードの第1のユーザ選択を前記GUIを通じて受信することと、
前記第1のユーザ選択に基づいて前記GUI上にグラフィカルに、前記1つまたは複数の会話を停止する前に前記ボットシステムによって受信された1つまたは複数の発話を表示することとをさらに含む、請求項16に記載のシステム。
【請求項18】
前記処理はさらに、
前記1つまたは複数の会話の1つまたは複数のトランスクリプトに対するユーザ選択可能な項目を前記第1のユーザ選択に基づいて前記GUI上にグラフィカルに表示することと、
前記GUIを通じて、前記1つまたは複数の会話の前記1つまたは複数のトランスクリプトの第2のユーザ選択を受信することと、
前記第2のユーザ選択に基づいて前記GUI上にグラフィカルに、前記1つまたは複数の会話を停止する前に、前記ユーザと前記ボットシステムとの間の前記1つまたは複数の会話の前記1つまたは複数のトランスクリプトを表示することとを含む、請求項17に記載のシステム。
【請求項19】
前記処理はさらに、前記分析システムが、前記ボットシステムを、少なくとも、前記1つまたは複数の会話を停止する前に前記ボットシステムによって受信された前記1つまたは複数の発話に基づいてトレーニングすることをさらに含む、請求項17に記載のシステム。
【請求項20】
前記集約経路図は、各それぞれの接続に関連付けられる数を含み、前記数は、前記1つまたは複数の会話のうち、前記それぞれの接続によって表される遷移を含む会話の総数を示す、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の参照
本出願は、2019年4月26日に提出された、「ボットシステムの性能に関する見解(INSIGHTS INTO PERFORMANCE OF A BOT SYSTEM)」と題される米国仮出願62/839
,270の非仮出願であり、その利益および優先権を主張する。上記出願の全内容は、あらゆる目的のために参照により本明細書に組み込まれる。
【0002】
発明の分野
本開示は、一般に、ボットシステムの分析および改善のための技術に関し、より具体的には、ボットシステムと一体化され、ボットシステムの性能を監視、分析、視覚化、診断、および改善するための分析システムに関する。
【背景技術】
【0003】
背景
世界中の多くのユーザは、即時反応を得るためにインスタントメッセージングまたはチャットプラットフォーム上にいる。組織は、しばしば、これらのインスタントメッセージングまたはチャットプラットフォームを用いて、顧客(またはエンドユーザ)とライブ会話において携わる。しかしながら、顧客またはエンドユーザとのライブ通信に携わるためにサービス人員を雇用することは、組織にとって非常に費用がかかり得る。チャットボットまたはボットは、特にインターネット上で、エンドユーザとの会話をシミュレートするために開発され始めた。エンドユーザは、エンドユーザが既にインストールし使用しているメッセージングアプリを介してボットと通信することができる。一般に人工知能(AI)によって駆動されるインテリジェントなボットは、ライブ会話において、より知的にかつ文脈に沿って通信することができ、したがって、改善された会話体験のために、ボットとエンドユーザとの間の、より自然な会話を可能にすることができる。ボットが応答の仕方を知っているキーワードまたはコマンドの固定セットをエンドユーザが学習する代わりに、インテリジェントなボットは、自然言語でのエンドユーザ発話に基づいてエンドユーザの意図を理解し、それに応じて応答することができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
概要
ボットシステムの性能を監視、分析、視覚化、診断、および改善するための技術が提供される(例えば、1つまたは複数のプロセッサによって実行可能なコードまたは命令を格納する方法、システム、非一時的コンピュータ可読媒体)。
【0005】
いくつかの実施形態によれば、分析システムは、エンドユーザとボットシステムとの間の会話において発生したイベントを監視し、収集されたイベントを集約および分析し、すべての会話の全体的概要から、会話の異なるカテゴリ、および個々の会話までなど、異なる一般化レベルで見解報告としてグラフィックユーザインターフェイス上でグラフィカルに会話に関する情報を提供することができる。たとえば、グラフィックユーザインターフェイスは、あるタイプの会話もしくは個々の会話をフィルタリングまたは選択するためのオプションを表示し、たとえば会話の経路を視覚化することによって、選択されたタイプの会話または個々の会話に関する情報をグラフィカルに表示することができる。見解は、争点が問題を引き起こす前にユーザがそれらに対処できるように、争点をスキルで指摘する開発者指向型分析を提供する。見解は、ユーザに、会話傾向を経時的に追跡させ、実行経路を特定させ、それらのインテント解決の精度を判断させ、会話トランスクリプト全体
にアクセスさせる。分析システムはまた、ボットシステムのトレーニングを改善するための提案、オプション、または他の情報を提供することができる。
【0006】
いくつかの実施形態では、グラフィカルユーザインターフェイス(GUI)は、ボットシステムとの個々のおよび/もしくは集約されたエンドユーザ会話または他の対話に関連する情報を、会話の異なるステージまたは状態を表す異なるノードを含む経路として表示してもよい。例えば、ボットシステムとのエンドユーザ会話は、状態から状態への遷移を示す経路によって表されてもよく、各状態は、経路上のノードによって表されてもよい。ボットシステムとのユーザ会話の統計が生成され、GUIを通じてグラフィカルに表示されてもよい。分析システムによる経路としての会話の可視化は、ボットシステムの管理者または開発者が、異なる基準に基づいてボットシステムとの会話のグループをフィルタリングまたは選択することを可能にし得る。分析システムはまた、ボットシステムの管理者または開発者が対象の個々の会話を選択して検討するためのオプションを提供してもよい。視覚化された経路情報は、ボットシステムの管理者または開発者が、エンドユーザがボットシステムとどのように対話しているか、およびボットシステムがエンドユーザとの会話中にどのように実行されるかを視覚的に監視ならびに分析して、ボットシステムの期待以下の要素および可能性のある改善点を特定することを可能にし得る。
【0007】
したがって、分析システムは、すべての会話、ある基準を満たす会話のグループ、特定のインテントまたは終了状態に関連付けられる会話、および個々の会話を含んで、異なる一般化レベルでボットシステムとのエンドユーザ会話に関する情報を、グラフィックユーザインターフェイスを介して提供してもよい。したがって、分析システムは、ボットシステムの管理者または開発者が、未完了の会話または不成功の会話に関連付けられる特定のエンドユーザ発話およびエンドユーザインテントを識別し、それによって、ボットシステムの期待以下の要素を識別し、改善することを可能にし得る。ボットシステムの性能を分析し改善することによって、ボットシステムとの対話からのユーザ経験が改善され得る。
【0008】
特定の実施形態では、システムは、イベントコレクタと、分析エンジンと、分析エンジンに通信可能に結合されるグラフィックユーザインターフェイスサーバとを含み得る。イベントコレクタは、ボットシステムとの会話のセットに関連付けられる1つまたは複数のイベントについての1つまたは複数の属性を収集するように構成可能である。分析エンジンは、ユーザによって選択された1つまたは複数のフィルタリング基準を用いて、1つまたは複数のイベントについての1つまたは複数の属性に基づいて会話のセットから1つまたは複数の会話を選択し、選択された1つまたは複数の会話に対する1つまたは複数の見解報告を生成するように構成されてもよい。グラフィックユーザインターフェイス(GUI)サーバは、GUI上にグラフィカルに、1つまたは複数の見解報告からの第1の報告と、第1の報告に関連付けられる1つまたは複数のユーザ選択可能な項目とを表示するように構成されてもよく、1つまたは複数のユーザ選択可能な項目は、第1の報告の少なくとも1つの要素を含み得、1つまたは複数のユーザ選択可能な項目のうちの少なくとも1つは、1つまたは複数のフィルタリング基準のうちのあるフィルタリング基準に対応し得る。GUIサーバはまた、1つまたは複数のユーザ選択可能な項目のユーザ選択を受信し、ユーザ選択に基づいてGUI上にグラフィカルに、1つまたは複数の見解報告から第2の報告をグラフィカルに表示することもできる。
【0009】
特定の実施形態では、コンピュータにより実現される方法は、分析システムのイベントコレクタが、ボットシステムとの会話のセットに関連付けられる1つまたは複数のイベントについての1つまたは複数の属性を収集することと、ユーザによって選択された1つまたは複数のフィルタリング基準を用いる分析システムの分析エンジンが、1つまたは複数のイベントについての1つまたは複数の属性に基づいて会話のセットから1つまたは複数の会話を選択することと、分析システムの分析エンジンが、選択された1つまたは複数の
会話に関する1つまたは複数の見解報告を生成することとを含み得る。コンピュータにより実現される方法はまた、GUI上にグラフィカルに、1つまたは複数の見解報告からの第1の報告と、第1の報告に関連付けられる1つまたは複数のユーザ選択可能な項目とを表示することを含み得、1つまたは複数のユーザ選択可能な項目は、第1の報告の少なくとも1つの要素を含み得、1つまたは複数のユーザ選択可能な項目のうちの少なくとも1つは、1つまたは複数のフィルタリング基準のうちのあるフィルタリング基準に対応する。コンピュータにより実現される方法は、GUIを通して1つまたは複数のユーザ選択可能な項目のユーザ選択を受信することと、ユーザ選択に基づいてGUI上でグラフィカルに1つまたは複数の見解報告から第2の報告を表示することとをさらに含むことができる。いくつかの実施形態では、コンピュータにより実現される方法はまた、1つまたは複数のユーザ選択可能な項目のうちのあるユーザ選択可能な項目を通じてユーザ入力を受信することと、ユーザ入力に基づいてボットシステムをトレーニングすることとを含み得る。
【0010】
特定の実施形態では、システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、命令を格納するメモリとを含み得る。命令は、1つまたは複数のプロセッサによって実行されると、システムに、システムのイベントコレクタによって、ボットシステムとの会話のセットに関連付けられる1つまたは複数のイベントについての1つまたは複数の属性を収集させ、ユーザによって選択された1つまたは複数のフィルタリング基準を用いてシステムの分析エンジンによって、1つまたは複数のイベントについての1つまたは複数の属性に基づいて会話のセットから1つまたは複数の会話を選択させ、分析エンジンによって、選択された1つまたは複数の会話に関する1つまたは複数の見解報告を生成させ得る。命令はまた、システムに、GUI上にグラフィカルに、1つまたは複数の見解報告からの第1の報告と、第1の報告に関連付けられる1つまたは複数のユーザ選択可能な項目とを表示させることができ、1つまたは複数のユーザ選択可能な項目は、第1の報告の少なくとも1つの要素を含むことができ、1つまたは複数のユーザ選択可能な項目のうちの少なくとも1つは、1つまたは複数のフィルタリング基準のうちのあるフィルタリング基準に対応し得る。
【0011】
特定の実施形態では、ある方法が提供され、その方法は、分析システムのイベントコレクタが、ボットシステムとの会話のセットに関連付けられる1つまたは複数のイベントについての1つまたは複数の属性を収集することと、ユーザによって選択された1つまたは複数のフィルタリング基準を用いる分析システムの分析エンジンが、1つまたは複数のイベントについての1つまたは複数の属性に基づいて会話のセットから1つまたは複数の会話を選択することと、分析システムの分析エンジンが、選択された1つまたは複数の会話について集約経路図を生成することとを含み、集約経路図は、複数のノードおよび複数のノード間の複数の接続を含み、複数のノードの各ノードは、1つまたは複数の会話中のボットシステムのそれぞれの状態に対応し、各ノードの状態は、1つまたは複数の会話においてその点で必要な機能を提供するボットシステムのコンポーネントを指名し、複数の接続の各接続は、1つまたは複数の会話中のボットシステムの1つの状態からボットシステムの別の状態への遷移を表し、本方法はさらに、集約経路図をGUI上にグラフィカルに表示することを含み、集約経路図を表示することは、各ノードにおける1つまたは複数の会話中のボットシステムの状態に対するユーザコンテキストを提供し、コンテキストは、集約経路図内の他のノードの直前にあるノードの状態、および集約経路図内の各状態のために定義されたコンポーネントを含む。
【0012】
いくつかの実施形態では、1つまたは複数のフィルタリング基準は、未完了の結果を含み、属性は、ダイアログ状態属性、インテント解決属性、エンティティ解決属性、エラーおよびタイムアウト属性、またはそれらの組み合わせであり、集約経路図を表示することは、複数のノードの各ノードをユーザ選択可能な項目として表示することと、複数のノードのうち、未完了の結果をもたらした、1つまたは複数の会話の停止点を示すノードを表
示することとを含む。
【0013】
いくつかの実施形態において、本方法は、さらに、停止点を示すノードの第1のユーザ選択をGUIを通じて受信することと、第1のユーザ選択に基づいてGUI上にグラフィカルに、1つまたは複数の会話を停止する前にボットシステムによって受信された1つまたは複数の発話を表示することとをさらに含む。
【0014】
いくつかの実施形態において、本方法は、さらに、1つまたは複数の会話の1つまたは複数のトランスクリプトに対するユーザ選択可能な項目を第1のユーザ選択に基づいてGUI上にグラフィカルに表示することと、GUIを通じて、1つまたは複数の会話の1つまたは複数のトランスクリプトの第2のユーザ選択を受信することと、第2のユーザ選択に基づいてGUI上にグラフィカルに、1つまたは複数の会話を停止する前に、ユーザとボットシステムとの間の1つまたは複数の会話の1つまたは複数のトランスクリプトを表示することとを含む。
【0015】
いくつかの実施形態において、本方法は、さらに、分析システムが、ボットシステムを、少なくとも、1つまたは複数の会話を停止する前にボットシステムによって受信された1つまたは複数の発話に基づいてトレーニングすることをさらに含む。
【0016】
いくつかの実施形態では、集約経路図は、各それぞれの接続に関連付けられる数を含み、その数は、1つまたは複数の会話のうち、それぞれの接続によって表される遷移を含む会話の総数を示す。
【0017】
いくつかの実施形態において、本方法は、さらに、分析システムの分析エンジンが、選択された1つまたは複数の会話に関する1つまたは複数の報告を生成することと、GUI上にグラフィカルに、1つまたは複数の報告からの第1の報告と、第1の報告に関連付けられる1つまたは複数のユーザ選択可能な項目とを表示することとを含み、1つまたは複数のユーザ選択可能な項目は、会話のセットから特定のエンドユーザのインテントに関連付けられる会話を選択するためのメニューを含み、方法はさらに、GUIを通じて、会話のセットから特定のエンドユーザのインテントに関連付けられる会話のうちのある会話のユーザ選択を受信することと、ユーザ選択に基づいてGUI上にグラフィカルに、1つまたは複数の報告からある会話を含む第2の報告を表示することとを含む。
【0018】
ある実施形態では、1つまたは複数のプロセッサによって実行可能な複数の命令を格納するための非一時的コンピュータ可読メモリが提供され、複数の命令は、1つまたは複数のプロセッサによって実行されると1つまたは複数のプロセッサに処理を実行させる命令を含み、処理は、分析システムのイベントコレクタが、ボットシステムとの会話のセットに関連付けられる1つまたは複数のイベントについての1つまたは複数の属性を収集することと、ユーザによって選択された1つまたは複数のフィルタリング基準を用いる分析システムの分析エンジンが、1つまたは複数のイベントについての1つまたは複数の属性に基づいて会話のセットから1つまたは複数の会話を選択することと、分析システムの分析エンジンが、選択された1つまたは複数の会話について集約経路図を生成することとを含み、集約経路図は、複数のノードおよび複数のノード間の複数の接続を含み、複数のノードの各ノードは、1つまたは複数の会話中のボットシステムのそれぞれの状態に対応し、各ノードの状態は、1つまたは複数の会話においてその点で必要な機能を提供するボットシステムのコンポーネントを指名し、複数の接続の各接続は、1つまたは複数の会話中のボットシステムの1つの状態からボットシステムの別の状態への移行を表し、処理はさらに、集約経路図をGUI上にグラフィカルに表示することを含み、集約経路図を表示することは、各ノードにおける1つまたは複数の会話中のボットシステムの状態に対するユーザコンテキストを提供し、コンテキストは、集約経路図内の他のノードの直前にあるノー
ドの状態、および集約経路図内の各状態のために定義されたコンポーネントを含む。
【0019】
いくつかの実施形態では、1つまたは複数のフィルタリング基準は、未完了の結果を含み、属性は、ダイアログ状態属性、インテント解決属性、エンティティ解決属性、エラーおよびタイムアウト属性、またはそれらの組み合わせであり、集約経路図を表示することは、複数のノードの各ノードをユーザ選択可能な項目として表示することと、複数のノードのうち、未完了の結果をもたらした、1つまたは複数の会話の停止点を示すノードを表示することとを含む。
【0020】
いくつかの実施形態において、処理は、停止点を示すノードの第1のユーザ選択をGUIを通じて受信することと、第1のユーザ選択に基づいてGUI上にグラフィカルに、1つまたは複数の会話を停止する前にボットシステムによって受信された1つまたは複数の発話を表示することとをさらに含む。
【0021】
いくつかの実施形態において、処理は、さらに、1つまたは複数の会話の1つまたは複数のトランスクリプトに対するユーザ選択可能な項目を第1のユーザ選択に基づいてGUI上にグラフィカルに表示することと、GUIを通じて、1つまたは複数の会話の1つまたは複数のトランスクリプトの第2のユーザ選択を受信することと、第2のユーザ選択に基づいてGUI上にグラフィカルに、1つまたは複数の会話を停止する前に、ユーザとボットシステムとの間の1つまたは複数の会話の1つまたは複数のトランスクリプトを表示することとを含む。
【0022】
いくつかの実施形態において、処理は、さらに、分析システムが、ボットシステムを、少なくとも、1つまたは複数の会話を停止する前にボットシステムによって受信された1つまたは複数の発話に基づいてトレーニングすることをさらに含む。
【0023】
いくつかの実施形態では、集約経路図は、各それぞれの接続に関連付けられる数を含み、その数は、1つまたは複数の会話のうち、それぞれの接続によって表される遷移を含む会話の総数を示す。
【0024】
いくつかの実施形態において、処理は、さらに、分析システムの分析エンジンが、選択された1つまたは複数の会話に関する1つまたは複数の報告を生成することと、GUI上にグラフィカルに、1つまたは複数の報告からの第1の報告と、第1の報告に関連付けられる1つまたは複数のユーザ選択可能な項目とを表示することとを含み、1つまたは複数のユーザ選択可能な項目は、会話のセットから特定のエンドユーザのインテントに関連付けられる会話を選択するためのメニューを含み、処理はさらに、GUIを通じて、会話のセットから特定のエンドユーザのインテントに関連付けられる会話のうちのある会話のユーザ選択を受信することと、ユーザ選択に基づいてGUI上にグラフィカルに、1つまたは複数の報告からある会話を含む第2の報告を表示することとを含む。
【0025】
特定の実施形態においては、システムが提供され、そのシステムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに接続されるメモリとを備え、メモリは、1つまたは複数のプロセッサによって実行可能な複数の命令を格納し、複数の命令は、1つまたは複数のプロセッサによって実行されると1つまたは複数のプロセッサに処理を実行させる命令を含み、処理は、分析システムのイベントコレクタが、ボットシステムとの会話のセットに関連付けられる1つまたは複数のイベントについての1つまたは複数の属性を収集することと、ユーザによって選択された1つまたは複数のフィルタリング基準を用いる分析システムの分析エンジンが、1つまたは複数のイベントについての1つまたは複数の属性に基づいて会話のセットから1つまたは複数の会話を選択することと、分析システムの分析エンジンが、選択された1つまたは複数の会話について集約経路図を生成する
こととを含み、集約経路図は、複数のノードおよび複数のノード間の複数の接続を含み、複数のノードの各ノードは、1つまたは複数の会話中のボットシステムのそれぞれの状態に対応し、各ノードの状態は、1つまたは複数の会話においてその点で必要な機能を提供するボットシステムのコンポーネントを指名し、複数の接続の各接続は、1つまたは複数の会話中のボットシステムの1つの状態からボットシステムの別の状態への遷移を表し、本処理はさらに、集約経路図をGUI上にグラフィカルに表示することを含み、集約経路図を表示することは、各ノードにおける1つまたは複数の会話中のボットシステムの状態に対するユーザコンテキストを提供し、コンテキストは、集約経路図内の他のノードの直前にあるノードの状態、および集約経路図内の各状態のために定義されたコンポーネントを含む。
【0026】
いくつかの実施形態では、1つまたは複数のフィルタリング基準は、未完了の結果を含み、属性は、ダイアログ状態属性、インテント解決属性、エンティティ解決属性、エラーおよびタイムアウト属性、またはそれらの組み合わせであり、集約経路図を表示することは、複数のノードの各ノードをユーザ選択可能な項目として表示することと、複数のノードのうち、未完了の結果をもたらした、1つまたは複数の会話の停止点を示すノードを表示することとを含む。
【0027】
いくつかの実施形態において、処理は、停止点を示すノードの第1のユーザ選択をGUIを通じて受信することと、第1のユーザ選択に基づいてGUI上にグラフィカルに、1つまたは複数の会話を停止する前にボットシステムによって受信された1つまたは複数の発話を表示することとをさらに含む。
【0028】
いくつかの実施形態において、処理は、1つまたは複数の会話の1つまたは複数のトランスクリプトに対するユーザ選択可能な項目を第1のユーザ選択に基づいてGUI上にグラフィカルに表示することと、GUIを通じて、1つまたは複数の会話の1つまたは複数のトランスクリプトの第2のユーザ選択を受信することと、第2のユーザ選択に基づいてGUI上にグラフィカルに、1つまたは複数の会話を停止する前に、ユーザとボットシステムとの間の1つまたは複数の会話の1つまたは複数のトランスクリプトを表示することとを含む。
【0029】
いくつかの実施形態において、処理は、さらに、分析システムが、ボットシステムを、少なくとも、1つまたは複数の会話を停止する前にボットシステムによって受信された1つまたは複数の発話に基づいてトレーニングすることをさらに含む。
【0030】
いくつかの実施形態では、集約経路図は、各それぞれの接続に関連付けられる数を含み、その数は、1つまたは複数の会話のうち、それぞれの接続によって表される遷移を含む会話の総数を示す。
【0031】
上記および以下で説明する技術は、いくつかの方法で、およびいくつかの状況で実現され得る。いくつかの例示的な実現例および状況が、以下でより詳細に説明されるように、以下の図面を参照して提供される。しかしながら、以下の実現例および状況は、多くのうちの少数にすぎない。
【図面の簡単な説明】
【0032】
【
図1】様々な実施形態による、メッセージングアプリケーションを用いてエンドユーザと通信するためのボットシステムを実現する分散型システムを示す。
【
図2】様々な実施形態による、ボットシステム、ならびにボットシステムの性能を監視、分析、視覚化、および改善するためのボット分析システムを含む統合システムを示す。
【
図3】様々な実施形態による、ボットシステムの性能を監視、分析、視覚化、および改善するための処理を示す簡略化されたフローチャートである。
【
図4A】様々な実施形態による、ボットシステムを改善するためのデジタルアシスタント見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図4B】様々な実施形態による、ボットシステムを改善するためのデジタルアシスタント見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図4C】様々な実施形態による、ボットシステムを改善するためのデジタルアシスタント見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図5A】様々な実施形態による、ボットシステムを改善するための事業見解のラインを表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図5B】様々な実施形態による、ボットシステムを改善するための事業見解のラインを表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図5C】様々な実施形態による、ボットシステムを改善するための事業見解のラインを表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図5D】様々な実施形態による、ボットシステムを改善するための事業見解のラインを表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図5E】様々な実施形態による、ボットシステムを改善するための事業見解のラインを表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図6A】様々な実施形態による、ボットシステムを改善するためのスキル見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図6B】様々な実施形態による、ボットシステムを改善するためのスキル見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図6C】様々な実施形態による、ボットシステムを改善するためのスキル見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図6D】様々な実施形態による、ボットシステムを改善するためのスキル見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図6E】様々な実施形態による、ボットシステムを改善するためのスキル見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図6F】様々な実施形態による、ボットシステムを改善するためのスキル見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図6G】様々な実施形態による、ボットシステムを改善するためのスキル見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図6H】様々な実施形態による、ボットシステムを改善するためのスキル見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図6I】様々な実施形態による、ボットシステムを改善するためのスキル見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図6J】様々な実施形態による、ボットシステムを改善するためのスキル見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図6K】様々な実施形態による、ボットシステムを改善するためのスキル見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図6L】様々な実施形態による、ボットシステムを改善するためのスキル見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図6M】様々な実施形態による、ボットシステムを改善するためのスキル見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図6N】様々な実施形態による、ボットシステムを改善するためのスキル見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図7A】様々な実施形態による、ボットシステムを改善するための例示的な見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図7B】様々な実施形態による、ボットシステムを改善するための例示的な見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図7C】様々な実施形態による、ボットシステムを改善するための例示的な見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図7D】様々な実施形態による、ボットシステムを改善するための例示的な見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図7E】様々な実施形態による、ボットシステムを改善するための例示的な見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図7F】様々な実施形態による、ボットシステムを改善するための例示的な見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図7G】様々な実施形態による、ボットシステムを改善するための例示的な見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図7H】様々な実施形態による、ボットシステムを改善するための例示的な見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図7I】様々な実施形態による、ボットシステムを改善するための例示的な見解を表示するグラフィカルユーザインターフェイス画面の例を示す。
【
図8】様々な実施形態による、ボットシステムの性能を改善するために見解を用いるための処理を示す簡略化されたフローチャートである。
【
図9】様々な実施形態を実現するための分散型システムの簡略図である。
【
図10】様々な実施形態による、実施形態のシステムの1つまたは複数のコンポーネントによって提供されるサービスがクラウドサービスとして提供され得る、システム環境の1つまたは複数のコンポーネントの簡略ブロック図である。
【
図11】様々な実施形態を実現するために用いられ得る例示的なコンピュータシステムを示す。
【発明を実施するための形態】
【0033】
詳細な説明
以下の説明において、様々な実施形態が記載される。説明を目的として、実施形態についての完全な理解を与えるために、具体的な構成および詳細が述べられる。しかしながら、具体的な詳細がなくとも実施形態が実施され得ることは当業者にとって明らかである。さらにまた、周知の特徴は、記載される実施形態を不明瞭にしないために、省略または簡易化され得る。
【0034】
導入
デジタルアシスタントは、ユーザが自然言語会話において様々なタスクを達成するのを助ける人工知能駆動型インターフェイスである。各デジタルアシスタントについて、顧客は、1つまたは複数のスキルをアセンブルすることができる。スキル(本明細書では、チャットボット、ボット、またはスキルボットとしても記載される)は、在庫の追跡、タイムカードの提出、および経費報告の作成など、特定の種類のタスクに焦点を当てる個々のボットである。エンドユーザがデジタルアシスタントに携わると、デジタルアシスタントは、エンドユーザ入力を評価し、適切なチャットボットに会話をルーティングし、適切なチャットから会話をルーティングする。デジタルアシスタントは、FACEBOOK(登録商標)メッセンジャー、SKYPE MOBILE(登録商標)メッセンジャー、またはショートメッセージサービス(SMS)などの様々なチャネルを介してエンドユーザに利用可能にすることができる。チャネルは、様々なメッセージングプラットフォーム上でエンドユーザからデジタルアシスタントおよびその様々なチャットボットへチャットを行き来させる。チャネルはまた、ユーザエージェント漸増、イベント起動型会話、およびテストをサポートしてもよい。
【0035】
インテントにより、チャットボットは、ユーザがチャットボットに何をして欲しいかを理解することができる。インテントは、発話(例えば、口座残高を入手する、購入を行うなど)とも称される、典型的なユーザ要求およびステートメントの順列から構成される。
本明細書で用いられる場合、発話またはメッセージは、チャットボットとの会話の間に交換される単語のセット(たとえば、1つまたは複数の文)を指し得る。インテントは、何らかのユーザアクション(例えば、ピザを注文する)を示す名前を提供し、そのアクションをトリガすることに一般に関連付けられる実生活ユーザステートメントまたは発話のセットをコンパイルすることによって、作成されてもよい。チャットボットの認知は、これらのインテントから導き出されるので、各インテントは、ロバストな(1から二十数個の発話)であるデータセットから作成され、チャットボットがあいまいなユーザ入力を解釈できるように、変動してもよい。豊富な発話のセットは、チャットボットが、「この注文は無視して」または「配達は取りやめて!」のような、同じものを意味するが異なって表現されるメッセージを受信したときに、ユーザが何を望むかを理解することを可能にする。集合的に、インテントおよびそれらに属する発話は、チャット用のトレーニングコーパスを構成する。コーパスを用いてモデルをトレーニングすることによって、顧客は、そのモデルを、本質的に、エンドユーザ入力を単一のインテントに解決するための参照ツールに変換することができる。顧客は、インテントテストおよびインテントトレーニングの循環を通じてチャットの認知の鋭敏さを改善することができる。
【0036】
しかしながら、エンドユーザ発話に基づいてエンドユーザのインテントを判断することができるチャットボットを構築することは、一部には、自然言語の微妙さおよびあいまいさならびに入力空間の次元(例えば、考えられるユーザ発話)および出力空間のサイズ(インテントの数)に起因して、困難なタスクである。したがって、チャットボットは、チャットボットの性能およびチャットボットでのユーザ経験を改善するために、トレーニングされ、監視され、デバッグされ、再トレーニングされる必要があり得る。従来のシステムでは、デジタルアシスタントまたはチャットボットをトレーニングおよび再トレーニングするために設計システムにハードコード化された本質的にデフォルトのトレーニングモデルであるトレーニングモデルが提供される。例えば、小さいトレーニングコーパスを必要とするだけである第1のモデルが提供され得、したがって、それは、マッチングルールを用いて、エンティティ、インテントおよびトレーニングコーパスを開発し得る。テストが極めて正確なインテント解決を明らかにする点までトレーニングコーパスが成熟すると、第2のモデルを用いて、単語ベクトルおよび他のテキストベースの特徴に基づく機械学習を用いてトレーニングすることによって、チャットボットの認知に対して、より深い次元を追加してもよい。これらのデフォルトトレーニングモデルは、通常、採用されるトレーニング方法において柔軟性がない。したがって、チャットボットの所望よりも低い性能の根本原因を特定し、トレーニングに対するより柔軟なアプローチを伴わずにチャットボットをどのように改善するかを判断することは困難であり得る。
【0037】
分析システムは、エンドユーザとボットシステムとの間の会話の間に生じたイベントを監視し、収集されたイベントを集約および分析し、分析に基づいて、インテント分類の性能を含むボットシステムの性能を改善するために用いられ得る情報をユーザに提供するために、ボットシステムと統合されてもよい。しかしながら、(i)これらのシステムは、典型的には、所望の性能よりも低い性能の根本原因を識別せず(代わりに、それらは、期間nにわたるインテントx回数を識別できなかったボットAなどの情報を提供する)、情報から問題の根本原因を識別するのは顧客次第であり、(ii)これらのタイプの分析システムは、数百または数千のボットがボットシステム内で用いられている場合、非効果的になり得る。
【0038】
したがって、これらの問題に対処するために異なるアプローチが必要である。様々な実施形態において、分析システムは、ボットシステムと統合されてもよい。分析システムは、会話ログおよび履歴を収集し、ボットシステムとの個々のおよび/または集約されたエンドユーザ会話に関連する情報を、会話の異なる段階または状態を表す異なるノードを含む経路として定めることができる。例えば、ボットシステムとのエンドユーザ会話は、状
態から状態への遷移を示す経路によって表されてもよく、各状態は、経路上のノードによって表されてもよい。ボットシステムとのユーザ会話の統計は、各ノードについて生成されてもよい。経路は、(i)ダイアログフローの、インテントに特有の経路を、所与の期間にわたって流される会話の数、(ii)各状態間で維持される会話の数、および会話が、値が設定される(または設定されない)ために分岐したかまたは機能不全のカスタムコンポーネントのような何らかの他の問題のために行き詰まったためにとられる異なる実行経路、ならびに(iii)会話の最終的な成功または失敗への見解を提供する最終状態を含む。分析ツールは、次いで、各経路およびノードについて生成された情報を用いて、インテント/経路を担うボットシステムまたは個々のボットを再トレーニングすることができる。
【0039】
いくつかの実施形態では、分析システムのイベントコレクタは、ボットシステムとの会話のセットに関連付けられる1つまたは複数のイベントについての1つまたは複数の属性を収集することができる。イベントコレクタは、所望のイベントに対する所望の属性を選択的に収集するように再構成可能である。1つまたは複数のイベントは、たとえば、会話イベント、ボット状態イベント、インテント解決イベント、エンティティ解決イベント、エラーイベント、タイムアウトイベント、またはカスタムイベントのうちの少なくとも1つを含み得る。その後、分析システムの分析エンジンは、ユーザによって選択された1つまたは複数のフィルタリング基準を用いて、イベントコレクタによって収集された1つまたは複数のイベントに対する1つまたは複数の属性に基づいて、会話のセットから1つまたは複数の会話を選択してもよい。1つまたは複数のフィルタリング基準は、たとえば、特定の状態で終了した会話、特定の状態から開始した会話、完了したまたは未完了の会話、特定のエンドユーザのインテントに関連付けられる会話、特定のチャネルまたはロケールからの会話、特定の期間中に生じた会話などを含み得る。選択された1つまたは複数の会話について、分析エンジンは、会話のセットの統計、特定のエンドユーザのインテントに関連付けられる会話の統計、完了会話の統計、未完了会話の統計、エンドユーザのインテントが判断されない会話の統計、またはそれらの任意の組合せを計算することができる。分析エンジンは、計算された統計に基づいてボットシステムを改善するためのオプションを生成することができる。
【0040】
いくつかの実施形態では、分析エンジンは、選択された1つまたは複数の会話について集約経路図を生成することができる。集約経路図は、複数のノードと、複数のノード間の複数の接続とを含み得る。複数のノードの各々は、ボットシステムのそれぞれの状態に対応することができる。複数の接続の各々は、ボットシステムの1つの状態からボットシステムの別の状態への遷移を表すことができる。複数のノードは、開始ノードおよび終了ノードを含み得る。いくつかの実施形態では、集約経路図は、各それぞれの接続に関連付けられる数を含むことができ、その数は、それぞれの接続によって表される遷移を含む会話の総数を示すことができる。
【0041】
分析エンジンは、統計を集約経路図に組み込んで、所与の期間にわたって、ダイアログフローの、インテントに特有の経路を流れた会話の数、各状態間で維持される会話の数、および会話が、値が設定される(または設定されない)ために分岐したかまたは機能不全のカスタムコンポーネントのような何らかの他の問題のために行き詰まったためにとられる異なる実行経路などの、追加情報を判断することができる。任意選択で、ボットシステムは、統計および集約経路図を用いて再トレーニングされて、ボットシステムのインテント分類モデルを再トレーニングしてユーザのインテントをより正確に判断することなど、ボットシステムの性能を向上させてもよい。
【0042】
いくつかの実施形態では、グラフィカルユーザインターフェイス(GUI)は、ボットシステムとの個々のおよび/または集約されたエンドユーザ会話に関連する情報を、会話
の異なるステージまたは状態を表す異なるノードを含む経路として表示することができる。例えば、ボットシステムとのエンドユーザ会話は、状態から状態への遷移を示す経路によって表されてもよく、各状態は、経路上のノードによって表されてもよい。ボットシステムとのユーザ会話の統計が生成され、GUIを通じてグラフィカルに表示されてもよい。分析システムによる経路可視化は、管理者または開発者が、異なる基準に基づいて、ボットシステムとのエンドユーザ会話のグループをフィルタリングまたは選択することを可能にし得る。分析システムはまた、ボットシステムの管理者または開発者が対象の個々の会話を選択して検討するためのオプションを提供してもよい。視覚化された経路情報は、ボットシステムの管理者または開発者が、エンドユーザがボットシステムとどのように対話しているか、およびボットシステムが会話中にどのように実行されるかを視覚的に監視および分析して、ボットシステムの期待以下の要素および可能性のある改善点を特定することを可能にし得る。
【0043】
上述のように、分析システムは、GUIを介して、すべての会話、ある基準を満たす会話、特定のインテントまたは終了状態に関連付けられる会話、および個々の会話を含んで、異なる一般化レベルでボットシステムとのエンドユーザ会話に関する情報を提供することができる。したがって、分析システムは、ボットシステムの管理者または開発者が、未完了の会話または不成功の会話に関連付けられる特定のエンドユーザの発話およびインテントを識別し、したがって、ボットシステムの期待以下の要素を識別し、改善することを可能にし得る。ボットシステムの性能を分析し改善することによって、ボットシステムとのエンドユーザ体験が改善され得る。
【0044】
ボットおよび分析システム
ボット(スキル、チャットボット、チャターボット、またはトークボットとも称される)は、エンドユーザとの会話を実行することができるコンピュータプログラムである。ボットは一般に、自然言語メッセージを用いるメッセージングアプリケーションを通じて自然言語メッセージ(例えば質問またはコメント)に応答することができる。企業は、1つまたは複数のボットシステムを用いて、メッセージングアプリケーションを通じてエンドユーザと通信し得る。メッセージングアプリケーションは、チャネルと呼ばれることもあり、エンドユーザが既にインストールし、慣れ親しんでいる、エンドユーザの好みのメッセージングアプリケーションであり得る。したがって、エンドユーザは、ボットシステムとチャットするために新たなアプリケーションをダウンロードおよびインストールする必要がない。メッセージングアプリケーションは、例えば、オーバーザトップ(OTT)メッセージングチャネル(例えば、Facebook Messenger, Facebook WhatsApp, WeChat, Line, Kik, Telegram, Talk, Skype, Slack,またはSMS)、バーチャルプライベートアシスタント(例えば、Amazon Dot, Echo,またはShow, Google(登録商標) Home, Apple HomePodなど)、チャット機能を有するネイティブもしくはハイブリッド/応答モバイルアプリ
もしくはウェブアプリケーションを拡張するモバイルおよびウェブアプリ拡張、または音声ベースの入力(例えば、Siri, Cortana, Google Voice、または対話のための他の音声
入力を用いるインターフェイスを有するデバイスもしくはアプリ)を含むことができる。
【0045】
いくつかの例では、ボットシステムは、統一資源識別子(URI)に関連付けられ得る。URIは、文字列を用いてボットシステムを識別することができる。URIは、1つまたは複数のメッセージングアプリケーションシステムのためのウェブフックとして用いられ得る。URIは、例えば、統一資源位置指定子(URL)または統一資源名(URN)を含むことができる。ボットシステムは、メッセージングアプリケーションシステムからメッセージ(例えば、ハイパーテキスト転送プロトコル(HTTP)ポストコールメッセージ)を受信するように設計されてもよい。HTTPポストコールメッセージは、メッセージングアプリケーションシステムからURIに向けられてもよい。いくつかの実施形態では、メッセージはHTTPポストコールメッセージとは異なり得る。例えば、ボットシ
ステムは、ショートメッセージサービス(SMS)からメッセージを受信し得る。本明細書における議論は、ボットシステムがメッセージとして受信する通信に言及し得るが、メッセージは、HTTPポストコールメッセージ、SMSメッセージ、または2つのシステム間の任意の他のタイプの通信であり得ることを理解されたい。
【0046】
エンドユーザは、人々間の対話のように、会話による対話(会話によるユーザインターフェイス(UI)と呼ばれることもある)を通じてボットシステムと対話することができる。場合によっては、対話は、エンドユーザがボットに「Hello(こんにちは)」と言い
、ボットが「Hi(やあ)」と応答し、エンドユーザをどのように支援できるかをエンドユーザに問い合わせることを含んでもよい。場合によっては、対話はまた、例えば、ある口座から別の口座へ送金するなど、銀行ボットとの取引対話;たとえば、バケーションバランスのチェックなど、HRボットとの情報対話;または、例えば、購入した商品を返品するもしくは技術的サポートを求める議論など、小売店ボットとの対話であってもよい。
【0047】
いくつかの実施形態では、ボットシステムは、ボットシステムの管理者または開発者との対話なしにエンドユーザ対話を知的に扱うことができる。例えば、エンドユーザは、所望の目標を達成するために、ボットシステムに1つまたは複数のメッセージを送信してもよい。メッセージは、テキスト、絵文字、オーディオ、画像、ビデオ、またはメッセージを伝達する他の方法など、あるコンテンツを含み得る。いくつかの実施形態では、ボットシステムは、コンテンツを標準化された形式(例えば、適切なパラメータを有する企業サービスに対するrepresentational state transfer(REST)コール)に変換し、自然
言語応答を生成することができる。ボットシステムはまた、追加の入力パラメータをエンドユーザに促すか、または他の追加の情報を要求することもできる。いくつかの実施形態では、ボットシステムはまた、エンドユーザ発話に受動的に応答するのではなく、エンドユーザとの通信を開始してもよい。本明細書では、ボットシステムの明示的な呼び出しを識別し、呼び出されるボットシステムに対する入力を決定するための様々な技術が説明される。ある実施形態では、明示的な呼び出し分析は、発話における呼び出し名の検出に基づいて、マスタボットによって実行される。呼び出し名の検出に応答して、発話は、呼び出し名に関連付けられるスキルボットへの入力のために精緻化されてもよい。
【0048】
ボットとの会話は、複数の状態を含む特定の会話フローに従うことができる。フローは、入力に基づいて次に起こるものを定義することができる。いくつかの実施形態では、ユーザが定義した状態(例えば、エンドユーザのインテント)と、状態において、または状態から状態にとるべきアクションとを含む状態機械を用いて、ボットシステムを実現することができる。会話は、エンドユーザ入力に基づいて異なる経路をとることができ、これは、ボットがフローについて行う決定に影響を及ぼし得る。例えば、各状態において、エンドユーザ入力または発話に基づいて、ボットは、エンドユーザのインテントを判断して、次にとるべき適切なアクションを決定することができる。本明細書において、および発話の文脈において、「インテント」という語は、発話を与えたユーザのインテントを指す。例えば、ユーザは、ピザを注文するために会話でボットに関わるつもりであり、ユーザのインテントは、「ピザを注文して」という発話によって表現されてもよい。ユーザのインテントは、ユーザがユーザに代わってチャットボットに実行して欲しい特定のタスクに向けられ得る。したがって、発話は、ユーザのインテントを反映する質問、コマンド、要求などとして表現することができる。インテントは、エンドユーザが達成することを望む目標を含むことができる。
【0049】
チャットの構成の文脈において、「インテント」という語は、本明細書では、ユーザの発話を、チャットボットが実行できる特定のタスク/アクションまたはタスク/アクションのカテゴリにマッピングするための設定情報を指すために用いられる。発話のインテント(すなわち、ユーザのインテント)とチャットボットのインテントとを区別するために
、後者を本明細書では「ボットインテント」と呼ぶことがある。ボットインテントは、そのインテントに関連付けられる1つまたは複数の発話のセットを含むことができる。例えば、ピザを注文することに対するインテントは、ピザの注文を行う要望を表す発話の様々な順列を有することができる。これらの関連付けられた発話は、チャットボットのインテント分類器をトレーニングするために用いられ得、インテント分類器が、その後、ユーザからの入力発話がピザ注文インテントと一致するかどうかを判断することを可能にする。ボットインテントは、ユーザとある状態において会話を開始するための1つまたは複数のダイアログフローに関連付けられ得る。例えば、ピザ注文インテントに関する第1のメッセージは、「どの種類のピザがよろしいですか?」という質問であり得る。関連付けられた発話に加えて、ボットインテントは、さらに、そのインテントに関連する指名されたエンティティを含み得る。例えば、ピザ注文インテントは、ピザを注文するタスクを実行するために用いられる変数またはパラメータ、例えば、トッピング1、トッピング2、ピザの種類、ピザサイズ、ピザ数量などを含み得る。エンティティの値は、典型的には、ユーザとの会話を通じて取得される。
【0050】
図1は、例示的な実施形態を組み込んだ分散環境100の簡略ブロック図である。分散環境100は、企業がユーザのためにデジタルアシスタントを作成および展開することを可能にするデジタルアシスタントビルダープラットフォーム(DABP)102を備える。本開示の目的のために、「デジタルアシスタント」は、デジタルアシスタントのユーザが自然言語会話を通じて様々なタスクを達成するのに役立つエンティティである。デジタルアシスタントは、ソフトウェアのみ(たとえば、デジタルアシスタントは、1つまたは複数のプロセッサによって実行可能なプログラム、コード、または命令を用いて実現されるデジタルエンティティである)を用いて、ハードウェアを用いて、またはハードウェアとソフトウェアとの組み合わせを用いて、実現されてもよい。デジタルアシスタントは、コンピュータ、携帯電話、腕時計、器具、車両など、様々な物理的システムもしくはデバイスにおいて具現化または実現されてもよい。デジタルアシスタントは、チャットボットシステムとも称されることもある。DABP102は、1つまたは複数のデジタルアシスタント(またはDA)106を作成するために用いられ得る。DABP102は、複数の企業によって用いられて、複数の企業のユーザのためのデジタルアシスタントを作成することができる。例えば、
図1に示されるように、特定の企業を表すユーザ104は、DABP102を用いて、特定の企業のユーザのためのデジタルアシスタント106を作成および展開することができる。例えば、レストラン(例えば、ピザショップ)の所有者は、DABP102を用いて、レストランの顧客が食べ物を注文すること(例えば、ピザを注文すること)を可能にするデジタルアシスタントを作成および展開することができる。
【0051】
デジタルアシスタント106が展開されると、ユーザ108は、デジタルアシスタント106を用いて、デジタルアシスタント106との自然言語ベースの会話を介して様々なタスクを実行することができる。会話の一部として、ユーザ108は、1つまたは複数のユーザ入力110を提供し、デジタルアシスタント106から返答112を得ることができる。これらの会話を介して、ユーザは、1つまたは複数のタスクがデジタルアシスタント106によって実行されるよう要求することができ、それに応答して、デジタルアシスタント106は、ユーザ要求タスクを実行し、ユーザに適切な応答で応答するように構成される。
【0052】
ユーザ入力110は自然言語であり、発話と呼ばれる。ユーザ発話は、テキスト形式(例えば、ユーザがデジタルアシスタント106への入力として何かをタイプする場合)または聴覚的入力もしくは音声形式(例えば、ユーザが何かをデジタルアシスタント106への入力として言う場合)とすることができる。発話は、典型的には、ユーザ108によって話される言語である。ユーザ入力110が音声形式である場合、音声入力はその特定の言語のテキスト形式発話に変換され、テキスト発話はデジタルアシスタント106によ
って処理される。様々な音声-テキスト処理技術を用いて、音声または聴覚的入力をテキスト発話に変換してもよく、テキスト発話は、その後、デジタルアシスタント106によって処理される。
【0053】
ユーザ108によって入力される、または音声入力をテキスト形式に変換することによって生成されるテキスト発話は、テキストフラグメント、文、複数の文などであり得る。デジタルアシスタント106は、テキスト発話に自然言語理解(NLU)技術を適用して、ユーザ入力の意味を理解するように構成される。発話に対するNLU処理の一部として、デジタルアシスタント106は、発話の意味を理解するための処理を実行するように構成され、これは、発話に対応する1つまたは複数のインテントおよび1つまたは複数のエンティティを識別することを伴う。発話の意味を理解すると、デジタルアシスタント106は、理解された意味またはインテントに応答して1つまたは複数のアクションまたは動作を実行することができる。
【0054】
例えば、ユーザ入力110は、例えば「私はピザを注文したい」のようにピザが注文されることを要求してもよい。デジタルアシスタント106は、発話の意味を理解し、ユーザが注文することを望むピザのタイプ、ピザのサイズ、ピザの任意のトッピングなどに対するユーザ入力を要求する質問でユーザに応答することを伴い得る適切なアクションをとるように構成される。デジタルアシスタント106によって提供される応答112はまた、デジタルアシスタント106によって実行される自然言語生成(NLG)処理を含み得る、自然言語の形態であってもよい。デジタルアシスタント106がユーザから必要な情報を得ると、デジタルアシスタント106は、ピザを注文させる。デジタルアシスタント106は、ピザが注文されたことを示す情報を出力することによって、ユーザとの会話を終了することができる。
【0055】
特定の実施形態では、デジタルアシスタント106によって入力として受信される発話は、処理ステップの連なりまたはパイプラインを通過する。これらのステップは、例えば、発話を解析すること、発話の意味を理解すること、発話を精査および修正して発話のより理解しやすい構造を展開すること、発話に応答して実行されるアクションを決定すること、アクションを実行させること、ユーザ発話に応答してユーザに出力される応答を生成すること、ユーザに出力する応答を出力すること、などを含み得る。
【0056】
デジタルアシスタント106などのデジタルアシスタントによって実行されるNLU処理は、文解析(例えば、トークン化、並べ換え、文に対する品詞タグの識別、文における固有表現の識別、文構造を表すための依存関係ツリーの生成、文の節への分割、個々の節の分析、照応形の解決、チャンク化の実行など)などの様々なNLP関連処理を含み得る。デジタルアシスタント106は、NLPエンジンおよび/または機械学習モデル(たとえば、インテント分類器)を用いて、エンドユーザ発話を特定のインテント(例えば、チャットボットが実行できる特定のタスク/アクションまたはタスク/アクションのカテゴリ)にマッピングすることができる。例えば、機械学習ベースのNLPエンジンは、エンドユーザからの自然言語会話を理解および分類し、トランザクションを実行すること、またはレコードのバックエンドシステムからデータを検索することなど、正確なアクションをとることができるように、会話から必要な情報を抽出するように学習することができる。ある実施形態では、NLU処理またはその一部は、デジタルアシスタント106自体によって実行される。いくつかの他の実施形態では、デジタルアシスタント106は、他のリソースを用いて、NLU処理の一部を実行することができる。例えば、文の構文および構造は、構文解析、品詞タグ付け、および/または固有表現認識を用いて文を処理することによって識別されてもよい。一実現例では、英語の場合、文構造および構文を解析するために、Stanford Natural Language Processing (NLP) Groupによって提供される構文解析、品詞タグ付け、および/または固有表現認識が用いられる。これらは、Stanford Cor
eNLPツールキットの一部として提供される。
【0057】
本開示で提供される様々な例は英語の発話を示すが、これは単なる例として意味される。特定の実施形態では、デジタルアシスタント106は、英語以外の言語で発話を処理することもできる。特定の実施形態では、デジタルアシスタント106は、異なる言語に対する処理を実行するように構成されたサブシステム(例えば、NLU機能を実現するコンポーネント)を提供する。これらのサブシステムは、NLUコアサーバからのサービスコールを用いて呼び出され得るプラグ可能ユニットとして実現されてもよい。これは、NLU処理を、異なる順序の処理を可能にすることを含めて、各言語に対して柔軟かつ拡張可能にする。言語パックは、個々の言語に対して提供されてもよく、言語パックは、NLUコアサーバから提供され得るサブシステムのリストを登録することができ、必要に応じて、提供される汎用サブシステムをも利用することができる。
【0058】
デジタルアシスタント106などのデジタルアシスタントは、限定はしないが、特定のアプリケーションを介して、ソーシャルメディアプラットフォームを介して、様々なメッセージングサービスおよびアプリケーションを介して、ならびに他のアプリケーションまたはチャネルを介してなど、様々な異なるチャネルを介してそのユーザに利用可能にすることができる。単一のデジタルアシスタントは、それのためにいくつかのチャネルを構成することができるので、異なるサービス上で同時に実行され、異なるサービスによって同時にアクセスされることができる。
【0059】
デジタルアシスタントは、1つもしくは複数のスキルを含むか、または1つもしくは複数のスキルに関連付けられる。ある実施形態では、これらのスキルは、ユーザと対話し、在庫の追跡、タイムカードの提出、経費報告の作成、食品の注文、銀行口座の確認、予約の作成、ウィジェットの購入などの特定の種類のタスクを満たすように設計された個々のチャットボット(スキルボットと呼ばれる)である。例えば、
図1に示す実施形態では、デジタルアシスタント106は、スキル116-1、116-2、…を含む。本開示の目的のために、「スキル」という語は、「スキルボット」という語と同義的に用いられる。
【0060】
デジタルアシスタントに関連付けられる各スキルは、ユーザとの会話を通じて、デジタルアシスタントのユーザがタスクを完了するのを助け、会話は、ユーザによって提供されるテキストまたは聴覚的入力と、スキルボットによって提供される応答との組み合わせを含むことができる。これらの応答は、ユーザへのテキストメッセージもしくは聴覚メッセージの形態、および/またはユーザが選択を行うようユーザに提示される単純なユーザインターフェイス要素(たとえば、選択リスト)を用いる形態であってもよい。
【0061】
スキルまたはスキルボットをデジタルアシスタントに追加できる様々な方法がある。ある例では、スキルボットは企業によって開発され、次いでDABP102を用いてデジタルアシスタントに追加され得る。他の例では、スキルボットは、DABP102を用いて開発および作成され、次いで、DABP102を用いて作成されたデジタルアシスタントに追加され得る。さらに他の例では、DABP102は、広範囲のタスクに向けられた複数のスキルを提供するオンラインデジタルストア(「スキルストア」と呼ばれる)を提供する。スキルストアを通じて提供されるスキルは、様々なクラウドサービスを公開することができる。DABP102のユーザ104は、DABP102を介してスキルストアにアクセスし、所望のスキルを選択し、選択されたスケールを、DABP102を用いて作成されたデジタルアシスタントに追加することができる。スキルストアからのスケールは、そのまま、または修正された形態でデジタルアシスタントに追加することができる(例えば、DABP102のユーザは、スキルストアによって提供される特定のスキルを選択してクローニングし、選択されたスキルボットをカスタマイズまたは修正し、次いで、修正されたスキルボットを、DABP102を用いて作成されたデジタルアシスタントに追
加することができる)。
【0062】
ある実施形態では、DABP102を用いて作成および展開されるデジタルアシスタントは、マスタボット/子(もしくはサブ)ボットパラダイムまたはアーキテクチャを用いて実現される。このパラダイムによれば、デジタルアシスタントは、スキルボットである1つまたは複数の子ボットと対話するマスタボットとして実現される。例えば、
図1に示す実施形態では、デジタルアシスタント106は、マスタボット114と、マスタボット114の子ボットであるスキルボット116-1、116-2などとを含む。ある実施形態では、デジタルアシスタント106自体がマスタボットとして機能する。
【0063】
マスタ-子ボットアーキテクチャに従って実現されるデジタルアシスタントは、デジタルアシスタントのユーザが統合されたユーザインターフェイスを介して複数のスキルと対話することを可能にする。ユーザがデジタルアシスタント106に関与すると、ユーザ入力はマスタボット114によって受信され、マスタボット114は、ユーザ要求を識別するためにユーザ入力を処理し、処理に基づいて、ユーザ要求タスクがマスタボット114自体によって処理され得るかどうかを判断し、そうでなければ、マスタボット114はユーザ要求を処理するために適切なスキルボット116-1、2、または3を選択し、選択されたスキルボット116-1、2、または3に会話をルーティングする。これは、ユーザ108が、共通の単一のインターフェイスを介して、特定のタスクを実行するように構成されたいくつかのスキルボットと対話し、それらを用いることを可能にする。例えば、企業のために開発されたデジタルアシスタント106の場合、デジタルアシスタント106のマスタボット114は、特定の機能を有するスキルボット116-1、116-2など、たとえば、顧客関係管理(CRM)に関連する機能を実行するためのCRMボット、企業資源計画(ERP)に関連する機能を実行するためのERPボット、人的資本管理(HCM)に関連する機能を実行するためのHCMボットなどとインターフェイスすることができる。このように、デジタルアシスタント106のエンドユーザまたは消費者108は、デジタルアシスタント106にどのようにアクセスするかを知るだけでよい。
【0064】
マスタボット/子ボットインフラストラクチャにおいては、マスタボットは、スキルボットのリストを意識するように構成される。マスタボットは、様々な利用可能なスキルボットを識別するメタデータにアクセスすることができ、各スキルボットについて、各スキルボットによって実行することができるタスクを含む各スキルボットの能力にアクセスすることができる。ユーザ要求を発話の形態で受信すると、マスタボットは、複数の利用可能なスキルボットから、ユーザ要求を最もよく処理もしくは取り扱うことができる特定のスキルボットを識別または予測するように構成される。次いで、マスタボットは、その発話(またはその発話の一部分)を、さらなる処理のために、その特定のスキルボットにルーティングする。従って、制御はマスタボットからスキルボットに流れる。マスタボットは、複数の入力および出力チャネルをサポートすることができる。
【0065】
図1の実施形態は、マスタボット114ならびにスキルボット116-1、116-2、および116-3を備えるデジタルアシスタント106を示すが、これは限定を意図するものではない。デジタルアシスタントは、デジタルアシスタントの機能を提供する様々な他のコンポーネント(例えば、他のシステムおよびサブシステム)を含むことができる。これらのシステムおよびサブシステムは、ソフトウェア(例えば、コンピュータ可読媒体上に記憶され、1つまたは複数のプロセッサによって実行可能なコード、命令)のみ、ハードウェアのみ、またはソフトウェアとハードウェアとの組み合わせを用いる実現例において実現されてもよい。
【0066】
DABP102は、DABP102を用いて、デジタルアシスタントに関連付けられる1つまたは複数のスキルボットを含むデジタルアシスタントを作成することを可能にする
インフラストラクチャならびに様々なサービスおよび特徴を提供する。例えば、あるスキルボットは、既存のスキルボットをクローニングし、既存のスキルボットをクローニングし、次いで、スキルボットに修正を施すことによって作成することができ、またはDABP102によって提供されるツールおよびサービスを用いてゼロから作成することができる。ある実施形態では、DABP102は、様々なタスクを実行するための複数のスキルボットを提供するスキルストアまたはスキルカタログを提供する。DABP102のユーザは、スキルストアからスキルボットをクローニングし、新たなスキルボットを作成することができる。
【0067】
DABP102はまた、ユーザ(例えば、スキルボット設計者)がゼロからスキルボットを作成することを可能にする。特定の実施形態では、ある高次レベルにおいて、スキルボットを作成することは、以下のステップを含む:
(1)新たなスキルボットに対する設定を設定する
(2)スキルボットに対する1つまたは複数のインテントを設定する
(3)1つまたは複数のインテントに対するエンティティを設定する
(4)スキルボットをトレーニングする
(5)スキルボットのためのダイアログフローを作成する
(6)カスタムコンポーネントをスキルボットに追加する
(7)スキルボットをテストおよび展開する。
【0068】
(1)新たなスキルボットに対する設定を設定する-スキルボット設計者は、作成されているスキルボットの1つまたは複数の呼び出し名を指定することができる。これらの呼び出し名は、デジタルアシスタントにおいてスキルボットを明示的に識別し、呼び出すよう、発話において用いることができる。スキルボット設計者は、スキルボットに対して、例示的な発話を指定することもできる。これらの例示的な発話は、スキルボットに対する発話を表す。ユーザ入力が受信されると、デジタルアシスタントのインテント分析エンジンは、ユーザ入力をこれらの例示的な発話と比較し、特定のスキルボットが呼び出されるかどうかを判断する。
【0069】
(2)スキルボットに対する1つまたは複数のインテントを設定する-スキルボット設計者は、作成されているスキルボットに対する1つまたは複数のインテント(ボットインテントとも称される)を設定することができる。これらのインテントは、スキルボットがデジタルアシスタントのユーザに対して実行することができるタスクを識別する。各インテントには名前が与えられる。例えば、ユーザが様々な銀行取引を行うのに役立つように構成されたスキルボットの場合、スキルボットの設計者は、「CheckBalance(残高照会)」、「TransferMoney(送金)」、「DepositCheck(小切手を預け入れる)」などのイン
テントをスキルボットに対して指定することができる。各インテントについて、スキルボット設計者は、インテントの意味を表しかつ示し、典型的には、そのインテントによって実行されるタスクに関連付けられる例示的な発話のセットを指定する。例えば、残高照会のインテントについては、例示的な発話は、「What's my savings account balance?(私の普通預金口座の残高は?)」、「How much is in my checking account?(私の当座預
金口座にはいくらありますか?)」、「How much money do I have in my account(私の口座にはいくらのお金がありますか?)」などを含むことができる。したがって、典型的なユーザ要求およびステートメントの順列は、インテントに対する例示的な発話として指定され得る。
【0070】
(3)スキルボットの1つまたは複数のインテントに対するエンティティを設定する-いくつかの事例では、スキルボットがユーザ要求に適切に応答することを可能にするために、追加のコンテキストが必要であり得る。例えば、ユーザ入力発話が、スキルボットにおいて同じインテントに解決する状況があり得る。例えば、上記の例では、発話「What's
my savings account balance?(私の普通預金口座の残高は?)」および「How much is in my checking account?(私の当座預金口座にはいくらありますか?)」は両方とも、
同じ残高照会のインテントに解決しているが、これらの発話は、異なることを望む異なる要求である。そのような要求を明確にするために、1つまたは複数のエンティティがインテントに追加される。銀行業務スキルの例を用いると、エンティティは、「checking(当座)」および「saving(普通)」と呼ばれる値を定義するAccountType(口座種類)と呼
ばれるエンティティは、スキルボットがユーザ要求を解析し、適切に応答することを可能にし得る。1つまたは複数のエンティティは、スキルボットに対して設定された特定のインテントのために指定され得る。したがって、エンティティは、コンテキストをインテント自体に追加するために用いられる。エンティティは、インテントをより充分に記述するのに役立ち、スキルがユーザ要求を完了できるようにする。ある実施形態では、2種類のエンティティ、すなわち、(a)DABP102によって提供される組込みエンティティ、および(2)スキルボット設計者によって指定され得るカスタムエンティティがある。組込みエンティティは、多種多様なボットとともに用いることができる汎用エンティティである。組込みエンティティの例は、限定はしないが、時間、日付、アドレス、番号、電子メールアドレス、持続時間、循環期間、通貨、電話番号、URLなどに関連するエンティティを含む。カスタムエンティティは、よりカスタマイズされた用途に用いられる。例えば、銀行業務スキルについては、口座種類エンティティは、スキルボット設計者によって、当座、普通およびクレジットカードなどのようなキーワードについてユーザ入力をチェックすることによって様々な銀行取引を可能にするよう定義され得る。
【0071】
(4)スキルボットをトレーニングする-スキルボットは、ユーザ入力を受信し、受信した入力を解析またはその他の方法で処理し、受信したユーザ入力に関連するインテントを識別または選択するように構成される。これが生じるためには、スキルボットをトレーニングしなければならない。ある実施形態では、スキルボットは、スキルボットに対して設定されたインテント、およびそのインテントに関連付けられる例示的な発話(集合的にトレーニングデータと称する)に基づいてトレーニングされ、それにより、スキルボットは、ユーザ入力を、スキルボットの設定されたインテントの1つに解決することができる。特定の実施形態では、スキルボットは、トレーニングデータを用いてトレーニングされ、ユーザが何を言っているか(または場合によっては、何を言おうとしているか)をスキルボットが識別することを可能にするモデルによって表される。DABP102は、DAGベースのフレームワークに関して本明細書で詳細に説明されるように、様々な機械学習ベースのトレーニング技術、ルールベースのトレーニング技術、および/またはそれらの組み合わせを含む、スキルボットをトレーニングするためにスキルボット設計者によって用いられ得る様々な異なるトレーニング技術を提供する。ある実施形態では、トレーニングデータの一部分(例えば80%)は、スキルボットモデルをトレーニングするために用いられ、別の部分(例えば残りの20%)は、モデルをテストまたは検証するために用いられる。トレーニングされると、スキルボットは、ユーザ発話に対処および応答するよう用いられ得る。ある場合には、ユーザの発話は、単一の回答だけを必要とし、さらなる会話を必要としない質問であり得る。このような状況に対処するために、スキルボットに対してQ&A(質疑応答)インテントを設定することができる。これは、スキルボットがダイアログ定義を更新する必要なしにユーザ要求に対する返答を出力することを可能にする。Q&Aインテントは、通常のインテントと同様に生成される。しかしながら、Q&Aインテントのためのダイアログフローは、通常のインテントとは異なる。
【0072】
(5)スキルボットのためのダイアログフローを作成する-スキルボットに対して指定されるダイアログフローは、スキルボットに対する異なるインテントが受信したユーザ入力に応じて解決される際にスキルボットがどのように反応するかを記述する。ダイアログフローは、スキルボットがとる動作またはアクション(例えば、スキルボットがどのようにユーザ発話に応答するか、スキルボットがどのようにユーザに入力を促すか、スキルボ
ットがどのようにデータを返すか)を定義する。ダイアログフローは、スキルボットが辿るフローチャートのようなものである。スキルボット設計者は、マークダウン言語などの言語を用いてダイアログフローを指定する。ある実施形態では、OBotMLと呼ばれるYAMLのバージョンを用いて、スキルボットのためのダイアログフローを指定することができる。スキルボットのためのダイアログフロー定義は、スキルボット設計者に、スキルボットとスキルボットが対応するユーザとの間の対話のコレオグラフィを行わせる、会話自体のモデルとして働く。
【0073】
ある実施形態では、ダイアログフロー定義は、以下の3つのセクションを含む:
(a)コンテキストセクション
(b)デフォルト遷移セクション
(c)状態セクション。
【0074】
コンテキストセクション-スキルボット設計者は、コンテキストセクションにおいて、会話フローで用いられる変数を定義することができる。コンテキストセクションで指名され得る他の変数は、限定されないが、エラー処理のための変数、組込みエンティティまたはカスタムエンティティのための変数、スキルボットがユーザ選好を認識および持続することを可能にするユーザ変数などを含む。
【0075】
デフォルト遷移セクション-スキルボットの遷移は、ダイアログフロー状態セクションまたはデフォルト遷移セクションで定義することができる。デフォルト遷移セクションで定義される遷移は、フォールバックとして作用し、状態内に定義される適用可能な遷移がない場合または状態遷移をトリガするために必要な条件を満たせない場合にトリガされる。デフォルト遷移セクションは、スキルボットが予想外のユーザアクションをそつなく処理することを可能にするルーティングを定義するために用いられ得る。
【0076】
状態セクション-ダイアログフローおよびその関連動作は、ダイアログフロー内の論理を管理する一連の一時的な状態として定義される。ダイアログフロー定義内の各状態ノードは、ダイアログのその点において必要とされる機能を提供するコンポーネントを指名する。このようにして、コンポーネントの周囲に状態を構築する。状態は、コンポーネント固有の特性を含み、コンポーネントが実行された後にトリガされる他の状態への遷移を定義する。
【0077】
特別なケースのシナリオは、状態セクションを用いて取り扱うことができる。例えば、ユーザが取りかかっている第1のスキルを一次的に出て、デジタルアシスタント内で第2のスキルにおいて何かを行うというオプションを、ユーザに与えたい場合があるかもしれない。例えば、ユーザがショッピングスキルとの会話に関わっている(例えば、ユーザは、購入のために何らかの選択を行った)場合、ユーザは、銀行業務スキルにジャンプし(例えば、ユーザは、その購入に十分な金額を有することを確かめたい場合がある)、その後、ユーザの注文を完了するためにショッピングスキルに戻ることを望む場合がある。これに対処するために、第1のスキルにおけるアクションは、同じデジタルアシスタントにおいて第2の異なるスキルとの対話を開始し、次いで元のフローに戻るように構成されることができる。
【0078】
(6)カスタムコンポーネントをスキルボットに追加する-上述のように、スキルボットのためにダイアログフローにおいて指定される状態は、その状態に対応する必要な機能を提供するコンポーネントを指名する。コンポーネントは、スキルボットが機能を実行することを可能にする。ある実施形態では、DABP102は、広範囲の機能を実行するための事前設定されたコンポーネントのセットを提供する。スキルボット設計者は、これらの事前設定されたコンポーネントのうちの1つまたは複数を選択し、それらをスキルボッ
トのためのダイアログフロー内の状態と関連付けることができる。スキルボット設計者はまた、DABP102によって提供されるツールを用いてカスタムまたは新たなコンポーネントを作成し、カスタムコンポーネントをスキルボットのためのダイアログフロー内の1つまたは複数の状態と関連付けることができる。
【0079】
(7)スキルボットをテストおよび展開する-DABP102は、スキルボット設計者が開発中のスキルボットをテストすることを可能にするいくつかの特徴を提供する。次いで、スキルボットは、デジタルアシスタントにおいて展開され、それに含めることができる。
【0080】
上記の説明は、スキルボットをどのように作成するかについて説明しているが、同様の技術を用いて、デジタルアシスタント(またはマスタボット)を作成することもできる。マスタボットまたはデジタルアシスタントレベルでは、デジタルアシスタントのために組込みシステムインテントを設定することができる。これらの組込みシステムインテントは、デジタルアシスタント自体(すなわち、マスタボット)が、デジタルアシスタントに関連付けられるスキルボットを呼び出すことなく取り扱うことができる一般的なタスクを識別するために用いられる。マスタボットのために定義されるシステムインテントの例は、(1)出口:ユーザがデジタルアシスタントにおいて現在の会話またはコンテキストを終了することを望むことを知らせるときに当てはまる;(2)ヘルプ:ユーザが支援またはオリエンテーションを要求するときに当てはまる;および(3)未解決のインテント(Unresolvedlntent):出口インテントおよびヘルプインテントと上手く一致しないユーザ入力に当てはまる、を含む。デジタルアシスタントはまた、デジタルアシスタントに関連付けられる1つまたは複数のスキルボットに関する情報を記憶する。
【0081】
マスタボットまたはデジタルアシスタントレベルでは、ユーザがデジタルアシスタントにフレーズまたは発話を入力すると、デジタルアシスタントは、会話をどのようにルーティングするかを判断する処理を行うように構成される。デジタルアシスタントは、ルールベース、AIベース、またはそれらの組み合わせとすることができるルーティングモデルを用いて、これを判断する。デジタルアシスタントは、ルーティングモデルを用いて、ユーザ入力に対応する会話が、処理のために特定のスキルにルーティングされるべきか、組込みシステムインテントに従ってデジタルアシスタントまたはマスタボット自体によって処理されるべきか、または現在の会話フローにおいて異なる状態として処理されるべきかを判断する。
【0082】
特定の実施形態では、この処理の一部として、デジタルアシスタントは、ユーザ入力が、スキルボットを、その呼び出し名を用いて識別するかどうかを判断する。呼び出し名がユーザ入力に存在する場合、それは、呼び出し名に対応するスキルボットの明示的な呼び出しとして扱われる。そのようなシナリオでは、デジタルアシスタントは、ユーザ入力を、さらなる処理のために、明示的に呼び出されたスキルボットにルーティングすることができる。特定の呼び出しがない場合、ある実施形態では、デジタルアシスタントは、受信されたユーザ入力を評価し、システムインテントおよびデジタルアシスタントに関連付けられるスキルボットについて信頼度スコアを計算する。スキルボットまたはシステムインテントについて計算されるスコアは、ユーザ入力が、スキルボットが実行するように構成されるタスクを表すかまたはシステムインテントを表す可能性を表す。関連付けられる計算された信頼度スコアが閾値(例えば、Confidence Threshold(信頼度閾値)ルーティングパラメータ)を超えるシステムインテントまたはスキルボットは、さらなる評価の候補として選択される。次いで、デジタルアシスタントは、識別された候補から、ユーザ入力のさらなる処理のために、特定のシステムインテントまたはスキルボットを選択する。特定の実施形態では、1つまたは複数のスキルボットが候補として識別された後、それらの候補スキルに関連付けられるインテントが(各スキルに対するインテントモデルに従って
)評価され、信頼度スコアが各インテントに適用される。一般に、閾値を超える信頼度スコアを有するインテントは、候補フローとして扱われる。特定のスキルボットが選択された場合、ユーザ入力は、さらなる処理のために、そのスキルボットにルーティングされる。システムインテントが選択された場合、選択されたシステムインテントに従って1つまたは複数のアクションが実行される。
【0083】
図2は、特定の実施形態による、(
図1に関して説明されるデジタルアシスタントまたはボットシステム106のような)ボットシステムと、ボットシステムの性能を監視、分析、視覚化および改善するためのボット分析システム210とを含む、統合システム200を示す。図示のように、ボットシステム205は、コネクタ215と、ダイアログエンジン222、インテントモデラ224、エンティティリゾルバ226、およびカスタムコンポーネント228などの複数のボットエンジン220とを含み得る。ボットシステム205はまた、データベース230、管理API235、ユーザインターフェイス240、およびUIサーバ245を含み得る。ボット分析システム210は、コレクタ250、濃縮エンジン255、データベース260、およびRESTサーバ265を含み得る。ボット分析システム210はまた、ユーザインターフェイス270およびUIサーバ275を含み得る。ボット分析システム210のコレクタ250は、ボットシステム205において発生したイベント290を収集してもよい。ボット分析システム210からのフィードバック285は、ユーザインターフェイス270およびユーザインターフェイス245を介してボットシステム205に提供されてもよい。
【0084】
コネクタ215は、チャネル286および287などの1つまたは複数のチャネルを通して、ボットシステム205と1つまたは複数のエンドユーザとの間のインターフェイスとして作用し得る。各チャネルは、メッセージングアプリケーションは、例えば、メッセージングチャネル(Facebook Messenger, Facebook WhatsApp, WeChat, Line, Kik, Telegram, Talk, Skype, Slack,またはSMS等)、バーチャルプライベートアシスタント(例
えば、Amazon Dot, Echo,またはShow, Google Home, Apple HomePodなど)、チャット機
能を有するネイティブもしくはハイブリッド/応答モバイルアプリもしくはウェブアプリケーションを拡張するモバイルおよびウェブアプリ拡張、または音声ベースの入力(例えば、Siri, Cortana, Google Voiceもしくは対話のための他の音声入力を用いるインター
フェイスを有するデバイスもしくはアプリ)であってもよい。いくつかの実施形態では、コネクタ215は、ボットシステム205が異なるメッセージングアプリケーションシステムにわたってコンテンツを分析することができるように、異なるチャネルからのコンテンツを正規化することができる。コンテンツ正規化処理は、各タイプのメッセージングアプリケーションからのコンテンツを処理のために共通のフォーマットにフォーマットすることを含み得る。いくつかの実施形態では、ボットシステム205は、チャネルの各々について1つまたは複数のコネクタを含み得る。インテントモデラ228は、エンドユーザの発話に関連付けられるエンドユーザのインテントを判断するために用いられ得る。正規化の後、ある単語の発生があるインテントを示す確率を判断することができる。いくつかの例では、確率は、それらがあたかも独立しているかのように、基本的な確率算術を用いて組み合わせることができる。
【0085】
モデルが間違ったアサーションを行うのを防ぐために例を提供することもできる。例えば、特定のサブフレーズ、またはあるインテントに対してのみ出現する単語は、間違ったアサーションを引き起こし得る。同様に、モデルがトレーニングのために異なるインテントに属する類似文を用いて広範なルールを合成することを防止することができる。
【0086】
エンティティリゾルバ224は、エンドユーザのインテントに関連付けられるエンティティ(例えば、オブジェクト)を識別することができる。たとえば、「ピザを注文する」などの、インテントモデラ228によって識別されるエンドユーザのインテントに加えて
、エンティティリゾルバ224は、ピザの種類、トッピングなど、インテントに関連付けられるエンティティを解決し得る。
【0087】
ダイアログエンジン226は、エンドユーザとボットシステムとの間の会話を処理するために用いられ得る。例えば、ダイアログエンジン226は、インテントモデラ228によって識別されたエンドユーザのインテントと、エンティティリゾルバ224によって識別されたエンドユーザのインテントに関連付けられるエンティティとに基づいて、エンドユーザの発話に応答することができる。いくつかの実施形態では、ダイアログエンジン226は、ユーザ定義の状態(例えば、エンドユーザのインテント)と、エンドユーザとの会話を処理するために状態においてまたは状態から状態にとられるアクションとを含む状態機械を用いることができる。
【0088】
カスタムコンポーネント222は、特定のボットシステム用のカスタマイズされたモジュールを含むことができる。例えば、金融ボットは、例えば、残高のチェック、資金の送金、または請求の支払に用いられ得るカスタムコンポーネントを含み得る。
【0089】
データベース230は、分類モデルのためのデータ、会話のログなど、ボットシステムのためのデータを記憶するために用いられ得る。管理API235は、ボットシステムの管理者または開発者によって用いられて、分類モデルの再トレーニング、インテントの編集、またはそうでなければボットシステムの変更など、ボットシステムを管理することができる。管理者または開発者は、ユーザインターフェイス245およびUIサーバ240を用いてボットシステムを管理することができる。
【0090】
様々なイベント290が、ボットシステム205が動作している間に生成され得る。イベント290は、ボットシステムに含まれる1つまたは複数の命令に基づいて生成されてもよい。例えば、イベント290は、ボットシステム205が特定の状態に入ったときに生成されることができ、その特定の状態は、ボットシステムの管理者または開発者によって定義される。イベント290が生成されると、イベント290は、ボット分析システム210によって収集され、記憶され、分析され得る。イベント290を捕捉するとき、イベント290に関連付けられる追加の情報も収集することができ、追加の情報は、イベント290が生成される現在のコンテキストを示すことができる。
【0091】
例えば、会話イベントが、ダイアログエンジン226によって生成されてもよい。会話イベントは、エンドユーザデバイスからボットシステムによって受信されるメッセージ(受信msgと呼ばれる)を含み得る。受信Msgは、以下のパラメータまたは変数、すなわち、メッセージの内容、ボットシステム205によってメッセージが受信された時間、受信されたメッセージの言語、デバイスプロパティ(例えば、バージョンまたは名前)、オペレーティングシステムプロパティ(例えば、バージョンまたは名前)、ジオロケーションプロパティ(例えば、インターネットプロトコルアドレス、緯度、経度など)、識別情報(例えば、ユーザID、セッションID、ボットシステムID、テナントID等)、タイムスタンプ(例えば、デバイス作成、デバイス送信、コレクタ導出タイムスタンプ)、チャネルなどのうちの1つまたは複数を含み得る。
【0092】
会話イベントはまた、ボットシステム205によってエンドユーザデバイスに送信されるメッセージ(送信msgと呼ばれる)を含み得る。送信Msgは、メッセージの内容(例えば、メッセージのテキストまたはHTML)、メッセージがボットシステムによって送信される時間、メッセージの言語、メッセージの作成者(例えば、ボットシステムまたはエンドユーザデバイス)、デバイスプロパティ、オペレーティングシステムプロパティ、ブラウザプロパティ(例えばバージョンまたは名前)、アプリプロパティ(例えばバージョンまたは名前)、ジオロケーションプロパティ(例えば、インターネットプロトコル
アドレス、緯度、経度など)、識別情報(例えば、ユーザID、セッションID、ボットシステムID、テナントIDなど)、チャネル(例えば、FacebookまたはWebhook)など
のうちの1つ以上を含み得る。
【0093】
ダイアログエンジン226は、ダイアログ状態実行イベントを生成することもできる。上述したように、ダイアログエンジン226は、状態機械を用いてエンドユーザとの会話のフローを判断することができる。状態機械は、状態のセットおよび状態間の遷移のルールを含み得る。ダイアログエンジン226は、エンドユーザ会話ごとに状態機械を実行することができ、ダイアログエンジン226がエンドユーザ発話を処理するためにステップを進める各状態ごとにダイアログ状態実行イベントを生成することができる。ダイアログ状態実行イベントの属性は、例えば、状態名、コンポーネント名、次のアクション、エンティティ一致、インテント一致、変数、ユーザクエリステートメント、応答ステートメント、実行時間、通信言語、デバイスプロパティ、オペレーティングシステムプロパティ、ジオロケーションプロパティ、識別情報、タイムスタンプ、チャネル等を含むことができる。状態名は、現在実行されている状態の名称または「エラー状態」であってもよい。コンポーネント名は、現在の状態に対して実行されるボットコンポーネントの名前であってもよい。次のアクションは、実行されるべき次のアクションであってもよい。エンティティ一致は、現在のメッセージにおいて解決されるエンティティであってもよい。インテント一致は、スコア値で解決されるインテントであってもよい。変数は、現在の状態のための変数値であってもよい。クエリステートメントは、エンドユーザによって送られるメッセージであってもよい。応答ステートメントは、エンドユーザに送信されるメッセージであってもよい。実行時間は、完了した状態実行のタイムスタンプであってもよい。通信言語は、会話中のメッセージの言語であってもよい。デバイスおよび/またはオペレーティングシステムプロパティは、ボットシステムと対話するエンドユーザに関連付けることができる。ブラウザおよび/またはアプリプロパティは、ボットシステムと対話するエンドユーザに関連付けることができる。ジオロケーションプロパティは、ボットシステムと対話するエンドユーザの位置であってもよい。
【0094】
インテント解決イベントは、インテントモデラ228の実行の結果として発生し得る。インテントモデラ228は、トレーニングされた、または別の方法で定義された分類モデルを用いて、エンドユーザの発話に基づいて、インテントのセットからエンドユーザのインテントを識別することができる。インテント分類の結果は、インテント解決イベント属性として捕捉されてもよく、これは、例えば、最終インテント分類結果(例えば、識別されたインテント)と、インテントのセット内の各それぞれのインテントに関連付けられる信頼度スコアとを含んでもよい。
【0095】
エンティティリゾルバ224は、エンティティリゾルバイベントを生成し得る。エンティティは、エンドユーザのインテントに関連付けられるオブジェクトである。エンティティ定義ルールは、ボットシステムが作成されるときに決定されてもよい。例えば、「ピザを注文する」のようなエンドユーザのインテントを解決することに加えて、ボットシステムはまた、ピザの種類、トッピングなどの関連付けられたエンティティを解決するためにエンティティリゾルバ224を用いてもよい。エンティティリゾルバイベントは、エンティティ解決で捕捉され得る。エンティティリゾルバイベントに関連付けられる属性の例は、エンティティ名、適用されるルール、検索語、解決される状態、クエリステートメント、エンティティタイプ、実行時間、通信言語、デバイスプロパティ、オペレーティングシステムプロパティ、ブラウザプロパティ、アプリプロパティ、ジオロケーションプロパティ、識別情報、タイムスタンプ、チャネルなどを含み得る。エンティティ名は、現在解決されているエンティティの名前であってもよい。適用されるルールは、例えば、先行、後続、または集約であってもよい。検索語は、~から、~へ、目的地、出発地などであってもよい。解決される状態は、エンティティについて解決されるダイアログ状態であっても
よい。クエリステートメントは、エンティティ値を含むメッセージであってもよい。エンティティタイプは、システムでもよいし、または導出されてもよい。実行時間は、エンティティ解決のタイムスタンプであってもよい。通信言語は、会話中のメッセージの言語であってもよい。デバイスおよび/またはオペレーティングシステムプロパティは、ボットシステムと対話するエンドユーザに関連付けることができる。ブラウザおよび/またはアプリプロパティは、ボットシステムと対話するエンドユーザに関連付けることができる。ジオロケーションプロパティは、ボットシステムと対話するエンドユーザの位置であってもよい。
【0096】
カスタムコンポーネント222も、予め定義されたイベントまたはカスタムイベントなどのイベントを生成し得る。予め定義されたイベントは、カスタムコンポーネントの実行時に捕捉されるプロパティであってもよい。予め定義されたイベントの属性の例は、コンポーネント名、イベント名、ペイロード、実行時間、通信言語、デバイスプロパティ、オペレーティングシステムプロパティ、ブラウザプロパティ、アプリプロパティ、ジオロケーションプロパティ、識別情報、タイムスタンプ、チャネル等を含んでもよい。コンポーネント名は、現在実行中のカスタムコンポーネントの名前であってもよい。イベント名は、呼び出し済み、呼び出し失敗、返信済み、返信失敗などであってもよい。ペイロードは、障害の場合、障害の理由、スタックトレースなどであってもよい。実行時間は、イベントが発生した時を示すタイムスタンプであってもよい。通信言語は、会話中のメッセージの言語であってもよい。デバイスおよび/またはオペレーティングシステムプロパティは、ボットシステムと対話するエンドユーザに関連付けることができる。ブラウザおよび/またはアプリプロパティは、ボットシステムと対話するエンドユーザに関連付けることができる。ジオロケーションプロパティは、ボットシステムと対話するエンドユーザの位置であってもよい。
【0097】
カスタムコンポーネント222はまた、カスタムコンポーネントの実行中にカスタムイベントを発行することもできる。カスタムイベントの属性としては、例えば、コンポーネント名、イベント名、カスタムペイロード、実行時間、通信言語、デバイスプロパティ、オペレーティングシステムプロパティ、ブラウザプロパティ、アプリプロパティ、ジオロケーションプロパティ、識別情報、タイムスタンプ、チャネル等が挙げられる。コンポーネント名は、現在実行中のカスタムコンポーネントの名前であってもよい。イベント名は、ユーザが定義したイベント名(例えば、残高検索)であってもよい。ペイロードは、例えば、(「金額」:「USD100」、「口座」:「当座」)であってもよい。実行時間は、イベントが発生した時を示すタイムスタンプであってもよい。通信言語は、会話中のメッセージの言語であってもよい。デバイスおよび/またはオペレーティングシステムプロパティは、ボットシステムと対話するエンドユーザに関連付けることができる。ブラウザおよび/またはアプリプロパティは、ボットシステムと対話するエンドユーザに関連付けることができる。ジオロケーションプロパティは、ボットシステムと対話するエンドユーザの位置であってもよい。
【0098】
エラーイベントおよびタイムアウトイベントも、実行中にボットシステム205によって発生され得る。エラーイベントは、エラーが発生したときに発生され得る。タイムアウトイベントは、エンドユーザ会話が、チャネルにおいて設定され得るある期間にわたって非アクティブであったときに、発生され得る。
【0099】
ボット分析システム210は、ボットシステム205がエンドユーザと会話を行い、対応するイベントを生成する際に、イベント290および追加情報を収集することができる。例えば、コレクタ250は、イベント290および追加情報を収集し、収集した情報をキューに送ることができる。いくつかの実施形態では、コレクタ250は、設定可能であってもよく、所望に応じて上述の異なるイベントおよび/またはイベント属性を収集する
ようにプログラムすることができる。例えば、コレクタ250は、ダイアログ状態属性、インテント解決属性、エンティティ解決属性、エラーおよびタイムアウト属性、またはそれらの組み合わせを捕捉するように構成され得る。いくつかの実施形態では、コレクタ250はまた、ボットシステム以外のシステムによって生成されたイベント280に関する情報を収集するように構成されてもよい。
【0100】
濃縮エンジン255は、収集されたイベントおよび他の情報について検証および濃縮を行い、それらをデータベース260に書き込むことができる。例えば、収集されたIPアドレスに基づいて、濃縮エンジン255は、IPアドレスに関連付けられるエンドユーザの位置を判断することができる。別の例として、濃縮エンジン255は、エンドユーザによって用いられるウェブブラウザまたはチャネルを判断するなど、収集された情報から特定の特徴を抽出することができる。RESTサーバ265は、濃縮されたイベントおよび他の情報を分析し、ある集約メトリック295に基づいて様々な報告を生成することができる。報告は、UIサーバ275を介してユーザインターフェイス270上でボットシステム205の所有者、管理者、または開発者に表示することができる。ボットシステム205の所有者、管理者、または開発者は、ボットシステム205を改善するためにボットシステム205にフィードバック285を提供してもよい。
【0101】
ボットシステムの性能への見解を提供するための技術
図3は、特定の実施形態によるボットシステムの性能を監視、分析、視覚化、および改善するための処理の一例を示す簡略化されたフローチャート300である。
図3に示す処理は、
図2に関して説明したボット分析システムなどのボット分析システムによって実行されてもよい。
図3に示される処理は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実現され得る。ソフトウェアは、非一時的記憶媒体上に(たとえば、メモリデバイス上に)記憶され得る。
図3に提示され、以下に説明される処理は、例示的かつ非限定的であることを意図している。
図3は、特定のシーケンスまたは順序で生じる様々な処理ステップを示すが、これは限定することを意図するものではない。いくつかの代替実施形態では、それらのステップはいくつかの異なる順序で実行されてもよく、またはいくつかのステップは並行して実行されてもよい。
【0102】
ステップ310において、
図2に関して説明されるコレクタ250などのボット分析システムのイベントコレクタは、ボットシステムによって生成される特定のイベントに関連付けられる特定の属性を捕捉するように構成され得る。上述のように、ボットシステムによって生成されるイベントは、例えば、会話イベント、ダイアログ状態実行イベント、インテント解決イベント、エンティティ解決イベント、およびカスタムコンポーネントによって生成されるイベントを含み得る。イベントコレクタは、所望のイベントまたは様々なイベントに関連付けられる所望の属性を収集するように構成され得る。ステップ320において、イベントコレクタは、イベントコレクタの構成に基づいて、ボットシステムとの会話中に発生したイベントの属性を収集することができる。ステップ330では、会話中に発生し、イベントコレクタによって捕捉されたイベントの属性を集約し、分析することができる。上述したように、イベントの属性はまた、いくつかの集約メトリックに基づいて集約される前に、濃縮され、データベースに保存されてもよい。ステップ340では、以下で詳細に説明されるように、概観報告、インテント報告、経路報告、会話報告、ボット改善報告、またはそれらの任意の組合せなど、集約メトリックに基づいて、会話についての様々な分析的見解報告を生成することができる。ステップ350において、分析システムは、ボット所有者、管理者、または開発者の要求で、特定の状態(例えば、未完了状態または打ち切られた状態またはエラー状態)で終了する会話など、特定の基準を満たす1つまたは複数の会話に関する情報を提供することができる。ボット所有者、管理者、ま
たは開発者は、ボットシステムの性能を監視、分析、視覚化、デバッグ、または改善するためにグラフィックユーザインターフェイスを通して提供される異なるオプションを選択することによって、会話をフィルタリングまたは選択してもよい。
【0103】
上記で説明したように、分析報告は、たとえば、概観報告、インテント報告、経路報告、会話報告、ボット改善報告、またはそれらの任意の組合せを含み得る。概観報告は、例えば、完了/未完了会話を経時的に示す傾向チャートと、各インテントについての会話カウントを示す棒グラフとを含み得る。インテント報告は、例えば、各インテントについての会話およびエラーに関する情報、ならびに最も人気のあるまたは最も人気の低い会話フローを含み得る。経路報告は、ボットシステムに対する異なる会話フローを示すチャート、ならびに会話カウントおよびエラーメトリックなどの情報を含み得る。会話報告は、会話ログの概要を示すことができる。ボット改善報告は、インテント分類結果に関する情報を提供することができ、それは、ボットシステムの管理者または開発者によって用いられて、いくつかの分類結果を修正し、修正された分類結果を用いて分類モデルを再トレーニングしてもよい。
【0104】
いくつかの実施形態では、報告は、インテントを識別できなかった(未解決インテントと呼ばれることもある)、1人または複数のエンドユーザからの1つまたは複数の発話を示す情報を含み得る。例えば、ボットシステムは、発話またはエンドユーザからの発話がインテントに関連付けられる尤度を計算することができる。尤度が閾値未満である場合、発話はインテントに関連付けられない場合がある。発話がいかなるインテントにも関連付けられない場合、ボットシステムは、それ以上会話することはできない場合がある。代わりに、ボットシステムは、インテントを識別するために1つまたは複数の追加の質問を要求しなければならない場合がある。インテントを識別できなかった発話に関する情報を提示することによって、見解報告は、ユーザが、その発話に類似した新たな発話を受信したときにインテントを適切に識別するようにボットシステムを再構成することを可能にし得る。例えば、見解報告は、尤度に基づいて1つまたは複数の潜在的インテントを提示してもよく、ユーザが1つまたは複数の潜在的インテントからあるインテントを選択し、発話からインテントを識別するために分類モデルをトレーニングするために用いられるトレーニングデータセットに発話を追加することができるようにしてもよい。
【0105】
いくつかの実施形態では、ユーザは、どの会話が成功し、どの会話がそうでないかに関する情報を提示されることができる。さらに、ユーザは、エラーを識別し、ボットシステムの性能を改善するために会話データをドリルダウンすることができる。エンドユーザ会話の経路を分析することによって、1つまたは複数の性能メトリックを、異なる会話タイプ(たとえば、インテント)に対して提供してもよい。例えば、ユーザは、インテント単位で、いくつの会話が成功し、いくつの会話が成功しなかったかを閲覧することができる。いくつかの実施形態では、成功した会話の何パーセントが良好と見なされるか、何パーセントが中と見なされるか、および何パーセントが低と見なされるかを判断するための予め定義された閾値が存在し得る。会話成功の性能メトリックは、閾値に従って異なる色で示されてもよい。ユーザはまた、ボットシステムへの各訪問のソース(例えば、Facebook, webhookなど)を閲覧することもできる。ユーザは、会話の総数、状態長、インテント
当たりの時間長等を閲覧することができる。会話は、放棄および完了など、予め定義されたタイプにグループ化され得る。会話メトリックは、会話のサブセットを閲覧するために会話タイプに基づいてフィルタリングされてもよい。
【0106】
いくつかの実施形態では、会話は、状態単位で閲覧することができる。会話フロー(または経路)は、会話の1つまたは複数の状態を含むグラフィカルな視覚化であってもよい。いくつかの実施形態では、経路は、会話タイプ(例えば、放棄、最も人気がある、など)によってフィルタリングされてもよい。いくつかの実施形態では、経路についてのエラ
ー条件は、例えば、経路における所与の状態について閲覧することができる。
【0107】
いくつかの実施形態では、経路について、メトリックおよび/またはメタデータを閲覧することができる。メトリックは、経路のインスタンスの数、経路の長さ、経路の人気に関するランク、および経路を完了する平均時間を含み得る。
【0108】
いくつかの実施形態では、会話タイプのインスタンスは、一連の状態を介して閲覧および分析されてもよい。そのような実施形態では、エラーおよび性能問題を識別するために、状態および会話を同期させてもよい。
【0109】
メトリックは、上述の1つまたは複数のイベントに基づいて計算することができる。メトリックは、毎日、毎週、月、またはカスタム範囲において計算されてもよい。基本的なメトリックの例は、(1)一意の、総計の、新たな、アクティブな、非アクティブな、または戻るエンドユーザの数、(2)総セッション/会話、(3)平均、最大、中央値、または最小会話持続時間、(4)あるエンドユーザの2つの会話間の平均時間、(5)感情(肯定、否定、または中立)、(6)エンドユーザ数、会話数、または一意エンドユーザ数、(7)平均、最大、中央値、最小発話カウントなどを含む。各メトリックは、チャネル(例えば、Facebookまたはwebhook)、地形(例えば、国、州、都市、または郵便番号
)、言語(例えば、英語またはスペイン語)、デバイスおよびそのタイプ(例えば、iPhone(登録商標), Samsung, Motorola, LG, HP,またはDell)、OSおよびそのバージョン(例えば、Windows(登録商標), iOS, Android, Mac,またはLinux(登録商標))、ブラウザおよびそのバージョン(例えば、Firefox(登録商標), Safari, Internet Explorer,またはChrome)、アプリ名およびそのバージョン(例えば、アプリ内の統合チャット)
、エージェントのタイプ(例えば、ボットシステムまたはユーザデバイス)などによってフィルタリングされてもよい。いくつかの例では、カスタムコンポーネントからのカスタムイベントは、顧客体験分析(CxA)を用いてボット開発者によって開発されるカスタム見解報告を有してもよい。
【0110】
会話は、用いられる最も頻繁な語のバズグラフおよび/またはワードクラウドを用いて分析されてもよい。会話は、各カテゴリについてランキングで分類することもできる。発話および会話用の比較バズグラフを用いることもできる。
【0111】
いくつかの実施形態では、ボット分析システムは、ボットシステムとの会話のどの部分がうまく働いており、どの部分がそうでないかを識別してもよい。ボット分析システムは、ユーザが、会話履歴をドリルダウンすること、放棄/完了したインテントおよび会話を追跡すること、深さ、時間またはその両方に基づいて完了した経路についてとられた最も人気のある/ない経路を識別すること、またはすべての放棄された会話の履歴をトランスクリプトとともに識別して、会話が放棄された原因(例えば、通過される状態の数、エラー条件など)をトラブルシューティングすることを可能にしてもよい。いくつかの実施形態では、ボット分析システムによって生成された結果は、フィルタリングされてもよい。フィルタリングは、チャネル、長さ、インテント、放棄/完了などに基づくことができる。
【0112】
以下の説明では、分析的見解報告およびグラフィックユーザインターフェイス画面のいくつかの例について説明する。これらの実施例は、例示目的のためだけのものであり、本開示の範囲を特定の実施例に限定することを意図していないことに留意されたい。
【0113】
デジタルアシスタント見解
図4Aは、特定の実施形態による、デジタルアシスタントに関連付けられる会話の要約された情報405を表示するグラフィカルユーザインターフェイス画面400の例を示す
。本明細書で説明するように、デジタルアシスタントは、ユーザが自然言語会話において様々なタスクを達成するのを助ける人工知能駆動型インターフェイスである。各デジタルアシスタントについて、1つまたは複数のスキルまたはチャットボットがアセンブルされる。1つまたは複数のスキルまたはチャットボットは、在庫の追跡、タイムカードの提出、および経費報告の作成など、特定のタイプのタスクに焦点を当てることができる。要約された情報405は、ユーザとデジタルアシスタントのための1つまたは複数のチャットボットとの間の会話について生成されてもよい。要約された情報405は、任意のチャネルおよび任意のロケール、またはチャネルとロケールとの任意の組み合わせに関連付けることができる。要約された情報405はまた、直近の90日などの特定の期間内に発生した会話について生成されてもよい。各デジタルアシスタントについて、ユーザは、使用パターンに関する開発者指向型分析である、見解報告を閲覧することができる。デジタルアシスタント見解報告で、ユーザは、(i)全会話-所与の期間にわたる会話の数およびそれらの完了率、ならびに(ii)スキルがどのように実行されているか-デジタルアシスタントにおけるスキルの人気がわかる。
【0114】
見解報告にアクセスするために、ユーザは、
図4Aに示されるように、デジタルアシスタントを開き、次いで、ナビゲーションバー内の見解アイコン410を選択してもよい。以下でスキル見解に関してより詳細に論じるように、ユーザは、各インテントがどのくらい頻繁に呼び出されるか(およびそれらの呼び出しの何パーセントが完了されるか)ならびにユーザがスキルを通してとる経路などを示す個々のスキルに関する詳細な報告を閲覧することもできる。全会話報告のスクリーンショットは、ユーザが選択できる時間範囲にわたる会話の数を含む。これらの会話は、完了した会話およびエラー(システム処理エラー、無限ループ、またはタイムアウトのために完了しなかった会話)に分割されてもよい。報告の左側には、ステータスおよびカウントの列を有するテーブルがある。完了、エラー、および未解決の行がある。右側は、30日の期間にわたる、完了した会話および他の会話の数を示すグラフである。
【0115】
図4Bは、スキル単位の会話の数を示す、「How Are My Skills Performing(私のスキルはどのように実行しているか)」報告の傾向タブのインターフェイス画面415を示す。インターフェイス画面415の左側には、各スキルを用いる会話のパーセンテージを示す円グラフ420がある。右側のグラフは、30日の期間にわたる各スキルについての完了した会話の数を示す。
図4Cは、「How Are My Skills Performing(私のスキルはどのように実行しているか)」報告の要約タブのインターフェイス画面425を示し、これは、各スキルの完了会話、未解決会話、およびエラーの数を示す。インターフェイス画面425は、スキル、完了率、エラー、未解決、および性能履歴の列を有するテーブルを含む。
【0116】
LOB見解
図5Aは、特定の実施形態による、デジタルアシスタントに関連付けられる会話の要約された情報を表示するグラフィカルユーザインターフェイス画面500の例を示す。これらのダッシュボードの見解報告は、企業の公開スキルが、個々のベースおよびグループとしての両方で会話をいかにうまく完了するかを測定するために用いることができる。より具体的には、これらの報告を用いて、所与の期間について、所与の企業によって現在生産されているすべてのスキル(またはそれらのスキルの選択)について、以下のキー性能インジケータ(KPI)、すなわち、(i)全会話-完了または未完了によってセグメント化された会話の総数(ii)完了会話-完了会話の数による選択されたスキルのランキング、および(iii)未完了会話-未完了会話の数による選択されたスキルのランキングを返すことができる。顧客は、関心を失ったため、または(スキル自体ではなく)システムによって処理されるエラー、タイムアウト、もしくはスキル定義における瑕疵により引き起こされる無限ループによって遮断されたために、それらの会話を完了しなかったのか
もしれない。各スキルについて、報告は、その期間についてのタイムアウト、システム処理エラー、および無限ループの全体的なカウントを提供する。これらの因子がスキルの全体的な障害にどれだけ寄与したかを示すために、報告は円グラフをレンダリングする。
【0117】
インターフェイス画面500は、LOB見解の一部である全会話報告を示す。この報告は、左から右へ、全会話、完了会話、未完了会話、およびエラーである、4つのパネルに対して構成される。全会話は、完了データ系列と未完了データ系列とを比較する円グラフである。完了会話は、完了した会話の数によってランク付けされるスキルのリストを表示する。ユーザは、完了降順および完了昇順オプションを用いて、このリストをソートすることができる。未完了会話も、スキルのリストを有するが、ここではそれらは未完了会話の数によってランク付けされている。ユーザは、このリストも、完了降順および完了昇順オプションを用いてソートすることができる。このリストに隣接するのはエラー円グラフであり、これはタイムアウト、無限ループ、およびシステム処理エラーのデータ系列を比較する。
【0118】
図5Bは、LOB見解の一部である「How Are My Skills Performing(私のスキルはどのように実行しているか)」報告を示すインターフェイス画面505を示す。インターフェイス画面505では、「個別スキル」タブが選択される。この報告は、行のセット(各スキルに1つ)を表示し、それは以下の列、すなわち、(左から右へ)スキル、完了率、エラー、未解決インテント、性能履歴を有する。報告の左上には、ソートオプションドロップダウンメニューがある。この画像では、全体昇順が選択中である。この報告を用いて、選択された期間について、およびスキル当たりベースで、スキルのすべてについて会話完了率を見ることができる。より具体的には、この報告を用いて、その期間についての完了率、つまりその期間の全会話に対してとられる完了した会話の数に関して、スキルが互いにどのように比較するかを見出すことができる。各スキルについて、報告は、スキルの完了率がその期間にわたって増加、減少、または安定しているかどうかを評価するためのツールである「性能履歴」折れ線グラフを提示する。この報告は、この期間中にスキルの性能に影響を及ぼす他の因子:エラー(システム処理エラー、無限ループ、タイムアウト)および未解決のインテントの数を含む。これらに関して、報告は、その期間中の未完了の会話のすべてについて信頼閾値まで解決できなかったインテントの数をカウントする。
【0119】
図5Cは、選択されたスキルのすべてに関する性能傾向を示すインターフェイス画面510を、LOB見解の一部である全エコシステム報告の積み上げ面グラフを用いて閲覧することができる。インターフェイス画面510において、積み上げ面グラフは、完了データ系列および未完了データ系列をプロットする。グラフのy軸は会話の数を示す。x軸は、日をプロットする(例えば、7月7日、8月8日)。積み上げ面グラフは、完了した会話を、顧客が未解決のインテント(または他の問題)のために完了できなかった会話、および顧客が放棄したために未完了のままであった会話に対して、対比する。
【0120】
図5Dは、LOB見解の一部である「How Have My Bots Added Value? (私のボットはどのように値を追加したか)」報告を示すインターフェイス画面515を示す。インターフェイス画面515において、折れ線グラフは、2つの系列、エージェントおよびボットをプロットする。このグラフのy軸は時間数である。x軸は、日をプロットする(例えば、7月7日、8月8日)。Oracle Service Cloudのようなサービスを通じて人間のエージェントと統合されるスキルの場合、ユーザは、この報告を用いて、これらのスキルがそれら自体でユーザタスクを取り扱うのに費やした時間の数を、人間のエージェントが顧客を助け出すのに費やさなければならなかった時間数と対比することができる。(理想的には、スキルは仕事の大部分をしているべきである。)
図5Eは、LOB見解の一部である「How Are Users Interacting with Skills?(ユーザはスキルとどのように対話しているか?)」報告を示すインターフェイス画面520を
示す。インターフェイス画面520では、各棒グラフがユーザチャネルおよびエージェントチャネルからのデータからプロットされる、クラスタ化された棒グラフが提供される。y軸は、数を表示する。x軸は、各棒グラフクラスタに対応するスキルを指名する。この人気報告は、選択された期間について各スキルにルーティングされる異なるチャネル上の顧客トラフィックを比較する。このグラフは、エージェント統合のためのチャネルも(それが存在する場合には)含む。
【0121】
スキル見解
図6Aは、特定の実施形態による、デジタルアシスタントに関連付けられる会話の要約された情報を表示するグラフィカルユーザインターフェイス画面600の例を示す。これらのダッシュボードの見解報告は、争点が問題を引き起こす前にユーザがそれらに対処できるように、争点をスキルとともに指摘する開発者指向型分析を提供するために用いることができる。報告にアクセスするために、ユーザは、デジタルアシスタントを開き、次いで、ナビゲーションバー内の見解アイコンを選択してもよい。ダッシュボード報告は、概観報告、インテント報告、経路報告、会話報告、再トレーナ、および任意選択のエクスポートインターフェイスを含む。概観-企業のスキルのユーザが放棄したかまたは経時的に完了した会話に関して、全会話メトリックのグラフをユーザに提示する。この報告はまた、トップのインテントを、実行メトリック、最も用いられたチャネル、ならびに会話持続時間およびエラーカウントとともに、ユーザに示す。概観報告はまた、インテントおよび会話報告のためのユーザのアクセスポイントでもある。インテント-実行メトリック(状態、会話持続時間、ならびに最も人気のある経路および最も人気の無い経路)に対するインテント特有のデータおよび情報を提供する。経路-インテントに対する会話フローの視覚的表現を示す。会話-ダイアログフローのコンテキストおよびチャットウィンドウで見られるスキル-ユーザダイアログの実際のトランスクリプトを表示する。再トレーナ-ユーザが、ユーザのスキルを緩やかな自己学習を通じて改善するべく、見解を得ることができる。エクスポート-ユーザが自身の報告を作成するために用いることができるように、ユーザに見解データをCSVファイルにダウンロードさせる。
【0122】
図6Bは、スキル見解の一部である概観報告を示すインターフェイス画面605を示す。概観報告はダッシュボードであり、そのキー性能インジケータおよびチャートは、あなたのスキルを、所与の期間について、スキルが完了したかまたは完了できなかった会話の数に関して、示す。インターフェイス画面605において、画像の左上側は、見解報告についてのパンくず経路:概観(ここで選択される)>インテント>経路>会話>再トレーナを示す。すぐ右には日付ピッカーがあり、これは直近30日と読める。トレイルの直下には、会話傾向と題される区画がある。その中には2つの傾向グラフすなわち未完了および完了を有する折れ線グラフである。y軸は会話カウントであり、x軸は月および年に関して時間を追跡する。この画像では、カーソルは、未完了グラフ上をホバリングして、ある時点の統計を示す。
【0123】
図6Cは、概観見解報告のセグメントのインターフェイス画面610を示す。これは、インテントと呼ばれる区画である。その内部には、水平の積み積み上げ棒グラフがある。(棒グラフの真下の文字によって識別されるとおりの)それのセグメントは、未完了および完了である。このグラフのy軸はインテントであり、x軸は会話カウントである。この画像では、カーソルは、未完了セグメントのうちの1つ上をホバリングして、ある時点の系列-グループ-値統計を明らかにする。この高次レベルのビューから、ユーザは、未完了の会話を引き起こすインテントに注目することができる。ユーザは、これらのインテントに対する使用頻度がユーザの使用事例を裏付けるかまたはそれを逆にするかどうかも知ることができる。二次的な目的を果たすインテントに関する完了した会話の数は、ユーザの一次的なインテントに関する完了した会話の数を上回っているか?これをより実際的な言葉で言うと、ユーザのピザ注文スキルは苦情提出スキルになったか?
図6Dは、概観見解報告のセグメントのインターフェイス画面615を示す。これは会話と呼ばれる区画である。その内部には、キー性能インジケータが表示され、それらは、他の見解報告へのアクセスをユーザに与えるハイパーリンクでもである。これらのインジケータは以下のとおりである:会話(総計)。これは、完了および未完了によって分解される。この画像において、カーソルは、後者;トップチャネル;平均持続時間;平均状態;エラー条件上をホバリングする。
【0124】
図6Eは、スキル見解の一部であるインテント報告を示すインターフェイス画面620を示す。インテント報告は、ユーザに、所与の期間について、インテントごとのユーザトラフィックを、より詳細に見せる。ユーザは、既に概観ページ上で各インテントについて完了または未完了の会話の数がわかるが、インテント報告は、とられた経路および終了点に達するのに要した平均時間長を表示することによって、これらの会話がどのようにダイアログフロー定義を流れたかをユーザに示す。インテント報告を用いて、ユーザは、会話の完了を妨げる、ダイアログフローの問題のある部分を隔離することができる。ユーザは、この報告を用いてダイアログフローを改善することもできる。いくつかの実施形態では、インテント報告は、ダイアログフローをトポグラフィカルなマップとしてレンダリングする。それはトランジットマップと同様であるが、ここでは、各ストップは1つの状態である。会話がどのように進行しているかをユーザに示すため(およびユーザデバッグを助けるため)に、マップは、途中で各状態に対するコンポーネントを識別する。ユーザは、この経路を通ってスクロールして、ユーザ入力からスロットされた値が会話を前向きに推進した場所、および不正確なユーザ入力、ユーザ入力がないことによるタイムアウト、システムエラー、または他の問題のために会話がストールした場所を見ることができる。完了した経路における最後のストップは緑色であるが、これらの問題が生じる未完了の経路については、それは赤色である。報告は、所与の期間にわたってスキルについて定義されるインテントを返すので、そのコンテンツは、様々な時点でスキルから追加、再指名、または除去されたインテントを反映するように変化する。各インテントについて、ユーザは、所与の期間について、完了した会話と未完了の会話との間で、ビューを切り替えることができる。
【0125】
未完了の会話の場合、ユーザは、
図6Eに示されるように、未完了状態水平棒グラフを用いて、これらの会話が終了した状態を識別することができる。グラフ625は、ユーザに繰り返し発生する問題を見つけさせ、なぜならば、それは、特定の状態が障害のポイントであった会話の数を示すからである。見解報告-ワイドフィルタの直下は、見解報告のナビゲーション経路:インテント(ここで選択される)>経路>会話>再トレーナ>エクスポートである。画面の右上には日付ピッカーがある(このスクリーンキャプチャにおいては、「直近365日」を表示する)。その上は、見解データのリフレッシュのためのステータスメッセージである。それは「最後に更新されたのは5分前」と読める。すぐ左には、「リフレッシュ」アイコンがある。左上には編集アイコンがある。それの次には、見解報告-ワイドフィルタ、チャネルおよびロケールがある。このスクリーンキャプチャでは、それらは、チャネル:すべて、およびロケール:すべて、に設定される。これらのすぐ右には、「すべてにリセット」オプションがある。インテントは、報告の遠く左側に表示される。それらの右には、第1のインテントと並行して、結果ドロップダウンメニューがある。この画像では、その未完了オプションが選択されている。報告は、以下の3つの別個のセクション:未完了状態に分割される:水平棒グラフ。そのy軸は、状態を示す。x軸は会話の数を示す。このスクリーンキャプチャにおいて、棒グラフのうちの1つは、この状態:タイムアウトで会話が停止した理由を説明するホバーテキストを呼び出すために選択される。エラー条件:エラータイプおよびインスタンスの#によって分解された、棒グラフにおける選択された状態についてのエラーを示す。最も未完了の経路:未完了の実行経路のトポグラフィカルな表現のセット。これらの経路の各々について、報告は、これらの2つのインジケータ:カウント(経路を通じた会話の数)および平均持続時間(秒
単位)を表示する。ユーザはまた、前の状態を見るために経路に沿ってスクロールすることができる。本明細書において詳細に説明されるように、経路報告を用いて、ユーザは、(エラー、タイムアウト、または悪いユーザ入力を意味する)この状態でフローが終了した理由を知ることができる。
【0126】
完全な会話について、ユーザは、
図6Fに示されるように、完了ビューの統計および経路をユーザ経験の指標として用いることができる。例えば、ユーザは、報告630を用いて、費やした時間がタスクに適正であるかどうか、または最短経路が、ユーザにドロップオフすることを促すものである、減衰されたユーザ経験を依然としてもたらしているかどうかを確認することができる。たとえば、プロンプトおよび値設定コンポーネントの代わりに複合バッグエンティティを用いて値をスロットすることにより、スキルを通じてユーザをより迅速に案内できるか?見解報告-ワイドフィルタの直下は、この見解報告のナビゲーション経路:インテント(ここで選択される)>経路>会話>再トレーナ>エクスポートである。画面の左上には日付ピッカーがある(このスクリーンキャプチャにおいては、「直近30日」を表示する)。その上は、見解データのリフレッシュのためのステータスメッセージである。それは、「最後に更新されたのは1分前」と読める。すぐ左には、「リフレッシュ」アイコンがある。左上には編集アイコンがある。それの次には、見解報告-ワイドフィルタ、チャネルおよびロケールがある。このスクリーンキャプチャでは、それらは、チャネル:すべて、およびロケール:すべて、に設定される。これらのすぐ右には、「すべてにリセット」オプションがある。インテントは、報告の遠く左側に表示される。それらの右には、第1のインテントと並行して、結果ドロップダウンメニューがある。この画像では、その完了オプションが選択されている。このオプションが選択された状態で、報告は、最も完了した経路と呼ばれるセクションを出力する。それは、完了した実行経路のトポグラフィカルな表現のセットのセットである。これらの経路の各々について。各経路に左側で付随するのは、これら2つのインジケータ:カウント(経路を通じた会話の数)および平均持続時間(秒単位)である。経路の上方には、報告によって返される完了した経路のグループに対する一連のインジケータがある。それらは、経路;秒平均である。この数は、最高速および最低速;ならびに状態平均によってさらに分解される。この数は、最短および最長によってさらに分解される。
【0127】
タスク指向インテントの持続時間および経路に加えて、インテント報告は、解決できなかった発話も返す。これらの発話を見るために、未解決インテントをクリックする。
図6Gは、インテント見解報告のセグメントのインターフェイス画面635を示す。左上は、見解報告に対するナビゲーション経路:インテント(ここで選択される)>経路>会話>再トレーナ>エクスポートである。インテントは、報告の遠く左側に表示される。このスクリーンキャプチャでは、未解決のインテントが選択されている。その結果、画面には2つの区画:最も近い予測:水平棒グラフがポピュレートされる。y軸はインテントであり、x軸はインテントカウントである。トップ未解決発話(「最も近い予測」区画のすぐ右):フレーズ列およびスコア列を用いて発話をランク付けする。この報告は、経路または速度を示さず、なぜならば、それらはこのユーザ入力には当てはまらないからである。代わりに、棒グラフは、いずれのインテントにも解決できなかったか、または解決される可能性を有した(システムがインテントを推測できたことを意味する)が、低い信頼度スコアのためにそのようにすることを妨げられた発話の数によって、各インテントをランク付けする。ユーザは、棒グラフ内においてあるインテントをクリックすることにより、確率スコアによってソートされたこれらの候補発話を見ることができる。いくつかの実施形態では、これらは、再トレーナ報告においてデフォルトの検索基準によって返される同じ発話であり、したがって、ユーザは、それらをそこに追加することができる。
【0128】
図6Hは、スキル見解の一部である経路報告を示すインターフェイス画面640を示す。経路報告は、ダイアログフローの、インテントに特有の経路を、所与の期間にわたって
、いくつの会話が流れたかを、ユーザに発見させる。
【0129】
それは、ユーザに、各状態間で維持される会話の数、および会話が、値が設定される(または設定されない)ために分岐したかまたは機能不全のカスタムコンポーネントのような何らかの他の問題のために行き詰まったためにとられる異なる実行経路を示す。
図6Hは、インテントについての実行経路のセクションを具体的に示す。これは地下鉄駅のように見え、左で始まり、右で終わるものである。間で、経路は水平に分岐することができる。途中の様々な状態は停車駅に似ている。状態は、方向矢印で水平および垂直の両方に接続される。各矢印は、ある状態から別の状態へと運ばれた会話の数を表す数を有する。経路が分岐する場合、水平線上で安定状態のままだった会話の数は、経路が異なる方向に分割されるにつれて減少し、それに応じて会話を運ぶ。
【0130】
あるインテントに関して、未完了の実行経路について、あるクエリがこの報告上で実行されるとき、ユーザは、最終状態を選択することもできる。最終状態をクリックすることにより、ユーザは、エラー発話または詳細パネルに表示する最後の顧客発話から、会話の成功または失敗について、より多くを見出すことができる。
図6Iは、ユーザが実行経路において最終状態をクリックしたときに経路見解報告が表示する統計のインターフェイス画面645を示す。この状態に特有の情報はパネル内に表示される。パネルは強調された状態にちなんで名付けられ、以下のセクション、すなわち、放棄--2つのサブセクションがある:タイムアウトおよびエラー;フレーズ;ならびに会話--これは会話見解報告を開くハイパーリンクである、を有する。報告は、空白であるか(またはそうでなければ平文ではない)、または予想外の入力を含む任意の顧客発話に対してはヌル応答を表示する。ポストバックアクションである非テキスト応答については、それは最も最近のアクションのペイロードを表示する。例えば:{"orderAction":"confirm""system.state":"orderSummary"}である。
【0131】
図6Jは、スキル見解の一部である会話報告を示すインターフェイス画面650を示す。例えば、
図6Iに示す「会話」をクリックすると、会話報告が開き、ユーザはトランスクリプト全体を精査することができる。会話報告を用いて、ユーザは、会話の実際のトランスクリプトを調べて、ユーザがどのようにインテント関連経路を完了したか、およびなぜそうしなかったか、を知ることができる。これらのトランスクリプトを見るために、この報告は、それらを可能にするインテントによって、ユーザにフィルタリングさせる。ユーザは、会話の長さおよび結果のような次元を追加することができ、これは完了または未完了のいずれかとして注目される。ユーザはまた、会話に干渉した可能性のある任意のシステムまたはカスタムコンポーネントエラーを含むようにビューを切り替えることもできる。報告によって返される各行は、会話のトランスクリプトおよびそれを運んだ経路を示す。ユーザは、「会話を閲覧」ビューをクリックすることによって、チャットウィンドウのコンテキスト内でこのダイアログを見ることができる。
【0132】
図6Jに示すように、最も左上には編集アイコンがある。それの次には、見解報告-ワイドフィルタ、チャネルおよびロケールがある。このスクリーンキャプチャでは、それらは、チャネル:すべて、およびロケール:すべて、に設定される。これらのすぐ右には、「すべてにリセット」オプションがある。画面の左上には日付ピッカーがある(このスクリーンキャプチャにおいては、「直近30日」を表示する)。その上は、見解データのリフレッシュのためのステータスメッセージである。それは「最後に更新されたのは数秒前」と読める。すぐ左には、「リフレッシュ」アイコンがある。見解報告-ワイドフィルタの直下は、見解報告のナビゲーション経路:インテント>経路>会話(ここで選択される)>再トレーナである。ナビゲーション経路の直下には、この報告に対するフィルタリングオプションがある。左から右に、それらは,インテント、結果、~でソート、およびエ
ラーである。インテント、結果、および、~でソートはドロップダウンメニューであるが
、エラーはトグルスイッチ(この画像については「オフ」に位置決めされる)である。フィルタリングオプションの下には、結果を表示するテーブルがある。これは、以下の列、すなわち、インテント;結果;時間;ユーザ;およびボットを有する。ユーザ列およびボット列は、それぞれ顧客およびスキルの両方からの発話のトランスクリプトを表示する。トランスクリプトのすぐ左側には、「会話を閲覧」と呼ばれるオプションがある。テーブルの右下には、ページ付け制御がある。テーブルの下には、「選択された会話の詳細」と呼ばれるセクションがあり、これはトランスクリプトのトポグラフィカルな表現を示す。それは、左(会話の開始)から右(会話の終了)にわたる線形トランジットマップであり、会話の過程で横断される各状態は、局または停止場の等価物として示されている。
【0133】
図6Kは、いくつかの実施形態において、様々なデータがチャットウィンドウおよびトランスクリプトの両方内で難読化(**)されて、クレジットカード番号のような機密情報を保護することができることを示している。具体的には、インターフェイス画面655は、「会話」と呼ばれるパネル内にユーザ-スキルボット会話を示す。このパネルの真上の左側には、インテント名およびセッションIDがある。ボット-ユーザチャットは会話パネル自体にあり、ユーザの発話が右にあり、スキルボットの応答が左にある。このスクリーンキャプチャでは、チャット内のすべての数字がアスタリスクで難読化される。例えば、「私は**本の赤いバラを送りたい」となる。
【0134】
図6Lは、スキル見解の一部である再トレーナを示すインターフェイス画面660を示す。再トレーナは、スキルまたはチャットボットを改善するためにユーザにユーザ入力をユーザのトレーニングコーパスに組み込ませる。顧客は、異なるフレーズを用いて、同じタスクについて尋ねることができる。この報告は、これらのフレーズを識別し、ユーザがそれらを割り当てることができるインテントを示唆する。他の報告と同様に、ユーザは、特定のチャネルまたはロケールを通して配信されるユーザ発話に対する会話履歴をフィルタリングすることができるが、ここでは、ユーザは、インテントによって、インテント解決に関連するプロパティ(トップ信頼度,マージン獲得(Win Margin))によって、また
は比較演算子未満、比較演算子に等しい、または比較演算子超と一緒にリンクされるこれらの組み合わせによって、ユーザ発話を検索することができる。報告によって返される各ユーザ発話は、100%の積み上げ棒グラフ、すなわち最高から最低までの各インテントに対する信頼レベル解決の表現を伴う。ユーザは、グラフのセグメントを参照して、ユーザ入力をインテントにマッチングすることができる。
【0135】
図6Lに示すように、最も左上には編集アイコンがある。それの次には、見解報告-ワイドフィルタ、チャネルおよびロケールがある。このスクリーンキャプチャでは、それらは、チャネル:すべて、およびロケール:すべて、に設定される。これらのすぐ右には、「すべてにリセット」オプションがある。見解報告-ワイドフィルタの直下は、見解報告のナビゲーション経路:インテント>経路>会話>再トレーナ(このスクリーンキャプチャで選択される)である。ナビゲーション経路の真下には、再トレーナ用のフィルタオプションがある。再トレーナは、異なるオプション上の「すべて」または「任意」(スクリーンの左上側に位置する)および日付ピッカー(スクリーンの右上側に位置する)を用いてユーザにソートさせる。この日付ピッカー(このスクリーンキャプチャにおいては、「直近30日」を表示する)の真上は、見解データのリフレッシュのためのステータスメッセージである。それは、「最後に更新されたのは数秒前」と読める。すぐ左には、「リフレッシュ」アイコンがある。このスクリーンキャプチャでは、オプションは、トップインテント名、マッチ、および未解決インテントである。これは、この特定の報告の唯一の基準であるが、ユーザがさらに望む場合には、ユーザは、(画面の右側に配置された)基準ボタンをクリックして、フィルタオプションの別のセットを追加することができる。左側において、フィルタリングオプションの下に位置するのは、検索ボタンである。
【0136】
再トレーナは、発話を以下の列、すなわち、発話:実際のユーザメッセージまたは発話にソートする。発話のすぐ左には、選択オプションがある。解決済みインテント:発話またはユーザ発話が解決された、または一致したインテント(もしあれば)。インテント分類:インテントをマッチングするため再トレーナの最良の推量によりセグメント化される100%棒グラフ。各異なるセグメントは、異なる色、およびすぐ右に対応の「キャプション」を有する。すぐ右には、一致したインテントの名前であるか、または一致できるインテントがない場合には、再トレーナは、「インテントを選択」を表示する。すぐ右には、インテント(一致がなかった場合)または新たなインテント(一致があった場合)のいずれかを選択するためにメニューを開くオプションがある。「インテントを選択」オプションは、結果のテーブルの上にも表示し、それをフィルタとして用いることができる。テーブルの下には、「例を追加」ボタンがある。画面の左下には、結果のためのページ付けがある。この画像において、それは2の1ページである。一部の実施形態では、ユーザが自分のトレーニングコーパスにユーザ発話を追加するとき、以下を考慮する必要がある場合がある:ユーザがユーザ発話をインテントとして追加する場合、スキルを再トレーニングする必要があることになり、ユーザはトレーニングコーパスに既に発話として存在するユーザ入力を追加することはできず、ユーザは個々のインテントに発話を追加することができ、または「発話」次いで「例を追加」をクリックすることによりユーザ発話のすべてを選択することができる。
【0137】
トップ信頼度フィルタをスキルのための信頼度閾値セットより下に設定することによって、またはデフォルトフィルタ、「インテント」「一致」「未解決インテント」を通して、ユーザは、インテント処理フレームワークによって作成された信頼ランク付けを用いてユーザのトレーニングコーパスを更新することができる。これは緩やかな自己学習であり、スキルの保全性を保ちながらインテント解決を向上させる。例えば、報告のデフォルト検索基準は、不適切であるか、トピックから外れているか、またはスペルミスを含むため、信頼度レベルまで解決できないランダムなユーザ入力を、ユーザに示す。棒グラフのセグメントおよびキャプションを参照することによって、ユーザは、ユーザ入力を割り当てることができ、つまり、わけのわからない言葉から構成される入力を割り当てることによって未解決のインテントを処理するためにスキルのインテントを強化することができ、またはユーザは、スペルの間違ったエントリを適切なタスク指向インテントに(例えば、「send moneey」を「送金」インテントに)追加することができる。例えば、
図6Mのイン
ターフェイス画面665に示されるように、ユーザのスキルが「歓迎」インテントを有する場合、例えば、ユーザは、ユーザのスキルが「私はそれについては知りませんが、あなたが花を注文するのお手伝いはできます。」のような返答を返すことができる、無関係な、トピックから外れた発話を割り当てることができる。
【0138】
図6Nは、スキル見解の一部であるエクスポータを示すインターフェイス画面670を示す。様々な見解報告は、ユーザに見解データに関する異なる視点を提供するが、ユーザがこのデータを別の方法で閲覧する必要がある場合、ユーザはエクスポートされた見解データのCSVファイルから自分自身の報告を作成することができる。例えば、ユーザは、エクスポートタスクを作成することによって、自分が分析したいデータの種類を定義することができる。エクスポートタスクは、スキルの現在のバージョンに当てはまる。このタスクが完了すると、ユーザはCSVファイルをダウンロードすることができる。これは、ユーザ発話、スキル応答、コンポーネントタイプ、および状態名のような詳細を、読み取り可能な形式で含む。エクスポートページは、タスクをのリスト化を以下により行う。すなわち、名前:エクスポートタスクの名前。最後のラン:タスクが最も最近実行された日付。作成者:タスクを作成したユーザの名前。エクスポートステータス:開始済み、進行中、失敗、データなし(タスクについて定義された日付範囲内にエクスポートすべきデータがない場合)、または完了済みであり、エクスポートされたデータをCSVファイルとしてダウンロードさせるハイパーリンクである。「失敗」ステータス上のホバリングは、
説明メッセージを表示する。
【0139】
図6Nに示されるように、画面の右側には日付ピッカードロップダウンメニューがある。パンくずリストの直下には、「エクスポートを追加」ボタンがある。このボタンの下には、検索フィールドおよびフィルタリングフィールド:「名前によるフィルタまたは作成者」、「ステータスによるフィルタ」(ドロップダウンメニュー)、「~によるソート」(ドロップダウンメニュー)がある。検索フィールドの下には、左から右へ、名前、最後のラン、作成者、およびステータスの列によってエクスポートをソートするテーブルがある。ユーザがUIを通じてデータをエクスポートすることを望まないが、代わりに、エクスポートタスクをエクスポート、格納、またはスケジュールするために自分自身のコードまたはスクリプトを好む場合、ユーザは、エクスポートタスク、エクスポートタスク履歴、および見解データ自体のエクスポートに関連するエンドポイント、シンタックス、およびメソッドについてREST APIを参照することが可能である。ユーザは、このAPIにプログラム的にアクセスするために外部認証および認可フローを必要とする場合がある。
【0140】
見解データを解釈する例
この例では、あるユーザが、花を配達用に注文することがその主な使用例である花屋ボットと呼ばれるスキルを開発したが、ユーザは、過去90日間のアクティビティを閲覧した後、何かが間違ったことが概観報告からすぐにわかる、と仮定する。ここで、ユーザめがけて飛び出すべきものがいくつかある:KPIは、会話の大部分(約57%)が未完了であることを明らかにする(例えば、
図7A参照)。インテント棒グラフは、ユーザが見ることを望むものとは反対を示し:花を注文インテントおよび歓迎インテントの実行経路は充分に利用されていない。これらは、実行経路が頻繁に通り抜けられるトップランクのインテントであるべきであるが、それよりむしろ、花を注文の逆である苦情提出よりも下にランク付けされる(例えば、
図7B参照)。主要使用例の「花を注文する」に対する会話のほぼすべては、選択された期間について、未完了のままであった。一方、「苦情を提出する」の会話は、副次的機能の「フランチャイズを開設する」のように100%の完了率を有する。グラフの未解決インテントの棒グラフは、スキルがその期間中の会話の半分からの発話を認識することができないため、スキルのトレーニングに何らかのギャップある可能性があることを示す。このスキルを軌道に戻すために、ユーザは、インテント報告および経路報告を用いて、ユーザが「花を注文する」実行経路を打ち切った状態を指し示す必要があり得る。見解予測および再トレーナを用いて、ユーザは、ユーザのトレーニングコーパスのために未解決の発話を活用することもできる。
【0141】
ステップ1、インテント報告における「花を注文する」実行経路を精査する。まず、ユーザは、「花を注文する」棒グラフの未完了系列をクリックして、インテント報告を開くことができる(例えば、
図7C参照)。未完了系列からドリルダウンして、「花を注文する」に対するその未完了結果モードで未完了報告を開く。報告書の横棒グラフは、システムエラーのために何個の会話が停止したかをユーザに示す(システム.デフォルトエラー
ハンドラ棒グラフ)が、会話が時期尚早に終了した2つの状態(「支払いを行う」および「花のメニューを見せる」)もユーザに示す(例えば、
図7D参照)。経路に沿ったスクロールは、これらの状態についてのコンテキストをユーザに与え、ユーザは、これらの問題エリアの直前の状態を見ることができ、アイコンは、フロー内の状態ごとにどのコンポーネントが定義されたかをユーザに示す。この点に関して特に興味深いのは、「支払いを行う」状態および「花のメニューを見せる」状態であり、それらは、それぞれ、「システム.対話(System.Interactive)」コンポーネントおよび「システム.共通応答(System.CommonResponse)」コンポーネントで定義されている。
【0142】
ステップ2、経路報告を精査してエラーおよびユーザ発話を理解する。「花を注文する
」のインテント報告は、どこで会話が終了したかをユーザを示すが、その理由を見つけるために、ユーザは、経路報告を開き、「花を注文する」インテント、「未完了」の結果、および最終状態としての「支払いを行う」によってフィルタリングすることができる(たとえば、
図7Eを参照されたい)。この報告は、会話が共通の開始点の後にどこで分岐するかを理解する追加の次元をユーザに与える。ここで、「花束エンティティをチェック(checkFlowerBouquetEntity)」状態のため、会話が分岐する。それの「システム.スイッ
チ(System.Switch)」コンポーネントおよびApache FreeMarker表現は、ユーザ発話が花の種類または花束名を明示的に言及する場合には「花を注文する」状態もしくは「花束を注文する」状態のいずれかに顧客をルーティングするか、またはこれらの詳細が欠けている場合には「注文種類メニューを見せる(ShowOrderTypeMenu)」(システム.リスト(System.List)コンポーネント)に顧客をルーティングする。
【0143】
【0144】
両方の実行経路にシステムエラーがある。ユーザは、経路において赤いSystem.Outputス
トップをクリックすることによってスキルがこれらのエラーを投げる前にスキルによって受け取られた発話を見ることができる(例えば、
図7F参照)。
【0145】
会話のトランスクリプト、スキルがセッションを終了するときを表示する標準的な「失礼」メッセージにおいて成立した可能性のあるものを見るために、ユーザは「会話」をクリックして「会話」報告を開くことができる(例えば、
図7G参照)。報告が各実行経路上でシステムエラーの有意な発生を示す場合、ユーザは、顧客がスキルを継続できるよう
にするエラー遷移関連ルーティングでダイアログフロー定義を拡張することを望む場合がある。トラブルシュートタイムアウト-ユーザは、これらの両方の経路の共通の障害点、すなわちインスタントアプリを呼び出す「支払いを行う」状態を見ることもできる。(または、この場合、おそらくインスタントアプリを呼び出さなかった)。システムエラーは他の場所でユーザをブロックしていたが、ここでは、ヌル応答は、インスタントアプリが呼び出されたときにユーザがスキルを放棄しているように見えることを示す。「会話」をクリックすると、トランスクリプトが開き、これは、ユーザがインスタントアプリの手前で停止したかまたはわざわざそれを完了することは決して無かったことを示す。顧客は、インスタントアプリが呼び出されると一貫してスキルを放棄するので、問題が、インスタントアプリ、ダイアログフロー定義、またはそれら両方の組み合わせにあるかどうかを調査する。ダイアログフローをインスタントアプリに対してチェックすると、以下のことが検証される:すなわち、idはインスタントアプリの名前と一致する。sourceVariableListプロパティ変数における値は設定され、インスタントアプリにおいてポピュレートされる。インスタントアプリペイロードは変数に格納されている。
【0146】
スキル-インスタントアプリ対話が適切に機能する場合、顧客はこの時点で関心を失いつつある可能性がある。この期間中に完了した「花を注文する」実行経路に対するインテント報告を再訪問すると、顧客が50の状態を通り抜けるのに約3分間費やしたことが示される。これが長すぎるようである場合、より効率的にユーザ入力を収集するようにスキルを改定することができる。調べるべき、「失敗した花のメニューを見せる(showFlowersMenu)」状態もある。顧客がどこでやめたかを見るために、経路報告を開き、次いで、
「花を注文する」、「未完了」、および最終状態としての「花のメニューを見せる」によってフィルタリングする。「花のメニューを見せる」をクリックすると、顧客がこの状態でスキルを用いることを停止したことを示し、これは「システム.共通応答(System.CommonResponse)」コンポーネントを用いて定義される。スキルは、顧客のニーズ(この場合、赤いバラの花束である)に応答しないため、タイムアウトする。「会話」をクリックしてトランスクリプトにドリルダウンすることにより、顧客が選択を行うことを拒否した後でも、それは代わりに自動的にデイジーを選択することが分かる。
【0147】
ステップ3、再トレーナを用いてトレーニングコーパスを更新する。「花を注文する」実行経路に関する問題に加えて、ユーザは、スキルが顧客入力の50%を処理できないことを概観が明らかにしたことに気づくはずである。タスク指向のインテントの1つに解決する代わりに、期間の間のユーザ発話の大部分は、未解決のインテントとして分類される。これは、場合によっては適切であり得るが、他の場合は、ユーザがトレーニングコーパスに追加することができる発話をユーザに提供するかもしれない。ユーザは、以下の方法、すなわち、インテントをクリックする;未解決インテントをクリックする;最も近い予測グラフにおける未解決インテント棒グラフをクリックする;そして、未解決発話パネルを精査する、により、これらの発話を調査することができる。ユーザの注意を捕らえるいくつかの発話があり、なぜならば、それらは、たとえ顧客入力がタイプミス、俗語、または非会話的な短縮形:「get flowerss(花を得る)」(68%)および「i wud like to order flwrs.(私は花を注文したい)」(64%)を含む場合であっても、ユーザのスキルがその主要な目標を果たすのを助けることができるからである(例えば、
図7H参照)。
【0148】
これらの発話をトレーニングデータとして追加するために、ユーザは以下を行うことができる:再トレーナをクリックする。これらの発話についての報告を、以下の基準を追加することによってフィルタリングする:すなわち、インテントは未解決のインテントに一致し、トップのインテント信頼度は62%より大きい;「発話」を選び、「追加」メニューから「花を注文する」を選択し、次いで「例を追加」をクリックすることによって、これらの発話を「花を注文する」インテントにバルクとして追加する;そして、スキルを再
トレーニングする(例えば、
図7I参照)。最も近い予測グラフおよび再トレーナを用いて、ユーザは、トレーニングコーパスを完成させるために、ユーザが使用できる有用なコンテンツから、わけのわからない言葉を分離することができる。ユーザは、ユーザのスキルを堅牢にするために、ユーザがとりたいと望み得る方向を示すこともできる。例えば、否定的である多数の未解決のユーザ発話が存在する場合、ユーザは、ユーザ乱用を処理するために、あるインテントを追加することを(または独立型スキルを作成することさえ)考えるかもしれない。
【0149】
ボットシステムの性能を改善するべく見解を用いるための技術
図8は、特定の実施形態による、ボットシステムの性能を改善するために見解を用いるための処理の一例を示す簡略化されたフローチャート800である。
図8に示される処理は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実現され得る。ソフトウェアは、非一時的記憶媒体上に(たとえば、メモリデバイス上に)記憶され得る。
図8に提示され、以下に説明される処理は、例示的かつ非限定的であることを意図している。
図8は、特定のシーケンスまたは順序で生じる様々な処理ステップを示すが、これは限定することを意図するものではない。いくつかの代替実施形態では、それらのステップはいくつかの異なる順序で実行されてもよく、またはいくつかのステップは並行して実行されてもよい。特定の実施形態では、
図8に提示される処理に従って生成されるグラフィカルユーザインターフェイスは、
図4A~
図4C、
図5A~
図5E、および
図6A~
図6Nのうちの1つに示されるように現れ得る。
【0150】
ステップ810において、分析システムのイベントコレクタは、ボットシステムとの会話のセットに関連付けられる1つまたは複数のイベントについての1つまたは複数の属性を収集することができる。上述したように、イベントコレクタは、所望のイベントに対する所望の属性を選択的に収集するように再設定可能である。1つまたは複数のイベントは、たとえば、会話イベント、ボット状態イベント、インテント解決イベント、エンティティ解決イベント、エラーイベント、タイムアウトイベント、またはカスタムイベントのうちの少なくとも1つを含み得る。1つまたは複数の属性は、たとえば、
図2に関して上記で説明した属性を含み得る。いくつかの実施形態では、会話のセットに関連付けられる1つまたは複数のイベントについての1つまたは複数の属性は、濃縮され、データストアに保存されてもよい。
【0151】
ステップ820において、分析システムの分析エンジンは、ユーザによって選択された1つまたは複数のフィルタリング基準を用いて、イベントコレクタによって収集された1つまたは複数のイベントに対する1つまたは複数の属性に基づいて、会話のセットから1つまたは複数の会話を選択することができる。1つまたは複数のフィルタリング基準は、たとえば、特定の状態で終了した会話、特定の状態から開始した会話、完了したまたは未完了の会話、特定のエンドユーザのインテントに関連付けられる会話、特定のチャネルまたはロケールからの会話、特定の期間中に生じた会話などを含み得る。
【0152】
ステップ830において、分析システムの分析エンジンは、選択された1つまたは複数の会話に関する1つまたは複数の報告を生成することができる。いくつかの実施形態では、分析エンジンはRESTサーバを含み得る。1つまたは複数の報告は、たとえば、会話のセットの統計を含む報告、特定のエンドユーザのインテントに関連付けられる会話の統計を含む報告、特定のエンドユーザのインテントに関連付けられる会話を含む報告、未完了の会話の統計を含む報告、未完了の会話を含む報告、エンドユーザのインテントが判断されない会話の統計を含む報告、エンドユーザのインテントが判断されない会話を含む報告、ボットシステムを改善するためのオプションを含む報告、またはそれらの組み合わせ
を含み得る。いくつかの実施形態では、エンドユーザのインテントが判断されない会話を含む報告は、エンドユーザのインテントが判断されない会話の各会話について、会話とエンドユーザのインテントのセット内の各それぞれのエンドユーザのインテントとの間のマッチングを示すスコアを含み得る。
【0153】
いくつかの実施形態では、1つまたは複数の報告は、選択された1つまたは複数の会話について、集約経路図を含み得る。集約経路図は、複数のノードと、複数のノード間の複数の接続とを含み得る。複数のノードの各々は、ボットシステムのそれぞれの状態に対応することができる。複数の接続の各々は、ボットシステムの1つの状態からボットシステムの別の状態への遷移を表すことができる。複数のノードは、開始ノードおよび終了ノードを含み得る。いくつかの実施形態では、集約経路図は、各それぞれの接続に関連付けられる数を含むことができ、その数は、それぞれの接続によって表される遷移を含む会話の総数を示すことができる。いくつかの実施形態では、複数のノードの各ノードは、1つまたは複数のユーザ選択可能な項目のうちのあるユーザ選択可能な項目であってもよい。いくつかの実施形態では、複数の接続の各接続は、1つまたは複数のユーザ選択可能な項目のうちのあるユーザ選択可能な項目であってもよい。
【0154】
ステップ840において、GUIは、1つまたは複数の報告からの第1の報告、および第1の報告に関連付けられる1つまたは複数のユーザ選択可能な項目をグラフィカルに表示してもよい。1つまたは複数のユーザ選択可能な項目は、第1の報告の少なくとも1つの要素を含み得る。1つまたは複数のユーザ選択可能な項目のうちの少なくとも1つは、1つまたは複数のフィルタリング基準のうちのあるフィルタリング基準に対応し得る。いくつかの実施形態では、1つまたは複数のユーザ選択可能な項目は、選択されると、1つまたは複数の個々の会話をGUI上に表示させる、ユーザ選択可能な項目を含み得る。いくつかの実施形態では、1つまたは複数のユーザ選択可能な項目は、会話のセットから、特定の状態で終了した会話を選択するためのメニューを含むことができる。いくつかの実施形態では、1つまたは複数のユーザ選択可能な項目は、会話のセットから、特定の状態から開始される会話を選択するためのメニューを含むことができる。いくつかの実施形態では、1つまたは複数のユーザ選択可能な項目は、会話のセットから、完了または未完了の会話を選択するためのメニューを含むことができる。いくつかの実施形態では、1つまたは複数のユーザ選択可能な項目は、会話のセットから、特定のエンドユーザのインテントに関連付けられる会話を選択するためのメニューを含むことができる。
【0155】
ステップ850において、GUIサーバは、GUIを通じて、1つまたは複数のユーザ選択可能な項目のユーザ選択を受信することができる。860で、1つまたは複数の報告からの第2の報告が、ユーザ選択に基づいてGUI上にグラフィカルに表示されてもよい。いくつかの実施形態では、第2の報告は、たとえば、個々の会話に関連付けられる発話、および発話に関連付けられるユーザのインテントを含み得る。
【0156】
任意選択で、ステップ870において、ユーザ入力は、1つまたは複数のユーザ選択可能な項目のうちのあるユーザ選択可能な項目を通して受信されてもよい。たとえば、1つまたは複数のユーザ選択可能な項目は、発話および/または発話に関連付けられるインテントなどの、ユーザ編集可能な項目を含み得る。ボットシステムの管理者または開発者は、発話の追加、除去、もしくは編集、および/または発話についてのインテントの追加、除去、もしくは編集を行うことができる。ユーザ入力は、修正された発話またはその発話についての修正されたインテントを含み得る。
【0157】
任意選択で、ステップ880において、ボットシステムは、ボットシステムのインテント分類モデルを再トレーニングしてユーザのインテントをより正確に判断することなど、ボットシステムの性能を改善するために、ユーザ入力を用いて再トレーニングされてもよ
い。
【0158】
例示的なシステム
図9は、分散型システム900の簡略図を示す。図示される例において、分散型システム900は、1つ以上の通信ネットワーク910を介してサーバ912に結合された1つ以上のクライアントコンピューティングデバイス902、904、906、および908を含む。クライアントコンピューティングデバイス902、904、906、および908は、1つ以上のアプリケーションを実行するように構成され得る。
【0159】
さまざまな例において、サーバ912は、本開示に記載される1つ以上の実施形態を可能にする1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。ある例では、サーバ912はまた、非仮想環境および仮想環境を含み得る他のサービスまたはソフトウェアアプリケーションを提供し得る。いくつかの例では、これらのサービスは、クライアントコンピューティングデバイス902、904、906および/または908のユーザに対して、サービスとしてのソフトウェア(Software as a Service:SaaS)モデル下のように、ウェブベースのサービスまたはクラウドサービスと
して提供され得る。クライアントコンピューティングデバイス902、904、906および/または908を操作するユーザは、1つ以上のクライアントアプリケーションを利用してサーバ912とやり取りすることで、これらのコンポーネントによって提供されるサービスを利用し得る。
【0160】
図9に示される構成では、サーバ912は、サーバ912によって実行される機能を実現する1つ以上のコンポーネント918、920および922を含み得る。これらのコンポーネントは、1つ以上のプロセッサ、ハードウェアコンポーネント、またはそれらの組合わせによって実行され得るソフトウェアコンポーネントを含み得る。分散型システム900とは異なり得る多種多様なシステム構成が可能であることが認識されるはずである。したがって、
図9に示される例は、例のシステムを実現するための分散型システムの一例であり、限定するよう意図されたものではない。
【0161】
ユーザは、クライアントコンピューティングデバイス902、904、906および/または908を用いて、1つまたは複数のアプリケーションを実行し、それは、1つ以上の格納要求を生成してもよく、それは次いで本開示の教示に従って処理されてもよい。クライアントデバイスは、当該クライアントデバイスのユーザが当該クライアントデバイスと対話することを可能にするインターフェイスを提供し得る。クライアントデバイスはまた、このインターフェイスを介してユーザに情報を出力してもよい。
図9は4つのクライアントコンピューティングデバイスだけを示しているが、任意の数のクライアントコンピューティングデバイスがサポートされ得る。
【0162】
クライアントデバイスは、ポータブルハンドヘルドデバイス、パーソナルコンピュータおよびラップトップのような汎用コンピュータ、ワークステーションコンピュータ、ウェアラブルデバイス、ゲームシステム、シンクライアント、各種メッセージングデバイス、センサまたはその他のセンシングデバイスなどの、さまざまな種類のコンピューティングシステムを含み得る。これらのコンピューティングデバイスは、さまざまな種類およびバージョンのソフトウェアアプリケーションおよびオペレーティングシステム(たとえばMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、UNIX(登録商標)またはUNIX系オペレーティングシステム、LinuxまたはLinux系オペレーティングシステム、たとえば、各種モバイルオペレーティングシステム(たとえばMicrosoft Windows Mobile(登録商標)、iOS(登録商標)、Windows Phone(登録商標)、Android(登録商標)、BlackBerry(登録商標)、Palm OS(登録商標))を含む
Google Chrome(登録商標)OS)を含み得る。ポータブルハンドヘルドデバイスは、セルラーフォン、スマートフォン(たとえばiPhone(登録商標))、タブレット(たとえばiPad(登録商標))、携帯情報端末(PDA)などを含み得る。ウェアラブルデバイスは、Google Glass(登録商標)ヘッドマウントディスプレイおよびその他のデバイスを含み得る。ゲームシステムは、各種ハンドヘルドゲームデバイス、インターネット接続可能なゲームデバイス(たとえばKinect(登録商標)ジェスチャ入力デバイス付き/無しのMicrosoft Xbox(登録商標)ゲーム機、Sony PlayStation(登録商標)システム、Nintendo(登録商標)が提供する各種ゲームシステムなど)を含み得る。クライアントデバイスは、各種インターネット関連アプリケーション、通信アプリケーション(たとえばEメールアプリケーション、ショートメッセージサービス(SMS)アプリケーション)のような多種多様なアプリケーションを実行可能であってもよく、各種通信プロトコルを使用してもよい。
【0163】
ネットワーク910は、利用可能な多様なプロトコルのうちのいずれかを用いてデータ通信をサポートできる、当該技術の当業者には周知のいずれかの種類のネットワークであればよく、上記プロトコルは、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、AppleTalk(登録商標)などを含むがこれらに限定されない。単に一例として、ネットワーク910は、ローカルエリアネットワーク(LAN)、Ethernet(登録商標)に基づくネットワーク、トークンリング、ワイドエリアネットワーク(WAN)、インターネット、仮想ネットワーク、仮想プライベートネットワーク(VPN)、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば電気電子学会(IEEE)802.11プロトコルスイートのいずれかの下で動作する無線ネットワーク、Bluetooth(登録商標)および/または任意の他の無線プロトコル)、および/またはこれらおよび/または他のネットワークの任意の組み合わせを含み得る。
【0164】
サーバ912は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(一例としてPC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む)、サーバファーム、サーバクラスタ、またはその他の適切な構成および/または組み合わせで構成されてもよい。サーバ912は、仮想オペレーティングシステムを実行する1つ以上の仮想マシン、または仮想化を伴う他のコンピューティングアーキテクチャを含み得る。これはたとえば、サーバに対して仮想記憶装置を維持するように仮想化できる論理記憶装置の1つ以上のフレキシブルプールなどである。様々な例において、サーバ912を、上記開示に記載の機能を提供する1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合させてもよい。
【0165】
サーバ912内のコンピューティングシステムは、上記オペレーティングシステムのうちのいずれかを含む1つ以上のオペレーティングシステム、および、市販されているサーバオペレーティングシステムを実行し得る。また、サーバ912は、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(コモンゲートウェイインターフェイス)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含むさまざまなさらに他のサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかを実行し得る。例示的なデータベースサーバは、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、IBM(登録商標)(International Business Machines)などから市販されているも
のを含むが、それらに限定されない。
【0166】
いくつかの実現例において、サーバ912は、クライアントコンピューティングデバイス902、904、906および908のユーザから受信したデータフィードおよび/またはイベントアップデートを解析および整理統合するための1つ以上のアプリケーションを含み得る。一例として、データフィードおよび/またはイベントアップデートは、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえば、ネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通モニタリングなどに関連するリアルタイムのイベントを含んでもよい、1つ以上の第三者情報源および連続データストリームから受信される、Twitter(登録商標)フィード、Facebook(登録商標)アップデートまたはリアルタイムのアップデートを含み得るが、それらに限定されない。サーバ912は、データフィードおよび/またはリアルタイムのイベントをクライアントコンピューティングデバイス902、904、906および908の1つ以上の表示デバイスを介して表示するための1つ以上のアプリケーションも含み得る。
【0167】
分散型システム900はまた、1つ以上のデータリポジトリ914、916を含み得る。特定の例において、これらのデータリポジトリを用いてデータおよびその他の情報を格納することができる。たとえば、データリポジトリ914、916のうちの1つ以上を用いて、様々な実施形態による様々な機能を実行するときにサーバ912によって使用される見解情報に関連する情報のような情報を格納することができる。データリポジトリ914、916は、さまざまな場所に存在し得る。たとえば、サーバ912が使用するデータリポジトリは、サーバ912のローカル位置にあってもよく、またはサーバ912から遠隔の位置にあってもよく、ネットワークベースの接続または専用接続を介してサーバ912と通信する。データリポジトリ914、916は、異なる種類であってもよい。特定の例において、サーバ912が使用するデータリポジトリは、データベース、たとえば、Oracle Corporation(登録商標)および他の製造業者が提供するデータベースのようなリレーショナルデータベースであってもよい。これらのデータベースのうちの1つ以上を、SQLフォーマットのコマンドに応じて、データの格納、アップデート、およびデータベースとの間での取り出しを可能にするように適合させてもよい。
【0168】
特定の例では、データリポジトリ914、916のうちの1つ以上は、アプリケーションデータを格納するためにアプリケーションによって用いられてもよい。アプリケーションが使用するデータリポジトリは、たとえば、キー値ストアリポジトリ、オブジェクトストアリポジトリ、またはファイルシステムがサポートする汎用ストレージリポジトリのようなさまざまな種類のものであってもよい。
【0169】
特定の例において、本開示に記載される機能は、クラウド環境を介してサービスとして提供され得る。
図10は、特定の例に係る、各種サービスをクラウドサービスとして提供し得るクラウドベースのシステム環境の簡略化されたブロック図である。
図10に示される例において、クラウドインフラストラクチャシステム1002は、ユーザが1つ以上のクライアントコンピューティングデバイス1004、1006および1008を用いて要求し得る1つ以上のクラウドサービスを提供し得る。クラウドインフラストラクチャシステム1002は、サーバ912に関して先に述べたものを含み得る1つ以上のコンピュータおよび/またはサーバを含み得る。クラウドインフラストラクチャシステム1002内のコンピュータは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、またはその他任意の適切な配置および/または組み合わせとして編成され得る。
【0170】
ネットワーク1010は、クライアント1004、1006、および1008と、クラウドインフラストラクチャシステム1002との間におけるデータの通信および交換を容易にし得る。ネットワーク1010は、1つ以上のネットワークを含み得る。ネットワー
クは同じ種類であっても異なる種類であってもよい。ネットワーク1010は、通信を容易にするために、有線および/または無線プロトコルを含む、1つ以上の通信プロトコルをサポートし得る。
【0171】
図10に示される例は、クラウドインフラストラクチャシステムの一例にすぎず、限定を意図したものではない。なお、その他いくつかの例において、クラウドインフラストラクチャシステム1002が、
図10に示されるものよりも多くのコンポーネントもしくは少ないコンポーネントを有していてもよく、2つ以上のコンポーネントを組み合わせてもよく、または、異なる構成または配置のコンポーネントを有していてもよいことが、理解されるはずである。たとえば、
図10は3つのクライアントコンピューティングデバイスを示しているが、代替例においては、任意の数のクライアントコンピューティングデバイスがサポートされ得る。
【0172】
クラウドサービスという用語は一般に、サービスプロバイダのシステム(たとえばクラウドインフラストラクチャシステム1002)により、インターネット等の通信ネットワークを介してオンデマンドでユーザにとって利用可能にされるサービスを指すのに使用される。典型的に、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なる。クラウドサービスプロバイダのシステムは、クラウドサービスプロバイダによって管理される。よって、顧客は、別途ライセンス、サポート、またはハードウェアおよびソフトウェアリソースをサービスのために購入しなくても、クラウドサービスプロバイダが提供するクラウドサービスを利用できる。たとえば、クラウドサービスプロバイダのシステムはアプリケーションをホストし得るとともに、ユーザは、アプリケーションを実行するためにインフラストラクチャリソースを購入しなくても、インターネットを介してオンデマンドでアプリケーションをオーダーして使用し得る。クラウドサービスは、アプリケーション、リソースおよびサービスに対する容易でスケーラブルなアクセスを提供するように設計される。いくつかのプロバイダがクラウドサービスを提供する。たとえば、ミドルウェアサービス、データベースサービス、Java(登録商標)クラウドサービスなどのいくつかのクラウドサービスが、カリフォルニア州レッドウッド・ショアーズのOracle Corporation(登録商標)から提供される。
【0173】
特定の例において、クラウドインフラストラクチャシステム1002は、ハイブリッドサービスモデルを含む、サービスとしてのソフトウェア(SaaS)モデル、サービスとしてのプラットフォーム(PaaS)モデル、サービスとしてのインフラストラクチャ(IaaS)モデルなどのさまざまなモデルを使用して、1つ以上のクラウドサービスを提供し得る。クラウドインフラストラクチャシステム1002は、各種クラウドサービスのプロビジョンを可能にする、アプリケーション、ミドルウェア、データベース、およびその他のリソースのスイートを含み得る。
【0174】
SaaSモデルは、アプリケーションまたはソフトウェアを、インターネットのような通信ネットワークを通して、顧客が基本となるアプリケーションのためのハードウェアまたはソフトウェアを購入しなくても、サービスとして顧客に配信することを可能にする。たとえば、SaaSモデルを用いることにより、クラウドインフラストラクチャシステム1002がホストするオンデマンドアプリケーションに顧客がアクセスできるようにし得る。Oracle Corporation(登録商標)が提供するSaaSサービスの例は、人的資源/資本管理のための各種サービス、カスタマー・リレーションシップ・マネジメント(CRM)、エンタープライズ・リソース・プランニング(ERP)、サプライチェーン・マネジメント(SCM)、エンタープライズ・パフォーマンス・マネジメント(EPM)、解析サービス、ソーシャルアプリケーションなどを含むがこれらに限定されない。
【0175】
IaaSモデルは一般に、インフラストラクチャリソース(たとえばサーバ、ストレージ、ハードウェアおよびネットワーキングリソース)を、クラウドサービスとして顧客に提供することにより、柔軟な計算およびストレージ機能を提供するために使用される。各種IaaSサービスがOracle Corporation(登録商標)から提供される。
【0176】
PaaSモデルは一般に、顧客が、環境リソースを調達、構築、または管理しなくても、アプリケーションおよびサービスを開発、実行、および管理することを可能にするプラットフォームおよび環境リソースをサービスとして提供するために使用される。Oracle Corporation(登録商標)が提供するPaaSサービスの例は、Oracle
Java Cloud Service(JCS)、Oracle Database Cloud Service(DBCS)、データ管理クラウドサービス、各種アプリケーション開発ソリューションサービスなどを含むがこれらに限定されない。
【0177】
クラウドサービスは一般に、オンデマンドのセルフサービスベースで、サブスクリプションベースで、柔軟にスケーラブルで、信頼性が高く、可用性が高い、安全なやり方で提供される。たとえば、顧客は、サブスクリプションオーダーを介し、クラウドインフラストラクチャシステム1002が提供する1つ以上のサービスをオーダーしてもよい。次いで、クラウドインフラストラクチャシステム1002は、処理を実行することにより、顧客のサブスクリプションオーダーで要求されたサービスを提供する。例えば、ユーザは、クラウドインフラストラクチャシステムに、上記のように見解データを取得させ、本明細書で説明するようにチャットボットシステムのためのサービスを提供させるように要求することができる。クラウドインフラストラクチャシステム1002を、1つのクラウドサービスまたは複数のクラウドサービスであっても提供するように構成してもよい。
【0178】
クラウドインフラストラクチャシステム1002は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。パブリッククラウドモデルにおいて、クラウドインフラストラクチャシステム1002は、第三者クラウドサービスプロバイダによって所有されていてもよく、クラウドサービスは一般のパブリックカスタマーに提供される。このカスタマーは個人または企業であってもよい。ある他の例では、プライベートクラウドモデル下において、クラウドインフラストラクチャシステム1002がある組織内で(たとえば企業組織内で)機能してもよく、サービスはこの組織内の顧客に提供される。たとえば、この顧客は、人事部、給与部などの企業のさまざまな部署であってもよく、企業内の個人であってもよい。ある他の例では、コミュニティクラウドモデル下において、クラウドインフラストラクチャシステム1002および提供されるサービスは、関連コミュニティ内のさまざまな組織で共有されてもよい。上記モデルの混成モデルなどのその他各種モデルが用いられてもよい。
【0179】
クライアントコンピューティングデバイス1004、1006、および1008は、異なるタイプであってもよく(たとえば
図9に示されるクライアントコンピューティングデバイス902、904、906および908)、1つ以上のクライアントアプリケーションを操作可能であってもよい。ユーザは、クライアントデバイスを用いることにより、クラウドインフラストラクチャシステム1002が提供するサービスを要求することなど、クラウドインフラストラクチャシステム1002とのやり取りを行い得る。例えば、ユーザは、本開示に記載されているように、クライアントデバイスを使用して見解データを要求することができる。
【0180】
いくつかの例において、クラウドインフラストラクチャシステム1002が、サービスを提供するために実行する処理は、ビッグデータ解析を含み得る。この解析は、大きなデ
ータセットを使用し、解析し、処理することにより、このデータ内のさまざまな傾向、挙動、関係などを検出し可視化することを含み得る。この解析は、1つ以上のプロセッサが、場合によっては、データを並列に処理し、データを用いてシミュレーションを実行するなどして、実行してもよい。たとえば、チャットボットシステムのために見解データを判断するために、ビッグデータ解析がクラウドインフラストラクチャシステム1002によって実行されてもよい。この解析に使用されるデータは、構造化データ(たとえばデータベースに格納されたデータもしくは構造化モデルに従って構造化されたデータ)および/または非構造化データ(たとえばデータブロブ(blob)(binary large object:バイナ
リ・ラージ・オブジェクト))を含み得る。
【0181】
図10の例に示されるように、クラウドインフラストラクチャシステム1002は、クラウドインフラストラクチャシステム1002が提供する各種クラウドサービスのプロビジョンを容易にするために利用されるインフラストラクチャリソース1030を含み得る。インフラストラクチャリソース1030は、たとえば、処理リソース、ストレージまたはメモリリソース、ネットワーキングリソースなどを含み得る。特定の例では、アプリケーションから要求されたストレージを処理するために利用可能なストレージ仮想マシンは、クラウドインフラストラクチャシステム1002の一部である場合がある。他の例では、ストレージ仮想マシンは、異なるシステムの一部である場合がある。
【0182】
特定の例において、異なる顧客に対しクラウドインフラストラクチャシステム1002が提供する各種クラウドサービスをサポートするためのこれらのリソースを効率的にプロビジョニングし易くするために、リソースを、リソースのセットまたはリソースモジュール(「ポッド」とも処される)にまとめてもよい。各リソースモジュールまたはポッドは、1種類以上のリソースを予め一体化し最適化した組み合わせを含み得る。特定の例において、異なるポッドを異なる種類のクラウドサービスに対して予めプロビジョニングしてもよい。たとえば、第1のポッドセットをデータベースサービスのためにプロビジョニングしてもよく、第1のポッドセット内のポッドと異なるリソースの組み合わせを含み得る第2のポッドセットをJavaサービスなどのためにプロビジョニングしてもよい。いくつかのサービスについて、これらのサービスをプロビジョニングするために割り当てられたリソースをサービス間で共有してもよい。
【0183】
クラウドインフラストラクチャシステム1002自体が、クラウドインフラストラクチャシステム1002の異なるコンポーネントによって共有されるとともにクラウドインフラストラクチャシステム1002によるサービスのプロビジョニングを容易にするサービス1032を、内部で使用してもよい。これらの内部共有サービスは、セキュリティ・アイデンティティサービス、統合サービス、エンタープライズリポジトリサービス、エンタープライズマネージャサービス、ウィルススキャン・ホワイトリストサービス、高可用性、バックアップリカバリサービス、クラウドサポートを可能にするサービス、Eメールサービス、通知サービス、ファイル転送サービスなどを含み得るが、これらに限定されない。
【0184】
クラウドインフラストラクチャシステム1002は複数のサブシステムを含み得る。これらのサブシステムは、ソフトウェア、またはハードウェア、またはそれらの組み合わせで実現され得る。
図10に示されるように、サブシステムは、クラウドインフラストラクチャシステム1002のユーザまたは顧客がクラウドインフラストラクチャシステム1002とやり取りすることを可能にするユーザインターフェイスサブシステム1012を含み得る。ユーザインターフェイスサブシステム1012は、ウェブインターフェイス1014、クラウドインフラストラクチャシステム1002が提供するクラウドサービスが宣伝広告され消費者による購入が可能なオンラインストアインターフェイス1016、およびその他のインターフェイス1018などの、各種異なるインターフェイスを含み得る。
たとえば、顧客は、クライアントデバイスを用いて、クラウドインフラストラクチャシステム1002がインターフェイス1014、1016、および1018のうちの1つ以上を用いて提供する1つ以上のサービスを要求(サービス要求1034)してもよい。たとえば、顧客は、オンラインストアにアクセスし、クラウドインフラストラクチャシステム1002が提供するクラウドサービスをブラウズし、クラウドインフラストラクチャシステム1002が提供するとともに顧客が申し込むことを所望する1つ以上のサービスについてサブスクリプションオーダーを行い得る。このサービス要求は、顧客と、顧客が申しむことを所望する1つ以上のサービスを識別する情報を含んでいてもよい。たとえば、顧客は、クラウドインフラストラクチャシステム1002によって提供されるサービスの申し込み注文を出すことができる。注文の一部として、顧客は、サービスが提供されるチャットボットシステムを識別する情報と、任意選択でチャットボットシステムの1つ以上の資格情報を提供することができる。
【0185】
図10に示される例のような特定の例において、クラウドインフラストラクチャシステム1002は、新しいオーダーを処理するように構成されたオーダー管理サブシステム(order management subsystem:OMS)1020を含み得る。この処理の一部として、OMS1020は、既に作成されていなければ顧客のアカウントを作成し、要求されたサービスを顧客に提供するために顧客に対して課金するのに使用する課金および/またはアカウント情報を顧客から受け、顧客情報を検証し、検証後、顧客のためにこのオーダーを予約し、各種ワークフローを調整することにより、プロビジョニングのためにオーダーを準備するように、構成されてもよい。
【0186】
適切に妥当性確認がなされると、OMS1020は、処理、メモリ、およびネットワーキングリソースを含む、このオーダーのためのリソースをプロビジョニングするように構成されたオーダープロビジョニングサブシステム(OPS)1024を呼び出し得る。プロビジョニングは、オーダーのためのリソースを割り当てることと、顧客オーダーが要求するサービスを容易にするようにリソースを構成することとを含み得る。オーダーのためにリソースをプロビジョニングするやり方およびプロビジョニングされるリソースのタイプは、顧客がオーダーしたクラウドサービスのタイプに依存し得る。たとえば、あるワークフローに従うと、OPS1024を、要求されている特定のクラウドサービスを判断し、この特定のクラウドサービスのために予め構成されたであろうポッドの数を特定するように構成されてもよい。あるオーダーのために割り当てられるポッドの数は、要求されたサービスのサイズ/量/レベル/範囲に依存し得る。たとえば、割り当てるポッドの数は、サービスがサポートすべきユーザの数、サービスが要求されている期間などに基づいて決定してもよい。次に、割り当てられたポッドを、要求されたサービスを提供するために、要求している特定の顧客に合わせてカスタマイズしてもよい。
【0187】
特定の例では、セットアップ段階処理は、上記のように、クラウドインフラストラクチャシステム1002によって、プロビジョニングプロセスの一部として実行され得る。クラウドインフラシステム1002は、アプリケーションIDを生成し、クラウドインフラシステム1002自体によって提供されるストレージ仮想マシンの中から、またはクラウドインフラシステム1002以外の他のシステムによって提供されるストレージ仮想マシンから、アプリケーション用のストレージ仮想マシンを選択することができる。
【0188】
クラウドインフラストラクチャシステム1002は、要求されたサービスがいつ使用できるようになるかを示すために、レスポンスまたは通知1044を、要求している顧客に送ってもよい。いくつかの例において、顧客が、要求したサービスの利益の使用および利用を開始できるようにする情報(たとえばリンク)を顧客に送信してもよい。特定の例では、サービスを要求する顧客に対して、応答は、クラウドインフラストラクチャシステム1002によって生成されたチャットボットシステムID、およびチャットボットシステ
ムIDに対応するチャットボットシステムのためにクラウドインフラストラクチャシステム1002によって選択されたチャットボットシステムを識別する情報を含み得る。
【0189】
クラウドインフラストラクチャシステム1002はサービスを複数の顧客に提供し得る。各顧客ごとに、クラウドインフラストラクチャシステム1002は、顧客から受けた1つ以上のサブスクリプションオーダーに関連する情報を管理し、オーダーに関連する顧客データを維持し、要求されたサービスを顧客に提供する役割を果たす。また、クラウドインフラストラクチャシステム1002は、申し込まれたサービスの顧客による使用に関する使用統計を収集してもよい。たとえば、統計は、使用されたストレージの量、転送されたデータの量、ユーザの数、ならびにシステムアップタイムおよびシステムダウンタイムの量などについて、収集されてもよい。この使用情報を用いて顧客に課金してもよい。課金はたとえば月ごとに行ってもよい。
【0190】
クラウドインフラストラクチャシステム1002は、サービスを複数の顧客に並列に提供してもよい。クラウドインフラストラクチャシステム1002は、場合によっては著作権情報を含む、これらの顧客についての情報を格納してもよい。特定の例において、クラウドインフラストラクチャシステム1002は、顧客の情報を管理するとともに管理される情報を分離することで、ある顧客に関する情報が別の顧客に関する情報からアクセスされないようにするように構成された、アイデンティティ管理サブシステム(IMS)1028を含む。IMS1028は、情報アクセス管理などのアイデンティティサービス、認証および許可サービス、顧客のアイデンティティおよび役割ならびに関連する能力などを管理するためのサービスなどの、各種セキュリティ関連サービスを提供するように構成されてもよい。
【0191】
図11は、コンピュータシステム1100の例を示す。いくつかの例では、コンピュータシステム1100は、分散環境内の任意のデジタルアシスタントまたはチャットボットシステムのいずれか、ならびに上記の様々なサーバおよびコンピュータシステムを実現するために用いられ得る。
図11に示されるように、コンピュータシステム1100は、バスサブシステム1102を介して他のいくつかのサブシステムと通信する処理サブシステム1104を含むさまざまなサブシステムを含む。これらの他のサブシステムは、処理加速ユニット1106、I/Oサブシステム1108、ストレージサブシステム1118、および通信サブシステム1124を含み得る。ストレージサブシステム1118は、記憶媒体1122およびシステムメモリ1110を含む非一時的なコンピュータ読取り可能記憶媒体を含み得る。
【0192】
バスサブシステム1102は、コンピュータシステム1100のさまざまなコンポーネントおよびサブシステムに意図されるように互いに通信させるための機構を提供する。バスサブシステム1102は単一のバスとして概略的に示されているが、バスサブシステムの代替例は複数のバスを利用してもよい。バスサブシステム1102は、さまざまなバスアーキテクチャのうちのいずれかを用いる、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスなどを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、このようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture:MCA)バス、エンハンストISA(Enhanced ISA:EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(Video Electronics Standards Association:VESA)ローカルバス、およびIEEE P1386.1規格に従
って製造されるメザニンバスとして実現され得る周辺コンポーネントインターコネクト(Peripheral Component Interconnect:PCI)バスなどを含み得る。
【0193】
処理サブシステム1104は、コンピュータシステム1100の動作を制御し、1つ以
上のプロセッサ、特定用途向け集積回路(ASIC)、またはフィールドプログラマブルゲートアレイ(FPGA)を含み得る。プロセッサは、シングルコアまたはマルチコアプロセッサを含み得る。コンピュータシステム1100の処理リソースを、1つ以上の処理ユニット1132、1134などに組織することができる。処理ユニットは、1つ以上のプロセッサ、同一のまたは異なるプロセッサからの1つ以上のコア、コアとプロセッサとの組み合わせ、またはコアとプロセッサとのその他の組み合わせを含み得る。いくつかの例において、処理サブシステム1104は、グラフィックスプロセッサ、デジタル信号プロセッサ(DSP)などのような1つ以上の専用コプロセッサを含み得る。いくつかの例では、処理サブシステム1104の処理ユニットの一部または全部は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などのカスタマイズされた回路を使用し得る。
【0194】
いくつかの例において、処理サブシステム1104内の処理ユニットは、システムメモリ1110またはコンピュータ読取り可能記憶媒体1122に格納された命令を実行し得る。さまざまな例において、処理ユニットはさまざまなプログラムまたはコード命令を実行するとともに、同時に実行する複数のプログラムまたはプロセスを維持し得る。任意の所定の時点で、実行されるべきプログラムコードの一部または全部は、システムメモリ1110および/または潜在的に1つ以上の記憶装置を含むコンピュータ読取り可能記憶媒体1122に常駐していてもよい。適切なプログラミングを介して、処理サブシステム1104は、上述のさまざまな機能を提供し得る。コンピュータシステム1100が1つ以上の仮想マシンを実行している例において、1つ以上の処理ユニットが各仮想マシンに割り当ててもよい。
【0195】
特定の例において、コンピュータシステム1100によって実行される全体的な処理を加速するように、カスタマイズされた処理を実行するために、または処理サブシステム1104によって実行される処理の一部をオフロードするために、処理加速ユニット1106を任意に設けることができる。
【0196】
I/Oサブシステム1108は、コンピュータシステム1100に情報を入力するための、および/またはコンピュータシステム1100から、もしくはコンピュータシステム1100を介して、情報を出力するための、デバイスおよび機構を含むことができる。一般に、「入力デバイス」という語の使用は、コンピュータシステム1100に情報を入力するためのすべての考えられ得るタイプのデバイスおよび機構を含むよう意図される。ユーザインターフェイス入力デバイスは、たとえば、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを伴う音声入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、ユーザが入力デバイスを制御しそれと対話することを可能にするMicrosoft Kinect(登録商標)モーションセンサ、Microsoft Xbox(登録商標)360ゲームコントローラ、ジェスチャおよび音声コマンドを用いる入力を受信するためのインターフェイスを提供するデバイスなど、モーションセンシングおよび/またはジェスチャ認識デバイスも含んでもよい。ユーザインターフェイス入力デバイスは、ユーザから目の動き(たとえば、写真を撮っている間および/またはメニュー選択を行っている間の「まばたき」)を検出し、アイジェスチャを入力デバイス(たとえばGoogle Glass(登録商標))への入力として変換するGoogle Glass(登録商標)瞬き検出器などのアイジェスチャ認識デバイスも含んでもよい。また、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム(たとえばSiri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含んでもよい。
【0197】
ユーザインターフェイス入力デバイスの他の例は、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなどの聴覚/視覚デバイスも含んでもよいが、それらに限定されない。また、ユーザインターフェイス入力デバイスは、たとえば、コンピュータ断層撮影、磁気共鳴撮像、ポジションエミッショントモグラフィー、および医療用超音波検査デバイスなどの医療用画像化入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、たとえば、MIDIキーボード、デジタル楽器などの音声入力デバイスも含んでもよい。
【0198】
一般に、出力デバイスという語の使用は、コンピュータシステム1100からユーザまたは他のコンピュータに情報を出力するための考えられるすべてのタイプのデバイスおよび機構を含むことを意図している。ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または音声出力デバイスなどのような非ビジュアルディスプレイなどを含んでもよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使うものなどのフラットパネルデバイス、計画デバイス、タッチスクリーンなどであってもよい。たとえば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなどの、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまな表示デバイスを含んでもよいが、それらに限定されない。
【0199】
ストレージサブシステム1118は、コンピュータシステム1100によって使用される情報およびデータを格納するためのリポジトリまたはデータストアを提供する。ストレージサブシステム1118は、いくつかの例の機能を提供する基本的なプログラミングおよびデータ構成を格納するための有形の非一時的なコンピュータ読取り可能記憶媒体を提供する。処理サブシステム1104によって実行されると上述の機能を提供するソフトウェア(たとえばプログラム、コードモジュール、命令)が、ストレージサブシステム1118に格納されてもよい。ソフトウェアは、処理サブシステム1104の1つ以上の処理ユニットによって実行されてもよい。ストレージサブシステム1118はまた、本開示の教示に従って認証を提供してもよい。
【0200】
ストレージサブシステム1118は、揮発性および不揮発性メモリデバイスを含む1つ以上の非一時的メモリデバイスを含み得る。
図11に示すように、ストレージサブシステム1118は、システムメモリ1110およびコンピュータ読取り可能記憶媒体1122を含む。システムメモリ1110は、プログラム実行中に命令およびデータを格納するための揮発性主ランダムアクセスメモリ(RAM)と、固定命令が格納される不揮発性読取り専用メモリ(ROM)またはフラッシュメモリとを含む、いくつかのメモリを含み得る。いくつかの実現例において、起動中などにコンピュータシステム1100内の要素間における情報の転送を助ける基本的なルーチンを含むベーシックインプット/アウトプットシステム(basic input/output system:BIOS)は、典型的には、ROMに格納され
てもよい。典型的に、RAMは、処理サブシステム1104によって現在操作および実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実現例において、システムメモリ1110は、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)などのような複数の異なるタイプのメモリを含み得る。
【0201】
一例として、限定を伴うことなく、
図11に示されるように、システムメモリ1110
は、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などのような各種アプリケーションを含み得る、実行中のアプリケーションプログラム1112、プログラムデータ1114、およびオペレーティングシステム1116を、ロードしてもよい。一例として、オペレーティングシステム1116は、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)および/またはLinuxオペレーティングシステム、市販されているさまざまなUNIX(登録商標)またはUNIX系オペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むがそれらに限定されない)、および/または、iOS(登録商標)、Windows Phone、Android(登録商標) OS、BlackBerry(登録商標) OS、Palm(登録商標) OSオペレーティングシステムのようなさまざまなバージョンのモバイルオペレーティングシステムなどを、含み得る。
【0202】
コンピュータ読取り可能記憶媒体1122は、いくつかの例の機能を提供するプログラミングおよびデータ構成を格納することができる。コンピュータ読取り可能記憶媒体1122は、コンピュータシステム1100のための、コンピュータ読取り可能命令、データ構造、プログラムモジュール、および他のデータのストレージを提供することができる。処理サブシステム1104によって実行されると上記機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム1118に格納されてもよい。一例として、コンピュータ読取り可能記憶媒体1122は、ハードディスクドライブ、磁気ディスクドライブ、CD ROM、DVD、Blu-Ray(登録商標)ディスクなどの光ディスクドライブ、またはその他の光学媒体のような不揮発性メモリを含み得る。コンピュータ読取り可能記憶媒体1122は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含んでもよいが、それらに限定されない。コンピュータ読取り可能記憶媒体1122は、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、ソリッドステートROMなどのような不揮発性メモリに基づくソリッドステートドライブ(SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMのような揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDも含み得る。
【0203】
特定の例において、ストレージサブシステム1118は、コンピュータ読取り可能記憶媒体1122にさらに接続可能なコンピュータ読取り可能記憶媒体リーダ1120も含み得る。リーダ1120は、ディスク、フラッシュドライブなどのようなメモリデバイスからデータを受け、読取るように構成されてもよい。
【0204】
特定の例において、コンピュータシステム1100は、処理およびメモリリソースの仮想化を含むがこれに限定されない仮想化技術をサポートし得る。たとえば、コンピュータシステム1100は、1つ以上の仮想マシンを実行するためのサポートを提供し得る。特定の例において、コンピュータシステム1100は、仮想マシンの構成および管理を容易にするハイパーバイザなどのプログラムを実行し得る。各仮想マシンには、メモリ、演算(たとえばプロセッサ、コア)、I/O、およびネットワーキングリソースを割り当てられてもよい。各仮想マシンは通常、他の仮想マシンから独立して実行される。仮想マシンは、典型的には、コンピュータシステム1100によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同じであり得るかまたは異なり得るそれ自体のオペレーティングシステムを実行する。したがって、潜在的に複数のオペレーティングシステムがコンピュータシステム1100によって同時に実行され得る。
【0205】
通信サブシステム1124は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム1124は、他のシステムとコンピュータシステム1100との間のデータの送受のためのインターフェイスとして機能する。たとえば、通信サブシステム1124は、コンピュータシステム1100が、1つ以上のクライアントデバイスとの間で情報を送受信するために、インターネットを介して1つ以上のクライアントデバイスへの通信チャネルを確立することを可能にし得る。例えば、コンピュータシステム1100が、
図1に示されるボットシステム120を実現するために使用される場合、通信サブシステムは、アプリケーションシステム、およびアプリケーション用に選択されたストレージ仮想マシンを実行するシステムとも通信するために使用され得る。
【0206】
通信サブシステム1124は、有線および/または無線通信プロトコルの両方をサポートし得る。ある例において、通信サブシステム1124は、(たとえば、セルラー電話技術、3G、4GもしくはEDGE(グローバル進化のための高速データレート)などの先進データネットワーク技術、WiFi(IEEE802.XXファミリー規格、もしくは他のモバイル通信技術、またはそれらのいずれかの組み合わせを用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(RF)送受信機コンポーネント、グローバルポジショニングシステム(GPS)受信機コンポーネント、および/または他のコンポーネントを含み得る。いくつかの例において、通信サブシステム1124は、無線インターフェイスに加えてまたはその代わりに、有線ネットワーク接続(たとえばEthernet(登録商標))を提供し得る。
【0207】
通信サブシステム1124は、さまざまな形式でデータを受信および送信し得る。いくつかの例において、通信サブシステム1124は、他の形式に加えて、構造化データフィードおよび/または非構造化データフィード1126、イベントストリーム1128、イベントアップデート1130などの形式で入力通信を受信してもよい。たとえば、通信サブシステム1124は、ソーシャルメディアネットワークおよび/またはTwitter(登録商標)フィード、Facebook(登録商標)アップデート、Rich Site Summary(RSS)フィードなどのウェブフィード、および/または1つ以上の第三者情報源からのリアルタイムアップデートなどのような他の通信サービスのユーザから、リアルタイムでデータフィード1126を受信(または送信)するように構成されてもよい。
【0208】
特定の例において、通信サブシステム1124は、連続データストリームの形式でデータを受信するように構成されてもよく、当該連続データストリームは、明確な終端を持たない、本来は連続的または無限であり得るリアルタイムイベントのイベントストリーム1128および/またはイベントアップデート1130を含んでもよい。連続データを生成するアプリケーションの例としては、たとえば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通モニタリングなどを挙げることができる。
【0209】
通信サブシステム1124は、コンピュータシステム1100からのデータを他のコンピュータシステムまたはネットワークに伝えるように構成されてもよい。このデータは、構造化および/または非構造化データフィード1126、イベントストリーム1128、イベントアップデート1130などのような各種異なる形式で、コンピュータシステム1100に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに、伝えられてもよい。
【0210】
コンピュータシステム1100は、ハンドヘルドポータブルデバイス(たとえばiPh
one(登録商標)セルラーフォン、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえばGoogle Glass(登録商標)ヘッドマウントディスプレイ)、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含む、さまざまなタイプのうちの1つであればよい。コンピュータおよびネットワークの性質が常に変化しているため、
図11に示されるコンピュータシステム1100の記載は、具体的な例として意図されているに過ぎない。
図11に示されるシステムよりも多くのコンポーネントまたは少ないコンポーネントを有するその他多くの構成が可能である。本明細書における開示および教示に基づいて、さまざまな例を実現するための他の態様および/または方法があり得ることが認識されるはずである。
【0211】
特定の例について説明したが、さまざまな変形、変更、代替構成、および均等物が可能である。例は、特定のデータ処理環境内の動作に限定されず、複数のデータ処理環境内で自由に動作させることができる。さらに、例を特定の一連のトランザクションおよびステップを使用して説明したが、これが限定を意図しているのではないことは当業者には明らかであるはずである。いくつかのフローチャートは動作を逐次的プロセスとして説明しているが、これらの動作のうちの多くは並列または同時に実行されてもよい。加えて、動作の順序を再指定してもよい。プロセスは図に含まれない追加のステップを有し得る。上記の例の各種特徴および局面は、個別に使用されてもよく、またはともに使用されてもよい。
【0212】
さらに、特定の例をハードウェアとソフトウェアとの特定の組み合わせを用いて説明してきたが、ハードウェアとソフトウェアとの他の組み合わせも可能であることが理解されるはずである。特定の例は、ハードウェアでのみ、またはソフトウェアでのみ、またはそれらの組み合わせを用いて実現されてもよい。本明細書に記載されたさまざまなプロセスは、同じプロセッサまたは任意の組み合わせの異なるプロセッサ上で実現されてもよい。
【0213】
デバイス、システム、コンポーネントまたはモジュールが特定の動作または機能を実行するように構成されると記載されている場合、そのような構成は、たとえば、動作を実行するように電子回路を設計することにより、動作を実行するようにプログラミング可能な電子回路(マイクロプロセッサなど)をプログラミングすることにより、たとえば、非一時的なメモリ媒体に格納されたコードもしくは命令またはそれらの任意の組み合わせを実行するようにプログラミングされたコンピュータ命令もしくはコード、またはプロセッサもしくはコアを実行するなどにより、達成され得る。プロセスは、プロセス間通信のための従来の技術を含むがこれに限定されないさまざまな技術を使用して通信することができ、異なる対のプロセスは異なる技術を使用してもよく、同じ対のプロセスは異なる時間に異なる技術を使用してもよい。
【0214】
本開示では具体的な詳細を示すことにより例が十分に理解されるようにしている。しかしながら、例はこれらの具体的な詳細がなくとも実施し得るものである。たとえば、周知の回路、プロセス、アルゴリズム、構造、および技術は、例が曖昧にならないようにするために不必要な詳細事項なしで示している。本明細書は例示的な例のみを提供し、他の例の範囲、適用可能性、または構成を限定するよう意図されたものではない。むしろ、例の上記説明は、各種例を実現することを可能にする説明を当業者に提供する。要素の機能および構成の範囲内でさまざまな変更が可能である。
【0215】
したがって、明細書および図面は、限定的な意味ではなく例示的なものとみなされるべきである。しかしながら、請求項に記載されているより広範な精神および範囲から逸脱することなく、追加、削減、削除、ならびに他の修正および変更がこれらになされ得ることは明らかであろう。このように、具体的な例を説明してきたが、これらは限定を意図する
ものではない。さまざまな変形例および同等例は添付の特許請求の範囲内にある。
【0216】
上記の明細書では、本開示の局面についてその具体的な例を参照して説明しているが、本開示はそれに限定されるものではないということを当業者は認識するであろう。上記の開示のさまざまな特徴および局面は、個々にまたは一緒に用いられてもよい。さらに、例は、明細書のさらに広い精神および範囲から逸脱することなく、本明細書に記載されているものを超えて、さまざまな環境および用途で利用することができる。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。
【0217】
上記の説明では、例示の目的で、方法を特定の順序で記載した。代替の例では、方法は記載された順序とは異なる順序で実行されてもよいことを理解されたい。また、上記の方法は、ハードウェアコンポーネントによって実行されてもよいし、マシン実行可能命令であって、用いられると、そのような命令でプログラムされた汎用もしくは専用のプロセッサまたは論理回路などのマシンに方法を実行させてもよいマシン実行可能命令のシーケンスで具体化されてもよいことも理解されたい。これらのマシン実行可能命令は、CD-ROMもしくは他の種類の光ディスク、フロッピー(登録商標)ディスク、ROM、RAM、EPROM、EEPROM、磁気もしくは光学カード、フラッシュメモリのような、1つ以上の機械可読媒体、または電子命令を記憶するのに適した他の種類の機械可読媒体に保存できる。代替的に、これらの方法は、ハードウェアとソフトウェアとの組み合わせによって実行されてもよい。
【0218】
構成要素が特定の動作を実行するように構成されるとして記載されている場合、そのような構成は、たとえば、特定の動作を実行するよう電子回路もしくは他のハードウェアを設計すること、特定の動作を実行するようプログラミング可能な電子回路(たとえばマイクロプロセッサもしくは他の好適な電子回路)をプログラミングすること、またはそれらの任意の組み合わせによって達成されてもよい。
【0219】
本願の説明のための例をここに詳細に記載したが、本発明の概念は、他の態様で様々に具現化および採用され得ること、および特許請求の範囲は、先行技術によって制限される場合を除き、そのような変形を含むように解釈されるよう意図されることを理解されたい。
【手続補正書】
【提出日】2024-04-04
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
ボットシステムに関連付けられる複数のイベントを受信することを含み、前記複数のイベントのうちの少なくとも1つのイベントは会話イベントに対応し、前記方法はさらに、
前記複数のイベントについて1つまたは複数のメトリックを計算することを含み、前記1つまたは複数のメトリックのうちの少なくとも1つのメトリックは前記会話イベントに対応し、前記方法はさらに、
前記1つまたは複数のメトリックから複数のレポートを生成することを含み、前記複数のレポートの各レポートは、前記複数のイベントの各イベント中に前記ボットシステムの動作状態への見解を提供し、前記方法はさらに、
前記複数のレポートのうちの第1のレポートの選択の指示を第1のユーザから受信することを含み、前記選択の前記指示は、グラフィカルユーザインターフェース上のユーザ入力に応答して受信され、前記方法はさらに、
前記複数のレポートのうちの前記第1のレポートの前記選択の前記指示を受信することに応答して、前記第1のレポートと、前記第1のレポートに関連付けられる複数のユーザ選択可能な項目とを表示することを含み、前記複数のユーザ選択可能な項目のうちのあるユーザ選択可能な項目は、前記会話イベントに関連付けられるダイアログの一部を選択するための要素を含む、方法。
【請求項2】
前記複数のイベントのうちの少なくとも1つのイベントは、前記ボットシステムがユーザと前記ボットシステムの1つまたは複数のボットとの間の会話について1つまたは複数のインテントを判断することに応答して生成される、請求項1に記載の方法。
【請求項3】
前記第1の報告は、ある期間にわたる前記ボットシステムの前記動作状態に対応する情報を含む、請求項1または2に記載の方法。
【請求項4】
前記第1の報告は、前記ボットシステムの1つまたは複数のスキルの性能を評価するための情報を含む、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記第1のレポートは、前記ボットシステムの会話完了性能を評価するための情報を含む、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記ダイアログは、前記ボットシステムの1つまたは複数のボットと1人または複数のユーザとの間の1つまたは複数の会話を含む、請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記会話イベントに関連付けられる前記ダイアログの前記一部を選択するための前記要素は、前記ダイアログから1つまたは複数の会話要素をフィルタリングするための複数のサブ要素を備える、請求項1~6のいずれか一項に記載の方法。
【請求項8】
システムであって、
処理システムと、
前記処理システムによって実行されると、前記システムに方法を実行させる命令を記憶する、1つまたは複数のコンピュータ可読記憶媒体とを備え、前記方法は、
ボットシステムに関連付けられる複数のイベントを受信することを含み、前記複数のイベントのうちの少なくとも1つのイベントは会話イベントに対応し、前記方法はさらに、
前記複数のイベントについて1つまたは複数のメトリックを計算することを含み、前記1つまたは複数のメトリックのうちの少なくとも1つのメトリックは前記会話イベントに対応し、前記方法はさらに、
前記1つまたは複数のメトリックから複数のレポートを生成することを含み、前記複数のレポートの各レポートは、前記複数のイベントの各イベント中に前記ボットシステムの動作状態への見解を提供し、前記方法はさらに、
前記複数のレポートのうちの第1のレポートの選択の指示を第1のユーザから受信することを含み、前記選択の前記指示は、グラフィカルユーザインターフェース上のユーザ入力に応答して受信され、前記方法はさらに、
前記複数のレポートのうちの前記第1のレポートの前記選択の前記指示を受信することに応答して、前記第1のレポートと、前記第1のレポートに関連付けられる複数のユーザ選択可能な項目とを表示することを含み、前記複数のユーザ選択可能な項目のうちのあるユーザ選択可能な項目は、前記会話イベントに関連付けられるダイアログの一部を選択するための要素を含む、システム。
【請求項9】
前記複数のイベントのうちの少なくとも1つのイベントは、前記ボットシステムがユーザと前記ボットシステムの1つまたは複数のボットとの間の会話について1つまたは複数のインテントを判断することに応答して生成される、請求項8に記載のシステム。
【請求項10】
前記第1の報告は、ある期間にわたる前記ボットシステムの前記動作状態に対応する情報を含む、請求項8または9に記載のシステム。
【請求項11】
前記第1の報告は、前記ボットシステムの1つまたは複数のスキルの性能を評価するための情報を含む、請求項8~10のいずれか一項に記載のシステム。
【請求項12】
前記第1のレポートは、前記ボットシステムの会話完了性能を評価するための情報を含む、請求項8~11のいずれか一項に記載のシステム。
【請求項13】
前記ダイアログは、前記ボットシステムの1つまたは複数のボットと1人または複数のユーザとの間の1つまたは複数の会話を含む、請求項8~12のいずれか一項に記載のシステム。
【請求項14】
前記会話イベントに関連付けられる前記ダイアログの前記一部を選択するための前記要素は、前記ダイアログから1つまたは複数の会話要素をフィルタリングするための複数のサブ要素を備える、請求項8~13のいずれか一項に記載のシステム。
【請求項15】
前記処理システムによって実行されると、前記システムに、請求項8~14のいずれか一項に記載される前記方法を実行させるコンピュータ可読命令を記憶する、プログラム。
【手続補正2】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【外国語明細書】