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

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

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

特表2023-539232データセットにアクセスするための制約のある自然言語処理を使用する会話構文
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-09-13
(54)【発明の名称】データセットにアクセスするための制約のある自然言語処理を使用する会話構文
(51)【国際特許分類】
   G06F 16/9032 20190101AFI20230906BHJP
【FI】
G06F16/9032
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023513239
(86)(22)【出願日】2021-08-23
(85)【翻訳文提出日】2023-04-21
(86)【国際出願番号】 US2021071254
(87)【国際公開番号】W WO2022047465
(87)【国際公開日】2022-03-03
(31)【優先権主張番号】63/070,074
(32)【優先日】2020-08-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520496268
【氏名又は名称】データチャット.エーアイ
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100153729
【弁理士】
【氏名又は名称】森本 有一
(72)【発明者】
【氏名】ジグネシュ パテル
(72)【発明者】
【氏名】ジュンダ チェン
(72)【発明者】
【氏名】ダイラン ポール ベーコン
(72)【発明者】
【氏名】チアトン リー
(72)【発明者】
【氏名】ウシュマル ラメシュ
(72)【発明者】
【氏名】ロジャーズ ジェフリー レオ ジョン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175GC03
5B175HA04
5B175KA12
(57)【要約】
全体的に、技術は、データセットにアクセスする種々の態様に対して記述されている。データセットを格納するように構成されているメモリと、この技術を実行するように構成できるプロセッサを備えている装置。プロセッサは、自然言語に対する文法を、複数の言語サブサーフェスの階層的配置として定義する自然言語包含階層を特定する言語サブサーフェスを露出できる。プロセッサは、データセットにアクセスするための、露出された言語サブサーフェスにより提供される自然言語の部分に準拠するクエリを受信できる。プロセッサは、クエリを、データセットと関連付けられている正式構文に準拠する1つ以上のステートメントに変換でき、1つ以上のステートメントに基づいて、クエリ結果を取得するためにデータセットにアクセスでき、クエリ結果を出力できる。
【選択図】図6
【特許請求の範囲】
【請求項1】
データセットにアクセスするように構成されている装置であって、
前記データセットを格納するように構成されているメモリと、
1つ以上のプロセッサを備え、前記1つ以上のプロセッサは、
自然言語に対する文法を、複数の言語サブサーフェスの階層的配置として定義する自然言語包含階層を特定する言語サブサーフェスを露出し、
前記データセットにアクセスするための、前記露出された言語サブサーフェスにより提供される前記自然言語の部分に準拠するクエリを受信し、
前記クエリを、前記データセットと関連付けられている正式構文に準拠する1つ以上のステートメントに変換し、
前記1つ以上のステートメントに基づいて、クエリ結果を取得するために前記データセットにアクセスし、
前記クエリ結果を出力するように構成されていることを特徴とする装置。
【請求項2】
前記1つ以上のプロセッサは、
保管すべき前記データセットの1つ以上の次元を識別する前記クエリを受信し、
前記クエリを、前記データセットと関連付けられている前記正式構文に準拠する1つ以上の選択ステートメントに変換し、
前記1つ以上の選択ステートメントに基づいて、前記クエリにより識別される前記データセットの前記1つ以上の次元を含んでいる前記クエリ結果を取得するために前記データセットにアクセスするように構成されていることを特徴とする請求項1の装置。
【請求項3】
前記1つ以上のプロセッサは、
前記データセットにアクセスするための、前記露出された言語サブサーフェスにより提供される前記言語の前記部分に準拠し、前記クエリ結果に存在しない前記データセットにおける次元を識別する追加クエリを受信し、
前記識別された次元は、前記クエリ結果には存在しないと決定し、
前記追加クエリを、前記正式構文に準拠する1つ以上の追加ステートメントに変換し、
前記1つ以上の追加ステートメントに基づいて、および前記識別された次元は前記クエリ結果に存在しないと決定することに応答して、追加クエリ結果を取得するために前記データセットにアクセスし、
前記追加クエリ結果を、前記追加クエリ結果は、前記クエリ結果ではなく前記データセットから取得されたという表示と共に出力するように更に構成されていることを特徴とする請求項1の装置。
【請求項4】
前記データセットは、複数のデータセットのうちの1つのデータセットであり、
前記1つ以上のプロセッサは、
前記クエリは、前記複数のデータセットの複数のデータセットに適用されるかどうかを決定し、
前記クエリは、前記複数のデータセットの前記複数のデータセットに適用されると決定することに応答して、前記クエリは前記複数のデータセットに適用されるという表示を出力するように更に構成されていることを特徴とする請求項1の装置。
【請求項5】
前記クエリは、複数のクエリステートメントを有している多部分クエリを含み、
前記露出された言語サブサーフェスは、前記クエリを定義するときに、前記多部分クエリを形成している前記複数のクエリステートメントが任意の順序で定義可能なように不明瞭さを除去し、
前記1つ以上のプロセッサは、前記多部分クエリを形成するために、前記複数のクエリステートメントが定義される前記順序に無関係に、前記多部分クエリを、前記同じ1つ以上のステートメントに変換するように構成されていることを特徴とする請求項1の装置。
【請求項6】
前記データセットは、複数のデータセットの第1データセットであり、
前記1つ以上のプロセッサは、
前記クエリは、前記複数のデータセットの第2データセットの次元を識別するクエリステートメントを含んでいるかどうかを決定し、
前記クエリは前記第2データセットの次元を識別するクエリステートメントを含んでいると決定することに応答して、結合されたデータセットを取得するために、前記第1データセットと前記第2データセットを自動的に結合し、
前記1つ以上のステートメントに基づいて、前記クエリ結果を取得するために前記結合されたデータセットにアクセスするように更に構成されていることを特徴とする請求項1の装置。
【請求項7】
前記データセットは、複数のデータセットの1つのデータセットであり、
前記1つ以上のプロセッサは、
前記複数のデータセットの1つ以上の次元間の関係を識別し、
前記複数のデータセットの前記1つ以上の次元間の前記関係を例示している図を生成し、
前記図を出力するように更に構成されていることを特徴とする請求項1の装置。
【請求項8】
前記データセットは、複数のデータセットの1つのデータセットであり、
前記1つ以上のプロセッサは、
前記複数のデータセットの1つ以上の次元間の関係を識別し、
前記識別された関係に基づいて、前記複数のデータセットのそれぞれを表しているノードと、前記複数のデータセットの前記1つ以上の次元間の前記関係を表しているエッジを有しているグラフデータ構造体を生成し、
前記クエリに基づいて、前記クエリを満たすための前記グラフデータ構造体を通しての最短経路を識別するために前記グラフデータ構造体を詳細に検討し、
結合されたデータセットを取得するために、前記データセットと、前記最短経路に沿って識別された前記複数のデータセットの1つ以上の追加データセットを自動的に結合し、
前記1つ以上のステートメントに基づいて、前記クエリ結果を取得するために前記結合されたデータセットにアクセスするように更に構成されていることを特徴とする請求項1の装置。
【請求項9】
前記1つ以上のプロセッサは、
前記クエリに基づいて、前記クエリを満たす前記グラフデータ構造体を通しての追加経路を識別するために、前記グラフデータ構造体を詳細に検討し、
前記グラフデータ構造体を通しての前記追加経路を識別する表示を出力するように更に構成されていることを特徴とする請求項8の装置。
【請求項10】
前記表示は、前記グラフデータ構造体を通しての前記追加経路を詳細に検討するという結果になる改良されたクエリに対するリンクであることを特徴とする請求項9の装置。
【請求項11】
前記正式構文は、構造クエリ言語構文またはPandasデータフレーム構文を含んでいることを特徴とする請求項1の装置。
【請求項12】
データセットにアクセスする方法であって、
自然言語に対する文法を、複数の言語サブサーフェスの階層的配置として定義する自然言語包含階層を特定する言語サブサーフェスを露出することと、
前記データセットにアクセスするための、前記露出された言語サブサーフェスにより提供される前記言語の部分に準拠するクエリを受信することと、
前記クエリを、前記データセットと関連付けられている正式構文に準拠する1つ以上のステートメントに変換することと、
前記1つ以上のステートメントに基づいて、クエリ結果を取得するために前記データセットにアクセスすることと、
前記クエリ結果を出力することを有していることを特徴とする方法。
【請求項13】
前記クエリを受信することは、保管すべき前記データセットの1つ以上の次元を識別する前記クエリを受信することを有し、
前記クエリを変換することは、前記クエリを、前記データセットと関連付けられている前記正式構文に準拠する1つ以上の選択ステートメントに変換することを有し、
前記データセットにアクセスすることは、前記1つ以上の選択ステートメントに基づいて、前記クエリにより識別される前記データセットの前記1つ以上の次元を含んでいる前記クエリ結果を取得するために前記データセットにアクセスすることを有していることを特徴とする請求項12の方法。
【請求項14】
前記データセットにアクセスするための、前記露出された言語サブサーフェスにより提供される前記言語の前記部分に準拠し、前記クエリ結果に存在しない前記データセットにおける次元を識別する追加クエリを受信することと、
前記識別された次元は、前記クエリ結果には存在しないと決定することと、
前記追加クエリを、前記正式構文に準拠する1つ以上の追加ステートメントに変換することと、
前記1つ以上の追加ステートメントに基づいて、および前記識別された次元は前記クエリ結果に存在しないと決定することに応答して、追加クエリ結果を取得するために前記データセットにアクセスすることと、
前記追加クエリ結果を、前記追加クエリ結果は、前記クエリ結果ではなく前記データセットから取得されたという表示と共に出力することを更に有していることを特徴とする請求項12の方法。
【請求項15】
前記データセットは、複数のデータセットのうちの1つのデータセットであり、
前記方法は、
前記クエリは、前記複数のデータセットの複数のデータセットに適用されるかどうかを決定することと、
前記クエリは、前記複数のデータセットの前記複数のデータセットに適用されると決定することに応答して、前記クエリは前記複数のデータセットに適用されるという表示を出力することを更に有していることを特徴とする請求項12の方法。
【請求項16】
前記クエリは、複数のクエリステートメントを有している多部分クエリを含み、
前記露出された言語サブサーフェスは、前記クエリを定義するときに、前記多部分クエリを形成している前記複数のクエリステートメントが任意の順序で定義可能なように不明瞭さを除去し、
前記クエリを変換することは、前記多部分クエリを形成するために、前記複数のクエリステートメントが定義される前記順序に無関係に、前記多部分クエリを、前記同じ1つ以上のステートメントに変換することを有していることを特徴とする請求項12の方法。
【請求項17】
前記データセットは、複数のデータセットの第1データセットであり、
前記方法は、
前記クエリは、前記複数のデータセットの第2データセットの次元を識別するクエリステートメントを含んでいるかどうかを決定することと、
前記クエリは前記第2データセットの次元を識別するクエリステートメントを含んでいると決定することに応答して、結合されたデータセットを取得するために、前記第1データセットと前記第2データセットを自動的に結合することと、
前記1つ以上のステートメントに基づいて、前記クエリ結果を取得するために前記結合されたデータセットにアクセスすることを更に有していることを特徴とする請求項12の方法。
【請求項18】
前記データセットは、複数のデータセットの1つのデータセットであり、
前記方法は、
前記複数のデータセットの1つ以上の次元間の関係を識別することと、
前記複数のデータセットの前記1つ以上の次元間の前記関係を例示している図を生成することと、
前記図を出力することを更に有していることを特徴とする請求項12の方法。
【請求項19】
前記データセットは、複数のデータセットの1つのデータセットであり、
前記方法は、
前記複数のデータセットの1つ以上の次元間の関係を識別することと、
前記識別された関係に基づいて、前記複数のデータセットのそれぞれを表しているノードと、前記複数のデータセットの前記1つ以上の次元間の前記関係を表しているエッジを有しているグラフデータ構造体を生成することと、
前記クエリに基づいて、前記クエリを満たすための前記グラフデータ構造体を通しての最短経路を識別するために前記グラフデータ構造体を詳細に検討することと、
結合されたデータセットを取得するために、前記データセットと、前記最短経路に沿って識別された前記複数のデータセットの1つ以上の追加データセットを自動的に結合することと、
前記1つ以上のステートメントに基づいて、前記クエリ結果を取得するために前記結合されたデータセットにアクセスすることを更に有していることを特徴とする請求項12の方法。
【請求項20】
前記クエリに基づいて、前記クエリを満たす前記グラフデータ構造体を通しての追加経路を識別するために、前記グラフデータ構造体を詳細に検討することと、
前記グラフデータ構造体を通しての前記追加経路を識別する表示を出力することを更に有していることを特徴とする請求項19の方法。
【請求項21】
前記表示は、前記グラフデータ構造体を通しての前記追加経路を詳細に検討するという結果になる改良されたクエリに対するリンクであることを特徴とする請求項20の方法。
【請求項22】
前記正式構文は、構造クエリ言語構文またはPandasデータフレーム構文を含んでいることを特徴とする請求項12の方法。
【請求項23】
命令を格納している非一時的コンピュータ読み取り可能格納媒体であって、前記命令は実行されると1つ以上のプロセッサに、
自然言語に対する文法を、複数の言語サブサーフェスの階層的配置として定義する自然言語包含階層を特定する言語サブサーフェスを露出させ、
データセットにアクセスするための、前記露出された言語サブサーフェスにより提供される前記言語の部分に準拠するクエリを受信させ、
前記クエリを、前記データセットと関連付けられている正式構文に準拠する1つ以上のステートメントに変換させ、
前記1つ以上のステートメントに基づいて、クエリ結果を取得するために前記データセットにアクセスさせることを特徴とする非一時的コンピュータ読み取り可能格納媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2020年8月25日に出願された「MACHINE LEARNING MODEL SELECTION AND EXPLANATION FOR MULTI-DIMENSIONAL DATASETS AND CONVERSATIONAL SYNTAX USING CONSTRAINED NATURAL LANGUAGE PROCESSING FOR ACCESSING DATASETS(機械学習モデル選択と多次元データセットに対する説明およびデータセットにアクセスするための制約のある自然言語処理を使用する会話構文)」というタイトルの米国暫定出願第63/070,074の優先権を主張するものであり、その内容はここにおいて参照によりその全体が提示されたものとして組み込まれる。
【0002】
本開示は、演算およびデータ解析システムに関し、より具体的には、自然言語処理を使用するシステムに関する。
【背景技術】
【0003】
自然言語処理とは、一般的には、人間の言語を使用する会話相互作用を介してユーザにより提供されるユーザ入力を演算装置が処理する技術分野のことである。例えば、装置は、ユーザに種々の入力を促し、明確にする質問を提示し、後続の質問を提示し、または、入力を引き出すために、会話の方法でユーザと相互作用できる。ユーザは同様に、入力を文章または文章の一部として入力でき、それにより、装置により実行される1つ以上の意図(「タスク」と称することもできる)を特定するために装置とのシミュレートされたダイアログを確立できる。
【0004】
このプロセスの間、装置は、会話を提示するための種々のインタフェースを提示できる。例としてのインタフェースは、いわゆる「チャットボット」として動作でき、より会話的なトーンを確立するための努力において、個性、音声、嗜好、ユーモアなどを含む人間の性質を模倣する試みを実行するようにしばしば構成されており、それにより、より自然に入力を受信するためのユーザとの相互作用を促進できる。チャットボットの例としては、「デジタルアシスタント」(「仮想アシスタント」とも称することができる)が含まれ、それは、(会うことの予定を立てる、ホテルの予約をする、および食物の配達を予定するなどのような)支援専用のタスクのセットに注目したチャットボットのサブセットである。
【0005】
入力を構文解析して意図を識別するために利用される、多数の異なる自然言語処理アルゴリズムがあり、そのうちの幾つかは、機械学習に依存している。しかし、自然言語は、正確な形式に従わないことがよくあり、種々のユーザは、同じ一般的な意図という結果になる入力を表現するわずかに異なる方法を有している可能性があり、その結果、機械学習に依存するものも含めて、多くの自然言語アルゴリズムが特定的に対処することをプログラムされて(または、機械言語の状況においては訓練されて)いない、いわゆる「エッジケース」という結果になる。
【発明の概要】
【0006】
一般的に、本開示は、言語サブサーフェスを制約のある方法で露出し、それにより不明瞭さを除去し、および発見可能性を支援する、制約のある自然言語処理(CNLP)のための技術を記述している。一般的には、自然言語サーフェスとは、潜在的ユーザ入力の許可されたセット(例えば、発話)のことであり、つまり、自然言語処理システムが正しく処理できる発話のセットのことである。
【0007】
CNLPを使用して、二次元以上(例えば、行および/または列)を有する多次元データセットを含むデータセットにアクセスするための技術の種々の態様が記述される。ユーザが、シーケンシャルクエリ言語、つまりSQL、Pandas、および他のデータベースプログラミング言語などのような正式データベースにより採用されている正式(そして、しばしば厳格な)構文を理解することを要求するのではなく、技術の種々の態様は、より正式ではなく、より会話的なクエリを受信でき、ある必要条件を満たすデータをデータセットから取り出すために処理できるインタフェースを装置が提供することを可能にできる。装置は、正式ではない、より会話的クエリを、データセットと関連付けられている正式構文に従う正式ステートメントに変換できる。
【0008】
データセットへのそのようなアクセスを容易にすることは、ユーザが、関連する(クエリに対する関連性という点において)データを取り出すために使用される装置をより効率的に操作することを可能にできる。効率性は、装置がクエリ結果を、平易言語におけるクエリ結果の説明を含む結果に拡張または変換できるので、クエリ結果における十分な信頼性を保証しながら、試行錯誤のアプローチにおいて追加コマンドと動作を処理する必要がないことの結果として起こり得る。
【0009】
そのような変換の結果として、データセットにアクセスする試みがより少なくなるので、装置は、より効率的に動作できる。つまり、装置は、データセットに首尾よくアクセスして結果を提供するためのクエリを、より少なく受信することが可能であり、それは潜在的に、プロセッササイクル、メモリ、メモリ帯域幅などのようなリソースの消費がより少なくなり、それにより、より少ない電力消費という結果になることを可能にできる。
【0010】
更に装置は、データセットに格納されている多次元データセットの1つ以上の次元(例えば、選択された行または列)の、機械学習モデル(MLM)により出力される変換されたクエリに応答して提供されるクエリ結果との相関関係を決定できる。装置は、クエリに応答して、結果を取得するためにデータセットにアクセスすることに起因するクエリ結果を解析する複数のMLMを呼び出すことができる。決定された相関関係に基づいて、装置は、結果を取得するためにMLMの1つ以上を選択できる(例えば、閾値相関関係よりも高い決定された相関関係を有しているMLMを、結果の1つ以上のソースとして選択する)。装置は、結果を出力できるMLMの1つ以上のそれぞれに対する結果を出力できる。
【0011】
装置は、文章の生成および/または決定を容易にするために決定された相関関係を利用して、MLMの1つ以上がなぜ選択されたかを説明する平易言語の文章を決定できる。装置は、結果の一部として、MLMの1つ以上がなぜ選択されたかを説明する文章を含むことができ、それにより、ユーザが結果をより良好に信頼することを可能にすることができる。そのような信頼は、ユーザが経験豊富なデータ科学者であっても、新しいユーザであっても、ユーザが装置との相互作用の数を削減できるように、結果における信頼性を得ることを可能にできる。
【0012】
そしてまた、そのような説明の結果として、データセットにアクセスする試みがより少なくなるので、装置は、より効率的に動作できる。つまり、装置は、データセットに首尾よくアクセスして結果を提供するためのクエリを、より少なく受信することが可能であり、そしてまた、それは潜在的に、プロセッササイクル、メモリ、メモリ帯域幅などのようなリソースの消費がより少なくなり、それにより、より少ない電力消費という結果になることを可能にできる。
【0013】
1つの例においては、技術の種々の態様は、多次元データセットを解釈するように構成されている装置に向けられており、装置は、多次元データセットを格納するように構成されているメモリと、1つ以上のプロセッサを備え、この1つ以上のプロセッサは、複数の機械学習モデルのそれぞれにより出力される結果を取得するために、この複数の機械学習モデルを多次元データセットに適用し、多次元データセットの1つ以上の次元の、複数の機械学習モデルのそれぞれにより出力される結果との相関関係を決定し、1つ以上の次元と、複数の機械学習モデルのそれぞれにより出力される結果との間で決定された相関関係に基づいて、複数の機械学習モデルのサブセットのそれぞれに対する結果を取得するために、複数の機械学習モデルのサブセットを選択し、複数の機械学習モデルのサブセットのそれぞれに対する結果を出力するように構成されている。
【0014】
他の例においては、技術の種々の態様は、多次元データセットを解釈する方法に向けられており、方法は、複数の機械学習モデルのそれぞれにより出力される結果を取得するために、この複数の機械学習モデルを多次元データセットに適用することと、多次元データセットの1つ以上の次元の、複数の機械学習モデルのそれぞれにより出力される結果との相関関係を決定することと、1つ以上の次元と、複数の機械学習モデルのそれぞれにより出力される結果との間で決定された相関関係に基づいて、複数の機械学習モデルのサブセットのそれぞれに対する結果を取得するために、複数の機械学習モデルのサブセットを選択することと、複数の機械学習モデルのサブセットのそれぞれに対する結果を出力することを備えている。
【0015】
他の例においては、技術の種々の態様は、命令を格納している非一時的コンピュータ読み取り可能格納媒に向けられており、この命令は実行されると1つ以上のプロセッサに、複数の機械学習モデルのそれぞれにより出力される結果を取得するために、この複数の機械学習モデルを多次元データセットに適用させ、多次元データセットの1つ以上の次元の、複数の機械学習モデルのそれぞれにより出力される結果との相関関係を決定させ、1つ以上の次元と、複数の機械学習モデルのそれぞれにより出力される結果との間で決定された相関関係に基づいて、複数の機械学習モデルのサブセットのそれぞれに対する結果を取得するために、複数の機械学習モデルのサブセットを選択させ、複数の機械学習モデルのサブセットのそれぞれに対する結果を出力させる。
【0016】
他の例においては、技術の種々の態様は、データセットにアクセスするように構成されている装置に向けられており、装置は、データセットを格納するように構成されているメモリと、1つ以上のプロセッサを備え、この1つ以上のプロセッサは、自然言語に対する文法を、複数の言語サブサーフェスの階層的配置として定義する自然言語包含階層を特定する言語サブサーフェスを露出し、露出された言語サブサーフェスにより提供される自然言語の部分に準拠する、データセットにアクセスするためのクエリを受信し、クエリを、データセットと関連付けられている正式構文に準拠する1つ以上のステートメントに変換し、1つ以上のステートメントに基づいて、クエリ結果を取得するためにデータセットにアクセスし、クエリ結果を出力するように構成されている。
【0017】
他の例においては、技術の種々の態様は、データセットにアクセスする方法に向けられており、方法は、自然言語に対する文法を、複数の言語サブサーフェスの階層的配置として定義する自然言語包含階層を特定する言語サブサーフェスを露出することと、露出された言語サブサーフェスにより提供される自然言語の部分に準拠する、データセットにアクセスするためのクエリを受信することと、クエリを、データセットと関連付けられている正式構文に準拠する1つ以上のステートメントに変換することと、1つ以上のステートメントに基づいて、クエリ結果を取得するためにデータセットにアクセスすることと、クエリ結果を出力することを備えている。
【0018】
他の例においては、技術の種々の態様は、命令を格納している非一時的コンピュータ読み取り可能格納媒に向けられており、この命令は実行されると1つ以上のプロセッサに、自然言語に対する文法を、複数の言語サブサーフェスの階層的配置として定義する自然言語包含階層を特定する言語サブサーフェスを露出させ、露出された言語サブサーフェスにより提供される自然言語の部分に準拠する、データセットにアクセスするためのクエリを受信させ、クエリを、データセットと関連付けられている正式構文に準拠する1つ以上のステートメントに変換させ、1つ以上のステートメントに基づいて、クエリ結果を取得するためにデータセットにアクセスさせ、クエリ結果を出力させる。
【0019】
技術の1つ以上の態様の詳細は、付随する図と下記の記述において記述されている。これらの技術の他の特徴、目的、および利点は、記述、図、および特許請求の範囲から明白になるであろう。
【図面の簡単な説明】
【0020】
図1図1は、本開示において記述されている技術の種々の態様を実行できるシステムを例示しているブロック図である。
【0021】
図2A図2Aは、ホスト装置の実行プラットフォームにより実行される多数の異なるアプリケーションを含んでいる、図1において示されているホスト装置のインタフェースユニットにより提示される例としてのインタフェースを示している図である。
図2B図2Bは、ホスト装置の実行プラットフォームにより実行される多数の異なるアプリケーションを含んでいる、図1において示されているホスト装置のインタフェースユニットにより提示される例としてのインタフェースを示している図である。
図2C図2Cは、ホスト装置の実行プラットフォームにより実行される多数の異なるアプリケーションを含んでいる、図1において示されているホスト装置のインタフェースユニットにより提示される例としてのインタフェースを示している図である。
図2D図2Dは、ホスト装置の実行プラットフォームにより実行される多数の異なるアプリケーションを含んでいる、図1において示されているホスト装置のインタフェースユニットにより提示される例としてのインタフェースを示している図である。
図2E図2Eは、ホスト装置の実行プラットフォームにより実行される多数の異なるアプリケーションを含んでいる、図1において示されているホスト装置のインタフェースユニットにより提示される例としてのインタフェースを示している図である。
図2F図2Fは、ホスト装置の実行プラットフォームにより実行される多数の異なるアプリケーションを含んでいる、図1において示されているホスト装置のインタフェースユニットにより提示される例としてのインタフェースを示している図である。
図2G図2Gは、ホスト装置の実行プラットフォームにより実行される多数の異なるアプリケーションを含んでいる、図1において示されているホスト装置のインタフェースユニットにより提示される例としてのインタフェースを示している図である。
図2H図2Hは、ホスト装置の実行プラットフォームにより実行される多数の異なるアプリケーションを含んでいる、図1において示されているホスト装置のインタフェースユニットにより提示される例としてのインタフェースを示している図である。
図2I図2Iは、ホスト装置の実行プラットフォームにより実行される多数の異なるアプリケーションを含んでいる、図1において示されているホスト装置のインタフェースユニットにより提示される例としてのインタフェースを示している図である。
【0022】
図3A図3Aは、本開示において記述されているCNLP技術の種々の態様に従う、図2において示されているセールスマネージャ生産性アプリケーションを介するセールスマネージャ生産性解析を容易にする、図1において示されているホスト装置のインタフェースユニットにより提示されるインタフェースを例示している図である。
図3B図3Bは、本開示において記述されているCNLP技術の種々の態様に従う、図2において示されているセールスマネージャ生産性アプリケーションを介するセールスマネージャ生産性解析を容易にする、図1において示されているホスト装置のインタフェースユニットにより提示されるインタフェースを例示している図である。
図3C図3Cは、本開示において記述されているCNLP技術の種々の態様に従う、図2において示されているセールスマネージャ生産性アプリケーションを介するセールスマネージャ生産性解析を容易にする、図1において示されているホスト装置のインタフェースユニットにより提示されるインタフェースを例示している図である。
図3D図3Dは、本開示において記述されているCNLP技術の種々の態様に従う、図2において示されているセールスマネージャ生産性アプリケーションを介するセールスマネージャ生産性解析を容易にする、図1において示されているホスト装置のインタフェースユニットにより提示されるインタフェースを例示している図である。
図3E図3Eは、本開示において記述されているCNLP技術の種々の態様に従う、図2において示されているセールスマネージャ生産性アプリケーションを介するセールスマネージャ生産性解析を容易にする、図1において示されているホスト装置のインタフェースユニットにより提示されるインタフェースを例示している図である。
図3F図3Fは、本開示において記述されているCNLP技術の種々の態様に従う、図2において示されているセールスマネージャ生産性アプリケーションを介するセールスマネージャ生産性解析を容易にする、図1において示されているホスト装置のインタフェースユニットにより提示されるインタフェースを例示している図である。
図3G図3Gは、本開示において記述されているCNLP技術の種々の態様に従う、図2において示されているセールスマネージャ生産性アプリケーションを介するセールスマネージャ生産性解析を容易にする、図1において示されているホスト装置のインタフェースユニットにより提示されるインタフェースを例示している図である。
【0023】
図4図4は、本開示において記述されている技術の種々の態様に従う、図1の例において示されている言語サーフェスを表すために使用されるデータ構造体を例示しているブロック図である。
【0024】
図5図5は、図1の例において示されている装置の例としての構成要素を示しているブロック図である。
【0025】
図6図6は、本開示において記述されている技術の種々の態様を実行するときの、図1のホスト装置の例としての動作を示しているフローチャートである。
【0026】
図7図7は、本開示において記述されている技術の追加態様を実行するときの、図1のホスト装置の例としての動作を示している他のフローチャートである。
【発明を実施するための形態】
【0027】
図1は、制約のある自然言語処理(CNLP)のための、本開示において記述されている技術の種々の態様を実行できるシステム10を例示している図である。図1の例において示されているように、システム10は、ホスト装置12とクライアント装置14を含んでいる。2つの装置、つまり、図1の例におけるホスト装置12とクライアント装置14を含んでいるものとして示されているが、システム10は、ホスト装置12とクライアント装置14の両者に関して下記に記述されている機能を組み込んでいる単一の装置を含むことができ、または、ホスト装置12の1つ以上によりホスト(管理および格納)される相互データベースを共有する1つ以上のホスト装置12とそれぞれがインタフェースを取る複数のクライアント装置14を含むことができる。
【0028】
ホスト装置12は、本開示において記述されている技術を実現できる演算装置の任意の形状を表すことができ、幾つかの例を挙げれば、ハンドセット(または、セルラーフォン)、タブレットコンピュータ、いわゆるスマートフォン、デスクトップコンピュータ、およびラップトップコンピュータが含まれる。同様に、クライアント装置14は、本開示において記述されている技術を実現できる演算装置の任意の形状を表すことができ、幾つかの例を挙げれば、ハンドセット(または、セルラーフォン)、タブレットコンピュータ、いわゆるスマートフォン、デスクトップコンピュータ、ラップトップコンピュータ、いわゆるスマートスピーカ、いわゆるスマートヘッドフォン、およびいわゆるスマートテレビジョンが含まれる。
【0029】
図1の例において示されているように、ホスト装置12は、サーバ28、CNLPユニット22、1つ以上の実行プラットフォーム24、およびデータベース26を含んでいる。サーバ28は、CNLPユニット22と実行プラットフォーム24との間のデータの経路決めを調整すると共に、会話文脈を維持するように構成されているユニットを表すことができる。
【0030】
サーバ28はインタフェースユニット20を含むことができ、インタフェースユニット20は、入力を示しているデータ19を引き出す、および/または結果25を提示するために、ホスト装置12が1つ以上のインタフェース21をクライアント装置14に提示できるユニットを表すことができる。データ19は、音声入力、テキスト入力、画像入力(例えば、テキストを表している、または、テキストに変換できる)、または、ホスト装置12とのダイアログを促進できる任意の他のタイプの入力を示すことができる。インタフェースユニット20は、グラフィカルユーザインタフェース(GUI)、コマンドラインインタフェース(CLI)、または、ユーザ16にデータを提示、またはデータを提供するための任意の他のインタフェースを含む種々のインタフェース21を生成、または出力できる。インタフェースユニット20は、1つの例として、ユーザ16が、入力を示すデータ19(つまり、チャットサーバの例の状況においてはテキスト入力)を入力するために相互作用できるGUIの形状のチャットインタフェース21を出力できる。サーバ28は、データ19をCNLPユニット22に出力できる(または、CNLPユニット22を呼び出して、その呼び出しを介してデータ19を渡すことができる)。
【0031】
CNLPユニット22は、本開示において記述されているようなCNLP技術の種々の態様を実行するように構成されているユニットを表すことができる。CNLPユニット22は、多数の相互接続されている言語サブサーフェス(「SS」と示されている)18A~18G(「SS18」)を維持できる。言語サブサーフェス18はまとめて1つの言語を表すことができ、一方、言語サブサーフェス18のそれぞれは、その言語の一部(異なる部分であってもよく、または重なっている部分であってもよい)を提供できる。それぞれの部分は、ユーザ16が、入力を示しているデータ19を入力するためにインタフェースを取ることができる、自然言語に対して許可されている構文規則と文字列の対応するセットを特定できる。CNLPユニット22は、下記により詳細に記述されるように、1つ以上の意図23を識別するために、言語サブサーフェス18とデータ19に基づいてCNLPを実行できる。CNLPユニット22は意図23をサーバ28に出力でき、その結果、サーバ28は、意図23と関連付けられている実行プラットフォーム24の1つを呼び出すことができ、意図23を、更なる処理のために、実行プラットフォーム24の1つに渡すことができる。
【0032】
実行プラットフォーム24は、識別された意図23と関連付けられている種々のプロセスを実行するように構成されている1つ以上のプラットフォームを表すことができる。プロセスはそれぞれ、図1の例においては、データベース26に関する動作の異なるセットを実行できる。幾つかの例においては、実行プラットフォーム24はそれぞれ、セールスデータ解析、健康データ解析、またはローンデータ解析、機械学習の異なる形状などを含むデータ解析の異なるカテゴリなどのような、異なるカテゴリに対応するプロセスを含むことができる。幾つかの例においては、実行プラットフォーム24は、データベース26に格納されているデータの種々の異なる組み合わせが、複雑な処理およびチャート、グラフなどを介する表示を経ることを可能にする一般的なデータ解析を実行できる。実行プラットフォーム24は、実行プラットフォーム24がサーバ28に返すことができる結果25を取得するために意図23を処理できる。インタフェースユニット20は、結果25を提示するGUI21を生成でき、GUI21をクライアント装置14に送信できる。
【0033】
この点に関して、実行プラットフォーム24は一般的には、データベース26に格納されている基礎となるデータの解析を実行するためのアプリケーションをサポートする異なるプラットフォームを表すことができ、プラットフォームは、データの進化する収集および解析に対応するために、または、他のタスク/意図を実行するために拡張可能なアプリケーション開発を提供できる。例えば、実行プラットフォーム24は、そのようなプラットフォームを、Postgres(PostgresSQLと称することもでき、データのロードと操作を実行するリレーショナルデータベースを表している)、TensorFlowTM(特殊化されている機械学習エンジンにおいて機械学習を実行できる)、およびAmazon Web Service(またはAWS、複数の機械を利用することもしばしばあり、一般的にはクラウドと称される、大規模データ解析タスクを実行する)として含むことができる。
【0034】
クライアント装置14はクライアント30(チャットボットインタフェースの状況においては「チャットクライアント30」と称することができる)を含むことができる。クライアント30は、インタフェース21を提示し、データ19の入力を可能にするように構成されているユニットを表すことができる。クライアント30は、専用第三者アプリケーションとして、当事者アプリケーションとして、または、クライアント装置14のオペレーティングシステムの統合された構成要素(図1においては示されていない)として、ブラウザの状況内で実行できる。
【0035】
自然言語処理に戻ると、CNLPユニット22は、自然言語処理の他の形状と比較して、自然言語処理のバランスの取れた形状を実行できる。自然言語処理とは、クライアント装置14との会話相互作用を介して提供される入力(「入力19」とも称することができ、または、言い換えると、説明を容易にする目的のための「クエリ19」とも称することができる)を示すデータ19をホスト装置12が処理することを試みるプロセスのことを指すことができる。ホスト装置12は、ユーザ16に種々の入力19を動的に促すことができ、明確にする質問を提示でき、後続の質問を提示でき、または、入力19を取り出すために会話の方法でユーザと相互作用できる。ユーザ16は同様に、入力19を文章または文章の一部として入力でき、それにより、1つ以上の意図23(「タスク23」とも称することができる)を識別するために、ホスト装置12とのシミュレートされたダイアログを確立できる。
【0036】
ホスト装置12は、会話を提示するための種々のインタフェース21を提示できる。例としてのインタフェースは、いわゆる「チャットボット」として動作でき、より会話的なトーンを確立するための努力において、個性、音声、嗜好、ユーモアなどを含む人間の性質を模倣する試みを実行でき、それにより、より自然に入力を受信するためのユーザとの相互作用を促進できる。チャットボットの例としては、「デジタルアシスタント」(「仮想アシスタント」とも称することができる)が含まれ、それは、(会うことの予定を立てる、ホテルの予約をする、および食物の配達を予定するなどのような)支援専用のタスクのセットに注目したチャットボットのサブセットである。
【0037】
多数の異なる自然言語処理アルゴリズムが、入力19を構文解析して意図23を識別するために存在し、そのうちの幾つかは、機械学習に依存している。しかし、自然言語は、常に正確な形式に従うことができるわけではなく、種々のユーザは、同じ一般的な意図23という結果になる入力19を表現するわずかに異なる方法を有している可能性があり、その中には、機械学習に依存するものも含めて、多くの自然言語アルゴリズムがそのようなエッジケースに特定的に対処することをプログラムされて(または、機械言語の状況においては訓練されて)いない、いわゆる「エッジケース」という結果になり得るものもある。機械学習に基づく自然言語処理は、予測可能性や正確さよりも自然さを重視する可能性があり、それにより、言語の訓練された自然さが、ユーザにより知覚される言語の自然さと異なるときは、エッジケースにより多く遭遇することになる。そのようなエッジケースは、システムにより理解および処理は不可能と識別されて報告されることもあり得、ユーザを失望させ得る。一方、システムが、ユーザの意図を不正確に理解して作業を続け、望ましくない、または誤っている可能性のある行動または結果を引き起こすということもあり得る。
【0038】
入力19を構文解析して意図23を識別するために利用される他のタイプの自然言語処理アルゴリズムは、キーワードに頼る可能性がある。キーワードに基づく自然言語処理アルゴリズムが精度がよく、予測可能であっても、キーワードに基づく自然言語処理アルゴリズムは、キーワードが異なる意図23を記述することにおいてニュアンスがある場合、そのニュアンスをあまり提供しないという点において正確ではない。
【0039】
言い換えると、種々の自然言語処理アルゴリズムは、2つのクラスに分類される。第1のクラスにおいては、自然言語処理に対する機械学習に基づくアルゴリズムは、ディープニューラルネットワークおよびサポートベクトルマシンなどのような統計的機械学習プロセスに頼る。これらの機械学習プロセスの両者は、ユーザの発話におけるニュアンスを区別する能力が限られている可能性がある。更に、機械学習に基づくアルゴリズムは、同じ意図に対して、広く多様な自然に聞こえる発話を可能にするが、そのような機械学習に基づくアルゴリズムは、予測不能な場合がよくあり得、開発者およびユーザが理解するのが困難なように、連続するバージョンにおいて同じ発話を異なるように構文解析してしまう可能性がある。第2のクラスにおいては、自然言語処理に対する単純なキーワードに基づくアルゴリズムは、ユーザの発話を、キーワードの予め定義されているセットに対して一致させることができ、関連付けられている意図を取り出せる。
【0040】
CNLPユニット22は、入力19(1つの例として、「発話」と称することもできる自然言語によるステートメントを含むことができる)を、精度、正確さ、および予測可能性の間のバランスを取るように構文解析できる。CNLPユニット22は、基礎となる言語サーフェスを実現するときの種々の設計決定を通してそのバランスを達成できる(これは、サブサーフェス18を収集したもの、または「言語」に言及する他の方法である)。言語サーフェス18は、サーバ28が、ユーザ16の意図を構文解析できる(または、より擬人化すれば、「理解できる」)潜在的ユーザ発話のセットを表すことができる。
【0041】
設計決定は、精度(例えば、サーバ28はどの程度の頻度で発話を正しく解釈できるか)、正確さ(例えば、ユーザ16の意図を表現することにおいて、発話にはどのようなニュアンスの差があり得るのか)、および自然さ(例えば、ユーザ16の同じ意図に対応する発話の種々の構文解析はどの程度多様であり得るか)を含む、競合する優先度の間のトレードオフを取り決めることができる。CNLP技術は、CNLPユニット22が、入力19(「発話19」と記述することもできる)を明確に構文解析することを可能にでき、それにより、正確な(制約はあるが)自然言語発話19の予測可能な精度のよい構文解析を潜在的に保証できる。
【0042】
動作においては、CNLPユニット22は、制約のある方法で、言語サブサーフェスの1つの選択を最初のユーザ(ユーザ16を例示の目的で仮定することができる)に露出でき、潜在的には、言語サブサーフェス18の1つの選択を露出できるのみである。CNLPユニット22は、インタフェースユニット20を介して、露出された言語サブサーフェスにより提供される言語の部分に準拠する入力19を受信でき、その言語と関連付けられている複数の意図23からユーザ16の意図23を識別するために入力19を処理できる。つまり、サーバ28をサポートすることにおいてCNLPユニット22を設計するときに、設計者は、サーバ28がサポートする(CNLPユニット22を介して、入力19の構文解析をサポートするという点で)意図23のセットを選択できる。
【0043】
更に、CNLPユニット22は、1つ以上のエンティティをサポートすることにより、意図23のそれぞれに関して正確さを随意的に増大させることができる。例を挙げると、会うことの予定を立てる意図と関連付けられている時間および/または場所、会うことの予定を立てる意図のそれぞれの反復(もしあれば)の頻度、および、会うことの予定を立てる意図に対する他の参加者(もしいれば)などのようなエンティティを有することができる会うことの予定を立てることの意図を考えてみる。CNLPユニット22は、発話19が、意図23のセットのある1つに属していることを識別するために構文解析のプロセスを実行でき、その後に、発話19において発生していた可能性のある如何なるエンティティも抽出できる。
【0044】
CNLPユニット22は、言語18により提供される意図23のそれぞれを、1つ以上のパターンと関連付けることができる。CNLPユニット22によりサポートされる各パターンは、下記の構成要素の1つ以上を含むことができる。
a)この意図に属しているとして構文解析される発話において存在できる識別子の非空セット。各識別子は、その存在が、識別子の存在と同等に取り扱われる1つ以上の同義語と関連付けることができる。
b)CNLPユニット22が、識別子に対して、発話において場所エンティティがどこで起こるかに基づいて構文解析できる場所エンティティのオプションセット。
c)それぞれが、キーワード(およびその同義語の可能性もある)と関連付けられているキーワードエンティティのオプションセット。これらのキーワードエンティティは、互いに対して、発話において何れの場所においても起こり得、それらの場所の代わりに、キーワードエンティティを、発話における近くの(前または後の)関連付けられているキーワードの発生に基づいて構文解析できる。
d)それぞれが、1つ以上の前置詞(「それぞれに対して」などのような用語も含むことができる)と関連付けられている前置詞フレーズエンティティのオプションセット。これらの前置詞フレーズエンティティは、対応する前置詞フレーズの発生に基づいて構文解析できる。
e)「その」や「ある」などのような、自然言語において普通に発生し、または、発話の解釈に対しては有用性がほとんどない語句を指すことができる、無視される語句のセット。
f)各エンティティと随意的に関連付けられ、CNLPユニット22がユーザ16に問い合わせるために、および値が発話から構文解析できないときに、エンティティに対する値を取り出すために使用できるステートメントと共に、エンティティの記述の両者を提供するプロンプト。および
g)識別子とエンティティがパターンにおいて発生し得る相対的順序を記述するパターンステートメント。
【0045】
例として、会うことの予定を立てるために、CNLPユニット22は下記のようにパターンを定義できるということを考えてみる。識別子は「予定を立てる」と「会うこと」であってよく、「会うこと」という語句は、「会う約束」という同義語を有することができる。CNLPユニット22は、「毎日会うことの予定を立てる」または「毎週会う約束の予定を立てる」の形状で起こる入力19から、会うことの頻度を前置詞エンティティとして取り込むことができる。そのようなステートメントは、その代わりに、「毎日の頻度で会うことの予定を立てる」または、「毎週の頻度で会う約束の予定を立てる」などにおけるように、キーワードエンティティ(キーワード「頻度」を有する)として取り込むことができる。CNLPユニット22は、「私は、午後5時にその会うことを予定したい」または「正午にある会う約束を予定したい」などにおけるように、前置詞(日本語では助詞)「に」を使用してタイミングを構文解析するために前置詞フレーズを使用できる。
【0046】
上記の例は、「ある」、「その」、「私」、「したい」などを含む、構文解析するときに無視するようにCNLPユニット22をプログラムできる多数の語句を含んでいる。タイミングエンティティはまた、「あなたは何時にその会うことを予定したいですか?」などのようなプロンプトを含むことができ、サーバ28は、発話19においてタイミングを指定していないか場合は、ユーザ16に尋ねるクエリを開始できる。パターンステートメントは、このパターンは、すべての他のエンティティ共に、識別子「予定を立てる」が「会うこと」(または、その同義語「会う約束」)の前に発生することを要求していることを記述できる。
【0047】
そのため、CNLPユニット22は、言語18と関連付けられている複数のパターンからあるパターンを識別するために入力19を処理でき、複数のパターンのそれぞれは、複数の意図23の異なる1つと関連付けられている。そして、CNLPユニット22は、識別されたパターンに基づいて、言語の部分と関連付けられている複数の意図からユーザ16の意図23を識別できる。
【0048】
パターンは、上述したように、識別子を含むことができる。パターンを識別するために、CNLPユニット22は、識別子を識別するために入力19を構文解析でき、そして、識別子に基づいてパターンを識別できる。パターンは、識別子と場所エンティティの両者を含むことができる。これらの例においては、CNLPユニット22は、場所エンティティを識別するために入力19を構文解析でき、そして、識別子と場所エンティティに基づいてパターンを識別できる。
【0049】
追加的に、パターンは、上述したように、キーワードを含むことができる。CNLPユニット22は、キーワードを識別するために入力19を構文解析でき、そして、キーワードに基づいて、下記の例において示されている方法でパターンを識別できる。
【0050】
パターンは、上述したように、エンティティを含むことができる。パターンがエンティティを含むときは、CNLPユニット22は、入力19はパターンに対応するが、エンティティを含んでいないと決定できる。CNLPユニット22は、入力19はパターンに対応するが、エンティティを含んでいないという決定に基づいて、エンティティを特定する追加入力を示すデータを要求するプロンプトをインタフェース21を介して出力するためにインタフェースユニット22とのインタフェースを取ることができる。ユーザ16は、エンティティを特定する追加入力(表現の容易さのために「追加入力19」と記述できる)を示すデータ19を入力できる。インタフェースユニット22は、追加入力19を受信でき、追加入力19をCNLPユニット22に渡すことができ、CNLPユニット22は、入力19と追加入力19に基づいてパターンを識別できる。
【0051】
CNLPユニット22は、異なる意図23を識別するために、パターン構文解析プログラムを実行するためのプラットフォームを提供できる。CNLPユニット22により提供されるプラットフォームは、パターン構文解析プログラムの開発、改良、追加、または除去を可能にするように拡張可能である。CNLPユニット22は、種々のエンティティを抽出するために、パターン構文解析プログラムに埋め込まれているエンティティ構文解析プログラムを利用できる。種々のエンティティが入力19において特定されないときは、CNLPユニット22は、これもまたパターン構文解析プログラムに埋め込まれているプロンプトを呼び出すことができる。CNLPユニット22は、プロンプトを出力することに応答して、特定されていないエンティティを特定する追加入力19を受信でき、それにより、意図23と関連付けられている可能性のあるパターンを識別するために入力19を構文解析できる。
【0052】
このようにして、CNLPユニット22は、意図23を識別するために種々の入力19を構文解析できる。CNLPユニット22は、意図23をサーバ28に提供でき、サーバ28は、実行プラットフォーム24の1つ以上を呼び出すことができ、意図23を、パターンおよび関連付けられているエンティティ、キーワードなどの形状において実行プラットフォーム24に渡すことができる。実行プラットフォーム24の呼び出された1つは、データベース26の対応する1つに関して動作を実行するために、意図23と関連付けられているプロセスを実行でき、それにより、結果25を取得できる。実行プラットフォーム24の呼び出された1つは、(動作を実行した)結果25をサーバ28に提供でき、サーバ28は結果25を、インタフェース21を介して、入力19を入力するためにホスト装置12とのインタフェースを取るクライアント装置14に提供できる。
【0053】
各パターンとの関連付けは、パターンは、現在のユーザセッションにおける時点でユーザに露出されるべきかどうかを識別できる機能(つまり、手順)であってよい。例えば、「バブル_チャート_作成」パターンを、ユーザにより以前にロードされた少なくとも1つのデータセットがあるかどうかを決定する手順と関連付けることができる(可能性としては、「ファイル_から_データを_ロード」パターン、または、同様に作用するが、データを、ファイルの代わりにデータベースからロードする「データベース_から_データを_ロード」パターンを使用して)。そのような手順が、システムにおけるすべてのデータ視覚化パターンと関連付けられると(「ヒストグラム_作成」および「線_チャート_作成」などのように)、データ視覚化パターンは、言語サブサーフェスを形成するとしてコンセプト化できる。
【0054】
これらのパターンは、データローディングパターン(他の言語サブサーフェスを形成する)の1つを使用するときに露出されるだけなので、CNLPユニット22は、言語サブサーフェスを互いに効果的にリンクできる。ユーザは、上記の必要条件が満たされた後にデータ視覚化言語サブサーフェスに属する発話を実行できるだけなので、ユーザには、関心のあるタスクを実行するときの、いわゆる「思考プロセス」に関する構造体が提供され、ユーザが、少しずつ進む方法で、システムの機能を(自然に)発見することを可能にし、発見プロセスの間の認識オーバーヘッドを削減できる。
【0055】
そのためCNLPユニット22は、いわゆる「デジタルアシスタント」または「チャットボット」などのような自然言語インタフェースに従ってユーザ16とのインタフェースを取るホスト装置12のより良好な動作を促進できる。複数の異なる意味が構文解析され得る不明瞭な入力を処理することを試みること、およびユーザが入力により意図した正確な意味を突き止めるために後続の質問を提示することに処理サイクルを消費する代わりに、利用可能な言語を1つ以上のサブサーフェス18に制限することにより、CNLPユニット22は、入力19のより効率のよい処理という結果になり得る。処理サイクルにおける削減は、より少ない電力が消費され、削減されたメモリ消費量という結果になる、より少ない状態が生成され、および、より少ないメモリ帯域幅が利用され(この両者はまた、電力消費量を更に削減する)、そして、より多くの処理帯域幅が他のプロセスのために保存されるので、ホスト装置12の動作を向上できる。
【0056】
CNLPユニット22は、オートコンプリート、プロンプト、質問、または動的提案機構を通して異なる言語サブサーフェス18を導入でき、それにより、より自然な(言い換えると、より会話的な)方法で、追加言語サブサーフェスをユーザに露出できる。リンクされたサブサーフェスを通しての結果である自然な探索は、ユーザのアクセス可能性、およびCNLP技術により使用される言語の自然学習を促進でき、それにより、CNLP技術が動作する言語の不十分な理解を通してのユーザの未経験により一般的に現れるエッジケースにしばしば遭遇することによるフラストレーションを回避できる。この意味において、CNLP技術は、不明瞭なエッジケースを回避する意図を表現することにおける正確さと精度を可能にするために、言語の制約された明瞭な部分を利用してユーザがサブサーフェスを露出することを自然に可能にすることで、自然さ、正確さ、および精度の間のバランスを取ることができる。
【0057】
例えば、データのロードと洗浄、種々のビジネス関連の質問に答えるためにデータをスライスまたは細かく切ること、パターンを認識するためにデータを視覚化すること、および、将来の傾向を予測するために機械学習技術を使用することを含む、データ解析の種々のカテゴリを実行するように設計されているチャットボットを考えてみる。ここにおいて記述されている技術を使用して、そのようなシステムの設計者は、発話を、システムが明確に理解できるものに潜在的に制約しながら、ユーザがこれらの多様なタスクに対応する意図を表現することを可能にする大きな言語サーフェスを特定でき、それにより、エッジケースを回避できる。更に、言語サーフェスは、オートコンプリート機構を使用して、未経験ユーザでさえも、自身が実行したい特定のタスクに、システムにおけるすべての他の機能に圧倒されることなく集中できることを確実にするために調整できる。例えば、ユーザが、自身のデータを要約するチャートを作成するために自身の意図を表現することを開始すると、システムは、ユーザが自身で選択できる種々のチャートフォーマットを提案できる。ユーザがチャートフォーマット(例えば、線チャート)を選択すると、システムは、軸、色、およびユーザが構成できる他の部分を提案できる。
【0058】
システム設計者は、言語サブサーフェス(例えば、データロードのための、データ視覚化のための、および機械学習のための発話)と、言語サブサーフェスがユーザに露出される条件を特定できる。例えば、データ視覚化サブサーフェスは、ユーザが何等かのデータをシステムにロードしたときのみ露出でき、機械学習サブサーフェスは、ユーザが、機械学習モデルを構築および解釈するときのわずかな差異および陥りやすい誤りを認識していると認めると露出できるのみである。つまり、自然言語発話において詳細と複雑さを徐々に明らかにするこのプロセスは、その内部においてと共に、言語サブサーフェスにわたって拡張する。
【0059】
まとめると、CNLP技術は、多様なニーズおよび多様な習熟レベルのユーザをサポートするために、高い正確さで多様の意図をプログラム的に認識することを可能にしながら、使用が容易なユーザインタフェースを有するシステムを構築するために使用できる(例えば、訓練をほとんど必要とせず、認識オーバーヘッドを制限することが可能)。そのため、これらの技術は、そうでなければ困難、または不可能でさえあった、機能と有用性との間のバランスを達成する新しいシステム設計を可能にできる。CNLP技術に関する更なる情報は、2019年6月14日に出願された、「制約のある自然言語処理」というタイトルの米国出願第16/441,915号において見出すことができ、その全体の内容は、ここにおいて参照により指定されたものとして組み込まれる。
【0060】
これらのCNLP技術の状況においては、種々のクエリ19は、正式構文に従う1つ以上のデータベース26とのインタフェースを取ることを要求する可能性がある。例えば、データベース26に1つ以上は、データベース26に格納されているデータにアクセスするための正式構文(正式にはSEQUELと称されていた頭字語SQLにより知られている)を有するシーケンシャルクエリ言語(SQL)データベースを表すことができる。他の例として、データベース26の1つ以上は、正式Pandas構文を介してアクセス可能な、いわゆるPandasデータフレームを表すことができる。そのような正式構文は、ユーザ16が経験の浅いユーザであっても、経験豊富なデータ科学者であっても、データベース26へのアクセス可能性を制限する可能性がある。ユーザ16が、正式構文に従って適切なコマンドを使用してクエリ19を理解し正しく定義することを要求することは、上記で検討したCNLP技術のアクセス可能な性質に反することになり得る。
【0061】
追加的に、サーバ28は、データベース26に格納されている多次元データに対する機械学習モデルの適用を介して取得される結果25を出力できる。つまり、実行プラットフォーム24の1つ以上は、図1の例において機械学習モデル(MLM)44として示されている機械学習モデルを実現できる。幾つかの例においては、MLM44は、訓練データを有する類似のパターンに基づいて、データの特性を一般化できる訓練されたモデルを生成するために訓練データを使用して訓練される。MLM44を訓練することは、目的関数を最適化することによりモデルパラメータを学習することを含むことができ、そのため、モデルに与えられる訓練データを観測する可能性を最適化できる。訓練データにおける変動性、訓練データ内の訓練サンプルの範囲、および、訓練に対する他の制限、および、現代の機械学習モデルの複雑さを考慮すると、経験の浅いユーザ(幾つかの例においてはユーザ16により表されている)が理解可能な平易言語を特に使用して、不規則に見え、予想に合致しない結果25を説明することはしばしば困難である。
【0062】
本開示において記述されている技術の種々の態様に従うと、サーバ28は、データベース26に格納されているデータに対する平易言語での要求を含んでいるクエリ19を、インタフェース21を介してCNLPユニット22により露出されるCNLサブサーフェス18を介して受信できる。そのようなクエリ19は、言い換えれば、データベース26に格納されているデータをデータセットとして取り出すためにデータベース26へのアクセスを要求できる。上述したように、そのようなクエリ19は、CNLPユニット22により意図23に変換される種々の入力を有している平易な会話言語に準拠することができる。サーバ28は、意図23を実行プラットフォーム24に転送でき、実行プラットフォーム24は意図23に変換を適用して意図23(クエリ19を表している)を、データベース26に格納されているデータセットと関連付けられている正式構文に準拠する1つ以上のステートメント27に変換できる。実行プラットフォーム24はステートメント27に基づいて、初期のクエリ19に関連するデータセットの部分を提供するクエリ結果29を取得するために、データベース26に格納されているデータセットにアクセスできる。実行プラットフォーム24は、結果25を形成するときに自身が使用できるクエリ結果29を取得できる。
【0063】
そのため、ホスト装置12は、ユーザ16がクエリ19を平易な会話言語で定義することを可能にし、それにより、ユーザ16が、SQL、Pandas、または他の正式データベース構文の広い理解を有しなくてはならないということを回避することを可能にするという点において、前述のCNLP技術のアクセス可能性を維持できる。このようにして、経験豊富なデータ科学者と、データサイエンスの経験(訓練)がほとんどない新しいユーザの両者は、平易な言語を使用して、正式(または言い換えると厳格な)構文を有する複雑なデータセットにアクセスできる。データセットへのそのようなアクセスを容易にすることは、ユーザ16が、関連するデータ(クエリ19に対する関連性という点において)を取り出すためにクライアント装置14とホスト装置12をより効率的に操作することを可能にする。効率性は、実行プラットフォーム24がクエリ結果29を、平易言語におけるクエリ結果29の説明を含む結果25に拡張または変換できるので、クエリ結果29における十分な信頼性を保証しながら、試行錯誤のアプローチにおいて追加コマンドと動作を処理する必要がないことの結果として起こり得る。
【0064】
そのような変換の結果として、データベース26へのアクセスの試みをより少なくすることができるので、クライアント装置14とホスト装置12の両者は、より効率的に動作できる。つまり、クライアント装置14とホスト装置12は、データベース26に首尾よくアクセスして結果25を提供するためのクエリ19を、より少なく受信することが可能であり、それは、プロセッササイクル、メモリ、メモリ帯域幅などのようなリソースの消費がより少なくなり、それにより、より少ない電力消費となるという結果になり得る。
【0065】
更に、実行プラットフォーム24は、データベース26に格納されている多次元データセットの1つ以上の次元(例えば、選択された行または列)の、変換された意図23(ステートメント27により表されている)に応答して提供され、MLM44により出力されるクエリ結果29との相関関係を決定できる。実行プラットフォーム24は、意図23(または、ステートメント27により表される変換された意図23)に応答して複数のMLM44を呼び出すことができ、MLM44は、アクセスに起因するクエリ結果29を、結果25を取得するためにステートメント27に基づいて解析できる。決定された相関関係に基づいて、実行プラットフォーム24は、結果25を取得するためにMLM44の1つ以上を選択できる(例えば、閾値相関関係を超える決定された相関関係を有しているMLM44を、結果25の1つ以上のソースとして選択する)。実行プラットフォーム24は、MLM44の1つ以上のそれぞれに対する結果25をサーバ28に出力でき、サーバ28は、出力された結果25をインタフェース21を介して提供できる。
【0066】
実行プラットフォーム24は、文章の生成および/または決定を容易にするために、決定された相関関係を利用して、MLM44の1つ以上がなぜ選択されたのかを説明する平易言語での文章を決定できる。実行プラットフォーム24は、MLM44の1つ以上がなぜ選択されたかを説明する文章を、インタフェース21を介してクライアント装置14に提供される結果25の一部として含むことができ、それにより、ユーザ16が結果25を信頼することを可能にすることができる。そのような信頼は、ユーザ16が、経験豊富なデータ科学者であっても、新しいユーザであっても、ユーザ16が結果25を受信するためのクライアント装置14と相互作用の回数を削減できるように、結果25に対する信頼を得ることを可能にできる。
【0067】
そしてまた、そのような説明の結果として、データベース26へのアクセスの試みをより少なくすることができるので、クライアント装置14とホスト装置12の両者は、より効率的に動作できる。つまり、クライアント装置14とホスト装置12は、データベース26に首尾よくアクセスして結果25を提供するためのクエリ19を、より少なく受信することが可能であり、そしてまたそれは、プロセッササイクル、メモリ、メモリ帯域幅などのようなリソースの消費がより少なくなり、それにより、より少ない電力消費となるという結果になり得る。
【0068】
動作においては、サーバ28は、インタフェース21を介して言語サブサーフェス18を露出でき、それにより、露出された言語サブサーフェス18により提供される言語の部分に準拠するクエリ19を受信できる。上述のように、サーバ28は、クエリ19を意図23に変形するためにCNLPユニット22を呼び出すことができ、ここにおいてそのような意図23はクエリ19を表している。サーバ28は意図23を取得でき、意図23を処理するために実行プラットフォーム24を呼び出すことができ、意図23を実行プラットフォーム24に渡すことができる。
【0069】
実行プラットフォーム24は、意図23を受信することに応答して変換ユニット34の1つ以上を呼び出すことができ、変換ユニット34は意図23に1つ以上の変換を適用して意図23を、データベース26に格納されているデータセットと関連付けられている正式構文に準拠する1つ以上のステートメント27に変換する。幾つかの例においては、実行プラットフォーム24は、何れの変換ユニット34呼び出すべきかを識別するために意図23のカテゴリを決定、言い換えれば、意図23を分類できる。例を示すと、下記により詳細に説明するように、データセットのある識別された列(例えば、名前または変数により)における特別な値を含んでいる行は「保管」し(例えば、識別された列において特別な値を有している)、一方、残りの行は、作業用データセットから除去するなどのように、意図23の1つ以上は、動作と共に1つ以上の行を示すことができる。実行プラットフォーム24は、これらの意図23を、条件を満たす(つまり、識別された値を有している)データセットの行のサブセットのみを要求するデータベースクエリとして分類でき、それにより、変換ユニット34のある幾つかを呼び出すことができる。変換ユニット34の呼び出された幾つかは、意図23の1つ以上を、正式SQL構文に準拠するステートメント27に変換できる。
【0070】
この点に関して、前述の例は、ホスト装置12が、作業用データセットにおいて「保管」されるデータセットの1つ以上の次元を識別するクエリ19を受信することを可能にする。実行プラットフォーム24は、意図23(クエリ19を表している)を、データベース26に格納されている基礎となるデータセットと関連付けられている正式SQL構文に準拠するステートメント27に変換する変換を適用するために変換ユニット34を呼び出すことができる。そして、実行プラットフォーム24は、ステートメント27に基づいて、クエリ結果29(この例においては、クエリ19により識別されたデータセットの1つ以上の次元を含んでいる)を取得するためにデータベース26に格納されているデータセットにアクセスでき、クエリ結果29を結果25の一部として出力できる。
【0071】
更に、上述したように、実行プラットフォーム24は、異なるMLM44のそれぞれにより出力される結果を取得するために、データベース26に格納されている多次元データセットに多数の異なるMLM44を適用できる。MLM44の例としては、ニューラルネットワーク、サポートベクトルマシン、ナイーブベイズモデル、線形回帰モデル、線形判別解析モデル、ライトGBM(light gradient boosted machine)モデル、決定木などが含まれる。
【0072】
実行プラットフォーム24は、多次元データセットの各次元とMLM44のそれぞれにより出力される結果との間の相関関係を決定できる。相関関係とは、変数の対が、線形に関連付けられる程度を表している統計的関連付けのことを指すことができる。そのため、実行プラットフォーム24は、MLM44のそれぞれにより出力される結果に対する多次元データセットの各次元(例えば、列または行)のそれぞれに対する相関関係係数を決定する。実行プラットフォーム24は、何れの次元がMLM44のそれぞれにより出力される結果を最も精度よく形成するかを評価するためにこの相関関係を決定でき、それにより、何等かの閾値相関関係を超える多次元データセットの意味のある次元(情報理論の状況において理解されるような、ランダム性、ユニーク性、エントロピの観点から測定される)と関連付けられている相関関係を有しているMLM44のサブセット(全部よりも少ないが、空集合ではないことを意味している)の選択を可能にできる。
【0073】
このようにして、実行プラットフォーム24は、相関関係に基づいて、MLM44のサブセットのそれぞれに対する結果25を取得するためにMLM44のサブセットを選択できる。実行プラットフォーム24は、MLM44のサブセットのそれぞれに対する結果25を出力でき、ここにおいて、そのような結果25は、平易言語を使用して結果を説明している文章を含むことができる。実行プラットフォーム24はまた、結果25において、多次元データセットの1つ以上の次元のそれぞれの、MLM44のサブセットのそれぞれに対する結果との関連性を識別しているグラフを含むことができる。技術の前述の態様に関する更なる情報は、図2A図3Gに関して下記に提供される。
【0074】
図2A図2Iは、本開示において記述されている技術の種々の態様に従う、機械学習モデルの選択および評価を選択するために、ホスト装置12により提示されるインタフェース21を例示している図である。図2Aの例においては、インタフェース21(「インタフェース21A」と記述することもできる)のスクリーンショット200が示されており、ホスト装置12は初期プロンプト201を提示し、それによりユーザ16と係合する。そしてユーザ16は、「[1]ファイルtelcoCustomerChurn.csvからデータをロード」するための会話言語でのコマンド202を入力し、その結果、telcoCustomerChurn.csvデータセットからのデータを一覧表示している結果25Aが表示される。ホスト装置12は結果25Aに、電気通信サービスの顧客の解約を解析するという提案された入力209Aを含んでいる提案された入力209の提案と共に、データセットを平易言語で説明している説明203を含むことができる。
【0075】
図2Bの例においては、ユーザ16は提案された入力209Aを選択しており、その結果、ホスト装置12は、図2Bの例において示されているスクリーンショット210により例示されているインタフェース21Bを提供する。つまり、ユーザ16は、「解約を解析」する入力211という結果になる提案された入力209Aを選択し、ホスト装置12は、結果25の一部を表しているチャート212を生成するために入力211を処理した。ホスト装置12は、この例における結果25としての、チャート212を記述している説明213と共に、チャート212(グラフに言及する別の方法であり、そのため、チャート212は「グラフ212」と称することができる)を提供する。説明213は「1つのカテゴリ列は、データセットのサイズとほぼ等しい固有な値を有していることが検出されました」と記述している。説明213は続けて「より意味のあるモデルを得るためにこれらの列を解析から削除することを考えてください」と記述し、そして、「顧客IDを排除して解約を解析」の提案された入力へのリンクを伴って「これは下記のことを頼むことによりできます」と記述している。
【0076】
この例においては、ホスト装置12は、telcoCustomerChurn.csvデータセットを解析して、MLM44のそれぞれにより提供される結果に対する列(または他の次元)の相関関係を決定するために実行プラットフォーム24を呼び出している。実行プラットフォーム24は、ある次元に対する固有および/またはランダムな数を検出する次元削減アルゴリズムを実行でき、それにより、顧客ID列は、MLM44の1つ以上の適用に起因する如何なる解析に対する関連性が少ない(基礎となる顧客IDデータのランダムおよび/または固有な性質のため)と思えると識別した。そしてホスト装置12は、提案された入力を使用して、より良好な結果を達成できることを自動的に説明している(上記の)提案された入力を有する説明213を提供でき、説明213はすべて平易言語の文章を介している。
【0077】
説明213は、ホスト装置12は「ライトgbm分類器を訓練し、それをベストフィット1として保存しました」と続き、それは「80.0%の検証精度を達成しました」、さらに「モデルは時間の80%を正しく予測しました」という説明を提供している。この点に関して、ホスト装置12は、平易言語を使用して結果25を更に説明しており、それによりユーザ16が結果25を信頼することを可能にする。更に、説明213は、「解約に対する値は、契約、契約期間、合計料金、月別料金のインパクトを最も受けています」と記述し、それらは、telcoCustomerChurn.csvデータセットの次元(つまり、この例においては列)に対するラベル(または、言い換えれば、名前または変数名)である。説明213はまた「棒チャート[チャート212]は、完全なインパクトスコアを示しています。詳細なスコアはデータセットインパクトリスト1にあります」とも記述し、ここにおいて、インパクトリスト1は、MLM44の1つのライトGBMへの結果に対する各次元のインパクトを調べるための提案されているリンクである。言い換えると、チャート212は、MLM44のライトGBMモデルにより出力される結果に対する各次元(この例においては、データセットの列を指している)のインパクト(または、言い換えると、相関関係)を示している。
【0078】
言い換えると、実行プラットフォーム24は、MLM44のそれぞれを呼び出し、基礎となるデータセットに対してMLM44を訓練し、そして、MLM44のそれぞれを、各結果を決定するために適用できる。実行プラットフォーム24は次に、データセットの各次元と、MLM44のそれぞれにより出力される結果との間の相関関係を決定でき、高い相関関係閾値(例えば、60~70%であってよい)を超える対応する相関関係を有している各MLM44の結果を選択できる。実行プラットフォーム24は、チャート212の容易な理解を促進するために平易言語でチャート212を説明するために説明213を提供でき、一方、ユーザ16が、チャート212の作成を更に探索および/または理解することを可能にするリンクも提供できる。
【0079】
図2Cは、インタフェース21(インタフェース21Cと記述できる)の他の例を示している図であり、インタフェース21Cのスクリーンショット220は更に、「棒チャート[チャート212]は、完全なインパクトスコアを示しています」ということを平易言語で示し、そして「詳細なスコアはデータセットインパクトリスト1にあります」と記述している説明221を、データセットインパクトリスト1へのアクセスを容易にするハイパーリンクと共に提示している。この点に関して、説明221は、チャート212はインパクトグラフ(または、言い換えると、インパクトチャート)を表しているということを説明し、下記に記述されるように、平易言語で、チャート212(ビジュアルチャートと称することもできる)の形式化も更に説明している。
【0080】
説明221は、「シンプルフィット1A(精度75.0)、シンプルフィット1B(精度75.0)、シンプルフィット1C(精度77.0)と呼ばれる、詳細のレベルが増大する」3つの追加モデルを更に示している。図2Cの例においては、モデル名シンプルフィット1A、シンプルフィット1B、およびシンプルフィット1Cは、それぞれがMLM44の他の反復を表すことができる3つの追加モデルの結果をユーザ16がすぐに調べることを可能にするためにハイパーリンクを介して参照される。この点に関して、実行プラットフォーム24は、ライトgbmと称される複雑モデル、および、シンプルフィットモデル(ライトgbmモデルより複雑でなく、または、よりシンプル)である追加モデルを生成且つ訓練している。
【0081】
追加的に、説明221はまた、3つの追加的な「データを視覚化するためのチャート」があると記述し、そしまた、チャート1A、チャート1B、およびチャート1Cのそれぞれを、ユーザ16による追加チャートへのアクセスを容易にするハイパーリンクとして参照している。説明221はまた、チャート1A~チャート1Cのそれぞれを記述しており、チャート1Aは「x軸は契約、y軸はtenureInt20、バブルの色は解約、バブルのサイズはNumRecordsのバブルチャート」であり、チャート1Bは「x軸は契約、y軸は各解約に対するNumRecordsの散布チャート」であり、チャート1Cは「x軸は契約、y軸は各tenureInt20に対するNumRecordsの積み上げ棒チャート」であると記述している。
【0082】
この点に関して、実行プラットフォーム24は、MLM44のそれぞれに対する結果に基づいて、チャート212およびチャート1A~チャート1Cなどのような、MLM44のそれぞれにより出力される、対応する結果を説明するために1つ以上のチャートを決定できる。実行プラットフォーム24は、最もランクの高いチャート(図2Cの例においてはチャート212)を識別するためにチャートをランク付けすることができ、インタフェース21を介しての出力のための最もランクの高いチャートを選択できる。実行プラットフォーム24は、説明221において検討したようなモデル精度に基づいてチャートをランク付けすることができる(精度は、ライトGBMモデルおよび各モデルシンプルフィット1A~シンプルフィット1Cの次に提供される)。
【0083】
図2Cの例においては示されていないが、実行プラットフォーム24はまた、低相関関係を有するデータセットの次元を識別できる。実行プラットフォーム24は、各次元に対する相関関係を低相関関係閾値(関連性閾値と称することもできる)と比較することにより、低相関関係を有する次元を識別できる。つまり、実行プラットフォーム24は、1つ以上の次元とMLM44のそれぞれにより出力される結果との間で決定された相関関係と関連性閾値の比較に基づいて、MLM44のそれぞれにより出力される結果に対して低関連性を有している多次元データセットの1つ以上の低関連性次元を決定できる。
【0084】
実行プラットフォーム24は、例えば、「性別」という名前で示される次元などのような、種々の次元は、MLM44のライトGBMモデルにより実行される解約解析に関連していないということを示す説明を提供できる。そのような説明は、実行プラットフォーム24は、顧客IDは、データセットの各行に割り当てられているランダムで固有の数であるように見えると決定するために、顧客IDに対して異なる解析を実行できるので、顧客IDは、ライトGBMモデルによる生成される結果に対して大きな関連性を有しているようには見えないと記述することとは異なってよい。
【0085】
図2Dの例においては、ユーザ16は、装置12が「契約、性別、契約期間を使用して解約を解析」するべきであることを示す入力226を入力しており、ここにおいて「契約」、「性別」、および「契約期間」はtelcoCustomerChurn.csvデータセットの次元(そしてまた、この例においては列)に割り当てられているラベルのことである。ホスト装置12は、上記の方法で入力226を処理でき、実行プラットフォーム24は、チャート227と説明229を取得するために入力226を表している意図23を処理でき、チャート227と説明229を結果25としてクライアント装置14にインタフェース21を介して提供できる。
【0086】
チャート227は、入力226における3つの識別された次元に注目している他のインパクトグラフを表しており、「契約」次元が(3つの識別された次元の中で)最も大きなインパクトを有しており、それに「契約期間」次元が続き、そして「性別」次元が続くということを示している。実行プラットフォーム24は、そのような次元は顧客の解約(電気通信契約の解約)にインパクトを与えるかどうかを決定するために、3つの識別された次元を評価する他のライトGBMモデルを構築できる。
【0087】
説明229はチャート227を説明しており、「私はLightgbm分類器を訓練し、それをベストフィット2として保存しました」と記述し、それは「76%の検証精度を達成しました」と記述している。説明229は更に、「解約に対する値は、契約、契約期間、性別のインパクトを最も受けていいます」と記述を続けて、次元を、解約に対するインパクト(言い換えれば、解約に対する相関関係)の順序で名前で示す前に、「モデルは時間の76%を正しく予測しました」と記述している。説明229は、「棒チャートは、完全なインパクトスコアを示しています」と記述し、「詳細なスコアはデータセットインパクトリスト2にあります」と示すことにより完結している。説明229は、インパクトリスト2を、ユーザ16が、詳細なインパクトスコアをより完全に探索するためにすぐにアクセスできるハイパーリンクとして提供している。
【0088】
次に、図2Eの例を参照すると、スクリーンショット230は、ユーザ16が「モデルシンプルフィット1Aを視覚化」する入力231を入力したインタフェース21の他の例を表している。入力231に応答して、ホスト装置12は、図232と説明234を含んでいる結果25を生成するために、入力231から構文解析された意図23を処理するために実行プラットフォーム24を呼び出すことができる。
【0089】
実行プラットフォーム24は、図232のように視覚化できる決定木を構築および訓練でき、図232においては、暗い円は顧客解約「No」を表し、一方、明るい円は「Yes」、言い換えると、顧客解約に関するインパクトを示している。初期データセットから開始すると、図232は、契約は月別の契約か否かに関する2つの初期分岐があることを示している。「契約は月別ではない」分岐においては、図232は、契約年または契約は1年か否かを示している2つのサブ分岐を含み、次元は、両方とも顧客の解約に関連しない(「No」)である顧客の解約を考慮している。「契約は月別」の分岐においては、図232は、月料金は、顧客の解約に対して68.6ドル未満か、またはそれを超えるかを示している2つのサブ分岐を含み、68.6ドル未満は顧客の解約に関連せず、解約は月コストが68.6ドル以上のときに起きている(「Yes」)。
【0090】
実行プラットフォーム24はまた、図232を説明234に変換でき、説明234は、下記の「重要な洞察」を提供する。
・契約が月別で、月料金が69ドルを超えるときは、解約はYes(合計サンプルの32%)。
・契約が月別で、月料金が69ドル以下のときは、解約はNo(合計サンプルの23%)。
・契約が月別でないときは、解約はNo(合計サンプルの45%)。
説明234により提供されるこれらの重要な洞察を使用し、および図232を調べることは、ユーザ16が、顧客の解約を解析するという点において図232をより良好に理解することを可能にできる。
【0091】
図2Fの例においては、スクリーンショット235は、ユーザ16が「モデルシンプルフィット1Bを視覚化」する入力236を入力したインタフェース21の他の例を提供している。入力236に応答して、ホスト装置12は、図237と説明239を含んでいる結果25を生成するために、入力236から構文解析された意図23を処理するために実行プラットフォーム24を呼び出すことができる。
【0092】
実行プラットフォーム24は、細かさの種々の程度を有している決定木を構築および訓練でき、細かさのレベルは、ユーザ16がスキルレベルを1から3(1は初心者、そして3は熟練者であり、スキルレベルを上げると、細かさのより高いレベルが提供される)の間の値に設定することにより制御できる。図2Fの例においては、決定木は4つのレベルを有しており、「データセット」から開始し、3つの追加ノードレベルを移動し、図232において示されている決定木と比較して、細かさの追加レベルを提供している。図237において視覚化されている決定木は、図232において提示されている分岐と同じ「データセット」からの2つの分岐で開始する。しかし、「契約は月別ではない」分岐においては、図237は、契約期間が70または71であることに関する2つのサブ分岐を提供している。「契約期間70」分岐では、図237は、契約期間は32未満または33と70の間かに向けられている2つの追加サブ分岐を提供している。「契約期間71」分岐では、図237は、契約は1年未満かまたは契約は1年かどうかに向けられている2つのサブ分岐を提供している。各例においては、契約は月別でない分岐の暗い円(または、言い換えるとノード)は契約の解約はないことを表している。
【0093】
「契約は月別」分岐においては、図237は「契約期間は5以下」または「契約期間6」かどうかに向けられている2つのサブ分岐を提供している。図237における「契約期間は5以下」を表す明るいノードは、顧客の解約解析に対する相対的に高い相関関係を表しており、それにより、契約期間は5以下は、顧客の解約という結果になり得ることを示している。「契約期間6」(またはそれを超える)を表している暗いノードは、顧客の解約に対する相対的に低い相関関係を示すことができる。
【0094】
「契約期間は5以下」分岐にもとでは、図237は、「契約期間は1以下」と「契約期間は2と5の間」の2つのサブ分岐を提供し、両者とも、明るいノードにより示されているように、顧客の解約に対する相対的に高い相関関係を有している。「契約期間6」分岐のもとでは、図237は「性別は男性ではない」と「性別は男性」ということを示している2つのサブ分岐を提供するが、これらのノードの何れも、暗いノードで示されているように、顧客の解約に対する相対的に高い相関関係は有していない。
【0095】
そして再び、実行プラットフォーム24はまた、図237を説明239に変換でき、説明239は、下記の「重要な洞察」を提供する。
・契約が月別で、契約期間が6を超えるときは、解約はNo(合計サンプルの36%)。
・契約が月別で、契約期間が5以下のときは、解約はYes(合計サンプルの19%)。
・契約が月別でないときは、解約はNo(合計サンプルの45%)。
説明239により提供されるこれらの重要な洞察を使用し、図237を調べることは、ユーザ16が、顧客の解約を解析するという点において図237をより良好に理解することを可能にできる。
【0096】
更に、図2A~2Fの例を通して分かるように、ユーザ16が結果25を解釈することを支援するために視覚的な方法でチャート、図、および他の結果を、ユーザ16からの如何なる追加入力もなしで、ホスト装置12が自動的に作成するという結果になる単純なクエリ19(図2Fにおいて示されている入力236などのような)をユーザ16は入力できる。更に、ホスト装置12は、ユーザ16が、追加データセット、チャート、モデルなどへのリンクと共に、結果25に対する信頼を得ることを可能にする、平易言語における説明を、ユーザ16からの如何なる追加入力もなしで自動的に提供できる。
【0097】
図2Gの例においては、スクリーンショット250は、ユーザ16が、「チャート1Aを作成」する入力251を入力したインタフェース21の他の例を提供しており、チャート1Aは、図2Cの例において示されている説明221に関して上記で検討したチャート1Aを指している。入力251に応答して、ホスト装置12は、入力251から構文解析された意図23を処理し、図252と説明254を含んでいる結果25を生成するために実行プラットフォーム24を呼び出すことができる。
【0098】
実行プラットフォーム24は、決定木の視覚化に類似している、解約「Yes」または「No」を示すバブルを表しているチャート252などのような異なるチャートという結果になる、(ライトGBMモデルよりも複雑さが少ないという点において)より単純なモデルを構築および訓練できる。バブルのサイズは、顧客の解約「Yes」または「No」の相対的な数を示している。実行プラットフォーム24はまた、チャート252の形式化を下記のように説明する説明254を提供する。
・最初に私は、契約期間を、それぞれがサイズ20の幾つかのバケツに分散して新しい列tenureint20と命名しました。
・そして私は、出力列NumRecordsを呼び出して、解約、契約、およびtenureint20のそれぞれに対する記録のカウントを計算しました。
・最後に私は、契約をx軸、tenureint20をy軸とし、バブルの色は解約を使用して設定し、NumRecordsはバブルのサイズを設定するために使用されたバブルチャートを作成しました。
【0099】
上述のように、ユーザ16はスキルの異なるレベル(1から3)を設定できる。スクリーンショット250は、スキルレベル1において情報を提示するように構成されるときのインタフェース21を示している。図2Hの例においては、スクリーンショット260は、スキルレベル2または3において情報を提示するように構成されるときのインタフェース21を示している。スクリーンショット260は同じチャート252を含んでいるが、より包括的な説明264を提供している。説明264は下記を記述している。
図2Hにおいて示されていない>1つのカテゴリ列は、データセットのサイズとほぼ等しい固有な値を有していることが検出されました。より意味のあるモデルを得るためにこれらの列を解析から削除することを考えてください。これは、下記のことを頼むことによりできます。顧客IDを排除して解約を解析[ユーザ16が、これを入力/クエリとしてすぐに入力することを可能にするハイパーリンク]
私は、ライトgbm分類器を訓練し、それをベストフィット1として保存しました。モデルの検証スコアは
・精度、80.0%
・AUC、0.85
解約に対する値は、契約、契約期間、合計料金、月別料金のインパクトを最も受けています。<図2Hにおいては示されていない>
棒グラフは、完全なインパクトスコアを示しています。詳細なスコアはデータセットインパクトリスト1にあります。
私はまた、シンプルフィット1A(AUC、0.71、精度、75.0)、シンプルフィット1B(AUC、0.74、精度、75.0)、シンプルフィット1C(AUC、0.66、精度、77.0)と呼ばれる、詳細のレベルが増大する3つのモデルも作成しました。
データを視覚化するための3つのチャートがあります。
・チャート1A(x軸は契約、y軸はtenureint20、バブルの色は解約、バブルのサイズはNumRecordsのバブルチャート)
・チャート1B(x軸は契約、y軸は各解約に対するNumRecordsの散布チャート)
・チャート1C(x軸は契約、y軸は各tenureInt20に対するNumRecordsの積み上げ棒チャート)
モデルに使用されたパラメータはパイプラインレポートと命名されたデータセットに保存されています[ユーザ16がパイプラインレポートに対するクエリ/入力を入力することすぐに可能にするためにハイパーリンクとして提供されている]。
【0100】
この例においては、実行プラットフォーム24は、モデルはどのように構築されたかに対するより多くの洞察を提供しており、また、ユーザ16がパイプラインレポートを取り出すことを可能にしている。図2Iの例においては、スクリーンショット270は、入力271を介してパイプラインレポートを要求した後のインタフェース21を示している。ホスト装置12は、データベース26とのインタフェースを取り、パイプラインレポート272を取り出すために実行プラットフォーム24を呼び出すことができ、パイプラインレポート272を結果としてクライアント装置14に返すことができる。パイプラインレポート272は、種々の結果を取り出すためにMLM44がどのように作成され、訓練され、および採用されたかをデータ科学者がより良好に理解することを可能にできる。このようにして、ホスト装置12がどのようにしてMLM44を生成したかを、より技術的詳細において、そして必ずしも平易言語を使用しないで説明しているパイプラインレポート272をホスト装置12は生成でき、ユーザ16による精査のためにパイプラインレポート272を出力できる(例えば、スキルレベルがレベル2または3に設定されているとき)。そのようなパイプラインレポート272は、監査および他の内部精査を容易にできる。
【0101】
図3A図3Gは、制約のある自然言語処理技術の種々の態様に従う、データセットにアクセスするための、ホスト装置12により提示されるインタフェース21を例示している追加図である。最初に図3Aの例を参照すると、スクリーンショット300は、ユーザ16が「ファイルsba.csvからデータをロード」するクエリ301を入力したインタフェース21の他の例を表すことができ、ホスト装置12はクエリ301を、データセット(ファイルsba.csvからロードされる)と関連付けられている正式構文に準拠する正式ステートメント27に実行プラットフォーム24が(変換ユニット34の呼び出しを通して)変換できる意図23を決定するためにCNLPユニット22を使用して処理する。実行プラットフォーム24は、プレビュー302が形成されるクエリ結果29を取得するために、ステートメント27を使用してデータベース26にアクセスできる。実行プラットフォーム24は、プレビュー302を結果25としてクライアント装置14に返す。
【0102】
追加的に、ユーザ16は、平易言語で「BorrStateがWIを含んでいる行を保管」することを示すクエリ303を入力するためにクライアント装置14とのインタフェースを取ることができる。そしてまた、ホスト装置12は、クエリ303を処理してクエリ303から1つ以上の意図23を構文解析するためにCNLPユニット22を呼び出すことができ、意図23を実行プラットフォーム24に提供できる。実行プラットフォーム24は、データセットと関連付けられている正式構文に準拠する1つ以上の(SQL選択ステートメントなどのような)選択ステートメント27に意図23(クエリ303を表している)を変換するために変換ユニット34を呼び出すことができる。
【0103】
実行プラットフォーム24は、選択テートメント27に基づいて、クエリ303により識別されたデータセットの1つ以上の次元を含んでいるクエリ29を取得するためにデータセットにアクセスできる。つまり、クエリ303は、BorrState(次元を識別する例としてのラベル)が「WI」の値を含んでいる行を保管することを示している。そのため、実行プラットフォーム24は、列BorrStateに対して「WI」の値を有している何れの行も取得して、プレビュー304が生成されるクエリ結果29を返す。図3Bの例においては、スクリーンショット310は、ユーザ16が、「列BorrCity、BorrState、BorrStreetを保管」することを要求するクエリ311を入力したインタフェース21を例示している。そしてまた、ホスト装置12は、クエリ311に応答して、クエリ311から意図23を構文解析するためにCNLPユニット22を呼び出し、意図23を実行プラットフォーム24に提供する。実行プラットフォーム24は、データベースと関連付けられている正式構文を使用して、クエリ311により識別された列(つまり、この例においては、BorrCity、BorrState、BorrStreet)を選択する選択ステートメント27に意図23を変換するために変換ユニット34を呼び出すことができる。
【0104】
実行プラットフォーム24は、プレビュー312が形成されるクエリ結果29を取得するために、選択ステートメント27を使用してデータベース26にアクセスできる。そして、ホスト装置12は、プレビュー312をクライアント装置14にインタフェース21を介して、プレビュー312を提示する結果25の一部として提供できる。
【0105】
図3Cの例においては、インタフェース21のスクリーンショット315は、ユーザ16が「承認会計年度が2010年以降の行を保管」するクエリ316を入力したことを示している。そしてまた、ホスト装置12は、クエリ316に応答して、クエリ316から意図23を構文解析するためにCNLPユニット22を呼び出し、意図23を実行プラットフォーム24に提供する。実行プラットフォーム24は、クエリ316により識別された行(つまり、承認会計年度のラベルが付けられている列における値が、2009より大きい行)を選択し、SQL構文に準拠する選択ステートメント27に意図23を変換するために変換ユニット34を呼び出すことができる。
【0106】
実行プラットフォーム24は、プレビュー312が形成されるクエリ結果29を取得するために、選択ステートメント27を使用してデータベース26にアクセスできる。そして、ホスト装置12は、プレビュー312をクライアント装置14にインタフェース21を介して、プレビュー312を提示する結果25の一部として提供できる。
【0107】
図3Dの例においては、インタフェース21のスクリーンショット320は、ユーザ16が「各承認会計年度、出力列NumberOfLoansMade、TotalApproved、TotalLost、MaximumLoanを呼び出すBorrStateに対する、totalGrossApproval、totalGrossChargeOffAmount、maximumGrossApprovalの記録のカウントを計算」するクエリ321を入力したことを示している。そしてまた、ホスト装置12は、クエリ321に応答して、クエリ321から意図23を構文解析するためにCNLPユニット22を呼び出し、意図23を実行プラットフォーム24に提供する。実行プラットフォーム24は、実行済みローン数、合計承認金額、合計損失金額、および最大ローン値を計算し、SQL構文に準拠するステートメント27に意図23を変換するために変換ユニット34を呼び出すことができる。
【0108】
実行済みローン数、合計承認金額、合計損失金額、および最大ローン値を計算するときに、実行プラットフォーム24は、他のデータセットをクエリ321を満たすために使用できると決定できる(つまり、図3Dの例におけるsba_sampleデータセット)。実行プラットフォーム24は、sba_sampleデータセットをクエリ321に答えるために使用できるということを示すフィードバック323を構成でき、フィードバック323を、結果25の一部として提供できる。そして、実行プラットフォーム24は、最新の(ファイルsba.csvから)ロードされたデータセットを使用してクエリ321を処理することに戻ることができる。
【0109】
実行プラットフォーム24は、プレビュー322が形成されるクエリ結果29を取得するためにステートメント27を使用して(最新のロードされたデータセットを格納している)データベース26にアクセスできる。そして、ホスト装置12は、プレビュー322をクライアント装置14にインタフェース21を介して、プレビュー322を提示する結果25の一部として提供できる。
【0110】
追加的に、実行プラットフォーム24は、クエリ結果29から形成される作業用データセットを維持でき、後続の追加クエリ19に応答して作業用データセットを参照できる。作業用データセットは、最新のロードされたデータセットの例を表すことができる。しかし、実行プラットフォーム24は、作業用データセットのある次元(例えば、行および/または列)は存在しないが、追加の後続するクエリ19において参照されると決定できる。そして、実行プラットフォーム24は、この追加クエリを1つ以上の追加ステートメント27に変換するために変換ユニット34を呼び出すことができ、この1つ以上のステートメント27に基づいて、および、識別された次元は以前のクエリ結果29には存在しないと決定することに応答して、追加クエリ結果29を取得するために基礎となるデータセットに、(ユーザ16から如何なる追加入力も要求することなく)自動的にアクセスできる。実行プラットフォーム24は、これらの追加クエリ結果29を結果25の一部として提供できる。
【0111】
前述の例においては、クエリ321は、基礎となるデータセットの多数の異なる次元にわたる多数の異なる値を計算するという点において相対的に複雑である。SQLなどのような正式構文を使用すると、実行プラットフォーム24は、クエリ321内の異なる計算の順序に依存して異なる結果を返す可能性があり、それは、ユーザ16による結果25に対する信頼性を低める可能性がある。しかし、実行プラットフォーム24は、種々の動作が実行される順序とは無関係に同じ結果を返すことができる。
【0112】
言い換えると、クエリ321は、複数のクエリステートメント(例えば、実行済みローン数を計算する、合計承認金額を計算する、合計損失金額を計算する、最大ローン値を計算するなど)を有している多部分クエリを表すことができる。しかし、CNLPユニット22は、多部分クエリを形成している複数のクエリステートメントが如何なる順序でも定義でき、しかし、同じ意図23という結果になるように、クエリ321を定義するときに、不明瞭さを除去する方法で言語サブサーフェス18を露出することによりクエリ321を処理できる。そのため、実行プラットフォーム24は、多部分クエリ321を形成するために複数のクエリステートメントが定義される順序に無関係に、多部分クエリ321を同じ1つ以上のステートメント27に変換できる。
【0113】
図3Eの例においては、インタフェース21のスクリーンショット330は、ユーザ16が「GrossApprovalが、集計値中央値GrossApproval未満の行を保管」するクエリ331を入力したことを示している。そしてまた、ホスト装置12は、クエリ331に応答して、クエリ331から意図23を構文解析するためにCNLPユニット22を呼び出し、意図23を実行プラットフォーム24に提供する。実行プラットフォーム24は、中央値GrossApprovalを計算し、GrossApprovalが集計値中央値GrossApproval未満の行を選択し、SQL構文に準拠するステートメント27に意図23を変換するために変換ユニット34を呼び出すことができる。
【0114】
実行プラットフォーム24は、プレビュー332が形成されるクエリ結果29を取得するために、ステートメント27を使用して(最新のロードされたデータセットを格納している)データベース26にアクセスできる。そして、ホスト装置12は、プレビュー332をクライアント装置14にインタフェース21を介して、プレビュー332を提示する結果25の一部として提供できる。
【0115】
上述の例においては、クエリ331は、クエリ331において最後に言及される種々の計算は、行を選択する前に実行されることが要求されているという点において相対的に複雑である。SQLなどのような正式構文を使用すると、実行プラットフォーム24は、クエリ331内の異なるクエリステートメントの順序に依存して異なる結果を返す可能性があり、それは、ユーザ16による結果25に対する信頼性を低める可能性がある。しかし、実行プラットフォーム24は、種々の動作が実行される順序とは無関係に同じ結果を返すことができる。
【0116】
言い換えると、クエリ331は、複数のクエリステートメントを有している多部分クエリの他の例を表すことができる。しかし、CNLPユニット22は、多部分クエリを形成している複数のクエリステートメントが如何なる順序でも定義でき、しかし、同じ意図23という結果になるように、クエリ331を定義するときに、不明瞭さを除去する方法で言語サブサーフェス18を露出することによりクエリ331を処理できる。そのため、実行プラットフォーム24は、多部分クエリ331を形成するために複数のクエリステートメントが定義される順序に無関係に、多部分クエリ331を同じ1つ以上のステートメント27に変換できる。
【0117】
図3Fの例においては、インタフェース21のスクリーンショット340は、ユーザ16が「新しいウィンドウ列TestWindowを、年齢によりソートされた各Parchに対して、10行前および3行後の行に対して計算された平均Fareとして作成」するクエリ341を入力したことを示している。そしてまた、ホスト装置12は、クエリ341に応答して、クエリ341から意図23を構文解析するためにCNLPユニット22を呼び出し、意図23を実行プラットフォーム24に提供する。実行プラットフォーム24は正式SQL構文を使用して、行が年齢行に対する値によりソートされるときの、現在の行の10行前および3行後のAverageFairを計算するウィンドウを計算するステートメント27に意図23を変換するために変換ユニット34を呼び出すことができる。
【0118】
実行プラットフォーム24は、プレビュー332が形成されるクエリ結果29を取得するために、ステートメント27を使用して(最新のロードされたデータセットを格納している)データベース26にアクセスできる。そして、ホスト装置12は、プレビュー342をクライアント装置14にインタフェース21を介して、プレビュー342を提示する結果25の一部として提供できる。
【0119】
次に図3Gの例を参照すると、実行プラットフォーム24は、多数のデータセットにアクセスすることを要求する意図23を受信できる。実行プラットフォーム24は、意図23は、クエリ19が現在の作業用データセット以外のデータセットの次元を識別するクエリステートメントを含んでいるかどうかを決定すると決定できる。クエリステートメントが現在の作業用データセット以外のデータセットの次元を識別するときは、実行プラットフォーム24は、結合されたデータセットを取得するために、現在の作業用データセットと他のデータセットを(ユーザ16から如何なる更なる入力も要求することなく)自動的に結合できる。
【0120】
図3Gの例において示されているスクリーンショット350は、結合されたデータセット(作業用データセットとなる)を取得するために複数のデータセットをどのように結合できるのか(矢印を介して示されているように)を示している。実行プラットフォーム24は、複数のデータセットを結合するために、正式SQL構文に準拠する結合ステートメント27を自動的に作成でき、それにより結合されたデータセットを取得できる。
【0121】
幾つかの例においては、実行プラットフォーム24は、関係(そしてまた、例としてのスクリーンショット350に示されている関係に類似している)に基づいて、グラフデータ構造体を形式化でき、ここにおいてグラフデータ構造体は、複数のデータセットのそれぞれを表しているノードと、複数のデータセットの次元間の関係を表しているエッジを有している。実行プラットフォーム24は、意図23に基づいて、基礎となるクエリ19を満たすためにグラフデータ構造体を通しての最短距離を識別するためにグラフデータ構造体を詳細に検討でき、結合されたデータセットを取得するために最短経路に沿って自動的にデータセットを結合できる。
【0122】
更に、実行プラットフォーム24は、グラフデータ構造体を詳細に検討するときに、クエリ19を満たすグラフデータ構造体を通しての追加経路を識別できる。追加経路を識別することに応答して、実行プラットフォーム24は、グラフデータ構造体を通しての追加経路を識別する表示を形式化でき、クライアント装置14を介してユーザ16に提示される結果25の一部としてその表示を提供できる。表示は、グラフデータ構造体を通しての追加経路を詳細に検討するという結果になる改良されたクエリに対するリンクを含むことができる。他の例においては、表示は、クエリ19を完結する前にユーザ16が解決する必要のある不明瞭さがあるということを示すことができる。
【0123】
実行プラットフォーム24は、クエリ19に応答して、データセットの1つ以上の次元間の関係を識別する、スクリーンショット350において示されている図に類似している図(図3Gの例におけるグラフデータ構造体の視覚化を表している)を出力できる。つまり、実行プラットフォーム24は、複数のデータセットの1つ以上の次元間の関係を識別でき、データセットの1つ以上の次元間の関係を例示している図を生成できる。実行プラットフォーム24は、スクリーンショット350の例において示されているような図を出力できる。
【0124】
そして何れにせよ、実行プラットフォーム24は、種々のステートメント27を使用して、クエリ結果29を取得するために結合されたデータセット(自動結合が、グラフデータ構造体を通しての最短経路を介して起こると仮定して)にアクセスできる。実行プラットフォーム24は、クエリ結果29を含むために結果25を更新でき、ホスト装置12はクライアント装置14にインタフェース21を介して結果25を提供する。
【0125】
図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」)を含むことができる。
【0126】
サブサーフェスルートノード702は、基本的サブサーフェスを露出する初期開始ノードを表すことができ、それにより、SS-CN704などのような、それに依存するサブサーフェスへの露出を制約できる。最初に、CNLPユニット22は、新しいユーザ16に対して、パターンの限られたセットを露出できるのみであり、パターンのそれぞれは、上述したように、識別子、位置およびキーワードエンティティ、および無視された語句を含んでいる。CNLPユニット22は、状況(現在のセッションの履歴、識別されたユーザの能力、ユーザの嗜好などの1つ、またはそれらの組み合わせを指すことができる)に基づいて、SS-RN702から、SS-CN704の1つまでを詳細に検討できる。そのため、CNLPユニット22は階層的に配置されているノード702~710(例えば、SS-RN702からSS-CN704の1つ、SS-CN706/708の1つ、SS-LN710の1つ)を、発見可能性と認識オーバーヘッドとの間のバランスを取るために詳細に検討できる。
【0127】
上述しているように、言語サーフェスにおけるすべてのパターンは識別子で開始でき、これらの識別子は、それらを言語サブサーフェス702~710にグループ化するためにパターンにわたって再使用される。例えば、すべてのデータ視覚化意図は、「作成」で開始する。発話をテキストボックスに入力すること開始するときは、ユーザ16は、第1識別子(「作成」、「ロード」など)の1つを含んでいるオートコンプリート提案リストを調べることができる。ユーザ16が第1識別子を完結すると、CNLPユニット22は、更なる完結のために、その言語サブサーフェスに属している他のパターンを露出できるのみである。上記の例においては、ユーザ16が第1語句として「作成」を特定したときのみ、CNLPユニット22は種々のチャートフォーマット(線チャート、バブルチャート、ヒストグラムなど)を提案するためにオートコンプリート機構を呼び出す。ユーザ16がオートコンプリート提案の1つ(例えば、線チャート)を特定したことに応答して、CNLPユニット22は、チャートを構成するためにユーザ16が特定する必要のあるエンティティ(軸上の列、色、スライダなど)を露出できる。
【0128】
概念的には、すべての発話(言語サーフェス)のセットは、(発話における識別子およびエンティティに基づいて)階層的に配置されるサブセット(サブサーフェス)に分解されると考えることができ、階層の各レベルは、基礎となるサブセットを形成するすべての発話/パターンを含んでいる。オートコンプリート機構を使用して、ユーザ16はこの階層を上から下に1度に1ステップずつナビゲートできる。各ステップにおいては、ユーザ16には、提案として次のステップの小さなセットを示すことができるだけである。これは、CNLPユニット22が、発見可能性と認識オーバーヘッドとの間のバランスを取ることを可能にする。言い換えると、技術のこの態様は、パターン特定言語を使用してパターンをどのように構造化するかについてであってよく、ここにおける(「パターンは識別子で開始する」のような)設計選択は、パターン特定言語自体によって強いられることはない。
【0129】
追加的に、ある言語サブサーフェスは、対応する条件が満たされたときのみ露出される。例えば、CNLPユニット22は、すでにロードされている少なくとも1つのデータセットがあるときに、データ視覚化サブサーフェスを露出できるだけである。これは、パターンが現時点で露出されているかどうかを決定するために、各パターンを、現在の状況(このセッションの履歴、ユーザの能力および嗜好など)を見ている機能/手運と関連付けることにより達成される。
【0130】
図5は、図1の例において示されているホスト装置12および/またはクライアント装置14の例としての構成要素を示しているブロック図である。図4の例においては、装置12/14は、プロセッサ412、グラフィックス処理ユニット(GPU)414、システムメモリ416、ディスプレイプロセッサ418、1つ以上の集積スピーカ105、ディスプレイ103、ユーザインタフェース420、およびトランシーバモジュール422を含んでいる。ソース装置12がモバイル装置である例においては、ディスプレイプロセッサ418はモバイルディスプレイプロセッサ(MDP)である。ソース装置12がモバイル装置である例などのような幾つかの例においては、プロセッサ412、GPU414、およびディスプレイプロセッサ418は、集積回路(IC)として形成できる。
【0131】
例えば、ICはチップパッケージ内の処理チップとして考えることができ、システムオンチップ(SoC)であってよい。幾つかの例においては、プロセッサ412、GPU414、およびディスプレイプロセッサ418の2つは、同じICに一緒に格納することができ、他の1つは異なる集積回路(つまり、異なるチップパッケージ)に格納でき、または、3つすべてを異なるIC、または同じICに格納できる。しかし、ソース装置12がモバイル装置である例においては、プロセッサ412、GPU414、およびディスプレイプロセッサ418はすべて異なる集積回路に格納されているということは可能である。
【0132】
プロセッサ412、GPU414、およびディスプレイプロセッサ418の例としては、下記に制限されないが、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の等価な集積または離散論理回路が含まれる。プロセッサ412は、ソース装置12の中央演算処理装置(CPU)であってよい。幾つかの例においては、GPU414は、GPU414に、グラフィックス処理に適切な大量の並行処理機能を提供する集積および/または離散論理回路を含んでいる特殊化ハードウェアであってよい。幾つかの例においては、GPU414はまた、汎用処理機能を含むことができ、汎用処理タスク(つまり、非グラフィックス関連のタスク)を実現するときは、汎用GPU(GPGPU)と称することができる。ディスプレイプロセッサ418はまた、システムメモリ416から画像コンテンツを取り出し、画像コンテンツを画像フレームに構成し、画像フレームをディスプレイ103に出力するように設計されている特殊化集積回路ハードウェアであってよい。
【0133】
プロセッサ412は、種々のタイプのアプリケーション20を実行できる。アプリケーション20の例としては、ウェブブラウザ、eメールアプリケーション、スプレッドシート、ビデオゲーム、表示のための見ることができるオブジェクトを生成する他のアプリケーション、または、より詳細に上記で一覧表示した任意のアプリケーションタイプが含まれる。システムメモリ416は、アプリケーション20の実行のための命令を格納できる。プロセッサ412上でのアプリケーション20の1つの実行は、プロセッサ412に、表示される画像コンテンツのためのグラフィックスデータと、再生されるオーディオデータ21を生成させる。プロセッサ412は、更なる処理のために画像コンテンツのグラフィックスデータを、プロセッサ412がCPU414に送信する命令またはコマンドに基づいてGPU414に送信できる。
【0134】
プロセッサ412は、特別なアプリケーション処理インタフェース(API)に従ってGPU414と通信できる。そのようなAPIの例としては、Microsoft(登録商標)によるDirectX(登録商標)API、OpenGL(登録商標)、またはKhronosグループによるOpenGL(登録商標)、およびOpenCLTMがあるが、本開示の態様は、DirectX、OpenGL、またはOpenCL APIに制限されず、他のタイプのAPIに拡張できる。更に、本開示において記述されている技術は、APIに従って機能することは要求されず、プロセッサ412とGPU414は、通信のための如何なる技術も利用できる。
【0135】
システムメモリ416は、ソース装置12に対するメモリであってよい。システムメモリ416は、1つ以上のコンピュータ読み取り可能格納媒体を備えることができる。システムメモリ416の例としては、下記に制限されないが、ランダムアクセスメモリ(RAM)、電気的消去可能型プログラマブルリードオンリメモリ(EEPROM)、フラッシュメモリ、または、所望のプログラムコードを、命令および/またはデータ構造体の形状で搬送または格納するために使用でき、コンピュータまたはプロセッサによりアクセスできる他の媒体が含まれる。
【0136】
幾つかの例においては、システムメモリ416は、プロセッサ412、GPU414、および/またはディスプレイプロセッサ418に、本開示において記述されている機能を実行させる命令を含むことができる。従って、システムメモリ416は、実行されると1つ以上のプロセッサ(例えば、プロセッサ412、GPU414、および/またはディスプレイプロセッサ418)に種々の機能を実行させる命令を格納しているコンピュータ読み取り可能格納媒体であってよい。
【0137】
システムメモリ416は、非一時的格納媒体を含むことができる。「非一時的」という用語は、格納媒体は搬送波または伝播信号には組み入れられないということを示している。しかし、「非一時的」という用語は、システムメモリ416は不揮発性である、または、そのコンテンツは静的であるということを意味していると解釈されるべきではない。1つの例として、システムメモリ416は、ソース装置12から取り外すことができ、他の装置に移動できる。他の例として、実質的にシステムメモリ416に類似しているメモリは、装置12/14に挿入できる。ある例においては、非一時的格納媒体は、時間の経過と共に変化し得るデータを格納できる(例えば、RAMにおいて)。
【0138】
ユーザインタフェース420は、ユーザがソース装置12とのインタフェースを取ることができる1つ以上のハードウェアまたは仮想(ハードウェアとソフトウェアとの組み合わせを意味している)ユーザインタフェースを表すことができる。ユーザインタフェース420は、物理ボタン、スイッチ、トグル、ライト、またはそれらの仮想版を含むことができる。ユーザインタフェース420はまた、物理または仮想キーボード、タッチスクリーンなどのようなタッチインタフェース、触覚フィードバックなどを含むことができる。
【0139】
プロセッサ412は、種々のユニット/モジュールなどの1つ以上に関して上記で検討した動作のすべてまたは幾つかを実行するように構成されている1つ以上のハードウェアユニット(いわゆる「処理コア」を含んでいる)を含むことができる。トランシーバモジュール422は、装置12/14間の無線接続を確立および維持するように構成されているユニットを表すことができる。トランシーバモジュール422は、1つ以上の無線通信プロトコルに従って無線通信が可能な1つ以上の受信機および1つ以上の送信機を表すことができる。
【0140】
上述した種々の例のそれぞれにおいては、装置12/14は方法を実行でき、または、装置12/14が実行するものと上述されている方法の各ステップを実行するための手段を備えることができるということは理解されるべきである。幾つかの例においては、手段は1つ以上のプロセッサを備えることができる。幾つかの例においては、1つ以上のプロセッサは、非一時的コンピュータ読み取り可能格納媒体に格納されている命令により構成されている特殊目的プロセッサを表すことができる。言い換えると、符号化の例のセットのそれぞれにおける技術の種々の態様は、命令を格納した非一時的コンピュータ読み取り可能格納媒体を提供でき、この命令は実行されると1つ以上のプロセッサに、装置12/14が実行するように構成されている方法を実行させる。
【0141】
図6は、本開示において記述されている技術の種々の態様を実行するときの、図1のホスト装置の例としての動作を示しているフローチャートである。最初に、ホスト装置12のCNLPユニット22は、自然言語に対する文法を、言語サブサーフェス18の階層的配置として定義する自然言語包含階層を特定する言語サブサーフェス、例えば、言語サブ18Aを露出できる(800)。ホスト装置12のサーバ28は、インタフェース21を介してCNLPユニット22により露出されたCNLサブサーフェス18を介して、データベース26に格納されているデータに対する平易言語要求を含んでいるクエリ19を受信できる。そのようなクエリ19は、言い換えると、データベース26に格納されているデータをデータセットとして取り出すようにデータベース26へのアクセスを要求できる。このようにして、サーバ28は、データベースにアクセスするためにクエリ19を受信できる(802)。
【0142】
上記のように、そのようなクエリ19は、CNLPユニット22により意図23に変換される種々の入力を有している平易会話言語に準拠することができる。サーバ28は、意図23を実行プラットフォーム24に転送でき、実行プラットフォーム24は、意図23(クエリ19を表している)を、データベース26に格納されているデータセットと関連付けられている正式構文に準拠する1つ以上のステートメント27に変換する変換を意図23に適用する。実行プラットフォーム24は、ステートメント27に基づいて、初期のクエリ19に関連しているデータセットの部分を提供するクエリ結果29を取得するために、データベース26に格納されているデータセットにアクセスできる(806)。実行プラットフォーム24は、結果25を形成するときに使用できるクエリ結果29を取得できる(808)。
【0143】
図7は、本開示において記述されている技術の追加態様を実行するときの、図1のホスト装置の例としての動作を示している他のフローチャートである。上述したように、ホスト装置12の実行プラットフォーム24は、複数のMLM44のそれぞれにより出力されるクエリ結果29を取得するために、データベース26に格納されている多次元データセットに複数のMLMを適用する(900)。実行プラットフォーム24は次に、データベース26に格納されている多次元データセットの1つ以上の次元(例えば、選択された行または列)の、MLM44により出力される、変換された意図23(ステートメント27により表されている)に応答して提供されるクエリ結果29との相関関係を決定できる(902)。
【0144】
実行プラットフォーム24は、意図23(または、ステートメント27により表されている変換された意図23)に応答して、ステートメント27に基づいて結果25を取得するために、データセットへのアクセスの結果としてのクエリ結果29を解析する複数のMLM44を呼び出すことができる。実行プラットフォーム24は、1つ以上の次元と、複数のMLM44のそれぞれにより出力されたクエリ結果29との間で決定された相関関係に基づいて、複数のMLM44のサブセットのそれぞれに対する結果25を取得するために、MLM44のサブセットを選択できる(904)。実行プラットフォーム24は、MLM44の1つ以上のそれぞれに対する結果25をサーバ28に出力でき、サーバ28は、インタフェース21を介して出力結果25を提供できる(906)。
【0145】
このようにして、技術の種々の態様は、下記の例を可能にできる。
【0146】
例1A. 多次元データセットを解釈するように構成されている装置であって、装置は、多次元データセットを格納するように構成されているメモリと、1つ以上のプロセッサを備え、この1つ以上のプロセッサは、複数の機械学習モデルのそれぞれにより出力される結果を取得するために、この複数の機械学習モデルを多次元データセットに適用し、多次元データセットの1つ以上の次元の、複数の機械学習モデルのそれぞれにより出力される結果との相関関係を決定し、1つ以上の次元と、複数の機械学習モデルのそれぞれにより出力される結果との間で決定された相関関係に基づいて、複数の機械学習モデルのサブセットのそれぞれに対する結果を取得するために、複数の機械学習モデルのサブセットを選択し、複数の機械学習モデルのサブセットのそれぞれに対する結果を出力するように構成されている。
【0147】
例2A. 例1Aの装置であって、1つ以上のプロセッサは、結果を、平易言語を使用する文章として出力するように構成されている。
【0148】
例3A. 例1Aと2Aの任意の組み合わせの装置であって、1つ以上のプロセッサは、複数の機械学習モデルのサブセットの少なくとも1つに対する結果を、1つ以上の次元のそれぞれの、複数の機械学習モデルのサブセットのそれぞれに対する結果との関連性を識別するグラフとして出力するように構成されている。
【0149】
例4A. 例3Aの装置であって、グラフはインパクトグラフを備えている。
【0150】
例5A. 例1A~4Aの任意の組み合わせの装置であって、1つ以上のプロセッサは、複数の機械学習モデルのサブセットのそれぞれに対する結果を、決定木の図形的表現として出力するように構成されている。
【0151】
図6A. 例1A~5Aの任意の組み合わせの装置であって、1つ以上のプロセッサは、1つ以上の次元と、複数の機械学習モデルのそれぞれにより出力される結果との間で決定される相関関係の、関連性閾値との比較に基づいて、複数の機械学習モデルのそれぞれにより出力される結果に対して低い関連性を有する多次元データセットの1つ以上の低関連性次元を決定し、1つ以上の低関連性次元は、結果に対して低い関連性を有していると説明する表示を出力するように更に構成されている。
【0152】
例7A. 例6Aの装置であって、1つ以上のプロセッサは、結果に対して低い関連性を有している1つ以上の低関連性次元を説明する、平易言語での文章を出力するように構成されている。
【0153】
例8A. 例1A~7Aの任意の組み合わせの装置であって、1つ以上のプロセッサは、複数の機械学習モデルの適用の前に、多次元データセットの1つ以上の次元を変換すること控えるように更に構成されている。
【0154】
例9A. 例1A~8Aの任意の組み合わせの装置であって、1つ以上のプロセッサは、複数の機械学習モデルの1つ以上のそれぞれに対する結果に基づいて、対応する結果を説明するために複数のチャートの1つ以上を決定し、最も高くランク付けされたチャートを識別するために、複数のチャートの1つ以上をランク付けし、最も高くランク付けされたチャートを選択し、最も高くランク付けされたチャートをビジュアルチャートとして出力するように更に構成されている。
【0155】
例10A. 例9Aの装置であって、1つ以上のプロセッサは、ビジュアルチャートの形式化を説明する、平易言語での説明を生成し、その説明を出力するように更に構成されている。
【0156】
例11A. 例1A~10Aの任意の組み合わせの装置であって、1つ以上のプロセッサは、装置がどのように複数の機械学習モデルを生成したかを説明するパイプラインレポートを生成し、そのパイプラインレポートを出力するように更に構成されている。
【0157】
例12A. 多次元データセットを解釈する方法であって、方法は、複数の機械学習モデルのそれぞれにより出力される結果を取得するために、この複数の機械学習モデルを多次元データセットに適用することと、多次元データセットの1つ以上の次元の、複数の機械学習モデルのそれぞれにより出力される結果との相関関係を決定することと、1つ以上の次元と、複数の機械学習モデルのそれぞれにより出力される結果との間で決定された相関関係に基づいて、複数の機械学習モデルのサブセットのそれぞれに対する結果を取得するために、複数の機械学習モデルのサブセットを選択することと、複数の機械学習モデルのサブセットのそれぞれに対する結果を出力することを備えている。
【0158】
例13A. 例12Aの方法であって、結果を出力することは、結果を、平易言語を使用する文章として出力することを備えている。
【0159】
例14A. 例12Aと13Aの任意の組み合わせの方法であって、結果を出力することは、複数の機械学習モデルのサブセットの少なくとも1つに対する結果を、1つ以上の次元のそれぞれの、複数の機械学習モデルのサブセットのそれぞれに対する結果との関連性を識別するグラフとして出力することを備えている。
【0160】
例15A. 例14Aの方法であって、グラフはインパクトグラフを備えている。
【0161】
例16A. 例12A~15Aの任意の組み合わせの方法であって、結果を出力することは、複数の機械学習モデルのサブセットのそれぞれに対する結果を、決定木の図形的表現として出力することを備えている。
【0162】
例17A. 例12A~16Aの任意の組み合わせの方法であって、1つ以上の次元と、複数の機械学習モデルのそれぞれにより出力される結果との間で決定される相関関係の、関連性閾値との比較に基づいて、複数の機械学習モデルのそれぞれにより出力される結果に対して低い関連性を有する多次元データセットの1つ以上の低関連性次元を決定することと、1つ以上の低関連性次元は、結果に対して低い関連性を有していると説明する表示を出力することを更に備えている。
【0163】
例18A. 例17Aの方法であって、表示を出力することは、結果に対して低い関連性を有している1つ以上の低関連性次元を説明する、平易言語での文章を出力することを備えている。
【0164】
例19A. 例12A~18Aの任意の組み合わせの方法であって、複数の機械学習モデルの適用の前に、多次元データセットの1つ以上の次元を変換すること控えることを更に備えている。
【0165】
例20A. 例12A~18Aの任意の組み合わせの方法であって、複数の機械学習モデルの1つ以上のそれぞれに対する結果に基づいて、対応する結果を説明するために複数のチャートの1つ以上を決定することと、最も高くランク付けされたチャートを識別するために、複数のチャートの1つ以上をランク付けすることと、最も高くランク付けされたチャートを選択することと、最も高くランク付けされたチャートをビジュアルチャートとして出力することを更に備えている。
【0166】
例21A. 例20Aの方法であって、ビジュアルチャートの形式化を説明する、平易言語での説明を生成することと、その説明を出力することを更に備えている。
【0167】
例22A. 例12A~21Aの任意の組み合わせの方法であって、装置がどのように複数の機械学習モデルを生成したかを説明するパイプラインレポートを生成することと、そのパイプラインレポートを出力することを更に備えている。
【0168】
例23A. 命令を格納している非一時的コンピュータ読み取り可能格納媒体であって、この命令は実行されると1つ以上のプロセッサに、複数の機械学習モデルのそれぞれにより出力される結果を取得するために、この複数の機械学習モデルを多次元データセットに適用させ、多次元データセットの1つ以上の次元の、複数の機械学習モデルのそれぞれにより出力される結果との相関関係を決定させ、1つ以上の次元と、複数の機械学習モデルのそれぞれにより出力される結果との間で決定された相関関係に基づいて、複数の機械学習モデルのサブセットのそれぞれに対する結果を取得するために、複数の機械学習モデルのサブセットを選択させ、複数の機械学習モデルのサブセットのそれぞれに対する結果を出力させる。
【0169】
例1B. データセットにアクセスするように構成されている装置であって、装置は、データセットを格納するように構成されているメモリと、1つ以上のプロセッサを備え、この1つ以上のプロセッサは、自然言語に対する文法を、複数の言語サブサーフェスの階層的配置として定義する自然言語包含階層を特定する言語サブサーフェスを露出し、露出された言語サブサーフェスにより提供される自然言語の部分に準拠する、データセットにアクセスするためのクエリを受信し、クエリを、データセットと関連付けられている正式構文に準拠する1つ以上のステートメントに変換し、1つ以上のステートメントに基づいて、クエリ結果を取得するためにデータセットにアクセスし、クエリ結果を出力するように構成されている。
【0170】
例2B. 例1Bの装置であって、1つ以上のプロセッサは、保管するデータセットの1つ以上の次元を識別するクエリを受信し、クエリを、データセットと関連付けられている正式構文に準拠する1つ以上の選択ステートメントに変換し、1つ以上の選択ステートメントに基づいて、クエリにより識別されたデータセットの1つ以上の次元を含んでいるクエリ結果を取得するためにデータセットにアクセスするように構成されている。
【0171】
例3B. 例1Bと2Bの任意の組み合わせの装置であって、1つ以上のプロセッサは、データセットにアクセスする、露出された言語サブサーフェスにより提供される言語の部分に準拠し、クエリ結果に存在しないデータセットにおける次元を識別する追加クエリを受信し、識別された次元は、クエリ結果に存在しないと決定し、追加クエリを、正式構文に準拠する1つ以上の追加ステートメントに変換し、1つ以上の追加ステートメントに基づいて、および識別された次元はクエリ結果に存在しないと決定することに応答して、追加クエリ結果を取得するためにデータセットにアクセスし、追加クエリ結果を、追加クエリ結果は、クエリ結果からではなく、データセットから取得されたことを示す表示と共に出力するように更に構成されている。
【0172】
例4B. 例1B~3Bの任意の組み合わせの装置であって、データセットは、複数のデータセットの1つのデータセットであって、1つ以上のプロセッサは、クエリは複数のデータセットの複数のデータセットに適用されるかどうかを決定し、クエリは複数のデータセットの複数のデータセットに適用されると決定することに応答して、クエリは複数のデータセットに適用されるという表示を出力するように更に構成されている。
【0173】
例5B. 例1B~4Bの任意の組み合わせの装置であって、クエリは、複数のクエリステートメントを有している多部分クエリを含んでおり、露出された言語サブサーフェスは、クエリを定義するときに、多部分クエリを形成している複数のクエリステートメントが任意の順序で定義可能なように不明瞭さを除去し、1つ以上のプロセッサは、多部分クエリを形成するために複数のクエリステートメントが定義される順序に無関係に、多部分クエリを、同じ1つ以上のステートメントに変換するように構成されている。
【0174】
例6B. 例1B~5Bの任意の組み合わせの装置であって、データセットは、複数のデータセットの第1データセットであって、1つ以上のプロセッサは、クエリが複数のデータセットの第2データセットの次元を識別するクエリステートメントを含んでいるかどうかを決定し、クエリが第2データセットの次元を識別するクエリステートメントを含んでいると決定することに応答して、結合されたデータセットを取得するために、第1データセットと第2データセットを自動的に結合し、1つ以上のステートメントに基づいて、クエリ結果を取得するために、結合されたデータセットにアクセスするように更に構成されている。
【0175】
例7B. 例1B~6Bの任意の組み合わせの装置であって、データセットは複数のデータセットの1つのデータセットであり、1つ以上のプロセッサは、複数のデータセットの1つ以上の次元間の関係を識別し、複数のデータセットの1つ以上の次元間の関係を例示する図を生成し、その図を出力するように更に構成されている。
【0176】
例8B. 例1B~7Bの任意の組み合わせの装置であって、データセットは、複数のデータセットの1つのデータセットであり、1つ以上のプロセッサは、複数のデータセットの1つ以上の次元間の関係を識別し、識別された関係に基づいて、複数のデータセットのそれぞれを表しているノードと、複数のデータセットの1つ以上の次元間の関係を表しているエッジを有しているグラフデータ構造体を生成し、クエリに基づいて、クエリを満たすグラフデータ構造体を通しての最短経路を識別するために、グラフデータ構造体を詳細に検討し、結合されたデータセットを取得するために、データセットと、最短経路に沿って識別された複数のデータセットの1つ以上の追加データセットを自動的に結合し、1つ以上のステートメントに基づいて、クエリ結果を取得するために結合されたデータセットにアクセスするように更に構成されている。
【0177】
例9B. 例8Bの装置であって、1つ以上のプロセッサは、クエリに基づいて、クエリを満たすグラフデータ構造体を通しての追加経路を識別するために、グラフデータ構造体を詳細に検討し、グラフデータ構造体を通しての追加経路を識別する表示を出力するように更に構成されている。
【0178】
例10B. 例9Bの装置であって、表示は、グラフデータ構造体を通しての追加経路を詳細に検討するという結果になる改良されたクエリに対するリンクである。
【0179】
例11B. 例1B~10Bの任意の組み合わせの装置であって、正式構文は構造クエリ言語構文または、Pandasデータフレーム構文を含んでいる。
【0180】
例12B. データセットにアクセスする方法であって、方法は、自然言語に対する文法を、複数の言語サブサーフェスの階層的配置として定義する自然言語包含階層を特定する言語サブサーフェスを露出することと、露出された言語サブサーフェスにより提供される言語の部分に準拠する、データセットにアクセスするためのクエリを受信することと、クエリを、データセットと関連付けられている正式構文に準拠する1つ以上のステートメントに変換することと、1つ以上のステートメントに基づいて、クエリ結果を取得するためにデータセットにアクセスすることと、クエリ結果を出力することを備えている。
【0181】
例13B. 例12Bの方法であって、クエリを受信することは、保管するデータセットの1つ以上の次元を識別するクエリを受信することを備え、クエリを変換することは、クエリを、データセットと関連付けられている正式構文に準拠する1つ以上の選択ステートメントに変換することを備え、データセットにアクセスすることは、1つ以上の選択ステートメントに基づいて、クエリにより識別されたデータセットの1つ以上の次元を含んでいるクエリ結果を取得するためにデータセットにアクセスすることを備えている。
【0182】
例14B. 例12Bと13Bの任意の組み合わせの方法であって、データセットにアクセスする、露出された言語サブサーフェスにより提供される言語の部分に準拠し、クエリ結果に存在しないデータセットにおける次元を識別する追加クエリを受信することと、識別された次元は、クエリ結果に存在しないと決定することと、追加クエリを、正式構文に準拠する1つ以上の追加ステートメントに変換することと、1つ以上の追加ステートメントに基づいて、および識別された次元はクエリ結果に存在しないと決定することに応答して、追加クエリ結果を取得するためにデータセットにアクセスすることと、追加クエリ結果を、追加クエリ結果は、クエリ結果からでなく、データセットから取得されたことを示す表示と共に出力することを更に備えている。
【0183】
例15B. 例12B~14Bの任意の組み合わせの方法であって、データセットは、複数のデータセットの1つのデータセットであって、方法は、クエリは複数のデータセットの複数のデータセットに適用されるかどうかを決定することと、クエリは複数のデータセットの複数のデータセットに適用されると決定することに応答して、クエリは複数のデータセットに適用されるという表示を出力することを更に備えている。
【0184】
例16B. 例12B~15Bの任意の組み合わせの方法であって、クエリは、複数のクエリステートメントを有している多部分クエリを含んでおり、露出された言語サブサーフェスは、クエリを定義するときに、多部分クエリを形成している複数のクエリステートメントが任意の順序で定義可能なように不明瞭さを除去し、クエリを変換することは、多部分クエリを形成するために複数のクエリステートメントが定義される順序に無関係に、多部分クエリを、同じ1つ以上のステートメントに変換することを備えている。
【0185】
例17B. 例12B~16Bの任意の組み合わせの方法であって、データセットは、複数のデータセットの第1データセットであって、方法は、クエリが複数のデータセットの第2データセットの次元を識別するクエリステートメントを含んでいるかどうかを決定することと、クエリが第2データセットの次元を識別するクエリステートメントを含んでいると決定することに応答して、結合されたデータセットを取得するために、第1データセットと第2データセットを自動的に結合することと、1つ以上のステートメントに基づいて、クエリ結果を取得するために、結合されたデータセットにアクセスすることを更に備えている。
【0186】
例18B. 例12B~17Bの任意の組み合わせの方法であって、データセットは複数のデータセットの1つのデータセットであり、方法は、複数のデータセットの1つ以上の次元間の関係を識別することと、複数のデータセットの1つ以上の次元間の関係を例示する図を生成することと、その図を出力することを更に備えている。
【0187】
例19B. 例12B~18Bの任意の組み合わせの方法であって、データセットは、複数のデータセットの1つのデータセットであり、方法は、複数のデータセットの1つ以上の次元間の関係を識別することと、識別された関係に基づいて、複数のデータセットのそれぞれを表しているノードと、複数のデータセットの1つ以上の次元間の関係を表しているエッジを有しているグラフデータ構造体を生成することと、クエリに基づいて、クエリを満たすグラフデータ構造体を通しての最短経路を識別するために、グラフデータ構造体を詳細に検討することと、結合されたデータセットを取得するために、データセットと、最短経路に沿って識別された複数のデータセットの1つ以上の追加データセットを自動的に結合することと、1つ以上のステートメントに基づいて、クエリ結果を取得するために結合されたデータセットにアクセスすることを更に備えている。
【0188】
例20B. 例19Bの方法であって、クエリに基づいて、クエリを満たすグラフデータ構造体を通しての追加経路を識別するために、グラフデータ構造体を詳細に検討することと、グラフデータ構造体を通しての追加経路を識別する表示を出力することを更に備えている。
【0189】
例21B. 例20Bの装置であって、表示は、グラフデータ構造体を通しての追加経路を詳細に検討するという結果になる改良されたクエリに対するリンクである。
【0190】
例22B. 例12B~21Bの任意の組み合わせの方法であって、正式構文は構造クエリ言語構文または、Pandasデータフレーム構文を含んでいる。
【0191】
例23B. 命令を格納している非一時的コンピュータ読み取り可能格納媒体であって、この命令は実行されると1つ以上のプロセッサに、自然言語に対する文法を、複数の言語サブサーフェスの階層的配置として定義する自然言語包含階層を特定する言語サブサーフェスを露出させ、露出された言語サブサーフェスにより提供される言語の部分に準拠する、データセットにアクセスするためのクエリを受信させ、クエリを、データセットと関連付けられている正式構文に準拠する1つ以上のステートメントに変換させ、1つ以上のステートメントに基づいて、クエリ結果を取得するためにデータセットにアクセスさせ、クエリ結果を出力させる。
【0192】
1つ以上の例においては、記述されている機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいて実現できる。ソフトウェアにおいて実現される場合は、機能は1つ以上の命令またはコードとして、コンピュータ読み取り可能媒体に格納または送信でき、ハードウェアに基づく処理ユニットにより実行できる。コンピュータ読み取り可能媒体は、データ格納媒体などのような実体的媒体に対応するコンピュータ読み取り可能格納媒体を含むことができる。データ格納媒体は、本開示において記述されている技術の実現のための命令、コードおよび/またはデータ構造体を取り出すために1つ以上のコンピュータまたは1つ以上のプロセッサによりアクセス可能な任意の利用可能な媒体であってよい。コンピュータプログラム製品は、コンピュータ読み取り可能媒体を含むことができる。
【0193】
同様に、上記の種々の例のそれぞれにおいては、ホスト装置12は方法を実行でき、または、ホスト装置12が実行するように構成されている方法の各ステップを実行するための手段を備えることができるということは理解されるべきである。幾つかの例においては、その手段は1つ以上のプロセッサを備えることができる。幾つかの例においては、1つ以上のプロセッサは、非一時的コンピュータ読み取り可能格納媒体に格納されている命令により構成されている特殊目的プロセッサを表すことができる。言い換えると、符号化の例のセットのそれぞれにおける技術の種々の態様は、命令を格納した非一時的コンピュータ読み取り可能格納媒体を提供でき、この命令は実行されると1つ以上のプロセッサに、ホスト装置12が実行するように構成されている方法を実行させる。
【0194】
例として、そして制限的ではなく、そのようなコンピュータ読み取り可能格納媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気格納装置、フラッシュメモリ、または、所望されるプログラムコードを、命令またはデータ構造体の形状で格納するために使用でき、コンピュータによりアクセス可能な任意の他の媒体を備えることができる。しかし、コンピュータ読み取り可能格納媒体およびデータ格納媒体は、接続、搬送波、信号、または他の一時的媒体は含まず、非一時的、実体的格納媒体を指しているということは理解されるべきである。ここで使用されているようなディスク(disk)およびディスク(disc)としては、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多目的ディスク(DVD)、フロッピーディスク、およびブルーレイディスクが含まれ、ディスク(disk)は通常はデータを磁気的に再生し、一方、ディスク(disc)は、データをレーザにより光学的に再生する。上記の組み合わせもまた、コンピュータ読み取り可能媒体の範囲に含まれるべきである。
【0195】
命令は1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または、他の等価な集積または離散論理回路などのような1つ以上のプロセッサにより実行できる。従って、ここにおいて使用されているような「プロセッサ」という用語は、上述の構造体の何れをも、または、ここにおいて記述されている技術の実現に対して適切である他の構造体の何れをも指すことができる。追加的に、幾つかの例においては、ここにおいて記述されている機能は、符号化および復号化のために構成されている専用ハードウェアおよび/またはソフトウェアモジュール内で提供でき、または、組み合わされているコーデックに組み込むことができる。また、これらの技術は、1つ以上の回路または論理要素において完全に実現できる。
【0196】
本開示の技術は、無線ハンドセット、集積回路(IC)、またはICのセット(例えば、チップセット)を含む、広く多様なデバイスまたは装置において実現できる。種々の構成要素、モジュール、またはユニットが、開示されている技術を実行するように構成されている装置の機能態様を強調するために本開示において記述されているが、それらは、他の異なるハードウェアユニットによる実現を必ずしも要求するわけではない。そうではなく、上述したように、種々のユニットは、コーデックハードウェアユニットにおいて組み合わせることができ、または、上述した1つ以上のプロセッサを含む相互動作が可能なハードウェアユニットの集合体により、適切なソフトウェアおよび/またはファームウェアと連携して提供できる。
【0197】
技術の種々の態様が記述されてきた。技術のこれらの、および他の態様は、下記の請求事項の範囲内である。
図1
図2A
図2B
図2C
図2D
図2E
図2F
図2G
図2H
図2I
図3A
図3B
図3C
図3D
図3E
図3F
図3G
図4
図5
図6
図7
【国際調査報告】