(57)【要約】  いくつかの実装形態は、ユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介してユーザによって作成された自由形式自然言語入力に基づいてユーザに対するパーソナルデータベースエントリを生成することに向けられる。生成されたパーソナルデータベースエントリは、自然言語入力の語を含み、自然言語入力の語に基づいて、および/または自然言語入力を受信することに関連付けられたコンテキスト特徴に基づいて決定される記述メタデータを含んでもよい。いくつかの実装形態は、ユーザの1つまたは複数のパーソナルデータベースエントリに基づいてユーザのさらなる自由形式自然言語入力に応答する出力を生成することに向けられる。たとえば、さらなる自然言語入力に応答する1つまたは複数のエントリは、それらのエントリのコンテンツをさらなる入力に基づいて決定された検索パラメータと照合することに基づいて識別されることができる。いくつかの実装形態は、改善された自動化パーソナルアシスタントに向けられている。
2019519037.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実行される方法であって、
第1の自然言語入力を受信するステップであって、前記第1の自然言語入力はユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介して前記ユーザによって作成される自由形式入力である、ステップと、
1つまたは複数のコンピュータ可読媒体に記憶された前記ユーザのパーソナルデータベース内の前記第1の自然言語入力に対するエントリを生成するステップであって、
前記エントリ内に、前記第1の自然言語入力の前記語のうちの1つまたは複数の所与の語または前記所与の語の識別子を記憶するステップと、
記述メタデータを、
前記第1の自然言語入力の前記語のうちの1つまたは複数、および
前記第1の自然言語入力を受信するステップに関連付けられた1つまたは複数のコンテキスト特徴
のうちの少なくとも1つに基づいて生成するステップと、
前記記述メタデータを前記エントリに記憶するステップと
を含む、ステップと、
前記第1の自然言語入力を受け取った後に第2の自然言語入力を受信するステップであって、前記第2の自然言語入力は前記ユーザインターフェース入力デバイスまたは前記ユーザの追加のコンピューティングデバイスの追加のユーザインターフェース入力デバイスを介して前記ユーザによって作成される自由形式入力である、ステップと、
前記第2の自然言語入力に基づいて少なくとも1つの検索パラメータを決定するステップと、
前記検索パラメータに基づいて前記パーソナルデータベースを検索するステップと、
前記検索するステップに基づいて、前記エントリが前記第2の自然言語入力に応答すると判定するステップであって、少なくとも一部が前記検索パラメータと前記記述メタデータのうちの少なくともいくつかとの一致に基づく、ステップと、
前記エントリに基づく1つまたは複数の自然言語出力語を含む自然言語出力を生成するステップと、
前記第2の自然言語入力に応答して、前記コンピューティングデバイスまたは前記追加のコンピューティングデバイスのユーザインターフェース出力デバイスを介して前記ユーザに提示するための前記自然言語出力を提供するステップと
を含む、方法。
【請求項２】
前記記述メタデータを生成するステップは、前記第1の自然言語入力の前記所与の語と、前記第1の自然言語入力を受信するステップに関連付けられた前記1つまたは複数のコンテキスト特徴との両方に基づく、請求項1に記載の方法。
【請求項３】
前記記述メタデータを生成するステップは、前記第1の自然言語入力を受信するステップに関連付けられた1つまたは複数のコンテキスト特徴に基づき、前記1つまたは複数のコンテキスト特徴に基づいて前記記述メタデータを生成するステップは、
前記記述メタデータの時間メタデータを生成するステップであって、前記時間メタデータは前記第1の自然言語入力が受信された日付または時刻を指示する、ステップを含む、請求項1または2に記載の方法。
【請求項４】
前記少なくとも1つの検索パラメータは時間検索パラメータであり、前記エントリが前記第2の自然言語入力に応答すると判定するステップは、前記時間検索パラメータを前記時間メタデータと照合するステップを含む、請求項3に記載の方法。
【請求項５】
追加のエントリが前記第2の自然言語入力に応答すると判定するステップと、
前記エントリを前記追加のエントリの代わりに選択するステップであって、現在の日付または時刻と前記エントリの前記時間メタデータとの適合性に基づく、ステップと
をさらに含み、
前記エントリの前記所与の語のうちの少なくともいくつかを含む前記自然言語出力を提供するステップは、前記エントリを選択したことに応答し、前記追加のエントリは、前記自然言語出力を生成する際に利用されず、前記追加のエントリに基づく出力が前記第2の自然言語入力に応答して提供されない、
請求項3または4に記載の方法。
【請求項６】
前記自然言語出力を生成するステップは、前記エントリの前記時間メタデータに基づいて前記自然言語出力の1つまたは複数の時間語を生成するステップを含む、請求項3から5のいずれか一項に記載の方法。
【請求項７】
前記記述メタデータを生成するステップは、前記第1の自然言語入力を受信するステップに関連付けられた1つまたは複数のコンテキスト特徴に基づき、前記記述メタデータを生成するステップは、
前記記述メタデータの位置メタデータを生成するステップであって、前記位置メタデータは前記第1の自然言語入力が受信されたときの前記ユーザの位置を指示する、生成するステップ
を含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記少なくとも1つの検索パラメータは位置検索パラメータであり、前記エントリが前記第2の自然言語入力に応答すると判定するステップは、前記位置検索パラメータを前記位置メタデータと照合するステップを含む、請求項7に記載の方法。
【請求項９】
追加のエントリが前記第2の自然言語入力に応答すると判定するステップと、
前記エントリを前記追加のエントリの代わりに選択するステップであって、前記ユーザの現在の位置と前記エントリの前記位置メタデータとの適合性に基づく、ステップと
をさらに含み、
前記エントリの前記所与の語のうちの少なくともいくつかを含む前記自然言語出力を提供するステップは前記エントリを選択したことに応答し、前記追加のエントリは、前記自然言語出力を生成する際に利用されず、前記追加のエントリに基づく出力は前記第2の自然言語入力に応答して提供されない、
請求項7または8に記載の方法。
【請求項１０】
前記自然言語出力を生成するステップは、前記エントリの前記位置メタデータに基づいて前記自然言語出力の1つまたは複数の位置語を生成するステップを含む、請求項7から9のいずれか一項に記載の方法。
【請求項１１】
前記第1の自然言語入力は、前記ユーザと少なくとも1人の追加のユーザとの間の通信中に提供され、前記記述メタデータを生成するステップは、前記第1の自然言語入力を受信するステップに関連付けられた1つまたは複数のコンテキスト特徴に基づき、前記記述メタデータを生成するステップは、
前記記述メタデータの追加のユーザメタデータを生成するステップであって、前記追加のユーザメタデータは前記第1の自然言語入力が受信されたときに前記ユーザと通信している前記追加のユーザを識別する、ステップを含む、請求項7から10のいずれか一項に記載の方法。
【請求項１２】
前記ユーザと前記追加のユーザとの間の前記通信は、前記ユーザの前記コンピューティングデバイスの第1のメッセージ交換クライアントおよび前記追加のユーザの追加のユーザコンピューティングデバイスの第2のメッセージ交換クライアントを介して行われる、請求項11に記載の方法。
【請求項１３】
前記記述メタデータを生成するステップは、前記第1の自然言語入力の前記語の1つまたは複数に基づいて、前記記述メタデータを前記第1の自然言語入力の前記語の1つまたは複数に基づいて生成するステップは、前記語の1つまたは複数に基づいて前記記述メタデータの意味ラベルを生成するステップであって、前記意味ラベルは前記1つまたは複数の語が属し、かつ前記第1の自然言語出力に含まれていない追加の語もまた属する分類を指示する、ステップを含む、請求項1から12のいずれか一項に記載の方法。
【請求項１４】
前記少なくとも1つの検索パラメータは意味検索パラメータであり、前記エントリが前記第2の自然言語入力に応答すると判定するステップは、前記意味検索パラメータを前記意味ラベルと照合するステップを含む、請求項13に記載の方法。
【請求項１５】
前記検索パラメータを決定するステップは、前記第2の自然言語入力のプレフィックスに基づく、請求項14に記載の方法。
【請求項１６】
追加のエントリが前記第2の自然言語入力に応答すると判定するステップと、
前記エントリを前記追加のエントリの代わりに選択するステップであって、前記ユーザの前記第2の自然言語入力と前記エントリの前記意味ラベルとの適合性に基づく、ステップと
をさらに含み、
前記エントリの前記所与の語のうちの少なくともいくつかを含む前記自然言語出力を提供するステップは前記エントリを選択したことに応答し、前記追加のエントリは、前記自然言語出力を生成する際に利用されず、前記追加のエントリに基づく出力は前記第2の自然言語入力に応答して提供されない、
請求項14または15に記載の方法。
【請求項１７】
前記第2の自然言語入力の前記語の少なくとも1つに基づいて、前記第2の自然言語入力が前記パーソナルデータベースからの情報に対する要求である可能性を指示する尺度を決定するステップをさらに含み、
前記検索するステップおよび前記提供するステップのうちの少なくとも一方は、前記尺度の大きさに依存する、
請求項1から16のいずれか一項に記載の方法。
【請求項１８】
1つまたは複数のプロセッサによって実行される方法であって、
第1の自然言語入力を受信するステップであって、前記第1の自然言語入力はユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介して前記ユーザによって作成される自由形式入力である、ステップと、
1つまたは複数のコンピュータ可読媒体に記憶された前記ユーザのパーソナルデータベース内の前記第1の自然言語入力に対するエントリを生成するステップであって、
前記エントリ内に、前記第1の自然言語入力の前記語のうちの1つまたは複数の所与の語または前記所与の語の識別子を記憶するステップと、
記述メタデータを、
前記第1の自然言語入力の前記語のうちの1つまたは複数、および
前記第1の自然言語入力を受信するステップに関連付けられた1つまたは複数のコンテキスト特徴
のうちの少なくとも1つに基づいて生成するステップと、
前記記述メタデータを前記エントリに記憶するステップと
を含む、ステップと、
前記第1の自然言語入力を受け取った後に第2の自然言語入力を受信するステップであって、前記第2の自然言語入力は前記ユーザインターフェース入力デバイスまたは前記ユーザの追加のコンピューティングデバイスの追加のユーザインターフェース入力デバイスを介して前記ユーザによって作成される自由形式入力である、ステップと、
前記第2の自然言語入力に基づいて、少なくとも1つの検索パラメータを決定するステップと、
前記検索パラメータに基づいて前記パーソナルデータベースを検索するステップと、
前記検索するステップに基づいて、前記エントリが前記第2の自然言語入力に応答すると判定するステップであって、少なくとも一部が前記検索パラメータと前記エントリ内の前記所与の語のうちの少なくとも1つとの一致に基づく、ステップと、
前記検索するステップに基づいて、追加のエントリもまた前記第2の自然言語入力に応答すると判定するステップと、
前記記述メタデータの少なくともいくつかに基づいて前記追加のエントリに関して前記エントリをランク付けするステップと、
前記エントリに基づく1つまたは複数の自然言語出力語を含む自然言語出力を生成するステップと、
前記第2の自然言語入力に応答して、前記コンピューティングデバイスまたは前記追加のコンピューティングデバイスのユーザインターフェース出力デバイスを介して前記ユーザに提示するための前記自然言語出力を提供するステップであって、前記追加のエントリに関する前記エントリの前記ランクに基づく、ステップと
を含む、方法。
【請求項１９】
前記追加のエントリに関して前記エントリの前記ランキングに基づいて前記自然言語出力を提供するステップは、前記第2の自然言語入力に応答して前記追加のエントリに基づく出力を提供することなく前記自然言語出力を提供するステップを含む、請求項18に記載の方法。
【請求項２０】
前記追加のエントリに関する前記エントリの前記ランキングに基づいて前記自然言語出力を提供するステップは、前記自然言語出力を提供し、かつ前記追加のエントリに基づいて追加の出力を提供するステップと、前記ランキングに基づく順序で提示するために前記自然言語出力および前記追加の出力を提供するステップとを含む、請求項18に記載の方法。
【請求項２１】
デバイスであって、
メモリと1つまたは複数のプロセッサとを備え、前記メモリは、前記1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサに、
第1の自然言語入力を受信することであって、前記第1の自然言語入力はユーザインターフェース入力デバイスを介してユーザによって作成される自由形式入力である、受信することと、
1つまたは複数のコンピュータ可読媒体に記憶された前記ユーザのパーソナルデータベース内の前記第1の自然言語入力に対するエントリを生成することであって、前記エントリを生成する際に、前記1つまたは複数のプロセッサは、
前記エントリ内に、前記第1の自然言語入力の前記語のうちの1つまたは複数の所与の語または前記所与の語の識別子を記憶することと、
記述メタデータを、
前記第1の自然言語入力の前記語のうちの1つまたは複数、および
前記第1の自然言語入力を受信することに関連付けられた1つまたは複数のコンテキスト特徴
のうちの少なくとも1つに基づいて生成することと、
前記記述メタデータを前記エントリに記憶することと、
前記第1の自然言語入力を受け取った後に第2の自然言語入力を受信することであって、前記第2の自然言語入力は前記ユーザインターフェース入力デバイスまたは追加のユーザインターフェース入力デバイスを介して前記ユーザによって作成される自由形式入力である、受信することと、
前記第2の自然言語入力に基づいて、少なくとも1つの検索パラメータを決定することと、
前記検索パラメータに基づいて前記パーソナルデータベースを検索することと、
前記検索することに基づいて、かつ少なくとも一部は前記検索パラメータと前記記述メタデータのうちの少なくともいくつかとの一致に基づいて、前記エントリが前記第2の自然言語入力に応答すると判定することと、
前記エントリに基づく1つまたは複数の自然言語出力語を含む自然言語出力を生成することと、
前記第2の自然言語入力に応答して、ユーザインターフェース出力デバイスを介して前記ユーザに提示するための前記自然言語出力を提供することと
を行わせる命令を記憶する、デバイス。
【請求項２２】
前記デバイスは、前記ユーザインターフェース入力デバイスと前記ユーザインターフェース出力デバイスとをさらに備える、請求項21に記載のデバイス。
【請求項２３】
前記デバイスは、前記パーソナルデータベースをさらに備える、請求項21または22に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、自然言語ユーザインターフェース入力(natural language user interface input)に基づいて自然言語出力を生成することについて説明する。いくつかの実装形態は、改善された自動化パーソナルアシスタント(automated personal assistant)に向けられている。
【背景技術】
【０００２】
いくつかのメモ記録コンピュータアプリケーションおよび/または他のコンピュータアプリケーションは、ユーザがユーザによって明示的に設定されるコンテンツを含むメモエントリを作成することを可能にする。たとえば、ユーザは、"call Bob"のメモを作成する場合がある。さらに、いくつかのコンピュータアプリケーションは、ユーザ作成メモの制限付き検索を可能にする場合がある。
【０００３】
しかしながら、これらおよび/または他の技術には、1つまたは複数の欠点がある場合がある。たとえば、メモ記録コンピュータアプリケーションは、検索の語とメモの語との間の完全キーワード一致に基づいてメモエントリを検索することを可能にするだけであってもよい。たとえば、"call Bob"は、検索が"call"および/または"Bob"を含んでいた場合にのみ識別されるであろう。さらに、いくつかのメモ記録コンピュータアプリケーションは、検索に応答するメモエントリを自動的にフィルタ処理することおよび/またはランク付けすることを自動的にしない場合があり、および/または制限付きユーザ提供コンテンツに基づいてのみそうする場合がある。それに加えて、いくつかのメモ記録コンピュータアプリケーションは、ユーザによって提供されるコンテンツが、メモエントリを作成するために利用されるべきであって、したがってパーソナルアシスタントとの対話中および/または1人または複数の追加のユーザとの対話中に提供される入力などのユーザの多くの種類の入力に対するいかなるエントリも作成しないことを明示的に指定することを必要とする場合がある。追加のおよび/または代替的な欠点が提示される場合がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書のいくつかの実装形態は、改善された自動化パーソナルアシスタントに向けられている。いくつかの実装形態は、自動化パーソナルアシスタンスに提供され、および/または1人もしくは複数の追加のユーザの1つまたは複数のコンピューティングデバイスにそれらの追加のユーザとの通信中に提供される自然言語入力などのユーザのコンピューティングデバイスの1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって作成された自由形式自然言語入力に基づいてユーザに対するパーソナルデータベースエントリを生成することに向けられる。それらの実装形態のうちのいくつかにおいて、エントリは、自然言語入力の1つまたは複数の語を含み、オプションで自然言語入力の1つまたは複数の語に基づいて、および/または自然言語入力を受信することに関連付けられたコンテキスト特徴に基づいて決定される記述メタデータを含む。本明細書で使用されているように、自由形式入力は、ユーザによって作成され、かつユーザによる選択について提示されるオプションのグループに制約されない入力である。たとえば、これはコンピューティングデバイスの物理もしくは仮想キーボードを介してユーザによって提供されるタイプ入力、ユーザによってコンピューティングデバイスのマイクロフォンに送られる発話入力、および/またはカメラ(たとえば、ユーザのコンピューティングデバイスのカメラ)を介してユーザによってキャプチャされる画像であってもよい。
【０００５】
本明細書のいくつかの実装形態は、それに加えておよび/または代替的にユーザの1つまたは複数のパーソナルデータベースエントリに基づいて、ユーザのさらなる自由形式自然言語入力に応答する出力を生成することに向けられる。それらの実装形態のうちのいくつかにおいて、ユーザのさらなる自然言語入力に応答する1つまたは複数のエントリは、それらのエントリのコンテンツ(たとえば、それらのエントリの記述メタデータおよび/または語)とそのさらなる自然言語入力に基づいて決定された1つまたは複数の検索パラメータとの(ソフトおよび/または完全)一致を行うことに基づいて識別されることが可能である。さらに、それらの実装形態のうちのいくつかにおいて、出力を生成し、および/または識別されたエントリのコンテンツは、互いに関して複数の識別されたエントリ(複数エントリが識別されている場合)をランク付けする際に利用されてもよい。ランキングは、応答を生成し、および/または生成された応答内のコンテンツの複数の断片の提示順序を(コンテンツの複数の断片の導出元のエントリのランキングに基づいて)決定する際に利用するエントリのサブセット(たとえば、1つのエントリ)を選択するために利用されることが可能である。
【０００６】
本明細書のいくつかの実装形態は、それに加えておよび/または代替的にその入力が後で自動化パーソナルアシスタントに想起してもらいたいとユーザが望む入力として意図されている可能性を指示する尺度を決定し、および/またはユーザのパーソナルデータベースからの個人情報に対する要求として意図されている可能性を指示する尺度を決定するために所与の自然言語入力を分析することに向けられる。
【０００７】
ユーザの自然言語入力は、様々なシナリオにおいて受信されかつ処理されてもよい。たとえば、自然言語入力は、チャット、SMSを介した、および/または他のメッセージ交換を介した通信などの1人または複数の他のユーザとの通信中にユーザによって提供される入力であってもよい。別の例として、自然言語入力は、1つまたは複数のユーザインターフェース入力および出力デバイスを介してユーザとの対話に参加する自動化パーソナルアシスタントに提供されてもよい。たとえば、自動化パーソナルアシスタントは、全体としてまたは一部だけ、ユーザのコンピューティングデバイス(たとえば、携帯電話、タブレット、自動化アシスタント機能専用のデバイス)内に一体化されてもよく、1つまたは複数のユーザインターフェース入力デバイス(たとえば、マイクロフォン、タッチスクリーン)および1つまたは複数のユーザインターフェース出力デバイス(たとえば、スピーカー、表示画面)を備えてもよい。また、たとえば自動化パーソナルアシスタントは、ユーザのクライアントコンピューティングデバイスから分離されているが、それと通信する1つまたは複数のコンピューティングデバイス内に全体としてまたは一部だけ実装されてもよい。
【０００８】
いくつかの実装形態において、1つまたは複数のプロセッサによって実行される方法が提供され、これはユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介してユーザによって作成される自由形式入力である第1の自然言語入力を受信することを含む。本方法は、1つまたは複数のコンピュータ可読媒体に記憶されたユーザのパーソナルデータベース内の第1の自然言語入力に対するエントリを生成することをさらに含み、これを生成することは、エントリ内に、第1の自然言語入力の語のうちの1つまたは複数の所与の語または所与の語の識別子を記憶することと、第1の自然言語入力の語のうちの1つまたは複数および第1の自然言語入力を受信することに関連付けられた1つまたは複数のコンテキスト特徴のうちの少なくとも1つに基づいて記述メタデータを生成することと、記述メタデータをエントリに記憶することとを含む。本方法は、第1の自然言語入力を受け取った後に第2の自然言語入力を受信することをさらに含む。第2の自然言語入力は、ユーザインターフェース入力デバイスまたはユーザの追加のコンピューティングデバイスの追加のユーザインターフェース入力デバイスを介してユーザによって作成される自由形式入力である。本方法は、第2の自然言語入力に基づいて、少なくとも1つの検索パラメータを決定することと、検索パラメータに基づいてパーソナルデータベースを検索することと、検索することに基づいて、エントリが少なくとも一部は検索パラメータと記述メタデータのうちの少なくともいくつかとの一致に基づいて第2の自然言語入力に応答すると判定することとをさらに含む。本方法は、エントリに基づく1つまたは複数の自然言語出力語を含む自然言語出力を生成することと、第2の自然言語入力に応答して、コンピューティングデバイスまたは追加のコンピューティングデバイスのユーザインターフェース出力デバイスを介してユーザに提示するための自然言語出力を提供することとをさらに含む。
【０００９】
本明細書で開示される技術の本方法および他の実装は各々、以下の特徴のうちの1つまたは複数を適宜含んでもよい。
【００１０】
いくつかの実装形態において、記述メタデータを生成することは、第1の自然言語入力の所与の語および第1の自然言語入力を受信することに関連付けられた1つまたは複数のコンテキスト特徴の両方に基づく。
【００１１】
いくつかの実装形態において、記述メタデータを生成することは、第1の自然言語入力を受信することに関連付けられた1つまたは複数のコンテキスト特徴に基づき、1つまたは複数のコンテキスト特徴に基づいて記述メタデータを生成することは、第1の自然言語入力が受信された日付または時刻を指示する時間メタデータを生成することを含む。時間メタデータが生成される実装形態のうちのいくつかにおいて、少なくとも1つの検索パラメータは、時間検索パラメータであり、エントリが第2の自然言語入力に応答すると判定することは、時間検索パラメータを時間メタデータと照合することを含む。時間メタデータが生成される実装形態のうちのいくつかにおいて、本方法は、追加のエントリが第2の自然言語入力に応答すると判定することと、現在の日付または時刻とエントリの時間メタデータとの適合性に基づいてそのエントリを追加のエントリの代わりに選択することとをさらに含む。それらの実装形態のうちのいくつかのバージョンにおいて、エントリの所与の語のうちの少なくともいくつかを含む自然言語出力を提供することは、エントリを選択したことに応答し、追加のエントリは、自然言語出力を生成する際に利用されず、追加のエントリに基づく出力は第2の自然言語入力に応答して提供されない。それらの実装形態のうちのいくつかのバージョンにおいて、自然言語出力を生成することは、エントリの時間メタデータに基づいて自然言語出力の1つまたは複数の時間語を生成することを含む。
【００１２】
いくつかの実装形態において、記述メタデータを生成することは、第1の自然言語入力を受信することに関連付けられた1つまたは複数のコンテキスト特徴に基づき、記述メタデータを生成することは、第1の自然言語入力が受信されたときの位置を指示する位置メタデータを生成することを含む。位置メタデータが生成される実装形態のうちのいくつかにおいて、少なくとも1つの検索パラメータは、位置検索パラメータであり、エントリが第2の自然言語入力に応答すると判定することは、位置検索パラメータを位置メタデータと照合することを含む。位置メタデータが生成される実装形態のうちのいくつかにおいて、本方法は、追加のエントリが第2の自然言語入力に応答すると判定することと、ユーザの現在の位置とエントリの位置メタデータとの適合性に基づいてそのエントリを追加のエントリの代わりに選択することとをさらに含む。それらの実装形態のうちのいくつかのバージョンにおいて、エントリの所与の語のうちの少なくともいくつかを含む自然言語出力を提供することは、エントリを選択したことに応答し、追加のエントリは、自然言語出力を生成する際に利用されず、追加のエントリに基づく出力は第2の自然言語入力に応答して提供されない。それらの実装形態のうちのいくつかのバージョンにおいて、自然言語出力を生成することは、エントリの位置メタデータに基づいて自然言語出力の1つまたは複数の位置語を生成することを含む。
【００１３】
いくつかの実装形態において、第1の自然言語入力は、ユーザと少なくとも1人の追加のユーザとの間の通信中に提供され、記述メタデータを生成することは、第1の自然言語入力を受信することに関連付けられた1つまたは複数のコンテキスト特徴に基づき、記述メタデータを生成することは、記述メタデータの追加のユーザメタデータを生成することを含む。追加のユーザメタデータは、第1の自然言語入力が受信されたときにユーザと通信している追加のユーザを識別する。追加のメタデータが生成される実装形態のうちのいくつかにおいて、ユーザと追加のユーザとの間の通信は、ユーザのコンピューティングデバイスの第1のメッセージ交換クライアントおよび追加のユーザの追加のユーザコンピューティングデバイスの第2のメッセージ交換クライアントを介して行われる。
【００１４】
いくつかの実装形態において、記述メタデータを生成することは、第1の自然言語入力の語の1つまたは複数に基づき、記述メタデータを第1の自然言語入力の語の1つまたは複数に基づいて生成することは、それらの語の1つまたは複数に基づいて記述メタデータの意味ラベルを生成することを含む。意味ラベルは、1つまたは複数の語が属し、第1の自然言語出力に含まれていない追加の語もまた属する分類を指示する。意味ラベルが生成される実装形態のうちのいくつかにおいて、少なくとも1つの検索パラメータは、意味検索パラメータであり、エントリが第2の自然言語入力に応答すると判定することは、意味検索パラメータを意味ラベルと照合することを含む。それらの実装形態のいくつかのバージョンにおいて、検索パラメータを決定することは、第2の自然言語入力のプレフィックスに基づく。意味ラベルが生成される実装形態のうちのいくつかにおいて、本方法は、追加のエントリが第2の自然言語入力に応答すると判定することと、ユーザの第2の自然言語入力とエントリの意味ラベルとの適合性に基づいてそのエントリを追加のエントリの代わりに選択することとをさらに含む。それらの実装形態のうちのいくつかのバージョンにおいて、エントリの所与の語のうちの少なくともいくつかを含む自然言語出力を提供することは、エントリを選択したことに応答し、追加のエントリは、自然言語出力を生成する際に利用されず、追加のエントリに基づく出力は第2の自然言語入力に応答して提供されない。
【００１５】
いくつかの実装形態において、本方法は、第2の自然言語入力の語の少なくとも1つに基づいて、第2の自然言語入力がパーソナルデータベースからの情報に対する要求である可能性を指示する尺度を決定することをさらに含む。それらの実装形態のうちのいくつかにおいて、検索することおよび提供することのうちの少なくとも1つは、尺度の大きさに依存する。
【００１６】
いくつかの実装形態において、1つまたは複数のプロセッサによって実行される方法が提供され、これは、ユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介してユーザによって作成される自由形式入力である第1の自然言語入力を受信することと、1つまたは複数のコンピュータ可読媒体に記憶されたユーザのパーソナルデータベース内の第1の自然言語入力に対するエントリを生成することとを含む。生成することは、エントリ内に、第1の自然言語入力の語のうちの1つまたは複数の所与の語または所与の語の識別子を記憶することと、第1の自然言語入力の語のうちの1つまたは複数および第1の自然言語入力を受信することに関連付けられた1つまたは複数のコンテキスト特徴のうちの少なくとも1つに基づいて記述メタデータを生成することと、記述メタデータをエントリに記憶することとを含む。本方法は、第1の自然言語入力を受け取った後に第2の自然言語入力を受信することと、第2の自然言語入力に基づいて少なくとも1つの検索パラメータを決定することと、検索パラメータに基づいてパーソナルデータベースを検索することと、検索することに基づいて、エントリが第2の自然言語入力に応答すると判定することと、検索することに基づいて、追加のエントリも第2の自然言語入力に応答すると判定することと、記述メタデータの少なくともいくつかに基づいて追加のエントリに関してエントリをランク付けすることと、エントリに基づく1つまたは複数の自然言語出力語を含む自然言語出力を生成することと、第2の自然言語入力に応答して、ユーザインターフェース出力デバイスを介してユーザに提示するための自然言語出力を提供することとをさらに含み、自然言語出力を提供することは、追加のエントリに関するエントリのランキングに基づく。
【００１７】
本明細書で開示される技術の本方法および他の実装は各々、以下の特徴のうちの1つまたは複数を適宜含んでもよい。
【００１８】
いくつかの実装形態において、追加のエントリに関するエントリのランキングに基づいて自然言語出力を提供することは、第2の自然言語入力に応答して追加のエントリに基づく出力を提供することなく自然言語出力を提供することを含む。
【００１９】
いくつかの実装形態において、追加のエントリに関するエントリのランキングに基づいて自然言語出力を提供することは、自然言語出力を提供し、追加のエントリに基づいて追加の出力を提供することと、ランキングに基づく順序で提示するために自然言語出力および追加の出力を提供することとを含む。
【００２０】
それに加えて、いくつかの実装形態は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサは、関連付けられたメモリに記憶された命令を実行するように動作可能であり、命令は、前述の方法のうちのどれかを実行させるように構成される。いくつかの実装形態はまた、前述の方法のうちのどれかを実行するために1つまたは複数のプロセッサによって実行可能なコンピュータ命令を記憶する非一時的コンピュータ可読記憶媒体を含む。
【００２１】
前述の概念および本明細書でより詳しく説明される追加の概念のすべての組合せは、本明細書で開示される主題の一部であると企図されることは理解されるべきである。たとえば、本開示の末尾に現れる請求されている主題のすべての組合せは、本明細書で開示される主題の一部であると企図される。
【図面の簡単な説明】
【００２２】
【図１】本明細書において開示される実装形態が実装されてもよい例示的な環境の図である。
【図２Ａ】ユーザのコンピューティングデバイスの1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって作成された自由形式自然言語入力に基づいてユーザに対するパーソナルデータベースエントリを生成する一例を示す図である。
【図２Ｂ】ユーザの1つまたは複数のパーソナルデータベースエントリに基づいて、ユーザのさらなる自由形式自然言語入力に応答する自然言語出力を生成する一例を示す図である。
【図３Ａ】クライアントコンピューティングデバイスのユーザと本明細書で説明される実装形態による自動化パーソナルアシスタントとの間に生じてもよい対話の一例を表示する表示画面を備える例示的なクライアントコンピューティングデバイスを示す図である。
【図３Ｂ】図3Aの例示的なクライアントコンピューティングデバイスの一部を例示し、表示画面が本明細書で説明される実装形態による図3Aの対話の後に生じてもよい対話を表示する図である。
【図３Ｃ】図3Aの例示的なクライアントコンピューティングデバイスの一部を例示し、表示画面が本明細書で説明される実装形態による図3Aの対話の後に生じてもよい対話を表示する図である。
【図３Ｄ】図3Aの例示的なクライアントコンピューティングデバイスの一部を例示し、表示画面が本明細書で説明される実装形態による図3Aの対話の後に生じてもよい対話を表示する図である。
【図３Ｅ】図3Aの例示的なクライアントコンピューティングデバイスの一部を例示し、表示画面が本明細書で説明される実装形態による図3Aの対話の後に生じてもよい対話を表示する図である。
【図３Ｆ】図3Aの例示的なクライアントコンピューティングデバイスの一部を例示し、表示画面が本明細書で説明される実装形態による図3Aの対話の後に生じてもよい対話を表示する図である。
【図３Ｇ】図3Aの例示的なクライアントコンピューティングデバイスの一部を例示し、表示画面が本明細書で説明される実装形態による図3Aの対話の後に生じてもよい対話を表示する図である。
【図４Ａ】クライアントコンピューティングデバイスのユーザと本明細書で説明される実装形態による自動化パーソナルアシスタントとの間に生じてもよい対話の別の例を表示する表示画面を備える図3Aのクライアントコンピューティングデバイスを示す図である。
【図４Ｂ】図4Aの例示的なクライアントコンピューティングデバイスの一部を例示し、表示画面が本明細書で説明される実装形態による図4Aの対話の後に生じてもよい対話を表示する図である。
【図４Ｃ】図4Aの例示的なクライアントコンピューティングデバイスの一部を例示し、表示画面が本明細書で説明される実装形態による図4Aの対話の後に生じてもよい対話を表示する図である。
【図５Ａ】ユーザによって作成された自由形式自然言語入力に基づいてユーザに対するパーソナルデータベースエントリを生成し、パーソナルデータベースエントリの1つまたは複数に基づいて、ユーザのさらなる自由形式自然言語入力に応答する自然言語出力を生成する例示的な方法を示すフローチャートである。
【図５Ｂ】ユーザによって作成された自由形式自然言語入力に基づいてユーザに対するパーソナルデータベースエントリを生成し、パーソナルデータベースエントリの1つまたは複数に基づいて、ユーザのさらなる自由形式自然言語入力に応答する自然言語出力を生成する例示的な方法を示すフローチャートである。
【図６】コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【００２３】
本明細書の実装形態は、ユーザのコンピューティングデバイスの1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって作成された自由形式自然言語入力に基づいてユーザに対するパーソナルデータベースエントリを生成することに向けられる。たとえば、パーソナルデータベースエントリは、自動化パーソナルアシスタントに提供される自然言語入力に応答して自動化パーソナルアシスタントによって生成されてもよい。本明細書で使用されているようなパーソナルデータベースエントリは、ユーザからアクセス可能であり、そのユーザと異なる複数の追加のユーザからはアクセス可能でないパーソナルデータベース内のエントリである。たとえば、パーソナルデータベースは、そのユーザおよびそのユーザによって指定された1つもしくは複数のアプリケーションおよび/またはシステムからのみアクセス可能であり、他のユーザ、アプリケーション、および/またはシステムからはアクセス可能でなくてもよい。また、たとえばパーソナルデータベースは、そのユーザおよびそのユーザによって指定された特定の追加のユーザからアクセス可能であってもよい。本明細書で説明されるように、パーソナルデータベースは、1つまたは複数のコンピュータ可読媒体上に記憶されてもよく、そのようなコンテンツにアクセスすることを許可されているユーザ、アプリケーション、および/またはシステムのみからのアクセスを許し、他のすべてのユーザ、アプリケーション、および/またはシステムからのアクセスを防ぐためのアクセス情報に関連付けられてもよい。
【００２４】
いくつかの実装形態において、生成されたパーソナルデータベースエントリは、自然言語入力の1つまたは複数の語を含み、オプションで自然言語入力の1つまたは複数の語に基づいて、および/または自然言語入力を受信することに関連付けられたコンテキスト特徴に基づいて決定される記述メタデータを含む。
【００２５】
自然言語入力の語に基づいて決定される記述メタデータは、たとえば語の1つまたは複数が属し、自然言語出力に含まれていない追加の語もまた属する分類を指示する意味ラベルを含んでもよい。たとえば、"person"という意味ラベルは、"Bob"という語に基づいて決定されてもよく、"place"という意味ラベルは、"home"という語に基づいて決定されてもよい。自然言語入力の語に基づいて決定された記述メタデータの別の例は、後で自動化パーソナルアシスタントが想起できることをユーザが望む入力として自然言語入力が意図されている可能性を指示する"memoryness"メタデータ(たとえば、真/偽、または値の範囲)を含んでもよい。たとえば、ユーザが将来の想起に関する能力を望んでいる高い可能性を指示する記述memorynessメタデータは、入力の中のキーとなる特定の語(たとえば、"remember"、"don't forget")の存在に基づいておよび/または自然言語入力が"remembered"であるという望みを自然言語入力が指示しているかどうかおよび/またはそれがどの程度であるかを予測するようにトレーニングされた分類器に入力を提供したことに応答して受信される出力に基づいて生成されてもよい。
【００２６】
自然言語入力を受信することに関連付けられたコンテキスト特徴に基づいて決定される記述メタデータは、たとえば時間メタデータ、位置メタデータ、および/または追加のユーザメタデータを含んでもよい。時間メタデータは、自然言語入力が受信された日付(たとえば、5/1/16, May, 2016, last week, Sunday)および/または時刻(たとえば、8:00 AM、morning、between 7:00 and 9:00)を指示してもよい。位置メタデータは、自然言語入力が受信されたときのユーザの位置(たとえば、郵便番号、"home"、"work"、City、Neighborhood)を指示してもよい。追加のユーザメタデータは、自然言語入力が向けられた1人もしくは複数の追加のユーザおよび/または自然言語入力が受信されたときにユーザとの通信に関わっていた1人もしくは複数の追加のユーザを指示してもよい。たとえば、自然言語入力がユーザと追加のユーザとの間の進行中のメッセージ交換スレッド(たとえば、チャット、SMS)から受信されるときに、追加のユーザメタデータは、追加のユーザを指示してもよい。
【００２７】
本明細書の実装形態は、それに加えておよび/または代替的にユーザの1つまたは複数のパーソナルデータベースエントリに基づいて、ユーザのさらなる自由形式自然言語入力に応答する出力を生成することに向けられる。それらの実装形態のうちのいくつかにおいて、ユーザのさらなる自然言語入力に応答する1つまたは複数のエントリは、それらのエントリのコンテンツ(たとえば、それらのエントリの記述メタデータおよび/または語)とそのさらなる自然言語入力に基づいて決定された1つまたは複数の検索パラメータとの(ソフトおよび/または完全)一致を行うことに基づいて識別されることが可能である。さらに、それらの実装形態のうちのいくつかにおいて、出力を生成し、および/または識別されたエントリのコンテンツは、互いに関して複数の識別されたエントリ(複数エントリが識別されている場合)をランク付けする際に利用されてもよい。ランキングは、応答を生成し、および/または生成された応答内のコンテンツの複数の断片の提示順序を(コンテンツの複数の断片の導出元のエントリのランキングに基づいて)決定する際に利用するエントリのサブセットを選択するために利用されることが可能である。
【００２８】
次に、図1を参照すると、本明細書において開示される技術が実装されてもよい例示的な環境が示される。例示的な環境は、複数のクライアントコンピューティングデバイス1061〜Nおよび自動化パーソナルアシスタント120を備える。自動化パーソナルアシスタント120は、図1にはクライアントコンピューティングデバイス1061〜Nと別のものとして例示されるが、いくつかの実装形態において、自動化パーソナルアシスタント120のすべてまたはいくつかの態様は、クライアントコンピューティングデバイス1061〜Nのうちの1つまたは複数によって実装されてもよい。たとえば、クライアントコンピューティングデバイス1061は、自動化パーソナルアシスタント120の1つのインスタンスまたは複数の態様を実装してもよく、クライアントデバイス106Nは、自動化パーソナルアシスタント120のそれらの1つまたは複数の態様の別個のインスタンスも実装してもよい。自動化パーソナルアシスタント120の1つまたは複数の態様がクライアントコンピューティングデバイス1061〜Nからリモートにある1つまたは複数のコンピューティングデバイスによって実装される実装形態では、クライアントコンピューティングデバイス1061〜Nおよび自動化パーソナルアシスタント120のそれらの態様は、ローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN)(たとえば、インターネット)などの1つまたは複数のネットワークを介して互いに通信してもよい。
【００２９】
クライアントコンピューティングデバイス1061〜Nは、たとえばデスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、ユーザとの対話を可能にする専用コンピューティングデバイス(たとえば、マイクロフォンおよびスピーカーを備えるが、ディスプレイを備えていないスタンドアロン型デバイス)、携帯電話コンピューティングデバイス、ユーザの車両のコンピューティングデバイス(たとえば、車載通信システム、車載娯楽システム、車載ナビゲーションシステム)、またはコンピューティングデバイスを備えるユーザの着用可能装置(たとえば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザの眼鏡、仮想または拡張現実コンピューティングデバイス)のうちの1つまたは複数を含んでもよい。追加の、および/または代替的なクライアントコンピューティングデバイスが実現されてもよい。いくつかの実装形態において、所与のユーザは、コンピューティングデバイスの協調「エコシステム」を共同で形成するユーザの複数のクライアントコンピューティングデバイスを利用する自動化パーソナルアシスタント120と通信してもよい。たとえば、パーソナルデータベースエントリは、第1のクライアントコンピューティングデバイスを介したユーザの自然言語入力および第2のクライアントコンピューティングデバイスを介したユーザのさらなる自然言語入力に応答してそのエントリに基づいて生成される出力に基づいて生成されてもよい。しかしながら、簡潔にするため、本開示において説明される多くの例において、所与のユーザがクライアントコンピューティングデバイス1061〜Nのうちの単一の1つを操作することに注目する。
【００３０】
クライアントコンピューティングデバイス1061〜Nの各々は、メッセージ交換クライアント1071〜Nのうちの対応する1つなどの様々な異なるアプリケーションを操作してもよい。メッセージ交換クライアント1071〜Nは、様々な形態のものがあってもよく、それらの形態は、クライアントコンピューティングデバイス1061〜Nによって異なっていてもよく、および/またはクライアントコンピューティングデバイス1061〜Nのうちの単一の1つで操作されてもよい。いくつかの実装形態において、メッセージ交換クライアント1071〜Nのうちの1つまたは複数は、ショートメッセージングサービス("SMS")および/またはマルチメディアメッセージングサービス("MMS")クライアント、オンラインチャットクライアント(たとえば、インスタントメッセンジャー、インターネットリレーチャット、または"IRC"など)、ソーシャルネットワークに関連付けられたメッセージングアプリケーション、自動化パーソナルアシスタント120との対話専用のパーソナルアシスタントメッセージングデバイス(たとえば、ユーザとの対話を可能にする専用コンピューティングデバイス上に実装される)などの形態をとってもよい。いくつかの実装形態において、メッセージ交換クライアント1071〜Nのうちの1つまたは複数は、クライアントコンピューティングデバイス106のウェブブラウザ(図示せず)または他のアプリケーションによってレンダリングされるウェブページまたは他のリソースを介して実装されてもよい。
【００３１】
本明細書においてより詳しく説明されるように、自動化パーソナルアシスタント120は、1つまたは複数のクライアントデバイス1061〜Nのユーザインターフェース入力および出力デバイスを介して、1人または複数のユーザから入力を受信し、および/または1人または複数のユーザに出力を提供する。本明細書において説明される実装形態は、自動化パーソナルアシスタント120がユーザによって提供される自然言語入力に基づいてユーザに対するパーソナルデータベースエントリを生成し、ユーザの1つまたは複数の生成されたパーソナルデータベースエントリに基づいてユーザに提示するための出力を生成することに関係する。しかしながら、多くの実装形態において、自動化パーソナルアシスタント120は、1つまたは複数の追加の機能を実行してもよい。たとえば、自動化パーソナルアシスタント120は、全部または一部において、ユーザの過去の自然言語入力に基づいて生成されたパーソナルデータベースエントリに基づいて生成されない情報に基づいて、生成される出力とともにユーザの何らかの自然言語インターフェース入力に応答してもよい。たとえば、自動化パーソナルアシスタントは、ユーザの何らかの自然言語インターフェース入力への応答を生成する際に公開データベース154の1つまたは複数の文書を利用してもよい。たとえば、"what does ambidextrous mean?"というユーザ自然言語入力に応答して、自動化パーソナルアシスタントは、ユーザにとって個人的でない"ambidextrous"に対する定義に基づいて"ambidextrous is an adjective that describes the ability to use the right and left hands equally well"という出力を生成してもよい。
【００３２】
いくつかの実装形態において、本明細書で説明されるユーザインターフェース入力は、自動化パーソナルアシスタント120に明示的に向けられる。たとえば、メッセージ交換クライアント1071〜Nのうちの1つは、自動化パーソナルアシスタント120との対話専用であるパーソナルアシスタントメッセージングサービスであってもよく、そのパーソナルアシスタントメッセージングサービスを介して提供されるユーザインターフェース入力は、自動化パーソナルアシスタント120に自動的に提供されてもよい。たとえば、メッセージ交換クライアント1071〜Nのうちの1つおよびパーソナルアシスタント120の少なくともいくつかの態様のインスタンスは、両方とも、少なくとも一部は、音声ユーザインターフェース入力を少なくとも選択的に監視し、可聴ユーザインターフェース出力で応答するスタンドアロン型クライアントコンピューティングデバイス上に実装されてもよい。また、たとえばユーザインターフェース入力は、自動化パーソナルアシスタント120が呼び出されるべきであることを指示する特定のユーザインターフェース入力に基づいてメッセージ交換クライアント1071〜Nのうちの1つまたは複数を介して自動化パーソナルアシスタント120に明示的に向けられてもよい。たとえば、特定のユーザインターフェース入力は、1つまたは複数のタイプ入力された文字(たとえば、@PersonalAssistant)、ユーザによる仮想ボタン(たとえば、タップ、ロングタップ)のインタラクティブな操作、音声コマンド(たとえば、"Hey Personal Assistant")などであってもよい。いくつかの実装形態において、自動化パーソナルアシスタント120は、そのユーザインターフェース入力が自動化パーソナルアシスタント120に明示的に向けられていないときでも、ユーザインターフェース入力に応答して1つまたは複数のアクションを実行することを行ってもよい。たとえば、自動化パーソナルアシスタント120は、ユーザインターフェース入力のコンテンツを調べ、特定の語がユーザインターフェース入力内に存在していることに応答して、および/または他の手掛かりに基づいて1つまたは複数のアクションを実行してもよい。
【００３３】
クライアントコンピューティングデバイス1061〜Nおよび自動化パーソナルアシスタント120の各々は、データおよびソフトウェアアプリケーションを記憶しておくための1つまたは複数のメモリと、データにアクセスしアプリケーションを実行するための1つまたは複数のプロセッサと、ネットワーク上の通信を円滑にする他のコンポーネントとを備えてもよい。クライアントコンピューティングデバイス1061〜Nのうちの1つまたは複数によって、および/または自動化パーソナルアシスタント120によって実行されるオペレーションは、複数のコンピュータシステムに分散させてもよい。自動化パーソナルアシスタント120は、たとえばネットワークを通じて互いに結合される1つまたは複数の位置にある1つまたは複数のコンピュータ上で実行されるコンピュータプログラムとして実装されてもよい。
【００３４】
自動化パーソナルアシスタント120は、入力処理エンジン122と、コンテキストエンジン124と、エントリ生成エンジン126と、サーチエンジン128と、ランク付けエンジン130と、出力生成エンジン132とを備えてもよい。いくつかの実装形態において、エンジン122、124、126、128、130、および/または132のうちの1つまたは複数は省略されてもよい。いくつかの実装形態において、エンジン122、124、126、128、130、および/または132のうちの1つまたは複数のすべてのまたはいくつかの態様は組み合わされてもよい。いくつかの実装形態において、エンジン122、124、126、128、130、および/または132のうちの1つまたは複数は、自動化パーソナルアシスタント120から分離したコンポーネントで実装されてもよい。たとえば、エンジン122、124、126、128、130、および/または130のうちの1つまたは複数、またはその稼動部分は、クライアントコンピューティングデバイス1061〜Nによって実行されるコンポーネントで実装されてもよい。
【００３５】
入力処理エンジン122は、クライアントコンピューティングデバイス1061〜Nを介してユーザによって生成された自然言語入力を処理し、自動化パーソナルアシスタント120の1つまたは複数の他のコンポーネントによって使用するための注釈付き出力を生成する。たとえば、入力処理エンジン122は、クライアントデバイス1061の1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって生成される自然言語自由形式を処理してもよい。生成された注釈付き出力は、自然言語入力の1つまたは複数の注釈およびオプションで自然言語入力の語のうちの1つまたは複数(たとえば、すべて)を含む。
【００３６】
いくつかの実装形態において、入力処理エンジン122は、自然言語入力における様々な種類の文法情報を識別し、注釈を付けるように構成される。たとえば、入力処理エンジン122は、語にその文法上の役割を注釈として付けるように構成される品詞タグ付け器を含んでもよい。たとえば、品詞タグ付け器は、「名詞」、「動詞」、「形容詞」、「代名詞」などの品詞を各語にタグ付けしてもよい。また、たとえばいくつかの実装形態において、入力処理エンジン122は、それに加えておよび/または代替的に自然言語入力における語の間の構文的関係を決定するように構成される依存関係解析器を備えてもよい。たとえば、依存関係解析器は、どの語が文章の他の語、主語、および動詞を修飾するかなどを決定し(たとえば、解析木)、そのような依存関係の注釈を付けてもよい。
【００３７】
いくつかの実装形態において、入力処理エンジン122は、それに加えておよび/または代替的に、人々、組織、場所などへの参照などの1つまたは複数の文節における実体参照を注釈するように構成される実体タグ付け器を含んでもよい。実体タグ付け器は、高水準の粒度(たとえば、人々などの実体クラスへのすべての参照の識別を可能にする)および/または低水準の粒度(たとえば、特定の人などの特定の実体へのすべての参照の識別を可能にする)の実体への参照に注釈を付けてもよい。実体タグ付け器は、特定の実体を解決するために自然言語入力のコンテンツに依存してもよく、および/またはオプションで特定の実体を解決するために知識グラフまたは他の実体データベースと通信してもよい。
【００３８】
いくつかの実装形態において、入力処理エンジン122は、それに加えておよび/または代替的に1つまたは複数のコンテキスト上の手掛かりに基づいて同じ実体への参照をグループ化するか、または「クラスタ化」するように構成される同一指示解決器を備えてもよい。たとえば、同一指示解決器は、自然言語入力"I'm looking for my bike helmet. Do you know where it is?"中の語"it"を"bike helmet"に解決するために利用されてもよい。
【００３９】
いくつかの実装形態において、入力処理エンジン122の1つまたは複数のコンポーネントは、入力処理エンジン122の1つまたは複数の他のコンポーネントからの注釈に依存する場合がある。たとえば、いくつかの実装形態において、名前を付けられた実体タグ付け器は、特定の実体へのすべての言及に注釈を付ける際に同一指示解決器および/または依存関係解析器からの注釈に依存する場合がある。また、たとえばいくつかの実装形態において、同一指示解決器は、同じ実体への参照をクラスタ化する際に依存関係解析器からの注釈に依存する場合がある。いくつかの実装形態において、特定の自然言語入力を処理する際に、入力処理エンジン122の1つまたは複数のコンポーネントは、特定の自然言語入力の外の関係する前の入力および/または他の関係するデータを使用して1つまたは複数の注釈を決定してもよい。たとえば、メッセージ交換スレッドにおける第1のユーザは、"I'll leave the keys under the doormat for you"という入力を提供してもよく、第2のユーザは、メッセージ交換スレッドを介して、"Remember that"という入力を自動化メッセージングシステムに提供してもよい。"Remember that"を処理する際に、同一指示解決器は、"that"を"I'll leave the keys under the doormat for you"に解決し、"I'll"を第1のユーザに、"you"を第2のユーザに解決してもよい。
【００４０】
コンテキストエンジン124は、クライアントコンピューティングデバイス1061〜Nのうちの1つから受け取った自然言語入力に関連付けられた1つまたは複数のコンテキスト特徴を決定する。いくつかの実装形態において、コンテキストエンジン124は、自然言語入力の語と無関係なコンテキスト特徴のうちの1つまたは複数を決定する。たとえば、コンテキスト特徴は、自然言語入力が受信された日付および/または時刻を指示してもよく、自然言語入力の語と無関係に決定されてもよい。また、たとえばコンテキスト特徴は、自然言語入力が受信されたときのユーザの位置(たとえば、GPSまたは他の位置データに基づく)を指示してもよく、自然言語入力の語と無関係に決定されてもよい。また、たとえばコンテキスト特徴は、自然言語入力が向けられた1人もしくは複数の追加のユーザおよび/または自然言語入力が受信されたときにユーザとの通信に関わっていた1人もしくは複数の追加のユーザを指示してもよく、自然言語入力の語と無関係に決定されてもよい。いくつかの実装形態において、コンテキストエンジン124は、コンテキスト特徴を定義する明示的なユーザインターフェース入力および/または自動的に決定されたコンテキスト特徴が正しいと確認する明示的な入力などの自然言語入力を提供したユーザの明示的入力から無関係なコンテキスト特徴のうちの1つまたは複数を決定する。
【００４１】
エントリ生成エンジン126は、クライアントコンピューティングデバイス1061〜Nのうちの対応する1つを介してユーザによって作成される自然言語入力の少なくともいくつかのインスタンスに応答してユーザに対するパーソナルデータベースエントリを生成する。受け取った自然言語入力に対するエントリを生成する際に、エントリ生成エンジン126は、自然言語入力の1つまたは複数の語、入力処理エンジン122によって提供される自然言語入力の注釈、および/またはコンテキストエンジン124によって提供されるコンテキスト特徴を利用してもよい。
【００４２】
一例として、クライアントコンピューティングデバイス1061〜Nのうちの1つを介してユーザによって作成され、自動化パーソナルアシスタント120に提供される"remember my locker combination is 10, 20, 30"という自然言語入力を仮定する。さらに、コンテキストエンジン124は、ユーザの位置が"at the gym"である間、5/1/16の6:00 AMに提供されることを決定すると仮定する。"at the gym"というユーザの位置は、特定の緯度/経度、住所、特定のジムを識別する実体識別子、"gym"の実体クラス識別子などの様々なレベルの粒度のうちの1つまたは複数で定義されてもよい。そのような例では、エントリ生成エンジン126は、"locker combination is 10, 20, 30という語を含むエントリと、6:00 AM、"early morning"、および/または6:00 AMの他の何らかの指示および"May 1st"、"Sunday in May"、および/または"5/1/16"という他の何らかの識別子の時間メタデータと、"at the gym"というユーザの位置の指示である位置メタデータとを生成してもよい。
【００４３】
いくつかの実装形態において、エントリ生成エンジン126は、1つまたは複数の特性を有するその自然言語入力に応答して受け取った自然言語入力に基づいてパーソナルデータベースエントリを生成してもよい。たとえば、それらの実装形態のうちのいくつかにおいて、エントリ生成エンジン126は、1つまたは複数のキーとなる語(たとえば、"remember"、"remember this"、および/または"don't forget")を含み、および/または自然言語入力のいくつかの位置におけるそれらの鍵となる語を(たとえば、プレフィックスとして)含む自然言語入力に応答してパーソナルデータベースエントリを生成してもよい。また、たとえばそれらの実装形態のうちのいくつかにおいて、エントリ生成エンジン126は、それに加えておよび/または代替的に自然言語入力が"remembered"であるという望みを自然言語入力が指示しているかどうかおよび/またはそれがどの程度であるかを予測するようにトレーニングされた分類器に自然言語入力の少なくとも一部を提供したこと、および分類器からの出力として、自然言語入力が記憶されることを望んでいることを指示し、および/または少なくとも閾値程度までの望みを指示する指示を受け取ったことに応答してパーソナルデータベースエントリを生成してもよい。
【００４４】
いくつかの実装形態において、エントリ生成エンジン126はまた、エントリを生成するために利用される自然言語入力が後で自然言語入力の少なくとも一部を自動化パーソナルアシスタント120が想起することを望んでいることを指示するエントリを生成する可能性を指示するエントリに対する"memoryness"メタデータを生成してもよい。たとえば、エネルギー生成エンジン126は、自然言語入力が1つまたは複数そのキーとなる語(たとえば、"remember"、"remember this"、および/または"don't forget")を含むときに第1の値(たとえば、"1")であり、自然言語入力がそれらの鍵となる語のうちのどれも含まないときに第2の値(たとえば、"0")であるmemorynessメタデータを生成してもよい。また、たとえばエントリ生成エンジン126は、自然言語入力および/または関連付けられたコンテキスト特徴の1つまたは複数の特性に基づいて3つ以上の値のうちの1つから選択されるmemorynessメタデータを生成してもよい。たとえば、エントリ生成エンジン126は、自然言語入力が"remembered"であるという望みを自然言語入力が指示しているかどうかおよび/またはそれがどの程度であるかを予測するようにトレーニングされた分類器に受け取った自然言語入力および/または1つもしくは複数のコンテキスト特徴の少なくとも一部を提供し、分類器からの出力として、自然言語入力が記憶されることを望んでいることを指示する可能性の尺度を受信してもよい。エンジン126は、memorynessメタデータとして、その尺度、またはその尺度に基づく別の指示を利用してもよい。
【００４５】
エントリ生成エンジン126によって生成されるパーソナルデータベースエントリは、パーソナルデータベース152に記憶されてもよい。パーソナルデータベース152は、クライアントコンピューティングデバイス1061〜Nのうちの1つのデバイスのローカル、自動化パーソナルアシスタント120のローカル、および/またはクライアントコンピューティングデバイス1061〜Nおよび/または自動化パーソナルアシスタント120のリモートにある1つまたは複数の媒体などの1つまたは複数の非一時的コンピュータ可読媒体上に用意されてもよい。パーソナルデータベース152の各パーソナルデータベースエントリは、基礎となるコンテンツそれ自体および/または基礎となるコンテンツにリンクする1つまたは複数のインデックスアイテムを含んでもよい。いくつかの実装形態において、パーソナルデータベース152はクライアントコンピューティングデバイス1061〜Nのうちの1つのデバイスのローカルにあってもよく、そのクライアントコンピューティングデバイスは自動化パーソナルアシスタント120の1つまたは複数の(たとえば、すべての)態様のインスタンスを実装してもよい。たとえば、クライアントコンピューティングデバイスは、1つまたは複数のユーザインターフェース入力デバイス(たとえば、マイクロフォン)、1つまたは複数のユーザインターフェース出力デバイス(たとえば、スピーカー)、およびパーソナルデータベース152を備えてもよい。
【００４６】
パーソナルデータベース152は、パーソナルデータベースエントリの検索でエントリのすべてのまたはいくつかの態様が本明細書で説明されるようなユーザのさらなる自然言語入力に関連するかどうかを判定することを可能にする。いくつかの実装形態において、パーソナルデータベース152の複数の反復は、特定のユーザに特有の各反復でもたらされてもよく、ユーザおよび/またはユーザによって指定されたシステムからアクセス可能であり、そのユーザと異なる複数の追加のユーザまたはシステムからはアクセス可能でないパーソナルデータベースエントリを含んでもよい。たとえば、パーソナルデータベース152は、そのユーザからのみアクセス可能であり、任意の他のユーザからはアクセス可能でなくてもよい。また、たとえばパーソナルデータベース152は、そのユーザおよびそのユーザによって指定された特定の追加のユーザからアクセス可能であってもよい。いくつかの実装形態において、パーソナルデータベース152は、そのようなコンテンツへのアクセスを許可されているユーザからのアクセスを許可し、他のすべてのユーザからのアクセスを防ぐためのアクセス情報に関連付けられてもよい。いくつかの実装形態において、パーソナルデータベース152は、複数のユーザのパーソナルデータベースエントリを含み、各エントリおよび/またはエントリのグループはそのようなインデックスアイテムにアクセスすることを許可されているユーザおよび/またはシステムからのみアクセスを許可し、他のすべてのユーザおよび/またはシステムからのアクセスを防ぐためのアクセス情報に関連付けられる。したがって、パーソナルデータベース152は、複数のユーザに対するエントリを含んでもよいが、各エントリおよび/またはエントリのグループは、そのようなエントリにアクセスすることを許可されていないユーザによるアクセスを防ぐためのアクセス情報を含んでもよい。アクセスをパーソナルデータベース152のエントリに制限するための追加のおよび/または代替的な技術が利用されてもよい。
【００４７】
サーチエンジン128は、クライアントコンピューティングデバイス1061〜Nのうちの対応する1つを介してユーザによって作成される自然言語入力の少なくともいくつかのインスタンスに応答してユーザに関連付けられたパーソナルデータベース152のエントリを検索する。サーチエンジン128は、作成された自然言語入力に基づいて、およびオプションで入力処理エンジン122によって提供されるその入力の注釈に基づいて1つまたは複数の検索パラメータを生成し、それらの検索パラメータを利用して、検索パラメータのうちの1つまたは複数の(たとえば、すべての)パラメータと一致する(ソフト一致および/または完全一致の)コンテンツ(たとえば、それらのエントリの記述メタデータおよび/または自然言語入力語)を含むパーソナルデータベース152の1つまたは複数のエントリを決定する。
【００４８】
サーチエンジン128によって生成された検索パラメータは、たとえば自然言語入力の1つまたは複数の語、自然言語入力の1つまたは複数の語の同義語、自然言語入力の1つまたは複数の語に対する意味ラベル、自然言語入力の1つまたは複数の語に基づく位置制限、自然言語入力の1つまたは複数の語に基づく時間制限などを含んでもよい。たとえば、"who did I give my bike helmet to last month?"という自然言語入力について、サーチエンジン128は、(自然言語入力の語に基づく)"bike helmet"、(自然言語入力の同義語に基づく)"bicycle helmet"、(自然言語入力中に"who"が存在することに基づく)"person"を示す意味ラベル、および"last month"に対応する時間制限の検索パラメータを決定してもよい。
【００４９】
いくつかの実装形態において、サーチエンジン128は、1つまたは複数の特性を有するその自然言語入力に応答して受け取った自然言語入力に基づいてパーソナルデータベース152を検索する。たとえば、それらの実装形態のうちのいくつかにおいて、サーチエンジン128は、1つまたは複数のキーとなる語(たとえば、"What"、"Who"、"Where"、"When"、"my"、および/または"I")を含み、および/または自然言語入力のいくつかの位置におけるそれらの鍵となる語を含む自然言語入力に応答してパーソナルデータベース152を検索してもよい。たとえば、サーチエンジンは、"I"または"my"などの1つまたは複数の語に対する統語的関係(たとえば、入力処理エンジン122の注釈によって指示されるような)を有する"what"、"who"、または"where"などの問い合わせ語を含む自然言語入力に応答してパーソナルデータベース152を検索してもよい。また、たとえばいくつかの実装形態において、サーチエンジン128は、それに加えておよび/または代替的に自然言語入力がユーザのパーソナルデータベースからの個人情報に対する要求として意図されているかどうかおよび/またはそれがどの程度であるかを予測するようにトレーニングされた分類器に自然言語入力の少なくとも一部を提供したこと、および分類器からの出力として、自然言語入力が望みを指示し、および/または少なくとも閾値程度まで望みを指示する指示を受け取ったことに応答してパーソナルデータベース152を検索してもよい。
【００５０】
いくつかの実装形態において、サーチエンジン128は、クライアントコンピューティングデバイス1061〜Nのうちの対応する1つを介してユーザによって作成される自然言語入力の少なくともいくつかのインスタンスに応答して公開データベース154も検索してもよい。サーチエンジン128は、何らかの自然言語入力に応答して公開データベース154およびパーソナルデータベース152の両方を検索してもよく、および/または公開データベース154およびパーソナルデータベース152のうちの一方のみを検索してもよい。一般的に、公開データベース154は、ユーザおよび/または他のユーザおよび/またはユーザによって指定されたシステムに制限されない、オプションで様々なタイプの自然言語入力に応答するためにサーチエンジン128によって利用されてもよい、様々なタイプのコンテンツを含んでもよい。たとえば、公開データベース154は、ワールドワイドウェブ上で公開されアクセス可能な文書、特定の自然言語入力へのスクリプト化された応答などからのコンテンツアイテムを含んでもよい。一例として、公開データベース154は、"ambidextrous"に対する定義を含み、サーチエンジン128が"what does ambidextrous mean?"という自然言語入力に応答してその定義を識別することを可能にしてもよい。別の例として、公開データベース154は、"Hi"または"Hello"という自然言語入力に応答してサーチエンジン128によって識別される"Hello, how are you"というスクリプト化された応答を含んでもよい。
【００５１】
ランク付けエンジン130は、オプションで1つまたは複数の基準に基づいてサーチエンジン128によって識別される1つまたは複数のエントリ(個人用および/または公開)をランク付けする。いくつかの実装形態において、ランク付けエンジン130は、オプションで1つまたは複数の基準を使用してクエリに応答する1つまたは複数のエントリの各々に対するスコアを計算する。エントリのスコアは、それ自体がエントリに対するランキングとして使用されてもよいか、または他のエントリと比較され(他のエントリが決定されている場合)エントリのランキングを決定してもよい。エントリをランク付けするために使用される各基準は、エントリそれ自体および/またはエントリと自然言語入力との間の関係に関する情報を提供する。
【００５２】
いくつかの実装形態において、所与のエントリのランキングは、自然言語入力に対して生成された意味ラベルへのエントリの記述メタデータの意味ラベルの適合性に基づいてもよい。たとえば、自然言語入力の1つまたは複数の語に対する意味ラベルが所与のエントリの記述メタデータにおける意味ラベルと一致する場合、所与のエントリのランキングはプラスの影響を受けてもよい。
【００５３】
いくつかの実装形態において、所与のエントリのランキングは、それに加えておよび/または代替的に自然言語入力が受信されたときのユーザの現在位置(たとえば、コンテキストエンジン124によって決定される)の位置メタデータの適合性に基づいてもよい。たとえば、ユーザの現在位置が所与のエントリの位置メタデータによって指示される位置と同じであるかまたは位置の閾値距離内にある場合、所与のエントリのランキングはプラスの影響を受けてもよい。
【００５４】
いくつかの実装形態において、所与のエントリのランキングは、それに加えておよび/または代替的に自然言語入力が受信されたときのユーザの現在の日付および/または時刻(たとえば、コンテキストエンジン124によって決定される)の時間メタデータの適合性に基づいてもよい。たとえば、現在の日付が所与のエントリの時間データによって指示される日付の閾値の範囲内にある場合、所与のエントリは、現在の日付が閾値の範囲内になかった場合よりも格上げされてもよい。
【００５５】
いくつかの実装形態において、所与のエントリのランキングは、それに加えておよび/または代替的に所与のエントリに対するmemorynessメタデータに基づいてもよい。たとえば、memorynessメタデータに含まれるか、またはmemorynessメタデータによって定義された尺度が閾値の条件を満たす場合、所与のエントリのランキングは、尺度が閾値の条件を満たさなかった場合よりも格上げされてもよい。サーチエンジン128が公開データベース154からの第1のエントリおよびパーソナルデータベース152からの第2のエントリを識別するいくつかの実装形態において、エントリのランキングは、自然言語入力がユーザのパーソナルデータベースからの個人情報の要求として意図されているかどうか、および/またはそれがどの程度かに基づいてもよい(たとえば、サーチエンジン128に関して上で説明されるように)。たとえば、自然言語入力の特性が、それがユーザのパーソナルデータベースからの個人情報に対する要求である可能性が高いことを指示している場合に、公開データベース154からの識別されたエントリは格下げされてもよい。
【００５６】
出力生成エンジン132は、サーチエンジン128によって識別された1つまたは複数のエントリのコンテンツ、およびオプションでランク付けエンジン130によって決定されたエントリのランキングを利用して、提供された自然言語入力への応答としてユーザに提示するための出力を生成する。たとえば、出力生成エンジン132は、ランキングに基づいて識別されたエントリのサブセット(たとえば、1つのエントリ)を選択してもよく、選択されたサブセットに基づいて出力を生成してもよい。また、たとえば出力生成エンジン132は、それに加えておよび/または代替的にそのランキングを利用して、生成された応答内のコンテンツの複数の断片の提示順序を(コンテンツの複数の断片の導出元のエントリのランキングに基づいて)決定してもよい。
【００５７】
所与のパーソナルデータベースエントリに基づいて出力を生成する際に、出力生成エンジン132は、所与のエントリが生成された自然言語入力からのものである所与のエントリの語のうちの1つまたは複数を含んでもよく、および/またはそのエントリに対する生成された記述メタデータに基づく出力を含んでもよい。
【００５８】
次に図2Aおよび図2Bを参照すると、自動化パーソナルアシスタント120の様々なコンポーネントの追加の説明がなされている。
【００５９】
図2Aにおいて、ユーザは、コンピューティングデバイス1061の1つまたは複数のユーザインターフェース入力デバイスを利用して、自然言語入力201Aをメッセージ交換クライアント1071に提供し、これは自然言語入力201Aを入力処理エンジン122に送信する。自然言語入力201Aは、本明細書で説明されるように自由形式入力であってもよく、たとえばコンピューティングデバイスの物理もしくは仮想キーボードを介して提供されるタイプ入力された入力またはユーザによってコンピューティングデバイスのマイクロフォンに送られる発話入力であってもよい。自然言語入力201Bが発話入力である実装形態において、これは、オプションでコンピューティングデバイスによっておよび/または入力処理エンジン122による文字起こしでテスト入力にされてもよい。
【００６０】
入力処理エンジン122は、自然言語入力201Aを処理し、自然言語入力の様々な注釈を生成する。入力処理エンジン122は、注釈付き入力(たとえば、自然言語入力201Aおよび生成された注釈の語)202Aをエントリ生成エンジン126に提供する。
【００６１】
コンテキストエンジン124は、自然言語入力201Aを受信することに関連付けられたコンテキスト特徴を決定する。たとえば、コンテキストエンジン124は、メッセージ交換クライアント1071によって提供されるデータ(たとえば、タイムスタンプ、位置データ)および/または他のアプリケーションおよび/またはクライアントコンピューティングデバイス1061のオペレーティングシステムに基づいてコンテキスト特徴を決定してもよい。いくつかの実装形態において、コンテキスト特徴204は、以下で説明されるように、(たとえば、ユーザ位置および/または他のコンテキスト特徴に基づいて実体解決および/または他の決定を改善するために)エントリ生成エンジン126によって利用されてもよく、および/または入力処理エンジン122によって利用されてもよい。
【００６２】
エントリ生成エンジン126は、ユーザに対するパーソナルデータベースエントリ203を生成し、それをパーソナルデータベース152に記憶する。エントリ203を生成する際に、エントリ生成エンジン126は、自然言語入力201Aの1つまたは複数の語、入力処理エンジン122によって提供される自然言語入力の注釈付き入力202A、および/またはコンテキストエンジン124によって提供されるコンテキスト特徴204を利用してもよい。
【００６３】
図2Bは、ユーザの1つまたは複数のパーソナルデータベースエントリに基づいて、ユーザのさらなる自由形式自然言語入力に応答する自然言語出力を生成する一例を示す。図2Bの例は、図2Aの例の後に出現してもよく、図2Bにおいて生成されるエントリ203を利用してもよい。
【００６４】
図2Bにおいて、ユーザは、コンピューティングデバイス1061の1つまたは複数のユーザインターフェース入力デバイスを利用して、さらなる自然言語入力201Bをメッセージ交換クライアント1071に提供し、これは自然言語入力201Bを入力処理エンジン122に送信する。自然言語入力201Bは、本明細書で説明されるように自由形式入力であってもよく、たとえばコンピューティングデバイスの物理もしくは仮想キーボードを介して提供されるタイプ入力された入力またはユーザによってコンピューティングデバイスのマイクロフォンに送られる発話入力であってもよい。
【００６５】
入力処理エンジン122は、自然言語入力201Aを処理し、自然言語入力の様々な注釈を生成する。入力処理エンジン122は、注釈付き出力(たとえば、自然言語入力201Bおよび生成された注釈の語)202Bをサーチエンジン128に提供する。
【００６６】
サーチエンジン128は、注釈付き入力202Bに基づいて1つまたは複数の検索パラメータを生成し、それらの検索パラメータを利用して検索パラメータのうちの1つまたは複数と一致するコンテンツを含むパーソナルデータベース152および/または公開データベース154の1つまたは複数のエントリを決定する。本明細書において説明されるように、いくつかの実装形態において、サーチエンジン128は、自然言語入力201Bの1つまたは複数の特性に基づいて自然言語入力201Bに応答してパーソナルデータベース152のみを検索してもよい。サーチエンジン128は、パーソナルデータベース152のエントリ203が1つまたは複数の検索パラメータとエントリ203のコンテンツとの一致に基づいて検索に応答すると判定する。
【００６７】
サーチエンジン128は、オプションでエントリ203に対するランキングを生成する、ランク付けエンジン130にエントリ203を提供する。たとえば、ランク付けエンジン130は、エントリ203に対するランク付けスコアが自然言語出力205を生成するためにエントリ203を利用して出力生成エンジン132を保証する閾値の条件を満たすかどうかを判定してもよい。コンテキストエンジン124は、自然言語出力201Bを受信することに関連付けられたコンテキスト特徴を決定し、それらのコンテキスト特徴をランク付けエンジン130に提供して、本明細書で説明されるようにランキングを生成する際に使用してもよい。サーチエンジン128が複数の対応するエントリを決定するいくつかの実装形態において、ランク付けエンジン130は、それらのランク付けを互いに関して行ってもよい。
【００６８】
出力生成エンジン132は、エントリ203のコンテンツを利用して、自然言語入力201Bへの応答としてユーザに提示する自然言語出力205を生成する。たとえば、出力生成エンジン132は、自然言語入力201Aからのものであるエントリ203の語のうちの1つまたは複数を含み、エントリ203に対する生成された記述メタデータに基づく1つまたは複数の語を含む出力205を生成してもよい。自然言語出力205は、クライアントコンピューティングデバイス1061のユーザインターフェース出力デバイスを介してユーザに聴覚的におよび/または視覚的に提示するためにメッセージ交換クライアント1071に提供される。サーチエンジン128が複数の応答エントリを識別するいくつかの実装形態において、出力生成エンジン132は、ランキングに基づいて識別されたエントリのサブセット(たとえば、1つのエントリ)を選択してもよく、選択されたサブセットに基づいて出力を生成してもよい。また、たとえば出力生成エンジン132はそれに加えておよび/または代替的に、そのランキングを利用して、生成された応答内のコンテンツの複数の断片の提示順序を(コンテンツの複数の断片の導出元のエントリのランキングに基づいて)決定してもよい。
【００６９】
次に図3A〜図3Gを参照すると、本明細書で説明される様々なコンポーネントおよび技術の追加の説明がなされている。図3Aは、クライアントコンピューティングデバイス1061のユーザと本明細書で説明される実装形態による自動化パーソナルアシスタント120との間に生じてもよい対話の一例を表示する表示画面140を備える図1のクライアントコンピューティングデバイス1061を示す。特に、対話は、ユーザによって自動化パーソナルアシスタントに提供される自然言語入力380A、380B、380C、および入力に応答してアシスタントがエントリをすでに生成していることを確認するために自動化パーソナルアシスタント120によってオプションで提供されてもよい応答390A、390B、390Cを含む。
【００７０】
他のいくつかの実装形態において、代替的応答は、自動化パーソナルアシスタント120によって提供されてもよい。たとえば、自然言語入力の明確化がより詳細なエントリを決定する際に必要であり、および/または有益である場合があるいくつかの実装形態において、自動化パーソナルアシスタントは、そのようなさらなる明確化を求めるプロンプトとともに応答してもよい。たとえば、自然言語入力380Aに応答して、自動化パーソナルアシスタント120は、ユーザの連絡先エントリ内の"Bob Smith"および"Bob White"の両方を識別してもよく、"Do you mean Bob Smith or Bob White?"などのプロンプトを生成して、特定の連絡先の決定および入力380Aに基づくエントリのさらなる手直しを可能にするためにさらなる入力をユーザに促してもよい。また、たとえば自然言語入力380Dに応答して、自動化パーソナルアシスタント120は、入力380Dが前の入力380Bと食い違っていると判定することがあり、アシスタント120はまた、"Should this replace the bike lock combination you provided on 5/5/16?"というプロンプトを出して、入力380Dに基づいて生成されたエントリが入力380Bに基づいて生成されたエントリを置き換えるべきかどうかを判定する場合がある。
【００７１】
図3Aはまた、様々な入力380A〜Dの各々をユーザが提供した日時を括弧に入れて示す。本明細書で説明されるように、日時は、記述メタデータを生成する際に利用されてもよい。日付および/または時刻は、オプションでユーザに提供される表示には示されない場合があるが、図3Aには分かりやすくするために例示される。
【００７２】
表示画面140は、ユーザが仮想キーボードを介してユーザ入力を生成するために選択してもよいテキスト応答インターフェース要素384と、ユーザがマイクロフォンを介してユーザ入力を生成するためにユーザが選択してもよい音声応答インターフェース要素385とをさらに含む。表示画面140はまた、コンピューティングデバイス1061に1つまたは複数のアクションを実行させるためにユーザがインタラクティブに操作してもよいシステムインターフェース要素381、382、383を備える。
【００７３】
図3A、図3B、図3C、図3D、図3E、図3F、および図3Gは、例示的なクライアントコンピューティングデバイス1061の一部を例示し、表示画面140が本明細書で説明される実装形態による図3Aの対話の後に生じてもよい対話を表示する。
【００７４】
図3Bにおいて、ユーザは、後で、"who has my bike helmet?"というさらなる自然言語入力380Eを提供する。自動化パーソナルアシスタント120は、"On May 1st you told me that Bob had your bike helmet"という応答390Eを提供する。応答390Eは、"where is my bike helmet"に基づいて検索を発行することと、検索に応答して、図3Aのユーザ入力380Aに基づく作成されたエントリを識別することと、応答390Eを生成するためにそのエントリを使用することとによって生成されてもよい。たとえば、ユーザ入力380Aに対して生成されたエントリは、語"Bob has my bike helmet"および"Bob"に関連付けられた"person"という意味ラベル、"bike helmet"に関連付けられた"object"という意味ラベル、ならびに5月1日および/または午前8時を示す時間メタデータの記述メタデータを含んでもよい。また、たとえば"bike helmet"という第1の検索パラメータおよび"person"という意味ラベル(ユーザ入力380E内の"who"の存在に基づく)の第2の検索パラメータを含む検索などの検索がユーザ入力380Eに基づいて発行されてもよい。入力380Aに対するエントリは、第1の検索パラメータと一致する語および第2の検索パラメータと一致する意味ラベルを有することに基づいて識別されてもよい。応答390Eは、入力380Aに対するエントリからの時間メタデータ("On May 1st")と入力380Aに対するエントリからのテキスト("Bob has your Bike helmet")とを含むように生成されてもよい。
【００７５】
図3Cにおいて、ユーザは、後で、"when did I put tires on my bike?"というさらなる自然言語入力380Fを提供する。自動化パーソナルアシスタントは、"May 7th, 2016"という応答390Fを提供する。応答390Fは、"when did I put tiers on my bike"に基づいて検索を発行することと、検索に応答して、図3Aのユーザ入力380Bに基づく作成されたエントリを識別することと、応答390Fを生成するためにそのエントリを使用することとによって生成されてもよい。たとえば、ユーザ入力380Bに対して生成されたエントリは、"put new tires on my bike on May 7th, 2016"という語を含んでもよい。このエントリは、エントリ生成エンジン126が"today"をユーザ入力380Bが受信されたときの日付で置き換えることに基づいて(たとえば、入力処理エンジン122によって提供される注釈に基づいて)"May 7th, 2016"という語を"today"(ユーザ入力380Bで提供される)の代わりに含んでもよい。ユーザ入力380Bに対して生成されたエントリはまた、May 7th, 2016を指示する時間メタデータおよびエントリの"May 7th, 2016"という語に関連付けられた"when"という意味ラベルの記述メタデータを含むものであってもよい。また、たとえば"tires"という第1の検索パラメータ、"bike"という第2の検索パラメータ、および"when"という意味ラベル(ユーザ入力380F内の"when"の存在に基づく)の第3の検索パラメータを含む検索などの検索がユーザ入力380Fに基づいて発行されてもよい。入力380Bに対して生成されたエントリは、第1の検索パラメータおよび第2の検索パラメータと一致する語を有することと、第3の検索パラメータと一致する意味ラベルメタデータを有することとに基づいて識別されてもよい。応答390Fは、入力380Bに対するエントリからの"May 7th, 2016"という語のみを含むように、それらの語が第3の検索パラメータと一致する意味ラベルメタデータに関連付けられたことに基づいて生成されてもよい。
【００７６】
図3Dおよび図3Eは、"What is my bike lock combination"というさらなる自然言語入力380G1および380G2を示す。ユーザ入力380B(図3A)に対して生成された第1のエントリおよびユーザ入力380D(図3A)に対して生成された第2のエントリは、両方とも、自然言語入力380G1、380G2の検索に基づいて識別されてもよい。図3Dにおいて、ユーザ入力380Dに対する第2のエントリに基づいて生成される応答390Gは、ユーザ入力380Bに対する第1のエントリに基づいて生成される出力を提供することなく提供される。これは、1つまたは複数の基準に基づいて第1のエントリおよび第2のエントリをランク付けすることと、第2のエントリは第1のエントリより高いランクを付けられていると判定することとに基づいてもよい。たとえば、第2のエントリは、第2のエントリに対する時間メタデータが第1のエントリに対する時間メタデータより現在の時刻に近いことに基づいて高いランクを付けられてもよい。
【００７７】
図3Dの例において、応答390Gは、ユーザ入力380Dに対する第2のエントリに基づいて生成され、しかもユーザ入力380Bに対する第1のエントリに基づいて生成される出力を提供することがない。2つの答えのうちの一方のみからコンテンツを提供することは、システム設定、表示画面140のサイズなどの様々な要素に基づいて、および/または単一の答えのみが望まれていることを理解するために入力380G1の処理に基づいてもよい。しかしながら、いくつかの実装形態において、応答は第1のエントリおよび第2のエントリの両方に基づいて生成される出力を含んでもよい。
【００７８】
図3Eの例において、ユーザ入力380Dに対する第2のエントリおよびユーザ入力380Bに対する第1のエントリの両方に基づく応答390Hが生成される。応答390Hにおいて、第2のエントリに対応する応答390Hの部分は、第1のエントリに基づく部分の前に提示される。これは、たとえば第2のエントリのランキングが第1のエントリのランキングより高いことに基づく(たとえば、第2のエントリに対する時間メタデータが第1のエントリに対する時間メタデータより現在の時刻に近いことに基づく)ものであってもよい。
【００７９】
図3Fにおいて、ユーザは、後で、"How do I put tires on my bike?"というさらなる自然言語入力380Hを提供する。自動化パーソナルアシスタント120は、バイクに新しいタイヤを履くためのステップの一部を含む応答390Iを提供する。応答390Iは、公開データベース154の公開エントリに基づいて自動化パーソナルアシスタント120によって生成されてもよい応答の一例である。さらなる自然言語入力380Hは、ユーザ入力380C(図3A)に基づいて生成された個人用エントリにも含まれてもよい"tires"および"bikes"という語を含むものの、自動化パーソナルアシスタント120は、個人用エントリに基づく応答コンテンツを提供しない。これは、様々な要素のうちの1つまたは複数に基づいてもよい。たとえば、入力380Hに対する意味ラベル(たとえば、"How"に関連付けられたラベル)は、ユーザ入力380Cに基づいて生成された個人用エントリに対する意味ラベルと一致しない場合がある。これは、エントリが決定されないことを引き起こし、および/またはそのエントリのランク付けにマイナスの影響を及ぼす場合がある。別の例として、応答390Iを生成するために利用される公開エントリに対するランキングは、個人用エントリのランキングより高い場合があり、応答を指示する規則に基づく公開エントリのみに基づいて生成された応答390Iは、最高のランクを付けられたエントリのみに基づいて、および/または次に高いランクを付けられたエントリに関してそのランキングスコアが閾値の条件を満たしたときに最高のランクを付けられたエントリのみに基づいて生成されるべきである。
【００８０】
図3Gにおいて、ユーザは、後で、"new tires on my bike?"というさらなる自然言語入力380Iを提供する。自動化パーソナルアシスタント120は、プライベートデータベースエントリからのコンテンツおよび公開データベースからのコンテンツを含む応答390Jを提供する。特に、応答390Jは、入力380C(図3A)に対して生成された個人用エントリに基づくコンテンツ("You put new tires on your bike on May 7th, 2016")を含む。応答390Jはまた、公開データベース154の公開エントリに基づいてもよいコンテンツ("Do you want to learn how to install new bike tires?")を含む。自動化パーソナルアシスタント120は、"new"、"tires"、および"bike"の検索パラメータをエントリのコンテンツと照合することに基づいて入力380Cについて生成されたエントリに基づくコンテンツを含んでもよい。いくつかの実装形態において、プライベートデータベースエントリからのコンテンツは、コンテンツの基礎となるエントリのランキングに基づいて公開データベースからのコンテンツの前に提示されてもよい。
【００８１】
図4Aは、クライアントコンピューティングデバイス1061のユーザと本明細書で説明される実装形態による自動化パーソナルアシスタント120との間に生じてもよい対話の別の例を表示する表示画面140を備えるクライアントコンピューティングデバイス1061を示す。特に、対話は、ユーザによって自動化パーソナルアシスタント120に提供される自然言語入力480Aおよび480B、ならびに入力に応答してアシスタント120がエントリをすでに生成していることを確認するために自動化パーソナルアシスタント120によってオプションで提供されてもよい応答490Aおよび490Bを含む。図4Aはまた、入力480Aおよび480Bの各々をユーザが提供した日時を括弧に入れて示す。本明細書で説明されるように、日時は、記述メタデータを生成する際に利用されてもよい。日付および/または時刻は、オプションでユーザに提供される表示には示されない場合があるが、図4Aには分かりやすくするために例示される。
【００８２】
表示画面140は、ユーザが仮想キーボードを介してユーザ入力を生成するために選択してもよいテキスト応答インターフェース要素484と、ユーザがマイクロフォンを介してユーザ入力を生成するためにユーザが選択してもよい音声応答インターフェース要素485とをさらに含む。表示画面140はまた、コンピューティングデバイス1061に1つまたは複数のアクションを実行させるためにユーザがインタラクティブに操作してもよいシステムインターフェース要素481、482、483を備える。
【００８３】
図4Aにおいて、ユーザは、"my locker combination is 7, 22, 40"を含む第1のユーザ入力480Aを提供し、それを"5/1/16"の"6:00 AM"に"Gym"において提供する。第1のエントリは、入力からの1つまたは複数の語を含み、"Gym"を示す位置メタデータを含み、5/1/16および/または午前6時を示す時間メタデータを含む第1のユーザ入力について作成されてもよい。図4Bにおいて、ユーザは、"my locker combination is 40, 20, 10"を含む第2のユーザ入力480Bを提供し、それを"5/10/16"の"08:00 AM"に"Work"において提供する。第2のエントリは、入力からの1つまたは複数の語を含み、"Work"を示す位置メタデータを含み、5/10/16および/または午前8時を示す時間メタデータを含む第1のユーザ入力について作成されてもよい。
【００８４】
図4Bおよび図4Cは各々、例示的なクライアントコンピューティングデバイス1061の一部を例示し、表示画面140が本明細書で説明される実装形態による図4Aの対話の後に生じてもよい対話を表示する。
【００８５】
図4Bにおいて、ユーザは、"What is my locker combination?"というさらなる入力480Cを提供し、それをユーザがGymにいる間の午前5時45分に提供する。自動化パーソナルアシスタント120は、図4Aのユーザ入力480Aに対する第1のエントリに基づいて生成され、ユーザ入力480Bに対する第2のエントリに基づいて生成されるコンテンツを含まない応答490Cを提供する。これは、たとえばユーザの現在位置への第1のエントリの位置メタデータの適合性および/または現在の時刻への時間メタデータの適合性に基づいてもよい。これをユーザが"8:00 AM"に"Work"にいた状況と比較する。そのような状況では、応答は、第2のエントリに基づいて、第1のエントリと無関係に生成されてもよい。
【００８６】
図4Cにおいて、ユーザは、図4Bの入力480Cと同じである"What is my locker combination?"というさらなる入力480Dを提供する。しかしながら、図4Cでは、ユーザはユーザが"Home"にいる間の午後6時に入力480Dを提供する。自動化パーソナルアシスタント120は、図4Aのユーザ入力480Aに対する第1のエントリおよびユーザ入力480Bに対する第2のエントリの両方に基づいて生成される応答490Dを提供する。ただ1つのエントリの代わりに両方のエントリに基づいて応答を生成することは、たとえばエントリのいずれかの位置メタデータに強く適合しないユーザの現在位置および/またはエントリのいずれかの時間メタデータに強く適合しない現在時刻に基づいてもよい。応答490Dにおいて、第2のエントリに基づいて生成されたコンテンツは、第2のエントリの時間メタデータの日付が第1のエントリよりも現在の日付に近いことに基づいて第1のエントリに基づいて生成されるコンテンツの前に提示されてもよい。
【００８７】
図3A〜図3Gおよび図4A〜図4Cは、ユーザに提供されてもよい例示的なグラフィカルユーザインターフェースを示すが、様々な実装形態において自動化パーソナルアシスタント120によって提供される応答は、必ずしもそれらの応答のグラフィックによる指示を提示することなく聴覚的に(たとえば、スピーカーを介して)提示するために提供されてもよいことが理解される。たとえば、ユーザは、マイクロフォンを介して自然言語入力を提供してもよく、自動化パーソナルアシスタント120は、聴覚的に提示を行うように構成される出力とともにそのような入力に応答してもよい。
【００８８】
図5Aおよび図5Bは、ユーザによって作成された自由形式自然言語入力に基づいてユーザに対するパーソナルデータベースエントリを生成し、パーソナルデータベースエントリの1つまたは複数に基づいて、ユーザのさらなる自由形式自然言語入力に応答する自然言語出力を生成する例示的な方法500を示すフローチャートである。便宜上、フローチャートの動作は、動作を実行するシステムを参照しつつ説明される。このシステムは、自動化パーソナルアシスタント120などの様々なコンピュータシステムの様々なコンポーネントを備えてもよい。さらに、方法500の動作が特定の順序で示されるが、これは制限することを意味しない。1つまたは複数の動作が、順序変更、省略、または追加されてもよい。
【００８９】
ブロック550において、システムは自然言語入力を待つ。
【００９０】
ブロック552において、システムは、1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって作成される自然言語入力を受信する。
【００９１】
ブロック554において、システムは、ブロック552の自然言語入力がユーザのパーソナルデータベースからの個人情報に対する要求などの個人情報に対する要求を指示するかどうかを判定する。たとえば、いくつかの実装形態において、システムは、それが1つまたは複数のキーとなる語(たとえば、"What"、"Who"、"Where"、"my"、"I"、および/または"don't forget")を含み、および/または入力のいくつかの位置におけるそれらの鍵となる語を含む場合にそれが個人情報に対する要求を指示すると判定してもよい。また、たとえばいくつかの実装形態において、システムは、それに加えておよび/または代替的にその入力が自然言語入力が個人情報に対する要求として意図されているかどうかおよび/またはそれがどの程度であるかを予測するようにトレーニングされた分類器に入力の少なくとも一部を提供したことに応答して受け取った出力に基づいて個人情報に対する要求を指示すると判定してもよい。いくつかの実装形態において、ブロック554はブロック562〜570の1つまたは複数の後に省略されるか(たとえば、ブロック562〜570の1つまたは複数が各入力について実行されてもよい)またはインスタンス化されてもよい(初めてまたは再び)(たとえば、ブロック554の決定は、エントリがブロック570で決定されたかどうかに基づいてもよく、および/または返されたエントリのコンテンツおよび/またはランキングに基づいてもよい)。
【００９２】
システムが、ブロック552の自然言語入力が情報に対する要求を指示しないと判定した場合、システムはブロック556に進み、そこでシステムは想起の望みを入力が指示しているかどうかを判定する。たとえば、いくつかの実装形態において、システムが、入力が入力中のいくつかの語("remember"、"don't forget")の存在に基づいておよび/または自然言語入力が"remembered"であるという望みを自然言語入力が指示しているかどうかおよび/またはそれがどの程度であるかを予測するようにトレーニングされた分類器に入力を提供したことに応答して受け取った出力に基づいて想起の望みを指示すると判定してもよい。いくつかの実装形態において、ブロック556は、省略されてもよい。たとえば、ブロック558および560のうちの1つまたは複数は、各入力について、またはブロック554で個人情報に対する要求を指示しないと判定され、および/または1つまたは複数の他の基準を満たす各入力について実行されてもよい。
【００９３】
システムが、ブロック556において、入力が想起の望みを指示しないと判定した場合、システムはブロック550に戻り、オプションでエラー出力を提供し(たとえば、"I don't understand your request")、および/または他の示されていないブロック(たとえば、公開データベースを検索しおよび/または他の出力を提供するためのブロック)に進んだ後にさらなる自然言語出力を待つ。
【００９４】
システムが、ブロック556において、ブロック552の自然言語入力が想起の望みを指示していると判定した場合、システムはブロック558に進み、そこでシステムはユーザのパーソナルデータベース内にブロック552の入力に対するエントリを生成する。
【００９５】
いくつかの実装形態において、ブロック558を実行する際に、システムは、ブロック558Aで(たとえば、入力の語および/または入力を受信することに関連付けられたコンテキスト特徴に基づいて)エントリに対する記述メタデータを生成し、ブロック552の入力の1つまたは複数の語および生成された記述メタデータをブロック558においてエントリに記憶する。次いで、システムは、オプションで入力に対してエントリが生成されていることを確認する出力を提供することなどの1つまたは複数の他のアクションをブロック560において実行してもよく、次いでブロック550に戻る。
【００９６】
ブロック554に戻ると、システムがブロック554においてブロック552の入力が要求を指示すると判定した場合、システムはブロック562(図5B)に進む。
【００９７】
ブロック562において、システムは、ブロック552の入力に基づいて1つまたは複数の検索パラメータを決定する。ブロック564において、システムは、ブロック562において決定された検索パラメータに基づいてユーザのパーソナルデータベースを検索する。
【００９８】
ブロック566において、システムは、検索に応答するパーソナルデータベースの少なくとも1つの個人用エントリを決定する。ブロック568において、システムは、ブロック566において決定された少なくとも1つの個人用エントリのコンテンツに基づいて自然言語出力を生成する。いくつかの実装形態において、システムは、その個人用エントリに対するランキングが閾値の条件を満たしているときのみ個人用エントリに基づいて出力を生成してもよい。ランキングは、個人用エントリそれ自体に対するものであってもよいか、または検索に応答するとブロック566において決定されてもよい1つまたは複数の他の個人用エントリに関する個人用エントリに対するものであってもよい。
【００９９】
ブロック570において、システムは、1つまたは複数のユーザインターフェース出力デバイスを介してユーザに提示するためのブロック568の出力を提供する。次いで、システムは、ブロック550(図5A)に戻り、さらなる自然言語入力が来るのを待つ。
【０１００】
図5Aおよび図5Bに例示されていないが、いくつかの実装形態において、システムは、オプションで方法500において1つまたは複数の公開データベースを検索してもよく、オプションで公開データベースからのコンテンツとともに出力を生成してもよい。そのような公開データベースコンテンツは、個人用エントリのコンテンツと組み合わせて、および/または個人用エントリのコンテンツの代わりに出力に含まれてもよい。
【０１０１】
図6は、本明細書で説明される技術のうちの1つまたは複数の態様を実行するためにオプションで実行されてもよい例示的なコンピューティングデバイス610のブロック図である。いくつかの実装形態において、クライアントコンピューティングデバイス1061〜N、自動化パーソナルアシスタント120、および/または他のコンポーネントのうちの1つまたは複数は、例示的なコンピューティングデバイス610の1つまたは複数のコンポーネントを含んでもよい。
【０１０２】
コンピューティングシステム610は、典型的には、バスサブシステム612を介して多数の周辺デバイスと通信する少なくとも1つのプロセッサ614を備える。これらの周辺デバイスは、たとえばメモリサブシステム625およびファイルストレージサブシステム626を含むストレージサブシステム624、ユーザインターフェース出力デバイス620、ユーザインターフェース入力デバイス622、およびネットワークインターフェースサブシステム616を含んでもよい。入力および出力デバイスは、ユーザとコンピューティングデバイス610とのインタラクションを可能にする。ネットワークインターフェースサブシステム616は、外部ネットワークへのインターフェースを備え、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
【０１０３】
ユーザインターフェース入力デバイス622は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどの音声入力デバイス、マイクロフォン、および/または他の種類の入力デバイスを含んでもよい。一般に、「入力デバイス」という用語の使用は、情報をコンピューティングデバイス610内に、または通信ネットワーク上に入力するためのすべての可能な種類のデバイスおよび方法を含むことが意図される。
【０１０４】
ユーザインターフェース出力デバイス620は、表示サブシステム、プリンタ、ファックス機、または音声出力デバイスなどの非視覚的ディスプレイを含んでもよい。表示サブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生成するための他の何らかのメカニズムを含んでもよい。表示サブシステムは、音声出力デバイスなどを介して非視覚的ディスプレイも備えてもよい。一般に、「出力デバイス」という用語の使用は、情報をコンピューティングデバイス610からユーザまたは別のマシンもしくはコンピューティングデバイスに出力するためのすべての可能な種類のデバイスおよび方法を含むことが意図される。
【０１０５】
ストレージサブシステム624は、本明細書で説明されるモジュールのうちのいくつかまたはすべての機能を実現するプログラミングおよびデータ構造を記憶する。たとえば、ストレージサブシステム624は、図5Aおよび図5Bの方法の選択された態様を実行するための論理回路を備えてもよい。
【０１０６】
これらのソフトウェアモジュールは、一般的にプロセッサ614によって単独でまたは他のプロセッサと組み合わせて実行される。ストレージサブシステム624において使用されるメモリ625は、プログラム実行時に命令およびデータを記憶するための主ランダムアクセスメモリ(RAM)630、ならびに固定された命令が記憶されるリードオンリーメモリ(ROM)632を含む多数のメモリを備えることができる。ファイルストレージサブシステム626は、プログラムおよびデータファイル用の永続的記憶域を備えることができ、ハードディスクドライブ、関連する取り外し可能媒体を伴ったフロッピーディスクドライブ、CD-ROMドライブ、光ドライブ、または取り外し可能メディアカートリッジを含んでもよい。いくつかの実装形態の機能を実装するモジュールは、ファイルストレージサブシステム626によって、ストレージサブシステム624またはプロセッサ614によってアクセス可能な他のマシン内に記憶されてもよい。
【０１０７】
バスシステム612は、コンピューティングデバイス610の様々なコンポーネントおよびサブシステムに意図したとおりに互いに通信させるメカニズムを備える。バスシステム612は、単一のバスとして概略が図示されるが、バスシステムの代替的実装形態では、複数のバスを使用してもよい。
【０１０８】
コンピューティングデバイス610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類のデバイスであってもよい。コンピュータおよびネットワークはその性質上絶えず変化し続けるので、図6に示されるコンピューティングデバイス610の説明は、いくつかの実装を例示することを目的とする特定の例としてのみ意図されている。コンピューティングデバイス610の他の多くの構成は、図6に示されるコンピューティングデバイスよりも多い、または少ない構成要素を有するものが可能である。
【０１０９】
本明細書で説明されるシステムがユーザに関する個人情報を収集するか、または個人情報を利用してもよい状況において、ユーザは、プログラムまたは機能によりユーザ情報(たとえば、ユーザのソーシャルネットワークに関する情報、社会的行為もしくは活動、専門的職業、ユーザの選好、またはユーザの現在の地理的位置)を収集するかどうかを制御する、またはユーザに対してより高い関連性を有する思われるコンテンツをコンテンツサーバから受信するかどうか、および/またはどのように受信するかを制御する機会を与えられてもよい。また、特定データが、それが記憶されるか、または使用される前に1つまたは複数の方法で処理されてもよく、したがって個人識別可能情報は取り除かれる。たとえば、ユーザの身元は、ユーザに対して個人識別可能情報が決定され得ないように処理されてもよいか、または地理的位置情報(市名、郵便番号、国家レベルなど)が得られる場合にユーザの地理的位置が一般化されてもよく、したがって、ユーザの特定の地理的位置が決定されなくてもよい。したがって、ユーザは、ユーザに関して情報がどのように収集され、どのように使用されるかを制御してもよい。
【０１１０】
いくつかの実装形態が本明細書において説明され例示されたが、機能を実行しおよび/または結果を取得するための様々な他の手段および/または構造体および/または本明細書において説明される利点のうちの1つまたは複数が利用され、そのような変更形態および/または修正形態の各々は本明細書で説明される実装形態の範囲内にあるとみなされる。より一般的には、本明細書で説明されるすべてのパラメータ、寸法、材料、および構成形状は例示的であり、実際のパラメータ、寸法、材料、および/または構成形状は教示が使用される特定の1つまたは複数のアプリケーションに依存することを意図されている。当業者であれば、単なる決まり切った実験を用いて、本明細書で説明される特定の実装形態と同等の多数の実装形態を認識するか、または確認することができるであろう。したがって、前述の実装形態は、例としてのみ提示されること、ならびに付属の請求項およびその等価物の範囲内で、具体的に説明され請求されている以外の方法でも実施されてもよいことは理解されるであろう。本開示の実装形態は、本明細書において説明される各個別の特徴、システム、物品、材料、キット、および/または方法に向けられる。それに加えて、2つまたはそれ以上のそのような特徴、システム、物品、材料、キット、および/または方法の任意の組合せは、そのような特徴、システム、物品、材料、キット、および/または方法が相互に矛盾することがなければ、本開示の範囲内に含まれる。
【符号の説明】
【０１１１】
106  クライアントコンピューティングデバイス
1061〜N  クライアントコンピューティングデバイス
1071〜N  メッセージ交換クライアント
120  自動化パーソナルアシスタント
122  入力処理エンジン
124  コンテキストエンジン
126  エントリ生成エンジン
128  サーチエンジン
130  ランク付けエンジン
132  出力生成エンジン
140  表示画面
152  パーソナルデータベース
154  公開データベース
201A  自然言語入力
201B  自然言語入力
202A  注釈付き入力
202B  注釈付き入力
203  パーソナルデータベースエントリ
204  コンテキスト特徴
205  自然言語出力
380A、380B、380C、380D  自然言語入力
380E  ユーザ入力
380F  自然言語入力
380G1、380G2  自然言語入力
380H  自然言語入力
381、382、383  システムインターフェース要素
384  テキスト応答インターフェース要素
385  音声応答インターフェース要素
390A、390B、390C  応答
390E  応答
390F  応答
390G  応答
390H  応答
390I  応答
390J  応答
480A、480B  自然言語入力
480C  入力
480D  入力
481、482、483  システムインターフェース要素
484  テキスト応答インターフェース要素
485  音声応答インターフェース要素
490A、490B  応答
490C  応答
490D  応答
610  コンピューティングデバイス
612  バスサブシステム
614  プロセッサ
616  ネットワークインターフェースサブシステム
620  ユーザインターフェース出力デバイス
622  ユーザインターフェース入力デバイス
624  ストレージサブシステム
625  メモリサブシステム
626  ファイルストレージサブシステム
【図１】
2019519037.tif 000003
【図２Ａ】
2019519037.tif 000004
【図２Ｂ】
2019519037.tif 000005
【図３Ａ】
2019519037.tif 000006
【図３Ｂ】
2019519037.tif 000007
【図３Ｃ】
2019519037.tif 000008
【図３Ｄ】
2019519037.tif 000009
【図３Ｅ】
2019519037.tif 000010
【図３Ｆ】
2019519037.tif 000011
【図３Ｇ】
2019519037.tif 000012
【図４Ａ】
2019519037.tif 000013
【図４Ｂ】
2019519037.tif 000014
【図４Ｃ】
2019519037.tif 000015
【図５Ａ】
2019519037.tif 000016
【図５Ｂ】
2019519037.tif 000017
【図６】
2019519037.tif 000018
【手続補正書】
【提出日】平成31年1月9日(2019.1.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実行される方法であって、
第1の自然言語入力を受信するステップであって、前記第1の自然言語入力はユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介して前記ユーザによって作成される自由形式入力である、ステップと、
1つまたは複数のコンピュータ可読記憶媒体に記憶された前記ユーザのパーソナルデータベース内の前記第1の自然言語入力に対するエントリを生成するステップであって、
前記エントリ内に、前記第1の自然言語入力の語のうちの1つまたは複数の所与の語または前記所与の語の識別子を記憶するステップと、
記述メタデータを、
前記第1の自然言語入力の前記語のうちの1つまたは複数、および
前記第1の自然言語入力を受信するステップに関連付けられた1つまたは複数のコンテキスト特徴
のうちの少なくとも1つに基づいて生成するステップと、
前記記述メタデータを前記エントリに記憶するステップと
を含む、ステップと、
前記第1の自然言語入力を受け取った後に第2の自然言語入力を受信するステップであって、前記第2の自然言語入力は前記ユーザインターフェース入力デバイスまたは前記ユーザの追加のコンピューティングデバイスの追加のユーザインターフェース入力デバイスを介して前記ユーザによって作成される自由形式入力である、ステップと、
前記第2の自然言語入力に基づいて少なくとも1つの検索パラメータを決定するステップと、
前記検索パラメータに基づいて前記パーソナルデータベースを検索するステップと、
前記検索するステップに基づいて、前記エントリが前記第2の自然言語入力に応答すると判定するステップであって、少なくとも一部が前記検索パラメータと前記記述メタデータのうちの少なくともいくつかとの一致に基づく、ステップと、
前記エントリに基づく1つまたは複数の自然言語出力語を含む自然言語出力を生成するステップと、
前記第2の自然言語入力に応答して、前記コンピューティングデバイスまたは前記追加のコンピューティングデバイスのユーザインターフェース出力デバイスを介して前記ユーザに提示するための前記自然言語出力を提供するステップと
を含む、方法。
【請求項２】
前記記述メタデータを生成するステップは、前記第1の自然言語入力の前記所与の語ろ、前記第1の自然言語入力を受信するステップに関連付けられた前記1つまたは複数のコンテキスト特徴との両方に基づく、請求項1に記載の方法。
【請求項３】
前記記述メタデータを生成するステップは、前記第1の自然言語入力を受信するステップに関連付けられた1つまたは複数のコンテキスト特徴に基づき、前記1つまたは複数のコンテキスト特徴に基づいて前記記述メタデータを生成するステップは、
前記記述メタデータの時間メタデータを生成するステップであって、前記時間メタデータは前記第1の自然言語入力が受信された日付または時刻を指示する、ステップを含む、請求項1または2に記載の方法。
【請求項４】
前記少なくとも1つの検索パラメータは時間検索パラメータであり、前記エントリが前記第2の自然言語入力に応答すると判定するステップは、前記時間検索パラメータを前記時間メタデータと照合するステップを含む、請求項3に記載の方法。
【請求項５】
追加のエントリが前記第2の自然言語入力に応答すると判定するステップと、
前記エントリを前記追加のエントリの代わりに選択するステップであって、現在の日付または時刻と前記エントリの前記時間メタデータとの適合性に基づく、ステップと
をさらに含み、
前記エントリの前記所与の語のうちの少なくともいくつかを含む前記自然言語出力を提供するステップは、前記エントリを選択したことに応答し、前記追加のエントリは、前記自然言語出力を生成する際に利用されず、前記追加のエントリに基づく出力が前記第2の自然言語入力に応答して提供されない、
請求項3または4に記載の方法。
【請求項６】
前記自然言語出力を生成するステップは、前記エントリの前記時間メタデータに基づいて前記自然言語出力の1つまたは複数の時間語を生成するステップを含む、請求項3から5のいずれか一項に記載の方法。
【請求項７】
前記記述メタデータを生成するステップは、前記第1の自然言語入力を受信するステップに関連付けられた1つまたは複数のコンテキスト特徴に基づき、前記記述メタデータを生成するステップは、
前記記述メタデータの位置メタデータを生成するステップであって、前記位置メタデータは前記第1の自然言語入力が受信されたときの前記ユーザの位置を指示する、生成するステップ
を含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記少なくとも1つの検索パラメータは位置検索パラメータであり、前記エントリが前記第2の自然言語入力に応答すると判定するステップは、前記位置検索パラメータを前記位置メタデータと照合するステップを含む、請求項7に記載の方法。
【請求項９】
追加のエントリが前記第2の自然言語入力に応答すると判定するステップと、
前記エントリを前記追加のエントリの代わりに選択するステップであって、前記ユーザの現在の位置と前記エントリの前記位置メタデータとの適合性に基づく、ステップと
をさらに含み、
前記エントリの前記所与の語のうちの少なくともいくつかを含む前記自然言語出力を提供するステップは前記エントリを選択したことに応答し、前記追加のエントリは、前記自然言語出力を生成する際に利用されず、前記追加のエントリに基づく出力は前記第2の自然言語入力に応答して提供されない、
請求項7または8に記載の方法。
【請求項１０】
前記自然言語出力を生成するステップは、前記エントリの前記位置メタデータに基づいて前記自然言語出力の1つまたは複数の位置語を生成するステップを含む、請求項7から9のいずれか一項に記載の方法。
【請求項１１】
前記第1の自然言語入力は、前記ユーザと少なくとも1人の追加のユーザとの間の通信中に提供され、前記記述メタデータを生成するステップは、前記第1の自然言語入力を受信するステップに関連付けられた1つまたは複数のコンテキスト特徴に基づき、前記記述メタデータを生成するステップは、
前記記述メタデータの追加のユーザメタデータを生成するステップであって、前記追加のユーザメタデータは前記第1の自然言語入力が受信されたときに前記ユーザと通信している前記追加のユーザを識別する、ステップを含む、請求項7から10のいずれか一項に記載の方法。
【請求項１２】
前記ユーザと前記追加のユーザとの間の前記通信は、前記ユーザの前記コンピューティングデバイスの第1のメッセージ交換クライアントおよび前記追加のユーザの追加のユーザコンピューティングデバイスの第2のメッセージ交換クライアントを介して行われる、請求項11に記載の方法。
【請求項１３】
前記記述メタデータを生成するステップは、前記第1の自然言語入力の前記語の1つまたは複数に基づいて、前記記述メタデータを前記第1の自然言語入力の前記語の1つまたは複数に基づいて生成するステップは、前記語の1つまたは複数に基づいて前記記述メタデータの意味ラベルを生成するステップであって、前記意味ラベルは前記1つまたは複数の語が属し、かつ第1の自然言語出力に含まれていない追加の語もまた属する分類を指示する、ステップを含む、請求項1から12のいずれか一項に記載の方法。
【請求項１４】
前記少なくとも1つの検索パラメータは意味検索パラメータであり、前記エントリが前記第2の自然言語入力に応答すると判定するステップは、前記意味検索パラメータを前記意味ラベルと照合するステップを含む、請求項13に記載の方法。
【請求項１５】
前記検索パラメータを決定するステップは、前記第2の自然言語入力のプレフィックスに基づく、請求項14に記載の方法。
【請求項１６】
追加のエントリが前記第2の自然言語入力に応答すると判定するステップと、
前記エントリを前記追加のエントリの代わりに選択するステップであって、前記ユーザの前記第2の自然言語入力と前記エントリの前記意味ラベルとの適合性に基づく、ステップと
をさらに含み、
前記エントリの前記所与の語のうちの少なくともいくつかを含む前記自然言語出力を提供するステップは前記エントリを選択したことに応答し、前記追加のエントリは、前記自然言語出力を生成する際に利用されず、前記追加のエントリに基づく出力は前記第2の自然言語入力に応答して提供されない、
請求項14または15に記載の方法。
【請求項１７】
前記第2の自然言語入力の前記語の少なくとも1つに基づいて、前記第2の自然言語入力が前記パーソナルデータベースからの情報に対する要求である可能性を指示する尺度を決定するステップをさらに含み、
前記検索するステップおよび前記提供するステップのうちの少なくとも一方は、前記尺度の大きさに依存する、
請求項1から16のいずれか一項に記載の方法。
【請求項１８】
1つまたは複数のプロセッサによって実行される方法であって、
第1の自然言語入力を受信するステップであって、前記第1の自然言語入力はユーザのコンピューティングデバイスのユーザインターフェース入力デバイスを介して前記ユーザによって作成される自由形式入力である、ステップと、
1つまたは複数のコンピュータ可読記憶媒体に記憶された前記ユーザのパーソナルデータベース内の前記第1の自然言語入力に対するエントリを生成するステップであって、
前記エントリ内に、前記第1の自然言語入力の語のうちの1つまたは複数の所与の語または前記所与の語の識別子を記憶するステップと、
記述メタデータを、
前記第1の自然言語入力の前記語のうちの1つまたは複数、および
前記第1の自然言語入力を受信するステップに関連付けられた1つまたは複数のコンテキスト特徴
のうちの少なくとも1つに基づいて生成するステップと、
前記記述メタデータを前記エントリに記憶するステップと
を含む、ステップと、
前記第1の自然言語入力を受け取った後に第2の自然言語入力を受信するステップであって、前記第2の自然言語入力は前記ユーザインターフェース入力デバイスまたは前記ユーザの追加のコンピューティングデバイスの追加のユーザインターフェース入力デバイスを介して前記ユーザによって作成される自由形式入力である、ステップと、
前記第2の自然言語入力に基づいて、少なくとも1つの検索パラメータを決定するステップと、
前記検索パラメータに基づいて前記パーソナルデータベースを検索するステップと、
前記検索するステップに基づいて、前記エントリが前記第2の自然言語入力に応答すると判定するステップであって、少なくとも一部が前記検索パラメータと前記エントリ内の前記所与の語のうちの少なくとも1つとの一致に基づく、ステップと、
前記検索するステップに基づいて、追加のエントリもまた前記第2の自然言語入力に応答すると判定するステップと、
前記記述メタデータの少なくともいくつかに基づいて前記追加のエントリに関して前記エントリをランク付けするステップと、
前記エントリに基づく1つまたは複数の自然言語出力語を含む自然言語出力を生成するステップと、
前記第2の自然言語入力に応答して、前記コンピューティングデバイスまたは前記追加のコンピューティングデバイスのユーザインターフェース出力デバイスを介して前記ユーザに提示するための前記自然言語出力を提供するステップであって、前記追加のエントリに関する前記エントリの前記ランクに基づく、ステップと
を含む、方法。
【請求項１９】
前記追加のエントリに関して前記エントリの前記ランキングに基づいて前記自然言語出力を提供するステップは、前記第2の自然言語入力に応答して前記追加のエントリに基づく出力を提供することなく前記自然言語出力を提供するステップを含む、請求項18に記載の方法。
【請求項２０】
前記追加のエントリに関する前記エントリの前記ランキングに基づいて前記自然言語出力を提供するステップは、前記自然言語出力を提供し、かつ前記追加のエントリに基づいて追加の出力を提供するステップと、前記ランキングに基づく順序で提示するために前記自然言語出力および前記追加の出力を提供するステップとを含む、請求項18に記載の方法。
【請求項２１】
デバイスであって、
メモリと1つまたは複数のプロセッサとを備え、前記メモリは、前記1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサに、
第1の自然言語入力を受信することであって、前記第1の自然言語入力はユーザインターフェース入力デバイスを介してユーザによって作成される自由形式入力である、受信することと、
1つまたは複数のコンピュータ可読記憶媒体に記憶された前記ユーザのパーソナルデータベース内の前記第1の自然言語入力に対するエントリを生成することであって、前記エントリを生成する際に、前記1つまたは複数のプロセッサは、
前記エントリ内に、前記第1の自然言語入力の語のうちの1つまたは複数の所与の語または前記所与の語の識別子を記憶することと、
記述メタデータを、
前記第1の自然言語入力の前記語のうちの1つまたは複数、および
前記第1の自然言語入力を受信することに関連付けられた1つまたは複数のコンテキスト特徴
のうちの少なくとも1つに基づいて生成することと、
前記記述メタデータを前記エントリに記憶することと、
前記第1の自然言語入力を受け取った後に第2の自然言語入力を受信することであって、前記第2の自然言語入力は前記ユーザインターフェース入力デバイスまたは追加のユーザインターフェース入力デバイスを介して前記ユーザによって作成される自由形式入力である、受信することと、
前記第2の自然言語入力に基づいて、少なくとも1つの検索パラメータを決定することと、
前記検索パラメータに基づいて前記パーソナルデータベースを検索することと、
前記検索することに基づいて、かつ少なくとも一部は前記検索パラメータと前記記述メタデータのうちの少なくともいくつかとの一致に基づいて、前記エントリが前記第2の自然言語入力に応答すると判定することと、
前記エントリに基づく1つまたは複数の自然言語出力語を含む自然言語出力を生成することと、
前記第2の自然言語入力に応答して、ユーザインターフェース出力デバイスを介して前記ユーザに提示するための前記自然言語出力を提供することと
を行わせる命令を記憶する、デバイス。
【請求項２２】
前記デバイスは、前記ユーザインターフェース入力デバイスと前記ユーザインターフェース出力デバイスとをさらに備える、請求項21に記載のデバイス。
【請求項２３】
前記デバイスは、前記パーソナルデータベースをさらに備える、請求項21または22に記載のデバイス。
【国際調査報告】
2019519037.tif 000019
2019519037.tif 000020