(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-14
(54)【発明の名称】コンテキストデータを使用した対話処理のための技術
(51)【国際特許分類】
G06F 16/90 20190101AFI20221107BHJP
【FI】
G06F16/90 100
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022516181
(86)(22)【出願日】2020-08-27
(85)【翻訳文提出日】2022-04-12
(86)【国際出願番号】 US2020048153
(87)【国際公開番号】W WO2021050284
(87)【国際公開日】2021-03-18
(32)【優先日】2019-09-12
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-08-26
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ジョンソン,マーク・エドワード
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175EA01
(57)【要約】
コンテキストレベルに関連付けてユーザについて格納されたデータを使用して対話処理タスクの効率および精度を向上させるための技術が記載されている。対話システムは、複数の構成されたコンテキストレベルに関連付けて履歴対話データを格納している。対話システムは、発話を受信し、この発話から曖昧性除去のための語を識別する。対話システムは、判断されたコンテキストレベルに基づいて、データベースに格納された関連する履歴データを識別する。この履歴データを使用してタスク(ユーザの好みに基づいて曖昧性を解決し、以前の対話に基づいて固有表現の曖昧性を除去し、クエリに対する以前に生成された回答を識別するなど)を実行し得る。対話システムは、コンテキストレベルに基づいて、関連する情報を効率的に識別して、識別された情報を使用して応答を提供することができる。
【特許請求の範囲】
【請求項1】
方法であって、
対話システムが、口頭発話をユーザから受信するステップと、
前記対話システムが、前記口頭発話を処理して、曖昧性除去のための語を識別するステップと、
前記対話システムが、曖昧性除去のための前記語について、複数の予め規定されたコンテキストレベルの中からコンテキストレベルを判断するステップと、
前記対話システムが、前記判断されたコンテキストレベルに基づいて、データベースを使用して前記語の値を識別するステップとを備え、前記データベースは、前記コンテキストレベルに関連付けて前記ユーザについて複数の値を格納しており、前記方法はさらに、
前記対話システムが、前記識別された値を使用して前記語の曖昧性を除去するステップを備える、方法。
【請求項2】
前記対話システムが、前記曖昧性を除去された語に基づいて前記口頭発話の論理形式を生成するステップと、
前記対話システムが、前記論理形式に基づいて応答を生成するステップと、
前記対話システムが、前記応答を前記ユーザに出力するステップとをさらに備える、請求項1に記載の方法。
【請求項3】
前記対話システムが、格納された実行結果を前記論理形式に基づいて前記データベースから識別するステップをさらに備え、
前記応答はさらに、前記実行結果に基づいて生成される、請求項2に記載の方法。
【請求項4】
前記対話システムが、前記口頭発話の表現、前記論理形式および前記応答を前記データベースに格納するステップをさらに備える、請求項2または3に記載の方法。
【請求項5】
前記値を識別するステップは、
前記判断されたコンテキストレベルに基づいて、複数のコンテキストレベルベースのデータベースの中から前記コンテキストレベルの前記データベースを選択するステップと、
前記ユーザの識別子および前記語を用いて前記選択されたデータベースに照会して、前記値を識別するステップとを含む、先行する請求項のいずれか1項に記載の方法。
【請求項6】
前記対話システムが、前記ユーザとの複数の以前の対話についての格納データを前記データベースから識別するステップと、
前記識別されたデータを解析して、前記値を計算するステップとをさらに備える、先行する請求項のいずれか1項に記載の方法。
【請求項7】
前記複数の予め規定されたコンテキストレベルは、直近コンテキスト、短期間コンテキスト、中期間コンテキストおよび長期間コンテキストを含む、先行する請求項のいずれか1項に記載の方法。
【請求項8】
1つまたは複数のプロセッサによって実行可能な複数の命令を格納する非一時的なコンピュータ読取可能メモリであって、前記複数の命令は、前記1つまたは複数のプロセッサによって実行されると前記1つまたは複数のプロセッサに処理を実行させる命令を備え、前記処理は、
口頭発話をユーザから受信するステップと、
前記口頭発話を処理して、曖昧性除去のための語を識別するステップと、
曖昧性除去のための前記語について、複数の予め規定されたコンテキストレベルの中からコンテキストレベルを判断するステップと、
前記判断されたコンテキストレベルに基づいて、データベースを使用して前記語の値を識別するステップとを備え、前記データベースは、前記コンテキストレベルに関連付けて前記ユーザについて複数の値を格納しており、前記処理はさらに、
前記識別された値を使用して前記語の曖昧性を除去するステップを備える、非一時的なコンピュータ読取可能メモリ。
【請求項9】
前記処理はさらに、
前記曖昧性を除去された語に基づいて前記口頭発話の論理形式を生成するステップと、
前記論理形式に基づいて応答を準備するステップと、
前記応答を前記ユーザに出力するステップとを備える、請求項8に記載の非一時的なコンピュータ読取可能メモリ。
【請求項10】
前記処理はさらに、
格納された実行結果を前記論理形式に基づいて前記データベースから識別するステップを備え、
前記応答はさらに、前記実行結果に基づいて生成される、請求項9に記載の非一時的なコンピュータ読取可能メモリ。
【請求項11】
前記処理はさらに、
前記口頭発話の表現、前記論理形式および前記応答を前記データベースに格納するステップを備える、請求項9または10に記載の非一時的なコンピュータ読取可能メモリ。
【請求項12】
前記値を識別するステップは、
前記判断されたコンテキストレベルに基づいて、複数のコンテキストレベルベースのデータベースの中から前記コンテキストレベルの前記データベースを選択するステップと、
前記ユーザの識別子および前記語を用いて前記選択されたデータベースに照会して、前記値を識別するステップとを含む、請求項8~11のいずれか1項に記載の非一時的なコンピュータ読取可能メモリ。
【請求項13】
前記処理はさらに、
前記ユーザとの複数の以前の対話についての格納データを前記データベースから識別するステップと、
前記識別されたデータを解析して、前記値を計算するステップとを備える、請求項8~12のいずれか1項に記載の非一時的なコンピュータ読取可能メモリ。
【請求項14】
前記複数の予め規定されたコンテキストレベルは、直近コンテキスト、短期間コンテキスト、中期間コンテキストおよび長期間コンテキストを含む、請求項8~13のいずれか1項に記載の非一時的なコンピュータ読取可能メモリ。
【請求項15】
システムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合されたメモリとを備え、前記メモリは、前記1つまたは複数のプロセッサによって実行可能な複数の命令を格納しており、前記複数の命令は、前記1つまたは複数のプロセッサによって実行されると前記1つまたは複数のプロセッサに処理を実行させる命令を備え、前記処理は、
口頭発話をユーザから受信するステップと、
前記口頭発話を処理して、曖昧性除去のための語を識別するステップと、
曖昧性除去のための前記語について、複数の予め規定されたコンテキストレベルの中からコンテキストレベルを判断するステップと、
前記判断されたコンテキストレベルに基づいて、データベースを使用して前記語の値を識別するステップとを備え、前記データベースは、前記コンテキストレベルに関連付けて前記ユーザについて複数の値を格納しており、前記処理はさらに、
前記識別された値を使用して前記語の曖昧性を除去するステップを備える、システム。
【請求項16】
前記処理はさらに、
前記曖昧性を除去された語に基づいて前記口頭発話の論理形式を生成するステップと、
前記論理形式に基づいて応答を準備するステップと、
前記応答を前記ユーザに出力するステップとを備える、請求項15に記載のシステム。
【請求項17】
前記処理はさらに、
格納された実行結果を前記論理形式に基づいて前記データベースから識別するステップを備え、
前記応答はさらに、前記実行結果に基づいて生成される、請求項16に記載のシステム。
【請求項18】
前記処理はさらに、
前記口頭発話の表現、前記論理形式および前記応答を前記データベースに格納するステップを備える、請求項16または17に記載のシステム。
【請求項19】
前記値を識別するステップは、
前記判断されたコンテキストレベルに基づいて、複数のコンテキストレベルベースのデータベースの中から前記コンテキストレベルの前記データベースを選択するステップと、
前記ユーザの識別子および前記語を用いて前記選択されたデータベースに照会して、前記値を識別するステップとを含む、請求項15~18のいずれか1項に記載のシステム。
【請求項20】
前記処理はさらに、
前記ユーザとの複数の以前の対話についての格納データを前記データベースから識別するステップと、
前記識別されたデータを解析して、前記値を計算するステップとを備える、請求項15~19のいずれか1項に記載のシステム。
【請求項21】
対話システムであって、
口頭発話をユーザから受信するための手段と、
前記口頭発話を処理して、曖昧性除去のための語を識別するための手段と、
曖昧性除去のための前記語について、複数の予め規定されたコンテキストレベルの中からコンテキストレベルを判断するための手段と、
前記コンテキストレベルに基づいて、前記曖昧性を除去された語に従って応答を準備するための手段と、
前記応答を前記ユーザに出力するための手段とを備える、対話システム。
【請求項22】
前記判断されたコンテキストレベルに基づいて、データベースを使用して前記語の値を識別するための手段をさらに備え、前記データベースは、前記コンテキストレベルに関連付けて前記ユーザについて複数の値を格納しており、前記対話システムはさらに、
前記識別された値を使用して前記語の曖昧性を除去するための手段と、
前記曖昧性を除去された語に基づいて前記口頭発話の論理形式を生成するための手段と、
前記論理形式に基づいて前記応答を準備するための手段とをさらに備える、請求項21に記載の対話システム。
【請求項23】
格納された実行結果を前記論理形式に基づいて前記データベースから識別するための手段をさらに備え、
前記応答はさらに、前記実行結果に基づいて生成される、請求項22に記載のシステム。
【請求項24】
前記口頭発話の表現、前記論理形式および前記応答を前記データベースに格納するための手段をさらに備える、請求項22に記載のシステム。
【請求項25】
前記値を識別するステップは、
前記判断されたコンテキストレベルに基づいて、複数のコンテキストレベルベースのデータベースの中から前記コンテキストレベルの前記データベースを選択するステップと、
前記ユーザの識別子および前記語を用いて前記選択されたデータベースに照会して、前記値を識別するステップとを含む、請求項21に記載のシステム。
【請求項26】
前記ユーザとの複数の以前の対話についての格納データを前記データベースから識別するための手段と、
前記識別されたデータを解析して、前記値を計算するための手段とをさらに備える、請求項21に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、「コンテキストベースの対話技術(CONTEXT-BASED DIALOG TECHNIQUES)」と題される2019年9月12日に出願された米国出願番号第62/899,649号および2020年8月26日に出願された米国出願番号第17/003,250号の、米国特許法第119条(e)のもとでの利益および優先権を主張し、これらの内容は、すべての目的のために全文が引用によって本明細書に援用される。
【0002】
技術分野
本開示は、一般に対話システムに関する。より具体的には、本開示は、履歴コンテキストのレベルを使用して対話タスク(固有表現連結および結果順序付けなど)に影響を及ぼすための技術について記載しているが、それに限定されるものではない。
【背景技術】
【0003】
背景
現在、ユーザが音声または口頭のスピーチを使用してデバイスと直接対話することを可能にするデバイスが増えつつある。たとえば、ユーザは、このようなデバイスに自然言語で話しかけることができ、ユーザは、質問をしたり、実行すべき何らかのアクションを要求する発言をしたりし得る。これに応答して、デバイスは、要求されたアクションを実行したり、音声出力を使用してユーザの質問に応答したりする。音声を使用して直接対話することは、人間が周囲とコミュニケーションをとるためのより自然で直観的な方法であるので、このような音声ベースのシステムの人気は、天文学的な速度で上昇している。
【発明の概要】
【発明が解決しようとする課題】
【0004】
現在の対話システムは、コンテキストを活用する能力が限られている。最近の入力に基づいてコンテキスト情報を見分けるシステムは存在している。たとえば、いくつかの既存のシステムは、システムが受信した最後の文の中で命名されている人を識別することによって代名詞を解決することができる。しかし、従来のシステムでは、コンテキスト情報は十分に活用されない。
【課題を解決するための手段】
【0005】
簡単な概要
本開示は、一般に対話システムに関する。より特定的には、履歴コンテキストのレベルを使用して対話タスク(固有表現連結および結果順序付けなど)に影響を及ぼすための技術が記載されている。方法、システム、1つまたは複数のプロセッサによって実行可能なプログラム、コードまたは命令を格納する非一時的なコンピュータ読取可能記憶媒体などを含むさまざまな実施形態が本明細書に記載されている。
【0006】
特定の実施形態において、対話システムは、口頭発話をユーザから受信する。上記対話システムは、上記口頭発話を処理して、曖昧性除去のための語を識別する。上記対話システムは、曖昧性除去のための上記語について、複数の予め規定されたコンテキストレベルの中からコンテキストレベルを判断する。上記対話システムは、上記判断されたコンテキストレベルに基づいて、データベースを使用して上記語の値を識別し、上記データベースは、上記コンテキストレベルに関連付けて上記ユーザについて複数の値を格納しており、上記対話システムはさらに、上記識別された値を使用して上記語の曖昧性を除去する。
【0007】
いくつかの局面において、上記対話システムはさらに、上記曖昧性を除去された語に基づいて上記口頭発話の論理形式を生成し、上記論理形式に基づいて応答を生成し、上記応答を上記ユーザに出力する。いくつかの局面において、上記対話システムはさらに、格納された実行結果を上記論理形式に基づいて上記データベースから識別し、上記応答はさらに、上記実行結果に基づいて生成される。いくつかの局面において、上記対話システムはさらに、上記口頭発話の表現、上記論理形式および上記応答を上記データベースに格納する。
【0008】
いくつかの局面において、上記値を識別することは、上記判断されたコンテキストレベルに基づいて、複数のコンテキストレベルベースのデータベースの中から上記コンテキストレベルの上記データベースを選択することと、上記ユーザの識別子および上記語を用いて上記選択されたデータベースに照会して、上記値を識別することとを含む。いくつかの局面において、上記対話システムはさらに、上記ユーザとの複数の以前の対話についての格納データを上記データベースから識別し、上記識別されたデータを解析して、上記値を計算する。いくつかの局面において、上記複数の予め規定されたコンテキストレベルは、直近コンテキスト、短期間コンテキスト、中期間コンテキストおよび長期間コンテキストを含む。
【0009】
実施形態はさらに、本明細書に記載されている方法を実行するように構成されたシステムおよびコンピュータ読取可能媒体(たとえば、非一時的なコンピュータ読取可能メモリ)を含む。
【0010】
上記は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲および添付の図面を参照するとより明らかになるであろう。
【図面の簡単な説明】
【0011】
【
図1】特定の実施形態に係る、対話システムを示す簡略化されたブロック図である。
【
図2】特定の実施形態に係る、
図1の対話システムのコンテキストレベルのデータベースを示す簡略化されたブロック図である。
【
図3】特定の実施形態に係る、コンテキストベースの対話処理のための方法を示す簡略化されたフローチャートである。
【
図4】特定の実施形態に係る、さらに他のコンテキストベースの対話処理技術を示す簡略化されたフローチャートである。
【
図5】特定の実施形態に係る、
図3~
図4の処理において使用され得るコンテキストベースの値を生成するための方法を示す簡略化されたフローチャートである。
【
図6】一実施形態を実現するための分散型システムの簡略図である。
【
図7】特定の実施形態に係る、さまざまなストレージ関連サービスがクラウドサービスとして提供され得るクラウドベースのシステム環境の簡略化されたブロック図である。
【
図8】特定の実施形態を実現するために使用され得る例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0012】
詳細な説明
以下の説明には、特定の実施形態を十分に理解できるようにするために、具体的な詳細が説明の目的で記載されている。しかし、これらの具体的な詳細がなくてもさまざまな実施形態を実施できるということは明らかであろう。図面および説明は、限定的であるよう意図されるものではない。本明細書において、「例示的な」という単語は、「例、例証または例示としての役割を果たす」ことを意味するように使用されている。例示的であるとして本明細書に記載されているいかなる実施形態または設計も、必ずしも他の実施形態または設計よりも好ましいまたは有利であると解釈されるものではない。
【0013】
音声入力および音声出力を介してユーザと対話することができる音声対応システムは、さまざまな形態のものがある。たとえば、このようなシステムは、スタンドアロンのデバイス、デジタルまたは仮想アシスタント、音声対応サービスなどとして提供され得る。これらの形態の各々では、システムは、音声またはスピーチ入力を受信して、これらの入力を理解して、これらの入力に応答して応答を生成したりアクションを起こしたりして、音声出力を使用して応答を出力することができる。特定の実施形態において、このような音声対応システムにおける対話機能は、対話システムまたはインフラストラクチャ(「対話システム」)によって提供される。対話システムは、音声またはスピーチ入力を受信して、これらの音声入力を解釈して、対話を維持して、場合によってはこれらの音声入力の解釈に基づいて1つまたは複数のアクションを実行したり実行させたりして、適切な応答を準備して、音声またはスピーチ出力を使用してこれらの応答をユーザに出力するように構成される。
【0014】
上記のように、従来の対話システムでは、コンテキストは、非常に限定された態様で使用される。従来のシステムは、(たとえば、現在の対話セッションからの)極めて短期間のコンテキストを把握することはできるが、従来の対話システムは、ユーザのためにコンテキストデータを体系的に管理することはない。その結果、従来のシステムは、曖昧性を解消するためにさらに他の入力および出力を必要とする場合がある。たとえば、ユーザが「私の好きな航空会社」または「私が今朝話していた人」と言うと、従来の対話システムは、このようなユーザ入力の意味を解釈するための必要な情報にアクセスできない場合がある。このような場合、対話システムは、必要な情報を要求して応答を受信および処理しなければならず、これにより、対話セッションの全長、ならびに、クエリに回答するのに必要な時間および計算リソースが増加する。
【0015】
本明細書に記載されている技術は、さまざまなユーザについてのさまざまなコンテキストレベルに関連付けて格納されている履歴対話データを使用することによって対話処理タスクの効率を向上させる。実施形態は、関連付けられたコンテキスト、論理形式、実行結果、日付および時刻、ならびに他のメタデータを含む履歴クエリへのアクセスを可能にする。本明細書に開示されている対話システムは、ユーザについての情報(どのような種類の医療保険に入っているか、どこで働いているか、どの航空会社を予約することを好むか、など)を維持し得る。対話システムは、コンテキストレベル(たとえば、直近コンテキスト、短期間コンテキスト、中期間コンテキストおよび長期間コンテキスト)に基づく情報を使用して、ユーザの要求を理解する。対話システムは、一連のさまざまなコンテキストを追跡して、ユーザの要求を理解する際にそれらのコンテキストを好みのソースとして使用することができる。対話システムは、この情報を使用して、コンテキストデータ(たとえば、「たった今私に電話をかけてきた人事(HR)担当者に電話をかけ直してください」)を含む要求を処理することができ、また、以前に成功した要求に基づいて現在の要求の解釈に間接的に影響を及ぼすことができる。
【0016】
いくつかの実施形態において、ユーザが対話システムと対話する際、対話システムは、ユーザの以前の好みを覚えていて、それらの好みを本質的に背景仮定として使用することができる。たとえば、ユーザは、フライトを予約するように対話システムに依頼する。対話システムは、ユーザが特定の航空会社で飛ぶことを以前に選択したことを示す情報を格納している。システムは、結果を生成する際、当該特定の航空会社でのフライトを他の航空会社でのフライトよりも高くランク付けする。
【0017】
いくつかの実施形態において、システムは、固有表現連結によって結果を体系的に個々人向けに最適化する。固有表現連結は、固有表現(たとえば、人、ものなど)をデータベース内の項目に結び付けることを含み得る。たとえば、自動車における対話システムが「スターバックス(登録商標)に連れて行ってください」という音声入力を受信する。対話システムは、多くの可能な場所の特定のスターバックス(登録商標)を選択しなければならない。スターバックスという当該単語をスターバックス(登録商標)コーヒーショップの特定のインスタンスに結び付けることは、固有表現連結を使用して結果を個々人向けに最適化することの一例であり、これは、本明細書に記載されているコンテキストデータを使用して効率的に実現することができる。
【0018】
いくつかの実施形態において、さまざまなレベルのコンテキスト(短期間、中期間および長期間など)が確立される。短期間コンテキストは、代名詞を解決するために使用され得る。中期間コンテキストは、「私が今朝話していた人事HRの人に電話をかけ直してください」のような要求に回答するために使用され得る。長期間コンテキストは、好み(特定の航空会社で飛ぶことが好きか嫌いか、など)を含み得る。コンテキストレベルの各々についてのデータは、さまざまな態様で維持されて使用され得る。
【0019】
特定の実施形態において、対話システムは、曖昧性除去タスクを実行して、曖昧性を解消する。このようなタスクは、関連する詳細(たとえば、航空会社または日付を指定しない「タンパへのフライトを手配してください」)をユーザが無視する場合、固有表現連結を含み得る。対話システムは、履歴音声入力および/またはユーザに関連付けられた他のデータのユーザ固有のデータベースを維持し、このユーザ固有のデータベースを使用して、このような曖昧性を解消するためのコンテキストのさまざまなレベルを判断することができる。
【0020】
いくつかの実施形態において、対話システムは、ユーザによって以前に表明された明示的および/または暗黙的な好みに基づいて判断を行い得る(たとえば、曖昧性を解消し得る)。明示的な好みは、ユーザが単語を述べることに対応し得る。暗黙的な好みは、ユーザがユーザに提示された選択肢のリストからあるアイテムを選択すること、ユーザが当該場所を訪れることなどによって表明され得る。
【0021】
図1は、いくつかの実施形態に係る対話システム100の一例を示す図である。対話システム100は、音声またはスピーチ入力104(スピーチ発話とも称される)をユーザ102から受信するように構成される。次いで、対話システム100は、これらの音声入力を解釈し得る。対話システム100は、ユーザ102との対話を維持して、場合によってはこれらの音声入力の解釈に基づいて1つまたは複数のアクションを実行したり実行させたりし得る。対話システム100は、適切な応答を準備して、音声またはスピーチ出力を使用してこれらの応答をユーザに出力し得る。
【0022】
特定の実施形態において、対話システムによって実行される処理は、コンポーネントまたはサブシステムのパイプラインによって実現され、これらのコンポーネントまたはサブシステムは、音声入力コンポーネント105と、ウェイクワード検出(WD)サブシステム106と、自動音声認識(ASR)サブシステム108と、自然言語理解(NLU)サブシステム110とを含み、NLUサブシステム110は、固有表現認識部(NER)サブシステム112と、セマンティックパーササブシステム114と、コンテキストサブシステム115とを含み、これらのコンポーネントまたはサブシステムはさらに、対話マネージャ(DM)サブシステム116と、自然言語生成部(NLG)サブシステム118と、テキスト・トゥ・スピーチ(TTS)サブシステム120と、音声出力コンポーネント124と、1つまたは複数のコンテキストレベルのデータベース(130~136)とを含む。上記のサブシステムは、ソフトウェアのみで(たとえば、1つまたは複数のプロセッサまたはコアによって実行可能なコード、プログラムまたは命令を使用して)実現されてもよく、ハードウェアのみで実現されてもよく、またはハードウェアとソフトウェアとの組み合わせで実現されてもよい。特定の実現例において、サブシステムのうちの1つまたは複数は、組み合わせて単一のサブシステムにされてもよい。さらにまたは代替的に、いくつかの実現例において、特定のサブシステムによって実行されるものとして本明細書に記載されている機能は、複数のサブシステムによって実行されてもよい。
【0023】
音声入力コンポーネント105は、音声入力104を受信するように構成されたハードウェアおよびソフトウェアを含む。いくつかの例では、音声入力コンポーネント105は、対話システム100の一部であり得る。いくつかの他の例では、音声入力コンポーネント105は、対話システム100とは別であって、対話システム100に通信可能に結合され得る。音声入力コンポーネント105は、たとえば、音声入力をデジタル化してウェイクワード検出サブシステム106に送信するように構成されたソフトウェアに結合されたマイクロフォンを含み得る。
【0024】
ウェイクワード検出(WD)サブシステム106は、特別な音または単語または単語のセット(ウェイクワードと称される)に対応する入力についてオーディオ入力ストリームを聞いて監視するように構成される。対話システム100のために構成されたウェイクワードを検出すると、WDサブシステム106は、ASRサブシステム108を起動するように構成される。特定の実現例において、ユーザは、(たとえば、ウェイクワードを話してボタンを押すことによって)WDサブシステム106を起動したり停止したりする能力を提供され得る。WDサブシステム106は、起動されると(または、アクティブモードで動作しているとき)、オーディオ入力ストリームを連続的に受信して、このオーディオ入力ストリームを処理して、ウェイクワードに対応するオーディオまたは音声入力を識別するように構成される。ウェイクワードに対応するオーディオ入力が検出されると、WDサブシステム106は、ASRサブシステム108を起動する。
【0025】
上記のように、WDサブシステム106は、ASRサブシステム108を起動する。音声対応システムのいくつかの実現例において、ウェイクワード以外の機構を使用してASRサブシステム108をトリガまたは起動してもよい。たとえば、いくつかの実現例において、デバイスのプッシュボタンを使用して、ウェイクワードを必要とすることなくASRサブシステム108の処理をトリガしてもよい。このような実現例では、WDサブシステム106を設けなくてもよい。プッシュボタンが押されるまたは起動されると、ボタン起動後に受信された音声入力は、処理のためにASRサブシステム108に提供される。いくつかの実現例において、ASRサブシステム108は、処理対象の入力を受信したときに起動されてもよい。
【0026】
ASRサブシステム108は、トリガまたはウェイクアップ信号(たとえば、ウェイクアップ信号は、音声入力の中にウェイクワードを検出するとWDサブシステム106によって送信され得る、ウェイクアップ信号は、ボタンの起動時に受信され得る、など)後に口頭の音声入力を受信および監視して、この音声入力をテキストに変換するように構成される。その処理の一部として、ASRサブシステム108は、スピーチ・トゥ・テキスト変換を実行する。口頭のスピーチまたは音声入力は、自然言語形式であり得て、ASRサブシステム108は、音声入力の言語で対応する自然言語テキストを生成するように構成される。ASRサブシステム108によって受信された音声入力は、1つまたは複数の単語、句、節、文、質問などを含み得る。ASRサブシステム108は、各々の口頭の節についてテキスト発話を生成して、その後の処理のためにこれらのテキスト発話をNLUサブシステム110に送り込むように構成される。
【0027】
NLUサブシステム110は、ASRサブシステム108によって生成されたテキストを受信する。ASRサブシステム108からNLUサブシステム110によって受信されたテキストは、口頭の単語、句、節などに対応するテキスト発話を含み得る。NLUサブシステム110は、各テキスト発話(または、一連のテキスト発話)をその対応する論理形式に変換する。
【0028】
特定の実現例において、NLUサブシステム110は、固有表現認識部(NER)サブシステム112と、セマンティックパーサ(SP)サブシステム114とを含む。NERサブシステム112は、固有表現と固有のアイデンティティとをマッチングすることによって固有表現連結を実行する。固有表現連結は、それが所与の固有表現に対応する可能なアイデンティティのセットのうちの適切なアイデンティティを識別することを含むという点において、曖昧性除去タスクであると考えることができる。たとえば、「エリック・エリクソン」という固有表現は、発達心理学者のエリック・エリクソン、テレビに出ている解説者のエリック・エリクソン、指揮者のエリック・エリクソン、俳優のエリック・エリクソンを含むいくつかのアイデンティティのうちの1つに結び付けられることができる。コンテキストに基づいて、適切なアイデンティティを見分けることができる。たとえば、NLUサブシステム110は、「エリック・エリクソンによる書籍を見つけてください」という音声入力を受信する。NLUサブシステム110は、可能なエリック・エリクソンのうち、複数の書籍を書いたのは発達心理学者であると判断し得る。したがって、「エリック・エリクソン」という固有表現は、発達心理学者のエリック・エリクソンに結び付けられる。
【0029】
NERサブシステム112は、テキスト発話を入力として受信して、このテキスト発話の中の固有表現を識別して、識別された固有表現に関連する情報でこのテキスト発話をタグ付けする。次いで、タグ付けされたテキスト発話は、SPサブシステム114に送り込まれ、SPサブシステム114は、各々のタグ付けされたテキスト発話について(または、一連のタグ付けされたテキスト発話について)論理形式を生成するように構成される。発話について生成された論理形式は、テキスト発話に対応する1つまたは複数の意図を識別し得る。発話の意図は、発話の目的を識別する。意図の例としては、「ピザをオーダーする」および「行き方を探し出す」が挙げられる。意図は、たとえば、実行されるように要求されるアクションを識別し得る。
【0030】
意図に加えて、テキスト発話について生成された論理形式は、識別された意図についてスロット(パラメータまたは引数とも称される)も識別し得る。スロットは、1つまたは複数の意図の引数であり得る予め規定された属性である。スロットは、NLUサブシステム110によってラベル付けされて、エンティティまたは他の情報とマッチングされ得る。たとえば、都市「モスクワ」は、コンテキストに基づいて特定のスロット(誰かがモスクワへのフライトを購入している場合にはtoloc.city_name、誰かがモスクワからのフライトを購入している場合にはfromloc.city_nameなど)とマッチングし得る。スロット充足は、シーケンスラベル付け問題であると考えることができ、回帰型ニューラルネットワークなどの技術を使用して解決することができる。たとえば、「マッシュルームとオリーブののったラージサイズのペパロニピザをオーダーしたい」という音声入力では、NLUサブシステム110は、ピザをオーダーするという意図を識別することができる。NLUサブシステム110は、スロット(たとえば、pizza_size(「ラージサイズの」で充足される)およびpizza_toppings(「マッシュルームとオリーブ」で充足される))も識別して充足することができる。NLUサブシステム110は、機械学習ベースの技術、ルール(ドメインに固有であり得る)、またはこれら2つの組み合わせを使用して、論理形式を生成し得る。次いで、NLUサブシステム110によって生成された論理形式は、その後の処理のためにDMサブシステム116に送り込まれる。
【0031】
いくつかの実施形態において、NLUサブシステム110は、コンテキストサブシステム115を含む。コンテキストサブシステム115は、受信された発話から識別された語のコンテキストを判断することができる。語は、単語、句、文または単語群であり得る。語の例としては、「先週の金曜日に行ったレストラン」、「コーヒーショップ」および「私の好きな航空会社」が挙げられる。本明細書に記載されているように、コンテキストサブシステム115は、判断されたコンテキストを使用して、語の曖昧性を除去するための情報、および/または、語に関連付けてアクションを実行するための情報を識別することができる。対話処理にコンテキストを使用するための技術については、
図3~
図4に関して以下でさらに詳細に説明する。いくつかの実施形態において、コンテキストサブシステム115は、複数のコンテキストレベルのデータベース(たとえば、コンテキストレベル1データベース(DB)130,コンテキストレベル2 DB 132,コンテキストレベル3 DB 134,...コンテキストレベルN DB 136)に通信可能に結合されている。コンテキストサブシステム115は、判断されたコンテキストレベルに基づいて、選択されたコンテキストレベルのデータベースから有用な情報を検索することができる。
【0032】
DMサブシステム116は、NLUサブシステム110から受信された論理形式に基づいてユーザとの対話を管理するように構成される。対話管理の一部として、DMサブシステム116は、対話状態を追跡して、1つもしくは複数のアクションもしくはタスクの実行を開始するかまたはそれ自体が1つもしくは複数のアクションもしくはタスクを実行して、どのようにユーザと対話するかを判断するように構成される。これらのアクションは、たとえば、1つまたは複数のデータベースに照会すること、実行結果を生成すること、および他のアクションを含み得る。たとえば、DMサブシステム116は、NLUサブシステム110から受信された論理形式で識別された意図を解釈するように構成される。この解釈に基づいて、DMサブシステム116は、ユーザによって提供された音声入力によって要求されているとして解釈される1つまたは複数のアクションを開始し得る。いくつかの実施形態において、DMサブシステム116は、コンテキストレベルのデータベース(たとえば、コンテキストレベル1 DB 130,コンテキストレベル2 DB 132,コンテキストレベル3 DB 134,...コンテキストレベルN DB 136)に格納された情報を利用して、このようなアクションを実行し得る。たとえば、DMサブシステム116が質問に対する回答を既に識別している場合、DMサブシステム116は、回答を適切なコンテキストレベルのデータベースから検索することができる。
【0033】
特定の実施形態において、DMサブシステム116は、現在および過去の音声入力に基づいて、ならびに、DMサブシステム116のために構成されたルール(たとえば、対話ポリシ)のセットに基づいて、対話状態追跡を実行する。これらのルールは、さまざまな対話状態、状態間の遷移のための条件、特定の状態にあるときに実行されるアクションなどを指定し得る。これらのルールは、ドメインに固有であり得る。特定の実施形態において、機械学習ベースの技術(たとえば、機械学習モデル)も使用され得る。いくつかの実施形態において、ルールと機械学習モデルとの組み合わせが使用され得る。また、DMサブシステム116は、対話に関与しているユーザに返される応答も生成する。これらの応答は、DMサブシステム116によって開始されたアクションおよびそれらの結果に基づき得る。DMサブシステム116によって生成された応答は、その後の処理のためにNLGサブシステム118に送り込まれる。
【0034】
NLUサブシステム110および/またはDMサブシステム116は、複数のコンテキストレベルベースのデータベース(たとえば、コンテキストレベル1 DB 130,コンテキストレベル2 DB 132,コンテキストレベル3 DB 134,...コンテキストレベルN DB 136)に通信可能に結合され得る。各々のコンテキストレベルのデータベース130~136は、複数のコンテキストレベルのうちの特定のコンテキストレベルについて指定されたデータを格納し得る。たとえば、コンテキストレベルは、直近コンテキスト、短期間コンテキスト、中期間コンテキストおよび長期間コンテキストを含み得る。直近コンテキストは、先行する要求(たとえば、対話セッション内)のトピックに対応し得る。短期間コンテキストは、対話セッション内(たとえば、場合によっては、会話内の先行する要求よりも前)の音声入力に対応し得る。中期間コンテキストは、ユーザが覚えていそうな、具体的に言及できる特定のもの(たとえば、「私が今朝話した人事担当者」)に対応し得る。長期間コンテキストは、システムが以前の会話およびユーザ行動から学習したユーザの好み(たとえば、ユーザはユナイテッドステーツ航空で飛行したい)に対応し得る。コンテキストレベルに関連付けて対話履歴を格納することは、検索フィールドを関係する項目に狭めることによってデータベース照会をスピードアップすることができる。たとえば、直近コンテキストは、代名詞照応に好適であり得るのに対して、長期間コンテキストは、固有表現ライニングまたはランク付け結果に好適であり得る。コンテキストレベルのデータベースに格納されるデータのタイプの例については、
図2に関して以下でさらに説明する。
【0035】
いくつかの実施形態において、各々のコンテキストレベルのデータベースは、異なるタイプのコンテキストレベルに結び付けられたデータのためのものである。たとえば、コンテキストレベル1 DB 130は、直近コンテキスト関連のデータのためのものであり、コンテキストレベル2 DB 132は、短期間コンテキスト関連のデータのためのものであり、コンテキストレベル3 DB 134は、中期間コンテキスト関連データのためのものであり、コンテキストレベルN DB 136は、長期間コンテキスト関連データのためのものである。コンテキストレベル1 DB 130は、現在の対話セッション(たとえば、受信された最後の音声入力)からデータを格納するのに使用され得る。このようなデータは、評価されると、長期間データベースに移動および/またはコピーされ得る。たとえば、対話セッションが終了した後、当該対話セッションに関連するデータは、コンテキストレベル1 DB 130から削除されて、コンテキストレベル2 DB 132に格納される。データはさらに、対話システム100によって見分けられた情報に基づいて、長期間データベースにコピーおよび/または移動され得る。たとえば、コンテキストレベル2 DB 132内のデータが一般的なユーザの好みに関連していると判断される場合、このようなデータはコンテキストレベルN DB 136に格納され得る。
【0036】
代替的にまたはさらに、対話システム100は、さまざまな態様で(たとえば、別々のデータベースを使用することなく)コンテキストレベルに関連付けて対話履歴をデータベースに格納してもよい。たとえば、対話履歴データは、コンテキストレベルでタグ付けされ得て、ポインタまたは履歴データをコンテキストレベルごとに編成するための他の好適な手段がコンテキストレベルを指定し得る。
【0037】
いくつかの実現例において、対話システム100は、さまざまな「次元」についてコンテキストを管理し得る。たとえば、時間は1つの次元であり、「発話レベル」、「会話レベル」、「短期」、「中期」などは、時間次元に沿ったコンテキストである。また、コンテキストは、他の次元(地理など)に沿って識別されて使用され得る。地理的コンテキストの例としては、「地元の地理」、「都市レベル」、「州レベル」、「国レベル」などが挙げられる。
【0038】
NLGサブシステム118は、DMサブシステム116によって生成された応答に対応する自然言語テキストを生成するように構成される。これらのテキストは、TTSサブシステム120によってそれらを音声に変換することを可能にする形式で生成され得る。TTSサブシステム120は、これらのテキストをNLGサブシステム118から受信して、それらの各々をスピーチまたは音声オーディオに変換し、このスピーチまたは音声オーディオは、次いで、対話システムのオーディオまたは音声出力コンポーネント124(たとえば、スピーカ、または外部スピーカに結合された通信チャネル)を介してユーザに出力され得る。いくつかの例では、音声出力コンポーネント124は、対話システム100の一部であり得る。いくつかの他の例では、音声出力コンポーネント124は、対話システム100とは別であって、対話システム100に通信可能に結合され得る。
【0039】
上記のように、協働して動作する対話システム100のさまざまなサブシステムは、対話システム100が音声入力104を受信して、音声出力122を使用して応答して、自然言語音声を使用してユーザとの対話を維持することを可能にする機能を提供する。上記のさまざまなサブシステムは、単一のコンピュータシステムを使用して実現されてもよく、または協働して動作する複数のコンピュータシステムを使用して実現されてもよい。たとえば、音声対応システムを実装するデバイスでは、上記の対話システム100のサブシステムは、もっぱらユーザが対話するデバイスに実装され得る。いくつかの他の実現例では、対話システム100のいくつかのコンポーネントまたはサブシステムは、ユーザが対話するデバイスに実装され得るのに対して、他のコンポーネントは、デバイスからリモートで、場合によっては他のコンピューティングデバイス、プラットフォームまたはサーバに実装され得る。
【0040】
上記のように、特定の実施形態において、対話システム100は、サブシステムのパイプラインを使用して実現され得る。いくつかの実施形態において、サブシステムのうちの1つまたは複数は、組み合わせて単一のサブシステムにされてもよい。特定の実施形態において、特定のサブシステムによって提供される機能は、複数のサブシステムによって提供されてもよい。また、特定のサブシステムは、複数のサブシステムを使用して実現されてもよい。
【0041】
特定の実施形態において、機械学習技術を使用して、対話システム100の1つまたは複数の機能を実行し得る。たとえば、教師あり機械学習技術(ニューラルネットワーク(たとえば、ディープニューラルネットワーク)を使用して実現されるものなど)を使用して、対話システム100の1つまたは複数の機能を実行し得る。一例として、実行対象のASR機能を実行するように訓練されたニューラルネットワークが提供され得て、このような訓練されたモデルがASRサブシステム108によってその処理に使用され得る。このようなニューラルネットワーク実現例は、音声入力を入力として、テキスト発話をNLUサブシステムに出力し得る。機械学習ベースのモデルは、対話システム100の他のサブシステムによっても使用され得る。
【0042】
図2は、コンテキストレベルのデータベース200(たとえば、
図1のコンテキストレベル1 DB 130,コンテキストレベル2 DB 132,コンテキストレベル3 DB 134またはコンテキストレベルN DB 136)の一例を示す図である。
図1に関して上記したように、対話システム100は、さまざまなコンテキストレベル(直近コンテキスト、短期間コンテキスト、中期間コンテキストなど)についての履歴データ201を格納する複数のコンテキストレベルのデータベース(たとえば、コンテキストレベル1 DB 130,コンテキストレベル2 DB 132,コンテキストレベル3 DB 134,...コンテキストレベルN DB 136)を含み得て、またはそれらに通信可能に結合され得る。
【0043】
いくつかの実施形態において、コンテキストレベルのデータベース200は、以前の対話セッションに関連するデータを格納するためのストレージユニットおよび/またはデバイス(たとえば、ファイルシステム、データベース、テーブルの集合体、または他の格納機構)である。コンテキストレベルのデータベース200は、複数の異なるストレージユニットおよび/またはデバイスを含み得る。コンテキストレベルのデータベース200は、対話システム100にローカルであってもよく(たとえば、ローカルストレージ)、および/または、ネットワークを介して対話システム100に接続されてもよい(たとえば、クラウドストレージ)。
【0044】
コンテキストレベルのデータベース200は、ユーザ対話に関係する履歴データ201を格納し得る。履歴データ201は、ユーザ識別子(ID)(ユーザID(ユーザID A 202A,...ユーザID N 202N))と、コンテキスト値(204A,...204N)と、対話データ(206A,...206N)と、対話メタデータ(208A,...208N)と、実行結果(210A,...210N)とを含み得る。
【0045】
いくつかの実施形態において、履歴データ201は、特定のユーザに関連付けて格納されており、ユーザID(たとえば、ユーザID A 202A,...ユーザID N 202N)で索引付けされ得る。ユーザIDは、個人の識別子(名前、英数字識別子、ニックネームなど)である。所与のユーザについて、コンテキスト値(204A,204N)、対話データ(206A,206N)、対話メタデータ(208A,208N)および実行結果(210A,210N)が、対応するユーザIDに関連付けてコンテキストレベルのデータベース200に格納され得る。
【0046】
コンテキスト値(たとえば、コンテキスト値204A,...コンテキスト値204N)は、特定のユーザとの以前の対話セッション中に対話システム100が学習した情報を含み得る。たとえば、長期的には、対話システム100は、特定のユーザの好きなレストランがアイダホ州ボイシにあるスーズダイナーであることを学習し得る。中期的には、対話システム100は、先週、特定のユーザが水曜日にジョン・ジョーンズと打ち合わせを行い、金曜日にティファニー・スミスと打ち合わせを行ったことを学習し得る。このような情報は、コンテキスト値(204A,204N)として格納されることができる。
【0047】
いくつかの実施形態において、コンテキスト値(204A,204N)は、キー値対の値として格納される。たとえば、「昨日行ったコーヒーショップ」というキーは、「フロリダ州キーウェストにあるビーチビーンズ」という値に関連付けて格納され、「好きな航空会社」は、「ユナイテッド(登録商標)」という値に関連付けて格納される。キー値対のさらに他の例としては、名前=サム、色=赤、本=聖書などが挙げられる。「キー」は属性であり、「値」は当該属性の値である。いくつかの実施形態において、対話システム100によって処理されるデータとのマッチングを容易にするために、これらのキーは、語のベクトル表現として格納され得る。
【0048】
いくつかの実現例において、コンテキスト値(204A,204N)は、(たとえば、対話履歴データに加えて)他のソースからのコンテキスト情報をさらに含み得る。このようなコンテキスト値(204A,204N)は、雇用記録、インターネットクッキー、位置追跡データなどから得られるユーザの好みおよび行動を含み得る。たとえば、対話システム100は、電子メールサーバにリンクされ得て、この電子メールサーバから、対話システムはユーザの電子メールを検索する。別の例として、対話システム100は、ユーザのインターネット検索履歴を取得して格納し得る。さらに他の例として、対話システム100は、ユーザに関連付けられた行動ベースの記録(従業員記録、診療記録および/または購入履歴など)を取得して格納し得る。
【0049】
いくつかの実施形態において、対話データ(206A,206N)は、以前の対話セッションに関連して格納された情報を含む。対話データ(206A,206N)は、対話システム100によって受信された履歴クエリと、対話システム100によって提供された応答とを含み得る。たとえば、対話セッションは、以下のように起こる。
【0050】
ユーザ音声入力:シンシナティへのフライトを予約してください
対話システム出力:分かりました。いつですか?
ユーザ音声入力:7月10日です
対話システム出力:午前がいいですか、午後がいいですか、夜がいいですか?
ユーザ音声入力:午後がいいです
対話システム出力:分かりました。午後2時のオハイオ航空の便があります。
【0051】
ユーザ音声入力:ユナイテッドステーツ航空がいいです
対話システム出力:分かりました。3時30分のユナイテッドステーツ航空にしましょう
対話システム100は、ユーザに関連付けて対話のログをコンテキストレベルのデータベース200に格納する。対話システム100は、さらに他の対話が行われるとコンテキストレベルのデータベース200を更新し得る。たとえば、対話システム100は、特定のユーザとの複数の対話に対応する履歴データ201をコンテキストレベルのデータベース200に格納し得る。
【0052】
各ユーザについての対話データ(206A,206N)は、多数の対話セッションの過程で(たとえば、数日または数年にわたって)ユーザから受信された口頭発話に基づいて生成されたテキスト発話または他の表現を含み得る。対話データ(206A,206N)は、論理形式をさらに含み得る。たとえば、以前の対話セッションにおける所与の発話に基づいて、対話システムは、発話に基づいて論理形式を生成して、対話システム100が生成した論理形式を格納し得る。
【0053】
いくつかの実施形態において、対話メタデータ(208A,208N)は、履歴対話セッションに関連付けられたメタデータである。対話メタデータ(208A,208N)は、日付、時刻、場所、受信デバイス(たとえば、自動車、電話、多機能テレビなど)などを含み得る。所与の対話データ206Aでは、対応する対話メタデータ208Aは、直接または関連するユーザID A 202Aを介して対話データ206Aにマッピングされ得る。
【0054】
いくつかの実施形態において、実行結果(210A,210N)は、履歴クエリに基づいて検索された情報を含む。所与の実行結果210Aは、対応する対話メタデータ208A、対話データ206A、コンテキスト値204Aおよびユーザ識別子202Aにマッピングされ得る。一例として、対話データ206Aは、「自由の女神像はどのぐらいの高さですか?」という履歴クエリを含む。この履歴クエリに基づいて、対話システム100は、事前にインターネット検索を実行して、「305フィートです」という実行結果210Aを識別している。このような実行結果(210A,210N)は、関連するデータ202A~208Nに関連付けてコンテキストレベルのデータベース200に格納されて、将来のクエリをスピードアップすることができる。
【0055】
図3は、コンテキストベースの対話技術のための方法を示す簡略化されたフローチャートである。
図3に示される処理は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)で実現されてもよく、ハードウェアで実現されてもよく、またはそれらの組み合わせで実現されてもよい。ソフトウェアは、非一時的な記憶媒体(たとえば、メモリデバイス)に格納され得る。
図3に示されて以下で説明される方法は、例示的であって非限定的であるよう意図されている。
図3は、特定のシーケンスまたは順序で行われるさまざまな処理ステップを示しているが、これは、限定的であるよう意図されるものではない。特定の代替的な実施形態では、これらのステップは、何らかの異なる順序で実行されてもよく、またはいくつかのステップは、並行して実行されてもよい。特定の実施形態において、
図3に示される処理は、上記の対話システム100のNLUサブシステム110および他のコンポーネントによって実行され得る。
【0056】
302において、対話システムは、口頭発話をユーザから受信する。対話システムは、たとえば音声入力コンポーネント105を介して口頭発話をユーザから受信し得る。口頭発話は、波形として受信され得る。口頭発話は、特定の言語であって、自然言語クエリ形式であり得る。口頭発話は、ユーザが対話システムに回答させたい質問を指定したり、ユーザが対話システムに開始させたい1つまたは複数のアクション(たとえば、「ミディアムサイズのペパロニピザがほしいです」)を指定したりする、などであり得る。
【0057】
特定の実施形態において、(302のように)音声入力を受信する代わりに、入力は、たとえばユーザが対話システムとのチャット中にテキストをタイプする場合にはテキスト形式で受信され得る。本開示に記載されている技術は、口頭のスピーチまたはテキスト入力またはそれらの組み合わせの形式で入力を受信するシステムとともに使用することができる。
【0058】
304において、対話システムは、口頭発話を処理して、曖昧性除去のための語を識別する。語は、単語、または一緒にアイデアを伝える単語群であり得る。本明細書において使用される「語」の例としては、「ダイナー」、「今朝行ったコーヒーショップ」、「彼」、「私の上司」、「私の妻」および「私の好きなバー」が挙げられる。口頭発話を処理することは、口頭発話に基づいて(たとえば、ASRサブシステム108によって)テキスト発話を生成することを含み得る。ASRサブシステム108は、その後の処理のために、生成されたテキスト発話をNLUサブシステム110に渡し得る。次いで、NLUサブシステムは、テキスト発話の論理形式を生成することを開始し得る。NLUサブシステムは、単語を識別して、固有表現連結、スロット充足および他のタスクを実行することを開始し得る。
【0059】
このような処理中に、NLUサブシステムは、曖昧性に関連付けられた特定の語を識別し得る。たとえば、「彼女」という語は、曖昧な解釈を有する場合がある。なぜなら、「彼女」という語は、音声入力を提供するユーザが以前に言及したさまざまな異なる個人を指すことができるからである。別の例として、「木曜日に行ったカフェ」という語は、曖昧な意味を有する場合がある。なぜなら、対象のカフェは、現在の音声入力から明らかでないからである。別の例として、「私の好きなアイスクリーム」という語は、曖昧な意味を有する場合がある。なぜなら、ユーザの好きなアイスクリームは、現在の音声入力から明らかでないからである。
【0060】
306において、対話システム(たとえば、コンテキストサブシステム115)は、曖昧性除去のための語について、複数の予め規定されたコンテキストレベルの中からコンテキストレベルを判断する。コンテキストサブシステム115は、304において識別された曖昧性除去のための語および/または304において処理された口頭発話の中の他の単語に基づいて、コンテキストレベルを判断し得る。コンテキストサブシステム115は、機械学習モデルおよび/またはルールを使用してコンテキストレベルを判断し得る。たとえば、コンテキストが中期間コンテキストである(たとえば、「先週」、「木曜日」など)ことを特定のキー単語が示す場合、コンテキストレベルは中期間コンテキストレベルであると判断される。別の例として、(たとえば、「私の好きな」、「私のかかりつけ医」、「私のアシスタント」などの語を含むことによって)ユーザの全体的好みまたは特性が識別されることを発話が示す場合、コンテキストレベルは長期間コンテキストレベルであると判断される。
【0061】
場合によっては、対話システムは、必要に応じてコンテキストレベルを反復し得る(たとえば、対話システムは、短期間のコンテキストレベルを予め割り当て得て、短期間コンテキストレベルのデータベースにおいて関連するデータが識別されない場合、対話システムは、このコンテキストレベルを中期間コンテキストレベルとして再割り当てし得る、などである)。
【0062】
308において、対話システム(たとえば、コンテキストサブシステム115)は、306において判断されたコンテキストレベルに基づいて、語の値を識別する。コンテキストサブシステム115は、データベースを使用して語の値を識別し、当該データベースは、コンテキストレベルに関連付けてユーザについて複数の値を格納している。いくつかの実施形態において、
図1に示されるように、対話システムは、複数のデータベースを含み、または複数のデータベースに通信可能に結合されており、複数のデータベースの各々は、異なるコンテキストレベルのためのものである。このような実現例では、コンテキストサブシステム115は、306において識別されたコンテキストレベルのためのデータベースを選択する。たとえば、308において判断されたコンテキストレベルが中期間コンテキストレベルである場合、対話システムは、中期間コンテキストレベルのデータのためのデータベースを識別する。
【0063】
コンテキストサブシステム115は、ユーザの識別子および語を用いて、選択されたデータベースに照会して、値を識別し得る。コンテキストサブシステム115は、たとえば、曖昧性除去のための語(たとえば、キー値対のキー)を含むパラメータを有するSQLクエリを実行し得る。このクエリは、ユーザの識別子および口頭発話から識別された1つまたは複数の追加の単語をさらに含み得る。
【0064】
いくつかの実施形態において、308において識別された値は、コンテキストレベルのデータベース200に格納された(たとえば、コンテキスト値204A,204Nの中の)コンテキスト値である。コンテキストサブシステム115は、曖昧性除去のための語を使用してコンテキストレベルのデータベース200に照会することによって、格納されたコンテキスト値を識別し得る。いくつかの実施形態において、コンテキスト値は、キー値対の一部として格納されている。キーは、曖昧性除去のための語またはその派生語であり得る。キーは、格納されたコンテキスト値を検索するためのクエリ(たとえば、クエリは、「キー=好きな航空会社の値を求めなさい(FIND value FOR key = favorite airline)」であり得る)を構築するのに使用され得る。場合によっては、受信された音声入力からの追加の単語または句が、クエリ(たとえば、クエリは、「キー=好きな航空会社および場所=USの値を求めなさい(FIND value FOR key = favorite airline AND location = US)」であり得る)を構築するのにさらに使用されてもよい。これは、さまざまなコンテキスト次元に基づいてさまざまな好みが構成される場合(たとえば、さまざまな国内および国際航空会社の好みが構成される場合)に有用であろう。
【0065】
代替的にまたはさらに、いくつかの実現例において、履歴データ201は、単一のデータベースに格納されてもよく、または特定のコンテキストレベルについて割り当てられない複数のデータベースに格納されてもよい。このような実現例では、コンテキストレベルは、技術を使用して(コンテキストレベルのデータベースに格納されたさまざまな履歴データのコンテキストレベルを示すためにデータへのポインタを使用するなどして)、値に関連付けられ得る。このような実現例では、対話システムは、コンテキストベースのデータベースを識別するのではなく、技術(コンテキストレベルをデータベースに対するクエリのパラメータとして含むなど)を使用してコンテキストの観点からデータを識別し得る。たとえば、対話システムは、クエリ:「キー=好きな航空会社およびコンテキストレベル=中期の値を求めなさい(FIND value FOR key = favorite airline AND context level = medium)」を使用して、格納されたコンテキスト値を検索し得る。
【0066】
ブロック306に関して上記したように、場合によっては、コンテキストサブシステム115は、特定の値を識別している間にコンテキストレベルを反復し得る。たとえば、「私の好きな航空会社の航空券を予約してください」という発話が提供されると、対話システムは、「好きな航空会社」の曖昧性を除去する、すなわち航空会社の値を求める。最初に、対話システムは、発話レベルのコンテキストを検討するが、格納された発話レベルのデータから値を求めることはできないであろう。次に、対話システムは、会話レベルのデータについてデータベースに照会する。ユーザが会話の中で好きな航空会社を特定した場合には、会話レベルのコンテキストを使用して好きな航空会社の値を求めるかもしれない。次に、会話レベルで好きな航空会社を判断できないと想定して、対話システムは、次に、「短期間」(1ヶ月などの期間によって規定される)、「中期間」(たとえば、6ヶ月)および「長期間」(たとえば、1年)コンテキストについて照会し得る。各期間について、対話システムは、1つまたは複数のマッチング値が識別されるまで、「好きな航空会社」というキーを使用して適切なデータベースに照会し得る。
【0067】
いくつかの実施形態において、NLUサブシステム110は、格納されたコンテキスト値を検索するのではなく、コンテキストレベルのデータベースに格納された他の履歴データ201(たとえば、対話データ(206A,206N)、対話メタデータ(208A,208N)および/または実行結果(210A,210N))を使用して値を計算し得る。
図5に関して以下でさらに説明するように、NLUサブシステム110は、履歴データ201を使用して、統計解析および/または機械学習モデルを用いて語の曖昧性を除去するための値を計算し得る。
【0068】
310において、NLUサブシステム110は、308において識別された値を使用して、語の曖昧性を除去する。場合によっては、308において識別された値を直接使用して、語の曖昧性を除去し得る。たとえば、NLUサブシステム110は、格納されたキー値対:キー=コーヒーショップ、値=「ジョーズコーヒー」に基づいて、「コーヒーショップ」という語を「ジョーズコーヒー」という固有表現に結び付けることによって、「コーヒーショップ」という語の曖昧性を除去し得る。
【0069】
いくつかの実施形態において、語の曖昧性を除去することは、固有表現連結の文脈においてNLUサブシステム110によって実行され得る。たとえば、曖昧性除去のための語は、「Moscow」という単語であり、ユーザがロシアのモスクワを指しているのかアイダホ州のモスコーを指しているのかが直近の音声入力からは不明である。NLUサブシステム110は、ユーザがアイダホ州モスコーに関連する対話に定期的に関わっていたと判断する。したがって、NLUサブシステム110は、「Moscow」という語をアイダホ州モスコーという固有表現に結び付ける。
【0070】
いくつかの実施形態において、語の曖昧性を除去することは、スロット充足の文脈においてNLUサブシステム110によって実行され得る。たとえば、受信された口頭発話は、明確にはスロットの値を含んでいないが、ユーザの履歴は、多数の同様の要求を含んでおり、それらは全て当該スロットについて同一の値を含んでいる。したがって、NLUサブシステム110は、当該スロットの値を提案する。具体例として、ユーザが過去にニューヨークへのフライトを定期的に予約していたが、現在の音声入力が目的地の都市を指定していない場合、システムは、308においてデータベースから識別された当該ユーザについての履歴データに基づいて、目的地の都市のスロットを「ニューヨーク」で充足し得る。
【0071】
いくつかの実施形態において、語の曖昧性を除去することは、ランク付け結果の文脈においてNLUサブシステム110によって実行され得る。たとえば、NLUサブシステム110は、複数のオプション(たとえば、ベルビューの複数のコーヒーショップ)をユーザに表示する準備をする。特定のコーヒーショップが好みであることをユーザが明示的または暗黙的に表明した場合、NLUサブシステム110は、308においてデータベースから識別された履歴データに反映されるように、これらのコーヒーショップをより高くランク付けし得る。
【0072】
いくつかの実施形態において、語の曖昧性を除去することは、代名詞および名詞句照応解析の文脈においてNLUサブシステム110によって実行され得る。たとえば、語は「彼女」であり、NLUサブシステム110は、データベース内の直近コンテキストに基づいて、対応する連絡先である母を識別する。NLUサブシステム110は、結果のランク付けに対応する音声入力に対する応答を提供し得る(たとえば、「彼女」を「母」と結び付けて関連付けられた誕生日を調べることに基づいて誕生日を識別することに基づいて、「母の誕生日は6月1日です」という音声出力を提供する)。
【0073】
場合によっては、308において識別された値に加えて、NLUサブシステム110は、語の曖昧性を除去する際にさらに他の要因を使用し得る。たとえば、NLUサブシステム110は、さらに他のコンテキスト次元要因に関連した値を使用して(たとえば、時間的コンテキストおよび地理的コンテキストに基づいて)語の曖昧性を除去し得る。具体例として、NLUサブシステム110は、場所の好みとコンテキストの好みとの組み合わせ(たとえば、コーヒーショップを選択する際に60%が場所であり40%が履歴である)に基づいて、固有表現連結を実行し得る。別の例として、「マクドナルド(登録商標)までのルートを地図にしてください」という発話は、ユーザが仕事をしているか、家にいるか、別の都市に行っているかによって、異なる回答を生じさせるであろう。したがって、いくつかの実施形態において、語の曖昧性を除去するために、さまざまな次元に対応する複数のコンテキストが対話システムによって使用され得る。
【0074】
特定の実施形態において、304~306において、NLUサブシステム110は、複数のそれぞれのコンテキストレベルに対応する複数の値を識別し得る。この場合、語の曖昧性を除去することは、値のうちの1つを選択すること、または値をランク付けすることを含み得る。たとえば、NLUサブシステム110は、構成されたルールを使用して、複数の可能な値のうちの1つを選択し得る。具体例として、ルールは、評価された最短期間コンテキストから求められた値を選択するように指定し得る。ユーザの短期間コンテキストデータが「航空会社A」という値をもたらし、ユーザの中期間コンテキストデータが「航空会社B」という値をもたらす場合、一例では航空会社Aが選択され得る。なぜなら、それが最も最新であるからである(すなわち、より最近のコンテキストが使用される)。代替的に、ルールは、最長期間コンテキストを選択するように指定してもよい。なぜなら、長期間コンテキストは、ユーザデータの最大ベースラインを使用するからである。いくつかの他の実施形態では、NLUサブシステム110は、両方の航空会社をユーザに出力して、ユーザにどちらかを選択させ得る。
【0075】
図4は、さらに他のコンテキストベースの対話技術を示す簡略化されたフローチャートである。
図4に示される処理は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)で実現されてもよく、ハードウェアで実現されてもよく、またはそれらの組み合わせで実現されてもよい。ソフトウェアは、非一時的な記憶媒体(たとえば、メモリデバイス)に格納され得る。
図4に示されて以下で説明される方法は、例示的であって非限定的であるよう意図されている。
図4は、特定のシーケンスまたは順序で行われるさまざまな処理ステップを示しているが、これは、限定的であるよう意図されるものではない。特定の代替的な実施形態では、これらのステップは、何らかの異なる順序で実行されてもよく、またはいくつかのステップは、並行して実行されてもよい。特定の実施形態において、
図4に示される処理は、上記の対話システム100のNLUサブシステム110、DMサブシステム116および他のコンポーネントによって実行され得る。
図4の処理は、
図3の処理の後に実行されてもよい。
【0076】
402において、対話システムは、310において曖昧性を除去された語に基づいて、302において受信された口頭発話の論理形式を生成する。対話システムのNLUサブシステムは、304において口頭発話を処理する際に識別されたさらに他の単語とともに、曖昧性を除去された語を論理形式の生成に使用し得る。論理形式はさらに、306において判断されたコンテキストレベルに基づいて生成され得る。NLUサブシステム(たとえば、
図1のNLUサブシステム110のセマンティックパーササブシステム112)は、セマンティック解析を使用して論理形式を生成し得る。セマンティック解析は、機械学習アルゴリズム(回帰型ニューラルネットワーク(RNN)またはチャートパーサなど)を使用して実行され得る。結果として生じる論理形式は、さまざまな形式(ラムダ計算、抽象的意味表現(AMR)、またはPythonもしくはJava(登録商標)表現など)であり得る。(たとえば、リャンによる「ラムダ依存性ベースの合成意味論(Lambda Dependency-Based Compositional Semantics)」arXiv:1309.4408(2017)、インおよびニュービッグによる「汎用コード生成のためのシンタックスニューラルモデル(A Syntactic Neural Model for General-Purpose Code Generation)」arXiv:1704.01696(2017)、バナレスク等による「セムバンキングのための抽象的意味表現(Abstract Meaning Representation for Sembanking)」第7回言語アノテーションワークショップの会報(2013)を参照されたい。)
NLUサブシステム110は、310において語の曖昧性を除去するために使用される値を含むように論理形式を生成し得る。たとえば、この値は、ユーザの好きなバーを「ジョーズプレイス」として識別する。「私のバーは何時に開店しますか?」という口頭発話に基づいて生成される論理形式は、「ジョーズプレイス」を論理形式におけるスロットとして含み得る。代替的にまたはさらに、論理形式は、曖昧性を除去された値(たとえば、アドレス、情報へのポインタなど)に基づいて対話システムによって得られる情報を含み得る。
【0077】
いくつかの実現例において、SPサブシステム112は、コンテキスト情報を含む論理形式を生成し、このコンテキスト情報は、408において応答を生成するためにDMサブシステム116およびNLGサブシステム118によって使用され得る。たとえば、この論理形式は、適切なコンテキストレベルのデータベース(たとえば、コンテキストレベル1 DB 130,コンテキストレベル2 DB 132,コンテキストレベル3 DB 134またはコンテキストレベルN DB 136)内の項目へのポインタを含み得て、このポインタを使用して、応答を準備するための情報を効率的に検索することができる。たとえば、対話システム100が発話を解析する際、対話システム100は、対象の値を含む以前の対話からの実行結果をコンテキストレベルのデータベースから識別し得る。具体例として、ユーザは、「マリアの電話番号」を尋ねている。対話システムは、前週に対話の中でマリアの電話番号を事前に識別しており、この電話番号を含む実行結果をコンテキストレベルのデータベースに格納している。論理形式は、この電話番号へのポインタおよび/または電話番号自体を含み得る。
【0078】
404において、対話システムは、格納された実行結果を論理形式に基づいてデータベースから識別する。対話システムは、論理形式からの受信されたポインタを使用して、実行結果をデータベースから検索し得る。上記の例の続きで、DMサブシステム116は、マリアの電話番号へのポインタを含む論理形式をNLUサブシステム110から受信する。次いで、DMサブシステム116は、このポインタを使用して、マリアの電話番号をコンテキストレベルのデータベースから検索し得る。
【0079】
406において、対話システムは、論理形式および実行結果に基づいて応答を生成する。DMサブシステム116および/またはNLGサブシステム118は、ユーザによって要求された情報を識別して、当該情報を自然言語形式でパッケージングし得る。場合によっては、これは、404において検索された実行結果を使用することを含み得る。代替的にまたはさらに、DMサブシステム116は、要求された情報を(たとえば、別のデータベースに対するルックアップまたはインターネットクエリを介して、電子メールまたはテキストメッセージを送信することによって、など)検索するためのアクションを実行してもよい。電話番号の上記の例の続きで、DMサブシステム116は、コンテキストレベルのデータベースへのポインタを使用してマリアの電話番号を識別して、「マリアの番号は515-567-4444です。今彼女に電話をかけますか?」という自然言語応答を生成するための単語を追加し得る。
【0080】
したがって、応答は、
図3の処理において実行された曖昧性除去タスクに基づいて生成され得る。応答は、固有表現連結の結果(たとえば、アイダホ州モスコーに対応する固有表現に基づいて求められたアイダホ州モスコーの来週の天気予報)を含み得る。代替的にまたはさらに、応答は、スロット充足の結果(たとえば、目的地の都市のスロットをニューヨークで充足することに基づいて求められたニューヨークへのフライトについての情報)を含み得る。代替的にまたはさらに、応答は、結果の結果ランク付けの結果(たとえば、コンテキストベースの好みに基づいていくつかのコーヒーショップを順番にリストアップすること)を含み得る。
【0081】
いくつかの実施形態において、応答は、データベースから検索された複数の値を含み得る。たとえば、対話システムは、好きな航空会社の2つの可能な選択肢を応答の中に含み、応答(「この1ヶ月間は航空会社Aが好きな航空会社のようでしたが、過去6ヶ月間は航空会社Bが好きな航空会社でした。予約したい航空会社として(1)航空会社Aまたは(2)航空会社Bを選択してください」など)を生成し得る。別の例として、対話システムは、ユーザの現在の地理的場所に近い4つのコーヒーショップを、特定のチェーン店についてのユーザの履歴好みを使用して、当該チェーン店におけるオプションが最初にくるようにランク付けし得て、応答は、ランク付けされた順序のそれら4つのコーヒーショップのリストを含む。
【0082】
408において、対話システムは、生成された応答をユーザに出力する。対話システムは、音声出力コンポーネント124を介して応答を出力として(たとえば、202において入力口頭発話を提供したユーザに)提供し得る。対話システムは、対話マネージャサブシステム116および自然言語生成部サブシステム118によって生成されたテキスト応答を、テキスト・トゥ・スピーチサブシステム120を介して音声出力に変換し得る。代替的にまたはさらに、対話システムは、テキスト応答をディスプレイコンポーネント上に表示させることによって応答を提供してもよい。
【0083】
いくつかの局面において、応答をユーザに出力した後、対話システムは、データベースを更新する。対話システムは、情報(口頭発話の表現(たとえば、口頭発話から導き出されたテキスト発話)、論理形式および応答など)をデータベースに格納し得る。次いで、この情報を使用して、ユーザの好みの対話システムの理解を向上させて、将来のクエリの処理を向上させることができる。
【0084】
図5は、さらに他のコンテキストベースの対話技術を示す簡略化されたフローチャートである。
図5に示される処理は、それぞれのシステムの1つまたは複数の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)で実現されてもよく、ハードウェアで実現されてもよく、またはそれらの組み合わせで実現されてもよい。ソフトウェアは、非一時的な記憶媒体(たとえば、メモリデバイス)に格納され得る。
図5に示されて以下で説明される方法は、例示的であって非限定的であるよう意図されている。
図5は、特定のシーケンスまたは順序で行われるさまざまな処理ステップを示しているが、これは、限定的であるよう意図されるものではない。特定の代替的な実施形態では、これらのステップは、何らかの異なる順序で実行されてもよく、またはいくつかのステップは、並行して実行されてもよい。特定の実施形態において、
図5に示される処理は、上記の対話システム100のNLUサブシステム110、DMサブシステム116および他のコンポーネントによって実行され得る。
図5の処理は、
図3の処理の前または後に実行されてもよい。たとえば、
図5の処理は、コンテキストレベルのデータベース200に格納されて
図3および
図4の処理で使用される値を生成し得る。代替的にまたはさらに、
図5の処理は、コンテキストレベルのデータベース200内の履歴データ201を更新するように
図3および
図4の処理の後に実行されてもよい。代替的にまたはさらに、
図5の処理は、(たとえば、308において値を識別するために)
図3の処理の一部として実行されてもよい。
【0085】
502において、対話システムは、ユーザとの複数の以前の対話についての格納データをデータベースから識別する。
図2に関して上記したように、コンテキストレベルのデータベース200は、さまざまなユーザに関連付けて格納された履歴データ201を含み得る。ユーザ識別子に基づいて、ユーザについての履歴データが選択され得る。この履歴データは、コンテキスト値、対話データ、対話メタデータおよび/または実行結果を含み得る。
【0086】
いくつかの局面において、対話システムは、複数の以前の対話についての格納データを1つまたは複数のコンテキストレベルのデータベースから識別する。たとえば、いくつかの例では、対話システムは、選択されたデータベース(たとえば、短期間コンテキストデータベース、中期間コンテキストデータベースまたは長期間コンテキストデータベース)を使用して値を生成し得る。他の例では、対話システムは、複数のコンテキストレベルのデータベースから情報を検索し得る(たとえば、長期的な好みを判断するために、対話システムは、短期間コンテキストデータベースから新たなデータを識別し、長期間コンテキストデータベースから古いデータを識別し得る)。
【0087】
いくつかの実施形態において、対話システムはさらに、対話セッションでの対話からは発生しなかったさらに他のデータを識別し得る。たとえば、対話システムは、ユーザの雇用主からの情報(ユーザの医療保険会社、アドレス、収入、同僚の名前など)を検索し得る。別の例として、対話システムは、ユーザのインターネット履歴からの情報(訪れたサイト、検索語など)を取得し得る。別の例として、対話システムは、ユーザが対話システムと対話するのに使用するGPS対応ユーザデバイスから、特定のユーザに関連付けられたグローバルポジショニングシステム(GPS)データを取得し得る。このような情報は、コンテキストレベルのデータベース200に格納されてもよく、または格納されなくてもよい。
【0088】
504において、対話システムは、502において識別されたデータを解析して、値を計算する。対話システムは、統計解析および/または機械学習モデルを使用して、308において識別された値を計算し得る。一例として、ユーザが対話システムを介して2年間にわたって22回のフライトを予約した場合、対話システムは、ユーザが選択した複数の異なる航空会社を指定する格納データへのアクセスを有し得る。対話システムは、統計解析を実行して、最も頻繁に選択された航空会社を識別し得る。場合によっては、対話システムは、(たとえば、ユーザが先週最も予約した航空会社を識別することによって)特定のコンテキスト関連の期間に合わせてフィルタリングされたこのような統計解析を実行し得る。これは、対話メタデータ(208A,208N)を使用してユーザの選択を期間に結び付けることによって(たとえば、特定の発話が受信された時刻を示す対話メタデータ値を現在時刻値から減算することによって)容易にすることができる。代替的にまたはさらに、対話システムは、他のタイプの統計解析(好みのセットの中央値、好みの変化率などを識別するなど)を実行してもよい。いくつかの実施形態において、対話システムは、機械学習モデルをデータベース内のデータに適用して、値(ユーザの好みなど)を予測し得る。
【0089】
いくつかの局面において、対話システムは、暗黙的な好みに基づいて値を計算し得る。たとえば、ユーザが、1回または複数回、選択肢のリストからアイテムを選択したことを示すデータが格納され得る(たとえば、ユーザが、複数回、表示されたリストから特定のガソリンスタンドを選択した場合、たとえユーザが当該ガソリンスタンドの名前を対話システムに対して実際に発していなくても、対話システムは、当該ガソリンスタンドが好みであると推論することができる)。別の例として、対話システムは、場所データを使用して、暗黙的な好みを示す値を計算し得る(たとえば、ユーザが特定の店で繰り返しショッピングしたことをGPSデータが示す場合、対話システムは、この情報を使用して、このユーザについて受信されて格納された口頭の入力によって示される店がユーザの好みであることを強化することができる)。
【0090】
506において、対話システムは、計算された値をデータベースに格納し得る。値が長期的な好みを示す場合、対話システムは、計算された値を長期間コンテキストデータベースに、および/または、コンテキストが長期間コンテキストであることを示すインジケータとともに格納し得る。値が中期間の値(たとえば、ユーザがその日の朝に聞いていた歌の名前、電話をかけた最後の人など)を示す場合、計算された値は、中期間コンテキストデータベースに、および/または、コンテキストが中期間コンテキストであることを示すインジケータとともに格納され得る。いくつかの局面において、対話システムは、実行中に(たとえば、308において値を識別している間に)値を計算し得る。このような場合、値は、後でデータベースに格納されてもよく、または格納されなくてもよい(すなわち、値は、データベースから検索されるのではなく、リアルタイムで計算され得る)。代替的にまたはさらに、値は、定期的に(たとえば、週ベースで)生成されてもよく、
図5の処理は、特定のユーザについて格納されたキー値対のセットを生成および/または更新するように実行されてもよい。
【0091】
一実施形態に従って、本開示は、対話システムを提供し、上記対話システムは、口頭発話をユーザから受信するための手段と、上記口頭発話を処理して、曖昧性除去のための語を識別するための手段と、曖昧性除去のための上記語について、複数の予め規定されたコンテキストレベルの中からコンテキストレベルを判断するための手段と、上記コンテキストレベルに基づいて、上記曖昧性を除去された語に従って応答を準備するための手段と、上記応答を上記ユーザに出力するための手段とを備える。
【0092】
一実施形態に従って、上記対話システムは、上記判断されたコンテキストレベルに基づいて、データベースを使用して上記語の値を識別するための手段をさらに備え、上記データベースは、上記コンテキストレベルに関連付けて上記ユーザについて複数の値を格納しており、上記対話システムはさらに、上記識別された値を使用して上記語の曖昧性を除去するための手段と、上記曖昧性を除去された語に基づいて上記口頭発話の論理形式を生成するための手段と、上記論理形式に基づいて上記応答を準備するための手段とをさらに備える。
【0093】
一実施形態に従って、上記対話システムは、格納された実行結果を上記論理形式に基づいて上記データベースから識別するための手段をさらに備え、上記応答はさらに、上記実行結果に基づいて生成される。
【0094】
一実施形態に従って、上記対話システムは、上記口頭発話の表現、上記論理形式および上記応答を上記データベースに格納するための手段をさらに備える。
【0095】
一実施形態に従って、上記値を識別するステップは、上記判断されたコンテキストレベルに基づいて、複数のコンテキストレベルベースのデータベースの中から上記コンテキストレベルの上記データベースを選択するステップと、上記ユーザの識別子および上記語を用いて上記選択されたデータベースに照会して、上記値を識別するステップとを含む。
【0096】
一実施形態に従って、上記対話システムは、上記ユーザとの複数の以前の対話についての格納データを上記データベースから識別するための手段と、上記識別されたデータを解析して、上記値を計算するための手段とをさらに備える。
【0097】
本明細書に記載されている技術は、複数の利点を有する。格納された履歴情報を活用して音声入力に応答することにより、対話システムが、同じポイントを明確にするように継続的にユーザに求めることなく、より正確に応答することが可能になる。この結果、受信されたクエリに応答して出力を提供する際のレイテンシを減少させることができる。さらに、さまざまなコンテキストレベルに関連付けてコンテキスト情報を格納することによって、対話システムは、応答を提供するプロセスをスピードアップすることができる。たとえば、対象の情報が5つの異なるコンテキストレベルのデータベースのうちの1つの中にあると対話システムが判断する場合、対話システムは、どのコンテキストレベルのデータベースが適切であるかを識別することができる。この場合、対話システムは、より小さなデータセット(たとえば、5つのデータベースの例では、データ量の約1/5)に照会することになり、その結果、クエリ実行の高速化が可能である。
【0098】
レイテンシおよび計算リソースのさらなる減少は、コンテキストベースのデータベースを使用して、以前に実行された結果を検索することによって提供することができる。たとえば、システムがユーザの好きな歌の歌詞を既に調べている場合、ユーザが2回目または3回目に歌詞を要求すると、歌の歌詞をコンテキストデータベースから素早く検索することができる。したがって、本明細書に記載されている技術は、複数のレベルでレイテンシおよび計算リソース使用量を減少させることができる。
【0099】
上記のインフラストラクチャは、さまざまな異なる環境(クラウド環境(プライベート、パブリックおよびハイブリッドクラウド環境を含むさまざまなタイプのクラウドであり得る)、オンプレミス環境、ハイブリッド環境などを含む)において実現されることができる。
【0100】
図6は、一実施形態を実現するための分散型システム600の簡略図である。示されている実施形態では、分散型システム600は、1つまたは複数のクライアントコンピューティングデバイス602,604,606および608を含み、それらは、1つまたは複数の通信ネットワーク610を介してサーバ612に結合されている。クライアントコンピューティングデバイス602,604,606および608は、1つまたは複数のアプリケーションを実行するように構成され得る。
【0101】
さまざまな実施形態において、サーバ612は、履歴コンテキストに基づいて対話タスクを実行することを可能にする1つまたは複数のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。
【0102】
特定の実施形態において、サーバ612は、非仮想環境および仮想環境を含み得る他のサービスまたはソフトウェアアプリケーションも提供し得る。いくつかの実施形態において、これらのサービスは、ウェブベースのサービスもしくはクラウドサービスとして(ソフトウェア・アズ・ア・サービス(SaaS)モデル下など)クライアントコンピューティングデバイス602,604,606および/または608のユーザに対して提供され得る。クライアントコンピューティングデバイス602,604,606および/または608を動作させるユーザは、次いで、1つまたは複数のクライアントアプリケーションを利用してサーバ612と対話して、これらのコンポーネントによって提供されるサービスを利用し得る。
【0103】
図6に示される構成では、サーバ612は、サーバ612によって実行される機能を実現する1つまたは複数のコンポーネント618,620および622を含み得る。これらのコンポーネントは、1つまたは複数のプロセッサによって実行され得るソフトウェアコンポーネント、ハードウェアコンポーネント、またはそれらの組み合わせを含み得る。分散型システム600とは異なっていてもよいさまざまな異なるシステム構成が可能であるということが理解されるべきである。
図6に示される実施形態は、したがって、実施形態のシステムを実現するための分散型システムの一例であり、限定的であるよう意図されるものではない。
【0104】
ユーザは、本開示の教示に従って、履歴コンテキストを使用して対話タスクに影響を及ぼすのにクライアントコンピューティングデバイス602,604,606および/または608を使用し得る。クライアントデバイスは、クライアントデバイスのユーザがクライアントデバイスと対話することを可能にするインターフェイスを提供し得る。また、クライアントデバイスは、このインターフェイスを介して情報をユーザに出力し得る。
図6は、クライアントコンピューティングデバイスを4つだけ示しているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。
【0105】
クライアントデバイスは、さまざまなタイプのコンピューティングシステム(携帯型の手持ち式デバイス、汎用コンピュータ(パーソナルコンピュータおよびラップトップなど)、ワークステーションコンピュータ、ウェアラブルデバイス、ゲーミングシステム、シンクライアント、さまざまなメッセージングデバイス、センサまたは他の感知デバイスなど)を含み得る。これらのコンピューティングデバイスは、さまざまなタイプおよびバージョンのソフトウェアアプリケーションおよびオペレーティングシステム(たとえば、マイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)、UNIX(登録商標)またはUNIX系オペレーティングシステム、Linux(登録商標)またはLinux系オペレーティングシステム(グーグルクローム(商標)OSなど))を実行し得て、これらのソフトウェアアプリケーションおよびオペレーティングシステムは、さまざまなモバイルオペレーティングシステム(たとえば、マイクロソフトウィンドウズモバイル(登録商標)、iOS(登録商標)、ウィンドウズフォン(登録商標)、アンドロイド(商標)、ブラックベリー(登録商標)、パームOS(登録商標))を含む。携帯型の手持ち式デバイスは、携帯電話、スマートフォン(たとえば、iPhone(登録商標))、タブレット(たとえば、iPad(登録商標))、パーソナルデジタルアシスタント(PDA)などを含み得る。ウェアラブルデバイスは、グーグルグラス(登録商標)頭部装着型ディスプレイおよび他のデバイスを含み得る。ゲーミングシステムは、さまざまな手持ち式ゲーミングデバイス、インターネット対応ゲーミングデバイス(たとえば、キネクト(登録商標)ジェスチャ入力デバイスを有していたり有していなかったりするマイクロソフトXbox(登録商標)ゲーム機、ソニープレイステーション(登録商標)システム、任天堂(登録商標)によって提供されるさまざまなゲーミングシステムなど)などを含み得る。クライアントデバイスは、さまざまな異なるアプリケーション(さまざまなインターネット関連アプリ、通信アプリケーション(たとえば、電子メールアプリケーション、ショートメッセージサービス(SMS)アプリケーション)など)を実行することが可能であり得て、さまざまな通信プロトコルを使用し得る。
【0106】
ネットワーク610は、さまざまな入手可能なプロトコルのうちのいずれかを使用したデータ通信をサポートすることができる、当業者が精通している任意のタイプのネットワークであり得て、これらのプロトコルは、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、アップルトーク(登録商標)などを含むが、それらに限定されるものではない。単に一例として、ネットワーク610は、ローカルエリアネットワーク(LAN)、イーサネット(登録商標)に基づくネットワーク、トークンリング、ワイドエリアネットワーク(WAN)、インターネット、仮想ネットワーク、仮想プライベートネットワーク(VPN)、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、ワイヤレスネットワーク(たとえば、米国電気電子学会(IEEE)1002.11のプロトコル一式、ブルートゥース(登録商標)および/もしくはその他のワイヤレスプロトコルのうちのいずれかの下で動作するネットワーク)、ならびに/または、これらのいずれかの組み合わせおよび/もしくは他のネットワークであり得る。
【0107】
サーバ612は、1つもしくは複数の汎用コンピュータ、専門のサーバコンピュータ(一例として、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む)、サーバファーム、サーバクラスタ、または、その他の適切な構成および/もしくは組み合わせで構成され得る。サーバ612は、仮想オペレーティングシステムを実行する1つもしくは複数の仮想マシン、または、仮想化を含む他のコンピューティングアーキテクチャ(サーバのために仮想ストレージデバイスを維持するように仮想化され得る論理ストレージデバイスの1つもしくは複数のフレキシブルなプールなど)を含み得る。さまざまな実施形態において、サーバ612は、前述の開示に記載される機能を提供する1つまたは複数のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。
【0108】
サーバ612におけるコンピューティングシステムは、上記のもののうちのいずれかを含む1つまたは複数のオペレーティングシステム、および、任意の市場で入手可能なサーバオペレーティングシステムを実行し得る。サーバ612は、さまざまなさらに他のサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかも実行し得て、これらのアプリケーションは、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(コモンゲートウェイインターフェイス)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含む。例示的なデータベースサーバは、オラクル社(登録商標)、マイクロソフト社(登録商標)、サイベース社(登録商標)、IBM社(登録商標)(インターナショナルビジネスマシンズ)などから市場で入手可能なものを含むが、それらに限定されるものではない。
【0109】
いくつかの実現例において、サーバ612は、クライアントコンピューティングデバイス602,604,606および608のユーザから受信されるデータフィードおよび/またはイベント更新情報を解析および整理統合するための1つまたは複数のアプリケーションを含み得る。一例として、データフィードおよび/またはイベント更新情報は、1つまたは複数の第三者情報源および連続データストリームから受信される、ツイッター(登録商標)フィード、フェイスブック(登録商標)更新情報またはリアルタイムの更新情報を含み得るが、それらに限定されるものではなく、これらは、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などに関連するリアルタイムのイベントを含み得る。サーバ612は、データフィードおよび/またはリアルタイムのイベントをクライアントコンピューティングデバイス602,604,606および608の1つまたは複数のディスプレイデバイスを介して表示するための1つまたは複数のアプリケーションも含み得る。
【0110】
分散型システム600は、1つまたは複数のデータリポジトリ614,616も含み得る。特定の実施形態において、これらのデータリポジトリは、データおよび他の情報を格納するのに使用され得る。たとえば、データリポジトリ614,616のうちの1つまたは複数は、情報(対話履歴など)を格納するのに使用され得る。データリポジトリ614,616は、さまざまな場所にあり得る。たとえば、サーバ612によって使用されるデータリポジトリは、サーバ612に対してローカルであってもよく、またはサーバ612から遠く離れていてネットワークベースのまたは専用の接続を介してサーバ612と通信してもよい。データリポジトリ614,616は、異なるタイプであり得る。特定の実施形態において、サーバ612によって使用されるデータリポジトリは、データベース(たとえば、リレーショナルデータベース(オラクル社(登録商標)および他のベンダによって提供されるデータベースなど))であり得る。これらのデータベースのうちの1つまたは複数は、SQLでフォーマット済みのコマンドに応答したデータベースとの間でのデータの格納、更新および検索を可能にするように適合され得る。
【0111】
特定の実施形態において、データリポジトリ614,616のうちの1つまたは複数は、アプリケーションによって、アプリケーションデータを格納するのにも使用され得る。アプリケーションによって使用されるデータリポジトリは、異なるタイプ(たとえば、キー値格納リポジトリ、オブジェクト格納リポジトリ、またはファイルシステムによってサポートされる一般的なストレージリポジトリなど)であり得る。
【0112】
特定の実施形態において、本開示に記載されているコンテキストベースの対話処理機能は、クラウド環境を介してサービスとして提供され得る。
図7は、特定の実施形態に係る、さまざまなコンテキストベースの対話処理サービスがクラウドサービスとして提供され得るクラウドベースのシステム環境の簡略化されたブロック図である。
図7に示される実施形態において、クラウドインフラストラクチャシステム702は、1つまたは複数のクライアントコンピューティングデバイス704,706および708を使用してユーザによって要求され得る1つまたは複数のクラウドサービスを提供し得る。クラウドインフラストラクチャシステム702は、サーバ612について上記したものを含み得る1つまたは複数のコンピュータおよび/またはサーバを備え得る。クラウドインフラストラクチャシステム702におけるコンピュータは、汎用コンピュータ、専門のサーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な構成および/もしくは組み合わせとして編成され得る。
【0113】
ネットワーク710は、クライアント704,706および708とクラウドインフラストラクチャシステム702との間のデータの伝達およびやりとりを容易にし得る。ネットワーク710は、1つまたは複数のネットワークを含み得る。これらのネットワークは、同一のタイプであってもよく、または異なるタイプであってもよい。ネットワーク710は、通信を容易にするために、1つまたは複数の通信プロトコル(ワイヤードおよび/またはワイヤレスプロトコルを含む)をサポートし得る。
【0114】
図7に示される実施形態は、クラウドインフラストラクチャシステムの一例に過ぎず、限定的であるよう意図されるものではない。いくつかの他の実施形態において、クラウドインフラストラクチャシステム702は、
図7に示されるコンポーネントよりも多くのコンポーネントまたは少ないコンポーネントを有してもよく、2つまたはそれ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有してもよい、ということが理解されるべきである。たとえば、
図7は3つのクライアントコンピューティングデバイスを示しているが、代替的な実施形態では任意の数のクライアントコンピューティングデバイスがサポートされてもよい。
【0115】
クラウドサービスという語は、一般に、サービスプロバイダのシステム(たとえば、クラウドインフラストラクチャシステム702)によって通信ネットワーク(インターネットなど)を介してオンデマンドでユーザが入手できるようにされるサービスを指すのに使用される。一般に、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なっている。クラウドサービスプロバイダのシステムは、クラウドサービスプロバイダによって管理される。したがって、顧客は、クラウドサービスプロバイダによって提供されるクラウドサービスのために別のライセンス、サポート、またはハードウェアおよびソフトウェアリソースを購入する必要なく、これらのサービスを利用することができる。たとえば、クラウドサービスプロバイダのシステムは、アプリケーションをホストし得て、ユーザは、このアプリケーションを実行するためのインフラストラクチャリソースを購入する必要なく、インターネットを介してオンデマンドでこのアプリケーションをオーダーして使用することができる。クラウドサービスは、アプリケーション、リソースおよびサービスへの簡単でスケーラブルなアクセスを提供するように設計される。いくつかのプロバイダは、クラウドサービスを提供する。たとえば、いくつかのクラウドサービス(ミドルウェアサービス、データベースサービス、Javaクラウドサービスなど)は、カリフォルニア州レッドウッドショアーズのオラクル社(登録商標)によって提供される。
【0116】
特定の実施形態において、クラウドインフラストラクチャシステム702は、ハイブリッドサービスモデルを含むさまざまなモデル(ソフトウェア・アズ・ア・サービス(SaaS)モデル、プラットフォーム・アズ・ア・サービス(PaaS)モデル、インフラストラクチャ・アズ・ア・サービス(IaaS)モデルなど)を使用して1つまたは複数のクラウドサービスを提供し得る。クラウドインフラストラクチャシステム702は、さまざまなクラウドサービスの提供を可能にする一連のアプリケーション、ミドルウェア、データベースおよび他のリソースを含み得る。
【0117】
SaaSモデルは、基本的なアプリケーションのためのハードウェアまたはソフトウェアを顧客が購入する必要なく、アプリケーションまたはソフトウェアをインターネットのような通信ネットワークを介してサービスとして顧客に提供することを可能にする。たとえば、SaaSモデルは、クラウドインフラストラクチャシステム702によってホストされるオンデマンドアプリケーションへのアクセスを顧客に提供するのに使用され得る。オラクル社(登録商標)によって提供されるSaaSサービスの例としては、人材/資本管理、顧客関係管理(CRM)、企業リソース計画(ERP)、サプライチェーン管理(SCM)、企業業績管理(EPM)、アナリティクスサービス、ソーシャルアプリケーションなどのためのさまざまなサービスが挙げられるが、それらに限定されるものではない。
【0118】
IaaSモデルは、一般に、インフラストラクチャリソース(たとえば、サーバ、ストレージ、ハードウェアおよびネットワーキングリソース)をクラウドサービスとして顧客に提供して、弾力的な計算およびストレージ機能を提供するのに使用される。さまざまなIaaSサービスは、オラクル社(登録商標)によって提供される。
【0119】
PaaSモデルは、一般に、顧客がプラットフォームおよび環境リソースを調達、構築または保守整備する必要なく、顧客がアプリケーションおよびサービスを開発、実行および管理することを可能にするこのようなリソースをサービスとして提供するのに使用される。オラクル社(登録商標)によって提供されるPaaSサービスの例としては、オラクルJavaクラウドサービス(JCS)、オラクルデータベースクラウドサービス(DBCS)、データ管理クラウドサービス、さまざまなアプリケーション開発ソリューションサービスなどが挙げられるが、それらに限定されるものではない。
【0120】
クラウドサービスは、一般に、オンデマンドセルフサービスベースの、申し込みベースの、弾性的にスケーラブルな、信頼性のある、高可用性の、セキュリティ保護された態様で提供される。たとえば、顧客は、クラウドインフラストラクチャシステム702によって提供される1つまたは複数のサービスを申し込みオーダーを介してオーダーし得る。次いで、クラウドインフラストラクチャシステム702は、顧客の申し込みオーダーで要求されたサービスを提供するように処理を実行する。たとえば、クラウドインフラストラクチャシステム702は、履歴コンテキストを使用して対話タスクに影響を及ぼす。クラウドインフラストラクチャシステム702は、1つまたは複数のクラウドサービスを提供するように構成され得る。
【0121】
クラウドインフラストラクチャシステム702は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。パブリッククラウドモデルでは、クラウドインフラストラクチャシステム702は、第三者クラウドサービスプロバイダによって所有され得て、クラウドサービスは、任意の一般大衆顧客に提供され、顧客は、個人または企業であり得る。特定の他の実施形態では、プライベートクラウドモデルの下で、クラウドインフラストラクチャシステム702は、組織内(たとえば、企業組織内)で運営され得て、当該組織内の顧客にサービスが提供される。たとえば、顧客は、企業のさまざまな部署(人事部、給与支払部など)または当該企業内の個人であり得る。特定の他の実施形態では、コミュニティクラウドモデルの下で、クラウドインフラストラクチャシステム702および提供されるサービスは、関連するコミュニティ内のいくつかの組織によって共有され得る。さまざまな他のモデル(上記のモデルのハイブリッドなど)も使用され得る。
【0122】
クライアントコンピューティングデバイス704,706および708は、異なるタイプ(
図2に示されるデバイス202,204,206および208など)であり得て、1つまたは複数のクライアントアプリケーションを動作させることが可能であり得る。ユーザは、クライアントデバイスを使用してクラウドインフラストラクチャシステム702と対話し得る(クラウドインフラストラクチャシステム702によって提供されるサービスを要求するなど)。たとえば、ユーザは、クライアントデバイスを使用して、本開示に記載されているコンテキストベースの対話処理サービスを要求し得る。
【0123】
いくつかの実施形態において、コンテキストベースの対話処理サービスを提供するためにクラウドインフラストラクチャシステム702によって実行される処理は、ビッグデータ解析を含み得る。この解析は、大きなデータセットを使用、解析および操作して、データ内のさまざまなトレンド、挙動、関係などを検出して視覚化することを含み得る。この解析は、場合によってはデータを並行して処理したりデータを使用してシミュレーションを行ったりする1つまたは複数のプロセッサによって実行され得る。たとえば、ビッグデータ解析は、受信された音声入力に基づいて意図を識別するためにクラウドインフラストラクチャシステム702によって実行され得る。この解析に使用されるデータは、構造化されたデータ(たとえば、データベースに格納されたデータまたは構造化されたモデルに従って構造化されたデータ)および/または構造化されていないデータ(たとえば、データブロブ(バイナリ・ラージ・オブジェクト))を含み得る。
【0124】
図7の実施形態に示されるように、クラウドインフラストラクチャシステム702は、クラウドインフラストラクチャシステム702によって提供されるさまざまなクラウドサービスの提供を容易にするために利用されるインフラストラクチャリソース730を含み得る。インフラストラクチャリソース730は、たとえば、処理リソース、ストレージまたはメモリリソース、ネットワーキングリソースなどを含み得る。
【0125】
特定の実施形態において、クラウドインフラストラクチャシステム702によってさまざまな顧客に提供されるさまざまなクラウドサービスをサポートするためのこれらのリソースの効率的なプロビジョニングを容易にするために、リソースは、リソースまたはリソースモジュールのセット(「ポッド」とも称される)に束ねられ得る。各リソースモジュールまたはポッドは、1つまたは複数のタイプのリソースの予め統合されて最適化された組み合わせを備え得る。特定の実施形態において、さまざまなタイプのクラウドサービスのためにさまざまなポッドが予めプロビジョニングされ得る。たとえば、ポッドの第1のセットは、データベースサービスのためにプロビジョニングされ得て、ポッドの第1のセットの中のポッドとは異なるリソースの組み合わせを含み得るポッドの第2のセットは、Javaサービスのためにプロビジョニングされ得る、などである。いくつかのサービスでは、サービスのプロビジョニングに割り当てられるリソースは、サービス間で共有され得る。
【0126】
クラウドインフラストラクチャシステム702自体は、クラウドインフラストラクチャシステム702のさまざまなコンポーネントによって共有されるサービス732を内部で使用し得て、これにより、クラウドインフラストラクチャシステム702によるサービスのプロビジョニングが容易になる。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性、バックアップおよび回復サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを含み得るが、それらに限定されるものではない。
【0127】
クラウドインフラストラクチャシステム702は、複数のサブシステムを備え得る。これらのサブシステムは、ソフトウェアで実現されてもよく、またはハードウェアで実現されてもよく、またはそれらの組み合わせで実現されてもよい。
図7に示されるように、サブシステムは、クラウドインフラストラクチャシステム702のユーザまたは顧客がクラウドインフラストラクチャシステム702と対話することを可能にするユーザインターフェイスサブシステム712を含み得る。ユーザインターフェイスサブシステム712は、さまざまな異なるインターフェイス(ウェブインターフェイス714、オンラインストアインターフェイス716(クラウドインフラストラクチャシステム702によって提供されたクラウドサービスが宣伝されて消費者によって購入可能である)および他のインターフェイス718など)を含み得る。たとえば、顧客は、クライアントデバイスを使用して、クラウドインフラストラクチャシステム702によって提供された1つまたは複数のサービスをインターフェイス714,716および718のうちの1つまたは複数を使用して要求し得る(サービス要求734)。たとえば、顧客は、オンラインストアにアクセスして、クラウドインフラストラクチャシステム702によって提供されたクラウドサービスをブラウズして、顧客が申し込みたい、クラウドインフラストラクチャシステム702によって提供された1つまたは複数のサービスの申し込みオーダーを行い得る。このサービス要求は、顧客および顧客が申し込みたい1つまたは複数のサービスを識別する情報を含み得る。たとえば、顧客は、クラウドインフラストラクチャシステム702によって提供されたコンテキストベースの対話処理サービスの申し込みオーダーを行い得る。オーダーの一部として、顧客は、要求を識別する音声入力を提供し得る。
【0128】
特定の実施形態(
図7に示される実施形態など)において、クラウドインフラストラクチャシステム702は、新たなオーダーを処理するように構成されたオーダー管理サブシステム(OMS)720を備え得る。この処理の一部として、OMS720は、まだなされていなければ顧客のアカウントを作成して、要求されたサービスを顧客に提供するために請求書を顧客に発行するのに使用される請求書発行および/または課金情報を顧客から受信して、顧客情報を検証して、検証時に顧客のオーダーを確定して、さまざまなワークフローをオーケストレートしてプロビジョニングに備えてオーダーを準備するように構成され得る。
【0129】
適切な形で認証されると、OMS720は、次に、オーダープロビジョニングサブシステム(OPS)724を呼び出し得る。オーダープロビジョニングサブシステム(OPS)724は、オーダーのためのリソース(処理、メモリおよびネットワーキングリソースを含む)をプロビジョニングするように構成される。プロビジョニングは、オーダーのためのリソースを割り当てて、顧客オーダーによって要求されたサービスを容易にするようにこれらのリソースを構成することを含み得る。オーダーのためのリソースをプロビジョニングする態様およびプロビジョニングされたリソースのタイプは、顧客によってオーダーされたクラウドサービスのタイプに依存し得る。たとえば、1つのワークフローに従って、OPS724は、特定のクラウドサービスが要求されていると判断して、当該特定のクラウドサービスについて予め構成されていたであろうポッドの数を識別するように構成され得る。オーダーに割り当てられるポッドの数は、要求されたサービスのサイズ/量/レベル/範囲に依存し得る。たとえば、割り当てられるポッドの数は、サービスによってサポートされるユーザの数、サービスが要求されている期間などに基づいて決定され得る。次いで、割り当てられたポッドは、要求されたサービスを提供するように特定の要求発行顧客に合わせてカスタマイズされ得る。
【0130】
クラウドインフラストラクチャシステム702は、応答または通知744を要求発行顧客に送信して、要求されたサービスがいつ使用できる状態になるかを示し得る。いくつかの例において、要求されたサービスの利益を顧客が使用および利用し始めることを可能にする情報(たとえば、リンク)が顧客に送信され得る。特定の実施形態において、顧客がコンテキストベースの対話処理サービスを要求する場合、応答は、識別された意図に基づいて生成された応答を含み得る。
【0131】
クラウドインフラストラクチャシステム702は、サービスを複数の顧客に提供し得る。各顧客について、クラウドインフラストラクチャシステム702は、顧客から受信された1つまたは複数の申し込みオーダーに関連する情報を管理して、これらのオーダーに関連する顧客データを維持して、要求されたサービスを顧客に提供することを担当する。クラウドインフラストラクチャシステム702は、申し込みされたサービスの顧客の使用に関する使用量統計も収集し得る。たとえば、使用されたストレージの量、転送されたデータの量、ユーザの数、ならびにシステムアップ時間およびシステムダウン時間などについて統計が収集され得る。この使用量情報は、顧客に請求書を発行するのに使用され得る。請求書発行は、たとえば月1回のサイクルで行われ得る。
【0132】
クラウドインフラストラクチャシステム702は、サービスを複数の顧客に並行して提供し得る。クラウドインフラストラクチャシステム702は、これらの顧客の情報(場合によっては、専有情報を含む)を格納し得る。特定の実施形態において、クラウドインフラストラクチャシステム702は、顧客情報を管理して、ある顧客に関連する情報が別の顧客によってアクセス不可能であるように、管理された情報を分離するように構成されたアイデンティティ管理サブシステム(IMS)728を備える。IMS728は、さまざまなセキュリティ関連サービス(アイデンティティサービス(情報アクセス管理、認証および認可サービス、顧客のアイデンティティおよび役割および関連する機能を管理するためのサービスなど))を提供するように構成され得る。
【0133】
図8は、特定の実施形態を実現するために使用され得る例示的なコンピュータシステム800を示す図である。たとえば、いくつかの実施形態において、コンピュータシステム800は、ASRサブシステム、NLUサブシステム、ならびに上記のさまざまなサーバおよびコンピュータシステムのうちのいずれかを実現するために使用され得る。
図8に示されるように、コンピュータシステム800は、処理サブシステム804を含むさまざまなサブシステムを含み、処理サブシステム804は、バスサブシステム802を介していくつかの他のサブシステムと通信する。これらの他のサブシステムは、処理加速ユニット806と、I/Oサブシステム808と、ストレージサブシステム818と、通信サブシステム824とを含み得る。ストレージサブシステム818は、記憶媒体822とシステムメモリ810とを含む非一時的なコンピュータ読取可能記憶媒体を含み得る。
【0134】
バスサブシステム802は、コンピュータシステム800のさまざまなコンポーネントおよびサブシステムに意図した通りに互いに通信させるための機構を提供する。バスサブシステム802は、単一のバスとして概略的に示されているが、バスサブシステムの代替的な実施形態は、複数のバスを利用してもよい。バスサブシステム802は、いくつかのタイプのバス構造のうちのいずれかであり得て、これらのバス構造は、さまざまなバスアーキテクチャのうちのいずれかを用いるメモリバスまたはメモリコントローラ、周辺バス、ローカルバスなどを含む。たとえば、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカルバス、およびIEEE P1386.1規格に従って製造される中二階バスとして実現され得る周辺コンポーネントインターコネクト(PCI)バスなどを含み得る。
【0135】
処理サブシステム804は、コンピュータシステム800の動作を制御し、1つまたは複数のプロセッサ、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)を備え得る。これらのプロセッサは、シングルコアプロセッサまたはマルチコアプロセッサを含み得る。コンピュータシステム800の処理リソースは、1つまたは複数の処理ユニット832,834などに編成されることができる。処理ユニットは、1つもしくは複数のプロセッサ、同一のもしくは異なるプロセッサからの1つもしくは複数のコア、コアとプロセッサとの組み合わせ、またはコアとプロセッサとの他の組み合わせを含み得る。いくつかの実施形態において、処理サブシステム804は、1つまたは複数の特別目的コプロセッサ(グラフィックスプロセッサ、デジタル信号プロセッサ(DSP)など)を含み得る。いくつかの実施形態において、処理サブシステム804の処理ユニットの一部または全ては、カスタマイズされた回路(特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)など)を使用して実現可能である。
【0136】
いくつかの実施形態において、処理サブシステム804内の処理ユニットは、システムメモリ810内またはコンピュータ読取可能記憶媒体822上に格納された命令を実行することができる。さまざまな実施形態において、処理ユニットは、さまざまなプログラムまたはコード命令を実行することができ、複数の同時実行プログラムまたはプロセスを維持することができる。どんなときでも、実行対象のプログラムコードの一部または全ては、システムメモリ810内および/またはコンピュータ読取可能記憶媒体822上(場合によっては、1つまたは複数のストレージデバイス上を含む)にあることができる。好適なプログラミングを通じて、処理サブシステム804は、上記のさまざまな機能を提供することができる。コンピュータシステム800が1つまたは複数の仮想マシンを実行している例では、1つまたは複数の処理ユニットは、各仮想マシンに割り当てられ得る。
【0137】
特定の実施形態において、処理加速ユニット806は、コンピュータシステム800によって実行される処理全体を加速させるために、カスタマイズされた処理を実行するように、または、処理サブシステム804によって実行される処理の一部をオフロードするように任意に設けられ得る。
【0138】
I/Oサブシステム808は、情報をコンピュータシステム800に入力する、および/または、情報をコンピュータシステム800からもしくはコンピュータシステム800を介して出力するためのデバイスおよび機構を含み得る。一般に、入力デバイスという語の使用は、情報をコンピュータシステム800に入力するための全ての可能なタイプのデバイスおよび機構を含むよう意図されている。ユーザインターフェイス入力デバイスは、たとえば、キーボード、ポインティングデバイス(マウスまたはトラックボールなど)、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを伴うオーディオ入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含み得る。ユーザインターフェイス入力デバイスは、ユーザが入力デバイスを制御して入力デバイスと対話することを可能にするモーション感知および/またはジェスチャ認識デバイス(マイクロソフトキネクト(登録商標)モーションセンサなど)、マイクロソフトXbox(登録商標)360ゲームコントローラ、ジェスチャおよび口頭のコマンドを使用して入力を受信するためのインターフェイスを提供するデバイスも含み得る。ユーザインターフェイス入力デバイスは、ユーザから目の動き(たとえば、写真を撮っている間および/またはメニュー選択を行なっている間の「まばたき」)を検出し、アイジェスチャを入力デバイス(たとえば、グーグルグラス(登録商標))への入力として変換するアイジェスチャ認識デバイス(グーグルグラス(登録商標)瞬き検出器など)も含み得る。さらに、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システムと対話することを可能にする音声認識感知デバイスを含み得る。
【0139】
ユーザインターフェイス入力デバイスの他の例としては、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにオーディオ/ビジュアルデバイス(スピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなど)が挙げられるが、それらに限定されるものではない。さらに、ユーザインターフェイス入力デバイスは、たとえば、医療用画像化入力デバイス(コンピュータ断層撮影、磁気共鳴撮像、ポジションエミッショントモグラフィーおよび医療用超音波検査デバイスなど)を含み得る。ユーザインターフェイス入力デバイスは、たとえば、オーディオ入力デバイス(MIDIキーボード、デジタル楽器など)も含み得る。
【0140】
一般に、「出力デバイス」という語の使用は、情報をコンピュータシステム800からユーザまたは他のコンピュータに出力するための全ての可能なタイプのデバイスおよび機構を含むよう意図されている。ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または非ビジュアルディスプレイ(オーディオ出力デバイスなど)を含み得る。ディスプレイサブシステムは、陰極線管(CRT)、フラットパネルデバイス(液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するものなど)、投影デバイス、タッチスクリーンなどであり得る。たとえば、ユーザインターフェイス出力デバイスは、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまなディスプレイデバイス(モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなど)を含み得るが、それらに限定されるものではない。
【0141】
ストレージサブシステム818は、コンピュータシステム800によって使用される情報およびデータを格納するためのリポジトリまたはデータストアを提供する。ストレージサブシステム818は、いくつかの実施形態の機能を提供する基本的なプログラミングおよびデータ構造を格納するための有形の非一時的なコンピュータ読取可能記憶媒体を提供する。ストレージサブシステム818は、処理サブシステム804によって実行されると上記の機能を提供するソフトウェア(たとえば、プログラム、コードモジュール、命令)を格納し得る。このソフトウェアは、処理サブシステム804の1つまたは複数の処理ユニットによって実行され得る。ストレージサブシステム818は、本開示の教示に従って使用されるデータを格納するためのリポジトリも提供し得る。
【0142】
ストレージサブシステム818は、揮発性および不揮発性メモリデバイスを含む1つまたは複数の非一時的なメモリデバイスを含み得る。
図8に示されるように、ストレージサブシステム818は、システムメモリ810と、コンピュータ読取可能記憶媒体822とを含む。システムメモリ810は、いくつかのメモリを含み得て、これらのメモリは、プログラム実行中に命令およびデータを格納するための揮発性メインランダムアクセスメモリ(RAM)、および、固定された命令が格納される不揮発性リードオンリメモリ(ROM)またはフラッシュメモリを含む。いくつかの実現例において、起動中などにコンピュータシステム800内の要素間で情報を転送するのを手助けする基本的なルーチンを含むベーシックインプット/アウトプットシステム(BIOS)は、一般に、ROMに格納され得る。RAMは、一般に、処理サブシステム804によって現在動作および実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実現例において、システムメモリ810は、複数の異なるタイプのメモリ(スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)など)を含み得る。
【0143】
一例として、
図8に示されるように、システムメモリ810は、実行中のアプリケーションプログラム812(ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などのさまざまなアプリケーションを含み得る)、プログラムデータ814およびオペレーティングシステム816をロードし得るが、それらに限定されるものではない。一例として、オペレーティングシステム816は、さまざまなバージョンのマイクロソフトウィンドウズ(登録商標)、アップルマッキントッシュ(登録商標)および/もしくはLinuxオペレーティングシステム、さまざまな市場で入手可能なUNIX(登録商標)もしくはUNIX系オペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、グーグルクローム(登録商標)OSなどを含むが、それらに限定されるものではない)、ならびに/または、モバイルオペレーティングシステム(iOS、ウィンドウズ(登録商標)フォン、アンドロイド(登録商標)OS、ブラックベリー(登録商標)OS、パーム(登録商標)OSオペレーティングシステムなど)を含み得る。
【0144】
コンピュータ読取可能記憶媒体822は、いくつかの実施形態の機能を提供するプログラミングおよびデータ構造を格納し得る。コンピュータ読取可能媒体822は、コンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータをコンピュータシステム800のために格納し得る。処理サブシステム804によって実行されると上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム818に格納され得る。一例として、コンピュータ読取可能記憶媒体822は、不揮発性メモリ(ハードディスクドライブ、磁気ディスクドライブ、光ディスクドライブ(CD ROM、DVD、ブルーレイ(登録商標)ディスクなど)、または他の光学式媒体など)を含み得る。コンピュータ読取可能記憶媒体822は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含み得るが、それらに限定されるものではない。コンピュータ読取可能記憶媒体822は、不揮発性メモリに基づくソリッドステートドライブ(SSD)(フラッシュメモリベースのSSD、企業フラッシュドライブ、ソリッドステートROMなど)、揮発性メモリに基づくSSD(ソリッドステートRAM、ダイナミックRAM、スタティックRAMなど)、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMベースのSSDとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDも含み得る。
【0145】
特定の実施形態において、ストレージサブシステム818は、コンピュータ読取可能記憶媒体822にさらに接続可能なコンピュータ読取可能記憶媒体リーダ820も含み得る。リーダ820は、メモリデバイス(ディスク、フラッシュドライブなど)からデータを受信して、読み取るように構成され得る。
【0146】
特定の実施形態において、コンピュータシステム800は、仮想化技術(処理およびメモリリソースの仮想化を含むが、それに限定されるものではない)をサポートし得る。たとえば、コンピュータシステム800は、1つまたは複数の仮想マシンを実行するためのサポートを提供し得る。特定の実施形態において、コンピュータシステム800は、仮想マシンの構成および管理を容易にするプログラム(ハイパーバイザなど)を実行し得る。各仮想マシンは、メモリ、計算(たとえば、プロセッサ、コア)、I/Oおよびネットワーキングリソースを割り当てられ得る。各仮想マシンは、一般に、他の仮想マシンから独立して動作する。仮想マシンは、一般に、自身のオペレーティングシステムを実行し、このオペレーティングシステムは、コンピュータシステム800によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同一であってもよく、または異なっていてもよい。したがって、場合によっては、複数のオペレーティングシステムがコンピュータシステム800によって同時に実行され得る。
【0147】
通信サブシステム824は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム824は、他のシステムとコンピュータシステム800との間のデータの送受のためのインターフェイスとしての役割を果たす。たとえば、通信サブシステム824は、コンピュータシステム800が、クライアントデバイスとの間での情報の送受のための、インターネットを介した1つまたは複数のクライアントデバイスとの通信チャネルを確立することを可能にし得る。たとえば、通信サブシステムは、データベースと通信してコンテキスト情報をクライアントデータベースからインポートするのに使用され得る(たとえば、個人の医療保険会社の名前は、個人の雇用主によって維持されるデータベースから検索され得る)。
【0148】
通信サブシステム824は、ワイヤードおよび/またはワイヤレス通信プロトコルを両方ともサポートし得る。たとえば、特定の実施形態において、通信サブシステム824は、(たとえば、セルラー電話技術、先進データネットワーク技術(3G、4GもしくはEDGE(グローバル進化のための拡張版データ通信速度)など)、WiFi(IEEE802.XXファミリー規格)、または他のモバイル通信技術、またはそれらのいずれかの組み合わせを使用して)ワイヤレス音声および/またはデータネットワークにアクセスするための無線周波数(RF)送受信機コンポーネント、グローバルポジショニングシステム(GPS)受信機コンポーネント、ならびに/または、他のコンポーネントを含み得る。いくつかの実施形態において、通信サブシステム824は、ワイヤレスインターフェイスに加えて、またはその代わりに、ワイヤードネットワーク接続(たとえば、イーサネット)を提供することができる。
【0149】
通信サブシステム824は、データをさまざまな形式で送受信することができる。たとえば、いくつかの実施形態において、他の形式に加えて、通信サブシステム824は、構造化されたおよび/または構造化されていないデータフィード826、イベントストリーム828、イベント更新情報830などの形式で入力通信を受信し得る。たとえば、通信サブシステム824は、ソーシャルメディアネットワークのユーザからリアルタイムでデータフィード826および/または他の通信サービス(ツイッター(登録商標)フィード、フェイスブック(登録商標)更新情報、ウェブフィード(リッチ・サイト・サマリ(RSS)フィードなど)、および/または、1つもしくは複数の第三者情報源からのリアルタイム更新情報など)を受信(または、送信)するように構成され得る。
【0150】
特定の実施形態において、通信サブシステム824は、連続データストリームの形式でデータを受信するように構成され得て、当該連続データストリームは、明確な終端を持たない、本来は連続的または無限であり得るリアルタイムイベントのイベントストリーム828および/またはイベント更新情報830を含み得る。連続データを生成するアプリケーションの例としては、たとえば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などを挙げることができる。
【0151】
また、通信サブシステム824は、データをコンピュータシステム800から他のコンピュータシステムまたはネットワークに伝えるように構成され得る。このデータは、コンピュータシステム800に結合された1つまたは複数のストリーミングデータソースコンピュータと通信し得る1つまたは複数のデータベースに、さまざまな異なる形式(構造化されたおよび/または構造化されていないデータフィード826、イベントストリーム828、イベント更新情報830など)で伝えられ得る。
【0152】
コンピュータシステム800は、さまざまなタイプ(手持ち式の携帯型デバイス(たとえば、iPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえば、グーグルグラス(登録商標)頭部装着型ディスプレイ)、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含む)のもののうちの1つであり得る。常に変化するコンピュータおよびネットワークの性質のために、
図8に示されるコンピュータシステム800の記載は、具体例として意図されているに過ぎない。
図8に示されるシステムよりも多くのコンポーネントまたは少ないコンポーネントを有する多くの他の構成が可能である。本明細書における開示および教示に基づいて、当業者は、さまざまな実施形態を実現するための他の態様および/または方法を理解するであろう。
【0153】
特定の実施形態について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物が可能である。実施形態は、特定の具体的なデータ処理環境内での動作に限定されるものではなく、複数のデータ処理環境内で自由に動作できる。さらに、特定の一連のトランザクションおよびステップを使用して特定の実施形態について説明してきたが、これは限定的であるよう意図されるものではないということが当業者に明らかであるべきである。いくつかのフローチャートは、動作をシーケンシャルなプロセスとして説明しているが、これらの動作の多くは、並列にまたは同時に実行されてもよい。また、動作の順序は、並べ替えられてもよい。プロセスは、図面に含まれていない追加のステップを有してもよい。上記の実施形態のさまざまな特徴および局面は、個々に使用されてもよく、または一緒に使用されてもよい。
【0154】
さらに、ハードウェアとソフトウェアとの特定の組み合わせを使用して特定の実施形態について説明してきたが、ハードウェアとソフトウェアとの他の組み合わせも可能であるということが認識されるべきである。特定の実施形態は、ハードウェアのみで実現されてもよく、ソフトウェアのみで実現されてもよく、またはそれらの組み合わせを使用して実現されてもよい。本明細書に記載されているさまざまなプロセスは、同一のプロセッサ上で実現されてもよく、または任意の組み合わせの異なるプロセッサ上で実現されてもよい。
【0155】
デバイス、システム、コンポーネントまたはモジュールは、特定の動作または機能を実行するように構成されるものとして説明されているが、このような構成は、たとえば、動作を実行するように電子回路を設計することによって、動作を実行する(コンピュータ命令もしくはコードを実行するなど)ようにプログラム可能電子回路(マイクロプロセッサなど)をプログラムすることによって、または非一時的なメモリ媒体に格納されたコードもしくは命令を実行するようにプロセッサもしくはコアがプログラムされることによって、またはそれらの任意の組み合わせによって達成することができる。プロセスは、さまざまな技術(プロセス間通信のための従来の技術を含むが、それに限定されるものではない)を使用して通信することができ、異なるプロセスペアは異なる技術を使用してもよく、同じプロセスペアは別々のタイミングで異なる技術を使用してもよい。
【0156】
実施形態を十分に理解できるようにするために、本開示では具体的な詳細が提供されている。しかし、これらの具体的な詳細がなくても実施形態を実施することができる。たとえば、周知の回路、プロセス、アルゴリズム、構造および技術は、実施形態を曖昧にすることを回避するために、不必要な詳細なしに示されている。この説明は、例示的な実施形態を提供しているに過ぎず、他の実施形態の範囲、適用性または構成を限定するよう意図されているわけではない。むしろ、実施形態の上記の説明は、さまざまな実施形態を実現するための実施可能な程度の説明を当業者に提供するであろう。要素の機能および配置の点でさまざまな変更がなされてもよい。
【0157】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかし、特許請求の範囲に記載されているより広い精神および範囲から逸脱することなく、追加、減算、削除ならびに他の変形および変更がなされてもよい、ということは明らかであろう。したがって、特定の実施形態について説明してきたが、これらは限定的であるよう意図されるものではない。さまざまな変形例および等価物は、以下の特許請求の範囲の範囲内である。これらの変形例は、開示されている特徴の任意の関連する組み合わせを含む。要約すると、開示されている特徴は、以下のようにまとめられる。
【0158】
構成1:実施形態に従って、コンピュータによって実行される方法が提供される。上記方法は、対話システムが、口頭発話をユーザから受信するステップと、上記対話システムが、上記口頭発話を処理して、曖昧性除去のための語を識別するステップと、上記対話システムが、曖昧性除去のための上記語について、複数の予め規定されたコンテキストレベルの中からコンテキストレベルを判断するステップと、上記対話システムが、上記判断されたコンテキストレベルに基づいて、データベースを使用して上記語の値を識別するステップとを備え、上記データベースは、上記コンテキストレベルに関連付けて上記ユーザについて複数の値を格納しており、上記方法はさらに、上記対話システムが、上記識別された値を使用して上記語の曖昧性を除去するステップを備える。
【0159】
構成2:上記方法の特定の局面において、上記方法は、上記対話システムが、上記曖昧性を除去された語に基づいて上記口頭発話の論理形式を生成するステップと、上記対話システムが、上記論理形式に基づいて応答を生成するステップと、上記対話システムが、上記応答を上記ユーザに出力するステップとをさらに備える。
【0160】
構成3:上記方法の特定の局面において、上記方法は、上記対話システムが、格納された実行結果を上記論理形式に基づいて上記データベースから識別するステップをさらに備え、上記応答はさらに、上記実行結果に基づいて生成される。
【0161】
構成4:上記方法の特定の局面において、上記方法は、上記対話システムが、上記口頭発話の表現、上記論理形式および上記応答を上記データベースに格納するステップをさらに備える。
【0162】
構成5:上記方法の特定の局面において、上記値を識別するステップは、上記判断されたコンテキストレベルに基づいて、複数のコンテキストレベルベースのデータベースの中から上記コンテキストレベルの上記データベースを選択するステップと、上記ユーザの識別子および上記語を用いて上記選択されたデータベースに照会して、上記値を識別するステップとを含む。
【0163】
構成6:上記方法の特定の局面において、上記方法は、上記対話システムが、上記ユーザとの複数の以前の対話についての格納データを上記データベースから識別するステップと、上記識別されたデータを解析して、上記値を計算するステップとをさらに備える。
【0164】
構成7:上記方法の特定の局面において、上記複数の予め規定されたコンテキストレベルは、直近コンテキスト、短期間コンテキスト、中期間コンテキストおよび長期間コンテキストを含む。
【0165】
構成8:いくつかの実施形態に従って、非一時的なコンピュータ読取可能メモリが提供される。上記非一時的なコンピュータ読取可能メモリは、1つまたは複数のプロセッサによって実行可能な複数の命令を格納しており、上記複数の命令は、上記1つまたは複数のプロセッサによって実行されると上記1つまたは複数のプロセッサに処理を実行させる命令を備え、上記処理は、口頭発話をユーザから受信するステップと、上記口頭発話を処理して、曖昧性除去のための語を識別するステップと、曖昧性除去のための上記語について、複数の予め規定されたコンテキストレベルの中からコンテキストレベルを判断するステップと、上記判断されたコンテキストレベルに基づいて、データベースを使用して上記語の値を識別するステップとを備え、上記データベースは、上記コンテキストレベルに関連付けて上記ユーザについて複数の値を格納しており、上記処理はさらに、上記識別された値を使用して上記語の曖昧性を除去するステップを備える。
【0166】
構成9:上記非一時的なコンピュータ読取可能メモリの特定の局面において、上記処理はさらに、上記曖昧性を除去された語に基づいて上記口頭発話の論理形式を生成するステップと、上記論理形式に基づいて応答を準備するステップと、上記応答を上記ユーザに出力するステップとを備える。
【0167】
構成10:上記非一時的なコンピュータ読取可能メモリの特定の局面において、上記処理はさらに、格納された実行結果を上記論理形式に基づいて上記データベースから識別するステップを備え、上記応答はさらに、上記実行結果に基づいて生成される。
【0168】
構成11:上記非一時的なコンピュータ読取可能メモリの特定の局面において、上記処理はさらに、上記口頭発話の表現、上記論理形式および上記応答を上記データベースに格納するステップを備える。
【0169】
構成12:上記非一時的なコンピュータ読取可能メモリの特定の局面において、上記値を識別するステップは、上記判断されたコンテキストレベルに基づいて、複数のコンテキストレベルベースのデータベースの中から上記コンテキストレベルの上記データベースを選択するステップと、上記ユーザの識別子および上記語を用いて上記選択されたデータベースに照会して、上記値を識別するステップとを含む。
【0170】
構成13:上記非一時的なコンピュータ読取可能メモリの特定の局面において、上記処理はさらに、上記ユーザとの複数の以前の対話についての格納データを上記データベースから識別するステップと、上記識別されたデータを解析して、上記値を計算するステップとを備える。
【0171】
構成14:上記非一時的なコンピュータ読取可能メモリの特定の局面において、上記複数の予め規定されたコンテキストレベルは、直近コンテキスト、短期間コンテキスト、中期間コンテキストおよび長期間コンテキストを含む。
【0172】
構成15:いくつかの実施形態に従って、システムが提供される。上記システムは、1つまたは複数のプロセッサと、上記1つまたは複数のプロセッサに結合されたメモリとを備え、上記メモリは、上記1つまたは複数のプロセッサによって実行可能な複数の命令を格納しており、上記複数の命令は、上記1つまたは複数のプロセッサによって実行されると上記1つまたは複数のプロセッサに処理を実行させる命令を備え、上記処理は、口頭発話をユーザから受信するステップと、上記口頭発話を処理して、曖昧性除去のための語を識別するステップと、曖昧性除去のための上記語について、複数の予め規定されたコンテキストレベルの中からコンテキストレベルを判断するステップと、上記判断されたコンテキストレベルに基づいて、データベースを使用して上記語の値を識別するステップとを備え、上記データベースは、上記コンテキストレベルに関連付けて上記ユーザについて複数の値を格納しており、上記処理はさらに、上記識別された値を使用して上記語の曖昧性を除去するステップを備える。
【0173】
構成16:上記システムの特定の局面において、上記処理はさらに、上記曖昧性を除去された語に基づいて上記口頭発話の論理形式を生成するステップと、上記論理形式に基づいて応答を準備するステップと、上記応答を上記ユーザに出力するステップとを備える。
【0174】
構成17:上記システムの特定の局面において、上記処理はさらに、格納された実行結果を上記論理形式に基づいて上記データベースから識別するステップを備え、上記応答はさらに、上記実行結果に基づいて生成される。
【0175】
構成18:上記システムの特定の局面において、上記処理はさらに、上記口頭発話の表現、上記論理形式および上記応答を上記データベースに格納するステップを備える。
【0176】
構成19:上記システムの特定の局面において、上記値を識別するステップは、上記判断されたコンテキストレベルに基づいて、複数のコンテキストレベルベースのデータベースの中から上記コンテキストレベルの上記データベースを選択するステップと、上記ユーザの識別子および上記語を用いて上記選択されたデータベースに照会して、上記値を識別するステップとを含む。
【0177】
構成20:上記システムの特定の局面において、上記処理はさらに、上記ユーザとの複数の以前の対話についての格納データを上記データベースから識別するステップと、上記識別されたデータを解析して、上記値を計算するステップとを備える。
【0178】
構成21:いくつかの実施形態に従って、システムが提供される。上記システムは、口頭発話をユーザから受信するための手段と、上記口頭発話を処理して、曖昧性除去のための語を識別するための手段と、曖昧性除去のための上記語について、複数の予め規定されたコンテキストレベルの中からコンテキストレベルを判断するための手段と、上記コンテキストレベルに基づいて、上記曖昧性を除去された語に従って応答を準備するための手段と、上記応答を上記ユーザに出力するための手段とを備える。
【0179】
構成22:上記システムの特定の局面において、上記システムは、上記判断されたコンテキストレベルに基づいて、データベースを使用して上記語の値を識別するための手段をさらに備え、上記データベースは、上記コンテキストレベルに関連付けて上記ユーザについて複数の値を格納しており、上記システムはさらに、上記識別された値を使用して上記語の曖昧性を除去するための手段と、上記曖昧性を除去された語に基づいて上記口頭発話の論理形式を生成するための手段と、上記論理形式に基づいて上記応答を準備するための手段とをさらに備える。
【0180】
構成23:上記システムの特定の局面において、上記システムは、格納された実行結果を上記論理形式に基づいて上記データベースから識別するための手段をさらに備え、上記応答はさらに、上記実行結果に基づいて生成される。
【0181】
構成24:上記システムの特定の局面において、上記システムは、上記口頭発話の表現、上記論理形式および上記応答を上記データベースに格納するための手段をさらに備える。
【0182】
構成25:上記システムの特定の局面において、上記値を識別するステップは、上記判断されたコンテキストレベルに基づいて、複数のコンテキストレベルベースのデータベースの中から上記コンテキストレベルの上記データベースを選択するステップと、上記ユーザの識別子および上記語を用いて上記選択されたデータベースに照会して、上記値を識別するステップとを含む。
【0183】
構成26:上記システムの特定の局面において、上記システムは、上記ユーザとの複数の以前の対話についての格納データを上記データベースから識別するための手段と、上記識別されたデータを解析して、上記値を計算するための手段とをさらに備える。
【国際調査報告】