(57)【要約】メッセージング・アプリケーションは、メッセージング・アプリケーション内でユーザに提案を自動的に提供するために、１つ以上のメッセージにおけるコンテンツおよび／またはユーザ情報を自動的に分析することができる。提案は、特定の非メッセージング機能をメッセージング・アプリケーションに自動的に組み入れることができる。自動提案は、メッセージング・アプリケーションにおいて応答するためにユーザによって選択される１つ以上の適切な応答を提案してもよく、および／またはユーザに代わって１つ以上の適切な応答を自動的に送ってもよい。
2019506659.tif 000002
【特許請求の範囲】
【請求項１】
メッセージング・アプリケーションにおいてボット・サービスを自動的に提供するためのコンピュータ実装方法であって、
複数のユーザ間でのメッセージ交換スレッドの１つ以上のメッセージを受信する工程であって、前記１つ以上のメッセージの各々は、前記複数のユーザのうちの対応する１人によって、対応するメッセージング・アプリケーションを介してサブミットされ、前記複数のユーザは、第１ユーザと第２ユーザとを含む、工程と、
前記１つ以上のメッセージに基づいて第１タイプの第１ボットを決定する工程と、
前記１つ以上のメッセージに基づいて第２タイプの第２ボットを決定する工程であって、前記第２タイプは前記第１タイプとは異なる、工程と、を備え、
前記第１ボットおよび前記第２ボットを決定する工程は、前記１つ以上のメッセージのうちの所与のメッセージにおける１つ以上の語が前記第１ボットと前記第２ボットとの両方の起動に関連付けられていると決定する工程を含み、
前記コンピュータ実装方法は、さらに、
前記１つ以上のメッセージ内のコンテンツに基づいて前記第２ボットよりも前記第１ボットを選択する第１ボット選択工程と、
前記コンテンツに基づいてボットコマンドを前記第１ボットに送信する工程であって、前記ボットコマンドを前記第１ボットに送信する工程は、前記第１ボット選択工程に応じて行われる、工程と、
前記ボットコマンドを前記第１ボットに送信する工程に応じて、前記第１ボットから応答コンテンツを受信する工程と、
前記第１ボットからの前記応答コンテンツを、前記第１ユーザの対応するメッセージング・アプリケーションを介して少なくとも前記第１ユーザに提示するために提供する応答コンテンツ提供工程と、を備えるコンピュータ実装方法。
【請求項２】
前記第１ボット選択工程は、
前記１つ以上のメッセージからトピックを決定する工程と、
前記トピックに基づいて前記第１ボットを選択する工程と、を含む請求項１に記載のコンピュータ実装方法。
【請求項３】
前記第１ボット選択工程は、
前記１つ以上のメッセージに関する意味分析を実行する工程と、
前記意味分析に基づいて前記第１ボットを選択する工程と、を含む請求項１に記載のコンピュータ実装方法。
【請求項４】
前記第１ボット選択工程は、
前記１つ以上のメッセージのうちのさらなるメッセージにおける１つ以上のさらなる語に基づいて前記第１ボットを選択する工程を含み、前記１つ以上のさらなる語は、前記第１ボットの起動に関連付けられているが前記第２ボットの起動に関連付けられておらず、前記さらなるメッセージは、前記所与のメッセージよりも前に前記メッセージ交換スレッドにおいてサブミットされたメッセージである、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記第１ボット選択工程は、
前記メッセージ交換スレッドよりも前に、訓練セットデータから訓練済み機械学習モデルを生成する工程と、
前記訓練済み機械学習モデルに前記コンテンツを適用して、前記訓練済み機械学習モデルによって出力を生成する工程と、
前記第１ボットを示す前記出力に基づいて前記第１ボットを選択する工程と、を含む請求項１に記載のコンピュータ実装方法。
【請求項６】
前記第１ボット選択工程は、前記第１ユーザの位置と、前記第１ユーザに関連付けられているユーザ情報と、のうちの１つ以上にさらに基づく請求項１〜５のいずれか一項に記載のコンピュータ実装方法。
【請求項７】
情報源からの前記第１ボットに特化された追加情報を要求する工程と、
前記要求する工程に基づいて前記追加情報を受信する工程と、
前記追加情報に基づいて前記第１ボットに適合するように前記ボットコマンドを生成する工程と、を含む請求項１〜６のいずれか一項に記載のコンピュータ実装方法。
【請求項８】
前記１つ以上のメッセージが目的地に関連付けられていると決定する工程と、
前記第１ユーザが前記目的地にいるであろう時間を決定する工程と、をさらに備え、
前記ボットコマンドによって前記目的地と前記時間とが特定される請求項１〜７のいずれか一項に記載のコンピュータ実装方法。
【請求項９】
前記１つ以上のメッセージに基づいて前記第１ユーザが能動的役割に関連付けられていると決定する工程と、
前記第１ユーザが前記能動的役割に関連付けられていると決定する工程に基づいて、前記第１ボットから前記応答コンテンツを受信するよう、前記第２ユーザよりも前記第１ユーザを選択する工程と、
前記応答コンテンツ提供工程は、前記第２ユーザに提示するために前記応答コンテンツを提供することなく、前記第１ユーザへの提示のために前記応答コンテンツを提供することを含む請求項１〜８のいずれか一項に記載のコンピュータ実装方法。
【請求項１０】
前記応答コンテンツ提供工程に応じて、前記第１ボットに向けられた前記第１ユーザからの質問を受信する工程と、
前記質問を受信する工程に応じて、前記第１ボットに関連付けられているビジネスのビジネスオーナーに追加情報を問い合わせるように前記第１ボットに命令する工程と、
前記追加情報を含む回答を生成する工程と、
前記質問を受信する工程に応じて、前記第１ユーザに提示するために前記回答を提供する工程と、をさらに備える請求項１〜９のいずれか一項に記載のコンピュータ実装方法。
【請求項１１】
前記追加情報が新たな情報を含むと決定する工程と、
１つ以上のコンピュータ可読媒体において、前記新たな情報に基づいて前記ビジネスに関するビジネスプロファイルを更新する工程と、をさらに備える請求項１０に記載のコンピュータ実装方法。
【請求項１２】
前記応答コンテンツ提供工程は、
フィールドに入力されたテキストまたは選択を前記第１ボットに送る、フィールドを含むユーザインタフェースを前記第１ユーザに提供する工程を含む請求項１〜１１のいずれか一項に記載のコンピュータ実装方法。
【請求項１３】
前記１つ以上のメッセージに存在するセンチメント、句読点、および絵文字のうちの１つ以上に基づいて、前記第１ユーザの文体を決定する工程と、
前記第１ユーザの前記文体により、前記応答コンテンツを前記第１ユーザに提供する工程と、をさらに備える請求項１〜１３のいずれか一項に記載のコンピュータ実装方法。
【請求項１４】
コンピュータ実装方法であって、
第１ユーザと、他のユーザを含むグループとの間でのメッセージを受信する工程と、
前記メッセージと、前記第１ユーザと、前記他のユーザのうちの１人以上と、に関連付けられている文脈を決定する工程と、
前記メッセージと前記文脈とに基づいて、前記第１ユーザが前記グループと共有するのに提案される提案応答を決定する提案応答決定工程と、を備え、
前記提案応答決定工程は、
チャットボットが存在するか否かを判定する工程と、
前記チャットボットが存在することに応じて、前記提案応答を第１の組の自動提案応答として生成する工程と、
前記チャットボットが存在しないことに応じて、前記提案応答を第２の組の自動提案応答として生成する工程と、を含み、
前記コンピュータ実装方法は、さらに、
前記提案応答決定工程に応じて、前記第１ユーザに関連付けられているコンピューティングデバイスに、前記提案応答を選択可能な態様で視覚的にレンダリングさせるべく、コンピュータ実行可能命令を送信する工程を備える、コンピュータ実装方法。
【請求項１５】
前記第１ユーザから前記提案応答のワンタップ選択を受信する工程と、
前記ワンタップ選択を受信する工程に応じて、前記第１ユーザと前記グループとに関連付けられているコンピューティングデバイスに、前記提案応答を選択不可能な態様で視覚的にレンダリングさせるべく、コンピュータ実行可能命令を送信する工程と、をさらに備える請求項１４に記載のコンピュータ実装方法。
【請求項１６】
センサデータに基づいて、前記他のユーザのうちの第２ユーザが移動中であると判定する工程と、
前記第２ユーザが移動中であると判定する工程に応じて、前記第２ユーザに関連付けられているコンピューティングデバイスに、ワンタップ返信を可能にするコンピュータ実行可能命令を送信する工程と、をさらに備える請求項１４または請求項１５に記載のコンピュータ実装方法。
【請求項１７】
前記提案応答決定工程は、センサデータと、１つ以上のユーザプリファレンスと、会話履歴と、前記他のユーザの各々によって実行された１つ以上の最近のアクティビティと、のうちの１つ以上にさらに基づく請求項１４〜１６のいずれか一項に記載のコンピュータ実装方法。
【請求項１８】
前記他のユーザのうちの第２ユーザの位置に関係する地域と、市場と、国と、のうちの１つ以上における他のメッセージに基づいて、１つ以上のトレンディング応答を決定する工程をさらに備え、
前記提案応答は、前記１つ以上のトレンディング応答を含む請求項１４〜１６のいずれか一項に記載のコンピュータ実装方法。
【請求項１９】
前記メッセージは、前記他のユーザに関連付けられている位置に関する要求であり、前記提案応答は、前記他のユーザの各々に関する前記位置を含む請求項１４〜１８のいずれか一項に記載のコンピュータ実装方法。
【請求項２０】
前記提案応答は、前記グループと共有するための画像と、前記グループと共有するための位置と、第２ユーザと共有するためのカレンダイベントと、のうちの１つ以上を含む請求項１４〜１９のいずれか一項に記載のコンピュータ実装方法。
【請求項２１】
前記提案応答決定工程は、前記第１ユーザと、前記他のユーザのうちの第２ユーザと、のうちの１人以上のための個人用モデルが開発される機械学習を使用することにさらに基づく請求項１４〜１６のいずれか一項に記載のコンピュータ実装方法。
【請求項２２】
前記提案応答決定工程は、前記他のユーザのうちの第２ユーザのパーソナリティ特性にさらに基づいており、
前記コンピュータ実装方法は、さらに、
ユーモアと風刺とのうちの１つ以上を含むホワイトリストに基づいた前記１つ以上のメッセージにおける単語の分類と、絵文字の使用と、句読点の使用と、のうちの１つ以上に基づいて、前記第２ユーザの前記パーソナリティ特性を決定する工程を備える請求項１４〜１６のいずれか一項に記載のコンピュータ実装方法。
【請求項２３】
パーソナリティタイプと、前記提案応答が前記パーソナリティタイプに関連付けられている単語を組み込む程度と、を指定するオプションを含むグラフィカルユーザインタフェースを前記他のユーザのうちの第２ユーザに提供する工程をさらに備える請求項１４〜２２のいずれか一項に記載のコンピュータ実装方法。
【請求項２４】
前記メッセージの前記文脈は、到着推定時間の要求を含み、
前記提案応答決定工程は、前記第１ユーザの位置と、カレンダイベントの位置を含む前記カレンダイベントと、マッピング・アプリケーションからの目的地に関する情報と、のうちの１つ以上に基づいて、前記到着推定時間を決定する工程を含み、
前記提案応答は、前記到着推定時間を含む請求項１４〜１６のいずれか一項に記載のコンピュータ実装方法。
【請求項２５】
前記メッセージは、第１メッセージであり、
前記コンピュータ実装方法は、さらに、
会話において最後のメッセージが受信されてから経過した閾値に基づいて会話開始提案を決定する工程と、
前記グループに関連付けられているトピックと、トレンディングトピックと、前記グループに関連付けられている前記トピックに関係する最近のイベントと、前記ユーザのうちの１人に関連付けられているアクティビティと、のうちの１つ以上に基づいて前記会話開始提案を提供する工程と、を備える請求項１４〜２４のいずれか一項に記載のコンピュータ実装方法。
【請求項２６】
前記第１の組の自動提案応答は、前記チャットボットが従う会話ルールに基づく請求項１４〜２５のいずれか一項に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッセージング・アプリケーションのための自動提案および他のコンテンツに関する。
【背景技術】
【０００２】
ユーザは、他のユーザとの通信のために、デスクトップコンピュータではなくモバイルデバイスにますます頼っている。モバイルデバイスはどこにでも持ち運ぶことができるという利点がある。しかしながら、モバイルデバイスは画面が小さく、帯域幅が限られているため、ユーザが必要な情報を適時に取得することが難しい場合がある。さらに、ユーザはモバイルデバイスを使用したチャットを好み得る。しかしながら、一部の情報は、電話を掛けて人間と話すことによって入手可能であるに過ぎない場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、メッセージング・アプリケーションのための自動提案および他のコンテンツに関する。
【課題を解決するための手段】
【０００４】
実装形態は、一般に、メッセージング・アプリケーションに関する。ある実装形態は、メッセージング・アプリケーション内でユーザに提案を自動的に提供するために、１つ以上のメッセージング会話（本明細書では「メッセージ交換スレッド」とも呼ぶ）の１つ以上のコンテンツ、および／または、ユーザ情報を自動的に分析することができる。ある例では、提案は、メッセージング・アプリケーションに特定の非メッセージング機能を自動的に組み入れることができる。ある他の例では、自動提案は、メッセージング・アプリケーションにおいて応答するためにユーザによって選択される１つ以上の適切な応答を提案してもよく、および／または、ユーザに代わって１つ以上の適切な応答を自動的に送ってもよい。
【０００５】
ある実装形態は、人間のユーザおよび／またはチャットボットとのメッセージングを可能にする。ある実施態様では、自動提案は、チャットボットがメッセージング会話に参加しているか否かに基づいてカスタマイズされてもよい。すなわち、ある例では、チャットボットがメッセージング会話において存在しない場合、第１の組の自動応答が提案されてよい一方、チャットボットがメッセージング会話において存在する場合、第２の組の自動応答が提案され得る。第１および第２の組の応答は、少なくとも部分的に異なる。例えば、実装形態は、チャットボットが従う会話ルールの理解を利用し、ルールに基づいてユーザに応答を提案することができる。言い換えれば、所与のチャットボットが存在する場合、所与のチャットボットが従うルールに適合した応答が提案され得る一方、所与のチャットボットが存在しなかった場合、応答は提案されなかった可能性がある（会話のメッセージは同じであったが）。これにより、チャットボットが容易に理解できる言語と形式により、チャットボットと通信する際にユーザが典型的に抱える困難が軽減される。これはまた、チャットボットによって理解される言語および形式によりチャットボットへの通信が行われる可能性を高めることによって、ネットワークトラフィックおよび／または他の計算リソースを削減する可能性があり、これは、チャットボットの言語および形式要件に適合していない応答を明らかにするためにチャットボットからの／へのさらなる通信を行う必要性を低減し得る。
【０００６】
一部の実装形態は、進行中のメッセージ交換スレッド中に文脈に関連する提案を提供し、参加者がメッセージ交換スレッドに提案（または関係するコンテンツ）を単純な方法で追加することを可能にする（例えば、単一タップおよび／または他の単一の選択インターフェースアクションを介して）。さらに、または、これに代えて、文脈に関連する提案は、文脈に関連するエンティティに向けられたコンテンツを参加者に提供することができる（参加者が、メッセージ交換スレッドをレンダリングするアプリケーションから、そのようなコンテンツを取得するために別のアプリケーションに切り替える必要なく）。これにより、もしそうでなければ情報の必要性を満たすために別のアプリケーションに切り替える際に消費されるある計算リソースの使用を低減し得る。例えば、別のアプリケーションに切り替えるには、アプリケーションの起動および／または浮上を介して、プロセッサ、メモリ、および／またはバッテリのリソースを使用することを必要とし得る。さらに、メッセージ交換スレッドでコンテンツを取得する代わりに、別のアプリケーションに切り替えてコンテンツを取得すると、参加者が情報を取得するのに費やす必要がある時間が長くなる可能性がある。これは、コンテンツを取得する際の計算リソースの消費の対応する増加につながる可能性がある。
【０００７】
一部の実装形態では、１つ以上のプロセッサによって実装されるコンピュータ実装方法が提供され、該方法は、複数のユーザ間でのメッセージ交換スレッドの１つ以上のメッセージを受信する工程を備える。前記複数のユーザは、第１ユーザと第２ユーザとを含み、前記１つ以上のメッセージは、前記複数のユーザのうちの対応する１人によって、対応するメッセージング・アプリケーションを介してサブミットされる。前記方法は、さらに、前記１つ以上のメッセージに基づいて第１タイプの第１ボットを決定する工程と、前記１つ以上のメッセージに基づいて第２タイプの第２ボットを決定する工程とを備える。前記第２タイプは前記第１タイプとは異なる。一部の実装形態では、ボットタイプは、ボットによって実行されるタスクに対応する。例えば、第１タイプのボットはレストラン予約ボットであってよく、第２タイプのボットは食物オーダーボットであってよい。前記方法は、さらに、前記１つ以上のメッセージ内のコンテンツに基づいて前記第２ボットよりも前記第１ボットを選択する第１ボット選択工程と、前記コンテンツに基づいてボットコマンドを前記第１ボットに送信する工程と、を備える。前記ボットコマンドを前記第１ボットに送信する工程は、前記第１ボット選択工程に応じて行われる。前記方法は、さらに、前記ボットコマンドを前記第１ボットに送信する工程に応じて、前記第１ボットから応答コンテンツを受信する工程と、前記第１ボットからの前記応答コンテンツを、前記第１ユーザの対応するメッセージング・アプリケーションを介して少なくとも前記第１ユーザに提示するために提供する応答コンテンツ提供工程と、を備える。
【０００８】
これらおよび他の実装形態では、第２ボットよりも第１ボットを選択することによって、コンテンツに基づくボットコマンドを第２ボットに送信しなくてよい。これにより、第２ボットにボットコマンドを送信しないことによってネットワークリソースを節約することができ、および／または、第２ボットがコマンドに作用する必要をなくすことによって、第２ボットに関連付けられる計算リソースを節約することができる。さらに、これらおよび他の実装形態は、対応するメッセージング・アプリケーションを介して提示するための応答コンテンツを提供することによって、ユーザがコンテンツを取得するために別のアプリケーションに切り替えることをなくし、これは、様々な計算リソースを節約し得る。
【０００９】
これらおよび他の実装形態は、以下の特徴の１つ以上を任意選択で含んでいてもよい。
一部の実装形態では、前記第１ボット選択工程は、（ａ）前記１つ以上のメッセージからトピックを決定する工程と、前記トピックに基づいて前記第１ボットを選択する工程と、を含む、および／または、（ｂ）前記１つ以上のメッセージに関する意味分析を実行する工程と、前記意味分析に基づいて前記第１ボットを選択する工程と、を含む。
【００１０】
一部の実装形態では、前記第１ボットおよび前記第２ボットを決定する工程は、前記１つ以上のメッセージのうちの所与のメッセージにおける１つ以上の語が前記第１ボットと前記第２ボットとの両方の起動に関連付けられていると決定する工程を含む。これら実装形態の一部では、前記第１ボット選択工程は、前記１つ以上のメッセージのうちのさらなるメッセージにおける１つ以上のさらなる語に基づいて前記第１ボットを選択する工程を含み、前記１つ以上のさらなる語は、前記第１ボットの起動に関連付けられているが前記第２ボットの起動に関連付けられていない。前記さらなるメッセージは、例えば、前記所与のメッセージよりも前に前記メッセージ交換スレッドにおいてサブミットされたメッセージであってよい。
【００１１】
一部の実装形態では、前記第１ボット選択工程は、前記メッセージ交換スレッドよりも前に、訓練セットデータから訓練済み機械学習モデルを生成する工程と、前記訓練済み機械学習モデルに前記コンテンツを適用して、前記訓練済み機械学習モデルによって出力を生成する工程と、前記第１ボットを示す前記出力に基づいて前記第１ボットを選択する工程と、を含む。
【００１２】
一部の実装形態では、前記第１ボット選択工程は、前記第１ユーザの位置と、前記第１ユーザに関連付けられているユーザ情報と、のうちの１つ以上にさらに基づく。
一部の実装形態では、前記方法は、情報源からの前記第１ボットに特化された追加情報を要求する工程と、前記要求する工程に基づいて前記追加情報を受信する工程と、前記追加情報に基づいて前記第１ボットに適合するように前記ボットコマンドを生成する工程と、を含む。これら実装形態の一部は、ボットコマンドが第１ボットによって理解される形式であることを確保できる。
【００１３】
一部の実装形態では、前記方法は、前記１つ以上のメッセージが目的地に関連付けられていると決定する工程と、前記第１ユーザが前記目的地にいるであろう時間を決定する工程と、をさらに備える。これら実装形態の一部では、前記ボットコマンドによって前記目的地と前記時間とが特定される。
【００１４】
一部の実装形態では、前記方法は、さらに、前記１つ以上のメッセージに基づいて前記第１ユーザが能動的役割に関連付けられていると決定する工程と、前記第１ユーザが前記能動的役割に関連付けられていると決定する工程に基づいて、前記第１ボットから前記応答コンテンツを受信するよう、前記第２ユーザよりも前記第１ユーザを選択する工程と、を備える。これら実装形態では、前記応答コンテンツ提供工程は、前記第２ユーザに提示するために前記応答コンテンツを提供することなく、前記第１ユーザへの提示のために前記応答コンテンツを提供することを含む。したがって、これら実装形態の一部は、初めに、メッセージ交換スレッドの参加者のサブセットに応答コンテンツを提示するだけである。これは、当該サブセットに含まれない他の参加者に応答コンテンツを提供しないことによって、当該サブセットに含まれない他の参加者のクライアントデバイスの様々な計算リソースの消費を抑制し得る。
【００１５】
一部の実装形態では、前記方法は、前記応答コンテンツ提供工程に応じて、前記第１ボットに向けられた前記第１ユーザからの質問を受信する工程と、前記質問を受信する工程に応じて、前記第１ボットに関連付けられているビジネスのビジネスオーナーに追加情報を問い合わせるように前記第１ボットに命令する工程と、前記追加情報を含む回答を生成する工程と、前記質問を受信する工程に応じて、前記第１ユーザに提示するために前記回答を提供する工程と、をさらに備える。これら実装形態の一部では、前記方法は、前記追加情報が新たな情報を含むと決定する工程と、１つ以上のコンピュータ可読媒体において、前記新たな情報に基づいて前記ビジネスに関するビジネスプロファイルを更新する工程と、をさらに備える。したがって、これら実装形態の一部は、ビジネスプロファイルを修正して新しい情報を反映し、別の場合での質問に応じて追加の情報をオーナーに再度問い合わせる必要をなくす。これは、再度問い合わせることに関連付けられる送信および/または他の計算リソースの消費を抑制できる。
【００１６】
一部の実装形態では、前記応答コンテンツ提供工程は、フィールドに入力されたテキストまたは選択を前記第１ボットに送る、フィールドを含むユーザインタフェースを前記第１ユーザに提供する工程を含む。これらの実装形態の一部は、第１ボットによって理解される形式のさらなるテキストおよび/または選択を確保でき、および/または、第１ユーザが第１ボットとのさらなる通信において提供する入力を少なくすることを可能にし得る（例えば、ユーザは、さらなる入力により第１ボットに対してテキストを明示的に提出する必要なく、単一の選択を行い、および/または、フィールドにテキストを直接入力するだけでよい）。
【００１７】
一部の実装形態では、前記方法は、前記１つ以上のメッセージに存在するセンチメント、句読点、および／または絵文字に基づいて、前記第１ユーザの文体を決定する工程と、前記第１ユーザの前記文体により、前記応答コンテンツを前記第１ユーザに提供する工程と、をさらに備える。
【００１８】
一部の実装形態では、メッセージング・アプリケーションにおいてボット・サービスを自動的に提供するためのコンピュータ実装方法は、第１ユーザと第２ユーザとの間の１つ以上のメッセージを受信する工程と、前記１つ以上のメッセージに基づいて前記第１ユーザのために第１タイプの第１ボットを決定する工程と、前記１つ以上のメッセージに基づいて前記第１ユーザのために第２タイプの第２ボットを決定する工程であって、前記第２タイプは前記第１タイプとは異なる、工程と、前記１つ以上のメッセージ内のコンテンツに基づいて前記第２ボットよりも前記第１ボットを選択する第１ボット選択工程と、前記コンテンツに基づいて前記ボットコマンドを前記第１ボットに提供する工程と、を備える。
【００１９】
一部の実装形態では、前記第１ボット選択工程は、前記１つ以上のメッセージからトピックを決定する工程と、前記１つ以上のメッセージに関する意味分析を実行する工程と、のうちの１つ以上を含む。前記方法は、前記第１ボットによって提供される１つ以上のサービスに関係する開始単語を決定する工程と、前記開始単語に関係する関係単語を決定する工程と、をさらに備えていてもよい。前記第１ボット選択工程は、訓練セットデータから機械学習モデルを生成する工程と、前記機械学習モデルを適用して、前記コンテンツが欲求に対応するか否かを判定するとともに、前記第１ユーザが前記欲求について行動する可能性が高い場合には、所定の期間中に前記コンテンツが生じると決定する工程と、をさらに含んでもよい。第１ボットは、ボットストアと、メッセージングインターフェースの一部であるリストと、のうちの１つ以上から選択されてよい。前記ボットの第１タイプを決定する工程は、前記第１ユーザの位置と、前記第１ユーザによってサブミットされた前記コンテンツの一部である要求と、前記第１ユーザに関連付けられているユーザ情報と、のうちの１つ以上にさらに基づいてよい。前記方法は、第三者サーバからの、前記ボットからの追加情報を要求する工程と、前記追加情報に基づいて前記ボットコマンドを生成する工程と、をさらに備えていてもよい。前記方法は、前記１つ以上のメッセージが目的地に関連付けられていると決定する工程と、前記第１ユーザが前記目的地にいるであろう時間を決定する工程と、をさらに備えていてもよく、前記ボットコマンドは、前記目的地と前記時間とに関係する。前記１つ以上のメッセージに基づいて前記第１ユーザのために前記第１タイプの前記第１ボットを決定する工程は、前記１つ以上のメッセージに基づいて前記第１ユーザが能動的役割に関連付けられていると決定する工程と、前記第１ボットからボット提案を受信するよう、前記第２ユーザよりも前記第１ユーザを選択する工程と、をさらに含んでいてもよい。前記方法は、前記第１ボットに向けられた前記第１ユーザからの質問を受信する工程と、前記第１ボットに関連付けられているビジネスのビジネスオーナーに追加情報を問い合わせるように前記第１ボットに命令する工程と、前記追加情報を含む回答を生成する工程と、をさらに備えていてもよい。前記方法は、前記追加情報が新たな情報を含むと決定する工程と、前記新たな情報に基づいて前記ビジネスに関するビジネスプロファイルについて更新を提供する工程と、をさらに備えていてもよい。前記方法は、フィールドに入力されたテキストまたは選択を前記第１ボットに送る、フィールドを含むユーザインタフェースを前記第１ユーザに提供する工程をさらに備えていてもよい。前記方法は、前記１つ以上のメッセージに存在するセンチメント、句読点、および絵文字のうちの１つ以上に基づいて、前記第１ユーザの文体を決定する工程と、前記第１ユーザの前記文体により、提案を前記第１ユーザに提供する工程と、をさらに備えていてもよい。前記方法は、前記１つ以上のメッセージに基づいて前記第１ユーザに関する支払いを処理するべく、提案を前記第１ユーザに提供する工程をさらに備えていてもよい。前記方法は、２つ以上のサービスを含めて第１の提案を提供する工程と、前記第１ユーザから前記２つ以上のサービスのうちの１つの選択を受信する工程と、前記２つ以上のサービスのうちの１つの前記選択に基づいて追加の提案を提供する追加提案提供工程とをさらに備えていてもよい。前記追加提案提供工程は、ユーザがスクロール可能なグラフィカルアイコンを提供する工程を含む。
【００２０】
本開示は、会話からエンティティを識別し、エンティティについてアクションを起こすようにユーザに対して提案を生成するためのシステムおよび方法をさらに含み得る。本開示に記載される主題の一部の実装形態によれば、システムは、１つ以上のプロセッサと、命令を記憶するメモリとを備え、前記命令は、実行時に前記システムに、会話から１つ以上の会話メッセージを受信する工程と、会話メッセージからアクション可能である可能性のあるエンティティを識別するアクション可能エンティティ識別工程と、前記エンティティの文脈インジケータを決定するエンティティ文脈インジケータ決定工程と、前記文脈インジケータに基づいて前記エンティティがアクション可能であるか否かを決定する工程と、前記エンティティがアクション可能であることに応じて、前記エンティティについてアクションを起こすようにユーザに対して提案を提供する工程と、を行わせる。一部の例では、アイテムに基づいて、そのアイテムについてのさらなる分析またはアクションが正当化される場合、当該アイテムはアクション可能であってよい。
【００２１】
一般に、本開示に記載される主題の別の実装形態は、１つ以上のプロセッサを使用して、会話から１つ以上の会話メッセージを受信する工程と、１つ以上のプロセッサを使用して、会話メッセージからアクション可能である可能性のあるエンティティを識別するアクション可能エンティティ識別工程と、１つ以上のプロセッサを使用して、前記エンティティの文脈インジケータを決定するエンティティ文脈インジケータ決定工程と、１つ以上のプロセッサを使用して、前記文脈インジケータに基づいて前記エンティティがアクション可能であるか否かを決定する工程と、前記エンティティがアクション可能であることに応じて、前記エンティティについてアクションを起こすようにユーザに対して提案を提供する工程と、を備える方法により具現化されてもよい。
【００２２】
これらおよび他の実装形態は、それぞれ、以下の特徴の１つ以上を任意選択で含んでいてもよい。例えば、特徴は、機械学習モデルに基づいて前記１つ以上の会話メッセージに対して自然言語分析を実行する工程を含んでいてもよく、前記アクション可能エンティティ識別工程と前記エンティティ文脈インジケータ決定工程とは、前記分析に基づく。特徴は、前記会話の各参加者からの会話の流れを追跡する工程と、追跡情報に基づいて前記文脈インジケータを精製する工程を含んでいてもよい。特徴は、機械学習モデルと前記文脈インジケータとに基づいて前記ユーザがアクションを起こすための提案を決定する工程を含んでよい。特徴は、前記ユーザから、前記エンティティをアクション可能であるとしてマークする指示を受信する工程と、機械学習モデルに前記ユーザの指示を訓練信号として送る工程と、前記エンティティに関連する情報を探す工程と、前記ユーザに前記情報を提供する工程と、を含んでいてもよい。特徴は、クエリおよび文書検索を含む様々なソースからデータを受信する工程と、前記データから特徴を抽出する工程と、抽出された前記特徴に基づいて機械学習モデルを生成する工程と、ユーザアクションを受信する工程であって、前記ユーザアクションは、前記エンティティに提供された前記提案に対する反応を含む、工程と、前記ユーザアクションに基づいて前記機械学習モジュールを訓練する工程と、を含んでいてもよい。特徴は、エンティティ情報をアプリケーションに供給する工程であって、前記エンティティ情報は前記会話の参加者を含む、工程と、前記アプリケーションによって提案を生成する工程と、前記会話の前記参加者に前記提案を提供する工程と、を含んでいてもよい。特徴は、前記会話における前記ユーザに対する質問を検出する工程であって、前記質問は前記エンティティに関係する、工程と、前記質問に対するあり得るユーザ返信を決定する工程と、前記あり得るユーザ返信をワンタップ形式で前記ユーザに提供する工程と、を含んでいてもよい。特徴は、前記文脈インジケータに基づいて前記１つ以上の会話を整理する工程と、前記１つ以上の会話を索引付けする工程と、を含んでいてもよい。
【００２３】
本開示は、会話からエンティティを識別し、エンティティについてアクションを起こすようにユーザに対して提案を生成するためのシステムおよび方法をさらに含み得る。本開示に記載される主題の一実装形態によれば、システムは、１つ以上のプロセッサと、命令を記憶するメモリとを備え、前記命令は、実行時に前記システムに、会話から１つ以上の会話メッセージを受信する工程と、会話メッセージからアクション可能である可能性のあるエンティティを識別するアクション可能エンティティ識別工程と、前記エンティティの文脈インジケータを決定するエンティティ文脈インジケータ決定工程と、前記文脈インジケータに基づいて前記エンティティがアクション可能であるか否かを決定する工程と、前記エンティティがアクション可能であることに応じて、前記エンティティについてアクションを起こすようにユーザに対して提案を提供する工程と、を行わせる。一部の例では、アイテムに基づいて、そのアイテムについてのさらなる分析またはアクションが正当化される場合、当該アイテムはアクション可能であってよい。
【００２４】
一般に、本開示に記載される主題の別の実装形態は、１つ以上のプロセッサを使用して、会話から１つ以上の会話メッセージを受信する工程と、１つ以上のプロセッサを使用して、会話メッセージからアクション可能である可能性のあるエンティティを識別するアクション可能エンティティ識別工程と、１つ以上のプロセッサを使用して、前記エンティティの文脈インジケータを決定するエンティティ文脈インジケータ決定工程と、１つ以上のプロセッサを使用して、前記文脈インジケータに基づいて前記エンティティがアクション可能であるか否かを決定する工程と、前記エンティティがアクション可能であることに応じて、前記エンティティについてアクションを起こすようにユーザに対して提案を提供する工程と、を備える方法により具現化されてもよい。
【００２５】
これらおよび他の実装形態は、それぞれ、以下の特徴の１つ以上を任意選択で含んでいてもよい。例えば、特徴は、機械学習モデルに基づいて前記１つ以上の会話メッセージに対して自然言語分析を実行する工程を含んでいてもよく、前記アクション可能エンティティ識別工程と前記エンティティ文脈インジケータ決定工程とは、前記分析に基づく。特徴は、前記会話の各参加者からの会話の流れを追跡する工程と、追跡情報に基づいて前記文脈インジケータを精製する工程を含んでいてもよい。特徴は、機械学習モデルと前記文脈インジケータとに基づいて前記ユーザがアクションを起こすための提案を決定する工程を含んでよい。特徴は、前記ユーザから、前記エンティティをアクション可能であるとしてマークする指示を受信する工程と、機械学習モデルに前記ユーザの指示を訓練信号として送る工程と、前記エンティティに関連する情報を探す工程と、前記ユーザに前記情報を提供する工程と、を含んでいてもよい。特徴は、クエリおよび文書検索を含む様々なソースからデータを受信する工程と、前記データから特徴を抽出する工程と、抽出された前記特徴に基づいて機械学習モデルを生成する工程と、ユーザアクションを受信する工程であって、前記ユーザアクションは、前記エンティティに提供された前記提案に対する反応を含む、工程と、前記ユーザアクションに基づいて前記機械学習モジュールを訓練する工程と、を含んでいてもよい。特徴は、エンティティ情報をアプリケーションに供給する工程であって、前記エンティティ情報は前記会話の参加者を含む、工程と、前記アプリケーションによって提案を生成する工程と、前記会話の前記参加者に前記提案を提供する工程と、を含んでいてもよい。特徴は、前記会話における前記ユーザに対する質問を検出する工程であって、前記質問は前記エンティティに関係する、工程と、前記質問に対するあり得るユーザ返信を決定する工程と、前記あり得るユーザ返信をワンタップ形式で前記ユーザに提供する工程と、を含んでいてもよい。特徴は、前記文脈インジケータに基づいて前記１つ以上の会話を整理する工程と、前記１つ以上の会話を索引付けする工程と、を含んでいてもよい。
【００２６】
一部の実装形態では、方法は、第１ユーザと、他のユーザを含むグループとの間でのメッセージを受信する工程と、前記メッセージと、前記第１ユーザと、前記他のユーザとの文脈を決定する工程と、前記メッセージと前記文脈とに基づいて、前記他のユーザの各々が前記グループと共有するのに提案される提案応答を決定する提案応答決定工程と、を備えていてもよい。
【００２７】
前記方法は、前記他のユーザのうちの第２ユーザがワンタップアクションで応答することを可能にする、前記第２ユーザに対する前記提案応答とともに通知を生成する工程をさらに備えていてもよい。前記方法は、センサデータに基づいて、前記第２ユーザが移動中であると判定する工程をさらに備えていてもよく、前記第２ユーザが移動中であると判定する工程に基づいて、前記ワンタップアクションが可能にされる。前記提案応答決定工程は、センサデータと、１つ以上のプリファレンスと、会話履歴と、前記他の参加者の各々によって実行された１つ以上の最近のアクティビティと、のうちの１つ以上にさらに基づいてもよい。前記方法は、前記他のユーザのうちの第２ユーザの位置に関係する地域と、市場と、国と、のうちの１つ以上における他のメッセージに基づいて、１つ以上のトレンディング応答を決定する工程をさらに備えていてもよく、前記提案応答は、前記１つ以上のトレンディング応答をさらに含んでいてもよい。一部の実装形態では、前記文脈は、休暇とイベントとのうちの１つ以上を含む。一部の実装形態では、前記メッセージは、前記他のユーザに関連付けられている位置に関する要求であり、前記提案応答は、前記他のユーザの各々に関する前記位置を含む。前記提案応答は、前記グループと共有するための画像と、前記グループと共有するための位置と、第２ユーザと共有するためのカレンダイベントと、のうちの１つ以上を含んでいてもよい。前記提案応答決定工程は、前記他のユーザのうちの第２ユーザのための個人用モデルが開発される機械学習を使用することにさらに基づいていてもよい。前記提案応答決定工程は、前記他のユーザのうちの第２ユーザのパーソナリティにさらに基づいていてもよく、さらに、ユーモアと風刺とのうちの１つ以上を含むホワイトリストに基づいた前記メッセージにおける単語の分類と、絵文字の使用と、句読点の使用と、のうちの１つ以上に基づいて、前記第２ユーザの前記パーソナリティを決定する工程を備える。前記方法は、パーソナリティタイプと、前記提案応答を決定するのに使用される前記パーソナリティタイプのレベルと、を指定するオプションを含むグラフィカルユーザインタフェースを前記他のユーザのうちの第２ユーザに提供する工程をさらに備えていてもよい。前記メッセージの前記文脈は、到着推定時間の要求を含んでいてもよく、前記提案応答決定工程は、前記第１ユーザの位置と、カレンダイベントの位置を含む前記カレンダイベントと、マッピング・アプリケーションからの目的地に関する情報と、のうちの１つ以上に基づいて、前記到着推定時間を決定する工程を含んでいてもよく、前記提案応答は、前記到着推定時間を含んでいてもよい。前記メッセージは、最近のイベントに関する情報の要求を含んでいてもよく、前記提案応答決定工程は、前記最近のイベントに対応する１つ以上の画像と、前記最近のイベントに関係する１つ以上のソーシャルネットワーク投稿と、のうちの１つ以上を決定する工程を含んでいてもよく、前記提案応答は、前記１つ以上の画像と、前記１つ以上のソーシャルネットワーク投稿と、のうちの１つ以上を含んでいてよい。前記方法は、会話において最後のメッセージが受信されてから経過した閾値に基づいて会話開始提案を決定する工程と、前記グループに関連付けられているトピックと、トレンディングトピックと、前記グループに関連付けられている前記トピックに関係する最近のイベントと、前記ユーザのうちの１人に関連付けられているアクティビティと、のうちの１つ以上に基づいて前記会話開始提案を提供する工程と、を備えていてもよい。前記方法は、チャットボットが存在するか否かを判定する工程と、前記チャットボットが存在することに応じて、前記提案応答を第１の組の自動提案応答として生成する工程と、チャットボットが存在しないことに応じて、前記提案応答を第２の組の自動提案応答として生成する工程と、を備えていてもよい。前記第１の組の自動提案応答は、前記チャットボットが従う会話ルールに基づいていてもよい。
【００２８】
他の態様は、対応する方法、システム、装置、及びコンピュータプログラム製品を含み得る。
システムの一部の実装形態により、有利に、ユーザが電話で人に電話する必要なく情報を取得する手法が提供される。さらに、システムの一部の実装形態により、有利に、ビジネスオーナーがユーザからの質問の回答を自動化する手法が提供される。一部の実装形態のさらなる別の利点は、ビジネスオーナーに利用可能なネットワーク接続とは独立して回答をユーザに提供するシステムを含むことができる。
【００２９】
本開示は、類似の参照符号が同様の要素を指すために使用される添付の図面の図により、例として示しており限定するものではない。
【図面の簡単な説明】
【００３０】
【図１Ａ】メッセージを送信し、提案をモバイルデバイスに提供する例示的なシステムのブロック図。
【図１Ｂ】提案を生成するための別の例示的なシステムのブロック図。
【図２】メッセージを送信し、モバイルデバイスに提案を提供する例示的なコンピューティングデバイスのブロック図。
【図３】ボットからの提案を含むユーザインタフェースのグラフィック表示を示す図。
【図４Ａ】提案を含む例示的なユーザインタフェースのグラフィック表示を示す図。
【図４Ｂ】第１アプリケーションによって生成された会話を含む例示的なユーザインタフェースのグラフィック表示を示す図。
【図４Ｃ】第２アプリケーションによって生成された提案を含む例示的なユーザインタフェースのグラフィック表示を示す図。
【図４Ｄ】ワンタップ返信のオプションを含む例示的なユーザインタフェースのグラフィック表示を示す図。
【図４Ｅ】会話要約を含む例示的なユーザインタフェースのグラフィック表示を示す図。
【図４Ｆ】会話要約を含む例示的なユーザインタフェースのグラフィック表示を示す図。
【図４Ｇ】互いに異なる提案を含む例示的なユーザインタフェースのグラフィック表示を示す図。
【図５Ａ】ワンタップ回答を含む例示的なユーザインタフェースのグラフィック表示を示す図。
【図５Ｂ】例示的な提案応答の組のグラフィック表示を示す図。
【図５Ｃ】第２ユーザに第２ユーザの赤ちゃんの写真を送る第１ユーザを示す図。
【図６】一般的なＬＳＴＭモデルを示す図。
【図７】個人用ＬＳＴＭモデルを示す図。
【図８】例示的なトークントライを示す図。
【図９】いくつかのメッセージに関連付けられる例示的な統計値を、いくつかのメッセージとモデルのタイプとの関数として示す図。
【発明を実施するための形態】
【００３１】
例示的なシステム
図１Ａは、メッセージを送信し、提案をモバイルデバイスに提供する例示的なシステム１００のブロック図を示す。図示のシステム１００は、メッセージングサーバ１０１、モバイルデバイス１１５ａ、１１５ｎ、ボットサーバ１２０、情報サーバ１３０、およびネットワーク１０５を含む。ユーザ１２５ａ−１２５ｎは、それぞれのモバイルデバイス１１５ａ、１１５ｎに関連付けられてもよい。一部の実装形態では、システム１００は、スタンドアロンソーシャルネットワークサーバなどの図１Ａには示されていない他のサーバまたはデバイスを含むことができる。図１Ａおよび残りの図において、参照番号の後の文字、例えば「１１５ａ」は、その特定の参照番号を有する要素への参照を表す。以下の文字を含まないテキスト中の参照番号、例えば「１１５」は、その参照番号を有する要素の実装形態に対する一般的な参照を表す。
【００３２】
図示の実装形態では、メッセージングサーバ１０１、モバイルデバイス１１５、ボットサーバ１２０、および情報サーバ１３０は、ネットワーク１０５を介して通信可能に接続されている。ネットワーク１０５は、従来のタイプ、有線または無線であってもよく、スター構成、トークンリング構成、または他の構成を含む多数の異なる構成を有することができる。さらに、ネットワーク１０５は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）（例えば、インターネット）、および／または複数のデバイスが通信することができる他の相互接続されたデータパスを含むことができる。一部の実装形態では、ネットワーク１０５はピアツーピアネットワークであってもよい。ネットワーク１０５はまた、様々な異なる通信プロトコルでデータを送信するための電気通信ネットワークの一部に結合されるか、またはそれを含むことができる。一部の実装形態では、ネットワーク１０５は、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接データ接続、電子メールなどによるものを含む、データを送ったり受信したりするためのＢｌｕｅｔｏｏｔｈ（登録商標）通信ネットワーク、Ｗｉ−Ｆｉ（登録商標）、またはセルラ通信ネットワークを含む。図１Ａは、モバイルデバイス１１５およびメッセージングサーバ１０１に結合された１つのネットワーク１０５を示しているが、実際には、１つ以上のネットワーク１０５をこれらのエンティティに結合することができる。
【００３３】
メッセージングサーバ１０１は、プロセッサ、メモリ、およびネットワーク通信能力を含むことができる。一部の実装形態では、メッセージングサーバ１０１はハードウェアサーバである。メッセージングサーバ１０１は、信号線１０２を介してネットワーク１０５に通信可能に接続される。信号線１０２は、イーサネット（登録商標）、同軸ケーブル、光ファイバケーブルなどの有線接続、またはＷｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ、または他の無線技術を使用することができる。一部の実装形態では、メッセージングサーバ１０１は、ネットワーク１０５を介して１つ以上のモバイルデバイス１１５ａ〜１１５ｎ、ボットサーバ１２０、および情報サーバ１３０との間でデータを送受信する。メッセージングサーバ１０１は、メッセージング・アプリケーション１０３ａおよびデータベース１９９を含む。
【００３４】
メッセージング・アプリケーション１０３ａは、メッセージを交換し、提案を提供するためにプロセッサによって動作可能なコードおよびルーチンであってもよい。一部の実装形態では、メッセージング・アプリケーション１０３ａは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向け集積回路（ＡＳＩＣ）を含むハードウェアを使用して実装することができる。一部の実装形態では、メッセージング・アプリケーション１０３ａは、ハードウェアとソフトウェアとの組み合わせを使用して実装することができる。
【００３５】
データベース１９９は、モバイルデバイス１１５間で送信されるメッセージ、情報サーバ１３０によって提供される情報などを記憶することができる。データベース１９９はまた、ユーザ１２５に関連するソーシャルネットワークデータ、連絡先情報などを記憶することができる。
【００３６】
モバイルデバイス１１５は、メモリおよびハードウェアプロセッサ含むコンピューティングデバイスであってもよく、例えばカメラ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、ウェアラブルデバイス、モバイル電子メールデバイス、ポータブルゲームプレーヤー、ポータブル音楽プレーヤー、リーダデバイス、またはネットワーク１０５に無線でアクセス可能な他の電子デバイスであってよい。
【００３７】
図示された実装形態では、モバイルデバイス１１５ａは、信号線１０８を介してネットワーク１０５に結合され、モバイルデバイス１１５ｎは、信号線１１０を介してネットワーク１０５に結合される。信号線１０８および１１０は、Ｗｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、またはその他のワイヤレス技術を使用している。モバイルデバイス１１５ａ、１１５ｎは、それぞれユーザ１２５ａ、１２５ｎによってアクセスされる。図１Ａのモバイルデバイス１１５ａ、１１５ｎは、一例として使用される。図１Ａは、２つのモバイルデバイス１１５ａおよび１１５ｎを示しているが、本開示は、１つ以上のモバイルデバイス１１５を有するシステムアーキテクチャに適用される。
【００３８】
一部の実装態様では、モバイルデバイス１１５は、ユーザ１２５が着用するウェアラブルデバイスであってもよい。例えば、モバイルデバイス１１５は、クリップ（例えば、リストバンド）の一部、宝石の一部、または眼鏡の一部として含まれる。別の例では、モバイルデバイス１１５はスマートウォッチとすることができる。ユーザ１２５は、メッセージング・アプリケーション１０３からの画像を、ユーザ１２５が装着したデバイスのディスプレイ上で見ることができる。例えば、ユーザ１２５は、スマートウォッチまたはスマートリストバンドのディスプレイ上で画像を見ることができる。
【００３９】
一部の実装形態では、メッセージング・アプリケーション１０３ｂはモバイルデバイス１１５ａに記憶される。メッセージング・アプリケーション１０３は、モバイルデバイス１１５ａに記憶されたシンクライアントのメッセージング・アプリケーション１０３ｂと、メッセージングサーバ１０１に記憶されたメッセージング・アプリケーション１０３ａとを含むことができる。例えば、メッセージング・アプリケーション１０３ｂは、モバイルデバイス１１５ａ上でユーザ１２５ａによって作成されたユーザメッセージをメッセージングサーバ１０１に記憶されたメッセージング・アプリケーション１０３ａに送信する。メッセージングサーバ上のメッセージング・アプリケーション１０３ａは、ユーザ１２５ａに提供する提案を決定することができる。例えば、メッセージング・アプリケーション１０３ａは、ボットサーバ１２０にコマンドを送信し、メッセージング・アプリケーション１０３ａがメッセージング・アプリケーション１０３ｂに提供する提案をボットサーバ１２０から受信して表示することができる。例えば、メッセージング・アプリケーション１０３ａは、メッセージング・アプリケーション１０３ｂに提案を視覚的に表示させるコンピュータ実行可能命令として、メッセージング・アプリケーション１０３ｂに提案を送信することができる。
【００４０】
一部の実装形態では、メッセージング・アプリケーション１０３は、メッセージングサーバ１０１に記憶されたスタンドアロンアプリケーションであってもよい。ユーザ１２５ａは、モバイルデバイス１１５ａ上のブラウザまたは他のソフトウェアを使用してウェブページを介してメッセージング・アプリケーション１０３にアクセスすることができる。一部の実装形態では、メッセージング・アプリケーション１０３は、メッセージングサーバ１０１に含まれるものと同じコンポーネントをモバイルデバイス１１５ａ上に含むことができる。
【００４１】
ボットサーバ１２０は、プロセッサ、メモリおよびネットワーク通信能力を含むことができる。一部の実装形態では、ボットサーバ１２０はハードウェアサーバである。ボットサーバ１２０は、信号線１２２を介してネットワーク１０５に通信可能に接続されている。信号線１２２は、イーサネット、同軸ケーブル、光ファイバケーブルなどの有線接続、またはＷｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、またはその他の無線技術などの無線接続であってもよい。一部の実装形態では、ボットサーバ１２０は、ネットワーク１０５を介してメッセージングサーバ１０１、モバイルデバイス１１５ａ?１１５ｎ、および情報サーバ１３０のうちの１つ以上とデータを送受信する。ボットサーバ１２０は、１つのサーバとして示しているが、複数のボットサーバ１２０が可能である。
【００４２】
ボットサーバ１２０は、メッセージングサーバ１０１を管理するのと同じ当事者によって制御されてもよく、または第三者によって制御されてもよい。ボットサーバ１２０が、メッセージングサーバ１０１を制御するエンティティとは異なるエンティティによって制御される第三者ボットサーバである一部の実装形態では、メッセージングサーバ１０１および第三者ボットサーバは、アプリケーションプログラミングインタフェース（ＡＰＩ）を介して通信してもよい。一部の実装形態では、ボットサーバ１２０は、１つ以上のボットをホストする。ボットは、例えば、予約ボットが予約を行い、自動返信ボットが応答メッセージテキストを生成し、スケジュールボットがカレンダー予約を自動的にスケジュールするなど、提案を提供する特定の機能を実行するコンピュータプログラムであってもよい。ボットサーバ１２０は、例えば、ボットのコードをメッセージング・アプリケーション１０３に組み込んでもよく、あるいは、メッセージング・アプリケーション１０３がボットサーバ１２０に要求を送信してもよい。一部の実装形態では、メッセージング・アプリケーション１０３は、ボットサーバ１２０にボットコマンドを提供し、ボットサーバ１２０からボットコマンドに基づく提案を受信することによって、ユーザ１２５とボットサーバ１２０との間の仲介役として働く。例えば、ボットコマンドは、メッセージング・アプリケーション１０３によってネットワーク１０５を介してボットサーバ１２０に送信され、これに応じて、ボットサーバは、ネットワーク１０５を介してメッセージまたはメッセージをメッセージング・アプリケーション１０３に返信することができる。
【００４３】
情報サーバ１３０は、プロセッサ、メモリ及びネットワーク通信能力を含むことができる。一部の実装形態では、情報サーバ１３０はハードウェアサーバである。情報サーバ１３０は、信号線１１８を介してネットワーク１０５に通信可能に接続される。信号線１１８は、イーサネット、同軸ケーブル、光ファイバケーブルなどの有線接続、またはＷｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、または他の無線技術を使用することができる。
【００４４】
情報サーバ１３０は、メッセージング・アプリケーション１０３に情報を提供してもよい。例えば、情報サーバ１３０は、電子百科事典、ナレッジグラフ、ソーシャルネットワークアプリケーション（例えば、ソーシャルグラフ、友人に関するソーシャルネットワーク、ビジネスに関するソーシャルネットワークなど）、場所または位置に関するウェブサイト（例えば、レストラン、自動車販売店など）、マッピング・アプリケーション（例えば、案内を提供するウェブサイト）などを維持することができる。情報サーバ１３０は、単一のサーバとして示されているが、情報サーバ１３０は、ソーシャルネットワークアプリケーション、電子百科事典、およびマッピング・アプリケーションのための別個のサーバなど、複数のサーバを含むことができる。
【００４５】
情報サーバ１３０は、メッセージング・アプリケーション１０３から情報の要求を受信し、検索を実行し、要求における情報を提供することができる。例えば、メッセージング・アプリケーション１０３は、マッピング・アプリケーションからの走行方向または到着推定時間を要求することができる。一部の実装形態では、情報サーバ１３０は、メッセージング・アプリケーション１０３から情報を受信することができる。例えば、情報サーバ１３０がレストランについてのウェブサイトを維持する場合、メッセージング・アプリケーション１０３は、情報サーバ１３０にレストランに関するユーザの好きな料理などのレストランに関する更新された情報を提供することができる。
【００４６】
ユーザがそのようなデータの使用に同意している限り、情報サーバ１３０は、メッセージング・アプリケーション１０３が対応するソーシャルネットワークプロファイルを有する画像における人を識別するために使用することができる、ユーザのプロファイル情報またはプロファイル画像をメッセージング・アプリケーション１０３に提供してもよい。別の例では、情報サーバ１３０は、メッセージング・アプリケーション１０３によって使用されるメッセージで識別されるエンティティに関連する情報をメッセージング・アプリケーション１０３に提供することができる。例えば、情報サーバ１３０には、画像内で識別されたランドマークについての情報を提供する電子百科事典、メッセージにおいて識別されたエンティティを購入するための情報を提供する電子ショッピングウェブサイト、ユーザの同意の下でメッセージにおいて特定されたユーザからの旅程を提供する電子カレンダアプリケーション、近隣の場所（行くことのできるメッセージ内のエンティティ）に関する情報を提供するマッピング・アプリケーション、メッセージに記載された料理が提供されたレストランに関するウェブサイトなどが含まれる。
【００４７】
一部の実装形態では、情報サーバ１３０は、ボットサーバ１２０と通信することができる。例えば、情報サーバ１３０が中古車販売業者のウェブサイトを維持する場合、ボットサーバ１２０は、車のディテーリング作業を現在提供しているか否かを中古車販売業者のオーナーに問い合わせるように情報サーバ１３０に要求してもよい。情報サーバ１３０は、要求された情報をボットサーバ１２０に提供することができる。
【００４８】
一部の実装形態では、情報サーバ１３０は、公開されたチャットに関連付けられたメッセージング・アプリケーション１０３からのリンクを受信することができる。情報サーバ１３０は、情報サーバ１３０によって提供された公開されたチャットに関連するビジネスに関する情報と共にリンクを表示することができる。例えば、情報サーバ１３０がマッピング・アプリケーションを提供する場合、情報サーバ１３０は、ビジネスの場所を含む地図とリンクを提供することができる。ユーザ１２５がリンクを選択する場合、ユーザデバイス１１５は、メッセージング・アプリケーション１０３を開くことによって、ビジネスを代表する者（例えば、ボット、エージェント、またはビジネスオーナー）とチャットし得る。別の例では、情報サーバ１３０は、検索サービスを提供し、自転車店についてのユーザ１２５からのクエリを受信することができる。情報サーバ１３０は、自転車店に関するウェブサイトと、自転車店を代表する者とチャットするためにユーザ１２５が選択し得るリンクと、を含む検索結果を提供することができる。
【００４９】
図１Ｂを参照すると、提案を生成するための別の例示的なシステムが示されている。この例では、メッセージングサーバ１０１は、長期短期記憶（ＬＳＴＭ）ニューラルネットワークモデルなどのニューラルネットワークを使用するモデルから提案を受信することができる。ＬＳＴＭは、コンパクトな方法で長い文脈を利用するリカレントニューラルネットワークモデルである。一部の実装形態では、チャット会話のデータベースを使用して、ＬＳＴＭ訓練中に使用され、モデルの一部として記憶される普通の返信、ボキャブラリ、訓練データを決定する。例えば、会話中の当事者間で送信された最後の５〜１０個のメッセージは、そのモデルに基づいて次に提示される応答を予測するために使用されてもよい。これらの入力は、メッセージングサーバ１０１の一部として別の場所に記憶することができる。モデルは、文脈、モバイルデバイス１１５に関連付けられているユーザ識別情報、および最後のメッセージが受信されてからの時間に基づいて、どの提案がモバイルデバイス１１５のユーザにとって有用であるかについて予測するメッセージングサーバ１０１に提案を提供することができる。
例示的なコンピューティングデバイス
図２は、メッセージを送信し、提案をモバイルデバイスに提供する例示的なコンピューティングデバイス２００のブロック図を示す。コンピューティングデバイス２００は、メッセージングサーバ１０１またはモバイルデバイス１１５であってもよい。コンピューティングデバイス２００は、プロセッサ２３５、メモリ２３７、通信ユニット２３９、ディスプレイ２４１、およびストレージデバイス２４７を含むことができる。メッセージング・アプリケーション１０３は、メモリ２３７に記憶される。コンピューティングデバイス２００のコンポーネントは、バス２２０によって通信可能に結合されてもよい。
【００５０】
プロセッサ２３５は、計算を実行し、表示装置に命令を提供するために、算術論理装置、マイクロプロセッサ、汎用コントローラ、または他の何らかのプロセッサアレイを含む。プロセッサ２３５は、データを処理し、複合命令セットコンピュータ（ＣＩＳＣ）アーキテクチャ、縮小命令セットコンピュータ（ＲＩＳＣ）アーキテクチャ、または命令セットの組み合わせを実装するアーキテクチャを含む様々なコンピューティングアーキテクチャを含むことができる。図２は単一のプロセッサ２３５を含むが、複数のプロセッサ２３５が含まれてもよい。他のプロセッサ、オペレーティングシステム、センサ、ディスプレイおよび物理的構成は、コンピューティングデバイス２００の一部であってもよい。プロセッサ２３５は、バス２２０に結合され、信号線２２２を介して他のコンポーネントと通信する。
【００５１】
メモリ２３７は、プロセッサ２３５および／またはデータによって実行され得る命令を記憶する。命令は、本明細書に記載の技術を実行するためのコードを含むことができる。メモリ２３７は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイス、スタティックＲＡＭ、または他の何らかのメモリデバイスであってもよい。一部の実装形態では、メモリ２３７はまた、（ＳＲＡＭ）デバイスまたはフラッシュメモリなどの不揮発性メモリ、またはハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、コンパクトディスク読み出し専用メモリ（ＣＤ  ＲＯＭ）装置、ＤＶＤ  ＲＯＭ装置、ＤＶＤ  ＲＡＭ装置、ＤＶＤ  ＲＷ装置、フラッシュメモリ装置、またはより恒久的な基準で情報を記憶するための他の大容量記憶装置であってもよい。メモリ２３７は、メッセージアプリケーション１０３を実行するように動作可能なコードおよびルーチンを含む。これについては、以下により詳細に説明する。メモリ２３７は、信号線２２４を介して他の構成要素と通信するためにバス２２０に結合される。
【００５２】
通信ユニット２３９は、メッセージング・アプリケーション１０３がどこに記憶されているかに応じて、モバイルデバイス１１５、メッセージングサーバ１０１、ボットサーバ１２０、および情報サーバ１３０のうちの少なくとも１つとの間でデータを送受信する。一部の実装形態では、通信ユニット２３９は、ネットワーク１０５または別の通信チャネルに物理的に直接接続するためのポートを含む。例えば、通信ユニット２３９は、どこにメッセージング・アプリケーション１０３が記憶され得るかに応じて、ユニバーサルシリアルバス（ＵＳＢ）、セキュアデジタル（ＳＤ）、カテゴリ５ケーブル（ＣＡＴ−５）またはモバイルデバイス１１５またはメッセージングサーバ１０１との有線通信のための類似のポートを含む。一部の実装形態では、通信ユニット２３９は、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、Ｂｌｕｅｔｏｏｔｈまたは他の適切な無線通信を含む１つ以上の無線通信方法を使用して、モバイルデバイス１１５、メッセージングサーバ１０１、または他の通信チャネルとデータを交換するための無線トランシーバを含む。通信ユニット２３９は、信号線２２６を介して他の構成要素と通信するためにバス２２０に結合される。
【００５３】
一部の実装形態では、通信ユニット２３９は、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、ダイレクトデータ接続、電子メール、または他の適切なタイプの電子通信によるものを含むセルラ通信ネットワークによってデータを送受信するためのセルラ通信トランシーバを含む。一部の実装形態では、通信ユニット２３９は、有線ポートおよび無線トランシーバを含む。また、通信ユニット２３９は、ユーザデータグラムプロトコル（ＵＤＰ）、ＴＣＰ／ＩＰ、ＨＴＴＰ、ＨＴＴＰセキュア（ＨＴＴＰＳ）、シンプルメール転送プロトコル（ＳＭＴＰ）、ＳＰＤＹ、クイックＵＤＰインターネット接続（ＱＵＩＣ）などを含むがこれらに限定されない標準ネットワークプロトコルを使用して、ファイルおよび／またはメディアオブジェクトの配布のためにネットワーク１０５に他の従来の接続を提供する。
【００５４】
ディスプレイ２４１は、メッセージング・アプリケーション１０３から受信したグラフィックデータを表示するように動作可能なハードウェアを含むことができる。例えば、ディスプレイ２４１は、ユーザインタフェースを表示するためにグラフィックスをレンダリングすることができる。ディスプレイ２４１は、信号線２２８を介して他の構成要素と通信するためにバス２２０に結合される。ユーザに情報を提供する他のハードウェアコンポーネントは、コンピューティングデバイス２００の一部として含めることができる。例えば、コンピューティングデバイス２００は、オーディオインターフェース用のスピーカ、オーディオを取り込むためのマイクロフォン、または他のタイプの出力デバイスを含むことができる。一部の実装形態では、コンピューティングデバイス２００は、すべてのコンポーネントを含むわけではない。例えば、コンピューティングデバイス２００がメッセージングサーバ１０１である場合、ディスプレイ２４１はオプションであってもよい。コンピューティングデバイス２００がウェアラブルデバイスである実装形態では、コンピューティングデバイス２００は、ストレージデバイス２４７を含まなくてもよい。一部の実装形態では、コンピューティングデバイス２００は、ここに列挙されていない他のコンポーネント、例えば、１つ以上のカメラ、センサ、バッテリなどを含むことができる。
【００５５】
ストレージデバイス２４７は、本明細書で説明される機能を提供するデータを記憶する非一時的なコンピュータ可読記憶媒体であってもよい。コンピューティングデバイス２００がメッセージングサーバ１０１である実装形態では、ストレージデバイス２４７は、図１Ａのデータベース１９９を含むことができる。ストレージデバイス２４７は、ＤＲＡＭデバイス、ＳＲＡＭデバイス、フラッシュメモリ、または他の何らかのメモリデバイスであってもよい。一部の実装形態では、ストレージデバイス２４７は、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ  ＲＷデバイス、フラッシュメモリデバイス、または恒久的に情報を記憶するための他の大容量記憶装置であってもよい。ストレージデバイス２４７は、信号線２３２を介して他の構成要素と通信するためにバス２２０に結合される。
メッセージング・アプリケーションでの例示的なチャットボットの組み込み
図３を参照すると、ボットからの提案を含むユーザインタフェースのグラフィック表示３００が図示され、以下に説明される。一部の実装形態では、第１ユーザと第２ユーザ、例えば「あなた（“Ｙｏｕ”）」と識別されたユーザと「ジョン（“Ｊｏｈｎ”）」と識別されたユーザとの間でメッセージが受信される。この例では、第１ユーザおよび第２ユーザは、昼食を食べたい場所に関するリアルタイムのチャットに参加している。別の例では、第１ユーザは顧客の場合があり、第２ユーザはビジネスオーナーの場合がある。一部の実装形態では、メッセージは、第１ユーザからの、他のユーザではなくボットに向けたメッセージであってもよい。例えば、メッセージは、第１ユーザと特定の食物トラックボットとの間で通信されてもよい（第１ユーザは、特定の食物トラックが依然として提供可能なチキンを有しているか否かを調べている）。一部の実装形態では、メッセージは２人以上のユーザの間に存在してもよい。
【００５６】
一部の実装形態では、第１ユーザは、電話番号をメッセージングすること（例えば、メッセージング・アプリケーション１０３がＳＭＳ上で動作するとき）、または連絡先リストからユーザまたはボットを選択すること（例えば、メッセージング・アプリケーション１０３がリッチコミュニケーションサービス（ＲＣＳ）または別のチャットインターフェース上で動作する場合）によって、第２ユーザまたはボットにメッセージを送る。一部の実装形態では、メッセージング・アプリケーション１０３は、単一のＳＭＳ番号により、１つのボットに関連付けられた複数のエンティティからのグループメッセージを提供することによって、第１ユーザにはメッセージが単一のソースから来ているように見える。
【００５７】
第１タイプの第１ボットが、メッセージに基づいて第１ユーザに対して決定されてもよい。ボットは、ヒューマンエージェント、自動エージェント、自動レスポンダなどであってもよい。一部の実装形態では、ボットは、ヒューマンエージェント（ある点では）と、自動エージェント（別の点では）を含み得る複数のエンティティによって通信が提供されるハイブリッドであってもよい。例えば、ビジネスオーナーのマイク（Ｍｉｋｅ）および自動ボットの両方が第１ユーザと対話できるように、ボットの名前はマイクの自転車（Ｍｉｋｅ’ｓ  Ｂｉｋｅｓ）であってよい。さらに、これは、複数のエンティティを個別に管理することについて第１ユーザが混乱することなく、複数のエンティティが第１ユーザと対話することを可能にする。
【００５８】
メッセージング・アプリケーション１０３は、第１ユーザの位置、第１ユーザによってサブミットされたコンテンツの一部である要求、および／または、第１ユーザに関連付けられているユーザ情報（ユーザの同意がある場合）に基づいて、第１タイプの第１ボットを決定することができる。例えば、第１ボットは、第１ユーザが「その新しいタイレストランを試してみたいです」と書いたことに基づいて決定される予約ボットであってもよい（第１ユーザが、レストランの物理的な場所を訪問したいという欲求を示しているからである）。
【００５９】
第１ユーザに対し、第２タイプの第２ボットは、メッセージに基づいて決定されてもよい。例えば、第２ボットは、第１ユーザのために自動的に食物を注文する食物注文ボットを含むことができる。第２ボットは、メッセージ中の「ランチ（ｌｕｎｃｈ）」および「注文（ｏｒｄｅｒｉｎｇ）」などの単語を検出することに基づいて決定されてもよい。
【００６０】
１つ以上のメッセージ内のコンテンツに基づいて、第２ボットよりも第１ボットが選択されてもよい。例えば、第１ボットは、メッセージ内で「会う（ｍｅｅｔ）」が「注文する（ｏｒｄｅｒ）」よりも多く現れることに基づいて選択されてもよい。第１ボットは、メッセージング・アプリケーション１０３またはボットサーバ１２０によって、例えば１つ以上のデータベースにおいて維持されるボットストアから選択され得る。これに代えてまたはさらに、第１ボットは、第１ユーザおよび第２ユーザが見ることができるメッセージングインターフェースの一部であるリストに含まれていてもよい。
【００６１】
一部の実装形態では、メッセージング・アプリケーション１０３は、メッセージからトピックを決定することに基づいて第１ボットを選択する。例えば、トピックは食物であってもよく、単語「ランチ」に基づいて決定される。さらにまたはこれに代えて、メッセージング・アプリケーション１０３は、メッセージの意味分析を行うことに基づいて第１ボットを選択してもよい。例えば、第１ボットは、「注文」に否定的なセンチメント（例えば、「いいえ」またはこの例では「いや（ｎａｈ）」）が続くことに基づいて選択されてもよい。一部の状況では、訓練済みセンチメント分類器を用いて、単語および／またはテキストの文字列のセンチメントを決定することができる。さらにまたはこれに代えて、第１ボットは、第１ボットによって提供される１つ以上のサービスに関係する開始単語（ｉｎｉｔｉａｌ  ｗｏｒｄ）を決定し、開始単語に関係する関係単語を決定することに基づいて選択されてもよい。例えば、第１ボットは、レストラン予約を行うサービスに関係する、開始単語「ランチ」および関係単語「会う」を検出することに基づいて決定されてもよい。
【００６２】
一部の実装形態では、さらにまたはこれに代えて、メッセージング・アプリケーション１０３は、機械学習に基づいて第１ボットを選択する。例えば、メッセージング・アプリケーション１０３は、訓練セットデータから機械学習モデルを生成し、機械学習モデルを適用して、コンテンツが欲求に対応するか否かを判定するとともに、第１ユーザが欲求について行動する可能性が高い場合には、所定の期間中にコンテンツが生じると決定してもよい。例えば、上記の例を続けると、メッセージング・アプリケーション１０３は、欲求がレストランで昼食を食べることであり、複数ユーザが欲求について行動する可能性が高いと決定することができる（位置履歴を使用することのユーザ同意に基づいて、当該複数ユーザは、ともに午前１１時３０分に通常はレストランにいる、および／または、レストランにいることが知られているので）。
【００６３】
一部の実装形態では、メッセージング・アプリケーション１０３は、複数のメッセージのちの所与のメッセージが、２つ以上のボットの起動に関連付けられる１つ以上の語を含むと決定する。例えば、「予約？」という所与のメッセージは、レストラン予約ボットと、別の航空予約ボットとの両方の起動に関連付けられてもよい。これらの実装形態のうちの一部では、メッセージング・アプリケーション１０３は、複数ボットのうち、他のボットよりも１つのあるボットを選択する（複数のメッセージのうちのさらなるメッセージのうちの１つ以上のさらなる語も、選択されたボットの起動にも関連付けられているが、選択されていないボットの起動に関連付けられていないことに基づいて）。例えば、「昼食」および／または「レストラン」がさらなるメッセージ（例えば、先行するメッセージ）に存在する場合、航空予約ボットの代わりにレストラン予約ボットが選択され得る。ボットの起動に関連付けられている、および／または、別様にボットに関連付けられている語は、１つ以上のデータベースにおいてボットに関連付けて記憶されてよい。
【００６４】
ボットコマンドは、コンテンツに基づいて第１ボットに提供されてもよい。例えば、メッセージング・アプリケーション１０３は、第１ユーザおよび第２ユーザのために、第１ユーザおよび第２ユーザの間でやり取りされたメッセージで話し合いがされたレストランについて予約する申し出を行うように第１ボットに指示することができる。第１ボットは、メッセージにおいて明示的に話し合いがされていない様々な要因を決定し、決定された要因に基づいて申し出を行うことができる。例えば、第１ボットは、メッセージ内の「新しいタイレストラン（ｎｅｗ  Ｔｈａｉ  ｒｅｓｔａｕｒａｎｔ）」および「エルカミーノ（Ｅｌ  Ｃａｍｉｎｏ）」という単語に基づいてレストランの名前を決定し、複数ユーザが午前１１時３０分に行くことを好むと決定することができる（当該複数ユーザがともに午前１１時３０分に一緒に食事をすることに対応する、当該複数ユーザに関連付けられたユーザアクティビティに基づいて）。一部の実装形態では、メッセージング・アプリケーション１０３は、メッセージが目的地に関連付けられていると決定し、第１ユーザが目的地にいるであろう時間を決定し、ボットコマンドは目的地および時間に関係する。一部の実装形態では、第１ボットは、標準的な紹介（例えば、「こんにちは、私は第１ボットです」）を提供してから申し出を提供することができる。
【００６５】
別の例では、第１ユーザは、複数の自転車ショップのボットにメッセージを送って、ショップが自転車の特定のブランドおよびモデルを在庫に有しているか否かを問い合わせることができる。さらに別の例では、第１ユーザは、第１ユーザの空調を修理するためにアポイントメントをスケジュールし、アポイントメントをスケジュールし、クレジットカードで支払うべく、空調修理者にメッセージを送ることができる。
【００６６】
一部の実装形態では、メッセージング・アプリケーション１０３は、情報サーバからの第１ボットについての追加情報を要求し、追加情報に基づいてボットコマンドを生成する。例えば、メッセージング・アプリケーション１０３は、ナレッジカード（例えば、リッチカード）を提供する検索サーバまたはサーバからの情報を要求することができる。別の例では、メッセージング・アプリケーションは、第１ユーザが食事をしたい可能性がある様々なレストランを含む、情報サーバ１３０からの追加情報を要求することができる。図３において、メッセージング・アプリケーション１０３は、エルカミーノに位置するタイ料理を提供するレストラン、第１ユーザの位置に近いレストラン、評価の高いレストランなどについての情報を要求することができる。第１ボットは、２名で現在予約可能な時間でこれらのレストランに予約をするための申し出にレストランの名前を組み入れることができる。
【００６７】
メッセージング・アプリケーション１０３は、第１ユーザおよび第２ユーザに提案を提供することができる。例えば、メッセージング・アプリケーション１０３は、第１ボットに代わって、テイスティタイ（Ｔａｓｔｙ  Ｔｈａｉ）の予約を行う申し出を提供する。一部の実装形態では、メッセージング・アプリケーション１０３は、メッセージに基づいて第１ユーザが能動的役割に関連付けられていると決定し、第１ボットからボット提案を受信するのに第２ユーザよりも第１ユーザを選択することができる。例えば、２人のユーザがともに旅行を話し合っている場合、メッセージング・アプリケーション１０３は、ユーザのうちの１人がイベントの世話人であると決定してもよく、ボット提案は、世話人が自動車サービスに支払いを行うという提案を含むことができる。ユーザの１人が世話人であることを決定することは、様々な要因に基づいていてもよい（ユーザが会話を開始したこと、ユーザが、より多くのメッセージを会話に提供したこと、ユーザのメッセージが、他のユーザのメッセージよりも、選択されたボットに関係する語を含むことなど）。
【００６８】
一部の実装形態では、提案は広告を含むことができる。例えば、第１ボットは、第１ユーザに、テイスティタイの３０％割引のクーポンを提供することができる。メッセージング・アプリケーション１０３は、メッセージに存在するセンチメント、句読点、または絵文字に基づいて第１ユーザの文体を決定し、第１ユーザの文体により第１ユーザに提案を提供することができる。例えば、第１ユーザが大文字を使用せずにメッセージを書く傾向がある場合、メッセージング・アプリケーション１０３は、大文字を使用せずに提案を提供することができる。メッセージング・アプリケーション１０３は、メッセージング・アプリケーション１０３内のメッセージに関係する第１ユーザに関する支払いを処理するように、第１ユーザに提案を提供することができる。例えば、メッセージング・アプリケーション１０３は、テイスティタイでの食事の支払いを処理するように申し出る、または第１ユーザが第２ユーザの食物について支払う場合に第１ユーザに返済するように申し出る第３ボットを選択することができる。
【００６９】
一部の実装形態では、第１ボットは、自転車ショップがどこに位置しているかなど、第１ボットが入手可能な情報を第１ユーザが要求したときに自動応答を提供することができる。一部の実装形態では、第１ボットが要求された情報へのアクセスを有していないか、または情報が閾値を下回る機密スコアに関連付けられている場合、第１ボットはビジネスオーナーと通信して追加情報を取得できる。例えば、第１ユーザは、自転車ショップが開いているか否か問い合わせることができる。掲示されている営業時間は、ビジネスが開いていることを示している場合があるが、ビジネスオーナーが数時間にわたってメッセージング・アプリケーション１０３上でアクティブでない場合、または自転車ショップが通告なしで閉めることが知られている場合には、第１ボットは、自転車ショップが開いていることを確認するためにビジネスオーナーに問い合わせることができる。一部の実装形態では、第１ボットがビジネスオーナーに追加情報を問い合わせる場合、第１ボットは、ビジネスオーナーに提案応答を提供することができる。自転車ショップが開いているか否かの例を続けて、第１ボットは、ビジネスオーナーに「はい、午後５時まで」、「いいえ、しかし、明日は午前１０時から開いています」と応答するためのオプションを提供してもよいし、または別の回答を提供するためのオプションを提供してもよい。
【００７０】
一部の実装形態では、提案は他の会話と共有されてもよい。メッセージング・アプリケーション１０３は、２人のユーザにつながりのある人々がその提案を閲覧したい場合があると決定することができる。例えば、当該２人のユーザが頻繁に第３ユーザと昼食で外出する場合、第３ユーザは、当該２人のユーザが１１：３０にテイスティタイで食事をすることを知りたい場合がある。別の例では、メッセージング・アプリケーション１０３は、当該２人のユーザに無関係であるが、同様の会話をする人々に提案を共有してもよい。
【００７１】
メッセージング・アプリケーション１０３は、フィールドに入力されたテキストまたは選択を第１ボットに送る、フィールドを含むユーザインタフェースを第１ユーザに提供してもよい。例えば、図３では、予約ボット（ＲｅｓｅｒｖａｔｉｏｎＢｏｔ）が１１：３０にテイスティタイでユーザのために予約することを提案することに応じて、ユーザは、提案を受諾するか、または、異なる人数、異なるレストラン、および異なる予約時間を選択して、提案を修正してもよい。
【００７２】
一部の実装形態では、メッセージング・アプリケーション１０３は、複数ユーザのうちの１人と第１ボットとの間の対話に基づいて情報を更新することができる。例えば、メッセージング・アプリケーション１０３は、第１ユーザから、テイスティタイの営業時間に関する第１ボットに向けられた質問を受信できる。メッセージング・アプリケーション１０３は、テイスティタイに関連付けられた第三者サーバ１２０に電子メールなどの要求を送信することによって、テイスティタイのビジネスオーナーに、テイスティタイの営業時間に関する追加情報を問い合わせるように第１ボットに指示することができる。一部の実装形態では、第１ボットは、第１ボットが、回答が所定の閾値を下回る機密スコアに関連付けられていると判定しない限り、第１ユーザからの質問に応答することができる。この場合、ビジネスオーナーに回答を問い合わせてもよい。次いで、ビジネスオーナーの回答を使用して、回答からの情報（例えば、テイスティタイの営業時間）により、１つ以上のデータベースにおいて、「テイスティタイ」のエントリを更新することができる。一部の実装形態では、ビジネスオーナーはいつでも質問に回答可能な場合がある。一部の実装形態では、第１ボットは、ユーザに先に求められなくてもビジネスオーナーに質問して、予め、ユーザが回答を入手可能なようにしてもよい。例えば、第１ボットは、ビジネスがクリスマスに開いているか否かをビジネスオーナーに問い合わせ、ビジネスに関連付けて回答を記憶し、次いで、ビジネスのクリスマス営業時間について問い合わせる対応するボットに向けられたメッセージに応じて、ユーザに回答を提供することができる。
【００７３】
メッセージング・アプリケーション１０３は、追加情報を受信し、第１ユーザに対し追加情報を含む回答を生成することができる。追加情報が新たな情報を含む場合、メッセージング・アプリケーション１０３は、新たな情報に基づいてビジネスのためのビジネスプロファイルへの更新を提供することができる。例えば、メッセージング・アプリケーション１０３は、ビジネス情報を維持するウェブサイトに更新を送信するよう第１ボットに指示することができる。第１ボットはまた、予めビジネスオーナーに質問する第１ボットからの情報に関し、ビジネス情報を維持するウェブサイトに更新を送信してもよい。
【００７４】
一部の実装形態では、メッセージング・アプリケーション１０３は、第１ボットによって実行される２つ以上のサービスを含む第１の提案を提供することができる。例えば、メッセージング・アプリケーション１０３は、予約を行い、レストランに関する追加情報を提供し、レストランを評価する申し出を提供することができる。メッセージング・アプリケーション１０３は、第１ユーザから２つ以上のサービスのうちの１つの選択を受信することができる。例えば、第１ユーザは、第１ボットに予約を行うように求める。メッセージング・アプリケーション１０３は、第１ユーザに、選択されたサービスに対応する追加提案を提供することができる。例えば、メッセージング・アプリケーション１０３は、レストランを選択し、時間を選定し、予約のために幾人かの人を選択するようにして第２の提案を提供する。一部の実装形態では、追加提案を提供することは、ユーザがスクロールできるグラフィックアイコンを提供することを含む。一部の実装形態では、追加提案は広告を含む。
例示的な概略−会話の要約
一部の実装形態では、メッセージング・アプリケーション１０３は、２人以上のユーザ間の最初の会話の一部であるメッセージを分析して、アクションに関連付けられる１つ以上のエンティティを決定する。エンティティは、メッセージにおける、人、場所、またはオブジェクトであってよい。例えば、提案アプリケーション１３２は、メッセージをパースすることに基づいて、メッセージ「最高の天気！（ｇｒｅａｔ  ｗｅａｔｈｅｒ！）」が「最高の（ｇｒｅａｔ）」、「天気（ｗｅａｔｈｅｒ）」および「！」を含むと識別し、メッセージから第１エンティティ「最高の（ｇｒｅａｔ）」および第２エンティティ「天気（ｗｅａｔｈｅｒ）」を決定する。
【００７５】
最初の会話における他のメッセージは、文脈インジケータを決定するために分析される。一部の実装形態では、メッセージング・アプリケーション１０３は、複数のユーザのうちの１人以上のユーザに関係する他の会話（例えば、以前の会話、第三者アプリケーションからの会話）を分析する。例えば、メッセージ「ＡＢＣコーヒー・ストアでお会いしますか？」およびユーザ・プロファイル情報から、メッセージング・アプリケーション１０３は、ユーザの同意の下で、エンティティ「ＡＢＣコーヒー・ストア」がユーザの職場の近くにあると判定する。他の文脈インジケータは、センチメントインジケータ、会話の流れ、メッセージの時制、メッセージが最新であること、メッセージが送られた日および／または時間、エンティティに関連付けられる日および／または時間、会話メタデータなどを含む。
【００７６】
メッセージング・アプリケーション１０３は、文脈インジケータを決定し、文脈インジケータに基づいて、エンティティがアクション可能であるか否かを決定する。文脈インジケータは、会話の流れ、時制、センチメントインジケータ（例えば、気持ちを示す記号）、メッセージに使用される動詞、メッセージにおいて質問されるか否か、会話メタデータなどを含むことができる。例えば、メッセージング・アプリケーション１０３は、メッセージ「私はＡが好きである（Ｉ  ｌｉｋｅ  Ａ）」におけるエンティティＡがアクション可能でないと判定するが、メッセージ「私はＢを購入しようとしている（Ｉ  ａｍ  ｇｏｉｎｇ  ｔｏ  ｂｕｙ  Ｂ）」におけるエンティティＢがアクション可能であると判定する。ユーザＣがユーザＤに「ＸＹＺで会う？（ｍｅｅｔ  ａｔ  ＸＹＺ？）」と尋ねる場合、メッセージング・アプリケーション１０３は、会話の流れにおいてユーザＤの肯定的な回答を受信した後に、場所「ＡＢＣ」がアクション可能であると判定することができる。
【００７７】
メッセージング・アプリケーション１０３は、文脈インジケータに基づいてアクション可能エンティティに関する提案を生成する。例えば、２人のユーザが店舗で会いたい場合、メッセージング・アプリケーション１０３は、ユーザに店舗への案内と、会合時間をスケジューリングするためのカレンダエントリを提供することができる。文脈インジケータに基づいて、地図は、両方のユーザに近い特定の店舗への案内を示すことができ、カレンダーは、両方のユーザが利用可能なタイムスロットを強調表示することができる。
【００７８】
提案生成プロセスは、いくつかのタイプの自動化を含むことができる。例えば、メッセージング・アプリケーション１０３は、提案を生成するか否か、および会話中のいつどこで提案を挿入するかを決定することができる。ユーザＡからユーザＢへの「コーヒーハウスで会う？」という質問に対して、ユーザＢが質問に「最高！」と回答した場合、コーヒーハウスへの地図を２人のユーザに提案することができる。例えば、ユーザＢが「私は行きたいですが、・・・」と回答した場合、地図提案は２人のユーザに提供されない場合がある。メッセージング・アプリケーション１０３はまた、文脈インジケータに基づいて提案が適切であるか否かを判定してもよい。例えば、ユーザが最近悪いニュースを受信した場合、祝福提案は不適切である。別の例では、メッセージング・アプリケーション１０３は、ユーザが好まないエンティティのリストを決定してもよく、メッセージング・アプリケーション１０３は、そのリストからはユーザに提案しないことができる。
【００７９】
図４Ａは、提案を示す例示的な会話インターフェースのグラフィック表示を含む。図示の例では、会話インターフェース１０００、１０５０がアーロン（Ａａｒｏｎ）のモバイル画面に表示されている。アーロンは、ボブから「パークチョウで食べたい？（Ｗａｎｔ  ｔｏ  ｅａｔ  ａｔ  Ｐａｒｋ  Ｃｈｏｗ？）」というメッセージ１００２を受信する。図１および図２を参照して上述したメッセージング・アプリケーション１０３は、場所「パークチョウ」がアクション可能であると決定する。したがって、アーロンとボブがその場所についてアクションを起こすことに関して提案が生成され得る。この例では、メッセージング・アプリケーション１０３は、アーロンとボブに対して場所「パークチョウ」の地図１００４を生成する。アーロンとボブは、地図１００４を閲覧したり、共有ボタン１００６を使用して地図１００４を共有したりできる。このシナリオでは、地図１００４は、アーロンがメッセージ１００８「もちろん（Ｓｕｒｅ）」を送ることでメッセージ１００２に応答する前および後に２回表示される。別のシナリオでは、決定エンジン２２８は、アーロンが質問１００２に肯定的に回答する場合にのみ（例えば、メッセージ１００８「もちろん」により回答する場合のみ）、場所「パークチョウ」がアクション可能であると判定する。これにより、場所提案（例えば、地図１００４）は、アーロンがメッセージ１００８を送った後に１回表示されるのみであってよい。アーロンとボブは、また、地図はユーザが望む提案ではないこと、地図が間違っていること、または他の否定的な反応を示すために、「うーん、違う（Ｕｍｍ，ｎｏｐｅ）」オプション１０１０を選択することができる。図１０では、提案生成プロセス全体がメッセージング・アプリケーション１０３によって処理される。
【００８０】
図４Ｂは、会話サービスによって生成された会話を示す例示的な会話インターフェースのグラフィック表示である。ユーザであるメリッサＧ．（Ｍｅｌｉｓｓａ  Ｇ．）と、アリスＺ．（Ａｌｉｃｅ  Ｚ．）と、クリスＢ．（Ｃｈｒｉｓ  Ｂ．）との間の進行中の会話が、会話インターフェース１１００上に表示されている。ユーザであるメリッサＧと、アリスＺ．と、クリスＢ．とは、この非限定的な例においてソーシャルネットワークのメンバーであり得る。ユーザ間の会話セッションは、ソーシャルネットワークにおける第１アプリケーション（例えば、メッセージング・アプリケーション１０３）によって生成され、管理される。会話インターフェース１１００は、メリッサのコンピュータ画面上に表示され得る。この例では、ユーザは、夜のプランについて会話し、メリッサはショッピングに興味を示し、「ドレスファクトリーは良いです。私は、ドレスファクトリーで今割引があるだろうかと思っている（Ｄｒｅｓｓ  Ｆａｃｔｏｒｙ  ｉｓ  ｇｏｏｄ．  Ｉ  ａｍ  ｗｏｎｄｅｒｉｎｇ  ｉｆ  ｔｈｅｙ  ｈａｖｅ  ａｎｙ  ｄｉｓｃｏｕｎｔ  ｒｉｇｈｔ  ｎｏｗ）」と述べている。メッセージング・アプリケーション１０３が、このメッセージにおける重要なエンティティが「ドレスファクトリー（Ｄｒｅｓｓ  Ｆａｃｔｏｒｙ）」および「割引（ｄｉｓｃｏｕｎｔ）」であることを識別する場合、メッセージング・アプリケーション１０３は、これらの重要なエンティティに基づいて提案を生成する。しかしながら、図１０のようにメッセージング・アプリケーション１０３によって提案を生成する代わりに、メッセージング・アプリケーション１０３は、情報である「ドレスファクトリー」および「割引」を別のサービス（例えば、プロモーションサービス）に供給して提案を生成する。
【００８１】
図４Ｃを参照すると、プロモーションサービスによって生成された提案を示す例示的な会話インターフェースのグラフィック表示が示されている。図示の例では、会話インターフェース１１５０がメリッサのモバイル画面に表示される。会話インターフェース１１５０は、「ドレスファクトリーは、ドレスとジュエリーが５月３０日まで２０％オフ（Ｄｒｅｓｓ  Ｆａｃｔｏｒｙ  ｈａｓ  ２０％  ｏｆｆ  ｆｏｒ  ｄｒｅｓｓ  ａｎｄ  ｊｅｗｅｌｒｙ  ｕｎｔｉｌ  Ｍａｙ  ３０）」という提案１１５２を含む。プロモーションサービスは、図１１Ａのメッセージング・アプリケーション１０３によって識別されるエンティティ「ドレスファクトリー」および「割引」に基づいて、提案１１５２を生成する。一例では、プロモーションサービスは、インターネット上でエンティティの検索を実行して、提案１１５２を生成することができる。提案生成部１３２は、提案１１５２を受信し、次いで、図１１Ａの会話の全ての参加者、例えば、メリッサＧと、アリスＺ．と、クリスＢ．に提案１１５２を提供することができる。図１１Ｂは、アリスまたはクリスに示された提案と同一である、メリッサのモバイル画面上の提案１１５２を示している。
【００８２】
図４Ｄは、ワンタップ返信を示す例示的な会話インターフェースのグラフィック表示である。図示の図１２では、会話インターフェース１２００がアーロンのモバイル画面に表示されている。「母親のフライトがいつ着陸するのか？（ｗｈｅｎ  ｉｓ  ｍｏｍ’ｓ  ｆｌｉｇｈｔ  ｇｏｉｎｇ  ｔｏ  ｌａｎｄ？）」という質問１２０２をボブから受信することに応じて、メッセージング・アプリケーション１０３は、アーロンの以前のユーザアクション（例えば、購入履歴）に基づいてアーロンからのあり得る応答を予測し、アーロンに対してワンタップ返信１２０４を生成し得る。自動返信１２０４は、フライト番号、到着時刻およびフライト状況を列挙する。したがって、アーロンは、ボブへの回答をタイプする時間を節約する。同様に、ボブが別の質問１２０６「空港で彼女を出迎えますか？（ｗｉｌｌ  ｙｏｕ  ｐｉｃｋ  ｈｅｒ  ｕｐ  ａｔ  ｔｈｅ  ａｉｒｐｏｒｔ？）」を送る場合、メッセージング・アプリケーション１０３は、これがイエス・ノー質問であると判定し、アーロンが選択するのに「はい（ＹＥＳ）」または「いいえ（ＮＯ）」の２つのオプションを含めてワンタップ自動返信１２０８を生成する。
【００８３】
図４Ｅは、会話レポートを示す例示的な会話インターフェースのグラフィック表示である。会話インターフェース１３００は、検索ボックス１３０２を含み、ユーザは、参加者名、トピック、時間、それらの組み合わせなどに基づいて会話を検索することができる。図１３の図示の例では、ユーザは、映画「スターウォーズ（ｓｔａｒ  ｗａｒｓ）」に関する会話を検索した。ユーザからの検索要求に応じて、メッセージング・アプリケーション１０３は、レポートを生成することができる。ある例では、レポートは、いつユーザがトピックを話し合ったか、その会話における他の参加者についての要約１３０４から始まってもよい（例えば、メリッサ、アリス、ジェニーは水曜日の午後７時１０分〜７時３０分に「スターウォーズ」について話し合った（Ｍｅｌｌｉｓｓａ，  Ａｌｉｃｅ  ａｎｄ  Ｊｅｎｎｙ  ｄｉｓｃｕｓｓｅｄ  “ｓｔａｒ  ｗａｒｓ”  ｂｅｔｗｅｅｎ  ７：１０−７：３０ｐｍ  ｏｎ  Ｗｅｄｎｅｓｄａｙ））。レポートには、各参加者からの会話メッセージを時間順に含めてもよい。レポートはまた、ユーザによって検索されたキーワード「スターウォーズ」１３０６を強調表示することができる。さらに、レポートは、エンティティについてのさらなる情報（例えば、経歴、写真）をユーザが取り出すことを可能にするために、特定のエンティティ（例えば、俳優「ＡＡ」１１０８および「ＢＢ」１３１０）を強調表示することができる。強調表示され、識別された各エンティティは、ユーザがインターネット上のエンティティの検索を実行することを可能にするハイパーリンクに関連付けられてもよい。
【００８４】
図４Ｆは、会話要約を示す例示的な会話インターフェースのグラフィック表示である。図示の例では、会話インターフェース１４００は、メッセージング・アプリケーション１０３によって生成された会話要約１４０２を含んでおり、ユーザが１週間に参加した会話をユーザのために要約している。会話要約は、２つの例示的な部分１４０２および１４０４を含むことができる。第１の部分１４０２において、要約は、過去１週間にユーザが参加した会話の数、および会話に関するいくつかの基本情報、例えば時刻、日付、他の参加者の識別情報などを含むことができる。第１の部分１４０２はまた、各参加者からの会話メッセージ、各メッセージが送られた時間などを含む、各会話についてのさらなる詳細を提供する、各会話の詳細（ｄｅｔａｉｌ）オプション１４０６を含んでいてもよい。第２の部分１４０４は、過去１週間に行われた会話に関する顕著な情報を含んでいてもよく、これには例えば、会話において話し合われたトピック（任意選択的に、会話中の各トピックのパーセンテージを示すパイチャート１４０８）、会話において共有されたオーディオ／ビジュアルコンテンツ（任意選択的に、コンテンツを再生するためのリンク１４１０）、２つの会話で共有された写真１４１２が含まれる。
【００８５】
図４Ｇは、提案の一連の提示を示す例示的な会話インターフェースのグラフィック表示を含む。図示された図４Ｇにおいて、会話インターフェース１５００は、ユーザのモバイル画面上に表示される。「食事のために会う？（ｍｅｅｔ  ｕｐ  ｆｏｒ  ａ  ｍｅａｌ？）」というメッセージ１５０２の受信に応じて、メッセージング・アプリケーション１０３は、「昼食（ｌｕｎｃｈ）」、「夕食（ｄｉｎｎｅｒ）」、「ブランチ（ｂｒｕｎｃｈ）」などについてオプション１５０４を生成して表示する。ユーザは、ユーザに第１に提案されたオプション１５０４のうちの１つを選択してもよく、これにより、生成されるべき第２の提案がトリガされる。図４Ｇは、オプション１５０６に示されるようなユーザ選択の受信に応じて生成される会話インターフェース１５５０を示す。オプション１５０６においてユーザが昼食を選択すると、メッセージング・アプリケーション１０３は、昼食に関し開いている特定のレストランを生成して表示する。ある実装形態では、メッセージング・アプリケーション１０３は、会話の全ての参加者の特定の距離範囲内にあるレストランのみを表示することができる。一部の例では、レストラン情報１５０８は、レストラン名、レストランタイプ、レビューおよび価格を含むことができる。
【００８６】
ある実装形態では、表示されたレストラン情報は、選択可能であり、アクション可能であってもよい。一例では、ユーザは特定のレストランを選択し、それを会話の他の参加者に表示することができる。例えば、レストラン名を含むメッセージとして、レストラン名と、会話に適した既定のデフォルトワード（例えば、「・・・で会いましょう」）とを含むメッセージとして表示することができる。別の例では、ユーザは、特定のレストランを選択して、インターネット上でレストランの検索を実行し、ウェブサイトから店主情報を取り出し、レストランの場所の地図を取り出すなどしてもよい。次いで、ユーザは、例えば、レストランの場所の地図を会話インターフェースに挿入することによって、取り出された情報を会話の他の参加者に表示することを選択することができる。
例示的な概略−メッセージング会話のための提案応答
ここで図５Ａを参照すると、メッセージング・アプリケーションのユーザインタフェースが示されている。一部の実装形態では、メッセージング・アプリケーション１０３は、第１ユーザと、他のユーザを含むグループとの間でのメッセージを受信する。例えば、グループはフットボールグループであり、メッセージでは、第１ユーザが、他のユーザのうちの１人である第２ユーザに、他のユーザがいるフットボールの試合の場所に第２ユーザがどのくらい近いか尋ねている。メッセージの文脈、第１ユーザ、および他のユーザが決定される。文脈は、イベントまたは休日を含むことができる。別の例では、文脈は、メッセージがユーザの到着推定時間の要求であるという文脈である。
【００８７】
メッセージおよび文脈に基づいて他のユーザの各々がグループと共有するのに提案される提案応答が決定される。提案応答は、グループと共有するための画像（例えば、第２ユーザの電話から取得される）、グループと共有するための位置（例えば、第２ユーザの位置に基づいて）、または第２ユーザと共有するためのカレンダイベント（例えば、イベントに参加していることに言及したメッセージに基づいて）を含んでいてもよい。
【００８８】
一部の実装形態では、提案応答は、機械学習を使用して第２ユーザのための個人用モデルを開発することに基づくことができる。メッセージング・アプリケーション１０３は、メッセージまたは会話のコーパスから例をフィルタリングすることと、応答を提案するために例に基づいてニューラルネットワークを訓練することと、第２ユーザに関連付けられている情報に基づいて提案応答を個人用にすることに基づいて提案応答を修正することと、によって、機械学習モデルを生成し、機械学習モデルを使用し、提案応答を生成することができる。機械学習モデルは、提案応答に追加のサービスを組み入れることができる。例えば、メッセージング・アプリケーション１０３は、機械学習モデルを使用して、ユーザに関する位置情報、ユーザに関連付けられた写真、ユーザに関連付けられている購入情報などを取得し得る。第１ユーザが第２ユーザに「あなたの休暇はどうだった？」と尋ねる場合、機械学習モデルは、第２ユーザが、休暇の写真を添付することを提案してもよい（写真は写真サーバから取り出され、休暇中および／または休暇の場所で撮影された写真として識別される）。第１ユーザが野球帽へのリンクを第２ユーザに提供し、野球帽が好きか否かを第２ユーザに尋ねる場合、機械学習モデルは、最近の野球帽の購入、商取引ウェブサイト上の野球帽の高い評価などに基づいて、第２ユーザの「私はそれが大好きです」との応答を提案してもよい。第１ユーザが第２ユーザに「どこにいますか？」と尋ねる場合、機械学習モデルは、マッピング・アプリケーションからの、第２ユーザの位置の地図を第１ユーザに提供することを提案してもよい。この提案は、「どこにいますか？」というメッセージへの返信に含めるための提案として、第２ユーザに提供されてもよい。さらなる例として、所与のユーザが「私は移動途中です」というメッセージを作成している、および／または送ったと仮定する。所与のユーザの位置が、メッセージに含められるように所与のユーザに提案されてもよいし（作成している場合）、および／または追加メッセージとして提供するように所与のユーザに提案されてもよい（送った場合）
一部の実装形態では、提案応答は、チャットボットがグループに関連付けられているメッセージに参加しているか否かに基づいてカスタマイズされてもよい。例えば、メッセージング・アプリケーション１０３は、チャットボットが存在するか否かを判定することができる。チャットボットが存在することに応じて、メッセージング・アプリケーション１０３は、第１の組の自動提案応答を生成する。例えば、第１の組の自動提案応答は、チャットボットが従う会話ルールに基づいていてもよい。会話ルールは、通信を容易にするためにチャットボットによって容易に理解される形式を生成するのに役立つ。チャットボットが存在しないことに応じて、メッセージング・アプリケーション１０３は、第２の組の自動提案応答を生成する。例えば、第２の組の自動提案応答は、ユーザプリファレンスに基づくことができる。一部の実装形態では、メッセージング・アプリケーション１０３は、ボットモードに切り替えるオプションをユーザに提供することができ、これによって、ユーザのアバターをボットに変更し、最高ランクの提案応答を使用して会話に自動的に返信する。一部の実装形態では、メッセージング・アプリケーション１０３は、どのような会話、メッセージ、および送信者がユーザにとって重要であるかを決定し、それに応じて提案応答が修正される。
【００８９】
提案応答は、第２ユーザのパーソナリティに基づいていてもよい。例えば、メッセージング・アプリケーション１０３は、ユーモアまたは風刺を含むホワイトリストに基づいたメッセージにおける単語の分類、絵文字の使用、句読点の使用などに基づいて、第２ユーザのパーソナリティを決定してもよい。
【００９０】
他のユーザのうちの第２ユーザがワンタップアクションで応答することを可能にする、第２ユーザに対する提案応答とともに、通知が生成されてもよい。例えば、提案応答は、第２ユーザとフットボールゲームの場所との間の距離と、推定移動時間と、および第２ユーザによって好まれるスタイルで書かれた提案応答と、を決定することを含む。メッセージング・アプリケーション１０３は、第２ユーザの位置、カレンダイベントの位置を含むカレンダイベント、および／またはマッピング・アプリケーションからの目的地に関する情報に基づいて、第２ユーザの到着推定時間を決定することができる。一部の実装形態では、メッセージは、最近のイベントに関する情報の要求を含むことができる。メッセージング・アプリケーション１０３は、最近のイベントに対応する画像と、最近のイベントに関係するソーシャルネットワークの投稿と、を決定することによって、提案応答を決定することができる。
【００９１】
提案応答は、センサデータ、１つ以上のプリファレンス、会話履歴、または他の参加者の各々によって実行された１つ以上の最近のアクティビティに基づくことができる。センサデータに基づいて、ユーザが移動中であると判定されてもよく、ワンタップアクションは、第２ユーザが移動中であると判定することに基づいてもよい。例えば、ユーザインタフェースは、ユーザが静止している場合に複数の提案された応答を含み得るが、メッセージング・アプリケーション１０３がユーザが運転していると判定した場合、メッセージング・アプリケーション１０３はワンタップアクション応答を提案し得る。
【００９２】
一部の実装形態では、メッセージング・アプリケーション１０３は、第２ユーザの位置に関係する、地域、市場、または国における他のメッセージに基づいてトレンディング応答を決定する。例えば、メッセージング・アプリケーション１０３は、大統領選挙中のトレンディング応答を決定してもよいし、「ハッピーニューイヤー！」または「ゴーシーホークス！（Ｇｏ  Ｓｅａｈａｗｋｓ！）」（メッセージング・アプリケーション１０３が、シーホークスがトレンドであり第２ユーザがシーホークスのファンであると判定した場合）などの特別な機会に対する応答を決定してもよい。メッセージング・アプリケーション１０３は、提案応答の一部としてトレンディング応答を含んでいてもよい。
【００９３】
一部の実装形態では、メッセージング・アプリケーション１０３は、他のユーザのうちの第２ユーザに、パーソナリティのタイプと、提案応答を決定するために使用されるパーソナリティのタイプのレベルと、を指定するためのオプションを含むグラフィカルユーザインタフェースを提供する。例えば、ユーザインタフェースは、提案応答が絵文字を含むべきか否かを指定するためのスライダを含むことができる。
【００９４】
一部の実装形態では、メッセージング・アプリケーション１０３は、会話開始提案を決定する。メッセージング・アプリケーション１０３は、会話中に最後のメッセージが受信されてから経過した閾値時間に基づいて、会話開始提案を提供することができる。例えば、メッセージング・アプリケーション１０３は、最後のメッセージが会話で受信されてから２４時間が経ったと判定することができる。これによって、メッセージング・アプリケーション１０３は、メッセージを提供した最後の人、会話に最も頻繁に貢献する人、グループリーダーなどに、会話開始提案を提供することができる。メッセージング・アプリケーション１０３は、グループに関連付けられているトピック、トレンディングトピック（人気の野球選手のトレード）、グループに関連付けられているトピックに関係する最近のイベント（野球チームがプレーオフを行った）、ユーザのうちの１人に関連付けられているアクティビティ（例えば、休暇、野球に行ったこと）などに基づいて、会話開始提案のコンテンツを決定することができる。
【００９５】
図５Ｂは、提案応答の例示的な組のグラフィック表示である。この例では、第１ユーザからの第２ユーザに時間があるか否かについての質問に応じて、メッセージング・アプリケーション１０３は、絵文字、返信期間、および単純な肯定を含む３つの提案応答を提供することができる。以下は、提案のタイプに応じて整理されたテキスト提案の例である。
【００９６】
【表１】
2019506659.tif 000003
一部の実装形態では、提案応答は、単にテキストではなくメディアに関係することがある。例えば、図５Ｃは、第１ユーザが第２ユーザに第２ユーザの赤ちゃんの写真を送る例を示す。この写真は、簡略化のために図５Ｃに図示されていないが、図５Ｃの提案で第２ユーザに提示されてもよい。メッセージング・アプリケーション１０３は、写真に対して分析を実行して、写真がサンタスーツを着た赤ちゃんを含むと識別することに基づいて提案を提供し、提案応答（「かわいい！（Ｃｕｔｅ！）」、「メリークリスマス（Ｍｅｒｒｙ  Ｃｈｒｉｓｔｍａｓ！）」および「明るい笑顔（Ｓｕｎｎｙ  ｓｍｉｌｅ）」）は、サンタスーツの赤ちゃんの写真への反応を含むだろう。例えば、写真は、画像における物体を予測するように訓練されたニューラルネットワークへの入力として適用されてよく、ネットワークによって生成される出力は、赤ちゃんが存在し、サンタスーツが存在することを示していてよい。提案「かわいい！」および「明るい笑顔」は、「サンタ」に対する提案応答であることに基づいて選択された「メリークリスマス」および「赤ちゃんの写真」に対する提案応答であることに基づいて選択され得る。
【００９７】
図６は、トークン（例えば、以前のメッセージ）と以前のＬＳＴＭ状態とを受信する、メッセージング・アプリケーション１０３を含む一般的なＬＳＴＭモデルを示す。メッセージング・アプリケーション１０３は、会話における各メッセージをトークン化することによってトークン埋め込みを実行し、元のＬＳＴＭモデルに基づいて修正ＬＳＴＭモデルを生成し、隠れマルコフモデルを適用し、ソフトマックスを適用して次のトークン（例えば、提案応答）を予測する（例えば、ＬＳＴＭ出力を確率分布にマッピングすることによって）。
【００９８】
図７は、メッセージング・アプリケーション１０３がトークンおよびユーザ識別子を受信し、トークンが埋め込まれ、ユーザ識別子が埋め込まれ、コンカチネーションが実行される、個人用ＬＳＴＭモデルを示す。一部の実装形態では、トークンは小文字である。コンカチネーションには、トークンごとのカウント、いくつかの発生のカウント、およびトークンを使用した幾人かの固有のユーザのカウントを生成することが含まれてもよい。トークンが幾人かの人の所定の固有のユーザ（例えば、１０００の固有のユーザ）よりも少ないユーザに関連付けられている場合、トークンはスローアウェイデータベースにマッピングされる。閾値ランクを超えてランク付けされた所定のいくつかのトークンは、トークンボキャブラリーデータベースにマッピングされ、残りはスローアウェイデータベースにマッピングされる。コンカチネーションはまた、各ユーザに使用されるいくつかの合計トークンのカウントを生成することを含むことができる。ユーザが所定のトークン値（例えば、ユーザ当たりの最小トークンカウント）より大きいいくつかのトークンに関連付けられている場合、トークンはユーザボキャブラリデータベースに関連付けられ、残りはスローアウェイデータベースにマッピングされる。
【００９９】
メッセージング・アプリケーション１０３は、元のＬＳＴＭモデルに基づいて修正ＬＳＴＭモデルを生成し、コンカチネーションを実行することができる。一部の実装形態では、メッセージング・アプリケーション１０３は、メッセージを互いに独立して考慮する（すなわち、会話の文脈なしで）。メッセージング・アプリケーション１０３は、スローアウェイデータベースにあるユーザによって書かれたメッセージを破棄することができる。残りのメッセージについて、メッセージング・アプリケーション１０３は、メッセージを時間順にソートし、初めの７５％を訓練セットデータに含め、最後の２５％をテストセットに含めることができる。一部の実装形態では、１回のステップ中、１００人の既知のホワイトリストのユーザは、ユーザ（いくつかのトークンによってランク付けされた）の１０分の１の各々から１０人のユーザをランダムに選択することによって選択されてよい。ユーザの各々についての訓練およびテストデータは、個別のテーブルに抽出されて、個人用モデルで試されてもよい。メッセージング・アプリケーション１０３は、隠れマルコフモデルを実行し、ソフトマックスを適用して次のトークンを予測してもよい。
【０１００】
一部の実装形態では、メッセージング・アプリケーション１０３は、ヒューマン評価意味クラスタを受信し、予測応答が属する最も可能性の高いクラスタのセットを予測するモデルを適用し、予測クラスタの各々について、提案返信が予測される（図８に示すトークントライなどのトークントライ上でビームサーチを使用してモデルをスコア化することによって）。一部の実装形態では、メッセージング・アプリケーション１０３は、メッセージがホワイトリストの返信であるとして、モデルが上位３位内でメッセージをランク付けする頻度を記述する３つのメトリックでの再現率を使用する。３つのメトリックでの再現率は、正確に正しいメッセージが予測された場合、正確である場合があり、予測されたメッセージが正しいメッセージと同じ意味クラスタに収まる場合はクラスタである場合がある。図９は、いくつかのメッセージおよびモデルのタイプの関数としてのいくつかのメッセージに関連付けられている統計を示す。
【０１０１】
上記の説明では、説明の目的で、明細書の完全な理解を提供するために、多くの具体的な詳細が記載されている。しかしながら、当業者には、これらの具体的な詳細なしに本開示を実施することができることは明らかであろう。一部の例では、記述を不明瞭にすることを避けるために、構造およびデバイスがブロック図形式で示されている。例えば、実装形態は、主として、ユーザインタフェースおよび特定のハードウェアを参照して上記で説明されている場合がある。しかし、この実装形態は、データおよびコマンドを受信することができる任意のタイプのコンピューティングデバイス、およびサービスを提供する任意の周辺デバイスに適用することができる。
【０１０２】
本明細書において、「一部の実装形態」または「一部の例」とは、実装形態または例に関連して説明される特定の特徴、構造、または特性が、その記述の少なくとも１つの実装形態に含まれ得ることを意味する。本明細書の様々な場所における「一部の実装形態」という表現の出現は、必ずしもすべてが同じ実装形態を指しているわけではない。
【０１０３】
上記の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する演算のアルゴリズムおよび記号表現に関して提示される。これらのアルゴリズム記述および表現は、データ処理分野の当業者が、それらの研究の内容を当業者に最も効果的に伝えるために使用される手段である。アルゴリズムは、ここでは、一般的に、所望の結果を導くステップの自己一貫したシーケンスであると考えられる。これらのステップは、物理量の物理的操作を必要とするステップである。通常、必ずしも必要ではないが、これらの量は、記憶、転送、結合、比較、およびその他の操作が可能な電気または磁気データの形式をとる。これらのデータをビット、値、要素、記号、文字、用語、数字などと呼ぶことは、主に一般的な使用の理由から、時には便利であることが判明している。
【０１０４】
しかしながら、これらの用語および類似の用語の全ては、適切な物理量に関連するものであり、これらの量に適用される便宜的なラベルに過ぎないことに留意すべきである。以下の説明から明らかなように特に明記しない限り、「処理する」または「計算する」または「計算する」または「決定する」または「表示する」などを含む用語を使用する議論は、コンピュータシステムのレジスタおよびメモリ内の物理（電子）量として表されるデータを、コンピュータシステムのメモリまたはレジスタまたは他のそのような物理量として同様に表される他のデータに操作および変換するコンピュータシステムまたは類似の電子計算装置のプロセス、情報記憶装置、伝送装置、または表示装置を含む。
【０１０５】
本明細書の実装形態は、上記の方法の１つ以上のステップを実行するためのプロセッサに関連し得る。プロセッサは、コンピュータに記憶されたコンピュータプログラムによって選択的に起動または再構成された専用プロセッサであってもよい。このようなコンピュータプログラムは、フロッピーディスク、光ディスク、ＲＯＭ、ＣＤ−ＲＯＭ、磁気ディスク、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭを含む任意のタイプのディスクを含むが、これに限定されない非一時的なコンピュータ読み取り可能な記憶媒体に記憶することができる。不揮発性メモリを有するＵＳＢキーを含むフラッシュメモリ、またはコンピュータシステムバスにそれぞれ結合された電子命令を記憶するのに適した任意のタイプの媒体を含むが、これらに限定されない。
【０１０６】
本明細書は、いくつかの完全なハードウェア実装形態、いくつかの完全なソフトウェア実装形態、またはハードウェア要素とソフトウェア要素の両方を含むいくつかの実装形態の形をとることができる。いくつかの実装形態では、仕様は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、これに限定されないソフトウェアで実装される。
【０１０７】
さらに、この説明は、コンピュータまたは任意の命令実行システムによって、またはそれに関連して使用するためのプログラムコードを提供するコンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態を取ることができる。この説明の目的のために、コンピュータ使用可能またはコンピュータ読取可能媒体は任意の装置であってよい（当該任意の装置は、命令実行システム、装置、またはデバイスによって、または命令実行システム、装置、またはデバイスに関連して使用するためのプログラムを含む、記憶する、通信する、伝搬する、または移送することができる）。
【０１０８】
プログラムコードを記憶または実行するのに適したデータ処理システムは、システムバスを介してメモリ素子に直接的または間接的に結合された少なくとも１つのプロセッサを含む。メモリ要素は、実行中に大容量記憶装置からコードを検索しなければならない回数を減らすために、プログラムコード、バルク記憶装置、および少なくともいくつかのプログラムコードの一時記憶を提供するキャッシュメモリの実際の実行中に使用されるローカルメモリを含むことができる。
【０１０９】
上述のシステムが個人情報を収集する状況では、システムは、プログラムまたはフィーチャがユーザ情報（例えば、ユーザのソーシャルネットワーク、社会的アクションまたはアクティビティ、職業、ユーザプリファレンス、またはユーザの現在の位置に関する情報）を収集するか否かを制御する機会をユーザに与えたり、ユーザに対して、より関連性があり得るコンテンツをサーバから受信するか否か、および／またはどのように受信するかを制御する機会を与えたりする。さらに、特定のデータは、個人識別可能な情報が削除されるように、保管または使用される前に１つ以上の方法で処理される場合がある。例えば、ユーザの識別情報は、そのユーザについて個人識別可能な情報を決定することができないように扱われてもよく、またはユーザの地理的位置は、位置情報が得られる場所（都市、郵便番号、州レベルなど）ユーザの特定の場所を特定することができない。したがって、ユーザは、ユーザに関する情報がどのように収集され、サーバによって使用されるかを制御することができる。
【図１Ａ】
2019506659.tif 000004
【図１Ｂ】
2019506659.tif 000005
【図２】
2019506659.tif 000006
【図３】
2019506659.tif 000007
【図４Ａ】
2019506659.tif 000008
【図４Ｂ】
2019506659.tif 000009
【図４Ｃ】
2019506659.tif 000010
【図４Ｄ】
2019506659.tif 000011
【図４Ｅ】
2019506659.tif 000012
【図４Ｆ】
2019506659.tif 000013
【図４Ｇ】
2019506659.tif 000014
【図５Ａ】
2019506659.tif 000015
【図５Ｂ】
2019506659.tif 000016
【図５Ｃ】
2019506659.tif 000017
【図６】
2019506659.tif 000018
【図７】
2019506659.tif 000019
【図８】
2019506659.tif 000020
【図９】
2019506659.tif 000021
【国際調査報告】
2019506659.tif 000022
2019506659.tif 000023
2019506659.tif 000024