(57)【特許請求の範囲】
【請求項１】
ユーザ入力を取得するステップと、
前記ユーザ入力に従って候補文章リストを生成するステップと、
前記候補文章リスト内の各候補文章に対して、
普遍的言語モデルに従って前記候補文章における各単語の標準条件確率をそれぞれ計算するステップと、
予め構成したキャッシュ・ベースの言語モデリング・ポリシ、前記ユーザ入力、および予めキャッシュしたユーザ入力に従って前記候補文章における各単語のキャッシュ条件確率をそれぞれ計算するステップと、
前記標準条件確率と前記キャッシュ条件確率に従って各単語の混合条件確率を計算するステップと、
前記混合条件確率に従って前記候補文章のオンスクリーン確率を取得するステップと、
候補文章を、前記候補文章のオンスクリーン確率に従って前記候補文章リストにおいてソートするステップと、
ソートした前記候補文章リストを出力するステップと、
を含み、
前記候補文章における各単語の前記キャッシュ条件確率をそれぞれ計算するステップは、
前記予めキャッシュしたユーザ入力において第１の単語列が発生する回数ｋｉを取得するステップであって、前記第１の単語列は前記候補文章から取得されるとともに、前記候補文章におけるｉ番目の単語と前記ｉ番目の単語の前の予め定義した定数ｎ個の連続する単語とを含む、ステップと、
前記予めキャッシュしたユーザ入力において第２の単語列が発生する回数ｋｉ-1を取得するステップであって、前記第２の単語列は前記候補文章から取得されるとともに、前記ｉ番目の単語の前の前記ｎ個の連続する単語を含む、ステップと、
前記ｉ番目の単語の時間関数値を取得するステップであって、前記時間関数値は、前記ｉ番目の単語が前記予めキャッシュしたユーザ入力のために使用されるキャッシュ領域に入る時刻に関する、ステップと、
ｋｉ−１に対するｋｉの比を計算するステップであって、前記比に前記ｉ番目の単語の前記時間関数値を乗じて前記候補文章における前記ｉ番目の単語の前記キャッシュ条件確率を取得するステップと、
をさらに含む、
テキスト入力方法。
【請求項２】
前記予めキャッシュしたユーザ入力はユーザ識別子に対応し、
前記ユーザ識別子は、ユーザが入力ソフトウェアに登録したアカウント、または前記ユーザに割り当てられた識別番号、または、前記ユーザが使用する装置に関連するＩＰアドレスもしくはＭＡＣアドレスである、請求項１に記載のテキスト入力方法。
【請求項３】
ソートされた前記候補文章リストにおいて、最大オンスクリーン確率を有する文章が選択および出力され、前記最大オンスクリーン確率を有する前記文章が前記予めキャッシュしたユーザ入力においてキャッシュされ、
前記普遍的言語モデルに従って前記候補文章における各単語の前記標準条件確率をそれぞれ計算するステップは、
予め生成した標準Ｎｇｒａｍ言語モデルに従って前記候補文章における各単語の前記標準条件確率をそれぞれ計算するステップを含む、請求項１に記載のテキスト入力方法。
【請求項４】
前記時間関数値は、前記ｉ番目の単語が前記キャッシュ領域に入り単語がユーザにより現在入力されるまでの時間間隔により予め構成した定数を除することによって取得された結果である、請求項３に記載のテキスト入力方法。
【請求項５】
前記候補文章における前記ｉ番目の単語の前記標準条件確率を計算するステップは、
第３の単語列が前記標準Ｎｇｒａｍ言語モデルのトレーニング材料において発生する回数ｋ’ｉを取得するステップであって、前記第３の単語列は前記候補文章から取得されるとともに、前記ｉ番目の単語と前記ｉ番目の単語の前の予め構成した定数ｎ個の連続する単語とを含む、ステップと、
第４の単語列が前記標準Ｎｇｒａｍ言語モデルの前記トレーニング材料において発生する回数ｋ’ｉ−１を取得するステップであって、前記第４の単語列は前記候補文章から取得されるとともに、前記ｉ番目の単語の前の前記ｎ個の連続する単語を含む、ステップと、
ｋ’ｉ−１に対するｋ’ｉの比を計算し、当該比を前記候補文章の前記ｉ番目の単語の前記標準条件確率とするステップと、
を含む、請求項３に記載のテキスト入力方法。
【請求項６】
前記候補文章におけるｉ番目の単語の前記混合条件確率を計算するステップは、
Ａ１：０と１の間の補間パラメータを決定するステップと、
Ａ２：前記ｉ番目の単語の前記標準条件確率の補間の積を決定するステップと、
Ａ３：１と前記補間パラメータと前記ｉ番目の単語の前記キャッシュ条件確率の間の差分の積を計算するステップと、
Ａ４：Ａ２とＡ３で取得した前記積の和を計算し、前記和を前記ｉ番目の単語の前記混合条件確率とするステップと、
を含む、請求項１に記載のテキスト入力方法。
【請求項７】
前記候補文章の前記オンスクリーン確率を取得するステップは、
前記候補文章に含まれる各単語の前記混合条件確率をそれぞれ取得するステップと、
各単語の前記混合条件確率を乗じて、前記候補文章の前記オンスクリーン確率を取得するステップと、
を含む、請求項６に記載の方法。
【請求項８】
キャッシュされた前記ユーザ入力は待ち行列データ構造を使用し、前記ｉ番目の単語の時間間隔の値は、キャッシュ待ち行列における前記ｉ番目の単語の位置である、請求項４に記載のテキスト入力方法。
【請求項９】
最大オンスクリーン確率を有する文章を選択して出力した後、かつ、前記文章をキャッシュする前に、出力された前記文章を調整するステップをさらに含む、請求項３乃至８の何れか１項に記載のテキスト入力方法。
【請求項１０】
前記ユーザ入力は、入力方法、手書き入力、または音声認識入力を介して入力された内容を含む、請求項１に記載のテキスト入力方法。
【請求項１１】
前記予めキャッシュしたユーザ入力が空であるときには、前記候補文章における各単語の前記キャッシュ条件確率は前記単語の前記標準条件確率に等しい、請求項１に記載のテキスト入力方法。
【請求項１２】
普遍的言語モデル・モジュール、キャッシュ・モジュール、キャッシュ・ベースの言語モデリング・モジュールおよび混合モデル・モジュールを備え、
前記普遍的言語モデル・モジュールはユーザ入力を受信し、前記ユーザ入力に従って候補文章リストを生成し、各候補文章における各単語の標準条件確率をそれぞれ計算し、前記標準条件確率を前記混合モデル・モジュールに出力し、
前記キャッシュ・モジュールは、前記混合モデル・モジュールにより出力された文章をキャッシュし、
前記キャッシュ・ベースの言語モデリング・モジュールは、各候補文章における各単語のキャッシュ条件確率を、予め構成したキャッシュ・ベースの言語モデリング・ポリシ、前記キャッシュ・モジュールにキャッシュした前記ユーザ入力および前記文章にしたがってそれぞれ計算し、前記キャッシュ条件確率を前記混合モデル・モジュールに出力し、
前記混合モデル・モジュールは、前記標準条件確率と前記キャッシュ条件確率に従って各単語の混合条件確率を計算し、前記混合条件確率に従って各候補文章の文章確率を計算し、最大文章確率を有する文章を選択および出力し、
前記キャッシュ・ベースの言語モデリング・モジュールは、第１の単語列頻度計数ユニット、第２の単語列頻度計数ユニット、時間関数値取得ユニットおよびキャッシュ条件確率計算ユニットを備え、
前記第１の単語列頻度計数ユニットは、前記キャッシュ・モジュールから、キャッシュしたトレーニング材料において第１の単語列が発生する回数ｋｉを取得し、ｋｉを前記キャッシュ条件確率計算ユニットに出力し、前記第１の単語列は前記候補文章から取得されるとともに、前記候補文章におけるｉ番目の単語と前記ｉ番目の単語の前の予め定義した定数ｎ個の連続する単語とを含み、
前記第２の単語列頻度計数ユニットは、前記キャッシュ・モジュールから、前記キャッシュしたトレーニング材料において第２の単語列が発生する回数ｋｉ-1を取得し、ｋｉ-1を前記キャッシュ条件確率計算ユニットに出力し、前記第２の単語列は前記候補文章から取得されるとともに、前記ｉ番目の単語の前の前記ｎ個の連続する単語を含み、
前記時間関数値取得ユニットは、前記ｉ番目の単語の時間関数値を取得し、前記値を前記キャッシュ条件確率計算ユニットに出力し、前記時間関数値は、前記ｉ番目の単語が前記キャッシュ・モジュールに入る時刻に関し、
前記キャッシュ条件確率計算ユニットは、ｋｉ−１に対するｋｉの比を計算し、前記比に前記ｉ番目の単語の前記時間関数値を乗じて前記候補文章における前記ｉ番目の単語の前記キャッシュ条件確率を取得する
テキスト処理装置。
【請求項１３】
前記普遍的言語モデルは標準Ｎｇｒａｍ言語モデル・モジュールであり、前記標準Ｎｇｒａｍ言語モデル・モジュールは、第３の単語列頻度計数ユニット、第４の単語列頻度計数ユニットおよび標準条件確率計算ユニットを備え、
前記第３の単語列頻度計数ユニットは、第３の単語列が前記標準Ｎｇｒａｍ言語モデルのトレーニング材料において発生する回数ｋ’ｉを取得し、ｋ’ｉを前記標準条件確率計算ユニットに出力し、前記第３の単語列は前記候補文章から取得されるとともに、前記ｉ番目の単語と前記ｉ番目の単語の前の予め構成された定数ｎ個の連続する単語を含み、
前記第４の単語列頻度計数ユニットは、第４の単語列が前記標準Ｎｇｒａｍ言語モデルの前記トレーニング材料において発生する回数ｋ’ｉ−１を取得し、ｋ’ｉ−１を前記標準条件確率計算ユニットに出力し、前記第４の単語列は前記候補文章から取得されるとともに、前記ｉ番目の単語の前の前記ｎ個の連続する単語を含み、
標準確率計算ユニットが、ｋ’ｉ−１に対するｋ’ｉの比を計算し、当該比を前記候補文章における前記ｉ番目の単語の前記標準条件確率とする、
請求項１２に記載のテキスト処理装置。
【請求項１４】
前記混合モデル・モジュールは、補間パラメータ格納ユニット、第１の乗算ユニット、第２の乗算ユニット、混合条件確率計算ユニット、文章確率計算ユニットおよび出力文章選択ユニットを備え、
前記補間パラメータ格納ユニットは、値が前もって０と１の間で構成された補間パラメータを格納し、
前記第１の乗算ユニットは、前記補間パラメータ格納ユニットに格納された前記補間パラメータと前記ｉ番目の単語の前記標準条件確率の積を計算して、前記積を前記混合条件確率計算ユニットに出力し、
前記第２の乗算ユニットは、１と前記補間パラメータの差分を計算して、前記差分と前記ｉ番目の単語の前記キャッシュ条件確率の積を計算し、前記積を前記混合条件確率計算ユニットに出力し、
前記混合条件確率計算ユニットは、前記ｉ番目の単語に関する積を加算し、和を前記ｉ番目の単語の前記混合条件確率とし、
前記文章確率計算ユニットは、各単語の前記混合条件確率の積を計算して、出力文章の前記文章確率を取得し、
前記出力文章選択ユニットは、前記文章確率計算ユニットによって計算した最大文章確率を選択して、前記最大文章確率に対応する前記出力文章を出力する、
請求項１３に記載のテキスト処理装置。
【請求項１５】
前記時間関数値は、前記ｉ番目の単語が前記キャッシュ・モジュールに入り単語がユーザにより現在入力されるまでの時間間隔により予め構成した定数を除することによって取得された結果である、請求項１２に記載のテキスト処理装置。
【請求項１６】
前記キャッシュ・モジュールは、待ち行列データ構造を使用するようにさらに構成され、前記ｉ番目の単語の前記時間間隔の前記値は、キャッシュ待ち行列における前記ｉ番目の単語の位置である、請求項１５に記載のテキスト処理装置。
【請求項１７】
前記混合モデル・モジュールが前記最大文章確率を有する前記文章を出力した後、ユーザが前記文章を調整するとき、前記キャッシュ・モジュールは、前記ユーザが調整した前記文章をキャッシュするようにさらに構成される、請求項１２に記載のテキスト処理装置。
【請求項１８】
前記ユーザ入力は、入力方法、手書き入力、または音声認識入力を介して入力された内容を含む、請求項１２に記載のテキスト処理装置。
【請求項１９】
前記キャッシュ・モジュールが空であるときには、前記候補文章における各単語の前記キャッシュ条件確率は前記単語の前記標準条件確率に等しい、請求項１２に記載のテキスト処理装置。
【請求項２０】
前記キャッシュ・モジュールはユーザ識別子に対応し、
前記ユーザ識別子はユーザが入力ソフトウェアに登録したアカウント、または前記ユーザに割り当てられた識別番号、または、前記ユーザが使用する装置に関連するＩＰアドレスもしくはＭＡＣアドレスである、請求項１２に記載のテキスト処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキスト入力技術に関し、特に、テキスト入力方法、装置、およびシステムに関する。
【背景技術】
【０００２】
入力ソフトウェアは、一種の頻繁に使用される単語の入力システムである。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従来のテキスト入力方法は、通常、入力方法を構築するための普遍的言語モデルを中心的に使用する。普遍的言語モデルは、大量のトレーニング材料を分析することによって得られる。当該トレーニング材料は通常、インターネットから自動的に取得される。当該トレーニング材料は一般に大部分のユーザの入力要件を表す。即ち、普遍的言語モデルは、大部分のユーザの共通の単語選択習慣に基づいて生成される。しかし、入力ソフトウェアを用いて単語を入力するとき、ユーザは通常、当該ユーザが日常的に使用する単語を高速に取得することを望む。単語を選択するとき、様々なユーザが、当該ユーザの身分、関心、習慣、および当該ユーザが普段使用している文字フィールドに従って１番目に順位付けられる、様々な種類の候補文章を望むことがある。例えば、科学研究者と銀行員は通常、単語を入力するときに自身の分野の専門用語が１番目に順位付けられることを望む。別の例として、北東の四川省出身の人は自身の方言の単語が候補文章リストにおいて１番目に順位付けされることを望む。普遍的言語モデルを使用する従来の入力方法は、様々なユーザの入力要求を満たすことはできない。したがって、入力正解率は低く、ユーザの入力速度が影響を受ける。
【０００４】
さらに、標準Ｎｇｒａｍ言語モデルのモデリング方法には欠陥がある。他方、標準Ｎｇｒａｍ言語モデルはシンプルなモデルである。しかし、実際の適用では、ユーザの中国語入力、手書き認識、音声認識要求は様々であり無限である。例えば、ユーザは、中国語入力、手書き認識および音声認識のような気まぐれで無限の要求を有しうる。例えば、ユーザは、テクニカル・レポートを書くときもあればインターネットでチャットするときもある。これらの２つの状況では、ユーザの中国語入力要求は異なる。別の例では、様々な年齢のユーザが様々な生活体験に起因して様々な会話習慣を有することがある。これらのユーザが日常的に入力する内容が、中国語入力に反映され、大きな違いをもたらす。したがって、シンプルなモデルでは、様々な年齢のユーザが中国語を入力するための様々な要求と異なる状況下における１人のユーザの様々な要求とを満たすことはできない。様々な要求に対して同じモデルを使用すると、ユーザの入力の認識精度が影響を受ける。他方、標準Ｎｇｒａｍ言語モデルには自己学習機構がない。標準Ｎｇｒａｍ言語モデルにおいてパラメータが決定されると、当該パラメータをユーザの入力習慣に従ってインテリジェントに調節することはできない。したがって、ユーザの入力を認識する正解率は比較的低い。
【課題を解決するための手段】
【０００５】
本発明の１例では、入力速度を増大させるためのテキスト入力方法を提供する。本発明の１例では、入力されたテキストを認識する正解率を増大させるためのテキスト入力装置を提供する。本発明の１例では、入力速度を増大させるためのテキスト入力システムを提供する。
【０００６】
１例によれば、テキスト入力方法は、ユーザ識別子を取得し、当該ユーザ識別子に従って当該ユーザ識別子に対応するユーザ言語モジュールを発見し、ユーザ入力を取得し、当該ユーザ入力に従って候補文章リストを生成し、普遍的言語モデルを取得し、当該ユーザ言語モデルと当該普遍的言語モデルに従って当該候補文章リスト内の各候補文章のオンスクリーン確率を計算するステップ、または、普遍的言語モデルに従ってユーザ入力における各単語の標準条件確率をそれぞれ計算し、予め構成したキャッシュ・ベースの言語モデリング・ポリシ、当該ユーザ入力、および予めキャッシュしたユーザ入力に従って当該ユーザ入力における各単語のキャッシュ条件確率をそれぞれ計算するステップと、当該標準条件確率と当該キャッシュ条件確率に従って各単語の混合条件確率を計算し、当該混合条件確率に従って各候補文章のオンスクリーン確率を取得するステップと、候補文章を、当該候補文章のオンスクリーン確率に従って当該候補文章リストにおいてソートするステップと、ソートした当該候補文章リストを出力するステップと、を含む。
【０００７】
別の例によれば、テキスト入力方法は、クライアントにより、ユーザ識別子を取得し、当該ユーザ識別子に従って当該ユーザ識別子に対応するユーザ言語モデルを発見するステップと、当該クライアントにより、ユーザ入力を取得し、当該ユーザ入力に従って候補文章リストを生成するサーバに当該ユーザ入力をアップロードするステップと、当該サーバにより、普遍的言語モデルを取得し、当該ユーザ言語モデルと当該普遍的言語モデルに従って当該候補文章リスト内の各候補文章のオンスクリーン確率を計算するステップと、当該サーバにより、当該候補文章リスト内の当該候補文章を、当該候補文章のオンスクリーン確率に従ってソートし、ソートした当該候補文章リストを当該クライアントに発行するステップと、クライアントにより、ソートした候補文章リストを受信し、ソートした候補文章リストを出力するステップと、を含む。
【０００８】
さらに別の例によれば、テキスト入力方法は、クライアントにより、ユーザ識別子を取得し、当該ユーザ識別子に従って当該ユーザ識別子に対応するユーザ言語モデルを発見するステップと、当該クライアントにより、ユーザ入力を取得し、当該ユーザ入力に従って候補文章リストを生成するステップと、当該クライアントにより、普遍的言語モデルを取得し、当該ユーザ言語モデルと当該普遍的言語モデルに従って当該候補文章リスト内の各候補文章のオンスクリーン確率を計算するステップと、クライアントにより、当該候補文章リスト内の当該候補文章を当該候補文章のオンスクリーン確率に従ってソートし、ソートした当該候補文章リストを出力するステップと、を含む。
【０００９】
１例によれば、テキスト入力システムは、ユーザ識別子を取得し、当該ユーザ識別子に従って当該ユーザ識別子に対応するユーザ言語モデルを発見するための検索モジュールと、ユーザ入力を取得し、当該ユーザ入力に従って候補文章リストを生成するための候補文章リスト生成モジュールと、当該候補文章リスト内の各候補文章のオンスクリーン確率を当該ユーザ言語モデルと普遍的言語モデルに従って計算するための確率計算モジュールと、当該候補文章リスト内の当該候補文章を当該候補文章のオンスクリーン確率に従ってソートするためのソート・モジュールと、ソートされた当該候補文章リストを出力するための出力モジュールと、を備える。
【００１０】
１例によれば、テキスト処理システムは、クライアントとサーバを備え、当該クライアントは、ユーザ識別子を取得し、当該ユーザ識別子に従って当該ユーザ識別子に対応するユーザ言語モデルを発見し、ユーザ入力を取得し、当該ユーザ入力を当該サーバにアップロードし、ソートされた候補文章リストを当該サーバから受信して、ソートされた当該候補文章リストを出力し、当該サーバは、当該ユーザ入力に従って候補文章リストを生成し、普遍的言語モデルを取得し、当該候補文章リスト内の各候補文章のオンスクリーン確率を当該ユーザ言語モデルと普遍的言語モデルに従って計算し、当該候補文章リスト内の当該候補文章を当該候補文章のオンスクリーン確率に従ってソートし、ソートした当該候補文章リストを当該クライアントに発行する。
【００１１】
１例によれば、テキスト処理装置は、普遍的言語モデル・モジュール、キャッシュ・モジュール、キャッシュ・ベースの言語モデリング・モジュールおよび混合モデル・モジュールを備え、当該普遍的言語モデル・モジュールはユーザ入力を受信し、当該ユーザ入力における各単語の標準条件確率をそれぞれ計算し、当該標準条件確率を当該混合モデル・モジュールに出力し、当該キャッシュ・モジュールは、当該混合モデル・モジュールにより出力された文章をキャッシュし、当該キャッシュ・ベースの言語モデリング・モジュールは、当該ユーザ入力における各単語のキャッシュ条件確率を、予め構成したキャッシュ・ベースの言語モデリング・ポリシ、当該ユーザ入力および当該キャッシュ・モジュールにキャッシュした文章にしたがってそれぞれ計算し、当該キャッシュ条件確率を当該混合モデル・モジュールに出力し、当該混合モデル・モジュールは、当該標準条件確率と当該キャッシュ条件確率に従って各単語の混合条件確率を計算し、当該混合条件確率に従って各出力文章の文章確率を計算し、最大文章確率の出力文章を選択して、当該最大文章確率の文章を出力する。
【００１２】
上述のテキスト入力方法、装置およびシステムは、ユーザ言語モデルと普遍的言語モデルを組み合わせる。ユーザの言語はユーザ入力に従うトレーニングにより取得されるので、候補文章リストにおいて１番目に順位付けられるソートされた候補文章はユーザの会話習慣に良好に従う。したがって、ユーザは必要な候補文章をより迅速に取得することができる。テキスト入力の正解率が高まり、入力速度も高まる。
【００１３】
本発明の背景技術または発明を実施するための形態で用いる図面を以下で簡単に説明して、本発明の背景技術または例における技術的解決策をより明確にする。以下の図面は幾つかの例にすぎない。当業者は、創造的な作業なしに以下に従って他の図面を得ることができるはずである。
【図面の簡単な説明】
【００１４】
【図１】本発明の１例に従うテキスト入力方法を示す流れ図である。
【図２】本発明の別の例に従うテキスト入力方法を示す流れ図である。
【図３】さらに本発明の別の例に従うテキスト入力方法を示す流れ図である。
【図４】本発明の１例に従うテキスト入力システムを示す略図である。
【図５】本発明の別の例に従うテキスト入力システムを示す略図である。
【図６】本発明の１例に従う言語モデリング方法を示す流れ図である。
【図７】本発明の別の例に従う言語モデリング方法を示す流れ図である。
【図８】本発明の１例に従う言語モデリング装置を示す略図である。
【発明を実施するための形態】
【００１５】
１例では、図１に示すように、テキスト入力方法は以下を含む。
【００１６】
ブロックＳ１０２で、ユーザ識別子を取得し、当該ユーザ識別子に対応するユーザ言語モデルを取得する。ユーザ識別子はユーザを一意に識別するものである。ユーザ識別子は、ユーザが入力ソフトウェアに登録したアカウント、または、ユーザに割り当てられた識別番号、または、ユーザが使用する装置に関連付けられたＩＰアドレス、ＭＡＣアドレスであってもよい。
【００１７】
１例では、ブロックＳ１０２の前に、当該ユーザ識別子に対応するユーザ言語モデルを生成する必要がある。ユーザが単語を入力するたびに、ユーザ言語モデルが、ユーザが入力した単語の情報に従って更新される。ユーザ言語モデルはユーザが入力した単語に従ってトレーニングされるので、当該ユーザ言語モデルはユーザの言語習慣に従う。ユーザ言語モデルをトレーニングにより取得した後、当該ユーザ言語モデルをユーザのローカル記憶域に格納するか、または、サーバにアップロードして記憶してもよい。
【００１８】
ブロックＳ１０４で、ユーザの入力を取得し、当該ユーザの入力に従って候補文章リストを生成する。当該ユーザの入力は、音声入力、手書き文字、光学文字または文字列であってもよい。従来式のテキスト入力方法を使用して、ユーザの入力にマッチする候補文章を発見し、候補文章リストを生成してもよい。
【００１９】
ブロックＳ１０６では、普遍的言語モデルを取得し、当該候補文章リスト内の各候補文章のオンスクリーン確率をユーザ言語モデルと普遍的言語モデルに従って計算する。普遍的言語モデルは、例えば、インターネット上で多数のユーザが入力した文章から取得した大量のトレーニング材料の統計分析により取得した従来の統計的言語モデルであってもよい。当該ユーザ言語モデルは、ユーザ自身に対応する。異なるユーザに対応するユーザ言語モデルが異なってもよい。普遍的言語モデルをサーバまたはユーザ装置に格納してもよい。
【００２０】
ユーザ言語モデルは、ユーザの入力に従うトレーニングにより取得される。入力ソフトウェアを用いた第１の入力の間に、ユーザ言語モデルが更新されていないので、候補文章リスト内の各候補文章のオンスクリーン確率を普遍的言語モデルに従って計算できることに留意されたい。当該方法と原理は、普遍的言語モデルを用いた従来の入力方法と同様でありここでは説明しない。
【００２１】
ユーザが入力ソフトウェアを用いてテキストを入力するたびに、ユーザが入力した単語が記録される。ユーザ言語モデルは、ユーザが入力した単語の情報に従って更新される。ユーザ言語モデルはユーザ識別子と関連付けられて格納される。次に単語が入力されたとき、候補単語リスト内の各候補文章のオンスクリーン確率は、ユーザ言語モデルと普遍的言語モデルの両方に従って計算することができる。
【００２２】
１例では、普遍的言語モデルとユーザ言語モデルの両方がユーザ装置に格納される。したがって、普遍的言語モデルとユーザ言語モジュールが、候補文章リスト内の各候補文章のオンスクリーン確率を計算するためにユーザ装置のローカル記憶域から取得される。本方法では、ユーザ装置は要求をサーバに送信する必要はない。この方式を、ローカル入力方法と称する。
【００２３】
別の例では、普遍的言語モデルとユーザ言語モデルが、普遍的言語モデルとユーザ言語モデルを取得して候補文章リスト内の各候補文章のオンスクリーン確率を計算するサーバに格納される。このように、入力方法の処理はサーバにより実装される。この方式を、クラウド入力方法と称する。
【００２４】
ブロックＳ１０８では、候補文章リスト内の候補文章がそのオンスクリーン確率に従ってソートされる。本例では、候補文章リスト内の候補文章はそのオンスクリーン確率に従って昇順にソートされる。最上位の単語は、ユーザの言語習慣に従い、ユーザが望むものであろう。したがって、ユーザは必要な候補文章をより迅速に発見でき、テキスト入力精度とテキスト入力速度が高まる。
【００２５】
ブロックＳ１１０では、ソートされた候補文章リストを出力する。ユーザは、必要な候補文章を候補文章リストから選択してもよい。選択された候補文章は、入力ソフトウェアから、様々な種類のアプリケーション・プログラム、例えば、テキスト・ドキュメント、ノートブック、プレゼンテーション・ドキュメント等に出力される。
【００２６】
１例では、ブロックＳ１１０で、最大オンスクリーン確率の候補文章を出力する。最大オンスクリーン確率の候補文章は出力リストの１番目に順位付けられる。ユーザは、最大オンスクリーン確率の候補文章を迅速に選択することができる。
【００２７】
別の例では、ブロックＳ１１０で、ローカル入力方法で取得した最大オンスクリーン確率の第１の候補文章を出力し、クラウド入力方法で取得した最大オンスクリーン確率の第２の候補文章も出力される。当該第１の候補文章と第２の候補文章は出力リストに出力される。当該第１の候補文章が１番目に順位付けられ、第２の候補文章が第１の候補文章に続く。したがって、ユーザは、上述の２つの入力方法で取得した最大オンスクリーン確率の候補文章のうち何れか１つを迅速に選択することができる。
【００２８】
１例では、上述のテキスト入力方法はさらに、ユーザ識別子に対応するユーザ言語モデルを生成するステップと、ユーザが単語を入力した後に、ユーザが入力した単語の情報に従ってユーザ言語モデルを更新するステップを含む。特に、ユーザ識別子に対応するユーザ単語辞書が生成される。ユーザが単語を入力するたびに、ユーザが入力した単語の単語情報と頻度情報が単語辞書に追加される。ユーザ言語モデルが更新されたとき、単語情報と頻度情報が単語辞書から取得される。単語が分割され、分割された単語に対して単語頻度処理動作が実施される。ユーザ言語モデルが、分割された単語と処理された単語頻度とに従って更新される。単語頻度は、単語がユーザ辞書に出現する回数を示す。
【００２９】
１例では、同一の言語モデルをユーザ言語モデルおよび普遍的言語モデルに対して使用してもよい。例えば、Ｎｇｒａｍ言語モデルを使用してもよい。しかし、ユーザ言語モデルと普遍的言語モデルのトレーニング集合は異なる。ユーザ言語モデルのトレーニング集合は、一意なユーザに対応するユーザ辞書の中の全単語から成る集合である。普遍的言語モデルのトレーニング集合は、多数のユーザが入力した単語の集合である。当該トレーニング集合をインターネットから取得してもよい。ユーザ言語モデルの確率計算式は次式であってもよい。
【００３０】
【数１】
0005926378.tif 000002
【００３１】
ここで、Ｐｕｓｅｒ（Ｓ）はｍ個の単語を含む文章Ｓ＝ｗ１ｗ２・・・ｗｍの確率を示す。文章Ｓは単語ｗ１ｗ２・・・ｗｍを含む。ここで、ｗｉは、ｍ個の単語を含む文章Ｓの中の単語である。例えば、文章「ｈａｖｅ  ｙｏｕ  ｅａｔ  ｔｏｄａｙ」を「ｈａｖｅ／ｙｏｕ／ｅａｔ／ｔｏｄａｙ」に分割してもよい。最大尤度法を使用してＰｕｓｅｒ（ｗｉ｜ｗｉ−ｎ＋１．．．ｗｉ−１）の確率統計値を計算してもよい。計算式を次式で示してもよい。
【００３２】
【数２】
0005926378.tif 000003
【００３３】
ここで、ｃ（ｗｉ−ｎ＋１．．．ｗｉ−１ｗｉ）は単語列ｗｉ−ｎ＋１．．．ｗｉ−１ｗｉがトレーニング集合に出現する回数を示し、ｃ（ｗｉ−ｎ＋１．．．ｗｉ−１）は単語列ｗｉ−ｎ＋１．．．ｗｉ−１がトレーニング集合に出現する回数を示す。当該トレーニング集合は、ユーザ単語辞書内の全単語列から成る集合である。
【００３４】
１例では、ユーザ言語モデルは低級の言語モデル、例えばＵｎｉｇｒａｍ言語モデルを使用してもよい。Ｎｇｒａｍ言語モデルと比較すると、この言語モデルはあまり記憶空間を占有せず、モバイル端末での使用に適合する。本例では、ユーザ言語モデルの確率計算式は以下の通りである。
【００３５】
【数３】
0005926378.tif 000004
【００３６】
ここで、Ｐｕｓｅｒ（Ｓ）はｍ個の単語を含む文章Ｓ＝ｗ１ｗ２・・・ｗｍの確率を示す。
【００３７】
本発明の別の例では、ユーザ言語モデルがＢｉｇｒａｍ言語モデルを使用してもよい。上記の２つの言語モデルと比べると、この言語モデルは、高速なモデル生成速度を有し、クラウド入力方法での使用に適合する。本例では、当該言語モデルに使用される確率計算式は以下の通りである。
【００３８】
【数４】
0005926378.tif 000005
【００３９】
ここで、Ｐｕｓｅｒ（Ｓ）はｍ個の単語を含む文章Ｓ＝ｗｉｗ２・・・ｗｍの確率を示し、Ｐｕｓｅｒ（ｗｉ｜ｗｉ−１）は文章Ｓが２つの単語ｗｉとｗｉ−１に分割されることを示し、Ｐｕｓｅｒ（ｗｉ｜ｗｉ−１）の計算式は以下の通りである。
【００４０】
【数５】
0005926378.tif 000006
【００４１】
ここで、ｃ（ｗｉ−１ｗｉ）は、文章Ｓがトレーニング集合に出現する回数を示し、ｃ（ｗｉ−１）は単語ｗｉ−１がトレーニング集合に出現する回数を示す。
【００４２】
１例では、ユーザ言語モデルと普遍的言語モデルに従う候補文章リスト内の各候補文章のオンスクリーン確率を計算するプロセスでは、ユーザ言語モデルと普遍的言語モデルに線形補間動作を実施して混合モデルを生成し、当該混合モデルに従って候補文章リスト内の各候補文章のオンスクリーン確率を計算する。
【００４３】
本例では、普遍的言語モデルが従来のＮｇｒａｍ言語モデルであってもよい。したがって、ユーザ言語モデルの条件確率が普遍的言語モデルの条件確率と組み合わせられる。混合条件確率が計算される。当該計算式は以下のようであってもよい。
【００４４】
【数６】
0005926378.tif 000007
【００４５】
ここで、Ｐｍｉｘｔｕｒｅ（ｗｉ｜ｗｉ−ｎ＋１．．．ｗｉ−１）は混合条件確率を示し、Ｐ（ｗｉ｜ｗｉ−ｎ＋１．．．ｗｉ−１）は普遍的言語モデルの条件確率を示し、Ｐｕｓｅｒ（ｗｉ｜ｗｉ−ｎ＋１．．．ｗｉ−１）はユーザ言語モデルの条件確率を示し、
【００４６】
【数７】
0005926378.tif 000008
【００４７】
は０と１の間の値を有する補間パラメータを示す。混合条件確率によれば、生成される混合モデルは以下の通りである。
【００４８】
【数８】
0005926378.tif 000009
【００４９】
ここで、Ｐ（Ｓ）はｍ個の単語を含む文章Ｓ＝ｗｉｗ２・・・ｗｍの確率を示す。
【００５０】
候補文章リスト内の候補文章のオンスクリーン確率は、混合モデルにより計算される、候補文章がユーザにより選択される確率である。オンスクリーン確率が高まれば、候補文章が候補文章リストのより上位に順位付けされるようになる。したがって、ユーザは必要な単語をより迅速に発見することができる。テキスト入力速度が高まる。１例では、図２に示すように、テキスト入力方法は以下を含む。
【００５１】
ブロックＳ２０２では、クライアントがユーザ識別子を取得し、当該ユーザ識別子に対応するユーザ言語モデルをサーバから発見する。
【００５２】
ユーザ識別子はユーザを一意に識別するものである。当該ユーザ識別子は、ユーザが入力ソフトウェアに登録したアカウント、または、当該ユーザに割り当てられた識別番号、または、ユーザの装置に関連付けられたＩＰアドレスもしくはＭＡＣアドレスであってもよい。身分認証の後、ユーザが入力ソフトウェアにログインする。クライアントはユーザ識別子を取得し、対応するユーザ言語モデルを発見するサーバに当該ユーザ識別子を送信する。
【００５３】
１例では、当該ユーザ識別子に対応するユーザ言語モデルをサーバで前もって生成する。ユーザが単語を入力するたびに、サーバが、ユーザが入力した単語の情報を取得し、ユーザが入力した単語の情報に従ってユーザ言語モデルを更新する。当該ユーザ識別子に対応するユーザ言語モデルはサーバに格納されているので、サーバ内のユーザ言語モデルをユーザの入力に沿って連続的に更新することができる。したがって、サーバ内のユーザ言語モデルはますます正確になることができる。ユーザが様々な装置で入力ソフトウェアを使用すると、サーバは最新のユーザ言語モデルをユーザ装置に送信する。したがって、ユーザ言語モデルの同期が実現され、ユーザ言語モデルが様々なユーザ装置に適合する。
【００５４】
ブロックＳ２０４では、クライアントがユーザの入力を取得し、当該入力をサーバに送信する。サーバは当該ユーザの入力に従って候補文章リストを生成する。
【００５５】
ユーザの入力が、音声入力、手書き文字、または光学文字もしくは文字列であってもよい。クライアントは当該ユーザ入力をサーバに送信する。サーバは、従来のテキスト入力方法に従って、ユーザ入力にマッチする候補文章を単語辞書から発見して候補文章リストを生成する。テキスト入力方法の処理はサーバにより実装される。この種のテキスト入力方法を、「クラウド入力方法」と称する。
【００５６】
ブロックＳ２０６では、サーバは普遍的言語モデルを取得し、ユーザ言語モデルと普遍的言語モデルに従って候補文章リスト内の各候補文章のオンスクリーン確率を計算する。
【００５７】
普遍的言語モデルが、インターネット上の多数のユーザが入力したテキストから取得した大量の材料を用いたトレーニングから得た、従来の統計的言語モデルであってもよい。ユーザ言語モデルは、一意なユーザに対応する。様々なユーザが様々なユーザ言語モデルに対応する。
【００５８】
ユーザ言語モデルはユーザの入力に従うトレーニングにより取得される。入力ソフトウェアを用いた最初の入力の最中は、ユーザ言語モデルがまだ更新されていないので、候補文章リスト内の各候補文章のオンスクリーン確率を普遍的言語モデルに従って計算してもよいことに留意されたい。当該方法と原理は普遍的言語モデルを用いた従来の入力方法と同様であり、ここでは説明しない。
【００５９】
ユーザが入力ソフトウェアを用いて単語を入力するたびに、ユーザが入力した単語が記録される。当該言語モデルはユーザが入力した単語に従って更新される。ユーザ言語モデルはユーザ識別子と関連付けられて格納される。次に単語が入力されたとき、候補単語リスト内の各候補文章のオンスクリーン確率を、ユーザ言語モデルと普遍的言語モデルの両方に従って計算することができる。
【００６０】
１例では、上述のテキスト入力方法がさらに、ユーザ識別子に対応するユーザ言語モデルを生成し、ユーザが単語を入力した後に、ユーザが入力した単語の情報に従ってユーザ言語モデルを更新するステップを含む。特に、ユーザ識別子に対応するユーザ単語辞書が生成される。ユーザが単語を入力するたびに、ユーザが入力した単語の単語情報と頻度情報が単語辞書に追加される。ユーザ言語モデルが更新されると、当該単語情報と頻度情報が単語辞書から取得される。単語は分割され、分割された単語に対して単語頻度処理動作が実施される。ユーザ言語モデルが、分割された単語と処理された単語頻度に従って更新される。単語頻度とは、単語がユーザ辞書に出現する回数を示す。
【００６１】
１例では、ユーザ言語モデルがＢｉｇｒａｍ言語モデルであってもよい。当該モデルの生成は上述したので、ここでは繰り返さない。
【００６２】
１例では、候補文章リスト内の各候補文章のオンスクリーン確率をユーザ言語モデルと普遍的言語モデルに従って計算するプロセスでは、線形補間をユーザ言語モデルと普遍的言語モデルに対して実施して混合モデルを生成し、候補文章リスト内の各候補文章のオンスクリーン確率を当該混合モデルに従って計算する。
【００６３】
候補文章リスト内の候補文章のオンスクリーン確率は、混合モデルによって計算される、候補文章をユーザが選択できる確率である。オンスクリーン確率が大きくなれば、候補文章リスト内の候補文章の順位がより高まる。したがって、ユーザは必要な単語をより迅速に発見することができ、テキスト入力速度が高まる。
【００６４】
ブロックＳ２０８では、サーバが、候補文章リスト内の候補文章をそのオンスクリーン確率に従ってソートし、ソートされた候補文章リストをユーザ装置に送信する。
【００６５】
ブロックＳ２１０では、ユーザ装置が、ソートされた候補文章リストを受信して出力する。ユーザは必要な単語を候補文章リストから選択してもよい。選択した候補文章を入力ソフトウェアからアプリケーション・プログラム、例えば、テキスト・ドキュメント、ノートブック、プレゼンテーション・ドキュメント等に出力する。１例では、テキスト入力方法が提供される。
【００６６】
図３は、本発明の１例に従うテキスト入力方法を示す流れ図である。図３に示すように当該方法は以下を含む。
【００６７】
ブロックＳ３０２では、クライアントが、ユーザ識別子を取得し、当該ユーザ識別子に従ってユーザ装置において対応するユーザ言語モデルを発見する。
【００６８】
ユーザ識別子はユーザを一意に識別する。ユーザ識別子は、ユーザが入力ソフトウェアに登録したアカウント、または、ユーザに割り当てられた識別番号、または、ユーザの装置に関連付けられたＩＰアドレスもしくはＭＡＣアドレスであってもよい。身分認証の後、ユーザが入力ソフトウェアにログインする。クライアントは、ユーザ識別子を取得し、当該ユーザ識別子を対応するユーザ言語モデルを発見するサーバに送信する。
【００６９】
ブロックＳ３０４では、ユーザ装置がユーザ入力を取得し、当該ユーザ入力に従って候補文章リストを生成する。
【００７０】
当該ユーザ入力は音声入力、手書き文字、光学文字または文字列であってもよい。普遍的言語モデルとユーザ言語モデルは両方ともユーザ装置に格納される。ユーザ言語モデルと普遍的言語モデルをユーザ装置から直接取得して、候補文章リスト内の各候補文章のオンスクリーン確率を計算してもよい。本例では、ユーザ装置は要求をサーバに送信する必要はない。当該方法は「ローカル入力方法」とも称する。
【００７１】
ブロックＳ３０６では、ユーザ装置が当該ユーザ装置自体から普遍的言語モデルを取得し、ユーザ言語モデルと普遍的言語モデルに従って候補文章リスト内の各候補文章のオンスクリーン確率を計算する。
【００７２】
普遍的言語モデルが、インターネット上の多数のユーザが入力したテキストから取得した大量の材料を用いたトレーニングから得た、従来の統計的言語モデルであってもよい。当該ユーザ言語モデルは、一意なユーザに対応する。様々なユーザが様々なユーザ言語モデルに対応する。
【００７３】
ユーザ言語モデルはユーザの入力に従うトレーニングにより取得される。入力ソフトウェアを用いた第１の入力時間の最中は、ユーザ言語モデルがまだ更新されていないので、候補文章リスト内の各候補文章のオンスクリーン確率を普遍的言語モデルに従って計算してもよいことに留意されたい。当該方法と原理は普遍的言語モデルを用いた従来の入力方法と同様でありここでは説明しない。
【００７４】
ユーザが入力ソフトウェアを用いて単語を入力するたびに、ユーザが入力した単語が記録される。当該言語モデルはユーザが入力した単語に従って更新される。ユーザ言語モデルはユーザ識別子と関連付けられて格納される。次に単語が入力されたとき、候補単語リスト内の各候補文章のオンスクリーン確率を、ユーザ言語モデルと普遍的言語モデルの両方に従って計算することができる。
【００７５】
１例では、当該ユーザ言語モデルがＢｉｇｒａｍ言語モデルを使用してもよい。当該モデルの生成は上述したので、ここでは繰り返さない。
【００７６】
１例では、候補文章リスト内の各候補文章のオンスクリーン確率をユーザ言語モデルと普遍的言語モデルに従って計算するプロセスでは、線形補間をユーザ言語モデルと普遍的言語モデルに対して実施して混合モデルを生成し、候補文章リスト内の各候補文章のオンスクリーン確率を当該混合モデルに従って計算する。
【００７７】
候補文章リスト内の候補文章のオンスクリーン確率は、混合モデルによって計算される、候補文章をユーザが選択できる確率である。オンスクリーン確率が大きくなれば、候補文章リスト内の候補文章の順位がより高まる。したがって、ユーザは必要な単語をより迅速に発見することができ、テキスト入力速度が高まる。
【００７８】
ブロックＳ３０８では、ユーザ装置は候補文章リスト内の候補文章をそのオンスクリーン確率に従ってソートし、ソートされた候補文章リストを出力する。
【００７９】
１例では、図４に示すように、テキスト入力システムが、検索モジュール１０２、候補文章リスト生成モジュール１０４、確率計算モジュール１０６、ソート・モジュール１０８および出力モジュール１１０を備える。
【００８０】
検索モジュール１０２は、ユーザ識別子を取得し、当該ユーザ識別子に従って対応するユーザ言語モデルを発見する。
【００８１】
ユーザ識別子はユーザを一意に識別する。ユーザ識別子は、ユーザが入力ソフトウェアに登録したアカウント、または、ユーザに割り当てられた識別番号、または、ユーザの装置に関連付けられたＩＰアドレスもしくはＭＡＣアドレスであってもよい。
【００８２】
１例では、図５に示すように、上述のテキスト入力システムがさらに、ユーザ言語モデル生成モジュール１１２とユーザ言語モデル更新モジュール１１４を備えてもよい。
【００８３】
ユーザ言語モデル生成モジュール１１２を、ユーザ装置内でまたはサーバ側で構成してもよい。生成されたユーザ言語モデルをユーザ装置またはサーバに格納してもよい。
【００８４】
ユーザ言語モデル更新モジュール１１４は、ユーザが単語を入力するたびに、ユーザが入力した単語に従ってユーザ言語モデルを更新する。
【００８５】
ユーザ言語モデル更新モジュール１１４をユーザ装置またはサーバ側に配置してもよい。更新されたユーザ言語モデルをユーザ装置に格納するか、または、ユーザ装置によってサーバにアップロードして記憶してもよい。したがって、サーバ内のユーザ言語モデルを、ユーザの入力に沿って連続的に更新することができる。したがって、サーバ内のユーザ言語モデルががますます正確になる。ユーザが入力ソフトウェアを様々なユーザ装置で使用すると、サーバは最新のユーザ言語モデルをユーザ装置に送信する。したがって、ユーザ言語モデルの同期が実現され、当該ユーザ言語モデルが様々なユーザ装置に適合する。
【００８６】
候補文章リスト生成モジュール１１４はユーザ入力を取得し、当該ユーザ入力に従って候補文章リストを生成する。
【００８７】
当該ユーザ入力は音声入力、手書き文字、光学文字または文字列であってもよい。従来のテキスト入力方法を使用して、ユーザ入力にマッチする候補文章を発見して候補文章リストを生成してもよい。
【００８８】
１例では、候補文章リスト生成モジュール１０４が、従来のテキスト入力方法を使用してユーザ入力にマッチする候補文章を発見して候補文章リストを生成するサーバの中にあってもよい。テキスト入力方法の処理はサーバにより実装される。このテキスト入力方法は「クラウド入力方法」とも称される。
【００８９】
確率計算モジュール１０６は、普遍的言語モデルを取得し、候補文章リスト内の各候補文章のオンスクリーン確率をユーザ言語モデルと普遍的言語モデルに従って計算する。
【００９０】
普遍的言語モデルが、インターネット上の多数のユーザが入力したテキストから取得した大量の材料を用いたトレーニングから得た、従来の統計的言語モデルであってもよい。ユーザ言語モデルは、一意なユーザに対応する。様々なユーザが様々なユーザ言語モデルに対応する。
【００９１】
ユーザ言語モデルはユーザの入力に従うトレーニングにより取得される。入力ソフトウェアを用いた第１の入力時間の最中は、ユーザ言語モデルがまだ更新されていないので、候補文章リスト内の各候補文章のオンスクリーン確率を普遍的言語モデルに従って計算してもよいことに留意されたい。当該方法と原理は普遍的言語モデルを用いた従来の入力方法と同様でありここでは説明しない。
【００９２】
ユーザが入力ソフトウェアを用いて単語を入力するたびに、ユーザが入力した単語が記録される。当該言語モデルはユーザが入力した単語に従って更新される。ユーザ言語モデルはユーザ識別子と関連付けられて格納される。次に単語が入力されたとき、候補単語リスト内の各候補文章のオンスクリーン確率を、ユーザ言語モデルと普遍的言語モデルの両方に従って計算することができる。
【００９３】
ソート・モジュール１０８は、候補文章リスト内の候補文章をそのオンスクリーン確率に従ってソートする。
【００９４】
本例では、候補文章リスト内の候補文章は、そのオンスクリーン確率に従って昇順にソートされる。最上位の単語は、ユーザの言語習慣に良く従い、ユーザが望むものであろう。したがって、ユーザは必要な候補文章をより迅速に発見でき、テキスト入力精度とテキスト入力精度とテキスト入力速度が高まる。出力モジュール１１０は、ソートされた候補文章リストを出力する。
【００９５】
ユーザは、必要な候補文章を候補文章リストから選択してもよい。選択した候補文章は、入力ソフトウェアから様々な種類のアプリケーション・プログラム、例えば、テキスト・ドキュメント、ノートブック、プレゼンテーション・ドキュメント等に出力される。
【００９６】
１例では、ユーザ言語モデル更新モジュール１１４は、ユーザ入力の単語情報と単語頻度情報を記録し、当該単語情報と単語頻度情報を取得し、当該単語を分割し、分割した単語に対して当該単語頻度情報に従って単語頻度の処理を実施し、分割された単語と処理された単語頻度に従ってユーザ言語モデルを更新する。当該単語頻度は、単語がユーザ単語辞書に出現する回数を示す。
【００９７】
１例では、同一の言語モデルをユーザ言語モデルと普遍的言語モデルに対して使用してもよく、例えば、Ｎｇｒａｍ言語モデルを使用してもよい。ユーザ言語モデルと普遍的言語モデルのトレーニング集合は異なる。ユーザ言語モデルのトレーニング集合は、一意なユーザに対応するユーザ単語辞書の中の全単語の集合である。普遍的言語モデルのトレーニング集合は、大量のユーザが入力した単語の集合である。当該トレーニング集合をインターネットから取得してもよい。ユーザ言語モデルの確率計算式は次式であってもよい。
【００９８】
【数９】
0005926378.tif 000010
【００９９】
ここで、Ｐｕｓｅｒ（Ｓ）はｍ個の単語を含む文章Ｓ＝ｗ１ｗ２・・・ｗｍの確率を示す。文章Ｓは単語ｗ１ｗ２・・・ｗｍを含む。ここで、ｗｉは、ｍ個の単語を含む文章Ｓの中の単語である。例えば、文章「ｈａｖｅ  ｙｏｕ  ｅａｔ  ｔｏｄａｙ」を「ｈａｖｅ／ｙｏｕ／ｅａｔ／ｔｏｄａｙ」に分割してもよい。最大尤度法を使用してＰｕｓｅｒ（ｗｉ｜ｗｉ−ｎ＋１．．．ｗｉ−１）の確率統計値を計算してもよい。計算式を次式で示してもよい。
【０１００】
【数１０】
0005926378.tif 000011
【０１０１】
ここで、ｃ（ｗｉ−ｎ＋１．．．ｗｉ−１ｗｉ）は単語列ｗｉ−ｎ＋１．．．ｗｉ−１ｗｉがトレーニング集合に出現する回数を示し、ｃ（ｗｉ−ｎ＋１．．．ｗｉ−１）は単語列ｗｉ−ｎ＋１．．．ｗｉ−１がトレーニング集合に出現する回数を示す。当該トレーニング集合は、ユーザ単語辞書内の全単語の集合列である。
【０１０２】
１例では、ユーザ言語モデルは低級の言語モデル、例えばＵｎｉｇｒａｍ言語モデルを使用してもよい。Ｎｇｒａｍ言語モデルと比較すると、この言語モデルはあまり記憶空間を占有せず、モバイル端末での使用に適合する。本例では、ユーザ言語モデルの確率計算式は以下の通りである。
【０１０３】
【数１１】
0005926378.tif 000012
【０１０４】
ここで、Ｐｕｓｅｒ（Ｓ）はｍ個の単語を含む文章Ｓ＝ｗｉｗ２・・・ｗｍの確率を示す。
【０１０５】
本発明の別の例では、ユーザ言語モデルがＢｉｇｒａｍ言語モデルを使用してもよい。上記の２つの言語モデルと比べると、この言語モデルは、高速なモデル生成速度を有し、クラウド入力方法での使用に適合する。本例では、当該言語モデルに使用される確率計算式は以下の通りである。
【０１０６】
【数１２】
0005926378.tif 000013
【０１０７】
ここで、Ｐｕｓｅｒ（Ｓ）はｍ個の単語を含む文章Ｓ＝ｗｉｗ２・・・ｗｍの確率を示し、Ｐｕｓｅｒ（ｗｉ｜ｗｉ−１）は文章Ｓが２つの単語ｗｉとｗｉ−１に分割されることを示し、Ｐｕｓｅｒ（ｗｉ｜ｗｉ−１）の計算式は以下の通りである。
【０１０８】
【数１３】
0005926378.tif 000014
【０１０９】
ここで、ｃ（ｗｉ−１ｗｉ）は、文章Ｓがトレーニング集合に出現する回数を示し、ｃ（ｗｉ−１）は単語ｗｉ−１がトレーニング集合に出現する回数を示す。
【０１１０】
１例では、オンスクリーン確率生成モジュール１０６は、ユーザ言語モデルと普遍的言語モデルに線形補間動作を実施して混合モデルを生成し、当該混合モデルに従って候補文章リスト内の各候補文章のオンスクリーン確率を計算する。
【０１１１】
本例では、普遍的言語モデルが従来のＮｇｒａｍ言語モデルであってもよい。したがって、ユーザ言語モデルの条件確率が普遍的言語モデルの条件確率と組み合わせられる。混合条件確率が計算される。当該計算式は以下のようであってもよい。
【０１１２】
【数１４】
0005926378.tif 000015
【０１１３】
ここで、Ｐｍｉｘｔｕｒｅ（ｗｉ｜ｗｉ−ｎ＋１．．．ｗｉ−１）は混合条件確率を示し、Ｐ（ｗｉ｜ｗｉ−ｎ＋１．．．ｗｉ−１）は普遍的言語モデルの条件確率を示し、Ｐｕｓｅｒ（ｗｉ｜ｗｉ−ｎ＋１．．．ｗｉ−１）ははユーザ言語モデルの条件確率を示し、
【０１１４】
【数１５】
0005926378.tif 000016
【０１１５】
は０と１の間の値を有する補間パラメータを示す。混合条件確率によれば、生成される混合モデルは以下の通りである。
【０１１６】
【数１６】
0005926378.tif 000017
【０１１７】
ここで、Ｐ（Ｓ）はｍ個の単語を含む文章Ｓ＝ｗｉｗ２・・・ｗｍの確率を示す。
【０１１８】
候補文章リスト内の候補文章のオンスクリーン確率は、混合モデルによって計算される、候補文章をユーザが選択できる確率である。オンスクリーン確率が大きくなれば、候補文章リスト内の候補文章の順位がより高まる。したがって、ユーザは必要な単語をより迅速に発見することができ、テキスト入力速度が高まる。
【０１１９】
本発明の１例ではさらに、テキスト入力方法と装置を提供する。以降では、詳細な説明を提供する。
【０１２０】
現時点では、一般的な言語モデリング方法には統計的言語モデリング方法とＮｇｒａｍ言語モデリング方法がある。以降では、当該方法を簡単に説明する。
【０１２１】
従来の言語モデリング方法では、確率理論と数学的統計理論を中国語の文章の確率を計算する基礎とし、正確な文章が不正確な文章より高い確率で出力されるようにする。例えば、中国語の文章「ＳＨＵＯ  ＭＩＮＧ  ＣＩ  ＣＨＵ  ＨＡＮ  ＹＵ  ＹＵ  ＪＵ  ＤＥ  ＧＡＩ  ＬＶ」に関して、統計的言語モデリングでは、当該中国語の文章は幾つかの単語、例えば、「ＳＨＵＯ  ＭＩＮＧ＼ＣＩ  ＣＨＵ・・・」に分割してもよい。ｍ個の単語（ｍは自然数）を含む中国語の文章Ｓ＝ｗ１ｗ２・・・ｗｍに関して、Ｂａｙｅｓ理論によれば、当該中国語の文章の確率（正確に出力される確率）は複数の単語の条件確率の積、即ち、
【０１２２】
【数１７】
0005926378.tif 000018
【０１２３】
であってもよい。ここで、ｗｉは中国語の文章におけるｉ番目の単語を示す。ｐ（ｗｉ／ｗ１ｗ２・・・ｗｉ−１）は中国語の文章ｗ１ｗ２・・・ｗｍにおける単語ｗｉの条件確率を示す。
【０１２４】
上式から、条件確率ｐ（ｗｉ／ｗ１ｗ２・・・ｗｉ−１）のパラメータ空間が変数ｉの増大とともに指数関数的に増大することがわかる。変数ｉが大きい場合には、現在のスケールのトレーニング材料に対して、確率ｐ（ｗｉ／ｗ１ｗ２・・・ｗｉ−１）の正確な値を推定するのは困難である。当該トレーニング材料は、統計的方法に従って大量のトレーニング・テキストに基づいて形成したカテゴリに従って編成した１組の連続するテキストである。当該トレーニング材料をコンピュータによりバッチで処理してもよい。したがって、実際の言語モデリング方法では、条件確率ｐ（ｗｉ／ｗ１ｗ２・・・ｗｉ−１）は多少簡略化され、標準Ｎｇｒａｍ言語モデリング方法が提供される。
【０１２５】
標準Ｎｇｒａｍ言語モデルは、一般的な統計的言語モデルである。当該モデルは、中国語の文章をＭａｒｋｏｖ列とみなし、Ｍａｒｋｏｖ特徴をみたす。特に、標準Ｎｇｒａｍ言語モデルは統計的言語モデルにおける条件確率ｐ（ｗｉ／ｗ１ｗ２・・・ｗｉ−１）に対して以下の仮定をおく。
【０１２６】
（１）有限履歴の仮定：現在入力されている文章の中の単語の条件確率は単純に前のｎ−１個の単語に関連し、中国語の文章全体には関連しない。ここで、ｎは前もって定義した自然数である。
【０１２７】
（２）時間均一性の仮定：現在の単語の条件確率は、単語が中国語の文章に出現する位置とは無関係である。
【０１２８】
以上の仮定に基づいて、標準Ｎｇｒａｍモデルで確率を計算する式を以下のように簡略化することができる。
【０１２９】
【数１８】
0005926378.tif 000019
【０１３０】
以上の仮定に基づいて、標準統計的言語モデルにおける条件確率ｐ（ｗｉ／ｗ１ｗ２・・・ｗｉ−１）を標準Ｎｇｒａｍ言語モデルにおけるｐ（ｗｉ／ｗｉ−ｎ＋１ｗｉ−ｎ＋２・・・ｗｉ−１）として簡略化する。新たな確率計算式では、現在の単語に関連する履歴単語の数は、標準統計的言語モデルにおける変数ｉ−１ではなく、ｎ−１に固定される。したがって、言語のパラメータ空間が削減される。Ｎｇｒａｍ確率を既存のトレーニング材料に基づいて正確に推定することができる。したがって、標準Ｎｇｒａｍ言語モデルは実現可能である。標準Ｎｇｒａｍ言語モデルでは、最大尤度推定法を用いて条件確率ｐ（ｗｉ／ｗｉ−ｎ＋１ｗｉ−ｎ＋２・・・ｗｉ−１）を推定する。この推定式は以下で示される。
【０１３１】
【数１９】
0005926378.tif 000020
【０１３２】
ここで、ｃ（ｗｉ−ｎ＋１．．．ｗｉ−１ｗｉ）は単語列ｗｉ−ｎ＋１．．．ｗｉ−１ｗｉ（文章内の一部の単語）がＮｇｒａｍ言語モデルのトレーニング材料に出現する回数を示す。
【０１３３】
しかし、標準Ｎｇｒａｍ言語モデリング方法には欠陥がある。他方、標準Ｎｇｒａｍ言語モデルはシンプルなモデルである。実際の適用では、中国語入力、手書き認識および音声認識のような気まぐれで無限の要求を有しうる。例えば、ユーザは、テクニカル・レポートを書くときもあればインターネットでチャットするときもある。これらの２つの状況では、ユーザの中国語入力要求は異なる。別の例では、様々な年齢のユーザが様々な生活体験のために様々な会話習慣を有することがある。これらのユーザが日常的に入力する内容が、中国語入力に反映され、大きな違いをもたらす。したがって、シンプルなモデルでは、様々な年齢のユーザが中国語を入力するための様々な要求と異なる状況下における１人のユーザの様々な要求とを満たすことはできない。様々な要求に対して同じモデルを使用すると、ユーザの入力の認識精度が影響を受ける。他方、標準Ｎｇｒａｍ言語モデルには自己学習機構がない。標準Ｎｇｒａｍ言語モデルにおいてパラメータが決定されると、当該パラメータをユーザの入力習慣に従ってインテリジェントに調節することはできない。したがって、ユーザの入力を認識する正解率は比較的低い。
【０１３４】
本発明の例により提供する方法と装置は、様々なユーザの中国語を入力する要求を満たすことができ、認識正解率を高めることができる。
【０１３５】
言語モデリングに現在使用されている標準Ｎｇｒａｍ言語モデルはシンプルなモデルであり、様々なユーザの文章を入力するための様々な要求を満たすことはできない。標準Ｎｇｒａｍ言語モデルは自己学習機構を有さないので、ユーザの入力習慣に従うインテリジェントな調整を学習して実施することはできない。したがって、ユーザの入力を認識する正解率は低い。以降では、中国語を例示的なユーザの入力とし、本発明の解決策を説明する。
【０１３６】
実際の適用では、統計値の収集を通じて、ユーザが現在入力している内容（文章）が短期安定性を有すること、即ち、或る期間内のユーザの入力が一般に或る話題に関することがわかる。したがって、現在ユーザが入力している内容は比較的高い確率で後の入力でも出現する。換言すれば、音声入力、手書きまたはキーボード入力のようなどのような入力方式が使用されても、或る期間内のユーザの入力は同じ話題に関する。現在の入力されている話題または内容は「短期安定性」を有する。
【０１３７】
したがって、以上の分析に基づいて、本発明の１例では、標準Ｎｇｒａｍ言語モデルとは対照的に、キャッシュ・ベースの言語モデリング方法を提供する。キャッシュ・データ構造に基づいて、現在ユーザにより入力されている内容を格納する。キャッシュされているデータに対して数学的分析を行って、ユーザ入力の数学モデルを生成する。ユーザの入力に沿って、キャッシュ・データ構造内の内容を連続的に更新する。ユーザの入力習慣はリアルタイムに学習される。したがって、マンマシン対話がよりインテリジェントになる。生成されたユーザ入力の数学モデルがますます正確になり、ユーザの実際の入力要求が満たされる。したがって、続くユーザの入力の最中に、より正確な認識を生成された数学モデルに従ってユーザの入力に対して実施することができる。動的学習が実現され、ユーザの入力要求が満たされる。
【０１３８】
図６は、本発明の１例に従う言語モデリング方法を示す流れ図である。図６に示すように、当該方法は以下を含む。
【０１３９】
ブロック６０１で、ユーザの入力を受信する。ユーザの入力における各単語の条件確率は、前もって生成された標準Ｎｇｒａｍ言語モデルに従ってそれぞれ計算される。
【０１４０】
当該ブロックでは、ユーザの入力は、入力方法、手書き内容および音声入力等を介して入力された内容を含む。
【０１４１】
入力方法で入力された内容に関して、キーボード処理プログラムが、ユーザが入力した文字を受信し、入力方法に従って当該文字に対して認識処理を実施してぴん音情報を取得し、当該ぴん音情報を対応する候補文字にマップして当該ユーザ入力を形成するマッピング・ユニットに当該ぴん音を出力する。
【０１４２】
手書き入力に関して、予め構成した手書き認識プログラムがユーザの手書き情報を取り出して、手書き情報を取得する。マッピング・ユニットにより処理した後、当該手書き情報を対応する候補文字にマップしてユーザ入力を形成する。
【０１４３】
音声入力に関して、予め構成した音声処理プログラムがサンプリング、量子化、フィルタリング、および雑音除去処理を実施して音声情報を取得する。マッピング・ユニットにより処理した後、音声情報を対応する候補文字にマップしてユーザ入力を形成する。
【０１４４】
上述の例では、マッピング・ユニットにより実施されたぴん音情報、手書き情報および音声情報に対する処理は関連する技術文書から取得できるので、ここでは説明しない。
【０１４５】
標準  Ｎｇｒａｍ言語モデルに従うユーザ入力における各単語の条件確率の計算は関連技術のものと同様であり、ここでは説明しない。
【０１４６】
ブロック６０２では、予めキャッシュしたユーザ入力を決定する。ユーザ入力と当該予めキャッシュしたユーザ入力に従って、当該ユーザ入力における各単語の条件確率を、予め構成したキャッシュ・ベースの言語モデリング・ポリシに従って計算する。
【０１４７】
当該ブロックでは、ユーザ入力が最初の入力である場合には、当該予めキャッシュしたユーザ入力は空である。各単語の確率の計算は関連技術のものと同様である。予め構成したキャッシュ・ベースの言語モデリング・ポリシは以下の通りである。
【０１４８】
【数２０】
0005926378.tif 000021
【０１４９】
ここで、ｐｃｈａｃｈｅ（ｗｉ／ｗｉ−ｎ＋１ｗｉ−ｎ＋２・・・ｗｉ−１，ｔｉ）は、ｉ番目の単語ｗｉのキャッシュされた条件確率を示し、ｃ（ｗｉ−ｎ＋１．．．ｗｉ−１ｗｉ）はキャッシュされたトレーニング材料に単語列ｗｉ−ｎ＋１．．．ｗｉ−１ｗｉが出現する回数、即ち、ｉ番目の単語とｉ番目の単語の前のｎ（予め定義した定数）個の単語を含む単語列が、キャッシュされたトレーニング材料に出現する回数を示し、ｃ（ｗｉ−ｎ＋１．．．ｗｉ−２ｗｉ−１）はキャッシュされたトレーニングに単語列ｗｉ−ｎ＋１．．．ｗｉ−２ｗｉ−１が出現する回数、即ち、ｉ番目の単語の前の所定数の単語を含む単語列が、キャッシュされたトレーニング材料をに出現する回数を示し、ｆ（ｔｉ）は時間関数を示す。当該式を以下でさらに詳細に説明する。
【０１５０】
ブロック６０３では、混合条件確率が、標準Ｎｇｒａｍ言語モデルに基づいて計算された各単語の条件確率とキャッシュされたモデリング・ポリシに従って計算された各単語の条件確率とに従って計算され、各出力文章の文章確率が当該混合条件確率に基づいて計算される。当該ブロックでは、混合条件確率を計算するための式が以下のようであってもよい。
【０１５１】
【数２１】
0005926378.tif 000022
【０１５２】
ここで、αは０と１の間の定数である補間パラメータを示す。その値を実際の要件に従って決定してもよい。ｐ（ｗｉ／ｗｉ−ｎ＋１ｗｉ−ｎ＋２・・・ｗｉ−１）は、標準Ｎｇｒａｍ言語モデルに基づいて計算したｉ番目の単語ｗｉの標準条件確率を示す。各出力文章の文章確率（即ち、オンスクリーン確率）を計算する式は以下の通りである。
【０１５３】
【数２２】
0005926378.tif 000023
【０１５４】
ブロック６０４では、最大確率の出力文章が出力されキャッシュされる。
【０１５５】
図７は、本発明の１例に従う言語モデリング方法を示す流れ図である。図７に示すように、当該方法は以下を含む。
【０１５６】
ブロック７０１では、標準Ｎｇｒａｍ言語モデルを前もって生成する。当該ブロックでは、標準Ｎｇｒａｍ言語モデルの生成は関連技術と同様である。標準Ｎｇｒａｍ言語モデルを、最大尤度推定法を用いてトレーニング材料から取得してもよい。
【０１５７】
この時点では、ユーザは内容をまだ入力していない。したがって、予め構成したキャッシュは空である。
【０１５８】
ブロック７０２では、ユーザの入力内容を受信する。ユーザの入力内容における各出力文章の文章確率（即ち、オンスクリーン確率）を、予め構成した標準Ｎｇｒａｍ言語モデルに従って計算する。
【０１５９】
当該ブロックでは、ユーザは会話、手書き文字、光学文字またはキーボード入力を介して内容を入力してもよい。ユーザが入力を開始すると、その内容がマッピング・ユニットによって、標準Ｎｇｒａｍ言語モデル、即ち、入力内容のカーネル計算手続きに従って処理される候補単語にマップされる。夫々の可能な出力文章の確率を、標準Ｎｇｒａｍ言語モデルに従って計算する。当該手続きは関連技術と同様であり、ここでは説明しない。
【０１６０】
ブロック７０３では、最大確率の出力文章を選択して出力する。当該ブロックでは、標準Ｎｇｒａｍ言語モデルに従って計算された夫々の可能な出力文章の確率に従って、最大確率の出力文章をユーザ出力として選択する。即ち、最大確率の出力文章を、認識された中国語の文章とする。１つの中国語の文章が１つまたは複数の単語を含んでもよい。
【０１６１】
ブロック７０４では、出力文章が調節され、調節された出力文章が予め構成したキャッシュ領域に出力される。当該ブロックでは、ユーザが、出力文章が自身の入力要求を満たすかどうかをチェックしてもよい。出力文章が自身の入力要求にマッチしない場合には、調節を行ってもよい。例えば、ユーザが期待する出力文章は、「ＺＨＥ  ＳＨＩ  ＳＨＩ  ＳＨＩ」（「ｔｈｉｓ  ｉｓ  ｆａｃｔ」に対応する中国語の文字）である。標準Ｎｇｒａｍ言語モデルに基づいて計算した最大確率の出力文章、即ち、ユーザ入力の認識結果は、「ＺＨＥ  ＳＨＩ  ＳＨＩ  ＳＨＩ」（「ｔｈｉｓ  ｉｓ  ｒｅａｌ  ｔｉｍｅ」に対応する中国語の文字）である。これは、ユーザが期待した入力要求にマッチしない。この時点で、ユーザは入力方法の候補に従って「ＳＨＩ  ＳＨＩ」（「ｒｅａｌ  ｔｉｍｅ」に対応する中国語の文字）を「ＳＨＩ  ＳＨＩ」（「ｆａｃｔ」）に対応する中国語の文字）に調節し、調節した出力文章を予め構成したキャッシュ領域に出力する。
【０１６２】
実際の適用では、キャッシュ領域にキャッシュされた内容をユーザが特定してもよい。
【０１６３】
ブロック７０５では、キャッシュ領域内の文章をトレーニング材料とし、キャッシュ・ベースの言語モデルを作成する。当該ブロックでは、キャッシュ・ベースの言語モデルはキャッシュ領域に格納した内容に基づく。キャッシュ領域の内容は、ユーザの直近の入力に従って取得され、したがって、ユーザ固有の小型のトレーニング材料の辞書とみなすことができる。
【０１６４】
他方、標準Ｎｇｒａｍ言語モデルと同様に、キャッシュ・ベースの言語モデルは、単語間の条件確率を計算することによって現在のユーザの入力の統計的特徴を記述する。中国語の文章の確率を、以下のように計算してもよい。
【０１６５】
【数２３】
0005926378.tif 000024
【０１６６】
ここで、Ｐｃｈａｃｈｅ（Ｓ）は、キャッシュ領域の内容に従って計算した中国語の文章の確率を示し、ｍは中国語の文章に含まれる単語の数を示し、ｗｉは中国語の文章に含まれるｉ番目の単語を示し、ｐｃａｃｈｅ（ｗｉ／ｗｉ−ｎ＋１ｗｉ−ｎ＋２・・・ｗｉ−１）は、中国語の文章における単語ｗｉの条件確率を示し、ｎは予め定義した定数を示す。
【０１６７】
他方、ユーザ入力が「短期安定性」を有することは以前の統計分析に基づいて理解される。ここで、「短期」とは時間の次元を示す。即ち、現在のユーザの入力は、単に、直近のユーザの入力に関連するにすぎず、遠い過去にユーザが入力した内容とは無関係である。即ち、ユーザが現在入力している内容は通常は安定的である。現在の内容は現在の入力トピックに関連する。しばらくすると、ユーザが入力したトピックは変化する。その時点で、ユーザの入力内容は過去のユーザのトピックにはあまり関連しない。したがって、キャッシュ・ベースの言語モデルに基づくと、ユーザの現在の入力単語は、キャッシュ領域に最近追加された単語により関連しているが、遠い過去にキャッシュ領域に追加された単語とはあまり関連しない。
【０１６８】
標準Ｎｇｒａｍ言語モデルとは異なり、キャッシュ領域の単語の条件確率は、現在の単語のコンテキスト語だけでなく、現在の単語がキャッシュ領域に追加された時刻にも関連する。したがって、時間因子を考慮すると、キャッシュ・ベースの言語モデルにおける確率式を以下のように調節してもよい。
【０１６９】
【数２４】
0005926378.tif 000025
【０１７０】
以前の条件確率
【０１７１】
【数２５】
0005926378.tif 000026
【０１７２】
と比較すると、調節後の文章確率
【０１７３】
【数２６】
0005926378.tif 000027
【０１７４】
では、時間変数パラメータｔを考慮している。即ち、現在の単語ｗｉが出現する条件確率がコンテキスト語ｗｉ−ｎ＋１ｗｉ−ｎ＋２・・・ｗｉ−１に関連するだけでなく、単語ｗｉが最後にキャッシュ領域に追加された時刻にも関連する。
【０１７５】
キャッシュ・ベースの言語モデルでは、各単語の条件確率は当該単語のコンテキスト語だけでなく、当該単語が最後にキャッシュ領域に追加された時刻にも関連する。しかし、標準Ｎｇｒａｍ言語モデルにおける最大尤度推定法ではコンテキスト語だけでなく時間情報も考慮する。したがって、最大尤度推定法を、キャッシュ・ベースの言語モデルが必要とするパラメータのトレーニングに使用することはできない。キャッシュ・ベースの言語モデルにおける単語の条件確率を推定するために、時間情報を追加することによって最大尤度推定法を改良する。以下の式を使用して、条件確率ｐｃａｃｈｅ（ｗｉ／ｗｉ−ｎ＋１ｗｉ−ｎ＋２・・・ｗｉ−１，ｔｉ）の値を計算する。
【０１７６】
【数２７】
0005926378.tif 000028
【０１７７】
最大尤度推定法とは異なり、上式では、文章の条件確率に及ぼす時間因子の影響を記述するために時間関数ｆ（ｔｉ）を考慮している。時間関数ｆ（ｔｉ）は以下のように定義される。
【０１７８】
【数２８】
0005926378.tif 000029
【０１７９】
ここで、ｔｉは時間変数パラメータ、即ち、単語ｗｉがキャッシュ領域に入る時刻と現在の単語がユーザにより入力される時刻の間の時間間隔を示す。
【０１８０】
実際の適用では、キャッシュ領域の基盤データ構造は待ち行列により実装され、時間変数パラメータの値は、キャッシュ領域内の単語ｗｉの位置であってもよい。例えば、単語が最初にキャッシュ領域に入るとき、単語ｗｉが待ち行列の先頭にあってその位置インデックスが１であると仮定すると、当該式における単語ｗｉに対応する時間変数パラメータｔｉの値は１である。∂は条件確率推定における時間変数パラメータの重みを調節するための予め定義した定数である。
【０１８１】
上記から、単語ｗｉがキャッシュ領域に入るのが早いほど、単語ｗｉがキャッシュ領域に入る時刻とユーザが文章を入力する時刻の間の時間間隔が長くなり、時間変数パラメータｔｉの値が大きくなるほど、時間関数ｆ（ｔｉ）の値が小さくなることが分かる。したがって、条件確率ｐｃａｃｈｅ（ｗｉ／ｗｉ−ｎ＋１ｗｉ−ｎ＋２・・・ｗｉ−１，ｔｉ）の値は小さくなる。対照的に、単語ｗｉがキャッシュ領域に入るのが遅くなるほど、単語ｗｉがキャッシュ領域に入る時刻とユーザが文章を入力する時刻の間の時間間隔が短くなり、時間変数パラメータｔｉの値が小さくなるほど、時間関数ｆ（ｔｉ）の値が大きくなる。したがって、条件確率ｐｃａｃｈｅ（ｗｉ／ｗｉ−ｎ＋１ｗｉ−ｎ＋２・・・ｗｉ−１，ｔｉ）の値は大きくなる。
【０１８２】
ブロック７０６で、ユーザが入力した内容が受信される。各出力文章の文章確率は、予め生成した標準Ｎｇｒａｍ言語モデルと新規作成したキャッシュ・ベースの言語モデルに従って、ユーザが入力した内容に対して計算される。
【０１８３】
当該ブロックでは、ユーザの入力手続きの最中に、混合モデルが標準Ｎｇｒａｍ言語モデルと新規作成したキャッシュ・ベースの言語モデルとに基づいて形成される。ユーザの入力は混合モデルに従って処理され、処理結果が生成される。
【０１８４】
本発明の１例では、線形補間方法を使用して、キャッシュ・ベースの言語モデルにおける条件確率ｐｃａｃｈｅ（ｗｉ／ｗｉ−ｎ＋１ｗｉ−ｎ＋２・・・ｗｉ−１，ｔｉ）と標準Ｎｇｒａｍ言語モデルにおける条件確率ｐ（ｗｉ／ｗｉ−ｎ＋１ｗｉ−ｎ＋２・・・ｗｉ−１）を組み合わせる。混合条件確率ｐｍｉｘｔｕｒｅ（ｗｉ／ｗｉ−ｎ＋１ｗｉ−ｎ＋２・・・ｗｉ−１）を以下の式に従って計算する。
【０１８５】
【数２９】
0005926378.tif 000030
【０１８６】
ここで、αは０と１の間の定数である補間パラメータを示す。αは、混合モデルにおいて、キャッシュ・ベースの言語モデルでの条件確率と標準Ｎｇｒａｍ言語モデルでの条件確率の重みを調節するために使用される。上述の混合モデルによれば、ｍ個の単語を含む中国語の文章Ｓ＝ｗ１ｗ２・・・ｗｍの確率を以下のように計算してもよい。
【０１８７】
【数３０】
0005926378.tif 000031
【０１８８】
例えば、ユーザが過去に「ＸＩＡＯ  ＪＩＮＧ  ＨＵＩ  ＳＨＩ  ＴＥＮＧ  ＸＵＮ  ＹＵＡＮ  ＧＯＮＧ」を入力した場合、標準Ｎｇｒａｍ言語モデルに基づいて認識した後、３つの文字「ＸＩＡＯ」、「ＪＩＮＧ」および「ＨＵＩ」と、単語「ＳＨＩ」、「ＴＥＮＧ  ＸＵＮ  ＹＵＡＮ  ＧＯＮＧ」がキャッシュ領域にキャッシュされる。ユーザが「ＸＩＡＯ  ＪＩＮＧ  ＨＵＩ  ＸＩＥ  ＬＥ  ＹＩ  ＰＩＡＮ  ＺＨＵＡＮ  ＬＩ」を後に入力したとき、キャッシュ・ベースの言語領域内のキャッシュ領域に格納された３つの文字「ＸＩＡＯ」、「ＪＩＮＧ」および「ＨＵＩ」がユーザが現在入力している文章に影響を及ぼす。キャッシュ領域に文字「ＸＩＡＯ」、「ＪＩＮＧ」および「ＨＵＩ」が存在しない場合には、ユーザが入力したときに「ＸＩＡＯ  ＪＩＮＧ  ＨＵＩ」が誤って変換される確率が高い。しかし、キャッシュ領域にキャッシュされた情報によれば、「ＸＩＡＯ  ＪＩＮＧ  ＨＵＩ」が正しく変換される確率は高い。したがって、入力「ＸＩＥ  ＪＩＮＧ  ＨＵＩ  ＸＩＥ  ＬＥ  ＹＩ  ＰＩＡＮ  ＺＨＵＡＮ  ＬＩ」が、入力方法により正確に変換される確率は高い。
【０１８９】
以上から、キャッシュ・ベースの言語モデルがユーザの入力に基づいて連続的に生成されることが分かる。キャッシュ・ベースの言語モデルは、ユーザの現在の入力シナリオ情報を反映し、他方でユーザの入力習慣を反映する。標準Ｎｇｒａｍ言語モデルをキャッシュ・ベースの言語モデルと組み合わせることによって、ユーザの入力シナリオと入力習慣を効果的に学習しこれらに自己適応する。
【０１９０】
ブロック７０７では、最大確率の出力文章を出力する。ブロック７０８では、キャッシュ領域にキャッシュされた文章を、出力された文章に従って更新する。
【０１９１】
実験によれば、標準Ｎｇｒａｍ言語モデルと比べて、本発明の例で提供したキャッシュ・ベースの言語モデリング方法はユーザ入力の認識正解率が高い。さらに、当該モデリング方法に基づく中国語入力ソフトウェアはよりインテリジェントである。
【０１９２】
本発明の例で提供した言語モデリング方法は、中国語の入力方法だけでなく、日本語、韓国語、およびカンボジア語のような他のアジア言語の入力方法にも適用可能であることに留意されたい。これらの言語に対するモデリング言語は中国語のものと同様であるので、ここでは繰り返さない。
【０１９３】
図８は、本発明の１例に従う言語モデリング装置の構造を示す略図である。図８に示すように、当該装置は、標準Ｎｇｒｍ言語モデル・モジュール８０１、キャッシュ・モジュール８０２、キャッシュ・ベースの言語モデリング・モジュール８０３および混合モデル・モジュール８０４を備える。
【０１９４】
標準Ｎｇｒａｍ言語モデル・モジュール８０１は、ユーザの入力を受信し、ユーザ入力における各単語の標準条件確率をそれぞれ計算し、当該条件確率を混合モデル・モジュール８０４に出力する。本例では、標準Ｎｇｒａｍ言語モデル・モジュール８０１により各単語の条件確率を計算するための式は以下の通りである。
【０１９５】
【数３１】
0005926378.tif 000032
【０１９６】
ここで、Ｃ（ｗｉ−ｎ＋１・・・ｗｉ−１ｗｉ）は、単語列ｗｉ−ｎ＋１・・・ｗｉ−１ｗｉが標準Ｎｇｒａｍ言語モデルのトレーニング材料に出現する回数を示し、ｗｉは中国語の文章におけるｉ番目の単語を示し、ｎは予め構成した定数である。キャッシュ・モジュールは、混合モデル・モジュールにより出力された文章をキャッシュする。
【０１９７】
キャッシュ・ベースの言語モデリング・モジュール８０３は、ユーザ入力と、予め構成したキャッシュ・ベースの言語モデリング・ポリシに基づいてキャッシュ・モジュール８０２にキャッシュした文章とに従って、ユーザ入力内の各単語の条件確率をそれぞれ計算し、当該条件確率を混合モデル・モジュール８０４に出力する。本例では、キャッシュ・ベースの言語モデリング・モジュール８０３が次式に従って各単語の条件確率を計算してもよい。
【０１９８】
【数３２】
0005926378.tif 000033
【０１９９】
ここで、Ｃ（ｗｉ−ｎ＋１・・・ｗｉ−１ｗｉ）は、単語列ｗｉ−ｎ＋１・・・ｗｉ−１ｗｉがキャッシュ・ベースの言語モデルのトレーニング材料に出現する回数を示し、ｗｉは中国語の文章におけるｉ番目の単語を示し、ｎは予め構成した定数であり、ｆ（ｔｉ）は時間関数を示す。
【０２００】
混合モデル・モジュール８０４は、標準条件確率とキャッシュ条件確率に従って各単語の混合条件確率を計算し、当該混合条件確率に従って各出力文章の文章確率を取得し、最大確率の出力文章を選択して出力する。１例では、当該混合条件確率の計算式は以下の通りである。
【０２０１】
【数３３】
0005926378.tif 000034
【０２０２】
ここで、αは０と１の間の定数である補間パラメータである。出力文章の文章確率を次のように計算してもよい。
【０２０３】
【数３４】
0005926378.tif 000035
【０２０４】
ここで、ｍは中国語の文章に含まれる単語の数を示す。
【０２０５】
標準Ｎｇｒａｍ言語モデル・モジュール８０１は、第１の単語列頻度計数ユニット、第２の単語列頻度計数ユニットおよび標準条件確率計算ユニット（図示せず）を備える。第１の単語列頻度計数ユニットは、ｉ番目の単語と当該ｉ番目の単語の前の所定数の単語とを含む単語列が標準Ｎｇｒａｍ言語モデルのトレーニング材料に出現する回数ｋ’ｉを取得し、ｋ’ｉを標準条件確率計算ユニットに出力する。第２の単語列頻度計数ユニットは、ｉ番目の単語の前の所定数の単語を含む単語列が標準Ｎｇｒａｍ言語モデルのトレーニング材料に出現する回数ｋ’ｉ−１を取得し、ｋ’ｉ−１を標準条件確率計算ユニットに出力する。標準確率計算ユニットは、ｋ’ｉ−１に対するｋ’ｉの比を計算し、当該比をユーザ入力におけるｉ番目の単語の標準条件確率とする。
【０２０６】
キャッシュ・ベースの言語モデリング・モジュール８０３は、第３の単語列頻度計数ユニット、第４の単語列頻度計数ユニット、時間関数値取得ユニットおよびキャッシュ条件確率計算ユニット（図示せず）を備える。第３の単語列頻度計数ユニットは、ｉ番目の単語とｉ番目の単語の前の所定数の単語とを含む単語列がキャッシュされたトレーニング材料に出現する回数ｋｉを取得し、ｋｉを標準条件確率計算ユニットに出力する。第４の単語列頻度計数ユニットは、ｉ番目の単語の前の所定数の単語を含む単語列がキャッシュされたトレーニング材料に出現する回数ｋｉ−１を取得し、ｋｉ−１を標準条件確率計算ユニットに出力する。時間関数値計算ユニットは、ｉ番目の単語の時間関数値を取得し、当該値をキャッシュ条件確率計算ユニットに出力する。キャッシュ条件確率計算ユニットは、ｋｉ−１に対するｋｉの比を計算し、当該比にｉ番目の単語の時間関数値を乗じて、ユーザ入力におけるｉ番目の単語のキャッシュ条件確率を取得する。
【０２０７】
混合モデル・モジュール８０４は、補間パラメータ格納ユニット、第１の乗算ユニット、第２の乗算ユニット、混合条件確率計算ユニット、文章確率計算ユニットおよび出力文章選択ユニット（図示せず）を備える。
【０２０８】
補間パラメータ格納ユニットは、その値が０と１の間で前もって構成される補間パラメータを格納する。第１の乗算ユニットは、補間パラメータ格納ユニットに格納された補間パラメータとｉ番目の単語の標準条件確率の積を計算し、当該積を混合条件確率計算ユニットに出力する。第２の乗算ユニットは、１と当該補間の間の差分を計算し、当該差分とｉ番目の単語のキャッシュ条件確率の積を計算し、当該積を混合条件確率計算ユニットに出力する。混合条件確率計算ユニットは、ｉ番目の単語に関連する積を加算し、その和をｉ番目の単語の混合条件確率とする。文章確率計算ユニットは、各単語の混合条件確率の積を計算して出力文章の文章確率を得る。出力文章選択ユニットは、文章確率計算ユニットにより計算した最大文章確率を選択し、最大文章確率に対応する出力文章を出力する。
【０２０９】
以上から、本発明の例で提供した言語モデリング方法および装置によれば、ユーザ入力がキャッシュされることが分かる。キャッシュされたユーザ入力は、ユーザ入力の履歴情報とユーザ入力のシナリオに関連するものである。したがって、キャッシュ・ベースの言語モデルは自己学習機能を有し、これが当該言語モデルをよりインテリジェントにする。他方、ユーザの各入力習慣を学習することによって、マンマシン対話ソフトウェアは、様々なユーザ・グループとアプリケーションのシナリオに適合することができる。例えば、少なくとも以下の利点がある。
【０２１０】
１つ目は、言語モデルの性能が向上することである。様々なユーザの中国語入力要求が満たされる。予測正解率が増大する。音声認識、手書き文字認識、中国語のキーボード入力方法、光文字認識等のような多数の領域に適用可能であり、関連システムの正解率が高まる。
【０２１１】
２つ目は、本発明の解決策に基づいて、情報検索システムを言語モデルに基づいて構築して当該情報検索システムの性能、例えば、正解率、再現率等を向上できることである。
【０２１２】
本明細書で説明し例示したものは、その変形の一部に沿った開示の好適な例である。本明細書で使用した用語、説明、および図は、例として示したものにすぎず限定を意味するものではない。本発明の趣旨と範囲に入る多数の変形が可能である。本発明の趣旨と範囲は、添付の特許請求の範囲とその均等物により定義され、全ての用語は特に明記しない限りその最も広い合理的な意味を有する。
【符号の説明】
【０２１３】
１０２  検索モジュール
１０４  候補単語リスト生成モジュール
１０６  確率計算モジュール
１０８  ソート・モジュール
１１０  出力モジュール
１１２  ユーザ言語モジュール生成モジュール
１１４  ユーザ言語モジュール更新モジュール
【図１】
0005926378.tif 000036
【図２】
0005926378.tif 000037
【図３】
0005926378.tif 000038
【図４】
0005926378.tif 000039
【図５】
0005926378.tif 000040
【図６】
0005926378.tif 000041
【図７】
0005926378.tif 000042
【図８】
0005926378.tif 000043