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

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

▶ タブロー ソフトウェア,インコーポレイテッドの特許一覧

特開2023-109814視覚的分析との相互作用のため語用論の原理を適用するシステムおよび方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023109814
(43)【公開日】2023-08-08
(54)【発明の名称】視覚的分析との相互作用のため語用論の原理を適用するシステムおよび方法
(51)【国際特許分類】
   G06F 16/904 20190101AFI20230801BHJP
   G06F 16/34 20190101ALI20230801BHJP
   G06F 40/289 20200101ALI20230801BHJP
【FI】
G06F16/904
G06F16/34
G06F40/289
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023076652
(22)【出願日】2023-05-08
(62)【分割の表示】P 2019525830の分割
【原出願日】2018-05-03
(31)【優先権主張番号】62/500,999
(32)【優先日】2017-05-03
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/804,991
(32)【優先日】2017-11-06
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】508311813
【氏名又は名称】タブロー ソフトウェア,エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】セトラー,ヴィドゥヤ,アール.
(72)【発明者】
【氏名】バタースビー,サラ,イー.
(72)【発明者】
【氏名】トリー,メラニー,ケイ.
(72)【発明者】
【氏名】ゴスヴァイラー,リチャード,シー.,3世
(72)【発明者】
【氏名】チャン,エンジェル,スアン
(72)【発明者】
【氏名】ダイクマン,アイザック,ジェイ.
(72)【発明者】
【氏名】プリンス,エナムル,ハク
(57)【要約】      (修正有)
【課題】視覚的分析との相互作用のため語用論の原理を適用する方法、電子装置及び記憶媒体を提供する。
【解決手段】方法は、データセットの視覚的分析のために自然言語処理を使用し、1つまたは複数のデータベースのクエリの第1の集合を使用してデータベースから読み出されたデータセットに基づいてデータの視覚化を表示し、表示されたデータの視覚化に関連する自然言語コマンドを指定するためのユーザ入力(例えばキーボードまたは音声)を受信し、表示されたデータの視覚化に基づいて、自然言語コマンドから1つまたは複数の独立した分析句を抽出する。方法はさらに、分析句の集合に基づいて自然言語コマンドに関連付けられた1つまたは複数の会話センターの集合を計算し、会話センターの集合に関連する分析関数の集合を計算し、それによって1つまたは複数の関数句の集合を作成し、1つまたは複数の関数句の集合に基づいてデータの視覚化を更新する。
【選択図】図13A
【特許請求の範囲】
【請求項1】
データセットの視覚的分析のために自然言語を使用する方法であって、
ディスプレイ、1つまたは複数のプロセッサ、および前記1つまたは複数のプロセッサによる実行のために構成された1つまたは複数のプログラムを記憶するメモリを有するコンピュータで、
1つまたは複数のクエリの第1の集合を用いてデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示すること、
前記データの視覚化に関連する第1の自然言語コマンドを指定するため第1のユーザ入力を受信すること、
前記第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出すること、
前記1つまたは複数の分析句の第1の集合に基づいて、前記第1の自然言語コマンドに関連する1つまたは複数の会話センターの第1の集合を計算すること、
前記1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それにより1つまたは複数の関数句の第1の集合を作成すること、および
前記1つまたは複数の関数句の第1の集合に基づいて前記データの視覚化を更新すること
を含む方法。
【請求項2】
前記更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信すること、
前記第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出すること、
前記1つまたは複数の分析句の第2の集合に基づいて、前記第2の自然言語コマンドに関連する1つまたは複数の会話センターの一時的な集合を計算すること、
1つまたは複数の移行規則を使用して、前記1つまたは複数の会話センターの第1の集合および前記1つまたは複数の会話センターの一時的な集合から、1つまたは複数の会話センターの第2の集合を導出すること、
1つまたは複数の会話センターの第2の集合に関連する1つまたは複数の分析関数の第2の集合を計算し、それにより1つまたは複数の関数句の第2の集合を作成すること、および
前記1つまたは複数の関数句の第2の集合に基づいて前記データの視覚化を更新すること
をさらに含む、請求項1に記載の方法。
【請求項3】
前記1つまたは複数の会話センターの第1の集合、前記1つまたは複数の会話センターの一時的な集合、および前記1つまたは複数の会話センターの第2の集合の前記会話センターは各々、データフィールド属性またはデータの視覚化特性のいずれかを指定する変数の値を含み、前記1つまたは複数の移行規則を使用することが、
第1の変数が前記1つまたは複数の会話センターの第1の集合に含まれるかどうかを判定すること、
前記第1の変数が前記1つまたは複数の会話センターの一時的な集合に含まれているかどうかを判定すること、
前記第1の変数が前記1つまたは複数の会話センターの第1の集合および/または前記1つまたは複数の会話センターの一時的な集合に含まれるかどうかに基づいて、適用する1つまたは複数の移行規則のそれぞれの移行規則を判定すること、および
それぞれの前記移行規則を適用すること
を含む、請求項2に記載の方法。
【請求項4】
前記1つまたは複数の移行規則が、前記1つまたは複数の会話センターの第1の集合の各会話センターを前記1つまたは複数の会話センターの第2の集合に含め、前記1つまたは複数の会話センターの一時的な集合から前記1つまたは複数の会話センターの第2の集合へ1つまたは複数の会話センターを追加するためのCONTINUE規則を含む、請求項3に記載の方法。
【請求項5】
前記それぞれの移行規則を適用することは、
(i)前記第1の変数が前記1つまたは複数の会話センターの一時的な集合に含まれる、および(ii)前記1つまたは複数の会話センターの第1の集合に前記第1の変数が含まれないという判定に従って、前記1つまたは複数の会話センターの第2の集合に前記第1の変数を含めるように前記CONTINUE規則を適用すること
を含む、請求項4に記載の方法。
【請求項6】
前記1つまたは複数の移行規則が、前記1つまたは複数の会話センターの一時的な集合から前記1つまたは複数の会話センターの第2の集合へ会話センターを追加することなく、前記1つまたは複数の会話センターの第1の集合の各会話センターを前記1つまたは複数の会話センターの第2の集合に保持するためのRETAIN規則を含む、請求項3に記載の方法。
【請求項7】
前記それぞれの移行規則を適用することが、
(i)前記第1の変数が前記1つまたは複数の会話センターの第1の集合に含まれる、および(ii)前記1つまたは複数の会話センターの一時的な集合に前記第1の変数が含まれないという判定に従って、前記1つまたは複数の会話センターの第2の集合に前記1つまたは複数の会話センターの第1の集合の各会話センターを含めるようにRETAIN規則を適用すること
を含む、請求項6に記載の方法。
【請求項8】
前記1つまたは複数の移行規則が、前記1つまたは複数の会話センターの第1の集合の各会話センターを前記1つまたは複数の会話センターの第2の集合に含め、前記1つまたは複数の会話センターの一時的な集合の会話センターと前記1つまたは複数の会話センターの第2の集合の1つまたは複数の会話センターを置き換えるためのSHIFT規則を含む、請求項3に記載の方法。
【請求項9】
前記それぞれの移行規則を適用することが、
(i)前記第1の変数が1つまたは前記複数の会話センターの第1の集合に含まれ、および(ii)前記1つまたは複数の会話センターの一時的な集合に前記第1の変数が含まれないという判定に従って、
前記1つまたは複数の会話センターの第1の集合の前記第1の変数の第1の値が、前記1つまたは複数の会話センターの一時的な集合の前記第1の変数の第2の値と異なるかを判定すること、
前記第1の値が前記第2の値と異なるという判定に従って、前記1つまたは複数の会話センターの第1の集合の各会話センターを前記1つまたは複数の会話センターの第2の集合に含め、前記1つまたは複数の会話センターの第2の集合の前記第1の変数の前記値を前記第2の値と置き換えるためのSHIFT規則を適用すること
を含む、請求項8に記載の方法。
【請求項10】
前記第1の変数に対応するウィジェットが前記ユーザによって削除されたかどうかを判定すること、および
前記ウィジェットが削除されたという前記判定に従って、前記1つまたは複数の会話センターの第1の集合の各会話センターを前記1つまたは複数の会話センターの第2の集合に含め、前記1つまたは複数の会話センターの第2の集合の前記第1の変数の前記値を前記第1の値を含む新しい値と置き換えるためのSHIFT規則を適用すること、
をさらに含む、請求項9に記載の方法。
【請求項11】
前記ユーザが前記第1のデータセットとは異なるデータセットを選択したかどうかをさらに判定すること、
前記ユーザが前記データの視覚化をリセットしたかどうかを判定すること、および
(i)前記ユーザが異なるデータセットを選択した、または(ii)前記ユーザが前記データの視覚化をリセットしたという判定に従って、前記1つまたは複数の会話センターの第1の集合、前記1つまたは複数の会話センターの一時的な集合、および前記1つまたは複数の会話センターの第2の集合のそれぞれを、会話センターを含まない空の集合へリセットすること
をさらに含む、請求項1に記載の方法。
【請求項12】
前記1つまたは複数の関数句の第1の集合に基づいて前記データの視覚化を更新することが、
前記1つまたは複数の関数句の第1の集合に基づいて前記1つまたは複数のクエリの第2の集合を使用してデータベースに再度クエリし、それによって第2のデータセットを読み出すこと、および
前記第2のデータセットに基づいて前記データの視覚化を更新すること
を含む、請求項1に記載の方法。
【請求項13】
前記第2のデータセットを使用して新しいデータの視覚化を作成し表示することをさらに含む、請求項12に記載の方法。
【請求項14】
前記1つまたは複数の関数句の第2の集合に基づいて前記データの視覚化を更新することが、
前記1つまたは複数の関数句の第2の集合に基づいて前記1つまたは複数のクエリの第3の集合を使用してデータベースに再度クエリし、それによって第3のデータセットを読み出すこと、および
前記第3のデータセットに基づいて前記データの視覚化を更新すること
を含む、請求項2に記載の方法。
【請求項15】
前記第3のデータセットを使用して新しいデータの視覚化を作成し表示することをさらに含む、請求項14に記載の方法。
【請求項16】
ディスプレイ、
1つまたは複数のプロセッサ、
メモリ、および
1つまたは複数のプログラムであって、前記メモリに格納され、前記1つまたは複数のプロセッサによって実行されるように構成され、
1つまたは複数のクエリの第1の集合を用いてデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示すること、
前記データの視覚化に関連する第1の自然言語コマンドを指定するため第1のユーザ入力を受信すること、
前記第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出すること、
前記1つまたは複数の分析句の第1の集合に基づいて、前記第1の自然言語コマンドに関連する1つまたは複数の会話センターの第1の集合を計算すること、
前記1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それにより1つまたは複数の関数句の第1の集合を作成すること、および
前記1つまたは複数の関数句の第1の集合に基づいて前記データの視覚化を更新すること
の命令を含む電子装置。
【請求項17】
前記1つまたは複数のプログラムが、
前記更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信すること、
前記第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出すること、
前記1つまたは複数の分析句の第2の集合に基づいて、前記第2の自然言語コマンドに関連する1つまたは複数の会話センターの一時的な集合を計算すること、
1つまたは複数の移行規則を使用して、前記1つまたは複数の会話センターの第1の集合および前記1つまたは複数の会話センターの一時的な集合から、1つまたは複数の会話センターの第2の集合を導出すること、
1つまたは複数の会話センターの第2の集合に関連する1つまたは複数の分析関数の第2の集合を計算し、それにより1つまたは複数の関数句の第2の集合を作成すること、および
前記1つまたは複数の関数句の第2の集合に基づいて前記データの視覚化を更新すること
の命令をさらに含む、請求項16に記載の電子装置。
【請求項18】
ディスプレイを備えた電子装置によって実行されるように構成された1つまたは複数のプログラムを格納する非一時的コンピュータ可読記憶媒体であって、前記1つまたは複数のプログラムが、
1つまたは複数のクエリの第1の集合を用いてデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示すること、
前記データの視覚化に関連する第1の自然言語コマンドを指定するため第1のユーザ入力を受信すること、
前記第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出すること、
前記1つまたは複数の分析句の第1の集合に基づいて、前記第1の自然言語コマンドに関連する1つまたは複数の会話センターの第1の集合を計算すること、
前記1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それにより1つまたは複数の関数句の第1の集合を作成すること、および
前記1つまたは複数の関数句の第1の集合に基づいて前記データの視覚化を更新すること
の命令をさらに含む非一時的コンピュータ可読記憶媒体。
【請求項19】
前記1つまたは複数のプログラムが、
前記更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信すること、
前記第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出すること、
前記1つまたは複数の分析句の第2の集合に基づいて、前記第2の自然言語コマンドに関連する1つまたは複数の会話センターの一時的な集合を計算すること、
1つまたは複数の移行規則を使用して、前記1つまたは複数の会話センターの第1の集合および前記1つまたは複数の会話センターの一時的な集合から、1つまたは複数の会話センターの第2の集合を導出すること、
1つまたは複数の会話センターの第2の集合に関連する1つまたは複数の分析関数の第2の集合を計算し、それにより1つまたは複数の関数句の第2の集合を作成すること、および
前記1つまたは複数の関数句の第2の集合に基づいて前記データの視覚化を更新すること
の命令をさらに含む、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
データセットの視覚的分析のために自然言語を使用する方法であって、
ディスプレイ、1つまたは複数のプロセッサ、および前記1つまたは複数のプロセッサによる実行のために構成された1つまたは複数のプログラムを記憶するメモリを有するコンピュータで、
1つまたは複数のクエリの第1の集合を用いてデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示すること、
前記データの視覚化に関連する第1の自然言語コマンドを指定するため第1のユーザ入力を受信すること、
前記第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出すること、
前記1つまたは複数の分析句の第1の集合に基づいて、前記第1の自然言語コマンドに関連する1つまたは複数の会話センターの第1の集合を計算すること、
前記1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それにより1つまたは複数の関数句の第1の集合を作成すること、
前記1つまたは複数の関数句の第1の集合に基づいて前記データの視覚化を更新すること、
前記更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信すること、
前記第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出すること、
前記1つまたは複数の分析句の第2の集合に基づいて、前記第2の自然言語コマンドに関連する1つまたは複数の会話センターの一時的な集合を計算すること、
前記1つまたは複数の分析句の第1の集合と前記1つまたは複数の分析句の第2の集合との間の結束を計算し、前記結束に基づいて、前記1つまたは複数の会話センターの第1の集合および前記1つまたは複数の会話センターの一時的な集合から、1つまたは複数の会話センターの第2の集合を導出すること、
1つまたは複数の会話センターの第2の集合に関連する1つまたは複数の分析関数の第2の集合を計算し、それにより1つまたは複数の関数句の第2の集合を作成すること、および
前記1つまたは複数の関数句の第2の集合に基づいて前記データの視覚化を更新すること
を含む方法。
【請求項21】
前記結束に基づいて前記結束を計算することおよび前記1つまたは複数の会話センターの第2の集合を導出することが、
前記1つまたは複数の分析句の第2の集合の句構造を識別すること、
および前記句構造に基づいて1つまたは複数の語用論の形式を識別すること、および
1つまたは複数の語用論の形式に基づいて、前記1つまたは複数の会話センターの第1の集合および前記1つまたは複数の会話センターの一時的な集合から前記1つまたは複数の会話センターの第2の集合を導出すること、
を含む、請求項20に記載の方法。
【請求項22】
前記句構造を識別することが、
確率的文法を適用して前記第2の自然言語コマンドを解析し、それによって解析された出力を取得すること、および
前記解析された出力を対応するカテゴリカル属性とデータ属性に分解すること
を含む、請求項21に記載の方法。
【請求項23】
前記第2の自然言語コマンドを解析することは、自然言語ツールキットによって提供される品詞APIを使用することによって構文構造を推定することをさらに含む、請求項22に記載の方法。
【請求項24】
前記1つまたは複数の形態の語用論を識別することは、1つまたは複数の言語要素が前記句構造に存在しないかどうかを判定することによって、第2の自然言語コマンドが不完全な発話であるかどうかを判定することを含み、
前記1つまたは複数の会話センターの第2の集合を導出することは、
前記第2の自然言語コマンドが不完全な発話であるという前記判定に従って、
前記1つまたは複数の会話センターの第1の集合の会話センターの第1のサブセットを判定すること、前記会話センターの第1のサブセットは、前記句構造に存在しない前記1つまたは複数の言語要素に対応する、および
前記1つまたは複数の会話センターの一時的な集合を前記会話センターの第1のサブセットと組み合わせることによって、前記1つまたは複数の会話センターの第2の集合を計算すること
を含む、請求項21に記載の方法。
【請求項25】
前記1つまたは複数の形態の語用論を識別することは、1つまたは複数の照応参照が前記句構造に存在するかどうかを判定することによって、前記第2の自然言語コマンドが参照表現であるかどうかを判定することを含み、
前記1つまたは複数の会話センターの第2の集合を導出することは、
前記第2の自然コマンドが参照表現であるという前記判定に従って、
前記1つまたは複数の会話センターの第1の集合を検索して、1つまたは複数の照応参照の第1の照応参照を含む第2の自然言語コマンドの句チャンクに対応する会話センターの第1のサブセットを見つけること、および
前記1つまたは複数の会話センターの一時的な集合と前記会話センターの第1のサブセットとに基づいて、前記1つまたは複数の会話センターの第2の集合を計算すること
を含む、請求項21に記載の方法。
【請求項26】
前記第1の照応参照が前記第2の自然言語コマンドの動詞を伴うかどうかを判定すること、
前記照応参照が動詞に伴われるという判定に従って、
動作動詞を参照する第1のアクション会話センターを見つける前記1つまたは複数の会話センターの第1の集合を検索すること、および
前記1つまたは複数の会話センターの一時的な集合および前記会話センターの第1のサブセット、および第1のアクション会話センターに基づいて、前記1つまたは複数の会話センターの第2の集合を計算すること
をさらに含む、請求項25に記載の方法。
【請求項27】
前記第1の照応参照が、前記環境のいくつかの対象を示す判定的参照であるかどうかを判定すること、
照応参照が厳密参照であるという判定に従って、1つまたは複数の会話センターの一時的な集合、および前記対象の特性に基づいて、前記1つまたは複数の会話センターの第2の集合を計算すること
をさらに含む、請求項25に記載の方法。
【請求項28】
前記第1の照応参照が、前記更新されたデータの視覚化における視覚化特性への参照であるかどうかを判定すること、
照応参照が厳密参照であるという判定に従って、1つまたは複数の会話センターの一時的な集合、および前記視覚化特性に関連するデータに基づいて、前記1つまたは複数の会話センターの第2の集合を計算すること
をさらに含む、請求項25に記載の方法。
【請求項29】
前記1つまたは複数の形態の語用論を識別することは、前記句構造が1つまたは複数の所定の修復発話に対応するかどうかを判定することによって、前記第2の自然言語コマンドが修復発話であるかどうかを判定することを含み、
前記1つまたは複数の会話センターの第2の集合を導出することが、
前記第2の自然言語コマンドが修復発話であるという前記判定に従って、
前記1つまたは複数の会話センターの一時的な集合に基づいて、前記1つまたは複数の会話センターの第2の集合を計算すること、および
前記1つまたは複数の所定の修復発話および前記句構造に基づいて、前記1つまたは複数の会話センターの第2の集合の1つまたは複数のデータ属性を更新すること
を含む、請求項21に記載の方法。
【請求項30】
前記句構造が修復発話に対応するかどうかを判定し、データの視覚化の表示に関するデフォルト動作を変更すること、および
前記句構造が修復発話に対応し、デフォルトの挙動を変更する判定に従って表示に関する前記デフォルトの挙動を変更すること
をさらに含む、請求項29に記載の方法。
【請求項31】
前記1つまたは複数の形態の語用論を識別することは、(i)前記句構造の接続詞の明示的または暗黙的な存在を判定することと、(ii)前記1つまたは複数の会話センターの一時的な集合が、前記1つまたは複数の会話センターの第1の集合の各会話センターを含むかどうかを判定することによって、前記第2の自然言語コマンドが連言表現であるかどうかを判定することを含み、
前記1つまたは複数の会話センターの第2の集合を導出することが、
前記第2の自然言語コマンドが連言表現であるという前記判定に従って、前記1つまたは複数の会話センターの一時的な集合に基づいて前記1つまたは複数の会話センターの第2の集合を計算すること、
を含む、請求項21に記載の方法。
【請求項32】
前記第2の自然言語コマンドが複数の連言を有するかどうかを判定すること、および
前記第2の自然言語コマンドが1つより多い連言を有するという判定に従って、前記第2の自然言語コマンドを線形化することによって前記1つまたは複数の分析関数の第2の集合を計算すること
をさらに含む、請求項31に記載の方法。
【請求項33】
前記第2の自然言語コマンドを線形化することが、
前記第2の自然言語コマンドのための解析木を生成すること、
第1の分析句および第2の分析句を抽出するために前記解析木を後順にトラバースすること、この場合前記第1の分析句および前記第2の分析句は、前記解析木内の隣接するノードである、
前記第1の分析句および前記第2の分析句にそれぞれ対応する第1の分析関数および第2の分析関数を計算すること、および
前記第1の分析関数および前記第2の分析関数の1つまたは複数の特性に基づいて1つまたは複数の論理演算子を適用することによって前記第1の分析関数を前記第2の分析関数と組み合わせること、この場合前記1つまたは複数の特性には、属性タイプ、演算子タイプ、および値が含まれること
を含む、請求項13に記載の方法。
【請求項34】
前記第1の分析関数は、第1の属性、第1の演算子、および第1の値を含み、
前記第2の分析関数は、第2の属性、第2の演算子、および第2の値を含み、
前記第1の分析関数と前記第2の分析関数とを組み合わせることは、
前記第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、および前記第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、
前記第1の属性および前記第2の属性が同一であることを判定すること、および
前記第1の属性および前記第2の属性が同一であり、かつ両方ともカテゴリ型属性であるとの判定に従って、前記第1の分析関数と前記第2の分析関数とを結合するために和演算子を適用すること
を含む、請求項33に記載の方法。
【請求項35】
前記第1の分析関数は、第1の属性、第1の演算子、および第1の値を含み、
前記第2の分析関数は、第2の属性、第2の演算子、および第2の値を含み、
前記第1の分析関数と前記第2の分析関数とを組み合わせることは、
前記第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、および前記第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、
前記第1の属性および前記第2の属性が同一であることを判定すること、および
前記第1の属性および前記第2の属性が同一ではないとの判定に従って、前記第1の分析関数と前記第2の分析関数とを結合するために前記交差演算子を適用すること
を含む、請求項33に記載の方法。
【請求項36】
前記第1の分析関数は、第1の属性、第1の演算子、および第1の値を含み、
前記第2の分析関数は、第2の属性、第2の演算子、および第2の値を含み、
前記第1の分析関数と前記第2の分析関数とを組み合わせることは、
前記第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、および前記第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、
前記第1の属性および前記第2の属性が同一であることを判定すること、および
前記第1の属性および前記第2の属性が同一であり、かつ両方とも順序型属性であるという判定に従って、
前記第1の演算子と前記第2の演算子の前記演算子タイプを判定すること、および
前記第1の演算子および前記第2の演算子が両方とも等価演算子であるという判定に従って、前記第1の分析関数と前記第2の分析関数とを結合するために前記和演算子を適用すること
を含む、請求項33に記載の方法。
【請求項37】
前記第1の分析関数は、第1の属性、第1の演算子、および第1の値を含み、
前記第2の分析関数は、第2の属性、第2の演算子、および第2の値を含み、
前記第1の分析関数と前記第2の分析関数とを組み合わせることは、
前記第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、および前記第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、
前記第1の属性および前記第2の属性が同一であることを判定すること、および
前記第1の属性および前記第2の属性が同一であり、かつ両方とも順序型属性であるという判定に従って、
前記第1の演算子と前記第2の演算子の前記演算子タイプを判定すること、および
前記第1の演算子が「相対的に小さい」演算子であり、前記第2の演算子が「相対的に大きい」演算子であるという判定に従って、
前記第1の値が前記第2の値より小さいかどうかを判定すること、および
前記第1の値が前記第2の値より小さいという判定に従って、前記第1の分析関数と前記第2の分析関数とを結合するために前記和演算子を適用すること
を含む、請求項33に記載の方法。
【請求項38】
前記第1の分析関数は、第1の属性、第1の演算子、および第1の値を含み、
前記第2の分析関数は、第2の属性、第2の演算子、および第2の値を含み、
前記第1の分析関数と前記第2の分析関数とを組み合わせることは、
前記第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、および前記第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、
前記第1の属性および前記第2の属性が同一であることを判定すること、および
前記第1の属性および前記第2の属性が同一であり、かつ両方とも順序型属性であるという判定に従って、
前記第1の演算子と前記第2の演算子の前記演算子タイプを判定すること、および
前記第1の演算子が「相対的に大きい」演算子であり、前記第2の演算子が「相対的に小さい」演算子であるという判定に従って、
前記第1の値が前記第2の値より小さいかどうかを判定すること、および
前記第1の値が前記第2の値より小さいという判定に従って、前記第1の分析関数と前記第2の分析関数とを結合するために前記交差演算子を適用すること
を含む、請求項33に記載の方法。
【請求項39】
前記1つまたは複数の抽出された分析句の第2の集合と前記更新されたデータの視覚化に含まれるデータの1つまたは複数の属性との間の意味論的関連性を計算し、前記1つまたは複数の分析句の第2の集合に関連する分析関数を計算し、それによって、前記意味論上関連する1つまたは複数のデータの属性に基づいて、前記1つまたは複数の関数句の第2の集合を作成すること
をさらに含む、請求項20に記載の方法。
【請求項40】
意味論的関連性を計算することが、
テキストの大きなコーパスで第1の中立ネットワークモデルを訓練し、それによって単語の埋め込みを学習すること、
第2のニューラルネットワークモデルを使用して、1つまたは複数の分析句の第2の集合の第1の句の第1の単語についての第1の単語ベクトルを計算すること、前記第1の単語ベクトルは前記単語埋め込みに対して前記第1の単語をマッピングする、
前記第2のニューラルネットワークモデルを使用して、前記1つまたは複数のデータ属性のうちの第1のデータ属性について第2のワードベクトルを計算すること、前記第2のワードベクトルは、前記第1のデータ属性を前記ワード埋め込みにマッピングする、および
類似性メトリックを使用して、前記第1の単語ベクトルと前記第2の単語ベクトルとの間の関連性を計算すること
を含む、請求項39に記載の方法。
【請求項41】
前記第1のニューラルネットワークモデルが、Word2vec(商標)モデルを含む、請求項40に記載の方法。
【請求項42】
前記第2のニューラルネットワークモデルがリカレントニューラルネットワークモデルを含む、請求項40に記載の方法。
【請求項43】
前記類似性メトリックは、少なくとも(i)前記第1の単語ベクトルと前記第2の単語ベクトルとに関連する単語の意味の間のウー・パーマー距離、(ii)重み係数、および(iii)前記第1の単語ベクトルと前記第2の単語ベクトル間のペアワイズ余弦距離に基づく、請求項40に記載の方法。
【請求項44】
分析関数を計算することが、
公に利用可能な辞書から前記1つまたは複数の分析句の第2の集合の単語の定義を取得し、
自然言語ツールキットによって提供される品詞APIを使用しながら前記単語の定義が1つまたは複数の事前の定義を含むかどうか判定し、
前記単語の定義が1つまたは複数の事前定義の形容詞を含むという前記判定に従って、前記1つまたは複数の事前定義の形容詞を1つまたは複数の分析関数にマッピングすること
を含む、請求項39に記載の方法。
【請求項45】
ディスプレイ、
1つまたは複数のプロセッサ、
メモリ、および
1つまたは複数のプログラムであって、前記メモリに格納され、前記1つまたは複数のプロセッサによる実行のために構成され、
1つまたは複数のクエリの第1の集合を用いてデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示すること、
前記データの視覚化に関連する第1の自然言語コマンドを指定するため第1のユーザ入力を受信すること、
前記第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出すること、
前記1つまたは複数の分析句の第1の集合に基づいて、前記第1の自然言語コマンドに関連する1つまたは複数の会話センターの第1の集合を計算すること、
前記1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それにより1つまたは複数の関数句の第1の集合を作成すること、
前記1つまたは複数の関数句の第1の集合に基づいて前記データの視覚化を更新すること、
前記更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信すること、
前記第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出すること、
前記1つまたは複数の分析句の第2の集合に基づいて、前記第2の自然言語コマンドに関連する1つまたは複数の会話センターの一時的な集合を計算すること、
前記1つまたは複数の分析句の第1の集合と前記1つまたは複数の分析句の第2の集合との間の結束を計算すること、
前記結束に基づいて、前記1つまたは複数の会話センターの第1の集合および前記1つまたは複数の会話センターの一時的な集合から、1つまたは複数の会話センターの第2の集合を導出すること、
1つまたは複数の会話センターの第2の集合に関連する1つまたは複数の分析関数の第2の集合を計算し、それにより1つまたは複数の関数句の第2の集合を作成すること、および
前記1つまたは複数の関数句の第2の集合に基づいて前記データの視覚化を更新すること
の命令を含む1つまたは複数のプログラム
を含む電子装置。
【請求項46】
ディスプレイを備えた電子装置によって実行されるように構成された1つまたは複数のプログラムを格納する非一時的コンピュータ可読記憶媒体であって、前記1つまたは複数のプログラムが、
1つまたは複数のクエリの第1の集合を用いてデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示すること、
前記データの視覚化に関連する第1の自然言語コマンドを指定するため第1のユーザ入力を受信すること、
前記第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出すること、
前記1つまたは複数の分析句の第1の集合に基づいて、前記第1の自然言語コマンドに関連する1つまたは複数の会話センターの第1の集合を計算すること、
前記1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それにより1つまたは複数の関数句の第1の集合を作成すること、
前記1つまたは複数の関数句の第1の集合に基づいて前記データの視覚化を更新すること、
前記更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信すること、
前記第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出すること、
前記1つまたは複数の分析句の第2の集合に基づいて、前記第2の自然言語コマンドに関連する1つまたは複数の会話センターの一時的な集合を計算すること、
前記1つまたは複数の分析句の第1の集合と前記1つまたは複数の分析句の第2の集合との間の結束を計算すること、
前記結束に基づいて、前記1つまたは複数の会話センターの第1の集合および前記1つまたは複数の会話センターの一時的な集合から、1つまたは複数の会話センターの第2の集合を導出すること、
1つまたは複数の会話センターの第2の集合に関連する1つまたは複数の分析関数の第2の集合を計算し、それにより1つまたは複数の関数句の第2の集合を作成すること、および
前記1つまたは複数の関数句の第2の集合に基づいて前記データの視覚化を更新すること
の命令を含む非一時的コンピュータ可読記憶媒体。
【請求項47】
データセットの視覚的分析のために自然言語を使用する方法であって、
ディスプレイ、1つまたは複数のプロセッサ、および前記1つまたは複数のプロセッサによる実行のために構成された1つまたは複数のプログラムを記憶するメモリを有するコンピュータで、
1つまたは複数のクエリの第1の集合を用いてデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示すること、
前記データの視覚化に関連する第1の自然言語コマンドを指定するため第1のユーザ入力を受信すること、
前記第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出すること、
前記1つまたは複数の分析句の第1の集合に基づいて、前記第1の自然言語コマンドに関連する1つまたは複数の会話センターの第1の集合を計算すること、
前記1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それにより1つまたは複数の関数句の第1の集合を作成すること、
前記1つまたは複数の関数句の第1の集合に基づいて前記データの視覚化を更新すること、
前記更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信すること、
前記第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出すること、
前記1つまたは複数の分析句の第2の集合に基づいて、前記第2の自然言語コマンドに関連する1つまたは複数の会話センターの一時的な集合を計算すること、
1つまたは複数の移行規則を使用して、前記1つまたは複数の会話センターの第1の集合および前記1つまたは複数の会話センターの一時的な集合から、1つまたは複数の会話センターの第2の集合を導出すること、および
前記1つまたは複数の会話センターの第2の集合に基づいて前記データの視覚化を更新すること
を含む方法。
【請求項48】
前記1つまたは複数の会話センター第2の集合に基づいて前記データの視覚化を更新することは、
前記1つ以上の会話センターの第2の集合に対応する1つ以上のデータ属性を判定すること、
表示されたデータの視覚化を走査して、その特性が前記1つまたは複数のデータ属性の第1のデータ属性に対応するデータのマークを含む前記表示されたデータの視覚化の1つまたは複数を識別すること、および
その特性が前記第1のデータ属性に対応する前記データのマークを強調表示すること
を含む、請求項47に記載の方法。
【請求項49】
その特性が前記1つまたは複数のデータ属性に対応しないデータのマークを含む前記表示されたデータの視覚化から生じるフィルタリングをさらに含む、請求項48に記載の方法。
【請求項50】
前記データのマークをフィルタリングするか強調表示するかどうかを判定するためのユーザ入力を受信し、前記判定に基づいて前記表示されたデータの視覚化の前記データのマークをフィルタリングまたは強調表示することをさらに含む請求項49に記載の方法。
【請求項51】
前記視覚化特性は、色、サイズ、および形状のうちの1つまたは複数を含む、請求項48に記載の方法。
【請求項52】
前記視覚化特性はデータのマークの視覚的符号化に対応する、請求項48に記載の方法。
【請求項53】
前記視覚的符号化が、色、サイズ、および形状のうちの1つまたは複数である、請求項52に記載の方法。
【請求項54】
前記表示されたデータの視覚化のいずれもがその特性が前記第1のデータ属性に対応するデータのマークを含まないと判定すること、
前記表示されたデータの視覚化のいずれもがその特性が前記第1のデータ属性に対応するデータのマークを含まないという判定に従って、
前記第1のデータ属性を用いて新しいデータの視覚化の詳細を生成すること、および
前記新しいデータの視覚化を表示すること
をさらに含む、請求項48に記載の方法。
【請求項55】
前記新しいデータの視覚化を表示することは、
前記詳細に基づいて図表のタイプを判定すること、および
前記図表を生成して表示すること
をさらに含む、請求項54に記載の方法。
【請求項56】
前記図表が、他のデータの視覚化と自動的に調整される、二次元グリッドベースのレイアウトアルゴリズムを使用して配置される、請求項55に記載の方法。
【請求項57】
前記1つまたは複数の会話センターの第2の集合に関連する1つまたは複数の分析関数の第2の集合を計算し、それにより1つまたは複数の関数句の第2の集合を作成すること、
前記1つまたは複数の関数句の第2の集合から第1の関数句を選択すること、前記第1の関数句は、パラメータ化されたデータ選択基準を含む、
前記パラメータ化されたデータ選択基準の前記パラメータの値に対する初期の範囲を選択すること、
前記パラメータ化されたデータ選択基準に対応する編集可能なユーザインターフェース制御を表示すること、前記ユーザインターフェース制御は前記パラメータの前記現在の値を表示すること、および
前記第2の自然言語コマンドの前記クエリの順序に基づいて1つまたは複数の編集可能なユーザインターフェース制御の表示されたセットを順序付けること、前記クエリの順序は前記第2の自然言語コマンドからの前記1つまたは複数の分析句の第2の集合を抽出している間に推論される、
をさらに含む、請求項47に記載の方法。
【請求項58】
前記ユーザインターフェース制御は、前記第1の関数句の調整を可能にする、請求項57に記載の方法。
【請求項59】
前記ユーザインターフェース制御は、ユーザが前記第1の関数句を調整することを可能にするスライダを表示する、請求項58に記載の方法。
【請求項60】
前記1つまたは複数の編集可能なユーザインターフェース制御の表示されたセットを順序付けることが、テキスト内の小さなワードスケールの視覚化の前記コンパクトな配置を容易にするライブラリを使用することをさらに含む、請求項57に記載の方法。
【請求項61】
前記ライブラリがSparklificator(商標)である、請求項60記載の方法。
【請求項62】
前記1つまたは複数の分析句の第2の集合の前記分析句のいずれにも対応しない前記第2の自然言語コマンドの第1のトークンを判定すること、
前記第1のトークンを前記第1のデータセットの1つまたは複数の特徴と比較することによって、検索ライブラリを使用して、前記第1のトークンに対応する正しく綴られた名辞を検索すること、
第3の自然言語コマンドを取得するために、前記第2の自然言語コマンドの前記第1のトークンを前記正しく綴られた名辞に置き換えること、および
前記第3の自然言語コマンドから前記1つまたは複数の分析句の第2の集合を抽出すること
をさらに含む、請求項47に記載の方法。
【請求項63】
前記1つまたは複数の特徴は、前記第1のデータセットのデータ属性、セル値、および関連キーワードを含む、請求項62に記載の方法。
【請求項64】
前記検索ライブラリがFuse.js(商標)である、請求項62に記載の方法。
【請求項65】
前記第1のトークンに対応する正しく綴られた名辞がないかどうか判定すること、および
前記第1のトークンに対応する正しく綴られた名辞がないという判定に従って、
前記第2の自然言語コマンドを、解析木を取得するために解析すること、
前記第1のトークンに対応する前記木の部分を除去するための前記解析木をプルーニングすること、
前記プルーニングされた解析木に基づいて、前記第2の集合の1つまたは複数の分析句を抽出すること
をさらに含む、請求項62に記載の方法。
【請求項66】
前記第1のトークンが認識されなかったために前記第2の自然言語コマンドから削除されたことを示すテキストフィードバックを生成することをさらに含む、請求項65に記載の方法。
【請求項67】
前記第1のトークンを表示することをさらに含む、請求項62に記載の方法。
【請求項68】
前記第2の自然言語コマンドの前記第1のトークンを前記正しく綴られた名辞に置き換えたことを示すテキストフィードバックを生成することをさらに含む、請求項62に記載の方法。
【請求項69】
前記正しく綴られた名辞を表示および強調表示することをさらに含む請求項68に記載の方法。
【請求項70】
ディスプレイ、
1つまたは複数のプロセッサ、
メモリ、および
1つまたは複数のプログラムであって、前記メモリに格納され、前記1つまたは複数のプロセッサによる実行のために構成され、
1つまたは複数のクエリの第1の集合を用いてデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示すること、
前記データの視覚化に関連する第1の自然言語コマンドを指定するため第1のユーザ入力を受信すること、
前記第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出すること、
前記1つまたは複数の分析句の第1の集合に基づいて、前記第1の自然言語コマンドに関連する1つまたは複数の会話センターの第1の集合を計算すること、
前記1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それにより1つまたは複数の関数句の第1の集合を作成すること、
前記1つまたは複数の関数句の第1の集合に基づいて前記データの視覚化を更新すること、
前記更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信すること、
前記第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出すること、
前記1つまたは複数の分析句の第2の集合に基づいて、前記第2の自然言語コマンドに関連する1つまたは複数の会話センターの一時的な集合を計算すること、
1つまたは複数の移行規則を使用して、前記1つまたは複数の会話センターの第1の集合および前記1つまたは複数の会話センターの一時的な集合から、1つまたは複数の会話センターの第2の集合を導出すること、および
前記1つまたは複数の会話センターの第2の集合に基づいて前記データの視覚化を更新することの命令を含み、前記更新することは、
前記1つまたは複数の会話センターの第2の集合に対応する1つまたは複数のデータ属性を判定すること、
表示されたデータの視覚化を走査して、その特性が前記1つまたは複数のデータ属性の第1のデータ属性に対応するデータのマークを含む前記表示されたデータの視覚化の1つまたは複数を識別すること、および
その特性が前記第1のデータ属性に対応する前記データのマークを強調表示すること
を含む
1つまたは複数のプログラム
を含む電子装置。
【請求項71】
ディスプレイを備えた電子装置によって実行されるように構成された1つまたは複数のプログラムを格納する非一時的コンピュータ可読記憶媒体であって、1つまたは複数のプログラムが、
1つまたは複数のクエリの第1の集合を用いてデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示すること、
前記データの視覚化に関連する第1の自然言語コマンドを指定するため第1のユーザ入力を受信すること、
前記第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出すること、
前記1つまたは複数の分析句の第1の集合に基づいて、前記第1の自然言語コマンドに関連する1つまたは複数の会話センターの第1の集合を計算すること、
前記1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それにより1つまたは複数の関数句の第1の集合を作成すること、
前記1つまたは複数の関数句の第1の集合に基づいて前記データの視覚化を更新すること、
前記更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信すること、
前記第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出すること、
前記1つまたは複数の分析句の第2の集合に基づいて、前記第2の自然言語コマンドに関連する1つまたは複数の会話センターの一時的な集合を計算すること、
1つまたは複数の移行規則を使用して、前記1つまたは複数の会話センターの第1の集合および前記1つまたは複数の会話センターの一時的な集合から、1つまたは複数の会話センターの第2の集合を導出すること、および
前記1つまたは複数の会話センターの第2の集合に基づいて前記データの視覚化を更新することの命令を含み、前記更新することは、
前記1つまたは複数の会話センターの第2の集合に対応する1つまたは複数のデータ属性を判定すること、
表示されたデータの視覚化を走査して、その特性が前記1つまたは複数のデータ属性の第1のデータ属性に対応するデータのマークを含む前記表示されたデータの視覚化の1つまたは複数を識別すること、および
その特性が前記第1のデータ属性に対応する前記データのマークを強調表示すること
を含む
非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 開示された実装形態は、概してデータの視覚化に関し、より具体的には、ユーザが自然言語インターフェースを使用してデータセットと対話し、データセットを探索することを可能にするシステム、方法、およびユーザインターフェースに関する。
【背景技術】
【0002】
[0002] データ視覚化アプリケーションを使用すると、ユーザは分布、傾向、外れ値、およびビジネス上の決定を下すのに重要なその他の要因を含む、データセットを視覚的に理解できる。一部のデータセットは非常に大きいか複雑で、多くのデータフィールドを含む。複数のデータの視覚化をしたダッシュボードなど、様々なツールを使用してデータの理解および分析を促すことができる。ただし、複雑なユーザインターフェース内では、一部の機能は、使用が困難な場合や見つけにくい場合がある。ほとんどのシステムはクエリに応答して非常に基本的なインタラクティブな視覚化のみをリターンし、他のシステムは効果的なクエリを作成するために専門家のモデリングを必要とする。他のシステムでは単純なクローズドエンドの質問を必要とし、それから単一のテキストの回答または静的な視覚化をリターンすることしかできない。
【発明の概要】
【発明が解決しようとする課題】
【0003】
[0003] したがって、ユーザがデータ視覚化アプリケーションによって提供される機能を効果的に利用することを可能にするツールが必要とされている。この問題に対する1つの解決策は、自然言語クエリに対するグラフィカルな回答を提供する対話型クエリダイアログのためのデータ視覚化アプリケーションの一部として(例えば、データ視覚化アプリケーションのためのユーザインターフェース内に)自然言語インターフェースを提供することである。自然言語インターフェースにより、ユーザは通常の質問やコマンドを使用して複雑な機能にアクセスできる。質問や洞察は、以前の質問や人間が見るデータのパターンから生じることがよくある。対話動作を会話としてモデル化することによって、自然言語インターフェースは語用論の原則を適用して視覚分析との対話を向上させることができる。発話の文法的および字句的構造およびそれらのコンテキストを推定するための様々な技法を介して、自然言語インターフェースは、視覚分析との自然言語での対話の様々な語用論の形式をサポートする。これらの実際的な形式には、不完全な発話の理解、発話および視覚化特性内のエンティティの参照、長く複雑な発話のサポート、同義語と関連概念の識別、および以前の発話に対する応答の「修復」が含まれる。さらに、自然言語インターフェースは、既存の視覚化内で、または必要に応じて新しい視覚化を作成することによって、適切な視覚化応答を提供し、ターゲットを絞ったテキストフィードバックおよび曖昧性ウィジェットを通じて曖昧性を分解する。このようにして、自然言語インターフェースは、ユーザがデータ視覚化アプリケーション内に(例えば、データの視覚化において)表示されたデータを効率的に探索することを可能にする。
【課題を解決するための手段】
【0004】
[0004] いくつかの実装形態によれば、方法はディスプレイを有する電子装置で実行される。例えば、電子装置は、スマートフォン、タブレット、ノートブックコンピュータ、またはデスクトップコンピュータとすることができる。装置は、1つまたは複数のデータベースのクエリの第1の集合を使用してデータベースから読み出されたデータセットに基づいてデータの視覚化を表示する。ユーザは表示されたデータの視覚化に関連する第1の自然言語コマンドを指定する。表示されたデータの視覚化に基づいて、装置は第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出する。次に、装置は、1つまたは複数の分析句の第1の集合に基づいて第1の自然言語コマンドに関連付けられた1つまたは複数の会話センターの第1の集合を計算する。装置は次に、1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それによって1つまたは複数の関数句の第1の集合を作成する。次に装置は、1つまたは複数の関数句の第1の集合に基づいてデータの視覚化を更新する。
【0005】
[0005] いくつかの実装形態では、装置は、更新されたデータの視覚化に関連した第2の自然言語コマンドを受信する。いくつかの実装形態によれば、第2の自然言語コマンドを受信した後、装置は第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出し、1つまたは複数の分析句の第2の集合に基づいて、第2の自然言語コマンドに関連する1つまたは複数の会話センターの一時的な集合を計算する。次に、装置は、1つまたは複数の移行規則を使用して、1つまたは複数の会話センターの第1の集合および1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合を導出する。装置は、1つまたは複数の会話センターの第2の集合に関連付けられた1つまたは複数の分析関数の第2の集合を計算し、それによって1つまたは複数の関数句の第2の集合を作成する。次に装置は、1つまたは複数の関数句の第2の集合に基づいてデータの視覚化を更新する。
【0006】
[0006] いくつかの実装形態では、1つまたは複数の会話センターの第1の集合、1つまたは複数の会話センターの一時的な集合、および1つまたは複数の会話センターの第2の集合の各会話センターは、変数(データ属性や視覚化特性など)の値を含む。そのような実装形態では、装置は、一連の動作を実行することによって移行規則を使用し、これは第1の変数が1つまたは複数の会話センターの第1の集合に含まれるかどうかを判定すること、第1の変数が1つまたは複数の会話センターの一時的な集合に含まれているかどうかを判定すること、第1の変数が1つまたは複数の会話センターの第1の集合および/または1つまたは複数の会話センターの一時的な集合に含まれるかどうかに基づいて、適用する1つまたは複数の移行規則のそれぞれの移行規則を判定すること、およびそれぞれの移行規則を適用することを含む。
【0007】
[0007] いくつかの実装形態では、装置によって使用される1つまたは複数の移行規則が、1つまたは複数の会話センターの第1の集合の各会話センターを1つまたは複数の会話センターの第2の集合に含め、1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合へ1つまたは複数の会話センターを追加するためのCONTINUE規則を含む。
【0008】
[0008] いくつかのそのような実装形態では、装置は、(i)第1の変数が1つまたは複数の会話センターの一時的な集合に含まれる、および(ii)1つまたは複数の会話センターの第1の集合に第1の変数が含まれないという判定に従って、装置が1つまたは複数の会話センターの第2の集合に第1の変数を含めるようにCONTINUE規則を適用することを含む一連の動作を実行することによって、それぞれの移行規則を適用する。
【0009】
[0009] いくつかの実装形態では、装置によって使用される1つまたは複数の移行規則が、1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合へ会話センターを追加することなく、1つまたは複数の会話センターの第1の集合の各会話センターを1つまたは複数の会話センターの第2の集合に保持するためのRETAIN規則を含む。
【0010】
[0010] いくつかのそのような実装形態では、装置は、(i)第1の変数が1つまたは複数の会話センターの第1の集合に含まれる、および(ii)1つまたは複数の会話センターの一時的な集合に第1の変数が含まれないという判定に従って、1つまたは複数の会話センターの第2の集合に1つまたは複数の会話センターの第1の集合の各会話センターを含めるようにRETAIN規則を適用することを含む一連の動作を実行することによってそれぞれの移行規則を適用する。
【0011】
[0011] いくつかの実装形態では、装置によって使用される1つまたは複数の移行規則が、1つまたは複数の会話センターの第1の集合の各会話センターを1つまたは複数の会話センターの第2の集合に含め、1つまたは複数の会話センターの一時的な集合の会話センターと1つまたは複数の会話センターの第2の集合の1つまたは複数の会話センターを置き換えるためのSHIFT規則を含む。
【0012】
[0012] いくつかのそのような実装形態では、装置は、(i)第1の変数が1つまたは複数の会話センターの第1の集合に含まれ、および(ii)1つまたは複数の会話センターの一時的な集合に第1の変数が含まれるという判定に従って、1つまたは複数の会話センターの第1の集合の第1の変数の第1の値が、1つまたは複数の会話センターの一時的な集合の第1の変数の第2の値と異なるかを判定すること、第1の値が第2の値と異なるという判定に従って、1つまたは複数の会話センターの第1の集合の各会話センターを1つまたは複数の会話センターの第2の集合に含め、1つまたは複数の会話センターの第2の集合の第1の変数の値を第2の値と置き換えるためのSHIFT規則を適用することを含む一連の動作を実行することによってそれぞれの移行規則を適用する。
【0013】
[0013] いくつかのそのような実装形態では、装置はさらに、第1の変数に対応するウィジェットがユーザによって削除されたかどうかを判定し、ウィジェットが削除されたという判定に従って、1つまたは複数の会話センターの第1の集合の各会話センターを1つまたは複数の会話センターの第2の集合に含め、1つまたは複数の会話センターの第2の集合の第1の変数の値を第1の値を含む新しい値(例えば、最大値、またはスーパーセット値)と置き換えるためのSHIFT規則を適用する。
【0014】
[0014] いくつかの実装形態では、装置は、1つまたは複数の関数句の第1の集合に基づいて1つまたは複数のクエリの第1の集合を作成し、1つまたは複数のクエリの第1の集合を使用してデータベースに再クエリし、それにより、第2のデータセットを読み出して、次いで第2のデータセットを使用して、更新されたデータの視覚化を表示する。いくつかの実装形態では、装置は、1つまたは複数の関数句の第2の集合に基づいて1つまたは複数のクエリの第2の集合を作成し、1つまたは複数のクエリの第2の集合を使用してデータベースに再クエリし、それにより、第3のデータセットを読み出して、次いで第3のデータセットを使用して、更新されたデータの視覚化を表示する。いくつかの事例では、データベースへの再クエリは、コンピューティングデバイスでキャッシュされたまたは格納されたデータを使用してコンピューティングデバイスでローカルに実行される。例えば、自然言語コマンドで1つまたは複数のフィルタが指定されている場合、再クエリは通常ローカルで実行される。いくつかの実装形態では、装置はさらに、第2のデータセットまたは第3のデータセットを使用して、新しいデータの視覚化を作成して表示する。
【0015】
[0015] いくつかの実装形態では、装置は、ユーザが第1のデータセットとは異なるデータセットを選択したかどうか、またはユーザがデータの視覚化をリセットしたかどうかをさらに判定し、そうしていた場合、1つまたは複数の会話センターの第1の集合、1つまたは複数の会話センターの一時的な集合、および1つまたは複数の会話センターの第2の集合のそれぞれを、会話センターを含まない空の集合へリセットする。
【0016】
[0016] 典型的には、電子装置は、1つまたは複数のプロセッサ、メモリ、ディスプレイ、およびメモリに格納されている1つまたは複数のプログラムを含む。プログラムは、1つまたは複数のプロセッサによる実行用に構成されており、本明細書で説明されている方法のいずれかを実行するように構成されている。1つまたは複数のプログラムは、1つまたは複数のクエリの第1の集合を使用してデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示するための命令を含む。1つまたは複数のプログラムはまた、データの視覚化に関連する第1の自然言語コマンドを指定するための第1のユーザ入力を受信するための命令を含む。1つまたは複数のプログラムはまた、第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の分析句の第1の集合に基づいて、第1の自然言語コマンドに関連付けられた1つまたは複数の会話センターの第1の集合を計算するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それによって1つまたは複数の関数句の第1の集合を作成し、1つまたは複数の関数句の第1の集合に基づいてデータの視覚化を更新するための命令を含む。
【0017】
[0017] いくつかの実装形態では、1つまたは複数のプログラムは、更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信するための命令を含む。1つまたは複数のプログラムはまた、第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の分析句の第2の集合に基づいて、第2の自然言語コマンドに関連付けられた1つまたは複数の会話センターの一時的な集合を計算するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の移行規則を使用して、1つまたは複数の会話センターの第1の集合および1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合を導出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の会話センターの第2の集合に関連する1つまたは複数の分析関数の第2の集合を計算し、それによって1つまたは複数の関数句の第2の集合を作成し、1つまたは複数の関数句の第2の集合に基づいてデータの視覚化を更新するための命令を含む。
【0018】
[0018] いくつかの実装形態では、非一時的コンピュータ可読記憶媒体は、1つまたは複数のプロセッサ、メモリ、およびディスプレイを有するコンピューティングデバイスによる実行のために構成された1つまたは複数のプログラムを記憶する。1つまたは複数のプログラムは、本明細書に記載の方法のうちのいずれかを実行するように構成される。1つまたは複数のプログラムは、1つまたは複数のクエリの第1の集合を使用してデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示するための命令を含む。1つまたは複数のプログラムはまた、データの視覚化に関連する第1の自然言語コマンドを指定するための第1のユーザ入力を受信するための命令を含む。1つまたは複数のプログラムはまた、第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の分析句の第1の集合に基づいて、第1の自然言語コマンドに関連付けられた1つまたは複数の会話センターの第1の集合を計算するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それによって1つまたは複数の関数句の第1の集合を作成し、1つまたは複数の関数句の第1の集合に基づいてデータの視覚化を更新するための命令を含む。
【0019】
[0019] いくつかの実装形態では、1つまたは複数のプログラムは、更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信するための命令を含む。1つまたは複数のプログラムはまた、第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の分析句の第2の集合に基づいて、第2の自然言語コマンドに関連付けられた1つまたは複数の会話センターの一時的な集合を計算するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の移行規則を使用して、1つまたは複数の会話センターの第1の集合および1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合を導出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の会話センターの第2の集合に関連する1つまたは複数の分析関数の第2の集合を計算し、それによって1つまたは複数の関数句の第2の集合を作成し、1つまたは複数の関数句の第2の集合に基づいてデータの視覚化を更新するための命令を含む。
【0020】
[0020] 別の態様では、いくつかの実装形態によれば、装置は、1つまたは複数のデータベースのクエリの第1の集合を使用してデータベースから読み出されたデータセットに基づいてデータの視覚化を表示する。ユーザは表示されたデータの視覚化に関連する第1の自然言語コマンドを指定する。表示されたデータの視覚化に基づいて、装置は第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出する。次に、装置は、1つまたは複数の分析句の第1の集合に基づいて第1の自然言語コマンドに関連付けられた1つまたは複数の会話センターの第1の集合を計算する。装置は次に、1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それによって1つまたは複数の関数句の第1の集合を作成する。次に装置は、1つまたは複数の関数句の第1の集合に基づいてデータの視覚化を更新する。ユーザは更新されたデータの視覚化に関連する第2の自然言語コマンドを指定する。第2の自然言語コマンドを受信した後、装置は第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出し、1つまたは複数の分析句の第2の集合に基づいて、第2の自然言語コマンドに関連する1つまたは複数の会話センターの一時的な集合を計算する。装置は次に、1つまたは複数の分析句の第1の集合と1つまたは複数の分析句の第2の集合との間の結束を計算する。次に、装置は、結束に基づいて、1つまたは複数の会話センターの第1の集合および1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合を導出する。装置は、1つまたは複数の会話センターの第2の集合に関連付けられた1つまたは複数の分析関数の第2の集合を計算し、それによって1つまたは複数の関数句の第2の集合を作成する。次に装置は、1つまたは複数の関数句の第2の集合に基づいてデータの視覚化を更新する。
【0021】
[0021] いくつかの実装形態では、装置は、1つまたは複数の分析句の第2の集合の句構造を識別すること、句構造に基づいて1つまたは複数の語用論の形式を識別すること、および1つまたは複数の語用論の形式に基づいて、1つまたは複数の会話センターの第1の集合および1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合を導出することを含む一連の動作を実行することによって、結束を計算し、1つまたは複数の会話センターの第2の集合を導出する。
【0022】
[0022] いくつかのそのような実装形態では、装置は、確率的文法を適用して第2の自然言語コマンドを解析し、それによって解析された出力を取得すること、および解析された出力を対応するカテゴリカル属性とデータ属性に分解することを含む一連の動作を実行することによって句構造を識別する。いくつかのそのような実装形態では、第2の自然言語コマンドを解析することは、自然言語ツールキットによって提供される品詞API(例えば、品詞(PS)タガー)を使用することによって構文構造を推定することをさらに含む。
【0023】
[0023] いくつかの実装形態では、装置は、1つまたは複数の言語要素が句構造に存在しないかどうかを判定することによって第2の自然言語コマンドが不完全な発話(省略符号と呼ばれることがある)であるかどうかを判定することを含む一連の動作を実行することによって、1つまたは複数の語用論を識別する。いくつかのそのような実装形態では、装置は、第2の自然言語コマンドが不完全な発話であるという判定に従って、1つまたは複数の会話センターの第1の集合の会話センターの第1のサブセットを判定することであって、1つまたは複数の言語要素に対応する会話センターの第1のサブセットが句構造に存在していない判定すること、および1つまたは複数の会話センターの一時的な集合を会話センターの第1のサブセットと組み合わせることによって1つまたは複数の会話センターの第2の集合を計算することを含む一連の動作を実行することによって、1つまたは複数の会話センターの第2の集合を導出する。
【0024】
[0024] いくつかの実装形態では、装置は、1つまたは複数の照応参照が句構造に存在するかどうかを判定することによって、第2の自然言語コマンドが参照表現であるかどうかを判定することを含む一連の動作を実行することによって1つまたは複数の形態の語用論を識別し、また装置は、第2の自然コマンドが参照表現であるという判定に従って、1つまたは複数の会話センターの第1の集合を検索して、1つまたは複数の照応参照の第1の照応参照を含む第2の自然言語コマンドの句チャンクに対応する会話センターの第1のサブセットを見つけること、および1つまたは複数の会話センターの一時的な集合と会話センターの第1のサブセットとに基づいて、1つまたは複数の会話センターの第2の集合を計算することを含む別の一連の動作を実行することによって、1つまたは複数の会話センターの第2の集合を導出する。
【0025】
[0025] いくつかのそのような実装形態では、装置はさらに、第1の照応参照が第2の自然言語コマンドの動詞を伴うかどうかを判定し、そうである場合、動作動詞(例えば、「フィルタする」)を参照する第1のアクション会話センターを見つける1つまたは複数の会話センターの第1の集合を検索し、1つまたは複数の会話センターの一時的な集合、会話センターの第1のサブセット、および第1のアクション会話センターに基づいて、1つまたは複数の会話センターの第2の集合を計算する。
【0026】
[0026] いくつかのそのような実装形態では、装置は、通常は指摘することで、第1の照応参照が環境のいくつかの対象を示す厳密参照であるかどうかを判定し、そうである場合、1つまたは複数の会話センターの一時的な集合、および対象の特性に基づいて、1つまたは複数の会話センターの第2の集合を計算する。厳密参照は、通常、マルチモーダルな対話を通じて(例えば、音声またはテキストに加えてマウスの使用によって)可能にされる。
【0027】
[0027] いくつかのそのような実装形態では、装置は、第1の照応参照が更新されたデータの視覚化の視覚化特性を示すかどうかを判定し、そうである場合、1つまたは複数の会話センターの一時的な集合、および視覚化特性に関連するデータに基づいて、1つまたは複数の会話センターの第2の集合を計算する。
【0028】
[0028] いくつかの実装形態では、装置は、句構造が1つまたは複数の所定の修復発話に対応するかどうかを判定することによって(例えば第1の自然言語コマンドの潜在的な曖昧性、または結果がユーザにどのように提示されるかを修復するため)、第2の自然言語コマンドが修復発話であるかどうかを判定することを含む一連の動作を実行することによって、1つまたは複数の語形を識別する。例えば、ユーザは、「コンドミニアムを除く」または「コンドミニアムをタウンホームに変える」と発話する。そのような実装形態では、装置が第2の自然言語コマンドが修復発話であると判定した場合、装置は、1つまたは複数の会話センターの一時的な集合に基づいて1つまたは複数の会話センターの第2の集合を計算し、1つまたは複数の所定の修復発話および句構造に基づいて、1つまたは複数の会話センターの第2の集合における1つまたは複数のデータ属性を更新する。
【0029】
[0029] いくつかのそのような実装形態では、装置は、句構造がデータの視覚化の表示に関連するデフォルトの挙動を変更するための修復発話に対応するかどうかを判定(例えば、「フィルタなし、代わりに」への応答など選択するための強調表示)し、その場合、装置は表示に関するデフォルトの挙動を変更する。
【0030】
[0030] いくつかの実装形態では、装置は、(i)句構造の接続詞の明示的または暗黙的な存在を判定することによって、(ii)1つまたは複数の会話センターの一時的な集合が、1つまたは複数の会話センターの第1の集合の各会話センターを含むかどうかを判定することによって、第2の自然言語コマンドが連言表現であるかどうかを判定することを含む一連の動作を実行することによって、1つまたは複数の形式の語用論を識別する。このような実装形態では、装置は、第2の自然言語コマンドは連言表現であるという判定に従って、1つまたは複数の会話センターの一時的な集合に基づいて1つまたは複数の会話センターの第2の集合を計算することを含む一連の動作を実行することによって、1つまたは複数の会話センターの第2の集合を導出する。
【0031】
[0031] いくつかのそのような実装形態では、装置は、第2の自然言語コマンドが1つより多い連言を有するかどうかを判定し、第2の自然言語コマンドが1つより多い連言を有するという判定に従って、第2の自然言語コマンドを線形化することによって1つまたは複数の分析関数の第2の集合を計算する。いくつかのそのような実装形態では、装置は、第2の自然言語コマンドのための解析木を生成すること、第1の分析句および第2の分析句を抽出するために解析木を後順にトラバースすること、この場合第1の分析句および第2の分析句は、解析木内の隣接するノードである、第1の分析句および第2の分析句にそれぞれ対応する第1の分析関数および第2の分析関数を計算すること、および第1の分析関数および第2の分析関数の1つまたは複数の特性に基づいて1つまたは複数の論理演算子を適用することによって第1の分析関数を第2の分析関数と組み合わせること、この場合1つまたは複数の特性には、属性タイプ、演算子タイプ、および値が含まれる、を含む一連の動作を実行することによって、第2の自然言語コマンドを線形化する。
【0032】
[0032] いくつかのそのような実装形態では、第1の分析関数は、第1の属性(本明細書では時に変数と呼ばれ、視覚化特性を含む)、第1の演算子、および第1の値を含み、第2の分析関数は、第2の属性(本明細書では時々変数と呼ばれ、視覚化特性を含む)、第2の演算子、および第2の値を含む。
【0033】
[0033] いくつかのそのような実装形態では、第1の分析関数と第2の分析関数とを組み合わせることは、第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、および第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、第1の属性および第2の属性が同一であり、第1の属性および第2の属性が同一であるかどうかを判定すること、両方ともカテゴリ型属性であるという判定に従って、第1の分析関数と第2の分析関数とを結合するために和集合演算子を適用することを含む。
【0034】
[0034] いくつかのそのような実装形態では、第1の分析関数と第2の分析関数とを組み合わせることは、第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、第1の属性および第2の属性が同一であるかどうか判定すること、ならびに第1の属性および第2の属性が同一ではないという判定に従って、第1の分析関数と第2の分析関数とを結合するために交差演算子を適用することを含む。
【0035】
[0035] いくつかのそのような実装形態では、第1の分析関数と第2の分析関数とを組み合わせることは、第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、および第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、第1の属性および第2の属性が同一であることを判定すること、第1の属性および第2の属性が同一であり、かつ両方とも順序型属性であるとの判定に従って、第1の演算子と第2の演算子の演算子タイプを判定すること、および第1の演算子および第2の演算子が両方とも等価演算子であるという判定に従って、第1の分析関数と第2の分析関数とを結合するために和演算子を適用することを含む。
【0036】
[0036] いくつかのそのような実装形態では、第1の分析関数と第2の分析関数とを組み合わせることは、第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、および第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、第1の属性および第2の属性が同一であることを判定すること、第1の属性および第2の属性が同一であることを判定すること、第1の属性および第2の属性が同一であり、かつ両方とも順序型属性であるとの判定に従って、第1の演算子と第2の演算子の演算子タイプを判定すること、第1の演算子が「相対的に小さい」演算子であり、第2の演算子が「相対的に大きい」演算子であるという判定に従って、第1の値が第2の値より小さいかどうかを判定すること、および第1の値が第2の値より小さいという判定に従って、第1の分析関数と第2の分析関数とを結合するために和演算子を適用することを含む。
【0037】
[0037] いくつかのそのような実装形態では、第1の分析関数と第2の分析関数とを組み合わせることは、第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、および第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、第1の属性および第2の属性が同一であることを判定すること、第1の属性および第2の属性が同一であることを判定すること、第1の属性および第2の属性が同一であり、かつ両方とも順序型属性であるとの判定に従って、第1の演算子と第2の演算子の演算子タイプを判定すること、第1の演算子が「相対的に大きい」演算子であり、第2の演算子が「相対的に小さい」演算子であるという判定に従って、第1の値が第2の値より小さいかどうかを判定すること、および第1の値が第2の値より小さいという判定に従って、第1の分析関数と第2の分析関数とを結合するために交差演算子を適用することを含む。
【0038】
[0038] いくつかの実装形態では、装置はさらに、1つまたは複数の抽出された分析句の第2の集合と更新されたデータの視覚化に含まれるデータの1つまたは複数の属性との間の意味論的関連性を計算し、1つまたは複数の分析句の第2の集合に関連する分析関数を計算し、それによって、意味論上関連する1つまたは複数のデータの属性に基づいて、1つまたは複数の関数句の第2の集合を作成する。文法的結束またはコンテキスト間の結束とは対照的に、字句的結束はコンテキスト内の結束を探す。
【0039】
[0039] いくつかのそのような実装形態では、装置は、テキストの大きなコーパスで第1の中立ネットワークモデルを訓練し、それによって単語の埋め込みを学習すること、第2のニューラルネットワークモデルを使用して、1つまたは複数の分析句の第2の集合の第1の句の第1の単語についての第1の単語ベクトルを計算すること、第1の単語ベクトルは単語埋め込みに対して第1の単語をマッピングする、第2のニューラルネットワークモデルを使用して、1つまたは複数のデータ属性のうちの第1のデータ属性について第2のワードベクトルを計算すること、第2のワードベクトルは、第1のデータ属性をワード埋め込みにマッピングする、および類似性メトリックを使用して、第1の単語ベクトルと第2の単語ベクトルとの間の関連性を計算することを含む一連の動作を実行することによって、意味論的関連性を計算する。
【0040】
[0040] いくつかのそのような実装形態では、第1のニューラルネットワークモデルはWord2vec(商標)モデルを含む。いくつかのそのような実装形態では、第2のニューラルネットワークモデルは、リカレントニューラルネットワークモデルを含む。
【0041】
[0041] いくつかのそのような実装形態では、類似性メトリックは、少なくとも(i)第1の単語ベクトルと第2の単語ベクトルとに関連する単語の意味の間のウー・パーマー距離、(ii)重み係数、および(iii)第1の単語ベクトルと第2の単語ベクトル間のペアワイズ余弦距離に基づく。
【0042】
[0042] いくつかのそのような実装形態では、装置は、公に利用可能な辞書から1つまたは複数の分析句の第2の集合の単語の定義を取得し、自然言語ツールキットによって提供される品詞APIを使用しながら単語の定義が1つまたは複数の事前の定義を含むかどうか判定し、単語の定義が1つまたは複数の事前定義の形容詞を含むという判定に従って、1つまたは複数の事前定義の形容詞を1つまたは複数の分析関数にマッピングすることを含む一連の動作を実行することによって、分析関数を計算する。
【0043】
[0043] 典型的には、電子装置は、1つまたは複数のプロセッサ、メモリ、ディスプレイ、およびメモリに格納されている1つまたは複数のプログラムを含む。プログラムは、1つまたは複数のプロセッサによる実行用に構成されており、本明細書で説明されている方法のいずれかを実行するように構成されている。1つまたは複数のプログラムは、1つまたは複数のクエリの第1の集合を使用してデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示するための命令を含む。1つまたは複数のプログラムはまた、データの視覚化に関連する第1の自然言語コマンドを指定するための第1のユーザ入力を受信するための命令を含む。1つまたは複数のプログラムはまた、第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の分析句の第1の集合に基づいて、第1の自然言語コマンドに関連付けられた1つまたは複数の会話センターの第1の集合を計算するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それによって1つまたは複数の関数句の第1の集合を作成するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の関数句の第1の集合に基づいてデータの視覚化を更新するための命令を含む。1つまたは複数のプログラムはまた、更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信するための命令を含む。1つまたは複数のプログラムはまた、第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の分析句の第2の集合に基づいて、第2の自然言語コマンドに関連付けられた1つまたは複数の会話センターの一時的な集合を計算するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の分析句の第1の集合と1つまたは複数の分析句の第2の集合との間の結束を計算するための命令を含む。1つまたは複数のプログラムはまた、結束に基づいて、1つまたは複数の会話センターの第1の集合および1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合を導出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の会話センターの第2の集合に関連する1つまたは複数の分析関数の第2の集合を計算し、それによって1つまたは複数の関数句の第2の集合を作成し、1つまたは複数の関数句の第2の集合に基づいてデータの視覚化を更新するための命令を含む。
【0044】
[0044] いくつかの実装形態では、非一時的コンピュータ可読記憶媒体は、1つまたは複数のプロセッサ、メモリ、およびディスプレイを有するコンピューティングデバイスによる実行のために構成された1つまたは複数のプログラムを記憶する。1つまたは複数のプログラムは、本明細書に記載の方法のうちのいずれかを実行するように構成される。1つまたは複数のプログラムは、1つまたは複数のクエリの第1の集合を使用してデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示するための命令を含む。1つまたは複数のプログラムはまた、データの視覚化に関連する第1の自然言語コマンドを指定するための第1のユーザ入力を受信するための命令を含む。1つまたは複数のプログラムはまた、第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の分析句の第1の集合に基づいて、第1の自然言語コマンドに関連付けられた1つまたは複数の会話センターの第1の集合を計算するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それによって1つまたは複数の関数句の第1の集合を作成するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の関数句の第1の集合に基づいてデータの視覚化を更新するための命令を含む。1つまたは複数のプログラムはまた、更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信するための命令を含む。1つまたは複数のプログラムはまた、第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の分析句の第2の集合に基づいて、第2の自然言語コマンドに関連付けられた1つまたは複数の会話センターの一時的な集合を計算するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の分析句の第1の集合と1つまたは複数の分析句の第2の集合との間の結束を計算するための命令を含む。1つまたは複数のプログラムはまた、結束に基づいて、1つまたは複数の会話センターの第1の集合および1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合を導出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の会話センターの第2の集合に関連する1つまたは複数の分析関数の第2の集合を計算し、それによって1つまたは複数の関数句の第2の集合を作成し、1つまたは複数の関数句の第2の集合に基づいてデータの視覚化を更新するための命令を含む。
【0045】
[0045] 別の態様では、いくつかの実装形態によれば、方法はディスプレイを有する電子装置で実行される。例えば、電子装置は、スマートフォン、タブレット、ノートブックコンピュータ、またはデスクトップコンピュータとすることができる。装置は、1つまたは複数のデータベースのクエリの第1の集合を使用してデータベースから読み出されたデータセットに基づいてデータの視覚化を表示する。ユーザは表示されたデータの視覚化に関連する第1の自然言語コマンドを指定する。表示されたデータの視覚化に基づいて、装置は第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出する。次に、装置は、1つまたは複数の分析句の第1の集合に基づいて第1の自然言語コマンドに関連付けられた1つまたは複数の会話センターの第1の集合を計算する。装置は次に、1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それによって1つまたは複数の関数句の第1の集合を作成する。次に装置は、1つまたは複数の関数句の第1の集合に基づいてデータの視覚化を更新する。ユーザは更新されたデータの視覚化に関連する第2の自然言語コマンドを指定する。第2の自然言語コマンドを受信した後、装置は第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出し、1つまたは複数の分析句の第2の集合に基づいて、第2の自然言語コマンドに関連する1つまたは複数の会話センターの一時的な集合を計算する。次に、装置は、1つまたは複数の移行規則を使用して、1つまたは複数の会話センターの第1の集合および1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合を導出する。次に装置は、1つまたは複数の会話センターの第2の集合に基づいてデータの視覚化を更新する。
【0046】
[0046] いくつかの実装形態では、装置は、1つ以上の会話センターの第2の集合に対応する1つ以上のデータ属性を判定し、表示されたデータの視覚化を走査して、その特性が1つまたは複数のデータ属性の第1のデータ属性に対応するデータのマークを含む表示されたデータの視覚化の1つまたは複数を識別し、その特性が第1のデータ属性に対応するデータのマークを強調表示する。いくつかのそのような実装形態では、装置はさらに、その特性が1つまたは複数のデータ属性に対応しないデータのマークを含むという結果を、表示されたデータの視覚化からフィルタする。さらに、いくつかのそのような実装形態では、装置は、(例えば、「除外」、「削除」、および「フィルタのみ」などの自然言語コマンドを介して)データのマークをフィルタするか強調表示するかを判定するユーザ入力を受信する。
【0047】
[0047] いくつかの実装形態では、視覚化特性は、色、サイズ、および形状のうちの1つまたは複数を含む。いくつかの実装形態では、視覚化特性はデータのマークの視覚的符号化に対応する。いくつかの実装形態では、視覚的符号化は、色、サイズ、および形状のうちの1つまたは複数である。
【0048】
[0048] いくつかの実装形態では、装置は、表示されたデータの視覚化のいずれもがその特性が第1のデータ属性に対応するデータのマークを含まないか判定し、そうである場合、第1のデータ属性(例えば集約タイプ)を用いて新しいデータの視覚化の詳細を生成し、新しいデータの視覚化を表示する。いくつかのそのような実装形態では、新しいデータの視覚化を表示することは、詳細に基づいて図表のタイプを判定すること、および図表を生成して表示することをさらに含む。さらに、いくつかのそのような実装形態では、図表は、他のデータの視覚化(本明細書では時々ビューと呼ばれる)と自動的に調整される、二次元グリッドベースのレイアウトアルゴリズムを使用して配置される。
【0049】
[0049] いくつかの実装形態では、装置は、1つまたは複数の会話センターの第2の集合に関連する1つまたは複数の分析関数の第2の集合を計算し、それにより1つまたは複数の関数句の第2の集合を作成すること、1つまたは複数の関数句の第2の集合から第1の関数句を選択すること、第1の関数句は、パラメータ化されたデータ選択基準を含む、パラメータ化されたデータ選択基準のパラメータの値に対する初期の範囲を選択すること、パラメータ化されたデータ選択基準に対応する編集可能なユーザインターフェース制御(例えば、ウィジェット)を表示すること、ユーザインターフェース制御はパラメータの現在の値を表示すること、および第2の自然言語コマンドのクエリの順序に基づいて1つまたは複数の編集可能なユーザインターフェース制御の表示されたセットを順序付けること、クエリの順序は第2の自然言語コマンドからの1つまたは複数の分析句の第2の集合を抽出している間に推論される、を含む一連の動作をさらに実行する。いくつかのそのような実装形態では、ユーザインターフェース制御は、第1の関数句の調整を可能にする。さらに、いくつかのそのような実装形態では、ユーザインターフェース制御は、ユーザが第1の関数句を調整することを可能にするスライダを表示する。いくつかのそのような実装形態では、1つまたは複数の編集可能なユーザインターフェース制御の表示されたセットを順序付けることが、テキスト内の小さなワードスケールの視覚化のコンパクトな配置を容易にするライブラリを使用することをさらに含む。いくつかのそのような実装形態では、ライブラリはSparklificator(商標)である。
【0050】
[0050] いくつかの実装形態では、装置は、いくつかのユーザエラーを自動的に訂正することを目的とした一連の動作を実行する。一連の動作は、(例えば、構文解析の失敗のために)1つまたは複数の分析句の第2の集合の分析句のいずれにも対応しない第2の自然言語コマンドの第1のトークンを判定すること、第1のトークンを第1のデータセットの1つまたは複数の特徴と比較することによって、検索ライブラリを使用して、第1のトークンに対応する正しく綴られた名辞を検索すること、および第3の自然言語コマンドを取得するために、第2の自然言語コマンドの第1のトークンを正しく綴られた名辞に置き換えること、および第3の自然言語コマンドから1つまたは複数の分析句の第2の集合を抽出することをさらに含む。いくつかのそのような実装形態では、1つまたは複数の特徴は、第1のデータセットのデータ属性、セル値、および関連キーワードを含む。いくつかのそのような実装形態では、検索ライブラリはFuse.js(商標)などのファジー文字列ライブラリである。
【0051】
[0051] いくつかのそのような実装形態では、装置は、第1のトークンに対応する正しく綴られた名辞がないかどうか判定すること、および第1のトークンに対応する正しく綴られた名辞がないという判定に従って、第2の自然言語コマンドを、解析木を取得するために解析すること、第1のトークンに対応する木の部分を除去するための解析木をプルーニングすること、プルーニングされた解析木に基づいて、第2の集合の1つまたは複数の分析句を抽出することを含む一連の動作をさらに実行する。
【0052】
[0052] いくつかの実装形態では、装置は、第1のトークンが認識されず、したがって第2の自然言語コマンドから削除されたこと-発話が部分的にしか理解されていなかった場合に通常発生する状況-を示すテキストフィードバックをさらに生成する。いくつかのそのような実装形態では、装置は第1のトークンを表示する。
【0053】
[0053] いくつかの実装形態では、装置は、正しく綴られた名辞が第2の自然言語コマンドの第1のトークンに置き換えられることを示すテキストフィードバックをさらに生成する。これは典型的には発話がうまく理解されなかったが装置が代わりのクエリを提示したときの状況である。さらに、いくつかのそのような実装形態では、装置は、正しく綴られた名辞を表示して強調表示する。
【0054】
[0054] 典型的には、電子装置は、1つまたは複数のプロセッサ、メモリ、ディスプレイ、およびメモリに格納されている1つまたは複数のプログラムを含む。プログラムは、1つまたは複数のプロセッサによる実行用に構成されており、本明細書で説明されている方法のいずれかを実行するように構成されている。1つまたは複数のプログラムは、1つまたは複数のクエリの第1の集合を使用してデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示するための命令を含む。1つまたは複数のプログラムはまた、データの視覚化に関連する第1の自然言語コマンドを指定するための第1のユーザ入力を受信するための命令を含む。1つまたは複数のプログラムはまた、第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の分析句の第1の集合に基づいて、第1の自然言語コマンドに関連付けられた1つまたは複数の会話センターの第1の集合を計算するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それによって1つまたは複数の関数句の第1の集合を作成するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の関数句の第1の集合に基づいてデータの視覚化を更新するための命令を含む。1つまたは複数のプログラムはまた、更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信するための命令を含む。1つまたは複数のプログラムはまた、第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の分析句の第2の集合に基づいて、第2の自然言語コマンドに関連付けられた1つまたは複数の会話センターの一時的な集合を計算するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の移行規則を使用して、1つまたは複数の会話センターの第1の集合および1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合を導出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の会話センター第2の集合に基づいてデータの視覚化を更新するための命令を含み、この場合更新することは、1つ以上の会話センターの第2の集合に対応する1つ以上のデータ属性を判定すること、表示されたデータの視覚化を走査して、その特性が1つまたは複数のデータ属性の第1のデータ属性に対応するデータのマークを含む表示されたデータの視覚化の1つまたは複数を識別すること、およびその特性が第1のデータ属性に対応するデータのマークを強調表示することを含む。
【0055】
[0055] いくつかの実装形態では、非一時的コンピュータ可読記憶媒体は、1つまたは複数のプロセッサ、メモリ、およびディスプレイを有するコンピューティングデバイスによる実行のために構成された1つまたは複数のプログラムを記憶する。1つまたは複数のプログラムは、本明細書に記載の方法のうちのいずれかを実行するように構成される。1つまたは複数のプログラムは、1つまたは複数のクエリの第1の集合を使用してデータベースから読み出された第1のデータセットに基づいてデータの視覚化を表示するための命令を含む。1つまたは複数のプログラムはまた、データの視覚化に関連する第1の自然言語コマンドを指定するための第1のユーザ入力を受信するための命令を含む。1つまたは複数のプログラムはまた、第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の分析句の第1の集合に基づいて、第1の自然言語コマンドに関連付けられた1つまたは複数の会話センターの第1の集合を計算するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の会話センターの第1の集合に関連する分析関数の第1の集合を計算し、それによって1つまたは複数の関数句の第1の集合を作成するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の関数句の第1の集合に基づいてデータの視覚化を更新するための命令を含む。1つまたは複数のプログラムはまた、更新されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信するための命令を含む。1つまたは複数のプログラムはまた、第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の分析句の第2の集合に基づいて、第2の自然言語コマンドに関連付けられた1つまたは複数の会話センターの一時的な集合を計算するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の移行規則を使用して、1つまたは複数の会話センターの第1の集合および1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合を導出するための命令を含む。1つまたは複数のプログラムはまた、1つまたは複数の会話センター第2の集合に基づいてデータの視覚化を更新するための命令を含み、この場合更新することは、1つ以上の会話センターの第2の集合に対応する1つ以上のデータ属性を判定すること、表示されたデータの視覚化を走査して、その特性が1つまたは複数のデータ属性の第1のデータ属性に対応するデータのマークを含む表示されたデータの視覚化の1つまたは複数を識別すること、およびその特性が第1のデータ属性に対応するデータのマークを強調表示することを含む。
【0056】
[0056] したがって、ユーザがデータ視覚化アプリケーション内に表示されたデータを効率的に探索することを可能にする方法、システム、およびグラフィカルユーザインターフェースが開示される。
【0057】
[0057] 前述の一般的な説明および以下の詳細な説明は両方とも例示的かつ説明的なものであり、特許請求の範囲に記載の本発明のさらなる説明を提供することを意図している。
【0058】
[0058] 前述のシステム、方法、およびグラフィカルユーザインターフェース、ならびにデータの視覚化分析を提供する追加のシステム、方法、およびグラフィカルユーザインターフェースをよりよく理解するために、後続の図面と共に以下の実装形態について言及がなされるはずである。図面全体を通して、同様の参照番号は対応する部分を示す。
【図面の簡単な説明】
【0059】
図1】[0059]いくつかの実装形態で使用されるグラフィカルユーザインターフェースを示す。
図2】[0060]いくつかの実装形態によるコンピューティングデバイスのブロック図である。
図3A】[0061]いくつかの実装形態による、データセットの視覚的分析のために語用論の原理を適用する自然言語を使用するためのプロセスを示すプロセスの流れ図である。
図3B】いくつかの実装形態による、会話センターの状態、および特定の移行規則がトリガされたときの状態間の移行を示す状態機械図である。
図4A】[0062]いくつかの実装形態による、分析する会話を処理する際の異なる移行規則の使用を示す図である。
図4B】いくつかの実装形態による、分析する会話を処理する際の異なる移行規則の使用を示す図である。
図4C】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図4A図4Bに関連する)を示す図である。
図4D】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図4A図4Bに関連する)を示す図である。
図4E】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図4A図4Bに関連する)を示す図である。
図4F】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図4A図4Bに関連する)を示す図である。
図4G】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図4A図4Bに関連する)を示す図である。
図5】[0063]いくつかの実装形態による視覚的分析のための語用論の原理の適用のための一般的なフレームワークを示す図である。
図6A】[0064]いくつかの実装形態による、不完全な発話(本明細書では省略符号と呼ばれることがある)に対する語用論原理の適用を示す図である。
図6B】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図6Aに関連する)を示す図である。
図6C】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図6Aに関連する)を示す図である。
図6D】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図6Aに関連する)を示す図である。
図7A】[0065]いくつかの実装形態による、参照表現(本明細書では照応参照と呼ばれることがある)を伴う発話に対する語用論の原理の適用を示す図である。
図7B】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図7Aに関連する)を示す図である。
図7C】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図7Aに関連する)を示す図である。
図7D】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図7Aに関連する)を示す図である。
図7E】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図7Aに関連する)を示す図である。
図7F】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図7Aに関連する)を示す図である。
図8A】[0066]いくつかの実装形態による接続詞を有する発話に対する語用論の原理の適用を示す図である。
図8B】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用した対話型データ分析のためのグラフィカルユーザインターフェース(図8Aに関する)を示す。
図8C】いくつかの実装形態による、システムが、解析木の隣接するノードの分析関数を線形化によってどのように反復的に接続するかを示す。
図9A】[0067]いくつかの実装形態による、語彙の結束を処理するための語用論の原則の適用を示す図である。
図9B】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図9Aに関連する)を示す図である。
図9C】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図9Aに関連する)を示す図である。
図9D】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図9Aに関連する)を示す図である。
図10A】[0068]いくつかの実装形態による、修復発話のための語用論の原則の適用を示す図である。
図10B】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図10Aに関連する)を示す図である。
図10C】いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図10Aに関連する)を示す図である。
図11A】[0069]いくつかの実装形態による応答およびフィードバックを処理するための語用論の原理の適用を示す図である。
図11B図11Aに示す方法論をさらに説明するデータの視覚化図である。
図11C】いくつかの実装形態による、入力された発話に基づいてダッシュボードがどのようにして漸進的に構築されるかを示す図である。
図12A】[0070]いくつかの実装形態による、ユーザクエリ内の曖昧性を処理するために生成されたウィジェットの集合を示す。
図12B】いくつかの実施態様による様々な状況に対するフィードバックの例を示す。
図13A】[0071]いくつかの実装形態による、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図13B】いくつかの実装形態による、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図13C】いくつかの実装形態による、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図13D】いくつかの実装形態による、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図13E】いくつかの実装形態による、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図13F】いくつかの実装形態による、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図13G】いくつかの実装形態による、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図13H】いくつかの実装形態による、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図13I】いくつかの実装形態による、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図13J】いくつかの実装形態による、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14A】[0072]いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14B】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14C】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14D】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14E】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14F】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14G】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14H】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14I】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14J】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14K】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14L】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14M】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14N】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14O】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14P】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14Q】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図14R】いくつかの実装形態による、様々な語用論の形式の処理を含む、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用するプロセスのフローチャートを提供する。
図15A】[0073]いくつかの実装形態による、応答およびフィードバックを処理するため、およびユーザのクエリの曖昧性を処理するためを含む、語用論の原理を適用するデータセットの視覚分析のための自然言語を使用するプロセスのフローチャートを提供する。
図15B】いくつかの実装形態による、応答およびフィードバックを処理するため、およびユーザのクエリの曖昧性を処理するためを含む、語用論の原理を適用するデータセットの視覚分析のための自然言語を使用するプロセスのフローチャートを提供する。
図15C】いくつかの実装形態による、応答およびフィードバックを処理するため、およびユーザのクエリの曖昧性を処理するためを含む、語用論の原理を適用するデータセットの視覚分析のための自然言語を使用するプロセスのフローチャートを提供する。
図15D】いくつかの実装形態による、応答およびフィードバックを処理するため、およびユーザのクエリの曖昧性を処理するためを含む、語用論の原理を適用するデータセットの視覚分析のための自然言語を使用するプロセスのフローチャートを提供する。
図15E】いくつかの実装形態による、応答およびフィードバックを処理するため、およびユーザのクエリの曖昧性を処理するためを含む、語用論の原理を適用するデータセットの視覚分析のための自然言語を使用するプロセスのフローチャートを提供する。
図15F】いくつかの実装形態による、応答およびフィードバックを処理するため、およびユーザのクエリの曖昧性を処理するためを含む、語用論の原理を適用するデータセットの視覚分析のための自然言語を使用するプロセスのフローチャートを提供する。
図15G】いくつかの実装形態による、応答およびフィードバックを処理するため、およびユーザのクエリの曖昧性を処理するためを含む、語用論の原理を適用するデータセットの視覚分析のための自然言語を使用するプロセスのフローチャートを提供する。
図15H】いくつかの実装形態による、応答およびフィードバックを処理するため、およびユーザのクエリの曖昧性を処理するためを含む、語用論の原理を適用するデータセットの視覚分析のための自然言語を使用するプロセスのフローチャートを提供する。
【発明を実施するための形態】
【0060】
[0074] ここで実装形態を参照するが、それらの例は添付の図面に示されている。以下の説明では、本発明を完全に理解できるようにするために多数の具体的な詳細が述べられている。しかし、本発明がこれらの具体的な詳細を必要とせずに実施され得ることは当業者に明らかであろう。
【0061】
[0075] 図1は、対話型データ分析用のグラフィカルユーザインターフェース100を示す。ユーザインターフェース100は、いくつかの実装形態によれば、データタブ114および分析タブ116を含む。データタブ114が選択されると、ユーザインターフェース100はスキーマ情報領域110を表示し、これはデータペインとも呼ばれる。スキーマ情報領域110は、データの視覚化を構築するために選択され使用され得る名前付きデータ要素(例えば、フィールド名)を提供する。いくつかの実装形態では、フィールド名のリストは、次元のグループ(例えば、カテゴリカルデータ)と測定のグループ(例えば、数量)に分けられる。いくつかの実装形態はパラメータのリストも含む。分析タブ116が選択されると、ユーザインターフェースはデータ要素(図示せず)の代わりに分析関数のリストを表示する。
【0062】
[0076] グラフィカルユーザインターフェース100はまた、データ視覚化領域112を含む。データ視覚化領域112は、列シェルフ領域120および行シェルフ領域122などの複数のシェルフ領域を含む。これらは列シェルフ120および行シェルフ122とも呼ばれる。ここに示されるように、データ視覚化領域112はまた、視覚的グラフィックを表示するための大きなスペース(本明細書ではデータの視覚化とも呼ばれる)を有する。データ要素がまだ選択されていないため、スペースには最初は視覚的なグラフィックはない。いくつかの実装形態では、データ視覚化領域112は、シートと呼ばれる複数の層を有する。
【0063】
[0077] いくつかの実装形態では、グラフィカルユーザインターフェース100は自然言語処理領域124も含む。自然言語処理領域124は、自然言語コマンドを受信するための入力バー(本明細書ではコマンドバーとも呼ばれる)を含む。ユーザは入力バーと対話してコマンドを提供することができる。例えば、ユーザは、コマンドを提供するために入力バーにコマンドを入力することができる。さらに、ユーザは、コマンドを提供するためにマイクロフォン(例えば、音声入力装置220)に向かって話すことによって、入力バーと間接的に対話してもよい。いくつかの実装形態では、データ要素は、最初に、列シェルフ120および行シェルフ122と関連付けられる(例えば、スキーマ情報領域110から列シェルフ120および/または行シェルフ122へのドラッグアンドドロップ操作を使用して)。最初の関連付けの後、ユーザは表示されたデータの視覚化をさらに探索するために自然言語コマンド(例えば、自然言語処理領域124内)を使用することができる。いくつかの事例では、ユーザは自然言語処理領域124を使用して初期関連付けを作成し、それによって1つまたは複数のデータ要素が列シェルフ120および行シェルフ122に配置されることになる。例えば、ユーザは、データ要素Xとデータ要素Yとの間の関係を作成するためのコマンドを提供することができる。コマンドの受信に応答して、列シェルフ120および行シェルフ122にデータ要素について事前設定することができる(例えば、列シェルフ120にデータ要素Xを事前設定することができ、行シェルフ122にデータ要素Yを事前設定することができ、またはその逆も可能である)。
【0064】
[0078] 図2は、いくつかの実装形態によるグラフィカルユーザインターフェース100を表示することができるコンピューティングデバイス200を示すブロック図である。コンピューティングデバイス200の様々な例には、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、およびデータ視覚化アプリケーション230を実行することができるディスプレイおよびプロセッサを有する他のコンピューティングデバイスが含まれる。コンピューティングデバイス200は、通常、1つまたは複数の処理ユニット(プロセッサまたはコア)202、1つまたは複数のネットワークまたは他の通信インターフェース204、メモリ206、およびこれらの構成要素を相互接続するための1つまたは複数の通信バス208を含む。通信バス208は任意選択で、システム構成要素間の通信を相互接続し制御する回路(チップセットとも呼ばれる)を含む。コンピューティングデバイス200は、ユーザインターフェース210を含む。ユーザインターフェース210は通常、表示装置212を含む。いくつかの実装形態では、コンピューティングデバイス200は、キーボード、マウス、および/または他の入力ボタン216などの入力デバイスを含む。あるいは、またはさらに、いくつかの実装形態では、表示装置212はタッチセンシティブ面214を含み、その場合、表示装置212はタッチセンシティブディスプレイである。いくつかの実装形態では、タッチセンシティブ面214は、様々なスワイプジェスチャ(例えば、垂直方向および/または水平方向の連続的なジェスチャ)および/または他のジェスチャ(例えば、シングル/ダブルタップ)を検出するように構成される。タッチセンシティブディスプレイ214を有するコンピューティングデバイスでは、物理的なキーボードは任意である(例えば、キーボードでの入力が必要なときにソフトキーボードが表示されてもよい)。ユーザインターフェース210はまた、スピーカのような音声出力装置218、またはスピーカ、イヤホン、もしくはヘッドホンに接続された音声出力接続を含む。さらに、いくつかのコンピューティングデバイス200は、キーボードを補完または置換するためにマイクロフォンおよび音声認識を使用する。任意選択で、コンピューティングデバイス200は、音声(例えば、ユーザからの音声)を取り込むための音声入力装置220(例えば、マイクロフォン)を含む。
【0065】
[0079] メモリ206は、DRAM、SRAM、DDR RAM、または他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含む。また、1つまたは複数の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリ装置、または他の不揮発性ソリッドステート記憶装置のような不揮発性メモリを含み得る。いくつかの実装形態では、メモリ206は、プロセッサ202から遠隔に配置された1つまたは複数の記憶装置を含む。メモリ206、あるいはメモリ206内の不揮発性メモリデバイスは、非一時的コンピュータ可読記憶媒体を含む。いくつかの実装形態では、メモリ206またはメモリ206のコンピュータ可読記憶媒体は、以下のプログラム、モジュール、およびデータ構造、あるいはそれらのサブセットまたはスーパーセットを格納する。
・オペレーティングシステム222。これは、様々な基本システムサービスを処理し、ハードウェア依存タスクを実行するための手順を含む。
・通信モジュール224。これは、インターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの1つまたは複数の通信ネットワークインターフェース204(有線または無線)を介してコンピューティングデバイス200を他のコンピュータおよびデバイスに接続するために使用される。
・ウェブブラウザ226(またはウェブページを表示することができる他のアプリケーション)。これは、ユーザがネットワークを介して遠隔のコンピュータまたは装置と通信することを可能にする。
・音声入力装置220によってキャプチャされた音声を処理するための(例えば、マイクロフォンモジュール)音声入力モジュール228。キャプチャされた音声は、リモートサーバに送信されてもよく、および/またはコンピューティングデバイス200で実行されているアプリケーション(例えば、データ視覚化アプリケーション230)によって処理されてもよい。
・データの視覚化および関連する特徴を生成するためのデータ視覚化アプリケーション230。アプリケーション230は、ユーザが視覚的グラフィックを構築するためのグラフィカルユーザインターフェース232(例えば、図1に示すグラフィカルユーザインターフェース100)を含む。例えば、ユーザは、1つまたは複数のデータソース240(コンピューティングデバイス200に格納されているか遠隔に格納されていてもよい)を選択し、データソースからデータフィールドを選択し、選択されたフィールドを使用して視覚グラフィックを定義する。および
・データ視覚化アプリケーション230によって使用される、0個以上のデータベースまたはデータソース240(例えば、第1のデータソース240-1および第2のデータソース240-2)。いくつかの実装形態では、データソースは、スプレッドシートファイル、CSVファイル、テキストファイル、JSONファイル、XMLファイル、またはフラットファイルとして格納されるか、リレーショナルデータベースに格納される。
【0066】
[0080] いくつかの実装形態では、データ視覚化アプリケーション230は、ユーザ入力(例えば視覚的詳細236)を受信し、対応する視覚グラフィックを生成するデータ視覚化生成モジュール234を含む。次いで、データ視覚化アプリケーション230は、生成された視覚的グラフィックをユーザインターフェース232に表示する。いくつかの実装形態では、データ視覚化アプリケーション230は、スタンドアロンのアプリケーション(例えばデスクトップのアプリケーション)として実行される。いくつかの実装形態では、データ視覚化アプリケーション230は、ウェブブラウザ226またはウェブサーバによって提供されるウェブページを使用して別のアプリケーション(例えば、サーバベースのアプリケーション)内で実行される。
【0067】
[0081] いくつかの実装形態では、ユーザが提供する情報(例えば、ユーザ入力)は視覚的詳細236として格納される。いくつかの実装形態では、視覚的詳細236は、ユーザから受信した以前の自然言語コマンド、または自然言語コマンドを通じてユーザによって指定された特性を含む。
【0068】
[0082] いくつかの実装形態では、データ視覚化アプリケーション230は、コンピューティングデバイスのユーザによって提供されたコマンドを処理(例えば、解釈)するための言語処理モジュール238を含む。いくつかの実装形態では、コマンドは自然言語コマンド(例えば、音声入力装置220によってキャプチャされたもの)である。いくつかの実装形態では、言語処理モジュール238は、オートコンプリートモジュール、語用論モジュール、および曖昧性モジュールなどのサブモジュールを含み、それらのそれぞれは、以下でさらに詳細に説明される。
【0069】
[0083] いくつかの実装形態では、メモリ206は、言語処理モジュール238によって判定された測定基準および/またはスコアを記憶する。さらに、メモリ206は、言語処理モジュール238によって判定されたメトリックおよび/またはスコアと比較される閾値および他の基準を格納することができる。例えば、言語処理モジュール238は、受信したコマンドの分析語句に対する関連性メトリック(以下で詳細に説明する)を判定することができる。次いで、言語処理モジュール238は、関連性メトリックをメモリ206に格納されている閾値と比較することができる。
【0070】
[0084] 上記で識別された実行可能モジュール、アプリケーション、または一連の手順は、前述のメモリデバイスのうちの1つまたは複数に記憶され得、上記の関数を実行するための一連の命令に対応する。上記の識別されたモジュールまたはプログラム(すなわち、命令の集合)は、別々のソフトウェアプログラム、手順、またはモジュールとして実装される必要はなく、したがってこれらのモジュールの様々なサブセットは、様々な実装形態において結合または別の方法で再構成され得る。いくつかの実装形態では、メモリ206は、上で識別されたモジュールおよびデータ構造のサブセットを記憶する。さらに、メモリ206は、上で説明されていない追加のモジュールまたはデータ構造を記憶することができる。
【0071】
[0085] 図2はコンピューティングデバイス200を示しているが、図2は、本明細書で説明される実装形態の構造概略図としてよりも、むしろ存在し得る様々な特徴の関数の説明として、意図されている。実際には、また当業者によって認識されるように、別々に示された項目は組み合わされてもよく、いくつかのアイテムは分離されてもよい。
【0072】
[0086] 図3Aは、いくつかの実装形態による、データセットの視覚的分析のために語用論の原則を適用する自然言語を使用するためのプロセスまたはフレームワークを示すプロセスの流れ図である。会話型対話モデルに基づくフレームワークは、語用論的な理論で採用されているセンタリングアプローチを拡張して、再生中のデータ属性のコンテキストを継続、保持、およびシフトするという文の間の移行状態をサポートする。このフレームワークは、「視覚的な分析のサイクル」、すなわち視覚的な分析における流動的で反復的な探索および改良をサポートするインターフェースをサポートしている。視覚的な分析との対話は、ユーザが分析ツールへのインターフェースの操作方法に焦点を合わせるのではなく、データについての質問に答えることに集中できる場合に最も効果的である。語用論は、質問や洞察が以前の質問や人が見るデータのパターンから生じることが多い視覚分析フローにとって特に重要である。
【0073】
[0087] コヒーレンスを示す一連の発話が会話を形成する。コヒーレンスは、他の発話の解釈に対する各個々の発話の解釈に基づく、会話の意味論的特性である。前述のように、一組の発話を正しく解釈するために、プロセスフレームワークは、いくつかの実装形態に従って、会話型センタリングと呼ばれる談話構造に一般的に使用されるモデルを利用および拡張する。このモデルでは、発話は構成的談話セグメントに分割され、2つのセグメント間に成立する可能性のある関係が埋め込まれる。センターとは、その発話を談話での他の発話にリンクさせるのに役立つエンティティを示す。発話U、…、Uの談話セグメントDSを考察する。DSの各発話U(1≦n<m)には、会話の現在の焦点を示す一連の前向きセンターC(U、DS)が割り当てられる。セグメントの最初の発話以外の各発話には、後ろ向きセンターの集合C(U、DS)が割り当てられる。新しい発話Un+1の後ろ向きセンターの集合はC(Un+1、DS)であり、これはUの前向きセンター(すなわちC(U、DS))に等しい。視覚的な分析する会話のコンテキストでは、前向きおよび後ろ向きのセンターは、データの属性および値、視覚的特性、ならびに分析アクション(例えば、フィルタ、ハイライト)を含む。
【0074】
[0088] 各談話セグメントは、大域的コヒーレンス、すなわち会話のトピックまたは主題を通常示す会話全体の大域的コンテキスト、および局所的コヒーレンス、すなわちその会話内の発話間のコヒーレンスの両方を示す。局所的コヒーレンスとは、C(U、DS)とC(U、DS)との間の継続、保持、および置換の移行状態を通して、局所的コンテキスト内の一連の発話を推論することを示す。フレームワークは、いくつかの実装形態に従って、これらの局所的コヒーレンス構成要素のそれぞれについて一組の規則を導入することによって、視覚的に分析する会話のためのこの会話型センタリング理論を拡張する。
【0075】
[0089] 発話Uが与えられると、このフレームワークを実装するシステムは、前向きセンターC(U、DS)から導出された一連の分析関数を実行することによって応答する。いくつかの実装形態によれば、分析関数F(X、op、v)は、変数X(属性または視覚化特性とすることができる)、演算子op、および値v(通常は定数)からなる。例えば、ユーザが「英国のはしか」と言うと、システムは2つの関数、すなわちF_CAT(疾患、==、はしか)とF_CAT(国、==、英国)を作成する。ユーザが新しい発話Un+1を提供すると、システムは、いかなる前のコンテキストをも考慮せずに、最初に、Un+1から一時センターの集合Ctemp(Un+1、DS)を作成する。次に、システムは一連の規則を適用して、C(Un+1、DS)とCtemp(Un+1、DS)の間のいくつかの集合演算に基づいて、C(Un+1、DS)の前向きセンターを作成する。次に、いくつかの実装形態によれば、前向きセンターを使用してユーザの発話に応答する。
【0076】
[0090] 図3Aは、いくつかの実装形態による2つの発話U(302)およびUn+1(312)についてのこのプロセスを示す。システムは、いかなる前のコンテキストをも考慮せずに、Uから一時センターの集合Ctemp(U)(306)を作成する(304)。発話Uを受信した時点で、システムは、前の発話Un-1に基づいて後ろ向き会話センターの集合C(U)(301)を事前計算するか、Uが第1の発話である場合、C(U)を空集合に初期化している。次に、システムは、1つまたは複数の移行規則(図3Bを参照して以下に説明する)を適用し(308)、後ろ向きセンターC(U)(301)および一時会話センターCtemp(U)(306)から前向きセンターの集合C(U)(310)を導出する。前向き会話センターC(U)(310)はまた、次の発話Un+1(312)に対する後ろ向き会話センターC(Un+1)である。これまでに説明したプロセスは、次の発話Un+1について繰り返される(312)。システムは、いかなる前のコンテキストを考慮せずに、Uから一時センターの集合Ctemp(U)(316)を計算する(314)。次に、システムは、後ろ向きセンターC(Un+1)(310)および一時会話センターCtemp(Un+1)(316)から前向きセンターの集合C(Un+1)(319)を導出するために、1つまたは複数の移行規則を適用する(318)。システムは、いくつかの実装形態に従って1つまたは複数のデータの視覚化を更新するために、前向き会話センターC(Un+1)(319)を使用する。システムはまた、次の発話Un+2に対する後ろ向き会話センターC(Un+2)として、前向きセンターの集合C(Un+1)(319)を使用するなどである。いくつかの実装形態によれば、ユーザが別のデータセットに移動するか視覚化をリセットすると、システムは分析する会話の大域的コヒーレンスを更新し、以前の状態(前向き会話センター、後ろ向き会話センター、一時会話センターなど)をすべて消去する。
【0077】
[0091] 図3Bは、いくつかの実装形態による、会話センターの状態および状態間の移行を示すステートマシン図である。状態322は、後ろ向き会話センターCと一時会話センターCtempをカプセル化し、状態324、326、および328のそれぞれは、前向き会話センターCの異なる状態を表す。会話センターは、発話Un+1(図示せず)に対応する。以下は、各移行規則、すなわち各移行がいつ起こるか、および終了状態がどのように計算されるかの説明である。
【0078】
[0092] いくつかの実装形態によれば、移行継続323は、コンテキストを後ろ向きセンターCから前向きセンターCへと継続する。すなわち、後ろ向き会話センターCの各会話センターは、前向き会話センターC(324)に含まれる。談話セグメントDSの所与の発話Un+1に対して集合表記法を使用すると、この移行の結果として、他のエンティティと共に
(Un+1、DS)∈C(Un+1、DS)
【0079】
[0093] いくつかの実装形態によれば、この移行は、変数XがCtemp(Un+1)にあるがC(Un+1、DS)にない場合に発生する。この場合、システムは次の和演算を実行する。
(Un+1、DS)=C(Un+1、DS)∪Ctemp(Un+1、DS)
【0080】
[0094] いくつかの実装形態によれば、移行保持325は、追加のエンティティを前向きセンターに追加することなく、前向きセンターC(326)の後ろ向きセンターC(322)からのコンテキストを保持する。すなわち
(Un+1、DS)=C(Un+1、DS)
【0081】
[0095] いくつかの実装形態によれば、この移行保持325は、変数XがC(Un+1、DS)にあるがCtemp(Un+1、DS)にない場合にトリガする。
【0082】
[0096] いくつかの実装形態では、シフト移行327を用いて、コンテキストは、後ろ向き会話センター322から前向き会話センター328にシフトする。すなわち
(Un+1、DS)≠C(Un+1、DS)
【0083】
[0097] いくつかの実装形態では、シフト移行327は、変数XがC(Un+1、DS)とCtemp(Un+1、DS)の両方にあるが、対応する値が異なる場合に発生する。この場合、システムはXを含むすべての後方中心C(Un+1、DS)をCtemp(Un+1、DS)に置き換える。図3Bが示すように、この置き換えは式を用いて表すことができる。
(Un+1、DS)=C(Un+1、DS)-XCb+XCtemp
【0084】
[0098] いくつかの実装形態では、シフト移行327はまた、フィルタの制約が除かれたときにも発生する。例えば、はしかのウィジェットを除くと、疾患の変数が、はしかからすべての疾患に変わる。
【0085】
[0099] 図4Aはいくつかの実装形態による分析する会話を処理する際の異なる移行規則の使用を示す図である。システムが、図3Aおよび図3Bを参照して上述したフレームワークを実装すると仮定する。システムが発話400(例えば、「英国のはしか」)を受信すると、システムは、いくつかの実装形態に従って、その発話に対応する前向き会話センター(404)を計算し(402)、後ろ向きセンターを初期化する。例の発話の会話センターは「はしか」と「英国」である。計算された会話センターに基づいて、システムは視覚化を更新するためにフィルタを適用する(406)、例えば視覚化408において英国内のはしかを示すカテゴリカルおよび空間フィルタを適用する。図4Dは、視覚化408の拡大版を示す。図4Dに示されるように、「英国のはしか」という発話は、システムが(DISEASE==はしか(442)およびCOUNTRY==英国(444))に焦点を当てた状態で「世界中の疾患の大発生」の視覚化を示すに至る。図4Aに参照を戻すと、ユーザが新しい発話410で視覚化408に応答すると仮定すると(例えば、「オレンジ色の急増を私に見せてほしい」)、システムは、継続規則(323、図3Bを参照して上述)を適用することによって前向き会話センターを計算する(412)。これは、例示的な発話のための一時会話センター(図示せず)が視覚化特性(変数のタイプ)、すなわち形状の変数(「急増」という値を有する)および色の変数(「オレンジ」という値を有する)に対応する「オレンジ色の急増」を含み、これらの変数は、後ろ向き会話センター(404)には存在しないためである。さらに、発話410は、後ろ向き会話センター(404)の他の変数(DISEASEまたはCOUNTRY)を参照しないので、システムは保持規則またはシフト規則を適用しない。発話410のための前向き会話センター(414)は、このようにして{はしか、英国、オレンジ色の急増}となるよう計算される。これらの前向きセンターに基づいて、システムは、例えば視覚化418の図表のはしかについて行内のオレンジ色の急増を強調表示することによって、データの視覚化内の対応する図表を更新する。図4Eは、視覚化418の拡大版を示す。この例が示すように、システムは、いくつかの実装形態に従って、「オレンジ色の急増を私に見せてほしい」という発話に応答して、急増を強調表示し、「2013年のはしかの4.4ケース」という言葉で急増に注釈を付ける(446)。
【0086】
[0100] 図4Bは、例えば発話などの異なる移行規則の適用をさらに例示する別の図である。この例は、図4Aの視覚化438に対するユーザの応答に従う。図4Bを参照すると、システムが発話420を受信したとき(例えば、「彼方のおたふく風邪」)、いくつかの実装形態に従って、システムは、発話に対応する前向き会話センターを計算する(422)。後ろ向き会話センター(424)(例えば、{はしか、英国、オレンジ色の急増})は、図4Aに示される(発話410に応答して)前のステップで計算された前向き会話センター(414)に対応する。発話420の一時会話センター(図示せず)(例えば、「彼方のおたふく風邪」)は、前の発話用に導出された会話センター(例えば、「オレンジ急増」)を含まない。これにより、システムは保持規則を適用するようにトリガされる(図3Bの325を参照して上述)。例えば、一時会話センターにはDISEASEという変数が含まれているが、その変数の値は、はしかからおたふく風邪に変更されている。これにより、システムはシフト規則を適用する(図3Bの327を参照して上述)。その結果、システムは(例えば、{おたふく風邪、英国}のように)前向き会話センター(424)を計算する。これらの前向き会話センターに基づいて、視覚化428に示すように、システムは必要なフィルタを適用すること(例えば、英国用の空間フィルタの保持、おたふく風邪へのカテゴリカルフィルタの更新)、および視覚化の更新(例えば、はしかの行のハイライトされた急増の除去)によって応答する(426)。図4Fは、視覚化428の拡大版を示す。図4Fに示されるように、「彼方のおたふく風邪」という発話は、(DISEASE==おたふく風邪(448)、およびCOUNTRY==英国(450))に焦点を置いた状態で「世界中の疾患の発生」の視覚化を示すシステムをもたらす。
【0087】
[0101] 再び図4Bを参照して、例を続けるために、ユーザが別の発話(430)(例えば、「マラウイ、コンゴ、アンゴラではしかの流行」)で質問すると仮定すると、システムは、上記のシフト規則を適用することによって、この発話に対応する前向きセンターを計算する(432)。この示された例では、シフト規則を適用する理由は、DISEASEという変数の値が今や異なる、すなわちはしかと流行で異なるためである。同様に、地理的地域は英国からマラウイ、コンゴおよびアンゴラに変わった。シフト規則を適用することに基づいて、システムは前向き会話センターを計算する(434)(この例では、センターは{はしか、流行、マラウイ、コンゴ、アンゴラ}である)。前向き会話センター(434)に基づいて、システムは適切なフィルタ(例えば、はしかの流行のためのカテゴリカルフィルタ、および英国に代わるマラウイ、コンゴ、およびアンゴラの新しい空間フィルタ)を適用することによって発話にさらに応答する(436)。それにより、視覚化438を生成する(例えば、マラウイ、コンゴおよびアンゴラでのはしかの流行を示す)。図4Gは、視覚化438の拡大版を示す。図4Gに示されるように、「マラウイ、コンゴ、アンゴラにおけるはしかの流行」という発話は、焦点(DISEASE==はしか(452)、IMPACT==流行(454)、COUNTRY==マラウイ(456)、COUNTRY==コンゴ(458)、COUNTRY==アンゴラ(460))を当てた状態で、「世界各地での疾患の発生」の視覚化を示すシステムをもたらす。
【0088】
[0102] 図4Cは、いくつかの実装形態による、図4Aおよび図4Bを参照して上で説明されたユーザの発話に応答したデータの視覚化に対する更新を示す。視覚化408、418、428、および438は、それぞれ拡大図4D、4E、4F、および4Gを参照して上述した。
【0089】
[0103] 図5は、いくつかの実装形態による視覚的分析のための語用論の原理の適用のための一般的なフレームワークを示す図である。このフレームワークは、いくつかの実装形態に従って、会話型センタリングと呼ばれる談話構造に一般に使用されるモデルを利用し拡張する。このモデルでは、発話は構成的談話セグメントに分割され、2つのセグメント間に成立する可能性のある関係が埋め込まれる。センターとは、その発話を談話での他の発話にリンクさせるのに役立つエンティティを示す。発話U、…、Uの談話セグメントDSを考察する。DSの各発話U(1≦n<m)には、会話の現在の焦点を示す一連の前向きセンターC(U、DS)が割り当てられる。セグメントの最初の発話以外の各発話には、後ろ向きセンターの集合C(U、DS)が割り当てられる。新しい発話Un+1の後ろ向きセンターの集合はC(Un+1、DS)であり、これはUの前向きセンター(すなわちC(U、DS))に等しい。視覚的な分析する会話のコンテキストでは、前向きおよび後ろ向きのセンターは、データの属性および値、視覚的特性、ならびに分析アクション(例えば、フィルタ、ハイライト)を含む。
【0090】
[0104] 発話Uが与えられると、このフレームワークを実装するシステムは、前向きセンターC(U、DS)から導出された一連の分析関数を実行することによって応答する。分析関数F(X、op、v)は、変数X(属性または視覚化特性であってよい)、演算子op、および値v(通常は定数)からなる。例えば、ユーザが「英国のはしか」と言うと、システムは2つの関数、すなわちF_CAT(疾患、==、はしか)とF-_CAT(国、==、英国)を作成する。ユーザが新しい発話Un+1を提供すると、システムは、いかなる前のコンテキストをも考慮せずに、最初に、Un+1から一時センターの集合Ctemp(Un+1、DS)を作成する。次に、システムは一連の規則を適用して、C(Un+1、DS)とCtemp(Un+1、DS)の間のいくつかの集合演算に基づいて、C(Un+1、DS)の前向きセンターを作成する。次に、いくつかの実装形態によれば、前向きセンターを使用してユーザの発話に応答する。
【0091】
[0105] 図5は、いくつかの実装形態による2つの発話U(500)およびUn+1(520)についてのこのプロセスを示す。システムは、いかなる前のコンテキストを考慮せずに、Un+1から一時センターの集合Ctemp(Un+1)(528)を計算する(526)。発話Un+1を受信した時点で、システムは、前の発話Uに基づいて後ろ向き会話センターの集合C(Un+1)(504)を事前計算するか、Uが第1の発話である場合、C(Un+1)(504)を空集合に初期化した。
【0092】
[0106] 会話センタリングは、発言がそれらの間のつながりを示すことを前提としている。これらの発話が互いにリンクして会話を形成する方法は、結束である。結束は、構成句における字句構造と文法構造の両方の組み合わせの結果として生じる。したがって、句構造を識別することは、その発話を視覚化に適用される1つまたは複数の分析関数に分解するための論理的な出発点である。句の構造には、字句構造と文法構造の両方が含まれる。図5において、このフレームワークを実施するシステムは、ステップ522において、発話Un+1(520)の句構造を計算する。通常、パーサは句構造を計算するために使用される。パーサは入力文(クエリまたは自然言語コマンドと呼ばれることもある)を受け入れ、英語などの特定の自然言語に固有の一連の文法規則を適用して、入力文を一連のトークン(言語要素)に分割する。いくつかの実装形態では、文法規則は環境に合うように修正することができる。いくつかの実装形態では、入力したクエリの構造的記述を提供するために確率的文法が適用される。確率的文法は、文の解析における曖昧性を解決するのに役立つ。(文法生成規則に対する)確率分布は、例えば、手での解析の文章のコーパスから推定することができる。いくつかの実装形態は、名詞、動詞、形容詞などの品詞を各単語(トークンと呼ばれることもある)に割り当てる品詞(POS)タガーを使用することによって、追加の構文構造を推論する。いくつかの実装形態は、解析された出力を対応するカテゴリカルおよび順序付きデータ属性に分解する。ブロック500とブロック510とを結ぶ破線が示すように、いくつかの実装形態では、システムは、発話U(500)の句構造も計算する(510)。
【0093】
[0107] 句構造を用いて、システムは、語用論の形式のタイプ(その例は、図6Aから図10Cを参照して以下に説明される)およびいずれかの他の句構造に関連する情報(例えば、1つの発話には存在しているが、もう1つの発話はない言語要素)を判定する(530)ために進める。次に、いくつかの実装形態によれば、語用論の形式および句構造情報(532)に基づいて、システムは、一時会話センター(528)および後ろ向き会話センターC(504)を使用して、発話Un+1(520)の前向き会話センターC(536)を導出する(534)。図5に示されるように、発話Un+1(520)を受信する前であっても、システムは、最初の一連の動作(フィルタの適用など)を既存の視覚化に適用すること(506)によって、後ろ向き会話センターC(504)に基づいて1つまたは複数の初期視覚化(508)を導出および/または表示する。いくつかの実装形態では、前向き会話センターC(536)に基づいて、システムは、既存の視覚化を更新するかまたは新しい視覚化を生成する(540)ために第2の集合の操作(例えばフィルタの適用)を適用する(538)。
【0094】
[0108] 図6Aは、いくつかの実装形態による、不完全な発話(省略形と呼ばれることもある)に対する語用論の原理の適用を示す図である。省略記号は、1つまたは複数の言語要素を除外する構文的に不完全な文の断片である。これらの発話は以前に確立されたコンテキストでよりよく理解することができる。図6Aは、不完全な発話「タウンホーム」が、前の発話「バラードで1M未満の住宅」というコンテキストの中でどのように理解されるかを示している。システムが、この例では「バラードで1M未満の住宅」という発話である発話U(600)を受信すると、システムは、いくつかの実装形態による、図5を参照して上記で説明された方法論を使用して(ステップ502)、ステップ602において、前向きセンターを計算し、(発話Un+1に対して)後ろ向きセンターを初期化する。例の発話の場合、システムは会話センターの集合を{住宅、バラード、および1M}になるように計算する。いくつかの実装形態では、システムは、会話センターの集合(604)に基づいてデータセットにフィルタを適用し(606)、データの視覚化(608)を表示する。この例では、システムはバラードの1Mドル未満の住宅を示す数値および空間フィルタを適用する。図6Dは、視覚化608の拡大版を示す。図6Cに示されるように、「バラードで1Mドル未満の住宅」という発話は、(バラード(644)でLAST_SALE_PRICEが1.0M未満(642)未満)を中心に「過去の住宅販売-シアトル」の視覚化を示すシステムをもたらす。図6Aに参照を戻すと、いくつかの実装形態では、システムはまた、図5のステップ510を参照して上で説明された1つまたは複数の技法を使用してステップ610で発話Uの句構造(610)を計算する。
【0095】
[0109] いくつかの実装形態では、システムが、この例では発話「タウンホーム」である発話Un+1(620)を受信すると、システムは、Un+1(620)についての一時会話センターを計算する(626)。この例では、システムは会話センター(628)を集合{タウンホーム}になるように計算する。さらに、システムは、いくつかの実装形態に従って、ステップ522(図5)を参照して上で説明された技法を使用して、発話Un+1(620)の句構造を計算する(622)。
【0096】
[0110] 前述のように、省略記号は1つまたは複数の言語要素を除外する。いくつかの実装形態によれば、句構造(612および624)を用いて、システムは、発話Un+1(620)において欠けている言語要素に対応する発話U(600)の会話センターのサブセットを判定する。この例では、言語要素、つまり前置詞句(「バラード」に対応する)に続く場所を示す名詞句と、別の前置詞句(「1M」、より正確には「1Mの下」に対応する)に続く価格の値を示す名詞句が、発話Un+1(620)に欠けているが、発話U(600)に存在していたので、システムはサブセットを集合{バラード、1M}となるように計算する。一方、発話U(600)の句「住宅」および発話Un+1(620)の句「タウンホーム」は、類似の言語要素に対応する(例えば、両方の句は名詞句であり、住宅のタイプを示す)。
【0097】
[0111] ステップ634において、いくつかの実装形態によれば、システムは、この例では集合{タウンホーム}である会話センターの一時的な集合を会話センターのサブセット(632)と組み合わせて、会話センターのサブセット(632)は発話Un+1のための前向き会話センターの集合(638)に到達する。いくつかの実装形態によれば、システムは、計算された前向き会話センターの集合(636)に基づいて、データセットに適用するフィルタの種類を判定し、ステップ638で適切なフィルタを適用して、適切なデータの視覚化(640)を表示する。この例では、会話センター「バラード」および「1M」は、後ろ向き会話センター(604)から保持されているので、システムは数値フィルタ(1Mに対応する)および空間フィルタ(バラードに対応する)を保持する。また、会話センターの値(home_type変数に対応)がタウンホームから住宅に変更されたため、システムは(住宅ではなく)タウンホームを表示するためにカテゴリカルフィルタをhome_typeに適用する。図6Dは、視覚化640の拡大版を示す。図6Dに示されるように、発話「タウンホーム」は、「過去の住宅販売-シアトル」の視覚化を示すシステムをもたらし、前の視覚化608からのLAST_SALE_PRICEウィジェットまたはフィルタ(642)および空間フィルタ644を保持し、HOME_TYPEをタウンハウス(646)付きに置き換える。
【0098】
[0112] 図6Bは、いくつかの実装形態による、図6Aを参照して上記で説明されたユーザの発話に応答したデータの視覚化に対する更新を示す。視覚化608および640は、それぞれ拡大図6Cおよび6Dを参照して上述した。
【0099】
[0113] 図7Aは、いくつかの実装形態による参照表現(本明細書では照応参照と呼ばれることがある)を用いた発話のための語用論の原理の適用を示す図である。参照表現は、テキストを統一し、節約を生み出すのに役立ち、不必要な繰り返しを防ぐ。参照は会話形式であり、それはそれ自体で意味論的に解釈されるのではなく、その解釈のために何か他のものへの参照を行う。解釈がテキスト内にある場合、これは照応参照と知られている。視覚的分析インタラクションでは、参照はデータ属性と分析関数に関係する。図7Aは、前の発話「2015年の価格」のコンテキストにおいて、「前の年」の発話がどのように理解されるかを示す。システムが、この例では「2015年の価格」という発話である発話U(700)を受信すると、システムは、いくつかの実装形態による、図5を参照して上記で説明された方法論を使用して(ステップ502)、ステップ702において、前向きセンターを計算し、(発話Un+1に対して)後ろ向きセンターを初期化する。例の発話の場合、システムは会話センターの集合を{価格、2015}と計算する。いくつかの実装形態では、システムは、会話センターの集合(704)に基づいてデータセットにフィルタを適用し(706)、データの視覚化(708)を表示する。この例では、システムは2015年の住宅価格を示す時間フィルタを適用する。図7Cは、視覚化708の拡大版を示す。図7Cに示すように、「2015年の価格」という発話は、2015年「の過去の住宅販売-シアトル」の視覚化を示すシステムをもたらす。示されていないが、例えば、以前の発話に応答した以前の視覚化により、システムはシアトルでの価格をチェックした。図7Aに参照を戻すと、いくつかの実装形態に従って、システムがこの例では「前年」である発話Un+1(720)を受信すると、システムはステップ522(図5)を参照して上述した技法を使用して発話Un+1(720)の句構造を計算する(722)。
【0100】
[0114] 先に述べたように、照応参照を使って式を参照すると、テキスト内の他の何かが参照される。句構造(724)に基づいて、システムは、いくつかの実装形態に従って、発話Un+1(720)の照応を識別する(726)。この例では、システムは「前」という照応語(728)を識別する。いくつかの実装形態によれば、識別された照応語を使用して、次にシステムは、参照が参照しているエンティティを識別するために、参照を含む句チャンク(732)を識別する(734)。図示の例では、システムは照応語「前」に対応する句チャンク「年」を識別する。いくつかの実装形態によれば、識別された照応語および句チャンクに基づいて、ステップ730において、システムは、後ろ向きセンターを検索してそのようなエンティティを見つけ、照応参照をこれらのエンティティと置き換える。さらに、いくつかの実装形態では、この例の場合のように、システムはエンティティの値に適切な関数を検出して適用する。図示の例では、システムはまた、ユーザが「前の」年を参照していることを検出し、したがって、年変数の正しい値に到達する前に、2015の値が1つ減少される。システムは、いくつかの実装形態に従って、時間関数(例えば、DATECALC)を使用して「前の」日付を計算する。システムは、この例では集合{価格、2014}である前向き会話センターの集合(736)に到着する。この集合に基づいて、システムは、いくつかの実装形態に従って、ステップ738で視覚化を更新するために必要なステップをとる。この例では、システムは年の参照を保持し、時間フィルタを2014に更新して740で視覚化を表示する。図7Dは、視覚化740の拡大版を示す。図7Dに示されるように、「前年」という発話は、(前の視覚化からの)2015年の前年の2014年における「過去の住宅販売-シアトル」の視覚化を示すシステムをもたらす。
【0101】
[0115] 図7B図7Dは、いくつかの実装形態によるデータ視覚化アプリケーションにおいて自然言語処理を使用する対話型データ分析のためのグラフィカルユーザインターフェース(図7Aに関連する)を示す。図7Bは、いくつかの実装形態による、図7Aを参照して上で説明されたユーザの発話に応答したデータの視覚化に対する更新を示す。視覚化708および740は、それぞれ拡大図7Cおよび7Dを参照して上述した。
【0102】
[0116] 図7Aには示されていないが、いくつかの実装形態では、システムは、単一の表現で複数の照応参照を認識するステップを繰り返す。さらに、いくつかの実装形態では、システムは、「それ」、「それら」、「それらを」、「それら(ones)」、「前の」、「次の」など、所与の発話での多くのタイプの照応参照を識別する。もう1つの説明的な例として、「フレモント、クイーン・アン、バラードについて見せてほしい」という発話が、「それらの地区のコンドミニアム」に続く場合を考える。この例では、それらは、地区という単語によって示されるように、属性近傍の属性のいくつかの値(すなわち、フリーモント、クイーン・アン、およびバラード)を参照している。
【0103】
[0117] いくつかの実装形態では、参照はデータの属性の値を示す。いくつかの実装形態では、参照は、システムによって実行される必要がある動作を示す。例えば、「バラードを排除する」という発話と、それに続く「フリーモントに対すること」を考察する。ここでは、いかなる名詞もすぐに続いていない言葉だが、直前に動詞語「do」が先行している。そのような場合、システムは前の発話で述べられた1つまたは複数の行動を判定する。それはこの例では「除外する」行動である。
【0104】
[0118] いくつかの実装形態では、システムは、テキストの外側にあり、視覚化のコンテキスト内にある参照をサポートする。いくつかのそのような実装形態では、前向きセンターCは、後ろ向きセンターCのテキストとは対照的に、視覚化内のコンテキストを参照する。いくつかの実装形態では、この形式の間接参照は、通常は示すことによって、環境内のいくつかのオブジェクトを示す厳密参照を含む。いくつかのそのような実装形態では、システムは、マルチモーダル対話(マウス+音声/テキスト)を可能にすることによって、厳密参照をサポートする。図7Eは、厳密参照に応答した例示的な視覚化を示す。いくつかの実装形態では、この形式の間接参照は、マーク特性、ラベル内のテキスト、軸およびタイトルなどの視覚化における特性を使用する視覚化特性参照を含む。図7Fは、視覚化特性への参照に応答した例示的な視覚化を示す。
【0105】
[0119] 図8Aは、いくつかの実装形態による、接続詞を伴う発話に対する語用論の原理の適用を示す図である。発話中の接続詞は、接続詞と呼ばれる句断片間の一連の関係を伝達する。会話では、ユーザは複数の接続詞を追加することによって複合クエリを繰り返し作成する傾向がある。句間の「および」「または」「も」などの接続詞や連結語の明示的な使用は避けられることが多い。図8Aは、前の発話「バラードにある住宅」のコンテキストにおいて、「昨年夏に600k未満だったバラードにある住宅」という発話がどのように理解されるかを示す。システムが、この例では「バラードにある住宅」という発話である発話U(800)を受信すると、システムは、いくつかの実装形態による、図5を参照して上記で説明された方法論を使用して(ステップ502)、ステップ802において、前向きセンターを計算し、(発話Un+1に対して)後ろ向きセンターを初期化する。例の発話の場合、システムは会話センターの集合を{家、バラード}になるように計算する。いくつかの実装形態では、システムは、会話センターの集合(804)に基づいてデータセットにフィルタを適用し(806)、データの視覚化(808)を表示する。この例では、システムはバラードにある住宅を示すカテゴリカルおよび空間フィルタを適用する。
【0106】
[0120] いくつかの実装形態に従って、この例では「昨年夏に600k未満だったバラードにある住宅」である発話Un+1(810)をシステムが受信すると、システムは、ステップ522(図5)を参照して上述した技法を使用して発話Un+1(810)の句構造を計算する(812)。前述のように、複合クエリは、構成句間の複数の(場合によっては暗黙的な)連言からなる。句構造(814)に基づいて、システムは、いくつかの実装形態に従って、発話Un+1(810)の連言を識別する(816)。この例では、システムは、複数のクエリ(818)、すなわち、「住宅」、「バラードにある」、「600k未満」、および「昨年の夏」を識別する。これらのクエリ(818)および後ろ向き会話センターの集合(804)に基づいて、システムは、いくつかの実装形態に従って、前向き会話センターの集合(822)を計算する(820)。例えば、システムは、発話U(800)から一致するコンテキストを選択し、発話Un+1(810)からの連言から導出された新しい会話センターを追加する。この例の前向き会話センターの集合(822)は、集合{住宅、バラード、<600k、昨年の夏}である。この集合に基づいて、システムは、いくつかの実装形態に従って、ステップ824において現在の視覚化を洗練するために必要なステップをとる。この例では、システムは、826で視覚化を示すために、住宅価格に数値フィルタを適用し、過去の夏を示す時間フィルタを適用する。図8Bは、視覚化826の拡大版を示す。図8Bに示されるように、「昨年夏に600k未満だったバラードにある住宅」という発話は、去年の夏、LAST_SALE_PRICE(830)、600k未満(832)による「過去の住宅販売-バラード(828)におけるシアトル」の視覚化を示すシステムをもたらす。この例では、システムは、いくつかの実装形態に従って、期間2015-6から2015-8-31までの期間(834)として、前回の視覚化に基づいて期間(「昨年の夏」の期間)をさらに分解する。
【0107】
[0121] 図8Cは、いくつかの実装形態による、システムが線形化によって解析木内の隣接するノードの分析関数をどのように反復的に接続するかを示す。連言間の暗黙のデータのコヒーレンスを見つけることは時々挑戦的な作業である。図8Bに示す例では、すべての連言は同じエンティティ「バラードにある住宅」を参照している。ただし、連言が異なるエンティティにマップされる場合がある。発話の例は、「サウス・レイク・ユニオンで600k未満のコンドミニアムのバラードにある住宅」である。システムは、いくつかの実装形態に従って、個々の連言が同じエンティティまたは異なるエンティティに分解されるかどうかを判定する。いくつかのそのような実装形態では、システムは、潜在的に暗黙の連言で潜在的に長い発話を取得し、その発話を論理演算子によって互いに連鎖された分析関数の集合に変換する規則ベースの技法を使用する。次いで、システムは、いくつかの実装形態に従って、ユーザの発話に応答してこれらの分析関数を実行する。
【0108】
[0122] いくつかの実装形態では、システムは、線形化のプロセスを通じて1つまたは複数の対応する分析関数を呼び出すために複合発話内の複数の連言を分解する。いくつかのそのような実装形態では、分析関数F(X、op、v)は、変数X(例えば、属性)、演算子op、および値vからなる。各属性はカテゴリカルまたは順序付けられている。順序付けされたデータ型はさらに序数と量に分類される。線形化プロセスは、以下に説明するように、属性および演算子の種類を考慮して、論理演算子(すなわち、∧、∨)を使用して分析関数を組み合わせる。
【0109】
[0123] ∨演算子を適用する:隣接する2つ以上の連言が1つの属性を共有し、その属性のデータ型がカテゴリカルの場合、いくつかの実装形態によれば、システムはこれらの連言を∨で接続する。同様に、その共有属性が順序付けられていて、関数の演算子が==の場合、システムはいくつかの実装形態に従って∨を適用する。このような場合、∧を適用するとデータテーブル内のどの項目とも一致しないため、∨は選択として論理的により適している。例えば、発話が「コンドミニアムとタウンホームを表示してほしい」という場合、いくつかの実装形態に従って、システムは次の組み合わせの分析関数を生成する。(F_CAT(家の種類、==、コンドミニアム)∨F_CAT(家の種類、==、タウンホーム))。この例では、「コンドミニアム」と「タウンホーム」の両方が同じカテゴリ属性、つまり家の種類に属している。同時に「コンドミニアム」と「タウンホーム」の両方を特定の住宅(項目)にすることはできないため、∨演算子を適用する方が∧演算子を適用するよりも論理的に適している。同様に、ユーザが「2、3の寝室の住宅」と発話した場合、システムは、いくつかの実装形態に従って、(F_ORDINAL(ベッド、==2)∨F ORDINAL(ベッド、==3))を生成する。属性タイプが順序付けられており、条件X<v1およびX>v2を含む場合は、∨演算子も適している。式中、v1v2である。例えば、発話が「2013年より前および2014年より後」である場合、いくつかの実装形態によれば、∨演算子は2つの接続詞の間で使用されることになる。この場合もやはり、∧演算子を適用すると、データテーブルのどの項目にも一致しなくなる。
【0110】
[0124] ∧演算子の適用:属性タイプが順序付けられていて、条件X>v1およびX<v2を含む場合は、∧演算子が適している。式中、v1v2である。例えば、「400k超700k未満の住宅」は、(F NUMERIC(価格、>、4000000)∧F NUMERIC(価格、<、700000))となる。「2~4のベッド」は、(F ORDINAL(ベッド、>=、2)∧F NUMERIC(ベッド、<=、4))となる。∨演算子を適用すると、データテーブル内のすべての項目に一致することになる点に留意されたい。いくつかの実装形態では、∧演算子は、2つの連言の間に共通の属性がない場合にも適用される。例えば、「2つのベッド付きで600k未満の価格」という発話は、(F ORDINAL(ベッド、==、2)∧F NUMERIC(価格、<=、600000))となる。
【0111】
[0125] 発話全体の分析関数の表現を生成するために、システムは、パーサ(例えば、図5を参照して上述したパーサ)によって生成された発話について対応する解析木を後順に走査し、上記の2つの規則を図8Cに示すように句で反復的に適用する。図8Cに示される例では、システムは、「1M未満のタウンホーム、600K未満のコンドミニアム」という発話を入力として取得し、一連の分析関数を生成するために上記の規則を繰り返し適用する。
【0112】
[0126] 図9Aは、いくつかの実装形態による字句の結束を処理するための語用論の原則の適用を示す図である。これまでの3種類の語用論-省略記号、参照、および連言は、会話に文法的な結束を提供する。これらの文法的な構成要素に加えて、ユーザは、関連する単語の意味、すなわち会話における意味、字句の結束と呼ばれる名辞を通して概念を表現する方法を見出すことが多い。これらの単語の意味は、綴り、語幹、複数形のバリエーション(例:「単数形の利益」と「複数形の利益」)、同義語(例:「国」と「国家」)、関連名辞または共起名辞(例:「暴力」と「犯罪」)のように単純なものであってよい。多くの場合、単語の意味は意味論的なコンテキストの中で互いに関連している。
【0113】
[0127] 図9Aは、前の発話「クイーン・アンの最も高価な住宅」のコンテキストにおいて、「最も安いもの」の発話がどのように理解されるかを示している。システムが、この例では「クイーン・アンの最も高価な住宅」という発話である発話U(900)を受信すると、システムは、いくつかの実装形態による、図5を参照して上記で説明された方法論を使用して(ステップ502)、ステップ902において、前向きセンターを計算し、(発話Un+1に対して)後ろ向きセンターを初期化する。例の発話の場合、システムは会話センターの集合を{最も高価な住宅、クイーン・アン}と計算する。いくつかの実装形態では、システムは、いくつかの実装形態に従って、データの視覚化(908)を生成するための1つまたは複数の会話センターを対応する分析関数にマッピングする(906)。示されている例では、システムは住宅の分析関数TOP_N(販売_価格)に「最も高価」をマッピングする。明確にするために価格範囲に注釈を付ける実装形態もある。この例では、システムはバラードにある住宅を示すカテゴリカルおよび空間フィルタを適用する。図9Bは視覚化908の拡大版を示す。図9Bに示されるように、「クイーン・アンの最も高価な住宅」という発話は、いくつかの実装形態に従ってクイーン・アン(930)のLAST_SALE_PRICE(928)の上位10%を含む「過去の住宅販売-シアトル」の視覚化を示すシステムをもたらす。
【0114】
[0128] いくつかの実装形態に従って、この例では「最も安いもの」である発話Un+1(910)をシステムが受信すると、システムは、ステップ522(図5)を参照して上述した技法を使用して発話Un+1(914)の句構造を計算する(912)。上述のように、ユーザの発話は時々前の発話のコンテキストにおいてよりよく理解されている単語の意味を有する。句構造(914)に基づいて、システムは、いくつかの実装形態に従って、発話Un+1(910)の字句の結束の候補を識別する(916)。この例では、システムは、結束分析のための「最も安いもの」(918)という候補を識別する。識別された1つまたは複数の結束候補(918)および一組の後ろ向き会話センター(904)に基づいて、システムは、いくつかの実装形態に従って、前向き会話センターの集合(922)を計算する(920)。示された例では、システムは、いくつかの実装形態によれば、発話U(904)からのコンテキストの残りを続けながら、関連する数値属性を置き換えて、字句結束の候補(例えば、「最も高価」または「最も安いもの」)に対応する意味論的に関連するデータ属性(例えば、販売_価格)を計算する。
【0115】
[0129] いくつかの実装形態では、システムは、大規模テキストコーパスの学習済みベクトル表現を含むWord2vec(商標)モデルを使用し、リカレントニューラルネットワークを使用して語のベクトルを計算することによって属性の語の意味を識別する。いくつかの実装形態では、所与の発話中の単語wとデータ属性dとの間の意味論的関連性Srelは、以下のように計算されたスコアの最大値である。
【数1】

式(1)において、dist(Si,m、Sj,n)は、2つの意味Si,m、Sj,nの間のウー・パーマー距離であり、 wi djは、それぞれwとそのdのベクトル表現である。λは、ベクトル間のペアワイズ余弦距離に適用される重み係数である。
【0116】
[0130] Word2vec(商標)モデルはここでは例としてのみ使用されている。スタンフォード大学のGloVe(商標)など、他の多くのニューラルネットワークモデルを使用して単語の意味を識別することができる。GenSim(商標)やDeeplearning4j(商標)などの一部のライブラリでは、単一のパッケージに様々な単語埋め込みモデルの選択をもたらす。
【0117】
[0131] いくつかの実装形態では、システムは、名辞とデータ属性との間の意味論的関連性を計算するだけでなく、各名辞に関連付けられた分析関数のタイプも計算する。例えば、システムは、「バラードの近くの最も安い住宅を見せてほしい」または「サウス・レイク・ユニオンの大邸宅はどこにあるか」というクエリに対して追加のステップを実行する。システムは、対応する辞書での定義をこれらの単語ベクトルに対する追加の特徴と見なし、いくつかの実装形態に従って、POSタガーを使用して、定義が「未満」、「超」、「低い」、「高い」などの定量的形容詞を含むかどうかをチェックする。次いで、システムは、いくつかの実装形態に従って、適切な分析関数をこれらの形容詞にマッピングする。図9Bは、語句「最も高価」が上位N(販売価格)にマッピングされる例を示す。図9Cは、名辞「最も安いもの」が下位N(販売価格)にマッピングされる別の例を示す。図9Dは、同様に、名辞「最も致命的」が属性「死者数」(942)の上位N値にマッピングされる視覚化(940)を示す。
【0118】
[0132] 図9Aに参照を戻すと、実行中の例に関して、システムは、いくつかの実装形態に従って、{最も安い、住宅、クイーン・アン}であるように、前向き会話センターの集合(922)を計算する。この集合に基づいて、システムは、いくつかの実装形態に従って、ステップ924において現在の視覚化を改良して更新視覚化(926)を生成するために必要なステップを実行する。この例では、システムは「最も安いもの」を下位-N(販売_価格)にマッピングし、住宅価格に数値フィルタを適用することによって現在の視覚化を改良する。図9Cは、視覚化926の拡大版を示す。図9Cに示されるように、「最も安いもの」という発話は、いくつかの実装形態に従ってクイーン・アン(930)のLAST_SALE_PRICE(932)の下位10%について「過去の住宅販売-シアトル」(926)の視覚化を示すシステムをもたらす。
【0119】
[0133] 図10Aは、いくつかの実装形態による、修復発話に対する語用論の原理の適用を示す図である。会話の過程で、ユーザが以前の発話を修正または明確にすることは一般的である。いくつかの実装形態では、システムは、潜在的に曖昧な発話を修正または「修復」するため、または結果がユーザに提示される方法のデフォルト動作を変更するためのフォローアップ修復発話の使用をサポートする。例えば、選択のための強調表示など、システムのデフォルトの動作を更新するために、ユーザは「いいえ、代わりにフィルタをかける」などの発話を使用できる。別の例として、データの属性を更新するために、ユーザは、図7に示すように、「コンドミニアムを除く」や「コンドミニアムからタウンホームへの変更」などの発話を使用できる。
【0120】
[0134] 図10Aは、前の発話「グリーンレイクの住宅」のコンテキストにおいて、「コンドミニアムを除く」という発言がどのように理解されるかを示している。システムが、この例では「グリーンレイクの住宅」という発話である発話U(1000)を受信すると、システムは、いくつかの実装形態による、図5を参照して上記で説明された方法論を使用して(ステップ502)、ステップ1002において、前向きセンターを計算し、(発話Un+1に対して)後ろ向きセンターを初期化する。例の発話の場合、システムは会話センターの集合を{住宅、グリーンレイク}になるように計算する。システムは、いくつかの実装形態に従って、計算された会話センターの集合(1004)に基づいてデータの視覚化(1008)を生成または更新する(1006)。いくつかの実装形態では、システムは、会話センターの集合に基づいてデータセットにフィルタを適用し(1004)、データの視覚化を表示する(1008)。この例では、システムはグリーンレイクの住宅を示すカテゴリカルフィルタと空間フィルタを適用する。図10Bは、視覚化1008の拡大版を示す。図10Bに示されるように、「グリーンレイクの住宅」という発話は、グリーンレイク(1028)における「過去の住宅販売-シアトル」の視覚化を示すシステムをもたらす。
【0121】
[0135] いくつかの実装形態に従って、この例では「コンドミニアムを除く」である発話Un+1(1010)をシステムが受信すると、システムは、ステップ522(図5)を参照して上述した技法を使用して発話Un+1(1010)の句構造を計算する(1012)。上述のように、修復発話は前の発話を修正または明確にする。句構造(1014)に基づいて、システムは、いくつかの実装形態に従って、発話Un+1(1010)を修復発話であると識別し(1016)、次に発話内の関連する修復名辞(1018)を識別する。この例では、システムは、「コンドミニアムを除く」という発話内で「除く」という修復名辞を識別する。1つまたは複数の修復発話および修復名辞の集合(1018)に基づいて、システムは、いくつかの実装形態に従って、前向き会話センターの集合(1022)を計算する(1020)。例えば、システムは、いくつかの実装形態に従って、識別された1つまたは複数の修復名辞に関連する、前の発話の会話センターおよび/またはデータ属性を識別する。いくつかの実装形態では、図10Aに示されるように、システムは、修復条件に基づいて会話センターを修復または曖昧さをなくす(1018)。この例の前向き会話センターの集合(1022)は、集合{コンドミニアムを含まない住宅、グリーンレイク}である。この集合に基づいて、システムは、いくつかの実装形態に従って、以前の視覚化からの結果を更新するために必要なステップ(1024)をとる。この例では、システムは1026での視覚化を示すためにコンドミニアムを除外する。図10Cは、視覚化1026の拡大版を示す。図10Cに示されるように、「コンドミニアムを除く」という発話は、グリーンレイク(1028)における「過去の住宅販売-シアトル」の視覚化を示すシステムをもたらし、HOME_TYPE==コンドミニアム/コープ(1030)を除外する。
【0122】
[0136] 図11Aは、いくつかの実装形態による応答およびフィードバックを処理するための語用論の原則の適用を示す図である。コンテキストを提供するために、視覚分析のための語用論の原理を適用するための一般的な枠組みを本明細書でまず説明する。このフレームワークは、いくつかの実装形態に従って、会話型センタリングと呼ばれる談話構造に一般に使用されるモデルを利用し拡張する。このモデルでは、発話は構成的談話セグメントに分割され、2つのセグメント間に成立する可能性のある関係が埋め込まれる。センターとは、その発話を談話での他の発話にリンクさせるのに役立つエンティティを示す。発話U、…、Uの談話セグメントDSを考察する。DSの各発話U(1≦n<m)には、会話の現在の焦点を示す一連の前向きセンターC(U、DS)が割り当てられる。セグメントの最初の発話以外の各発話には、後ろ向きセンターの集合C(U、DS)が割り当てられる。新しい発話Un+1の後ろ向きセンターの集合はC(Un+1、DS)であり、これはUの前向きセンター(すなわちC(U、DS))に等しい。視覚的な分析する会話のコンテキストでは、前向きおよび後ろ向きのセンターは、データの属性および値、視覚的特性、ならびに分析アクション(例えば、フィルタ、ハイライト)を含む。
【0123】
[0137] 発話Uが与えられると、このフレームワークを実装するシステムは、前向きセンターC(U、DS)から導出された一連の分析関数を実行することによって応答する。分析関数F(X、op、v)は、変数X(属性または視覚化特性であってよい)、演算子op、および値v(通常は定数)からなる。例えば、ユーザが「英国のはしか」と言うと、システムは2つの関数、すなわちF_CAT(疾患、==、はしか)とF_CAT(国、==、英国)を作成する。ユーザが新しい発話Un+1を提供すると、システムは、いかなる前のコンテキストをも考慮せずに、最初に、Un+1から一時センターの集合Ctemp(Un+1、DS)を作成する。次に、システムは一連の規則を適用して、C(Un+1、DS)とCtemp(Un+1、DS)の間のいくつかの集合演算に基づいて、C(Un+1、DS)の前向きセンターを作成する。次に、いくつかの実装形態によれば、前向きセンターを使用してユーザの発話に応答する。
【0124】
[0138] 会話をサポートするために、システムによって表示される視覚化は、様々な発話に対して結束のある適切な応答を提供する。システムが既存の視覚化の視覚的エンコーディングを変更することで対応する場合もあるが、視覚分析会話をより効果的にサポートするためにシステムが新しい図表を作成する場合もある。適切な視覚化応答に加えて、システムは、適切なフィードバックを生成することによってシステムがどのように発話を解釈したかをユーザが理解するのを助け、必要に応じていくつかのインターフェース制御を通してユーザが解釈を修正できるようにする。従来のダッシュボードでは、視覚的なフィードバックを即座に提供するよう強調表示された、視覚化された項目や属性を選択することで、ユーザが対話する。同時に、他の図表は項目を強調表示または除外することによって更新される。しかし、自然言語のインターフェースでは、マウス/キーボードによる明示的な選択を行う代わりに、ユーザは様々な属性や値に言及しているため、ダッシュボードの中にある各ビューがどのように発話に応答するべきかを決定する課題が些細なものでなくなる。システムが複数の視覚化をサポートしなければならないとき、別の複雑さが生じる。
【0125】
[0139] 図11Aは、いくつかの実装形態に従って応答を生成するための方法論を示す。ダッシュボード内のビュー(V)がどのように発話に応答すべきかを決定するために、いくつかの実装形態によるシステムは以下のように進行する。システムは、前の発話Un+1の会話センターと、現在のコンテキスト/発話だけを使用して計算された一時会話センターの集合とに基づいて、発話Un+1に対応する前向き会話センターの集合(1100)C(Un+1)を計算する。システムはすべてのデータ属性のリスト(1104)を作成する(1102)。次に、システムは、既存の視覚化のいずれかがデータ属性のリスト(1104)内のそれぞれの属性を符号化しているかどうかを、例えば視覚化マネージャを呼び出すことによって判定する(1106)。次に、システムは、視覚化(本明細書ではビューと呼ばれることもある)が(例えば、カウントまたは平均などのいずれかの集約的関数を使用せずに)それぞれの属性をその次元として(例えば、視覚化の特徴として)直接符号化する場合、判定する(1118)。属性が既存の視覚化Vによって符号化されていることが判明した場合(すなわち1118でチェックされた条件が真/はいである)、システムは、更新されたダッシュボードのそれぞれの属性に対応する基準(1124)に関連するマークを強調表示する(1122)。一方、システムが、選択された視覚化(視覚化Vとして示される)がそれぞれの属性を直接符号化しないと判定した場合、システムはいくつかの実装形態に従って、更新されたダッシュボードの基準(1124)と一致しない結果をフィルタリングする(1120)。これは典型的には、二次的な図表が結果セットに対してさらなるデータ変換を適用する場合(例えば、折れ線グラフまたは棒グラフを使用する場合)である。いくつかのそのような実装形態では、システムはさらに、更新されたダッシュボードのそれぞれの属性に対応する基準(1124)に一致する1つまたは複数の結果を強調表示する。
【0126】
[0140] 図11Bは、いくつかの実装形態による、図11Aに示されている方法論をさらに示す例示的な視覚化(1170)である。システムは、地図グラフ(1172)の基準「英国のはしか」に一致する項目を強調表示する。システムはまた、折れ線グラフ(1174)で系列(1176)を強調表示し、「はしか」を表す棒グラフ(1178)で棒(1180)を強調表示する。しかし、影響に関する棒グラフ(1182)は、属性のリスト(例えば、リスト{X、X、…X}(1104))内のいかなる属性も符号化しないので、いかなるマークも強調表示することができない。したがって、システムは基準「英国のはしか」に一致しない結果を除外し、それに応じて図表を更新する。除外表示するか強調表示するか(例えば、「除外」、「削除」、「フィルタのみ」)の選択を明示的に表現することで、ユーザがデフォルトの動作を変更することができることに留意されたい。
【0127】
[0141] 視覚的分析のフローの間に、既存の視覚化がユーザの進化する情報のニーズを満たすことができない状況がある場合がある。このシナリオは、例えば、特定のデータ属性を既存の視覚化(例えば、マップの時間値)で効果的に符号化できない場合に発生し、応答として新しい視覚化を作成する必要性が正当化される。いくつかの実装形態によれば、視覚化を言語的詳細と結び付ける作業からインスピレーションを得て、システムは、異なる種類の視覚化(例えば、棒グラフ、折れ線グラフ、地図グラフ、および散布図)の作成をサポートする。
【0128】
[0142] 図11Cは、入力された発話に基づいてダッシュボードがどのようにして漸進的に構築されるかを示す。システムは、「近隣毎の平均価格」という発話に応答して視覚化1140を生成する。ユーザが次の発話「経時的な平均価格」を提供すると、システムは、平均価格の時間経過を示す線図(1152)を視覚化(1150)において生成することによって応答する。ここで、ユーザが次に「住宅タイプ別」の発話を提供する場合、システムは、視覚化(1160)の異なる住宅タイプに対応する線(1162)を用いて折れ線グラフ(1152)を改善する。
【0129】
[0143] 図11Aに参照を戻すと、既存の視覚化を作成または変更するための基礎となるアルゴリズムは以下のように機能する。最初に、システムは、新しい視覚化の作成または既存の視覚化の変更が必要であるかどうかを判定する(1106)。システムは、前向きセンターC(Un+1)(1100)で指定された属性を分析し、これらのデータ特性を符号化するいずれかの現在の視覚化を検索する。判断ブロック1106の隣に矢印「いいえ」として示されているように、既存の視覚化の詳細と一致するものがない場合、システムは、属性および集約タイプからなる対応する新しい詳細を生成する。図11Aでは、これは、いくつかの実装形態に従って、アルゴリズムを使用して図表のタイプ(例えば、棒グラフ、地図グラフ、または散布図)を決定するステップ1108によって示されている。いくつかのそのような実装形態では、システムは、この詳細に基づいて生成された図表のタイプを決定するために自動提示アルゴリズムを採用する。いくつかのそのような実装形態では、システムは、参照により本明細書に組み込まれる、Show me:Automatic presentation for visual analysis,by J.Mackinlay,P.Hanrahan,and C.Stoleに記載されている自動表示アルゴリズムの簡易版を使用する。図表の種類(1110)が決定されると、システムは図表の種類を生成し(1112)、生成された図表(1114)を取得する。次に、システムは、いくつかの実装形態に従って、新しい図表(1114)を配置する。いくつかのそのような実装形態では、システムは、新しい図表(1114)の表示を他の視覚化ビューと自動的に調整する、二次元グリッドベースのレイアウトアルゴリズムを使用する。更新されたダッシュボード(1124)は、強調表示またはフィルタリングのような動作を通じて後続の発話に応答する。
【0130】
[0144] さらに、図11Aには示されていないが、システムは、いくつかの実装形態に従って、データ属性のリスト(1104)の各データ属性について、少なくともステップ1106、1118、1120、1122、1108、1112、および1116を繰り返していることに留意されたい。
【0131】
[0145] 図12Aは、いくつかの実装形態による、ユーザのクエリの曖昧性を処理するために生成されたウィジェットの集合を示す。対話型のダイアログをサポートする自然言語理解システムに対する課題は、発話の意図を判定することである。いくつかの実装形態では、システムは、構文、字句、および意味の曖昧性の様々な形式を自動的に分解する。これらの分解は、ユーザがシステムの意図と発話がどのように解釈されたかの起源を理解するのに役立つように、ウィジェットとフィードバックの形で表現される。これらのウィジェットを操作し、どの結果が視覚化に表示されるかのフィードバックを表示することによって、ユーザは、例えばフォローアップの修復発話をインスタンス化して、行われたシステムの決定を無効にしたり明確にしたりすることができる。
【0132】
[0146] いくつかの実装形態では、システムは、発話から導出された分析関数から1つまたは複数のウィジェットを識別する。いくつかのそのような実装形態では、システムが直感的な方法でウィジェットを体系化して提示するので、ユーザはシステムが自分の発話を解釈する方法を理解し、その後これらのウィジェットを使用して解釈を修正することができる。この目的のために、システムは元の発話を取得し、対応するクエリの名辞と同じ順序でウィジェットを並べる。いくつかのそのような実装形態では、システムは、コンパクトな方法でテキスト内の小さな単語規模の視覚化の配置を容易にするSparklificator(商標)などのライブラリを使用することによってこれを達成する。さらに、いくつかの実装形態は、ウィジェットを操作および/または削除できること、クエリを修正できること、および曖昧なクエリを分解できることを含む、インターフェースの集合をユーザに提供する。
【0133】
[0147] 図12Aは、いくつかの実装形態による、システムが「1.2M未満のバラード付近のコンドミニアム」という発話のためのウィジェットをどのように提示するかを示す。この例では、最初の名辞「コンドミニアム」は、「HOME_TYPEがコンドミニアム/コープに等しい」という基準を表すウィジェットに分解された(1202)。次に、第2のウィジェットは、「バラード付近」(1204)によって表される不明瞭な距離を伝える。「1.2M未満」はいずれの属性も明示的に言及していないので、システムは値1200000がデータの任意の数値属性の最小値と最大値の範囲内にあるかどうかを判定する。そのような属性が存在する場合(この場合はLAST_SALE_PRICE)、システムはそれを(ウィジェット1206を介して)ユーザに伝え、次にユーザがドロップダウンメニューを使用して属性を変更することを可能にする(1208)。
【0134】
[0148] 曖昧性の扱いに加えて、いくつかの実装形態では、システムがクエリを完全に理解することに失敗したときに、システムはテキストを修正するためのフィードバックおよび意味のあるヒントも提供する。例えば、システムが指定された発話を正常に解析できない場合、システムは最初に、ファジー文字列照合を使用してトークンを現在のデータセットの属性、セル値、および関連キーワードと比較することによって、スペルミスの単語を自動的に修正しようとする。ユーザが部分的に認識されるクエリを作成すると、システムは対応する解析木から認識されない名辞を整理してから、理解されたトークンに基づいて結果を表示する。図12Bは、いくつかの実装形態による、異なる例示的な状況およびシステムによって生成された対応するフィードバックを示す。
【0135】
[0149] 図13A図13Jは、語用論の原理を適用するデータセットの視覚的分析のために自然言語を使用する(1302)方法1300を示す流れ図を提供する。方法1300のステップは、コンピュータ(例えば、コンピューティングデバイス200)によって実行されてもよい。いくつかの実装形態では、コンピュータは、ディスプレイと、1つまたは複数のプロセッサと、メモリとを含む(1304)。図13A図13Jは、コンピュータメモリまたはコンピュータ可読記憶媒体(例えば、コンピューティングデバイス200のメモリ206)に格納されている命令に対応する。メモリは、1つまたは複数のプロセッサ(例えばプロセッサ202)による実行のために構成された1つまたは複数のプログラムを格納する(1306)。例えば、方法1300の動作は、少なくとも部分的には、データ視覚化生成モジュール234および/または言語処理モジュール238によって実行される。
【0136】
[0150] いくつかの実装形態では、コンピュータは、1つまたは複数のクエリの第1の集合を使用してデータベースから読み出されたデータセットに基づいてデータの視覚化を表示する(1308)。例えば、図1を参照すると、ユーザは、スキーマ情報領域110からの1つまたは複数のデータフィールドをデータ視覚化領域112の1つまたは複数のシェルフ(例えば、図1の列シェルフ120および行シェルフ122)に関連付けることができる。ユーザ関連の受信に応答して、いくつかの実装形態では、コンピュータは、1つまたは複数のクエリの集合を使用してデータセットからデータフィールドのデータを読み出し、次に受信したユーザ入力に対応するデータ視覚化領域112においてデータの視覚化(例えばデータの視覚化408)を表示する。データの視覚化を表示することは、図1を参照して上でさらに詳細に論じられている。
【0137】
[0151] コンピュータは、表示されたデータの視覚化に関連する第1の自然言語コマンドを指定するための第1のユーザ入力を受信する(1310)。いくつかの実装形態では、ユーザ入力は、表示されたデータの視覚化に近接したディスプレイのデータ入力領域においてユーザからテキスト入力として(例えば、キーボード216を介してまたはタッチセンシティブディスプレイ214を介して)受信される。いくつかの実装形態では、ユーザ入力は、コンピュータに連結されたマイクロフォン(例えば、音声入力装置220)を使用して音声コマンドとして受信される。例えば、図4Aを参照すると、表示されたデータの視覚化408は英国のはしかに関する。ユーザから入力(例えば、コマンド/クエリ)を受信することは、図1を参照して上でさらに詳細に論じられている。
【0138】
[0152] 表示されたデータの視覚化に基づいて、コンピュータは、第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出する(1312)。例えば、図4Aを参照すると、コンピュータによって受信された第1の自然言語コマンドは、「英国のはしか」と読める。第1の自然言語コマンドを受信する前に表示されたデータの視覚化は、世界中での疾患の発生に関するものである。いくつかの実装形態では、これらの分析句は表示されたデータの視覚化に関連するため、コンピュータは第1の自然言語コマンドから「はしか」および「英国の」を抽出する。表示されたデータの視覚化において句がデータフィールドを直接参照する場合、抽出(1312)は簡単である。データフィールドを直接参照するすべての句を集める。いくつかの実装形態では、コンピュータは、入力クエリからストップワード、フィラーワード、または任意の事前定義された単語の集合を抽出または除去し、表示されたデータの視覚化に関連し得るため、他のすべての句を第1の自然言語コマンドから抽出する(1312)。自然言語コマンドの句が表示された視覚化のデータフィールドを幾分間接的に参照するときに、このアプローチを使用する実装形態もある。
【0139】
[0153] いくつかの実装形態に従って、言語処理モジュール238は、1つまたは複数の分析句の第1の集合に基づいて、第1の自然言語コマンドに関連付けられた1つまたは複数の会話センターの第1の集合を計算する(1314)。会話型対話モデルに基づくフレームワークは、図3A図5、および図11を参照して上で説明されている。センターとは、その発話(本明細書では自然言語コマンドと呼ばれることがある)を談話(一連の発話)内の他の発話にリンクさせるのに役立つエンティティを示す。会話センターには、データの属性と値、視覚的特性、および分析アクションが含まれる。分析句に基づいて会話センターを計算することは、必要な変換および分析の後に分析句を1つまたは複数の会話センターにマッピングすることを含む。例示的な発話「英国のはしか」の場合、言語処理モジュール238は句「はしか」を処理し、句を分析して、それが上述の図4Dに示されるようにデータ属性DISEASEを参照していると推測する。
【0140】
[0154] 続いて、いくつかの実装形態に従って、言語処理モジュール238は、1つまたは複数の会話センターの第1の集合に関連付けられた分析関数の第1の集合を計算し(1316)、それによって、1つまたは複数の関数句の第1の集合を作成する。図3A図5、および図11を参照して上述したように、いくつかの実装形態によれば、分析関数はそれぞれ、変数、演算子、および値からなる。いくつかの実装形態では、例示の発話「英国のはしか」の場合、言語処理モジュール238は、2つの関数、すなわちF_CAT(疾患、==、はしか)およびF_CAT(国、==、英国)を作成する。いくつかの実装形態では、別の例として、発話「600K未満のコンドミニアム」について、言語処理モジュール238は、2つの関数F_CAT(家の種類、==コンドミニアム)およびF_NUMERIC(価格、<、600000)を作成する。これらの例の両方において、言語処理モジュール238は、いくつかの実装形態によれば、データの属性の第1の集合を識別すべく1つまたは複数の会話センターの第1の集合に対応する表示されたデータの視覚化に関連する1つまたは複数のデータ属性を検索する。言語処理モジュール238はまた、いくつかの実装形態に従って、1つまたは複数の会話センターの第1の集合を調べることによって、演算子の第1の集合(例えば、演算子==、演算子<)およびデータ属性の第1の集合に対応する第1の集合の値を識別する。変数(属性)の第1の集合、対応する演算子の第1の集合および値の第1の集合を用いて、言語処理モジュール238は1つまたは複数の分析関数の第1の集合を構築し、それによって1つまたは複数の関数句の第1の集合を作成する。
【0141】
[0155] いくつかの実装形態では、コンピュータは、ステップ1316で計算された1つまたは複数の関数句の第1の集合に基づいてデータの視覚化を更新する(1318)。図13Iに示すように、いくつかの実装形態では、コンピュータは、1つまたは複数の関数句の第1の集合に基づいて1つまたは複数のクエリの第2の集合を使用してデータベースを再クエリし(1372)、それによって第2のデータセットを読み出す。いくつかの事例では、データベースへの再クエリは、コンピューティングデバイスでキャッシュされたまたは格納されたデータを使用してコンピューティングデバイスでローカルに実行される。例えば、自然言語コマンドで1つまたは複数のフィルタが指定されている場合、再クエリは通常ローカルで実行される。いくつかのそのような実装形態では、コンピュータは、第2のデータセットに基づいてデータの視覚化を更新する(1374)。いくつかの実装形態では、コンピュータは、第2のデータセットを使用して(例えば、既存の1つまたは複数のデータの視覚化を更新することなく)新しいデータの視覚化をさらに作成および表示する(1376)。
【0142】
[0156] ここで図13Bに参照を戻すと、コンピュータは、表示されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信する(1320)。いくつかの実装形態では、ユーザ入力は、表示されたデータの視覚化に近接したディスプレイのデータ入力領域においてユーザからテキスト入力として(例えば、キーボード216を介してまたはタッチセンシティブディスプレイ214を介して)受信される。いくつかの実装形態では、ユーザ入力は、コンピュータに連結されたマイクロフォン(例えば、音声入力装置220)を使用して音声コマンドとして受信される。例えば、図4Aを参照すると、コンピュータが「オレンジ色の急増を私に見せてほしい」という第2のユーザ入力を受信したとき、表示されたデータの視覚化408は英国のはしかに関する。ユーザから入力(例えば、コマンド/クエリ)を受信することは、図1を参照して上でさらに詳細に論じられている。
【0143】
[0157] 表示されたデータの視覚化に基づいて、コンピュータは、第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出する(1322)。例えば、図4Aを参照すると、コンピュータによって受信された第2の自然言語コマンド(410)は、「オレンジ色の急増を私に見せてほしい」と読める。いくつかの実装形態では、この例では、コンピュータは、第2の自然言語コマンドから英国のはしか「オレンジ急増」を抽出する。なぜなら、これらの分析句は、表示されたデータの視覚化(英国のはしかに関係しており、オレンジ色の急増、視覚化特性がある)に関係するからである。表示されたデータの視覚化において句がデータフィールドを直接参照する場合、抽出(1322)は簡単である。データフィールドを直接参照するすべての句を集める。いくつかの実装形態では、コンピュータは、入力クエリからストップワード、フィラーワード、または任意の事前定義された単語の集合を抽出または除去し、表示されたデータの視覚化に関連し得るため、他のすべての句を第2の自然言語コマンドから抽出する(1322)。自然言語コマンドの句が表示された視覚化のデータフィールドを幾分間接的に参照するときに、このアプローチを使用する実装形態もある。
【0144】
[0158] いくつかの実装形態に従って、言語処理モジュールは、1つまたは複数の分析句の第2の集合に基づいて、第2の自然言語コマンドに関連付けられた1つまたは複数の会話センターの一時的な集合を計算する(1324)。
【0145】
[0159] 言語処理モジュールは、いくつかの実装形態に従って、1つまたは複数の移行規則を使用して、1つまたは複数の会話センターの第1の集合および1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合を導出する(1326)。いくつかのそのような実装形態(1332)では、1つまたは複数の会話センターの第1の集合、1つまたは複数の会話センターの一時的な集合、および1つまたは複数の会話センターの第2の集合の各会話センターは、変数(データ属性や視覚化特性など)の値を含む。いくつかのそのような実装形態では、言語処理モジュールは、(図13Cに示すように)一連の動作を実行することによって移行規則を使用し、これは第1の変数が1つまたは複数の会話センターの第1の集合に含まれるかどうかを判定すること(1334)、第1の変数が1つまたは複数の会話センターの一時的な集合に含まれているかどうかを判定すること(1336)、第1の変数が1つまたは複数の会話センターの第1の集合および/または1つまたは複数の会話センターの一時的な集合に含まれるかどうかに基づいて、適用する1つまたは複数の移行規則のそれぞれの移行規則を判定すること(1338)、およびそれぞれの移行規則を適用すること(1339)を含む。
【0146】
[0160] いくつかの実装形態では、図13Dに示されるように、言語処理モジュール238によって使用される1つまたは複数の移行規則は、1つまたは複数の会話センターの第1の集合の各会話センターを1つまたは複数の会話センターの第2の集合に含め、1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合へ1つまたは複数の会話センターを追加するためのCONTINUE規則を含む(1340)。いくつかのそのような実装形態では、それぞれの移行規則を適用すること(1342)は、(i)第1の変数が1つまたは複数の会話センターの一時的な集合に含まれる、および(ii)1つまたは複数の会話センターの第1の集合に第1の変数が含まれないという判定に従って、1つまたは複数の会話センターの第2の集合に第1の変数を含めるようにCONTINUE規則を適用する(1344)ことを含む。
【0147】
[0161] いくつかの実装形態では、図13Eに示されるように、言語処理モジュール238によって使用される1つまたは複数の移行規則は、1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合へ会話センターを追加することなく、1つまたは複数の会話センターの第1の集合の各会話センターを1つまたは複数の会話センターの第2の集合に保持するためのRETAIN規則を含む(1346)。いくつかのそのような実装形態では、それぞれの移行規則を適用すること(1348)は、(i)第1の変数が1つまたは複数の会話センターの第1の集合に含まれる、および(ii)1つまたは複数の会話センターの一時的な集合に第1の変数が含まれないという判定に従って、1つまたは複数の会話センターの第2の集合に1つまたは複数の会話センターの第1の集合の各会話センターを含めるようにRETAIN規則を適用する(1350)ことを含む。
【0148】
[0162] いくつかの実装形態では、図13Fに示されるように、言語処理モジュール238によって使用される1つまたは複数の移行規則は、1つまたは複数の会話センターの第1の集合の各会話センターを1つまたは複数の会話センターの第2の集合に含め、1つまたは複数の会話センターの1つまたは複数の会話センター第2の集合を、1つまたは複数の会話センターの一時的な集合の会話センターと交換するためのSHIFT規則を含む(1352)。いくつかのそのような実装形態では、それぞれの移行規則を適用すること(1354)は、(i)第1の変数が1つまたは複数の会話センターの一時的な集合に含まれ、および(ii)1つまたは複数の会話センターの第1の集合に第1の変数が含まれないという判定(1356)に従って、言語処理モジュール228が、1つまたは複数の会話センターの第1の集合の第1の変数の値が、1つまたは複数の会話センターの一時的な集合の第1の変数の値と異なるかを判定する(1358)こと、および第1の変数の値が異なるという判定に従って、1つまたは複数の会話センターの第1の集合の各会話センターを1つまたは複数の会話センターの第2の集合に含め、1つまたは複数の会話センターの第2の集合の第1の変数を、1つまたは複数の会話センターの一時的な集合の第1の変数の値と交換するためのSHIFT規則を適用すること(1360)のために一連の動作を実行することを含む。いくつかのそのような実装形態では、それぞれの移行規則を適用すること(1354)は、図13Gに示されるように、第1の変数に対応するウィジェットがユーザによって削除されたか判定する(1362)こと、およびウィジェットが削除されたという判定に従って、1つまたは複数の会話センターの第1の集合の各会話センターを1つまたは複数の会話センターの第2の集合に含め、1つまたは複数の会話センターの第2の集合の第1の変数の値を1つまたは複数の会話センターの第1の集合内の第1の変数の値を含む新しい値(例えば、最大値、またはスーパーセット値)と置き換えるためのSHIFT規則を適用する(1364)。
【0149】
[0163] 図13Bに参照を戻すと、言語処理モジュール238は、1つまたは複数の会話センターの第2の集合に関連する1つまたは複数の分析関数の第2の集合を計算し(1328)、それによって1つまたは複数の関数句の第2の集合を作成する。言語処理モジュール238は、上述のステップ1316と同様の方法で、ステップ1326で計算された1つまたは複数の会話センターの第2の集合を使用してこのステップを実行する。
【0150】
[0164] コンピュータは、いくつかの実装形態に従って、1つまたは複数の関数句の第2の集合に基づいてデータの視覚化を更新する(1330)。いくつかのそのような実装形態では、図13Jに示されるように、コンピュータは、1つまたは複数の関数句の第1の集合に基づいて1つまたは複数のクエリの第2の集合を使用してデータベースを再クエリし(1378)、それにより、第3のデータセットに基づいてデータの視覚化を更新する、第3のデータセットを読み出す(1380)。さらに、いくつかのそのような実装形態では、コンピュータは、第3のデータセットを使用して(例えば、既存の1つまたは複数のデータの視覚化を更新することなく)新しいデータの視覚化を作成および表示する(1382)。
【0151】
[0165] いくつかの実装形態では、図13Hに示すように、コンピュータは、ユーザが第1のデータセットとは異なるデータセットを選択したかどうかをさらに判定し(1366)、ユーザがデータの視覚化をリセットしたかどうかを判定し(1368)、(i)ユーザが異なるデータセットを選択した、または(ii)ユーザがデータの視覚化をリセットしたという判定に従って、1つまたは複数の会話センターの第1の集合、1つまたは複数の会話センターの一時的な集合、および1つまたは複数の会話センターの第2の集合のそれぞれを、会話センターを含まない空の集合へリセットする(1370)。
【0152】
[0166] 図14A図14Rは、いくつかの実装形態による、様々な形態の語用論の処理を含む、語用論の原理を適用するデータセットの視覚分析のための自然言語を使用(1402)する方法1400を示す流れ図を提供する。方法1400のステップは、コンピュータ(例えば、コンピューティングデバイス200)によって実行されてもよい。いくつかの実装形態では、コンピュータは、ディスプレイと、1つまたは複数のプロセッサと、メモリとを含む(1404)。図14A図14Rは、コンピュータメモリまたはコンピュータ可読記憶媒体(例えば、コンピューティングデバイス200のメモリ206)に格納されている命令に対応する。メモリは、1つまたは複数のプロセッサ(例えばプロセッサ202)による実行のために構成された1つまたは複数のプログラムを格納する(1406)。例えば、方法1400の動作は、少なくとも部分的には、データ視覚化生成モジュール234および/または言語処理モジュール238によって実行される。
【0153】
[0167] いくつかの実装形態では、コンピュータは、1つまたは複数のクエリの第1の集合を使用してデータベースから読み出されたデータセットに基づいてデータの視覚化を表示する(1408)。例えば、図1を参照すると、ユーザは、スキーマ情報領域110からの1つまたは複数のデータフィールドをデータ視覚化領域112の1つまたは複数のシェルフ(例えば、図1の列シェルフ120および行シェルフ122)に関連付けることができる。ユーザ関連の受信に応答して、いくつかの実装形態では、コンピュータは、1つまたは複数のクエリの集合を使用してデータセットからデータフィールドのデータを読み出し、次に受信したユーザ入力に対応するデータ視覚化領域112においてデータの視覚化(例えばデータの視覚化408)を表示する。データの視覚化を表示することは、図1を参照して上でさらに詳細に論じられている。
【0154】
[0168] コンピュータは、表示されたデータの視覚化に関連する第1の自然言語コマンドを指定するための第1のユーザ入力を受信する(1410)。いくつかの実装形態では、ユーザ入力は、表示されたデータの視覚化に近接したディスプレイのデータ入力領域においてユーザからテキスト入力として(例えば、キーボード216を介してまたはタッチセンシティブディスプレイ214を介して)受信される。いくつかの実装形態では、ユーザ入力は、コンピュータに連結されたマイクロフォン(例えば、音声入力装置220)を使用して音声コマンドとして受信される。例えば、図6Aを参照すると、表示されたデータの視覚化608は、バラードの1M未満の住宅に関する。ユーザから入力(例えば、コマンド/クエリ)を受信することは、図1を参照して上でさらに詳細に論じられている。
【0155】
[0169] 表示されたデータの視覚化に基づいて、コンピュータは、第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出する(1412)。例えば、図6Aを参照すると、コンピュータによって受信された第1の自然言語コマンドは、「バラードの1M未満の住宅」と読める。第1の自然言語コマンドを受信する前に表示されたデータの視覚化は、シアトルでの過去の住宅販売に関するものである。いくつかの実装形態では、これらの分析句は表示されたデータの視覚化に関連するため、コンピュータは第1の自然言語コマンドから「住宅」および「1M未満」および「バラードの」を抽出する。表示されたデータの視覚化において句がデータフィールドを直接参照する場合、抽出(1412)は簡単である。データフィールドを直接参照するすべての句を集める。いくつかの実装形態では、コンピュータは、入力クエリからストップワード、フィラーワード、または任意の事前定義された単語の集合を抽出または除去し、表示されたデータの視覚化に関連し得るため、他のすべての句を第1の自然言語コマンドから抽出する(1412)。自然言語コマンドの句が表示された視覚化のデータフィールドを幾分間接的に参照するときに、このアプローチを使用する実装形態もある。
【0156】
[0170] いくつかの実装形態に従って、言語処理モジュール238は、1つまたは複数の分析句の第1の集合に基づいて、第1の自然言語コマンドに関連付けられた1つまたは複数の会話センターの第1の集合を計算する(1414)。会話型対話モデルに基づくフレームワークは、図3A図5、および図11を参照して上で説明されている。センターとは、その発話(本明細書では自然言語コマンドと呼ばれることがある)を談話(一連の発話)内の他の発話にリンクさせるのに役立つエンティティを示す。会話センターには、データの属性と値、視覚的特性、および分析アクションが含まれる。分析句に基づいて会話センターを計算することは、必要な変換および分析の後に分析句を1つまたは複数の会話センターにマッピングすることを含む。例示的な発話「バラードの1M未満の住宅」の場合、言語処理モジュール238は句「1M未満」を処理し、句を分析して、それが上述の図6Cに示すようにデータ属性LAST_SALE_PRICEを参照すると推測する。
【0157】
[0171] 続いて、いくつかの実装形態に従って、言語処理モジュール238は、1つまたは複数の会話センターの第1の集合に関連付けられた分析関数の第1の集合を計算し(1416)、それによって、1つまたは複数の関数句の第1の集合を作成する。図3A図5、および図11を参照して上述したように、いくつかの実装形態によれば、分析関数はそれぞれ、変数、演算子、および値からなる。いくつかの実装形態では、発話例「バラードで1M未満の住宅」について、言語処理モジュール238は、2つの関数を作成し、4つの関数F_CAT(住宅の種類、==コンドミニアム)、F_CAT(住宅の種類、==タウンハウス)、F_CAT(住宅の種類==単一)、およびF_NUMERIC(価格、<、500000)を作成する。この例において、言語処理モジュール238は、いくつかの実装形態によれば、データの属性の第1の集合を識別すべく1つまたは複数の会話センターの第1の集合に対応する表示されたデータの視覚化に関連する1つまたは複数のデータ属性を検索する。言語処理モジュール238はまた、いくつかの実装形態に従って、1つまたは複数の会話センターの第1の集合を調べることによって、演算子の第1の集合(例えば、演算子==、演算子<)およびデータ属性の第1の集合に対応する第1の集合の値を識別する。変数(属性)の第1の集合、対応する演算子の第1の集合および値の第1の集合を用いて、言語処理モジュール238は1つまたは複数の分析関数の第1の集合を構築し、それによって1つまたは複数の関数句の第1の集合を作成する。
【0158】
[0172] いくつかの実装形態では、コンピュータは、ステップ1416で計算された1つまたは複数の関数句の第1の集合に基づいてデータの視覚化を更新する(1418)。
【0159】
[0173] ここで図14Bを参照すると、コンピュータは、表示されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信する(1420)。いくつかの実装形態では、ユーザ入力は、表示されたデータの視覚化に近接したディスプレイのデータ入力領域においてユーザからテキスト入力として(例えば、キーボード216を介してまたはタッチセンシティブディスプレイ214を介して)受信される。いくつかの実装形態では、ユーザ入力は、コンピュータに連結されたマイクロフォン(例えば、音声入力装置220)を使用して音声コマンドとして受信される。例えば、図6Aを参照すると、表示されたデータの視覚化608は、コンピュータが第2のユーザ入力「タウンホーム」を受信したときに、バラードの1M未満の住宅に関する。ユーザから入力(例えば、コマンド/クエリ)を受信することは、図1を参照して上でさらに詳細に論じられている。
【0160】
[0174] 表示されたデータの視覚化に基づいて、コンピュータは、第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出する(1422)。例えば、図6Aを参照すると、コンピュータによって受信された第2の自然言語コマンド(620)は、「タウンホーム」と読める。いくつかの実装形態では、この例では、コンピュータは、第2の自然言語コマンドから「タウンホーム」を抽出する。なぜなら、この分析句は、表示されたデータの視覚化(バラードのタウンホームに関係する)に関連しているからである。表示されたデータの視覚化において句がデータフィールドを直接参照する場合、抽出(1422)は簡単である。データフィールドを直接参照するすべての句を集める。いくつかの実装形態では、コンピュータは、入力クエリからストップワード、フィラーワード、または任意の事前定義された単語の集合を抽出または除去し、表示されたデータの視覚化に関連し得るため、他のすべての句を第2の自然言語コマンドから抽出する(1422)。自然言語コマンドの句が表示された視覚化のデータフィールドを幾分間接的に参照するときに、このアプローチを使用する実装形態もある。
【0161】
[0175] いくつかの実装形態に従って、言語処理モジュールは、1つまたは複数の分析句の第2の集合に基づいて、第2の自然言語コマンドに関連付けられた1つまたは複数の会話センターの一時的な集合を計算する(1424)。
【0162】
[0176] 言語処理モジュールは、いくつかの実装形態に従って、1つまたは複数の分析句の第1の集合と1つまたは複数の分析句の第2の集合との間の結束を計算し(1426)、結束に基づいて、1つまたは複数の会話センターの第1の集合および1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合を導出する。図14Cに示すように、いくつかの実装形態では、結束を計算することは、1つまたは複数の分析句の第2の集合の句構造を識別すること(1434)を含む。いくつかの実装形態に従って、計算句構造は、図5を参照しながら(ステップ522または510)、図6Aの例を介して(ステップ610および622)上で説明されている。いくつかの実装形態では、句構造を識別することは、(図5の522または510を参照して上で説明されたように)確率的文法を適用する第2の自然言語コマンドを解析すること(1436)を含み、それによって解析済み出力を取得する。いくつかの実装形態では、このステップは、やはり図5を参照しながら上で説明したように、自然言語ツールキットによって提供される品詞APIを使用することによって構文構造を推定すること(1438)をさらに含む。いくつかの実装形態では、解析された出力は、言語処理モジュールによって対応するカテゴリカル属性およびデータ属性に分解される(1440)。例えば、図6Aの発話「タウンホーム」(620)の場合、言語処理モジュールは、カテゴリ属性を住宅/(または住宅)タイプに分解する。いくつかの実装形態では、図示されていないが、言語処理モジュールは、ステップ1442の後に、解析された出力を対応するカテゴリ属性およびデータ属性に分解する。
【0163】
[0177] 句構造がステップ1434で識別されると、言語処理モジュールは、いくつかの実装形態によれば、句構造に基づいて1つまたは複数の語用論の形式の形を識別する。続いて、言語処理モジュールは、識別された1つまたは複数の語用論の形式に基づいて、1つまたは複数の会話センターの第1の集合および1つまたは複数の会話センターの一時的な集合から1つまたは複数の第2の集合の会話センターを導出する(1446)。以下で説明される図14D、14E、14H、および14Iは、異なるタイプの語用論の形式がどのように識別されるか、および識別された語用論の形式に基づいて1つまたは複数の会話センターの第2の集合がどのように識別されるかを示す。
【0164】
[0178] いくつかの実装形態では、言語処理モジュール238は、1つまたは複数の会話センターの第2の集合に関連付けられた1つまたは複数の分析関数の第2の集合を計算し(1430)、それによって1つまたは複数の関数句の第2の集合を作成する。言語処理モジュール238は、上述のステップ1416と同様の方法で、ステップ1426で計算された1つまたは複数の会話センターの第2の集合を使用してこのステップを実行する。
【0165】
[0179] いくつかの実装形態では、図14Pに示されるように、言語処理モジュール238は、1つまたは複数の抽出された分析句の第2の集合と更新されたデータの視覚化に含まれるデータの1つまたは複数の属性との間の意味論的関連性を計算し(14.186)、1つまたは複数の分析句の第2の集合に関連する分析関数を計算し、(14.188)、それによって、意味論上関連する1つまたは複数のデータの属性に基づいて、1つまたは複数の関数句の第2の集合を作成する。いくつかの実装形態では、言語処理モジュール238は、字句的に結束のある表現について意味論的に関連する名辞を計算する。意味論的関連性を計算し、意味論的関連性に基づいて分析関数を計算するプロセスは、図9A図9Dを参照して上述した。いくつかの実装形態では、図14Bには示されていないが、データ属性の意味論的関連性に基づいて1つまたは複数の分析関数の第2の集合および1つまたは複数の関数句の第2の集合を計算することが、上記のステップ1430に加えて(代わりというよりも)実行される。
【0166】
[0180] いくつかの実装形態では、図14Qに示すように、言語処理モジュール238は、テキストの大きなコーパスで第1のニューラルネットワークモデルをトレーニングする(14.190)ことによって意味論的関連性を計算し、それによって単語の埋め込みを学習する。いくつかのそのような実装形態(14.192)では、第1のニューラルネットワークモデルは、Word2vec(商標)モデルを含む。いくつかの実装形態では、言語処理モジュール238は、第2のニューラルネットワークモデルを使用して、1つまたは複数の分析句の第2の集合の第1の句の第1の単語に対する第1の単語ベクトルを計算する(1494)が、第1の単語ベクトルはステップ14.190での単語埋め込み学習に対して第1の単語をマッピングする。いくつかのそのような実装形態(14.196)では、第2のニューラルネットワークモデルは、リカレントニューラルネットワークモデルを含む。いくつかの実装形態では、言語処理モジュールは、第2のニューラルネットワークモデルを使用して、1つまたは複数のデータ属性の第1のデータ属性についての第2の単語ベクトルを計算する(14.198)が、第2の単語ベクトルはステップ14.190での埋め込み学習という単語に対して第1のデータ属性をマッピングする。図14Qには示されていないが、第1の単語ベクトルと第2の単語ベクトルを計算することは、言語処理モジュール238と並行して実行することができる。続いて、言語処理モジュールは、いくつかの実装形態に従って、類似性メトリックを使用して、第1の単語ベクトルと第2の単語ベクトルとの間の関連性を計算する(14.200)。いくつかのそのような実装形態(14.202)では、類似性メトリックは、少なくとも(i)第1の単語ベクトルと第2の単語ベクトルとに関連する単語の意味の間のウー・パーマー距離、(ii)重み係数、および(iii)第1の単語ベクトルと第2の単語ベクトル間のペアワイズ余弦距離に基づく。
【0167】
[0181] いくつかの実装形態では、図14Rに示されるように、言語処理モジュール238は、公に利用可能な辞書から1つまたは複数の分析句の第2の集合の単語の定義を取得し(14.204)、自然言語ツールキットによって提供される品詞APIを使用しながら単語の定義が1つまたは複数の事前の定義を含むかどうか判定し(14.206)、単語の定義が1つまたは複数の事前定義の形容詞を含むという判定に従って、1つまたは複数の事前定義の形容詞を1つまたは複数の分析関数にマッピングする。これらの動作は、いくつかの実装形態に従って、図9Bを参照しながら上記で説明された。言語処理モジュール238は、1つまたは複数の分析句の第2の集合の1つまたは複数の名辞についての分析関数のタイプを計算する。例えば、「最も安いもの」という名辞はBottom_N(販売価格)にマッピングされる。
【0168】
[0182] ここで図14Bに参照を戻すと、コンピュータは、いくつかの実装形態に従って、1つまたは複数の関数句の第2の集合に基づいてデータの視覚化を更新する(1432)。
【0169】
[0183] 図14D図14E図14H、および図14Iはそれぞれ、句構造に基づいて識別された異なるタイプの語用論形式を処理するために言語処理モジュール238によって実行されるステップ、およびいくつかの実装形態に従って、識別された形式の語用論基づいて、いかに1つまたは複数の会話センターの第2の集合が導出されるかを示す。
【0170】
[0184] 図14Dは、いくつかの実装形態による、不完全な発話について1つまたは複数の会話センターの第2の集合を導出するために言語処理モジュール238によって実行されるステップを示す。いくつかの実装形態によれば、言語処理モジュール238は、1つまたは複数の言語要素が句構造に存在しないかどうかを判定することによって、語用論の形式が不完全な発話であると識別する(1448)。いくつかの実装形態では、続いて、言語処理モジュール238は、1つまたは複数の会話センターの第1の集合の会話センターの第1のサブセットを判定する(1454)ことであって、1つまたは複数の言語要素に対応する会話センターの第1のサブセットが句構造に存在していない判定すること、および1つまたは複数の会話センターの一時的な集合を会話センターの第1のサブセットと組み合わせることによって1つまたは複数の会話センターの第2の集合を計算する(1456)ことを含む一連の動作を実行する(1452)ことによって、1つまたは複数の会話センターの第2の集合を導出する(1450)。上記の図6Aは、不完全な発話について1つまたは複数の会話センターの第2の集合を導出する実装形態を示す。
【0171】
[0185] 図14Eは、いくつかの実装形態による、参照表現について1つまたは複数の会話センターの第2の集合を導出するために言語処理モジュール238によって実行されるステップを示す。いくつかの実装形態によれば、言語処理モジュール238は、1つまたは複数の照応参照が句構造に存在するかどうかを判定することによって、参照表現であることが語用論の形式であることを識別する(1458)。いくつかの実装形態では、続いて、言語処理モジュール238は、1つまたは複数の照応参照の第1の照応参照を含む第2の自然言語コマンドにおける句チャンクに対応する会話センターの第1のサブセットを見出す1つまたは複数の会話センターの第1の集合を検索する(1464)こと、および1つまたは複数の会話センターの一時的な集合と会話センターの第1のサブセットとを基にして1つまたは複数の会話センターの第2の集合を計算する(1466)ことを含む一連の動作(1462)を実行することによって、1つまたは複数の会話センターの第2の集合を導出する(1460)。上記の図7Aは、参照表現のための1つまたは複数の会話センターの第2の集合を導出する実装形態を示す。
【0172】
[0186] いくつかの実装形態では、言語処理モジュール238は、第1の照応参照が、更新されたデータの視覚化の視覚化特性への参照(本明細書では、厳密参照と呼ばれることがある)であるかどうかを判定(1468)し、照応参照が、厳密参照と判定されるのに従って、1つまたは複数の会話センターの一時的な集合、および視覚化特性に関連するデータに基づいて、1つまたは複数の会話センターの第2の集合を計算する(1470)。
【0173】
[0187] いくつかの実装形態では、図14Fに示されるように、言語処理モジュール238は、第1の照応参照が第2の自然言語コマンドの動詞を伴うかどうかを判定し(1472)、照応参照が動詞に伴われるという判定(1474)に従って、動作動詞を参照する第1のアクション会話センターを見つける1つまたは複数の会話センターの第1の集合を検索し(1476)、1つまたは複数の会話センターの一時的な集合および会話センターの第1のサブセットに基づいて1つまたは複数の会話センターの第2の集合を計算する(1478)。
【0174】
[0188] いくつかの実装形態では、図14Gに示されるように、言語処理モジュール238は、第1の照応参照が、環境のいくつかの対象を示す判定的参照であるかどうかを判定し(1480)、照応参照が厳密参照であるという判定に従って、1つまたは複数の会話センターの一時的な集合、および対象の特性に基づいて、1つまたは複数の会話センターの第2の集合を計算する(1482)。
【0175】
[0189] 図14Hは、いくつかの実装形態による、修復発話について1つまたは複数の会話センターの第2の集合を導出するために言語処理モジュール238によって実行されるステップを示す。いくつかの実装形態によれば、言語処理モジュール238は、句構造が1つまたは複数の事前定義された修復発話に対応するかどうかを判定することによって、語用論の形式が修復発話であると識別する(1484)。いくつかの実装形態では、続いて、言語処理モジュール238は、1つまたは複数の会話センターの一時的な集合に基づいて1つまたは複数の会話センターの第2の集合を計算すること(1490)、および1つまたは複数の所定の修復発話および句構造に基づいて、1つまたは複数の会話センターの第2の集合における1つまたは複数のデータ属性を更新する(1492)ことを含む一連の動作(1488)を実行することによって1つまたは複数の会話センターの第2の集合を導出する(1486)。上述の図10Aは、修復発話について1つまたは複数の会話センターの第2の集合を導出する実装形態を示す。
【0176】
[0190] いくつかの実装形態では、言語処理モジュール238は、句構造が修復発話に対応するかどうかを判定し(1494)、データの視覚化の表示に関するデフォルト動作を変更し、句構造が修復発話に対応し、デフォルトの挙動を変更する判定に従って表示に関するデフォルトの挙動を変更する(1496)。
【0177】
[0191] 図14Iは、いくつかの実装形態による、連言表現について1つまたは複数の会話センターの第2の集合を導出するために言語処理モジュール238によって実行されるステップを示す。言語処理モジュール238は、いくつかの実装形態によれば、(i)句構造の接続詞の明示的または暗黙的な存在を判定することによって、(ii)1つまたは複数の会話センターの一時的な集合が、1つまたは複数の会話センターの第1の集合の各会話センターを含むかどうかを判定することによって、第2の自然言語コマンドが連言表現であるかどうかを判定することによって、語用論の形式を連言表現であると識別する(1498)。いくつかの実装形態では、続いて、第2の自然言語コマンドは連言表現であるという判定(14.102)に従って、言語処理モジュール238は、1つまたは複数の会話センターの一時的な集合に基づいて1つまたは複数の会話センターの第2の集合を計算する(14.104)ことによって、1つまたは複数の会話センターの第2の集合を導出する(14.100)。上述の図8Aは、接続詞を有する発話についての1つまたは複数の会話センターの第2の集合を導出する実装形態を示す。
【0178】
[0192] いくつかの実装形態では、言語処理モジュール238は、第2の自然言語コマンドが複数の連言を有するかどうかを判定し(14.106)、第2の自然言語コマンドが1つより多い連言を有するという判定に従って、第2の自然言語コマンドを線形化することによって1つまたは複数の分析関数の第2の集合を計算する(14.108)。
【0179】
[0193] いくつかの実装形態では、言語処理モジュール238は、図14Jに示す一連の動作を実行することによって第2の自然言語コマンドを線形化する。一連の動作は、第2の自然言語コマンドのための解析木を生成すること(14.110)、解析木を後順にトラバースすること(14.112)、および第1の分析句および第2の分析句とを抽出することを含み、この場合第1の分析句および第2の分析句は、解析木内の隣接するノードであり、第1の分析関数および第2の分析関数の1つまたは複数の特性に基づいて1つまたは複数の論理演算子を適用することによって第1の分析関数を第2の分析関数と組み合わせること(14.114)を含み、1つまたは複数の特性には、属性タイプ、演算子タイプ、および値が含まれる。
【0180】
[0194] 図14K図14Oはそれぞれ、いくつかの実装形態による、第1の分析関数と第2の分析関数とを組み合わせる最後のステップ(14.114)の異なる例を示す。それぞれの場合において(それぞれの図においてラベル14.116、14.126、14.36、14.150、および14.168によって示されるように)、第1の分析関数は、第1の属性、第1の演算子、および第1の値を含む。第2の分析関数は、第2の属性、第2の演算子、および第2の値を含む。
【0181】
[0195] 図14Kでは、言語処理モジュール238は、いくつかの実装形態によると、一連の動作を実行することによって第1の分析関数を第2の分析関数と組み合わせる(14.118)。一連の動作は、第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、および第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定する(14.120)こと、第1の属性および第2の属性が同一であり、第1の属性および第2の属性が同一であるかどうかを判定する(14.122)こと、両方ともカテゴリ型属性であるという判定に従って、第1の分析関数と第2の分析関数とを結合するために和集合演算子を適用する(14.124)ことを含む。
【0182】
[0196] 図14Lにおいて、言語処理モジュール238は、いくつかの実装形態によると、一連の動作を実行することによって第1の分析関数を第2の分析関数と組み合わせる(14.128)。一連の動作は、第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、および第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定する(14.130)こと、第1の属性および第2の属性が同一であることを判定する(14.132)こと、第1の属性および第2の属性が同一ではないという判定に従って、第1の分析関数と第2の分析関数とを結合するために交差演算子を適用する(14.134)ことを含む。
【0183】
[0197] 図14Mでは、言語処理モジュール238は、いくつかの実装形態によると、一連の動作を実行することによって第1の分析関数を第2の分析関数と組み合わせる(14.138)。一連の動作は、第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、および第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定する(14.140)こと、第1の属性および第2の属性が同一であることを判定する(14.142)こと、第1の属性および第2の属性が同一であり、かつ両方とも順序型属性であるとの判定(14.144)に従って、第1の演算子と第2の演算子の演算子タイプを判定する(14.146)こと、および第1の演算子および第2の演算子が両方とも等価演算子であるという判定に従って、第1の分析関数と第2の分析関数とを結合するために和演算子を適用する(14.148)ことを含む。
【0184】
[0198] 図14Nにおいて、言語処理モジュール238は、いくつかの実装形態によると、一連の動作を実行することによって第1の分析関数を第2の分析関数と組み合わせる(14.152)。一連の動作は、第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、および第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定する(14.154)こと、第1の属性および第2の属性が同一であることを判定する(14.156)こと、および第1の属性および第2の属性が同一であり、かつ両方とも順序型属性であるとの判定に従って、第1の演算子と第2の演算子の演算子タイプを判定する(14.160)こと、第1の演算子が「相対的に小さい」演算子であり、第2の演算子が「相対的に大きい」演算子であるという判定(14.162)に従って、第1の値が第2の値より小さいかどうかを判定する(14.164)こと、および第1の値が第2の値より小さいという判定に従って、第1の分析関数と第2の分析関数とを結合するために和演算子を適用する(14.166)ことを含む。
【0185】
[0199] 図14Oにおいて、言語処理モジュール238は、いくつかの実装形態によると、一連の動作を実行することによって第1の分析関数を第2の分析関数と組み合わせる(14.170)。一連の動作は、第1の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、および第2の属性がカテゴリ型属性または順序型属性であるかどうかを判定すること、第1の属性および第2の属性が同一であることを判定する(14.172)こと、第1の属性および第2の属性が同一であることを判定する(14.174)こと、第1の属性および第2の属性が同一であり、かつ両方とも順序型属性であるとの判定(14.176)に従って、第1の演算子と第2の演算子の演算子タイプを判定する(14.178)こと、第1の演算子が「相対的に大きい」演算子であり、第2の演算子が「相対的に小さい」演算子であるという判定(14.180)に従って、第1の値が第2の値より小さいかどうかを判定する(14.182)こと、および第1の値が第2の値より小さいという判定に従って、第1の分析関数と第2の分析関数とを結合するために交差演算子を適用する(14.184)ことを含む。
【0186】
[0200] 図15A図15Hは、いくつかの実装形態による、応答およびフィードバックを処理するため、およびユーザのクエリの曖昧性を処理するためを含む、語用論の原理を適用するデータセットの視覚分析のための自然言語を使用する(1502)プロセス(方法1500)のフローチャートを提供する。方法1500のステップは、コンピュータ(例えば、コンピューティングデバイス200)によって実行され得る。いくつかの実装形態では、コンピュータは、ディスプレイと、1つまたは複数のプロセッサと、メモリとを含む(1504)。図15A図15Hは、コンピュータメモリまたはコンピュータ可読記憶媒体(例えば、コンピューティングデバイス200のメモリ206)に格納されている命令に対応する。メモリは、1つまたは複数のプロセッサ(例えばプロセッサ202)による実行のために構成された1つまたは複数のプログラムを格納する(1506)。例えば、方法1500の動作は、少なくとも部分的には、データ視覚化生成モジュール234および/または言語処理モジュール238によって実行される。
【0187】
[0201] いくつかの実装形態では、コンピュータは、1つまたは複数のクエリの第1の集合を使用してデータベースから読み出されたデータセットに基づいてデータの視覚化を表示する(1508)。例えば、図1を参照すると、ユーザは、スキーマ情報領域110からの1つまたは複数のデータフィールドをデータ視覚化領域112の1つまたは複数のシェルフ(例えば、図1の列シェルフ120および行シェルフ122)に関連付けることができる。ユーザ関連の受信に応答して、いくつかの実装形態では、コンピュータは、1つまたは複数のクエリの集合を使用してデータセットからデータフィールドのデータを読み出し、次に受信したユーザ入力に対応するデータ視覚化領域112においてデータの視覚化(例えばデータの視覚化408)を表示する。データの視覚化を表示することは、図1を参照して上でさらに詳細に論じられている。
【0188】
[0202] コンピュータは、表示されたデータの視覚化に関連する第1の自然言語コマンドを指定するための第1のユーザ入力を受信する(1510)。いくつかの実装形態では、ユーザ入力は、表示されたデータの視覚化に近接したディスプレイのデータ入力領域においてユーザからテキスト入力として(例えば、キーボード216を介してまたはタッチセンシティブディスプレイ214を介して)受信される。いくつかの実装形態では、ユーザ入力は、コンピュータに連結されたマイクロフォン(例えば、音声入力装置220)を使用して音声コマンドとして受信される。例えば、図6Aを参照すると、表示されたデータの視覚化608は、バラードの1M未満の住宅に関する。ユーザから入力(例えば、コマンド/クエリ)を受信することは、図1を参照して上でさらに詳細に論じられている。
【0189】
[0203] 表示されたデータの視覚化に基づいて、コンピュータは、第1の自然言語コマンドから1つまたは複数の独立した分析句の第1の集合を抽出する(1512)。例えば、図6Aを参照すると、コンピュータによって受信された第1の自然言語コマンドは、「バラードの1M未満の住宅」と読める。第1の自然言語コマンドを受信する前に表示されたデータの視覚化は、シアトルでの過去の住宅販売に関するものである。いくつかの実装形態では、これらの分析句は表示されたデータの視覚化に関連するため、コンピュータは第1の自然言語コマンドから「住宅」および「1M未満」および「バラードの」を抽出する。表示されたデータの視覚化において句がデータフィールドを直接参照する場合、抽出(1512)は簡単である。データフィールドを直接参照するすべての句を集める。いくつかの実装形態では、コンピュータは、入力クエリからストップワード、フィラーワード、または任意の事前定義された単語の集合を抽出または除去し、表示されたデータの視覚化に関連し得るため、他のすべての句を第1の自然言語コマンドから抽出する(1412)。自然言語コマンドの句が表示された視覚化のデータフィールドを幾分間接的に参照するときに、このアプローチを使用する実装形態もある。
【0190】
[0204] いくつかの実装形態に従って、言語処理モジュール238は、1つまたは複数の分析句の第1の集合に基づいて、第1の自然言語コマンドに関連付けられた1つまたは複数の会話センターの第1の集合を計算する(1514)。会話型対話モデルに基づくフレームワークは、図3A図5、および図11を参照して上で説明されている。センターとは、その発話(本明細書では自然言語コマンドと呼ばれることがある)を談話(一連の発話)内の他の発話にリンクさせるのに役立つエンティティを示す。会話センターには、データの属性と値、視覚的特性、および分析アクションが含まれる。分析句に基づいて会話センターを計算することは、必要な変換および分析の後に分析句を1つまたは複数の会話センターにマッピングすることを含む。例示的な発話「バラードの1M未満の住宅」の場合、言語処理モジュール238は句「1M未満」を処理し、句を分析して、それが上述の図6Cに示すようにデータ属性LAST_SALE_PRICEを参照すると推測する。
【0191】
[0205] 続いて、いくつかの実装形態に従って、言語処理モジュール238は、1つまたは複数の会話センターの第1の組に関連付けられた分析関数の第1の集合を計算し(1516)、それによって、第1の組の1つまたは複数の関数句を作成する。図3A図5、および図11を参照して上述したように、いくつかの実装形態によれば、分析関数はそれぞれ、変数、演算子、および値からなる。いくつかの実装形態では、発話例「バラードで1M未満の住宅」について、言語処理モジュール238は、2つの関数を作成し、4つの関数F_CAT(住宅の種類、==コンドミニアム)、F_CAT(住宅の種類、==タウンハウス)、F_CAT(住宅の種類==単一)、およびF_NUMERIC(価格、<、500000)を作成する。この例において、言語処理モジュール238は、いくつかの実装形態によれば、データの属性の第1の集合を識別すべく1つまたは複数の会話センターの第1の集合に対応する表示されたデータの視覚化に関連する1つまたは複数のデータ属性を検索する。言語処理モジュール238はまた、いくつかの実装形態に従って、1つまたは複数の会話センターの第1の集合を調べることによって、演算子の第1の集合(例えば、演算子==、演算子<)およびデータ属性の第1の集合に対応する第1の集合の値を識別する。変数(属性)の第1の集合、対応する演算子の第1の集合および値の第1の集合を用いて、言語処理モジュール238は1つまたは複数の分析関数の第1の集合を構築し、それによって1つまたは複数の関数句の第1の集合を作成する。
【0192】
[0206] いくつかの実装形態では、コンピュータは、ステップ1516で計算された1つまたは複数の関数句の第1の集合に基づいてデータの視覚化を更新する(1518)。
【0193】
[0207] ここで図15Bを参照すると、コンピュータは、表示されたデータの視覚化に関連する第2の自然言語コマンドを指定するための第2のユーザ入力を受信する(1520)。いくつかの実装形態では、ユーザ入力は、表示されたデータの視覚化に近接したディスプレイのデータ入力領域においてユーザからテキスト入力として(例えば、キーボード216を介してまたはタッチセンシティブディスプレイ214を介して)受信される。いくつかの実装形態では、ユーザ入力は、コンピュータに連結されたマイクロフォン(例えば、音声入力装置220)を使用して音声コマンドとして受信される。例えば、図6Aを参照すると、表示されたデータの視覚化608は、コンピュータが第2のユーザ入力「タウンホーム」を受信したときに、バラードの1M未満の住宅に関する。ユーザから入力(例えば、コマンド/クエリ)を受信することは、図1を参照して上でさらに詳細に論じられている。
【0194】
[0208] 表示されたデータの視覚化に基づいて、コンピュータは、第2の自然言語コマンドから1つまたは複数の独立した分析句の第2の集合を抽出する(1522)。例えば、図6Aを参照すると、コンピュータによって受信された第2の自然言語コマンド(620)は、「タウンホーム」と読める。いくつかの実装形態では、この例では、コンピュータは、第2の自然言語コマンドから「タウンホーム」を抽出する。なぜなら、この分析句は、表示されたデータの視覚化(バラードのタウンホームに関係する)に関連しているからである。表示されたデータの視覚化において句がデータフィールドを直接参照する場合、抽出(1522)は簡単である。データフィールドを直接参照するすべての句を集める。いくつかの実装形態では、コンピュータは、入力クエリからストップワード、フィラーワード、または任意の事前定義された単語の集合を抽出または除去し、表示されたデータの視覚化に関連し得るため、他のすべての句を第2の自然言語コマンドから抽出する(1522)。自然言語コマンドの句が表示された視覚化のデータフィールドを幾分間接的に参照するときに、このアプローチを使用する実装形態もある。
【0195】
[0209] いくつかの実装形態に従って、言語処理モジュールは、1つまたは複数の分析句の第2の集合に基づいて、第2の自然言語コマンドに関連付けられた1つまたは複数の会話センターの一時的な集合を計算する(1524)。
【0196】
[0210] 言語処理モジュールは、いくつかの実装形態に従って、1つまたは複数の移行規則を使用して、1つまたは複数の会話センターの第1の集合および1つまたは複数の会話センターの一時的な集合から1つまたは複数の会話センターの第2の集合を導出する(1526)。
【0197】
[0211] コンピュータは、いくつかの実装形態に従って、1つまたは複数の関数句の第2の集合に基づいてデータの視覚化を更新する(1528)。
【0198】
[0212] 図15Cを参照すると、いくつかの実装形態では、言語処理モジュール238は、1つまたは複数の会話センター第2の集合に対応する1つまたは複数のデータ属性を判定する(1530)。次に、言語処理モジュール238は、いくつかの実装形態に従って、表示されたデータの視覚化を走査し(1532)、その特性が1つまたは複数のデータ属性の第1のデータ属性に対応するデータのマークを含む表示されたデータの視覚化のうちの1つまたは複数を識別する。いくつかのそのような実装形態(1534)では、視覚化特性は、色、サイズ、および形状のうちの1つまたは複数を含む。いくつかのそのような実装形態(1536)では、視覚化特性はデータのマークの視覚的符号化に対応する。
【0199】
[0213] 続いて、コンピュータは、いくつかの実装形態に従って、その特性が第1のデータ属性に対応するデータのマークを強調表示する(1538)。いくつかのそのような実装形態では、コンピュータフィルタ(1540)は、その特性が1つまたは複数のデータ属性に対応しないデータのマークを含む表示されたデータの視覚化から生じる。さらに、いくつかのそのような実装形態では、コンピュータは、データのマークをフィルタリングするか強調表示するかどうかを判定するためのユーザ入力を受信し(1542)、判定に基づいて表示されたデータの視覚化のデータのマークをフィルタリングまたは強調表示する。上記の図11Aは、いくつかの実装形態による応答およびフィードバックを処理するための語用論の原則の適用を示す図である。図11Aの説明は、図15Cに示すステップに適用される。例えば、すべてのデータ属性のリストを作成するための図11Aのステップ1102は、1つまたは複数のデータ属性を判定するためのステップ1530に対応する。同様に、既存の視覚化のどれがそれぞれの属性を符号化するかを決定するステップ1106は、表示されたデータの視覚化を走査するためのステップ1532に対応する。
【0200】
[0214] ここで図15Dを参照すると、いくつかの実装形態では、コンピュータは、表示されたデータの視覚化のいずれも、その特性が第1のデータ属性に対応するデータのマークを含まないかどうかを判定する(1544)。いくつかの実装形態では、表示されたデータの視覚化のいずれもがその特性が第1のデータ属性に対応するデータのマークを含まないという判定(1546)に従って、コンピュータは第1のデータ属性を用いて新しいデータの視覚化の詳細を生成し(1548)、新しいデータの視覚化を表示する(1550)。いくつかの実装形態では、新しいデータの視覚化を表示すること(1550)は、詳細に基づいて図表のタイプを判定すること(1552)と、図表を生成して表示すること(1554)とを含む。いくつかのそのような実装形態(1556)では、図表は、他のデータの視覚化と自動的に調整される、二次元グリッドベースのレイアウトアルゴリズムを使用して配置される。
【0201】
[0215] 図15Eを参照すると、いくつかの実装形態では、言語処理モジュール238は、1つまたは複数の会話センターの第2の集合に関連付けられた1つまたは複数の分析関数の第2の集合を計算し(1558)、それによって1つまたは複数の関数句の第2の集合を作成する。いくつかの実装形態では、コンピュータは、1つまたは複数の関数句の第2の集合から第1の関数句を選択し(1560)、この場合、第1の関数句は、パラメータ化データ選択基準を含む。いくつかの実装形態では、コンピュータは、パラメータ化データ選択基準のパラメータの値について初期範囲を選択する(1562)。いくつかの実装形態では、コンピュータは、パラメータ化データ選択基準に対応する編集可能なユーザインターフェース制御を表示し(1564)、この場合ユーザインターフェース制御はパラメータの現在の値を表示する。いくつかのそのような実装形態(1566)では、ユーザインターフェース制御は、第1の関数句の調整を可能にする。さらに、いくつかのそのような実装形態(1568)では、ユーザインターフェース制御は、ユーザが第1の関数句を調整することを可能にするスライダを表示する。いくつかの実装形態では、コンピュータは、第2の自然言語コマンドのクエリの順序に基づいて1つまたは複数の編集可能なユーザインターフェース制御の表示されたセットを順序付け(1570)、クエリの順序は第2の自然言語コマンドからの1つまたは複数の分析句の第2の集合を抽出している間に推論される。いくつかのそのような実装形態では、コンピュータは、テキスト内の小さなワードスケールの視覚化のコンパクトな配置を容易にするライブラリを使用する(1572)。いくつかのそのような実装形態(1574)では、ライブラリはSparklificator(商標)である。上記の図12Aは、いくつかの実装形態による、ユーザに提示される選択可能なウィジェットの集合を含むインターフェースの例示的な図を示す。
【0202】
[0216] 図15Fを参照すると、いくつかの実装形態では、コンピュータは、1つまたは複数の分析句の第2の集合の分析句のいずれにも対応しない第2の自然言語コマンドの第1のトークンを判定する(1576)。いくつかの実装形態では、コンピュータは、第1のトークンを第1のデータセットの1つまたは複数の特徴と比較することによって、検索ライブラリを使用して、第1のトークンに対応する正しく綴られた名辞を検索する(1578)。いくつかのそのような実装形態(1580)では、1つまたは複数の特徴は、第1のデータセットのデータ属性、セル値、および関連キーワードを含む。いくつかのそのような実装形態(1582)では、検索ライブラリはFuse.js(商標)である。
【0203】
[0217] いくつかの実装形態では、言語処理モジュール238は、第3の自然言語コマンドを取得するために第2の自然言語コマンドの第1のトークンを正しく綴られた名辞に置き換え(1584)、第3の自然言語コマンドから1つまたは複数の分析句の第2の集合を抽出する(1586)。
【0204】
[0218] いくつかの実装形態では、図15Gに示されるように、言語処理モジュール238は、第1のトークンに対応する正しく綴られた名辞がないかどうかを判定する(1588)。第1のトークンに対応する正しく綴られた名辞がないという判定に従って(1590)、言語処理モジュールは第2の自然言語コマンドを、解析木を取得するために解析し(1592)、第1のトークンに対応する木の部分を除去するための解析木をプルーニングし(1594)、第1のトークンに対応する木の部分を除去するため解析木を抽出する(1596)。いくつかのこのような実装形態では、言語処理モジュール238は、第3の自然言語コマンドを取得するために第2の自然言語コマンドの第1のトークンを正しく綴られた名辞に置き換え(1598)、コンピュータは第1のトークンを表示する(15.100)。
【0205】
[0219] いくつかの実装形態では、図15Hに示されるように、コンピュータは、正しく綴られた名辞が第2の自然言語コマンドの第1のトークンに置き換えられることを示すテキストフィードバックを生成する(15.102)。さらに、いくつかのそのような実装形態では、コンピュータは、正しく綴られた名辞を表示して(15.104)強調表示する。上記の図12Bは、いくつかの実装形態による、数個の例示的な状況およびコンピュータによって生成される対応するフィードバックシステムを示す。
【0206】
[0220] 本明細書の本発明の説明において使用される名辞は、特定の実装形態を説明することのみを目的としており、本発明を限定することを意図するものではない。本発明の説明および添付の特許請求の範囲で使用されるように、単数形「a」、「an」、および「the」は、文脈が明らかにそうでないことを示さない限り、複数形も含むことを意図する。本明細書で使用される「および/または」という名辞は、関連して列挙された項目の1つまたは複数のありとあらゆる可能な組み合わせを示し、それらを包含することも理解されよう。本明細書で使用されるとき、「comprises(備える)」および/または「comprising(備える)」という名辞は、述べられた特徴、ステップ、動作、要素、および/または構成要素の存在を特定するが、1つまたは複数の他の特徴、ステップ、動作、要素、構成要素、および/またはそれらの群の存在または追加を排除するものではない。
【0207】
[0221] 説明の目的のために、前述の説明は、特定の実装形態を参照して説明された。しかし、上記の例示的な考察は、網羅的であること、または本発明を開示された正確な形態に限定することを意図していない。上記の教示に鑑みて、多くの修正形態および変形形態が可能である。本発明の原理およびその実際的な用途を最もよく説明し、それによって当業者が本発明および企図される特定の用途に適した様々な修正を加えた様々な実装形態を最もよく利用できるように、実装形態を選択し説明した。
図1
図2
図3A
図3B
図4A
図4B
図4C
図4D
図4E
図4F
図4G
図5
図6A
図6B
図6C
図6D
図7A
図7B
図7C
図7D
図7E
図7F
図8A
図8B
図8C
図9A
図9B
図9C
図9D
図10A
図10B
図10C
図11A
図11B
図11C
図12A
図12B
図13A
図13B
図13C
図13D
図13E
図13F
図13G
図13H
図13I
図13J
図14A
図14B
図14C
図14D
図14E
図14F
図14G
図14H
図14I
図14J
図14K
図14L
図14M
図14N
図14O
図14P
図14Q
図14R
図15A
図15B
図15C
図15D
図15E
図15F
図15G
図15H
【手続補正書】
【提出日】2023-06-06
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
データセットの視覚的分析のために自然言語を使用する方法であって、
ディスプレイ、1つまたは複数のプロセッサ、および前記1つまたは複数のプロセッサによる実行のために構成された1つまたは複数のプログラムを記憶するメモリを有するコンピュータで、
1つまたは複数のクエリの集合を用いてデータベースから読み出されたデータセットに基づいてデータの視覚化を表示することを含む、データ視覚化アプリケーションを前記ディスプレイ上に表示することと、
前記データ視覚化アプリケーションによって、前記表示されたデータの視覚化に関連する自然言語コマンドを指定するためのユーザ入力を受信することと、
前記表示されたデータの視覚化に基づいて、前記自然言語コマンドから1つまたは複数の独立した分析句を抽出することと、
前記1つまたは複数の抽出された分析句のうちの第1の分析句について、
前記第1の分析句と前記データセット内の数値データフィールドのデータフィールド名との間の意味論的関連性を計算すること、
前記第1の分析句に対して計算された意味論的関連性が最も高いデータフィールド名を有する1つまたは複数の数値データフィールドを識別すること、および
前記第1の分析句に従って数値関数を選択することであって、前記数値関数は前記1つまたは複数の数値データフィールド内のデータ値を閾値と比較することと、
1つまたは複数のクエリの更新された集合を使用して前記データベースに再度クエリして、前記数値関数に従って前記1つまたは複数の識別された数値データフィールドをフィルタリングすることを含む、更新されたデータセットを読み出すことと、
前記データ視覚化アプリケーションにおいて、前記ディスプレイ上に前記更新されたデータセットを使用して更新されたデータの視覚化を表示することと、
を含む方法。
【請求項2】
意味論的関連性を計算することは、
テキストのコーパスで訓練された複数のニューラルネットワークモデルを使用して前記第1の分析句についての複数の単語埋め込みを生成すること、および
前記複数の単語埋め込みに基づいて前記意味論的関連性を計算すること
を含む、請求項1に記載の方法。
【請求項3】
前記複数のニューラルネットワークモデルが、Word2vecモデルを含み、前記Word2vecモデルは、CBoW(continuous bag of words)モデルアーキテクチャまたはスキップグラムモデルアーキテクチャを利用し、前記単語埋め込みは単語ベクトルである、請求項2に記載の方法。
【請求項4】
前記複数のニューラルネットワークモデルを訓練することは、複数の訓練方法を含み、前記複数の訓練方法は、ネガティブサンプリングを含む訓練方法またはネガティブサンプリングを含まない訓練方法を含む、請求項2に記載の方法。
【請求項5】
前記テキストのコーパスは、自然言語処理(NLP)において有用な意味論的意味を有する単語を含む、請求項2に記載の方法。
【請求項6】
前記複数の単語埋め込みに基づいて前記意味論的関連性を計算することは、単語間の意味論的距離を使用して最近接平均を計算することを含む、請求項2に記載の方法。
【請求項7】
前記第1の分析句と前記データセット内の数値データフィールドのデータフィールド名との間の意味論的関連性を計算することは、
字句データベースを受信すること、および
前記受信した字句データベースから前記第1の分析句の同義語を抽出すること
を含む、請求項1に記載の方法。
【請求項8】
前記数値関数を選択することは、
公に利用可能な辞書から前記第1の分析句の単語の定義を取得すること、
前記単語の定義が事前定義の形容詞を含むかどうかを判定すること、および
前記単語の定義が前記事前定義の形容詞を含むという前記判定に従って、前記事前定義の形容詞を分析関数にマッピングすること
を含む、請求項1に記載の方法。
【請求項9】
前記単語の定義が事前定義の形容詞を含むかどうかを判定することは、自然言語ツールキットライブラリによって提供される品詞APIを使用して前記事前定義の形容詞の存在を確認することを含む、請求項8に記載の方法。
【請求項10】
前記数値関数を計算することは、前記第1の分析句内のディスクリプタを識別し、前記ディスクリプタに適切な関数をマッピングすることを含む、請求項1に記載の方法。
【請求項11】
前記数値関数は、パラメータ化されたデータ選択基準を含み、前記データベースに再度クエリして、前記数値関数に従って前記1つまたは複数の識別された数値データフィールドをフィルタリングすることは、前記パラメータ化されたデータ選択基準のパラメータの値に対する初期の範囲を選択することを含む、請求項1に記載の方法。
【請求項12】
前記パラメータ化されたデータ選択基準に対応する編集可能なユーザインターフェース制御を表示することをさらに含み、前記ユーザインターフェース制御は前記パラメータの現在の値を表示する、請求項11に記載の方法。
【請求項13】
前記ユーザインターフェース制御にてユーザ入力を受信すること、
前記受信したユーザ入力に応答して、
前記パラメータ化されたデータ選択基準の第1のパラメータの値を修正すること、および
前記修正された値を前記ユーザインターフェース制御内に表示すること
をさらに含む、請求項12に記載の方法。
【請求項14】
前記ユーザインターフェース制御はスライダである、請求項12に記載の方法。
【請求項15】
前記自然言語コマンドが、前記表示されたデータの視覚化内の1つまたは複数のデータのマークの視覚化特性を参照する場合、前記方法は、
前記表示されたデータの視覚化を走査して、その特性が前記自然言語コマンドに対応するデータのマークを含む前記表示されたデータの視覚化の1つまたは複数を識別すること、および
その特性が前記自然言語コマンドに対応する前記データのマークを強調表示すること
をさらに含む、請求項1に記載の方法。
【請求項16】
前記視覚化特性は、色、サイズ、および形状のうちの1つまたは複数を含む、請求項15に記載の方法。
【請求項17】
前記視覚化特性はデータのマークの視覚的符号化に対応する、請求項15に記載の方法。
【請求項18】
前記視覚的符号化は、色、サイズ、および形状のうちの1つまたは複数である、請求項17に記載の方法。
【請求項19】
ディスプレイ、
1つまたは複数のプロセッサ、
メモリ、および
前記メモリに格納され、前記1つまたは複数のプロセッサによって実行されるように構成された1つまたは複数のプログラムを含む電子装置であって、前記1つまたは複数のプログラムが、
1つまたは複数のクエリの集合を用いてデータベースから読み出されたデータセットに基づいてデータの視覚化を表示することを含む、データ視覚化アプリケーションを前記ディスプレイ上に表示することと、
前記データ視覚化アプリケーションによって、前記表示されたデータの視覚化に関連する自然言語コマンドを指定するためのユーザ入力を受信することと、
前記表示されたデータの視覚化に基づいて、前記自然言語コマンドから1つまたは複数の独立した分析句を抽出することと、
前記1つまたは複数の抽出された分析句のうちの第1の分析句について、
前記第1の分析句と前記データセット内の数値データフィールドのデータフィールド名との間の意味論的関連性を計算すること、
前記第1の分析句に対して計算された意味論的関連性が最も高いデータフィールド名を有する1つまたは複数の数値データフィールドを識別すること、および
前記第1の分析句に従って数値関数を選択することであって、前記数値関数は前記1つまたは複数の数値データフィールド内のデータ値を閾値と比較することと、
1つまたは複数のクエリの更新された集合を使用して前記データベースに再度クエリして、前記数値関数に従って前記1つまたは複数の識別された数値データフィールドをフィルタリングすることを含む、更新されたデータセットを読み出すことと、
前記データ視覚化アプリケーションにおいて、前記ディスプレイ上に前記更新されたデータセットを使用して更新されたデータの視覚化を表示することと、
の命令を含む、電子装置。
【請求項20】
ディスプレイを備えた電子装置によって実行されるように構成された1つまたは複数のプログラムを格納する非一時的コンピュータ可読記憶媒体であって、前記1つまたは複数のプログラムが、
1つまたは複数のクエリの集合を用いてデータベースから読み出されたデータセットに基づいてデータの視覚化を表示することを含む、データ視覚化アプリケーションを前記ディスプレイ上に表示することと、
前記データ視覚化アプリケーションによって、前記表示されたデータの視覚化に関連する自然言語コマンドを指定するためのユーザ入力を受信することと、
前記表示されたデータの視覚化に基づいて、前記自然言語コマンドから1つまたは複数の独立した分析句を抽出することと、
前記1つまたは複数の抽出された分析句のうちの第1の分析句について、
前記第1の分析句と前記データセット内の数値データフィールドのデータフィールド名との間の意味論的関連性を計算すること、
前記第1の分析句に対して計算された意味論的関連性が最も高いデータフィールド名を有する1つまたは複数の数値データフィールドを識別すること、および
前記第1の分析句に従って数値関数を選択することであって、前記数値関数は前記1つまたは複数の数値データフィールド内のデータ値を閾値と比較することと、
1つまたは複数のクエリの更新された集合を使用して前記データベースに再度クエリして、前記数値関数に従って前記1つまたは複数の識別された数値データフィールドをフィルタリングすることを含む、更新されたデータセットを読み出すことと、
前記データ視覚化アプリケーションにおいて、前記ディスプレイ上に前記更新されたデータセットを使用して更新されたデータの視覚化を表示することと、
の命令を含む、非一時的コンピュータ可読記憶媒体。
【外国語明細書】