(57)【要約】  コードを実行するように適応された１つまたは複数のプロセッサを使用することを含む、言語入力を複数のハンドラのうちの１つにルーティングするコンピュータ実装方法を開示する。コードは、言語入力をユーザから受信することと、複数の言語内容識別器を言語入力に適用することであって、言語内容識別器の各々が、言語入力から抽出された１つまたは複数の特徴（ユーザによって表されたインテントまたはエンティティあるいはその両方など）に対して一致信頼値を計算することによって、複数のハンドラのうちの各１つとの言語入力の関連性を評価するように適応される、適用することと、複数の言語内容識別器によって計算された一致信頼値に基づいて、言語入力をハンドラのうちの選択された１つにルーティングすることとを実行するように適応される。選択されたハンドラは、言語入力に応答して１つまたは複数のアクションを開始するように適応される。
2021501356.tif 000002
【特許請求の範囲】
【請求項１】
言語入力を複数のハンドラのうちの１つにルーティングするコンピュータ実装方法であって、
コードを実行するように適応された少なくとも１つのプロセッサを使用することを含んでおり、前記コードは、
言語入力をユーザから受信することと、
複数の言語内容識別器を前記言語入力に適用することであって、前記複数の言語内容識別器の各々が、前記言語入力から抽出された少なくとも１つの特徴に対して一致信頼値を計算することによって、複数のハンドラのうちの各１つとの前記言語入力の関連性を評価するように適応されており、前記少なくとも１つの特徴が、前記ユーザによって表されたインテントおよび前記ユーザによって示されたエンティティのうちの少なくとも１つを含んでいる、前記適用することと、
前記複数の言語内容識別器によって計算された前記一致信頼値に基づいて、前記複数のハンドラのうちの選択された１つに前記言語入力をルーティングすることであって、前記選択されたハンドラが、前記言語入力に応答して少なくとも１つのアクションを開始するように適応されている、前記ルーティングすることと
を実行するように適応されている、コンピュータ実装方法。
【請求項２】
前記言語入力が、テキストの言語入力および発話の言語入力から成る群の少なくとも１つの要素を含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記言語入力を複数のセグメントにセグメント化することと、前記各セグメントに対して前記複数の言語内容識別器によって計算された前記一致信頼値に従って、前記複数のセグメントの各々を前記複数のハンドラのうちの１つにルーティングすることとをさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記各ハンドラに対して定義された少なくとも１つの定義済みの特徴に従って前記関連性を評価するように前記各言語内容識別器を適応させることによって、前記複数の言語内容識別器の各々が前記複数のハンドラのうちの各１つに関連付けられる、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記一致信頼値が、前記少なくとも１つの特徴が各定義済みの特徴に一致する確率を示す、請求項１に記載のコンピュータ実装方法。
【請求項６】
少なくとも１つの言語解析ツールを使用して前記言語入力から前記インテントが抽出され、前記インテントが、意思、目的、対象、および目標から成る群の要素である、請求項１に記載のコンピュータ実装方法。
【請求項７】
少なくとも１つの言語解析ツールを使用して前記エンティティが前記言語入力から抽出される、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記複数の言語内容識別器のうちの少なくとも１つによって提供された少なくとも１つのコンテキスト属性に基づいて前記選択されるハンドラを選択することをさらに含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記少なくとも１つのコンテキスト属性が、
少なくとも１つの音声解析ツールを使用して抽出された前記ユーザの感情と、
少なくとも１つの音声解析ツールを使用して抽出された前記ユーザの情緒と、
少なくとも１つの位置検出ツールから取得された前記ユーザの地理的位置と、
少なくとも１つの以前の言語入力から抽出された少なくとも１つの以前の特徴と
のうちの少なくとも１つを含んでいる、請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記複数の言語内容識別器のうちの少なくとも１つによって抽出された少なくとも１つの強制のエンティティの検出に基づいて、前記選択されるハンドラを選択することをさらに含み、前記少なくとも１つの強制のエンティティが、前記インテントと共に前記言語入力に現れるように事前に定義される、請求項８に記載のコンピュータ実装方法。
【請求項１１】
前記複数の言語内容識別器のうちの少なくとも１つによって提供された少なくとも１つの操作上の属性に基づいて前記選択されるハンドラを選択することをさらに含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項１２】
前記少なくとも１つの操作上の属性が、
しきい値と、
前記言語入力を処理するための前記各ハンドラの能力と、
前記少なくとも１つの特徴を抽出するために前記複数の言語内容識別器のうちの少なくとも１つによって適用される解析の説明と、
少なくとも１つの以前の言語入力に関連するルーティング情報と、
前記複数のハンドラのうちの少なくとも別の１つから取得された情報と
のうちの少なくとも１つを含んでいる、請求項１１に記載のコンピュータ実装方法。
【請求項１３】
前記複数の言語内容識別器のうちの少なくとも一部に割り当てられた優先度に従って前記選択されるハンドラを選択することをさらに含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項１４】
定義済みのしきい値を超えることができない前記信頼値を提示する、前記複数の言語内容識別器のうちの１つに関連付けられた前記複数のハンドラのうちの少なくとも１つをフィルタで除去することをさらに含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項１５】
前記言語入力を処理できないとして、前記複数の言語内容識別器のうちの関連付けられた１つによって示された、前記複数のハンドラのうちの少なくとも１つをフィルタで除去することをさらに含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項１６】
前記複数の言語内容識別器のうちの複数の言語内容識別器によって類似する前記信頼値が計算された場合に、前記複数のハンドラのうちの最近のハンドラに前記言語入力をルーティングすることをさらに含んでおり、前記最近のハンドラが、前記複数の言語内容識別器に関連付けられたハンドラのグループ内の、以前の言語入力のルーティング先だった直近のハンドラである、請求項１に記載のコンピュータ実装方法。
【請求項１７】
前記複数の言語内容識別器によって計算された前記信頼値が定義済みのしきい値を超えることができない場合に、前記複数のハンドラのうちのデフォルトのハンドラに前記言語入力をルーティングすることをさらに含んでいる、請求項１に記載のコンピュータ実装方法。
【請求項１８】
言語入力を複数のハンドラのうちの１つにルーティングするためのシステムであって、
コードを実行するように適応された少なくとも１つのプロセッサを備えており、前記コードは、
言語入力をユーザから受信するためのコード命令と、
複数の言語内容識別器を前記言語入力に適用するためのコード命令であって、前記複数の言語内容識別器の各々が、前記言語入力から抽出された少なくとも１つの特徴に対して一致信頼値を計算することによって、複数のハンドラのうちの各１つとの前記言語入力の関連性を評価するように適応されており、前記少なくとも１つの特徴が、前記ユーザによって表されたインテントおよび前記ユーザによって示されたエンティティのうちの少なくとも１つを含んでいる、前記コード命令と、
前記複数の言語内容識別器によって計算された前記一致信頼値に基づいて、前記複数のハンドラのうちの選択された１つに前記言語入力をルーティングするためのコード命令であって、前記選択されたハンドラが、前記言語入力に応答して少なくとも１つのアクションを開始するように適応されている、前記コード命令とを含んでいる、システム。
【請求項１９】
言語入力を複数のハンドラのうちの１つにルーティングするためのコンピュータ・プログラム製品であって、
非一過性コンピュータ可読記憶媒体と、
言語入力をユーザから受信するための第１のコード命令と、
複数の言語内容識別器を前記言語入力に適用するための第２のコード命令であって、前記複数の言語内容識別器の各々が、前記言語入力から抽出された少なくとも１つの特徴に対して一致信頼値を計算することによって、複数のハンドラのうちの各１つとの前記言語入力の関連性を評価するように適応されており、前記少なくとも１つの特徴が、前記ユーザによって表されたインテントおよび前記ユーザによって示されたエンティティのうちの少なくとも１つを含んでいる、前記第２のコード命令と、
前記複数の言語内容識別器によって計算された前記一致信頼値に基づいて、前記複数のハンドラのうちの選択された１つに前記言語入力をルーティングするための第３のコード命令であって、前記選択されたハンドラが、前記言語入力に応答して少なくとも１つのアクションを開始するように適応されている、前記第３のコード命令とを備えており、
前記第１、第２、および第３のコード命令が、少なくとも１つのプロセッサによって前記非一過性コンピュータ可読記憶媒体から実行される、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザから受信された言語入力を言語内容ハンドラに自動的にルーティングすることに関連しており、より詳細には、言語入力の内容および任意選択的にコンテキストに基づいて、暗黙的ルーティングを使用して言語入力を言語内容ハンドラに自動的にルーティングすることに関連しているが、これに限定されない。
【背景技術】
【０００２】
近年、自動化されたシステム、プラットフォーム、またはサービス、あるいはその組み合わせの開発、展開、および使用が、急速かつ大幅に進歩した。ヒューマン・マシン・インタラクション（ＨＭＩ：human-machine interaction）は、例えば、モバイル・アプリケーション（例えば、モバイル・デバイス）、ライフスタイル・アプリケーション（例えば、人工パーソナル・アシスタントまたは仮想パーソナル・アシスタントあるいはその両方）、商業アプリケーション、輸送（例えば、自律車両）アプリケーションなどの、多くのそのような自動化された環境アプリケーションにおける重要な要素であることがある。
【０００３】
コンピュータ技術、ハードウェア（例えば、計算リソースの増大）に加えて、コンピュータ・サイエンスおよびソフトウェア（例えば、アルゴリズム的処理、機械学習など）における大幅な進歩が、従来のＨＭＩからより自然なＨＭＩに移行するための道を開いた。従来のＨＭＩ実装は、ユーザが中間のデバイス、ツール、またはインターフェイス（例えば、キーボード、ポインティング・デバイス（例えば、マウス、タッチパッドなど）、タッチスクリーンなど）、あるいはその組み合わせを使用することを必要とすることがある。一方、自然なＨＭＩ（例えば、音声、発話、ジェスチャーなど）は、ユーザが仲介を使用する必要性からユーザを解放し、マシン（すなわち、コンピュータ、モバイル・デバイス、自律車両など）と直接通信することができる。
【０００４】
自然なＨＭＩの中でも特に、発話および会話は、話し言葉および会話技術が、ほとんどの人によって若年齢で獲得され、人々の間の交流の最も一般的で効率的な方法であるため、大きな魅力を有する。したがって、会話的なインタラクションをＨＭＩ実装に採用することが、非常に望ましいことがある。そのような発話および会話のＨＭＩ実装は、例えば、音声認識、音声テキスト（ＳＴＴ：speech to text）変換、音声合成、自然言語処理（ＮＬＰ：natural language processing）、会話構築などの、複数のツール、手法、または方法、あるいはその組み合わせのうちの１つまたは複数を適用することがある。
【発明の概要】
【０００５】
本発明の第１の態様によれば、コードを実行するように適応された１つまたは複数のプロセッサを使用することを含んでいる、言語入力を複数のハンドラのうちの１つにルーティングするコンピュータ実装方法があり、このコードは、次のことを実行するように適応されている。
−  言語入力をユーザから受信すること。
−  複数の言語内容識別器（verbal content identifiers）を言語入力に適用することであって、複数の言語内容識別器の各々が、言語入力から抽出された１つまたは複数の特徴に対して一致信頼値を計算することによって、複数のハンドラのうちの各１つとの言語入力の関連性を評価するように適応されている、適用すること。１つまたは複数の特徴は、ユーザによって表されたインテントおよびユーザによって示されたエンティティのうちの１つまたは複数を含む。
−  複数の言語内容識別器によって計算された一致信頼値に基づいて、複数のハンドラのうちの選択された１つに言語入力をルーティングすることであって、選択されたハンドラが、言語入力に応答して１つまたは複数のアクションを開始するように適応されている、ルーティングすること。
【０００６】
複数の（言語内容）ハンドラを使用し、言語入力をこれらのハンドラに効率的にルーティングすることによって、単一の作業空間内の対話フローを解析することと比較して、言語入力およびしたがってユーザとの対話フローの解析の複雑さを、大幅に低減することができる。この複雑さの低減によって、さらに、ユーザのインテントの推定の精度を上げること、言語入力に埋め込まれた曖昧さを減らすか、または除去するか、あるいはその両方を行うこと、言語入力を解析するための計算リソースを減らすこと、受信された言語入力に応答する際の待ち時間を減らすことなどを、行うことができる。さらに、ユーザが意図されるハンドラを明示的に述べる必要なく、言語入力を好ましいハンドラに暗黙的にルーティングすることは、どのインテントまたはアクションあるいはその両方に対してどのハンドラが指定されているかについて絶えず注意をし、覚えておくことから、ユーザを解放することができる。
【０００７】
本発明の第２の態様によれば、コードを実行するように適応された１つまたは複数のプロセッサを備えている、言語入力を複数のハンドラのうちの１つにルーティングするためのシステムがあり、このコードは次を含んでいる。
−  言語入力をユーザから受信するためのコード命令。
−  複数の言語内容識別器を言語入力に適用するためのコード命令であって、複数の言語内容識別器の各々が、言語入力から抽出された１つまたは複数の特徴に対して一致信頼値を計算することによって、複数のハンドラのうちの各１つとの言語入力の関連性を評価するように適応されている、コード命令。１つまたは複数の特徴は、ユーザによって表されたインテントおよびユーザによって示されたエンティティのうちの１つまたは複数を含む。
−  複数の言語内容識別器によって計算された一致信頼値に基づいて、複数のハンドラのうちの選択された１つに言語入力をルーティングするためのコード命令であって、選択されたハンドラが、言語入力に応答して１つまたは複数のアクションを開始するように適応されている、コード命令。
【０００８】
本発明の第３の態様によれば、言語入力を複数のハンドラのうちの１つにルーティングするためのコンピュータ・プログラム製品があり、このコンピュータ・プログラム製品は次を備えている。
−  非一過性コンピュータ可読記憶媒体。
−  言語入力をユーザから受信するための第１のコード命令。
−  複数の言語内容識別器を言語入力に適用するための第２のコード命令であって、複数の言語内容識別器の各々が、言語入力から抽出された１つまたは複数の特徴に対して一致信頼値を計算することによって、複数のハンドラのうちの各１つとの言語入力の関連性を評価するように適応されている、第２のコード命令。１つまたは複数の特徴は、ユーザによって表されたインテントおよびユーザによって示されたエンティティのうちの１つまたは複数を含む。
−  複数の言語内容識別器によって計算された一致信頼値に基づいて、複数のハンドラのうちの選択された１つに言語入力をルーティングするための第３のコード命令であって、選択されたハンドラが、言語入力に応答して１つまたは複数のアクションを開始するように適応されている、第３のコード命令。
第１、第２、および第３のコード命令は、１つまたは複数のプロセッサによって非一過性コンピュータ可読記憶媒体から実行される。
【０００９】
第１、第２、または第３、あるいはその組み合わせの態様のさらに別の実装形態では、言語入力が、テキストの言語入力および発話の言語入力から成る群の１つまたは複数の要素を含む。これによって、テキストまたは発話あるいはその両方のインタラクション形態を介してユーザと対話するように指示された複数のアプリケーションへの暗黙的ルーティングを適用できるようにしてよい。
【００１０】
第１、第２、または第３、あるいはその組み合わせの態様の任意選択的な実装形態では、言語入力が複数のセグメントにセグメント化され、各セグメントに対して複数の言語内容識別器によって計算された一致信頼値に従って、複数のセグメントの各々を複数のハンドラのうちの１つにルーティングする。ユーザとの対話セッションが、複数のハンドラによって処理され得る複数の意図されたアクションを埋め込んでいる可能性のある複雑な言語入力を含むことがあるため、言語入力のセグメント化によって、ハンドラとの関連性の解析、評価およびしたがって選択されたハンドラへのルーティングを大幅に簡略化することができる。
【００１１】
第１、第２、または第３、あるいはその組み合わせの態様のさらに別の実装形態では、各ハンドラに対して定義された１つまたは複数の定義済みの特徴に従って関連性を評価するように各言語内容識別器を適応させることによって、複数の言語内容識別器の各々が複数のハンドラのうちの各１つに関連付けられる。各言語内容識別器が各ハンドラに関連付けられるため、各言語内容識別器は、その各ハンドラの特性または特徴あるいはその両方に従って、特に適応されるか、構成されるか、またはトレーニングされるか、あるいはその組み合わせが行われてよく、したがって、各ハンドラとの関連性の評価の精度を改善する。
【００１２】
第１、第２、または第３、あるいはその組み合わせの態様のさらに別の実装形態では、一致信頼値は、１つまたは複数の特徴が各定義済みの特徴に一致する確率を示す。したがって、各言語内容識別器によって計算された一致信頼値は、各ハンドラとの抽出された特徴の関連性レベルを測定するための指標としての役割を果たすことができる。
【００１３】
第１、第２、または第３、あるいはその組み合わせの態様のさらに別の実装形態では、１つまたは複数の言語解析ツールを使用して言語入力からインテントが抽出され、このインテントは、意思、目的、対象、および目標から成る群の要素ある。インテントは、ユーザによって意図され、言語入力で表されたアクションを理解すること、または分類すること、あるいはその両方において重要な要素になることがある。したがって、インテントを正確に抽出し、ハンドラのうちの１つまたは複数に関連付けることは、重要であることがある。
【００１４】
第１、第２、または第３、あるいはその組み合わせの態様のさらに別の実装形態では、１つまたは複数の言語解析ツールを使用して言語入力からエンティティが抽出される。エンティティ（例えば、物体、項目、要素、対象のデバイス、対象のアプリケーションなど）は、ユーザによって意図され、言語入力で表されたアクションを理解すること、または分類すること、あるいはその両方において重要な要素になることがある。したがって、エンティティを正確に抽出し、ハンドラのうちの１つまたは複数に関連付けることが重要であることがある。
【００１５】
第１、第２、または第３、あるいはその組み合わせの態様の任意選択的な実装形態では、選択されるハンドラは、複数の言語内容識別器のうちの１つまたは複数によって提供された１つまたは複数のコンテキスト属性に基づいて選択される。１つまたは複数のコンテキスト属性は、次のうちの１つまたは複数を含む。
−  １つまたは複数の音声解析ツールを使用して抽出されたユーザの感情。
−  １つまたは複数の音声解析ツールを使用して抽出されたユーザの情緒。
−  １つまたは複数の位置検出ツールから取得されたユーザの地理的位置。
−  １つまたは複数の以前の言語入力から抽出された１つまたは複数の以前の特徴。
言語入力のコンテキスト、ユーザのコンテキストなどがユーザの実際のインテントを大いに表すことがあるため、コンテキスト属性を使用することによって、選択されるハンドラの選択の精度を大幅に上げることができる。
【００１６】
第１、第２、または第３、あるいはその組み合わせの態様の任意選択的な実装形態では、選択されるハンドラは、複数の言語内容識別器のうちの１つまたは複数によって抽出された１つまたは複数の強制のエンティティの検出に基づいて選択され、１つまたは複数の強制のエンティティは、インテントと共に言語入力に現れるように事前に定義される。エンティティが言語入力内に存在しない場合に、そのようなエンティティを強制的に含むように事前に定義された１つまたは複数のハンドラを、言語入力を処理することに適していないとして除外できるため、選択が強制の定義済みのエンティティに基づくことによって、選択されるハンドラの選択の精度を大幅に上げることができる。
【００１７】
第１、第２、または第３、あるいはその組み合わせの態様の任意選択的な実装形態では、選択されるハンドラは、複数の言語内容識別器のうちの１つまたは複数によって提供された１つまたは複数の操作上の属性に基づいて選択され、１つまたは複数の操作上の属性は、次のうちの１つまたは複数を含む。
−  しきい値。
−  言語入力を処理するための各ハンドラの能力。
−  特徴のうちの１つまたは複数を抽出するために複数の言語内容識別器のうちの１つまたは複数によって適用される解析の説明。
−  １つまたは複数の以前の言語入力に関連するルーティング情報。
−  複数のハンドラのうちの少なくとも別の１つから取得された情報。
特に、以前の言語入力またはユーザとの対話セッションの対話フローあるいはその両方に関して、ハンドラの操作上のコンテキストがユーザのインテントを大いに表すことがあるため、操作上の属性を使用することによって、選択されるハンドラの選択の精度を大幅に上げることができる。
【００１８】
第１、第２、または第３、あるいはその組み合わせの態様の任意選択的な実装形態では、選択されるハンドラは、複数の言語内容識別器のうちの少なくとも一部に割り当てられた優先度に従って選択される。特に言語内容識別器に関連付けられたハンドラに従って言語内容識別器に優先順位を付けることによって、特定のハンドラが言語入力にあまり関連していないと推定された場合でも別のハンドラに優先することができるように、各ハンドラの重要度または緊急度あるいはその両方を他のハンドラより上げること、または下げること、あるいはその両方を、可能にすることができる。
【００１９】
第１、第２、または第３、あるいはその組み合わせの態様の任意選択的な実装形態では、ハンドラに関連付けられた言語内容識別器が、定義済みのしきい値を超えることができない信頼値を提示する場合に、複数のハンドラのうちの１つまたは複数がフィルタで除去される。これによって、ハンドラに関連付けられた言語内容識別器が、定義済みのしきい値より低い一致信頼値を計算した場合に、そのハンドラが選択され得ない（すなわち、フィルタで除去される）ように、特定のハンドラと言語入力の間の最小の関連性レベルを設定することができてよい。
【００２０】
第１、第２、または第３、あるいはその組み合わせの態様の任意選択的な実装形態では、それらの複数のハンドラのうちの１つまたは複数は、言語入力を処理できないとして、ハンドラに関連付けられた言語内容識別器のうちの１つまたは複数によって示された場合に、フィルタで除去される。これによって、現在、言語入力を処理することに利用できないか、または言語入力を処理することができないか、あるいはその両方であるハンドラの選択を、回避することができ、したがって、ルーティング・プロセスの複雑さまたは待ち時間あるいはその両方を低減する。
【００２１】
第１、第２、または第３、あるいはその組み合わせの態様の任意選択的な実装形態では、複数の言語内容識別器のうちの複数の言語内容識別器によって類似する信頼値が計算された場合に、言語入力が複数のハンドラのうちの最近のハンドラにルーティングされ、この最近のハンドラは、複数の言語内容識別器に関連付けられたハンドラのグループ内の、以前の言語入力のルーティング先だった直近のハンドラである。以前の（過去の）対話フローは、言語入力の現在のルーティングを有意に示唆することがあり、したがって、選択されるハンドラの選択における精度を大幅に改善することができる。
【００２２】
第１、第２、または第３、あるいはその組み合わせの態様の任意選択的な実装形態では、複数の言語内容識別器によって計算された信頼値が定義済みのしきい値を超えることができない場合に、言語入力が複数のハンドラのうちのデフォルトのハンドラにルーティングされる。選択されるハンドラの選択において明確な解決を行うことができない場合、言語入力は、ユーザが意図をより良く述べるか、実現するか、または達成するか、あるいはその組み合わせを行うことができるようにすることがある、デフォルトのハンドラにルーティングされてよい。
【００２３】
特に定義されない限り、本明細書において使用される技術用語または科学用語あるいはその両方は、本発明が関係する当業者によって一般的に理解されている意味と同じ意味を有する。本明細書に記載された方法および材料に類似または相当する方法および材料が、本発明の実施形態の実践または試験において使用され得るが、以下では、例示的な方法または材料あるいはその両方が説明される。定義を含めて矛盾が生じた場合、本特許明細書が統制する。加えて、材料、方法、および例は、単なる例示であり、必ずしも限定するよう意図されていない。
【００２４】
本発明の実施形態の方法またはシステムあるいはその両方の実装は、選択された作業を手動で、自動で、またはこれらの組み合わせで実行または完了することを含むことができる。さらに、本発明の方法またはシステムあるいはその両方の実施形態の実際の実装および機器に従って、複数の選択された作業が、ハードウェアによって、ソフトウェアによって、またはファームウェアによって、あるいはオペレーティング・システムを使用して、これらの組み合わせによって、実装され得る。
【００２５】
例えば、本発明の実施形態に従って選択された作業を実行するためのハードウェアは、チップまたは回路として実装され得る。ソフトウェアとしての、本発明の実施形態に従う選択された作業は、適切なオペレーティング・システムを使用してコンピュータによって実行される複数のソフトウェア命令として、実装され得る。本発明の実施形態例では、本明細書において説明されている方法またはシステムあるいはその両方の実施形態例に従う１つまたは複数の作業が、複数の命令を実行するためのコンピューティング・プラットフォームなどの、データ・プロセッサによって実行される。任意選択的に、このデータ・プロセッサは、命令またはデータあるいはその両方を格納するための揮発性メモリ、あるいは命令またはデータあるいはその両方を格納するための不揮発性ストレージ（例えば、磁気ハード・ディスクまたは取り外し可能な媒体あるいはその両方）、あるいはその組み合わせを含む。任意選択的に、ネットワーク接続も提供される。キーボードまたはマウスなどのディスプレイまたはユーザ入力デバイスあるいはその両方も、任意選択的に提供される。
【００２６】
本明細書では、添付の図面を単に例として参照し、本発明の一部の実施形態が説明される。ここで、図面を詳細に参照するが、これらの詳細が例として示されており、本発明の実施形態の例示的な説明を目的としているということが強調される。これに関して、図面を使用して行う説明によって、本発明の実施形態を実践する方法を、当業者に対して明らかにする。
【図面の簡単な説明】
【００２７】
【図１】本発明の一部の実施形態に従って、言語入力の内容および任意選択的にコンテキストに基づいて、暗黙的ルーティングを使用して言語入力を言語内容ハンドラに自動的にルーティングする例示的なプロセスのフローチャートである。
【図２】本発明の一部の実施形態に従って、言語入力の内容および任意選択的にコンテキストに基づいて、暗黙的ルーティングを使用して言語入力を言語内容ハンドラに自動的にルーティングするための例示的なシステムの概略図である。
【発明を実施するための形態】
【００２８】
本発明は、その一部の実施形態において、ユーザから受信された言語入力を言語内容ハンドラに自動的にルーティングすることに関連しており、より詳細には、言語入力の内容および任意選択的にコンテキストに基づいて、暗黙的ルーティングを使用して言語入力を言語内容ハンドラに自動的にルーティングすることに関連しているが、これに限定されない。
【００２９】
本発明の一部の実施形態によれば、１人または複数のユーザから受信された１つまたは複数の言語入力（例えば、テキスト入力、音声入力など）を、ユーザによって表された１つまたは複数の定義済みの言語内容の特徴を処理する（扱う）ようにそれぞれ適応された１つまたは複数の言語内容ハンドラにルーティングするための方法、システム、およびコンピュータ・プログラム製品が提供されている。
【００３０】
自動化されたサービス（例えば、人工パーソナル・アシスタントまたは仮想パーソナル・アシスタントあるいはその両方、自律車両、モバイル・デバイス、ボット、インターネット・ボットなど）が絶えず進化するにつれて、自動化されたシステムおよびアプリケーションと人間のユーザとの間のインタラクション、および対話フローの構築、特に音声の会話が、極めて重要な要素になっている。しかし、そのようなシステムまたはアプリケーションあるいはその両方で双方向の対話フロー（特に、音声の会話）を開発すること、またはサポートすること、あるいはその両方を行うことは、大きな課題をもたらすことがある。考えられる言語入力（テキスト入力または音声入力あるいはその両方）を、特徴のセット、例えば、内容、ユーザのインテント（意思、目的、対象、目標など）、ユーザによって示されたエンティティ（物体、項目、要素、対象のデバイス、対象のアプリケーションなど）、現在の対話セッションの対話フローなどに分けること、分割すること、または分解すること、あるいはその組み合わせを行うことが、必要になることがある。
【００３１】
さらに、双方向の対話アプリケーションが、追加機能を提供するように強化され続けるにつれて、双方向の対話フローが、さらに著しく複雑になる可能性があり、ユーザから捕捉された言語入力に正確に応答するために、対話を処理することおよび扱うことにおいて、さらなる課題をもたらす。特に、単一の作業空間内の言語入力を処理することは、対話の複雑さのために、非効率的、不適切であり、場合によっては非現実的であると分かることがある。この制限を克服するために、複数の言語内容ハンドラが、ユーザから受信された異なる言語入力を正確に処理するように設計され、適応され、展開されてよい。言語内容ハンドラの各々は、ユーザから受信された特定の定義済みの言語入力またはその一部あるいはその両方に応答して、１つまたは複数のアクションを開始するように適応された処理モジュール（例えば、ソフトウェア・エージェント、アプリケーションなど）であってよい。言語内容ハンドラによって開始されるアクションは、ユーザによって示され、自動化されたサービス、システム、またはアプリケーション、あるいはその組み合わせによってサポートされている、複数の機能、特徴、または動作、あるいはその組み合わせのうちの１つまたは複数を含むことができる。各言語入力を指定された言語内容ハンドラにルーティングできるため、双方向の対話（特に、音声の会話）を処理することを大幅に改善し、より効率的にすることができる。
【００３２】
本発明の一部の実施形態によれば、言語入力を、それらの指定された言語内容ハンドラにルーティングすることは、受信された言語入力において表されたユーザのインテント（意思、目標、または対象、あるいはその組み合わせ）を推定すること、または予測すること、あるいはその両方を行うことによって、暗黙的に実行される。これは、１つまたは複数の言語入力を解析して、ユーザから受信された言語入力から１つまたは複数の特徴を抽出し、ユーザのインテントを評価することと、言語入力を、ユーザのインテントに最も良く役立つと推定された好ましい言語内容ハンドラにルーティングすることとによって、実行することができる。言語内容ハンドラごとに事前に定義された特徴に関して、抽出された特徴の対応（一致）が評価され、したがって、言語内容ハンドラの各々との言語入力の関連性が評価される。これによって、言語入力において具現化された特徴を決定することにおける曖昧さを大幅に減らし、場合によっては除去し、推定されたインテントに最も良く役立つと推定される適切な（好ましい）言語内容ハンドラを効率的に自動選択することができる。
【００３３】
言語入力の解析および特徴の抽出は、言語内容ハンドラのうちの各１つにそれぞれ関連付けられた複数の言語内容識別器によって、実行されてよい。言語内容識別器の各々は、言語入力において、各言語内容ハンドラに関連付けられた１つまたは複数の定義済みの特徴を識別するように、特に適応されて（すなわち、設計、構成、トレーニングなどを実行されて）得る。言語内容識別器の各々は、特徴を抽出するために、１つまたは複数の言語解析ツール（例えば、テキスト解析、音声認識、自然言語処理（ＮＬＰ）、音声解析など）を適用することができる。抽出された特徴ごとに、言語内容識別器は、抽出された特徴が各言語内容ハンドラに関連付けられた各定義済みの特徴に一致する確率を示す一致信頼値を計算することができる。
【００３４】
複数の言語内容識別器から受信された計算済みの一致信頼値を伴う抽出された特徴は、受信された言語入力を最も良く処理する（扱う、役立つなど）と推定される好ましい言語内容ハンドラを選択するために評価されてよく、すなわち、言語入力は、選択された言語内容ハンドラに最も良く関連すると推測される。その後、言語入力は、受信された言語入力に応答して１つまたは複数のアクションを実行できる選択された言語内容ハンドラにルーティングされる。言語内容ハンドラによって開始されるアクションは、ユーザとインタラクションする自動化されたサービス、システム、またはアプリケーション、あるいはその組み合わせによってサポートされている、複数の機能、特徴、または動作、あるいはその組み合わせのうちの１つまたは複数を含んでよい。
【００３５】
任意選択的に、言語入力は複数のセグメントにセグメント化され、各セグメントは、別々に解析され、特徴を抽出して一致信頼値を計算することができる言語内容識別器に提供される。その後、セグメントごとに、好ましい言語内容ハンドラが複数の言語内容ハンドラから選択されてよい。
【００３６】
任意選択的に、ルーティングは、言語内容識別器のうちの１つまたは複数によって提供されるか、またはグローバルに格納もしくは維持されるか、あるいはその組み合わせが行われる、１つまたは複数のコンテキスト属性または操作上の属性あるいはその両方に基づく。言語内容識別器のうちの１つまたは複数は、言語入力（例えば、以前の言語入力から抽出された特徴）、ユーザ（例えば、感情、情緒、地理的位置など）などに関連する１つまたは複数のコンテキスト属性を抽出してよい。言語内容識別器のうちの１つまたは複数は、例えばそれらの各言語内容ハンドラに関連する１つまたは複数の操作上の属性、それらの各言語内容ハンドラの以前のルーティング・イベント、１つまたは複数の他の言語内容ハンドラの操作上の属性などを、報告してもよい。コンテキスト属性または操作上の属性あるいはその両方のうちの１つまたは複数が、好ましい言語内容ハンドラの選択に使用されてよい。
【００３７】
言語入力を好ましい言語内容ハンドラに暗黙的にルーティングすることによって、双方向の対話フローを処理するための現在の既存の方法と比較して、大きな利点をもたらすことができる。
【００３８】
第１に、複数の言語内容ハンドラを使用し、言語入力をそれらの言語内容ハンドラに効率的にルーティングすることは、既存の方法（例えば、Ｗａｔｓｏｎ  Ｃｏｎｖｅｒｓａｔｉｏｎ  Ｓｅｒｖｉｃｅ（ＷＣＳ）、ＡＰＩ．ＡＩ、ｗｉｔ．ａｉなど）の一部よって実行されているような単一の作業空間内で対話フローを解析することと比較して、言語入力およびしたがって対話フローの解析の複雑さを大幅に低減することができる。この複雑さの低減は、例えば、ユーザのインテントのより正確な推定（言語入力における特徴の曖昧さを減らすか、または除去するか、あるいはその両方を行う）、言語入力を解析するための計算リソースの削減、受信された言語入力に応答することにおける待ち時間の低減などの、言語入力または対話フローあるいはその両方を処理することにおける複数の改善につながることがある。
【００３９】
さらに、言語入力を好ましい言語内容ハンドラに暗黙的にルーティングすることによって、既存の方法（例えば、Ａｍａｚｏｎ（Ｒ）によるＡｌｅｘａ（Ｒ）パーソナル・アシスタントなど）の一部によって実行されているように、現在の言語入力を処理するために使用されるべき言語内容ハンドラを明示的に述べることから、ユーザを解放することができる。自動化された双方向の対話の複雑さが増大するにつれて、言語内容ハンドラの数が極めて多くなり、選択された言語内容ハンドラに適切に話しかける（述べる）ために、どのインテントまたはアクションあるいはその両方に対してどの言語内容ハンドラが指定されるかについて絶えず注意をし、覚えておくことを、ユーザに強いることになる可能性がある。言語内容ハンドラがスキルと呼ばれているＡｌｅｘａ仮想パーソナル・アシスタントでは、スキルの数が急速に増大しており、ユーザは、自分の意思またはアクションあるいはその両方の各々を、スキルのうちの各１つに一意に関連付けし、述べることが必要になる可能性がある。したがって、使用される言語内容ハンドラを明示的に述べることからユーザを解放することは、大きな利点をもたらし得る。
【００４０】
さらに、コンテキスト属性または操作上の属性あるいはその両方を使用して言語入力を好ましい言語内容ハンドラに暗黙的にルーティングすることによって、言語入力における特徴の曖昧さを大幅に減らすか、または除去するか、あるいはその両方を行い、したがって、好ましい言語内容ハンドラを選択することにおける精度を上げることができる。これは、言語入力に関連する文脈的側面およびユーザに関連する文脈的側面が、ユーザのインテントを大いに表すことがあり、したがって、受信された言語入力においてユーザによって表されるインテントの推定を改善するために使用できるという事実による。加えて、言語内容ハンドラの操作上の属性は、特に現在の対話セッションの間に、以前の言語入力の以前のルーティングまたは処理あるいはその両方のイベントの識別に非常に役立つことがあり、したがって、現在の言語入力を処理するための好ましい言語内容ハンドラのより正確な選択を可能にする。
【００４１】
本発明の少なくとも１つの実施形態を詳細に説明する前に、本発明が、その適用において、以下の説明において示されたか、または図面もしくは実施例またはその両方において示されたか、あるいはその両方において示されたコンポーネントまたは方法あるいはその両方の構造および構成の詳細に必ずしも限定されないということが、理解されるべきである。本発明は、他の実施形態であることができ、またはさまざまな方法で実践もしくは実行することができる。
【００４２】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいる１つまたは複数のコンピュータ可読記憶媒体を含むことができる。
【００４３】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）、読み取り専用メモリ（ＲＯＭ：read-only memory）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：erasable programmable read-only memoryまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：static random access memory）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：compact disc read-only memory）、デジタル・バーサタイル・ディスク（ＤＶＤ：digital versatile disk）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波路またはその他の送信媒体を伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一過性の信号自体であると解釈されるべきではない。
【００４４】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【００４５】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：instruction-set-architecture）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードのいずれかであってよい。
【００４６】
コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）または広域ネットワーク（ＷＡＮ：wide area network）を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ：field-programmable gate arrays）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：programmable logic arrays）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【００４７】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【００４８】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された２つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【００４９】
ここで図面を参照すると、図１は、本発明の一部の実施形態に従って、言語入力の内容および任意選択的にコンテキストに基づいて、暗黙的ルーティングを使用して言語入力を言語内容ハンドラに自動的にルーティングする例示的なプロセスのフローチャートである。プロセス１００は、１人または複数のユーザから受信された１つまたは複数の言語入力（例えば、テキスト入力、音声入力など）を、ユーザによって表された１つまたは複数の定義済みの言語内容の特徴を処理する（扱う）ようにそれぞれ適応された１つまたは複数の言語内容ハンドラにルーティングするために実行されてよい。このルーティングは、言語入力を解析すること、および例えば、言語入力において識別された内容、インテント（意思、目的、対象、目標など）、エンティティ（物体、項目、要素、対象のデバイス、対象のアプリケーションなど）、対話フローなどの、１つまたは複数の特徴を抽出することに基づく。この解析および抽出は、複数の言語内容識別器によって実行されてよく、この複数の言語内容識別器は、言語内容ハンドラのうちの各１つにそれぞれ関連付けられ、言語入力において各言語内容ハンドラに関連付けられた定義済みの特徴のうちの１つまたは複数を識別するように適応されている。言語内容識別器の各々は、特徴を抽出するために、１つまたは複数の言語解析ツール（例えば、テキスト解析、音声認識、自然言語処理（ＮＬＰ）、音声解析など）を適用することができる。抽出された特徴ごとに、言語内容識別器は、抽出された特徴が各言語内容ハンドラに関連付けられた各定義済みの特徴に一致する確率を示す一致信頼値を計算することができる。
【００５０】
複数の言語内容識別器から受信された計算済みの一致信頼値を伴う抽出された特徴は、受信された言語入力を最も良く処理すると推定される好ましい言語内容ハンドラを選択するために評価され、すなわち、言語入力は、選択された言語内容ハンドラに最も良く関連すると推測される。その後、言語入力は、言語入力に応答して１つまたは複数のアクションを実行できる選択された言語内容ハンドラにルーティングされる。
【００５１】
任意選択的に、言語入力は複数のセグメントにセグメント化され、各セグメントは、特徴を抽出して一致信頼値を計算するために、別々に解析される。その後、セグメントごとに、複数の言語内容ハンドラから好ましい言語内容ハンドラが選択されてよい。
【００５２】
任意選択的に、ルーティングは、言語内容識別器のうちの１つまたは複数によって提供される１つまたは複数のコンテキスト属性または操作上の属性あるいはその両方に基づく。言語内容識別器のうちの１つまたは複数は、言語入力に関連する（例えば、以前の言語入力から抽出された特徴）、ユーザに関連する（例えば、感情、情緒、地理的位置など）など１つまたは複数のコンテキスト属性を抽出してよい。言語内容識別器のうちの１つまたは複数は、例えば、それらの各言語内容ハンドラ、以前のルーティング・イベント、１つまたは複数の他の言語内容ハンドラなどに関連する１つまたは複数の操作上の属性を報告してもよい。コンテキスト属性または操作上の属性あるいはその両方のうちの１つまたは複数が、好ましい言語内容ハンドラの選択に使用されてよい。
【００５３】
図２も参照すると、図２は、本発明の一部の実施形態に従って、言語入力の内容および任意選択的にコンテキストに基づいて、暗黙的ルーティングを使用して言語入力を言語内容ハンドラに自動的にルーティングするための例示的なシステムの概略図である。１人または複数のユーザ２５０からの言語入力を分類するための例示的なシステム２００は、コンピューティング・デバイス２０１（例えば、処理ノード、コンピュータ、ラップトップ、サーバ、モバイル・デバイス（例えば、タブレット、セル方式のデバイス、スマートフォンなど）、処理デバイスを内蔵する家庭用電気製品、自律車両の処理デバイス、または１つまたは複数のプロセッサを含む任意の処理デバイス、あるいはその組み合わせ）を含んでいる。コンピューティング・デバイス２０１は、入出力（Ｉ／Ｏ：Input/Output）インターフェイス２０２、プロセッサ２０４、およびストレージ２０６を含んでいる。
【００５４】
Ｉ／Ｏインターフェイス２０２は、ユーザ２５０とインタラクションするための１つまたは複数のインターフェイス、特に、ユーザ２５０から言語入力を捕捉するための特定のインターフェイスを含んでよい。言語入力は、例えば、テキスト入力、音声入力などを含んでよい。したがって、Ｉ／Ｏインターフェイス２０２は、１つまたは複数の音声インターフェイス（例えば、ユーザ２５０によって話された（声に出された）音声を捕捉するためのマイクロホン）を含んでよい。Ｉ／Ｏインターフェイス２０２は、ユーザ２５０によって挿入されたテキストを捕捉するために、１つまたは複数のテキスト・インターフェイス（例えば、キーボード、タッチスクリーン、デジタル・ペンなど）を含んでもよい。Ｉ／Ｏインターフェイス２０２は、１つまたは複数のネットワーク（例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ：Metropolitan Area Network）、セルラー・ネットワーク、またはインターネット、あるいはその組み合わせ）を接続して、１つまたは複数の遠隔の位置またはリソースあるいはその両方との通信を容易にするために、１つまたは複数の有線ネットワーク・インターフェイスまたは無線ネットワーク・インターフェイスあるいはその両方をさらに含んでよい。
【００５５】
プロセッサ２０４（同種または異種）は、クラスタまたは１つまたは複数のマルチコア・プロセッサあるいはその両方として並列処理用に配置された１つまたは複数のプロセッサを含んでよい。ストレージ２０６は、１つまたは複数の非一過性の永続的ストレージ・デバイス（例えば、ハード・ドライブ、フラッシュ・アレイなど）を含んでよい。ストレージ２０６は、１つまたは複数のネットワーク・ストレージ・デバイス（例えば、ストレージ・サーバ、ネットワークアクセス可能なストレージ（ＮＡＳ：network accessible storage）、ネットワーク・ドライブなど）をさらに含んでよい。ストレージ２０６は、１つまたは複数の揮発性デバイス（例えば、ランダム・アクセス・メモリ（ＲＡＭ）コンポーネントなど）を含んでもよい。
【００５６】
ストレージ２０６は、プロセッサ２０４によってストレージ２０６から実行され得る複数のプログラム命令をそれぞれ含んでいる１つまたは複数のソフトウェア・モジュール（例えば、ＯＳ、アプリケーション、ツール、エージェント、サービス、スクリプトなど）を格納してよい。例えば、プロセッサ２０４は、ユーザ２５０から捕捉された言語入力を、言語入力に応答して１つまたは複数のアクションを開始するように適応された１つまたは複数の言語内容ハンドラ２１２ソフトウェア・モジュールにルーティングするために、言語内容ルータ２１０ソフトウェア・モジュールを実行することができる。言語内容ハンドラ２１２によって開始されるアクションは、コンピューティング・デバイス２０１によってサポートされている、複数の機能、特徴、または動作、あるいはその組み合わせのうちの１つまたは複数を含むことができる。言語内容ハンドラ２１２の各々は、１つまたは複数の言語入力を処理し（扱い）、各言語内容ハンドラ２１２に関連付けられた１つまたは複数の定義済みの言語入力の検出に応答して、１つまたは複数のアクションを開始するように、適応されてよい。定義済みの言語入力は、受信された言語入力から抽出されることがある１つまたは複数の特徴（例えば、内容、インテント（意思、目的、対象、目標など）、エンティティ（物体、項目、要素、対象のデバイス、対象のアプリケーションなど）、対話フローなど）によって識別されるか、または特徴付けられるか、あるいはその両方が行われてよい。
【００５７】
必要に応じて、言語内容ルータ２１０、または言語内容ハンドラ２１２のうちの１つまたは複数、あるいはその両方は、１つまたは複数のリモート・プラットフォーム（例えば、リモート・サーバ）、クラウド・コンピューティング・プラットフォーム（例えば、Ａｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅ（ＡＷＳ）、Ｇｏｏｇｌｅ  Ｃｌｏｕｄ、Ｍｉｃｒｏｓｏｆｔ  Ａｚｕｒｅなど）などによって実行される。追加または代替あるいはその両方として、言語内容ルータ２１０、または言語内容ハンドラ２１２のうちの１つまたは複数、あるいはその両方は、１つまたは複数のリモート・サービス、リモート・サービス、クラウド・サービス、ＳａａＳ（Software as a Service）、ＰａａＳ（Platform as a Service）などとして実装されてよい。そのような実装では、コンピューティング・デバイス２０１は、リモートで実行されている言語内容ルータ２１０または言語内容ハンドラ２２２あるいはその両方とネットワークを経由して通信できるローカル・エージェントを実行してよい。このようにして、ローカル・エージェントは、捕捉された言語音声入力（例えば、テキスト入力または音声入力あるいはその両方）を、リモートで実行されている言語内容ルータ２１０または音声処理モジュール２２２あるいはその両方に、処理するために中継してよい。
【００５８】
任意選択的に、言語内容ルータ２１０、および言語内容ハンドラ２１２のうちの１つまたは複数は、ユーザ２５０によって使用されるコンピューティング・デバイス２０１などの１つまたは複数のコンピューティング・デバイスとネットワークを経由して通信して、ユーザ２５０から捕捉された言語入力を受信する、自動化されたソフトウェア・エージェント・プラットフォーム、システム、またはアプリケーション（例えば、ボット、インターネット・ボットなど）、あるいはその組み合わせによって実行される。
【００５９】
１０２に示されているように、プロセス１００は、言語内容ルータ２１０が、Ｉ／Ｏインターフェイス２０２を介して、ユーザ２５０から捕捉された言語入力を受信することから開始する。この言語入力は、テキストの内容、音声の内容などを含んでよく、それに応じて、言語入力の各タイプに適したＩ／Ｏインターフェイス２０２のインターフェイスを介して捕捉される。プロセス１００の実行を介してテキストの内容の形態での言語入力がシステム２００によってサポートされているときに、音声の内容の形態での言語入力が特に重要になることがある。
【００６０】
任意選択的に、言語内容ルータ２１０は、その言語入力を複数のセグメントにセグメント化し、各セグメントは、プロセス１００を介して独立して処理される。
【００６１】
１０４に示されているように、言語内容ルータ２１０は、受信された言語入力に複数の言語内容識別器を適用することができ、例えば内容ルータ２１０は、言語入力を複数の言語内容識別器に提供することができる。言語内容識別器の各々は、言語内容ハンドラ２１２のうちの各１つに関連付けられる。そのため、各言語内容ハンドラ２１２は、それに関連付けられた言語内容識別器のセット（１つまたは複数）を言語内容ルータ２１０に登録し、登録された言語内容識別器を言語入力に適用することを言語内容ルータ２１０に示してよい。
【００６２】
言語内容ハンドラ２１２の各々が、１つまたは複数の定義済みの言語入力に応答してアクションを実行するように適応されているため、各言語内容識別器は、その各言語内容ハンドラ２１２との言語入力との関連性を評価するように適応されてよい。定義済みの言語入力は、１つまたは複数の定義済みの特徴（例えば、内容、インテント（意思、目的、対象、目標など）、エンティティ（物体、項目、要素、対象のデバイス、対象のアプリケーションなど）、対話フローなど）によって識別されるか、または特徴付けられるか、あるいはその両方が行われてよい。したがって、各言語内容識別器は、言語入力において特徴を識別し、その各言語内容ハンドラ２１２に関連付けられた各定義済みの特徴との、それらの特徴の一致を評価するように、適応されてよい。そのため、言語内容識別器の各々は、その各言語内容ハンドラ２１２の特定の特性に従って、特に効率的に適応されて（例えば、設計、構成、トレーニングなどを実行されて）よい。具体的には、言語内容識別器の各々は、言語入力においてその各言語内容ハンドラ２１２の定義済みの特徴を識別することに重点を置くように、特に適応されて（例えば、設計、構成、トレーニングなどを実行されて）よい。例えば、言語内容識別器のうちの１つまたは複数は、その各言語内容ハンドラ２１２に関連付けられた特定の定義済みの特徴を識別するようにトレーニング・サンプル・データセットを使用してトレーニングされた、１つまたは複数の分類器（分類機能）を採用してよい。
【００６３】
各言語内容識別器は、１つまたは複数の言語解析ツール（例えば、テキスト解析、自然言語処理（ＮＬＰ）、音声認識、音声テキスト（ＳＴＴ）変換、音声合成、会話構築など）を使用して、言語入力から１つまたは複数の特徴を抽出してよい。言語内容識別器は、従来技術において知られているそのような言語解析ツール（例えば、Ｗａｔｓｏｎ  Ｃｏｎｖｅｒｓａｔｉｏｎ  Ｓｅｒｖｉｃｅ（ＷＣＳ）、Ｗａｔｓｏｎ  Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ（ＮＬＵ）、ｒｅｇｅｘｐ、ＡＰＩ．ＡＩ、ｗｉｔ．ａｉなど）を、さらに採用してよい。
【００６４】
１０６に示されているように、言語内容識別器の各々は、言語入力から抽出した特徴ごとに、抽出された特徴についての一致信頼値を計算してよい。計算された一致信頼値は、抽出された特徴が、各言語内容ハンドラ２１２に対して定義された（関連付けられた）各定義済みの特徴に実際に一致する確率（一致レベル）を示すことができる。一致信頼値は、通常、０が一致の最低の確率、１が最高の確率であるとして、［０，１］の範囲にマッピングされた正規化された値として表されてよい。しかし、一致信頼値の他の実装が使用されてよく、提示された実施形態は、限定と解釈されるべきではない。言語内容識別器は、抽出された特徴ごとに一致信頼値を計算することによって、言語内容識別器に関連付けられた言語内容ハンドラ２１２との、一般的には言語入力の関連性、および具体的には抽出された特徴の関連性を、評価してよい。
【００６５】
例えば、１つまたは複数の家庭用電気製品（例えば、照明、空調装置、シャッターなど）の動作を制御するように適応された家庭用電気製品制御言語内容ハンドラ２１２を想定する。そのような家庭用電気製品制御言語内容ハンドラ２１２は、１つまたは複数の定義済みの特徴（例えば、照明、空調、シャッター、オンにする、オフにする、開く、閉じるなど）に関連付けられてよい。定義済みの特徴は、位置（例えば、台所、居間、寝室など）をさらに含んでよい。したがって、家庭用電気製品制御言語内容ハンドラ２１２に関連付けられた言語内容識別器は、１つまたは複数の特徴を言語入力から抽出し、定義済みの特徴のうちの各１つに関して、抽出された特徴ごとに一致信頼値を計算することによって、抽出された特徴と、家庭用電気製品制御言語内容ハンドラ２１２に関連付けられた定義済みの特徴との間の一致を評価するように、適応されてよい。
【００６６】
別の例では、ユーザ２５０から受信された指示に従って車両（例えば、自動車）をルーティングするためのナビゲーション・システムを制御するように適応された、ナビゲーション制御言語内容ハンドラ２１２を想定する。そのようなナビゲーション言語内容ハンドラ２１２は、１つまたは複数の定義済みの特徴（例えば、運転、旅行、道路、住所、ルートなど）に関連付けられてよい。定義済みの特徴は、地理的位置（例えば、都市名、道路名、ランドマーク名など）をさらに含んでよい。したがって、ナビゲーション言語内容ハンドラ２１２に関連付けられた言語内容識別器は、１つまたは複数の特徴を言語入力から抽出し、定義済みの特徴のうちの各１つに関して、抽出された特徴ごとに一致信頼値を計算することによって、抽出された特徴と、ナビゲーション言語内容ハンドラ２１２に関連付けられた定義済みの特徴との間の一致を評価するように、適応されてよい。
【００６７】
任意選択的に、言語内容識別器のうちの１つまたは複数は、言語入力、ユーザ２５０などに関連する１つまたは複数のコンテキスト属性を抽出する。言語内容識別器は、各言語内容ハンドラ２１２に関連付けられた１つまたは複数の定義済みのコンテキスト属性との一致の確率を示すことができる一致信頼値を、抽出されたコンテキスト属性ごとにさらに計算してよい。
【００６８】
コンテキスト属性は、例えば、ユーザ２５０の感情または情緒あるいはその両方（例えば、ストレス、怒り、心配、喜び、くつろぎなど）を含んでよい。これは、当然ながら、ユーザ２５０によって話される（声に出される）音声入力の形態での言語入力にとって、非常に重要になることがある。言語内容識別器は、ユーザ２５０が言語入力を声に出しているときに経験することのある１つまたは複数の感情または情緒あるいはその両方を抽出する（すなわち、評価または推定あるいはその両方を行う）ために、１つまたは複数の解析ツール（例えば、音声解析ツールなど）を適用してよい。言語内容識別器は、言語内容識別器に関連付けられた各言語内容ハンドラ２１２に対して事前に定義され得る１つまたは複数の感情または情緒あるいはその両方との抽出された感情または情緒あるいはその両方の一致の確率を示すことができる一致信頼値を、抽出された感情または情緒あるいはその両方ごとに計算してよい。例えば、救急センターへの緊急呼び出しを開始するように適応された緊急時向け言語内容ハンドラ２１２は、１つまたは複数の定義済みの感情または情緒あるいはその両方（例えば、ストレス、心配など）に関連付けられてよい。緊急時向け言語内容ハンドラ２１２に関連付けられた言語内容識別器は、ユーザ２５０の感情または情緒あるいはその両方を言語入力から抽出し、抽出された感情または情緒あるいはその両方ごとに一致信頼値を計算し、緊急時向け言語内容ハンドラ２１２に関連付けられた定義済みの感情または情緒あるいはその両方のうちの各１つとの抽出された感情または情緒あるいはその両方の一致を評価するように適応されてよい。
【００６９】
コンテキスト属性は、例えば、ユーザ２５０の地理的位置（例えば、特定の地理的位置、屋内、屋外など）を含んでもよい。言語内容識別器は、そのような地理的位置情報を、コンピューティング・デバイス２０１で使用可能な１つまたは複数の位置検出ツール（例えば、インターネット・プロトコル（ＩＰ：Internet Protocol）アドレス、ナビゲーション・アプリケーション（例えば、全地球測位システム（ＧＰＳ：Global Positioning System）ベースのアプリケーション）、三角測量システム、施設存在アプリケーション（例えば、現在の位置を識別するために施設（例えば、住宅、事務所、工場など）内に展開された送信器と通信するアプリケーション）、現在行われているイベントの位置を示すことができるカレンダー・アプリケーションなど）から取得してよい。言語内容識別器は、地理的位置を、コンピューティング・デバイス２０１で使用可能な１つまたは複数のセンサ（例えば、屋内または屋外あるいはその両方の照明を示すことができる光センサ、ＧＰＳセンサなど）からさらに取得してよい。言語内容識別器は、言語内容識別器に関連付けられた各言語内容ハンドラ２１２に対して事前に定義され得る１つまたは複数の地理的位置との一致の確率を示すことができる一致信頼値を、地理的位置に対して計算することができる。例えば、ユーザ２５０から受信された指示に従って車両をルーティングするためのナビゲーション・システムを制御するように適応されたナビゲーション言語内容ハンドラ２１２は、ユーザ２５０が現在車両を運転していることを示す（提案する）ことができる屋外の地理的位置（具体的には、道路、幹線道路など）に関連付けられてよい。したがって、ナビゲーション言語内容ハンドラ２１２に関連付けられた言語内容識別器は、屋外の地理的位置（具体的には、道路、幹線道路など）に対しては高い一致信頼値を計算し、一方、屋内の地理的位置に対しては低い一致信頼値を計算するように、適応されてよい。
【００７０】
加えて、コンテキスト属性は、１つまたは複数の以前の言語入力から抽出された１つまたは複数の以前の特徴（例えば、インテント、エンティティ、対話フローなど）を含んでよい。さらに、言語内容識別器のうちの１つまたは複数は、以前の特徴のうちの１つまたは複数に対して一致信頼値を計算してよい。
【００７１】
任意選択的に、言語内容識別器のうちの１つまたは複数は、言語内容識別器が関連付けられた各言語内容ハンドラ２１２に対して事前に定義され得る、言語入力における強制のエンティティの特徴の存在を評価する。強制のエンティティは、各言語内容ハンドラ２１２に関連付けられた特定の１つまたは複数のインテントの特徴を含んでいる言語入力に現れるように、事前に定義されてよい。したがって、そのような制御言語内容ハンドラ２１２に関連付けられた言語内容識別器は、言語入力において強制のエンティティを識別し、それに応じて、制御言語内容ハンドラ２１２に関連付けられた強制のエンティティに対して一致信頼値を計算するように、適応されてよい。例えば、１つまたは複数の家庭用電気製品（例えば、照明、空調装置、シャッターなど）の動作を制御するように適応された家庭用電気製品制御言語内容ハンドラ２１２を想定する。１つまたは複数の強制のエンティティは、そのような家庭用電気製品制御言語内容ハンドラ２１２に対して事前に定義されてよく（例えば、照明、空調、シャッターなど）、具体的には、強制のエンティティは、１つまたは複数のインテントの特徴（例えば、オンにする、開くなど）に関して事前に定義されてよい。したがって、家庭用電気製品制御言語内容ハンドラ２１２に関連付けられた言語内容識別器は、言語入力において強制のエンティティを識別し、強制のエンティティに対して一致信頼値を計算するように、適応されてよい。例えば、関連付けられた言語内容識別器のうちの１つが、特定の一致信頼値で、オンにするインテントの特徴を識別した場合、関連付けられた言語内容識別器は、１つまたは複数の定義済みの強制のエンティティ（例えば、照明、空調など）をさらに検索し、それに応じて、それらの一致信頼値を計算してよい。
【００７２】
任意選択的に、言語内容識別器のうちの１つまたは複数は、それらの各言語内容ハンドラ２１２に関連する１つまたは複数の操作上の属性を報告するか、または提供するか、あるいはその両方を行う。
【００７３】
操作上の属性は、例えば、言語入力を処理する（扱う）ための、それらの各言語内容ハンドラ２１２の能力（状態）を含んでよい。例えば、特定の言語内容識別器が、言語入力から抽出された特定の特徴を評価し、各言語内容ハンドラ２１２に関連付けられた特定の定義済みの特徴を照合することを想定する。ただし、特定の定義済みの特徴が、通常、各言語内容ハンドラ２１２とのユーザ２５０の最初の対話中には使用されず、対話フローにおいて後で使用されるということを想定する。さらに、各言語内容ハンドラ２１２がまだ開始されていない（すなわち、現在のセッションの以前の言語入力が各言語内容ハンドラ２１２にルーティングされていない）ということを想定する。そのような場合、特定の言語内容識別器は、各言語内容ハンドラ２１２が、（現在の）言語入力を処理するための状態にない（初期化されていない）ため、（現在の）言語入力を処理できないということを示してよい。例えば、特定の言語内容識別器が、高い一致信頼値を伴う「はい」のエンティティの特徴を抽出したと想定する。しかし、通常は１つまたは複数の対話フローに沿って「はい」のエンティティの特徴を処理できる各言語内容ハンドラ２１２は、現在、初期化されていない状態にあり、この状態では、各言語内容ハンドラ２１２が「はい」のエンティティの特徴を処理できない。
【００７４】
操作上の属性は、言語入力から特徴を抽出するために言語内容識別器のうちの１つまたは複数によって使用される言語解析ツールの説明を含んでもよい。例えば、ＮＬＰのタイプ／バージョン、音声認識ツールのタイプ／バージョンなど。
【００７５】
操作上の属性は、各言語内容ハンドラ２１２に関連する以前のルーティング情報をさらに含んでよい。例えば、特定の言語内容識別器は、以前の言語入力を処理するために各言語内容ハンドラ２１２が選択された、定義済みの数の以前のルーティング・イベントを報告してよい。操作上の属性は、各言語内容ハンドラ２１２に関する以前の対話フロー情報をさらに含んでよい。以前の各対話フローは、ユーザ２５０との現在のセッション中に各言語内容ハンドラ２１２によって受信された１つまたは複数の言語入力を含んでいるか、または示すか、あるいはその両方であってよい。
【００７６】
各言語内容ハンドラ２１２に関連付けられた言語内容識別器のうちの１つまたは複数は、１つまたは複数の他の言語内容ハンドラ２１２に関連する１つまたは複数の操作上の属性をさらに報告するか、または提供するか、あるいはその両方を行ってよい。例えば、特定の言語内容ハンドラ２１２に関連付けられた特定の言語内容識別器は、１つまたは複数の他の言語内容ハンドラ２１２に関連する以前のルーティング情報を取得してよい。特定の言語内容識別器は、例えば、他の言語内容ハンドラ２１２に関連付けられた１つまたは複数の言語内容識別器から、そのようなルーティング情報を取得してよい。
【００７７】
本発明の一部の実施形態では、言語内容ルータ２１０は、コンテキスト情報または操作上の情報あるいはその両方を、言語内容識別器のうちの１つまたは複数に提供してよく、具体的には、コンテキスト情報または操作上の情報あるいはその両方が、各言語入力と共に提供されてよい。言語内容ルータ２１０は、例えば、１つまたは複数のコンテキスト属性または１つまたは複数の操作上の属性あるいはその両方を、言語内容識別器のうちの１つまたは複数に提供してよい。言語内容ルータ２１０によって特定の言語内容識別器に提供されたコンテキスト属性または１つまたは複数の操作上の属性あるいはその両方は、特定の言語内容識別器に関連付けられた言語内容ハンドラ２１２または１つまたは複数の他の言語内容ハンドラ２１２あるいはその両方に関連する属性を含んでよい。さらに、言語内容識別器のうちの１つまたは複数は、言語内容ルータ２１０から受信された１つまたは複数のコンテキスト属性または操作上の属性あるいはその両方に対して、一致信頼値を計算してよい。例えば、言語内容ルータ２１０は、特定の言語内容識別器に関連付けられた言語内容ハンドラ２１２または他の言語内容ハンドラ２１２あるいはその両方に関連する、以前のルーティング情報または以前の対話フローあるいはその両方を、特定の言語内容識別器に提供してよい。言語内容ルータ２１０によってコンテキスト情報または操作上の情報あるいはその両方が格納されるか、処理されるか、または提供されるか、あるいはその組み合わせが行われてよいため、言語内容ハンドラ２１２のうちの少なくとも一部が、互いに独立しているか、または場合によっては、互いに気付かないでいるか、あるいはその両方であってよく、それと同時に、他の言語内容ハンドラ２１２に関連するコンテキスト情報または操作上の情報あるいはその両方を利用することもできる。
【００７８】
言語内容識別器は、抽出された特徴に対する計算結果を含んでいる記録（例えば、ファイル、構造、リストなど）を作成してよい。言語内容識別器は、強制のエンティティに関するコンテキスト属性に対する計算結果を、任意選択的に提供してよい。言語内容識別器は、操作上の属性をさらに提供してよい。例示的なそのような記録が、下の疑似コードの抜粋１に提示されている。
【００７９】
【数１】
2021501356.tif 000003
【００８０】
１０８に示されているように、言語内容ルータ２１０は、言語入力から抽出された特徴ごとに複数の言語内容識別器によって提供された計算結果を収集し、計算された一致信頼値に基づいて、複数の言語内容ハンドラ２１２のうちの好ましい１つを選択する。例えば、言語内容ルータ２１０は、特定の言語内容識別器が特定の１つまたは複数の抽出された特徴に対して最高の一致信頼値を計算したということを識別してよく、したがって、好ましい言語内容ハンドラ２１２になるように、特定の言語内容識別器に関連付けられた言語内容ハンドラ２１２を選択してよい。別の例では、言語内容ルータ２１０は、言語内容識別器のうちの１つまたは複数によって抽出された複数の特徴に対して計算された一致信頼値を集計し、各言語内容識別器に関して、集計された一致信頼値を計算してよい。言語内容ルータ２１０は、最高の集計された一致信頼値を提示する言語内容識別器に関連付けられた言語内容ハンドラ２１２になるように、好ましい言語内容ハンドラ２１２を選択してよい。
【００８１】
任意選択的に、言語内容ルータ２１０は、コンテキスト属性のうちの１つまたは複数に関して言語内容識別器のうちの１つまたは複数によって提供された計算結果を収集し、コンテキスト属性に対して計算された一致信頼値を使用して、好ましい言語内容ハンドラ２１２を選択する。具体的には、言語内容ルータ２１０は、抽出された特徴に対して同じ言語内容識別器によって計算された一致信頼値と共に、コンテキスト属性の一致信頼値を集計してよい。これによって、言語入力のコンテキスト、ユーザ２５０のコンテキストなどがユーザ２５０の実際の意思を表すことがあるため、好ましい言語内容ハンドラ２１２の選択の精度を大幅に上げることができる。
【００８２】
例えば、第１の言語内容ハンドラ２１２に関連付けられた第１の言語内容識別器および第２の言語内容ハンドラ２１２に関連付けられた第２の言語内容識別器が、１つまたは複数の抽出された特徴に対して類似する一致信頼値を提示するということを想定する。「類似する」という用語の範囲は、複数の言語内容識別器によって計算された一致信頼値が定義済みの差分値以内である場合に、それらの一致信頼値が類似していると見なされるように、特定の差分値として事前に定義されてよい。さらに、第１の言語内容ハンドラ２１２が１つまたは複数の特定の感情または情緒あるいはその両方（例えば、ストレスまたは心配あるいはその両方）に関連付けられており、第２の言語内容ハンドラ２１２が１つまたは複数の他の感情または情緒あるいはその両方（例えば、喜び）に関連付けられていることを想定する。そのような場合、第１および第２の言語内容識別器は、言語入力から抽出されたユーザ２５０の感情または情緒あるいはその両方に応じて、感情または情緒あるいはその両方のコンテキスト属性に対して、著しく異なる一致信頼値を計算し得る。例えば、ユーザ２５０が現在ストレスを経験していることを想定すると、第１の言語内容識別器が、感情のコンテキスト属性に対して非常に高い一致信頼値を計算することがあり、一方、第２の言語内容識別器が、感情のコンテキスト属性に対して非常に低い一致信頼値を計算することがある。そのような場合、言語内容ルータ２１０は、好ましい言語内容ハンドラ２１２として第１の言語内容ハンドラ２１２を選択してよい。
【００８３】
別の例では、第１の言語内容ハンドラ２１２に関連付けられた第１の言語内容識別器および第２の言語内容ハンドラ２１２に関連付けられた第２の言語内容識別器が、１つまたは複数の抽出された特徴に対して類似する一致信頼値を提示するということを想定する。さらに、第１の言語内容ハンドラ２１２が屋内のコンテキストに関連付けられており、一方、第２の言語内容ハンドラ２１２が屋外のコンテキストに関連付けられているということを想定する。そのような場合、第１および第２の言語内容識別器は、ユーザ２５０の地理的位置に応じて、地理的位置のコンテキスト属性に対して、著しく異なる一致信頼値を計算し得る。例えば、ユーザ２５０が現在屋外にいると想定すると、第１の言語内容識別器が、感情のコンテキスト属性に対して非常に低い一致信頼値を計算することがあり、一方、第２の言語内容識別器が、感情のコンテキスト属性に対して非常に高い一致信頼値を計算することがある。そのような場合、言語内容ルータ２１０は、好ましい言語内容ハンドラ２１２として第２の言語内容ハンドラ２１２を選択してよい。
【００８４】
別の例では、言語内容ルータ２１０は、言語内容識別器のうちの１つまたは複数によって提供された以前の特徴のうちの１つまたは複数に基づいて、好ましい言語内容ハンドラ２１２を選択してよい。例えば、１つまたは複数の以前の言語入力またはその一部あるいはその両方に対して、特定の言語内容ハンドラ２１２が好ましい言語内容ハンドラ２１２として選択されたことを想定すると、言語内容ルータ２１０は、（現在の）言語入力のルーティング先になる好ましい言語内容ハンドラ２１２を選択するために、任意選択的に以前の特徴に割り当てられた計算済みの一致信頼値を伴う以前のルーティングを評価してよい。
【００８５】
任意選択的に、言語内容ルータ２１０は、言語内容識別器のうちの１つまたは複数によって提供された操作上の属性を収集し、操作上の属性を使用して、好ましい言語内容ハンドラ２１２を選択する。これによって、言語内容ハンドラ２１２の操作上の状態がユーザ２５０との以前のインタラクションを表すことがあるため、好ましい言語内容ハンドラ２１２の選択の精度をさらに上げることができる。本発明の一部の実施形態では、言語内容ルータ２１０は、操作上の属性のうちの１つまたは複数をグローバルに格納する。例えば、言語内容ルータ２１０は、特に現在の対話セッション中に、言語内容ハンドラ２１２への以前の言語入力のルーティングを反映する以前の（過去の）ルーティング情報または対話フローあるいはその両方を、格納してよい。言語内容識別器によって提供された操作上の属性を使用するのと同様に、言語内容ルータ２１０は、（現在の）言語入力のルーティング先とする好ましい言語内容ハンドラ２１２を選択するために、格納された操作上の情報を使用してよい。操作上の属性を言語内容識別器に格納すること、処理すること、または提供すること、あるいはその組み合わせを実行することによって、言語内容ハンドラ２１２のうちの少なくとも一部が、他の言語内容ハンドラ２１２に関連するコンテキスト情報または操作上の情報あるいはその両方を利用し得ながら、互いに独立していることが可能になってよい。
【００８６】
例えば、言語内容ルータ２１０は、特定のしきい値を超えることができない一致信頼値を生成した言語内容識別器に関連付けられた１つまたは複数の言語内容ハンドラ２１２をフィルタで除去してよい（すなわち、選択しなくてよい）。言語内容ハンドラ２１２は、グローバルに事前に定義されたしきい値を、言語内容ハンドラ２１２のうちの１つまたは複数をフィルタで除去するための基準として使用してよい。しかし、言語内容ハンドラ２１２は、言語内容識別器のうちの１つまたは複数によって提供された１つまたは複数の定義済みのしきい値を操作上の属性の一部として使用してよい。そのような場合、定義済みのしきい値は、異なる言語内容識別器ごとに異なっていてよい。任意選択的に、１つまたは複数の定義済みのしきい値の値は、異なる抽出された特徴、異なるコンテキスト属性、または異なる強制のエンティティ、あるいはその組み合わせに適していてよい。
【００８７】
別の例では、言語内容ルータ２１０は、関連付けられた言語内容識別器によって示された１つまたは複数の言語内容ハンドラ２１２を、言語入力を処理できない（すなわち、処理する状態にない）として、フィルタで除去して（選択しないで）よい。
【００８８】
別の例では、言語内容ルータ２１０は、１つまたは複数の強制のエンティティが言語入力に存在しないか、または定義済みのしきい値を超えることができない一致信頼値が強制のエンティティに割り当て得られているか、あるいはその両方であるということを、関連付けられた言語内容識別器が示した１つまたは複数の言語内容ハンドラ２１２を、フィルタで除去して（選択しないで）よい。
【００８９】
別の例では、言語内容ルータ２１０は、言語内容識別器のうちの１つまたは複数によって提供された以前のルーティング情報または以前の対話フロー情報あるいはその両方を使用して、好ましい言語内容ハンドラ２１２を選択してよい。例えば、複数の言語内容識別器が、言語入力から抽出された特徴に対して著しく類似する一致信頼値を提示するということを想定する。そのような場合、言語内容ルータ２１０は、以前の言語入力を最近処理した言語内容ハンドラ２１２になるように、好ましい言語内容ハンドラ２１２を選択してよい。例えば、第１の言語内容ハンドラ２１２に関連付けられた第１の言語内容識別器および第２の言語内容ハンドラ２１２に関連付けられた第２の言語内容識別器が、類似する一致信頼値を提示するということを想定する。さらに、第１の言語内容ハンドラ２１２にルーティングが行われたときより最近に、以前の言語入力が第２の言語内容ハンドラ２１２にルーティングされたということを想定する。そのような場合、時間局所性に基づいて、現在の言語入力が第２の言語内容ハンドラ２１２に向けられる確率が、現在の言語入力が第１の言語内容ハンドラ２１２に向けられる確率より高い可能性があるため、言語内容ルータ２１０は、第２の言語内容ハンドラ２１２を好ましい言語内容ハンドラ２１２として選択してよい。
【００９０】
別の例では、言語内容ルータ２１０は、操作上の属性は、言語入力から特徴を抽出するために言語内容識別器のうちの１つまたは複数によって使用される言語解析ツールの説明を使用して、好ましい言語内容ハンドラ２１２を選択してよい。例えば、複数の言語内容識別器が、言語入力から抽出された特徴に対して著しく類似する一致信頼値を提示するということを想定する。そのような場合、言語内容ルータ２１０は、言語内容識別器のうちの１つまたは複数によってどの言語解析ツールが適用されたかを評価し、例えば、最も高度な言語解析ツールを適用した言語内容識別器に関連付けられた言語内容ハンドラ２１２になるように、好ましい言語内容ハンドラ２１２を選択してよい。
【００９１】
任意選択的に、言語内容ルータ２１０は、言語内容ハンドラ２１２に優先順位を付ける、事前定義された、または動的に設定された、あるいはその両方である、優先順位付けメカニズムを使用する。優先度は、個別の言語内容ハンドラ２１２または言語内容ハンドラ２１２のグループあるいはその両方に適用されてよい。例えば、言語内容ハンドラ２１２の第２のグループと比較して高い優先度が言語内容ハンドラ２１２の第１のグループに割り当てられるということを想定する。言語内容ルータ２１０は、好ましい言語内容ハンドラ２１２を選択するときに、第１のグループを優先してよい。そのような場合、言語内容ルータ２１０は、第２のグループの言語内容ハンドラ２１２に関連付けられた言語内容識別器がより高い一致信頼値を提示する場合でも、第１のグループから好ましい言語内容ハンドラ２１２を選択してよい。しかし、第１のグループの言語内容ハンドラ２１２に関連付けられた言語内容識別器がいずれもしきい値を超える一致信頼値を提示しない場合、言語内容ルータ２１０は、第２のグループから好ましい言語内容ハンドラ２１２を選択してよい。
【００９２】
任意選択的に、言語内容ルータ２１０は、好ましい言語内容ハンドラ２１２としてデフォルトの言語内容ハンドラ２１２を選択する。例えば、言語内容ルータ２１０は、言語内容識別器がいずれも定義済みのしきい値を超える一致信頼値を生成しない場合に、デフォルトの言語内容ハンドラ２１２を選択する。これは、抽出された特徴、コンテキスト属性、または強制のエンティティ、あるいはその組み合わせに対して計算された一致信頼値に適用されてよい。言語内容ルータ２１０は、例えば、ブラウザ・タイプの言語内容ハンドラ２１２を好ましい言語内容ハンドラ２１２として選択し、そのブラウザに対して、特定のＷｅｂサイトにアクセスするように指示してよく、ユーザ２５０は、この特定のＷｅｂサイトにおいてブラウズして自分の意思を達成することができる。言語内容ルータ２１０は、コンテキスト属性のうちの１つまたは複数に従って、デフォルトの言語内容ハンドラ２１２を任意選択的に選択してよい。例えば、言語内容ハンドラ２１２が、言語内容識別器のうちの１つまたは複数によって提供されたコンテキスト属性に基づいて、ユーザ２５０が特定の地理的位置（例えば、映画館の複合施設）にいることを識別するということを想定する。そのような場合、言語内容ハンドラ２１２は、例えば、駐車発見言語内容ハンドラ２１２を好ましい言語内容ハンドラ２１２として選択し、ユーザ２５０が駐車場または駐車場所あるいはその両方の位置を特定するための助言を求めることができるようにしてよい。
【００９３】
１１０に示されているように、言語内容ルータ２１０は、選択された言語内容ハンドラ２１２に言語入力をルーティングする。当然ながら、言語入力がセグメント化された場合、プロセス１００のステップ１０４〜１１０を介してセグメントの各々が処理され、各セグメントに対して選択された、言語内容ハンドラ２１２のうちの１つにルーティングされる。
【００９４】
選択された言語内容ハンドラ２１２は、言語入力を介してユーザ２５０によって示された１つまたは複数のアクション（例えば、機能の呼び出し、特徴の適用、動作の開始など）を開始してよい。当然ながら、選択された言語内容ハンドラ２１２によって開始されるアクションは、コンピューティング・デバイス２０１によってサポートされる。例えば、コンピューティング・デバイス２０１がスマートフォンであることを想定すると、選択された言語内容ハンドラ２１２によって開始されるアクションは、例えば、モバイル・アプリケーションを開始すること（例えば、選択された連絡先への電話呼び出しを開始する、テキスト・メッセージまたは電子メール・メッセージあるいはその両方を選択された連絡先に送信する、特定のＷｅｂサイトへとブラウズする、写真を撮る、音声入力の記録を開始する、媒体の内容を再生する、コンピューティング・デバイスをオン／オフにする、音量を設定するなど）を含んでよい。別の例では、コンピューティング・デバイス２０１が自律車両の制御システムであることを想定すると、選択された言語内容ハンドラ２１２によって開始されるアクションは、例えば、車両を始動／停止すること、運転プロファイルを設定すること、照明をオン／オフにすること、特定の地理的位置にナビゲートすること、車両のインフォテインメント・システムで媒体の内容を再生することなどを含んでよい。別の例では、コンピューティング・デバイス２０１が１つまたは複数の家庭用電気製品の制御システム（例えば、仮想パーソナル・アシスタント）であることを想定すると、選択された言語内容ハンドラ２１２によって開始されるアクションは、例えば、家庭用電気製品をオン／オフにすること、家庭用電気製品でアプリケーションを開始すること、家庭用電気製品の状態をチェックすることなどを含んでよい。
【００９５】
本出願から成熟する特許権の存続期間の間に、多くの関連するシステム、方法、およびコンピュータ・プログラムが開発されることが期待されており、言語解析ツールという用語の範囲は、そのような新しい技術をすべて先験的に含むよう意図されている。
【００９６】
本明細書において使用されるとき、「約」という用語は、±１０％を指す。
【００９７】
「備える」、「備えている」、「含む」、「含んでいる」、「有している」、およびこれらの活用形は、「〜を含んでいるが、これに限定されない」ということを意味する。この用語は、「〜から成る」および「基本的に〜から成る」という用語を包含する。
【００９８】
「基本的に〜から成る」という語句は、組成または方法が追加の原料またはステップあるいはその両方を含んでよいということを意味するが、ただしそれは、追加の原料またはステップあるいはその両方が、請求された組成または方法の基本的な新しい特性を著しく変更しない場合に限る。
【００９９】
本明細書において使用されるとき、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈において特に明確に示されない限り、複数の参照を含む。例えば、「化合物」または「少なくとも１つの化合物」という用語は、化合物の混合を含む、複数の化合物を含んでよい。
【０１００】
本説明全体を通じて、本発明のさまざまな実施形態が、範囲の形式で提示されることがある。範囲の形式における説明が、単に便宜および簡潔さのためであり、本発明の範囲に対する柔軟性のない制限であると解釈されるべきではないということが、理解されるべきである。したがって、範囲の説明は、その範囲内の個別の数値に加えて、すべての可能な部分範囲を特に開示していると見なされるべきである。例えば、１〜６などの範囲の説明は、その範囲内の個別の数値（例えば、１、２、３、４、５、および６）に加えて、１〜３、１〜４、１〜５、２〜４、２〜６、３〜６などの部分範囲を特に開示していると見なされるべきである。このことは、範囲の幅に関わらず当てはまる。
【０１０１】
本明細書において数値範囲が示される場合は常に、示された範囲内で引用されたすべての数値（分数または整数）を含むことが意図されている。１番目に示された数字と２番目に示された数字「の間の範囲にわたる」、および１番目に示された数字「から」２番目に示された数字「までの範囲にわたる」という語句は、本明細書では交換可能なように使用されており、１番目に示された数字および２番目に示された数字、ならびにそれらの間のすべての分数および整数を含むよう意図されている。
【０１０２】
「例示的」という単語は、本明細書では「例、事例、または実例としての役割を果たす」ことを意味するために使用される。「例示的な」と説明されたすべての実施形態は、必ずしも、他の実施形態より好ましいとも、有利であるとも解釈されるべきでなく、または他の実施形態の特徴の組み込みを除外すると解釈されるべきでなく、あるいはその両方として解釈されるべきでない。
【０１０３】
「任意選択的」という単語は、本明細書では「一部の実施形態では提供され、他の実施形態では提供されない」ことを意味するために使用される。本発明のすべての特定の実施形態は、複数の「任意選択的」特徴を、そのような特徴が矛盾しない限り含んでよい。
【０１０４】
明確にするために別々の実施形態の文脈において説明された本発明の特定の特徴が、単一の実施形態において組み合わさって提供されてもよいということが、理解される。反対に、簡潔にするために単一の実施形態の文脈において説明された本発明のさまざまな特徴は、別々に、または任意の適切な部分的組み合わせで、あるいは本発明の任意のその他の説明された実施形態において適切であるように、提供されてもよい。さまざまな実施形態の文脈において説明された特定の特徴は、そのような要素なしでは実施形態が動作不能になるのでない限り、それらの実施形態の不可欠な特徴と見なされるべきではない。
【０１０５】
本発明は、その特定の実施形態と併せて説明されたが、多くの代替、変更、および変形が当業者にとって明らかであるということは明白である。したがって、添付の特許請求の範囲内に含まれるすべてのそのような代替、変更、および変形を包含することが、意図されている。
【０１０６】
本明細書において言及されたすべての公開文献、特許、および特許出願は、本明細書では、個々の公開文献、特許、または特許出願が具体的かつ個別に参照によって本明細書に組み込まれていると示された場合と同じ程度まで、全体的に参照によって本明細書に組み込まれる。加えて、本出願におけるすべての参照の引用または識別は、そのような参照が従来技術として本発明に使用可能であることの承認であると解釈されてはならない。セクションの見出しが使用されている範囲内で、それらの参照が必ずしも制限であると解釈されるべきではない。
【図１】
2021501356.tif 000004
【図２】
2021501356.tif 000005
【手続補正書】
【提出日】令和2年5月1日(2020.5.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
言語入力を複数のハンドラのうちの１つにルーティングする方法であって、
プロセッサが、
言語入力をユーザから受信することと、
複数の言語内容識別器を前記言語入力に適用することであって、前記複数の言語内容識別器の各々が、前記言語入力から抽出された少なくとも１つの特徴に対して一致信頼値を計算することによって、複数のハンドラのうちの各１つとの前記言語入力の関連性を評価するように適応されており、前記少なくとも１つの特徴が、前記ユーザによって表されたインテントおよび前記ユーザによって示されたエンティティのうちの少なくとも１つを含んでいる、前記適用することと、
前記複数の言語内容識別器によって計算された前記一致信頼値に基づいて、前記複数のハンドラのうちの選択された１つに前記言語入力をルーティングすることであって、前記選択されたハンドラが、前記言語入力に応答して少なくとも１つのアクションを開始するように適応されている、前記ルーティングすることと
を含む、方法。
【請求項２】
前記言語入力が、テキストの言語入力および発話の言語入力から成る群の少なくとも１つの要素を含んでいる、請求項１に記載の方法。
【請求項３】
前記言語入力を複数のセグメントにセグメント化することと、前記各セグメントに対して前記複数の言語内容識別器によって計算された前記一致信頼値に従って、前記複数のセグメントの各々を前記複数のハンドラのうちの１つにルーティングすることとをさらに含む、請求項１に記載の方法。
【請求項４】
前記各ハンドラに対して定義された少なくとも１つの定義済みの特徴に従って前記関連性を評価するように前記各言語内容識別器を適応させることによって、前記複数の言語内容識別器の各々が前記複数のハンドラのうちの各１つに関連付けられる、請求項１に記載の方法。
【請求項５】
前記一致信頼値が、前記少なくとも１つの特徴が各定義済みの特徴に一致する確率を示す、請求項１に記載の方法。
【請求項６】
少なくとも１つの言語解析ツールを使用して前記言語入力から前記インテントが抽出され、前記インテントが、意思、目的、対象、および目標から成る群の要素である、請求項１に記載の方法。
【請求項７】
少なくとも１つの言語解析ツールを使用して前記エンティティが前記言語入力から抽出される、請求項１に記載の方法。
【請求項８】
前記複数の言語内容識別器のうちの少なくとも１つによって提供された少なくとも１つのコンテキスト属性に基づいて前記選択されるハンドラを選択することをさらに含んでいる、請求項１に記載の方法。
【請求項９】
前記少なくとも１つのコンテキスト属性が、
少なくとも１つの音声解析ツールを使用して抽出された前記ユーザの感情と、
少なくとも１つの音声解析ツールを使用して抽出された前記ユーザの情緒と、
少なくとも１つの位置検出ツールから取得された前記ユーザの地理的位置と、
少なくとも１つの以前の言語入力から抽出された少なくとも１つの以前の特徴と
のうちの少なくとも１つを含んでいる、請求項８に記載の方法。
【請求項１０】
前記複数の言語内容識別器のうちの少なくとも１つによって抽出された少なくとも１つの強制のエンティティの検出に基づいて、前記選択されるハンドラを選択することをさらに含み、前記少なくとも１つの強制のエンティティが、前記インテントと共に前記言語入力に現れるように事前に定義される、請求項８に記載の方法。
【請求項１１】
前記複数の言語内容識別器のうちの少なくとも１つによって提供された少なくとも１つの操作上の属性に基づいて前記選択されるハンドラを選択することをさらに含んでいる、請求項１に記載の方法。
【請求項１２】
前記少なくとも１つの操作上の属性が、
しきい値と、
前記言語入力を処理するための前記各ハンドラの能力と、
前記少なくとも１つの特徴を抽出するために前記複数の言語内容識別器のうちの少なくとも１つによって適用される解析の説明と、
少なくとも１つの以前の言語入力に関連するルーティング情報と、
前記複数のハンドラのうちの少なくとも別の１つから取得された情報と
のうちの少なくとも１つを含んでいる、請求項１１に記載の方法。
【請求項１３】
前記複数の言語内容識別器のうちの少なくとも一部に割り当てられた優先度に従って前記選択されるハンドラを選択することをさらに含んでいる、請求項１に記載の方法。
【請求項１４】
定義済みのしきい値を超えることができない前記信頼値を提示する、前記複数の言語内容識別器のうちの１つに関連付けられた前記複数のハンドラのうちの少なくとも１つをフィルタで除去することをさらに含んでいる、請求項１に記載の方法。
【請求項１５】
前記言語入力を処理できないとして、前記複数の言語内容識別器のうちの関連付けられた１つによって示された、前記複数のハンドラのうちの少なくとも１つをフィルタで除去することをさらに含んでいる、請求項１に記載の方法。
【請求項１６】
前記複数の言語内容識別器のうちの複数の言語内容識別器によって類似する前記信頼値が計算された場合に、前記複数のハンドラのうちの最近のハンドラに前記言語入力をルーティングすることをさらに含んでおり、前記最近のハンドラが、前記複数の言語内容識別器に関連付けられたハンドラのグループ内の、以前の言語入力のルーティング先だった直近のハンドラである、請求項１に記載の方法。
【請求項１７】
前記複数の言語内容識別器によって計算された前記信頼値が定義済みのしきい値を超えることができない場合に、前記複数のハンドラのうちのデフォルトのハンドラに前記言語入力をルーティングすることをさらに含んでいる、請求項１に記載の方法。
【請求項１８】
言語入力を複数のハンドラのうちの１つにルーティングするためのシステムであって、
コンピュータ・プログラムを実行するように適応された少なくとも１つのプロセッサを備えており、前記コンピュータ・プログラムは、前記プロセッサに、請求項１〜請求項１７のいずれか１項に記載の方法の各ステップを実行させる、システム。
【請求項１９】
言語入力を複数のハンドラのうちの１つにルーティングするためのコンピュータ・プログラムであって、プロセッサに、請求項１〜請求項１７のいずれか一項に記載の方法の各ステップを実行させる、コンピュータ・プログラム。
【国際調査報告】
2021501356.tif 000006
2021501356.tif 000007