(57)【要約】  一般的には、制限自然言語処理を提供する技術を提供する。プロセッサ及びメモリを備えるデバイスを、技術を実行するように構成してもよい。プロセッサは、言語サブサーフェスの階層的配列として、自然言語の文法を明確にする自然言語包含階層を特定する言語サブサーフェスを露出してもよい。プロセッサは、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信するとともに言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理してもよい。プロセッサは、次に、動作を実行するために、識別された意図に関連する処理を実行してもよい。メモリは、入力を表すデータを格納してもよい。
2021528761.tif 000002
【特許請求の範囲】
【請求項１】
入力を表すデータを処理するように構成されたデバイスであって、
複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、前記言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる前記自然言語に認められる構文規則及び文字列の対応するセットを指定し、
露出した前記言語サブサーフェスによって提供される言語の部分に一致する前記入力を表すデータを受信し、
前記言語の部分に関連する複数の意図からユーザの意図を識別するために前記入力を表すデータを処理し、
動作を実行するために、識別された意図に関連する処理を実行する、
ように構成された一つ以上のプロセッサと、
前記入力を表すデータを格納するように構成されたメモリと、
を備えるデバイス。
【請求項２】
前記一つ以上のプロセッサは、前記複数の言語サブサーフェスの言語サブサーフェスのみを露出するように構成された、請求項１のデバイス。
【請求項３】
前記一つ以上のプロセッサは、
ユーザがしきい値内の前記言語の部分に関連する複数の意図を思い起こすことができることを決定し、
ユーザが前記複数の意図を思い起こすことができることを決定したことに応答して、前記複数の言語サブサーフェスの第２の言語サブサーフェスを露出し、前記第２の言語サブサーフェスは、第２の入力を表す第２のデータを入力するためにユーザがやりとりを行うことができる前記言語の第２の部分を提供し、
露出された前記第２の言語サブサーフェスによって提供された前記言語の第２の部分と一致する前記第２の入力を表す第２のデータを受信し、
前記言語の第２の部分に関連する第２の複数の意図からユーザの第２の意図を識別するために前記第２の入力を表す第２のデータを処理し、
第２の動作を実行するために、識別された前記第２の意図に関連する処理を実行する、
ように更に構成された、請求項１及び２の任意の組合せのデバイス。
【請求項４】
前記一つ以上のプロセッサは、前記言語サブサーフェスを露出するために一つ以上の示唆を自動的に提供するテキスト入力領域を有するインタフェースを提示するように更に構成された、請求項１〜３の任意の組合せのデバイス。
【請求項５】
前記一つ以上のプロセッサは、前記言語サブサーフェスを露出するためにオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示するように更に構成された、請求項１〜４の任意の組合せのデバイス。
【請求項６】
前記言語サブサーフェスは、第１の言語サブサーフェスを備え、
前記第１の言語サブサーフェスは、前記複数の言語サブサーフェスの第２の言語サブサーフェスへの移行を指定し、
前記一つ以上のプロセッサは、前記移行を識別するユーザからの第２のデータに応答して、前記複数の言語サブサーフェスの前記第２の言語サブサーフェスを露出し、前記第２の言語サブサーフェスは、第２の入力を表す第２のデータを入力するためにユーザがやりとりを行うことができる前記言語の第２の部分を提供するように更に構成された、請求項１〜５の任意の組合せのデバイス。
【請求項７】
前記一つ以上のプロセッサは、前記移行を識別するデータの入力を促進するオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示するように更に構成された、請求項６のデバイス。
【請求項８】
前記一つ以上のプロセッサは、
露出された前記第２の言語サブサーフェスによって提供された前記言語の第２の部分に一致する前記第２の入力を表す第２のデータを受信し、
前記言語の第２の部分に関連する第２の複数の意図からユーザの第２の意図を識別するために前記第２の入力を表す第２のデータを処理し、
第２の動作を実行するために、識別された前記第２の意図に関連する第２の処理を実行する、
ように更に構成された、請求項６のデバイス。
【請求項９】
前記一つ以上のプロセッサは、
前記言語に関連する複数のパターンからパターンを識別するために前記入力を表すデータを処理し、前記複数のパターンの各々は、前記複数の意図の互いに異なる意図に関連し、
識別された前記パターンに基づいて、前記言語の部分に関連する前記複数の意図からユーザの前記意図を識別する、
ように更に構成された、請求項１〜８の任意の組合せのデバイス。
【請求項１０】
前記パターンは、識別子を有し、
前記一つ以上のプロセッサは、
前記識別子を識別するために前記入力を表すデータを解析し、
前記識別子に基づいて前記パターンを識別する、
ように更に構成された、請求項９のデバイス。
【請求項１１】
前記パターンは、識別子と位置エンティティの両方を有し、
前記一つ以上のプロセッサは、
前記位置エンティティを識別するために前記入力を表すデータを解析し、
前記識別子及び前記位置エンティティに基づいて前記パターンを識別する、
ように更に構成された、請求項１０のデバイス。
【請求項１２】
前記パターンは、キーワードを有し、
前記一つ以上のプロセッサは、
前記キーワードを識別するために前記入力を表すデータを解析し、
前記キーワードに基づいて前記パターンを識別する、
ように更に構成された、請求項９〜１１の任意の組合せのデバイス。
【請求項１３】
前記パターンは、エンティティを有し、
前記一つ以上のプロセッサは、
前記入力を表すデータが前記パターンに対応するが前記エンティティを有さないことを決定し、
前記入力を表すデータが前記パターンに対応するが前記エンティティを有さないことを決定したことに応答して、前記エンティティを特定する追加入力を表すデータを要求するプロンプトを出力する、
ように更に構成された、請求項９〜１２の任意の組合せのデバイス。
【請求項１４】
前記一つ以上のプロセッサは、
前記エンティティを特定する追加入力を表すデータを受信し、
前記入力を表すデータ及び前記追加入力を表すデータに基づいて、前記パターンを識別する、
ように更に構成された、請求項１３のデバイス。
【請求項１５】
前記一つ以上のプロセッサは、
前記動作の実行の結果を取得し、
前記入力を表すデータを入力するために、前記結果を、インタフェースを介して、前記デバイスとやりとりを行うクライアントに供給する、
ように更に構成された、請求項１〜１４の任意の組合せのデバイス。
【請求項１６】
入力を表すデータを処理する方法であって、
複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、前記言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる前記自然言語に認められる構文規則及び文字列の対応するセットを指定することと、
露出した前記言語サブサーフェスによって提供される言語の部分に一致する前記入力を表すデータを受信することと、
前記言語の部分に関連する複数の意図からユーザの意図を識別するために前記入力を表すデータを処理することと、
動作を実行するために、識別された意図に関連する処理を実行することと、
を備える方法。
【請求項１７】
前記言語サブサーフェスを露出することは、前記複数の言語サブサーフェスの言語サブサーフェスのみを露出することを備える、請求項１６の方法。
【請求項１８】
ユーザがしきい値内の前記言語の部分に関連する複数の意図を思い起こすことができることを決定することと、
ユーザが前記複数の意図を思い起こすことができることを決定したことに応答して、前記複数の言語サブサーフェスの第２の言語サブサーフェスを露出し、前記第２の言語サブサーフェスは、第２の入力を表す第２のデータを入力するためにユーザがやりとりを行うことができる前記言語の第２の部分を提供することと、
露出された前記第２の言語サブサーフェスによって提供された前記言語の第２の部分と一致する前記第２の入力を表す第２のデータを受信することと、
前記言語の第２の部分に関連する第２の複数の意図からユーザの第２の意図を識別するために前記第２の入力を表す第２のデータを処理することと、
第２の動作を実行するために、識別された前記第２の意図に関連する処理を実行することと、
を更に備える、請求項１６及び１７の任意の組合せの方法。
【請求項１９】
前記言語サブサーフェスを露出するために一つ以上の示唆を自動的に提供するテキスト入力領域を有するインタフェースを提示することを更に備える、請求項１６〜１８の任意の組合せの方法。
【請求項２０】
前記言語サブサーフェスを露出するためにオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示することを更に備える、請求項１６〜１９の任意の組合せの方法。
【請求項２１】
前記言語サブサーフェスは、第１の言語サブサーフェスを備え、
前記第１の言語サブサーフェスは、前記複数の言語サブサーフェスの第２の言語サブサーフェスへの移行を指定し、
前記移行を識別するユーザからの第２のデータに応答して、前記複数の言語サブサーフェスの前記第２の言語サブサーフェスを露出し、前記第２の言語サブサーフェスは、第２の入力を表す第２のデータを入力するためにユーザがやりとりを行うことができる前記言語の第２の部分を提供することを更に備える、請求項１６〜２０の任意の組合せの方法。
【請求項２２】
前記移行を識別するデータの入力を促進するオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示することを更に備える、請求項２１の方法。
【請求項２３】
露出された前記第２の言語サブサーフェスによって提供された前記言語の第２の部分に一致する前記第２の入力を表す第２のデータを受信することと、
前記言語の第２の部分に関連する第２の複数の意図からユーザの第２の意図を識別するために前記第２の入力を表す第２のデータを処理することと、
第２の動作を実行するために、識別された前記第２の意図に関連する第２の処理を実行することと、
を更に備える、請求項２１の方法。
【請求項２４】
前記入力を表すデータを処理することは、
前記言語に関連する複数のパターンからパターンを識別するために前記入力を表すデータを処理し、前記複数のパターンの各々は、前記複数の意図の互いに異なる意図に関連することと、
識別された前記パターンに基づいて、前記言語の部分に関連する前記複数の意図からユーザの前記意図を識別することと、
を備える、請求項１６〜２３の任意の組合せの方法。
【請求項２５】
前記パターンは、識別子を有し、
前記パターンを識別するために前記入力を表すデータを処理することは、
前記識別子を識別するために前記入力を表すデータを解析することと、
前記識別子に基づいて前記パターンを識別することと、
を備える、請求項２４の方法。
【請求項２６】
前記パターンは、識別子と位置エンティティの両方を有し、
前記識別子を識別するために前記入力を表すデータを解析することは、
前記位置エンティティを識別するために前記入力を表すデータを解析することと、
前記識別子及び前記位置エンティティに基づいて前記パターンを識別することと、
を備える、請求項２５の方法。
【請求項２７】
前記パターンは、キーワードを有し、
前記識別子を識別するために前記入力を表すデータを解析することは、
前記キーワードを識別するために前記入力を表すデータを解析することと、
前記キーワードに基づいて前記パターンを識別することと、
を備える、請求項２４〜２６の任意の組合せの方法。
【請求項２８】
前記パターンは、エンティティを有し、
前記識別子を識別するために前記入力を表すデータを解析することは、
前記入力を表すデータが前記パターンに対応するが前記エンティティを有さないことを決定することと、
前記入力を表すデータが前記パターンに対応するが前記エンティティを有さないことを決定したことに応答して、前記エンティティを特定する追加入力を表すデータを要求するプロンプトを出力することと、
を備える、請求項２４〜２７の任意の組合せの方法。
【請求項２９】
前記入力を表すデータを受信することは、前記エンティティを特定する追加入力を表すデータを受信することを備え、
前記入力を表すデータを処理することは、前記入力を表すデータ及び前記追加入力を表すデータに基づいて、前記パターンを識別することを更に備える、請求項２８の方法。
【請求項３０】
前記動作の実行の結果を取得することと、
前記入力を表すデータを入力するために、前記結果を、インタフェースを介して、デバイスとやりとりを行うクライアントに供給することと、
を更に備える、請求項１６〜２９の任意の組合せの方法。
【請求項３１】
入力を表すデータを処理するデバイスであって、
複数の言語サブサーフェスの階層的配列として、自然言語の文法を明確にする自然言語包含階層を特定する言語サブサーフェスを露出し、前記言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる前記自然言語に認められる構文規則及び文字列の対応するセットを指定する手段と、
露出した前記言語サブサーフェスによって提供される言語の部分に一致する前記入力を表すデータを受信する手段と、
前記言語の部分に関連する複数の意図からユーザの意図を識別するために前記入力を表すデータを処理する手段と、
動作を実行するために、識別された意図に関連する処理を実行する手段と、
を備えるデバイス。
【請求項３２】
言語サブサーフェスを露出する手段は、前記複数の言語サブサーフェスの言語サブサーフェスのみを露出する手段を備える、請求項３１のデバイス。
【請求項３３】
ユーザがしきい値内の前記言語の部分に関連する複数の意図を思い起こすことができることを決定する手段と、
ユーザが前記複数の意図を思い起こすことができることを決定したことに応答して、前記複数の言語サブサーフェスの第２の言語サブサーフェスを露出し、前記第２の言語サブサーフェスは、第２の入力を表す第２のデータを入力するためにユーザがやりとりを行うことができる前記言語の第２の部分を提供する手段と、
露出された前記第２の言語サブサーフェスによって提供された前記言語の第２の部分と一致する前記第２の入力を表す第２のデータを受信する手段と、
前記言語の第２の部分に関連する第２の複数の意図からユーザの第２の意図を識別するために前記第２の入力を表す第２のデータを処理する手段と、
第２の動作を実行するために、識別された前記第２の意図に関連する処理を実行する手段と、
を更に備える、請求項３１及び３２の任意の組合せのデバイス。
【請求項３４】
前記言語サブサーフェスを露出するために一つ以上の示唆を自動的に提供するテキスト入力領域を有するインタフェースを提示する手段を更に備える、請求項３１〜３３の任意の組合せのデバイス。
【請求項３５】
前記言語サブサーフェスを露出するためにオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示する手段を更に備える、請求項３１〜３４の任意の組合せのデバイス。
【請求項３６】
前記言語サブサーフェスは、第１の言語サブサーフェスを備え、
前記第１の言語サブサーフェスは、前記複数の言語サブサーフェスの第２の言語サブサーフェスへの移行を指定し、
前記移行を識別するユーザからの第２のデータに応答して、前記複数の言語サブサーフェスの前記第２の言語サブサーフェスを露出し、前記第２の言語サブサーフェスは、第２の入力を表す第２のデータを入力するためにユーザがやりとりを行うことができる前記言語の第２の部分を提供する手段を更に備える、請求項３１〜３５の任意の組合せのデバイス。
【請求項３７】
前記移行を識別するデータの入力を促進するオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示する手段を更に備える、請求項３６のデバイス。
【請求項３８】
露出された前記第２の言語サブサーフェスによって提供された前記言語の第２の部分に一致する前記第２の入力を表す第２のデータを受信する手段と、
前記言語の第２の部分に関連する第２の複数の意図からユーザの第２の意図を識別するために前記第２の入力を表す第２のデータを処理する手段と、
第２の動作を実行するために、識別された前記第２の意図に関連する第２の処理を実行する手段と、
を更に備える、請求項３６のデバイス。
【請求項３９】
前記入力を表すデータを処理する手段は、
前記言語に関連する複数のパターンからパターンを識別するために前記入力を表すデータを処理し、前記複数のパターンの各々は、前記複数の意図の互いに異なる意図に関連する手段と、
識別された前記パターンに基づいて、前記言語の部分に関連する前記複数の意図からユーザの前記意図を識別する手段と、
を備える、請求項３１〜３８の任意の組合せのデバイス。
【請求項４０】
前記パターンは、識別子を有し、
前記パターンを識別するために前記入力を表すデータを処理する手段は、
前記識別子を識別するために前記入力を表すデータを解析する手段と、
前記識別子に基づいて前記パターンを識別する手段と、
を備える、請求項３９のデバイス。
【請求項４１】
前記パターンは、識別子と位置エンティティの両方を有し、
前記識別子を識別するために前記入力を表すデータを解析する手段は、
前記位置エンティティを識別するために前記入力を表すデータを解析する手段と、
前記識別子及び前記位置エンティティに基づいて前記パターンを識別する手段と、
を備える、請求項４０のデバイス。
【請求項４２】
前記パターンは、キーワードを有し、
前記識別子を識別するために前記入力を表すデータを解析する手段は、
前記キーワードを識別するために前記入力を表すデータを解析する手段と、
前記キーワードに基づいて前記パターンを識別する手段と、
を備える、請求項３９〜４１の任意の組合せのデバイス。
【請求項４３】
前記パターンは、エンティティを有し、
前記識別子を識別するために前記入力を表すデータを解析する手段は、
前記入力を表すデータが前記パターンに対応するが前記エンティティを有さないことを決定する手段と、
前記入力を表すデータが前記パターンに対応するが前記エンティティを有さないことを決定したことに応答して、前記エンティティを特定する追加入力を表すデータを要求するプロンプトを出力する手段と、
を備える、請求項３９〜４２の任意の組合せのデバイス。
【請求項４４】
前記入力を表すデータを受信する手段は、前記エンティティを特定する追加入力を表すデータを受信する手段を備え、
前記入力を表すデータを処理する手段は、前記入力を表すデータ及び前記追加入力を表すデータに基づいて、前記パターンを識別する手段を更に備える、請求項４３のデバイス。
【請求項４５】
前記動作の実行の結果を取得する手段と、
前記入力を表すデータを入力するために、前記結果を、インタフェースを介して、前記デバイスとやりとりを行うクライアントに供給する手段と、
を備える、請求項３１〜４４の任意の組合せのデバイス。
【請求項４６】
実行のときに、一つ以上のプロセッサによって、
複数の言語サブサーフェスの階層的配列として、自然言語の文法を明確にする自然言語包含階層を特定する言語サブサーフェスを露出し、前記言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる前記自然言語に認められる構文規則及び文字列の対応するセットを指定し、
露出した前記言語サブサーフェスによって提供される言語の部分に一致する前記入力を表すデータを受信し、
前記言語の部分に関連する複数の意図からユーザの意図を識別するために前記入力を表すデータを処理し、
動作を実行するために、識別された意図に関連する処理を実行する、
命令を格納したコンピュータ可読媒体。
【請求項４７】
入力を表すデータを処理するように構成されたシステムであって、
複数の言語サブサーフェスの階層的配列として、自然言語の文法を明確にする自然言語包含階層を特定する言語サブサーフェスを露出し、前記言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる前記自然言語に認められる構文規則及び文字列の対応するセットを指定するように構成された一つ以上のプロセッサを備えるホスト装置と、
露出した前記言語サブサーフェスによって提供される言語の部分に一致する前記入力を表すデータを受信し、
前記入力を表すデータを前記ホスト装置に出力する、
ように構成された一つ以上のプロセッサを備えるクライアント装置と、
を備え、
前記ホスト装置の一つ以上のプロセッサは、
前記言語の部分に関連する複数の意図からユーザの意図を識別するために前記入力を表すデータを処理し、
動作を実行するために、識別された意図に関連する処理を実行する、
ように更に構成された、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１８年６月１８日に出願された米国仮出願第６２／６８６，３３１号の利益を主張する２０１９年６月１４日に出願された米国出願第１６／４４１，９１５号の利益を主張し、その全内容は、参照により本明細書に組み込まれる。
【０００２】
この開示は、コンピュータシステム及びデータ解析システムに関し、更に具体的には、自然言語処理を用いるシステムに関する。
【背景技術】
【０００３】
自然言語処理は、一般的には、人間の言語を用いる対話のやりとりを介してユーザによって提供される入力をコンピュータデバイスによって処理する分野を意味する。例えば、デバイスは、種々の入力をユーザに促してもよい、明確にするための質問を行ってもよい、関連質問を行ってもよい又は入力を引き出すために対話によるユーザとのやりとりを行ってもよい。ユーザは、同様に、文章又は断片としての入力を入力してもよく、これによって、デバイスにより実行される（「タスク」と称することもできる）一つ以上の意図を特定するためにデバイスとのシミュレートされた対話を確立する。
【０００４】
この処理の間、デバイスは、会話を提示する種々のインタフェースを提示してもよい。一例のインタフェースは、更なる会話調を確立するために性格、声、好み、気質等を含む人間性をまねることを試みるように構成されることがあるいわゆる「チャットボット」として機能してもよく、これによって、ユーザとのやりとりを促進し、入力を更に自然に受信する。チャットボットの例は、（会議のスケジューリング、ホテルの予約及び食糧配給のスケジュールのような）支援に専念するタスクのセットに重点を置いたチャットボットのサブセットである（「仮想アシスタント」と称することもできる）「デジタルアシスタント」を含む。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
意図を識別するために入力を解析するのに用いられる複数の互いに異なる言語処理アルゴリズムが存在し、その一部は、機械学習に依存する。しかしながら、自然言語は、正確なフォーマットに従わないことがよくあり、種々のユーザは、同一の一般的な意図となる入力を表現する僅かに異なる方法を有し、その結果、機械学習に依存する自然言語アルゴリズムを含む多数の自然言語アルゴリズムが具体的に対処するようにプログラムされない（又は機械言語との関連でトレーニングされない）いわゆる「エッジケース」が生じる。
【０００６】
一般的には、本開示は、制限されたやり方で言語サブサーフェスを露出して曖昧さを除去するとともに発見可能性を支援する制限自然言語処理（ＣＮＬＰ）の技術を開示する。一般的には、自然言語サーフェスは、許可されたセットの潜在的なユーザ入力（例えば、発話）、すなわち、自然言語処理システムが正確に処理することができる発話のセットを意味する。
【０００７】
ここで説明するＣＮＬＰ技術は、チャットボット及び仮想アシスタントのような自然言語インタフェースを有するシステムの設計において複数の技術的効果を提供することができる。第１に、ＣＮＬＰ技術は、言語サーフェスを、システムによって識別されるとともに影響が及ぼされる発生のセットに制限することができる。技術によって、曖昧さの除外／最小化を行うように最初の言語サーフェスを調整することができ、ユーザがいらだつ又は判断を誤ることがないようにすることを保証する。
【０００８】
第２に、制限された言語サーフェスは、構造化された発見プロセスを可能にし、ここで説明するオートコンプリートメカニズムと組み合わせたときには、ユーザは、あり得る長いトレーニング段階を経ることなくＣＬＮＰシステムの能力及び限界を理解することができる。さらに、発見プロセスによって、システム設計者は、ユーザに課される認知的負荷を最小にしながらシステムの多量の機能を露出することができる。
【０００９】
第３に、技術の様々な側面によって、システム設計者は、所定の条件に適合したときにのみ、言語サーフェスを、ユーザに露出されるサブサーフェスに分解することができる。条件は、ユーザの好み若しくは能力（例えば、ユーザが認められた又は証明された技術的な精巧さを有するときにのみ更に複雑な所定の発話を許容してもよい。）又はユーザセッションの状況（例えば、以前の発話を介して要件に適合した場合にのみ所定の発話を許容してもよい。）に関連してもよい。
【００１０】
総合すれば、ＣＮＬＰ技術によって、多様なニーズ及び精巧さのレベルを有するユーザをサポートするために、ユーザにとって更に容易なユーザインタフェースを有するシステムの構築を可能にし、同時に、多様な意図を高精度でプログラムに従って認識する。したがって、技術は、既存のチャットボットフレームワーク又は仮想アシスタントフレームワークに比較して能力及び有用性のバランスを実現するシステム設計を可能にする。
【００１１】
この意味では、ＣＮＬＰ技術は、いわゆる「デジタルアシスタント」又は「チャットボット」のような自然言語インタフェースに従ってユーザとやりとりを行うシステムの更に良好な動作を促進することができる。複数の互いに異なる意味に解釈することができる曖昧な入力を処理することを試みる処理サイクルを浪費せず、かつ、ユーザによる入力によって意図される正確な意味を解明するための関連質問を行うことなく、ＣＮＬＰ技術の結果、利用できる言語を一つ以上のサブサーフェスに制限することによってユーザ入力を更に有効に処理することができる。処理サイクルを減少することによって、更に少ない消費電力でＣＮＬＰシステムの動作を向上させ、更に少ない状態を生成させることによってメモリ消費量が減少するともに利用されるメモリ帯域幅が減少し（その両方によって、電力消費が更に減少する。）、他の処理のために更に広い処理帯域幅（ｐｒｏｃｅｓｓｉｎｇ  ｂａｎｄｗｉｄｔｈ）が保持される。
【課題を解決するための手段】
【００１２】
一態様において、技術は、入力を表すデータを処理するように構成されたデバイスであって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定するように構成された一つ以上のプロセッサを備えるデバイスを対象とする。一つ以上のプロセッサは、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信し、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理し、動作を実行するために、識別された意図に関連する処理を実行する、ようにも構成される。デバイスは、入力を表すデータを格納するように構成されたメモリを有してもよい。
【００１３】
他の態様において、技術は、入力を表すデータを処理する方法であって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定することと、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信することと、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理することと、動作を実行するために、識別された意図に関連する処理を実行することと、を備える方法を対象とする。
【００１４】
他の態様において、技術は、入力を表すデータを処理するデバイスであって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定する手段と、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信する手段と、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理する手段と、動作を実行するために、識別された意図に関連する処理を実行する手段と、を備えるデバイスを対象とする。
【００１５】
他の態様において、技術は、実行のときに、一つ以上のプロセッサによって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定し、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信し、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理し、動作を実行するために、識別された意図に関連する処理を実行する、命令を格納したコンピュータ可読媒体を対象とする。
【００１６】
他の態様において、技術は、入力を表すデータを処理するように構成されたシステムであって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定するように構成された一つ以上のプロセッサを備えるホスト装置と、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信し、入力を表すデータをホスト装置に出力する、ように構成された一つ以上のプロセッサを備えるクライアント装置と、を備えるシステムを対象とする。ホスト装置の一つ以上のプロセッサは、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理し、動作を実行するために、識別された意図に関連する処理を実行する、ように更に構成される。
【００１７】
技術の一つ以上の態様の詳細を、添付図面及び明細書において説明する。これらの技術の他の特徴、目的及び利点は、明細書、図面及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１８】
【図１】本開示に記載された技術の種々の態様を実行することができるシステムを示すブロック図である。
【図２】図１に示すホスト装置の実行プラットフォームにより実行される複数の互いに異なるアプリケーションを有するホスト装置のインタフェース装置によって示される一例のインタフェースを示す図である。
【図３Ａ】本開示に記載されたＣＮＬＰ技術の種々の態様による図２に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図１に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
【図３Ｂ】本開示に記載されたＣＮＬＰ技術の種々の態様による図２に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図１に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
【図３Ｃ】本開示に記載されたＣＮＬＰ技術の種々の態様による図２に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図１に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
【図３Ｄ】本開示に記載されたＣＮＬＰ技術の種々の態様による図２に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図１に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
【図３Ｅ】本開示に記載されたＣＮＬＰ技術の種々の態様による図２に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図１に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
【図３Ｆ】本開示に記載されたＣＮＬＰ技術の種々の態様による図２に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図１に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
【図３Ｇ】本開示に記載されたＣＮＬＰ技術の種々の態様による図２に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図１に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
【図３Ｈ】本開示に記載されたＣＮＬＰ技術の種々の態様による図２に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図１に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
【図４】本開示に記載された技術の種々の態様による図１の例に示す言語サーフェスを示すのに用いられるデータ構造を示すブロック図である。
【図５】図１の例に示すデバイスの例の構成要素を示すブロック図である。
【図６】本開示に記載された技術の種々の態様を実行する際の図１のホスト装置の例の動作を示すフローチャートである。
【発明を実施するための形態】
【００１９】
図１は、制限自然言語処理（ＣＮＬＰ）についての本開示に記載された技術の種々の態様を実行することができるシステム１０を示すブロック図である。図１の例に示すように、システム１０は、ホスト装置１２及びクライアント装置１４を有する。図１の例において、二つのデバイス、すなわち、ホスト装置１２及びクライアント装置１４を有するものとして示すが、システム１０は、ホスト装置１２とクライアント装置１４の両方についての後に説明する機能を包含する単一のデバイス、又は、ホスト装置１２の一つ以上によってホストされる相互のデータベースを共有する一つ以上のホスト装置１２とそれぞれがやり取りを行う複数のクライアント１４を有してもよい。
【００２０】
ホスト装置１２は、少数の例を提供するためのハンドセット（又は携帯電話）、タブレットコンピュータ、いわゆるスマートフォン、デスクトップコンピュータ及びラップトップコンピュータを含む本開示に記載された技術を実現することができる任意の形態のコンピュータデバイスを表してもよい。同様に、クライアント装置１４は、少数の例を提供するためのハンドセット（又は携帯電話）、タブレットコンピュータ、いわゆるスマートフォン、デスクトップコンピュータ、ラップトップコンピュータ、いわゆるスマートスピーカ、いわゆるスマートヘッドホン及びいわゆるスマートテレビジョンを含む本開示に記載された技術を実現することができる任意の形態のコンピュータデバイスを表してもよい。
【００２１】
図１の例に示すように、ホスト装置１２は、サーバ２８と、ＣＮＬＰ装置２２と、一つ以上の実行プラットフォーム２４と、データベース２６と、を有する。サーバ２８は、対話の状況（ｃｏｎｖｅｒｓａｔｉｏｎａｌ  ｃｏｎｔｅｘｔ）を維持するとともにＣＮＬＰ装置２２と実行プラットフォーム２４の間のデータのルーティングを調整するように構成された装置を表してもよい。
【００２２】
サーバ２８は、入力を表すデータ１９を引き出す及び／又は結果２５を提示するためにホスト装置１２がクライアント装置１４に一つ以上のインタフェース２１を提供することができる装置を表してもよいインタフェース装置２０を有してもよい。データ１９は、音声入力、テキスト入力、（例えば、テキストを表す又はテキストになることができる）画像入力又はホスト装置１２との対話を促進することができる他の任意のタイプの入力を表してもよい。インタフェース装置２０は、グラフィカルユーザインタフェース（ＧＵＩ）、コマンドラインインタフェース（ＣＬＩ）又はユーザ１６にデータを提示又は供給する他に任意のインタフェースを含む種々のインタフェース２１を生成又は出力してもよい。インタフェース装置２０は、一例として、入力（すなわち、チャットサーバの例に関連するテキスト入力）を表すデータ１９を入力するためにユーザ１６がやりとりを行うことができるＧＵＩの形態のチャットインターフェース２１を出力してもよい。サーバ２８は、データ１９をＣＮＬＰ装置２２に出力してもよい（又はＣＮＬＰ装置２２を呼び出すとともに呼出しを介してデータ１９を渡してもよい）。
【００２３】
ＣＮＬＰ装置２２は、本開示で説明するようなＣＮＬＰ技術の種々の態様を実行するように構成された装置を表してもよい。ＣＮＬＰ装置２２は、複数の相互接続された言語サブサーフェス（「ＳＳ」と示す）１８Ａ−１８Ｇ（「ＳＳ１８］）を維持してもよい。言語サブサーフェス１８は、集合的に言語を表してもよく、同時に、言語サブサーフェス１８の各々は、言語の（互いに異なる部分又は重複する部分であってもよい）部分を提供してもよい。各部分は、入力を表すデータ１９を入力するためにユーザ１６がやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定してもよい。ＣＮＬＰ装置２２は、後に詳しく説明するように、一つ以上の意図２３を識別するために言語サブサーフェス１８及びデータ１９に基づいてＣＮＬＰを実行してもよい。ＣＮＬＰ装置２２は、意図２３をサーバ２８に出力してもよく、サーバ２８は、意図２３に関連する実行プラットフォーム２４のうちの一つを呼び出し、処理のために意図２３を実行プラットフォーム２４のうちの一つに渡してもよい。
【００２４】
実行プラットフォーム２４は、識別された意図２３に関連する種々の処理を実行するように構成された一つ以上のプラットフォームを表してもよい。図１の例において、プロセスはそれぞれデータベース２６に関連する動作の互いに異なるセットを実行してもよい。一部の例において、実行プラットフォーム２４はそれぞれセールスデータ分析、健康データ分析又はローンデータ分析の互いに異なるカテゴリーのような互いに異なるカテゴリー、機械学習の形態等に対応する処理を有してもよい。一部の例において、実行プラットフォーム２４は、複雑な処理を経るとともにチャート、グラフ等による表示を行うためにデータベース２６に格納されたデータの種々の互いに異なる組合せを可能にする一般データ分析を実行してもよい。実行プラットフォーム２４は、実行プラットフォーム２４がサーバ２８に戻してもよい結果２５を取得するために意図２３を処理してもよい。インタフェース装置２０は、結果２５を提示するＧＵＩ２１を生成してもよく、ＧＵＩ２１は、クライアント装置１４に送信される。
【００２５】
これに関連して、実行プラットフォーム２４は、一般的には、データベース２６に格納された基本的なデータの分析を実行するためにアプリケーションをサポートする互いに異なるプラットフォームを表してもよく、プラットフォームは、データの収集の展開（ｅｖｏｌｖｉｎｇ  ｃｏｌｌｅｃｔｉｏｎ）及び分析に対応するために又は他のタスク／意図を処理するために拡張可能なアプリケーション開発を提供してもよい。例えば、実行プラットフォーム２４は、（ＰｏｓｔｇｒｅＳＱＬ（登録商標）とも称されるとともにデータロード及び操作を実行するリレーショナルデータベースの一例を表す）Ｐｏｓｔｇｒｅｓ、（特殊化した（Ｓｐｅｃｉａｌｉｚｅｄ）機械学習エンジンで機械学習行うことができる）ＴｅｎｓｏｒＦｌｏｗ（登録商標）及び（一般的にクラウドと称される複数のマシンを利用することがよくある大規模データ分析タスクを実行する）アマゾンウェブサービス（ＡＷＳ）のようなプラットフォームを含んでもよい。
【００２６】
クライアント装置１４は、（「チャットクライアント３０」と称されるチャットボットインタフェースに関連してもよい）クライアント３０を有してもよい。クライアント３０は、インタフェース２１を表すとともにデータ１９を入力することができるように構成された装置を表してもよい。クライアント３０は、専用のサードパーティアプリケーションとして、ファーストパーティアプリケーションとして又はクライアント装置１４の（図１に示さない）オペレーティングシステムの内蔵コンポーネントとしてブラウザとの関連で実行してもよい。
【００２７】
自然言語処理に戻ると、他の形態の自然言語処理に比べてバランスのとれた形態の自然言語処理を実行してもよい。自然言語処理は、クライアント装置１４との会話のやりとりを介して提供される（説明を簡単にするために「入力１９」とも称される）入力を表すデータ１９を処理することがホスト装置１２によって試みられる処理を意味してもよい。ホスト装置１２は、ユーザ１６に種々の入力１９を動的に促してもよい、明確にするための質問を行ってもよい、関連質問を行ってもよい、又は、入力１９を引き出すために対話によるユーザとのやりとりを行ってもよい。ユーザ１６は、同様に、文章又は断片としての入力１９を入力しもよく、これによって、（「タスク２３」と称することもできる）一つ以上の意図２３を識別するためにホスト装置１２とのシミュレートされた対話を確立する。
【００２８】
ホスト装置１２は、対話を提示する種々のインタフェース２１を提供してもよい。一例のインタフェースは、更なる会話調を確立するために性格、声、好み、気質等を含む人間性をまねることを試みるように構成されることがあるいわゆる「チャットボット」として機能してもよく、これによって、ユーザとのやりとりを促進し、入力を更に自然に受信する。チャットボットの例は、（会議のスケジューリング、ホテルの予約及び食糧配給のスケジュールのような）支援に専念するタスクのセットに重点を置いたチャットボットのサブセットである（「仮想アシスタント」と称することもできる）「デジタルアシスタント」を含む。
【００２９】
意図２３を識別するために入力１９を解析するのに用いられる複数の互いに異なる言語処理アルゴリズムが存在し、その一部は、機械学習に依存する。しかしながら、自然言語は、正確なフォーマットに従わないことがよくあり、種々のユーザは、同一の一般的な意図２３となる入力を表現する僅かに異なる方法を有し、その結果、機械学習に依存する自然言語アルゴリズムを含む多数の自然言語アルゴリズムが具体的に対処するようにプログラムされない（又は機械言語との関連でトレーニングされない）いわゆる「エッジケース」が生じる。自然言語処理に基づく機械学習は、予測可能性及び精度より自然らしさを評価することがあり、これによって、言語のトレーニングされた自然らしさが言語のユーザの認識する自然らしさと異なるときにエッジケースに更に頻繁に遭遇する。そのようなエッジケースは、システムによって識別することができ、理解又は処理できないものとして報告され、ユーザをいらだたせることがある。それに対し、システムがユーザの意図を不正確に理解したまま処理して不所望な又は誤解を招くおそれがある動作又は結果が生じることもある。
【００３０】
意図２３を識別するために入力１９を解析するのに用いられる他のタイプの自然言語処理アルゴリズムは、キーワードに依存する。自然言語処理アルゴリズムに基づくキーワードが正確であるとともに予測可能であるが、自然言語処理に基づくキーワードは、互いの異なる意図２３を説明する際にニュアンスをほとんど提供しないという点で正確でない。
【００３１】
換言すれば、種々の自然言語処理アルゴリズムは、二つの部類に含まれる。第１の部類において、自然言語処理のアルゴリズムに基づく機械学習は、ディープニューラルネットワーク及びサポートベクトルマシンのような統計的な機械学習処理に依存する。これらの機械学習処理の両方は、ユーザの発話のニュアンスを理解する能力が制限されることに悩まされることがある。さらに、アルゴリズムに基づく機械学習が同一の意図に対する様々な自然な発話を可能にするとしても、そのようなアルゴリズムに基づく機械学習は、予測不可能であることがよくあり、開発者及びユーザが理解するのに困難となるように一連の見解で互いに異なるように同一の発話を解釈する。第２の部類において、自然言語処理に対するアルゴリズムに基づく簡単なキーワードは、ユーザの発話をキーワードの所定のセットに照合するとともに関連の意図を検索してもよい。
【００３２】
本開示に記載された技術によれば、ＣＮＬＰ装置２２は、正確性、精度及び予測可能性とのバランスをとりながら（一例として、「発話」と称してもよい自然言語ステートメントを有してもよい）入力１９を解析してもよい。ＣＮＬＰ装置２２は、（サブサーフェス１８の集合又は「言語」を意味する他の方法である）内在する言語サーフェスを実現する際に種々の設計決定によってバランスをとってもよい。言語サブサーフェス１８は、サーバ２８がユーザ１６の意図を解析（更に擬人化された用語では、「理解」）できる潜在的なユーザの発話のセットを表してもよい。
【００３３】
設計決定は、正確性（例えば、サーバ２８が発話を正確に解釈することができる頻度）、精度（例えば、ユーザ１６の意図を表現する際に発話にニュアンスを付加する程度）及び自然らしさ（例えば、ユーザ１６の同一の意図にマッピングする発話の種々の言葉遣いが多様になることができる程度）を含む競合する優先度の間のトレードオフのネゴシエーションを行ってもよい。ＣＮＬＰ技術によって、ＣＮＬＰ装置２２が曖昧さを残さずに（「発話」と称してもよい）入力１９を解析することができ、これによって、（制限による）正確な自然言語発話１９の予測可能かつ正確な解釈を潜在的に保証する。
【００３４】
動作中、ＣＮＬＰ装置２２は、潜在的には言語サブサーフェス１８のうちの選択したもののみを露出するような制限される方法で言語サブサーフェス１８のうちの選択したものを最初のユーザ（ユーザ１６は説明のためのものであるとみなす。）に露出してもよい。
【００３５】
ＣＮＬＰ装置２２は、露出した言語サブサーフェスによって提供される言語の部分に一致する入力１９を、インタフェース装置２０を介して受信し、言語に関連する複数の意図２３からユーザ１６の意図２３を識別するために入力１９を処理してもよい。すなわち、サーバ２８のサポートの際にＣＮＬＰ装置２２を設計するときに、設計者は、サーバ２８が（ＣＮＬＰ装置２２を介した入力１９のサポートに関連して）サポートする意図２３のセットを選択してもよい。
【００３６】
さらに、ＣＮＬＰ装置２２は、一つ以上のエンティティをサポートすることによって意図２３の各々に関する精度をオプションで増大してもよい。説明のために、会議のスケジュールに関連する時間及び／又は会場の意図、（必要な場合の）会議のスケジュールの各々の繰り返しの頻度の意図及び（必要な場合の）スケジュールする会議の参加者の意図のようなエンティティを有することがある会議のスケジュールの意図を考察する。ＣＮＬＰ装置２２は、発話１９が意図２３のセットのうちの所定のものに属することを識別した後に発話１９に生じたあらゆるエンティティを抽出するための解釈の処理を実行してもよい。
【００３７】
ＣＮＬＰ装置２２は、言語１８によって提供された意図２３の各々を一つ以上のパターンに関連付けてもよい。ＣＮＬＰ装置２２によってサポートされる各パターンは、以下の構成のうちの一つ以上を有してもよい。
ａ）この意図に属するものとして解析するために発話に存在してもよい識別子の非空集合。各識別子を、存在が識別子の存在と同等に取り扱われる一つ以上の同義語に関連付けてもよい。
ｂ）位置エンティティの任意のセット。この場合、ＣＮＬＰ装置２２は、発話における識別子に対して位置エンティティがどこに発生するかに基づいて位置エンティティを解析する。
ｃ）各々がキーワード（及びありうる場合のキーワードの同義語）に関連付けられるキーワードエンティティの任意のセット。これらのキーワードエンティティは、発話にあらゆる箇所で互いに関連して生じる。キーワードエンティティは、キーワードの位置の代わりに発話の（前又は後に）隣接する関連のキーワードの発生に基づいて解析される。
ｄ）（“ｆｏｒ  ｅａｃｈ”のような語句を有してもよい）一つ以上の前置詞に関連付けられた前置詞句エンティティの任意のセット。前置詞句エンティティを、対応する前置詞句の発生に基づいて解析してもよい。
ｅ）“ｔｈｅ”、“ａ”のような自然言語で通常生じる又は発話の解釈にほとんど有用性がない単語を意味する無視される単語のセット。
ｆ）それぞれが各エンティティに任意に関連付けられるプロンプト。エンティティの説明と、ユーザ１６に問い合わせるとともにエンティティに対する値が発話から解析されないときに値を導き出すためにＣＮＬＰ装置２２が用いてもよいステートメントとの両方を提供する。
ｇ）識別子及びエンティティがパターンに生じることがある相対的順序を説明するパターンステートメント。
【００３８】
一例として、会議（ｍｅｅｔｉｎｇ）をスケジューリング（ｓｃｈｅｄｕｌｅ）するために、ＣＮＬＰ装置２２が次のようにパターンを特定することがあることを考察する。識別子は、“ｓｃｈｅｄｕｌｅ”及び“ｍｅｅｔｉｎｇ”であってもよく、この場合、単語“ｍｅｅｔｉｎｇ”は、同義語“ａｐｐｏｉｎｔｍｅｎｔ”を有してもよい。ＣＮＬＰ装置２２は、形態“ｓｃｈｅｄｕｌｅ  ａ  ｄａｉｌｙ  ｍｅｅｔｉｎｇ”又は“ｓｃｈｅｄｕｌｅ  ａ ｗｅｅｋｌｙ  ａｐｐｏｉｎｔｍｅｎｔ”に生じる入力１９からの潜在的なエントリとしてｍｅｅｔｉｎｇ  ｆｒｅｑｕｅｎｃｙを取得してもよい。代わりに、そのようなステートメントを、“ｓｃｈｅｄｕｌｅ  ａ  ｄａｉｌｙ  ｍｅｅｔｉｎｇ”又は“ｓｃｈｅｄｕｌｅ  ａ ｗｅｅｋｌｙ  ａｐｐｏｉｎｔｍｅｎｔ”にあるような（キーワード“ｆｒｅｑｕｅｎｃｙ”のような）キーワードエンティティとして取得してもよい。ＣＮＬＰ装置２２は、“Ｉ  ｗａｎｔ  ｔｏ  ｓｃｈｅｄｕｌｅ  ｔｈｅ  ｍｅｅｔｉｎｇ  ａｔ  ５  ＰＭ”又は“ｓｃｈｅｄｕｌｅ  ａｎ  ａｐｐｏｉｎｔｍｅｎｔ  ａｔ  ｎｏｏｎ”におけるような前置詞“ａｔ”を用いるタイミングを解析するために前置詞句を用いてもよい。
【００３９】
上記の例は、解析のときに“ａ”、“ａｎ”、“ｔｈｅ”、“Ｉ”、“ｗａｎｔ”、“ｔｏ”などを含むことを無視するようにＣＮＬＰ装置２２をプログラムしてもよい複数の単語を含んだ。タイミングエンティティは、“Ａｔ  ｗｈａｔ  ｔｉｍｅ  ｗｏｕｌｄ  ｙｏｕ  ｌｉｋｅ  ｔｏ  ｈａｖｅ  ｔｈｅ  ｍｅｅｔｉｎｇ？”のようなプロンプトも含んでもよく、この場合、サーバ２８は、発話１９のタイミングを指定しなかったか否かについてのユーザ１６に対する質問を開始してもよい。パターンステートメントは、このパターンが“ｍｅｅｔｉｎｇ”の前に生じる識別子“ｓｃｈｅｄｕｌｅ” （又はその同義語"ａｐｐｏｉｎｔｍｅｎｔ“）を必要とすること及び他の全てのエンティティを記述してもよい。
【００４０】
したがって、ＣＮＬＰ装置２２は、言語１８に関連する複数のパターンからパターンを識別してもよく、複数のパターンの各々は、複数の意図２３のうちの互いに異なるものに関連する。この場合、ＣＮＬＰ装置２２は、識別されたパターンに基づいて、言語の部分に関連する複数の意図からユーザ１６の意図２３を識別してもよい。
【００４１】
パターンは、上述したように、識別子を有してもよい。パターンを識別するために、ＣＮＬＰ装置２２は、識別子を識別するために入力１９を解析した後に識別子に基づいてパターンを識別してもよい。パターンは、識別子と位置エンティティの両方を有してもよい。これらの例において、ＣＮＬＰ装置２２は、位置エンティティを識別するために入力１９を解析するとともに識別子及び位置エンティティに基づいてパターンを識別してもよい。
【００４２】
追加的には、パターンは、上述したように、キーワードを有してもよい。ＣＮＬＰ装置２２は、キーワードを識別するために入力１９を解析した後にキーワードに基づいてパターンを後の例で説明するように識別してもよい。
【００４３】
パターンは、上述したように、エンティティを有してもよい。パターンがエンティティを有するとき、ＣＮＬＰ装置２２は、入力１９がパターンに対応するがエンティティを有さないことを決定してもよい。ＣＮＬＰ装置２２は、入力を表すデータがパターンに対応するがエンティティを有さないことを決定したことに応答して、エンティティを特定する追加入力を表すデータを要求するプロンプトを出力するためにインタフェース装置２０とやりとりを行ってもよい。ユーザ１６は、エンティティを指定する（とともに表現を簡単にするために「追加入力１９」と称してもよい）追加入力を表すデータ１９を入力してもよい。インタフェース装置２０は、追加入力１９を受信するとともに追加入力１９をＣＮＬＰ装置２２に渡してもよく、ＣＮＬＰ装置２２は、入力１９及び追加入力１９に基づいてパターンを識別してもよい。
【００４４】
以下は、種々のデータ探索の種々のパターン及び分析タスクに関連して制限解析がどのようにして生じるかについての複数の例を示す。‘ｌｏａｄ＿ｄａｔａ＿ｆｒｏｍ＿ｆｉｌｅ’と称する第１の例のパターンは、以下のようにファイルからデータをロードするインテントの記述（ｓｐｅｃｉｆｉｃａｔｉｏｎ）を示す。
【数１】
2021528761.tif 000003
【００４５】
上記の例において、パターンステートメント’ＬＯＡＤ  ｄａｔａ  ｆｒｏｍ  ｆｉｌｅ  ＜ｆｉｌｅｎａｍｅ＞’は、識別子ＬＯＡＤを特定する。あらゆるユーザの発話は、単語ｌｏａｄ又はその同義語ｕｐｌｏａｄを有してもよい又はこの意図２３を表現するためにインポートしてもよい。識別子は、パターンステートメントにおいて全て大文字で示される。
【００４６】
上記のように、ＣＮＬＰ装置２２は、指定された一つのエンティティ＜ｆｉｌｅｎａｍｅ＞を識別してもよい。エンティティは、パターンステートメントの各括弧で指定される。ｆｉｌｅｎａｍｅは、ｌｏａｄのキーワードの後に生じる必要がある位置エンティティとして特定される。ＣＮＬＰ装置２２は、特定の文字を含むファイル名を読み出すことができるパーサと称してもよいＦｉｌｅｎａｍｅ（）パーサを用いてｆｉｌｅｎａｍｅの位置エンティティの値を解析してもよい。Ｆｉｌｅｎａｍｅパーサは、その名称を有するファイルがシステムに存在するか否かを検証してもよい。
【００４７】
単語“ｄａｔａ”、“ｆｒｏｍ”、“ｆｉｌｅ”及び“ｄａｔａｓｅｔ”は、自然な発話で意図を表現するのに有用であるが、ＣＮＬＰ装置２２が情報の有用な態様（換言すれば、ファイル及びファイル名エンティティをロードする意図）を解析するのに必要でない。したがって、ＣＮＬＰ装置２２は、上記単語を無視してもよい。
【００４８】
上記の例の実現において、ＣＮＬＰ装置２２は、パターンステートメントに生じる識別子及びエンティティ以外の全ての単語を無視してもよい。ＣＮＬＰ装置２２は、ａｄｄｎｌ＿ｉｇｎｏｒｅフィールドを用いて指定される追加の単語を無視してもよい。ＣＮＬＰ装置２２は、この実現において少数の他の共通の英単語を無視してもよい。
【００４９】
上記例によれば、“Ｌｏａｄ  ｍｙｆｉｌｅ.ｃｓｖ”を表現する発話１９、“Ｉｍｐｏｒｔ  ｄａｔａ  ｆｒｏｍ  ｔｈｅ  ｆｉｌｅ  ｍｙｆｉｌｅ.ｃｓｖ”を表現する発話１９及び“Ｕｐｌｏａｄ  ｔｈｅ  ｄａｔａｓｅｔ  ｍｙｆｉｌｅ.ｃｓｖ” を表現する発話１９は全て同一の意図を表現する。
【００５０】
以下に示す第２の例は、データセットのデータ列から“ｄａｙ”、“ｍｏｎｔｈ”及び“ｙｅａｒ”のようなｐａｒｔｓを抽出する意図２３に対応するパターン“ｅｘｔｒａｃｔ＿ｄａｔｅ＿ｐａｒｔｓ”を示す。
【数２】
2021528761.tif 000004
【００５１】
上記パターンステートメントは、二つの識別子ＥＸＴＲＡＣＴ及びＦＲＯＭを指定する。単語ｆｒｏｍが以前の例のパターンで無視されたが第２の例のパターンにおいてＦＲＯＭを識別子として識別するようにＣＮＬＰ装置２２が構成されることに留意されたい。
【００５２】
第２のパターンは、三つのエンティティを有する。ｄａｔｅ＿ｐａｒｔｓエンティティを、ユーザがデータ列から抽出することを所望する部分のリストとすることができる。ｄａｔｅ＿ｐａｒｔｓエンティティが位置エンティティとして特定されるので、ｄａｔｅ＿ｐａｒｔｓエンティティは、発話１９のｅｘｔｒａｃｔ識別子とｆｒｏｍ識別子の間に生じることがある。ユーザが抽出することを所望するｄａｔｅ  ｐａｒｔｓを、上記第２の例で指定されるリスト“ｄａｙ”、“ｍｏｎｔｈ”、“ｙｅａｒ”等のリストから取り出すことができる。ＣＮＬＰ装置２２は、他の任意の値がリストで指定されたときにユーザ１６にプロンプトを出してもよい。
【００５３】
上記第２の例の列エンティティは、位置的なものであってもよく、データベース２６のうちの対応するものに記憶された既存のデータセットの一部の列の名称である値を有してもよい。この値を読み出すためにＣＮＬＰ装置２２によって呼び出されるＣｏｌｕｍｎパーサ関数（すなわち、上記例のＣｏｌｕｍｎ（））は、データベース２６のうちの対応するものに記憶されたどのデータセットにユーザ１６がアクセスすることを意図しているか、データベース２６のうちの対応するものに記憶されたどのデータセットについてユーザ１６がユーザ１６によって指定した名称のｔｙｐｏｓを訂正する意図があるか等を識別してもよい。
【００５４】
ユーザ１６は、データ列から抽出したデータパーツを有する新しい行の名称のリストを指定するためにｎａｍｅｓ＿ｌｉｓｔエンティティを用いてもよい。ｎａｍｅｓ＿ｌｉｓｔエンティティは、ユーザ１６がキーワード“ｎａｍｅｓ”又は“ｃａｌｌｉｎｇ”を指定するときにのみ指定されるキーワードエンティティである。
【００５５】
ＣＮＬＰ装置２２は、“Ｅｘｔｒａｃｔ  ｄａｙ,  ｍｏｎｔｈ  ａｎｄ  ｙｅａｒ  ｆｒｏｍ  ＢｉｒｔｈＤａｔｅ”及び“Ｅｘｔｒａｃｔ  ｍｏｎｔｈ  ａｎｄ  ｙｅａｒ  ｆｒｏｍ  ＢｉｒｔｈＤａｔｅ,  ｃａｌｌｉｎｇ  ｔｈｅｍ  ＢｉｒｔｈＭｏｎｔｈ,  ＢｉｒｔｈＹｅａｒ”を含むパターンを用いて有効な発話を解析してもよい。
【００５６】
以下に示す第３の例は、バブルチャートの形態でデータセットを可視化する意図２３に対応するパターン“ｐｌｏｔ＿ｂｕｂｂｌｅ＿ｃｈａｒｔ”を提供する。
【数３】
2021528761.tif 000005
【００５７】
上に示す第３のパターンステートメントは、識別子ＰＬＯＴ、識別子ＢＵＢＢＬＥ及び識別子ＣＨＡＲＴを指定する。ＰＬＯＴ及びＣＨＡＲＴの両方はそれぞれ二つの同義語を有する。
【００５８】
この第３のパターンは、ＣＨＡＲＴのｘ−ａｘｉｓ及びｙ−ａｘｉｓ並びにＢＵＢＢＬＥのｓｉｚｅ及びｃｏｌｏｒに用いられる列を特定する四つのキーワードエンティティを有する。以前の例のように、ＣＮＬＰ装置２２は、列名を読み出すためにＣｏｌｕｍｎパーサを呼び出し、誤記（“ｔｙｐｏｓ”）を訂正する。
【００５９】
このパターンの一例の発話は、“Ｐｌｏｔ  ａ  ｂｕｂｂｌｅ  ｃｈａｒｔ  ｗｉｔｈ  ｘ−ａｘｉｓ  Ｙｅａｒ,  ｙ−ａｘｉｓ  Ｐｏｐｕｌａｔｉｏｎ  ｕｓｉｎｇ  ｂｕｂｂｌｅ  ｃｏｌｏｒ  Ｃｏｎｔｉｎｅｎｔ  ａｎｄ  ｓｉｚｅ  ｏｆ  ｔｈｅ  ｂｕｂｂｌｅ  ＧＤＰ”である。
【００６０】
以下に示す第４の例は、ｃｈａｒｔのｌｅｇｅｎｄの位置を変更する意図２３に対応するパターン“ｍｏｖｅ＿ｌｅｇｅｎｄ”を提供する。
【数４】
2021528761.tif 000006
【００６１】
上記において、ここで導入される“ｏｎｌｙ＿ａｆｔｅｒ”フィールドは、ｃｈａｒｔをプロットした後にのみフィールドがｌｅｇｅｎｄを移動させる意味があることを特定する。したがって、ユーザ１６は、特定した意図２３のうちの一つを呼び出した後にのみ意図２３を呼び出してもよい。
【００６２】
第５の例において、融資のローン分析のドメインに特有のパターン“ｓｈｏｗ＿ｌｏａｎｓ”を提供する。
【数５】
2021528761.tif 000007
【００６３】
第５のパターンは、“Ｓｈｏｗ  ｍｅ  ｔｈｅ  ｌｏａｎｓ  ａｐｐｒｏｖｅｄ  ｉｎ  ２０１６”及び“Ｓｈｏｗ  ｍｅ  ｔｈｅ  ｌｏａｎｓ  ａｐｐｒｏｖｅｄ  ｉｎ  ２０１８  ｉｎ  ｔｈｅ  ｓｔａｔｅ  ｏf  Ｗｉｓｃｏｎｓｉｎ”のような発話１９を認めてもよい。
【００６４】
第５のパターンは、特定のドメインがＣＬＮＰ装置２２によって理解されるように言語サーフェスをカスタマイズできる方法を示す。一部の例において、上述した意図２３の基本的な実現は、ｔａｂｌｅｓ、ｒｏｗｓ、ｃｏｌｕｍｎｓなどの言語を用いてもよいｆｉｌｔｅｒ＿ｄａｔａのようなより包括的な意図を用いてもよい。
【００６５】
ＣＮＬＰ装置２２は、互いに異なる意図２３を識別するために上述したパターンパーサを実行させるプラットフォームを提供してもよい。ＣＮＬＰ装置２２によって提供されるプラットフォームは、パターンパーサの開発、改良、追加又は除去が可能となるように拡張可能である。ＣＮＬＰ装置２２は、上述したように、種々のエンティティを抽出するためにパターンパーサに組み込まれたエンティティパーサを利用してもよい。種々のエンティティが入力１９において指定されないとき、ＣＮＬＰ装置２２は、上記例についてパターンパーサに組み込まれたプロンプトを呼び出してもよい。ＣＮＬＰ装置２２は、プロンプトの出力に応答して、指定されていないエンティティを特定する追加入力１９を受信してもよく、これによって、意図２３に関連することがあるパターンを識別するために入力１９を解析する。
【００６６】
このようにして、ＣＮＬＰ装置２２は、意図２３を識別するために種々の入力１９を解析してもよい。ＣＮＬＰ装置２２は、意図２３をサーバ２８に供給してもよく、サーバ２８は、実行プラットフォーム２４のうちの一つ以上を呼び出し、パターン及び関連のエンティティ、キーワード等の形態で実行プラットフォーム２４に意図２３を渡す。実行プラットフォーム２４のうちの呼び出されたものは、データベース２６のうちの対応するものについての動作を実行して結果を取得するために意図２３に関連する処理を実行してもよい。実行プラットフォーム２４のうちの呼び出されたものは、（動作の実行の）結果２５をサーバ２８に供給してもよく、サーバ２８は、結果２５を、インタフェース２１を介して、入力１９を入力するためにホスト装置１２とやりとりを行うクライアント装置１４に供給してもよい。
【００６７】
（その例を上述した）各パターンに、現在のユーザセッションの現段階でパターンがユーザに露出されたか否かを識別することができる関数（すなわち、手順）を関連付けてもよい。例えば、上記第３の例で説明した“ｐｌｏｔ＿ｂｕｂｂｌｅ＿ｃｈａｒｔ”パターンを、（可能な場合には、上記第１の例で説明した“ｌｏａｄ_ｄａｔａ＿ｆｒｏｍ＿ｆｉｌｅ”パターン又は同様に機能するがデータをファイルの代わりにデータベースからロードする“ｌｏａｄ＿ｄａｔａ＿ｆｒｏｍ＿ｄａｔａｂａｓｅ”を用いて）ユーザによって以前にロードされた少なくとも一つのデータセットが存在するか否かを判断する手順に関連付けてもよい。そのような手順をシステムの（“ｐｌｏｔ＿ｈｉｓｔｏｇｒａｍ”、“ｐｌｏｔ＿ｌｉｎｅ＿ｃｈａｒｔ”等のような）各データ可視化パターンに関連付けるとき、データ可視化パターンを、言語サーフェスの形成として概念化してもよい。
【００６８】
これらのパターンが（他の言語サブサーフェスを形成する）パターンをロードするデータのうちの一つを用いるときにのみ露出されるので、ＣＮＬＰ装置２２は、言語サブサーフェスを互いに効率的にリンクしてもよい。ユーザが上記要件に適合した後にしかデータ可視化言語サブサーフェスに属する発話を実行することしかできないので、関心のあるタスクを実行する際のいわゆる「思考過程」に関連する構造がユーザに提供され、これによって、ユーザは、（自然に）段階的にシステムの能力を発見することができ、発見プロセス中の認知的負荷を減少させる。
【００６９】
したがって、ＣＮＬＰ装置２２は、いわゆる「デジタルアシスタント」又は「チャットボット」のような自然言語インタフェースに従ってユーザ１６とやりとりを行うホスト装置１２の更に良い動作を促進することができる。複数の異なる意味を解釈することがある曖昧な入力を処理することを試みる処理サイクルを消費するのではなく、入力によってユーザが意図した正確な意味を解明するための補足質問を提示することによって、ＣＮＬＰ装置２２は、利用できる言語を一つ以上のサブサーフェス１８に制限することによって入力１９を更に有効に処理することができる。処理サイクルを減少させることによって、ホスト装置１２の動作が向上し、消費電力が低減し、更に少ない状態が生成されてメモリ消費が減少するとともに更に狭いメモリ帯域幅が利用され（その両方によって電力消費が更に減少する。）、更なる処理帯域幅が他の処理のために保持される。
【００７０】
ＣＮＬＰ装置２２は、オートコンプリートプロンプト、質問又は動的な提案メカニズム（ｄｙｎａｍｉｃ  ｓｕｇｇｅｓｔｉｏｎ  ｍｅｃｈａｎｉｓｍ）を介して互いに異なる言語サブサーフェス１８を導入してもよく、これによって、追加の自然サブサーフェスを更に自然な（すなわち、対話式の）やり方でユーザに露出する。リンクされたサブサーフェスを介して生じる自然な調査（ｎａｔｕｒａｌ  ｅｘｐｌｏｒａｔｉｏｎ）は、ＣＮＬＰ技術によって用いられる言語の容認性及び自然な学習を促進し、ＣＮＬＰ技術が機能する言語の不十分な理解によるユーザの未経験が原因で一般的に生じるエッジケースに頻繁に出くわすことによるフラストレーションを回避することができる。この意味で、ＣＮＬＰ技術は、曖昧なエッジケースを回避する意図を表現する際の精度及び正確さを考慮するために言語の制限された曖昧な部分を利用するサブサーフェスをユーザに自然に露出することができるようにすることによって自然らしさ、精度及び正確さのバランスをとることができる。
【００７１】
例えば、データのロード及びクリーニング、種々のビジネス関連の質問に回答するためにデータのスライシング（ｓｌｉｃｉｎｇ）及びダイシング（ｄｉｃｉｎｇ）、パターンを認識するためのデータの可視化及び将来の傾向を予測するための機械学習の使用を含む種々の部類のデータ分析を実行するように設計されたチャットボットを考察する。ここで説明する技術を用いることによって、そのようなシステムの設計者は、ユーザが多様なタスクに対応する意図を表現することができる大きい言語サーフェスを指定することができ、同時に、発話を、システムによって曖昧に理解されることがある発話のみに制限し、これによって、エッジケースを回避する。さらに、オートコンプリートメカニズムを用いることによって、初心者ユーザでもシステムの他の全ての能力によって対応不可能となることなく実行したい特定のタスクに集中することができることを保証するように言語サーフェスを調整することができる。例えば、ユーザが、データを要約するチャートをプロットするために意図を表現することを開始すると、システムは、ユーザが選択することができる種々のチャート形態を提案することができる。ユーザがチャート形態（例えば、折れ線グラフ）を選択すると、システムは、軸、色及びユーザが設定することができる他のオプションを提案する。
【００７２】
システム設計者は、言語サブサーフェス（例えば、データローディングの発話、データ可視化の発話及び機械学習の発話）及びユーザに露出される条件を指定することができる。例えば、データ可視化サブサーフェスを、ユーザが一部のデータをシステムにロードしたときにのみ露出してもよく、機械学習サブサーフェスを、システム設計者が機械学習モデルの構築及び解釈の際の機微（ｓｕｂｔｌｅｔｉｅｓ）及び落とし穴（ｐｉｔｆａｌｌｓ）に気付いたことをユーザが認識したときにのみ機械学習サブサーフェスを露出してもよい。すなわち、自然言語の発話における詳細及び複雑さを徐々に明らかにするこのプロセスは、言語サブサーフェスの間とその内部の両方に拡張する。
【００７３】
総合すれば、ＣＮＬＰ技術を、多様なニーズ及び知識のレベルを有するユーザをサポートするために、多様な意図を高精度で潜在的にプログラムによって認識しながら（例えば、可能な場合にはトレーニング及び認知的負荷の制限をほとんど必要とすることなく）使いやすいユーザインタフェースを有するシステムを構築するのに用いることができる。したがって、これらの技術によって、困難又は不可能な能力と有用性の両立を実現する新たし五システム設計が可能になる。
【００７４】
図２は、実行プラットフォーム２４によって実行される複数の互いに異なるアプリケーション１００Ａ〜１００Ｆを有するホスト装置１２のインタフェース装置２０によって提示される一例のインタフェース２１Ａを示す図である。アプリケーション１００Ａは、データベース２６の一つ以上についてのデータ分析を実行するための一般的なチャットボットインタフェースを示す。アプリケーション１００Ｂは、データベース２６の一つ以上に格納されたローンデータを分析するためのローン分析アプリケーションを示す。アプリケーション１００Ｃは、データベース２６の一つ以上に格納されたセールスマネージャー生産性を分析するためのセールスマネージャー生産性アプリケーションを示す。アプリケーション１００Ｄは、データベース２６の一つ以上に格納された医療費データを分析するための医療費分析アプリケーションを示す。アプリケーション１００Ｅは、科学研究グループによって収集されるとともにデータベース２６の一つ以上に格納された互いに異なる蚊の種類の有病率（ｐｒｅｖａｌｅｎｃｅ）に関する実験データを分析するための科学データ分析アプリケーションを示す。アプリケーション１００Ｆは、データベース２６の一つ以上に格納されたデータに関する機械学習を実行するための機械学習アプリケーションを示す。
【００７５】
図３Ａ〜３Ｈは、本開示に記載されたＣＮＬＰ技術の種々の態様による図２に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図１に示すホスト装置のインタフェース装置によって示されるインタフェース２１Ｂ〜２１Ｈを示す図である。図３Ａの例において、インタフェース２１Ｂは、対話を表示するテキスト表示部２００と、結果２５を表示する結果表示部２０２と、を有する。テキスト表示部２００は、図３Ａに示すように、入力１９を入力するためにユーザ１６がやりとりを行うテキスト入力領域を有する。結果表示部２０２は、‘ＰＬＯＴ  ａ  ＢＵＢＢＬＥ ＣＨＡＲＴ’パターンに関連した意図を特定するために応答した結果２５を表示する。すなわち、結果表示部２０２は、図２に示すセールスマネージャー生産性アプリケーション１００Ｃに関連して商談所有者の勝敗率を示すバブルチャートを示す。
【００７６】
図３Ｂにおいて、インタフェース装置２０は、図３Ａのインタフェース２１Ｂに示す結果表示部２０２に示すバブルチャートのバブル２５０を選択するユーザ１６に応答したインタフェース２１Ｃを示す。バブル２５０の選択に応答して、サーバ２８は、“Ｊｅｎｎｉｆｅｒ  Ｋｅｌｌｅｒ”として識別された商談所有者に関連する結果２５を取得するために対応する実行プラットフォーム２４とやりとりを行ってもよい。インタフェース装置２０は、勝敗メトリック要素（ｍｅｔｒｉｃｓ  ｅｌｅｍｅｎｔ）２５２を有するインタフェース２１Ｃを生成又は取得し、インタフェース２１Ｃを、クライアント３０を介してユーザ１６に提供する。
【００７７】
図３Ｃの例において、インタフェース装置２０は、テキスト表示部２００のテキスト入力領域３００のテキスト”Ｓｈｏｗ”としての入力１９を入力するユーザ１６に応答してインタフェース２１Ｄを表示する。サーバ２８は、入力１９を受信し、テキスト表示領域２００に重ねられたオートコンプリート表示領域３０２に示すオートコンプリートエントリによって示される言語サブサーフェス１８のうちの一つを露出するようにオートコンプリート動作を自動的に実行するために入力１９を分析してもよい。図３Ｃの例に示さないが、サーバ２８は、言語サブサーフェス１８のうちの一つを露出する提案をしてもよく、提案は、オートコンプリートエントリに基づく入力１９がユーザ１６によって供給されない点で提案はオートコンプリートエントリと異なる（提案は、言語サブサーフェスのうちの露出したものに対応する言語の部分全体を露出してもよく、それに対し、オートコンプリートエントリは、入力１９に関連又は整合した言語の部分のサブセットしか示さなくてもよい。）。
【００７８】
図３Ｄの例において、インタフェース装置２０は、記録された対話領域３５０に示すように“Ｓｈｏｗ  ｍｅ  ｔｈｅ  ｒａｔｉｏ  ｏｆ  ｗｉｎｓ  ｔｏ  ｌｏｓｓｅｓ  ｆｏｒ  ｅａｃｈ  ｓｔａｔｅ”を指定する入力１９を入力するユーザ１６に応答してインタフェース２１Ｅを示す。“Ｓｈｏｗ  ｍｅ  ｔｈｅ  ｒａｔｉｏ  ｏｆ  ｗｉｎｓ  ｔｏ  ｌｏｓｓｅｓ  ｆｏｒ  ｅａｃｈ  ｓｔａｔｅ”を指定する入力１９を入力することに応答して、サーバ２８は、結果表示部２０２のテーブル３５２に表示される結果２５を取得するために対応する実行プラットフォーム２４とやりとりを行ってもよい。インタフェース装置２０は、テーブル３５２を有するインタフェース２１Ｅを生成又は取得してもよく、インタフェース２１Ｅを、クライアント３０を介してユーザ１６に供給する。
【００７９】
図３Ｅの例において、インタフェース装置２０は、記録された対話領域５００に示すように“Ｓｈｏｗ  ｍｅ  ｔｈｅ  ｒａｔｉｏ  ｏｆ  ｗｉｎｓ  ｔｏ  ｌｏｓｓｅｓ  ｉｎ  ｔｈｅ  ｙｅａｒ  ２０１７”を指定する入力１９を入力するユーザ１６に応答してインタフェース２１Ｆを示す。“Ｓｈｏｗ  ｍｅ  ｔｈｅ  ｒａｔｉｏ  ｏｆ  ｗｉｎｓ  ｔｏ  ｌｏｓｓｅｓ  ｉｎ  ｔｈｅ  ｙｅａｒ  ２０１７”を指定する入力１９を入力する入力することに応答して、サーバ２８は、結果表示部２０２のテーブル５０２に表示される結果２５を取得するために対応する実行プラットフォーム２４とやりとりを行ってもよい。インタフェース装置２０は、テーブル５０２を有するインタフェース２１Ｆを生成又は取得してもよく、インタフェース２１Ｆを、クライアント３０を介してユーザ１６に供給する。
【００８０】
図３Ｆの例において、インタフェース装置２０は、記録された対話領域５００に示すように“ｌｉｓｔ  ａｌｌ  ｄａｔａｓｅｔｓ”を指定する入力１９を入力するユーザ１６に応答してインタフェース２１Ｆを示す。“ｌｉｓｔ  ａｌｌ  ｄａｔａｓｅｔｓ”を指定する入力１９を入力する入力することに応答して、サーバ２８は、結果表示部２０２のテーブル５５２に表示される結果２５を取得するために対応する実行プラットフォーム２４とやりとりを行ってもよい。インタフェース装置２０は、テーブル５５２を有するインタフェース２１Ｇを生成又は取得してもよく、インタフェース２１Ｇを、クライアント３０を介してユーザ１６に供給する。
【００８１】
図３Ｇの例において、インタフェース装置２０は、記録された対話領域５００に示すように“ｌｏａｄ  ｄａｔａ  ｆｒｏｍ  ｔｈｅ  ｆｉｌｅ  ｎｐｉ.ｃｓｖ”を指定する入力１９を入力するユーザ１６に応答してインタフェース２１Ｆを示し、“ｌｏａｄ  ｄａｔａ  ｆｒｏｍ  ｔｈｅ  ｆｉｌｅ  ｎｐｉ.ｃｓｖ”は、上記で更に詳しく説明したｌｏａｄ  ｆｉｌｅｎａｍｅパターンに対応する。
【００８２】
図３Ｈの例において、インタフェース装置２０は、テキスト入力領域３００に示すように“Ｓ”を指定する入力１９を入力するユーザ１６に応答してインタフェース２１Ｈを示す。Ｓ”を指定する入力１９を入力することに応答して、サーバ２８は、言語サブサーフェス２８のうちの一つを露出するとともにユーザ１６が言語サブサーフェス２８のうちの露出した一つをよりよく理解してパターンを更に学習できるようにするために提案表示領域６５０に提案を行う。
【００８３】
連続して（ｔａｋｅｎ  ｉｎ  ｓｅｑｕｅｎｃｅ）、図３Ｈ及び図３Ｃは、ユーザの認知的負荷を潜在的に制限するために言語サーフェスの設計をオートコンプリートメカニズムに組み合わせる方法を示す。図３Ｈ及び図３Ｃに示すシステムの全てのパターンは、識別子によって開始する。識別子を、言語サブサーフェスに意味があるように互いに関連した識別子にグループ分けするためにパターンの間で賢明に再利用してもよい。
【００８４】
例えば、全てのデータ可視化パターンは、識別子“Ｐｌｏｔ”で開始する。図３Ｈに示すように、新しい発話を開始するとき、ユーザは、パターンの種々の開始識別子のみを示す。したがって、システムによってサポートされる（互いに異なるチャート形態に対応する）多数の互いに異なるデータ可視化パターンが存在するとしても、単一の“Ｐｌｏｔ”識別子のみがオートコンプリート提案に示すことができ、これらのパターンの全てを組み込む。図３Ｈのユーザが、テキスト入力領域３００に示すように“Ｓ”を指定するように選択したので、表示されたリスト６５０は、（単語“Ｐｌｏｔ”は文字“Ｓ”を含まないので）“Ｐｌｏｔ”識別子を除外し、これによって全てのデータ可視化パターンを除去する。ここで説明するＣＮＬＰメカニズムが存在しない場合、ユーザは、本例におけるかなりのデータ可視化パターンを、ここに示す“ｌｉｓｔ  ａｌｌ  ｄａｔａｓｅｔｓ”及び“ｓｈｏｗ  ｗｉｎ  ｌｏｓｓ  ｒａｔｉｏ”のような他の多くのパターンと同時に処理する必要があった。
【００８５】
次のステップにおいて、ユーザが単語“Ｓｈｏｗ”を入力すると（又はユーザが図３Ｈのリスト６５０から単語“Ｓｈｏｗ”を選択すると）、インタフェースは、図３Ｃに示すインタフェースに切り替わり、リスト３０２は、識別子“Ｓｈｏｗ”で開始する種々のパターンのみを含む。特に、このリストは、パターン“ｓｈｏｗ  ｗｉｎ  ｌｏｓｓ  ｒａｔｉｏ”及び“ｓｈｏｗ  ａｖｅｒａｇｅ  ａｇｅ”に対応する発話を有する。
【００８６】
上述した発見プロセスに関連して、識別子“Ｐｌｏｔ”で開始するデータ可視化パターンのグループに対応する発生を、全て発話の階層に含まれる言語サブサーフェスに属すると考えてもよい。“ｐｌｏｔ＿ｂｕｂｂｌｅ＿ｃｈａｒｔ”パターンに対応する発話の特定のサブセットは、この階層内でデータ可視化言語サブサーフェスの下に（すなわち、その中に含まれるように）存在してもよい。このようにして、言語サーフェスの構造は、識別子及びエンティティの定型化を用いることによって、システムによって認識可能な全ての発話の大きいセットを複数レベルの階層に自然に配置する。発話のこの階層（又は言語サブサーフェス）は、オートコンプリートメカニズムと組み合わせることによって、ユーザがどんなときでも（動的な提案リストの形態の）少数のオプションを処理するのに集中すればよい構造化された発見プロセスに役に立ち、この階層を一度に１ステップずつ降順してシステムの有用性を向上させる。
【００８７】
図４は、本開示に記載された技術の種々の態様による図１の例に示す言語サーフェス１８を示すのに用いられるデータ構造７００を示すブロック図である。図４の例に示すように、データ構造７００は、サブサーフェスルートノード７０２（ＳＳ−ＲＮ７０２）と、複数の階層的に配置されたサブサーフェス子ノード７０４Ａ〜７０４Ｎ（ＳＳ−ＣＮ７０４）、７０６Ａ〜７０６Ｎ（ＳＳ−ＣＮ７０６）、７０８Ａ〜７０８Ｎ（ＳＳ−ＣＮ７０８）と、サブサーフェスリーフノード７１０Ａ〜７１０Ｎ（ＳＳ−ＬＮ７１０）と、を有してもよい。
【００８８】
サブサーフェスルートノード７０２は、基本サブサーフェスを露出する開始ノードを表してもよく、これによって、ＳＳ−ＲＮ７０４のようなそれに依存するサブサーフェスの露出を制限する。最初に、ＣＮＬＰ装置２２は、新たなユーザ１６に対して、上述したように各々が識別子、位置エンティティ及びキーワードエンティティ並びに無視された単語を有するパターンの制限されたセットのみを露出してもよい。ＣＮＬＰ装置２２は、（現在のセッションの履歴、識別されたユーザ能力、ユーザの好みなどのうちの一つ又はその組合せを意味してもよい）コンテキストに基づいてＳＳ−ＲＮ７０２からＳＳ−ＣＮ４０７のうちの一つまでトラバースしてもよい。したがって、ＣＮＬＰ装置２２は、発見可能性と認知的負荷とのバランスをとるために（例えば、ＳＳ−ＲＮ７０２からＳＳ−ＣＮ７０４及びＳＳ−ＣＮ７０６／７０８を経てＳＳ−ＬＦ７１０まで）階層的に配列されたノードをトラバースしてもよい。
【００８９】
上述したように、言語サーフェスのパターンの全ては、識別子で開始してもよく、これらの識別子は、識別子を言語サーフェス７０２〜７１０にグループ分けするためにパターンの間で再使用される。例えば、全てのデータ可視化意図は、“Ｐｌｏｔ”で開始する。テキストボックスへの発話の入力を開始すると、ユーザ１６は、（“Ｐｌｏｔ”、“Ｌｏａｄ”のような）一つの第１の識別子を含むオートコンプリート提案リストを見ることができる。ユーザ１６が第１の識別子を記入すると、ＣＮＬＰ装置２２は、更なる記入のために言語サブサーフェスに属する他のパターンのみを露出してもよい。上記例において、ユーザが最初の単語として“Ｐｌｏｔ”のみを指定するときのみ、ＣＮＬＰ装置２２は、（折れ線グラフ、バブルチャート、ヒストグラム等のような）種々のチャート形式を提案するためにオートコンプリートメカニズムを呼び出す。オートコンプリート提案のうちの一つ（例えば、折れ線グラフ）を特定するユーザ１６に応答して、ＣＮＬＰ装置２２は、（軸上の列、色、スライダ等のような）チャートを設定するためにユーザ１６が指定する必要があるエンティティを露出してもよい。
【００９０】
概念的には、全ての発話のセット（言語サーフェス）を、（発話の識別子及びエンティティに基づいて）階層的に配置されるサブセット（サブサーフェス）に分解されるものとみなしてもよく、この場合、階層の各レベルは、内在するサブセットを形成する全ての発話／パターンを有する。オートコンプリートメカニズムを用いることによって、ユーザ１６は、この階層を最上部から最下部まで一度に１ステップずつナビゲートする。各ステップにおいて、ユーザ１６は、提案として次のステップの小さいセットのみが示されてもよい。これによって、ＣＮＬＰ装置２２は、発見可能性と認知的負荷とのバランスをとることができる。換言すれば、技術のこの態様は、パターン仕様言語を用いてパターンを構造化する方法についてのものである。（「パターンが識別子で開始する」のような）ここでの設計上の選択は、パターン仕様言語それ自体によって課されない。
【００９１】
したがって、所定の言語サブサーフェスは、対応する条件に適合したときにのみ露出される。例えば、ＣＮＬＰ装置２２は、少なくとも一つの既にロードされたデータセットが存在するときにのみデータ可視化サブサーフェスを露出してもよい。これは、パターンが現時点で露出されているか否かを判断するために現在の状況（このセッションの履歴、ユーザの能力及び好み等）を見る機能／手順を各パターンに関連付けることによって実現される。
【００９２】
図５は、図１の例に示すホスト装置１２及び／又はクライアント装置１４の例の構成要素を示すブロック図である。図５に示す例において、デバイス１２／１４は、プロセッサ４１２と、グラフィックスプロセッシングユニット（ＧＰＵ）４１４と、システムメモリ４１６と、ディスプレイプロセッサ４１８と、一つ以上の統合スピーカ１０５と、ディスプレイ１０３と、ユーザインタフェース４２０と、トランシーバモジュール４２２と、を有する。ソースデバイス１２がモバイル機器である例において、ディスプレイプロセッサ４１８は、モバイルディスプレイプロセッサ（ＭＤＰ）である。ソースデバイス１２がモバイル機器である例のような一部の例において、プロセッサ４１２、ＧＰＵ４１４及びディスプレイプロセッサ４１８を集積回路（ＩＣ）として形成してもよい。
【００９３】
例えば、ＩＣは、チップパッケージ内の処理チップとみなされてもよく、システムオンチップ（ＳｏＣ）であってもよい。一部の例において、プロセッサ４１２、ＧＰＵ４１４及びディスプレイプロセッサ４１８のうちの二つを同一のＩＣにおいて互いに収容するとともにそれ以外を異なる集積回路（すなわち、異なるチップパッケージ）に収容してもよい又は三つ全てを異なるＩＣ又は同一のＩＣに収容してもよい。しかしながら、ソースデバイス１２がモバイル機器である例において、プロセッサ４１２、ＧＰＵ４１４及びディスプレイプロセッサ４１８が全て異なる集積回路に収容されることがある。
【００９４】
プロセッサ４１２、ＧＰＵ４１４及びディスプレイプロセッサ４１８の例は、一つ以上のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）又は他の等価な集積論理回路若しくは個別の論理回路を含むがそれに限定されない。プロセッサ４１２は、ソースデバイス１２の中央処理装置（ＣＰＵ）であってもよい。一部の例において、ＧＰＵ４１４は、グラフィック処理に適した超並列処理能力を有するＧＰＵ４１４を提供する集積論理回路及び／又は個別の論理回路を有する専用ハードウェアであってもよい。一部の例において、ＧＰＵ４１４は、汎用処理能力を有してもよく、汎用処理タスク（すなわち、グラフィックに関連しないタスク）を実現するときに汎用ＧＰＵ（ＧＰＧＰＵ）と称してもよい。ディスプレイプロセッサ４１８は、システムメモリ４１６から画像コンテンツを検索し、画像コンテンツを画像フレームに構成し、画像フレームをディスプレイ１０３に出力するように設計される専用集積回路ハードウェアであってもよい。
【００９５】
プロセッサ４１２は、種々のタイプのアプリケーションを実行してもよい。アプリケーション２９の例は、ウェブブラウザ、ｅメールアプリケーション、スプレッドシート、ビデオゲーム、ディスプレイに見えるオブジェクトを生成する他のアプリケーション又は上記で更に詳しく説明したアプリケーションのいずれかを含む。システムメモリ４１６は、アプリケーション２０の実行のための命令を格納してもよい。プロセッサ４１２でのアプリケーション２０の一つ以上の実行によって、プロセッサ４１２は、表示される画像コンテンツの画像データ及び再際される音声データ２１を再生する。プロセッサ４１２は、画像コンテンツの画像データを、プロセッサ４１２がＧＰＵ４１４に送信する命令又はコマンドに基づく更なる処理のためにＧＰＵ４１４に送信する。
【００９６】
プロセッサ４１２は、特定のアプリケーション処理インタフェース（ＡＰＩ）に従ってＧＰＵ４１４と通信を行ってもよい。そのようなＡＰＩの例は、マイクロソフト（登録商標）によるＤｉｒｅｃｔＸ（登録商標）、クロノスグループによるＯｐｅｎＧＬ（登録商標）又はＯｐｅｎＧＬ  ＥＳ（登録商標）及びＯｐｅｎＣＬ（登録商標）を含むが、本開示の態様は、ＤｉｒｅｃｔＸ（登録商標）、ＯｐｅｎＧＬ（登録商標）又はｐｅｎＣＬ（登録商標）に限定されず、他のタイプのＡＰＩに拡張してもよい。さらに、本開示に記載された技術は、ＡＰＩに従った機能を必要とせず、プロセッサ４１２及びＧＰＵ４１４は、通信の技術を利用してもよい。
【００９７】
システムメモリ４１６は、ソースデバイス１２のメモリであってもよい。システムメモリ４１６は、一つ以上のコンピュータ可読媒体を備えてもよい。システムメモリ４１６の例は、ランダムアクセスメモリ（ＲＡＭ）、電気的消去可能プログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）、フラッシュメモリ又は命令及び／又はデータ構造の形態の所望のプログラムコードを保持若しくは記憶するのに用いることができるとともにコンピュータ若しくはプロセッサによってアクセス可能な他の媒体を含むがそれに限定されない。
【００９８】
一部の例において、システムメモリ４１６は、本開示に記載された機能をプロセッサ４１２、ＧＰＵ４１４及び／又はディスプレイプロセッサ４１８に実行させる命令を有してもよい。したがって、システムメモリ４１６は、実行するときに一つ以上のプロセッサ（例えば、プロセッサ４１２、ＧＰＵ４１４及び／又はディスプレイプロセッサ４１８）に種々の機能を実行させる命令を記憶したコンピュータ可読記憶媒体であってもよい。
【００９９】
システムメモリ４１６は、非一時的記憶媒体を有してもよい。用語「非一時的」は、記憶媒体が搬送波又は伝播される信号によって実施されないことを意味する。しかしながら、用語「非一時的」を、システムメモリ４１６が移動可能でないこと又はコンテンツが静的であることを意味すると解釈すべきでない。一例として、システムメモリ４１６を、ソースデバイス１２から取り外して他の装置に移動させてもよい。他の例として、システムメモリ４１６と略類似するメモリをデバイス１２／１４に挿入してもよい。所定の例において、非一時的記憶媒体は、（例えば、ＲＡＭにおいて）経時的に変化するデータを記憶してもよい。
【０１００】
ユーザインタフェース４２０は、ユーザがソースデバイス１２とやり取りを行ってもよい一つ以上のハードウェア又は（ハードウェアとソフトウェアの組合せを意味する）仮想的なユーザインタフェースを表してもよい。ユーザインタフェース４２０は、物理的なボタン、スイッチ、トグルスイッチ、ライト又はその仮想的なバージョンを有してもよい。ユーザインタフェース４２０は、物理的又は仮想的なキーボード、タッチスクリーンのようなタッチインタフェース、ハプティックフィードバック等を有してもよい。
【０１０１】
プロセッサ４１２は、種々の装置／モジュール／等について上述した動作の全て又は一部を実行するように構成された（いわゆる「処理コア」を含む）一つ以上のハードウェア装置を有してもよい。トランシーバモジュール４２２は、装置１２／１４の間の無線接続を確立するとともに維持するように構成された装置を表してもよい。トランシーバモジュール４２２は、一つ以上の無線通信プロトコルに従って無線通信を行うことができる一つ以上の受信機及び一つ以上の送信機を表してもよい。
【０１０２】
上述した種々の例の各々において、装置１２／１４は、方法を実行してもよい又は実行するものとして装置１２／１４を上述した方法の各ステップを実行する手段を備えてもよい。一部の例において、手段は、一つ以上のプロセッサを備えてもよい。一部の例において、一つ以上のプロセッサは、非一時的コンピュータ可読記憶媒体に記憶された命令によって構成された専用プロセッサを表してもよい。換言すれば、符号化の例のセットの各々の技術の種々の態様は、実行の時に、装置１２／１４を実行するように構成した方法を一つ以上のプロセッサに実行させる命令を記憶した非一時的コンピュータ可読記憶媒体を提供してもよい。
【０１０３】
図６は、本開示に記載された技術の種々の態様を実行する際の図１のホスト装置の例の動作を示すフローチャートである。上述したように、ＣＮＬＰ装置２２は、最初のユーザ（ユーザ１６を、説明のためのものと考える。）に、言語サブサーフェス１８のうちの選択したものを制限的に露出してもよく、言語サブサーフェス１８のうちの選択したもののみを露出することができる。したがって、ＣＮＬＰ装置２２は、自然言語の文法を複数の言語サブサーフェス１８の階層的配列として特定する自然言語制限階層を指定する言語サブサーフェスを露出してもよい（８００）。
【０１０４】
ＣＮＬＰ装置２２は、インタフェース装置２０を介して、露出された言語サブサーフェスによって提供された言語の部分に一致する入力１９を受信し（８０２）、言語に関連する複数の意図２３からユーザ１６の意図２３を識別するために入力１９を処理してもよい（８０４）。すなわち、設計者は、サーバ２８をサポートするＣＮＬＰ装置２２を設計するときに、（ＣＮＬＰ装置２２を介した入力１９の解析のサポートに関連して）サーバ２８がサポートする意図２３のセットを選択してもよい。
【０１０５】
さらに、ＣＮＬＰ装置２２は、上述したように、一つ以上のエンティティをサポートすることによって意図２３の各々に関する精度をオプションで増大してもよい。ＣＮＬＰ装置２２は、発話１９が意図２３のセットのうちの所定のものに属することを識別するために解析を行うプロセスを実行した後に発話１９に生じた任意のエンティティを抽出してもよい。換言すれば、ＣＮＬＰ装置２２は、エンティティが存在するか否かを判断してもよい（８０６）。ＣＮＬＰ装置２２が、入力が一つ以上のエンティティを有することを識別するとき（８０６のＹＥＳ）、ＣＮＬＰ装置２２は、入力からエンティティを解析してもよい（８０８）。
【０１０６】
入力からエンティティを解析した後又はエンティティが存在しないとき（８０６のＮｏ）、ＣＮＬＰ装置２２は、入力がパターンを有するか否かを判断してもよい（８１０）。ＣＮＬＰ装置２２がパターンを識別するとき（８１０のＹＥＳ）、ＣＮＬＰ装置２２は、入力からパターンを識別してもよい（８１２）。すなわち、ＣＮＬＰ装置２２は、言語１８によって提供された意図２３の各々を一つ以上のパターンに関連付けてもよい。したがって、ＣＮＬＰ装置２２は、言語１８に関連する複数のパターンからパターンを識別するために入力１９を処理してもよく、複数のパターンの各々は、複数の意図２３の互いに異なるものに関連付けられる。その後、ＣＮＬＰ装置２２は、識別したエンティティ及び／又はパターンに基づいて、言語の部分に関連する複数の意図からユーザ１６の意図２３を識別してもよい（８１４）。
【０１０７】
このようにして、ＣＮＬＰ装置２２は、意図２３を識別するために種々の入力１９を解析してもよい。ＣＮＬＰ装置２２は、意図２３をサーバ２８に供給してもよく、サーバ２８は、実行プラットフォーム２４の一つ以上を呼び出してもよく、パターン及び関連のエンティティ、キーボード等の形態で実行プラットフォーム２４に意図２３を渡す。実行プラットフォーム２４のうちの呼び出されたものは、データベース２６のうちの対応するものに関連する動作を実行するとともに結果２５を取得するために意図２３に関連した処理を実行してもよい（８１６）。実行プラットフォーム２４のうちの呼び出されたものは、結果２５を出力する（例えば、結果２５をサーバ２８に供給し、サーバ２８は、結果２５を、インタフェース２１２を介して、入力１９を入力するためにホスト装置１２とやりとりを行うクライアント装置１４に供給してもよい）（８１８）。
【０１０８】
この点において、技術の種々態様は、以下のものを対象とする。
【０１０９】
１．（図４で示したようなコンピュータ装置によって実行される）アルゴリズムにより曖昧さを多くすることなく解析することができるパターンを記述する制限自然言語フレームワーク。解析は、ユーザの意図２３のカテゴリー化及び発話１９に存在する関連のエンティティの抽出の両方を有してもよい。
【０１１０】
２．上記フレームワークの一つ以上のパターンに基づいて意図認識装置及び意図抽出装置を合成する（図４で示したようなコンピュータ装置によって実行される）パーサ生成器アルゴリズム。
【０１１１】
３．意図を処理するためにサーバ２８によって要求されるがユーザの発話１９に含まれないエンティティの値を含むユーザ応答を引き出すメカニズム。
【０１１２】
４．発話１９から抽出されるエンティティが何らかの意味を持つことを保証する（図４で示したようなコンピュータ装置によって実行される）検証アルゴリズム。例えば、上述したｍｅｅｔｉｎｇ−ｓｃｈｅｄｕｌｅｒの例のタイミングは、“５ｐｍ”又は“ｎｏｏｎ”であるが、“Ｗｉｓｃｏｎｓｉｎ”ではない。
【０１１３】
５．意図２３の同一のセットを選択することにより互いに異なる意図１９に関連するパターンが互いに競合しないことを保証する（図４で示したようなコンピュータ装置によって実行される）静的検査アルゴリズム。そのようなアルゴリズムは、発話１９が常に明確に解析されることを保証する。
【０１１４】
６．ＷｏｒｄＮｅｔ（登録商標）のような機械可読辞典又は類語辞典に基づく同義語のリストを自動的に生成又は増補するメカニズム。
【０１１５】
７．ユーザがテキストベースのユーザインタフェースで提供することができる部分的な発話１９の完成を提案又は推奨するオートコンプリートメカニズム。オートコンプリートメカニズムは、（パターンに基づく潜在的な完成についての部分的な発話１９の類似性のみに基づく）純粋な統語ランキング、（ユーザが用いる意図の使用頻度及び順番に基づく）統計的なランキングスキーム又はその組合せに基づいて完成のランク付けを行ってもよい。
【０１１６】
８．ユーザ１６が意図２３及び意図２３のリストがサポートするパターンのリストをサーバ２８から取得することができ、オプションで、ユーザ１６が選択してもよい所定の検索用語に関連するエンティティのみにリストをフィルタリングする発見メカニズム。
【０１１７】
９．ユーザが意図２３に関連するエンティティ及びそのようなエンティティが発話１９に含まれる程度のリストをサーバ２８から取得することができる発見メカニズム。
【０１１８】
１０．複数のパターンに共通する識別子のサブセットのみの発生が潜在的な原因であるユーザの発話１９の意図２３が不明瞭（曖昧）である場合に発話１９を処理する特注のハンドラをサーバ２８の設計者／開発者によって含めることができる曖昧さ解決メカニズム。
【０１１９】
１１．（このセッション又はあり得る他のセッションでユーザによって以前になされた発話１９の履歴を含むがそれに限定されない）対話の状況を維持するとともに状況に基づくエンティティの値を推論するメカニズム。例えば、ステートメント“Ｓｅｎｄ  ａｎ  ｅｍａｉｌ  ｔｏ  Ｊｏｈｎ  ・・・”を作成した後、ユーザは、発話“ｓｃｈｅｄｕｌｅ  ａｎ  ａｐｐｏｉｎｔｍｅｎｔ  ｗｉｔｈ  ｈｉｍ”を行ってもよい。パーサ（例えば、ＣＮＬＰ装置２２）は、「Ｊｏｈｎ」が会議に参加する意図があると推論する。
【０１２０】
１２．高度な（ａｄｖａｎｃｅｄ）パターンを可能にし、高度なパターンは、所定の発話１９を、他のパターンによって解析することができる言い回しに変換する／書き換えるメカニズム。例えば、高度なパターンは、“Ｉ  ｗｏｕｌｄ  ｌｉｋｅ  ｔｏ  ｓｅｔ  ｕｐ  ａｎ  ａｐｐｏｉｎｔｍｅｎｔ”の形式の発話１９を、上記例のｍｅｅｔｉｎｇ−ｓｃｈｅｄｕｌｅｒパターンを用いて解析することができる発話“ｓｃｈｅｄｕｌｅ  ａｎ  ａｐｐｏｉｎｔｍｅｎｔ”に変換してもよい。そのような高度なパターンを用いて、ＣＮＬＰ装置２２が正確に解析することができるユーザの発話１９の自然らしさを系統的に向上させるために用いることができる。
【０１２１】
１３．ＣＮＬＰ装置２２によって全く又は部分的に処理することができない発話１９を処理するために（通常のキーワードベース又は機械学習ベースの方法又は経験則に基づく他の方法を含む）他のアプローチを制限自然言語に増補するメカニズム。例えば、ディープニューラルネットワークに基づくパーサを、パターンに基づくｍｅｅｔｉｎｇ−ｓｃｈｅｄｕｌｅｒの意図に属するものとして分析されるがそのエンティティをＣＮＬＰ装置２２によって正確に抽出することができない発話１９を解析するようにトレーニングしてもよい。
【０１２２】
１４．（言語サーフェスを形成する）パターンの所定のサブセットを、所定の以前のパターンによってカバーされていないときにのみＣＮＬＰ装置２２のパターンパーサによって解析できるようにするメカニズム。例えば、上述した“ｓｃｈｅｄｕｌｅ  ｍｅｅｔｉｎｇ”パターンは、“ｃｈａｎｇｅ  ｆｒｅｑｕｅｎｃｙ”又は“ｅｍａｉｌ  ａｔｔｅｎｄｅｅｓ”をカバーしていないことがある。ここでの「カバーしていない」は、ユーザが“ｓｃｈｅｄｕｌｅ  ｍｅｅｔｉｎｇ”パターンに関連付けられた発話１９を行った後にのみパターンの後者のセットをユーザによって発することができる（とともにパーサによって認識される）ことを意味する（換言すれば、ユーザ１６は、頻度の変更又は出席者への電子メールの送信をできるようにするまえに会議をスケジューリングする必要がある。）。そのようなメカニズムを、異なるレベルの専門知識／高度な知識を有するユーザをサポートするのに用いることもできる。さらに高度なユーザは、高度な知識を持つユーザのみが正確に用いることができるパターンを明らかにすることができる。
【０１２３】
さらに、技術の種々の態様を、以下に挙げる項によって表してもよい。
【０１２４】
項１Ａ．入力を表すデータを処理するように構成されたデバイスであって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を明確にする自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定し、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信し、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理し、動作を実行するために、識別された意図に関連する処理を実行する、ように構成された一つ以上のプロセッサと、入力を表すデータを格納するように構成されたメモリと、を備えるデバイス。
【０１２５】
項２Ａ．一つ以上のプロセッサは、複数の言語サブサーフェスの言語サブサーフェスのみを露出するように構成された、項１Ａのデバイス。
【０１２６】
項３Ａ．一つ以上のプロセッサは、ユーザがしきい値内の言語の部分に関連する複数の意図を思い起こすことができることを決定し、ユーザが複数の意図を思い起こすことができることを決定したことに応答して、複数の言語サブサーフェスの第２の言語サブサーフェスを露出し、第２の言語サブサーフェスは、第２の入力を表す第２のデータを入力するためにユーザがやりとりを行うことができる言語の第２の部分を提供し、露出された第２の言語サブサーフェスによって提供された言語の第２の部分と一致する第２の入力を表す第２のデータを受信し、言語の第２の部分に関連する第２の複数の意図からユーザの第２の意図を識別するために第２の入力を表す第２のデータを処理し、第２の動作を実行するために、識別された第２の意図に関連する処理を実行する、ように更に構成された、項１Ａ又は２Ａの任意の組合せのデバイス。
【０１２７】
項４Ａ．一つ以上のプロセッサは、言語サブサーフェスを露出するために一つ以上の示唆を自動的に提供するテキスト入力領域を有するインタフェースを提示するように更に構成された、項１Ａ〜３Ａの任意の組合せのデバイス。
【０１２８】
項５Ａ．一つ以上のプロセッサは、言語サブサーフェスを露出するためにオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示するように更に構成された、項１Ａ〜４Ａの任意の組合せのデバイス。
【０１２９】
項６Ａ．言語サブサーフェスは、第１の言語サブサーフェスを備え、第１の言語サブサーフェスは、複数の言語サブサーフェスの第２の言語サブサーフェスへの移行を指定し、一つ以上のプロセッサは、移行を識別するユーザからの第２のデータに応答して、複数の言語サブサーフェスの第２の言語サブサーフェスを露出し、第２の言語サブサーフェスは、第２の入力を表す第２のデータを入力するためにユーザがやりとりを行うことができる言語の第２の部分を提供するように更に構成された、項１Ａ〜５Ａの任意の組合せのデバイス。
【０１３０】
項７Ａ．一つ以上のプロセッサは、移行を識別するデータの入力を促進するオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示するように更に構成された、項６Ａのデバイス。
【０１３１】
項８Ａ．一つ以上のプロセッサは、露出された第２の言語サブサーフェスによって提供された言語の第２の部分に一致する第２の入力を表す第２のデータを受信し、言語の第２の部分に関連する第２の複数の意図からユーザの第２の意図を識別するために第２の入力を表す第２のデータを処理し、第２の動作を実行するために、識別された第２の意図に関連する第２の処理を実行する、ように更に構成された、項６Ａのデバイス。
【０１３２】
項９Ａ．一つ以上のプロセッサは、言語に関連する複数のパターンからパターンを識別するために入力を表すデータを処理し、複数のパターンの各々は、複数の意図の互いに異なる意図に関連し、識別されたパターンに基づいて、言語の部分に関連する複数の意図からユーザの意図を識別する、ように更に構成された、項１Ａ〜８Ａの任意の組合せのデバイス。
【０１３３】
項１０Ａ．パターンは、識別子を有し、一つ以上のプロセッサは、識別子を識別するために入力を表すデータを解析し、識別子に基づいてパターンを識別する、ように更に構成された、項９Ａのデバイス。
【０１３４】
項１１Ａ．パターンは、識別子と位置エンティティの両方を有し、一つ以上のプロセッサは、位置エンティティを識別するために入力を表すデータを解析し、識別子及び位置エンティティに基づいてパターンを識別する、ように更に構成された、項１０Ａのデバイス。
【０１３５】
項１２Ａ．パターンは、キーワードを有し、一つ以上のプロセッサは、キーワードを識別するために入力を表すデータを解析し、キーワードに基づいてパターンを識別する、ように更に構成された、項９〜１１の任意の組合せのデバイス。
【０１３６】
項１３Ａ．パターンは、エンティティを有し、一つ以上のプロセッサは、入力を表すデータがパターンに対応するがエンティティを有さないことを決定し、入力を表すデータがパターンに対応するがエンティティを有さないことを決定したことに応答して、エンティティを特定する追加入力を表すデータを要求するプロンプトを出力する、ように更に構成された、項９Ａ〜１２Ａの任意の組合せのデバイス。
【０１３７】
項１４Ａ．一つ以上のプロセッサは、エンティティを特定する追加入力を表すデータを受信し、入力を表すデータ及び追加入力を表すデータに基づいて、パターンを識別する、ように更に構成された、項１３Ａのデバイス。
【０１３８】
項１５Ａ．一つ以上のプロセッサは、動作の実行の結果を取得し、入力を表すデータを入力するために、結果を、インタフェースを介して、デバイスとやりとりを行うクライアントに供給する、ように更に構成された、項１Ａ〜１４Ａの任意の組合せのデバイス。
【０１３９】
項１６Ａ．入力を表すデータを処理する方法であって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を明確にする自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定することと、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信することと、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理することと、動作を実行するために、識別された意図に関連する処理を実行することと、を備える方法。
【０１４０】
項１７Ａ．言語サブサーフェスを露出することは、複数の言語サブサーフェスの言語サブサーフェスのみを露出することを備える、項１６Ａの方法。
【０１４１】
項１８Ａ．ユーザがしきい値内の言語の部分に関連する複数の意図を思い起こすことができることを決定することと、ユーザが複数の意図を思い起こすことができることを決定したことに応答して、複数の言語サブサーフェスの第２の言語サブサーフェスを露出し、第２の言語サブサーフェスは、第２の入力を表す第２のデータを入力するためにユーザがやりとりを行うことができる言語の第２の部分を提供することと、露出された第２の言語サブサーフェスによって提供された言語の第２の部分と一致する第２の入力を表す第２のデータを受信することと、言語の第２の部分に関連する第２の複数の意図からユーザの第２の意図を識別するために第２の入力を表す第２のデータを処理することと、第２の動作を実行するために、識別された第２の意図に関連する処理を実行することと、を更に備える、項１６Ａ及び１７Ａの任意の組合せの方法。
【０１４２】
項１９Ａ．言語サブサーフェスを露出するために一つ以上の示唆を自動的に提供するテキスト入力領域を有するインタフェースを提示することを更に備える、項１６Ａ〜１８Ａの任意の組合せの方法。
【０１４３】
項２０Ａ．言語サブサーフェスを露出するためにオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示することを更に備える、項１６Ａ〜１９Ａの任意の組合せの方法。
【０１４４】
項２１Ａ．言語サブサーフェスは、第１の言語サブサーフェスを備え、第１の言語サブサーフェスは、複数の言語サブサーフェスの第２の言語サブサーフェスへの移行を指定し、移行を識別するユーザからの第２のデータに応答して、複数の言語サブサーフェスの第２の言語サブサーフェスを露出し、第２の言語サブサーフェスは、第２の入力を表す第２のデータを入力するためにユーザがやりとりを行うことができる言語の第２の部分を提供することを更に備える、項１６Ａ〜２０Ａの任意の組合せの方法。
【０１４５】
項２２Ａ．移行を識別するデータの入力を促進するオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示することを更に備える、項２１Ａの方法。
【０１４６】
項２３Ａ．露出された第２の言語サブサーフェスによって提供された言語の第２の部分に一致する第２の入力を表す第２のデータを受信することと、言語の第２の部分に関連する第２の複数の意図からユーザの第２の意図を識別するために第２の入力を表す第２のデータを処理することと、第２の動作を実行するために、識別された第２の意図に関連する第２の処理を実行することと、を更に備える、項２１Ａの方法。
【０１４７】
項２４Ａ．入力を表すデータを処理することは、言語に関連する複数のパターンからパターンを識別するために入力を表すデータを処理し、複数のパターンの各々は、複数の意図の互いに異なる意図に関連することと、識別されたパターンに基づいて、言語の部分に関連する複数の意図からユーザの意図を識別することと、を備える、項１６Ａ〜２３Ａの任意の組合せの方法。
【０１４８】
項２５Ａ．パターンは、識別子を有し、パターンを識別するために入力を表すデータを処理することは、識別子を識別するために入力を表すデータを解析することと、識別子に基づいてパターンを識別することと、を備える、項２４Ａの方法。
【０１４９】
項２６Ａ．パターンは、識別子と位置エンティティの両方を有し、識別子を識別するために入力を表すデータを解析することは、位置エンティティを識別するために入力を表すデータを解析することと、識別子及び位置エンティティに基づいてパターンを識別することと、を備える、項２５Ａの方法。
【０１５０】
項２７Ａ．パターンは、キーワードを有し、識別子を識別するために入力を表すデータを解析することは、キーワードを識別するために入力を表すデータを解析することと、キーワードに基づいてパターンを識別することと、を備える、項２４Ａ〜２６Ａの任意の組合せの方法。
【０１５１】
項２８Ａ．パターンは、エンティティを有し、識別子を識別するために入力を表すデータを解析することは、入力を表すデータがパターンに対応するがエンティティを有さないことを決定することと、入力を表すデータがパターンに対応するがエンティティを有さないことを決定したことに応答して、エンティティを特定する追加入力を表すデータを要求するプロンプトを出力することと、を備える、項２４Ａ〜２７Ａの任意の組合せの方法。
【０１５２】
項２９Ａ．入力を表すデータを受信することは、エンティティを特定する追加入力を表すデータを受信することを備え、入力を表すデータを処理することは、入力を表すデータ及び追加入力を表すデータに基づいて、パターンを識別することを更に備える、項２８Ａの方法。
【０１５３】
項３０Ａ．動作の実行の結果を取得することと、入力を表すデータを入力するために、結果を、インタフェースを介して、デバイスとやりとりを行うクライアントに供給することと、を更に備える、項１６Ａ〜２９Ａの任意の組合せの方法。
【０１５４】
項３１Ａ．入力を表すデータを処理するデバイスであって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定する手段と、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信する手段と、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理する手段と、動作を実行するために、識別された意図に関連する処理を実行する手段と、を備えるデバイス。
【０１５５】
項３２Ａ．言語サブサーフェスを露出する手段は、複数の言語サブサーフェスの言語サブサーフェスのみを露出する手段を備える、項３１Ａのデバイス。
【０１５６】
項３３Ａ．ユーザがしきい値内の言語の部分に関連する複数の意図を思い起こすことができることを決定する手段と、ユーザが複数の意図を思い起こすことができることを決定したことに応答して、複数の言語サブサーフェスの第２の言語サブサーフェスを露出し、第２の言語サブサーフェスは、第２の入力を表す第２のデータを入力するためにユーザがやりとりを行うことができる言語の第２の部分を提供する手段と、露出された第２の言語サブサーフェスによって提供された言語の第２の部分と一致する第２の入力を表す第２のデータを受信する手段と、言語の第２の部分に関連する第２の複数の意図からユーザの第２の意図を識別するために第２の入力を表す第２のデータを処理する手段と、第２の動作を実行するために、識別された第２の意図に関連する処理を実行する手段と、を更に備える、項３１Ａ及び３２Ａの任意の組合せのデバイス。
【０１５７】
項３４Ａ．言語サブサーフェスを露出するために一つ以上の示唆を自動的に提供するテキスト入力領域を有するインタフェースを提示する手段を更に備える、項３１Ａ〜３３Ａの任意の組合せのデバイス。
【０１５８】
項３５Ａ．言語サブサーフェスを露出するためにオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示する手段を更に備える、項３１Ａ〜３４Ａの任意の組合せのデバイス。
【０１５９】
項３６Ａ．言語サブサーフェスは、第１の言語サブサーフェスを備え、第１の言語サブサーフェスは、複数の言語サブサーフェスの第２の言語サブサーフェスへの移行を指定し、移行を識別するユーザからの第２のデータに応答して、複数の言語サブサーフェスの第２の言語サブサーフェスを露出し、第２の言語サブサーフェスは、第２の入力を表す第２のデータを入力するためにユーザがやりとりを行うことができる言語の第２の部分を提供する手段を更に備える、項３１Ａ〜３５Ａの任意の組合せのデバイス。
【０１６０】
項３７Ａ．移行を識別するデータの入力を促進するオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示する手段を更に備える、項３６Ａのデバイス。
【０１６１】
項３８Ａ．露出された第２の言語サブサーフェスによって提供された言語の第２の部分に一致する第２の入力を表す第２のデータを受信する手段と、言語の第２の部分に関連する第２の複数の意図からユーザの第２の意図を識別するために第２の入力を表す第２のデータを処理する手段と、第２の動作を実行するために、識別された第２の意図に関連する第２の処理を実行する手段と、を更に備える、項３６Ａのデバイス。
【０１６２】
項３９Ａ．入力を表すデータを処理する手段は、言語に関連する複数のパターンからパターンを識別するために入力を表すデータを処理し、複数のパターンの各々は、複数の意図の互いに異なる意図に関連する手段と、識別されたパターンに基づいて、言語の部分に関連する複数の意図からユーザの意図を識別する手段と、を備える、項３１Ａ〜３８Ａの任意の組合せのデバイス。
【０１６３】
項４０Ａ．パターンは、識別子を有し、パターンを識別するために入力を表すデータを処理する手段は、識別子を識別するために入力を表すデータを解析する手段と、識別子に基づいてパターンを識別する手段と、を備える、項３９Ａのデバイス。
【０１６４】
項４１Ａ．パターンは、識別子と位置エンティティの両方を有し、識別子を識別するために入力を表すデータを解析する手段は、位置エンティティを識別するために入力を表すデータを解析する手段と、識別子及び位置エンティティに基づいてパターンを識別する手段と、を備える、項４０Ａのデバイス。
【０１６５】
項４２Ａ．パターンは、キーワードを有し、識別子を識別するために入力を表すデータを解析する手段は、キーワードを識別するために入力を表すデータを解析する手段と、キーワードに基づいてパターンを識別する手段と、を備える、項３９Ａ〜４１Ａの任意の組合せのデバイス。
【０１６６】
項４３Ａ．パターンは、エンティティを有し、識別子を識別するために入力を表すデータを解析する手段は、入力を表すデータがパターンに対応するがエンティティを有さないことを決定する手段と、入力を表すデータがパターンに対応するがエンティティを有さないことを決定したことに応答して、エンティティを特定する追加入力を表すデータを要求するプロンプトを出力する手段と、を備える、項３９Ａ〜４２Ａの任意の組合せのデバイス。
【０１６７】
項４４Ａ．入力を表すデータを受信する手段は、エンティティを特定する追加入力を表すデータを受信する手段を備え、入力を表すデータを処理する手段は、入力を表すデータ及び追加入力を表すデータに基づいて、パターンを識別する手段を更に備える、項４３Ａのデバイス。
【０１６８】
項４５Ａ．動作の実行の結果を取得する手段と、入力を表すデータを入力するために、結果を、インタフェースを介して、デバイスとやりとりを行うクライアントに供給する手段と、を備える、項３１Ａ〜４４Ａの任意の組合せのデバイス。
【０１６９】
項４６Ａ．実行のときに、一つ以上のプロセッサによって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定し、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信し、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理し、動作を実行するために、識別された意図に関連する処理を実行する、命令を格納したコンピュータ可読媒体。
【０１７０】
項４７Ａ．入力を表すデータを処理するように構成されたシステムであって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を明確にする自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定するように構成された一つ以上のプロセッサを備えるホスト装置と、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信し、入力を表すデータをホスト装置に出力する、ように構成された一つ以上のプロセッサを備えるクライアント装置と、を備え、ホスト装置の一つ以上のプロセッサは、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理し、動作を実行するために、識別された意図に関連する処理を実行する、ように更に構成された、システム。
【０１７１】
説明した機能を、ハードウェア、ソフトウェア、ファームウェア又はその組合せで実現してもよい。ソフトウェアで実現する場合、機能を、コンピュータ可読媒体の一つ以上の命令又はコードとして記憶又は送信するとともにハードウェアベースの処理装置によって実行してもよい。コンピュータ可読媒体は、データ記憶媒体のような有形的表現媒体に対応するコンピュータ可読記憶媒体を含んでもよい。データ記憶媒体は、本開示に記載された技術の実現のために命令、コード及び／又はデータ構造を検索する一つ以上のコンピュータ又は一つ以上のプロセッサによってアクセスすることができる任意の利用可能な媒体であってもよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでもよい。
【０１７２】
同様に、上述した種々の例の各々において、受信装置１４が方法を実行してもよい又は実行するように受信装置１４を構成した方法の各ステップを実行する手段を備えてもよいことを理解すべきである。一部の例において、手段は、一つ以上のプロセッサを備えてもよい。一部の例において、一つ以上のプロセッサは、非一時的コンピュータ可読記憶媒体に格納された命令によって構成された汎用プロセッサを表してもよい。換言すれば、符号化の例のセットの各々の技術の種々の態様は、実行するときに一つ以上のプロセッサによって実行するように受信装置１４を構成した方法を実行する命令を記憶する非一時的コンピュータ可読記憶媒体を提供する。
【０１７３】
例として、そのような非一時的コンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ若しくは他の光ディスク記憶装置、他の磁気ディスク記憶装置、フラッシュメモリ又は命令若しくはデータ構造の形態で所望のプログラムコードを記憶するのに用いることができるとともにコンピュータによってアクセスすることができる他の任意の媒体を含んでもよいが、それに限定されない。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号又は他の一時的媒体を含まず、非一時的な有形的表現媒体を意図する。ここで用いる「ディスク」（ｄｉｓｋ，ｄｉｓｃ）は、コンパクトディスク（ＣＤ）、レーザディスク、光ディスク、デジタル多用途ディスク（ＤＶＤ）、フロッピーディスク（登録商標）及びブルーレイ（登録商標）ディスクを含み、ｄｉｓｋは、通常、データを磁気的に再生し、ｄｉｓｃは、レーザを用いてデータを光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１７４】
命令を、一つ以上のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又は他の等価の集積論理回路若しくは個別の論理回路のような一つ以上のプロセッサによって実行してもよい。したがって、ここで用いる用語「プロセッサ」は、上述した構造又はここで説明する技術の実現に適した他の任意の構造を意味してもよい。追加的には、一部の例において、ここで説明する機能を、符号化及び復号化のために構成された又は組合せのコーデック（ｃｏｍｂｉｎｅｄ  ｃｏｄｅｃ）で組み合わされた専用のハードウェア及び／又はソフトウェアモジュール内に設けてもよい。また、技術を、一つ以上の回路又は論理素子において完全に実現することができる。
【０１７５】
この開示の技術を、携帯電話、集積回路（ＩＣ）又はＩＣのセット（例えば、チップセット）を含む様々な装置又は機器で実現してもよい。開示した技術を実行するように構成された装置の機能的な態様を強調するために種々の構成要素、モジュール又は装置を本開示で説明したが、互いに異なるハードウェア装置による実現を必ずしも必要としない。上述したように、種々の装置を、コーデックハードウェア装置において組み合わせてもよい又は上述した一つ以上のプロセッサを含む相互運用ハードウェア装置と適切なソフトウェア及び／又はファームウェアとの集合によって提供してもよい。
【０１７６】
技術の種々の態様を説明した。技術のこれらの態様及び他の態様は、特許請求の範囲内にある。
【図１】
2021528761.tif 000008
【図２】
2021528761.tif 000009
【図３Ａ】
2021528761.tif 000010
【図３Ｂ】
2021528761.tif 000011
【図３Ｃ】
2021528761.tif 000012
【図３Ｄ】
2021528761.tif 000013
【図３Ｅ】
2021528761.tif 000014
【図３Ｆ】
2021528761.tif 000015
【図３Ｇ】
2021528761.tif 000016
【図３Ｈ】
2021528761.tif 000017
【図４】
2021528761.tif 000018
【図５】
2021528761.tif 000019
【図６】
2021528761.tif 000020
【国際調査報告】
2021528761.tif 000021
2021528761.tif 000022
2021528761.tif 000023