(57)【要約】  コンピュータで実施される方法であって、ワードコーパスを識別する段階と、ワード確率値を前記ワードコーパス内の各語と関連付ける段階と、文を識別する段階と、前記ワードコーパスに基づいて前記文の候補セグメンテーションを求める段階と、前記ワードコーパス内の各語について、関連する前記ワード確率値と前記候補セグメンテーションとに基づいて、関連する前記ワード確率値を反復的に調節する段階と、を含み、インプットメソッドエディタ辞書内の関連する最高の前記ワード確率値を有する語によって定義される前記ワードコーパスの一部を格納する段階を含む方法。
2010531492.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、
ワードコーパスを識別する段階と、
ワード確率値を前記ワードコーパス内の各語と関連付ける段階と、
文を識別する段階と、
前記ワードコーパスに基づいて前記文の候補セグメンテーションを求める段階と、
前記ワードコーパス内の各語について、関連する前記ワード確率値と前記候補セグメンテーションとに基づいて、関連する前記ワード確率値を反復的に調節する段階と
を含む方法。
【請求項２】
インプットメソッドエディタ辞書内の関連する最高の前記ワード確率値を有する語によって定義される前記ワードコーパスの一部を格納する段階を含む請求項1に記載の方法。
【請求項３】
前記ワード確率値が、関連する語が前記文中に出現する確率に対応する請求項1に記載の方法。
【請求項４】
前記文の候補セグメンテーションを求める段階が、前記ワードコーパスに基づいて、少なくとも1つの文のすべての可能なセグメンテーションを求める段階を含む請求項1に記載の方法。
【請求項５】
前記文の各候補セグメンテーションについてセグメンテーション確率値を求める段階を含む請求項1に記載の方法。
【請求項６】
前記文の各候補セグメンテーションについてセグメンテーション確率値を求める段階が、各候補セグメンテーションについて、前記候補セグメンテーション内の前記語に関連する前記ワード確率値に基づいて、前記セグメンテーション確率値を求める段階を含む請求項5に記載の方法。
【請求項７】
前記ワードコーパス内の各語について、関連する前記ワード確率値および前記候補セグメンテーションに基づいて、関連する前記ワード確率値を反復的に調節する段階が、各語について、前記文の前記候補セグメンテーションに関する前記セグメンテーション確率値に基づいて、関連する前記ワード確率値を反復的に調節する段階を含む請求項5に記載の方法。
【請求項８】
各語について、関連する前記ワード確率値を反復的に調節する段階が、反復ごとに、
前記文の各候補セグメンテーションについて、前記候補セグメンテーション内の前記語に関連する前記ワード確率値に基づいて、前記セグメンテーション確率値を求める段階と、
各語について、前記語を含む前記候補セグメンテーションに関する前記セグメンテーション確率値に基づいて、関連する前記ワード確率値を調節する段階と
を含む請求項1に記載の方法。
【請求項９】
前記文中の語の改善された確率値を求める段階が、(a)前記語の前のサブストリングの候補セグメンテーションの前記確率値の和、(b)前記語の前記確率値、および(c)前記語の後のサブストリングの候補セグメンテーションの前記確率値の和を乗算する段階を含む請求項1に記載の方法。
【請求項１０】
前記文の候補セグメンテーションを求める段階が、文書中の複数の文の候補セグメンテーションを求める段階を含む請求項1に記載の方法。
【請求項１１】
複数の文書中の文を識別する段階と、各文について、前記ワードコーパスに基づいて、前記文の候補セグメンテーションを求める段階とを含む請求項1に記載の方法。
【請求項１２】
前記ワード確率値を求める際に、異なるタイプの文書中の文に、異なる重みが与えられる請求項11に記載の方法。
【請求項１３】
前記文書が、公衆ネットワーク、インターネットを介してアクセス可能であり、または複数のサードパーティによって提供される請求項11に記載の方法。
【請求項１４】
前記語が、中国語文字、日本語文字、および韓国語文字のうちの少なくとも1つを含む請求項1に記載の方法。
【請求項１５】
前記語が漢字文字を含む請求項1に記載の方法。
【請求項１６】
コンピュータで実施される方法であって、
ワードコーパスの語に関連するワード確率値を求める段階と、
文書コーパス中の文書の文の候補セグメンテーションを求める段階と、
各文の各候補セグメンテーションについて、前記候補セグメンテーション中の前記語に関連する前記ワード確率値に基づいて、セグメンテーション確率値を反復的に求める段階と、
各語について、前記語を含む前記候補セグメンテーションに関する前記セグメンテーション確率値に基づいて、前記ワード確率値を反復的に調節する段階と
を含む方法。
【請求項１７】
前記文書に関する文書タイプを識別する段階と、
識別した前記文書タイプに基づいて、前記文書中の文に重みを割り当てる段階と、
前記重みに基づいて、前記セグメンテーション確率値または前記ワード確率値のうちの1つを求める段階と
を含む請求項16に記載の方法。
【請求項１８】
各語について、前記語を含む前記セグメンテーションの前記セグメンテーション確率値に基づいて、カウントを蓄積する段階を含む請求項16に記載の方法。
【請求項１９】
各語について前記カウントを蓄積する段階は、前記語を含む前記セグメンテーションの前記セグメンテーション確率値の和を求める段階を含む請求項18に記載の方法。
【請求項２０】
正規化因子に基づいて前記語についての前記カウントを正規化することにより、各語について前記ワード確率値を求める段階を含む請求項18に記載の方法。
【請求項２１】
すべての前記語の前記カウントの和を求めることによって前記正規化因子を求める段階を含む請求項20に記載の方法。
【請求項２２】
語と、反復プロセスを使用して求められる、関連するワード確率値とを含む辞書を確立する段階であって、前記反復プロセスが、文書の文の候補セグメンテーションに関するセグメンテーション確率値を反復的に求める段階と、前記セグメンテーション確率値に基づいて、前記語に関する前記ワード確率値を反復的に調節する段階とを含む段階と、
前記辞書から語を選択するように構成されたインプットメソッドエディタを提供する段階と
を含む方法。
【請求項２３】
ワードコーパスおよび文書コーパスを格納するデータストアと、
コンピュータ可読媒体内に格納され、処理装置で実行可能な命令を含む処理エンジンであって、前記命令が、実行時に、前記処理装置に、
ワード確率値を前記ワードコーパス内の各語と関連付けさせ、
前記ワードコーパスに基づいて、前記文書コーパス内の各文書の各文の候補セグメンテーションを求めさせ、
前記ワードコーパス内の各語について、関連する前記ワード確率値および前記候補セグメンテーションに基づいて、関連する前記ワード確率値を反復的に調節させる処理エンジンと
を備えるシステム。
【請求項２４】
ワードコーパスおよび文書コーパスを格納するデータストアと、
ワード確率値を前記ワードコーパス内の各語と関連付け、
前記ワードコーパスに基づいて、前記文書コーパス内の各文書の各文の候補セグメンテーションを求め、
前記ワードコーパス内の各語について、関連する前記ワード確率値および前記候補セグメンテーションに基づいて、関連する前記ワード確率値を反復的に調節する処理装置と
を備えるシステム。
【請求項２５】
ワードコーパスおよび文書コーパスを格納するデータストアと、
前記ワードコーパスの語に関連するワード確率値を求め、
前記文書コーパス内の文書の文の候補セグメンテーションを求め、
各文の各候補セグメンテーションについて、前記候補セグメンテーション内の前記語に関連する前記ワード確率値に基づいて、セグメンテーション確率値を反復的に求め、各語について、前記語を含む候補セグメンテーションに関するセグメンテーション確率値に基づいて、ワード確率値を反復的に調節する処理装置と
を備えるシステム。
【請求項２６】
語と、反復プロセスを使用して求められる、関連するワード確率値とを含む辞書を格納するデータストアであって、前記反復プロセスが、文書の文の候補セグメンテーションに関するセグメンテーション確率値を反復的に求めること、および前記セグメンテーション確率値に基づいて、前記語に関する前記ワード確率値を反復的に調節することを含むデータストアと、
前記辞書から語を選択するように構成されたインプットメソッドエディタを提供する処理装置と
を備えるシステム。
【請求項２７】
ワード確率値をワードコーパス内の語と関連付ける手段と、
複数の文書中の文を識別する手段と、
前記ワードコーパスに基づいて各文の候補セグメンテーションを求める手段と、
前記ワードコーパス内の各語について、関連する前記ワード確率値および前記候補セグメンテーションに基づいて、関連する前記ワード確率値を反復的に調節する手段と
を備えるシステム。
【請求項２８】
ワードコーパスの語に関連するワード確率値を求める手段と、
文書コーパス内の文書の文の候補セグメンテーションを求める手段と、
各文の各候補セグメンテーションについて、前記候補セグメンテーション内の前記語に関連する前記ワード確率値に基づいて、セグメンテーション確率値を反復的に求める手段と、
各語について、前記語を含む前記候補セグメンテーションに関する前記セグメンテーション確率値に基づいて、前記ワード確率値を反復的に調節する手段と
を備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、入力方法に関する。
【背景技術】
【０００２】
1つまたは2つの文字、例えばグリフが大まかには1つの語または意味に対応する表語文字(logographic script)を使用する言語は、モバイル装置キーパッド上のコンピュータキーボードなどの、標準入力装置上のキーよりも多くの文字を有する。例えば、中国語は、基本ピンイン文字および5つの声調によって定義される数千の文字を含む。こうした多対一の関連付けのマッピングは、入力装置上に見つからない文字および記号の入力を容易にする入力方法によって実装することができる。したがって、西洋式キーボードを使用して、中国語、日本語、または韓国語の文字を入力することができる。
【０００３】
ある例では、インプットメソッドエディタ(IME)を使用して、語の辞書を探索し、ユーザによってタイプされたピンイン文字に対応する候補語を見つけることができる。辞書は、語に関連するデータ、例えばIMEがユーザの意図を予測して、候補を識別およびランク付けすることを可能にする確率スコアを含むことができる。IMEは、例えば確率スコアまたは正確度スコアに基づいて、候補をランク付けし、ランク付けに従うシーケンスで候補語のリストをユーザに提供する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Jeffrey DeanおよびSanjay Ghemawat、「MapReduce:Simplified Data Processing on Large Clusters」、Sixth Symposium on Operating System Design and Implementation、カリフォルニア州サンフランシスコ、2004年12月
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一態様では、一般には、コンピュータで実施される方法が、ワードコーパスを識別すること、ワード確率値をワードコーパス内の各語と関連付けること、文を識別すること、ワードコーパスに基づいて文の候補セグメンテーションを求めること、およびワードコーパス内の各語について、語に関連する確率値と候補セグメンテーションとに基づいて、関連する確率値を反復的に調節することを含む。
【課題を解決するための手段】
【０００６】
この方法の実装は、以下の特徴のうちの1つまたは複数を含むことができる。この方法は、インプットメソッドエディタ辞書内の関連する最高のワード確率値を有する語によって定義されるワードコーパスの一部を格納することを含む。ワード確率値は、関連する語が文中に出現する確率に対応する。少なくとも1つの文の可能なセグメンテーションを求めることは、ワードコーパスに基づいて、少なくとも1つの文のすべての可能なセグメンテーションを求めることを含む。この方法は、文の各候補セグメンテーションについてセグメンテーション確率値を求めることを含む。文の各候補セグメンテーションについてセグメンテーション確率値を求めることは、各候補セグメンテーションについて、候補セグメンテーション内の語に関連するワード確率値に基づいて、セグメンテーション確率値を求めることを含む。
【０００７】
ワードコーパス内の各語について、関連するワード確率値および候補セグメンテーションに基づいて、関連するワード確率値を反復的に調節することは、各語について、文の候補セグメンテーションに関するセグメンテーション確率値に基づいて、関連するワード確率値を反復的に調節することを含む。各語について、関連するワード確率値を反復的に調節することは、反復ごとに、文の各候補セグメンテーションについて、候補セグメンテーション内の語に関連するワード確率値に基づいて、セグメンテーション確率値を求めること、および各語について、語を含む候補セグメンテーションに関するセグメンテーション確率値に基づいて、関連するワード確率値を調節することを含む。文中の語の改善された確率値を求めることは、(a)語の前のサブストリングの候補セグメンテーションの確率値の和、(b)語の確率値、および(c)語の後のサブストリングの候補セグメンテーションの確率値の和を乗算することを含む。文の候補セグメンテーションを求めることは、文書中の複数の文の候補セグメンテーションを求めることを含む。この方法は、複数の文書中の文を識別すること、および各文について、ワードコーパスに基づいて、文の候補セグメンテーションを求めることを含む。ワード確率値を求める際に、異なるタイプの文書中の文に、異なる重みが与えられる。文書は、公衆ネットワーク、インターネットを介してアクセス可能であり、または複数のサードパーティによって提供される。語は、中国語文字、日本語文字、および韓国語文字のうちの少なくとも1つを含む。語は漢字文字を含む。
【０００８】
別の態様では、一般には、コンピュータで実施される方法が、ワードコーパスの語に関連するワード確率値を求めること、文書コーパス中の文書の文の候補セグメンテーションを求めること、各文の各候補セグメンテーションについて、候補セグメンテーション中の語に関連するワード確率値に基づいて、セグメンテーション確率値を反復的に求めること、および各語について、語を含む候補セグメンテーションに関するセグメンテーション確率値に基づいて、ワード確率値を反復的に調節することを含む。
【０００９】
この方法の実装は、以下の特徴のうちの1つまたは複数を含むことができる。この方法は、文書に関する文書タイプを識別すること、識別した文書タイプに基づいて、文書中の文に重みを割り当てること、および重みに基づいて、セグメンテーション確率値またはワード確率値のうちの1つを求めることを含む。この方法は、各語について、語を含むセグメンテーションのセグメンテーション確率値に基づいて、カウントを蓄積することを含む。各語についてカウントを蓄積することは、語を含むセグメンテーションのセグメンテーション確率値の和を求めることを含む。この方法は、正規化因子に基づいて語についてのカウントを正規化することにより、各語についてワード確率値を求めることを含む。この方法は、すべての語のカウントの和を求めることによって正規化因子を求めることを含む。
【００１０】
別の態様では、一般には、システムが、ワードコーパスおよび文書コーパスを格納するデータストアと、コンピュータ可読媒体内に格納された処理エンジンとを含み、処理装置で実行可能な命令を含む。命令の実行時に、処理装置は、ワード確率値をワードコーパス内の各語と関連付け、ワードコーパスに基づいて、文書コーパス内の各文書の各文の候補セグメンテーションを求め、ワードコーパス内の各語について、関連するワード確率値および候補セグメンテーションに基づいて、関連するワード確率値を反復的に調節する。
【００１１】
別の態様では、一般には、システムが、ワードコーパスおよび文書コーパスを格納するデータストアと、ワード確率値をワードコーパス内の各語と関連付け、ワードコーパスに基づいて、文書コーパス内の各文書の各文の候補セグメンテーションを求め、ワードコーパス内の各語について、関連するワード確率値および候補セグメンテーションに基づいて、関連するワード確率値を反復的に調節する処理装置とを含む。
【００１２】
別の態様では、一般には、システムが、ワードコーパスおよび文書コーパスを格納するデータストアと、処理装置とを含む。処理装置は、ワードコーパスの語に関連するワード確率値を求め、文書コーパス内の文書の文の候補セグメンテーションを求め、各文の各候補セグメンテーションについて、候補セグメンテーション内の語に関連するワード確率値に基づいて、セグメンテーション確率値を反復的に求め、各語について、語を含む候補セグメンテーションに関するセグメンテーション確率値に基づいて、ワード確率値を反復的に調節する。
【００１３】
別の態様では、一般には、システムが、データストアおよび処理装置を含む。データストアは、語と、反復プロセスを使用して求められる、関連するワード確率値とを含む辞書を格納し、反復プロセスは、文書の文の候補セグメンテーションに関するセグメンテーション確率値を反復的に求めること、およびセグメンテーション確率値に基づいて、語に関するワード確率値を反復的に調節することを含む。処理装置は、辞書から語を選択するように構成されたインプットメソッドエディタを提供する。
【００１４】
別の態様では、一般には、システムが、ワード確率値をワードコーパス内の語と関連付ける手段と、複数の文書中の文を識別する手段と、ワードコーパスに基づいて各文の候補セグメンテーションを求める手段と、ワードコーパス内の各語について、関連するワード確率値および候補セグメンテーションに基づいて、関連するワード確率値を反復的に調節する手段とを含む。
【００１５】
別の態様では、一般には、システムが、ワードコーパスの語に関連するワード確率値を求める手段と、文書コーパス内の文書の文の候補セグメンテーションを求める手段と、各文の各候補セグメンテーションについて、候補セグメンテーション内の語に関連するワード確率値に基づいて、セグメンテーション確率値を反復的に求める手段と、各語について、語を含む候補セグメンテーションに関するセグメンテーション確率値に基づいて、ワード確率値を反復的に調節する手段とを含む。
【００１６】
本明細書で開示されるシステムおよび方法は、以下の利点のうちの1つまたは複数を有することができる。文書のコーパスに基づいて辞書を自動的に最適化することができ、最適化された辞書は、候補語の識別および選択を容易にすることができる。同様に、辞書を使用するIMEは、選択のための候補語の識別をより少数にし、かつ/またはより正確にすることを実現することができる。コンピュータが表語文字、例えば中国語文字を処理する速度および効率を改善することができる。辞書のユーザは、最高の確率値を有する望ましい候補語を容易に得ることができ、その結果、ユーザの表語文字の入力速度を向上させることができる。
【００１７】
本明細書に記載の主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載される。説明、図面、および特許請求の範囲から、主題の他の特徴、態様、および利点が明らかとなるであろう。
【００１８】
様々な図面内の同様の参照番号および指示は、同様の要素を示す。
【図面の簡単な説明】
【００１９】
【図１】本明細書に記載のシステムおよび方法を実装するのに使用することのできる例示的装置のブロック図である。
【図２】例示的編集システムのブロック図である。
【図３】例示的インプットメソッドエディタ環境の図である。
【図４】例示的ワード確率決定エンジンの図である。
【図５】ワード確率値を求めるプロセスの流れ図である。
【図６】ワード確率値を求めるプロセスの流れ図である。
【図７】ワード確率値を求めるプロセスの流れ図である。
【発明を実施するための形態】
【００２０】
図1は、本明細書に記載のシステムおよび方法を実装するのに使用することのできる例示的装置100のブロック図である。装置100は、例えば、パーソナルコンピュータ装置などのコンピュータ装置、または携帯電話、移動体通信装置、携帯情報端末(PDA)などの他の電子装置として実装することができる。
【００２１】
例示的装置100は、処理装置102、第1データストア104、第2データストア106、入力装置108、出力装置110、およびネットワークインターフェース112を含む。例えばデータバスおよびマザーボードを含む、バスシステム114を使用して、構成要素102、104、106、108、110、および112の間のデータ通信を確立および制御することができる。他の例示的システムアーキテクチャを使用することもできる。
【００２２】
処理装置102は、例えば1つまたは複数のマイクロプロセッサを含むことができる。第1データストア104は、例えば、ダイナミックランダムアクセスメモリなどのランダムアクセスメモリ記憶装置、または他のタイプのコンピュータ可読媒体メモリ装置を含むことができる。第2データストア106は、例えば1つまたは複数のハードドライブ、フラッシュメモリ、および/または読取り専用メモリ、あるいは他のタイプのコンピュータ可読媒体メモリ装置を含むことができる。
【００２３】
例示的入力装置108は、キーボード、マウス、スタイラスなどを含むことができ、例示的出力装置110は、ディスプレイ装置、オーディオ装置などを含むことができる。ネットワークインターフェース112は、例えば、ネットワーク116にデータを通信し、ネットワーク116からデータを通信するように動作可能な有線またはワイヤレスネットワーク装置を含むことができる。ネットワーク116は、1つまたは複数のローカルエリアネットワーク(LAN)、および/またはインターネットなどの広域ネットワーク(WAN)を含むことができる。
【００２４】
ある実装では、装置100は、データストア106などのデータストア内にインプットメソッドエディタ(IME)コード101を含むことができる。実行時に入力方法編集機能を処理装置102に実施させる命令によって、インプットメソッドエディタコード101を定義することができる。一実装では、インプットメソッドエディタコード101は例えば、ウェブブラウザ環境内で実行することのできるスクリプト命令、例えばJava(登録商標)Script命令またはECMAScript命令などの、インタプリタ型命令を含むことができる。他の実装、例えばコンパイル型命令、スタンドアロンアプリケーション、アプレット、プラグインモジュールなどを使用することもできる。
【００２５】
インプットメソッドエディタコード101の実行は、インプットメソッドエディタインスタンス103を生成し、または立ち上げる。インプットメソッドエディタインスタンス103は、インプットメソッドエディタ環境、例えばユーザインターフェースを定義することができ、装置100での1つまたは複数の入力方法の処理を容易にすることができ、1つまたは複数の入力方法の処理中に、装置100は、例えば漢字文字などの、入力文字、表意文字、または記号に関する構成入力(composition input)を受け取ることができる。例えば、ユーザは、入力装置108(例えば、西洋式キーボードなどのキーボード、手書き認識エンジンを備えるスタイラスなど)のうちの1つまたは複数を使用して、漢字文字の特定のために構成入力を入力することができる。ある例では、漢字文字を複数の構成入力と関連付けることができる。
【００２６】
第1データストア104および/または第2データストア106は、構成入力と文字との関連を格納することができる。ユーザ入力に基づいて、インプットメソッドエディタインスタンス103は、データストア104および/またはデータストア106内の情報を使用して、入力によって表される1つまたは複数の候補文字を識別することができる。ある実装では、複数の候補文字が識別される場合、候補文字が出力装置110上に表示される。入力装置108を使用して、ユーザは、候補文字から、ユーザが入力することを望む漢字文字を選択することができる。
【００２７】
ある実装では、装置100上のインプットメソッドエディタインスタンス103は、1つまたは複数のピンイン構成入力を受け取って、構成入力を漢字文字に変換することができる。インプットメソッドエディタインスタンス103は、例えば、キーストロークから受け取ったピンイン音節またはピンイン文字の構成を使用して、漢字文字を表現することができる。各ピンイン音節は、例えば西洋式キーボードのキーに対応することができる。ピンインインプットメソッドエディタを使用して、ユーザは、漢字文字の音を表す1つまたは複数のピンイン音節を含む構成入力を使用することによって漢字文字を入力することができる。ピンインIMEを使用して、ユーザは、漢字文字の音を表す2つ以上のピンイン音節を含む構成入力を使用することによって2つ以上の漢字文字を含む語を入力することもできる。しかし、他の言語用の入力方法をも容易にすることができる。
【００２８】
ウェブブラウザ、ワードプロセッシングプログラム、Eメールクライアントなどを含む他のアプリケーションソフトウェア105をもデータストア104および/または106内に格納することができる。こうしたアプリケーションのそれぞれは、対応するアプリケーションインスタンス107を生成することができる。各アプリケーションインスタンスは、ユーザにデータを提示し、ユーザからのデータ入力を容易にすることにより、ユーザ体験を容易にすることのできる環境を定義することができる。例えば、ウェブブラウザソフトウェアは検索エンジン環境を生成することができ、EメールソフトウェアはEメール環境を生成することができ、ワードプロセッシングプログラムはエディタ環境を生成することができる、などである。
【００２９】
ある実装では、装置100にアクセスすることのできるリモートコンピューティングシステム118を使用して、表語文字を編集することもできる。例えば、装置100は、ネットワーク116を介して表語文字編集機能を提供するサーバでよい。ある例では、ユーザは、リモートコンピューティングシステム、例えばクライアントコンピュータを使用して、データストア104および/またはデータストア106内に格納された表語文字を編集することができる。装置100は、例えば、ネットワークインターフェース112を介して、文字を選択し、ユーザから構成入力を受信することができる。処理装置102は、例えば、選択された文字に隣接する1つまたは複数の文字を識別し、受け取った構成入力および隣接する文字に基づいて、1つまたは複数の候補文字を識別することができる。装置100は、候補文字を含むデータ通信をリモートコンピューティングシステムに送り戻すことができる。
【００３０】
図2は、例示的インプットメソッドエディタシステム120のブロック図である。インプットメソッドエディタシステム120は、例えばインプットメソッドエディタコード101ならびに関連するデータストア104および106を使用して実装することができる。インプットメソッドエディタシステム120は、インプットメソッドエディタエンジン122、辞書124、および構成入力テーブル126を含む。他の記憶アーキテクチャを使用することもできる。ユーザは、IMEシステム120を使用して、例えばピンイン文字をタイプすることによって中国語の語または句を入力することができ、IMEエンジン122は、辞書124を探索して、ピンイン文字に合致する1つまたは複数の中国語の語または句をそれぞれ含む候補辞書エントリを識別することができる。
【００３１】
辞書124は、1つまたは複数の言語モデルで使用される表語文字の文字、語、または句、ならびにローマン体ベースのアルファベット、すなわち西洋式のアルファベット、例えば英語、ドイツ語、スペイン語などの文字、語、および句に対応するエントリ128を含む。各語は意味に対応し、1つまたは複数の文字を含むことができる。例えば、「リンゴ」という意味を有する語(「林檎」)は、ピンイン入力「rin」および「go」にそれぞれ対応する2つの漢字文字「林」および「檎」を含む。文字「果」はまた、「fruit」という意味を有する語でもある。辞書エントリ128は、例えば、慣用句(例えば「胸有成竹」)、固有名(例えば、「オーストリア共和国」を意味する「奥地利共和国」)、歴史上の人物または有名人(例えば、「チンギスハーン」を意味する「成吉思汗」)、専門用語(例えば「global positioning system」を意味する「全球定位系統」)、句(「一去不復返」)、本のタイトル(例えば、「dream of the red chamber」を意味する「紅楼夢」)、芸術作品のタイトル(例えば、「upper river during the qing ming festival」を意味する「清明上河図」)、および映画のタイトル(例えば、「crouching tiger, hidden dragon」を意味する「臥虎蔵龍」)などを含むことができ、それぞれは1つまたは複数の文字を含む。
【００３２】
同様に、辞書エントリ128は、例えば、地理的実体または行政的実体、会社名、教育機関名、動物または植物の名前、機械の名前、歌の名前、演劇のタイトル、ソフトウェアプログラムの名前、消費者製品の名前などを含むことができる。辞書124は、例えば、数千の文字、語、および句を含むことができる。
【００３３】
ある実装では、辞書124は、文字間の関係についての情報を含む。例えば、辞書124は、文字に隣接する文字に応じて文字に割り当てられるスコアまたは確率値を含むことができる。辞書124は、エントリ128が一般にどのくらいの頻度で使用されるかを示すために、辞書エントリ128のうちの1つにそれぞれ関連するエントリスコアまたはエントリ確率値を含むことができる。
【００３４】
構成入力テーブル126は、構成入力と、辞書124に格納されたエントリ128との関連を含む。ある実装では、構成入力テーブル126は、辞書124内の各エントリを、インプットメソッドエディタエンジン122で使用される構成入力(例えばピンイン入力)にリンクすることができる。例えば、インプットメソッドエディタエンジン122は、辞書124および構成入力テーブル126内の情報を使用して、辞書124内の1つまたは複数のエントリを構成入力テーブル126内の1つまたは複数の構成入力と関連付けること、および/または同一視することができる。他の関連を使用することもできる。
【００３５】
ある実装では、IMEシステム120内の候補選択項目をランク付けし、ランクに従ってインプットメソッドエディタで提示することができる。
【００３６】
図3は、5個のランク付けされた候補選択項目302を提示する例示的インプットメソッドエディタ環境300の図である。各候補選択項目は、辞書エントリ128または辞書エントリ128の組合せでよい。候補選択項目302は、ピンイン入力304に基づいて識別される。選択インジケータ308が、第1候補選択項目、すなわち「谷歌」を取り囲み、第1候補選択項目が選択されることを示す。ユーザはまた、数字キーを使用して候補選択項目を選択することもでき、または上矢印キーおよび下矢印キーを使用して選択インジケータ308を移動し、候補選択項目を選択することもできる。
【００３７】
上述のように、IMEエンジン122は、辞書124にアクセスして、ユーザによって入力されたピンイン文字に関連する候補エントリ128を識別する。IMEエンジン122は、エントリ確率値を使用して、候補エントリをランク付けし、IME環境300内の候補エントリの配置を決定する。例えば、最高のエントリ確率値を有する候補エントリを、IMEエンジン122によってIME環境300内の第1位置に配置することができる。
【００３８】
辞書124を新しい語、名前、または句で周期的に更新することができる。辞書124内のエントリ128の確率値は、時間の経過につれて変化することがある。例えば、IMEシステム120のユーザによって一般にタイプされる文字、語、および句は、ニュースの出来事および社会の変化に応答して、時間の経過につれて変化することがある。ある実装では、文書コーパス内の文字、語、および句の推定頻度に基づいて、辞書124のエントリ128に関連するエントリ確率値を確立および/または更新することができる。
【００３９】
図4は、例えば選択された語および選択された語に関連する確率値を格納する辞書406を生成することのできる、例示的ワード確率決定エンジン400の図である。各語は、1つまたは複数の漢字文字などの1つまたは複数の文字を有することができる。ある例では、ワードコーパス402を、エントリを含むテーブルとして与えることができ、各エントリは1つの語を含む。ワードコーパス402はまた、非文字記号(例えばコンマまたはセミコロン)によって分離される語を含むテキストファイルでもよい。ワードコーパス402内の各語について、ワード確率決定エンジン400は、反復プロセスを使用して、文書コーパス404内の語の出現確率を求める。ワードコーパス402および文書コーパス404をデータストア内に格納することができる。
【００４０】
この説明では、「語」という用語は、文脈に応じて、1つまたは複数の語を含むことのある連続する文字のシーケンスを含むように広く定義されることがある。ワードコーパス402内のそれぞれの「語」は、辞書124内のエントリの候補であり、辞書124内の各エントリは、1つまたは複数の語を含むことがある。例えば、ワードコーパス402がテーブルとして与えられる場合、ワード確率決定エンジン400は、各エントリを、エントリが複数の語を含むことがあるとしても語として扱う。例えば、エントリは、句、慣用句、固有名、歴史上の人物の名前または有名人、専門用語、本のタイトル、芸術作品のタイトル、映画のタイトルなどを含むことができる。同様に、ワードコーパス402が、語が非文字記号(例えばコンマ)で分離されるテキストファイルとして与えられる場合、ワード確率決定エンジン400は、2つの記号間の連続する文字の各シーケンスを、連続する文字のシーケンスが複数の語を含むことがあるとしても語として扱う。したがって、例えば、「林檎」、「胸有成竹」、「奥地利共和国」、「成吉思汗」、「全球定位系統」、「一去不復返」、「紅楼夢」、「清明上河図」、「臥虎蔵龍」などはすべて、ワード確率決定エンジン400では語として扱われる。
【００４１】
ある例では、ワードコーパス402は、中国語および他の言語の語を含むことができる。例えば、ワードコーパス402および文書コーパス404から辞書406を生成することができる。事前に確立された辞書、ユーザ検索照会、または様々なタイプの文書からワードコーパス402を得ることができる。ワードコーパス402は、例えば、数千以上の語および句を含むことができる。ある実装では、辞書406は、ワードコーパス402内に語および句のサブセットを含むことができる。
【００４２】
ある例では、セット402内のいくつかの最高ランクの語および句が選択され、辞書406に追加される。選択された語および句のそれぞれは、辞書406のエントリとなる。語および句に関連する確率値は、辞書エントリに関連する確率値となる。辞書406のエントリを辞書124に追加し、IMEエンジン122で使用して、ユーザによって入力されたピンイン文字に合致する候補エントリを識別することができる。
【００４３】
文書コーパス404は、例えば、ネットワークを介してアクセスすることのできる文書、例えばウェブページ、Eメールメッセージなどを含むことができる。文書コーパス404は、例えば、e-book、定期刊行物の記事、広告、インスタントメッセージ、ブログ、法的文書、または他のタイプの文書を含むことができる。文書コーパス404は、ニュース、映画、音楽、政治討論、科学的発見、法的問題、健康問題、環境問題などの多種多様な主題を包含する文書を含むことができる。例えば会社のイントラネットまたは公共のインターネットから文書を収集することにより、文書コーパス404を確立することができる。したがって、処理される文書の数は、数百万以上の文書の範囲でよい。文書は、例えば漢字文字、英語文字、数字、句読点、記号、HTMLコードなどを含むことができる。他の文書、例えば文学作品の電子的コレクション、電子図書館などを使用することもできる。
【００４４】
以下で説明するように、ワード確率決定エンジン400は、反復プロセスを使用して、文書コーパス404内の語の出現頻度に基づいて、ワードコーパス402内の語の確率値を求める。ワード確率値を求める反復プロセスを実装するために、ワード確率決定エンジン400は、初期「ソフトカウント」をワードコーパス402内の各語に割り当て、各語に関する初期確率値を求める。ソフトカウントおよび確率値は、例えば、語および関連するソフトカウント値のテーブル412、語および関連する確率値のテーブル414などの1つまたは複数のデータストア内に格納することができる。他のデータ記憶アーキテクチャを使用することもできる。
【００４５】
ワード確率決定エンジン400は、各文書404を文に分割し、ワードコーパス402内の語に基づいて各文のすべての可能なセグメンテーション(それぞれ「候補セグメンテーション」と呼ばれる)を識別するワードセグメンテーションエンジン410を含むことができる。文書404の各文がセグメントにセグメント化された後、各セグメントは、ワードコーパス402内の語である。ある実装では、「文」は、2つの非漢字文字、例えば句読点、数字、記号、またはHTMLコードの間の漢字文字の連続的文字列を指す。したがって、ワード確率決定エンジン400によって処理されている各文は、必ずしも言語規則によって定義される完全な文ではない。
【００４６】
ある実装では、反復プロセスの各反復では、各候補セグメンテーションについての確率値を求めるためにワード確率値が使用され、ワード確率値を調節するためにセグメンテーション確率値が使用される。反復は、収束条件または終了条件が発生するまで、例えば最高の100000個のワード確率値が安定するまで、または100回の反復が完了するまで続行することができる。ある例では、ワード確率値が100回未満の反復後に収束する。
【００４７】
ある実装では、隠れマルコフモデルを使用して文をモデル化することができ、隠れマルコフモデルでは、文の正しいセグメンテーションが未知である。例えば、期待値最大化アルゴリズムを使用して、期待値プロセスおよび最大化プロセスを実装することができる。期待値プロセスは、文書コーパス404内のすべての文のすべての可能なセグメンテーションについて、セグメンテーションの期待尤度(または確率)を求める。最大化プロセスは、語が出現するすべてのセグメンテーションの確率値を加算し、正規化因子を使用して和を正規化することにより、各語の確率値を求める。期待値最大化アルゴリズムは、ワード確率値と、セグメンテーションの確率値を最大にする傾向のあるセグメンテーションとを識別する。例えば、所与の文が、
【００４８】
【数１】
2010531492.tif 000003
【００４９】
が最大化されるように[w1]、[w2]、...、および[wk]に分割され、[w1]、[w2]、...、および[wk]のそれぞれは、ワードコーパス402内の語でよく、p(wi)は、語wiに関連するワード確率値である。他の反復プロセスを使用してワード確率値を最大化することもできる。
【００５０】
例えば、ワードコーパス402は、[全]、[球]、[最]、[大]、[的]、[捜]、[索]、[引]、[撃]、[全球]、[最大]、[全球最大]、[捜索]、[引撃]、[捜索引撃]という語を含むことができる。ただし[]は語を表す。以下を含む、ワードコーパス402内の語に基づいて、「全球最大的捜索引撃」という文をいくつかの方式で各セグメントにセグメント化することができる。
[全][球][最][大][的][捜][索][引][撃]、
[全球][最大][的][捜][索][引][撃]、
[全球][最大][的][捜索][引撃]、および
[全球最大][的][捜索引撃]など
上記の例示的セグメンテーションでは、各セグメントは、ワードコーパス402内の語である。ここで、「セグメンテーション」という用語は、文がセグメント化される方式を指す。したがって、[全][球][最][大][的][捜][索][引][撃]は1つのセグメンテーションであり、[全球最大][的][捜索引撃]は別のセグメンテーションである。各セグメンテーションは、1つまたは複数のセグメントを有することができる。例えば、セグメンテーション[全][球][最][大][的][捜][索][引][撃]は、9個のセグメント[全]、[球]、[最]、[大]、[的]、[捜]、[索]、[引]、および[撃]を含む。セグメンテーション[全球最大][的][捜索引撃]は、3個のセグメント[全球最大]、[的]、および[捜索引撃]を含む。
【００５１】
別の例として、ワードコーパス402が語[A]、[B]、[C]、[AB]、[BC]、[ABC]、[D]、および[E]を含み、「A」、「B」、「C」などのそれぞれが漢字文字を表すと仮定する。ワードコーパス402内の語に基づいて、文「ABCDAE」を4つの異なる方式でセグメント化することができる。
[ABC][D][A][E]、
[AB][C][D][A][E]、
[A][BC][D][A][E]、および
[A][B][C][D][A][E]
【００５２】
ワード確率決定エンジン400は、初期「ソフトカウント」をワードコーパス402内の各語に割り当て、各語について初期確率値を求める。ワードソフトカウントは、セグメンテーションの確率値を考慮に入れた、文の様々なセグメンテーション内の語の出現数に対応する。ある実装では、ワードコーパス402内にない文書コーパス404内の語に、低い初期確率値を割り当てることができる。別の他の実装では、ワードコーパス402内にない文書コーパス404内の語を無視することができる。
【００５３】
上記の例では、語[A]、[B]、[C]、[AB]、[BC]、[ABC]、[D]、および[E]に、当初はソフトカウント1が割り当てられると仮定する。すべての語のすべての確率値の和は1に等しいので、各語の確率値は1/8と求められる。最初の反復では、ワード確率決定エンジン400は、セグメンテーション内の語の確率値に基づいて、各セグメンテーションの確率値を求める。例えばセグメンテーション内のすべての語のワード確率値を乗算することにより、セグメンテーション確率値を求めることができる。例えば、文「ABCDAE」のセグメンテーションの確率値は以下の通りでよい。
P([ABC][D][A][E])=(1/8)^4=0.000244、
P([AB][C][D][A][E])-(1/8)^5=0.0000305、
P([A][BC][D][A][E])=(1/8)^5=0.0000305、および
P([A][B][C][D][A][E])=(1/8)^6=0.00000381
ただし、P([][][])は、セグメンテーション[][][]の確率値を表す。
【００５４】
次いで、セグメンテーション確率値が使用されて、語のソフトカウントが調節される。語が尤度piでセグメンテーション内に出現する場合、セグメンテーション内の各語に関するソフトカウント値が、語の各出現について
【００５５】
【数２】
2010531492.tif 000004
【００５６】
だけ増分される。ただし、tは可能なセグメンテーションの合計数であり、
【００５７】
【数３】
2010531492.tif 000005
【００５８】
は、すべての可能なセグメンテーションの尤度の和に等しい正規化因子である。語が出現するすべてのセグメントのセグメンテーション確率値の寄与を正規化因子で割ったものを加算することにより、特定の語のソフトカウントを求めることができる。正規化因子は、例えばすべてのセグメンテーション確率値の和でよい。上記の例では、正規化因子は、(1/8)^4+(1/8)^5+(1/8)^5+(1/8)^6=0.000309に等しい。
【００５９】
上記の例では、語[A]がセグメンテーション[ABC][D][A][E]および[AB][C][D][A][E]内に1度出現し、セグメンテーション[A][BC][D][A][E]および[A][B][C][D][A][E]内に2度出現し、したがってAのソフトカウントは以下のようになる。
S(A)=((1/8)^4+(1/8)^5+(1/8)^5*2+(1/8)^6*2)/0.000309=0.000343/0.000309=1.11
【００６０】
語[B]は、セグメンテーション[A][B][C][D][A][E]内に1度出現し、したがって語[B]のソフトカウントは、(1/8)^6/0.000309=0.0123に等しい。語[C]は、セグメンテーション[AB][C][D][A][E]および[A][B][C][D][A][E]のそれぞれの中に1度出現し、したがって語[C]のソフトカウントは、((1/8))^5+(1/8)^6)/0.000309=0.111に等しい。語[D]および[E]はどちらも、各セグメンテーション内に1度出現し、したがって語[D]および[E]のソフトカウントはどちらも、((1/8)^4+(1/8)^5+(1/8)^6+(1/8)^5)/0.000309=1に等しい。語[AB]は、セグメンテーション[AB][C][D][A][E]内に1度出現し、したがって語[AB]のソフトカウントは、(1/8)^5/0.000309=0.0988に等しい。語[BC]は、セグメンテーション[A][BC][D][A][E]内に1度出現し、したがって語[BC]のソフトカウントは、(1/8)^5/0.000309=0.0988に等しい。語[ABC]は、セグメンテーション[ABC][D][A][E]内に1度出現し、したがって語[ABC]のソフトカウントは、(1/8)^4/0.000309=0.79に等しい。
【００６１】
最初の反復の終わりに、語のソフトカウントは以下の通りとなる。
S([A])=1.11、
S([B])=0.0123、
S([C])=0.111、
S([D])=1、
S([E])=1、
S([AB])=0.0988、
S([BC])=0.0988、および
S([ABC])=0.79
ただし、S([])は、語[]のソフトカウントを表す。ワードソフトカウントがテーブル412内に格納され、次の文、例えば「ABABCDD」が処理されて、別の組のワードソフトカウントが生成される。文書404中のすべての文が同様に処理され、各文について1組のワードソフトカウントが生成される。
【００６２】
ある実装では、文書コーパス404内の異なるタイプの文書に異なる重みを与えることができ、特定のタイプの文書からの文の候補セグメンテーションの確率値に、その特定のタイプの文書に関連する重み値を掛けることができる。例えば、より正式なものであり、より正確である語を有する文書に、あまり正式ではなく、綴りが誤った語を含むことのある文書よりも大きい重みを与えることができる。例えば、主要な新聞または雑誌の発行者によって出版されたニュース文書に重み17を与えることができ、個人によって生み出されたブログ文書に重み10を与えることができ、他の一般的なウェブ文書に重み1を与えることができ、Eメールメッセージに重み0.7を与えることができる。
【００６３】
上記の例を用いると、主要な新聞または雑誌の発行者のニュース文書から導出されるセグメンテーション確率値に17を掛けることができ、個人のブログ文書から導出されるセグメンテーション確率値に10を掛けることができ、他のタイプのウェブ文書から導出されるセグメンテーション確率値に1を掛けることができ、Eメールメッセージから導出されるセグメンテーション確率値に0.7を掛けることができる。ソフトカウントがセグメンテーション確率値から導出されるので、したがってソフトカウントも文書タイプに基づいて重み付けされる。
【００６４】
ある実装では、すべての文書中のすべての文から導出されるワードソフトカウントが、各語のそれぞれのソフトカウントを加算することによって組み合わされる。例えば、語[A]の最終ソフトカウントが、文書のすべての文のすべてから導出される語[A]のソフトカウントを累積する(例えば加算する)ことによって得られる。各語の確率値が、語のソフトカウントを正規化因子で割ることによって求められる。正規化因子は、例えばすべての語のソフトカウントの和でよい。
【００６５】
例えば、語の累積ソフトカウントが以下の通りであると仮定する。
S([A])=10、
S([B])=2、
S([C])=3、
S([D])=1、
S([E])=3、
S([AB])=2、
S([BC])=2、および
S([ABC])=1
上記の例では、正規化因子は、(10+2+3+1+3+2+2+1)=24に等しい。したがって、ワード確率値は以下のように正規化される。
P([A])=10/24=0.417
P([B])=2/24=0.083
P([C])=3/24=0.125
P([E])=3/24=0.125
P([D])=1/24=0.0417
P([AB])=2/24=0.0833
P([BC])=2/24=0.0833、および
P([ABC])=1/24=0.0417
語および関連するワード確率値をテーブル414内に格納することができ、したがって、最初の反復が完了する。
【００６６】
2回目の反復では、セグメンテーションの確率値が、最初の反復で得られたワード確率値に従って調節される。
P([ABC][D][A][E])=0.0417*0.0417*0.417*0.125=0.0000906、
P([AB][C][D][A][E])=0.0833*0.125*0.0417*0.417*0.125=0.0000226、
P([A][BC][D][A][E])=0.417*0.0833*0.0417*0.417*0.125=0.0000755、および
P([A][B][C][D][A][E])=0.417*0.0833*0.125*0.0417*0.417*0.125=0.00000944
【００６７】
同様に、ワードソフトカウント値が、セグメンテーション確率値を正規化因子で割ったものに従って調節され、正規化因子は、すべての可能なセグメンテーションの確率値の和でよい。この例では、正規化因子は0.0000906+0.0000226+0.0000755+0.00000944=0.000198に等しい。ワードソフトカウント値は以下の通りである。
S([A])=(0.0000906+0.0000226+0.0000755*2+0.00000944*2)/0.000198=1.34、
S([B])=0.00000944/0.000198=0.0477、
S([C])=(0.0000226+0.0000755)/0.000198=0.0000981/0.000198=0.495、
S([D])=(0.0000906+0.0000226+0.0000755+0.00000944)/0.000198=1、
S([E])=(0.0000906+0.0000226+0.0000755+0.00000944)/0.000198=1、
S([AB])=0.0000226/0.000198=0.114、
S([BC])=0.0000755/0.000198=0.381、および
S([ABC])=0.0000906/0.000198=0.458
【００６８】
すべての文からのソフトカウントが累積および正規化されて、語の確率値が得られ、次の反復で、語の確率値が使用されて、セグメンテーション確率値が計算され、以下同様である。反復プロセスは、収束条件または終了条件が発生するまで続行する。例えば、所定の反復回数の後、またはある反復から次の反復でのワード確率値の変化が所定のしきい値となるようにワード確率値が収束した後に、反復プロセスを終了させることができる。他の収束条件または終了条件を使用することもできる。
【００６９】
ある実装では、ソフトカウンティングを動的プログラミングで実施することができる。例えば、文が「C1C2C3...Cn」であり、「C1」、「C2」、「C3」などのそれぞれが文字であると仮定する。この文の内部の任意の語Cj1...Cj2について、そのカウントを
【００７０】
【数４】
2010531492.tif 000006
【００７１】
だけ増加させることができる。上式で、
・
【００７２】
【数５】
2010531492.tif 000007
【００７３】
は、Cj1の左側のサブストリングのすべての可能なセグメンテーションの尤度の和であり、
・  p(Cj1...Cj2)は、語Cj1...Cj2の確率の現在の推定であり、
・
【００７４】
【数６】
2010531492.tif 000008
【００７５】
は、Cj2の右側のサブストリングのすべての可能なセグメンテーションの尤度の和であり、
・  αは、この文のすべての可能なセグメンテーションの尤度の和である正規化定数である。αは
【００７６】
【数７】
2010531492.tif 000009
【００７７】
に等しい。
【００７８】
同様に、
【００７９】
【数８】
2010531492.tif 000010
【００８０】
および
【００８１】
【数９】
2010531492.tif 000011
【００８２】
の値を動的プログラミングで計算することができる。例えば、
【００８３】
【数１０】
2010531492.tif 000012
【００８４】
に関する帰納的関数は、
【００８５】
【数１１】
2010531492.tif 000013
【００８６】
i=1、2、...、n+1について、
【００８７】
【数１２】
2010531492.tif 000014
【００８８】
の値が文の左から右に計算され、その終わりに、
【００８９】
【数１３】
2010531492.tif 000015
【００９０】
が得られる。次いで、i=n、n-1、...、3、2、1について、値
【００９１】
【数１４】
2010531492.tif 000016
【００９２】
が文の右から左に計算される。次いで、
【００９３】
【数１５】
2010531492.tif 000017
【００９４】
の式を用いて、Cj1...Cj2のソフトカウント値を求めることができる。
【００９５】
ある実装では、文書の索引付けおよび/または並列処理を使用することができる。文書コーパス404内の文書数は、大規模である可能性があり、索引付けおよび/または並列処理は、処理時間を削減することができる。ある実装では、例えば、参照によりその内容が本明細書に組み込まれるJeffrey DeanおよびSanjay Ghemawatによる「MapReduce:Simplified Data Processing on Large Clusters」、Sixth Symposium on Operating System Design and Implementation、カリフォルニア州サンフランシスコ、2004年12月で説明されているMapReduceプログラミングモデルを用いて、文書コーパス404の処理を並列に実施することができる。
【００９６】
反復プロセスの終わりに、ワードコーパス402内のすべての語の最終確率値が求められる。ある実装では、ワード確率決定エンジン400は、最高の確率値を有する所定の数(例えば300000)の語を選択し、選択した語および関連するワード確率値を、IMEシステム120によってアクセスされる辞書406内に格納する。辞書406は、例えば図2の辞書124の一部でよい。別の実装では、全ワードコーパスおよび関連する確率値を辞書406内に格納することができる。
【００９７】
図5は、文書コーパス(例えば文書コーパス404)内の語の出現に基づいて、ワードコーパス(例えばワードコーパス402)内の語の確率値を求める例示的プロセス500の流れ図である。プロセス500は、例えば、1つまたは複数のサーバコンピュータを含むシステムとして実装することができる。
【００９８】
プロセス500はワードコーパスを識別する(501)。例えば、ワードコーパスは、図4のワードコーパス402でよい。プロセス500では、初期ソフトカウント値が、ワードコーパス内の語に割り当てられ、初期ワード確率値が求められる(502)。例えば、ワード確率決定エンジン400が、初期ソフトカウント値および初期ワード確率値を割り当てることができる。
【００９９】
プロセス500は、文書コーパスの文書中の文を識別する(504)。プロセス500は、ワードコーパス内の語に基づいて、各文の候補セグメンテーションを求める(506)。例えば、ワードセグメンテーションエンジン410で候補セグメンテーションを求めることができる。
【０１００】
プロセス500は、各候補セグメンテーションについて、例えば候補セグメンテーション内の語の確率値に基づいて確率値を求める(508)。例えば、候補セグメンテーション内の語の各確率値を乗算することにより、候補セグメンテーションに関する確率値を求めることができる。ある実装では、セグメンテーションが導出される文書のタイプに基づいて、セグメンテーション確率値に重み値が掛けられる。
【０１０１】
プロセス500は、候補セグメンテーションの確率値に基づいて、各語についてソフトカウントを求める(510)。例えば、語が出現するすべてのセグメンテーションの確率値の寄与を加算することにより、語または句のソフトカウントを求めることができる。
【０１０２】
プロセス500は、ソフトカウントを正規化因子で割ることによって各語の確率値を求める(512)。正規化因子は、例えばすべてのソフトカウントの和でよい。
【０１０３】
プロセス500は、終了条件が発生したかどうかを判定する(514)。終了条件は、例えば、所定の反復回数の実施、または確率値の収束、または何らかの他の条件を含むことができる。
【０１０４】
終了条件が発生しなかった場合、セグメンテーション確率値の決定(508)、ソフトカウントの決定(510)、およびワード確率値の決定(512)が反復される。
【０１０５】
終了条件が発生した場合、プロセス500は、最高の確率値を有する所定の数(例えば300000)の語を識別する(516)。
【０１０６】
プロセス500は、選択した所定の数の語を、インプットメソッドエディタにとってアクセス可能な辞書に追加する(518)。例えば、IMEは、図2のIMEシステム120でよく、所定の数の語を辞書124に含めることができる。
【０１０７】
図6は、文書コーパス内の語の出現に基づいてワードコーパス内の語の確率値を求める例示的プロセス600の流れ図である。プロセス600は、例えば、1つまたは複数のサーバコンピュータを含むシステムとして実装することができる。
【０１０８】
プロセス600はワードコーパスを識別する(602)。例えば、ワードコーパスは、図4のワードコーパス402でよい。プロセス600は、ワードコーパス内の各語にワード確率値を関連付ける(604)。例えば、ワード確率決定エンジン400が、ワードコーパス402内の各語にワード確率値を関連付けることができる。プロセス600は文を識別する(606)。例えば、ワード確率決定エンジン400が、文書コーパス404からの文を識別することができる。プロセス600は、ワードコーパスに基づいて文の候補セグメンテーションを求める(608)。例えば、ワード確率決定エンジン400が、文の候補セグメンテーションを求めることができる。プロセス600は、ワードコーパス内の各語について、語に関連する確率値と候補セグメンテーションとに基づいて、関連する確率値を反復的に調節する(610)。例えば、ワード確率決定エンジン400が、各語について、関連する確率値を反復的に調節することができる。
【０１０９】
図7は、文書コーパス内の語の出現に基づいてワードコーパス内の語の確率値を求める例示的プロセス700の流れ図である。プロセス700は、例えば、1つまたは複数のサーバコンピュータを含むシステムとして実装することができる。
【０１１０】
プロセス700は、ワードコーパスの語に関連するワード確率値を求める(702)。例えば、ワードコーパスは、図4のワードコーパス402でよい。プロセス700は、文書コーパス内の文書の文の候補セグメンテーションを求める(704)。例えば、文書コーパスは文書コーパス404でよい。プロセス700は、各文の各候補セグメンテーションについて、候補セグメンテーション内の語に関連するワード確率値に基づいて、セグメンテーション確率値を反復的に求める(706)。例えば、ワード確率決定エンジン400が、セグメンテーション確率値を反復的に求めることができる。プロセス700は、各語について、語を含む候補セグメンテーションに関するセグメンテーション確率値に基づいて、ワード確率値を反復的に調節する(708)。例えば、ワード確率決定エンジン400が、ワード確率値を反復的に調節することができる。
【０１１１】
様々な実装を説明したが、他の実装を使用することもできる。例えば、入力エンジン122は、中国語文字、日本語文字、韓国語文字、および/またはインド語派文字を入力するように西洋式キーボードからの構成入力をマッピングすることができる。ある例では、記載の一部またはすべての実装を、Cangjie入力方法、Jiufang入力方法、Wubi入力方法、または他の入力方法などの他の入力方法に適用可能にすることができる。異なるタイプの文書に対する重み値、および文書のタイプの分類は、上述のものとは異なるものでよい。処理される語、句、および文書の数、ならびに文書コーパス404内の文書の供給源は、上述のものとは異なるものでよい。
【０１１２】
ある実装では、いくつかの辞書、例えば法律辞書、医学辞書、科学辞書、および一般辞書を使用することができる。特定の分野に関連する辞書で開始することによって各辞書を確立することができる。ワード確率決定エンジン400が、辞書に関連する分野に偏った文書を有する文書コーパスを処理するのに使用される。例えば、法律辞書内の語の確率値を確立するために、法律分野に偏った文書を有する文書コーパスを使用することができる。IMEシステム120は、文字を入力するときに、ユーザが注目の分野(例えば、法律、医学、科学)を選択することを可能にすることができ、注目の分野に関係する辞書から候補語を選択することができる。
【０１１３】
本明細書で説明した主題および機能的動作の実施形態は、本明細書で開示した構造およびその構造的均等物、またはそれらのうちの1つまたは複数の組合せを含む、デジタル電子回路、あるいはコンピュータソフトウェア、ファームウェア、またはハードウェアとして実装することができる。本明細書で説明した主題の実施形態は、1つまたは複数のコンピュータプログラム製品、すなわちデータ処理機器で実行され、またはデータ処理機器の動作を制御する、有形プログラムキャリア上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。有形プログラムキャリアは、伝播信号またはコンピュータ可読媒体でよい。伝播信号は、適切な受信機機器に伝送され、コンピュータで実行される情報を符号化するように生成される人工的に生成された信号、例えば機械で生成された電気的、光学的、または電磁気的信号である。コンピュータ可読媒体は、機械可読記憶装置、機械可読記憶基板、メモリ装置、機械可読伝播信号をもたらす組成物、あるいはそれらのうちの1つまたは複数の組合せでよい。
【０１１４】
「データ処理機器」という用語は、例えばプログラム可能プロセッサ、コンピュータ、あるいは複数のプロセッサまたはコンピュータを含む、データを処理するすべての機器、装置、および機械を包含する。機器は、ハードウェアに加えて、注目のコンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいはそれらの1つまたは複数の組合せを構成するコードを含むことができる。
【０１１５】
コンパイル型言語またはインタプリタ型言語、あるいは宣言型言語または手続型言語を含む任意の形式のプログラミング言語で、コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)を書き込むことができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチンとして、またはコンピューティング環境での使用に適した他の単位としての形式を含む任意の形式で、コンピュータプログラムを配置することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応しない。プログラムを、他のプログラムまたはデータを保持するファイルの一部の中に格納することができ(例えば、マークアップ言語文書内に格納された1つまたは複数のスクリプト)、注目のプログラム専用の単一ファイル内に格納することができ、または複数の調整されたファイル内に格納することができる(例えば、1つまたは複数のモジュール、サブプログラム、またはコードの各部分を格納するファイル)。1つのコンピュータ、あるいは1つの場所に位置し、または複数の場所にわたって分散し、通信ネットワークで相互接続される複数のコンピュータ上で実行されるようにコンピュータプログラムを配置することができる。
【０１１６】
本明細書で説明したプロセスおよび論理フローは、1つまたは複数のコンピュータプログラムを実行して、入力データに対して作用し、出力を生成することによって機能を実施する1つまたは複数のプログラム可能プロセッサで実施することができる。プロセスおよび論理フローはまた、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実施することもでき、機器はまた、専用論理回路として実装することもできる。
【０１１７】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用マイクロプロセッサと専用マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリあるいはその両方から命令およびデータを受け取る。コンピュータの不可欠な要素は、命令を実行するプロセッサと、命令およびデータを格納する1つまたは複数のメモリ装置である。一般に、コンピュータはまた、データを格納する1つまたは複数の大容量記憶装置、例えば磁気ディスク、光磁気ディスク、または光ディスクをも含み、あるいは1つまたは複数の大容量記憶装置からデータを受け取り、または1つまたは複数の大容量記憶装置にデータを転送するように動作可能に結合され、あるいはその両方である。しかし、コンピュータは、そのような装置を有することを必要としない。さらに、別の装置、例えばほんの少数の例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機置としてコンピュータを実施することができる。
【０１１８】
コンピュータプログラム命令およびデータを格納するのに適したコンピュータ可読媒体は、例えば、半導体メモリ装置、例えばEPROM、EEPROM、およびフラッシュメモリ装置、磁気ディスク、例えば内蔵ハードディスクまたは取外し可能ディスク、光磁気ディスク、ならびにCD ROMおよびDVD ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリ装置を含む。プロセッサおよびメモリを専用論理回路で補足することができ、またはプロセッサおよびメモリを専用論理回路内に組み込むことができる。
【０１１９】
ユーザとの対話を実現するために、本明細書で説明した主題の実施形態は、ユーザに情報を表示するディスプレイ装置、例えばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を与えることのできるキーボードおよびポインティングデバイス、例えばマウスまたはトラックボールとを有するコンピュータ上で実装することができる。他の種類の装置を使用して、ユーザとの対話を実現することもでき、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックでよく、ユーザからの入力を、音響入力、音声入力、または触覚入力を含む任意の形態で受け取ることができる。
【０１２０】
本明細書で説明した主題の実施形態は、バックエンド構成要素を例えばデータサーバとして含み、またはミドルウェア構成要素、例えばアプリケーションサーバを含み、あるいはフロントエンド構成要素、例えばユーザが本明細書で説明した主題の実装と対話することのできるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータを含み、あるいは1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロンドエンド構成要素の任意の組合せを含むコンピューティングシステムとして実装することができる。任意の形態または媒体のデジタルデータ通信、例えば通信ネットワークでシステムの構成要素を相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、および広域ネットワーク(「WAN」)、例えばインターネットを含む。
【０１２１】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバは一般に互いに離れており、通常は通信ネットワークを通じて対話する。それぞれのコンピュータ上で動作中であり、互いにクライアントサーバ関係を有するコンピュータプログラムにより、クライアントとサーバの関係が生じる。
【０１２２】
本明細書は多くの特定の実装の詳細を含むが、こうしたものを、何らかの発明の範囲、または特許請求することのできるものの範囲に関する制限であると解釈すべきではなく、特定の発明の特定の実施形態に特有であることがある特徴の説明と解釈すべきである。本明細書で、別々の実施形態の文脈で説明したいくつかの特徴を、単一の実施形態としての組合せで実装することもできる。逆に、単一の実施形態の文脈で説明した様々な特徴を、複数の実施形態で別々に実装することもでき、または任意の適切なサブコンビネーションで実装することもできる。さらに、特徴が、いくつかの組合せで働くものとして上記で説明されるものがあり、さらには当初そのように特許請求されるものがあるが、特許請求される組合せからの1つまたは複数の機能を、ある場合には組合せから削除することができ、特許請求される組合せが、サブコンビネーションまたはサブコンビネーションの変形形態を対象とすることができる。
【０１２３】
同様に、図面では動作が特定の順序で示されるが、このことは、図示される特定の順序または逐次的な順序でそのような動作を実施すること、または望ましい結果を達成するためにすべての図示される動作が実施されることが必要とされると理解すべきではない。ある状況では、マルチタスキングおよび並列処理が有利であることがある。さらに、上述の実施形態での様々なシステム構成要素の分離は、すべての実施形態でそのような分離を必要とすると理解すべきではなく、記載のプログラム構成要素およびシステムを全般的に単一のソフトウェア製品として一緒に統合することができ、または複数のソフトウェア製品としてパッケージ化することができると理解すべきである。
【０１２４】
本明細書に記載の主題の特定の実施形態を説明した。他の実施形態は、以下の特許請求の範囲内にある。例えば、特許請求の範囲に記載の動作を異なる順序で実施し、それでもなお望ましい結果を達成することができる。一例として、添付の図に示されるプロセスは、望ましい結果を達成するために、図示される特定の順序、またはシーケンシャルオーダを必ずしも必要としない。ある実装では、マルチタスキングおよび並列処理が有利であることがある。
【符号の説明】
【０１２５】
100  装置
101  インプットメソッドエディタ(IME)コード
102  処理装置
103  インプットメソッドエディタインスタンス
104  第1データストア
105  他のアプリケーションソフトウェア
106  第2データストア
107  アプリケーションインスタンス
108  入力装置
110  出力装置
112  ネットワークインターフェース
114  バスシステム
116  ネットワーク
118  リモートコンピューティングシステム
120  インプットメソッドエディタシステム
122  インプットメソッドエディタエンジン
124  辞書
126  構成入力テーブル
128  エントリ
300  インプットメソッドエディタ環境
302  候補選択項目
304  ピンイン入力
308  選択インジケータ
400  ワード確率決定エンジン
402  ワードコーパス
404  文書コーパス
406  辞書
410  ワードセグメンテーションエンジン
412  テーブル
414  テーブル
【図１】
2010531492.tif 000018
【図２】
2010531492.tif 000019
【図３】
2010531492.tif 000020
【図４】
2010531492.tif 000021
【図５】
2010531492.tif 000022
【図６】
2010531492.tif 000023
【図７】
2010531492.tif 000024
【手続補正書】
【提出日】平成22年6月24日(2010.6.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、
ワードコーパスを識別する段階と、
ワード確率値を前記ワードコーパス内の各語と関連付ける段階と、
文を識別する段階と、
前記ワードコーパスに基づいて前記文の候補セグメンテーションを求める段階と、
各候補セグメンテーションについてセグメンテーション確率値を求める段階と、
語が出現する前記候補セグメンテーションの前記セグメンテーション確率値に基づいて各語についてソフトカウント値を求める段階であって、前記ソフトカウント値は、前記語が出現する前記候補セグメンテーション内の前記語の出現数に対応する、段階と、
前記ワードコーパス内の各語について、前記語に対する前記ソフトカウント値に基づいて、関連する前記ワード確率値を反復的に調節する段階と
を含む方法。
【請求項２】
インプットメソッドエディタ辞書内の関連する最高の前記ワード確率値を有する語によって定義される前記ワードコーパスの一部を格納する段階を含む請求項1に記載の方法。
【請求項３】
前記ワード確率値が、関連する語が前記文中に出現する確率に対応する請求項1に記載の方法。
【請求項４】
前記文の候補セグメンテーションを求める段階が、前記ワードコーパスに基づいて、少なくとも1つの文のすべての可能なセグメンテーションを求める段階を含む請求項1に記載の方法。
【請求項５】
前記文の各候補セグメンテーションについてセグメンテーション確率値を求める段階が、各候補セグメンテーションについて、前記候補セグメンテーション内の前記語に関連する前記ワード確率値に基づいて、前記セグメンテーション確率値を求める段階を含む請求項１に記載の方法。
【請求項６】
前記ワードコーパス内の各語について、関連する前記ワード確率値および前記候補セグメンテーションに基づいて、関連する前記ワード確率値を反復的に調節する段階が、各語について、前記文の前記候補セグメンテーションに関する前記セグメンテーション確率値に基づいて、関連する前記ワード確率値を反復的に調節する段階を含む請求項１に記載の方法。
【請求項７】
各語について、関連する前記ワード確率値を反復的に調節する段階が、反復ごとに、
前記文の各候補セグメンテーションについて、前記候補セグメンテーション内の前記語に関連する前記ワード確率値に基づいて、前記セグメンテーション確率値を求める段階と、
各語について、前記語を含む前記候補セグメンテーションに関する前記セグメンテーション確率値に基づいて、関連する前記ワード確率値を調節する段階と
を含む請求項1に記載の方法。
【請求項８】
各語について関連する前記ワード確率値を調節する段階が、(a)前記語の前のサブストリングの候補セグメンテーションの前記確率値の和、(b)前記語の前記確率値、および(c)前記語の後のサブストリングの候補セグメンテーションの前記確率値の和を乗算する段階を含む請求項1に記載の方法。
【請求項９】
前記文の候補セグメンテーションを求める段階が、文書中の複数の文の候補セグメンテーションを求める段階を含む請求項1に記載の方法。
【請求項１０】
複数の文書中の文を識別する段階と、各文について、前記ワードコーパスに基づいて、前記文の候補セグメンテーションを求める段階とを含む請求項1に記載の方法。
【請求項１１】
前記ワード確率値を求める際に、異なるタイプの文書中の文に、異なる重みが与えられる請求項１０に記載の方法。
【請求項１２】
前記文書が、公衆ネットワーク、インターネットを介してアクセス可能であり、または複数のサードパーティによって提供される請求項１０に記載の方法。
【請求項１３】
前記語が、中国語文字、日本語文字、および韓国語文字のうちの少なくとも1つを含む請求項1に記載の方法。
【請求項１４】
前記語が漢字文字を含む請求項1に記載の方法。
【請求項１５】
コンピュータで実施される方法であって、
ワードコーパスの語に関連するワード確率値を求める段階と、
文書コーパス中の文書の文の候補セグメンテーションを求める段階と、
各文の各候補セグメンテーションについて、前記候補セグメンテーション中の前記語に関連する前記ワード確率値に基づいて、セグメンテーション確率値を反復的に求める段階と、
各語について、前記語を含む前記候補セグメンテーションに関する前記セグメンテーション確率値に基づいて、前記ワード確率値を反復的に調節する段階と
を含む方法。
【請求項１６】
前記文書に関する文書タイプを識別する段階と、
識別した前記文書タイプに基づいて、前記文書中の文に重みを割り当てる段階と、
前記重みに基づいて、前記セグメンテーション確率値または前記ワード確率値のうちの1つを求める段階と
を含む請求項１５に記載の方法。
【請求項１７】
各語について、前記語を含む前記セグメンテーションの前記セグメンテーション確率値に基づいて、カウントを蓄積する段階を含む請求項１５に記載の方法。
【請求項１８】
各語について前記カウントを蓄積する段階は、前記語を含む前記セグメンテーションの前記セグメンテーション確率値の和を求める段階を含む請求項１７に記載の方法。
【請求項１９】
正規化因子に基づいて前記語についての前記カウントを正規化することにより、各語について前記ワード確率値を求める段階を含む請求項１７に記載の方法。
【請求項２０】
すべての前記語の前記カウントの和を求めることによって前記正規化因子を求める段階を含む請求項１９に記載の方法。
【請求項２１】
語と、反復プロセスを使用して求められる、関連するワード確率値とを含む辞書を確立する段階であって、前記反復プロセスが、文書の文の候補セグメンテーションに関するセグメンテーション確率値を反復的に求める段階と、前記セグメンテーション確率値に基づいて、前記語に関する前記ワード確率値を反復的に調節する段階とを含む段階と、
前記辞書から語を選択するように構成されたインプットメソッドエディタを提供する段階と
を含む方法。
【請求項２２】
ワードコーパスおよび文書コーパスを格納するデータストアと、
コンピュータ可読媒体内に格納され、処理装置で実行可能な命令を含む処理エンジンであって、前記命令が、実行時に、前記処理装置に、
ワード確率値を前記ワードコーパス内の各語と関連付けさせ、
前記ワードコーパスに基づいて、前記文書コーパス内の各文書の各文の候補セグメンテーションを求めさせ、
前記ワードコーパス内の各語について、関連する前記ワード確率値および前記候補セグメンテーションに基づいて、関連する前記ワード確率値を反復的に調節させる処理エンジンと
を備えるシステム。
【請求項２３】
ワードコーパスおよび文書コーパスを格納するデータストアと、
ワード確率値を前記ワードコーパス内の各語と関連付け、
前記ワードコーパスに基づいて、前記文書コーパス内の各文書の各文の候補セグメンテーションを求め、
前記ワードコーパス内の各語について、関連する前記ワード確率値および前記候補セグメンテーションに基づいて、関連する前記ワード確率値を反復的に調節する処理装置と
を備えるシステム。
【請求項２４】
ワードコーパスおよび文書コーパスを格納するデータストアと、
前記ワードコーパスの語に関連するワード確率値を求め、
前記文書コーパス内の文書の文の候補セグメンテーションを求め、
各文の各候補セグメンテーションについて、前記候補セグメンテーション内の前記語に関連する前記ワード確率値に基づいて、セグメンテーション確率値を反復的に求め、各語について、前記語を含む候補セグメンテーションに関するセグメンテーション確率値に基づいて、ワード確率値を反復的に調節する処理装置と
を備えるシステム。
【請求項２５】
語と、反復プロセスを使用して求められる、関連するワード確率値とを含む辞書を格納するデータストアであって、前記反復プロセスが、文書の文の候補セグメンテーションに関するセグメンテーション確率値を反復的に求めること、および前記セグメンテーション確率値に基づいて、前記語に関する前記ワード確率値を反復的に調節することを含むデータストアと、
前記辞書から語を選択するように構成されたインプットメソッドエディタを提供する処理装置と
を備えるシステム。
【請求項２６】
ワード確率値をワードコーパス内の語と関連付ける手段と、
複数の文書中の文を識別する手段と、
前記ワードコーパスに基づいて各文の候補セグメンテーションを求める手段と、
前記ワードコーパス内の各語について、関連する前記ワード確率値および前記候補セグメンテーションに基づいて、関連する前記ワード確率値を反復的に調節する手段と
を備えるシステム。
【請求項２７】
ワードコーパスの語に関連するワード確率値を求める手段と、
文書コーパス内の文書の文の候補セグメンテーションを求める手段と、
各文の各候補セグメンテーションについて、前記候補セグメンテーション内の前記語に関連する前記ワード確率値に基づいて、セグメンテーション確率値を反復的に求める手段と、
各語について、前記語を含む前記候補セグメンテーションに関する前記セグメンテーション確率値に基づいて、前記ワード確率値を反復的に調節する手段と
を備えるシステム。
【国際調査報告】
2010531492.tif 000025
2010531492.tif 000026