IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ データチャット.エーアイの特許一覧

<>
  • 特許-制限自然言語処理 図1
  • 特許-制限自然言語処理 図2
  • 特許-制限自然言語処理 図3A
  • 特許-制限自然言語処理 図3B
  • 特許-制限自然言語処理 図3C
  • 特許-制限自然言語処理 図3D
  • 特許-制限自然言語処理 図3E
  • 特許-制限自然言語処理 図3F
  • 特許-制限自然言語処理 図3G
  • 特許-制限自然言語処理 図3H
  • 特許-制限自然言語処理 図4
  • 特許-制限自然言語処理 図5
  • 特許-制限自然言語処理 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-18
(45)【発行日】2024-09-27
(54)【発明の名称】制限自然言語処理
(51)【国際特許分類】
   G06F 16/90 20190101AFI20240919BHJP
   G06F 40/279 20200101ALI20240919BHJP
   G06F 40/35 20200101ALI20240919BHJP
【FI】
G06F16/90 100
G06F40/279
G06F40/35
【請求項の数】 38
(21)【出願番号】P 2020571356
(86)(22)【出願日】2019-06-17
(65)【公表番号】
(43)【公表日】2021-10-21
(86)【国際出願番号】 US2019037477
(87)【国際公開番号】W WO2019245966
(87)【国際公開日】2019-12-26
【審査請求日】2022-05-26
(31)【優先権主張番号】62/686,331
(32)【優先日】2018-06-18
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/441,915
(32)【優先日】2019-06-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520496268
【氏名又は名称】データチャット.エーアイ
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100153729
【弁理士】
【氏名又は名称】森本 有一
(72)【発明者】
【氏名】ジネシュ パテル
(72)【発明者】
【氏名】ナブニート サンカラ ポッティー
【審査官】酒井 恭信
(56)【参考文献】
【文献】特表2007-514991(JP,A)
【文献】特表2014-528134(JP,A)
【文献】特開2017-138954(JP,A)
【文献】特表2014-505939(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00 - 16/958
G06F 40/20 - 40/58
(57)【特許請求の範囲】
【請求項1】
ユーザが入力した入力を表すデータを処理するデバイスであって、
複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスをユーザに露出し、前記言語サブサーフェスの各々は、前記入力を表すデータをユーザが入力するためにユーザがやりとりを行うことができる前記自然言語に認められる構文規則及び文字列の対応するセットを指定し、
ユーザに露出した前記言語サブサーフェスによって提供される言語の部分に一致する前記入力を表すデータを受信し、
前記言語の部分に関連する複数の意図の互いに異なる意図にそれぞれ関連する複数のパターンのうちの一つのパターンが前記入力を表すデータに含まれるという判断に応答して、ユーザの意図を前記一つのパターンに基づいて識別し、
動作を実行するために、識別された意図に関連する処理を実行する、
ように構成された一つ以上のプロセッサと、
前記入力を表すデータを格納するように構成されたメモリと、
を備え、デバイス。
【請求項2】
前記一つ以上のプロセッサは、前記複数の言語サブサーフェスの言語サブサーフェスのみをユーザに露出するように構成された、請求項1に記載のデバイス。
【請求項3】
前記一つ以上のプロセッサは、
ユーザがしきい値内の前記言語の部分に関連する複数の意図を思い起こすことができることを決定し、
ユーザが前記複数の意図を思い起こすことができることを決定したことに応答して、前記複数の言語サブサーフェスの第2の言語サブサーフェスをユーザに露出し、前記第2の言語サブサーフェスは、第2の入力を表す第2のデータを入力するためにユーザがやりとりを行うことができる前記言語の第2の部分を提供し、
ユーザに露出された前記第2の言語サブサーフェスによって提供された前記言語の第2の部分と一致する前記第2の入力を表す第2のデータを受信し、
前記言語の第2の部分に関連する第2の複数の意図の互いに異なる意図にそれぞれ関連する第2の複数のパターンのうちの第2のパターンが前記入力を表すデータに含まれるという判断に応答して、ユーザの第2の意図を前記第2のパターンに基づいて識別し、
第2の動作を実行するために、識別された前記第2の意図に関連する処理を実行する、
ように更に構成された、請求項1~2のいずれか一項に記載のデバイス。
【請求項4】
前記一つ以上のプロセッサは、前記言語サブサーフェスをユーザに露出するために一つ以上の示唆を自動的に提供するテキスト入力領域を有するインタフェースを提示するように更に構成された、請求項1~3のいずれか一項に記載のデバイス。
【請求項5】
前記一つ以上のプロセッサは、前記言語サブサーフェスをユーザに露出するためにオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示するように更に構成された、請求項1~4のいずれか一項に記載のデバイス。
【請求項6】
前記言語サブサーフェスは、第1の言語サブサーフェスを備え、
前記第1の言語サブサーフェスは、前記複数の言語サブサーフェスの第2の言語サブサーフェスへの移行を指定し、
前記一つ以上のプロセッサは、前記移行を識別するユーザからの第2のデータに応答して、前記複数の言語サブサーフェスの前記第2の言語サブサーフェスをユーザに露出し、前記第2の言語サブサーフェスは、第2の入力を表す第2のデータを入力するためにユーザがやりとりを行うことができる前記言語の第2の部分を提供するように更に構成された、請求項1~5のいずれか一項に記載のデバイス。
【請求項7】
前記一つ以上のプロセッサは、前記移行を識別するデータの入力を促進するオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示するように更に構成された、請求項6に記載のデバイス。
【請求項8】
前記一つ以上のプロセッサは、
ユーザに露出された前記第2の言語サブサーフェスによって提供された前記言語の第2の部分に一致する前記第2の入力を表す第2のデータを受信し、
前記言語の第2の部分に関連する第2の複数の意図の互いに異なる意図にそれぞれ関連する第2の複数のパターンのうちの第2のパターンが前記入力を表すデータに含まれるという判断に応答して、ユーザの第2の意図を前記第2のパターンに基づいて識別し、
第2の動作を実行するために、識別された前記第2の意図に関連する第2の処理を実行する、
ように更に構成された、請求項6に記載のデバイス。
【請求項9】
前記パターンは、識別子を有する、請求項1に記載のデバイス。
【請求項10】
前記パターンは、識別子と位置エンティティの両方を有する、請求項9に記載のデバイス。
【請求項11】
前記パターンは、キーワードを有する、請求項1~10のいずれか一項に記載のデバイス。
【請求項12】
前記一つ以上のプロセッサは、
前記動作の実行の結果を取得し、
前記入力を表すデータを入力するために、前記結果を、インタフェースを介して、前記デバイスとやりとりを行うクライアントに供給する、
ように更に構成された、請求項1~11のいずれか一項に記載のデバイス。
【請求項13】
ユーザが入力した入力を表すデータを処理する方法であって、
一つ以上のプロセッサが、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスをユーザに露出し、前記言語サブサーフェスの各々は、前記入力を表すデータをユーザが入力するためにユーザがやりとりを行うことができる前記自然言語に認められる構文規則及び文字列の対応するセットを指定することと、
前記一つ以上のプロセッサが、ユーザに露出した前記言語サブサーフェスによって提供される言語の部分に一致する前記入力を表すデータを受信することと、
前記言語の部分に関連する複数の意図の互いに異なる意図にそれぞれ関連する複数のパターンのうちの一つのパターンが前記入力を表すデータに含まれるという判断に応答して、ユーザの意図を前記一つのパターンに基づいて識別することと、
前記一つ以上のプロセッサが、動作を実行するために、識別された意図に関連する処理を実行することと、
を備え、方法。
【請求項14】
前記一つ以上のプロセッサが、前記言語サブサーフェスをユーザに露出することは、前記一つ以上のプロセッサが、前記複数の言語サブサーフェスの言語サブサーフェスのみをユーザに露出することを備える、請求項13に記載の方法。
【請求項15】
前記一つ以上のプロセッサが、ユーザがしきい値内の前記言語の部分に関連する複数の意図を思い起こすことができることを決定することと、
前記一つ以上のプロセッサが、ユーザが前記複数の意図を思い起こすことができることを決定したことに応答して、前記複数の言語サブサーフェスの第2の言語サブサーフェスをユーザに露出し、前記第2の言語サブサーフェスは、第2の入力を表す第2のデータを入力するためにユーザがやりとりを行うことができる前記言語の第2の部分を提供することと、
前記一つ以上のプロセッサが、ユーザに露出された前記第2の言語サブサーフェスによって提供された前記言語の第2の部分と一致する前記第2の入力を表す第2のデータを受信することと、
前記言語の第2の部分に関連する第2の複数の意図の互いに異なる意図にそれぞれ関連する第2の複数のパターンのうちの第2のパターンが前記入力を表すデータに含まれるという判断に応答して、ユーザの第2の意図を前記第2のパターンに基づいて識別することと、
前記一つ以上のプロセッサが、第2の動作を実行するために、識別された前記第2の意図に関連する処理を実行することと、
を更に備える、請求項1314のいずれか一項に記載の方法。
【請求項16】
前記一つ以上のプロセッサが、前記言語サブサーフェスをユーザに露出するために一つ以上の示唆を自動的に提供するテキスト入力領域を有するインタフェースを提示することを更に備える、請求項1315のいずれか一項に記載の方法。
【請求項17】
前記一つ以上のプロセッサが、前記言語サブサーフェスをユーザに露出するためにオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示することを更に備える、請求項1316のいずれか一項に記載の方法。
【請求項18】
前記言語サブサーフェスは、第1の言語サブサーフェスを備え、
前記第1の言語サブサーフェスは、前記複数の言語サブサーフェスの第2の言語サブサーフェスへの移行を指定し、
前記一つ以上のプロセッサが、前記移行を識別するユーザからの第2のデータに応答して、前記複数の言語サブサーフェスの前記第2の言語サブサーフェスをユーザに露出し、前記第2の言語サブサーフェスは、第2の入力を表す第2のデータを入力するためにユーザがやりとりを行うことができる前記言語の第2の部分を提供することを更に備える、請求項1317のいずれか一項に記載の方法。
【請求項19】
前記一つ以上のプロセッサが、前記移行を識別するデータの入力を促進するオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示することを更に備える、請求項18に記載の方法。
【請求項20】
前記一つ以上のプロセッサが、ユーザに露出された前記第2の言語サブサーフェスによって提供された前記言語の第2の部分に一致する前記第2の入力を表す第2のデータを受信することと、
前記一つ以上のプロセッサが、前記言語の第2の部分に関連する第2の複数の意図の互いに異なる意図にそれぞれ関連する第2の複数のパターンのうちの第2のパターンが前記入力を表すデータに含まれるという判断に応答して、ユーザの第2の意図を前記第2のパターンに基づいて識別することと、
前記一つ以上のプロセッサが、第2の動作を実行するために、識別された前記第2の意図に関連する第2の処理を実行することと、
を更に備える、請求項18に記載の方法。
【請求項21】
前記パターンは、識別子を有する、請求項13に記載の方法。
【請求項22】
前記パターンは、識別子と位置エンティティの両方を有する、請求項21に記載の方法。
【請求項23】
前記パターンは、キーワードを有する、請求項2122のいずれか一項に記載の方法。
【請求項24】
前記一つ以上のプロセッサが、前記動作の実行の結果を取得することと、
前記一つ以上のプロセッサが、記入力を表すデータを入力するために、前記結果を、インタフェースを介して、デバイスとやりとりを行うクライアントに供給することと、
を更に備える、請求項1323のいずれか一項に記載の方法。
【請求項25】
ユーザが入力した入力を表すデータを処理するデバイスであって、
複数の言語サブサーフェスの階層的配列として、自然言語の文法を明確にする自然言語包含階層を特定する言語サブサーフェスをユーザに露出し、前記言語サブサーフェスの各々は、前記入力を表すデータをユーザが入力するためにユーザがやりとりを行うことができる前記自然言語に認められる構文規則及び文字列の対応するセットを指定する手段と、
ユーザに露出した前記言語サブサーフェスによって提供される言語の部分に一致する前記入力を表すデータを受信する手段と、
前記言語の部分に関連する複数の意図の互いに異なる意図にそれぞれ関連する複数のパターンのうちの一つのパターンが前記入力を表すデータに含まれるという判断に応答して、ユーザの意図を前記一つのパターンに基づいて識別する手段と、
動作を実行するために、識別された意図に関連する処理を実行する手段と、
を備える、デバイス。
【請求項26】
言語サブサーフェスをユーザに露出する手段は、前記複数の言語サブサーフェスの言語サブサーフェスのみをユーザに露出する手段を備える、請求項25に記載のデバイス。
【請求項27】
ユーザがしきい値内の前記言語の部分に関連する複数の意図を思い起こすことができることを決定する手段と、
ユーザが前記複数の意図を思い起こすことができることを決定したことに応答して、前記複数の言語サブサーフェスの第2の言語サブサーフェスをユーザに露出し、前記第2の言語サブサーフェスは、第2の入力を表す第2のデータを入力するためにユーザがやりとりを行うことができる前記言語の第2の部分を提供する手段と、
ユーザに露出された前記第2の言語サブサーフェスによって提供された前記言語の第2の部分と一致する前記第2の入力を表す第2のデータを受信する手段と、
前記言語の第2の部分に関連する第2の複数の意図の互いに異なる意図にそれぞれ関連する第2の複数のパターンのうちの第2のパターンが前記入力を表すデータに含まれるという判断に応答して、ユーザの第2の意図を前記第2のパターンに基づいて識別する手段と、
第2の動作を実行するために、識別された前記第2の意図に関連する処理を実行する手段と、
を更に備える、請求項2526のいずれか一項に記載のデバイス。
【請求項28】
前記言語サブサーフェスをユーザに露出するために一つ以上の示唆を自動的に提供するテキスト入力領域を有するインタフェースを提示する手段を更に備える、請求項2527のいずれか一項に記載のデバイス。
【請求項29】
前記言語サブサーフェスをユーザに露出するためにオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示する手段を更に備える、請求項2528のいずれか一項に記載のデバイス。
【請求項30】
前記言語サブサーフェスは、第1の言語サブサーフェスを備え、
前記第1の言語サブサーフェスは、前記複数の言語サブサーフェスの第2の言語サブサーフェスへの移行を指定し、
前記移行を識別するユーザからの第2のデータに応答して、前記複数の言語サブサーフェスの前記第2の言語サブサーフェスをユーザに露出し、前記第2の言語サブサーフェスは、第2の入力を表す第2のデータを入力するためにユーザがやりとりを行うことができる前記言語の第2の部分を提供する手段を更に備える、請求項2529のいずれか一項に記載のデバイス。
【請求項31】
前記移行を識別するデータの入力を促進するオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示する手段を更に備える、請求項30に記載のデバイス。
【請求項32】
ユーザに露出された前記第2の言語サブサーフェスによって提供された前記言語の第2の部分に一致する前記第2の入力を表す第2のデータを受信する手段と、
前記言語の第2の部分に関連する第2の複数の意図の互いに異なる意図にそれぞれ関連する第2の複数のパターンのうちの第2のパターンが前記入力を表すデータに含まれるという判断に応答して、ユーザの第2の意図を前記第2のパターンに基づいて識別する手段と、
第2の動作を実行するために、識別された前記第2の意図に関連する第2の処理を実行する手段と、
を更に備える、請求項30に記載のデバイス。
【請求項33】
前記パターンは、識別子を有する、請求項25に記載のデバイス。
【請求項34】
前記パターンは、識別子と位置エンティティの両方を有する、請求項33に記載のデバイス。
【請求項35】
前記パターンは、キーワードを有する、請求項3334のいずれか一項に記載のデバイス。
【請求項36】
前記動作の実行の結果を取得する手段と、
前記入力を表すデータを入力するために、前記結果を、インタフェースを介して、前記デバイスとやりとりを行うクライアントに供給する手段と、
を備える、請求項2535のいずれか一項に記載のデバイス。
【請求項37】
一つ以上のプロセッサに、
複数の言語サブサーフェスの階層的配列として、自然言語の文法を明確にする自然言語包含階層を特定する言語サブサーフェスをユーザに露出し、前記言語サブサーフェスの各々は、入力を表すデータをユーザが入力するためにユーザがやりとりを行うことができる前記自然言語に認められる構文規則及び文字列の対応するセットを指定し、
ユーザに露出した前記言語サブサーフェスによって提供される言語の部分に一致する前記入力を表すデータを受信し、
前記言語の部分に関連する複数の意図の互いに異なる意図にそれぞれ関連する複数のパターンのうちの一つのパターンが前記入力を表すデータに含まれるという判断に応答して、ユーザの意図を前記一つのパターンに基づいて識別し、
動作を実行するために、識別された意図に関連する処理を行う、
ことを実行させるプログラムを格納し、コンピュータ可読記録媒体。
【請求項38】
ユーザが入力した入力を表すデータを処理するシステムであって、
複数の言語サブサーフェスの階層的配列として、自然言語の文法を明確にする自然言語包含階層を特定する言語サブサーフェスをユーザに露出し、前記言語サブサーフェスの各々は、前記入力を表すデータをユーザが入力するためにユーザがやりとりを行うことができる前記自然言語に認められる構文規則及び文字列の対応するセットを指定するように構成された一つ以上のプロセッサを備えるホスト装置と、
ユーザに露出した前記言語サブサーフェスによって提供される言語の部分に一致する前記入力を表すデータを受信し、
前記入力を表すデータを前記ホスト装置に出力する、
ように構成された一つ以上のプロセッサを備えるクライアント装置と、
を備え、
前記ホスト装置の一つ以上のプロセッサは、
前記言語の部分に関連する複数の意図の互いに異なる意図にそれぞれ関連する複数のパターンのうちの一つのパターンが前記入力を表すデータに含まれるという判断に応答して、ユーザの意図を前記一つのパターンに基づいて識別し、
動作を実行するために、識別された意図に関連する処理を実行する、
ように更に構成され、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2018年6月18日に出願された米国仮出願第62/686,331号の利益を主張する2019年6月14日に出願された米国出願第16/441,915号の利益を主張し、その全内容は、参照により本明細書に組み込まれる。
【0002】
この開示は、コンピュータシステム及びデータ解析システムに関し、更に具体的には、自然言語処理を用いるシステムに関する。
【背景技術】
【0003】
自然言語処理は、一般的には、人間の言語を用いる対話のやりとりを介してユーザによって提供される入力をコンピュータデバイスによって処理する分野を意味する。例えば、デバイスは、種々の入力をユーザに促してもよい、明確にするための質問を行ってもよい、関連質問を行ってもよい又は入力を引き出すために対話によるユーザとのやりとりを行ってもよい。ユーザは、同様に、文章又は断片としての入力を入力してもよく、これによって、デバイスにより実行される(「タスク」と称することもできる)一つ以上の意図を特定するためにデバイスとのシミュレートされた対話を確立する。
【0004】
この処理の間、デバイスは、会話を提示する種々のインタフェースを提示してもよい。一例のインタフェースは、更なる会話調を確立するために性格、声、好み、気質等を含む人間性をまねることを試みるように構成されることがあるいわゆる「チャットボット」として機能してもよく、これによって、ユーザとのやりとりを促進し、入力を更に自然に受信する。チャットボットの例は、(会議のスケジューリング、ホテルの予約及び食糧配給のスケジュールのような)支援に専念するタスクのセットに重点を置いたチャットボットのサブセットである(「仮想アシスタント」と称することもできる)「デジタルアシスタント」を含む。
【発明の概要】
【発明が解決しようとする課題】
【0005】
意図を識別するために入力を解析するのに用いられる複数の互いに異なる言語処理アルゴリズムが存在し、その一部は、機械学習に依存する。しかしながら、自然言語は、正確なフォーマットに従わないことがよくあり、種々のユーザは、同一の一般的な意図となる入力を表現する僅かに異なる方法を有し、その結果、機械学習に依存する自然言語アルゴリズムを含む多数の自然言語アルゴリズムが具体的に対処するようにプログラムされない(又は機械言語との関連でトレーニングされない)いわゆる「エッジケース」が生じる。
【0006】
一般的には、本開示は、制限されたやり方で言語サブサーフェスを露出して曖昧さを除去するとともに発見可能性を支援する制限自然言語処理(CNLP)の技術を開示する。一般的には、自然言語サーフェスは、許可されたセットの潜在的なユーザ入力(例えば、発話)、すなわち、自然言語処理システムが正確に処理することができる発話のセットを意味する。
【0007】
ここで説明するCNLP技術は、チャットボット及び仮想アシスタントのような自然言語インタフェースを有するシステムの設計において複数の技術的効果を提供することができる。第1に、CNLP技術は、言語サーフェスを、システムによって識別されるとともに影響が及ぼされる発生のセットに制限することができる。技術によって、曖昧さの除外/最小化を行うように最初の言語サーフェスを調整することができ、ユーザがいらだつ又は判断を誤ることがないようにすることを保証する。
【0008】
第2に、制限された言語サーフェスは、構造化された発見プロセスを可能にし、ここで説明するオートコンプリートメカニズムと組み合わせたときには、ユーザは、あり得る長いトレーニング段階を経ることなくCLNPシステムの能力及び限界を理解することができる。さらに、発見プロセスによって、システム設計者は、ユーザに課される認知的負荷を最小にしながらシステムの多量の機能を露出することができる。
【0009】
第3に、技術の様々な側面によって、システム設計者は、所定の条件に適合したときにのみ、言語サーフェスを、ユーザに露出されるサブサーフェスに分解することができる。条件は、ユーザの好み若しくは能力(例えば、ユーザが認められた又は証明された技術的な精巧さを有するときにのみ更に複雑な所定の発話を許容してもよい。)又はユーザセッションの状況(例えば、以前の発話を介して要件に適合した場合にのみ所定の発話を許容してもよい。)に関連してもよい。
【0010】
総合すれば、CNLP技術によって、多様なニーズ及び精巧さのレベルを有するユーザをサポートするために、ユーザにとって更に容易なユーザインタフェースを有するシステムの構築を可能にし、同時に、多様な意図を高精度でプログラムに従って認識する。したがって、技術は、既存のチャットボットフレームワーク又は仮想アシスタントフレームワークに比較して能力及び有用性のバランスを実現するシステム設計を可能にする。
【0011】
この意味では、CNLP技術は、いわゆる「デジタルアシスタント」又は「チャットボット」のような自然言語インタフェースに従ってユーザとやりとりを行うシステムの更に良好な動作を促進することができる。複数の互いに異なる意味に解釈することができる曖昧な入力を処理することを試みる処理サイクルを浪費せず、かつ、ユーザによる入力によって意図される正確な意味を解明するための関連質問を行うことなく、CNLP技術の結果、利用できる言語を一つ以上のサブサーフェスに制限することによってユーザ入力を更に有効に処理することができる。処理サイクルを減少することによって、更に少ない消費電力でCNLPシステムの動作を向上させ、更に少ない状態を生成させることによってメモリ消費量が減少するともに利用されるメモリ帯域幅が減少し(その両方によって、電力消費が更に減少する。)、他の処理のために更に広い処理帯域幅(processing bandwidth)が保持される。
【課題を解決するための手段】
【0012】
一態様において、技術は、入力を表すデータを処理するように構成されたデバイスであって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定するように構成された一つ以上のプロセッサを備えるデバイスを対象とする。一つ以上のプロセッサは、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信し、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理し、動作を実行するために、識別された意図に関連する処理を実行する、ようにも構成される。デバイスは、入力を表すデータを格納するように構成されたメモリを有してもよい。
【0013】
他の態様において、技術は、入力を表すデータを処理する方法であって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定することと、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信することと、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理することと、動作を実行するために、識別された意図に関連する処理を実行することと、を備える方法を対象とする。
【0014】
他の態様において、技術は、入力を表すデータを処理するデバイスであって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定する手段と、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信する手段と、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理する手段と、動作を実行するために、識別された意図に関連する処理を実行する手段と、を備えるデバイスを対象とする。
【0015】
他の態様において、技術は、実行のときに、一つ以上のプロセッサによって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定し、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信し、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理し、動作を実行するために、識別された意図に関連する処理を実行する、命令を格納したコンピュータ可読媒体を対象とする。
【0016】
他の態様において、技術は、入力を表すデータを処理するように構成されたシステムであって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定するように構成された一つ以上のプロセッサを備えるホスト装置と、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信し、入力を表すデータをホスト装置に出力する、ように構成された一つ以上のプロセッサを備えるクライアント装置と、を備えるシステムを対象とする。ホスト装置の一つ以上のプロセッサは、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理し、動作を実行するために、識別された意図に関連する処理を実行する、ように更に構成される。
【0017】
技術の一つ以上の態様の詳細を、添付図面及び明細書において説明する。これらの技術の他の特徴、目的及び利点は、明細書、図面及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0018】
図1】本開示に記載された技術の種々の態様を実行することができるシステムを示すブロック図である。
図2図1に示すホスト装置の実行プラットフォームにより実行される複数の互いに異なるアプリケーションを有するホスト装置のインタフェース装置によって示される一例のインタフェースを示す図である。
図3A】本開示に記載されたCNLP技術の種々の態様による図2に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図1に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
図3B】本開示に記載されたCNLP技術の種々の態様による図2に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図1に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
図3C】本開示に記載されたCNLP技術の種々の態様による図2に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図1に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
図3D】本開示に記載されたCNLP技術の種々の態様による図2に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図1に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
図3E】本開示に記載されたCNLP技術の種々の態様による図2に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図1に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
図3F】本開示に記載されたCNLP技術の種々の態様による図2に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図1に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
図3G】本開示に記載されたCNLP技術の種々の態様による図2に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図1に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
図3H】本開示に記載されたCNLP技術の種々の態様による図2に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図1に示すホスト装置のインタフェース装置によって示されるインタフェースを示す図である。
図4】本開示に記載された技術の種々の態様による図1の例に示す言語サーフェスを示すのに用いられるデータ構造を示すブロック図である。
図5図1の例に示すデバイスの例の構成要素を示すブロック図である。
図6】本開示に記載された技術の種々の態様を実行する際の図1のホスト装置の例の動作を示すフローチャートである。
【発明を実施するための形態】
【0019】
図1は、制限自然言語処理(CNLP)についての本開示に記載された技術の種々の態様を実行することができるシステム10を示すブロック図である。図1の例に示すように、システム10は、ホスト装置12及びクライアント装置14を有する。図1の例において、二つのデバイス、すなわち、ホスト装置12及びクライアント装置14を有するものとして示すが、システム10は、ホスト装置12とクライアント装置14の両方についての後に説明する機能を包含する単一のデバイス、又は、ホスト装置12の一つ以上によってホストされる相互のデータベースを共有する一つ以上のホスト装置12とそれぞれがやり取りを行う複数のクライアント14を有してもよい。
【0020】
ホスト装置12は、少数の例を提供するためのハンドセット(又は携帯電話)、タブレットコンピュータ、いわゆるスマートフォン、デスクトップコンピュータ及びラップトップコンピュータを含む本開示に記載された技術を実現することができる任意の形態のコンピュータデバイスを表してもよい。同様に、クライアント装置14は、少数の例を提供するためのハンドセット(又は携帯電話)、タブレットコンピュータ、いわゆるスマートフォン、デスクトップコンピュータ、ラップトップコンピュータ、いわゆるスマートスピーカ、いわゆるスマートヘッドホン及びいわゆるスマートテレビジョンを含む本開示に記載された技術を実現することができる任意の形態のコンピュータデバイスを表してもよい。
【0021】
図1の例に示すように、ホスト装置12は、サーバ28と、CNLP装置22と、一つ以上の実行プラットフォーム24と、データベース26と、を有する。サーバ28は、対話の状況(conversational context)を維持するとともにCNLP装置22と実行プラットフォーム24の間のデータのルーティングを調整するように構成された装置を表してもよい。
【0022】
サーバ28は、入力を表すデータ19を引き出す及び/又は結果25を提示するためにホスト装置12がクライアント装置14に一つ以上のインタフェース21を提供することができる装置を表してもよいインタフェース装置20を有してもよい。データ19は、音声入力、テキスト入力、(例えば、テキストを表す又はテキストになることができる)画像入力又はホスト装置12との対話を促進することができる他の任意のタイプの入力を表してもよい。インタフェース装置20は、グラフィカルユーザインタフェース(GUI)、コマンドラインインタフェース(CLI)又はユーザ16にデータを提示又は供給する他に任意のインタフェースを含む種々のインタフェース21を生成又は出力してもよい。インタフェース装置20は、一例として、入力(すなわち、チャットサーバの例に関連するテキスト入力)を表すデータ19を入力するためにユーザ16がやりとりを行うことができるGUIの形態のチャットインターフェース21を出力してもよい。サーバ28は、データ19をCNLP装置22に出力してもよい(又はCNLP装置22を呼び出すとともに呼出しを介してデータ19を渡してもよい)。
【0023】
CNLP装置22は、本開示で説明するようなCNLP技術の種々の態様を実行するように構成された装置を表してもよい。CNLP装置22は、複数の相互接続された言語サブサーフェス(「SS」と示す)18A-18G(「SS18])を維持してもよい。言語サブサーフェス18は、集合的に言語を表してもよく、同時に、言語サブサーフェス18の各々は、言語の(互いに異なる部分又は重複する部分であってもよい)部分を提供してもよい。各部分は、入力を表すデータ19を入力するためにユーザ16がやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定してもよい。CNLP装置22は、後に詳しく説明するように、一つ以上の意図23を識別するために言語サブサーフェス18及びデータ19に基づいてCNLPを実行してもよい。CNLP装置22は、意図23をサーバ28に出力してもよく、サーバ28は、意図23に関連する実行プラットフォーム24のうちの一つを呼び出し、処理のために意図23を実行プラットフォーム24のうちの一つに渡してもよい。
【0024】
実行プラットフォーム24は、識別された意図23に関連する種々の処理を実行するように構成された一つ以上のプラットフォームを表してもよい。図1の例において、プロセスはそれぞれデータベース26に関連する動作の互いに異なるセットを実行してもよい。一部の例において、実行プラットフォーム24はそれぞれセールスデータ分析、健康データ分析又はローンデータ分析の互いに異なるカテゴリーのような互いに異なるカテゴリー、機械学習の形態等に対応する処理を有してもよい。一部の例において、実行プラットフォーム24は、複雑な処理を経るとともにチャート、グラフ等による表示を行うためにデータベース26に格納されたデータの種々の互いに異なる組合せを可能にする一般データ分析を実行してもよい。実行プラットフォーム24は、実行プラットフォーム24がサーバ28に戻してもよい結果25を取得するために意図23を処理してもよい。インタフェース装置20は、結果25を提示するGUI21を生成してもよく、GUI21は、クライアント装置14に送信される。
【0025】
これに関連して、実行プラットフォーム24は、一般的には、データベース26に格納された基本的なデータの分析を実行するためにアプリケーションをサポートする互いに異なるプラットフォームを表してもよく、プラットフォームは、データの収集の展開(evolving collection)及び分析に対応するために又は他のタスク/意図を処理するために拡張可能なアプリケーション開発を提供してもよい。例えば、実行プラットフォーム24は、(PostgreSQL(登録商標)とも称されるとともにデータロード及び操作を実行するリレーショナルデータベースの一例を表す)Postgres、(特殊化した(Specialized)機械学習エンジンで機械学習行うことができる)TensorFlow(登録商標)及び(一般的にクラウドと称される複数のマシンを利用することがよくある大規模データ分析タスクを実行する)アマゾンウェブサービス(AWS)のようなプラットフォームを含んでもよい。
【0026】
クライアント装置14は、(「チャットクライアント30」と称されるチャットボットインタフェースに関連してもよい)クライアント30を有してもよい。クライアント30は、インタフェース21を表すとともにデータ19を入力することができるように構成された装置を表してもよい。クライアント30は、専用のサードパーティアプリケーションとして、ファーストパーティアプリケーションとして又はクライアント装置14の(図1に示さない)オペレーティングシステムの内蔵コンポーネントとしてブラウザとの関連で実行してもよい。
【0027】
自然言語処理に戻ると、他の形態の自然言語処理に比べてバランスのとれた形態の自然言語処理を実行してもよい。自然言語処理は、クライアント装置14との会話のやりとりを介して提供される(説明を簡単にするために「入力19」とも称される)入力を表すデータ19を処理することがホスト装置12によって試みられる処理を意味してもよい。ホスト装置12は、ユーザ16に種々の入力19を動的に促してもよい、明確にするための質問を行ってもよい、関連質問を行ってもよい、又は、入力19を引き出すために対話によるユーザとのやりとりを行ってもよい。ユーザ16は、同様に、文章又は断片としての入力19を入力しもよく、これによって、(「タスク23」と称することもできる)一つ以上の意図23を識別するためにホスト装置12とのシミュレートされた対話を確立する。
【0028】
ホスト装置12は、対話を提示する種々のインタフェース21を提供してもよい。一例のインタフェースは、更なる会話調を確立するために性格、声、好み、気質等を含む人間性をまねることを試みるように構成されることがあるいわゆる「チャットボット」として機能してもよく、これによって、ユーザとのやりとりを促進し、入力を更に自然に受信する。チャットボットの例は、(会議のスケジューリング、ホテルの予約及び食糧配給のスケジュールのような)支援に専念するタスクのセットに重点を置いたチャットボットのサブセットである(「仮想アシスタント」と称することもできる)「デジタルアシスタント」を含む。
【0029】
図23を識別するために入力19を解析するのに用いられる複数の互いに異なる言語処理アルゴリズムが存在し、その一部は、機械学習に依存する。しかしながら、自然言語は、正確なフォーマットに従わないことがよくあり、種々のユーザは、同一の一般的な意図23となる入力を表現する僅かに異なる方法を有し、その結果、機械学習に依存する自然言語アルゴリズムを含む多数の自然言語アルゴリズムが具体的に対処するようにプログラムされない(又は機械言語との関連でトレーニングされない)いわゆる「エッジケース」が生じる。自然言語処理に基づく機械学習は、予測可能性及び精度より自然らしさを評価することがあり、これによって、言語のトレーニングされた自然らしさが言語のユーザの認識する自然らしさと異なるときにエッジケースに更に頻繁に遭遇する。そのようなエッジケースは、システムによって識別することができ、理解又は処理できないものとして報告され、ユーザをいらだたせることがある。それに対し、システムがユーザの意図を不正確に理解したまま処理して不所望な又は誤解を招くおそれがある動作又は結果が生じることもある。
【0030】
図23を識別するために入力19を解析するのに用いられる他のタイプの自然言語処理アルゴリズムは、キーワードに依存する。自然言語処理アルゴリズムに基づくキーワードが正確であるとともに予測可能であるが、自然言語処理に基づくキーワードは、互いの異なる意図23を説明する際にニュアンスをほとんど提供しないという点で正確でない。
【0031】
換言すれば、種々の自然言語処理アルゴリズムは、二つの部類に含まれる。第1の部類において、自然言語処理のアルゴリズムに基づく機械学習は、ディープニューラルネットワーク及びサポートベクトルマシンのような統計的な機械学習処理に依存する。これらの機械学習処理の両方は、ユーザの発話のニュアンスを理解する能力が制限されることに悩まされることがある。さらに、アルゴリズムに基づく機械学習が同一の意図に対する様々な自然な発話を可能にするとしても、そのようなアルゴリズムに基づく機械学習は、予測不可能であることがよくあり、開発者及びユーザが理解するのに困難となるように一連の見解で互いに異なるように同一の発話を解釈する。第2の部類において、自然言語処理に対するアルゴリズムに基づく簡単なキーワードは、ユーザの発話をキーワードの所定のセットに照合するとともに関連の意図を検索してもよい。
【0032】
本開示に記載された技術によれば、CNLP装置22は、正確性、精度及び予測可能性とのバランスをとりながら(一例として、「発話」と称してもよい自然言語ステートメントを有してもよい)入力19を解析してもよい。CNLP装置22は、(サブサーフェス18の集合又は「言語」を意味する他の方法である)内在する言語サーフェスを実現する際に種々の設計決定によってバランスをとってもよい。言語サブサーフェス18は、サーバ28がユーザ16の意図を解析(更に擬人化された用語では、「理解」)できる潜在的なユーザの発話のセットを表してもよい。
【0033】
設計決定は、正確性(例えば、サーバ28が発話を正確に解釈することができる頻度)、精度(例えば、ユーザ16の意図を表現する際に発話にニュアンスを付加する程度)及び自然らしさ(例えば、ユーザ16の同一の意図にマッピングする発話の種々の言葉遣いが多様になることができる程度)を含む競合する優先度の間のトレードオフのネゴシエーションを行ってもよい。CNLP技術によって、CNLP装置22が曖昧さを残さずに(「発話」と称してもよい)入力19を解析することができ、これによって、(制限による)正確な自然言語発話19の予測可能かつ正確な解釈を潜在的に保証する。
【0034】
動作中、CNLP装置22は、潜在的には言語サブサーフェス18のうちの選択したもののみを露出するような制限される方法で言語サブサーフェス18のうちの選択したものを最初のユーザ(ユーザ16は説明のためのものであるとみなす。)に露出してもよい。
【0035】
CNLP装置22は、露出した言語サブサーフェスによって提供される言語の部分に一致する入力19を、インタフェース装置20を介して受信し、言語に関連する複数の意図23からユーザ16の意図23を識別するために入力19を処理してもよい。すなわち、サーバ28のサポートの際にCNLP装置22を設計するときに、設計者は、サーバ28が(CNLP装置22を介した入力19のサポートに関連して)サポートする意図23のセットを選択してもよい。
【0036】
さらに、CNLP装置22は、一つ以上のエンティティをサポートすることによって意図23の各々に関する精度をオプションで増大してもよい。説明のために、会議のスケジュールに関連する時間及び/又は会場の意図、(必要な場合の)会議のスケジュールの各々の繰り返しの頻度の意図及び(必要な場合の)スケジュールする会議の参加者の意図のようなエンティティを有することがある会議のスケジュールの意図を考察する。CNLP装置22は、発話19が意図23のセットのうちの所定のものに属することを識別した後に発話19に生じたあらゆるエンティティを抽出するための解釈の処理を実行してもよい。
【0037】
CNLP装置22は、言語18によって提供された意図23の各々を一つ以上のパターンに関連付けてもよい。CNLP装置22によってサポートされる各パターンは、以下の構成のうちの一つ以上を有してもよい。
a)この意図に属するものとして解析するために発話に存在してもよい識別子の非空集合。各識別子を、存在が識別子の存在と同等に取り扱われる一つ以上の同義語に関連付けてもよい。
b)位置エンティティの任意のセット。この場合、CNLP装置22は、発話における識別子に対して位置エンティティがどこに発生するかに基づいて位置エンティティを解析する。
c)各々がキーワード(及びありうる場合のキーワードの同義語)に関連付けられるキーワードエンティティの任意のセット。これらのキーワードエンティティは、発話にあらゆる箇所で互いに関連して生じる。キーワードエンティティは、キーワードの位置の代わりに発話の(前又は後に)隣接する関連のキーワードの発生に基づいて解析される。
d)(“for each”のような語句を有してもよい)一つ以上の前置詞に関連付けられた前置詞句エンティティの任意のセット。前置詞句エンティティを、対応する前置詞句の発生に基づいて解析してもよい。
e)“the”、“a”のような自然言語で通常生じる又は発話の解釈にほとんど有用性がない単語を意味する無視される単語のセット。
f)それぞれが各エンティティに任意に関連付けられるプロンプト。エンティティの説明と、ユーザ16に問い合わせるとともにエンティティに対する値が発話から解析されないときに値を導き出すためにCNLP装置22が用いてもよいステートメントとの両方を提供する。
g)識別子及びエンティティがパターンに生じることがある相対的順序を説明するパターンステートメント。
【0038】
一例として、会議(meeting)をスケジューリング(schedule)するために、CNLP装置22が次のようにパターンを特定することがあることを考察する。識別子は、“schedule”及び“meeting”であってもよく、この場合、単語“meeting”は、同義語“appointment”を有してもよい。CNLP装置22は、形態“schedule a daily meeting”又は“schedule a weekly appointment”に生じる入力19からの潜在的なエントリとしてmeeting frequencyを取得してもよい。代わりに、そのようなステートメントを、“schedule a daily meeting”又は“schedule a weekly appointment”にあるような(キーワード“frequency”のような)キーワードエンティティとして取得してもよい。CNLP装置22は、“I want to schedule the meeting at 5 PM”又は“schedule an appointment at noon”におけるような前置詞“at”を用いるタイミングを解析するために前置詞句を用いてもよい。
【0039】
上記の例は、解析のときに“a”、“an”、“the”、“I”、“want”、“to”などを含むことを無視するようにCNLP装置22をプログラムしてもよい複数の単語を含んだ。タイミングエンティティは、“At what time would you like to have the meeting?”のようなプロンプトも含んでもよく、この場合、サーバ28は、発話19のタイミングを指定しなかったか否かについてのユーザ16に対する質問を開始してもよい。パターンステートメントは、このパターンが“meeting”の前に生じる識別子“schedule” (又はその同義語"appointment“)を必要とすること及び他の全てのエンティティを記述してもよい。
【0040】
したがって、CNLP装置22は、言語18に関連する複数のパターンからパターンを識別してもよく、複数のパターンの各々は、複数の意図23のうちの互いに異なるものに関連する。この場合、CNLP装置22は、識別されたパターンに基づいて、言語の部分に関連する複数の意図からユーザ16の意図23を識別してもよい。
【0041】
パターンは、上述したように、識別子を有してもよい。パターンを識別するために、CNLP装置22は、識別子を識別するために入力19を解析した後に識別子に基づいてパターンを識別してもよい。パターンは、識別子と位置エンティティの両方を有してもよい。これらの例において、CNLP装置22は、位置エンティティを識別するために入力19を解析するとともに識別子及び位置エンティティに基づいてパターンを識別してもよい。
【0042】
追加的には、パターンは、上述したように、キーワードを有してもよい。CNLP装置22は、キーワードを識別するために入力19を解析した後にキーワードに基づいてパターンを後の例で説明するように識別してもよい。
【0043】
パターンは、上述したように、エンティティを有してもよい。パターンがエンティティを有するとき、CNLP装置22は、入力19がパターンに対応するがエンティティを有さないことを決定してもよい。CNLP装置22は、入力を表すデータがパターンに対応するがエンティティを有さないことを決定したことに応答して、エンティティを特定する追加入力を表すデータを要求するプロンプトを出力するためにインタフェース装置20とやりとりを行ってもよい。ユーザ16は、エンティティを指定する(とともに表現を簡単にするために「追加入力19」と称してもよい)追加入力を表すデータ19を入力してもよい。インタフェース装置20は、追加入力19を受信するとともに追加入力19をCNLP装置22に渡してもよく、CNLP装置22は、入力19及び追加入力19に基づいてパターンを識別してもよい。
【0044】
以下は、種々のデータ探索の種々のパターン及び分析タスクに関連して制限解析がどのようにして生じるかについての複数の例を示す。‘load_data_from_file’と称する第1の例のパターンは、以下のようにファイルからデータをロードするインテントの記述(specification)を示す。
【数1】
【0045】
上記の例において、パターンステートメント’LOAD data from file <filename>’は、識別子LOADを特定する。あらゆるユーザの発話は、単語load又はその同義語uploadを有してもよい又はこの意図23を表現するためにインポートしてもよい。識別子は、パターンステートメントにおいて全て大文字で示される。
【0046】
上記のように、CNLP装置22は、指定された一つのエンティティ<filename>を識別してもよい。エンティティは、パターンステートメントの各括弧で指定される。filenameは、loadのキーワードの後に生じる必要がある位置エンティティとして特定される。CNLP装置22は、特定の文字を含むファイル名を読み出すことができるパーサと称してもよいFilename()パーサを用いてfilenameの位置エンティティの値を解析してもよい。Filenameパーサは、その名称を有するファイルがシステムに存在するか否かを検証してもよい。
【0047】
単語“data”、“from”、“file”及び“dataset”は、自然な発話で意図を表現するのに有用であるが、CNLP装置22が情報の有用な態様(換言すれば、ファイル及びファイル名エンティティをロードする意図)を解析するのに必要でない。したがって、CNLP装置22は、上記単語を無視してもよい。
【0048】
上記の例の実現において、CNLP装置22は、パターンステートメントに生じる識別子及びエンティティ以外の全ての単語を無視してもよい。CNLP装置22は、addnl_ignoreフィールドを用いて指定される追加の単語を無視してもよい。CNLP装置22は、この実現において少数の他の共通の英単語を無視してもよい。
【0049】
上記例によれば、“Load myfile.csv”を表現する発話19、“Import data from the file myfile.csv”を表現する発話19及び“Upload the dataset myfile.csv” を表現する発話19は全て同一の意図を表現する。
【0050】
以下に示す第2の例は、データセットのデータ列から“day”、“month”及び“year”のようなpartsを抽出する意図23に対応するパターン“extract_date_parts”を示す。
【数2】
【0051】
上記パターンステートメントは、二つの識別子EXTRACT及びFROMを指定する。単語fromが以前の例のパターンで無視されたが第2の例のパターンにおいてFROMを識別子として識別するようにCNLP装置22が構成されることに留意されたい。
【0052】
第2のパターンは、三つのエンティティを有する。date_partsエンティティを、ユーザがデータ列から抽出することを所望する部分のリストとすることができる。date_partsエンティティが位置エンティティとして特定されるので、date_partsエンティティは、発話19のextract識別子とfrom識別子の間に生じることがある。ユーザが抽出することを所望するdate partsを、上記第2の例で指定されるリスト“day”、“month”、“year”等のリストから取り出すことができる。CNLP装置22は、他の任意の値がリストで指定されたときにユーザ16にプロンプトを出してもよい。
【0053】
上記第2の例の列エンティティは、位置的なものであってもよく、データベース26のうちの対応するものに記憶された既存のデータセットの一部の列の名称である値を有してもよい。この値を読み出すためにCNLP装置22によって呼び出されるColumnパーサ関数(すなわち、上記例のColumn())は、データベース26のうちの対応するものに記憶されたどのデータセットにユーザ16がアクセスすることを意図しているか、データベース26のうちの対応するものに記憶されたどのデータセットについてユーザ16がユーザ16によって指定した名称のtyposを訂正する意図があるか等を識別してもよい。
【0054】
ユーザ16は、データ列から抽出したデータパーツを有する新しい行の名称のリストを指定するためにnames_listエンティティを用いてもよい。names_listエンティティは、ユーザ16がキーワード“names”又は“calling”を指定するときにのみ指定されるキーワードエンティティである。
【0055】
CNLP装置22は、“Extract day, month and year from BirthDate”及び“Extract month and year from BirthDate, calling them BirthMonth, BirthYear”を含むパターンを用いて有効な発話を解析してもよい。
【0056】
以下に示す第3の例は、バブルチャートの形態でデータセットを可視化する意図23に対応するパターン“plot_bubble_chart”を提供する。
【数3】
【0057】
上に示す第3のパターンステートメントは、識別子PLOT、識別子BUBBLE及び識別子CHARTを指定する。PLOT及びCHARTの両方はそれぞれ二つの同義語を有する。
【0058】
この第3のパターンは、CHARTのx-axis及びy-axis並びにBUBBLEのsize及びcolorに用いられる列を特定する四つのキーワードエンティティを有する。以前の例のように、CNLP装置22は、列名を読み出すためにColumnパーサを呼び出し、誤記(“typos”)を訂正する。
【0059】
このパターンの一例の発話は、“Plot a bubble chart with x-axis Year, y-axis Population using bubble color Continent and size of the bubble GDP”である。
【0060】
以下に示す第4の例は、chartのlegendの位置を変更する意図23に対応するパターン“move_legend”を提供する。
【数4】
【0061】
上記において、ここで導入される“only_after”フィールドは、chartをプロットした後にのみフィールドがlegendを移動させる意味があることを特定する。したがって、ユーザ16は、特定した意図23のうちの一つを呼び出した後にのみ意図23を呼び出してもよい。
【0062】
第5の例において、融資のローン分析のドメインに特有のパターン“show_loans”を提供する。
【数5】
【0063】
第5のパターンは、“Show me the loans approved in 2016”及び“Show me the loans approved in 2018 in the state of Wisconsin”のような発話19を認めてもよい。
【0064】
第5のパターンは、特定のドメインがCLNP装置22によって理解されるように言語サーフェスをカスタマイズできる方法を示す。一部の例において、上述した意図23の基本的な実現は、tables、rows、columnsなどの言語を用いてもよいfilter_dataのようなより包括的な意図を用いてもよい。
【0065】
CNLP装置22は、互いに異なる意図23を識別するために上述したパターンパーサを実行させるプラットフォームを提供してもよい。CNLP装置22によって提供されるプラットフォームは、パターンパーサの開発、改良、追加又は除去が可能となるように拡張可能である。CNLP装置22は、上述したように、種々のエンティティを抽出するためにパターンパーサに組み込まれたエンティティパーサを利用してもよい。種々のエンティティが入力19において指定されないとき、CNLP装置22は、上記例についてパターンパーサに組み込まれたプロンプトを呼び出してもよい。CNLP装置22は、プロンプトの出力に応答して、指定されていないエンティティを特定する追加入力19を受信してもよく、これによって、意図23に関連することがあるパターンを識別するために入力19を解析する。
【0066】
このようにして、CNLP装置22は、意図23を識別するために種々の入力19を解析してもよい。CNLP装置22は、意図23をサーバ28に供給してもよく、サーバ28は、実行プラットフォーム24のうちの一つ以上を呼び出し、パターン及び関連のエンティティ、キーワード等の形態で実行プラットフォーム24に意図23を渡す。実行プラットフォーム24のうちの呼び出されたものは、データベース26のうちの対応するものについての動作を実行して結果を取得するために意図23に関連する処理を実行してもよい。実行プラットフォーム24のうちの呼び出されたものは、(動作の実行の)結果25をサーバ28に供給してもよく、サーバ28は、結果25を、インタフェース21を介して、入力19を入力するためにホスト装置12とやりとりを行うクライアント装置14に供給してもよい。
【0067】
(その例を上述した)各パターンに、現在のユーザセッションの現段階でパターンがユーザに露出されたか否かを識別することができる関数(すなわち、手順)を関連付けてもよい。例えば、上記第3の例で説明した“plot_bubble_chart”パターンを、(可能な場合には、上記第1の例で説明した“load_data_from_file”パターン又は同様に機能するがデータをファイルの代わりにデータベースからロードする“load_data_from_database”を用いて)ユーザによって以前にロードされた少なくとも一つのデータセットが存在するか否かを判断する手順に関連付けてもよい。そのような手順をシステムの(“plot_histogram”、“plot_line_chart”等のような)各データ可視化パターンに関連付けるとき、データ可視化パターンを、言語サーフェスの形成として概念化してもよい。
【0068】
これらのパターンが(他の言語サブサーフェスを形成する)パターンをロードするデータのうちの一つを用いるときにのみ露出されるので、CNLP装置22は、言語サブサーフェスを互いに効率的にリンクしてもよい。ユーザが上記要件に適合した後にしかデータ可視化言語サブサーフェスに属する発話を実行することしかできないので、関心のあるタスクを実行する際のいわゆる「思考過程」に関連する構造がユーザに提供され、これによって、ユーザは、(自然に)段階的にシステムの能力を発見することができ、発見プロセス中の認知的負荷を減少させる。
【0069】
したがって、CNLP装置22は、いわゆる「デジタルアシスタント」又は「チャットボット」のような自然言語インタフェースに従ってユーザ16とやりとりを行うホスト装置12の更に良い動作を促進することができる。複数の異なる意味を解釈することがある曖昧な入力を処理することを試みる処理サイクルを消費するのではなく、入力によってユーザが意図した正確な意味を解明するための補足質問を提示することによって、CNLP装置22は、利用できる言語を一つ以上のサブサーフェス18に制限することによって入力19を更に有効に処理することができる。処理サイクルを減少させることによって、ホスト装置12の動作が向上し、消費電力が低減し、更に少ない状態が生成されてメモリ消費が減少するとともに更に狭いメモリ帯域幅が利用され(その両方によって電力消費が更に減少する。)、更なる処理帯域幅が他の処理のために保持される。
【0070】
CNLP装置22は、オートコンプリートプロンプト、質問又は動的な提案メカニズム(dynamic suggestion mechanism)を介して互いに異なる言語サブサーフェス18を導入してもよく、これによって、追加の自然サブサーフェスを更に自然な(すなわち、対話式の)やり方でユーザに露出する。リンクされたサブサーフェスを介して生じる自然な調査(natural exploration)は、CNLP技術によって用いられる言語の容認性及び自然な学習を促進し、CNLP技術が機能する言語の不十分な理解によるユーザの未経験が原因で一般的に生じるエッジケースに頻繁に出くわすことによるフラストレーションを回避することができる。この意味で、CNLP技術は、曖昧なエッジケースを回避する意図を表現する際の精度及び正確さを考慮するために言語の制限された曖昧な部分を利用するサブサーフェスをユーザに自然に露出することができるようにすることによって自然らしさ、精度及び正確さのバランスをとることができる。
【0071】
例えば、データのロード及びクリーニング、種々のビジネス関連の質問に回答するためにデータのスライシング(slicing)及びダイシング(dicing)、パターンを認識するためのデータの可視化及び将来の傾向を予測するための機械学習の使用を含む種々の部類のデータ分析を実行するように設計されたチャットボットを考察する。ここで説明する技術を用いることによって、そのようなシステムの設計者は、ユーザが多様なタスクに対応する意図を表現することができる大きい言語サーフェスを指定することができ、同時に、発話を、システムによって曖昧に理解されることがある発話のみに制限し、これによって、エッジケースを回避する。さらに、オートコンプリートメカニズムを用いることによって、初心者ユーザでもシステムの他の全ての能力によって対応不可能となることなく実行したい特定のタスクに集中することができることを保証するように言語サーフェスを調整することができる。例えば、ユーザが、データを要約するチャートをプロットするために意図を表現することを開始すると、システムは、ユーザが選択することができる種々のチャート形態を提案することができる。ユーザがチャート形態(例えば、折れ線グラフ)を選択すると、システムは、軸、色及びユーザが設定することができる他のオプションを提案する。
【0072】
システム設計者は、言語サブサーフェス(例えば、データローディングの発話、データ可視化の発話及び機械学習の発話)及びユーザに露出される条件を指定することができる。例えば、データ可視化サブサーフェスを、ユーザが一部のデータをシステムにロードしたときにのみ露出してもよく、機械学習サブサーフェスを、システム設計者が機械学習モデルの構築及び解釈の際の機微(subtleties)及び落とし穴(pitfalls)に気付いたことをユーザが認識したときにのみ機械学習サブサーフェスを露出してもよい。すなわち、自然言語の発話における詳細及び複雑さを徐々に明らかにするこのプロセスは、言語サブサーフェスの間とその内部の両方に拡張する。
【0073】
総合すれば、CNLP技術を、多様なニーズ及び知識のレベルを有するユーザをサポートするために、多様な意図を高精度で潜在的にプログラムによって認識しながら(例えば、可能な場合にはトレーニング及び認知的負荷の制限をほとんど必要とすることなく)使いやすいユーザインタフェースを有するシステムを構築するのに用いることができる。したがって、これらの技術によって、困難又は不可能な能力と有用性の両立を実現する新たし五システム設計が可能になる。
【0074】
図2は、実行プラットフォーム24によって実行される複数の互いに異なるアプリケーション100A~100Fを有するホスト装置12のインタフェース装置20によって提示される一例のインタフェース21Aを示す図である。アプリケーション100Aは、データベース26の一つ以上についてのデータ分析を実行するための一般的なチャットボットインタフェースを示す。アプリケーション100Bは、データベース26の一つ以上に格納されたローンデータを分析するためのローン分析アプリケーションを示す。アプリケーション100Cは、データベース26の一つ以上に格納されたセールスマネージャー生産性を分析するためのセールスマネージャー生産性アプリケーションを示す。アプリケーション100Dは、データベース26の一つ以上に格納された医療費データを分析するための医療費分析アプリケーションを示す。アプリケーション100Eは、科学研究グループによって収集されるとともにデータベース26の一つ以上に格納された互いに異なる蚊の種類の有病率(prevalence)に関する実験データを分析するための科学データ分析アプリケーションを示す。アプリケーション100Fは、データベース26の一つ以上に格納されたデータに関する機械学習を実行するための機械学習アプリケーションを示す。
【0075】
図3A~3Hは、本開示に記載されたCNLP技術の種々の態様による図2に示すセールスマネージャー生産性アプリケーションを介してセールスマネージャー生産性分析を促進する図1に示すホスト装置のインタフェース装置によって示されるインタフェース21B~21Hを示す図である。図3Aの例において、インタフェース21Bは、対話を表示するテキスト表示部200と、結果25を表示する結果表示部202と、を有する。テキスト表示部200は、図3Aに示すように、入力19を入力するためにユーザ16がやりとりを行うテキスト入力領域を有する。結果表示部202は、‘PLOT a BUBBLE CHART’パターンに関連した意図を特定するために応答した結果25を表示する。すなわち、結果表示部202は、図2に示すセールスマネージャー生産性アプリケーション100Cに関連して商談所有者の勝敗率を示すバブルチャートを示す。
【0076】
図3Bにおいて、インタフェース装置20は、図3Aのインタフェース21Bに示す結果表示部202に示すバブルチャートのバブル250を選択するユーザ16に応答したインタフェース21Cを示す。バブル250の選択に応答して、サーバ28は、“Jennifer Keller”として識別された商談所有者に関連する結果25を取得するために対応する実行プラットフォーム24とやりとりを行ってもよい。インタフェース装置20は、勝敗メトリック要素(metrics element)252を有するインタフェース21Cを生成又は取得し、インタフェース21Cを、クライアント30を介してユーザ16に提供する。
【0077】
図3Cの例において、インタフェース装置20は、テキスト表示部200のテキスト入力領域300のテキスト”Show”としての入力19を入力するユーザ16に応答してインタフェース21Dを表示する。サーバ28は、入力19を受信し、テキスト表示領域200に重ねられたオートコンプリート表示領域302に示すオートコンプリートエントリによって示される言語サブサーフェス18のうちの一つを露出するようにオートコンプリート動作を自動的に実行するために入力19を分析してもよい。図3Cの例に示さないが、サーバ28は、言語サブサーフェス18のうちの一つを露出する提案をしてもよく、提案は、オートコンプリートエントリに基づく入力19がユーザ16によって供給されない点で提案はオートコンプリートエントリと異なる(提案は、言語サブサーフェスのうちの露出したものに対応する言語の部分全体を露出してもよく、それに対し、オートコンプリートエントリは、入力19に関連又は整合した言語の部分のサブセットしか示さなくてもよい。)。
【0078】
図3Dの例において、インタフェース装置20は、記録された対話領域350に示すように“Show me the ratio of wins to losses for each state”を指定する入力19を入力するユーザ16に応答してインタフェース21Eを示す。“Show me the ratio of wins to losses for each state”を指定する入力19を入力することに応答して、サーバ28は、結果表示部202のテーブル352に表示される結果25を取得するために対応する実行プラットフォーム24とやりとりを行ってもよい。インタフェース装置20は、テーブル352を有するインタフェース21Eを生成又は取得してもよく、インタフェース21Eを、クライアント30を介してユーザ16に供給する。
【0079】
図3Eの例において、インタフェース装置20は、記録された対話領域500に示すように“Show me the ratio of wins to losses in the year 2017”を指定する入力19を入力するユーザ16に応答してインタフェース21Fを示す。“Show me the ratio of wins to losses in the year 2017”を指定する入力19を入力する入力することに応答して、サーバ28は、結果表示部202のテーブル502に表示される結果25を取得するために対応する実行プラットフォーム24とやりとりを行ってもよい。インタフェース装置20は、テーブル502を有するインタフェース21Fを生成又は取得してもよく、インタフェース21Fを、クライアント30を介してユーザ16に供給する。
【0080】
図3Fの例において、インタフェース装置20は、記録された対話領域500に示すように“list all datasets”を指定する入力19を入力するユーザ16に応答してインタフェース21Fを示す。“list all datasets”を指定する入力19を入力する入力することに応答して、サーバ28は、結果表示部202のテーブル552に表示される結果25を取得するために対応する実行プラットフォーム24とやりとりを行ってもよい。インタフェース装置20は、テーブル552を有するインタフェース21Gを生成又は取得してもよく、インタフェース21Gを、クライアント30を介してユーザ16に供給する。
【0081】
図3Gの例において、インタフェース装置20は、記録された対話領域500に示すように“load data from the file npi.csv”を指定する入力19を入力するユーザ16に応答してインタフェース21Fを示し、“load data from the file npi.csv”は、上記で更に詳しく説明したload filenameパターンに対応する。
【0082】
図3Hの例において、インタフェース装置20は、テキスト入力領域300に示すように“S”を指定する入力19を入力するユーザ16に応答してインタフェース21Hを示す。S”を指定する入力19を入力することに応答して、サーバ28は、言語サブサーフェス28のうちの一つを露出するとともにユーザ16が言語サブサーフェス28のうちの露出した一つをよりよく理解してパターンを更に学習できるようにするために提案表示領域650に提案を行う。
【0083】
連続して(taken in sequence)、図3H及び図3Cは、ユーザの認知的負荷を潜在的に制限するために言語サーフェスの設計をオートコンプリートメカニズムに組み合わせる方法を示す。図3H及び図3Cに示すシステムの全てのパターンは、識別子によって開始する。識別子を、言語サブサーフェスに意味があるように互いに関連した識別子にグループ分けするためにパターンの間で賢明に再利用してもよい。
【0084】
例えば、全てのデータ可視化パターンは、識別子“Plot”で開始する。図3Hに示すように、新しい発話を開始するとき、ユーザは、パターンの種々の開始識別子のみを示す。したがって、システムによってサポートされる(互いに異なるチャート形態に対応する)多数の互いに異なるデータ可視化パターンが存在するとしても、単一の“Plot”識別子のみがオートコンプリート提案に示すことができ、これらのパターンの全てを組み込む。図3Hのユーザが、テキスト入力領域300に示すように“S”を指定するように選択したので、表示されたリスト650は、(単語“Plot”は文字“S”を含まないので)“Plot”識別子を除外し、これによって全てのデータ可視化パターンを除去する。ここで説明するCNLPメカニズムが存在しない場合、ユーザは、本例におけるかなりのデータ可視化パターンを、ここに示す“list all datasets”及び“show win loss ratio”のような他の多くのパターンと同時に処理する必要があった。
【0085】
次のステップにおいて、ユーザが単語“Show”を入力すると(又はユーザが図3Hのリスト650から単語“Show”を選択すると)、インタフェースは、図3Cに示すインタフェースに切り替わり、リスト302は、識別子“Show”で開始する種々のパターンのみを含む。特に、このリストは、パターン“show win loss ratio”及び“show average age”に対応する発話を有する。
【0086】
上述した発見プロセスに関連して、識別子“Plot”で開始するデータ可視化パターンのグループに対応する発生を、全て発話の階層に含まれる言語サブサーフェスに属すると考えてもよい。“plot_bubble_chart”パターンに対応する発話の特定のサブセットは、この階層内でデータ可視化言語サブサーフェスの下に(すなわち、その中に含まれるように)存在してもよい。このようにして、言語サーフェスの構造は、識別子及びエンティティの定型化を用いることによって、システムによって認識可能な全ての発話の大きいセットを複数レベルの階層に自然に配置する。発話のこの階層(又は言語サブサーフェス)は、オートコンプリートメカニズムと組み合わせることによって、ユーザがどんなときでも(動的な提案リストの形態の)少数のオプションを処理するのに集中すればよい構造化された発見プロセスに役に立ち、この階層を一度に1ステップずつ降順してシステムの有用性を向上させる。
【0087】
図4は、本開示に記載された技術の種々の態様による図1の例に示す言語サーフェス18を示すのに用いられるデータ構造700を示すブロック図である。図4の例に示すように、データ構造700は、サブサーフェスルートノード702(SS-RN702)と、複数の階層的に配置されたサブサーフェス子ノード704A~704N(SS-CN704)、706A~706N(SS-CN706)、708A~708N(SS-CN708)と、サブサーフェスリーフノード710A~710N(SS-LN710)と、を有してもよい。
【0088】
サブサーフェスルートノード702は、基本サブサーフェスを露出する開始ノードを表してもよく、これによって、SS-RN704のようなそれに依存するサブサーフェスの露出を制限する。最初に、CNLP装置22は、新たなユーザ16に対して、上述したように各々が識別子、位置エンティティ及びキーワードエンティティ並びに無視された単語を有するパターンの制限されたセットのみを露出してもよい。CNLP装置22は、(現在のセッションの履歴、識別されたユーザ能力、ユーザの好みなどのうちの一つ又はその組合せを意味してもよい)コンテキストに基づいてSS-RN702からSS-CN407のうちの一つまでトラバースしてもよい。したがって、CNLP装置22は、発見可能性と認知的負荷とのバランスをとるために(例えば、SS-RN702からSS-CN704及びSS-CN706/708を経てSS-LF710まで)階層的に配列されたノードをトラバースしてもよい。
【0089】
上述したように、言語サーフェスのパターンの全ては、識別子で開始してもよく、これらの識別子は、識別子を言語サーフェス702~710にグループ分けするためにパターンの間で再使用される。例えば、全てのデータ可視化意図は、“Plot”で開始する。テキストボックスへの発話の入力を開始すると、ユーザ16は、(“Plot”、“Load”のような)一つの第1の識別子を含むオートコンプリート提案リストを見ることができる。ユーザ16が第1の識別子を記入すると、CNLP装置22は、更なる記入のために言語サブサーフェスに属する他のパターンのみを露出してもよい。上記例において、ユーザが最初の単語として“Plot”のみを指定するときのみ、CNLP装置22は、(折れ線グラフ、バブルチャート、ヒストグラム等のような)種々のチャート形式を提案するためにオートコンプリートメカニズムを呼び出す。オートコンプリート提案のうちの一つ(例えば、折れ線グラフ)を特定するユーザ16に応答して、CNLP装置22は、(軸上の列、色、スライダ等のような)チャートを設定するためにユーザ16が指定する必要があるエンティティを露出してもよい。
【0090】
概念的には、全ての発話のセット(言語サーフェス)を、(発話の識別子及びエンティティに基づいて)階層的に配置されるサブセット(サブサーフェス)に分解されるものとみなしてもよく、この場合、階層の各レベルは、内在するサブセットを形成する全ての発話/パターンを有する。オートコンプリートメカニズムを用いることによって、ユーザ16は、この階層を最上部から最下部まで一度に1ステップずつナビゲートする。各ステップにおいて、ユーザ16は、提案として次のステップの小さいセットのみが示されてもよい。これによって、CNLP装置22は、発見可能性と認知的負荷とのバランスをとることができる。換言すれば、技術のこの態様は、パターン仕様言語を用いてパターンを構造化する方法についてのものである。(「パターンが識別子で開始する」のような)ここでの設計上の選択は、パターン仕様言語それ自体によって課されない。
【0091】
したがって、所定の言語サブサーフェスは、対応する条件に適合したときにのみ露出される。例えば、CNLP装置22は、少なくとも一つの既にロードされたデータセットが存在するときにのみデータ可視化サブサーフェスを露出してもよい。これは、パターンが現時点で露出されているか否かを判断するために現在の状況(このセッションの履歴、ユーザの能力及び好み等)を見る機能/手順を各パターンに関連付けることによって実現される。
【0092】
図5は、図1の例に示すホスト装置12及び/又はクライアント装置14の例の構成要素を示すブロック図である。図5に示す例において、デバイス12/14は、プロセッサ412と、グラフィックスプロセッシングユニット(GPU)414と、システムメモリ416と、ディスプレイプロセッサ418と、一つ以上の統合スピーカ105と、ディスプレイ103と、ユーザインタフェース420と、トランシーバモジュール422と、を有する。ソースデバイス12がモバイル機器である例において、ディスプレイプロセッサ418は、モバイルディスプレイプロセッサ(MDP)である。ソースデバイス12がモバイル機器である例のような一部の例において、プロセッサ412、GPU414及びディスプレイプロセッサ418を集積回路(IC)として形成してもよい。
【0093】
例えば、ICは、チップパッケージ内の処理チップとみなされてもよく、システムオンチップ(SoC)であってもよい。一部の例において、プロセッサ412、GPU414及びディスプレイプロセッサ418のうちの二つを同一のICにおいて互いに収容するとともにそれ以外を異なる集積回路(すなわち、異なるチップパッケージ)に収容してもよい又は三つ全てを異なるIC又は同一のICに収容してもよい。しかしながら、ソースデバイス12がモバイル機器である例において、プロセッサ412、GPU414及びディスプレイプロセッサ418が全て異なる集積回路に収容されることがある。
【0094】
プロセッサ412、GPU414及びディスプレイプロセッサ418の例は、一つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)又は他の等価な集積論理回路若しくは個別の論理回路を含むがそれに限定されない。プロセッサ412は、ソースデバイス12の中央処理装置(CPU)であってもよい。一部の例において、GPU414は、グラフィック処理に適した超並列処理能力を有するGPU414を提供する集積論理回路及び/又は個別の論理回路を有する専用ハードウェアであってもよい。一部の例において、GPU414は、汎用処理能力を有してもよく、汎用処理タスク(すなわち、グラフィックに関連しないタスク)を実現するときに汎用GPU(GPGPU)と称してもよい。ディスプレイプロセッサ418は、システムメモリ416から画像コンテンツを検索し、画像コンテンツを画像フレームに構成し、画像フレームをディスプレイ103に出力するように設計される専用集積回路ハードウェアであってもよい。
【0095】
プロセッサ412は、種々のタイプのアプリケーションを実行してもよい。アプリケーション29の例は、ウェブブラウザ、eメールアプリケーション、スプレッドシート、ビデオゲーム、ディスプレイに見えるオブジェクトを生成する他のアプリケーション又は上記で更に詳しく説明したアプリケーションのいずれかを含む。システムメモリ416は、アプリケーション20の実行のための命令を格納してもよい。プロセッサ412でのアプリケーション20の一つ以上の実行によって、プロセッサ412は、表示される画像コンテンツの画像データ及び再際される音声データ21を再生する。プロセッサ412は、画像コンテンツの画像データを、プロセッサ412がGPU414に送信する命令又はコマンドに基づく更なる処理のためにGPU414に送信する。
【0096】
プロセッサ412は、特定のアプリケーション処理インタフェース(API)に従ってGPU414と通信を行ってもよい。そのようなAPIの例は、マイクロソフト(登録商標)によるDirectX(登録商標)、クロノスグループによるOpenGL(登録商標)又はOpenGL ES(登録商標)及びOpenCL(登録商標)を含むが、本開示の態様は、DirectX(登録商標)、OpenGL(登録商標)又はpenCL(登録商標)に限定されず、他のタイプのAPIに拡張してもよい。さらに、本開示に記載された技術は、APIに従った機能を必要とせず、プロセッサ412及びGPU414は、通信の技術を利用してもよい。
【0097】
システムメモリ416は、ソースデバイス12のメモリであってもよい。システムメモリ416は、一つ以上のコンピュータ可読媒体を備えてもよい。システムメモリ416の例は、ランダムアクセスメモリ(RAM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、フラッシュメモリ又は命令及び/又はデータ構造の形態の所望のプログラムコードを保持若しくは記憶するのに用いることができるとともにコンピュータ若しくはプロセッサによってアクセス可能な他の媒体を含むがそれに限定されない。
【0098】
一部の例において、システムメモリ416は、本開示に記載された機能をプロセッサ412、GPU414及び/又はディスプレイプロセッサ418に実行させる命令を有してもよい。したがって、システムメモリ416は、実行するときに一つ以上のプロセッサ(例えば、プロセッサ412、GPU414及び/又はディスプレイプロセッサ418)に種々の機能を実行させる命令を記憶したコンピュータ可読記憶媒体であってもよい。
【0099】
システムメモリ416は、非一時的記憶媒体を有してもよい。用語「非一時的」は、記憶媒体が搬送波又は伝播される信号によって実施されないことを意味する。しかしながら、用語「非一時的」を、システムメモリ416が移動可能でないこと又はコンテンツが静的であることを意味すると解釈すべきでない。一例として、システムメモリ416を、ソースデバイス12から取り外して他の装置に移動させてもよい。他の例として、システムメモリ416と略類似するメモリをデバイス12/14に挿入してもよい。所定の例において、非一時的記憶媒体は、(例えば、RAMにおいて)経時的に変化するデータを記憶してもよい。
【0100】
ユーザインタフェース420は、ユーザがソースデバイス12とやり取りを行ってもよい一つ以上のハードウェア又は(ハードウェアとソフトウェアの組合せを意味する)仮想的なユーザインタフェースを表してもよい。ユーザインタフェース420は、物理的なボタン、スイッチ、トグルスイッチ、ライト又はその仮想的なバージョンを有してもよい。ユーザインタフェース420は、物理的又は仮想的なキーボード、タッチスクリーンのようなタッチインタフェース、ハプティックフィードバック等を有してもよい。
【0101】
プロセッサ412は、種々の装置/モジュール/等について上述した動作の全て又は一部を実行するように構成された(いわゆる「処理コア」を含む)一つ以上のハードウェア装置を有してもよい。トランシーバモジュール422は、装置12/14の間の無線接続を確立するとともに維持するように構成された装置を表してもよい。トランシーバモジュール422は、一つ以上の無線通信プロトコルに従って無線通信を行うことができる一つ以上の受信機及び一つ以上の送信機を表してもよい。
【0102】
上述した種々の例の各々において、装置12/14は、方法を実行してもよい又は実行するものとして装置12/14を上述した方法の各ステップを実行する手段を備えてもよい。一部の例において、手段は、一つ以上のプロセッサを備えてもよい。一部の例において、一つ以上のプロセッサは、非一時的コンピュータ可読記憶媒体に記憶された命令によって構成された専用プロセッサを表してもよい。換言すれば、符号化の例のセットの各々の技術の種々の態様は、実行の時に、装置12/14を実行するように構成した方法を一つ以上のプロセッサに実行させる命令を記憶した非一時的コンピュータ可読記憶媒体を提供してもよい。
【0103】
図6は、本開示に記載された技術の種々の態様を実行する際の図1のホスト装置の例の動作を示すフローチャートである。上述したように、CNLP装置22は、最初のユーザ(ユーザ16を、説明のためのものと考える。)に、言語サブサーフェス18のうちの選択したものを制限的に露出してもよく、言語サブサーフェス18のうちの選択したもののみを露出することができる。したがって、CNLP装置22は、自然言語の文法を複数の言語サブサーフェス18の階層的配列として特定する自然言語包含階層を指定する言語サブサーフェスを露出してもよい(800)。
【0104】
CNLP装置22は、インタフェース装置20を介して、露出された言語サブサーフェスによって提供された言語の部分に一致する入力19を受信し(802)、言語に関連する複数の意図23からユーザ16の意図23を識別するために入力19を処理してもよい(804)。すなわち、設計者は、サーバ28をサポートするCNLP装置22を設計するときに、(CNLP装置22を介した入力19の解析のサポートに関連して)サーバ28がサポートする意図23のセットを選択してもよい。
【0105】
さらに、CNLP装置22は、上述したように、一つ以上のエンティティをサポートすることによって意図23の各々に関する精度をオプションで増大してもよい。CNLP装置22は、発話19が意図23のセットのうちの所定のものに属することを識別するために解析を行うプロセスを実行した後に発話19に生じた任意のエンティティを抽出してもよい。換言すれば、CNLP装置22は、エンティティが存在するか否かを判断してもよい(806)。CNLP装置22が、入力が一つ以上のエンティティを有することを識別するとき(806のYES)、CNLP装置22は、入力からエンティティを解析してもよい(808)。
【0106】
入力からエンティティを解析した後又はエンティティが存在しないとき(806のNo)、CNLP装置22は、入力がパターンを有するか否かを判断してもよい(810)。CNLP装置22がパターンを識別するとき(810のYES)、CNLP装置22は、入力からパターンを識別してもよい(812)。すなわち、CNLP装置22は、言語18によって提供された意図23の各々を一つ以上のパターンに関連付けてもよい。したがって、CNLP装置22は、言語18に関連する複数のパターンからパターンを識別するために入力19を処理してもよく、複数のパターンの各々は、複数の意図23の互いに異なるものに関連付けられる。その後、CNLP装置22は、識別したエンティティ及び/又はパターンに基づいて、言語の部分に関連する複数の意図からユーザ16の意図23を識別してもよい(814)。
【0107】
このようにして、CNLP装置22は、意図23を識別するために種々の入力19を解析してもよい。CNLP装置22は、意図23をサーバ28に供給してもよく、サーバ28は、実行プラットフォーム24の一つ以上を呼び出してもよく、パターン及び関連のエンティティ、キーボード等の形態で実行プラットフォーム24に意図23を渡す。実行プラットフォーム24のうちの呼び出されたものは、データベース26のうちの対応するものに関連する動作を実行するとともに結果25を取得するために意図23に関連した処理を実行してもよい(816)。実行プラットフォーム24のうちの呼び出されたものは、結果25を出力する(例えば、結果25をサーバ28に供給し、サーバ28は、結果25を、インタフェース212を介して、入力19を入力するためにホスト装置12とやりとりを行うクライアント装置14に供給してもよい)(818)。
【0108】
この点において、技術の種々態様は、以下のものを対象とする。
【0109】
1.(図4で示したようなコンピュータ装置によって実行される)アルゴリズムにより曖昧さを多くすることなく解析することができるパターンを記述する制限自然言語フレームワーク。解析は、ユーザの意図23のカテゴリー化及び発話19に存在する関連のエンティティの抽出の両方を有してもよい。
【0110】
2.上記フレームワークの一つ以上のパターンに基づいて意図認識装置及び意図抽出装置を合成する(図4で示したようなコンピュータ装置によって実行される)パーサ生成器アルゴリズム。
【0111】
3.意図を処理するためにサーバ28によって要求されるがユーザの発話19に含まれないエンティティの値を含むユーザ応答を引き出すメカニズム。
【0112】
4.発話19から抽出されるエンティティが何らかの意味を持つことを保証する(図4で示したようなコンピュータ装置によって実行される)検証アルゴリズム。例えば、上述したmeeting-schedulerの例のタイミングは、“5pm”又は“noon”であるが、“Wisconsin”ではない。
【0113】
5.意図23の同一のセットを選択することにより互いに異なる意図19に関連するパターンが互いに競合しないことを保証する(図4で示したようなコンピュータ装置によって実行される)静的検査アルゴリズム。そのようなアルゴリズムは、発話19が常に明確に解析されることを保証する。
【0114】
6.WordNet(登録商標)のような機械可読辞典又は類語辞典に基づく同義語のリストを自動的に生成又は増補するメカニズム。
【0115】
7.ユーザがテキストベースのユーザインタフェースで提供することができる部分的な発話19の完成を提案又は推奨するオートコンプリートメカニズム。オートコンプリートメカニズムは、(パターンに基づく潜在的な完成についての部分的な発話19の類似性のみに基づく)純粋な統語ランキング、(ユーザが用いる意図の使用頻度及び順番に基づく)統計的なランキングスキーム又はその組合せに基づいて完成のランク付けを行ってもよい。
【0116】
8.ユーザ16が意図23及び意図23のリストがサポートするパターンのリストをサーバ28から取得することができ、オプションで、ユーザ16が選択してもよい所定の検索用語に関連するエンティティのみにリストをフィルタリングする発見メカニズム。
【0117】
9.ユーザが意図23に関連するエンティティ及びそのようなエンティティが発話19に含まれる程度のリストをサーバ28から取得することができる発見メカニズム。
【0118】
10.複数のパターンに共通する識別子のサブセットのみの発生が潜在的な原因であるユーザの発話19の意図23が不明瞭(曖昧)である場合に発話19を処理する特注のハンドラをサーバ28の設計者/開発者によって含めることができる曖昧さ解決メカニズム。
【0119】
11.(このセッション又はあり得る他のセッションでユーザによって以前になされた発話19の履歴を含むがそれに限定されない)対話の状況を維持するとともに状況に基づくエンティティの値を推論するメカニズム。例えば、ステートメント“Send an email to John ・・・”を作成した後、ユーザは、発話“schedule an appointment with him”を行ってもよい。パーサ(例えば、CNLP装置22)は、「John」が会議に参加する意図があると推論する。
【0120】
12.高度な(advanced)パターンを可能にし、高度なパターンは、所定の発話19を、他のパターンによって解析することができる言い回しに変換する/書き換えるメカニズム。例えば、高度なパターンは、“I would like to set up an appointment”の形式の発話19を、上記例のmeeting-schedulerパターンを用いて解析することができる発話“schedule an appointment”に変換してもよい。そのような高度なパターンを用いて、CNLP装置22が正確に解析することができるユーザの発話19の自然らしさを系統的に向上させるために用いることができる。
【0121】
13.CNLP装置22によって全く又は部分的に処理することができない発話19を処理するために(通常のキーワードベース又は機械学習ベースの方法又は経験則に基づく他の方法を含む)他のアプローチを制限自然言語に増補するメカニズム。例えば、ディープニューラルネットワークに基づくパーサを、パターンに基づくmeeting-schedulerの意図に属するものとして分析されるがそのエンティティをCNLP装置22によって正確に抽出することができない発話19を解析するようにトレーニングしてもよい。
【0122】
14.(言語サーフェスを形成する)パターンの所定のサブセットを、所定の以前のパターンによってカバーされていないときにのみCNLP装置22のパターンパーサによって解析できるようにするメカニズム。例えば、上述した“schedule meeting”パターンは、“change frequency”又は“email attendees”をカバーしていないことがある。ここでの「カバーしていない」は、ユーザが“schedule meeting”パターンに関連付けられた発話19を行った後にのみパターンの後者のセットをユーザによって発することができる(とともにパーサによって認識される)ことを意味する(換言すれば、ユーザ16は、頻度の変更又は出席者への電子メールの送信をできるようにするまえに会議をスケジューリングする必要がある。)。そのようなメカニズムを、異なるレベルの専門知識/高度な知識を有するユーザをサポートするのに用いることもできる。さらに高度なユーザは、高度な知識を持つユーザのみが正確に用いることができるパターンを明らかにすることができる。
【0123】
さらに、技術の種々の態様を、以下に挙げる項によって表してもよい。
【0124】
項1A.入力を表すデータを処理するように構成されたデバイスであって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を明確にする自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定し、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信し、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理し、動作を実行するために、識別された意図に関連する処理を実行する、ように構成された一つ以上のプロセッサと、入力を表すデータを格納するように構成されたメモリと、を備えるデバイス。
【0125】
項2A.一つ以上のプロセッサは、複数の言語サブサーフェスの言語サブサーフェスのみを露出するように構成された、項1Aのデバイス。
【0126】
項3A.一つ以上のプロセッサは、ユーザがしきい値内の言語の部分に関連する複数の意図を思い起こすことができることを決定し、ユーザが複数の意図を思い起こすことができることを決定したことに応答して、複数の言語サブサーフェスの第2の言語サブサーフェスを露出し、第2の言語サブサーフェスは、第2の入力を表す第2のデータを入力するためにユーザがやりとりを行うことができる言語の第2の部分を提供し、露出された第2の言語サブサーフェスによって提供された言語の第2の部分と一致する第2の入力を表す第2のデータを受信し、言語の第2の部分に関連する第2の複数の意図からユーザの第2の意図を識別するために第2の入力を表す第2のデータを処理し、第2の動作を実行するために、識別された第2の意図に関連する処理を実行する、ように更に構成された、項1A又は2Aの任意の組合せのデバイス。
【0127】
項4A.一つ以上のプロセッサは、言語サブサーフェスを露出するために一つ以上の示唆を自動的に提供するテキスト入力領域を有するインタフェースを提示するように更に構成された、項1A~3Aの任意の組合せのデバイス。
【0128】
項5A.一つ以上のプロセッサは、言語サブサーフェスを露出するためにオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示するように更に構成された、項1A~4Aの任意の組合せのデバイス。
【0129】
項6A.言語サブサーフェスは、第1の言語サブサーフェスを備え、第1の言語サブサーフェスは、複数の言語サブサーフェスの第2の言語サブサーフェスへの移行を指定し、一つ以上のプロセッサは、移行を識別するユーザからの第2のデータに応答して、複数の言語サブサーフェスの第2の言語サブサーフェスを露出し、第2の言語サブサーフェスは、第2の入力を表す第2のデータを入力するためにユーザがやりとりを行うことができる言語の第2の部分を提供するように更に構成された、項1A~5Aの任意の組合せのデバイス。
【0130】
項7A.一つ以上のプロセッサは、移行を識別するデータの入力を促進するオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示するように更に構成された、項6Aのデバイス。
【0131】
項8A.一つ以上のプロセッサは、露出された第2の言語サブサーフェスによって提供された言語の第2の部分に一致する第2の入力を表す第2のデータを受信し、言語の第2の部分に関連する第2の複数の意図からユーザの第2の意図を識別するために第2の入力を表す第2のデータを処理し、第2の動作を実行するために、識別された第2の意図に関連する第2の処理を実行する、ように更に構成された、項6Aのデバイス。
【0132】
項9A.一つ以上のプロセッサは、言語に関連する複数のパターンからパターンを識別するために入力を表すデータを処理し、複数のパターンの各々は、複数の意図の互いに異なる意図に関連し、識別されたパターンに基づいて、言語の部分に関連する複数の意図からユーザの意図を識別する、ように更に構成された、項1A~8Aの任意の組合せのデバイス。
【0133】
項10A.パターンは、識別子を有し、一つ以上のプロセッサは、識別子を識別するために入力を表すデータを解析し、識別子に基づいてパターンを識別する、ように更に構成された、項9Aのデバイス。
【0134】
項11A.パターンは、識別子と位置エンティティの両方を有し、一つ以上のプロセッサは、位置エンティティを識別するために入力を表すデータを解析し、識別子及び位置エンティティに基づいてパターンを識別する、ように更に構成された、項10Aのデバイス。
【0135】
項12A.パターンは、キーワードを有し、一つ以上のプロセッサは、キーワードを識別するために入力を表すデータを解析し、キーワードに基づいてパターンを識別する、ように更に構成された、項9~11の任意の組合せのデバイス。
【0136】
項13A.パターンは、エンティティを有し、一つ以上のプロセッサは、入力を表すデータがパターンに対応するがエンティティを有さないことを決定し、入力を表すデータがパターンに対応するがエンティティを有さないことを決定したことに応答して、エンティティを特定する追加入力を表すデータを要求するプロンプトを出力する、ように更に構成された、項9A~12Aの任意の組合せのデバイス。
【0137】
項14A.一つ以上のプロセッサは、エンティティを特定する追加入力を表すデータを受信し、入力を表すデータ及び追加入力を表すデータに基づいて、パターンを識別する、ように更に構成された、項13Aのデバイス。
【0138】
項15A.一つ以上のプロセッサは、動作の実行の結果を取得し、入力を表すデータを入力するために、結果を、インタフェースを介して、デバイスとやりとりを行うクライアントに供給する、ように更に構成された、項1A~14Aの任意の組合せのデバイス。
【0139】
項16A.入力を表すデータを処理する方法であって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を明確にする自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定することと、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信することと、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理することと、動作を実行するために、識別された意図に関連する処理を実行することと、を備える方法。
【0140】
項17A.言語サブサーフェスを露出することは、複数の言語サブサーフェスの言語サブサーフェスのみを露出することを備える、項16Aの方法。
【0141】
項18A.ユーザがしきい値内の言語の部分に関連する複数の意図を思い起こすことができることを決定することと、ユーザが複数の意図を思い起こすことができることを決定したことに応答して、複数の言語サブサーフェスの第2の言語サブサーフェスを露出し、第2の言語サブサーフェスは、第2の入力を表す第2のデータを入力するためにユーザがやりとりを行うことができる言語の第2の部分を提供することと、露出された第2の言語サブサーフェスによって提供された言語の第2の部分と一致する第2の入力を表す第2のデータを受信することと、言語の第2の部分に関連する第2の複数の意図からユーザの第2の意図を識別するために第2の入力を表す第2のデータを処理することと、第2の動作を実行するために、識別された第2の意図に関連する処理を実行することと、を更に備える、項16A及び17Aの任意の組合せの方法。
【0142】
項19A.言語サブサーフェスを露出するために一つ以上の示唆を自動的に提供するテキスト入力領域を有するインタフェースを提示することを更に備える、項16A~18Aの任意の組合せの方法。
【0143】
項20A.言語サブサーフェスを露出するためにオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示することを更に備える、項16A~19Aの任意の組合せの方法。
【0144】
項21A.言語サブサーフェスは、第1の言語サブサーフェスを備え、第1の言語サブサーフェスは、複数の言語サブサーフェスの第2の言語サブサーフェスへの移行を指定し、移行を識別するユーザからの第2のデータに応答して、複数の言語サブサーフェスの第2の言語サブサーフェスを露出し、第2の言語サブサーフェスは、第2の入力を表す第2のデータを入力するためにユーザがやりとりを行うことができる言語の第2の部分を提供することを更に備える、項16A~20Aの任意の組合せの方法。
【0145】
項22A.移行を識別するデータの入力を促進するオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示することを更に備える、項21Aの方法。
【0146】
項23A.露出された第2の言語サブサーフェスによって提供された言語の第2の部分に一致する第2の入力を表す第2のデータを受信することと、言語の第2の部分に関連する第2の複数の意図からユーザの第2の意図を識別するために第2の入力を表す第2のデータを処理することと、第2の動作を実行するために、識別された第2の意図に関連する第2の処理を実行することと、を更に備える、項21Aの方法。
【0147】
項24A.入力を表すデータを処理することは、言語に関連する複数のパターンからパターンを識別するために入力を表すデータを処理し、複数のパターンの各々は、複数の意図の互いに異なる意図に関連することと、識別されたパターンに基づいて、言語の部分に関連する複数の意図からユーザの意図を識別することと、を備える、項16A~23Aの任意の組合せの方法。
【0148】
項25A.パターンは、識別子を有し、パターンを識別するために入力を表すデータを処理することは、識別子を識別するために入力を表すデータを解析することと、識別子に基づいてパターンを識別することと、を備える、項24Aの方法。
【0149】
項26A.パターンは、識別子と位置エンティティの両方を有し、識別子を識別するために入力を表すデータを解析することは、位置エンティティを識別するために入力を表すデータを解析することと、識別子及び位置エンティティに基づいてパターンを識別することと、を備える、項25Aの方法。
【0150】
項27A.パターンは、キーワードを有し、識別子を識別するために入力を表すデータを解析することは、キーワードを識別するために入力を表すデータを解析することと、キーワードに基づいてパターンを識別することと、を備える、項24A~26Aの任意の組合せの方法。
【0151】
項28A.パターンは、エンティティを有し、識別子を識別するために入力を表すデータを解析することは、入力を表すデータがパターンに対応するがエンティティを有さないことを決定することと、入力を表すデータがパターンに対応するがエンティティを有さないことを決定したことに応答して、エンティティを特定する追加入力を表すデータを要求するプロンプトを出力することと、を備える、項24A~27Aの任意の組合せの方法。
【0152】
項29A.入力を表すデータを受信することは、エンティティを特定する追加入力を表すデータを受信することを備え、入力を表すデータを処理することは、入力を表すデータ及び追加入力を表すデータに基づいて、パターンを識別することを更に備える、項28Aの方法。
【0153】
項30A.動作の実行の結果を取得することと、入力を表すデータを入力するために、結果を、インタフェースを介して、デバイスとやりとりを行うクライアントに供給することと、を更に備える、項16A~29Aの任意の組合せの方法。
【0154】
項31A.入力を表すデータを処理するデバイスであって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定する手段と、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信する手段と、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理する手段と、動作を実行するために、識別された意図に関連する処理を実行する手段と、を備えるデバイス。
【0155】
項32A.言語サブサーフェスを露出する手段は、複数の言語サブサーフェスの言語サブサーフェスのみを露出する手段を備える、項31Aのデバイス。
【0156】
項33A.ユーザがしきい値内の言語の部分に関連する複数の意図を思い起こすことができることを決定する手段と、ユーザが複数の意図を思い起こすことができることを決定したことに応答して、複数の言語サブサーフェスの第2の言語サブサーフェスを露出し、第2の言語サブサーフェスは、第2の入力を表す第2のデータを入力するためにユーザがやりとりを行うことができる言語の第2の部分を提供する手段と、露出された第2の言語サブサーフェスによって提供された言語の第2の部分と一致する第2の入力を表す第2のデータを受信する手段と、言語の第2の部分に関連する第2の複数の意図からユーザの第2の意図を識別するために第2の入力を表す第2のデータを処理する手段と、第2の動作を実行するために、識別された第2の意図に関連する処理を実行する手段と、を更に備える、項31A及び32Aの任意の組合せのデバイス。
【0157】
項34A.言語サブサーフェスを露出するために一つ以上の示唆を自動的に提供するテキスト入力領域を有するインタフェースを提示する手段を更に備える、項31A~33Aの任意の組合せのデバイス。
【0158】
項35A.言語サブサーフェスを露出するためにオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示する手段を更に備える、項31A~34Aの任意の組合せのデバイス。
【0159】
項36A.言語サブサーフェスは、第1の言語サブサーフェスを備え、第1の言語サブサーフェスは、複数の言語サブサーフェスの第2の言語サブサーフェスへの移行を指定し、移行を識別するユーザからの第2のデータに応答して、複数の言語サブサーフェスの第2の言語サブサーフェスを露出し、第2の言語サブサーフェスは、第2の入力を表す第2のデータを入力するためにユーザがやりとりを行うことができる言語の第2の部分を提供する手段を更に備える、項31A~35Aの任意の組合せのデバイス。
【0160】
項37A.移行を識別するデータの入力を促進するオートコンプリート動作を自動的に行うテキスト入力領域を有するインタフェースを提示する手段を更に備える、項36Aのデバイス。
【0161】
項38A.露出された第2の言語サブサーフェスによって提供された言語の第2の部分に一致する第2の入力を表す第2のデータを受信する手段と、言語の第2の部分に関連する第2の複数の意図からユーザの第2の意図を識別するために第2の入力を表す第2のデータを処理する手段と、第2の動作を実行するために、識別された第2の意図に関連する第2の処理を実行する手段と、を更に備える、項36Aのデバイス。
【0162】
項39A.入力を表すデータを処理する手段は、言語に関連する複数のパターンからパターンを識別するために入力を表すデータを処理し、複数のパターンの各々は、複数の意図の互いに異なる意図に関連する手段と、識別されたパターンに基づいて、言語の部分に関連する複数の意図からユーザの意図を識別する手段と、を備える、項31A~38Aの任意の組合せのデバイス。
【0163】
項40A.パターンは、識別子を有し、パターンを識別するために入力を表すデータを処理する手段は、識別子を識別するために入力を表すデータを解析する手段と、識別子に基づいてパターンを識別する手段と、を備える、項39Aのデバイス。
【0164】
項41A.パターンは、識別子と位置エンティティの両方を有し、識別子を識別するために入力を表すデータを解析する手段は、位置エンティティを識別するために入力を表すデータを解析する手段と、識別子及び位置エンティティに基づいてパターンを識別する手段と、を備える、項40Aのデバイス。
【0165】
項42A.パターンは、キーワードを有し、識別子を識別するために入力を表すデータを解析する手段は、キーワードを識別するために入力を表すデータを解析する手段と、キーワードに基づいてパターンを識別する手段と、を備える、項39A~41Aの任意の組合せのデバイス。
【0166】
項43A.パターンは、エンティティを有し、識別子を識別するために入力を表すデータを解析する手段は、入力を表すデータがパターンに対応するがエンティティを有さないことを決定する手段と、入力を表すデータがパターンに対応するがエンティティを有さないことを決定したことに応答して、エンティティを特定する追加入力を表すデータを要求するプロンプトを出力する手段と、を備える、項39A~42Aの任意の組合せのデバイス。
【0167】
項44A.入力を表すデータを受信する手段は、エンティティを特定する追加入力を表すデータを受信する手段を備え、入力を表すデータを処理する手段は、入力を表すデータ及び追加入力を表すデータに基づいて、パターンを識別する手段を更に備える、項43Aのデバイス。
【0168】
項45A.動作の実行の結果を取得する手段と、入力を表すデータを入力するために、結果を、インタフェースを介して、デバイスとやりとりを行うクライアントに供給する手段と、を備える、項31A~44Aの任意の組合せのデバイス。
【0169】
項46A.実行のときに、一つ以上のプロセッサによって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を特定する自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定し、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信し、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理し、動作を実行するために、識別された意図に関連する処理を実行する、命令を格納したコンピュータ可読媒体。
【0170】
項47A.入力を表すデータを処理するように構成されたシステムであって、複数の言語サブサーフェスの階層的配列として、自然言語の文法を明確にする自然言語包含階層を特定する言語サブサーフェスを露出し、言語サブサーフェスの各々は、入力を表すデータを入力するためにユーザがやりとりを行うことができる自然言語に認められる構文規則及び文字列の対応するセットを指定するように構成された一つ以上のプロセッサを備えるホスト装置と、露出した言語サブサーフェスによって提供される言語の部分に一致する入力を表すデータを受信し、入力を表すデータをホスト装置に出力する、ように構成された一つ以上のプロセッサを備えるクライアント装置と、を備え、ホスト装置の一つ以上のプロセッサは、言語の部分に関連する複数の意図からユーザの意図を識別するために入力を表すデータを処理し、動作を実行するために、識別された意図に関連する処理を実行する、ように更に構成された、システム。
【0171】
説明した機能を、ハードウェア、ソフトウェア、ファームウェア又はその組合せで実現してもよい。ソフトウェアで実現する場合、機能を、コンピュータ可読媒体の一つ以上の命令又はコードとして記憶又は送信するとともにハードウェアベースの処理装置によって実行してもよい。コンピュータ可読媒体は、データ記憶媒体のような有形的表現媒体に対応するコンピュータ可読記憶媒体を含んでもよい。データ記憶媒体は、本開示に記載された技術の実現のために命令、コード及び/又はデータ構造を検索する一つ以上のコンピュータ又は一つ以上のプロセッサによってアクセスすることができる任意の利用可能な媒体であってもよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでもよい。
【0172】
同様に、上述した種々の例の各々において、受信装置14が方法を実行してもよい又は実行するように受信装置14を構成した方法の各ステップを実行する手段を備えてもよいことを理解すべきである。一部の例において、手段は、一つ以上のプロセッサを備えてもよい。一部の例において、一つ以上のプロセッサは、非一時的コンピュータ可読記憶媒体に格納された命令によって構成された汎用プロセッサを表してもよい。換言すれば、符号化の例のセットの各々の技術の種々の態様は、実行するときに一つ以上のプロセッサによって実行するように受信装置14を構成した方法を実行する命令を記憶する非一時的コンピュータ可読記憶媒体を提供する。
【0173】
例として、そのような非一時的コンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスク記憶装置、他の磁気ディスク記憶装置、フラッシュメモリ又は命令若しくはデータ構造の形態で所望のプログラムコードを記憶するのに用いることができるとともにコンピュータによってアクセスすることができる他の任意の媒体を含んでもよいが、それに限定されない。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号又は他の一時的媒体を含まず、非一時的な有形的表現媒体を意図する。ここで用いる「ディスク」(disk,disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク(登録商標)及びブルーレイ(登録商標)ディスクを含み、diskは、通常、データを磁気的に再生し、discは、レーザを用いてデータを光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【0174】
命令を、一つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)又は他の等価の集積論理回路若しくは個別の論理回路のような一つ以上のプロセッサによって実行してもよい。したがって、ここで用いる用語「プロセッサ」は、上述した構造又はここで説明する技術の実現に適した他の任意の構造を意味してもよい。追加的には、一部の例において、ここで説明する機能を、符号化及び復号化のために構成された又は組合せのコーデック(combined codec)で組み合わされた専用のハードウェア及び/又はソフトウェアモジュール内に設けてもよい。また、技術を、一つ以上の回路又は論理素子において完全に実現することができる。
【0175】
この開示の技術を、携帯電話、集積回路(IC)又はICのセット(例えば、チップセット)を含む様々な装置又は機器で実現してもよい。開示した技術を実行するように構成された装置の機能的な態様を強調するために種々の構成要素、モジュール又は装置を本開示で説明したが、互いに異なるハードウェア装置による実現を必ずしも必要としない。上述したように、種々の装置を、コーデックハードウェア装置において組み合わせてもよい又は上述した一つ以上のプロセッサを含む相互運用ハードウェア装置と適切なソフトウェア及び/又はファームウェアとの集合によって提供してもよい。
【0176】
技術の種々の態様を説明した。技術のこれらの態様及び他の態様は、特許請求の範囲内にある。
図1
図2
図3A
図3B
図3C
図3D
図3E
図3F
図3G
図3H
図4
図5
図6