(57)【特許請求の範囲】
【請求項１】
言語処理方法であって、
ユーザインタフェースを介して、入力文字列を受信するステップであって、前記入力文字列は表音テキストを含み、前記表音テキストはピンインであり、前記入力文字列は、タイピング誤りを含む、ステップと、
前記入力文字列に対する複数のタイピング候補のリストを作成するステップであって、前記複数のタイピング候補のリストは、タイピング候補が前記入力文字列として誤って入力された確率を示す第１の確率に基づいて、タイピング候補となりうる候補データを有する候補データベースから前記複数のタイピング候補を選択することにより作成され、前記リスト内の各タイピング候補は、異なる複数のセグメントに分割され、前記第１の確率は、複数のユーザから収集されたトレーニングデータを使用してトレーニングされる、ステップと、
前記リスト内の前記複数のタイピング候補の中から、前記入力文字列と置き換えるためのタイピング候補を決定し、決定されたタイピング候補に対応する言語テキストの変換候補を決定するステップであって、前記タイピング候補は、所与のセンテンス内に前記タイピング候補の各セグメントが存在しうる確率を示す第２の確率に基づいて、前記リスト内の個々のタイピング候補の複数のセグメントの中から最高確率となる１つまたは複数のセグメントを各々選択することによって決定され、当該決定されたタイピング候補は前記選択されたセグメントを含み、前記言語テキストは、漢字である、ステップと、
前記決定された変換候補を用いて、前記入力文字列を出力文字列に変換するステップと
を備えることを特徴とする言語処理方法。
【請求項２】
コンピュータに請求項１記載の方法を実行させることが可能な命令を有するコンピュータプログラムを記録したコンピュータ読取り可能な記録媒体。
【請求項３】
言語処理システムであって、
プロセッサと、
前記プロセッサにより処理される、コンピュータ実行可能な命令を記憶するメモリと
を備え、
前記コンピュータ実行可能な命令は、前記プロセッサに、
ユーザインタフェースを介して入力文字列を受信するステップであって、前記入力文字列は表音テキストを含み、前記表音テキストはピンインであり、前記入力文字列は、タイピング誤りを含む、ステップと、
前記入力文字列に対する複数のタイピング候補のリストを作成するステップであって、前記複数のタイピング候補のリストは、タイピング候補が前記入力文字列として誤って入力された確率を示す第１の確率に基づいて、タイピング候補となりうる候補データを有する候補データベースから前記複数のタイピング候補を選択することにより作成され、前記リスト内の各タイピング候補は、異なる複数のセグメントに分割され、前記第１の確率は、複数のユーザから収集されたトレーニングデータを使用してトレーニングされる、ステップと、
前記リスト内の前記複数のタイピング候補の中から、前記入力文字列と置き換えるためのタイピング候補を決定し、決定されたタイピング候補に対応する言語テキストの変換候補を決定するステップであって、前記タイピング候補は、所与のセンテンス内に前記タイピング候補の各セグメントが存在しうる確率を示す第２の確率に基づいて、前記リスト内の個々のタイピング候補の複数のセグメントの中から最高確率となる１つまたは複数のセグメントを各々選択することによって決定され、当該決定されたタイピング候補は前記選択されたセグメントを含み、前記言語テキストは、漢字である、ステップと、
前記決定された変換候補を用いて、前記入力文字列を出力文字列に変換するステップと
を実行させることを特徴とする言語処理システム。
【発明の詳細な説明】
【０００１】  （技術分野）
本発明は、言語入力方法およびシステムに関する。より詳細には、本発明は、テキスト入力時に発生するタイプミスおよびある言語形式から別の言語形式への変換時に発生する変換誤りの両方に対する誤り耐性（ｅｒｒｏｒ  ｔｏｌｅｒａｎｃｅ）のある言語入力方法およびシステムを実現する。
【０００２】  （発明の背景）
言語固有のワードプロセッサソフトが何年もの間存在している。より複雑なワードプロセッサは、スペルおよび文法の訂正など、ユーザに高等なツールを提供し、文書を起草する際に補助する。例えば、多数のワードプロセッサは、スペルミスの単語や文法的に間違っているセンテンス構造を識別し、場合によっては、識別された誤りを自動的に訂正することができる。
【０００３】  一般に、誤りがテキストに入り込む原因は２つある。原因の１つは、ユーザが単に、正しいスペルまたはセンテンス構造を知らないことである。ワードプロセッサは、ユーザが正しいスペルまたは言葉使いを選択する際に手助けするために提案することができる。第２のより一般的な誤りの原因は、ユーザが、正しいスペルまたは文法構造を知っていても単語またはセンテンスを間違ってコンピュータに入力することである。このような状況では、ワードプロセッサは、不適切に入力された文字列を識別し、意図した単語または語句に訂正するのに大変役立つことが多い。
【０００４】  入力誤りは、欧文文字を使用しない言語用に設計されたワードプロセッサで起こりがちである。英語バージョンのＱＷＥＲＴＹキーボードなど言語固有のキーボードは、多くの言語の場合、そのような言語がキーボードのキーとして使いやすく配列できるよりも多くの文字を有するため、存在していない。例えば、多くのアジア言語は数千文字を含む。これだけ多くの様々な文字について別々のキーをサポートするキーボードを構築することは実際上不可能である。
【０００５】  費用のかかる言語および方言固有のキーボードを設計するのではなく、言語固有の文書処理システムは、ユーザが小さな文字セットキーボード（例えば、ＱＷＥＲＴＹキーボード）から表音テキスト（ｐｈｏｎｅｔｉｃ  ｔｅｘｔ）を入力し、その表音テキストを言語テキストに変換することができる。「表音テキスト」は、所与の言語を発話したときに発生する音を表すが、「言語テキスト」はテキストで表示されたとき実際に書かれた文字を表す。例えば、中国語では、ピンインは表音テキストの一例であり、漢字は言語テキストの一例である。表音テキストを言語テキストに変換することにより、多くの様々な言語を、従来のコンピュータおよび標準ＱＷＥＲＴＹキーボードを使用して言語固有のワードプロセッサによって処理できる。
【０００６】  表音入力を必要とするワードプロセッサでは、２種類の入力誤りが発生する可能性がある。１つの種類の誤りは、一般的なタイプミスである。しかし、テキストにタイプミスがないとしても、文書処理エンジンが表音テキストを意図しない文字テキストに誤って変換するという誤りもありえる。これら２つの問題の両方が、同じ表音テキスト入力文字列で作用した場合、一連の複数の誤りが生じることがある。状況によっては、語句またはセンテンスの文脈全体を時間をかけて調査しなければ、タイピングで生じる誤りが容易に追跡できない場合がある。
【０００７】  本明細書で説明する本発明は、表音テキストをタイプした場合のユーザによる前者のタイプの入力誤りを主に対象としているが、文書処理エンジンで生じた変換誤りに対する耐性も提供する。このようなタイピング誤りと関連する問題をよく説明するために、表音テキストであるピンインを言語テキストである漢字に変換する中国語ベースのワードプロセッサを考察する。
【０００８】  表音テキストを入力すると多くの場合タイピング誤りが増える理由はいくつかある。理由の１つは、英語用のキーボードでの平均タイピング精度は英語を話す国々の場合よりも中国の場合の方が低いということである。第２の理由は、表音はそれほど頻繁に使用されているわけではないということである。初期の教育期間中、ユーザは、例えば、英語を話すユーザが英語で単語を綴ることを教わるほど、表音綴りを勉強、学習する傾向はない。
【０００９】  表音テキスト入力中のタイピング誤りが増える第３の理由は、多くの人々が標準語ではなく方言を母語として話すというものである。表音テキストの起源である標準語は、第２言語である。特定の方言およびアクセントでは、話し言葉は、対応する適切な表音と一致しない場合があり、従って、ユーザが表音テキストをタイプすることをより難しくする。例えば、多くの中国人はさまざまな中国語方言を自分の第１言語として話しており、ピンインの起源である北京語を第２言語として教えられている。例えば、いつかの中国語方言では、一定の文脈で「ｈ」と「ｗ」を発音する際に区別がなく、他の方言では、「ｎｇ」と「ｎ」についても同じことが言え、さらに他の方言では、「ｒ」は明瞭に発音されない。そのため、北京語を第２言語として話す中国人ユーザは、ピンインを入力しようとしてタイピング誤りをしがちである。
【００１０】  タイピング誤りが増える理由としては他に、表音テキストをタイプしながら誤りをチェックすることが困難であるということが考えられる。これは、１つには、表音テキストが長く判読しにくくなり、読むことが困難になる傾向があるということによる。見たものがタイプしたものである英語ベースのテキスト入力と対照的に、表音テキストの入力は、「見たものが得られるもの」でないことが多い。むしろ、ワードプロセッサは、表音テキストを言語テキストに変換する。そのため、ユーザは一般に、表音テキストに誤りがないか調べることをしないが、表音テキストが言語テキストに変換されるまで多少待つ。
【００１１】
この最後の理由により、タイピング誤りは、ピンイン入力の文脈ではきわめて厄介なものである。ピンイン文字列は、文字間にスペーシングがないため再検討、訂正が非常に難しい。その代わりに、ピンイン文字は、ピンイン文字で構成される単語の数に関係なく混在する。さらに、ピンイン−漢字変換はすぐに実行されることはないが、追加ピンインを入力するにつれ正しい解釈が定式化され続ける。従って、ユーザが間違ったピンイン記号をタイプした場合、単一の誤りが変換プロセスによって複合され、下流に伝播して、いくつかの追加誤りの原因となる場合がある。その結果、システムが漢字に確定変換しその後ユーザが誤りのあったことに気づくまでに、１回訂正するのにユーザは数回バックスペースを入力せざるをえないため、誤り訂正の時間が長くかかる。システムによっては、元の誤りを明らかにできない場合さえある。
【００１２】  表音入力中に間違いが頻繁に生じることが予想されるため、表音入力の誤りを許容できるシステムが必要である。システムは、表音列がわずかに誤りのある文字列を含むとしても正しい答えを返すのが望ましい。
【００１３】  言語固有ワードプロセッサは他の問題に直面しており、これは、入力問題とは別であって、異なる言語から同じテキストに単語を入力するために２つの言語間でモードを切り替えることに関するものである。例えば、技術用語（例えば、Ｉｎｔｅｒｎｅｔ）などの英単語と翻訳が難しい用語（例えば、頭字語、記号、サーネーム、社名など）を含む文書草稿を中国語で作成することがよくある。従来のワードプロセッサでは、ユーザは異なる単語を入力するときに、一方の言語を他方の言語にモード切替をする必要がある。そのため、ユーザが異なる言語から単語を入力したい場合、ユーザはテキスト入力についての思考を停止し、モードをある言語から別の言語に切り替えて、単語を入力し、それからモードを最初の言語に戻す必要がある。このため、ユーザのタイピング速度が著しく低下し、ユーザは自分の注意をテキスト入力作業と、言語モードの変更という異質な制御作業との間で切り替える必要がある。
【００１４】
従って、モード切替を必要としない「モードレス」システムが必要なのである。モードを無用とするために、システムは、タイプしている言語を検出し、文字シーケンスを１単語ずつ一方の言語または他方の言語に動的に変換することができなければならない。
【００１５】  しかし、これは、両方の文脈で多くの文字列が適切な場合があるため、思ったほど簡単ではない。例えば、多くの有効な英単語はさらに有効なピンイン文字列でもある。さらに、ピンイン入力時に中国語文字間、および中国語文字と英単語との間にスペースがないため、曖昧さが増すことがある。
【００１６】
例えば、ユーザがピンイン入力テキスト「ｗｏｓｈｉｙｉｇｅｚｈｏｎｇｇｕｏｒｅｎ」をタイプすると、システムはこの文字列を中国語文字（一般に「私は中国人である」と翻訳される）に変換する。
【００１７】  ときには、「ｗｏｓｈｉｙｉｇｅｚｈｏｎｇｇｕｏｒｅｎ」とタイプする代わりに、ユーザは次のようにタイプします。
ｗｏｓｉｙｉｇｅｚｈｏｎｇｇｕｏｒｅｎ（誤りは「ｓｈ」と「ｓ」の混同）
ｗｏｓｈｉｙｉｇｅｚｏｎｇｇｕｏｒｅｎ（誤りは「ｚｈ」と「ｚ」の混同）
ｗｏｓｈｉｙｇｅｚｈｏｎｇｇｕｏｒｅｎ（誤りは、「ｙ」の後の「ｉ」の脱落）
ｗｏｓｈｉｙｉｇｅｚｈｏｎｇｇｏｕｒｅｎ（誤りは、「ｏｕ」の並列）
ｗｏｓｈｉｙｉｇｅｚｈｏｎｇｇｕｉｒｅｎ（誤りは「ｉ」と「ｏ」の混同）
【００１８】  発明者は、中国語などの難しい外国語でスペルミスの修正を可能にする文書処理システムと方法をすでに開発しており、自動言語認識機能により複数言語のモードレス入力が可能になっている。
【００１９】    （発明の概要）
言語入力アーキテクチャにより、表音テキスト（例えば、中国語のピンイン）の入力文字列を言語テキスト（例えば、漢字）の出力文字列に変換するが、表音テキストから言語テキストに変換する際に発生するタイプミスおよび変換誤りを極力減らす。言語入力アーキテクチャは、文書処理プログラム、電子メールプログラム、表計算ソフト、ブラウザなどさまざまな分野で実装することができる。
【００２０】
一実装では、言語入力アーキテクチャは入力文字列、記号、またはその他のテキスト要素を受け取るユーザインタフェースを備える。入力文字列は、表音テキストおよび非表音テキスト、さらに１つまたは複数の言語を含むことができる。このユーザインタフェースにより、ユーザは、異なるテキスト形式または異なる言語の入力のモードを切り替えることなく単一の編集行に入力テキストの文字列を入力することができる。この方法により言語入力アーキテクチャは、ユーザが使いやすいように複数の言語のモードレス入力を実現している。
【００２１】
この言語入力アーキテクチャはさらに、検索エンジン、１つまたは複数のタイピングモデル、言語モデル、および異なる言語用の１つまたは複数の用語集を備える。検索エンジンは、ユーザインタフェースから入力文字列を受け取り、入力文字列を１つまたは複数のタイピングモデルに分配する。各タイピングモデルは、各候補文字列が入力文字列として間違って入力された場合のタイピング誤り確率に基づいて入力文字列に置換できる有望なタイピング候補のリストを生成するように構成されている。有望なタイピング候補は、データベースに格納できる。
【００２２】  タイピングモデルは、トレーニングテキストを入力している多くのトレーナから集めたデータでトレーニングする。例えば、中国語の文脈では、トレーナはピンインで書かれているトレーニングテキストを入力する。トレーニングテキストを入力しているときに見つかった誤りを使用して、タイピング誤りを修正するのに使用できるタイピング候補と関連する確率を計算する。複数のタイピングモデルを採用している場合、各タイピングモデルを異なる言語でトレーニングできる。
【００２３】  一実施形態では、タイピングモデルは、入力テキストの文字列を読み取り、音節を対応するタイプされた各文字列の文字に対応付けることによりトレーニングできる。タイプされた各文字が音節の１つに対応づけられる回数を表す頻度カウントを保持し、各音節のタイピングの確率をその頻度カウントから計算する
タイピングモデルは、入力文字列内に存在する可能性のあるタイプミスの原因となりうるタイピング候補の集まりを返す。タイピング候補は、入力文字列と同じ言語またはテキスト形式で書かれる。
【００２４】  検索エンジンはタイピング候補を言語モデルに渡し、これが各タイピング候補の可能性のある変換文字列となる。より具体的には、言語モデルは三重文字言語モデルであり、有望な変換出力文字列が前の２つのテキストエレメントに基づいて候補文字列を表す言語テキスト確率を求めようとする。変換文字列は、入力文字列と異なる言語または異なるテキスト形式で書かれている。例えば、入力文字列は、中国語ピンインまたはその他の表音テキストで構成され、出力文字列は漢字またはその他の言語テキストで構成される。
【００２５】  タイピングおよび言語モデルで求めた確率に基づき、検索エンジンは最高の確率を示す関連するタイピング候補および変換候補を選択する。検索エンジンは、入力文字列（例えば、表音テキストで書かれている）を言語モデルから返された変換候補からなる出力文字列に変換し、入力されたテキスト形式（例えば、表音テキスト）を他のテキスト形式（例えば、言語テキスト）に置き換える。この方法により、表音テキストの入力時のユーザによる入力誤りがなくなる。
【００２６】  複数言語を使用する場合、出力文字列は変換候補と入力文字列の一部分（変換なし）との組み合わせを持つことができる。後者の例では、中国語ベースの言語入力アーキテクチャは、両方の変換されたピンイン−漢字テキストを変換されていない英語テキストとともに出力する。
【００２７】  ユーザインタフェースは、入力文字列の入力にそのまま使用する同じ編集行に出力文字列を表示する。この方法では、変換は自動的に行われ、ユーザが追加テキストを入力するのと同時に行われる。
【００２８】  図全体を通して類似の構成要素および特徴を参照するのに同じ番号を使用している。
【００２９】
（好ましい実施形態の詳細な説明）
本発明は、言語のある形式（例えば、表音バージョン）から言語の別の形式（例えば、書き言葉バージョン）に変換する言語入力システムおよび方法に関連する。このシステムおよび方法は、テキスト入力時に発生するスペルミスおよびタイプミスおよびある言語形式から別の言語形式への変換時に発生する変換誤りに対する誤り耐性がある。説明のため、本発明は、汎用コンピュータで実行される文書処理プログラムの一般的なコンテキスト（ｃｏｎｔｅｘｔ）において説明される。ただし、本発明は、文書処理以外の異なる多くの環境に実装することができ、またさまざまな種類のデバイスで実施することができる。他のコンテキストとしては、電子メールプログラム、表計算ソフト、ブラウザなどを含む。
【００３０】
言語入力システムは、統計的言語モデルを採用して非常に高い精度を達成している。一実施例では、言語入力アーキテクチャは、最高確率ベースの方法による統計的言語モデリング（ｓｔａｔｉｓｔｉｃａｌ  ｌａｎｇｕａｇｅ  ｍｏｄｅｌｉｎｇ）を使用し、自動で、単語をセグメント化し、語彙を選択し、トレーニングデータをフィルタ処理し、可能な最良の変換候補を求める。
【００３１】
センテンスベースの統計的言語モデリング（Ｓｔａｔｉｓｔｉｃａｌ  ｓｅｎｔｅｎｃｅ−ｂａｓｅｄ  ｌａｎｇｕａｇｅ  ｍｏｄｅｌｉｎｇ）では、ユーザの入力が完全であると仮定している。実際には、ユーザの入力にはタイピング誤りやスペルミスが多数ある。従って、言語入力アーキテクチャは、確率論的スペリングモデルを使用して、ありがちなタイピング誤りやスペルミスを許容しながら正しいタイピングを受け入れる１つまたは複数のタイピングモデルを含む。タイピングモデルを英語や中国語など複数言語についてトレーニングし、どれくらいの確からしさで入力シーケンスがある言語の単語であって別の言語の単語ではないかを識別するようにできる。両方のモデルは並列実行でき、その言語モデル（例えば、中国語モデル）により誘導されて最も可能性の高い文字シーケンス（つまり、英語および中国語の文字）を出力する。
【００３２】    ＜コンピュータシステム実施例＞
図１は、中央処理装置（ＣＰＵ）１０２、メモリ１０４、および入出力（Ｉ／Ｏ）インタフェース１０６を備えるコンピュータシステム実施例１００を示している。ＣＰＵ  １０２は、メモリ１０４およびＩ／Ｏインタフェース１０６と通信する。メモリ  １０４は、揮発性メモリ（例えば、ＲＡＭ）および不揮発性メモリ（例えば、ＲＯＭ、ハードディスクなど）を表す。
【００３３】
コンピュータシステム１００は、Ｉ／Ｏインタフェース１０６を介して接続された１つまたは複数の周辺装置を備える。例として、周辺装置は、マウス１１０、キーボード１１２（例えば、英数字ＱＷＥＲＴＹキーボード、表音キーボードなど）、ディスプレイモニタ１１４、プリンタ１１６、周辺記憶装置１１８、およびマイクロホン１２０を備える。例えば、コンピュータシステムは、汎用コンピュータで実装できる。従って、コンピュータシステム１００は、メモリ１０４に格納され、ＣＰＵ  １０２で実行されるコンピュータのオペレーティングシステム（図に示されていない）を実装する。オペレーティングシステムは、ウィンドウ操作環境をサポートするマルチタスクオペレーティングシステムであるのが好ましい。適当なオペレーティングシステムの例として、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ社のＷｉｎｄｏｗｓ（登録商標）ブランドのオペレーティングシステムがある。
【００３４】  ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなど、他のコンピュータシステム構成を使用できることに注意されたい。さらに、図１にはスタンドアローンのコンピュータが示されているが、通信ネットワーク（例えば、ＬＡＮ、インターネットなど）を介してリンクされているリモート処理デバイスによってタスクが実行される分散コンピューティング環境で言語入力システムを実用することもできる。分散コンピューティング環境では、プログラムモジュールをローカルとリモートの両方のメモリ記憶デバイスに配置できる。
【００３５】  データまたは文書処理プログラム１３０は、メモリ１０４に格納され、ＣＰＵ  １０２によって実行される。他のプログラム、データ、ファイルなども、メモリ１０４に格納できるが、説明を簡単にするため示していない。文書処理プログラム１３０は、表音テキストを受け取り、自動的に言語テキストに変換するように構成されている。より具体的には、文書処理プログラム１３０は、説明のためメモリ内に格納されプロセッサによって実行されるコンピュータソフトウェアとして実装されている言語入力アーキテクチャ１３１を実装する。文書処理プログラム１３０は、アーキテクチャ１３１に加えて他のコンポーネントも備えることができるが、そのようなコンポーネントは、文書処理プログラムに標準のものであると考えられるため、図に詳細に示したり、詳細に説明していない。
【００３６】  文書処理プログラム１３０の言語入力アーキテクチャ１３１は、ユーザインタフェース（ＵＩ）１３２、検索エンジン１３４、１つまたは複数のタイピングモデル１３５、言語モデル１３６、および異なる言語用の１つまたは複数の用語集１３７を備える。アーキテクチャ１３１は、言語独立である。ＵＩ  １３２および検索エンジン１３４は、汎用であり、どの言語でも使用できる。アーキテクチャ１３１は、言語モデル１３６、タイピングモデル１３５、用語集１３７を変更することにより特定の言語に合ゎせる。
【００３７】  検索エンジン１３４および言語モジュール１３６はいっしょに使用することで、表音テキスト−言語テキスト間のコンバータ１３８を形成する。タイピングモデル１３５の助けを借りて、コンバータ１３８はユーザのタイピング誤りおよびスペルミスに対し許容性を持つ。この開示の目的のために、「テキスト」は、１つまたは複数の文字および／または文字以外の記号とする。「表音テキスト」は一般に、所与の言語を話すときに生じる音声を表す英数字テキストである。「言語テキスト」は、書き言葉を表す文字と非文字記号である。「非表音テキスト」は、所与の言語を話すときに生じる音声を表さない英数字テキストである。非表音テキストは、言語テキスト以外の書き言葉を表す句読点、特殊文字、および英数字テキストを含む場合がある。
【００３８】  たぶん、より一般的に述べると、表音テキストは、書いたときに欧文文字ベースの文字セットを使用しない所与の言語を話したときに出る音声を表す欧文文字セット（例えば、英語のアルファベット）で表された英数字でよい。言語テキストは、所与の言語に対応する書かれた記号である。
【００３９】
説明の目的のために、ワードプロセッサ１３０は、中国語ベースのワードプロセッサでのコンテキストにおいて説明され、言語入力アーキテクチャ１３１はピンインを漢字に変換するように構成されている。つまり、表音テキストはピンインであり、言語テキストは漢字である。しかし、言語入力アーキテクチャは、言語と無関係であり、他の言語にも使用できる。例えば、表音テキストは日本語の話し言葉の形態でよいが、言語テキストは漢字などの日本語の書き言葉を表す。他の多くの例としては、アラビア語、韓国語、インド語、その他のアジア言語などを含むが、これに限定されるものではない。
【００４０】  表音テキストは、マウス１１０、キーボード１１２、またはマイクロホン１２０などの１つまたは複数の周辺入力デバイスを介して入力する。この方法で、ユーザは、キー入力または音声による表音テキスト入力が可能である。音声入力の場合、コンピュータシステムはさらに、話し言葉を受け取る音声認識モジュール（図に示されていない）を実装し、表音テキストに変換することができる。以下の説明では、キーボード１１２によるテキストの入力をフルサイズの標準英数字ＱＷＥＲＴＹキーボードで実行すると想定している。
【００４１】
ＵＩ  １３２では、表音テキストを入力と同時に表示する。このＵＩは、グラフィカルユーザインタフェースであるのが好ましい。
【００４２】
ユーザインタフェース１３２は、表音テキスト（Ｐ）を検索エンジン１３４に渡し、さらに、これは表音テキストをタイピングモデル１３５に渡す。タイピングモデル１３５は、表音テキストに誤りが含まれていると思われる場合にユーザが意図した表音テキストの適当な編集結果と考えられるさまざまなタイピング候補（ＴＣ1，．．．，ＴＣN）を生成する。タイピングモデル１３５は、妥当な確率が設定されている複数のタイピング候補を検索エンジン１３４に渡し、さらに、これはタイピング候補を言語モデル１３６に渡す。この言語モデル１３６は、センテンス処理中のテキスト文字列（すなわち、ｃｏｎｔｅｘｔ：コンテキスト（文脈））内でタイピング候補を求め、ユーザが意図した表音テキストの変換された形式を表すと考えられる言語テキストで書かれているさまざまな変換候補（ＣＣ1，．．．，ＣＣN）を生成する。変換候補は、タイピング候補と関連付けられている。
【００４３】  表音テキストから言語テキストへの変換は１対１変換ではない。同じあるいは類似した表音テキストが言語テキスト内の多数の文字または記号を表すことがある。従って、表音テキストの文脈は、言語テキストへの変換前に解釈される。他方、非表音テキストの変換は、通常、表示される英数字テキストが英数字入力と同じである直接的な１対１変換となる。
【００４４】  変換候補（ＣＣ1，．．．ＣＣN）が検索エンジン１３４に戻され、このエンジンにより、タイピング候補および変換候補のうちどれがユーザが意図するものである確率が最も高いかを判別する統計分析が実行される。確率が計算されると、検索エンジン１３４により、確率が最も高い候補が選択され、変換候補の言語テキストがＵＩ  １３２に返される。ＵＩ  １３２では、表音テキストを変換候補の言語テキストに置き換え、同じ行に表示する。一方で、新規入力した表音テキストが新規挿入された言語テキストの前の行に表示され続ける。
【００４５】  ユーザが言語テキストを検索エンジン１３４で選択したものから変更したい場合、ユーザインタフェース１３２に、選択が実際に意図した回答である可能性の高さの順序でランク付けられた他の高確率の候補の第１のリストが表示される。ユーザがまだ可能な候補に満足しない場合、ＵＩ  １３２は可能なすべての選択肢を与える第２のリストを表示する。第２のリストは、確率またはその他の測定基準（例えば、ストロークカウントまたは中国語文字の複雑さ）に関してランク付けることができる。
【００４６】    ＜言語入力アーキテクチャ＞
図２は、言語入力アーキテクチャ１３１の詳細を示している。アーキテクチャ１３１は、タイプミスおよび変換誤りの両方を含む、言語入力の誤り耐性をサポートする。ＵＩ  １３２、検索エンジン１３４、言語モデル１３６、およびタイピングモデル１３５に加えて、アーキテクチャ１３１はさらに、エディタ２０４およびセンテンス文脈モデル２１６を備える。センテンス文脈モデル２１６は、検索エンジン１３４に結合されている。
【００４７】  ユーザインタフェース１３２は、表音テキスト（例えば、中国語ピンインテキスト）および非表音テキスト（例えば、英語）などの入力テキストを１つまたは複数の周辺装置（例えば、キーボード、マウス、マイクロホン）から受け取り、その入力テキストをエディタ２０４に渡す。エディタ２０４は、検索エンジン１３２がタイピングモデル１３５および言語モデル１３６とともに入力テキストを、言語テキスト（例えば、漢字テキスト）などの出力テキストに変換するよう要求する。エディタ２０４は、出力テキストをＵＩ  １３２に戻して表示させる。
【００４８】
検索エンジン１３４は、ユーザインタフェース１３２から入力テキストの文字列を受け取ると、その入力テキストの文字列をタイピングモデル１３５の１つまたは複数に送り、さらにセンテンス文脈モデル２１６にも送る。タイピングモデル１３５は、入力テキスト内のタイピング誤りのアプリオリな確率を測定する。タイピングモデル１３５は、入力誤り（例えば、タイプミス）を修正することを実際に求めるユーザによって入力された、入力テキストの有望なタイピング候補を生成して出力する。一実施形態では、タイピングモデル１３５は候補データベース２１０内で潜在的な候補を検索する。他の実装では、タイピングモデル１３５は統計ベースのモデリングを使用して、入力テキストの有望な候補を生成する。
【００４９】  センテンス文脈モデル２１６は、オプションで、タイピングモデル１３５で使用する検索エンジン１３２にセンテンス内のすでに入力されているテキストを送ることができる。この方法では、タイピングモデルは、テキストの新しい文字列とセンテンスにすでに入力されているテキストの文字列との組み合わせに基づいて有望なタイピング候補を生成することができる。
【００５０】  「タイピング誤り」、「タイプミス」、および「スペルミス」という用語は、相互に入れ替えることができ、入力テキストのキー入力時に生じた誤りを指すことは明白である。音声入力の場合、このような誤りは、音声入力の不適切な認識から生じることがある。
【００５１】  タイピングモデル１３５は、有望なタイピング候補をすべて返すか、または確率の低い有望なタイピング候補を取り除き、それにより、高い確率の有望なタイピング候補のみを検索エンジン１３４に返すことができる。さらに、タイピングモデル１３５よりはむしろ検索エンジン１３４が取り除き機能を実行できることも明白であろう。
【００５２】  本発明の一態様によれば、タイピングモデル１３５は、ありがちなタイプミスを観察するため数百あるいは数千のトレーナにセンテンス入力を依頼して集めた実際のデータ２１２を使用してトレーニングされる。以下では「タイピングモデルのトレーニング」という見出しのもとでタイピングモデルおよびトレーニングについて詳述する。
【００５３】
検索エンジン１３４は、タイピングモデル１３５から返された有望なタイピング候補のリストを言語モデル１３６に送る。簡単にいうと、言語モデルは、語句やセンテンスなどの所与の文脈内に、単語またはテキストの文字列がある確率を測定する。つまり、言語モデルは、項目（単語、文字、英字など）のシーケンスを取り、そのシーケンスの確率を推定することができる。言語モデル１３６は、検索エンジン１３４から有望なタイピング候補を前のテキストと組み合わせ、そのタイピング候補に対応する言語テキストの１つまたは複数の候補を生成する。
【００５４】  コーパスデータまたはその他の種類のデータ２１４を使用して、三重文字言語モデル１３６をトレーニングする。トレーニングコーパス２１４は、新聞記事などの日々のテキストなどの一般的な任意の種類のデータ、あるいは特定の分野（例えば、医薬品）を対象とするテキストなどの環境固有のデータとすることができる。言語モデル１３６のトレーニングは、文書処理技術の分野では知られており、ここでは詳述しない。
【００５５】
言語入力アーキテクチャ１３１は、入力テキストの文字列の入力時に生じる誤りを許容し、入力の文字列となる単語およびセンテンスで最も確率の高いものを返そうとする。言語モデル１３６は、タイピングモデル１３５でユーザが入力した入力文字列に対しどのセンテンスが最も妥当かを判別する際に役立つ。２つのモデルは、辞書から、入力された文字列ｓが認識可能でかつ有効な単語ｗである確率Ｐ（ｗ｜ｓ）として統計的に記述することができる。ベイズの公式を使用すると、確率Ｐ（ｗ｜ｓ）は次のように記述される。
【００５６】
【数１】
0005535417.tif 000002
【００５７】
分母Ｐ（ｓ）は、所与の単語（ｗ）を比較可能とする目的で、入力文字列（ｓ）が与えられる。したがって、この数式の解析は、分子の積Ｐ（ｓ｜ｗ）・Ｐ（ｗ）のみが関係する。ここで、確率Ｐ（ｓ｜ｗ）は、スペル、すなわちタイピングモデルの確率を表し、確率Ｐ（ｗ）は言語モデルの確率を表す。より具体的には、タイピングモデルの確率Ｐ（ｓ｜ｗ）は、Ｘを入力するつもりの人が代わりにＹを入力する可能性を示す。言語モデルの確率Ｐ（ｗ）は、与えられたセンテンスの文脈において特定の単語（ｗ）が生成されることとなる可能性を示す。
【００５８】
ピンインを漢字に変換するコンテキストにおいては、確率Ｐ（ｗ｜ｓ）は確率Ｐ（Ｈ｜ｐ）と言い換えることができ、Ｈは漢字文字列、ｐはピンイン文字列を表す。目標は、確率Ｐ（Ｈ｜ｐ）を最大にする、最も確率の高い中国語文字Ｈ′を見つけることである。従って、確率Ｐ（Ｈ｜ｐ）は、入力されたピンイン文字列ｐが有効な漢字文字列Ｈである確率である。ｐは固定されており、従って、確率Ｐ（ｐ）は与えられたピンイン文字列に対し一定であるため、ベイズ公式により、次のように確率Ｐ（Ｈ｜ｐ）が小さくなる。
【００５９】
Ｈ′＝ａｒｇ  ｍａｘ  Ｐ（Ｈ｜ｐ）
＝ａｒｇ  ｍａｘ  Ｐ（ｐ｜Ｈ）＊Ｐ（Ｈ）
【００６０】
確率Ｐ（ｐ｜Ｈ）はスペルまたはタイピングモデルの確率を表す。通常、漢字文字列Ｈは、さらに、複数の単語Ｗ1，Ｗ2，Ｗ3，．．．，ＷMに分割され、確率Ｐ（ｐ｜Ｈ）は次のように推定できる。
【００６１】
Ｐｒ（ｐ｜Ｈ）  ΠＰ（ｐf(i)｜Ｗi）
【００６２】  Ｐf(i)は、単語Ｗiに対応するピンイン文字列のシーケンスである。
【００６３】
従来技術の統計ベースのピンイン−漢字変換システムでは、確率Ｐ（ｐf(i)｜Ｗi）は、Ｐf(i)が単語Ｗiの受け入れ可能なスペルである場合に１に設定され、ｐf(i)が単語Ｗiの受け入れ可能スペルでない場合に０に設定される。そのため、従来のシステムは、誤って入力された文字に対する耐性がない。一部のシステムでは、「南部訛りの発音」機能があり、このような問題に対応しているが、これはプリセット値確率１および０を採用している。さらに、このようなシステムは、（実際のタイピング誤りから学習する）データ駆動方式でないため、タイピング誤りのうちごくわずかしか扱えない。
【００６４】
対照的に、本発明で説明している言語入力アーキテクチャでは、タイピングモデルと言語モデルの両方を利用して変換を実行する。タイピングモデルでは、実際のコーパスから確率Ｐ（ｐf(i)｜Ｗi）をトレーニングすることにより誤って入力した文字に対する誤り耐性が可能になっている。タイピングモデルを構築する方法は多数ある。理論的には、すべての可能なＰ（ｐf(i)｜Ｗi）をトレーニングできるが、実際には、パラメータが多すぎる。トレーニングする必要のあるパラメータの個数を減らす１つの方法として、１文字単語のみを考察し、発音が等価なすべての文字を単一の音節に対応づける方法がある。中国語にはおおよそ４０６個の音節があり、これは本質的にＰ（ピンインテキスト｜音節）をトレーニングし、各文字を対応する音節に対応づけることである。以下では「タイピングモデルのトレーニング」という見出しのもとでこれについて詳述する。
【００６５】
言語入力アーキテクチャ１３１では、広範な確率が計算される。ピンイン−漢字変換の一目標は、確率Ｐ（ｐ｜Ｈ）を最大にする漢字文字列Ｈを見つけることである。これは、最大の確率を最良の漢字シーケンスとして求めるＷiを選択することにより実行する。実際、よく知られているＶｉｔｅｒｂｉ  Ｂｅａｍ検索のような効率的な検索方法を使用できる。Ｖｉｔｅｒｂｉ  Ｂｅａｍ検索法の詳細については、「Ａｕｔｏｍａｔｉｃ  Ｓｐｅｅｃｈ  Ｒｅｃｏｇｎｉｔｉｏｎ」（Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｕｂｌｉｓｈｅｒｓ、１９８９）という表題のＫａｉ−Ｆｕ  Ｌｅｅの記事、および「Ａｕｔｏｍａｔｉｃ  Ｓｐｅｅｃｈ  ａｎｄ  Ｓｐｅａｋｅｒ  Ｒｅｃｏｇｎｉｔｉｏｎ  −  Ａｄｖａｎｃｅｄ  Ｔｏｐｉｃｓ」（Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｕｂｌｉｓｈｅｒｓ、１９９６）という表題のＣｈｉｎ−Ｈｕｉ  Ｌｅｅ、Ｆｒａｎｋ  Ｋ．Ｓｏｏｎｇ、Ｋｕｌｄｉｐ  Ｋ．Ｐａｌｉｗａｌの記事に記載されている。
【００６６】
確率Ｐ（Ｈ）は、言語モデルを表し、所与の単語列のアプリオリな確率を測定する。統計的言語モデル構築の一般的な方法として、プレフィックスツリー風のデータ構造を利用して、知られているテキストのトレーニングセットからＮ重文字言語モデルを構築する方法がある。広く使用されている統計的言語モデルの一実施例として、Ｎ重文字マルコフモデルがあり、これについては、Ｆｒｅｄｅｒｉｃｋ  Ｊｅｌｉｎｅｋ著「Ｓｔａｔｉｓｔｉｃａｌ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｓｐｅｅｃｈ  Ｒｅｃｏｇｎｉｔｉｏｎ」（Ｔｈｅ  ＭＩＴ  Ｐｒｅｓｓ，Ｃａｍｂｒｉｄｇｅ、Ｍａｓｓａｃｈｕｓｅｔｔｓ、１９９７）に説明がある。プレフィックスツリーデータ構造（ａ．ｋ．ａ．サフィックスツリー、またはＰＡＴツリー）の使用により、高レベルアプリケーションで言語モデルを素早く実行し、実質的にリアルタイムに実行する特性を持つ。Ｎ重文字言語モデルでは、テキスト全体を通して文字列（サイズＮ）内の特定のアイテム（単語、文字など）の出現数をカウントする。このカウントを使用して、そのアイテムの列の使用の確率を計算する。
【００６７】
言語モデル１３６は、三重文字言語モデル（つまり、Ｎ＝３とするＮ重文字）であるのが好ましいが、状況によっては二重文字が適している場合がある。三重文字言語モデルは、英語に適しており、また中国にも十分機能するが、大きなトレーニングコーパスを利用すると想定している。
【００６８】  三重文字モデルでは、次のように、次の文字を予測するためにテキスト文字列内の最も前の２つの文字を考慮する。
（ａ）文字（Ｃ）は、定義済み用語集を使用して離散言語テキストまたは単語（Ｗ）にセグメント化され、ツリー内の各Ｗは１つまたは複数のＣに対応づけられる。
（ｂ）前の２つの単語から単語のシーケンス（Ｗ1，Ｗ2，．．．，ＷM）の確率を予測する。
【００６９】
Ｐ（Ｗ1，Ｗ2，Ｗ3，．．．，ＷM）｜ΠＰ（Ｗn〜Ｗn-1，Ｗn-2）
（１）
【００７０】    ただし、Ｐ（）は言語テキストの確率を表す。
【００７１】          Ｗnは、現在の単語である
Ｗn-1）は、前の単語である
Ｗn-2）は、Ｗn-1）の前の単語である
【００７２】
図３は、ユーザによって入力された入力テキスト３００の例を示しており、タイピングモデル１３５および言語モデル１３６に渡される。入力テキスト３００を受け取ると、タイピングモデル１３５は入力テキスト３００を種々の方法でセグメント化し、キーボード入力時に生じる可能性のあるタイプミスを考慮した有望なタイピング候補のリストを生成する。タイピング候補３０２は、前の単語の終了時刻が現在の単語の開始時刻となるように、各時間フレーム内に異なる複数のセグメンテーション（segmentations）が存在する。例えば、候補３０２の上行は、入力テキスト３００の文字列「ｍａｆａｎｇｎｉｔｒｙｙｉｓ．．．」を「ｍａ」、「ｆａｎ」、「ｎｉ」、「ｔｒｙ」、「ｙｉ」などにセグメント分割する。タイピング候補３０２の第２行は、入力文字列「ｍａｆａｎｇｎｉｔｒｙｙｉｓ．．．」を異なる形で「ｍａ」、「ｆａｎｇ」、「ｎｉｔ」、「ｙｕ」、「ｘｉａ」などにセグメント分割する。
【００７３】  これらの候補は、データベースまたはその他の何らかのアクセス可能なメモリに格納できる。図３は、単なる一例にすぎず、入力テキストに対する有望なタイピング候補は多数あり得ることは明白であろう。
【００７４】  言語モデル１３６は、センテンスの文脈で有望なタイピング候補３０２の各セグメントを評価し、関連する言語テキストを生成する。説明のため、有望なタイピングテキスト３０２の各セグメントおよび対応する有望な言語テキストはボックスにまとめられている。
【００７５】
これらの候補から、検索エンジン１３４は、候補のうちどれがユーザが意図するものである確率が最も高いかを判別する統計分析を実行する。タイピング候補は、各行毎に互いの関連性はなく、検索エンジンはいずれかの行から種々のセグメントを自由に選択し、受け入れ可能な変換候補を定義することができる。図３の例では、検索エンジンは、ハイライト表示になっているタイピング候補３０４、３０６、３０８、３１０、３１２、および３１４が最高の確率であることを示していると判断している。これらの候補は、左から右に連結され、候補３０４の後に候補３０６が続くなどして、入力テキスト３００の受け入れ可能な解釈を形成することができる。
【００７６】
確率を計算した後、検索エンジン１３４は、確率が最高の候補を選択する。検索エンジンは次に、入力された表音テキストを選択した候補と関連する言語テキストに変換する。例えば、検索エンジンは入力テキスト３００をボックス３０４、３０６、３０８、３１０、３１２、および３１４で示されている言語テキストに変換し、エディタ２０４を介して言語テキストをユーザインタフェース１３２に返す。句読点がユーザインタフェースに届いた後、つまり新しい入力テキストの文字列が新しいセンテンス内に入ると、タイピングモデル１３５は新しいセンテンス内の新しいテキストの文字列に対する操作を開始する。
【００７７】    ＜一般的な変換＞
図４は、表音テキスト（例えば、ピンイン）を言語テキスト（例えば、漢字）に変換する一般的プロセス４００を示している。このプロセスは、言語入力アーキテクチャ１３１によって実装されており、図２をさらに参照して説明する。
【００７８】
ステップ４０２では、ユーザインタフェース１３２は、ユーザが入力したピンインなどの表音テキスト列を受け取る。入力テキストの文字列には、１つまたは複数のタイプミスが含まれる。ＵＩ  １３２は、エディタ２０４を介して入力テキストを検索エンジン１３４に渡し、検索エンジンは入力テキストをタイピングモデル１３５とセンテンス文脈モデル２１６に配送する。
【００７９】
ステップ４０４では、タイピングモデル１３５は入力テキストに基づいて有望なタイピング候補を生成する。候補を導く一方法として、入力テキストの文字列を異なるパーティションに分割し、その入力文字列のセグメントに最もよく類似する候補をデータベース内で検索する。例えば、図３で、候補３０２は可能なセグメント「ｍａ」、「ｆａｎ」などを示すセグメンテーションを持つ。
【００８０】
有望なタイピング候補が、検索エンジン１３４に返され、その後、言語モデル１３６に伝達される。言語モデル１３６は、有望なタイピング候補と以前の入力テキストとを組み合わせ、タイピング候補に対応する言語テキストの１つまたは複数の候補を生成する。例えば、図３の候補３０２を参照すると、言語モデルはボックス３０２ａ−ｊ内に言語テキストを可能な出力テキストとして返す。
【００８１】  ステップ４０６では、検索エンジン１３４は、候補のうちどれがユーザが意図するものである確率が最も高いかを判別する統計分析を実行する。表音テキストに最も可能性の高いタイピング候補を選択した後、検索エンジンは入力された表音テキストをタイピング候補と関連する言語テキストに変換する。この方法により、表音テキストの入力時のユーザによる入力誤りがなくなる。検索エンジン１３４は、エディタ２０４を介して誤りのない言語テキストをＵＩ  １３２に返す。ステップ４０８では、変換された言語テキストは、ユーザが表音テキストを入力し続けているＵＩ  １３２の画面上の同じ行内位置に表示される。
【００８２】
＜タイピングモデルのトレーニング＞
上で指摘したように、タイピングモデル１３５は、確率Ｐ（ｓ｜ｗ）に基づいて処理がなされる。タイピングモデルでは、入力テキストを出力テキストに変換するのに使用できる異なるタイピング候補の確率を計算し、有望な候補を選択する。この方法で、タイピングモデルは、タイピング誤りが存在していても入力テキストの有望なタイピング候補を返すことにより誤りを許容する。
【００８３】
本発明の一態様は、実際のデータからのタイピングモデルＰ（ｓ｜ｗ）のトレーニングに関するものである。タイピングモデルは、数百または好ましくは数千などできる限り多くのトレーナによるテキスト入力に基づいて開発またはトレーニングされる。トレーナは同じまたは異なるトレーニングデータを入力し、入力されたデータとトレーニングデータとの差異をタイピング誤りとして捕らえる。目標は、同じトレーニングテキストをタイプさせ、タイピングでの誤りの個数またはタイピング候補に基づいて確率を求めることである。このようにして、タイピングモデルはトレーナのタイピング誤りの確率を学習する。
【００８４】  図５は、プロセッサ５０２、揮発性メモリ５０４、および不揮発性メモリ５０６を備えるトレーニング用コンピュータ５００を示している。トレーニング用コンピュータ５００では、ユーザが入力したデータ５１０から確率５１２（つまり、Ｐ（ｓ｜ｗ））を求めるトレーニングプログラム５０８を実行する。トレーニングプログラム５０８は、プロセッサ５０２で実行するように図に示されているが、不揮発性メモリ５０６のストレージからプロセッサにロードされる。トレーニング用コンピュータ５００は、オンザフライでの入力時に、あるいは収集しメモリに格納した後にデータ５１０に基づいてトレーニングを行うように構成することができる。
【００８５】  説明のため、中国語用に手直ししたタイピングモデルを考察し、中国語ピンインテキストは中国語文字テキストに変換する。この場合、数千人の人々にピンインテキストを入力してくれるよう勧誘する。好ましくは、数千個またはそれ以上のセンテンスを各人から収集し、目標はタイピングでの誤りの種類および個数が類似するようにすることである。タイピングモデルは、検索エンジンからピンインテキストを受け取り、入力文字列内の文字の置き換えに使用できる有望な候補を供給するように構成されている。
【００８６】
タイピングモデル１３５をトレーニングするためにさまざまな手法を使用できる。一方法では、タイピングモデルは、単一文字テキストについて、すべての同等な発音の文字テキストを単一音節に対応付けることにより直接トレーニングされる。例えば、中国語ピンインには４００を超える音節がある。音節を与える表音テキストの確率（例えば、Ｐ（ピンインテキスト｜音節）をトレーニングし、各文字テキストを対応する音節に対応付ける。
【００８７】
図６は、音節対応付けトレーニング手法６００を示している。ステップ６０２で、トレーニングプログラム５０８は、トレーナが入力したテキスト文字列を読みとる。テキスト文字列は、センテンスでも、また単語および／または文字のその他のグループでもよい。プログラム５０８は、音節をテキストの文字列内の対応する英字に合わせるか、または対応付ける（ステップ６０４）。各テキスト文字列では、各音節に対応付けた英字の頻度が更新される（ステップ６０６）。これは、ステップ６０８から「はい」分岐で表されているように、トレーナにより入力されたトレーニングデータに含まれるテキスト文字列ごとに繰り返される。最終的に、入力されたテキスト文字列は、中国語ピンインの多くのまたはすべての音節を表す。ステップ６０８から「いいえ」分岐により表されるように、すべての文字列が読み込まれたら、トレーニングプログラムは、ユーザが各音節をタイピングする確率Ｐ（ピンインテキスト｜音節）を決定する（ステップ６１０）。一実装では、そのタイピングする確率Ｐ（ピンインテキスト｜音節）は、すべての音節を最初に正規化して決定される。
【００８８】  各音節は、隠しマルコフモデル（ＨＭＭ）として表すことができる。各入力キーは、ＨＭＭで対応付けられている状態のシーケンスとして表示できる。正しい入力および実際の入力をすりあわせて状態間の遷移確率を求める。異なるＨＭＭを使用して、異なる技能レベルのタイピストをモデル化することができる。
【００８９】  中国語で４０６個すべての音節をトレーニングするには、大量のデータが必要である。このデータ要件を緩和するために、異なる音節内の同じ文字を１つの状態として結びつける。これにより、状態の個数は２７にまで減らされる（つまり、「ａ」から「ｚ」までの２６個の異なる英字に、不明な文字を表す文字１つ）。このモデルは、三重文字言語モデルを利用するＶｉｔｅｒｂｉ  ｂｅａｍ検索法に統合することもできる。
【００９０】
さらに他のトレーニング手法では、トレーニングは英字の挿入（φ→ｘ）、
【００９２】
英字の削除（ｘ→φ）、
【００９４】
および一方の文字を他方に置換（ｘ→ｙ）
【００９６】    ）などの単一文字編集の確率に基づく。このような単一文字編集の確率は次のように統計的に表すことができる。
【００９７】        置換：Ｐ（ｘをｙで置換）
挿入：Ｐ（ｘをｙの前／後に挿入）
削除：Ｐ（ｘをｙの前／後に削除）
【００９８】  各確率（Ｐ）は、本質的に二重文字タイピングモデルであるが、隣接する文字を超えるかなり広い文脈のテキストを考慮したＮ重文字タイピングモデルに拡張することもできる。従って、入力テキストの可能な文字列について、タイピングモデルは、まず正しい文字シーケンスを供給し、次に動的プログラミングを使用して正しい文字シーケンスを与えられた文字シーケンスに変換する最低コスト経路を求めることにより、すべての可能な文字シーケンスを生成する確率を持つ。コストを、最小数の誤り文字または他の何らかの測定基準として決めることができる。実際には、この誤りモデルは、Ｖｉｔｅｒｂｉ  Ｂｅａｍ検索法の一部として実装できる。
【００９９】  タイピング誤りまたはスペルミス以外の種類の誤りは、本発明の範囲内でトレーニングできることは明白であろう。さらに、異なるトレーニング手法を使用して、本発明の範囲から逸脱することなくタイピングモデルをトレーニングすることができることも明白であろう。
【０１００】  ＜モードレス入力の多言語トレーニング＞
言語入力システムを悩ます他のやっかいな問題として、２つまたはそれ以上の言語を入力したときのモードの切り替えの必要性である。例えば、中国語でタイプしているユーザは、英語の単語を入力したい場合がある。従来の入力システムでは、ユーザは英単語のタイピングと中国語の単語のタイプのモード切替が必要である。残念なことに、ユーザが切り替えを忘れやすいということである。
【０１０１】  言語入力アーキテクチャ１３１（図１）をトレーニングして混合言語入力を受け入れトレーニングすることができ、従って、多言語文書処理システムにおいて２つまたはそれ以上の言語間のモード切替をなくすことができる。これは、「モードレス入力」と呼ばれる。
【０１０２】  この言語入力アーキテクチャは、中国語と英語を区別するなど、異なる言語の単語を自動的に識別するスペル／タイピングモデルを実装している。これは、多くの正当な英単語は正当なピンイン文字列であるため容易ではない。さらに、ピンイン、英語、および中国語文字の間にスペースが入らないため、入力時に曖昧さが増すことがある。以下のベイズ規則を使用すると、
【０１０３】
Ｈ′＝ａｒｇ  ｍａｘ  Ｐ（Ｈ｜ｐ）
＝ａｒｇ  ｍａｘ  Ｐ（ｐ｜Ｈ）＊Ｐ（Ｈ）
【０１０４】
目的関数は、英語ではスペルモデルＰ（ｐ｜Ｈ）、中国語では言語モデルＰ（Ｈ）の２つの部分があることで特徴付けることができる。
【０１０５】  混合言語入力を取り扱う一方法として、第２言語からの単語を第１言語の特殊カテゴリとして取り扱うことにより、第１言語（例えば、中国語）の言語モデルをトレーニングする方法がある。例えば、第２言語からの単語を第１言語の単一単語として取り扱う。
【０１０６】  例えば、中国語ベースの文書処理システムでは、英語キーボードを入力デバイスとして使用する。中国語ベースの文書処理システムで採用しているタイピングモデルは、中国語言語モデルであって、英単語と中国語単語を混ぜたテキストでトレーニングされる。
【０１０７】  混合言語入力を取り扱う第２の方法として、言語入力アーキテクチャで２つのタイピングモデル、中国語タイピングモデルと英語タイピングモデルを実装し、それぞれを別々にトレーニングする方法がある。つまり、中国語タイピングモデルは、上で説明した方法でトレーナにより入力された表音列などのキーボード入力のストリーム上でトレーニングされ、英語タイピングモデルは英語を話すトレーナによって入力された英語テキスト上でトレーニングされる。
【０１０８】  英語タイピングモデルは、以下の組み合わせとして実装することができる。
１．中国語テキストに挿入された実際の英語上でトレーニングした一重文字言語モデル。このモデルは、多くの頻繁に使用される英単語を取り扱えるが、見たことのない英単語は予測できない。
【０１０９】  ２．３音節確率の英語スペルモデル。このモデルは、すべての３音節シーケンスに対し確率が０でないが、英語に似た単語になる可能性のある単語については確率が高くなる。これは、実際の英単語からもトレーニングでき、見たことのない英単語も取り扱える。
【０１１０】  これらの英語モデルは、一般に、英語テキストに対しては非常に高い確率、英語テキストのように見える英字列には高い確率、非英語テキストには低い確率を返す。
【０１１１】  図７は、図２のアーキテクチャ１３１から修正された言語入力アーキテクチャ７００を示しており、これは複数のタイピングモデル１３５（１）〜１３５（Ｎ）を採用している。各タイピングモデルは、特定の言語に合わせて構成されている。各タイピングモデル１３５は、単語と、特定の言語に共通する誤りを使用して別々にトレーニングされる。従って、別々のトレーニングデータ２１２（１）〜２１２（Ｎ）が、関連するタイピングモデル１３５（１）〜１３５（Ｎ）について供給される。実施例では、英語に対して１つのタイピングモデル、中国語に対してもう１つのタイピングモデルというようにタイピングモデルを２つだけ使用している。ただし、言語入力アーキテクチャを修正して、２つよりも多いタイピングモデルを含めて、２つよりも多い言語の入力に対応するようにできることは明白であろう。また、言語入力アーキテクチャは、日本語、韓国語、フランス語、ドイツ語などの他の多くの多言語文書処理システムでも使用できることも指摘しておくべきであろう。
【０１１２】  言語入力アーキテクチャの操作時に、英語タイピングモデルは中国語タイピングモデルと並列に動作する。２つのタイピングモデルは互いに競合しており、入力したテキスト文字列が中国語文字列（誤りを含む）または英語文字列（さらに潜在的に誤りを含む）である可能性のある確率を計算することにより入力テキストが英語か中国語かを識別する。
【０１１３】  入力テキストの文字列またはシーケンスが明確に中国語ピンインテキストの場合、中国語タイピングモデルは英語タイピングモデルよりもかなり高い確率を返す。そこで、言語入力アーキテクチャは、入力されたピンインテキストを漢字テキストに変換する。入力テキストの文字列またはシーケンスが明確に英語（例えば、サーネーム、頭字語（「ＩＥＥＥ」）、会社名（「Ｍｉｃｒｏｓｏｆｔ」）、技術（「ＩＮＴＥＲＮＥＴ」）、など）の場合、英語タイピングモデルは中国語タイピングモデルよりもかなり高い確率を示す。従って、このアーキテクチャは、英語タイピングモデルに基づいて入力テキストを英語テキストに変換する。
【０１１４】  入力テキストの文字列またはシーケンスが曖昧な場合、中国語および英語タイピングモデルは、中国語か英語かわからない曖昧さを解消するためにさらなる文脈から情報が得られるまで確率を計算し続ける。入力テキストの文字列またはシーケンスが中国語にも英語にも似ていない場合、中国語タイピングモデルは英語タイピングモデルよりも許容性が低い。そのため、英語タイピングモデルは確率が、中国語タイピングモデルよりも高くなる。
【０１１５】
多言語変換を説明するために、ユーザが「私はＩＮＴＥＲＮＥＴマガジンを読むのが好きだ」という意味のテキスト文字列「ｗｏａｉｄｕｉｎｔｅｒｎｅｔｚａｚｈｉ」を入力すると仮定する。初期文字列「ｗｏａｉｄｕ」を受け取った後、中国語タイピングモデルは、英語タイピングモデルよりも高い確率となり、入力テキストのその部分を「ＩＮＴＥＲＮＥＴ」に変換する。このアーキテクチャは、続いてタイプした曖昧な部分「ｉｎｔｅｒｎｅ」を英字「ｔ」がタイプされるまで探し続ける。このときに、英語タイピングモデルは、「ＩＮＴＥＲＮＥＴ」について中国語タイピングモデルよりも高い確率を返し、言語入力アーキテクチャは入力テキストのこの部分を「ＩＮＴＥＲＮＥＴ」に変換する。次に、中国語タイピングモデルは、「ｚａｚｈｉ」について英語タイピングモデルよりも高い確率を示し、言語入力アーキテクチャは入力テキストのその部分について変換する。
【０１１６】  ＜多言語入力変換＞
図８は、タイプミスとともに入力された多言語入力テキスト文字列を誤りのない多言語出力テキスト文字列に変換するプロセス８００を示している。このプロセスは、言語入力アーキテクチャ７００によって実装されており、図７をさらに参照して説明する。
【０１１７】  ステップ８０２では、ユーザインタフェース１３２は、多言語入力テキスト文字列を受け取る。これは、少なくとも１つの他の言語（例えば、英語）の表音単語（例えば、ピンイン）および単語を含む。入力テキストはさらに、ユーザが表音単語および第２言語の単語を入力したときのタイプミスも含む場合がある。ＵＩ  １３２は、エディタ２０４を介して多言語入力テキスト文字列を検索エンジン１３４に渡し、検索エンジンは入力テキストをタイピングモデル１３５（１）〜１３５（Ｎ）とセンテンス文脈モデル２１６に分配する。
【０１１８】
タイピングモデルはそれぞれ、ステップ８０４（１）〜８０４（Ｎ）によって表されるような入力テキストに基づいて有望なタイピング候補を生成する。ステップ８０６では、妥当な確率が設定された有望なタイピング候補が検索エンジン１３４に返される。ステップ８０８では、検索エンジン１３４がタイピング確率とともにタイピング候補を言語モデル１３６に送る。ステップ８１０では、言語モデルが有望なタイピング候補と以前の入力テキストとを組み合わせることによってセンテンスベースの文脈を提供し、図３に示したように、複数のタイピング候補を通じてセグメント経路を選択することによりタイピング候補に対応する言語テキストの１つまたは複数の変換候補を生成する。ステップ８１２では、検索エンジン１３４は統計分析を実行して、ユーザが意図する最高の確率を示す変換候補を選択する。
【０１１９】  ステップ８１４では、テキスト文字列に対する最も有望な変換候補が出力テキスト文字列に変換される。出力テキスト文字列は、言語テキスト（例えば、漢字）と第２言語（例えば、英語）を含むが、タイピング誤りは省かれる。検索エンジン１３４は、エディタ２０４を介して誤りのない出力テキストをＵＩ  １３２に返す。ステップ８１６では、変換された言語テキストは、ユーザが表音テキストを入力し続けているＵＩ  １３２の画面上の同じ行内位置に表示される。
【０１２０】  上の例では、中国語が主言語であり、英語は第２言語である。２つの言語は両方とも、主言語として指定できることは明白であろう。さらに、２つよりも多い言語は混合入力テキスト文字列を形成することができる。
【０１２１】    ＜結論＞
上の説明では、構造機能および／または方法論的動作に固有の言語を使用しているが、付属の請求項で定義されている本発明は説明した特定の機能または動作に限られるわけではない。むしろ、特定の機能および動作は、本発明を実装する実施例として開示されている。
【図面の簡単な説明】
【図１】  言語入力アーキテクチャを実装する言語固有のワードプロセッサを備えるコンピュータシステムのブロック図である。
【図２】  言語入力アーキテクチャの実施例のブロック図である。
【図３】  構文解析またはセグメント化して異なる音節群に分けたテキスト文字列および、テキスト文字列に誤りが含まれると仮定してそれらの音節を置き換えるのに使用することができる候補を説明しているブロック図である。
【図４】  言語入力アーキテクチャで実行される一般的変換を示す流れ図である。
【図５】  言語入力アーキテクチャで採用されている確率ベースのモデルをトレーニングするために使用されるトレーニングコンピュータのブロック図である。
【図６】  一トレーニング手法を説明する流れ図である。
【図７】  複数のタイピングモデルを使用する、言語入力アーキテクチャの他の実施例のブロック図である。
【図８】  他言語変換プロセスを説明する流れ図である。
【図１】
0005535417.tif 000003
【図２】
0005535417.tif 000004
【図３】
0005535417.tif 000005
【図４】
0005535417.tif 000006
【図５】
0005535417.tif 000007
【図６】
0005535417.tif 000008
【図７】
0005535417.tif 000009
【図８】
0005535417.tif 000010