(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-12
(54)【発明の名称】自律的なスプレッドシートの作成
(51)【国際特許分類】
G06F 16/245 20190101AFI20240905BHJP
【FI】
G06F16/245
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024518726
(86)(22)【出願日】2022-09-23
(85)【翻訳文提出日】2024-05-24
(86)【国際出願番号】 US2022044613
(87)【国際公開番号】W WO2023049405
(87)【国際公開日】2023-03-30
(32)【優先日】2021-09-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100142907
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ラベリー、アンドリュー ジェイ.
(72)【発明者】
【氏名】ワグナー、アール ジェイ.
(72)【発明者】
【氏名】オルブライト、マシュー
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175GC03
5B175KA12
(57)【要約】
方法は、処理デバイスによって、表形式の構造を有する文書を作成するための要求に対応する自然言語クエリを受信することと、処理デバイスによって、文書に関連する1つまたは複数の属性カテゴリを識別することと、処理デバイスによって、自然言語クエリを少なくとも1つの外部データソースにアクセスするためのデータアクセスクエリに変換することと、処理デバイスによって、少なくとも1つの外部データソースから、1つまたは複数の属性カテゴリに対応する複数のデータ項目を取得することと、処理デバイスによって、文書の複数のセルの各セルに複数のデータ項目のそれぞれのデータ項目をポピュレートすることによって文書を生成することと、を含む。
【特許請求の範囲】
【請求項1】
処理デバイスによって、表形式の構造を有する文書を作成するための要求に対応する自然言語クエリを受信することと、
前記処理デバイスによって、前記文書に関連する1つまたは複数の属性カテゴリを識別することと、
前記処理デバイスによって、前記自然言語クエリを少なくとも1つの外部データソースにアクセスするためのデータアクセスクエリに変換することと、
前記処理デバイスによって、前記少なくとも1つの外部データソースから、前記1つまたは複数の属性カテゴリに対応する複数のデータ項目を取得することと、
前記処理デバイスによって、前記文書の複数のセルの各セルに前記複数のデータ項目のそれぞれのデータ項目をポピュレートすることによって前記文書を生成することと、
を含む、方法。
【請求項2】
前記1つまたは複数の属性カテゴリは、1つまたは複数のプライマリ属性がポピュレートされた1つまたは複数のセルに対応するプライマリ属性カテゴリ、及び1つまたは複数のセカンダリ属性がポピュレートされた1つまたは複数のセルに対応するセカンダリ属性カテゴリを含む、請求項1に記載の方法。
【請求項3】
前記少なくとも1つの外部データソースは、ナレッジグラフまたはウェブサイトのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項4】
前記文書を生成することは、サイズ制限に従って決定されたサイズを有する前記文書を生成することを含む、請求項1に記載の方法。
【請求項5】
前記処理デバイスによって、前記少なくとも1つの外部データソースから、1つまたは複数の追加データ項目を取得することと、
前記処理デバイスによって、前記1つまたは複数の追加データ項目に基づいて前記文書を更新することと、
をさらに含む、請求項1に記載の方法。
【請求項6】
前記1つまたは複数の追加データ項目を取得することは、
追加の自然言語クエリを受信することと、
前記追加の自然言語クエリを受信することに応じて、前記1つまたは複数の追加データ項目を取得することと、
をさらに含む、請求項5に記載の方法。
【請求項7】
前記1つまたは複数の追加データ項目を取得することは、
前記少なくとも1つの外部データソースから、前記文書に関して新たに関連するデータを識別することと、
前記少なくとも1つの外部データソースから、前記新たに関連するデータを取得することと、
をさらに含む、請求項5に記載の方法。
【請求項8】
メモリデバイスと、
前記メモリデバイスに結合された処理デバイスであって、前記処理デバイスは、
表形式の構造を有する文書を作成するための要求に対応する自然言語クエリを受信することと、
前記文書に関連する1つまたは複数の属性カテゴリを識別することと、
前記自然言語クエリを少なくとも1つの外部データソースにアクセスするためのデータアクセスクエリに変換することと、
前記少なくとも1つの外部データソースから、前記1つまたは複数の属性カテゴリに対応する複数のデータ項目を取得することと、
前記文書の複数のセルの各セルに前記複数のデータ項目のそれぞれのデータ項目をポピュレートすることによって前記文書を生成することと、を含む動作を実行する、前記処理デバイスと、
を備える、システム。
【請求項9】
前記1つまたは複数の属性カテゴリは、1つまたは複数のプライマリ属性がポピュレートされた1つまたは複数のセルに対応するプライマリ属性カテゴリ、及び1つまたは複数のセカンダリ属性がポピュレートされた1つまたは複数のセルに対応するセカンダリ属性カテゴリを含む、請求項8に記載のシステム。
【請求項10】
前記少なくとも1つの外部データソースは、ナレッジグラフまたはウェブサイトのうちの少なくとも1つを含む、請求項8に記載のシステム。
【請求項11】
前記文書を生成することは、サイズ制限に従って決定されたサイズを有する前記文書を生成することを含む、請求項8に記載のシステム。
【請求項12】
前記動作は、
前記少なくとも1つの外部データソースから、1つまたは複数の追加データ項目を取得することと、
前記1つまたは複数の追加データ項目に基づいて前記文書を更新することと、
をさらに含む、請求項8に記載のシステム。
【請求項13】
前記1つまたは複数の追加データ項目を取得することは、
追加の自然言語クエリを受信することと、
前記追加の自然言語クエリを受信することに応じて、前記1つまたは複数の追加データ項目を取得することと、
をさらに含む、請求項12に記載のシステム。
【請求項14】
前記1つまたは複数の追加データ項目を取得することは、
前記少なくとも1つの外部データソースから、前記文書に関して新たに関連するデータを識別することと、
前記少なくとも1つの外部データソースから、前記新たに関連するデータを取得することと、
をさらに含む、請求項12に記載のシステム。
【請求項15】
メモリデバイスと、
前記メモリデバイスに結合された処理デバイスであって、前記処理デバイスは、
ユーザから複数の自然言語クエリを受信することと、
前記複数の自然言語クエリの各自然言語クエリが類似のトピックに関連付けられていることを判定することと、
前記複数の自然言語クエリに基づいて表形式の構造を有する文書を作成するように前記ユーザに推奨を送信することと、
前記ユーザから前記文書を作成するインジケーションを受信することに応じて、前記文書を生成することと、を含む動作を実行する、前記処理デバイスと、
を備える、システム。
【請求項16】
前記文書を生成することは、
前記文書に関連する1つまたは複数の属性カテゴリを識別することと、
少なくとも1つの外部データソースから、前記1つまたは複数の属性カテゴリに対応する複数のデータ項目を取得することと、
前記文書の複数のセルの各セルに前記複数のデータ項目のそれぞれのデータ項目をポピュレートすることによって前記文書を生成することと、
を含む、請求項15に記載のシステム。
【請求項17】
少なくとも1つの外部データソースは、ナレッジグラフまたはウェブサイトのうちの少なくとも1つを含む、請求項15に記載のシステム。
【請求項18】
前記動作は、
少なくとも1つの外部データソースから、1つまたは複数の追加データ項目を取得することと、
前記1つまたは複数の追加データ項目に基づいて前記文書を更新することと、
をさらに含む、請求項15に記載のシステム。
【請求項19】
前記1つまたは複数の追加データ項目を取得することは、
追加の自然言語クエリを受信することと、
前記追加の自然言語クエリを受信することに応じて、前記1つまたは複数の追加データ項目を取得することと、
をさらに含む、請求項18に記載のシステム。
【請求項20】
前記1つまたは複数の追加データ項目を取得することは、
前記少なくとも1つの外部データソースから、前記文書に関して新たに関連するデータを識別することと、
前記少なくとも1つの外部データソースから、前記新たに関連するデータを取得することと、
をさらに含む、請求項18に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の態様及び実施態様は、一般的には電子文書に関し、より詳細には、表形式の構造を有する電子文書の自律的な作成に関する。
【背景技術】
【0002】
電子文書(「文書」)は、複数のセルを含む表形式の構造を有し得る。そのような文書は、「データ表」または単に「表」と呼ばれ得る。各セルは、特定の形式(例えば、数値またはテキストデータ)でデータを入力するための領域に対応しており、文書を使用して入力データを整理、分析、及び/または保存できる。各セルは、数値以外のデータ入力、セルに値を割り当てる数式を含むことができ、または空のままにすることもできる。数式は、数値、スプレッドシート内の1つまたは複数のセルの値への参照、算術演算子、関係演算子、関数などを含むことができる。さらに、文書はプログラミング機能をサポートできる。例えば、セルの内容は、文書内の1つまたは複数の他のセルの内容から派生し得る。いくつかの実施態様では、文書はスプレッドシートであり得る。スプレッドシート内のセルは、複数の行及び複数の列を含む配列として配置することができ、スプレッドシートの特定のセルは、表内のその列の位置及び表内のその行の位置に関してアドレス指定または参照できる。いくつかの例では、列は文字(例えば、列A、列B、…)で表され得、行は数字(例えば、行1、行2、…)で表され得る。例えば、列Dの行5にあるセルは、セルD5として参照され得る。
【発明の概要】
【0003】
以下の概要は、開示のいくつかの態様についての基本的な理解を提供するために、開示の簡略化された概要である。この概要は開示内容の包括的な概要ではない。これは、開示の主要または重要な要素を特定すること、または開示の特定の実施態様の範囲または任意の特許請求の範囲を定義することを意図するものではない。その唯一の目的は、後ほど提示されるより詳細な説明の前置きとして、開示のいくつかの概念を簡略化した形で提示することである。
【0004】
いくつかの実施態様では、システム及び方法が開示される。一実施態様では、システムは、メモリデバイス、及びメモリデバイスに結合された処理デバイスを含む。処理デバイスは、表形式の構造を有する文書を作成するための要求に対応する自然言語クエリを受信することと、文書に関連する1つまたは複数の属性カテゴリを識別することと、自然言語クエリを少なくとも1つの外部データソースにアクセスするためのデータアクセスクエリに変換することと、少なくとも1つの外部データソースから、1つまたは複数の属性カテゴリに対応する複数のデータ項目を取得することと、文書の複数のセルの各セルに複数のデータ項目のそれぞれのデータ項目をポピュレートすることによって文書を生成することと、を含む動作を実行する。
【0005】
いくつかの実施態様では、1つまたは複数の属性カテゴリは、1つまたは複数のプライマリ属性がポピュレートされた1つまたは複数のセルに対応するプライマリ属性カテゴリ、及び1つまたは複数のセカンダリ属性がポピュレートされた1つまたは複数のセルに対応するセカンダリ属性カテゴリを含む。
【0006】
いくつかの実施態様では、少なくとも1つの外部データソースは、ナレッジグラフまたはウェブサイトのうち少なくとも1つを含む。
【0007】
いくつかの実施態様では、パーソナライズされた文書を生成することは、サイズ制限に従って決定されたサイズを有するパーソナライズされた文書を生成することを含む。
【0008】
いくつかの実施態様では、方法はさらに、処理デバイスによって、少なくとも1つの外部データソースから、1つまたは複数の追加データ項目を取得することと、処理デバイスによって、1つまたは複数の追加データ項目に基づいて文書を更新することと、を含む。いくつかの実施態様では、1つまたは複数の追加データ項目を取得することは、追加の自然言語クエリを受信することと、追加の自然言語クエリの受信に応じて1つまたは複数の追加データ項目を取得することと、をさらに含む。いくつかの実施態様では、1つまたは複数の追加データ項目を取得することは、少なくとも1つの外部データソースから、文書に関して新たに関連するデータを識別することと、少なくとも1つの外部データソースから、新たに関連するデータを取得することと、をさらに含む。
【0009】
別の実施態様では、システムは、メモリデバイス、及びメモリデバイスに結合された処理デバイスを含む。処理デバイスは、ユーザから複数の自然言語クエリを受信することと、複数の自然言語クエリの各自然言語クエリが類似のトピックに関連付けられていることを判定することと、複数の自然言語クエリに基づいて表形式の構造を有する文書を作成するようにユーザに推奨を送信することと、ユーザから文書を作成するインジケーションを受信することに応じて、文書を生成することと、を含む動作を実行する。
【0010】
いくつかの実施態様では、文書を生成することは、文書に関連する1つまたは複数の属性カテゴリを識別することと、少なくとも1つの外部データソースから、1つまたは複数の属性カテゴリに対応する複数のデータ項目を取得することと、文書の複数のセルの各セルに複数のデータ項目のそれぞれのデータ項目をポピュレートすることによって文書を生成することと、を含む。
【0011】
いくつかの実施態様では、少なくとも1つの外部データソースは、ナレッジグラフまたはウェブサイトのうち少なくとも1つを含む。
【0012】
いくつかの実施態様では、動作はさらに、少なくとも1つの外部データソースから、1つまたは複数の追加データ項目を取得することと、1つまたは複数の追加データ項目に基づいて文書を更新することと、を含む。いくつかの実施態様では、1つまたは複数の追加データ項目を取得することは、追加の自然言語クエリを受信することと、追加の自然言語クエリの受信に応じて1つまたは複数の追加データ項目を取得することと、をさらに含む。いくつかの実施態様では、1つまたは複数の追加データ項目を取得することは、少なくとも1つの外部データソースから、パーソナライズされた文書に関して新たに関連するデータを識別することと、少なくとも1つの外部データソースから、新たに関連するデータを取得することと、をさらに含む。
【0013】
本開示の態様及び実施態様は、以下に示す詳細な説明、ならびに本開示の様々な態様及び実施態様の添付図面からより完全に理解されるであろうが、これらの図面は、本開示を特定の態様または実施態様に限定するものではなく、説明及び理解のみを目的としている。
【図面の簡単な説明】
【0014】
【
図1】本開示の実施態様による、システムアーキテクチャの一例を示す。
【
図2】本開示の実施態様による、自律的に作成されたスプレッドシートを示す図である。
【
図3】本開示の実施態様による、自律的な文書作成方法のフロー図を示す。
【
図4】本開示の実施態様による、文書を自律的に改良する方法のフロー図を示す。
【
図5】本開示の実施態様による、推奨文書を自律的に作成する方法のフロー図を示す。
【
図6】本開示の実施態様による、例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0015】
本開示の態様は、表形式の構造を有する電子文書の自律的な作成に関する。表形式の構造(例えば、スプレッドシート)を有する電子文書(「文書」)を構築する際の課題の1つは、文書にデータをポピュレートすることである。例として、列A~I及び行1~3を含むスプレッドシートの次の部分を表1に示す。
【表1】
【0016】
表1は、書籍のセットに関連するデータを整理したスプレッドシートの一部である。書籍のセットは、John Doeによる「ABC」及びJane Doeによる「XYZ」、ならびに書籍のセットの各書籍の属性を含む。より詳細には、列Aの各セルは書籍の名前を定義し、列Bの各セルは、同じ行内の列Aのセルによって定義された書籍の著者を定義し、列Cの各セルは、同じ行内の列Aのセルによって定義された書籍の初版発効日を定義し、列Dの各セルは、同じ行内の列Aのセルによって定義された書籍の最新版の日付を定義し、列Eの各セルは、同じ行内の列Aのセルによって定義された書籍の販売ランキングを定義し、列Fの各セルは、同じ行内の列Aのセルによって定義された書籍の2019年の販売数を定義し、G列の各セルは、同じ行内のA列のセルによって定義された書籍の2020年の販売数を定義し、列Hの各セルは、同じ行内の列Aのセルによって定義された書籍の2021年の販売数を定義し、列Iの各セルは、同じ行内の列Aのセルによって定義された書籍の2019年から2021年までの販売数を定義する。列Iのセルの値は、同じ行内の列F~Hのセルの対応する値から導出され得る。例えば、セルI2の値は、セルF2からセルH2までの値の合計として導出され得る。
【0017】
列A及びBは、ユーザがコンピューティングデバイスを使用してスプレッドシートに手動で入力できる。列Iの値は列F~Hから導出されるため、列F~Hにデータが入力されると、列Iのセルには自動的にデータがポピュレートされる。従来のスプレッドシートでは、数式を使用して他のセルの値を参照してセルの値を導出することができるが(前述のとおり)、通常、従来のスプレッドシートでは、ユーザが大量のデータを手動で入力する必要がある。スプレッドシートにデータを手動で入力すると、人為的なエラーにより一部のセルに誤った値が生じる可能性があり、計算リソースに多大な時間がかかる可能性がある。
【0018】
本開示の態様は、表形式の構造(例えば、スプレッドシート)を有する文書を自律的に作成することにより、上記及びその他の欠陥に対処する。ここで説明するように、文書は文書全体であり得る、または完全な文書の一部分であり得る。文書は、1つまたは複数の外部データソースからデータを取得するための自然言語クエリを使用して、自律的に作成または生成できる。
【0019】
自然言語処理とは、人間とコンピューティングデバイス間のインタラクションを可能にするために自然言語を処理することを指し得る。例えば、自然言語処理技術は、コンピューティングデバイスが理解できない非構造化自然言語形式を有する自然言語クエリを、コンピューティングデバイスが理解できる構造化形式を有するクエリに変換して、自然言語処理タスクを実行するために使用できる。自然言語クエリは、テキストクエリ、音声クエリなどであり得る。自然言語処理タスクの例は、テキスト及び音声処理、形態素解析、構文解析、語彙意味論、関係意味論などを含む。
【0020】
例えば、ユーザから自然言語クエリを受信すると、コンピューティングシステムの文書作成マネージャは、自然言語クエリを1つまたは複数の外部データソースにアクセスするためのデータアクセスクエリに変換できる。外部データソースは、外部データベースまたはリポジトリ、ナレッジグラフ、ウェブサイトなどであり得る。自然言語クエリは、テキストクエリ、音声クエリなどを含むことができる。例えば、自然言語クエリは、音声制御デジタルアシスタントによって受信される音声クエリであり得る。
【0021】
スプレッドシートに関しては、文書作成マネージャは、各々がスプレッドシートのそれぞれの列を定義する1つまたは複数の属性カテゴリ、及び各列内のセルにポピュレートするためのいくつかの属性を識別できる。1つまたは複数の属性カテゴリを識別することは、クエリからプライマリ属性カテゴリを抽出することを含むことができ、プライマリ属性カテゴリはクエリのメイントピックとして識別される。プライマリ属性カテゴリは、スプレッドシートの最初の列(例えば、列A)に割り当てることができる。1つまたは複数の属性カテゴリを識別することは、プライマリ属性カテゴリに関連する1つまたは複数のセカンダリ属性カテゴリを識別することをさらに含むことができる。各セカンダリ属性カテゴリは、スプレッドシート内の対応する列に割り当てることができ、列内の各セルには属性を示す値がポピュレートされる。1つまたは複数のセカンダリ属性カテゴリは、外部データソースを使用して実行された分析に基づいて(例えば、ナレッジグラフ内のノード間の接続の分析に基づいて)識別できる。
【0022】
文書作成マネージャにより、文書を最初に作成した後に、文書をさらに改良することができる。例えば、文書作成マネージャは、データを文書に追加する、新たに関連するデータの文書への追加を提案する、新たに関連するデータを文書に自動的に統合するなどができる。さらに、文書作成マネージャは、ユーザから受信される自然言語クエリの履歴に基づいて、ユーザ向けの文書の作成を提案できる。例えば、ユーザが、性質が似ている一連の質問をした場合、文書作成マネージャは、少なくともそれらの質問に対する回答を提供する文書の作成を提案できる。文書作成マネージャによって実行される動作のさらなる詳細については、本明細書中で以下に記載する。
【0023】
文書を自動的に作成し、文書にデータを自動的にポピュレートすることで、手動入力によって発生する可能性のある人為的エラーを排除し、文書の作成とデータをポピュレートするのに必要な時間とコンピューティングリソースを削減できる。さらに、文書の自動改良により、計算効率がさらに向上し、コンピューティングリソースの使用量が削減される。例えば、新たに関連するデータを文書に統合することで、ユーザによる新たに関連するデータの検索、及びこのデータの文書への手動入力が不要になり、文書の内容の更新が最適化され、時間及びリソースの消費がさらに削減される。
【0024】
図1は、本開示の実施態様による、システムアーキテクチャ100の一例を示す。システムアーキテクチャ100(本明細書では「システム」とも呼ばれる)は、ネットワーク130を介して文書プラットフォーム120(例えば、サーバ)などのサーバに接続できる、少なくとも1つのクライアントデバイス110を含む。簡潔にするために、1つのクライアントデバイス110及び1つの文書プラットフォーム120がネットワーク130に接続されているように示されている。実際には、より多くのクライアントデバイス及び/または文書プラットフォームが存在してもよい。また、場合によっては、クライアントデバイスが文書プラットフォームの1つまたは複数の機能を実行し、文書プラットフォームがクライアントデバイスの1つまたは複数の機能を実行し得る。クライアントデバイス110は、文書プラットフォーム120から情報にアクセスし得るか、または情報を受信し得る。システムアーキテクチャ100は、クラウドベースの環境を表すことができ、これにより、文書プラットフォーム120をホストするサーバ(複数可)とクライアントデバイス110との間の通信がネットワーク130を介して可能になり、電子文書を保存及び共有できる。代替的に、システムアーキテクチャ100は、ローカルに相互接続されたシステムに適用することができる。さらに、本開示のいくつかの態様は、スプレッドシート及びスプレッドシートを管理する文書アプリケーションを参照して説明されているが、本開示のシステム、方法、機能、及び実施形態は、任意のタイプの電子文書、及び任意のタイプのホストアプリケーションによって提供される任意のタイプのプログラムまたはサービスに適用できることは、当業者ならば理解するであろう。
【0025】
実施態様では、ネットワーク130は、パブリックネットワーク(例えば、インターネット)、プライベートネットワーク(例えば、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN))、有線ネットワーク(例えば、イーサネット(登録商標)ネットワーク)、無線ネットワーク(例えば、802.11ネットワークまたはWi-Fiネットワーク)、セルラネットワーク(例えば、ロングタームエボリューション(LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバコンピュータ、及び/またはそれらの組み合わせを含んでもよい。クライアントデバイス110は、パーソナルコンピュータ(PC)、ラップトップ、携帯電話、スマートフォン、タブレットコンピュータ、ネットブックコンピュータ、ネットワーク接続テレビなどのコンピューティングデバイスを含むことができる。クライアントデバイス110は、1人または複数のユーザに関連付けられ得、クライアントデバイス110は「ユーザデバイス」とも呼ばれ得る。
【0026】
図示の実施態様では、文書プラットフォーム120は、クライアントデバイス110が文書プラットフォーム120と連携して、表形式の構造を有する文書を含む様々な文書を管理するための電子文書(「文書」)アプリケーションを実行できるように、クライアントデバイス110とインタラクトしてもよい。例えば、文書アプリケーションはオンライン文書アプリケーションであり得る。いくつかの実施態様では、文書アプリケーションは、スプレッドシートアプリケーション(例えば、オンラインスプレッドシートアプリケーション)であり得る。代替的に、文書アプリケーションは、文書プラットフォーム120を使用せずに、本明細書に記載の機能を提供することもできる。さらに代替的に、文書プラットフォーム120は、(指定された文書アプリケーションではなく)ウェブブラウザ115とインタラクトして、例えば、文書を表示する、文書に関連するユーザ入力を受け取るなどができる。
【0027】
クライアントデバイス110のユーザの文書は、文書プラットフォーム120によって、例えば、データストア140に保存され得る。
図1では単一のデバイスとして示されているが、文書プラットフォーム120は、例えば、単一のコンピューティングデバイスとして、または複数の分散コンピューティングデバイスとして実装され得る。デバイスがサーバとして機能するか、クライアントデバイスとして機能するかは、実装されている特定のアプリケーションに依存し得ることが理解及び認識されるべきである。すなわち、コンピューティングデバイスがクライアントとして動作しているか、サーバとして動作しているかは、アプリケーション内でのコンピューティングデバイスの役割のコンテキストに依存し得る。クライアントとサーバの関係は、それぞれのデバイス上でプログラムが実行され、相互にクライアント-サーバの関係を有することによって生じる。
【0028】
上記で論じたように、クライアントデバイス110と文書プラットフォーム120とのインタラクションは、クライアントデバイス110で実行されるウェブブラウザ115を通じて実装され得る。「ウェブブラウザ」という用語は、ブラウザプログラムがスタンドアロンプログラムであるか、オペレーティングシステムの一部として含まれるブラウザプログラムなどの組み込みプログラムであるかに関係なく、ユーザがマークアップ文書(例えば、ウェブ文書)を閲覧することを可能にする任意のプログラムを指すことを意図する。いくつかの実施態様では、本明細書で説明する文書アプリケーションは、文書アプリケーションの一部がクライアントデバイス110及び文書プラットフォーム120の1つまたは複数で実行する分散ウェブアプリケーションとして実装される。より詳細には、クライアントデバイス110(複数可)は、文書プラットフォーム120から文書アプリケーションを要求し得る。これに応じて、文書プラットフォーム120は、文書アプリケーションの一部をクライアント110でのローカル実行用に送信し得る。したがって、文書アプリケーションは、文書プラットフォーム120及びクライアントデバイス110の1つまたは複数にわたって分散アプリケーションとして実行し得る。このように、クライアントデバイス110は、文書プラットフォーム120によってホストされる文書アプリケーションを使用するために、いずれの文書アプリケーションもローカルにインストールする必要がない場合がある。
【0029】
一般に、文書プラットフォーム120によって実行されるものとして実施態様で説明されている機能は、適切な場合、他の実施態様ではクライアントデバイス110でも実行できる。さらに、特定のコンポーネントに属する機能は、異なるコンポーネントまたは複数のコンポーネントが連携して動作することで実行できる。文書プラットフォーム120には、適切なアプリケーションプログラミングインターフェースを通じて他のシステムまたはデバイスに提供されるサービスとしてアクセスすることもできる。
【0030】
本開示の実施態様では、「ユーザ」は単一の個人として表され得る。ただし、本開示の他の実施態様では、「ユーザ」は、ユーザのセット及び/または自動化されたソースによって制御されるエンティティであることを含む。例えば、ソーシャルネットワーク内のコミュニティとして統合された個々のユーザのセットは、「ユーザ」と見なすことができる。別の例では、自動化されたコンシューマは、文書プラットフォーム120のトピックチャネルなどの自動化された取り込みパイプラインであり得る。
【0031】
本明細書で説明するように、文書は、アプリケーションの一部が複数のクライアントデバイス110で、及び文書プラットフォーム120で実行し、単一の文書で作業する複数のユーザ間の共同作業を提供する分散型ウェブアプリケーションとして実装され得る。例えば、複数のユーザが同時にまたは並行してそのような共同文書を編集し、各ユーザの編集をリアルタイムまたはほぼリアルタイム(例えば、数ミリ秒または数秒以内)で表示し得る。あるユーザが文書(例えば、文書のセル)を編集するときに、その編集は文書プラットフォーム120に送信され、次いで、スプレッドシートを編集または表示している他の共同作業ユーザに転送され得る。この目的のために、文書プラットフォーム120は、2人のユーザが特定のセルを同時に編集しようとするときなど、共同作業を行うユーザ間の競合を処理し得る。例えば、文書プラットフォーム120は、受信した最初の編集を受け入れるか、または何らかの方法で、優先順位の高いユーザの編集が優先順位の低いユーザの編集よりも優先されるように、共同作業ユーザに優先順位を付け得る。ユーザの編集が文書プラットフォーム120によって拒否された場合、文書プラットフォーム120は、編集が拒否されたことをユーザに通知するメッセージをユーザに返信し得る。このようにして、複数のユーザが1つのスプレッドシート上で、リアルタイム(またはほぼリアルタイム)で共同作業を行う可能性があり得る。いくつかの実施態様では、特定の文書を表示及び共同作業する当事者は、文書の最初の作成者によって指定され得る。例えば、文書の最初の作成者には、その作成者が他の共同作業者となり得る各人に対して権限を指定できるようになる「管理者」権限が与えられ得る。最初の作成者は、他の共同作業者が、スプレッドシートの編集、スプレッドシートの表示のみ、スプレッドシートの指定された部分の編集、共同作業者となり得る作業者リストへの追加ユーザの追加のうちの1つまたは複数を行う権限を有するように指定し得る。例えば、特定のユーザはスプレッドシートの特定の部分を編集でき得るが、他の指定されたセルまたはセルの領域は、そのユーザに対して「ロック」されたままになり、その結果、そのユーザはロックされたセルを表示することはできるが編集することはできない。いくつかの実施態様では、スプレッドシートは誰でも表示及び/または編集できる「パブリック」スプレッドシートとして指定され得る。
【0032】
さらに示されているように、文書プラットフォーム120は、文書(例えば、スプレッドシート)を作成するための文書作成マネージャ122を含んでもよい。文書作成マネージャ122は、クライアントデバイス110からの自然言語クエリを受信することに応じて、1つまたは複数の外部データソース150-1~150-Nからのデータを文書124にポピュレートすることによって、自然言語クエリに基づいて文書124を自律的に作成または生成できる。自然言語クエリは、テキストクエリ、音声クエリなどを含むことができる。例えば、自然言語クエリは、音声制御デジタルアシスタントによって受信される音声クエリであり得る。
【0033】
文書124の構築方法を決定するために、文書作成マネージャ122は、構築する文書124に関連する1つまたは複数の属性カテゴリを識別できる。各属性カテゴリにより、属性のタイプが定義される。例えば、1つまたは複数の属性カテゴリは、プライマリ属性を定義するプライマリ属性カテゴリを含むことができる。1つまたは複数の属性カテゴリは、プライマリ属性カテゴリに関連し、それぞれのセカンダリ属性を定義する1つまたは複数の追加の属性カテゴリまたはセカンダリ属性カテゴリをさらに含むことができる。セカンダリ属性カテゴリは、ユーザが関心を持ち得るプライマリ属性カテゴリに関連する属性に関係する。例えば、「米国のすべての州の州花のスプレッドシートを作成する」という自然言語クエリに関して、プライマリ属性カテゴリはコンテキストに基づいて「州」として識別され得、セカンダリ属性カテゴリはコンテキストに基づいて「州花」として識別され得る。
【0034】
文書作成マネージャ122は、さらに、自然言語クエリを、外部データソース150-1~150-Nの少なくとも1つにアクセスするためのデータアクセスクエリに変換できる。例えば、文書作成マネージャ122は、自然言語クエリを適切なコマンド形式(例えば、SQLコマンド形式)に変換して、外部データソース150-1~150-Nの少なくとも1つからデータを取得できる。自然言語クエリが音声クエリ(例えば、音声制御デジタルアシスタントによって受信されるもの)である場合、文書作成マネージャ122は、まず適切な音声テキスト変換技術を実行して、データアクセスクエリに変換するために音声をテキスト形式に変換できる。
【0035】
いくつかの実施態様では、外部データソース150-1~150-Nの少なくとも1つは、ナレッジグラフを含む。一般的に、ナレッジグラフは、エンティティ(例えば、オブジェクト、イベント、概念)のネットワーク、ならびに各エンティティ間の関係、及び各エンティティに関する属性またはプロパティに関する構造化データの包括的なコレクションを提供するグラフ構造のデータモデルである。ナレッジグラフは、それぞれのエンティティに対応するいくつかのノード、及びノード(エンティティ)の対間の関係を定義するいくつかのエッジを含み得る。ナレッジグラフは、無向グラフ、またはノード間の一方向の関係またはリンクを定義する有向グラフとして具体化できる。ナレッジグラフは推論機構を使用して新しいナレッジを導出することができる。別の例として、外部データソースはウェブサイトであり得る。例えば、ナレッジグラフにまだ存在しないエンティティの場合は、検索エンジンを使用してデータの外部データソースを検索することができる。
【0036】
外部データソース150-1~150-Nの少なくとも1つからデータが取得されると、文書作成マネージャ122は文書124を作成できる。例えば、文書124がスプレッドシートを含む場合、スプレッドシートは、各々がそれぞれの属性カテゴリに割り当てられた1つまたは複数の列を含むように作成することができ、スプレッドシートの行は、各々に属性カテゴリに対応する属性を示すそれぞれの値がポピュレートされた1つまたは複数のセルを含むことができる。プライマリ属性カテゴリはスプレッドシートの最初の列(例えば、列A)に割り当てることができ、各セカンダリ属性カテゴリ(存在する場合)はスプレッドシート内の対応する追加列に割り当てることができる。最初の行(例えば、行1)の各セルには、対応する列の属性カテゴリの名前をポピュレートでき、後続の行の各セルには、属性カテゴリのそれぞれの値をポピュレートできる。文書124が作成された後、ユーザはクライアントデバイス110を介して文書124の提示を修正できる。例えば、文書124がスプレッドシートである場合、ユーザは適切なスプレッドシートツールを使用してデータを再配置または操作できる。このスプレッドシートの例については、
図2を参照して以下でさらに詳しく説明する。
【0037】
各セカンダリ属性カテゴリは、以前の自然言語クエリまたは検索履歴の履歴分析に基づいて選択され、プライマリ属性カテゴリに関連する最も人気のある属性カテゴリを識別できる。例えば、文書作成マネージャ122は、他のユーザが過去に質問したプライマリ属性カテゴリに関連する情報を識別して、現在のユーザがどのような情報に関心を持ち得るのかを判定できる。これを使用すると、ユーザが直接要求していないが、検索履歴に基づいてユーザが関心を持ち得る情報を含む文書124を作成できる。
【0038】
例示的に、自然言語クエリ「史上最も勝利した大学バスケットボールのコーチのスプレッドシートを作成する」に関して、文書作成マネージャ122は、プライマリ属性カテゴリ「コーチ」に関連する少なくとも1つの人気属性カテゴリとして「勝利」を識別できる。さらに、文書作成マネージャ122は、文書124に含めることができる別の一般的な属性カテゴリとして「勝率」を識別できる。これは、他のユーザが以前に「どの大学バスケットボールのコーチの勝率が最も高いか」などの自然言語クエリを提供し、そのため、文書作成マネージャ122は、この情報は特に要求されていないものの、現在のユーザが関心を持ち得ると判定したためであり得る。
【0039】
文書作成マネージャ122は、1つまたは複数の追加機能を提供できる。いくつかの実施態様では、文書作成マネージャ122は、外部データソースへのアクセスバック(例えば、外部データソースへのリンク)をさらに提供できる。これにより、ユーザは文書124にポピュレートされたデータの詳細を調べることができ、ユーザがデータの信頼性を検証する方法が提供され得る。例えば、ユーザが外部データソースからのデータの正確性を懸念している場合、ユーザは(例えば、提供されたリンクなどを介して)外部データソース自体にアクセスして、データの正確性を信頼するかどうかを判定できる。
【0040】
いくつかの実施態様では、文書作成マネージャ122は、データ信頼性機能をさらに実装できる。例えば、データ信頼性機能は、特定のソースから取得されたデータが特定の自然言語クエリに対する正確な応答であるという信頼性に関連付けることができる。データ信頼性機能では、信頼性のパーセンテージ、信頼性の範囲に対応するシンボル(例えば、色)(例えば、信頼性が90%を超える場合は緑の円、信頼性が50%未満の場合は赤の円)など、データの視覚的な信頼性インジケータを利用できる。ユーザは、対応するセルにデータをポピュレートするために超過する必要があるカスタマイズ可能な信頼性しきい値を設定できる。例えば、いくつかの自然言語クエリでは、ユーザは信頼性の高いデータのみを使用するようにしたい(例えば、信頼性しきい値を90%に設定する)場合があり、いくつかの他の自然言語クエリでは、ユーザは信頼性の低いデータに対してより大きな許容範囲(例えば、信頼性しきい値を設定しない)を有する場合がある。
【0041】
いくつかの実施態様では、文書作成マネージャ122はさらに、非構造化データソース及び/または構造化データソースを活用するための自然言語クエリの意図を識別できる。例えば、スプレッドシートに関して、文書作成マネージャ122は、列カテゴリとスプレッドシートの1つまたは複数の属性を組み合わせて、自然言語クエリの意図を識別できる。
【0042】
いくつかの実施態様では、文書作成マネージャ122は多次元データに対処できる。例えば、文書124が米国の都市のリストを含むスプレッドシートであると仮定する。スプレッドシートの列の1つに「人口」があり、ユーザは複数の都市の人口に基づいて作成されたグラフ及び計算を表示することに関心を持ち得る。「人口」列の各セルは、一次元の値(例えば、最新の人口)または多次元の値(例えば、各国勢調査測定からの人口など、時間の経過に伴う人口の配列)であり得る。データはプログラムによってそれぞれのセルにポピュレートされるため、文書作成マネージャ122はグラフ作成及び/または計算のために時系列の人口データを取得できる。
【0043】
いくつかの実施態様では、文書作成マネージャ122は、自然言語クエリに応じて取得されたデータのデータタイプを識別できる。例えば、データは、GPS座標、日付、単一の整数値、整数値の配列などの特定のデータタイプを有し得る。文書作成マネージャ122は、データ操作(例えば、グラフの作成、計算)を支援するために使用できるデータタイプに関するメタデータを維持できる。
【0044】
いくつかの実施態様では、文書作成マネージャ122は文書の改良を提供することができる。文書の改良により、ユーザは追加の自然言語クエリを使用して文書124を拡張できるようになる。文書作成マネージャ122によって自律的に作成されたスプレッドシートの場合、文書の改良を使用してスプレッドシートの列を拡張できる。例えば、上記の州花のスプレッドシートに関して、ユーザがスプレッドシートに州鳥を追加したい場合、ユーザは追加の自然言語クエリを提供して、州鳥の情報の列を挿入する(例えば、「スプレッドシートに州鳥を追加する」)ことができる。
【0045】
いくつかの実施態様では、文書作成マネージャ122は、文書124にポピュレートする属性を選択するためにトレンドまたはバイラリティ機能を組み込むことができる。例えば、文書作成マネージャ122は、外部データソースを使用して、文書124に関して新たに関連するデータを識別し、その新たに関連するデータを属性として文書124にポピュレートすることができる。さらに、文書作成マネージャ122は、新たに関連するデータを検出し、その新たに関連するデータを文書124内に組み込むための提案をユーザに提供することができる。
【0046】
いくつかの実施態様では、文書作成マネージャ122は、1つまたは複数の自然言語クエリに基づいて文書124の作成を推奨または提案することができる。ユーザの質問行動の分析に基づいて推奨を行うことができる。例えば、ユーザが「テキサス州の州花は何ですか」という自然言語クエリを入力したと仮定する。次いで、ユーザは、米国の他の2つの州の州花を尋ねる2つの同様の自然言語クエリを続行する。文書作成マネージャ122は、米国のすべての州の州花に関する情報を含む文書を生成するための提案をユーザに提供することができる。ユーザが承諾した場合、ユーザが文書124の作成を直接要求していなくても、データ管理マネージャ122はユーザのために文書124を構築できる。
【0047】
自律的な文書作成では、文書124は理論的には大量のデータ(例えば、スプレッドシート内の多数の列及び/または行)を有し得る。これにより、リソースの消費量の増加、データ取得のためのコストの増加などが生じ得る。これに対処するために、いくつかの実施態様では、文書作成マネージャ122は、文書124のサイズに関して設定可能なサイズ制限を可能にし得る。例えば、文書作成マネージャ122は、文書124に含まれるべき行数及び/または列数を定義するユーザ入力に基づいて、文書124のサイズを調整できる。別の例として、文書作成マネージャ122は、文書124が大量のデータ(例えば、しきい値データ量を超えるデータ量)を有することを検出し、大量のデータがあることをユーザに通知することができる。通知は、文書124に含めるデータの量をユーザが定義するように求める要求を含むことができる。追加的に、または代替的に、文書124の最大サイズは、ユーザ定義の設定またはしきい値にすることができる。したがって、文書作成マネージャ122は、計算リソースの効率を向上させる機能を実装できる。
【0048】
上記の説明に加えて、本明細書に記載のシステム、プログラム、または機能が、ユーザ情報(例えば、ユーザのソーシャルネットワーク、ソーシャルアクション、またはアクティビティ、職業、ユーザの好み、またはユーザの現在地に関する情報)の収集を可能にするかどうか、及びいつ可能にするか、ならびに、サーバからユーザにコンテンツまたは通信が送信されるかどうかについて、ユーザが選択を行うことを可能にする制御がユーザに提供され得る。さらに、特定のデータは、保存または使用される前に、個人を特定できる情報が削除されるように、1つまたは複数の方法で処理される場合がある。例えば、ユーザのアイデンティティは、ユーザ個人を特定できる情報を特定できないように処理され得るか、または、位置情報が取得される(市、郵便番号、または州レベルなど)場合、ユーザの特定の場所を特定することができないように、ユーザの地理的位置が一般化され得る。したがって、ユーザは、ユーザについてどのような情報が収集されるか、その情報がどのように使用されるか、及びユーザにどのような情報が提供されるかを制御し得る。
【0049】
図2は、本開示の実施例による、例示的なスプレッドシート200を示す図である。スプレッドシート200は、自然言語クエリ「史上最も勝利した大学バスケットボールのコーチのスプレッドシートを作成する」に応じて、文書作成マネージャ(例えば、
図1の文書作成マネージャ122)を使用して生成されているものと仮定する。
図2にはスプレッドシートが示されているが、そのような例は限定的なものと見なされるべきではなく、表形式の構造を有する任意の適切な文書が考慮される。
【0050】
図に示すように、スプレッドシート200は、複数の列210A~210E、及び複数の行220-1~220-4を含む。5列及び4行が表示されているが、列数及び行数は限定として考えられるものではない。行220-1は、対応する列のセル内に挿入されるデータのタイプを示す説明行である。
【0051】
列210Aは、プライマリ属性カテゴリ「コーチ」に割り当てられる。行220-1及び列210Aで定義されたアドレスを有するセルにテキスト「コーチ」が入力され、列210Aの他のセル(例えば、列210A及び行220-2~220-4で定義されたアドレスを有するそれぞれのセル)に保持されているデータがコーチの名前に対応していることを示す。例えば、行220-2及び列210Aで定義されたアドレスを有するセルには、コーチ名「John Doe」が入力され、行220-3及び列210Aで定義されたアドレスを有するセルには、コーチ名「Jane Smith」が入力される。したがって、列210Aは「コーチ」列として定義され、それぞれのコーチ名を示す値を有するいくつかのセルを含む。
【0052】
列210Bは、セカンダリ属性カテゴリ「勝利」に割り当てられる。行220-1及び列210Bで定義されたアドレスを有するセルにテキスト「勝利」が入力され、列210Bの他のセル(例えば、列210B及び行220-2~220-4で定義されたアドレスを有するそれぞれのセル)に保持されているデータが、それぞれのコーチの勝利数に対応していることを示す。例えば、行220-2及び列210Bで定義されたアドレスを有するセルには、John Doeの合計勝利数が1132であることを示す値「1132」が入力され、行220-3及び列210Bで定義されたアドレスを有するセルには、Jane Smithの合計勝利数が946であることを示す値「946」が入力される。したがって、列210Bは「勝利」列として定義され、列210Aにリストされているコーチのそれぞれの勝利を示す値を有する複数のセルを含む。
【0053】
列210Cは、セカンダリ属性カテゴリ「敗北」に割り当てられる。行220-1及び列210Cで定義されたアドレスを有するセルにテキスト「敗北」が入力され、列210Cの他のセル(例えば、列210C及び行220-2~220-4で定義されたアドレスを有するそれぞれのセル)に保持されているデータが、それぞれのコーチの敗北数に対応していることを示す。例えば、行220-2及び列210Cで定義されたアドレスを有するセルには、John Doeの合計敗北数が344であることを示す値「344」が入力され、行220-3及び列210Cで定義されたアドレスを有するセルには、Jane Smithの合計敗北数が385であることを示す値「385」が入力される。したがって、列210Cは「敗北」列として定義され、列210Aにリストされているコーチのそれぞれの勝利を示す値を有する複数のセルを含む。
【0054】
列210Dは、セカンダリ属性カテゴリ「勝率」に割り当てられる。行220-1及び列210Dで定義されたアドレスを有するセルにテキスト「勝率」が入力され、列210Dの他のセル(例えば、列210D及び行220-2~220-4で定義されたアドレスを有するそれぞれのセル)に保持されているデータが、それぞれのコーチの勝率に対応していることを示す。例えば、行220-2及び列210Dで定義されたアドレスを有するセルには、John Doeの勝率が76.7であることを示す値「76.7」が入力され、行220-3及び列210Dで定義されたアドレスを有するセルには、Jane Smithの勝率が71.1であることを示す値「71.71」が入力される。したがって、列210Dは「勝率」列として定義され、列210Aにリストされているコーチのそれぞれの勝率を示す値を有する複数のセルを含む。
【0055】
列210Eは、セカンダリ属性カテゴリ「シーズン」に割り当てられる。行220-1及び列210Eで定義されたアドレスを有するセルにテキスト「シーズン」が入力され、列210Eの他のセル(例えば、列210E及び行220-2~220-4で定義されたアドレスを有するそれぞれのセル)に保持されているデータが、それぞれのコーチがコーチを務めたシーズンの数に対応することを示す。例えば、行220-2及び列210Eで定義されたアドレスを有するセルには、John Doeが44シーズンコーチを務めたことを示す値「44」が入力され、行220-3及び列210Dで定義されたアドレスを有するセルには、Jane Smithが43シーズンコーチを務めたことを示す値「43」が入力される。したがって、列210Eは「シーズン」列として定義され、列210Aにリストされているコーチのそれぞれがコーチを務めたシーズンの数を示す値を有する複数のセルを含む。
【0056】
要求に応じて、スプレッドシート200に追加データを付加できる。例えば、各コーチの生年月日に関する情報を追加するには、ユーザは適切な自然言語クエリ(例えば、「各コーチの生年月日をスプレッドシートに追加する」)を提供できる。クエリを受信することに応じて、現在コーチを務めている列210Aにリストされている各コーチの生年月日を示す「生年月日」列をスプレッドシート200に追加できる。
【0057】
図3は、本開示の実施態様による、自律的な文書作成方法300のフロー図を示す。方法300は、ハードウェア(回路、専用ロジックなど)、ソフトウェア(例えば、処理デバイス上で実行される命令)、またはそれらの組み合わせを含み得る処理ロジックによって実行され得る。一実施態様では、方法300の一部またはすべての動作は、
図1の文書作成マネージャ122によって実行され得る。
【0058】
ブロック310において、処理ロジックは、表形式の構造を有する文書を作成するための要求に対応する自然言語クエリを受信する。いくつかの実施態様では、文書は、複数の列のセル及び複数の行のセルを含むスプレッドシートである。自然言語クエリは、GUIを介してユーザから受信されるテキスト自然言語クエリ、(例えば、音声制御デジタルアシスタントを介して)ユーザから受信される音声自然言語クエリなどのうちの少なくとも1つを含むことができる。
【0059】
ブロック320において、処理ロジックは、自然言語クエリから、文書に関連する1つまたは複数の属性カテゴリを識別する。各属性カテゴリは属性のタイプに対応しており、文書の各セルには属性を示すデータをポピュレートできる。いくつかの実施態様では、1つまたは複数の属性カテゴリは、プライマリ属性カテゴリ及び1つまたは複数のセカンダリ属性カテゴリを含む。プライマリ属性カテゴリ及び1つまたは複数のセカンダリ属性カテゴリは、任意の適切な自然言語処理技術を使用した自然言語クエリのセマンティック解析に基づいて識別できる。
【0060】
ブロック330において、処理ロジックは自然言語クエリを、少なくとも1つの外部データソースにアクセスするためのデータアクセスクエリに変換する。例えば、処理ロジックは、自然言語クエリを、少なくとも1つの外部データソースから、データを取得するための適切なコマンド形式(例えば、SQLコマンド形式)に変換できる。自然言語クエリが音声クエリ(例えば、音声制御デジタルアシスタントによって受信されるもの)である場合、文書122は、まず適切な音声テキスト変換技術を実行して、データアクセスクエリに変換するために音声をテキスト形式に変換する。いくつかの実施態様では、少なくとも1つの外部データソースはナレッジグラフを含む。クエリ変換は、セマンティックな表現、言語理解、質問応答に関連する機能を提供するクエリ変換機構を使用して実行できる。これらの機能を活用すると、自然言語クエリの意図を理解し、少なくとも1つの外部データソース内でデータを検索するために使用されるデータアクセスクエリに変換できる。さらに、クエリ変換機構は、以前の自然言語クエリ変換及び/または検索の結果(例えば、以前のウェブ検索クエリ、検索結果、関連する検索結果のユーザ選択)に基づいて、自然言語クエリの意図を理解する能力を向上させることができる。
【0061】
ブロック340において、処理ロジックは、少なくとも1つの外部データソースから、1つまたは複数の属性カテゴリに対応するいくつかのデータ項目を取得し、ブロック350において、文書の各セルにそれぞれのデータ項目をポピュレートして文書を生成する。例えば、文書がスプレッドシートの場合、スプレッドシートの第1の列をプライマリ属性カテゴリに割り当てることができ、第1の列の第1のセルにはプライマリ属性カテゴリの識別子がポピュレートされ、第1の列の他のセルにはプライマリ属性カテゴリに関連するデータ項目に対応する値がポピュレートされる。スプレッドシートの第2の列は、セカンダリ属性カテゴリの1つに割り当てることができ、第2の列の第1のセルにはセカンダリ属性カテゴリの識別子がポピュレートされ、第2の列の他のセルにはセカンダリ属性カテゴリに関連するデータ項目に対応する値がポピュレートされる。第2の列のセルの値は、同じ行内の第1の列のセルの値に関連している。
【0062】
例えば、少なくとも1つの外部データソースは、ナレッジグラフなどのプライマリデータソースを含むことができる。ただし、プライマリデータソースはクエリを満たすための特定の情報をまだ含んでいない場合もある。例えば、生成される文書が地元のレストランに関するデータ項目を含む場合、文書に含まれる少なくとも1つのレストランの営業時間が、プライマリデータソース(例えば、ナレッジグラフ)に現在存在しない可能性がある。そのような場合、少なくとも1つの外部データソースは、プライマリデータソースに欠けている特定の情報を補足するセカンダリデータソースをさらに含むことができる。例えば、セカンダリデータソースはウェブサイトであり得、検索エンジン内のクエリを利用して識別され得る。
【0063】
いくつかの実施態様では、設定可能なサイズ制限に従って文書を生成できる。例えば、ユーザは文書をどのくらいの大きさ(例えば、スプレッドシートの行数及び/または列数)にするかに関するヒントを提供できる。別の例として、処理ロジックは、文書が大量のデータ(例えば、しきい値データ量を超えるデータ量)を有することを検出し、大量のデータがあることをユーザに通知することができる。通知は、文書に含めるデータの量をユーザが定義するように求める要求を含むことができる。追加的に、または代替的に、文書の最大サイズは、ユーザ定義の設定またはしきい値にすることができる。ブロック310~340に関する詳細は、
図1~
図2を参照して上記で説明されている。
【0064】
図4は、本開示の実施態様による、文書を自律的に改良する方法400のフロー図を示す。方法400は、ハードウェア(回路、専用ロジックなど)、ソフトウェア(例えば、処理デバイス上で実行される命令)、またはそれらの組み合わせを含み得る処理ロジックによって実行され得る。一実施態様では、方法400の一部またはすべての動作は、
図1の文書作成マネージャ122によって実行され得る。
【0065】
ブロック410において、処理ロジックは、少なくとも1つの外部データソースから、1つまたは複数の追加データ項目を取得し、表形式の構造を有する文書に統合する。例えば、文書は、複数の列のセル及び複数の行のセルを含むスプレッドシートであり得る。文書は自然言語クエリを受信する前に作成されているものと仮定する。いくつかの実施態様では、文書は、
図3を参照して上で説明した方法に従って自律的に作成された。いくつかの実施態様では、文書の少なくとも一部はユーザによって手動で作成された。
【0066】
いくつかの実施態様では、追加の自然言語クエリを受信することに応じて、1つまたは複数の追加データ項目が取得される。追加の自然言語クエリは、GUIを介してユーザから受信されるテキスト自然言語クエリ、(例えば、音声制御デジタルアシスタントを介して)ユーザから受信される音声自然言語クエリなどのうちの少なくとも1つを含むことができる。例えば、処理ロジックは、追加の自然言語クエリから、文書に関連する1つまたは複数のセカンダリ属性カテゴリを識別し、追加の自然言語クエリを少なくとも1つの外部データソースにアクセスするためのデータアクセスクエリに変換し、
図3のブロック320~340を参照して上記で説明したプロセスと同様に、1つまたは複数のセカンダリ属性カテゴリに対応する少なくとも1つの外部データソースから、1つまたは複数の追加データ項目を取得できる。
【0067】
いくつかの実施態様では、1つまたは複数の追加データ項目は、少なくとも1つの外部データソースから、文書に関して新たに関連するデータとして識別される。例えば、新たに関連するデータは、現在文書内に存在しないトレンド情報またはバイラル情報を含むことができる。
【0068】
ブロック420において、処理ロジックは1つまたは複数の追加データ項目に基づいて文書を更新する。文書を更新することは、1つまたは複数の追加データ項目に基づいて文書の1つまたは複数の既存のセルの1つまたは複数の属性を更新すること、新たに関連するデータに基づいて1つまたは複数の属性がポピュレートされた1つまたは複数のセルを追加することなどを含むことができる。
【0069】
例えば、文書がスプレッドシートを含む場合、文書を更新することは、文書に1つまたは複数の追加列を付加することと、1つまたは複数の追加列の1つまたは複数のセルに、それぞれ特定の追加データ項目に対応する1つまたは複数のそれぞれの属性をポピュレートすることと、を含むことができる。
【0070】
いくつかの実施態様では、1つまたは複数の属性カテゴリはそれぞれ、文書のプライマリ属性カテゴリに対する追加のセカンダリ属性カテゴリである。例えば、文書がスプレッドシートを含む場合、プライマリ属性カテゴリをスプレッドシートの第1の列に割り当てることができる。スプレッドシートの追加列は、追加のセカンダリ属性カテゴリの1つに割り当てることができ、追加列の第1のセルには追加のセカンダリ属性カテゴリの識別子がポピュレートされ、追加列の他のセルには追加のセカンダリ属性カテゴリに関連するデータ項目に対応する値がポピュレートされる。追加列のセルの値は、同じ行内の第1の列のセルの値に関連する。ブロック410及び420に関するさらなる詳細は、
図1~
図3を参照して上記で説明されている。
【0071】
図5は、本開示の実施態様による、推奨文書を自律的に作成する方法500のフロー図を示す。方法500は、ハードウェア(回路、専用ロジックなど)、ソフトウェア(例えば、処理デバイス上で実行される命令)、またはそれらの組み合わせを含み得る処理ロジックによって実行され得る。一実施態様では、方法500の一部またはすべての動作は、
図1の文書作成マネージャ122によって実行され得る。
【0072】
ブロック510において、処理ロジックはユーザからいくつかの自然言語クエリを受信する。例えば、自然言語クエリは、少なくとも第1の自然言語クエリ及び第2の自然言語クエリを含むことができる。各自然言語クエリは、GUIを介してユーザから受信されるテキスト自然言語クエリ、(例えば、音声制御デジタルアシスタントを介して)ユーザから受信される音声自然言語クエリなどのうちの少なくとも1つを含むことができる。
【0073】
ブロック520において、処理ロジックは、自然言語クエリが類似のトピックに関連付けられていることを判定する。自然言語クエリが類似のトピックに関連付けられていることを判定することは、少なくとも第1及び第2の自然言語クエリが類似の情報要求に関連していると識別することを含み得る。例えば、第1の自然言語クエリは「テキサス州の州花は何ですか」、そして第2の自然言語クエリは「ニューヨーク州の州花は何ですか」であり得る。
【0074】
ブロック530において、処理ロジックは、自然言語クエリに基づいて表形式の構造を有する文書を作成するようにユーザに推奨を送信する。例えば、第1の自然言語クエリが「テキサス州の州花は何ですか」であり、第2の自然言語クエリが「ニューヨーク州の州花は何ですか」である場合、処理ロジックは、米国のすべての州の州花に関する情報を含む文書を作成するための提案を生成できる。
【0075】
ブロック540において、処理ロジックはユーザから文書を作成するインジケーションを受信する。処理ロジックがユーザから文書を作成するインジケーションを受け取らなかった場合(例えば、ユーザが推奨に対して否定的な応答を行った場合)、処理ロジックは文書を作成せず、プロセスは終了する。
【0076】
ブロック550において、処理ロジックが文書を生成する。文書は、
図3を参照して上記で説明した方法と同様の方法で生成することができる。例えば、処理ロジックは、自然言語クエリから識別された属性カテゴリに対応する少なくとも1つの外部データソースから、データ項目を取得し、文書の各セルにそれぞれのデータ項目をポピュレートできる。ブロック510~550に関するさらなる詳細は、
図1~
図4を参照して上記で説明されている。
【0077】
図6は、本開示の実施態様による、例示的なコンピュータシステムを示すブロック図である。コンピュータシステム600は、
図1の文書プラットフォーム120またはクライアントデバイス110であり得る。マシンは、エンドポイントサーバネットワーク環境ではサーバまたはエンドポイントマシンとして動作し得るか、またはピアツーピア(または分散)ネットワーク環境ではピアマシンとして動作し得る。マシンは、テレビ、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチまたはブリッジ、またはそのマシンによって実行される動作を指定する1セットの命令を(順次的に、またはそれ以外の方法で)実行できる任意のマシンであり得る。さらに、単一のマシンのみが例示されるが、用語「マシン」には、本明細書で論じる方法論のうちの任意の1つまたは複数を実行するために、1セット(または複数のセット)の命令を個々でまたは共同して実行するマシンの任意の集合も含まれるものとする。
【0078】
例示のコンピュータシステム600は、処理デバイス(プロセッサ)602、メインメモリ604(例えば、読み取り専用メモリ(ROM)、フラッシュメモリ、同期DRAM(SDRAM)、ダブルデータレート(DDR SDRAM)、またはDRAM(RDRAM(登録商標))などのダイナミックランダムアクセスメモリ(DRAM)など)、スタティックメモリ606(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、及びデータ記憶デバイス618を含み、これらはバス640を介して相互に通信する。
【0079】
プロセッサ(処理デバイス)602は、マイクロプロセッサ、中央処理装置などのような1つまたは複数の汎用処理デバイスを表す。より具体的には、プロセッサ602は、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実装するプロセッサ、あるいは命令セットの組み合わせを実装するプロセッサであり得る。プロセッサ602はまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなどの1つまたは複数の専用処理デバイスであり得る。プロセッサ602は、本明細書で論じる動作を実行するための命令605(例えば、チャンネルラインナップの視聴者数を予測するための命令)を実行するように構成されている。
【0080】
コンピュータシステム600は、ネットワークインターフェースデバイス608をさらに含むことができる。コンピュータシステム600はまた、ビデオ表示ユニット610(例えば、液晶ディスプレイ(LCD)またはブラウン管(CRT))、入力デバイス612(例えば、キーボード、及び英数字キーボード、モーションセンサ入力デバイス、タッチスクリーン)、カーソル制御デバイス614(例えば、マウス)、及び信号生成デバイス620(例えば、スピーカ)を含むことができる。
【0081】
データ記憶デバイス618は、本明細書で説明した方法論または機能の1つまたは複数を具体化する(例えば、最適化されたエンコーダパラメータ設定を取得するための)命令605の1つまたは複数のセットが記憶された非一時的な機械可読記憶媒体624(コンピュータ可読記憶媒体でもある)を含むことができる。命令は、コンピュータシステム600による実行中、完全にまたは少なくとも部分的にメインメモリ604内及び/またはプロセッサ602内に常駐し得、メインメモリ604及びプロセッサ602はまた、機械可読記憶媒体を構成する。命令は、ネットワークインターフェースデバイス608を介してネットワーク630を介してさらに送信または受信され得る。
【0082】
一実施態様では、命令605は、口頭の声明を投票質問として指定するための命令を含む。コンピュータ可読記憶媒体624(機械可読記憶媒体)は、例示的な実施態様では単一の媒体として示されているが、用語「コンピュータ可読記憶媒体」及び「機械可読記憶媒体」は、1つまたは複数の命令のセットを記憶する単一の媒体または複数の媒体(例えば、集中型または分散型のデータベース、及び/または関連するキャッシュ及びサーバ)を含むものと解釈されるべきである。用語「コンピュータ可読記憶媒体」及び「機械可読記憶媒体」はまた、マシンによって実行される命令のセットを記憶、符号化、または搬送することができ、マシンに本開示の方法論の1つまたは複数を実行させる任意の媒体も含むものと解釈される。したがって、用語「コンピュータ可読記憶媒体」及び「機械可読記憶媒体」は、限定されないが、ソリッドステートメモリ、光学媒体、磁気媒体を含むものとする。
【0083】
本明細書全体を通して「1つの実施態様(one implementation)」または「一実施態様(an implementation)」への言及は、実施態様に関連して説明されている特定の特徴、構造、または特性が少なくとも1つの実施態様に含まれていることを意味する。したがって、本明細書の様々な箇所で「1つの実施態様では(in one implementation)」または「一実施態様では(in an implementation)」という語句が現れるが、状況に応じて、同じ実施態様を指し得るが、必ずしもそうではない。さらに、特定の特徴、構造、または特性は、1つまたは複数の実施態様において任意の適切な方法で組み合わせてもよい。
【0084】
用語「含む(includes)」、「含む(including)」、「有する(has)」、「含有する(contains)」、それらの変形、及びその他の類似の単語が詳細な説明または特許請求の範囲のいずれかで使用される限りにおいて、これらの用語は、追加の要素またはその他の要素を排除することなく、オープントランジションワードとしての「含む(comprising)」という用語と同様に包括的であることが意図されている。
【0085】
本出願で使用される用語「コンポーネント」、「モジュール」、「システム」などは、一般に、コンピュータ関連のエンティティ、ハードウェア(例えば、回路)、ソフトウェアのいずれか、ハードウェアとソフトウェアの組み合わせ、または1つまたは複数の特定の機能を備えた動作マシンに関連するエンティティを指すことを意図している。例えば、コンポーネントは、限定されないが、プロセッサ(例えば、デジタル信号プロセッサ)上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、及び/またはコンピュータであってもよい。例示として、コントローラ上で実行されるアプリケーション及びコントローラの両方がコンポーネントであり得る。1つまたは複数のコンポーネントは、プロセス及び/または実行スレッド内に常駐し得、コンポーネントは、1つのコンピュータ上にローカライズされ得るか、及び/または2つ以上のコンピュータ間に分散され得る。さらに、「デバイス」は、特別に設計されたハードウェア、ハードウェアが特定の機能(関心点及び/または記述子の生成)を実行できるようにするソフトウェアの実行によって特化された汎用ハードウェア、コンピュータ可読媒体上のソフトウェア、またはそれらの組み合わせの形態で提供され得る。
【0086】
前述のシステム、回路、モジュールなどは、複数のコンポーネント及び/またはブロック間のインタラクトに関して説明されている。そのようなシステム、回路、コンポーネント、ブロックなどには、それらのコンポーネントまたは指定されたサブコンポーネント、指定されたコンポーネントまたはサブコンポーネントの一部、及び/または追加のコンポーネントが含まれ得、前述の様々な順列及び組み合わせに従うことが理解されよう。サブコンポーネントは、親コンポーネント(階層型)に含まれるのではなく、他のコンポーネントと通信可能に結合されたコンポーネントとして実装することもできる。さらに、1つまたは複数のコンポーネントは、統合機能を提供する単一のコンポーネントに組み合わされ得るか、またはいくつかの別個のサブコンポーネントに分割され得ること、及び管理層などの任意の1つまたは複数の中間層が、統合機能を提供するために、そのようなサブコンポーネントと通信可能に結合するために提供され得ることに留意されたい。本明細書に記載の任意のコンポーネントはまた、本明細書に具体的に記載されていないが、当業者には既知の1つまたは複数の他のコンポーネントとインタラクトし得る。
【0087】
さらに、「例」または「例示的」という単語は、例、実例、または例示として機能することを意味するために本明細書で使用される。本明細書で「例示的」として記載された任意の態様または設計は、必ずしも他の態様または設計よりも好ましい、または有利であると解釈されるべきではない。むしろ、「例」または「例示的」という単語の使用は、概念を具象的な様式で提示することを意図したものである。本出願で使用されるように、用語「または」は、排他的な「または」ではなく包含的な「または」を意味することが意図される。つまり、別様に指定されない限り、または文脈から明らかでない限り、「XはAまたはBを採用する」とは、自然な包括的置換のいずれかを意味することが意図される。すなわち、XがAを使用する場合、XがBを使用する場合、または、XがA及びBの両方を使用する場合、前述のいずれの場合でも、「XはAまたはBを使用する」が満たされる。さらに、本出願及び添付の請求項で使用される冠詞「a」及び「an」は、特に指定がない限り、または文脈から単数形を指すことが明らかでない限り、一般に「1つまたは複数」を意味すると解釈されるべきである。
【0088】
最後に、本明細書に記載の実施態様は、ユーザ及び/またはユーザの活動を記述するデータの収集を含む。一実施態様では、そのようなデータは、ユーザがこのデータの収集に同意した場合にのみ収集される。いくつかの実施態様では、ユーザはデータ収集を明示的に許可するように求められる。さらに、ユーザはそのようなデータ収集活動への参加をオプトインまたはオプトアウトし得る。一実施態様では、収集されたデータは、収集されたデータからユーザの身元を特定することができないように、任意の統計パターンを取得するための任意の分析を実行する前に匿名化される。
【国際調査報告】