(57)【特許請求の範囲】
【請求項１】
システムであって、
プロセッサと、
前記プロセッサによって実行されたとき、前記プロセッサが、
ユーザに関連付けられた１つまたは複数のデバイスに対して前記ユーザによって入力されたテキストを表すテキストデータを受信し、
前記テキストデータを少なくとも１つの言語モデル内に組み込み、かつ、
前記複数のデバイスを同期するために前記少なくとも１つの言語モデルを１つまたは複数の前記デバイスに提供する、
ように構成された命令を格納するメモリと
を備え、
前記システムは、サーバと複数のデバイスをさらに備え、前記複数のデバイスの各々は動的言語モデルを含み、
前記複数のデバイスの各々は、当該デバイスに入力されたテキストを表すテキストデータを前記プロセッサに送信するように構成され、
前記複数のデバイスの各々は、前記サーバから前記少なくとも１つの言語モデルをダウンロードし、前記テキストデータを前記サーバにアップロードするように構成され、前記ダウンロードおよびアップロードは並行して実行可能であり、
前記テキストデータを少なくとも１つの言語モデル内に組み込むことは、前記複数のデバイスの内の１つのデバイスに対するデルタ言語モデルを、前記１つのデバイス以外の複数のデバイスから受信された前記テキストデータを使用して生成することを含む、システム。
【請求項２】
前記テキストデータは、テキストを含み、
前記テキストデータを少なくとも１つの言語モデルに組み込むことは、前記テキストに対して前記少なくとも１つの言語モデルを訓練することを含む、請求項１に記載のシステム。
【請求項３】
前記テキストデータは、前記ユーザによって入力された前記テキストに対して訓練されたデバイス・デルタ言語モデルを含み、
前記テキストデータを少なくとも１つの言語モデルに組み込むことは、前記少なくとも１つの言語モデル内に前記デバイス・デルタ言語モデルをマージすることを含む、請求項１に記載のシステム。
【請求項４】
前記テキストデータを少なくとも１つの言語モデルに組み込むことは、前記テキストデータから少なくとも１つの言語モデルを生成すること、または、前記テキストデータを少なくとも１つの既存の言語モデル内に組み込むことを含む、請求項１に記載のシステム。
【請求項５】
前記テキストデータを少なくとも１つの言語モデルに組み込むことは、前記テキストデータを単一の言語モデル内に組み込み、累積言語モデルを生成することを含む、請求項１に記載のシステム。
【請求項６】
前記テキストデータは、前記複数のデバイスのいずれかの以前の同期以降に当該デバイスに入力されたテキストを表し、前記テキストデータを少なくとも１つの言語モデルに組み込むことは、前記テキストデータを前記累積言語モデル内に組み込むことを含む、請求項５に記載のシステム。
【請求項７】
前記システムは、与えられた時間に前記複数のデバイスのうちの単一デバイスと同期するように構成される、請求項１に記載のシステム。
【請求項８】
前記システムは、複数のデバイスをさらに備え、各々のデバイスは動的言語モデルを含み、
前記複数のデバイスの各々は、当該デバイスに入力されたテキストを表すテキストデータを前記プロセッサに送信するように構成され、
各々のデバイスは、前記累積言語モデルを受信し、かつ、当該デバイスに入力された前記テキストデータを前記プロセッサに送信する前に当該累積言語モデルをその動的言語モデル内にマージする、請求項５に記載のシステム。
【請求項９】
前記システムは、複数のデバイスをさらに備え、各々のデバイスは動的言語モデルを含み、
前記システムは、与えられた時間に前記複数のデバイスのうちの単一デバイスと同期するように構成され、
前記複数のデバイスの各々は、当該デバイスに入力されたテキストを表すテキストデータを前記プロセッサに送信するように構成され、各々のデバイスは、当該デバイスに関連付けられた前記特定のデルタ言語モデルを受信して当該デルタ言語モデルをその動的言語モデル内にマージするように構成される、請求項１に記載のシステム。
【請求項１０】
各々のデバイスの各々の動的言語モデルは、当該デバイスに入力されたテキストに基づく少なくとも１つのテキスト予想を生成するように構成され、前記複数の動的言語モデルは、同じテキスト入力が与えられるとき、同じ少なくとも１つのテキスト予想を生成することが可能である、請求項８に記載のシステム。
【請求項１１】
前記少なくとも１つの言語モデルは、用語のシーケンスを、各シーケンスに対する発生の頻度と関連付けるデータ構造を含む、請求項１に記載のシステム。
【請求項１２】
前記少なくとも１つの言語モデルは、用語のシーケンスを、各シーケンスに対する発生の頻度と関連付けるデータ構造を含み、
前記デバイスは、第１の言語モデルと第２の言語モデルとを、
前記第２の言語モデルの前記データ構造内のシーケンスに対する発生の頻度を、前記第１の言語モデルの前記データ構造内の対応するシーケンスに対する発生の頻度に追加し、かつ、
新しいシーケンス及びその対応する発生の頻度を、そのシーケンスが前記第２の言語モデルの前記データ構造にはあるが前記第１の言語モデルの前記データ構造にはない場合、当該第１の言語モデルの当該データ構造に挿入する、
ことによってマージするように構成される、請求項８に記載のシステム。
【請求項１３】
単一のユーザに関連付けられ、各々が動的言語モデルを含む複数のデバイスに存在する複数の動的言語モデルを同期する方法であって、
ユーザによって１つまたは複数のデバイスに入力されたテキストを表すテキストデータを、同期用の機構において受信するステップと、
前記テキストデータを少なくとも１つの言語モデル内に前記機構を用いて組み込むステップと、
前記複数のデバイスを同期するための前記少なくとも１つの言語モデルを前記機構を用いて提供するステップと
を有し、
前記受信および提供は並行して実行可能であり、
前記テキストデータを少なくとも１つの言語モデルに組み込むことは、前記複数のデバイスの内の１つのデバイスに対するデルタ言語モデルを、前記１つのデバイス以外の複数のデバイスから受信された前記テキストデータを使用して生成することを含む、方法。
【請求項１４】
前記テキストデータは、テキストを含み、
前記テキストデータを少なくとも１つの言語モデルに組み込むステップは、前記テキストに対して前記少なくとも１つの言語モデルを訓練するステップを含む、請求項１３に記載の方法。
【請求項１５】
前記テキストデータは、前記ユーザによって入力された前記テキストに対して訓練されたデバイス・デルタ言語モデルを含み、
前記テキストデータを少なくとも１つの言語モデルに組み込むステップは、前記少なくとも１つの言語モデル内に前記デバイス・デルタ言語モデルをマージするステップを含む、請求項１３に記載の方法。
【請求項１６】
前記テキストデータを少なくとも１つの言語モデルに組み込むステップは、前記テキストデータから少なくとも１つの言語モデルを生成するステップ、または、前記テキストデータを少なくとも１つの既存の言語モデル内に組み込むステップを含む、請求項１３に記載の方法。
【請求項１７】
前記テキストデータを少なくとも１つの言語モデルに組み込むステップは、前記テキストデータを単一の言語モデル内に組み込み、累積言語モデルを生成するステップを含む、請求項１３に記載の方法。
【請求項１８】
前記テキストデータは、前記複数のデバイスのいずれかの以前の同期以降に当該デバイスに入力されたテキストを表し、前記テキストデータを少なくとも１つの言語モデルに組み込むステップは、前記テキストデータを前記累積言語モデル内に組み込むステップを含む、請求項１７に記載の方法。
【請求項１９】
前記複数のデバイスの各々は、前記機構と個々に同期される、請求項１３に記載の方法。
【請求項２０】
前記テキストデータを少なくとも１つの言語モデルに組み込むステップは、前記複数のデバイスの各々に対してデルタ言語モデルを、該特定のデルタ言語モデルに関連付けられたデバイス以外の複数のデバイスから前記機構によって受信された前記テキストデータを使用して生成することを含む、請求項１３に記載の方法。
【請求項２１】
前記複数のデバイスの各々は、前記機構と個々に同期され、
前記デルタモデル言語に組み込まれる前記テキストデータは、前記特定のデルタ言語モデルに関連付けられたデバイス以外の複数のデバイスの同期及び／又はその後の同期中に前記機構によって受信された前記テキストデータを含む、請求項２０に記載の方法。
【請求項２２】
前記複数のデバイスの各々が、前記累積言語モデルを受信するステップと、
当該デバイスに入力された前記テキストを表す前記テキストデータを前記機構に送信する前に当該累積言語モデルを当該デバイスに関連付けられた動的言語モデル内にマージするステップと
をさらに有する、請求項１７に記載の方法。
【請求項２３】
各々のデバイスが当該デバイスに関連付けられた前記特定のデルタ言語モデルを受信するステップと、
前記デルタ言語モデルを当該デバイスの前記動的言語モデル内にマージするステップと
をさらに有する、請求項２０に記載の方法。
【請求項２４】
前記少なくとも１つの言語モデルは、用語のシーケンスを、各シーケンスに対する発生の頻度と関連付けるデータ構造を含み、
第１の言語モデルと第２の言語モデルとをマージするステップは、
前記第２の言語モデルの前記データ構造内のシーケンスに対する発生の頻度を、前記第１の言語モデルの前記データ構造内の対応するシーケンスに対する発生の頻度に追加するステップと、
新しいシーケンス及びその対応する発生の頻度を、そのシーケンスが前記第２の言語モデルの前記データ構造にはあるが前記第１の言語モデルの前記データ構造にはない場合、当該第１の言語モデルの当該データ構造に挿入するステップと
を含む、請求項１５に記載の方法。
【請求項２５】
プロセッサによって実行されるとき、当該プロセッサに請求項１３に記載の方法を実行させるように構成されるプログラム命令を含む、非一時的なコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスを同期するための機構及びそれを行う方法に関する。
【背景技術】
【０００２】
多くのユーザは、複数のデバイスにテキストを入力する。例えば、ユーザは、移動電話上にテキストメッセージ（ＳＭＳ／ＭＭＳ）又は電子メールを打ち込むことができ、加えてタブレット又はＰＣ上に電子メール又は文書を書き込むことができる。デバイスの各々は、テキスト入力時にユーザを助けるテキスト入力システムを含む。
【０００３】
テキスト入力システムは、与えられた言語様式、例えば、ユーザの書込様式の確率的カプセル化とすることができる言語モデルを含むことができる。言語モデルベースのテキスト入力システムは、一連の機能、例えば、言語に基づいてミスタイプ／ミススペルの入力を訂正すること及び／又はシーケンスにおける可能性の高い将来の用語を予想することを通して電子デバイス上の打ち込み体験を強化することができる。
【０００４】
言語モデルは、ユーザがデバイスにテキストを入力した時にユーザ入力に対して漸次訓練され、従って、テキスト入力システムがユーザによって以前に入力されたテキストに基づいてミスタイプ／ミススペルの入力を訂正し、又はシーケンスにおける可能性の高い将来の用語を予想することを可能にする動的言語モデルである場合がある。
【０００５】
本出願の発明者は、時間と共にユーザの言語様式を各々学習する複数のデバイスを有するユーザが体験する問題、すなわち、デバイスによって発生される予想が使用と共に発散する可能性があるという問題を特定している。例えば、ユーザは、他のデバイスよりも頻繁に１つのデバイスを使用する場合がある。頻繁に使用されるデバイスは、あまり使用されないデバイスよりもそのユーザに対してより正確な予想を発生することになり、これは、ユーザに対して苛立たせ、かつ厄介であることになる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】ＷＯ２０１０／１１２８４１
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、このような問題を克服することである。
【課題を解決するための手段】
【０００８】
本発明の１つの態様において、単一ユーザに関連付けられて動的言語モデルを各々が含む複数のデバイスに存在する複数の動的言語モデルを同期するための機構を提供する。機構は、複数のデバイスの１つ又はそれよりも多くにユーザによって入力されたテキストを表すテキストデータを受信し、テキストデータを少なくとも１つの言語モデルに組み込み、かつデバイスを同期するためにその少なくとも１つの言語モデルを提供するように構成される。
【０００９】
テキストデータは、ユーザによって入力されたテキストを表すあらゆるデータとすることができる。第１の実施形態において、テキストデータは、ユーザによって入力された実際のテキストを含むことができる。この場合に、テキストデータを言語モデルに組み込む段階は、ユーザによって入力されたテキストに対して言語モデルを訓練する段階を含むことができる。第２の実施形態において、テキストデータは、テキスト入力に対して訓練されたデバイスデルタ言語モデルとすることができる。この場合に、テキストデータを言語モデルに組み込む段階は、デバイスデルタ言語モデルを少なくとも１つの言語モデル内に融合する段階を含むことができる。
【００１０】
すなわち、本発明の機構の第１の実施形態において、単一ユーザに関連付けられて動的言語モデルを各々が含む複数のデバイスに存在する複数の動的言語モデルを同期するための機構を提供する。機構は、複数のデバイスの１つ又はそれよりも多くにユーザによって入力されたテキストを受信し、テキストに対して少なくとも１つの言語モデルを訓練し、かつデバイスを同期するためにその少なくとも１つの言語モデルを提供するように構成される。
【００１１】
好ましくは、機構は、テキストから少なくとも１つの言語モデルを生成するか又はテキストを用いて少なくとも１つの既存の言語モデルを訓練することにより、テキストに対して少なくとも１つの言語モデルを訓練するように構成される。
【００１２】
テキストは、複数のデバイスに入力されたあらゆるテキストを含むことができ、少なくとも１つの言語モデルを訓練する段階は、好ましくは、テキストに対して単一言語モデルを訓練して累積言語モデルを生成する段階を含む。テキストは、複数の動的言語モデルの以前の同期以降に複数のデバイスのいずれかに入力されたテキストを含むことができ、少なくとも１つの言語モデルを訓練する段階は、そのテキストに対して累積言語モデルを更に訓練する段階を含む。
【００１３】
少なくとも１つの言語モデルを訓練する段階は、特定のデルタ言語モデルに関連付けられたデバイス以外の複数のデバイスから受信されたテキストを使用して複数のデバイスの各々に対してデルタ言語モデルを生成する段階を含むことができる。
【００１４】
機構は、好ましくは、与えられた時間に複数のデバイスのうちの単一デバイスに同期するように構成される。
【００１５】
機構は、ユーザを認証するように構成することができる。
【００１６】
本発明の機構の第２の実施形態において、各デバイスが動的言語モデルとそのデバイスにユーザによって入力されたテキストに対して訓練されたデバイスデルタ言語モデルとを含む単一ユーザに関連付けられた複数のデバイスに存在する複数の動的言語モデルを同期するための機構を提供する。機構は、デバイスデルタ言語モデルを受信し、デバイスデルタ言語モデルを少なくとも１つの言語モデル内に融合し、かつデバイスを同期するためにその少なくとも１つの言語モデルを提供するように構成される。
【００１７】
機構は、好ましくは、デバイスデルタ言語モデルから少なくとも１つの言語モデルを生成するか又はデバイスデルタ言語モデルを少なくとも１つの既存の言語モデル内に融合することにより、デバイスデルタ言語モデルを少なくとも１つの言語モデル内に融合するように構成される。
【００１８】
デバイスデルタ言語モデルを少なくとも１つの言語モデル内に融合する段階は、デバイスデルタ言語モデルを単一言語モデル内に融合して累積言語モデルを生成する段階を含む。デバイスデルタ言語モデルは、複数の動的言語モデルの以前の同期以降に複数のデバイスの１つに入力されたテキストに対して訓練することができる。デバイスデルタ言語モデルを少なくとも１つの言語モデル内へ融合する段階は、特定のデルタ言語モデルに関連付けられたデバイス以外の複数のデバイスから受信されたデバイスデルタ言語モデルを使用して複数のデバイスの各々に対してデルタ言語モデルを生成する段階を含むことができる。
【００１９】
機構は、好ましくは、与えられた時間に複数のデバイスのうちの単一デバイスに同期するように構成される。
【００２０】
機構は、ユーザを認証するように構成することができる。
【００２１】
本発明の第２の態様において、テキスト入力のためのシステムを提供する。システムは、動的言語モデルを各々が含む複数のデバイスと上述の実施形態のいずれかによる機構とを含む。複数のデバイスの各々は、そのデバイスに入力されたテキストを表すテキストデータを機構に送信するように構成される。
【００２２】
本発明のシステムの第１の実施形態において、このデバイスに入力されたテキストを表すテキストデータは、デバイスに入力された実際のテキストである。
【００２３】
システムの各デバイスは、累積言語モデルを受信し、かつそのデバイスに入力されたテキストを機構に送信する前に累積言語モデルをその動的言語モデル内に融合するように構成することができる。
【００２４】
各デバイスは、そのデバイスに関連付けられた特定のデルタ言語モデルを受信し、かつデルタ言語モデルをその動的言語モデル内に融合するように構成することができる。
【００２５】
各デバイスの各動的言語モデルは、デバイスに入力されたテキストに基づいて少なくとも１つのテキスト予想を生成するように構成することができ、同期された状態で、複数の動的言語モデルは、同じテキスト入力が提供された時に同じ少なくとも１つのテキスト予想を生成することができる。
【００２６】
システムの一実施形態において、機構は、サーバを含み、複数のデバイスの各々は、サーバから累積又はデルタ言語モデルをダウンロードし、かつテキストをサーバ上にアップロードするように構成される。システムは、サーバと複数のデバイスの各々との間に安全な接続手段を含むことができる。
【００２７】
上述の機構又はシステムに対して、言語モデルは、用語のシーケンスを各シーケンスに対する発生の頻度に関連付けるデータ構造を含むことができる。デバイスは、第２の言語モデルのデータ構造内のシーケンスに対する発生の頻度を第１言語モデルのデータ構造内の対応するシーケンスに対する発生の頻度に追加することにより、かつ新しいシーケンスが第１言語モデルのデータ構造にないが第２の言語モデルのデータ構造にある場合に新しいシーケンス及びその対応する発生の頻度を第１言語モデルのデータ構造に挿入することにより、第１言語モデルを第２の言語モデルと融合するように構成することができる。各デバイスは、１つ又はそれよりも多くのシーケンスが閾値よりも低い発生の頻度を有する場合に、融合されデータ構造から１つ又はそれよりも多くのシーケンスを取り除くように構成することができる。
【００２８】
本発明のシステムの第２の実施形態において、デバイスに入力されたテキストを表すテキストデータは、そのデバイスに入力されたテキストに対して訓練されたデルタ言語モデルである。この実施形態において、システムは、各デバイスが動的言語モデルとそのデバイスにユーザによって入力されたテキストに対して訓練されたデバイスデルタ言語モデルとを含む複数のデバイスと、上述の実施形態のいずれかによる機構とを含む。複数のデバイスの各々は、デバイスデルタ言語モデルを機構に送信するように構成される。
【００２９】
システムの各デバイスは、累積言語モデルを受信し、かつ機構にデルタ言語モデルを送信する前に累積言語モデルをその動的言語モデル内に融合するように構成することができる。
【００３０】
各デバイスは、そのデバイスに関連付けられた特定のデルタ言語モデルを受信し、かつデルタ言語モデルをその動的言語モデル内に融合するように構成することができる。
【００３１】
各デバイスの各動的言語モデルは、デバイスに入力されたテキストに基づいて少なくとも１つのテキスト予想を生成するように構成することができ、同期された状態で、複数の動的言語モデルは、同じテキスト入力が提供された時に同じ少なくとも１つのテキスト予想を生成することができる。
【００３２】
システムの一実施形態において、機構は、サーバを含み、複数のデバイスの各々は、サーバから累積又はデルタ言語モデルをダウンロードし、かつサーバ上にデバイスデルタ言語モデルをアップロードするように構成される。システムは、サーバと複数のデバイスの各々との間に安全な接続手段を含むことができる。
【００３３】
上述の機構又はシステムに対して、言語モデルは、用語のシーケンスを各シーケンスに対する発生の頻度に関連付けるデータ構造を含むことができる。機構及び／又はデバイスは、第２の言語モデルのデータ構造内のシーケンスに対する発生の頻度を第１言語モデルのデータ構造内の対応するシーケンスに対する発生の頻度に追加することにより、かつ新しいシーケンスが第１言語モデルのデータ構造にはないが第２の言語モデルのデータ構造にある場合に新しいシーケンス及びその対応する発生の頻度を第１言語モデルのデータ構造に挿入することにより、第１言語モデルを第２の言語モデルと融合するように構成することができる。機構及び／又は各デバイスは、１つ又はそれよりも多くのシーケンスが閾値よりも低い発生の頻度を有する場合に、融合されたデータ構造から１つ又はそれよりも多くのシーケンスを取り除くように構成することができる。
【００３４】
本発明の第３の態様において、単一ユーザに関連付けられて動的言語モデルを各々が含む複数のデバイスに存在する複数の動的言語モデルを同期する方法を提供する。本方法は、複数のデバイスの１つ又はそれよりも多くにユーザによって入力されたテキストを表すテキストデータを同期するための機構で受信する段階と、機構を用いてテキストデータに対して少なくとも１つの言語モデルを訓練する段階と、この少なくとも１つの言語モデルを機構とデバイスを同期するために提供する段階とを含む。
【００３５】
本発明の方法の第１の実施形態において、デバイスに入力されたテキストを表すテキストデータは、デバイスに入力されたその実際のテキストである。
【００３６】
テキストに対して少なくとも１つの言語モデルを訓練する段階は、好ましくは、テキストから少なくとも１つの言語モデルを生成する段階又はテキストを用いて少なくとも１つの既存の言語モデルを訓練する段階を含む。
【００３７】
テキストは、複数のデバイスに入力されたあらゆるテキストを含むことができ、少なくとも１つの言語モデルを訓練する段階は、好ましくは、テキストに対して単一言語モデルを訓練して累積言語モデルを生成する段階を含む。テキストは、複数のデバイスの以前の同期以降に複数のデバイスに入力されたテキストを含むことができ、少なくとも１つの言語モデルを訓練する段階は、そのテキストに対して累積言語モデルを更に訓練する段階を含む。
【００３８】
好ましくは、複数のデバイスの各々は、機構と個々に同期される。
【００３９】
累積言語モデルは、機構と最初に同期されたいずれかのデバイスから機構によって受信されたテキストに対して訓練することができる。累積言語モデルは、機構とその後に同期されたいずれかのデバイスから機構によって受信されたテキストに対して更に訓練することができる。
【００４０】
少なくとも１つの言語モデルを訓練する段階は、特定のデルタ言語モデルに関連付けられたデバイス以外の複数のデバイスから機構によって受信されたテキストを使用して複数のデバイスの各々に対してデルタ言語モデルを生成する段階を含むことができる。
【００４１】
デルタ言語モデルを訓練するのに使用されるテキストは、特定のデルタ言語モデルに関連付けられたデバイス以外の複数のデバイスの同期及び／又はその後の同期中に機構によって受信されたテキストを含むことができる。
【００４２】
本方法は、ユーザを認証する機構を含むことができる。
【００４３】
好ましくは、本方法は、各デバイスが、累積言語モデルを受信し、かつそのデバイスに入力されたテキストを機構に送信する前に累積言語モデルをそのデバイスに関連付けられた動的言語モデル内に融合する段階を含む。
【００４４】
好ましくは、本方法は、各デバイスが、そのデバイスに関連付けられた特定のデルタ言語モデルを受信し、かつデルタ言語モデルをそのデバイスの動的言語モデル内に融合する段階を含む。
【００４５】
機構は、好ましくは、サーバを含む。本方法は、サーバと複数のデバイスの各々との間に安全な接続を確立する段階を更に含む。
【００４６】
言語モデルは、用語のシーケンスを各シーケンスに対する発生の頻度に関連付けるデータ構造を含むことができる。本方法における第１言語モデルを第２の言語モデルと融合する段階は、好ましくは、第２の言語モデルのデータ構造内のシーケンスに対する発生の頻度を第１言語モデルのデータ構造内の対応するシーケンスに対する発生の頻度に追加する段階と、新しいシーケンスが第２の言語モデルのデータ構造にあるが第１言語モデルのデータ構造にはない場合に新しいシーケンス及びその対応する発生の頻度を第１言語モデルのデータ構造に挿入する段階を含む。本方法は、１つ又はそれよりも多くのシーケンスが閾値よりも低い発生の頻度を有する場合に、複数のデバイスの各々が、融合されたデータ構造から１つ又はそれよりも多くのシーケンスを取り除く段階を更に含むことができる。
【００４７】
本発明の方法の第２の実施形態において、テキストデータは、入力されたテキストに対して訓練されたデバイスデルタ言語モデルである。この場合に、各デバイスは、動的言語モデルと、そのデバイスにユーザによって入力されたテキストに対して訓練されたデバイスデルタ言語モデルとを含む。本方法は、デバイスデルタ言語モデルを同期機構で受信する段階と、機構を用いてデバイスデルタ言語モデルを少なくとも１つの言語モデル内に融合する段階と、この少なくとも１つの言語モデルを機構とデバイスを同期するために提供する段階とを含む。
【００４８】
デバイスデルタ言語モデルを少なくとも１つの言語モデル内に融合する段階は、好ましくは、デバイスデルタ言語モデルから少なくとも１つの言語モデルを生成する段階又はデバイスデルタ言語モデルを少なくとも１つの既存の言語モデルと融合する段階を含む。
【００４９】
デバイスデルタ言語モデルを少なくとも１つの言語モデル内に融合する段階は、デバイスデルタ言語モデルを単一言語モデル内に融合して累積言語モデルを生成する段階を含むことができる。デバイスデルタ言語モデルは、複数の動的言語モデルの以前の同期以降に複数のデバイスの１つに入力されたテキストに対して訓練されたものとすることができる。
【００５０】
好ましくは、複数のデバイスの各々は、機構と個々に同期される。
【００５１】
機構と最初に同期されたいずれかのデバイスから受信されたいずれのデバイスデルタ言語モデルも、累積言語モデルと融合することができる。機構とその後に同期されたいずれかのデバイスから受信されたいずれのデバイスデルタ言語モデルも、累積言語モデルと融合することができる。
【００５２】
デバイスデルタ言語モデルを少なくとも１つの言語モデルと融合する段階は、特定のデルタ言語モデルに関連付けられたデバイス以外の複数のデバイスから機構によって受信されたデバイスデルタ言語モデルを使用して複数のデバイスの各々に対してデルタ言語モデルを生成する段階を含むことができる。
【００５３】
デルタ言語モデルと融合されたデバイスデルタ言語モデルは、特定のデルタ言語モデルに関連付けられたデバイス以外の複数のデバイスの同期及び／又はその後の同期中に機構によって受信されたデバイスデルタ言語モデルを含むことができる。
【００５４】
本方法は、ユーザを認証する機構を含むことができる。
【００５５】
好ましくは、本方法は、各デバイスが、累積言語モデルを受信し、かつ機構にデバイスデルタ言語モデルを送信する前にそのデバイスに関連付けられた動的言語モデル内に累積言語モデルを融合する段階を含む。
【００５６】
好ましくは、本方法は、各デバイスが、そのデバイスに関連付けられた特定のデルタ言語モデルを受信し、かつデルタ言語モデルをそのデバイスの動的言語モデル内に融合する段階を含む。
【００５７】
機構は、好ましくは、サーバを含む。本方法は、サーバと複数のデバイスの各々との間に安全な接続を確立する段階を更に含む。
【００５８】
言語モデルは、用語のシーケンスを各シーケンスに対する発生の頻度に関連付けるデータ構造を含むことができる。本方法での第１言語モデルを第２の言語モデルと融合する段階は、好ましくは、第２の言語モデルのデータ構造内のシーケンスに対する発生の頻度を第１言語モデルのデータ構造内の対応するシーケンスに対する発生の頻度に追加する段階と、新しいシーケンスが第２の言語モデルのデータ構造にあるが第１言語モデルのデータ構造にはない場合に新しいシーケンス及びその対応する発生の頻度を第１言語モデルのデータ構造に挿入する段階とを含む。本方法は、１つ又はそれよりも多くのシーケンスが閾値よりも低い発生の頻度を有する場合に、複数のデバイスの各々が、融合されたデータ構造から１つ又はそれよりも多くのシーケンスを取り除く段階を更に含むことができる。
【００５９】
本発明の第４の態様において、上述の方法のいずれかをプロセッサに実行させるためのコンピュータプログラム手段が格納されたコンピュータ可読媒体を含むコンピュータプログラム製品を提供する。
【００６０】
本発明の第５の態様において、機構とデバイスの間でデータを定期的に同期する方法を提供する。本方法は、デバイスの最後の同期中にデバイスに送信されたデータバンドルを識別するパラメータを機構で格納する段階と、デバイスの最後の同期以降のデータに対する更新を含む１次データバンドルを機構で格納する段階と、デバイスの最後の同期中にデバイスに送信されたデータバンドル及びデバイスの最後の同期以降のデータに対する更新を含むバックアップデータバンドルを機構で格納する段階と、デバイスによって最後に受信されたデータバンドルを識別するデバイスからのパラメータを機構で受信してこれを格納されたパラメータと比較する段階と、格納された及び受信されたパラメータが同一である場合に１次データバンドルを送信する段階又は格納された及び受信されたパラメータが同一でない場合にバックアップデータバンドルを送信する段階とを含む。
【００６１】
ここで、本発明を添付の図面を参照して以下に詳しく説明する。
【図面の簡単な説明】
【００６２】
【図１】本発明による複数のデバイスを示す図である。
【図２】本発明による同期の前及び後に２つのデバイスによって発生された予想の例を示す図である。
【図３ａ】本発明の第１の実施形態によるデバイスＡ、Ｂ、及びＣの初期同期中のデータ転送を示す図である。
【図３ｂ】本発明の第１の実施形態によるデバイスＡ、Ｂ、及びＣのその後の同期中のデータ転送を示す図である。
【図３ｃ】図３ａ及び３ｂによるデバイスＣの初期及びその後の同期中のデータ転送を示す図である。
【図４ａ】本発明の第２の実施形態によるデバイスＡ、Ｂ、及びＣの初期同期中のデータ転送を示す図である。
【図４ｂ】本発明の第２の実施形態によるデバイスＡ、Ｂ、及びＣのその後の同期中のデータ転送を示す図である。
【図４ｃ】図４ａ及び４ｂによるデバイスＣの初期及びその後の同期中のデータ転送を示す図である。
【図５】複数の言語モデルを同期するための機構がサーバベースである本発明の好ましい実施形態を示す図である。
【図６】デバイスの観点からデバイスのサーバとの初期同期を示す図である。
【図７】サーバの観点からデバイスのサーバとの初期同期を示す図である。
【図８】デバイスの観点からデバイスのサーバとのその後の同期を示す図である。
【図９】サーバの観点からデバイスのサーバとのその後の同期を示す図である。
【図１０】サーバの観点から初期化の処理を示す図である。
【図１１】本発明の態様によるエラー軽減を使用するシステムにおける同期中のデータ転送を示す図である。
【図１２】エラー軽減が使用されるシステムにおけるサーバの観点からデバイスのサーバとの同期中のデバイスへのデルタ言語モデルの転送を示す図である。
【発明を実施するための形態】
【００６３】
本発明は、複数のデバイスに存在する複数の動的言語モデルを同期するための機構を提供する。各デバイスは、動的言語モデルを含み、この動的言語モデルは、ユーザ入力テキストを用いて進化し、ユーザが書こうと意図する言葉をより正確に予想する。
【００６４】
動的言語モデルを同期することにより、システムは、システムのデバイスにわたって発生されるテキスト予想の一貫性を改善することができ、複数のデバイスが類似の言葉予想及び訂正を提供することを可能にする。従って、各デバイスが同じユーザによって使用された／使用される他のデバイスから学ぶので、本発明は、めったに使用されないデバイスが正確な予想を提供できないままである問題を解決する。
【００６５】
図１は、本発明による複数のデバイス１０、１０’を示している。各デバイス１０、１０’は、動的言語モデル１、１’を含む。各デバイス１０、１０’は、動的言語モデル１、１’及び任意的に１つ又はそれよりも多くの静的言語モデル２、２’を含むテキスト入力システム５、５’を含むことが好ましい。静的言語モデル２は、一度訓練されたらユーザ入力によって進化しない言語モデルである。
【００６６】
このようなテキスト入力システム５、５’の例は、これによりその全体が引用によって組み込まれる「電子デバイスにテキストを入力するためのシステム及び方法」という名称の国際特許出願ＷＯ２０１０／１１２８４１に説明されている。この文献はまた、以下に更に詳しく説明し、動的言語モデル１、１’及び１つ又はそれよりも多くの静的言語モデル２、２’のような２つ又はそれよりも多くの言語モデルから予想を発生及び組み合わせることができる方法を説明している。
【００６７】
各動的言語モデル１、１’は、ｎグラムマップにユーザによって入力されたｎグラム経路の発生の頻度を記録するように更新されたｎグラム言語モデルに基づいている。ｎグラムマップは、連想マップ構造である。ｎグラムマップでは、語彙内の用語は、マップに格納されて頻度又は確率値に関連付けられた数字識別子（短い整数）に関連付けられる。
【００６８】
デバイスの動的言語モデル１、１’は、２つの追加の証拠のタイプを考慮に入れるために時間と共に進化する機能を有する。最初に、動的言語モデル１、１’は、ユーザによって入力された文字シーケンスから発生された統計的言語データを取り入れる。次に、動的言語モデル１、１’は、別の言語モデルの統計的言語データを取り入れる。本出願では、別の言語モデルの統計的言語データの１つの言語モデルの取り入れは、「融合」と呼ぶ。
【００６９】
動的言語モデルは、２つの方法、すなわち、新しい経路をｎグラムマップに挿入することによって動的言語モデル語彙に以前存在していなかった用語を含む方法、及び特定のｎグラム文脈における既存の用語の頻度を更新する方法のうちの１つでユーザによって入力された文字シーケンスから発生された統計的言語データを取り入れる。動的ｎグラムマップは、ｎグラム経路がユーザによって入力された頻度を格納し、ここで「ｎグラム経路」は、先行する文脈の特定の用語及びｎ−１用語までを意味する。
【００７０】
第１言語モデルは、第２の言語モデルのデータ構造内のシーケンスに対する発生の頻度を第１言語モデルのデータ構造内の対応するシーケンスに対する発生の頻度に追加することによって第２の言語モデル内に融合される。更に、新しいシーケンスが第２の言語モデルのデータ構造にあるが第１言語モデルのデータ構造にない場合に、新しいシーケンス及びその対応する発生の頻度が第１言語モデルのデータ構造に挿入される
【００７１】
動的言語モデルのサイズを制限するために、低確率事象を動的言語モデルから取り除くことができ、例えば、その頻度が与えられた閾値よりも低くなる場合に動的言語モデルを通る経路を取り除くことができる。取り除く段階は以下の方式に従って発生する。
１）全ての事象頻度が、以下の関数に従って減衰される。
0006408461.tif 000002
２）頻度が事前に指定された閾値よりも低い全ての事象が取り除かれる。すなわち、
0006408461.tif 000003
の場合である。ここで、ｆはオリジナルの頻度であり、ｆ’は減衰頻度であり、ｉｎｔ（ｘ）は、ｉ＜ｘであるような最大整数ｉであり、ｄは減衰係数であり（例えば、０．９に設定される）、ｔは閾値である（例えば、１に設定される）。
【００７２】
言語モデル１、１’、２、２’は、予想言語モデル推測の原理に関して構築されるのが好ましく、特定の文字シーケンスの確率ｓは、履歴シーケンシャル証拠に対して訓練された文脈シーケンスｃ及びモデルｍが与えられた場合に推定され、式Ｐ（ｓ｜ｃ、ｍ）の確率推定値を提供する。動的言語モデル１、１’では、モデルｍは、ユーザがデバイス１０、１０’にテキストを入力した時に進化する（これは、動的言語モデル１、１’は、デバイス１０、１０’にユーザによって入力されたいずれのテキストに対してもデバイス１０、１０’によって漸次訓練されるからである）。
【００７３】
すなわち、時間と共に、ユーザがデバイス１０、１０’にテキストを入力すると、テキスト入力システム５、５’によって発生された訂正及び予想の精度は、元の動的言語モデル１、１’がユーザの言語様式まで進化するように改善しなければならない。
【００７４】
図２は、同期後に一貫するようになるテキスト入力体験の例を示している。同期の前では、デバイスＢは、この例ではデバイスＡが学習した（デバイスＡへの以前のテキスト入力を通して）子犬の名前「Ｂｅａｕ−Ｂｅａｕ」である用語を予想することができない。同期後に、デバイスＢは、名前「Ｂｅａｕ−Ｂｅａｕ」を予想することができる。
【００７５】
同期後に、同期されたデバイス１０、１０’の全ては、その同期された動的言語モデル１、１’によって同じユーザ入力に応答して同じ予想を生成することができる。しかし、各デバイス１０、１０’は、異なるテキストに対して最初に訓練された動的言語モデルを有することができ、かつユーザ入力によって進化することなく異なるデバイスで異なるものにすることができる１つ又はそれよりも多くの静的言語モデル２を任意的に含むことができるので、デバイス１０、１０’は、実際には同じテキスト予想を生成することができない。
【００７６】
テキスト予想は、静的言語モデル２、２’、並びに動的言語モデル１、１を含むことができるテキスト入力システム５、５’から発生されるので、第１デバイス１０のテキスト入力システム５は、第１デバイス１０の動的言語モデルに同期された動的言語モデル１’を有する第２のデバイス１０’のテキスト入力システム５’に異なる予想を生成することができる。動的言語モデル１、１’及び１つ又はそれよりも多くの静的言語モデル２、２’からの予想を組み合わせるテキスト入力システム５、５’は、これによりその全体が引用によって組み込まれる「電子デバイスにテキストを入力するためのシステム及び方法」という名称の国際特許出願ＷＯ２０１０／１１２８４１に説明されている。この文献に説明されているように、テキスト予想エンジン（例えば、テキスト入力システム５、５’）は、複数の言語モデルからのテキスト予想を同時に発生するように構成することができる。それは、マルチ言語モデル（マルチ−ＬＭ）を使用して複数の言語モデルの各々から発生した予想を組み合わせ、ディスプレイ及びユーザ選択のためにユーザインタフェースに提供される最終的な予想を生成することによってこれを実行する。最終的な予想は、全体的な最も確率の高い予想のセット（すなわち、指定された数）である。マルチ−ＬＭは、各言語モデルからの予想を順序付けられたＳＴＬ「マルチマップ」構造とすることができる順序付けられた連想構造に挿入することによって最終的な予想を生成する。
【００７７】
一例として、第１言語モデル、例えば、テキスト入力システム５の動的言語モデル１から「ａ」→０．２及び「ｔｈｅ」→０．３、及び第２の言語モデル、例えば、テキスト入力システム５の静的言語モデル２から「ａｎ」→０．１及び「ｔｈｅｓｅ」→０．２が与えられた場合に、マルチ−ＬＭは、これらの予想を順序付けられた連想構造に挿入し、それによって入力がその確率によって順序付けされる（（０．１→「ａｎ」）、（０．２→「ａ」）、（０．２→「ｔｈｅｓｅ」）、（０．３→「ｔｈｅ」））。この構造は、続いて上位値から読み取ることができ、最終的な「最も確率の高い」予想のセットを取得することができる。
【００７８】
中心機構との複数のデバイスの同期をここで図３ａ−９を参照して以下に説明する。
【００７９】
図３ａ及び３ｂは、本発明によりシステム１０００の機構５００がデバイスＡ、Ｂ、及びＣに同期している間のシステム１０００におけるデータの転送を示している。データ転送は、転送されているオブジェクト（円に示す）から始まり、それが転送されるオブジェクト（濃い矢印に示す）で終わる破線によって示されている。図３ａは、デバイスＡ、Ｂ、Ｃと機構５００の初期同期中のデータ転送を示している。図３ｂは、デバイスＡ、Ｂ、Ｃと機構５００のその後の同期中のデータ転送を示している。システムの全てのデバイスＡ、Ｂ、Ｃと機構５００の同期は、デバイスに存在する複数の言語モデルの同期を提供する。
【００８０】
図３ａ及び３ｂに示されているシステム１０００は、３つのデバイスＡ、Ｂ、Ｃを含み、各々が、動的言語モデル１０１、１０２、１０３及びユーザによってデバイスＡ、Ｂ、Ｃに入力されたテキストＴA、ＴB、ＴCを含む。システムは、３つのデバイスに制限されることはなく、単一デバイス、２つのデバイス、又はいずれの数の追加のデバイスも含むことができる。
【００８１】
システム１０００は、デバイスＡ、Ｂ、Ｃを同期するための機構５００を含む。機構５００は、累積言語モデル（ＬＭ）３００及び各デバイスＡ、Ｂ、Ｃに関連付けられたデルタ言語モデル２０１、２０２、２０３を含むか又は生成する。累積言語モデル３００は、デバイスＡ、Ｂ、Ｃに入力されたいずれのテキストに対しても機構５００によって訓練される。各デルタ言語モデル２０１、２０２、２０３は、以下に詳しく説明するように、そのデルタ言語モデルに固有のデバイス以外のデバイスＡ、Ｂ、Ｃに入力されたテキストＴA、ＴB、ＴCを使用して機構５００によって訓練される。
【００８２】
デバイスＡ、Ｂ、Ｃは、いずれの時間にもかつ要求／必要とされる度に機構５００と自由に同期することができる。各デバイスＡ、Ｂ、Ｃは、同期のための要求を機構５００に送信し、例えば、デバイスは、機構との同期のためのプッシュ／プル信号を制御する。同期の要求に応答して、同期機構５００は、一度に単一デバイスＡ、Ｂ、Ｃに同期する。従って、同期機構５００は、同期の要求が受信されるどのような順序でもデバイスＡ、Ｂ、Ｃからの同期要求を処理するように構成される。
【００８３】
図３ａに示されているシステム１０００は、３つのデバイスＡ、Ｂ、Ｃの間のデータ転送及び各デバイスＡ、Ｂ、Ｃの初期同期中の同期するための機構５００を示している。デバイスは、いずれの順序でも同期を要求することができ、従って、機構５００はいずれの順序でもデバイスの同期を処理することができる。例えば、第１デバイスＡが機構５００に同期することができ（デバイスＡの初期同期）、続けてデバイスＢが機構５００に同期して（デバイスＢの初期同期）、及び次にデバイスＣが機構５００に同期する（デバイスＣの初期同期）。
【００８４】
図３ｂは、デバイスＡ、Ｂ、Ｃのその後の同期中のデータ転送を示している。複数のデバイスは、１つ又はそれよりも多くのデバイスのその後の同期が起こる前に最初に同期している必要はないので、「初期」同期という語は、単一デバイスの初期同期を示し、複数のデバイスの初期同期ではない。同様に、「その後の」同期は、単一デバイスのその後の同期、すなわち、そのデバイスが初期同期を実行した後に起こる同期を示している。
【００８５】
図３ａに示すように、デバイスの初期同期中に、デバイスは、機構５００に以前に同期されていたいずれかのデバイスに入力されたテキストを使用して機構５００によって発生された累積言語モデル３００を機構５００から受信する。デバイスは、累積言語モデル３００をその固有の動的言語モデル内に融合するように構成される。デバイスは、そのデバイスに入力されたいずれのテキストも機構５００に送信するように更に構成される。
【００８６】
初期同期処理は、図３ａに示す特定のシステムに対して説明され、非制限的例では、デバイスＡ、Ｂ、及びＣが機構５００に同期する。
【００８７】
デバイスＡと機構５００の初期同期中に、デバイスＡは、機構５００から累積言語モデル３００をダウンロードする。デバイスＡが、同期する最初のものであるので、累積言語モデル３００は空である（累積言語モデル３００は、機構５００に以前に同期されたいずれかのデバイスに入力されたいずれのテキストを用いても訓練されるので）。累積言語モデル３００をダウンロードした後に、デバイスＡは、これをその固有の動的言語モデル１０１に融合する。この状況では、累積言語モデル３００が空であるので、融合段階は、動的言語モデル１０１に変更を生じない。次に、デバイスＡは、ユーザによってデバイスＡに入力されたテキストＴAを送信する。テキストＴAは、デバイスに入力されたいずれかの利用可能なテキスト、例えば、デバイスのメモリにあって消去されていないテキストを含む。
【００８８】
この初期同期中に、ユーザは、初めて同期を実行したので、機構５００は、空累積言語モデル３００を生成することが好ましい。これに代えて、機構５００に空累積言語モデル３００を提供することができる。機構５００は、デバイスＡに入力されたテキストＴAを受信してテキストＴAに対して空累積言語モデル３００を訓練する。更に、機構５００は、デバイスＡの空デルタ言語モデル２０１を生成することが好ましい。明確にするために、図３ａは、機構５００内のテキストの転送を示していない。しかし、機構５００内のテキストの転送の例は、図３ｃにデバイスＣに対して示して以下に説明する。
【００８９】
デバイスＢと機構５００の初期同期中に、デバイスＢは、機構５００から累積言語モデル３００をダウンロードする。累積言語モデル３００は、デバイスＡに入力されたテキストＴAを表している。累積言語モデル３００をダウンロードした後に、デバイスＢは、これをその固有の動的言語モデル１０２に融合する。次に、デバイスＢは、ユーザによってデバイスＢに入力されたテキストＴBを機構５００に送信する。
【００９０】
機構５００は、デバイスに入力されたテキストＴA、ＴB、ＴCを受信する前に累積言語モデル３００をデバイスＡ、Ｂ、Ｃに送信する。デバイスＡ、Ｂ、Ｃの動的言語モデル１０１、１０２、１０３は、ユーザテキスト入力によって進化する。最初に累積言語モデル３００を送信することにより、機構は、デバイスＡ、Ｂ、Ｃが、動的言語モデル１０１、１０２、１０３に既に存在するテキストＴA、ＴB、ＴCを組み込んでいないことを保証する。この順序の重要性は、後で詳しく説明する。
【００９１】
デバイスＢの初期同期中に、機構５００は、デバイスＢに入力されたテキストＴBを受信し、テキストＴBに対して累積言語モデル３００を更に訓練する。更に、機構５００は、デバイスＢから受信するテキストＴBに対してデバイスＡに関連付けられたデルタ言語モデル２０１を訓練する。更に、機構５００は、デバイスＢの空デルタ言語モデル２０２を生成する。
【００９２】
デバイスＣと機構５００の初期同期中に、デバイスＣは、機構５００から累積言語モデル３００をダウンロードする。累積言語モデル３００は、デバイスＡ及びＢに入力されたテキストＴA、ＴBを表している。累積言語モデル３００をダウンロードした後に、デバイスＣは、これをその固有の動的言語モデル２０３に融合する。次に、デバイスＣは、デバイスＣに入力されたテキストＴCを機構５００に送信する。
【００９３】
デバイスＣの初期同期中に、機構５００は、デバイスＣに入力されたテキストＴCを受信してテキストＴCに対して累積言語モデル３００を更に訓練する。更に、機構５００は、デバイスＣから受信するテキストＴCに対してデバイスＡに関連付けられたデルタ言語モデル２０１を更に訓練する。機構５００は、デバイスＣから受信するテキストＴCに対してデバイスＢに関連付けられた空デルタ言語モデル２０２を訓練する。更に、機構５００は、デバイスＣに関連付けられた空デルタ言語モデル２０３を生成する。
【００９４】
各デバイスＡ、Ｂ、Ｃは、機構５００にテキストＴA、ＴB、ＴCが送信された状態でデバイスからテキストＴA、ＴB、ＴCを消去することが好ましい。次に、デバイスＡ、Ｂ、Ｃは、初期同期以降にデバイスに入力されたいずれのテキストＴA、ＴB、ＴCも格納し、次に、このテキストがその後の同期中に送信された後に消去する等々である。
【００９５】
システムのデバイスＡ、Ｂ、Ｃのその後の同期が図３ｂに示されている。上述したように、デバイスは、必要な場合にいつでも同期することができる。デバイスの同期にはいずれの順序も必要ない、例えば、デバイスＢは、デバイスＣが初期同期を要求する前に次の同期を要求することができる。従って、この例では、デバイスＣが同期中に受信するデルタ言語モデル２０３は、デバイスＢから受信されたテキストＴBの２つのロット、すなわち、デバイスＢの初期同期中に受信されたロット及びデバイスＢのその後の同期中に受信されたロットに対して訓練される。
【００９６】
その後の同期が機構５００とデバイスＡ、Ｂ、Ｃの間で実行された時に、デバイスＡ、Ｂ、Ｃは、以前の同期以降にそのデバイスに入力されたいずれのテキストＴA、ＴB、ＴCも機構５００に送信し、ここで以前の同期は、初期同期又は初期同期に続く同期とすることができる。
【００９７】
各デバイスＡ、Ｂ、Ｃは、そのデバイスに固有のデルタ言語モデル２０１、２０２、２０３をダウンロードする。デバイスは、段階が独立しているので（デバイスのデルタ言語モデルが、他のデバイスに入力されたテキストに対して訓練されるので）、テキストをアップロードするのと同時にデルタ言語モデルをダウンロードすることができ、かつダウンロードすることが好ましい。
【００９８】
その後の同期中に、機構５００は、以前の同期以降に入力されたテキストＴA、ＴB、ＴCを受信する。機構５００は、デルタ言語モデル２０１、２０２、２０３をその関連付けられたデバイスＡ、Ｂ、Ｃに送信する。テキストの受信及びデルタ言語モデルの送信は、与えられたデバイスに対して並行して実行することができる。デルタ言語モデルがデバイスに送信された後に、デルタ言語モデル２０１、２０２、２０３は、空デルタ言語モデルに戻すことができる。
【００９９】
図３ｂに示すデバイスのその後の同期をこの図を参照して詳しく説明する。実施例を提供するために、本発明者は、デバイスＡ、Ｂ、及びＣが、デバイスが全てその順序（すなわち、デバイスＡの次にデバイスＢ、その次にデバイスＣ）で初期同期が行われた後に、その順序でその後の同期を要求する単純なシナリオを考える。しかし、上述したように、デバイスは、いずれの時間及びいずれの順序でも同期を要求することができる。デバイスＡのその後の同期では、デバイスＡは、機構５００からデバイスＡに固有のデルタ言語モデル２０１を受信する。上述したように、このデルタ言語モデル２０１は、デバイスＢ及びＣの初期同期中にアップロードされたデバイスＢ及びＣに入力されたテキストＴB、ＴCに対して訓練される。次に、デバイスＡは、デルタ言語モデル２０１をその動的言語モデル１０１に融合する。
【０１００】
機構５００は、関連付けられたデバイスに送信された状態で各デルタ言語モデルを消去することが好ましい。従って、デルタ言語モデル２０１がデバイスＡに送信された後に、機構５００は、デルタ言語モデル２０１を消去し、デバイスＢ及びＣの初期同期以降にデバイスＢ及びＣに入力されたテキストＴB、ＴCに対して続いて訓練される空デルタ言語モデル２０１を提供する。
【０１０１】
デバイスＡは、必ずではないがデルタ言語モデルをダウンロードするのと同時にその初期同期以降にデバイスＡに入力されたテキストＴAを機構５００に送信することが好ましい。機構５００はこのテキストＴAを受信し、このテキストＴAに対してデバイスＢ及びＣに固有のデルタ言語モデル２０２、２０３を更に訓練する。
【０１０２】
デバイスＢのその後の同期中に、デバイスＢに固有のデルタ言語モデル２０２が機構５００からダウンロードされる。デルタ言語モデル２０２は、デバイスＣの初期同期中に機構５００によって受信されたテキストＴC及びデバイスＡの初期同期以降にデバイスＡに入力されたテキストＴAに対して訓練される。デバイスＢは、デルタ言語モデル２０２をその動的言語モデル１０２に融合する。機構５００がデルタ言語モデル２０２をデバイスＢに送信された状態で、機構５００は、言語モデル２０２を消去し、デバイスＡ及びＣに入力されたテキストＴA、ＴCに対して続けて訓練される空言語モデル２０２を提供する。
【０１０３】
デバイスＢは、以前の同期以降、例えば、このシナリオでの初期同期以降にデバイスＢに入力されたテキストＴBを送信する。送信された状態で、デバイスＢは、そのメモリからテキストを消去することが好ましい。機構５００は、テキストＴBを受信し、テキストＴBに対してデバイスＡの消去されたデルタ言語モデル２０１を訓練する。更に、機構５００は、テキストＴBに対してデバイスＣのデルタ言語モデル２０３を更に訓練し、デバイスＣのデルタ言語モデルは、デバイスＡに入力されたテキストＴAに対して既に訓練されているものである。
【０１０４】
上述のと類似の同期処理は、デバイスＣのその後の同期にも行われる。デバイスＣのデルタ言語モデル２０３は、デバイスＡ及びＣの初期同期以降にデバイスＡ及びＢに入力されたテキストＴA、ＴBに対して訓練される。
【０１０５】
上述したものに加えて、その後の同期中に、機構５００は、デバイスＡ、Ｂ、Ｃのその後の同期中に受信するテキストＴA、ＴB、ＴCに対して累積言語モデル３００を訓練して維持することが好ましい。これは、後でより詳しく説明するように、機構５００とのいずれの更に別のデバイスの高速及び効率的な同期も可能にする。
【０１０６】
特定のデバイスのための初期及びその後の同期中のデータの転送が図３ＣにデバイスＣに対して示されている。初期同期中に、デバイスＣは、累積言語モデル３００をダウンロードし、これをその動的言語モデル１０３に融合する。次に、デバイスＣは、機構５００によって使用されるデバイスに入力されるテキストＴCをアップロードし、デバイスＡ及びＢに関連付けられたデルタ言語モデル２０１、２０２を訓練し、かつ累積言語モデル３００を訓練する。その後の同期中に、デバイスＣは、そのデルタ言語モデル２０３をダウンロードし、これをその動的言語モデル１０３に融合する。デバイスＣは、以前の同期以降にデバイスＣに入力されたいずれのテキストＴCも機構５００にアップロードし、機構５００は、累積言語モデル３００及びデバイスＡ及びＢに関連付けられたデルタ言語モデル２０１、２０２を訓練するためにこれを使用する。
【０１０７】
デバイスが機構に同期した時に、本発明により、このデバイスは、システムの他のデバイスに入力されたテキストの全てから学習しているので、このデバイスがユーザによって以前に使用されていないとしても、ユーザの書込様式を正確に予想することができる。
【０１０８】
上記から明らかなように、新しいデバイス、例えば、デバイスＤが機構５００に同期された時に、デバイスＤは、いずれの特別な初期同期も実行する必要はない。デバイスＡ、Ｂ、及びＣに以前に同期された機構５００とのデバイスＤの初期同期中に、デバイスＤは、デバイスＡ、Ｂ、及びＣに入力された全てのテキストに対して訓練されている累積言語モデル３００を受信する。デバイスＤは、累積言語モデル３００をその動的言語モデル１０３に融合し、それによってデバイスＡ、Ｂ、及びＣに入力された全てのテキストから学習する。全ての他の段階は、同期中、例えば、初期同期中は同じままであり、機構５００は、デバイスＤの空デルタ言語モデルを発生し、その後の同期中に、デバイスＡ、Ｂ、及びＣに入力されたテキストＴA、ＴB、ＴCに対してデルタ言語モデルを訓練する。
【０１０９】
上記で明らかなように、機構５００は、テキストが機構５００によって受信される順序でテキストを用いて言語モデルを訓練することが好ましい。例えば、デバイスＡが機構５００に同期して次にデバイスＣが同期した場合に、デバイスＢのデルタ言語モデルは、デバイスＡから受信されたテキストＴA及び次にデバイスＣから受信されたテキストＴCに対して訓練される。
【０１１０】
一部の実施形態において、同期中にテキストが受信された時に、関連のデルタ言語モデル２０１、２０２、２０３及び／又は累積言語モデル３００は、テキストＴA、ＴB、ＴCに対して訓練することはできない。これらの実施形態において、受信されたテキストＴA、ＴB、ＴCは、機構５００によって格納され、言語モデルを将来の同期中にデバイスに送信する必要がある時だけデルタ言語モデル２０１、２０２、２０３及び／又は累積言語モデル３００を訓練するのに使用される。
【０１１１】
本発明による代替データ転送実施形態が図４ａ、４ｂ及び４ｃに示されている。この代替実施形態は、図３ａ、３ｂ及び３ｃに関して上述した実施形態と実質的に類似しているが、デバイスＡ、Ｂ、Ｃの同期が、ユーザによってデバイスに入力された生テキストＴA、ＴB、ＴCの転送ではなく、デバイスＡ、Ｂ、Ｃから機構へのデバイスデルタ言語モデル１１１、１１２、１１３の転送によって達成されることを可能にする。デバイスデルタ言語モデル１１１、１１２、１１３は、デバイスＡ、Ｂ、Ｃに固有であるが機構５００に格納されているデルタ言語モデル２０１、２０２、２０３とは対照的に、デバイスＡ、Ｂ、Ｃに格納された動的言語モデルである。
【０１１２】
図４ａ及び４ｂは、システム１０００におけるデータの転送を示し、システム１０００の機構５００は、デバイスＡ、Ｂ、及びＣに同期する。図４ａは、機構５００とのデバイスＡ、Ｂ、Ｃの初期同期中のデータ転送を示している。図４ｂは、機構５００とのデバイスＡ、Ｂ、Ｃのその後の同期中のデータ転送を示している。機構５００とのシステムの全てのデバイスＡ、Ｂ、Ｃの同期は、デバイスに存在する複数の言語モデルの同期を提供する。
【０１１３】
図４ａ及び４ｂに示されているシステム１０００は、３つのデバイスＡ、Ｂ、Ｃを含み、各々は、動的言語モデル１０１、１０２、１０３及びデバイスデルタ言語モデル１１１、１１２、１１３を含む。システムは、３つのデバイスに制限されず、すなわち、システムは、単一デバイス、２つのデバイス、又はいずれの数の追加のデバイスを含むことができる。
【０１１４】
デバイスデルタ言語モデル１１１、１１２、１１３は、機構５００とのそのデバイスの最後の同期以降に関連のあるデバイスＡ、Ｂ、Ｃに入力されたテキストに対して訓練された動的言語モデルであり、すなわち、デバイスデルタ言語モデル１１１、１１２、１１３は、機構５００とのそのデバイスの最後の同期以降に関連のあるデバイスＡ、Ｂ、Ｃに入力された生のテキストＴA、ＴB、ＴCに対して訓練される。
【０１１５】
システム１０００は、デバイスＡ、Ｂ、Ｃを同期するための機構５００を含む。機構５００は、累積言語モデル（ＬＭ）３００及び各デバイスＡ、Ｂ、Ｃに関連付けられたデルタ言語モデル２０１、２０２、２０３を含むか又は生成する。機構５００は、デバイスＡ、Ｂ、Ｃに入力されたいずれのテキストも表すデバイスデルタ言語モデル１１１、１１２、１１３を累積言語モデル３００に融合する。
【０１１６】
同期中に、各デバイスデルタ言語モデル１１１、１１２、１１３は、デバイスＡ、Ｂ、Ｃに固有のデルタ言語モデル２０１、２０２、２０３以外の全てのデルタ言語モデル２０１、２０２、２０３に機構５００によって融合され、そこからデバイスデルタ言語モデル１１１、１１２、１１３が、以下に詳しく説明するように発生する。
【０１１７】
デバイスＡ、Ｂ、Ｃは、いずれの時間にもかつ望ましい／必要とされる度に機構５００に自由に同期することができる。図４ａに示すシステム１０００は、３つのデバイスＡ、Ｂ、Ｃの間のデータ転送及び各デバイスＡ、Ｂ、Ｃの初期同期中の同期するための機構５００を示している。デバイスは、いずれの順序でも同期を要求することができる。
【０１１８】
デバイスの初期同期中に、図４ａに示すように、デバイスは、機構５００に以前に同期されたいずれかのデバイスに入力されたテキストから得られたデータを使用して機構５００によって発生された累積言語モデル３００を機構５００から受信する。デバイスは、累積言語モデル３００をその固有の動的言語モデル内に融合するように構成される。デバイスは、そのデバイスに入力されたいずれのテキストからのデータも含むデバイスデルタ言語モデル１１１、１１２，１１３を機構５００に送信するように更に構成される。
【０１１９】
初期同期処理を図４ａに示されている特定のシステムに対して説明し、非制限的例では、デバイスＡ、Ｂ、及びＣは、順番に機構５００に同期する。
【０１２０】
デバイスＡと機構５００の初期同期中に、デバイスＡは、機構５００から累積言語モデル３００をダウンロードし、これをその固有の動的言語モデル１０１に融合する。次に、デバイスＡは、ユーザによってデバイスＡに入力されたテキストに対して訓練されたデバイスデルタ言語モデル１１１を送信する。デバイスデルタ言語モデル１１１は、デバイスに入力されたいずれかの利用可能なテキスト、例えば、デバイスのメモリにあって消去されていないテキストに対して訓練することができる。
【０１２１】
この初期同期中に、機構５００は、好ましくは、空累積言語モデル３００を発生させ、又は機構５００には、空累積言語モデル３００を提供することができる。機構５００は、デバイスデルタ言語モデル１１１を受信し、デバイスデルタ言語モデルを空累積言語モデル３００に融合する。更に機構５００は、デバイスＡに固有の空デルタ言語モデル２０１を生成することが好ましい。
【０１２２】
デバイスＢと機構５００の初期同期中に、デバイスＢは、機構５００から累積言語モデル３００をダウンロードする。累積言語モデル３００は、デバイスＡに入力されたテキストに対して訓練されたデバイスデルタ言語モデル１１１からのデータを含む。累積言語モデル３００をダウンロードした後に、デバイスＢは、これをその固有の動的言語モデル１０２に融合する。次に、デバイスＢは、ユーザによってデバイスＢに入力されたテキストに対して訓練されたデルタ言語モデル１１２を機構５００に送信する。
【０１２３】
各デバイスの同期中に、機構５００は、デバイスに入力されたテキストに対して訓練されたデバイスデルタ言語モデル１１１、１１２、１１３を受信する前に、累積言語モデル３００をデバイスＡ、Ｂ、Ｃに送信する。最初に累積言語モデル３００を送信することにより、機構は、デバイスＡ、Ｂ、Ｃが、動的言語モデル１０１、１０２、１０３に既に存在するデバイスデルタ言語モデル１１１、１１２、１１３からデータを組み込んでいないことを保証する。この順序の重要性は後で詳しく説明する。
【０１２４】
デバイスＢの初期同期中に、機構５００は、デバイスＢに入力されたテキストに対して訓練されたデバイスデルタ言語モデル１１２を受信し、デバイスデルタ言語モデル１１２を累積言語モデル３００に融合する。更に、機構５００は、デバイスＢから受信されたデバイスデルタ言語モデル１１２をデバイスＡに関連付けられたデルタ言語モデル２０１に融合する。更に、機構５００は、デバイスＢの空デルタ言語モデル２０２を生成する。
【０１２５】
デバイスＣと機構５００の初期同期中に、デバイスＣは、機構５００から累積言語モデル３００をダウンロードする。累積言語モデル３００は、デバイスＡ及びＢに入力されたテキストを表している。累積言語モデル３００をダウンロードした後に、デバイスＣは、これをその固有の動的言語モデル２０３に融合する。次に、デバイスＣは、ユーザによってデバイスＣに入力されたテキストに対して訓練されたデルタ言語モデル１１３を機構５００に送信する。
【０１２６】
デバイスＣのこの初期同期中に、機構５００は、デバイスＣに入力されたテキストに対して訓練されたデバイスデルタ言語モデル１１３を受信し、デルタ言語モデル１１３を累積言語モデル３００に融合する。更に、機構５００は、デバイスＣから受信されたデバイスデルタ言語モデル１１３をデバイスＡに関連付けられたデルタ言語モデル２０１に融合する。機構５００は、更に、デバイスＣから受信されたデバイスデルタ言語モデル１１３をデバイスＢに関連付けられた空デルタ言語モデル２０２０に融合する。更に、機構５００は、デバイスＣに関連付けられた空デルタ言語モデル２０３を生成する。
【０１２７】
各デバイスＡ、Ｂ、Ｃは、デバイスデルタ言語モデル１１１、１１２、１１３が機構５００に送信された状態で、デバイスデルタ言語モデル１１１、１１２、１１３を消去して空デバイスデルタ言語モデルにすることが好ましい。次に、デバイスＡ、Ｂ、Ｃは、初期同期以降にデバイスに入力されたいずれのテキストに対してもデバイスデルタ言語モデル１１１、１１２、１１３を訓練する。デバイスデルタ言語モデル１１１、１１２、１１３は、それがその後の同期中に送信された後に再度消去される等々である。
【０１２８】
システムのデバイスＡ、Ｂ、Ｃのその後の同期が図４ｂに示されている。上述したように、デバイスは、要求された場合はいつでも同期することができ、デバイスの同期にはいずれの順序も必要ない。
【０１２９】
その後の同期が機構５００とデバイスＡ、Ｂ、Ｃの間で実行された時に、デバイスＡ、Ｂ、Ｃは、以前の同期以降にそのデバイスに入力されたいずれのテキストに対しても訓練されたデバイスデルタ言語モデル１１１、１１２、１１３を機構５００に送信する。
【０１３０】
各デバイスＡ、Ｂ、Ｃは、そのデバイスに固有のデルタ言語モデル２０１、２０２、２０３をダウンロードする。デバイスは、デバイスデルタ言語モデル１１１、１１２、１１３をアップロードするのと同時にデルタ言語モデル２０１、２０２、２０３をダウンロードすることができ、かつダウンロードすることが好ましい。
【０１３１】
その後の同期中に、機構５００は、以前の同期以降にそのデバイスＡ、Ｂ、Ｃに入力されたテキストを表すデバイスデルタ言語モデル１１１、１１２、１１３を受信する。機構５００は、デルタ言語モデル２０１、２０２、２０３をその関連付けられたデバイスＡ、Ｂ、Ｃに送信する。デバイスデルタ言語モデル１１１、１１２、１１３の受信及びデルタ言語モデル２０１、２０２、２０３の送信は、与えられたデバイスに対して並行して実行することができる。デルタ言語モデル２０１、２０２、２０３がデバイスに送信された後に、デルタ言語モデル２０１、２０２、２０３を消去して空デルタ言語モデルにすることができる。
【０１３２】
図４ｂに示すデバイスのその後の同期をこの図を参照してここで詳しく以下に説明するが、本発明者は、デバイスＡ、Ｂ、及びＣが、デバイスが全てその順序で初期同期が行われた後にその順序でその後の同期を要求する図３ｂと同じシナリオを考えている。しかし、上述したように、デバイスは、いずれの時間にもかついずれの順序でも同期を要求することができる。デバイスＡのその後の同期では、デバイスＡは、機構５００からデバイスＡに固有のデルタ言語モデル２０１（デバイスＡの最後の同期以降にデバイスＣに入力されたテキストを表すデバイスデルタ言語モデル１１３に融合されたデバイスＡの最後の同期以降にデバイスＢに入力されたテキストを表すデバイスデルタ言語モデル１１２）を受信し、デルタ言語モデル２０１をその動的言語モデル１０１に融合する。
【０１３３】
機構５００は、各デルタ言語モデル２０１、２０２、２０３が関連付けられたデバイスに送信された状態で、各デルタ言語モデル２０１、２０２、２０３を消去することが好ましい。
【０１３４】
デバイスＡは、必ずではないがデルタ言語モデルをダウンロードするのと同時にその初期同期以降にデバイスＡに入力されたテキストに対して訓練されたデバイスデルタ言語モデル１１１を機構５００に送信することが好ましい。機構５００は、このデバイスデルタ言語モデル１１１を受信し、デバイスデルタ言語モデル１１１をデバイスＢ及びＣに固有のデルタ言語モデル２０２、２０３に融合する。
【０１３５】
デバイスＢのその後の同期中に、デバイスＢに固有のデルタ言語モデル２０２が機構５００からダウンロードされ、その動的言語モデル１０２に融合される。機構５００がデルタ言語モデル２０２をデバイスＢに送信された状態で、機構５００は、言語モデル２０２を消去する。
【０１３６】
デバイスＢは、以前の同期以降に、例えば、このシナリオにおける初期同期以降にデバイスＢに入力されたテキストに対して訓練されたデバイスデルタ言語モデル１１２を送信する。送信された状態で、デバイスＢは、デバイスデルタ言語モデル１１２を消去して空デルタ言語モデルを生成することが好ましい。機構５００は、デバイスデルタ言語モデル１１２を受信し、デバイスデルタ言語モデル１１２をデバイスＡの消去されたデルタ言語モデル２０１に融合する。更に、機構５００は、デバイスデルタ言語モデル１１２をデバイスＣのデルタ言語モデル２０３に融合し、ここでデバイスＣのデルタ言語モデル２０３は、デバイスＡに入力されたテキストから得られたデータを既に含んでいる。
【０１３７】
上述のものと類似の同期処理は、デバイスＣのその後の同期に対して行われる。
【０１３８】
上述したものに加えて、その後の同期中に、機構５００は、デバイスＡ、Ｂ、Ｃのその後の同期中に受信するデバイスデルタ言語モデル１１１、１１２、１１３を融合することによって累積言語モデル３００を維持することが好ましい。
【０１３９】
特定のデバイスの初期及びその後の同期中のデータの転送は、図４ＣにデバイスＣに対して示されている。初期同期中に、デバイスＣは、累積言語モデル３００をダウンロードし、累積言語モデル３００をその動的言語モデル１０３に融合する。次に、デバイスＣは、デバイスに入力されたテキストに対して訓練されたデバイスデルタ言語モデル１１３をアップロードする。機構５００は、デバイスデルタ言語モデル１１３をデバイスＡ及びＢに関連付けられたデルタ言語モデル２０１、２０２にかつ累積言語モデル３００に融合する。その後の同期中に、デバイスＣは、そのデルタ言語モデル２０３をダウンロードし、デルタ言語モデル２０３をその動的言語モデル１０３に融合する。デバイスＣは、以前の同期以降にデバイスＣに入力されたいずれのテキストに対しても訓練されたデバイスデルタ言語モデル１１３を機構５００にアップロードし、機構５００は、これを累積言語モデル３００及びデバイスＡ及びＢに関連付けられたデルタ言語モデル２０１、２０２に融合する。
【０１４０】
上記から明らかなように、新しいデバイス、例えば、デバイスＤが機構５００に同期された時に、いずれの特別な初期同期も実行する必要はない。
【０１４１】
機構５００は、デバイスデルタ言語モデル１１１、１１２、１１３が機構によって受信される順序でデバイスデルタ言語モデル１１１、１１２、１１３を言語モデル内に融合することが好ましい。例えば、デバイスＡが機構５００に同期し、次にデバイスＣが同期する場合に、デバイスＡから受信されたデバイスデルタ言語モデル１１１が、デバイスＢのデルタ言語モデル２０２０に融合され、次に、デバイスＣから受信されたデバイスデルタ言語モデル１１３が、デルタ言語モデル２０２に融合される。
【０１４２】
本発明の上述の態様において、デルタ言語モデルが入力テキストの代わりに機構に送信された場合に、デバイスの動的言語モデル及びデバイスデルタ言語モデルは、ユーザによって入力されたテキストに対して訓練することができる。好ましい実施形態において、この訓練は同時に行われる。動的言語モデル及びデルタ言語モデルの両方が入力後に直ちに入力テキストに対して訓練される場合に、ユーザによって入力された実際のテキストを格納する必要はない。
【０１４３】
代替実施形態において、最後の同期以降のテキスト入力は、デバイスに格納することができ、デバイスデルタ言語モデルが転送されるその後の同期の前にデバイスデルタ言語モデルを訓練することができる。
【０１４４】
上述の実施形態の変形では、デバイスデルタ言語モデル１１１、１１２、１１３が同期中に受信された時に、デバイスデルタ言語モデル１１１、１１２、１１３は、関連するデルタ言語モデル２０１、２０２、２０３及び／又は累積言語モデル３００に融合しなくてもよい。代わりに、得られる言語モデルを将来の同期中にデバイスに送信する必要がある時だけ、受信されたデバイスデルタ言語モデル１１１、１１２、１１３を機構５００によって格納してデルタ言語モデル２０１、２０２、２０３及び／又は累積言語モデル３００に融合することができる。
【０１４５】
テキストの代わりに言語モデルを送信することの潜在的な利点は、データ送信及び格納の両方における曖昧さを通じた改善したプライバシー及びセキュリティである。ある一定のシナリオでは、格納及び送信データサイズは、テキストの代わりに言語モデルを使用することにより、例えば、ユーザ入力テキストの量が大きい時又は多くの反復言葉がある時に小さくすることができる。しかし、格納及び送信データサイズは、言語モデルの代わりにテキストを使用することにより、例えば、ユーザ入力テキストの量が小さい時又は反復言葉が少ない時に小さくすることができる点で逆も真である場合がある。言語モデルを送信することの潜在的な更に別の利点は、以下に詳しく説明するように機構によるのではなくデバイス上で初期化処理を実行することができることである。
【０１４６】
上述のいずれの実施形態においても、同期が要求又は必要とされる時に各デバイスは、機構５００との同期を要求する。同期を要求するためのトリガは、デバイスの同期の起動を判断するユーザにあると考えられる。これに代えて又はこれに加えて、各デバイスは、最小レベルの更新が起こるように定期的に同期を要求するように構成することができる。デバイスが更新する頻度は同じである必要はない。一実施形態において、デバイスは、新しいテキストがデバイスに追加された時に必ず同期をトリガするように構成することができる。
【０１４７】
上述の好ましい実施形態において、同期を制御するのはデバイスである。代替実施形態において、同期をトリガするように機構を構成することができ、機構は、複数のデバイスを順番に同期する。
【０１４８】
本発明の好ましい実施形態において、同期するための機構は、サーバ１５００である。ウェブサービス／クラウドは、複数のデバイスとサーバ１５００の間の容易にアクセス可能な同期を提供することができる。図５は、本発明によるシステムを示し、システム２０００は、同期されるサーバ１５００及び２つのデバイス１１０、１２００（タブレット１１００及び電話１２００）を含む。従って、デバイスの初期同期中に、デバイスは、サーバ１５００から累積言語モデルをダウンロードしてテキストをサーバ上にアップロードする。デバイスのその後の同期中に、最後の同期以降にデバイス１１００、１２００に入力されたテキストは、サーバ上にアップロードされ、累積及びデルタ言語モデルを訓練するのに使用される。図４ａ−４ａに関して説明した代替実施形態において、デバイスは、同期中のサーバにおける最後の同期以降にデバイス１１００、１２００に入力されたテキストに対して訓練されたデバイスデルタ言語モデルをアップロードし、このデバイスデルタ言語モデルは、累積言語モデル及びデルタ言語モデル内に融合される。各デバイス１１００、１２００は、最後の同期以降に全ての他のデバイスに入力されたテキストを説明するその特定のデルタ言語モデルをサーバ１５００からダウンロードする。
【０１４９】
ユーザがデバイスに入力するテキストは、センシティブな情報を表し、そのセキュリティを危うくしてはならない。システムは、ローカル格納又は複数のデバイスと機構の間の送信中のいずれにおいてもテキストのセキュリティが侵害されないようにするためのいくつかの解決法を提供する。
【０１５０】
テキストがデバイスから機構に転送される実施形態において、ユーザによって入力された実際のテキストは、安全な接続を通して、例えば、暗号化された通信チャネルを通して送信されるのが好ましく、送信中にこのテキストのセキュリティが侵害されないようにする。同様に、機構から複数のデバイスの各々にデルタ及び累積言語モデルを送信するために機構とデバイスの間に安全な接続を確立することができる。
【０１５１】
システム１０００、２０００の固有の特性は、機構５００、１５００が、実際のテキストを含まない累積言語モデル又はデルタ言語モデルの形態の更新を格納及び送信することである。従って、安全な接続が侵害される場合でも、言語モデル（ユーザの言語様式の確率的カプセル化）だけが露出され、テキスト自体ではない。従って、好ましいけれども、安全な接続は、デルタ（デバイスデルタ言語モデル及び機構のデルタ言語モデル）及び累積言語モデルを転送する必要はない。
【０１５２】
複数の動的言語モデルの同期をウェブベースのサーバを含むシステムにおいてデバイスとサーバの両方の観点から説明する。
【０１５３】
図６及び７は、デバイス及びサーバの観点からの初期同期を示しており、図８及び９は、デバイス及びサーバの観点からのその後の同期を示している。
【０１５４】
図６は、デバイスの観点からの初期同期を示している。同期を要求してデバイスとサーバの間の安全な接続を確立した後に、ユーザは、ユーザに固有の動的言語モデルを同期するために認証することが好ましい（例えば、パスワードの要求及び提供により）。
【０１５５】
次に、デバイスは、サーバから累積言語モデルをダウンロードし、累積言語モデルをその既存の動的言語モデル内に融合する。テキストが同期の前にデバイスに入力された場合に、デバイスは、累積言語モデルをダウンロードした後にそのデバイスに入力されたテキストを表すテキストデータをアップロードするように構成される。デバイスに入力されたテキストを表すデータは、図３ａ、３ｂ、及び３ｃに関して上述したようにかつ図６に示すように、実際のテキストを含むことができ、又は図４ａ、４ｂ及び４ｃに関して上述したようにデバイスデルタ言語モデルを含むことができる。
【０１５６】
サーバの観点からの初期同期が図７に示されている。初期同期は、デバイスとのその後の同期に対してサーバの準備をする段階及びサーバに前に同期された全てのデバイスにこれまで入力された全てのテキストを表す累積言語モデルをデバイスに提供する段階から構成される。
【０１５７】
サーバは、ユーザ及びデバイスを認証し、現在のユーザに対して最初の同期である場合に、サーバは空累積言語モデルを生成する。この空累積言語モデルは、図３ａ及び３ｂに関して詳しく上述したように、デバイスに入力された全てのテキストに対して後で訓練される。図４ａ及び４ｂに関して説明した他の実施形態において、デバイスに入力された全てのテキストを表すデバイスデルタ言語モデルは、累積言語モデル内に融合される。
【０１５８】
デバイスの初期同期中に、サーバは、そのデバイスに対する空デルタ言語モデルを生成するように構成され、図３ａ及び３ｂに関して上述したように、他のデバイスの以前の同期中に他のデバイスに入力されてサーバによって受信されたテキストを用いて訓練される。他の実施形態において、図４ａ及び４ｂに関して詳しく上述したように、他のデバイスに入力された全てのテキストを表すデバイスデルタ言語モデルは、デルタ言語モデル内に融合される。
【０１５９】
次に、サーバは、累積言語モデルをデバイスに提供する。ユーザに対しての最初の同期である場合に、サーバは、図３ａ又は図４ａのデバイスＡに関して上述したように、空累積言語モデルをデバイスに提供する。これに代えて、他のデバイスの同期が以前に行われている場合に、サーバは、他のデバイスの同期中に受信されたテキストデータに対して訓練された累積言語モデルをデバイスに提供する。
【０１６０】
次に、サーバは、デバイスに入力されたテキスト（もしあれば）を表すテキストデータをアップロードする。テキストデータは、累積言語モデルがデバイスに提供された後にアップロードされ、アップロードされたテキストがデバイスに提供される累積言語モデルに組み込まれないようにする。
【０１６１】
デバイスの観点からのその後の同期が図８に示されている（デバイスが、同期中にテキストを転送する実施形態）。初期同期の場合のように、デバイスは、サーバとの安全な接続を最初に設定しなければならず、ユーザは認証しなければならない。サーバはまた、デバイスを認証し、デルタ言語モデルを生成するためにデバイスが互いに区別されるのを可能にする（特定のデルタ言語モデルが各デバイスに関連付けられ、デバイス及びデバイスに入力されたテキストを表すテキストデータをサーバが区別する必要があるので）。デバイスは、サーバからのキーの要求に応答して、そのデバイスに固有のキーを提供することによってサーバを認証することができる。
【０１６２】
図８に示すように、各デバイスは、最後の同期事象以降にそのデバイスに入力されたいずれのテキストもサーバ上にアップロードする。デバイスは、テキストをサーバ上にアップロードした後にテキストバッファを消去するように構成されることが好ましい。代替実施形態において、各デバイスがサーバにデバイスデルタ言語モデルをアップロードし、アップロードされた後にこのデバイスデルタ言語モデルを消去する。
【０１６３】
デバイスは、その特定のデルタ言語モデルをサーバからダウンロードしてデルタ言語モデルをその動的言語モデル内に融合するように構成される。従って、その後の同期では、各デバイスは、他のデバイスの以前の同期中に他のデバイスからサーバによって受信された入力テキストを表すテキストデータから発生される統計的言語データ（その特定のデルタ言語モデルの形態）を学習する。
【０１６４】
図８に示すように、デバイスに固有のデルタ言語モデルが、他のデバイスの全てに入力されたテキストを表すテキストデータから発生されるので、最新のテキストを表すテキストデータをアップロードし、かつデルタ言語モデルをダウンロードする２つのタスクは完全に独立している。従って、これらの２つのタスクを並行して実行することができる。
【０１６５】
サーバの観点からのデバイスのその後の同期が図９に示されている。同期の要求を受信し、安全な接続を確立し、かつユーザ及びデバイスを認証した後に、サーバは、２つの独立したタスクを好ましくは並行して実行するように構成される。１つのタスクでは、サーバは、最後の同期以降にデバイスに入力されたテキストを表すテキストデータを検索する。データが図９に示すように実際の入力テキストを含む場合に、このテキストは、システムにおける他のデバイスに関連付けられたデルタ言語モデルを訓練するのに使用される。このテキストは、全てのデバイスに入力された全てのテキストに対して訓練される累積言語モデルを訓練するのに使用されることが好ましい。更新が起こった時に全ての更新によって累積言語モデルを訓練することにより、サーバは、いずれの追加のデバイスも以前に同期されたデバイスに迅速かつ効率的に同期させることができる。サーバは、デルタ言語モデルと累積言語モデルを並行して訓練するように構成されることが好ましい。第２のタスクでは、サーバは、デバイスにそのデバイスに固有のデルタ言語モデルを提供する。サーバは、デルタ言語モデルがデバイスに提供された状態でデルタ言語モデルを消去することが好ましい。
【０１６６】
これに代えて、データがデバイスデルタ言語モデルを含む実施形態において、デバイスデルタ言語モデルは、システムの他のデバイスに関連付けられたデルタ言語モデル内に融合される。デルタ言語モデルは、全てのデバイスに入力された全てのテキストを表す累積言語モデル内に融合されることが好ましい。各同期が起こった時にデバイスデルタ言語モデルを累積言語モデル内に融合することにより、サーバは、いずれの追加のデバイスも以前に同期されたデバイスに迅速かつ効率的に同期させることができる。サーバは、デバイスデルタ言語モデルをデルタ言語モデル及び累積言語モデル内に並行して融合するように構成されることが好ましい。第２のタスクでは、サーバは、デバイスにそのデバイスに固有のデルタ言語モデルを提供する。サーバは、デルタ言語モデルがデバイスに提供された状態でデルタ言語モデルを消去することが好ましい。
【０１６７】
同期の懸念の１つは、繰り返された融合の悪影響としてある一定の統計的言語データの強度を不自然に増加することによってバイアスされる傾向があるということである。本発明の機構は、デバイスの同期中に動的言語モデルがシステムの他のデバイスに入力された用語及び用語のシーケンスを学習することを保証することにより、その固有の動的言語モデル内に既に存在する統計的言語データを再学習することなくこの問題に対処する。これを達成するために、デバイスの初期同期中に、機構は、そのデバイスからの入力テキストを表すいずれのテキストデータもアップロードする前に累積言語モデルをデバイスに転送し、デバイスが、そのデバイスに以前に入力されたテキストを表すテキストデータを受信しないようにする。同様に、その後の同期中に、機構は、デルタ言語モデルを意図するデバイス以外の全てのデバイスに入力されたテキストを表すテキストデータを使用して、デバイスに固有のデルタ言語モデルを生成する。従って、本発明の同期機構は、動的言語モデルが動的言語モデルに既に存在する統計的データを受信及び融合しないようにする。
【０１６８】
動的言語モデル１０１、１０２、１０３のバイアスが懸念ではない場合に、第１の実施形態において、機構５００は、初期及びその後の同期中にデバイスの全てから受信されたテキストＴA、ＴB、ＴCに対して累積言語モデル３００を訓練し、初期及びその後の同期中に各デバイスに累積言語モデル３００を提供するように構成することができ、すなわち、機構は、デルタ言語モデルを含まず、デバイスは、個々に又はまとめて同期する。同様に、他の実施形態において、機構５００は、初期及びその後の同期中にデバイスの全てから受信されたデバイスデルタ言語モデルを累積言語モデル３００に融合し、初期及びその後の同期中に各デバイスに累積言語モデル３００を提供するように構成することができると考えられ、すなわち、機構は、デルタ言語モデルを含まず、デバイスは、個々に又はまとめて同期する。別の実施形態において、機構は、デバイスの全体的な初期同期を実行するように構成することができ、その後の同期は、そのデバイスのデルタ言語モデルをダウンロードすることによって各デバイスに対して個々に実行され、それによってデバイスが初期同期を実行し、例えば、新しいデバイスがシステムに同期される機会にバイアスを制限する。
【０１６９】
以上の説明は、機構が複数のデルタ言語モデルに加えて累積言語モデルを発生させる本発明の好ましい実施形態を詳述したものである。しかし、別の実施形態において、機構は、複数のデルタ言語モデルだけを発生させることができる。この実施形態は、デバイスの全てが累積言語モデルからではなくその関連付けられたデルタ言語モデルを通して他のデバイスから初期テキストを学習する点で図３ａ、３ｂ、４ａ、及び４ｂに関して上述した好ましい実施形態とは異なることになる。事前に同期されたシステムに導入されるいずれの新しいデバイスも、これらのデバイスに入力されるあらゆる将来のテキストに加えて以前の同期以降に事前に同期されたデバイスに入力されたテキストからのみ学習することになる。ユーザによって入力された最も新しいテキストは、デバイスが学習する最も関連のあるテキストとすることができるので、これは受容可能と考えられる。更に、このようなシステムには統計的言語データのバイアスがないことになる。しかし、これは、新しいデバイスがシステムの統計的言語データの全てを吸収しないので、ユーザの書込様式を学ぶのに更に時間を消費することを意味する。
【０１７０】
以上の説明は、デバイスが単一動的言語モデルを含む本発明の実施形態を詳述している。しかし、他の実施形態において、１つ又はそれよりも多くのデバイス（一部の実施形態では全てのデバイス）が複数の動的言語モデルを使用することができる。これを容易にするために、各動的言語モデルは、固有にタグ付けされる。すなわち、デバイス内の各動的言語モデルは、デバイス内でこれを識別するためにタグ付けされる。一例は、以下の通りである。デバイスは、電子メールテキストに対して１つの動的言語モデル、及びツイッターテキストに対して別の動的言語モデルを有する。これらの言語モデルの各々は、他方から一方を識別するためにタグ付けされることになる。タグ付けは、「電子メール」、「ツイッター」、「フェイスブック」のようなテキストストリングのようなストリングの形態を取ることができる。タグは、いずれかの適切な方法でデバイスに格納することができる。
【０１７１】
少なくとも１つのデバイスが複数の動的言語モデルを使用する場合に、機構は、異なるデバイスからの動的言語モデルを同じタグに同期する。すなわち、デバイスＸが先行する段落で言及されたように電子メール動的言語モデル及びツイッター動的言語モデルを有し、かつデバイスＹが電子メール動的言語モデルのみを有する場合に、両方のデバイスにおける電子メール動的言語モデルは、同じタグに関連付けられる。これらのタグを認識する機構は、同じタグを有する動的言語モデルを同期することになる。
【０１７２】
この実施形態において、機構に関連付けられたディスパッチャモジュールも提供され、機構は、各タグに関連付けられたいくつかのインスタンスを含み、又はいくつかの別々の機構の形態を取ることになる。各タグは、関連付けられた動的言語モデルからの他のデータと共に、同期中に各デバイスによってディスパッチャモジュールに提供される（機構へのデータの提供に関して上述した方式で）。このようなデータの受信に応答して、ディスパッチャモジュールは、データ内のタグを識別して分析する。
【０１７３】
タグはまた、ディスパッチャモジュールのマップに格納され、又はディスパッチャモジュールに関連付けられることが好ましい。このシナリオでは、タグは、マップへのキーである。従って、タグの識別に応答して、ディスパッチャモジュールは、識別されたタグがマップに存在するか否かを確定する形態を取る分析を実行する。存在しない場合に、機構の新しいインスタンス又は新しい機構が、ディスパッチャモジュールによって生成され、かつマップ内で問題のタグに関連付けられる。タグと共に受信されたデータは、次に、以前の実施形態で上述したように処理のための新しい機構インスタンス又は新しい機構に向けられる。タグがマップに存在する場合に、ディスパッチャモジュールは、タグに関連付けられたデータをマップから識別するタグに関連付けられた機構インスタンス又は機構に向ける。次に、データは、以前の実施形態で上述したように機構インスタンス又は機構を用いて処理される。
【０１７４】
この実施形態に関して上記に与えた例では、同期は、累積言語モデル（電子メール）、デバイスＸのデルタ言語モデル（電子メール）、及びデバイスＹのデルタ言語モデル（電子メール）をもたらすことになる。デバイスＹは、ツイッター動的言語モデルを有することなく、ツイッター動的言語モデルに対して同期しない。従って、同期はまた、デバイスＸの累積言語モデル（ツイッター）及びデルタ言語モデル（ツイッター）をもたらす。従って、容易に理解することができるように、この例では電子メール機構インスタンス及びツイッター機構インスタンス（又は別々の電子メール及びツイッター機構）が存在する。
【０１７５】
デバイスＹがツイッター動的言語モデルを有する場合に、同期は、電子メールシナリオに関して上述したように拡張され、それによって上述のデバイスＸの累積言語モデル（ツイッター）及びデルタ言語モデル（ツイッター）に加えてデバイスＹのデルタ言語モデル（ツイッター）をもたらすであろう。これは、デバイスに存在することができる全ての可能な動的言語モデルが他のデバイスのその均等物に同期することができるように拡張される。容易に分るように、本発明による上述の同期は、言語モデルが発生するデバイス及び追加のタグを使用して言語モデルを識別し、かつ上述の方式で同一タグを有する異なるデバイスからの動的言語モデルを同期することにより、１つのデバイスシナリオ当たりの複数の動的言語モデルに拡張される。
【０１７６】
本発明の同期処理は、性能問題を防ぐためにオンデバイス計算の点で軽量かつ効率的である。高度に拡張可能であり、潜在的に多数の様々なデバイス（異なるオペレーティングシステム又はソフトウエアバージョンを実行する）が異なる時間間隔に同期することを可能にする。上述したように、同期の頻度は、デバイス毎に異なるものにすることができ、例えば、デバイスＡは、デバイスＢ又はＣよりもより規則的にシステム１０００に同期することができる。
【０１７７】
先行する説明は、ユーザによるデバイスの使用後及び／又は使用中の複数のデバイスの同期を説明している。しかし、ユーザが多くのテキストを同期されたシステムのデバイスに入力する機会を有する前に、デバイスによって発生されたテキスト予想は、動的言語モデルがユーザの書込様式を学んでいないのでユーザに対して正確ではない場合がある。
【０１７８】
ユーザに対するテキスト予想の精度を上げるために、同期システムのデバイスの動的言語モデルは、同期システムのデバイスの外側のいずれかのデバイスにユーザによって入力されたいずれかのテキスト、例えば、ユーザのＰＣに格納された電子メールによっても訓練することができるのが好ましく、ここでそのＰＣは、システムのデバイスの１つではない。この学習処理は、「初期化」と呼ばれる。
【０１７９】
同期システムの外側の外部機構は、ユーザが同期システムの外側のデバイスに入力したテキストに対して１つ又はそれよりも多くの言語モデルを訓練することによって１つ又はそれよりも多くの初期化言語モデルを生成するように構成される。
【０１８０】
初期化処理は、図１０に示されている。初期化中に、同期のための機構／サーバは、初期化ソース、すなわち、初期化言語モデルを発生した外部機構との安全な接続を確立するように構成される。サーバは、ユーザ及び初期化ソースを認証し、認証された状態で、サーバは、初期化ソースから１つ又はそれよりも多くの初期化言語モデルをダウンロードする。
【０１８１】
次に、サーバは、初期化言語モデルを累積言語モデル内に融合するように構成される。直接の結果は、デバイス同期は明示的な初期化を実行するのに要求されないことになるが、初期同期中に動的言語モデル内に融合された累積言語モデルからこれを引き継ぐことになることである。
【０１８２】
初期化処理が実行される場合に、システムの第１デバイスが同期される時に、例えば、図３ａ又は４ａのデバイスＡの初期同期後にサーバが初期化処理を実行することが好ましい。好ましい初期化処理は、図１０の切れ目のない線によって示されている。
【０１８３】
しかし、初期化処理は、代わりに上述の同期処理のいずれのポイントでも実行することができる。初期化がシステムの第１同期後（例えば、デバイスＡの初期同期後）に実行される場合に、初期化言語モデルは、サーバによって累積言語モデル及びデルタ言語モデルの全てに融合される。その結果、デバイスがデルタ言語モデルをその動的言語モデルにダウンロード及び融合した時に、システムのデバイスは、デバイスのその後の同期中に初期化データを受信する。後の日付に機構／サーバに同期するいずれかのデバイス（例えば、上述のデバイスＤ）は、デバイスが累積言語モデルをダウンロードしてこれをその動的言語モデル内に融合するので、デバイスの初期同期中と同様に初期化データを受信する。
【０１８４】
第１同期後に実行された初期化処理が図１０に示されており、ここで処理は、破線によって示された処理の一部（初期化言語モデルをデルタ言語モデル内に融合する段階）を含む。初期化モデルのデルタ言語モデルへの融合は、初期化モデルの累積言語モデルへの融合に並行して実行することができる。
【０１８５】
代替実施形態において、機構又は同期サーバの代わりに初期化をデバイスの１つで実行することができる。これらの実施形態において、これは、上述したように初期化ソースに接続して初期化言語モデルをダウンロードするデバイスである。初期化言語モデルがダウンロードされた状態で、初期化言語モデルは、デバイスの既存の動的言語モデル内に融合され、初期化言語モデルに含まれるテキストデータは、詳しく上述したように、機構との同期のためにデバイスのテキストデータに組み込まれる。デバイス初期化により、典型的には、デバイス上のテキストデータは、デバイスデルタ言語モデルの形態になり、初期化言語モデルをテキストデータに組み込む段階は、初期化言語モデルをデバイスデルタ言語モデル内に融合する段階を含むことになる。
【０１８６】
デバイス初期化は、初期化処理がユーザからの対話を要求する状況（例えば、初期化ソースを選択する場合及び第三者サービスを認証する場合）に好ましいとすることができる。初期化が機構を用いて実行された場合に、機構は、ユーザと外部初期化機構の間のプロキシとして作用しなければならない。従って、代わりにデバイスからの初期化を実行する段階は、同期サーバにおいてプロキシ機構を実施する必要がなく、実施の複雑さを低減する。デバイス初期化により、初期化サービスのための同期サービスにおける依存性はなく、それによって初期化は、同期が使用できない又は使用されない状況で可能である。
【０１８７】
反復された融合のためにバイアスが導入されないようにするために、初期化処理は一度だけ実行される。
【０１８８】
本発明の２つの更に別の態様は、エラー軽減のための機構及び方法である。エラー軽減は、デルタ言語モデルが機構からデバイスに送信される時に生じる問題に対処するが、エラーは、デルタ言語モデルを受信しないか又は確実に使用することができないデバイスをもたらす。このような状況を生じる場合があるエラーの例は、ネットワーク接続性問題及びデータ破損を含み、これらは、移動環境で特に共通の問題である。このようなエラーのシナリオでは、機構は、デルタ言語モデルがデバイスに送信されたと信じ、これを消去して空デルタ言語モデルにする。その後の同期中に、デバイスは、それが以前に受信し損なったデルタ言語モデルの内容を含まないデルタ言語モデルを受信する。従って、このデバイスによって提供される予想は、同じユーザによって使用された他のデバイスによって提供されるものとは異なるものになる。
【０１８９】
以下に詳しく説明するようなエラー軽減処理なしでこの問題を解決する唯一の方法は、機構からデバイスに累積言語モデルを送信することであり、デバイスがその動的言語モデルをこの累積モデルで置換することである。しかし、このエラー状況を検出するための手段を存在させる必要がある。更に、累積モデルの送信は、デバイスの動的言語モデルに既に含まれているデータが累積言語モデルの一部として機構からデバイスに送信される場合には効率的ではない。
【０１９０】
エラー軽減を使用するシステム１０００の実施形態が図１１に示されている。単純にするために、１つのデバイスだけがこの図に示されているが、複数のデバイスを同じ機構５００に同期することができることは理解されるであろう。上述したように、デバイスＺは、動的言語モデル１０４及びテキストデータ１１４を含む（これは、例えば、ユーザによって入力された実際のテキスト又はテキストで訓練された言語モデルを含むことができる）。デバイスＺは、パラメータＲZを含む。上述のシステムでは、機構５００は、累積言語モデル３００を含むことが好ましい。機構は、１次デルタ言語モデル２０４、バックアップ言語モデル２１４、及びデバイスＺに固有のパラメータＳZを含む。このデータ転送が全ての同期に対して行われるので、ＲZ及びテキストデータのデータ転送が実線によって示されている。１次デルタ言語モデル又はバックアップデルタ言語モデルのいずれかが、同期中にデバイスに転送され（以下に詳しく説明するように）、従って、これらの可能なデータ転送は破線によって示されている。
【０１９１】
エラー軽減が使用された時のデバイスＺの同期中に機構を用いて実行される処理が図１２に示されている。図１２に示す段階は、図８の「デルタＬＭを提供する」及び「デルタＬＭを消去する」という段階に対応し、かつそれを置換する。図１１及び１２に示すエラー軽減処理を以下に更に詳しく説明する。
【０１９２】
図１１及び１２に示すエラー軽減処理の実施形態において、機構は、更に、機構からデバイスに送信されたデータを表す各デバイスに関連付けられたパラメータＳを含む。デルタ言語モデルがデバイスに送信された時に、パラメータＳは、デルタ言語モデルに関連付けられた識別子Ｉに等しく設定される。識別子Ｉは、デルタ言語モデルと共にデバイスに送信される。ＨＴＴＰが通信プロトコルである場合に、識別子は、例えば、ＨＴＴＰパラメータ又はカスタムヘッダとして送信することができる。
【０１９３】
デバイスがエラーなしでデルタ言語モデル及び識別子を受信した場合に、デバイスは、識別子Ｉに等しい受信されたデータを表すパラメータＲを設定する。データ転送にエラーがある場合に、パラメータＲは更新されず、最後の成功した同期の識別子に等しいままである。
【０１９４】
デバイスが次に同期された時に、デバイスは、パラメータＲを機構に送信する。機構は、受信されたパラメータＲを格納されたパラメータＳと比較する。最後の同期中のデータ転送が成功した場合に、パラメータＲ及びＳは同一である。これらが同一でない場合に、最後の同期のデータ転送は成功せず、かつエラーが発生している。
【０１９５】
エラーを軽減するために、機構５００は、各デバイスに関連付けられた２つのデルタ言語モデル、すなわち、１つの１次デルタ言語モデル及び１つのバックアップデルタ言語モデルを含む。１次デルタ言語モデルは、例えば、図３ａ、３ｂ、４ａ、及び４ｂに関して上述したデルタ言語モデルに同等である。１次デルタ言語モデルは、詳しく上述したように、関連付けられたデバイスの最後の同期以降に全ての他のデバイスとの同期によって提供されたテキスト入力を表すデータを含む。
【０１９６】
バックアップデルタ言語モデルは、エラー軽減処理の一部である。バックアップデルタ言語モデルは、デバイスがエラーのないデルタ言語モデルを受信したことが確認された関連付けられたデバイスの最後の同期以降に全ての他のデバイスとの同期によって提供されたテキスト入力を表すデータを含む。従って、他のデバイスが同期された場合に、これらから受信されたテキストデータは、１次デルタ言語モデル及びバックアップデルタ言語モデルの両方に組み込まれる。デルタ言語モデルの受信の確認は、その後の同期の開始時に機構へのパラメータＲの送信を通して行われる。従って、送信エラーがない場合に、バックアップデルタ言語モデルは、関連付けられたデバイスの最後から２番目の同期以降の他のデバイスとの同期からのテキストデータを伴う。送信に以前のエラーがある場合に、バックアップデルタ言語モデルは、関連付けられたデバイスの早期の同期以降に収集されたテキストデータを含む場合がある。
【０１９７】
図１１に戻って、機構は、デバイスからパラメータＲを受信する。パラメータＲが同期の開始時にパラメータＳに同一である場合に、最後の同期は成功し、１次デルタ言語モデルは、１次デルタ言語モデルの識別子と共にデバイスに転送される。パラメータＳは、デルタ言語モデルと共に送信される識別子に設定される。この場合に、バックアップデルタ言語モデルは必要ない。バックアップデルタ言語モデルは消去することができ、１次デルタ言語モデルは、バックアップデルタ言語モデルに複製される。次に、１次デルタ言語モデルが消去され、空デルタ言語モデルが他のデバイスの将来の同期からのテキストデータを受信することを可能にする。
【０１９８】
パラメータＲが同期の開始時にパラメータＳに同一でない場合に、最後の同期は成功していない。この場合に、バックアップデルタ言語モデルがデバイスに送信される。バックアップデルタ言語モデルは、最後の成功しなかった送信時に送信されたテキストデータ及び他のデバイスとのその後の同期からのテキストデータを含む。従って、バックアップデルタ言語モデルを１次デルタ言語モデルの代わりにデバイスに送信することにより、デバイスは、そうでなければ送信のエラーのために失われるテキストデータを受信する。パラメータＳは、バックアップデルタ言語モデルの識別子に設定される。１次デルタ言語モデルが消去され、空デルタ言語モデルが他のデバイスの将来の同期からのテキストデータを受信することを可能にする。
【０１９９】
エラーが検出されない（すなわち、ＲがＳに等しい）場合かつ新しいテキストデータがデバイスの最後の同期以降に他のデバイスから受信されない（及び１次デルタ言語モデルが空である）場合に、デルタ言語モデルをデバイスに送信する必要はない。この場合に、バックアップデルタ言語モデルが消去される。
【０２００】
一部の実施形態において、機構は、デバイスに到達したと確認されたデータを表す各デバイスに関連付けられた更に別のパラメータＣを含むことができる。すなわち、各同期後に、Ｃは、デバイスから送信された受信されたテキストパラメータＲに等しく設定される。エラーが送信中に起こった（及び従ってＲがパラメータＳに等しくない）場合に、それまでに成功した送信が起こらなかったためにＲが更新されないので、その後の同期中に機構によって受信されたパラメータＲをパラメータＣに等しく設定しなければならない。ＲがＳ又はＣのいずれかに等しくない場合に、予想されない深刻な失敗が起こっており、デバイスは、その動的言語モデルを消去し、これを機構で格納された累積言語モデルで置換し、デバイスが他のデバイスに正しく同期されていることを保証する必要がある。これは、デバイスが累積モデルを要求することができるように（例えば、パラメータＲを指定しないことにより）エラーをデバイスに信号伝達する機構を通して、又はこれに代えて、累積モデルがデルタモデルの代わりにデバイスにダウンロードされ、デバイスがその動的言語モデルに融合するのではなくそれを置換するように信号伝達される機構を導入することによって可能にすることができるであろう。
【０２０１】
固有の識別子は、デバイスから機構に送信されるテキストデータの各セットに関連付けられ、デルタ言語モデルに関連付けられた識別子Ｉは、言語モデル内に関わっているテキストデータの固有の識別子から発生され、テキスト入力の履歴を提供する（例えば、固有の識別子Ｉは、テキストデータのセットに関連付けられた固有の識別子のストリングである）。識別子Ｉは、デルタ言語モデルに組み込まれる最新のテキストデータに関連付けられた固有の識別子に等しくすることができる。テキストデータの識別子は、機構を用いて発生されることが好ましい。これに代えて、テキストデータの識別子は、デバイスによって発生されて機構に送信することができる。好ましい実施形態において、テキストデータの識別子は、タイムスタンプから発生される。これに代えて、テキストデータの識別子は、タイムスタンプ、連続した整数、ランダムな整数、又はデバイス識別子の１つ又はそれよりも多くから発生することができる。言語モデルなし（例えば、「−」）又は空言語モデル（例えば、「０」）を示すために標準的な識別子を使用することができる。
【０２０２】
固有の識別子をデバイスから送信されたテキストデータの各セットに関連付けることは、複数のデルタ言語モデルの融合を可能にする（例えば、同じユーザに属する２つの異なるユーザアカウントを融合する場合）。固有の識別子が連続的である場合に（例えば、タイプスタンプを使用して）、これらは、ユーザ入力履歴の順序を識別し、従って、言語モデルをどのように融合しなければならないかを決定する（例えば、プリファレンスをより新しいデータに与える）ために使用することができる。
【０２０３】
一部の実施形態において、他のデバイスから機構によって受信されたテキストデータをデルタ言語モデルの代わりに格納することができる。必要なデルタ言語モデルは、同期中にこのデータから発生させることができる。例えば、テキストデータがデバイスデルタ言語モデルの形態である実施形態において、機構は、デバイスデルタ言語モデルを格納することができる。機構は、関連のあるデバイスデルタ言語モデルを融合し、同期するデバイスに固有のデルタ言語モデルを発生させることができ、及び／又は同期中にデバイスデルタ言語モデルを融合することによって累積言語モデルを発生させることができる。
【０２０４】
一部の実施形態において、バックアップデルタ言語モデルは、他のデバイスのその後の同期と共に更新されない場合がある。この場合に、バックアップデルタ言語モデルは、関連付けられたデバイスの最後の同期の前に他のデバイスから機構に送信されたテキストデータだけを含む。１次デルタ言語モデルは、従来通り、関連付けられたデバイスの最後の同期以降に他のデバイスから機構に送信されたテキストデータを含む。従って、送信エラーがあり、かつバックアップデルタ言語モデルが要求される場合に、１次及びバックアップデルタ言語モデルの両方からのデータをデバイスに送信すべきである。これは、デバイスに送信する前に、別々に送信することができる２つのデルタ言語モデルを融合することによって達成することができる。
【０２０５】
好ましい実施形態において、デバイスの同期は、デバイスによって開始され、かつ要求−応答ベースで進行する。この場合に、デバイスから機構へのテキストデータの送信におけるエラーの場合にエラー軽減を提供する必要はなく、これはこの送信におけるエラーが、同期中の機構からの応答（又はその欠如）によってデバイスに伝わるからである。デバイスは、要求（テキストデータを含む）によって同期を開始することができ、デルタ言語モデルがサーバによって応答でデバイスに戻される。従って、要求が成功した（及びテキストデータがエラーなしに転送された）場合に、機構が応答する。次に、デバイスは、機構が安全に受信されたことを知った後にテキストデータを消去することができる。機構が、予想したように応答しなかった場合に、デバイスは、新しい同期要求で再度テキストデータを転送することができる。
【０２０６】
一部の実施形態において、デバイスは、データの受信直後にデルタ言語モデルの受信の確認を送信することができる。この場合に、機構は、受信が確認された場合にそのデバイスに固有のデルタ言語モデルを消去する。受信が確認されなかった場合に、デルタ言語モデルは消去されない。この受信確認は、上述したように１次及びバックアップデルタ言語モデルを伴うエラー軽減処理に対する必要性を否定する。
【０２０７】
しかし、一部の実施形態において、デバイスから機構へのテキストデータの転送のためのエラー軽減処理を有することが有利になる。これは、同期がサーバによって開始されて要求−応答ベースで進行する場合又は非同期通信が存在する場合とすることができる。この場合に、上述したものに実質的に類似のエラー軽減処理を実施することができる。この場合に、デバイスは、テキストデータの２つのセット、すなわち、テキストデータの１つの１次セット及びテキストデータの１つのバックアップセットを格納する。各同期では、送信されたテキストデータに関連付けられた識別子は、デバイスによって格納することができ、かつテキストデータと共に機構に送信することができる。機構がその後の同期で適合性識別子を戻す場合に、１次テキストデータ（最後の同期以降に収集されたテキストデータを含む）が機構に送信される。機構から受信された識別子が格納された識別子に適合しない場合に、バックアップテキストデータ（機構によって受信されたと確認された最後の送信以降に収集された全てのテキストデータを含む）は、機構に送信される。このようなエラー軽減システムは、デルタ言語モデルに関して上述したエラー軽減システムの詳細のいずれをも必要な変更を加えて含むことができる。
【０２０８】
以上の説明から明らかなように、本発明はまた、複数の動的言語モデルを同期する方法を提供する。方法は、テキストデータを同期のための機構で受信する段階と、機構を用いてテキストデータを少なくとも１つの言語モデルに組み込む段階と、この少なくとも１つの言語モデルを機構とデバイスを同期するために提供する段階とを含む。１つの方法は、複数のデバイスにユーザによって入力されたテキストを同期のための機構で受信する段階を含み、各デバイスは、動的言語モデルを含む。本方法は、機構を用いてテキストに対して少なくとも１つの言語モデルを訓練する段階と、この少なくとも１つの言語モデルを機構とデバイスを同期するために提供する段階とを更に含む。別の方法は、デバイスにユーザによって入力されたテキストに対して訓練されたデバイスデルタ言語モデルを同期機構で受信する段階を含む。この方法は、更に、機構を用いてデバイスデルタ言語モデルを少なくとも１つの言語モデルに融合する段階と、この少なくとも１つの言語モデルを機構とデバイスを同期するために提供する段階とを含む。本方法の更に別の態様は、図３−９の以上の説明から容易に明らかであろう。
【０２０９】
この説明は単に一例であり、特許請求の範囲に定めるような本発明の範囲から逸脱することなく、説明した実施形態に変更及び修正を行うことができることは認められるであろう。
【符号の説明】
【０２１０】
１０１  動的言語モデル
１１１  デバイスデルタ言語モデル
２０１  デルタ言語モデル
３００  累積言語モデル
５００  同期のための機構
【図１】
0006408461.tif 000004
【図２】
0006408461.tif 000005
【図３ａ】
0006408461.tif 000006
【図３ｂ】
0006408461.tif 000007
【図３ｃ】
0006408461.tif 000008
【図４ａ】
0006408461.tif 000009
【図４ｂ】
0006408461.tif 000010
【図４ｃ】
0006408461.tif 000011
【図５】
0006408461.tif 000012
【図６】
0006408461.tif 000013
【図７】
0006408461.tif 000014
【図８】
0006408461.tif 000015
【図９】
0006408461.tif 000016
【図１０】
0006408461.tif 000017
【図１１】
0006408461.tif 000018
【図１２】
0006408461.tif 000019