(58)【調査した分野】(Int.Cl.,DB名)
前記更新することは、以前のインテントおよび/またはスロットの少なくとも1つとの前記選択された言語理解分類子の関連を、前記ユーザ選択の前記インテントおよび/または前記少なくとも1つのスロットの少なくとも1つとの新たな関連で置き換えることを含む、請求項1に記載のサーバコンピュータ。
前記動作は、前記デジタル音声入力およびユーザ音声要求の一方または両方との前記選択された言語理解分類子の関連を作成することをさらに含む、請求項4に記載のサーバコンピュータ。
前記エージェント定義が、前記デジタルパーソナルアシスタントと関連付けられた音声コマンド定義(VCD)スキーマおよび反応エージェント定義(RAD)スキーマの少なくとも1つを備え、デバイス機能と関連付けられた1つまたは複数の応答対話を実装するために前記デジタルパーソナルアシスタントによって使用されるデータ/コマンド構造を指す反応エージェントを定義する、請求項6に記載の方法。
コンピューティングデバイスに言語理解分類子モデルを更新するための動作を行わせるためのコンピュータ実行可能命令を記憶するコンピュータ可読記憶媒体であって、前記動作が、
コンピューティングデバイスで受け取られるユーザ入力に基づいてユーザ要求を決定することであって、前記ユーザ要求がテキスト入力および音声入力の少なくとも1つを介して受け取られ、前記ユーザ要求が前記コンピューティングデバイス上で動作するデジタルパーソナルアシスタントの機能に対してである、ことと、
前記ユーザ要求が前記デジタルパーソナルアシスタントのエージェント定義における複数の予め定義された音声コマンドの少なくとも1つとも一致しないと決定することと、
前記ユーザ要求に前記エージェント定義と関連付けられた複数の利用可能な言語理解分
類子を適用することによって信頼スコアを生成することと、
前記信頼スコアが閾値より小さいと決定すると、
複数の利用可能なインテントの少なくとも1つのインテントおよび前記少なくとも1つのインテントのための少なくとも1つのスロットのうちの少なくとも1つのユーザ選択を、前記コンピューティングデバイスのエンドユーザラベリングツール(EULT)のグラフィカルユーザインタフェースを使用して受け、
前記少なくとも1つのインテントが、ドメインに対する一分類の機能の少なくとも1つの機能を行うために使用される少なくとも1つのアクションと関連付けられ、
前記少なくとも1つのスロットが、前記少なくとも1つのアクションを行うために使用される値を示し、
ユーザ音声要求および前記ユーザ選択をペアリングすることによってラベル付きデータセットを生成し、
前記エージェント定義と関連付けられた前記複数の利用可能な言語理解分類子から言語理解分類子を選択し、前記選択することが少なくとも、ユーザによって選択された前記少なくとも1つのインテントに基づき、
前記生成されたラベル付きデータセットを使用して前記選択された言語理解分類子を訓練することによって更新された言語理解分類子を生成することであって、前記言語理解分類子に対する前記更新が、ある数のユーザが実質的に同様のユーザ選択をした後にのみトリガされる、ことと、
を含む、コンピュータ可読記憶媒体。
前記エージェント定義が、前記デジタルパーソナルアシスタントと関連付けられた音声コマンド定義(VCD)スキーマおよび反応エージェント定義(RAD)スキーマの少なくとも1つを備え、デバイス機能と関連付けられた1つまたは複数の応答対話を実装するために前記デジタルパーソナルアシスタントによって使用されるデータ/コマンド構造を指す反応エージェントを定義する、請求項12に記載のコンピュータ可読記憶媒体。
【発明を実施するための形態】
【0010】
[0017] 本明細書に記載されるように、言語理解分類子モデルを更新するために、様々な技法および解決策を適用することができる。より詳細には、コンピューティングデバイス上で動作するデジタルパーソナルアシスタントと関連付けられる1つまたは複数のエージェントを定義するために、エージェント定義仕様(たとえば、音声コマンド定義(VCD)仕様、反応エージェント定義(RAD)仕様、または別の種類のコンピュータ可読文書)が使用されてもよい。エージェント定義仕様は、RADEを介して入力されて反応エージェント機能の可視化/宣言的表現を提供するドメイン情報、インテント情報、スロット情報、状態情報、予想されるユーザ発話(または音声コマンド)、状態遷移、応答列およびテンプレート、ローカリゼーション情報、ならびに任意の他の情報を指定してもよい。エージェント定義仕様は、1つまたは複数の言語理解分類子(用語「分類子」の定義は以下本明細書に提供される)とともに音声対応アプリケーション(たとえば、デバイスオペレーティングシステムにネイティブのデジタルパーソナルアシスタントまたはサードパーティの音声対応アプリケーション)内に実装されてもよい。各分類子は、ドメイン、インテントおよびスロットの1つまたは複数との他にユーザ発話と関連付けられることもできる。
【0011】
[0018] ユーザ発話(またはテキスト入力)がエージェント定義仕様内の具体的な発話/コマンドと一致しない事例では、エンドユーザラベリングツール(EULT)がコンピューティングデバイスで使用されて、ユーザがドメイン、ドメインに対するインテント、および/またはインテントのための1つもしくは複数のスロットの1つまたは複数を選択することを可能にしてもよい。ドメインが利用不可能である事例では、ユーザはドメインを追加してもよく、任意選択により、そのドメインに対するインテントおよび/またはスロットを指定してもよい。ユーザ発話を選択されたドメイン、インテントおよび/またはスロットと関連付けることによって、ラベル付きデータセットを作成することができる。選択されたインテント(および/またはドメインもしくはスロット)と関連付けられる分類子は次いで、ラベル付きデータセットを使用して更新されてもよい。分類子に対する更新は、ある数のユーザが実質的に同様のユーザ選択をした(すなわち、同じまたは同様のドメイン、インテントおよび/またはスロットを要求した)後にのみトリガされて、分類子の不正な操作および更新を回避してもよい。分類子に対する更新は、ローカルに(コンピューティングデバイス内で)なすことができ、更新された分類子は次いで、それが他のユーザによって使用することができるクラウドデータベースに記憶させることができる。代替的に、ユーザ選択情報は、十分な数のユーザが同じ(または同様の)発話およびユーザ選択を行った後にラベル付きデータセットが作成され、分類子を更新することができるサーバコンピュータ(クラウドサーバ)に送られてもよい。
【0012】
[0019] 本文書では、様々な方法、処理および手順が詳述される。特定のステップが一定の順序で記載されることがあるが、そのような順序は主に便宜および明瞭さのためである。特定のステップが2回以上繰り返されてもよく、他のステップ前または後に起こってもよく(たとえそれらのステップが別の順序で別途記載されるとしても)、他のステップと並列に起こってもよい。第2のステップが開始される前に第1のステップが完了されなければならないときにのみ、第2のステップは、第1のステップに続くことが必要とされる。そのような状況は、文脈から明白でないときに具体的に指摘されるであろう。特定のステップが省略されてもよく、その省略が別のステップに著しく影響を与えるであろうときにのみ、特定のステップは必要とされる。
【0013】
[0020] 本文書では、用語「および」、「または」ならびに「および/または」が使用される。そのような用語は、同じ意味を有すると、すなわち包括的に解釈されるものとする。たとえば、「AおよびB」は、少なくとも「AもBも」、「Aのみ」、「Bのみ」、「少なくともAもBも」を意味してもよい。別の例として、「AまたはB」は、少なくとも「Aのみ」、「Bのみ」、「AもBも」、「少なくともAもBも」を意味してもよい。排他的論理和が意図されるとき、そのようなものは具体的に記されるであろう(たとえば、AかBか、AとBの多くとも1つ)。
【0014】
[0021] 本文書では、様々なコンピュータ実装方法、処理および手順が記載される。たとえアクションがユーザによって許可、開始もしくはトリガされてもよいとしても、またはたとえハードウェアデバイスがコンピュータプログラム、ソフトウェア、ファームウェアなどによって制御されるとしても、様々なアクション(受信、記憶、送信、通信、表示することなど)がハードウェアデバイスによって行われることが理解されるものとする。さらに、たとえデータが概念または現実の物体を表してもよいとしても、ハードウェアデバイスがデータに作用していることが理解されるものとし、したがって「データ」それ自体としての明示的なラベリングは省略される。たとえば、ハードウェアデバイスが「記録を記憶する」と記載されるとき、ハードウェアデバイスが記録を表すデータを記憶していることが理解されるものとする。
【0015】
[0022] 本明細書で使用される場合、用語「エージェント」または「反応エージェント」は、デバイス機能と関連付けられる1つまたは複数の応答対話(たとえば、音声、テキストおよび/または触覚応答)を実装するためにデジタルパーソナルアシスタントによって使用されてもよいデータ/コマンド構造を指す。デバイス機能(たとえば、電子メーリング、メッセージングなど)は、デジタルパーソナルアシスタントへのユーザ入力(たとえば、音声コマンド)によって起動されてもよい。反応エージェント(またはエージェント)は、音声エージェント定義(VAD)、音声コマンド定義(VCD)または反応エージェント定義(RAD)XML文書(または別の種類のコンピュータ可読文書)の他に、対話を通じてエージェントを駆動するために使用されるプログラミングコード(たとえば、C++コード)を使用して定義することができる。たとえば、新たな電子メールウィンドウを開き、音声入力に基づいて電子メールを作文し、デジタルパーソナルアシスタントへの音声入力によって指定される電子メールアドレスに電子メールを送るために、ユーザタスク(たとえば、音声コマンド)に基づいて、電子メール反応エージェントが使用されてもよい。反応エージェントは、ユーザ入力に基づいてデジタルパーソナルアシスタントで開始される対話セッション中に1つまたは複数の応答(たとえば、オーディオ/ビデオ/触覚応答)を提供するためにも使用されてもよい。
【0016】
[0023] 本明細書で使用される場合、用語「XMLスキーマ」は、XML環境でデータを記載および確認するために使用されるXMLコードセグメントの集合をもつ文書を指す。より詳細には、XMLスキーマは、各要素がどこで許容されるか、どんな種類のコンテンツが許容されるかなど、XML文書でコンテンツを記載するために使用される要素および属性を掲げてもよい。ユーザは、XMLスキーマを準拠する、(たとえば、反応エージェント定義に使用するための)XMLファイルを生成してもよい。
【0017】
[0024] 本明細書で使用される場合、用語「ドメイン」は、個人の認識の領域または範囲を示すために使用されてもよく、コンピューティングデバイスによって行われる一分類の機能と関連付けられてもよい。ドメイン例は、電子メール(たとえば、電子メールを生成して/送るために、電子メールエージェントがデジタルパーソナルアシスタント(DPA)によって使用することができる)、メッセージ(たとえば、テキストメッセージを生成して/送るために、メッセージエージェントがDPAによって使用することができる)、アラーム(アラームを設定/削除/修正するために、アラーム反応エージェントが使用することができる)などを含む。
【0018】
[0025] 本明細書で使用される場合、用語「インテント」は、特定されるドメインに対する一分類の機能の少なくとも1つの機能を行うために使用される少なくとも1つのアクションを示すために使用されてもよい。たとえば、「アラームを設定」インテントがアラームドメインに対して使用されてもよい。
【0019】
[0026] 本明細書で使用される場合、用語「スロット」は、所与のドメイン−インテントペアのための具体的なアクションを完了するために使用される具体的な値または一組の値を示すために使用されてもよい。スロットは、1つまたは複数のインテントに関連付けられてもよく、XMLスキーマテンプレートで明示的に提供(すなわち、注釈)されてもよい。典型的に、ドメイン、インテントおよび1つまたは複数のスロットが言語理解構成を作るが、しかしながら所与のエージェントシナリオ内で、スロットは、複数のインテントにわたって共有されることがあり得る。例として、ドメインが2つの異なるインテント−アラームを設定およびアラームを削除をもつアラームであれば、これらのインテントは両方とも同じ「アラーム時間」スロットを共有することがあり得る。この点では、スロットは、1つまたは複数のインテントに接続されてもよい。
【0020】
[0027] 本明細書で使用される場合、用語「ユーザ選択」(エンドユーザラベリングツールと関連)は、ドメインおよび/またはインテントおよび/またはスロット情報のユーザによる選択を指す。この点では、ドメインまたはインテントまたはスロットの個別選択が可能である(たとえば、インテントのみを選択することができる)他に、任意のペアリング(たとえば、ドメイン−インテントおよびスロット無しの選択)が可能である。
【0021】
[0028] 本明細書で使用される場合、用語「分類子」または「言語理解分類子」は、所与のユーザ入力(音声またはテキスト)をドメインおよびインテントにマッピングすることができる統計的、ルールベースまたは機械学習ベースのアルゴリズムまたはソフトウェア実装を指す。アルゴリズムは、分類子を使用して行われる任意の分類のための信頼スコアを出力することもあり得る。同じアルゴリズムまたは後続のソフトウェアが次いで、そのドメイン−インテントペアのための発話の一部としてユーザによって指定される一組のスロットを推論/決定することができる。所与のユーザ発話が複数の分類子を−いくつかを正の事例のためにおよび他のものを負の事例のために訓練することができる。例として、ユーザ発話(または音声/テキストコマンド)「ロブに、私は遅れているとメッセージを送る」は、「メッセージング」分類子を正のトレーニングセットとして、「電子メール」分類子を負のトレーニングセットとして訓練するために使用されることがあり得る。分類子は、ラベル付きデータ(たとえば、ユーザ発話、ドメイン、インテントおよび/またはスロット)の1つまたは複数の部分と関連付けることができる。
【0022】
[0029]
図1は、本開示の例示的な実施形態による、言語理解分類子モデルを更新するためのアーキテクチャ例(100)を例示するブロック図である。
図1を参照すると、クライアントコンピューティングデバイス(たとえば、
図8におけるデバイス800などのスマートフォンまたは他のモバイルコンピューティングデバイス)が、アーキテクチャ100に従って編成されて言語理解分類子モデルの更新を提供するソフトウェアを実行することができる。
【0023】
[0030] アーキテクチャ100は、ネットワーク130を介してリモートサーバコンピュータ(または複数のコンピュータ)140に結合されたコンピューティングデバイス102(たとえば、電話、タブレット、ラップトップ、デスクトップまたは別の種類のコンピューティングデバイス)を含む。コンピューティングデバイス102は、音を電気信号に変換するためのマイクロホン106を含む。マイクロホン106は、それぞれ電磁誘導、容量変化または圧電気を使用して気圧変動から電気信号を発生するダイナミック、コンデンサまたは圧電マイクロホンであることができる。マイクロホン106は、増幅器、1つもしくは複数のアナログもしくはデジタルフィルタ、および/またはアナログデジタル変換器を含んでデジタル音入力を発生することができる。デジタル音入力は、ユーザがデジタルパーソナルアシスタント110にタスクを行うよう命じているときなどの、ユーザの声の複製を含むことができる。
【0024】
[0031] デジタルパーソナルアシスタント110は、コンピューティングデバイス102上で動作し、コンピューティングデバイス102のユーザが音声(またはテキスト)入力を使用して様々なアクションを行うようにする。デジタルパーソナルアシスタント110は、自然言語処理モジュール112、エージェント定義構造114、ユーザインタフェース116、言語理解分類子モデル(LUCM)120およびエンドユーザラベリングツール(EULT)118を備えることができる。デジタルパーソナルアシスタント110は、マイクロホン106を介してユーザ音声入力を受け、エージェント定義構造114(たとえば、音声コマンドデータ構造または反応エージェント定義構造)を使用してユーザ音声入力から対応するタスク(たとえば、音声コマンド)を決定し、タスク(たとえば、音声コマンド)を行うことができる。いくつかの状況では、デジタルパーソナルアシスタント110は、ユーザ(音声またはテキスト)コマンドをサードパーティ音声対応アプリケーション108の1つに送る。他の状況では、デジタルパーソナルアシスタント110はタスク自体を扱う。
【0025】
[0032] デバイスオペレーティングシステム(OS)104が、デバイス102のためのユーザ入力機能、出力機能、記憶アクセス機能、ネットワーク通信機能および他の機能を管理する。デバイスOS104は、デジタルパーソナルアシスタント110にそのような機能へのアクセスを提供する。
【0026】
[0033] エージェント定義構造114は、DPA110の1つまたは複数のエージェントを定義することができ、関連した音声コマンドバリエーションおよび音声コマンド例とともにDPA110および/またはサードパーティ音声対応アプリケーション108によってサポートされるタスクまたはコマンド(たとえば、音声コマンド)を指定することができる。いくつかの実装では、エージェント定義構造114はXML形式で実装される。追加的に、エージェント定義構造114は、(たとえば、リモートアプリケーションおよび/またはリモートサービスのための能力を定義する、リモートサーバコンピュータ140から利用可能なスキーム定義にアクセスすることによって)アプリストア146からリモートで利用可能な音声対応アプリケーションおよび/またはウェブサービス148からリモートで利用可能な音声対応サービスを特定することができる。
【0027】
[0034] エージェント定義構造114は、言語理解分類子モデル(LUCM)120とともに提供することができる(たとえば、オペレーティングシステム104の一部として、またはDPA110がインストールされるときにインストールすることができる)。LUCM120は複数の分類子C1、...、Cnを含むことができ、ここで各分類子は、ドメイン(D1、...、Dn)、インテント(I1、...、In)および/またはスロット(S1、...、Sn)の1つまたは複数と関連付けることができる。分類子の各々は、所与のユーザ入力(音声またはテキスト)をドメインおよびインテントにマッピングすることができる統計的、ルールベースまたは機械学習ベースのアルゴリズムまたはソフトウェア実装を含むことができる。アルゴリズムは、分類子を使用して行われる任意の分類のための信頼スコアを出力することもあり得る。いくつかの実装では、分類子は、ドメイン、インテントおよび/またはスロット情報の1つまたは複数と関連付けることができ、所与のユーザ音声/テキスト入力に適用されるとき、信頼スコアを提供してもよい(実装シナリオ例が
図2に関連して記載される)。
【0028】
[0035] たとえLUCM120がエージェント定義構造114とともにDPA110の一部であるとして例示されるとしても、本開示はこの点では限定されない。いくつかの実施形態において、LUCM120は分類子モデルのローカルコピーでもよく、それはエージェント定義構造114およびDPA110に関連する分類子(C1、...、Cn)を含む。別の(たとえば、グローバルな)分類子モデル(たとえば、LUCM170)は、(たとえば、サーバコンピュータ140の一部として)クラウドに記憶されてもよい。グローバルLUCM170は、(たとえば、関連する)分類子のサブセットがエージェント定義構造に含まれ、アプリ(たとえば、サードパーティアプリ108、DPA110および/またはOS104)の一部として実装することができるように、そのような定義構造が作成されるときに使用されてもよい。
【0029】
[0036] DPA110は、自然言語処理モジュール112を使用してユーザ音声入力を処理することができる。自然言語処理モジュール112は、デジタル音入力を受け、音声認識を使用してユーザによって話される語をテキストに翻訳することができる。抽出されたテキストは、意味的に解析されてタスク(たとえば、ユーザ音声コマンド)を決定することができる。デジタル音入力を解析し、口頭コマンドに応じてアクションをとることによって、デジタルパーソナルアシスタント110は、ユーザの音声入力によって制御することができる。たとえば、デジタルパーソナルアシスタント110は、抽出されたテキストを(たとえば、エージェント定義構造114に記憶される)可能性があるユーザコマンドのリストと比較して、ユーザの意図と最も一致しそうなコマンドを決定することができる。DPA110はまた、LUCM120からの分類子の1つまたは複数を適用して信頼スコアを決定し、信頼スコアに基づいて分類子を選択し、分類子と関連付けられるコマンド(または発話)に基づいてユーザの意図と最も一致しそうなコマンドを決定してもよい。この点では、一致は、統計的もしくは確率的手法、決定木もしくは他の規則、他の適切なマッチング基準、またはその組合せに基づくことができる。可能性があるユーザコマンドは、DPA110のネイティブのコマンドおよび/またはエージェント定義構造114に定義されるコマンドであることができる。したがって、エージェント定義構造114におけるコマンドおよびLUCM120内の分類子を定義することによって、DPA110によってユーザに代わって行うことができるタスクの範囲を拡大することができる。可能性があるコマンドは、サードパーティ音声対応アプリケーション108のタスクを行うための音声コマンドも含むことができる。
【0030】
[0037] デジタルパーソナルアシスタント110は、音声および/またはグラフィカルユーザインタフェース116を含む。ユーザインタフェース116は、DPA110の能力(たとえば、EULT118の能力)および/またはサードパーティ音声対応アプリケーション108を説明する情報をユーザに提供することができる。
【0031】
[0038] エンドユーザラベリングツール(EULT)118は、適切な論理、回路網、インタフェースおよび/またはコードを備えてもよく、本明細書に記載されるように、言語理解分類子モデルを更新するための機能を提供するように動作可能でもよい。たとえば、エージェント定義構造114がユーザの音声/テキストコマンドと一致する音声コマンド列を有しない、または利用可能な分類子の1つまたは複数が(
図2に見られるように)閾値量を下回る信頼スコアを返す事例で、EULT118がトリガされてもよい。ユーザは次いで、EULT118を使用して、ドメイン、インテントおよび/またはスロットを選択し、タスク(たとえば、発話として表現される音声コマンド)またはテキストコマンドをユーザ選択されたドメイン、インテントおよび/またはスロット情報と関連付けてもよい。ユーザ選択およびユーザ入力された音声/テキストコマンドは、サーバコンピュータ140に送られてもよく、そこでグローバル分類子セット170が更新されてもよい(たとえば、ユーザ音声/テキストコマンドと一致する分類子が、ユーザ入力されたドメイン、インテントおよび/またはスロットで更新される)。この場合、クラウドソーシング手法を使用して、分類子を訓練/ラベル付けすることができ、これにより、グローバルおよびローカルLUCM(170および120)を向上させることができる。
【0032】
[0039] デジタルパーソナルアシスタント110は、リモートサーバコンピュータ140上で実行するリモートサービス142にアクセスすることができる。リモートサービス142は、ネットワーク130などのネットワーク上のネットワークアドレスで提供されるソフトウェア機能を含むことができる。ネットワーク130は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、イントラネット、有線ネットワーク、無線ネットワーク、セルラネットワーク、その組合せ、またはコンピューティングデバイス102とリモートサーバコンピュータ140との間の通信のためのチャネルを提供するのに適する任意のネットワークを含むことができる。
図1に例示されるネットワークトポロジが単純化されていること、ならびに複数のネットワークおよびネットワーキングデバイスは、本明細書に開示される様々なコンピューティングシステムを相互接続するために活用することができることを理解されたい。
【0033】
[0040] リモートサービス142は、ネットワーク130を介してリモートサーバコンピュータ140からアクセス可能である様々なコンピューティングサービスを含むことができる。リモートサービス142は、(たとえば、モジュール112の自然言語処理機能を行う、または支援するためにデジタルパーソナルアシスタント110によって呼び出される)自然言語処理サービス144を含むことができる。リモートサービス142は、アプリストア146(たとえば、検索またはダウンロードおよびインストールすることができる音声対応アプリケーションを提供するアプリストア)を含むことができる。リモートサービス142は、デジタルパーソナルアシスタント110を使用して音声入力を介してアクセスを受け取ることができるウェブサービス148も含むことができる。リモートサービス142は、以下本明細書に説明されるように、開発者ラベリングツール150、分類子モデル訓練サービス152および分類子モデル不正検出サービス154も含むことができる。リモートサーバコンピュータ140は、発話データベース160およびラベル付きデータデータベース162を管理することもできる。
【0034】
[0041]
図2は、本開示の例示的な実施形態による、音声対応アプリケーションによる言語理解分類子の様々な使用を例示するブロック
図200である。
図1〜2を参照すると、ユーザ(たとえば、デバイス102のユーザ)は音声入力202を入力してもよい。音声認識ブロック206(たとえば、112)は、入力202の音声をユーザコマンド(テキスト)208に変換してもよい。ユーザコマンド208は、代替的に、テキスト入力204として入力されてもよい。ブロック210で、ユーザコマンド208をエージェント定義構造(たとえば、114)に指定される1つまたは複数のユーザコマンドと突き合わせることによって、エージェント定義マッチングが行われてもよい。(212で)直接一致があれば、ドメイン216、インテント218および/またはスロット220が一致したユーザコマンドから推論されてもよく、そのような情報は、ブロック232でDPA110および/またはアプリ108によって使用されてもよい。しかしながら、(214で)全く一致がなければ、LUCM120(または170)を使用するマッチングが行うことができる。
【0035】
[0042] より詳細には、ユーザコマンド208は、分類子C1、...、Cnへの入力として使用されてもよく、対応する信頼スコア240が計算されてもよい。所与の分類子(たとえば、C1)について信頼スコアが閾値(たとえば、20%)以上であれば、分類子は、そのような分類子と関連付けられるドメイン224、インテント226および/またはスロット228を抽出するために使用することができる。抽出されたドメイン/インテント/スロットは、(230で)DPA110またはアプリ108によって使用することができる。しかしながら、(たとえば、250で)信頼スコアが閾値より低ければ、分類子モデルは(たとえばEULT118を使用して、
図3B〜4Bに見られるように)更新することができる。EULTラベリング処理中に決定されるドメイン、インテントおよび/またはスロットは、(232で)DPA110および/またはアプリ108によって使用することができる。
【0036】
[0043] たとえEULTを使用してユーザ選択を得るかどうかを決定するために、分類子によって生成される信頼スコアが(閾値とともに)使用されるとしても、本開示はこの点では限定していない。別の実装では、EULTを使用してドメイン、インテントおよび/またはスロット情報の少なくとも1つのユーザ選択を受け取るかどうかを決定するために、(たとえば、閾値を使用する代わりに)他の方法が使用されてもよい。
【0037】
[0044]
図3A〜3Bは、本開示の例示的な実施形態による、言語理解分類子モデルを更新するための処理サイクル例を例示する。
図3Aを参照すると、開発者ラベリングツール150を使用して分類子データを訓練/更新するためのアーキテクチャ300が例示される。
図3Aに見られるように、エージェント定義構造114は、LUCM120とまとめられてもよい(LUCM120はLUCM170と同じ、またはそのサブセットであることができる)。エージェント定義構造114およびLUCM120は次いで、(たとえば、アプリストア146で利用可能なような)アプリ108またはDPA110の一部として実装することができる。アプリ108(およびDPA110)は次いで、デバイス102にインストールされてもよい。
【0038】
[0045] EULT118が無効にされる事例では、ユーザは発話302(たとえば、ユーザコマンド)を提供してもよい。発話は、発話データベース160の一部として通信および記憶されてもよく、それは、サーバコンピュータ140に通信可能に結合された他のコンピューティングデバイスのユーザからの発話も記憶してもよい。ネットワーク管理者/開発者は次いで、開発者ラベリングツール150を使用して、データベース160から発話(たとえば、302)を検索し、ドメイン、インテントおよび/またはスロット選択303を生成してもよい。管理者選択303は、発話302とまとめられ、ラベル付きデータデータベース162内にラベル付きデータとして記憶させることができる。管理者は次いで、ラベル付きデータを分類子訓練サービス152に渡してもよい(またはラベル付きデータは、データベース162に記憶されると、自動的に訓練サービス152に通信されてもよい)。
【0039】
[0046] 分類子モデル訓練サービス152は、適切な論理、回路網、インタフェースおよび/またはコードを備えてもよく、LUCM120および/または170内の1つまたは複数の分類子の訓練(または更新)を行うように動作可能でもよい。分類子訓練例304中に、ラベル付きデータセットを検索することができ(たとえば、302および303);ドメイン、インテントおよび/またはスロット情報(たとえば、303)が(たとえば、インデックスとして)使用されて、LUCM120/170にアクセスし、そのようなドメイン、インテントおよび/またはスロットと関連付けられる分類子を検索することができる。訓練サービス152は次いで、ユーザ発話/コマンド(302)の他に、開発者ラベリングツール150を使用して管理者によって提供されるドメイン、インテントおよび/またはスロット(303)の1つまたは複数と分類子が関連付けられるように、それを更新することができる。更新されたLUCM120は次いで、アプリでの実装のために使用され、エージェント定義構造とまとめることができる。
【0040】
[0047]
図3Bを参照すると、エンドユーザラベリングツール(EULT)118を使用して分類子データを訓練/更新するためのアーキテクチャ370が例示される。
図3Bに見られるように、エージェント定義構造114は、LUCM120とまとめられてもよい(LUCM120はLUCM170と同じ、またはそのサブセットであることができる)。エージェント定義構造114およびLUCM120は次いで、(たとえば、アプリストア146で利用可能なような)アプリ108、DPA110、および/またはアプリ350、...、360の一部として実装することができる。アプリ108、350、...、360(およびDPA110)は次いで、デバイス102にインストールされてもよい。
【0041】
[0048] EULT118が有効にされる事例では、ユーザは発話302(たとえば、ユーザコマンド)を提供してもよい。発話は、発話データベース160の一部として通信および記憶されてもよく、それは、サーバコンピュータ140に通信可能に結合された他のコンピューティングデバイスのユーザからの発話も記憶してもよい。デバイス102のユーザは次いで、EULT118を使用してユーザ入力を提供し、発話/コマンド302と関連付けられるドメイン、インテントおよび/またはスロットの1つまたは複数を選択してもよい(これは、エージェント定義構造114内のコマンドとの直接一致(たとえば、212)が全くないこと、および閾値(たとえば、240)を越える信頼スコアが全くないことを前提としている)。
【0042】
[0049] ユーザはEULT118を使用して、発話302と関連付けられるドメイン、インテントおよび/またはスロット(たとえば、320)を選択してもよい。DPA110(またはそうでなければデバイス102)は、LUCM120内の分類子C1、...、Cnの少なくとも1つを、入力されたユーザ選択320と一致するとして選択してもよい(たとえば、分類子と関連付けられるドメイン、インテントおよび/またはスロット情報を、EULT118を介して入力されたユーザ選択320のドメイン、インテントおよび/またはスロット情報と突き合わせることに基づいて、LUCM120から分類子が選択されてもよい)。
【0043】
[0050] 本開示の例示的な実施形態による、一致する分類子がLUCM120から検索された後に、デバイス102は、(たとえば、304に関して上記で論じたように)分類子を更新し、更新/訓練された分類子をローカル分類子330として記憶してもよい。分類子の訓練および更新ならびにローカル分類子330を生成することは、リモートサーバコンピュータ140の分類子モデル訓練サービス152を使用することによって行うことができる。この点では、グローバルLUCM170にそのような訓練された分類子が存在することなしで、1つまたは複数のローカル分類子330が生成されてもよい。ローカル分類子330は、ユーザプロファイル340と関連付けられてもよく、デバイス102上にインストールされるアプリ350、...、360の1つまたは複数間で使用/共有されてもよい。任意選択により、ローカル分類子330は、ユーザプロファイル340の一部としてサーバコンピュータ140に記憶されてもよい(プロファイルも、他のプロファイル/ユーザアカウント情報とともにサーバコンピュータ140に記憶されてもよい)。
【0044】
[0051] DPA110はまた、発話302とともにユーザ選択されたドメイン、インテントおよび/またはスロット情報320を、ラベル付きデータデータベース162内にラベル付きデータとして記憶するために通信してもよい。ラベル付きデータは次いで、訓練のために分類子訓練サービス152に渡されてもよい。本開示の例示的な実施形態による、分類子モデル不正検出サービス154が訓練サービス152と関連して使用されてもよい。より詳細には、不正検出サービス154は、適切な論理、回路網、インタフェースおよび/またはコードを備えてもよく、一定の最小数(閾値)のユーザが同じ(または実質的に同様の)ユーザ発話と関連付けられる分類子に同じ(または実質的に同様の)更新を要求しない限り、分類子訓練/更新を阻止するように動作可能でもよい。この点では、ユーザがタスク(たとえば、音声コマンドを表現する発話)を、システムにおけるその他の残りのユーザのほとんどがそのような発話を関連付けないドメイン、インテントおよび/またはスロットと関連付けようとする事例では、自動分類子更新が阻止され得る。
【0045】
[0052] 最小数のユーザが分類子に同じまたは実質的に同様の更新を要求したならば、
図3Aに関して前記のように、分類子の訓練/更新(304)は続行することができる。分類子訓練例304中に、ラベル付きデータセットを検索することができ(たとえば、302および303);ドメイン、インテントおよび/またはスロット情報(たとえば、303)が(たとえば、インデックスとして)使用されて、LUCM120/170にアクセスし、そのようなドメイン、インテントおよび/またはスロットと関連付けられる分類子を検索することができる。訓練サービス152は次いで、ユーザ発話/コマンド(302)の他に、開発者ラベリングツール150を使用して管理者によって提供されるドメイン、インテントおよび/またはスロット(303)の1つまたは複数と分類子が関連付けられるように、それを更新することができる。更新されたLUCM120は、アプリでの実装のために使用され、エージェント定義構造とまとめることができる。
【0046】
[0053]
図4A〜4Bは、本開示の例示的な実施形態による使用されてもよいエンドユーザラベリングツールのユーザインタフェース例を例示する。
図4Aを参照すると、402でのユーザインタフェースは、ユーザにタスク(たとえば、音声コマンド)を提供するよう促すDPA110の初期のビューを例示する。404では、ユーザは405で音声コマンドを提供する。406では、DPA110は、処理(たとえば、202〜214)を行って、エージェント定義構造114で一致するユーザコマンドまたは十分に高い信頼スコア(240)が全くないと決定する場合がある。処理は次いで、EULT118インタフェースを起動することによって(たとえば、250で)継続する。407では、DPA110は、タスク(たとえば、音声コマンド)が不確かであることをユーザに通知し、ユーザが「ラベリングツール」(EULT118)を起動することを望むかどうかを尋ねる。ユーザは次いで、ソフトウェアボタン408を押すことによってEULT118を起動する。
【0047】
[0054]
図4Bを参照すると、409でのユーザインタフェースは、ユーザが自分のタスク(たとえば、音声コマンド)のための関連するドメインを選択することができるように1つまたは複数のドメインを提案する。1つまたは複数のドメインを掲げることができる(たとえば、タスク(もしくは音声コマンド)に関連する(たとえば、音声学的に同様の)1つまたは複数のドメインまたはシステムで利用可能なすべてのドメイン)。ユーザがドメインを選択した後に、ユーザインタフェース410が使用されて、選択されたドメインと関連付けられる1つまたは複数のインテントを掲げることができる。代替的に、ユーザが選べるように、すべての利用可能なインテントが掲げられてもよい。ユーザがインテントを選択した後に、ユーザインタフェース412が使用されて、選択されたインテントと関連付けられる1つまたは複数のスロットを掲げることができる。代替的に、ユーザが選べるように、すべての利用可能なスロットが掲げられてもよい。スロットを選択した後に、ドメイン、インテントおよび/またはスロット情報320は、上記のようにさらに処理されてもよい。
【0048】
[0055]
図5〜7は、1つまたは複数の実施形態による、反応エージェント定義の生成を例示するフロー図である。
図1〜5を参照すると、方法例500は502で開始してもよく、ここでは複数の利用可能なインテントの少なくとも1つのインテントおよび/または少なくとも1つのインテントのための少なくとも1つのスロットのうちの少なくとも1つの第1のユーザ選択(320)が、サーバコンピュータ(たとえば、140)に通信可能に結合された複数のコンピューティングデバイスの少なくとも1つのコンピューティングデバイス(たとえば、102)から受信されてもよい。少なくとも1つのインテント(ユーザ選択320におけるインテント)は、ドメインに対する一分類の機能の少なくとも1つの機能を行うために使用される少なくとも1つのアクションと関連付けられる。(たとえば、ユーザ選択320内の)少なくとも1つのスロットは、少なくとも1つのアクションを行うために使用される値を示す。第1のユーザ選択(320)は、少なくとも1つのコンピューティングデバイス(102)で受け取られるデジタル音声入力(たとえば、発話302)と関連付けられる。504では、第1のユーザ選択と同一である複数の後続のユーザ選択を、複数のコンピューティングデバイスの少なくとも別のコンピューティングデバイスから受信したとき、デジタル音声入力を第1のユーザ選択とペアリングすることによって、ラベル付きデータセットが生成される。たとえば、302および320がペアリングされてラベル付きデータセットを生成した後、訓練サービス152は、一定(閾)数の他のユーザが同じ(または実質的に同様の)ユーザ選択および発話を提出した後に、対応する分類子の訓練に移ってもよい。506では、分類子モデル訓練サービス152は、1つまたは複数のエージェント定義と関連付けられる(たとえば、LUCM170からの)複数の利用可能な言語理解分類子から言語理解分類子を選択してもよい。選択することは少なくとも、少なくとも1つのインテントに基づいてもよい。508では、訓練サービス152は、生成されたラベル付きデータセットに基づいて選択された言語理解分類子を更新してもよい。
【0049】
[0056]
図1〜3Bおよび6を参照すると、方法例600は602で開始してもよく、ここではコンピューティングデバイス(102)のユーザからのデジタル音声入力(302)が、コンピューティングデバイス(102)の1つまたは複数のマイクロホン(106)を介して受け取られてもよい。604では、自然言語処理モジュール112は、デジタル音声入力を使用して自然言語処理を行ってユーザ音声要求を決定してもよい。
【0050】
[0057] 606では、ユーザ音声要求がコンピューティングデバイス上で動作するデジタルパーソナルアシスタント(110)のエージェント定義(たとえば、114)における複数の予め定義された音声コマンドの少なくとも1つとも一致しない(たとえば、214)と決定すると、複数の利用可能なインテントのインテントおよび少なくとも1つのインテントのための少なくとも1つのスロットのうちの少なくとも1つのユーザ選択(320)が、コンピューティングデバイス(102)のエンドユーザラベリングツール(EULT)(118)のグラフィカルユーザインタフェースを使用して受け取られてもよい。インテントは、ドメインに対する一分類の機能の少なくとも1つの機能を行うために使用される少なくとも1つのアクションおよび少なくとも1つのアクションを行うために使用される値を示す少なくとも1つのスロットと関連付けられる。608では、DPA110は、ユーザ音声要求(320)およびユーザ選択(302)をペアリングすることによってラベル付きデータセットを生成してもよい。610では、DPA110(またはデバイス102)は、エージェント定義(たとえば、114)と関連付けられる複数の利用可能な言語理解分類子(たとえば、LUCM120におけるC1、...、Cn)から言語理解分類子を選択してもよい。分類子の選択は少なくとも、EULT118を使用してユーザによって選択される少なくとも1つのインテントに基づくことができる。612では、DPA110(またはデバイス102)は、生成されたラベル付きデータセットに基づいて(たとえば、ローカル分類子330を作成する、302および320に基づいて)選択された言語理解分類子を更新してもよい。
【0051】
[0058]
図1〜3Bおよび7を参照すると、方法例700は702で開始してもよく、ここではコンピューティングデバイス(102)で受け取られるユーザ入力(302)に基づいて、ユーザ要求が決定されてもよい。ユーザ要求は、テキスト入力(204)および/または音声入力(202)の少なくとも1つを介して受け取ることができ、要求は、コンピューティングデバイス上で動作するデジタルパーソナルアシスタント(110)の機能に対してである。704では、DPA110(またはデバイス102)は、ユーザ要求がデジタルパーソナルアシスタント(たとえば、214)のエージェント定義(114)における複数の予め定義されたタスク(たとえば、音声コマンド)の少なくとも1つとも一致しないと決定してもよい。
【0052】
[0059] 706では、DPA110(またはデバイス102)は、ユーザ要求(208)にエージェント定義と関連付けられる複数の利用可能な言語理解分類子(C1、...、Cn)を適用することによって、信頼スコア(240)を生成してもよい。708では、信頼スコアが閾値(250)より小さいと決定すると、DPA110は、複数の利用可能なインテントの少なくとも1つのインテントおよび少なくとも1つのインテントのための少なくとも1つのスロットのうちの少なくとも1つのユーザ選択(320)を、コンピューティングデバイスのエンドユーザラベリングツール(EULT)(118)のグラフィカルユーザインタフェースを使用して受け取る。少なくとも1つのインテントは、ドメインに対する一分類の機能の少なくとも1つの機能を行うために使用される少なくとも1つのアクションおよび少なくとも1つのアクションを行うために使用される値を示す少なくとも1つのスロットと関連付けられる。
【0053】
[0060] 710では、DPA110(またはデバイス102)は、ユーザ音声要求(302)およびユーザ選択(320)をペアリングすることによってラベル付きデータセットを生成する。712では、DPA110(またはデバイス102)は、エージェント定義と関連付けられる複数の利用可能な言語理解分類子(LUCM120)から言語理解分類子を選択し、選択することは少なくとも、ユーザによって選択される少なくとも1つのインテントに基づく。714では、DPA110(またはデバイス102)は、(たとえば、ローカル分類子330を生成する)生成されたラベル付きデータセットを使用して選択された言語理解分類子を訓練することによって、更新された言語理解分類子を生成する。
【0054】
[0061]
図8は、本明細書に記載される革新が併せて実装されてもよいモバイルコンピューティングデバイス例を例示するブロック図である。モバイルデバイス800は、各種の任意選択のハードウェアおよびソフトウェア部品を含み、全体的に802で図示される。概して、モバイルデバイスにおける部品802は、デバイスの任意の他の部品と通信することができるが、但し例示の容易さのために、すべての接続が図示されるわけではない。モバイルデバイス800は、各種のコンピューティングデバイス(たとえば、セル電話、スマートフォン、ハンドヘルドコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、タブレットデバイス、ネットブック、メディアプレーヤ、携帯情報端末(PDA)、カメラ、ビデオカメラなど)のいずれかであることができ、Wi−Fi、セルラまたは衛星ネットワークなどの1つまたは複数の移動通信ネットワーク804との無線双方向通信を許容することができる。
【0055】
[0062] 例示されるモバイルデバイス800は、信号符号化、(重みを割り当てること、および検索結果などのデータを格付けすることを含む)データ処理、入出力処理、電力制御および/または他の機能のようなタスクを行うためのコントローラまたはプロセッサ810(たとえば、信号プロセッサ、マイクロプロセッサ、ASIC、または他の制御および処理論理回路網)を含む。オペレーティングシステム812は、部品802の割当ておよび使用法ならびに1つまたは複数のアプリケーションプログラム811のためのサポートを制御する。オペレーティングシステム812はエンドユーザラベリングツール813を含んでもよく、それは
図1〜7に関連して記載されるEULT118の機能と同様である機能を有してもよい。
【0056】
[0063] 例示されるモバイルデバイス800はメモリ820を含む。メモリ820は、非取外し式メモリ822および/または取外し式メモリ824を含むことができる。非取外し式メモリ822は、RAM、ROM、フラッシュメモリ、ハードディスクまたは他の周知のメモリ記憶技術を含むことができる。取外し式メモリ824は、グローバル移動通信システム(GSM(登録商標))通信システムで周知である、フラッシュメモリもしくは加入者識別モジュール(SIM)カード、または「スマートカード」などの他の周知のメモリ記憶技術を含むことができる。メモリ820は、オペレーティングシステム812およびアプリケーション811を動作させるためのデータおよび/またはコードを記憶するために使用することができる。データ例は、ウェブページ、テキスト、画像、サウンドファイル、ビデオデータ、または1つもしくは複数の有線もしくは無線ネットワークを介して1つもしくは複数のネットワークサーバもしくは他のデバイスに関して送信および/もしくは受信されるべき他のデータセットを含むことができる。メモリ820は、国際移動加入者識別情報(IMSI)などの加入者識別子、および国際移動機器識別子(IMEI)などの機器識別子を記憶するために使用することができる。そのような識別子は、ユーザおよび機器を識別するためにネットワークサーバに送信され得る。
【0057】
[0064] モバイルデバイス800は、(たとえば、仮想キーボードまたはキーパッドに対する指タップ入力、指ジェスチャ入力またはキーストローク入力を取り込むことが可能な)タッチスクリーン832、(たとえば、音声入力を取り込むことが可能な)マイクロホン834、(たとえば、静止画像および/またはビデオ画像を取り込むことが可能な)カメラ836、物理キーボード838、ボタンおよび/またはトラックボール840などの1つまたは複数の入力デバイス830、ならびにスピーカ852およびディスプレイ854などの1つまたは複数の出力デバイス850をサポートすることができる。他の可能な出力デバイス(図示せず)は、圧電または他の触覚出力デバイスを含むことができる。いくつかのデバイスは、2つ以上の入出力機能を満たすことができる。たとえば、タッチスクリーン832およびディスプレイ854は、単一の入出力デバイスに組み合わせることができる。モバイルデバイス800は、1つまたは複数のナチュラルユーザインタフェース(NUI)を提供することができる。たとえば、オペレーティングシステム812またはアプリケーション811は、オーディオ/ビデオプレーヤなどのマルチメディア処理ソフトウェアを備えることができる。
【0058】
[0065] 無線モデム860は、当該技術でよく理解されているように、1つまたは複数のアンテナ(図示せず)に結合することができ、プロセッサ810と外部デバイスとの間の双方向通信をサポートすることができる。モデム860は一般的に図示され、たとえば、移動通信ネットワーク804と長距離で通信するためのセルラモデム、ブルートゥース(登録商標)互換モデム864、あるいは外部ブルートゥース搭載デバイスまたはローカル無線データネットワークもしくはルータと短距離で通信するためのWi−Fi互換モデム862を含むことができる。無線モデム860は典型的に、単一のセルラネットワーク内の、セルラネットワーク間の、またはモバイルデバイスと公衆電話交換網(PSTN)との間のデータおよび音声通信のためのGSMネットワークなど、1つまたは複数のセルラネットワークとの通信のために構成される。
【0059】
[0066] モバイルデバイスは、少なくとも1つの入出力ポート880、電源882、全地球測位システム(GPS)受信器などの衛星航法システム受信器884、加速度計、ジャイロ、もしくはデバイス800の向きおよび運動を検出するための、ジェスチャコマンドを入力として受け取るための赤外線近接センサなどのセンサ886、(アナログもしくはデジタル信号を無線で送信するための)送受信器888、ならびに/またはUSBポート、IEEE1394(FireWire)ポートおよび/もしくはRS−232ポートであることができる物理コネクタ890をさらに含むことができる。図示される部品のいずれかを除去することができ、他の部品を追加することができるので、例示される部品802は必須または包括的ではない。
【0060】
[0067] モバイルデバイスは、衛星航法システム受信器884(たとえば、GPS受信器)を通じて受信される情報に基づいて、モバイルデバイスの位置を示す位置データを決定することができる。代替的に、モバイルデバイスは、別の方途でモバイルデバイスの位置を示す位置データを決定することができる。たとえば、モバイルデバイスの位置は、セルラネットワークのセルタワー間の三角測量によって決定することができる。または、モバイルデバイスの位置は、モバイルデバイスの付近のWi−Fiルータの既知の位置に基づいて決定することができる。位置データは、実装および/またはユーザ設定に応じて、毎秒または何らかの他の基準で更新することができる。位置データの出所に関係なく、モバイルデバイスは位置データを、地図航法で使用するために、地図航法ツールに提供することができる。
【0061】
[0068] クライアントコンピューティングデバイスとして、モバイルデバイス800は、サーバコンピューティングデバイス(たとえば、検索サーバ、ルーティングサーバなど)に要求を送信し、サーバコンピューティングデバイスから代わりに、地図画像、距離、方向、他の地図データ、検索結果(たとえば、指定された検索範囲内のPOI検索に基づくPOI)、または他のデータを受信することができる。
【0062】
[0069] モバイルデバイス800は、様々な種類のサービス(たとえば、コンピューティングサービス)がコンピューティング「クラウド」によって提供される実装環境の一部であることができる。たとえば、クラウドは、インターネットなどのネットワークを介して接続される様々な種類のユーザおよびデバイスにクラウドベースのサービスを提供する、中央に設けられても、または分散されてもよいコンピューティングデバイスの集合を備えることができる。いくつかのタスク(たとえば、ユーザ入力を処理すること、およびユーザインタフェースを提示すること)はローカルコンピューティングデバイス(たとえば、接続デバイス)で行うことができる一方で、他のタスク(たとえば、後続の処理で使用されるべきデータの記憶、データの加重、およびデータの格付)はクラウドで行うことができる。
【0063】
[0070]
図8がモバイルデバイス800を例示するとはいえ、より一般に、本明細書に記載される革新は、デスクトップコンピュータ、テレビ画面、またはテレビに接続されるデバイス(たとえば、セットトップボックスまたはゲームコンソール)など、他の画面特性およびデバイスフォームファクタを有するデバイスで実装することができる。サービスは、サービスプロバイダを通じて、またはオンラインサービスの他のプロバイダを通じてクラウドによって提供することができる。追加的に、本明細書に記載される技術がオーディオストリーミングに関してもよいので、デバイス画面は必要とされないことも使用されないこともある(ビデオ再生特性をもつマルチメディアエンドポイントデバイスにオーディオ/ビデオコンテンツがストリーミングされている事例で、ディスプレイが使用されてもよい)。
【0064】
[0071]
図9は、いくつかの記載される実施形態を実装することができるコンピューティングシステム例の図である。多様な汎用または専用コンピューティングシステムで革新が実装されてもよいので、コンピューティングシステム900は、使用または機能の範囲に関していかなる限定も暗示するものとは意図されない。
【0065】
[0072]
図9を参照して、コンピューティングシステム900は、1つまたは複数の処理ユニット910、915およびメモリ920、925を含む。
図9では、この基本構成930は破線内に含まれる。処理ユニット910、915は、コンピュータ実行可能命令を実行する。処理ユニットは、汎用中央処理装置(CPU)、特定用途向け集積回路(ASIC)におけるプロセッサ、または任意の他の種類のプロセッサであることができる。マルチプロセシングシステムでは、複数の処理ユニットがコンピュータ実行可能命令を実行して処理能力を上昇させる。たとえば、
図9は、中央処理装置910の他にグラフィック処理ユニットまたはコプロセシングユニット915を図示する。有形のメモリ920、925は、揮発性メモリ(たとえば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(たとえば、ROM、EEPROM、フラッシュメモリなど)、または処理ユニットによってアクセス可能な、2つの何らかの組合せでもよい。メモリ920、925は、本明細書に記載される1つまたは複数の革新を実装するソフトウェア980を、処理ユニットによる実行に適するコンピュータ実行可能命令の形態で記憶する。
【0066】
[0073] コンピューティングシステムは追加の特徴も有してもよい。たとえば、コンピューティングシステム900は、ストレージ940、1つまたは複数の入力デバイス950、1つまたは複数の出力デバイス960、および1つまたは複数の通信接続970を含む。バス、コントローラまたはネットワークなどの相互接続機構(図示せず)がコンピューティングシステム900の部品を相互接続する。典型的に、オペレーティングシステムソフトウェア(図示せず)が、コンピューティングシステム900で実行する他のソフトウェアのための動作環境を提供し、コンピューティングシステム900の部品の活動を協調させる。
【0067】
[0074] 有形のストレージ940は取外し式または非取外し式でもよく、磁気ディスク、磁気テープもしくはカセット、CD−ROM、DVD、または情報を記憶するために使用することができ、コンピューティングシステム900内でアクセスを受け取ることができる任意の他の媒体を含む。ストレージ940は、本明細書に記載される1つまたは複数の革新を実装するソフトウェア980のための命令を記憶する。
【0068】
[0075] 入力デバイス950は、キーボード、マウス、ペンもしくはトラックボールなどのタッチ入力デバイス、音声入力デバイス、走査デバイス、またはコンピューティングシステム900への入力を提供する別のデバイスでもよい。ビデオ符号化のために、入力デバイス950は、カメラ、ビデオカード、TVチューナカード、あるいはアナログもしくはデジタル形式のビデオ入力、またはコンピューティングシステム900にビデオサンプルを読み込むCD−ROMもしくはCD−RWを受け入れる同様のデバイスでもよい。出力デバイス960は、ディスプレイ、プリンタ、スピーカ、CDライタ、またはコンピューティングシステム900からの出力を提供する別のデバイスでもよい。
【0069】
[0076] 通信接続970は、別のコンピューティングエンティティへの通信媒体を通じた通信を可能にする。通信媒体は、コンピュータ実行可能命令、オーディオもしくはビデオ入力もしくは出力、または他のデータなどの情報を変調データ信号で伝達する。変調データ信号は、その特性の1つまたは複数が信号における情報を符合化するような方式で設定または変更される信号である。限定ではなく例として、通信媒体は、電気、光学、RFまたは他のキャリアを使用することができる。
【0070】
[0077] 革新は、プログラムモジュールに含まれるものなどのコンピュータ実行可能命令が対象の実プロセッサまたは仮想プロセッサ上のコンピューティングシステムで実行される一般的な文脈で記載され得る。一般に、プログラムモジュールは、特定のタスクを行うか、または特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などを含む。プログラムモジュールの機能は、様々な実施形態で所望されるように、プログラムモジュール間で組み合わせられても、または分割されてもよい。プログラムモジュールのためのコンピュータ実行可能命令は、ローカルまたは分散コンピューティングシステム内で実行されてもよい。
【0071】
[0078] 用語「システム」および「デバイス」は、本明細書で交換可能に使用される。文脈が別途明示しない限り、いずれの用語もコンピューティングシステムまたはコンピューティングデバイスの種類のいかなる限定も暗示しない。概して、コンピューティングシステムまたはコンピューティングデバイスはローカルまたは分散であることができ、ソフトウェアが本明細書に記載される機能を実装しつつ、専用ハードウェアおよび/または汎用ハードウェアの任意の組合せを含むことができる。
【0072】
[0079]
図10は、本明細書に記載される技術と併せて使用することができるクラウドコンピューティング環境例である。クラウドコンピューティング環境1000は、クラウドコンピューティングサービス1010を備える。クラウドコンピューティングサービス1010は、コンピュータサーバ、データ記憶リポジトリ、ネットワーキングリソースなどといった、様々な種類のクラウドコンピューティングリソースを備えることができる。クラウドコンピューティングサービス1010は、中央に設けられる(たとえば、企業または組織のデータセンタによって提供される)か、または分散される(たとえば、異なるデータセンタなどの異なる位置で設けられ、/または異なる都市もしくは国に設けられる様々なコンピューティングリソースによって提供される)ことができる。追加的に、クラウドコンピューティングサービス1010は、言語理解分類子モデルを更新することに関して本明細書に記載されるEULT118および他の機能を実装してもよい。
【0073】
[0080] クラウドコンピューティングサービス1010は、コンピューティングデバイス1020、1022および1024などの様々な種類のコンピューティングデバイス(たとえば、クライアントコンピューティングデバイス)によって活用される。たとえば、コンピューティングデバイス(たとえば、1020、1022および1024)は、コンピュータ(たとえば、デスクトップまたはラップトップコンピュータ)、モバイルデバイス(たとえば、タブレットコンピュータまたはスマートフォン)、または他の種類のコンピューティングデバイスであることができる。たとえば、コンピューティングデバイス(たとえば、1020、1022および1024)は、クラウドコンピューティングサービス1010を活用して、コンピューティング動作(たとえば、データ処理、データ記憶、反応エージェント定義生成および編集など)を行うことができる。
【0074】
[0081] 提示のため、詳細な記載は、「決定する」および「使用する」のような用語を使用してコンピューティングシステムにおけるコンピュータ動作を記載する。これらの用語は、コンピュータによって行われる動作に対する高レベル抽象化であり、人間によって行われる行為と混同されるべきでない。これらの用語に対応する実際のコンピュータ動作は、実装に応じて異なる。
【0075】
[0082] 開示された方法のいくつかの動作が好都合な提示のために特定の、連続した順序で記載されるとはいえ、特定の順序が以下に述べる特有の言語によって必要とされない限り、この方式の記載が再配置を包含することが理解されるべきである。たとえば、連続して記載される動作は、場合によっては再配置されても、または同時に行われてもよい。その上、単純性のため、添付の図は、開示された方法が他の方法と併せて使用することができる様々な方途を図示しないことがある。
【0076】
[0083] 開示された方法のいずれも、コンピュータ実行可能命令または1つもしくは複数のコンピュータ可読記憶媒体に記憶されるコンピュータプログラム製品として実装され、コンピューティングデバイス(たとえば、スマートフォンまたはコンピューティングハードウェアを含む他のモバイルデバイスを含む、任意の利用可能なコンピューティングデバイス)上で実行することができる。コンピュータ可読記憶媒体は、コンピューティング環境内でアクセスされることができる任意の利用可能な有形媒体である(たとえば、DVDもしくはCDなどの1つもしくは複数の光学媒体ディスク、(DRAMもしくはSRAMなどの)揮発性メモリ部品、または(フラッシュメモリもしくはハードドライブなどの)不揮発性メモリ部品)。例として、
図9を参照しつつ、コンピュータ可読記憶媒体は、メモリ920および925ならびにストレージ940を含む。用語「コンピュータ可読記憶媒体」は信号および搬送波を含まない。加えて、用語「コンピュータ可読記憶媒体」は通信接続(たとえば、970)を含まない。
【0077】
[0084] 開示された技法を実装するためのコンピュータ実行可能命令のいずれもの他に、開示した実施形態の実装中に作成および使用されるいかなるデータも、1つまたは複数のコンピュータ可読記憶媒体上に記憶させることができる。コンピュータ実行可能命令は、たとえば、専用ソフトウェアアプリケーション、またはウェブブラウザもしくは(リモートコンピューティングアプリケーションなどの)他のソフトウェアアプリケーションを介してアクセスもしくはダウンロードされるソフトウェアアプリケーションの一部であることができる。そのようなソフトウェアは、たとえば、単一のローカルコンピュータ(たとえば、任意の適切な市販のコンピュータ)上で、または1つもしくは複数のネットワークコンピュータを使用してネットワーク環境で(たとえば、インターネット、ワイドエリアネットワーク、ローカルエリアネットワーク、(クラウドコンピューティングネットワークなどの)クライアント-サーバネットワーク、もしくは他のそのようなネットワークを介して)実行することができる。
【0078】
[0085] 明瞭さのため、ソフトウェアベースの実装の一定の選択された態様のみが記載される。当該技術で周知である他の詳細は省略される。たとえば、開示された技術がいかなる特定のコンピュータ言語またはプログラムにも限定されないことが理解されるべきである。たとえば、開示された技術は、C++、Java(登録商標)、Perl、JavaScript(登録商標)、Adobe Flashまたは任意の他の適切なプログラミング言語で書かれるソフトウェアによって実装することができる。同様に、開示された技術は、いかなる特定のコンピュータまたはハードウェアの種類にも限定されない。適切なコンピュータおよびハードウェアの一定の詳細は周知であり、本開示に詳細に述べられる必要がない。
【0079】
[0086] さらには、(たとえば、コンピュータに開示された方法のいずれかを行わせるためのコンピュータ実行可能命令を備える)ソフトウェアベースの実施形態のいずれも、適切な通信手段を通じてアップロード、ダウンロード、またはリモートでアクセスを受け取ることができる。そのような適切な通信手段は、たとえば、インターネット、ワールドワイドウェブ、イントラネット、ソフトウェアアプリケーション、(光ファイバーケーブルを含む)ケーブル、磁気通信、(RF、マイクロ波および赤外線通信を含む)電磁通信、電子通信、または他のそのような通信手段を含む。
【0080】
[0087] 開示された方法、装置およびシステムは、いかなる形であれ限定的と解釈されるべきではない。その代わり、本開示は、様々な開示した実施形態のすべての新規かつ自明でない特徴および態様の個々ならびに互いの様々な組合せおよび部分組合せを対象とする。開示された方法、装置およびシステムは、いかなる特定の態様または特徴またはその組合せにも限定されず、また開示した実施形態は、いかなる1つまたは複数の特定の利点が存在することも、または問題が解決されることも必要としない。
【0081】
[0088] いかなる例からの技術も、その他の例の任意の1つまたは複数に記載される技術と組み合わせることができる。開示された技術の原理が適用されてもよい多くの可能な実施形態に鑑みて、例示された実施形態は開示された技術の例であり、開示された技術の範囲の限定としてとられるべきでないことを理解されたい。むしろ、開示された技術の範囲は、以下の請求項の範囲および趣旨によって包含されるものを含む。