(57)【要約】      （修正有）【課題】言語入力ユーザインタフェースの改善。【解決手段】キーボード、音声認識等で入力した表音文字の入力テキストを、書き言葉の出力テキストに変換する言語入力アーキテクチャで、出力テキストと未変換の入力テキストを互いにインラインで表示するユーザインタフェース（ＵＩ）を提供する。さらに、入力モードから編集モードに切り替えずに、編集または誤り修正が実行できるインプレース編集機能が提供される。インプレース編集を支援するために、ＵＩは、出力テキストが変換された表音文字テキストが納められたポップアップウィンドウと、現在の出力テキストを置き換えるのに使用できると思われる代替え候補の小さいセットと大きいセットを含む第２の候補リストを表示する。この言語入力ユーザインタフェースはまた、異なる言語の混合テキストを入力することを可能にする。【選択図】図２２
2011060308.tif 000002
【特許請求の範囲】
【請求項１】
表音文字テキストで書かれた入力文字列を受け取り、候補文字列が間違って前記入力文字列として入力されたタイピング誤りの確率を決定するタイピングモデル手段と、
言語テキストで書かれた文字列が前記候補文字列を表す場合の言語テキストの確率を決定する言語モデル手段と、
前記タイピング誤りの確率と前記言語テキストの確率に基づいて表音文字テキストの前記入力文字列を言語テキストの前記文字列に選択的に変換する手段と、
表音文字テキストと言語テキストを共通行内に表示する表示手段と
を備えることを特徴とする言語入力装置。
【請求項２】
入力デバイスにより、表音文字テキストで書かれた入力文字列を受け取るステップと、
前記プロセッサにより、候補文字列が間違って前記入力文字列として入力されたタイピング誤りの確率を決定するステップと、
前記プロセッサにより、言語テキストで書かれた文字列が前記候補文字列を表す場合の言語テキストの確率を決定するステップと、
前記プロセッサにより、前記タイピング誤りの確率と前記言語テキストの確率に基づいて表音文字テキストの前記入力文字列を言語テキストの前記文字列に選択的に変換するステップと、
表示手段の表示画面上に表音文字テキストと言語テキストを共通行内に表示する表示ステップと
を実行することを特徴とする言語入力装置の方法。
【請求項３】
入力デバイスを介して、表音文字テキストで書かれた入力文字列を受け取る手段と、
前記プロセッサにより、候補文字列が間違って前記入力文字列として入力されたタイピング誤りの確率を決定する手段と、
前記プロセッサにより、言語テキストで書かれた文字列が前記候補文字列を表す場合の言語テキストの確率を決定するステップと、
前記プロセッサにより、前記タイピング誤りの確率と前記言語テキストの確率に基づいて表音文字テキストの前記入力文字列を言語テキストの前記文字列に選択的に変換する手段と、
表示手段の表示画面上に表音文字テキストと言語テキストを共通行内に表示させる手段と
としてコンピュータに動作させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連事例）
本出願は、１９９９年１１月５日出願の米国仮特許出願第６０／１６３，５８８号の特典を主張する。
【０００２】
本特許出願はさらに、「Ｌａｎｇｕａｇｅ  Ｉｎｐｕｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｆｏｒ  Ｃｏｎｖｅｒｔｉｎｇ  Ｏｎｅ  Ｔｅｘｔ  Ｆｏｒｍ  ｔｏ  Ａｎｏｔｈｅｒ  Ｔｅｘｔ  Ｆｏｒｍ  Ｗｉｔｈ  Ｔｏｌｅｒａｎｃｅ  Ｔｏ  Ｓｐｅｌｌｉｎｇ，Ｔｙｐｏｇｒａｐｈｉｃａｌ，Ａｎｄ  Ｃｏｎｖｅｒｓｉｏｎ  Ｅｒｒｏｒｓ」という表題の＿＿＿＿年＿＿月＿＿日に同時に出願された米国特許出願第＿＿＿＿号および「Ｌａｎｇｕａｇｅ  Ｉｎｐｕｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｆｏｒ  Ｃｏｎｖｅｒｔｉｎｇ  Ｏｎｅ  Ｔｅｘｔ  Ｆｏｒｍ  ｔｏ  Ａｎｏｔｈｅｒ  Ｔｅｘｔ  Ｆｏｒｍ  Ｗｉｔｈ  Ｍｏｄｅｌｅｓｓ  Ｅｎｔｒｙ」という表題の＿＿＿＿年＿＿月＿＿日に同時に出願された米国特許出願第＿＿＿＿号との同時係属出願でもある。これらの同時係属出願は両方とも、引用により本出願に取り込まれている。
【０００３】
（技術分野）
本発明は、言語入力ユーザインタフェースに関する。より具体的には、本発明は、言語固有または多言語文書処理システム（ｗｏｒｄ  ｐｒｏｃｅｓｓｉｎｇ  ｓｙｓｔｅｍｓ）、電子メールシステム、ブラウザなどで使用できる、表音文字テキスト（ｐｈｏｎｅｔｉｃ  ｔｅｘｔ）を入力し、言語テキスト（ｌａｎｇｕａｇｅ  ｔｅｘｔ）に変換する言語入力ユーザインタフェースに関する。
【背景技術】
【０００４】
（発明の背景）
英数字キーボード（たとえば、英語ＱＷＥＲＴＹキーボード）を利用する言語固有文書処理システムは何年も前から存在している。英数字キーボードは、欧文文字セットなどの小さなアルファベットを採用している言語ではうまく機能する。しかし残念なことに、すべての言語が小さなキャラクタベース（ｃｈａｒａｃｔｅｒ  ｂａｓｅ）を持つわけではない。たとえば、中国語、日本語、韓国語などのキャラクタベース言語（記号言語（ｓｙｍｂｏｌ  ｌａｎｇｕａｇｅｓ）ともいう）は、数千文字で構成される。多くの異なる文字に対し別々のキーをサポートするキーボードを組み立てることは実際上不可能であるため、キャラクタベース言語には言語固有キーボードが存在していない。
【０００５】
費用のかかる言語および方言固有のキーボードを設計するのではなく、言語固有の文書処理システムではむしろ、ユーザが小さな文字セットキーボード（たとえば、ＱＷＥＲＴＹキーボード）から表音文字テキストを入力し、その表音文字テキストをキャラクタベース言語の言語テキストに変換するようにできる。「表音文字テキスト」は、所定の言語を発話したときに発生する音声を表すが、「言語テキスト」はテキストに表示されるとおり実際に書かれた文字を表す。たとえば、中国語では、ピンインは表音文字テキストの一例であり、漢字は言語テキストの一例である。通常、表音文字テキストを表すのに必要な文字セットは、言語テキストを表すのに使用される文字セットに比べてかなり小さい。表音文字テキストを言語テキストに変換することにより、多くの異なる言語を、従来のコンピュータおよび標準ＱＷＥＲＴＹキーボードを使用する言語固有のワードプロセッサにより処理できる。
【０００６】
表音文字テキストのユーザ入力を容易にするため、言語固有文書処理システムは言語入力ユーザインタフェース（ＵＩ）を採用することが多い。しかし、既存の言語入力ＵＩは、学習が簡単でなく、高速タイピングに適していないためあまり使い勝手がよいとはいえない。このような使い勝手の悪さの例として、一部の従来型言語入力ユーザインタフェースでの表音文字テキスト入力と変換済み言語テキスト出力との分離が挙げられる。たとえば、ユーザが表示画面上のある場所に表音文字テキストを入力すると、言語テキストの変換済み文字が画面上の別のはっきりと区別される場所に表示される。２つの場所は、その場所に固有のローカルカーソルを備えている場合さえある。この二重表示方式は、入力を実際にどこで行っているかということに関してユーザを混乱させることがある。さらに、ユーザは画面上の場所から場所へ連続的に見て行く必要がある。
【０００７】
そのため、既存の言語入力ＵＩは、多くの場合、日々のパーソナルコンピュータ（ＰＣ）ユーザではなくプロのタイピストでしか使用されない。キャラクタベース言語の国々では、これらの問題は、ＰＣの普及に大きな影響を及ぼす。
【０００８】
一般に、言語入力ユーザインタフェースには、（１）コードベースのユーザインタフェースと（２）モードベースのユーザインタフェースの２種類がある。コードベースのユーザインタフェースでは、ユーザが言語の単語に関係するコードを記憶する。コードは、入力デバイスを使用して入力され、目的の言語テキストに変換される。この種のユーザインタフェースでは、ユーザはいったんコードを記憶してしまうとテキストを非常に高速に入力できる。しかし、これらのコードは、記憶するのは簡単でなく、忘れるのは簡単であるという場合が多い。
【０００９】
モードベースのユーザインタフェースでは、表音文字テキストが入力され、目的の言語テキストに変換される。モードベースのユーザインタフェースでは、ユーザがコードを記憶する必要はないが、通常、ユーザが言語テキストを入力するモードと編集するモードとを切り替える必要がある。モードベースのユーザインタフェースの一例は、中国語など表音文字テキスト−言語テキスト変換機能を利用して外国語用に改造されたＭｉｃｒｏｓｏｆｔ社の「ワード」ブランドの文書処理プログラムがある。表音文字を「ワード」プログラムに入力するときに、ユーザが表音文字（たとえば、中国語ピンイン）を入力する入力モードとユーザが認識および変換プロセスの結果ときおり発生する不可避な誤りを修正するための編集モードとを切り替えるためのローカライズされたツールバーがユーザに対して表示される。
【００１０】
このような従来のインタフェースの短所の一つは、現在のモード−入力または編集−を意識し、テキスト入力とは無関係な追加ステップ（つまり、ツールバーコントロールボタンをクリックすること）を実行してモードを切り替える必要があるという点である。このインタフェースのせいで、ユーザに余分な仕事が生じ、ユーザの注意がテキスト入力から他の周辺的な制御面にそらされ、入力速度が著しく低下する。
【００１１】
モードベースのユーザインタフェースと関連する他の問題として、ユーザインタフェースの観点から、不可避な変換エラーの処理法法に関するものがある。変換エラーは、認識および変換エンジンが表音文字テキストを不正な言語文字に変換するときに発生する。これは、指定された言語の性質と、表音文字テキストを使用して意図した文字を予測する精度から、きわめてよくあることである。ユーザが編集モードに切り替えた後、ユーザインタフェースは通常、ユーザが文字を修正するための何らかの手段を用意する。たとえば、中国語用のＭｉｃｒｏｓｏｆｔの「ワード」ブランドの文書処理プログラムは、可能な代替文字が表示されているボックスをユーザに対し提示する。この文字のリストが長い場合、ボックスには、可能な文字のリスト内をスクロールするためのコントロールが表示される。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
従来のモードベースのユーザインタフェースの他の短所として、異なる言語を入力するためにはモード切替をする必要があるという点が挙げられる。表音文字テキストを入力していて、第２の言語のテキストを入力したくなった場合、ユーザは第２の言語を入力するためにモードを切り替える必要がある。たとえば、Ｍｉｃｒｏｓｏｆｔの「ワード」の文脈では、ローカライズされたツールバーに、ユーザが第１の言語（たとえば中国語ピンイン）の入力と第２の言語（たとえば英語）の入力を切り替えるためのコントロールボタンが用意されている。ユーザは、意図した言語を単語認識エンジンに知らせるために意識的にコントロールをアクティブにする必要がある。
【００１３】
特にプロでないタイピストの観点からの言語入力ＵＩに関係する問題として他に、タイピング誤りがある。表音文字テキスト入力ＵＩの平均的ユーザは、特にタイポを入力しがちである。タイピングの誤りを犯す理由の１つは、ユーザの地域が異なれば使用するキャラクタベース言語の方言も異なることである。ユーザは、ユーザが使用している方言のせいで表音文字テキストのスペルを誤る。表音文字テキストが少しでも違うと、文字テキストはまったく違ったものになることがある。
【００１４】
したがって、言語入力ユーザインタフェースを改善する必要がある。
【課題を解決するための手段】
【００１５】
（発明の概要）
本発明は、ユーザが入力した表音文字テキストと、表音文字テキストから同じ画面領域に変換された言語テキストとを使いやすく統合する言語入力ユーザインタフェースに関するものである。このユーザインタフェースは、ユーザが入力モードと編集モードを切り替える必要がないという点でモードレスである。このモードレスのユーザインタフェースはさらに、言語間の明示的なモード切替なしで複数の言語の入力に対応できる。そのため、ユーザインタフェースは、ユーザにとって直観的であり、学習しやすく、また使い勝手もよい。
【００１６】
一実装では、言語入力ユーザインタフェース（ＵＩ）は、表音文字テキストと変換された言語テキストとを統合するインライン入力機能を備える。特に、ユーザが入力中の表音文字テキストはすでに入力されている表音文字テキストおよびすでに変換されている言語テキストと並行して、同じ行に表示される。入力された表音文字テキストを同じ行にすでに変換された言語テキストとともに表示することで、ユーザは自分の目の焦点を同じ行に合わせることができ、より直観的で自然なユーザインタフェースとなる。
【００１７】
言語入力ＵＩでは、１）言語テキストを追加する、２）言語テキストを削除する、３）選択した言語テキストを１つまたは複数の置換言語テキスト候補に置き換えるなどの言語テキスト編集操作機能をサポートしている。ユーザインタフェースを使用することで、ユーザは言語テキストを選択し、手動で新規表音文字テキストをタイプしてこれを新規言語テキストに変換することにより置き換えることができる。それとは別に、このユーザインタフェースは言語テキスト候補の１つまたは複数のリストを備える。まずフローティングリストが、選択した変更する言語テキストと関連して表示される。この方法で、言語テキスト候補は、シーケンス構造内の適所に表示され、ユーザは文法上の文脈で修正を視覚化することができる。候補のリストは、選択したものが実際にユーザが元々意図したものである可能性についてのランクまたはスコアに応じた並べ替え順序で表示される。階層は、確率、文字ストローク、またはその他の測定基準に基づく。上位の候補は、そのセンテンスに最高スコアが付けられた候補であり、それに続いて、２番目の候補は、センテンスに次に高いスコアを付け、という具合に進む。
【００１８】
ユーザがリストをスクロールすると、リストはコンテキストメニュー内で更新される。さらに、現在表示されている選択項目が、スクロール動作の方向にアニメーションで動くように表示される。このアニメーションにより、ユーザはリストのスクロール量またはスクロール速度を確認できる。ユーザが置換テキストを選択した後、そのテキストがセンテンス内の言語テキストの代わりに挿入され、ユーザは編集している単一行に注目することができる。
【００１９】
言語入力ＵＩの他の機能として、ユーザが編集している言語テキストのすでに入力された表音文字テキストを表示する機能がある。ユーザは、すでに入力されている表音文字テキストを選択し、選択した後、すでに入力されている表音文字テキストが言語テキストの代わりに表示される。続いて、表音文字テキストを編集し、新規言語テキストに変換することができる。
【００２０】
言語入力ユーザインタフェースの他の機能として、センテンスベースの自動変換機能がある。センテンスベースの自動変換では、後続の表音文字テキストを入力した後センテンス内のすでに変換されている言語テキストをさらに自動的に異なる言語テキストに変換できる。センテンスがピリオドで完了したことが示されると、そのセンテンス内の言語テキストが固定され、後のセンテンス内に入力テキストを入力した結果、異なる言語テキストにさらに自動的に変換されることはない。語句ベースまたは類似の自動変換を他の実施形態でも使用できることは明白であろう。
【００２１】
言語入力ユーザインタフェースの他の機能として、言語テキスト確認のあるセンテンスベースの自動変換機能がある。表音文字テキストが言語テキストに変換された後、ユーザは変換されたばかりの言語テキストを確認し、センテンスの文脈に照らして、変換されたばかりの言語テキストがさらに自動的に変換されることのないようにすることができる。
【００２２】
言語入力ユーザインタフェースの他の機能として、モード切替なしで複数の言語を取り扱える機能がある。第２の言語の単語または記号は、表音文字テキストと混ぜて使用した場合、特別な言語入力テキストとして取り扱われ、第２の言語テキストとして表示される。したがって、ユーザは、異なる言語を入力するときにモードを切り替える必要がない。
より具体的には、タイピング誤りを見つけるために、本発明は、
表音文字テキストで書かれた入力文字列を受け取り、候補文字列が間違って前記入力文字列として入力されたタイピング誤りの確率を決定するタイピングモデル手段と、（１３７）
言語テキストで書かれた文字列が前記候補文字列を表す場合の言語テキストの確率を決定する言語モデル手段と、（１３６）
前記タイピング誤りの確率と前記言語テキストの確率に基づいて表音文字テキストの前記入力文字列を言語テキストの前記文字列に選択的に変換する手段と、（１３４）
表音文字テキストと言語テキストを共通行内に表示する表示手段と（１１４）
を備えることを特徴とする。
【００２３】
これらの機能やその他のさまざまな機能とさらに、本発明を特徴付ける利点は、以下の詳細な説明を読み、関連する図面を参照することにより明白になるであろう。
【００２４】
図全体を通して類似の構成要素および特徴を参照するのに同じ番号を使用している。
【図面の簡単な説明】
【００２５】
【図１】言語入力アーキテクチャを実装する言語固有のワードプロセッサを備えるコンピュータシステムのブロック図である。言語入力アーキテクチャは、言語入力ユーザインタフェース（ＵＩ）を備える。
【図２】言語入力ユーザインタフェースの一実装の画面表示を示す図である。図２は、言語入力ＵＩのインライン入力機能を示している。
【図３】自動変換機能を示す言語入力ＵＩの画面表示を示す図である。
【図４】センテンスベースの自動変換機能を示す言語入力ＵＩの画面表示を示す図である。
【図５】インプレースエラー修正機能および表音文字ヒント機能を示す、言語入力ＵＩの画面表示を示す図である。
【図６】第２の候補リスト機能を示す、言語入力ＵＩの画面表示を示す図である。
【図７】インプレース表音文字テキスト修正機能を示す言語入力ＵＩの画面表示を示す図である。
【図８】図７のインプレース表音文字テキスト修正機能の後続の画面を示す言語ＵＩの画面表示を示す図である。
【図９】図７および図８のインプレース表音文字テキスト修正機能の後続の画面を示す言語ＵＩの画面表示を示す図である。
【図１０】複数の異なる言語を含む混合テキストの入力を示す言語入力ＵＩの画面表示を示す図である。
【図１１】言語入力ユーザインタフェースを使用してテキストを入力する方法の流れ図である。
【図１２】インライン入力サブプロセスの流れ図である。
【図１３】自動変換サブプロセスの流れ図である。
【図１４】文字テキスト確認を行う自動変換サブプロセスの流れ図である。
【図１５】インプレースエラー修正サブプロセスの流れ図である。
【図１６】第２の候補リストがあるインプレースエラー修正サブプロセスの流れ図である。
【図１７】表音文字テキストヒントサブプロセスの流れ図である。
【図１８】インプレース表音文字テキスト修正サブプロセスの流れ図である。
【図１９】インライン入力混合言語テキストサブプロセスの流れ図である。
【図２０】インライン入力機能の一例を示す、ユーザ入力の実施例と中国語入力ユーザインタフェース実施例の実行結果のスクリーンショットの図である。
【図２１】ピンインテキストヒント機能の一例を示す中国語入力ユーザインタフェース実施例の画面表示例である。
【図２２】インプレースエラー修正機能の一例を示す、ユーザ入力の実施例と中国語入力ユーザインタフェース実施例の実行結果のスクリーンショットの図である。
【図２３】インプレースピンインテキスト修正機能の一例を示す、ユーザ入力の実施例と中国語入力ユーザインタフェース実施例の実行結果のスクリーンショットの図である。
【図２４】英語／中国語混合入力機能の一例を示す、ユーザ入力の実施例と中国語入力ユーザインタフェース実施例の実行結果のスクリーンショットの図である。
【図２５】第２の候補リスト機能の一例を示す、ユーザ入力の実施例と中国語入力ユーザインタフェース実施例の実行結果のスクリーンショットの図である。
【図２６】文字確認機能のあるセンテンスベースの自動変換一例を示す、ユーザ入力の実施例と中国語入力ユーザインタフェース実施例の実行結果のスクリーンショットの図である。
【図２７】表音文字テキスト（たとえば、中国語ピンインテキスト）とその対応する文字テキスト（たとえば、中国語文字テキスト）の定義と、非表音文字テキスト（たとえば、英数字テキスト）の定義を示す図である。
【発明を実施するための形態】
【００２６】
（好ましい実施形態の詳細な説明）
本発明は、表音文字テキスト入力および言語テキストへの変換を容易にする言語入力ユーザインタフェースに関する。説明のため、汎用コンピュータで実行される文書処理プログラムの一般的文脈で本発明を説明する。ただし、本発明は、文書処理以外の異なる多くの環境（たとえば、電子メールシステム、ブラウザなど）に実装することができ、またさまざまな種類のデバイスで実施することができる。
【００２７】
システムのアーキテクチャ
図１は、中央処理装置（ＣＰＵ）１０２、メモリ１０４、および入出力（Ｉ／Ｏ）インタフェース１０６を備えるコンピュータシステム実施例１００を示している。ＣＰＵ  １０２は、メモリ１０４およびＩ／Ｏインタフェース１０６と通信する。メモリ  １０４は、揮発性メモリ（たとえば、ＲＡＭ）および不揮発性メモリ（たとえば、ＲＯＭ、ハードディスクなど）を表す。
【００２８】
コンピュータシステム１００は、Ｉ／Ｏインタフェース１０６を介して接続された１つまたは複数の周辺装置を備える。周辺装置実施例は、マウス１１０、キーボード１１２（たとえば、英数字ＱＷＥＲＴＹキーボード、表音文字キーボードなど）、ディスプレイモニタ１１４、プリンタ１１６、周辺記憶装置１１８、およびマイクロホン１２０を備える。たとえば、コンピュータシステムは、汎用コンピュータっで実装できる。したがって、コンピュータシステム１００は、メモリ１０４に格納され、ＣＰＵ  １０２で実行されるコンピュータのオペレーティングシステム（図に示されていない）を実装する。オペレーティングシステムは、ウィンドウ操作環境をサポートするマルチタスクオペレーティングシステムであるのが好ましい。適当なオペレーティングシステムの例として、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ社のＷｉｎｄｏｗｓ（登録商標）ブランドのオペレーティングシステムがある。
【００２９】
ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなど、他のコンピュータシステム構成を使用できることに注意されたい。さらに、図１にはスタンドアローンのコンピュータが示されているが、通信ネットワーク（たとえば、ＬＡＮ、インターネットなど）を介してリンクされているリモート処理デバイスによってタスクが実行される分散コンピューティング環境で言語入力ＵＩを実用することもできる。分散コンピューティング環境では、プログラムモジュールをローカルとリモートの両方のメモリ記憶デバイスに配置できる。
【００３０】
データまたは文書処理プログラム１３０は、メモリ１０４に格納され、ＣＰＵ  １０２で実行される。他のプログラム、データ、ファイルなども、メモリ１０４に格納できるが、説明を簡単にするため示していない。文書処理プログラム１３０は、表音文字テキストを受け取り、自動的に言語テキストに変換するように構成されている。より具体的には、文書処理プログラム１３０は、説明のためメモリ内に格納されプロセッサによって実行されるコンピュータソフトウェアとして実装されている言語入力アーキテクチャを実装する。文書処理プログラム１３０は、アーキテクチャ１３１に加えて他のコンポーネントも備えることができるが、そのようなコンポーネントは、文書処理プログラムに標準のものであると考えられるため、図に詳細に示したり、詳細に説明していない。
【００３１】
文書処理プログラム１３０の言語入力アーキテクチャ１３１は、ユーザインタフェース（ＵＩ）１３２、検索エンジン１３４、言語モデル１３６、およびタイピングモデル１３７を備える。アーキテクチャ１３１は、言語独立である。ＵＩ  １３２および検索エンジン１３４は、汎用であり、どの言語でも使用できる。アーキテクチャ１３１は、言語モデル１３６およびタイピングモデル１３７を変更することにより特定の言語に合わせる。
このアーキテクチャの詳細は、本発明に引用により取り込まれている「Ｌａｎｇｕａｇｅ  Ｉｎｐｕｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｆｏｒ  Ｃｏｎｖｅｒｔｉｎｇ  Ｏｎｅ  Ｔｅｘｔ  Ｆｏｒｍ  ｔｏ  Ａｎｏｔｈｅｒ  Ｔｅｘｔ  Ｆｏｒｍ  Ｗｉｔｈ  Ｔｏｌｅｒａｎｃｅ  Ｔｏ  Ｓｐｅｌｌｉｎｇ，Ｔｙｐｏｇｒａｐｈｉｃａｌ，Ａｎｄ  Ｃｏｎｖｅｒｓｉｏｎ  Ｅｒｒｏｒｓ」という表題の米国同時係属出願第＿＿＿＿号および「Ｌａｎｇｕａｇｅ  Ｉｎｐｕｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｆｏｒ  Ｃｏｎｖｅｒｔｉｎｇ  Ｏｎｅ  Ｔｅｘｔ  Ｆｏｒｍ  ｔｏ  Ａｎｏｔｈｅｒ  Ｔｅｘｔ  Ｆｏｒｍ  Ｗｉｔｈ  Ｍｏｄｅｌｅｓｓ  Ｅｎｔｒｙ」という表題の米国同時係属出願第＿＿＿＿号で説明されている。
【００３２】
検索エンジン１３４、言語モジュール１３６、およびタイピングモデル１３７はいっしょに使用することで、表音文字テキスト−言語テキスト間のコンバータ１３８を形成する。この開示の目的のために、「テキスト」は、１つまたは複数の文字および／または文字以外の記号とする。「表音文字テキスト」は一般に、所定の言語を話すときに生じる音声を表す英数字テキストである。「言語テキスト」は、書き言葉を表す文字と非文字記号である。「非表音文字テキスト」は、所定の言語を話すときに生じる音声を表さない英数字テキストである。非表音文字テキストは、言語テキスト以外の書き言葉を表す句読点、特殊文字、および英数字テキストを含む場合がある。
【００３３】
図２７は、表音文字テキスト、変換された言語テキスト、および非表音文字テキストの一例を示している。この例では、表音文字テキストは中国語ピンインテキストであり、「ｈｅｌｌｏ」と翻訳される。この文字テキスト実施例は、漢字テキストであり、これも「ｈｅｌｌｏ」と翻訳される。非表音文字テキスト実施例は、英数字記号テキスト文字列「＠３ｍ」である。説明の目的のために、ワードプロセッサ１３０は、中国語ベースのワードプロセッサの文脈で説明し、言語入力アーキテクチャ１３１はピンインを漢字に変換するように構成されている。つまり、表音文字テキストはピンインであり、言語テキストは漢字である。
【００３４】
しかし、言語入力アーキテクチャは、言語独立であり、他の言語にも使用できる。たとえば、表音文字テキストは日本語の話し言葉の形態でよいが、言語テキストは漢字などの日本語の書き言葉を表す。それだけには限らないが、アラビア語、韓国語、インド語、その他のアジア言語など他の例も多数存在する。
【００３５】
たぶん、より一般的に述べると、表音文字テキストは、書いたときに欧文文字ベースの文字セットを使用しない所定の言語を話したときに出る音声を表す欧文文字セット（たとえば、英語のアルファベット）で表された英数字でよい。言語テキストは、所定の言語に対応する書かれた記号である。
【００３６】
表音文字テキストは、マウス１１０、キーボード１１２、またはマイクロホン１２０などの１つまたは複数の周辺入力デバイスを介して入力する。この方法で、ユーザは、キー入力または音声による表音文字テキスト入力が可能である。音声入力の場合、コンピュータシステムはさらに、話し言葉を受け取る音声認識モジュール（図に示されていない）を実装し、表音文字テキストに変換することができる。以下の説明では、キーボード１１２によるテキストの入力をフルサイズの標準英数字ＱＷＥＲＴＹキーボードで実行すると想定している。
【００３７】
ＵＩ  １３２では、表音文字テキストを入力と同時に表示する。このＵＩは、グラフィカルユーザインタフェースであるのが好ましい。ユーザインタフェース１３２は、表音文字テキスト（Ｐ）を検索エンジン１３４に渡し、さらに、これは表音文字テキストをタイピングモデル１３７に渡す。タイピングモデル１３７は、表音文字テキストに誤りが含まれていると思われる場合にユーザが意図した表音文字テキストの適当な編集結果と考えられるさまざまなタイピング候補（ＴＣ1，．．．，ＴＣN）を生成する。タイピングモデル１３７は、タイピング候補を検索エンジン１３に渡し、さらに、これはタイピング候補を言語モデル１３６に渡す。言語モデル１３６は、ユーザが意図した表音文字テキストの変換された形式を表すと考えられる言語テキストで書かれているさまざまな変換候補（ＣＣ1，．．．，ＣＣN）を生成する。変換候補は、タイピング候補と関連付けられている。表音文字テキストから言語テキストへの変換は１対１変換ではない。同じあるいは類似した表音文字テキストが言語テキスト内の多数の文字または記号を表すことがある。したがって、表音文字テキストの文脈は、言語テキストへの変換前に解釈される。他方、非表音文字テキストの変換は、通常、表示される英数字テキストが英数字入力と同じである直接的な１対１変換となる。
【００３８】
変換候補（ＣＣ1，．．．ＣＣN）が検索エンジン１３４に戻され、このエンジンにより、タイピング候補および変換候補のうちどれがユーザが意図するものである確率が最も高いかを判別する統計分析が実行される。確率が計算されると、検索エンジン１３４により、確率が最も高い候補が選択され、変換候補の言語テキストがＵＩ  １３２に返される。ＵＩ  １３２では、表音文字テキストを変換候補の言語テキストに置き換え、同じ行に表示する。一方で、新規入力した表音文字テキストが新規挿入された言語テキストの前の行に表示され続ける。
【００３９】
ユーザが言語テキストを検索エンジン１３４で選択したものから変更したい場合、ユーザインタフェース１３２に、選択が実際に意図した回答である可能性の高さの順序でランク付けられた他の高確率の候補の第１のリストが表示される。ユーザがまだ可能な候補に満足しない場合、ＵＩ  １３２は可能なすべての選択肢を与える第２のリストを表示する。第２のリストは、確率またはその他の測定基準（たとえば、ストロークカウントまたは中国語文字の複雑さ）に関してランク付けることができる。
【００４０】
言語入力ユーザインタフェース
これ以降では、特にユーザインタフェース１３２の機能を説明する。とりわけ、ユーザインタフェース１３２では、入力された表音文字テキストと、変換された言語テキストとを統合して画面上の同じ行に視覚的に表示する。これらの機能の多くは、ウィンドウやメニューまたはカーソルの存在および場所など、画面に視覚的に表示する方法について説明されている。このような機能は、ユーザインタフェース１３２単独で、またはオペレーティングシステムでサポートされていることに留意されたい。
【００４１】
図２〜１０は、言語入力ユーザインタフェース１３２の実施例のさまざまな画面表示を示している。ＵＩで入力され表示されているが、まだ言語テキストには変換されていない表音文字テキストを表すために記号「Ｐ」を図２〜１０全体をとおして使用している。記号「Ｃ」は、入力表音文字テキストＰから変換された変換された言語テキストを表す。下付きは、表音文字テキストＰ、たとえば、Ｐ1、Ｐ2、．．．、ＰNおよび変換された言語テキストＣ、たとえば、Ｃ1、Ｃ2，．．．ＣNと、それぞれで使用し、表音文字テキストと変換された言語テキストの個々のものを表す。
【００４２】
統合されたインラインテキスト入出力
図２は、言語入力ＵＩ  １３２単独で、またはオペレーティングシステムで表示される画面表示２００を示している。この図では、画面表示２００は、ＭｉｃｒｏｓｏｆｔのＷｉｎｄｏｗｓ（登録商標）ブランドのオペレーティングシステムで生成されたものなど、カスタムグラフィックウィンドウと似ている。グラフィックウィンドウは、言語入力の文脈での使用に合わせて手直しされており、表音文字テキストを入力しその後言語テキストに変換するインライン入力領域２０２を表す。インライン領域２０２は、平行な波線で絵として表されている。
【００４３】
入力カーソル２０４は、次の表音文字テキスト入力が行われる現在の位置をマークする。グラフィックＵＩはさらに、ツールバー２０６、２０８、２１０、２１２、またはその他の機能などの複数のツールバーを、アプリケーション、たとえば、ワードプロセッサ、データプロセッサ、表計算ソフト、インターネットブラウザ、電子メール、オペレーティングシステムなどに応じて備えることができる。ツールバーは、一般に、文書処理技術またはデータ処理技術として知られており、ここでは詳述しない。
【００４４】
インライン入力領域２０２は、表音文字テキストＰの入力と変換された言語テキストＣの出力を統合したものである。このため、ユーザが画面の単一の領域注意を集中できて便利である。ユーザが表音文字を（キー入力または音声で）入力すると、表音文字テキストＰは第１の方向（たとえば、画面上で水平方向に）インラインで表示される。入力カーソル２０４は、変換された言語テキストＣ1Ｃ2および入力表音文字テキストＰ1Ｐ2Ｐ3により、またはそれと合わせて配置される。図２では、入力シーケンスは左から右であり、入力カーソル２０４は、すでに入力された表音文字テキストＰ1Ｐ2Ｐ3の右側に配置される。テキストを所定の言語を読み取るのと同じ方向に入力することは本発明の範囲内にあること、また本実装で説明している「左から右への」入力シーケンスは一例にすぎないことは明白であろう。さらに、言語入力ＵＩは、それだけには限らないが、垂直、対角線方向など実質的にどのような方向でもインライン入力することができることは明白であろう。インライン入力機能がユーザから見て離れて行くまたは向かってくるように見えるさまざまな３次元形式などその他のインライン形式を考えることができる。
【００４５】
自動変換
ユーザが表音文字テキストＰを入力すると、コンバータ１３８は自動的に表音文字テキストを変換済み言語テキストＣに変換する。通常、少数の表音文字テキストエレメントＰ（たとえば、１から６個の表音文字テキストエレメントＰ）を入力してから、表音文字テキストＰを言語テキストＣに変換する。
【００４６】
変換を行うときに、変換済み言語テキストＣがインライン領域２０２によって示されているように、表音文字テキストＰと同じ行に表示される。ユーザが表音文字テキストを入力し続けると、一番最近の入力表音文字テキストＰがすでに変換された言語テキストＣとインラインで表示される。たとえば、図２で、表音文字テキストＰ1Ｐ2Ｐ3は、一番最近に変換された言語テキストＣ1Ｃ2とインラインで表示される。入力された表音文字テキストＰを同じ行にすでに変換された言語テキストＣとともに表示することで、ユーザは自分の目の焦点を同じ行に合わせることができ、入力プロセスがより直観的で自然になるだけでなく入力が高速化される。
【００４７】
ユーザが表音文字テキストＰを入力し続けると、ユーザインタフェースは自動的に表音文字テキストＰをリアルタイムで言語テキストＣに変換し、ユーザはモードを切り替える必要がない。図３の例に示されているように、ユーザが表音文字テキストＰ4を入力するとすぐに、表音文字テキストＰ1Ｐ2Ｐ3が自動的に言語テキストＣ3に変換される。ユーザは、モードを切り替えたり、躊躇することなく、表音文字テキストＰ4Ｐ5Ｐ6Ｐ7を入力し続ける。
【００４８】
表音文字テキストから言語テキストへの変換は、言語モデル１３６によって制御される自動プロセスである。言語テキストＣ3は、可能なすべての言語テキストのうち最高の確率を持つものとして選択され、したがって、自動変換で使用される。ただし、ユーザのタイピングが多いほど、考慮する文脈は大きくなる。したがって、言語テキストＣ3は、Ｐ4Ｐ5Ｐ6Ｐ7などの表音文字テキストをさらに入力した後異なる言語テキストに変更される場合がある。
【００４９】
言語入力アーキテクチャ１３１は、追加入力テキストの入力への応答として変換済み言語テキストを変更する頻度が最小になるように構成することができる。文脈によっては、変換された言語テキストを入力テキストのそれぞれの入力文字とともに変更し、本質的に、所定の文脈でユーザが意図しているおおよそ等しい確率の２つまたはそれ以上の可能な解釈を切り替えることが可能である。言語テキストの一定の切り替えは、ユーザは視覚的に気を散らされる可能性がある。
【００５０】
テキスト切り替え作業を最小限に抑えるために、コンバータ１３８は、他の文脈が意図される確率が有意でない限り現在の言語テキストを維持することを規定する１つまたは複数の確率ベースの規則を実装することができる。このようにして、コンバータ１３８は、第２の言語テキストが統計的な観点からわずかしかよくない場合に、変換された言語テキストを第２の言語テキストに変更しにくい。有意性の度合いは文脈とともに変化する。たとえば、コンバータ１３８は、修正された言語テキストの可能性が置き換える言語テキストよりも少なくとも５パーセントポイント以上高いときのみ言語テキストを修正するように構成できる。
【００５１】
センテンスベースおよび確認済み自動変換
ユーザは、非常に長いテキスト文字列（たとえば、テキストの段落）が変換の対象となる場合に快適に感じられないことがある。ユーザインタフェースの一実装では、表音文字テキストＰから言語テキストＣへの自動変換はセンテンスベースの自動変換である。つまり、センテンスが完了すると、そのセンテンス内の言語テキストＣは、後のセンテンス内に表音文字テキストＰを入力したときに異なる言語テキストＣにさらに自動的に変換されることはない。センテンスベースの自動変換機能を使用すると、ユーザのタイピング誤りが減るだけでなく、前のセンテンスが連続的に自動変換されることもなくなる。
【００５２】
センテンスは他にもいろいろ多くの方法で定義できることは明白である。たとえば、センテンスは、２つのピリオドに挟まれたテキスト文字列、さまざまな定義済み句読点に挟まれたテキスト文字列、いくつかのテキストエレメントを含むテキスト文字列などある種の定義済み句読点で挟まれたテキスト文字列として定義することができる。ユーザが句読点を入力すると、句読点と前の句読点との間に入力したテキスト文字列は、もしあれば、センテンスとして処理することができる。そのセンテンス内の変換済み言語テキスト文字列Ｃは、ユーザが表音文字テキストを後のセンテンスに入力した際にさらに自動的に変換されることはない。当業者であれば、必要ならば自動変換を２つまたはそれ以上のセンテンスに基づいて行うようにできることは理解できるであろう。
【００５３】
図４は、センテンスが句読点で確認される表示画面２００の位置を示している。センテンスを確認して、句読点を入力すると、通常、センテンスの終わりにある表音文字テキストＰが言語テキストＣに自動的に変換される。たとえば、図４に示されているように、カンマ４００を入力した後、表音文字テキストＰ4Ｐ5Ｐ6Ｐ7が言語テキストＣ4に変換される。すると、言語テキスト文字列Ｃ1Ｃ2Ｃ3Ｃ4はセンテンスとして取り扱われる。変換済み言語テキストＣ1Ｃ2Ｃ3Ｃ4は、さらに自動的に変換されることはなくなる。
【００５４】
センテンスベースの自動変換に加えて、ユーザは入力した表音文字テキストＰから変換した後、変換済み言語テキストＣのうち１つまたは複数を明示的に確認することができる。ユーザはキーボードでユーザコマンドを入力して（たとえば、スペースバーを押して）変換されたばかりの言語テキストＣを確認し、センテンスの文脈に照らして、変換されたばかりの言語テキストＣがさらに自動的に変換されることのないようにすることができる。この機能の詳細については、図２０および図２４を参照して後述する。
【００５５】
遅延変換
多くの言語では、ユーザは通常、表音文字テキストよりも言語テキストのほうが、読み修正する作業に慣れている。表音文字テキストを入力するときに、ユーザは、ふつう、変換が行われるのを待ってそれから、入力されたテキストが正確かどうかを判別しようとする。これは、特に、ピンイン文字よりも、漢字のほうの読み、修正する作業を好む中国語ユーザの場合にあてはまる。
【００５６】
このユーザ特性に照らして、言語入力アーキテクチャ１３１は表音文字テキストを言語テキストに変換する時期を考慮するように設計されている。一般に、変換は、変換済み言語テキストがユーザの意図したものであることが十分確実であるとコンバータ側で判別したときに行われる。ＵＩの文脈では、最終的な変換によりユーザ入力がより表音文字的なテキストとなったときに修正されそうにない確度の高い言語テキストが得られるように表音文字テキストのうち何文字を一度に表示すべきかという問題が特徴的なものとなっている。変換の開始時期が早すぎると、変換された言語テキスト内の誤りが増えて、ユーザが変換された言語テキストの強制的修正を行う頻度が高まる。変換開始時期が遅すぎると、ユーザに対し目的の言語テキストではなく長い表音文字テキスト文字列が表示されることになり使いにくい。
【００５７】
変換開始が早すぎるのと変換開始が遅すぎるのとの妥協として、高い変換精度が保証される最適な数の表音文字が入力されるまで変換を遅らせるように言語入力アーキテクチャを構成することができる。実際、このアーキテクチャは、最小の文字数分を入力してから最大の文字数分を入力する前までに表音文字テキストの代わりに変換された言語テキストを選択して表示する操作を遅らせるように設計されている。一実施例として、少なくとも１つのピンイン文字と高々６個のピンイン文字が入力されＵＩに表示されるときにピンインテキストを漢字テキストに変換するように構成した中国語用に手直しされた言語入力アーキテクチャが示されている。
【００５８】
一実装では、言語入力アーキテクチャは、与えられた文脈について、変換された言語テキストを選択して表示するまでに入力可能な表音文字の最適な個数を決定する一組の規則を実装している。規則は以下のようにまとめられる。
【００５９】
規則１：最後の（つまり、一番最近に入力した）入力文字を常に表示する。
【００６０】
規則２：複数の入力文字を入力し表示した後、一致すると思われる候補内の１つまたは複数の文字について上位Ｎ個の変換候補を評価する。少なくとも１つの変換された文字がＮ個の変換候補すべてについて同じであれば、入力テキストの一部を形成する少なくとも１つの入力文字を出力テキスト内の一致する変換済み文字に変換する。
【００６１】
規則３：第１の最も確度の高い変換候補のスコアが第２の最も確度の高い候補よりも著しく大きい場合、少なくとも１つの入力文字を第１の変換候補の文字に変換する。
【００６２】
モードレス編集
図５〜９は、このアーキテクチャでサポートしているモードレス編集機能の実施例を示している。このユーザインタフェースを使用することにより、ユーザは、明示的なモード切替操作を行わずに、入力モードから編集モードへの継ぎ目のない遷移を行うことが可能である。さらに、編集モードは、言語テキストの追加、削除、および置換などの従来の編集機能をサポートしている。本発明では、新規表音文字テキストを入力するか、または少なくとも１つの置換言語テキスト候補のリストから置換言語テキストを選択することにより、言語テキストを置換できる。
【００６３】
インプレース誤り修正
図５は、さまざまな編集機能のある画面表示２００を示している。説明のため、ユーザは句読点４００を入力して言語テキストＣ1Ｃ2Ｃ3Ｃ4（前には図４の）を確認しており、また確認された言語テキストＣ1Ｃ2Ｃ3Ｃ4を編集したいと仮定する。ユーザは、カーソル２０４の位置を確認済み言語テキストＣ1Ｃ2Ｃ3Ｃ4内の目的の位置に変更する。カーソルの位置決めは、それだけには限らないが、矢印キー、マウスのクリック、または音声コマンドなどさまざまな方法で行える。図５は、編集用にこの文字を選択するため言語文字Ｃ3の前に位置が変更されたカーソル２０４を示している。
【００６４】
カーソル２０４の位置を言語文字Ｃ3の前に変更した後、ユーザは１つまたは複数のユーザコマンドを入力して、編集する文字を含むテキスト内の位置にあるインライン領域２０２上またはそのあたりにスーパーインポーズされる編集ウィンドウまたはボックス５００を呼び出す。ユーザコマンドは、それだけには限らないが、キーボード１１２のエスケープキー「ＥＳＣ」を押すなどの、当業でよく知られているいくつかの方法で実行できる。
【００６５】
図解されている実装では、編集ウィンドウまたはボックス５００は、インラインテキストの第１の方向（たとえば、水平方向）に直交する第２の方向（たとえば、垂直方向）で言語文字Ｃ3の隣りにポップアップする。ポップアップ編集ウィンドウ５００は、入力テキストヒントウィンドウ５０２とスクロール可能な候補ウィンドウ５０４の２つの部分に分かれる。これら２つの部分は、共通のユーザコマンドで同時に呼び出されるのが好ましい。文字Ｃ3の対応する表音文字テキストＰ1Ｐ2Ｐ3は、すでにユーザによって入力されており、編集している言語文字Ｃ3の真上に、縦に揃えられて、入力テキストヒントウィンドウ５０２内に表示される。入力表音文字テキストＰ1Ｐ2Ｐ3を表示することで、ユーザは言語テキストＣ3に対しすでに何を入力しているかを確認し、必要ならば編集することができる。入力テキストヒントウィンドウ５０２は、スクロールアップバー５０６が上部に配置されている。このスクロールアップバー５０６を起動することで、表音文字テキストＰ1Ｐ2Ｐ3がセンテンス内のスライドし、言語テキスト文字Ｃ３を置き換える。
【００６６】
候補ウィンドウ５０４は、少なくとも１つの置換言語テキスト候補Ｃ3a、Ｃ3b、Ｃ3c、Ｃ3dのスクロール可能なリストが配置され、言語テキストＣ3と同じまたは類似した表音文字テキストがある。候補ウィンドウ５０４は、言語テキストＣ1Ｃ2Ｃ3Ｃ4を含み、言語文字Ｃ３の真下に縦方向に揃えられた、インライン入力領域２０２に直交する形で配列されている。上付きを使用して、Ｃ3a、Ｃ3b、Ｃ3c、Ｃ3dなど異なる言語テキスト文字を表す。候補ウィンドウ５０４に表示できる以上の候補がある場合、スクロールダウンバー５０８が候補ウィンドウ５０４の下部に表示される。ユーザはスクロールダウンバー５０８を選択（たとえば、クリック）して、追加置換言語テキストを表示できる。インプレースウィンドウ５０２および５０４の機能の１つでは、スクロール操作をアニメーション化し、候補またはテキストが上下に移動する状態を見せることができる。これにより、リストが一度に１項目ずつスクロールする視覚的フィードバックがユーザに返される。
【００６７】
入力テキストヒントウィンドウ５０２内の表音文字テキストＰ1Ｐ2Ｐ3および候補ウィンドウ５０４内の置換言語テキスト候補Ｃ3a、Ｃ3b、Ｃ3c、Ｃ3dは、さらに、図に示されているように、番号０、１、２、３、４で追加参照される。置換言語テキストの番号付け方法と候補ウィンドウ５０４のサイズは、いろいろな方法で設定できる。一実装では、候補ウィンドウ５０４はサイズが制限されており、置換言語テキストの上位４つの最高確率のみをリスト表示する。
【００６８】
候補ウィンドウ５０４内の言語テキスト候補Ｃ3a、Ｃ3b、Ｃ3c、Ｃ3dは、何らかの順序またはランク付けで配列するのが好ましい。たとえば、順序は、候補が実際にユーザが最初に意図したものである確率または可能性に基づくことができる。この確率は、言語モデル１３６によって返される候補とともに、検索エンジン１３４によって計算される。与えられた文脈でのある置換言語テキストの確率が与えられた文脈での他の置換言語テキストの確率よりも高い場合、確率が高いほうの置換言語テキストが編集対象の言語テキストの近くに、低い参照番号で表示される。
【００６９】
ユーザは、オプションにより、適切な参照番号を入力して文字テキストＣ3を置き換えるか、または他の一般的な手法（選択したオプションをポイントしてクリックする）により、表音文字テキストＰ1Ｐ2Ｐ3を選択するか、または置換言語テキストＣ3a、Ｃ3b、Ｃ3c、Ｃ3dのうちから１つ選択することができる。
選択した置換が、インラインテキスト内で文字Ｃ3の代わりになる。ユーザが候補を選択した後、ポップアップウィンドウ５００が自動的に閉じるが、修正したテキストを残すように構成できる。
それとは別に、ユーザは、ウィンドウ５０２および５０４の外でマウスをクリックするなどの従来の方法を使用して、テキストヒントウィンドウ５０２と候補ウィンドウ５０４を明示的に閉じることもできる。
【００７０】
インプレースウィンドウ５０２および５０４で実装されるテキスト置換機能は、インプレース誤り修正機能（ｉｎ−ｐｌａｃｅ  ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ  ｆｅａｔｕｒｅ）と呼ばれる。選択した表音文字テキストＰ1Ｐ2Ｐ3または置換言語テキストＣ3a、Ｃ3b、Ｃ3c、Ｃ3dのうちから選択した１つが置換対象の言語テキストＣ3のある場所にインプレースで表示される。インプレース誤り修正機能を使用すると、ユーザは編集する言語テキストが含まれる言語テキスト文字列を一般的に近似することに集中できる。
【００７１】
第２候補リスト
図６は、図５に示されているのと似た画面表示２００を示しているが、第１の候補ウィンドウ５０４から分離され、隣接する第２の候補ウィンドウ６００をさらに示している。第２の候補ウィンドウ６００には、編集する文字テキストＣ3の対応する表音文字テキストＰ1Ｐ2Ｐ3と同じまたは類似する表音文字テキストを持つ置換言語テキストのより大きなまたはたぶん完全なリストが表示される。入力テキストヒントウィンドウ５０２内の表音文字テキストＰ1Ｐ2Ｐ3および候補ウィンドウ５０４内の置換言語テキスト候補Ｃ3a、Ｃ3b、Ｃ3c、Ｃ3dはさらに第２の候補ウィンドウ６００内に表示される。他の実施形態では、追加置換候補のみ、第２の候補ウィンドウ６００内にリスト表示される。
【００７２】
第２の候補ウィンドウ６００を開くために、ユーザは、候補ウィンドウ５０４内でアクティブになっている状態で、キーボードの右矢印キーを押すなど、コマンドを入力する。ユーザは、その後、マウスのクリックやキー入力などの適当なコマンドで目的の置換言語テキストを選択することができる。ユーザは、テキスト文字列からテキスト文字へフォーカス６０２を移すことができる。
【００７３】
第２の候補ウィンドウ６００内の候補はさらに、何らかの順序で配列することもできるが、必ずしも、第１の候補ウィンドウ５０４で使用したのと同じランク付け方法に従うわけではない。通常、第１の候補ウィンドウ５０４の候補でも行っているような確率スコアで並べ替える操作は、多数の候補の違いが小さく、いくぶん意味がないため、完全な候補ウィンドウ６００には役立たない場合がある。ユーザは、この設定で特定の候補を見つけることについて直観的感覚を持たない場合がある。したがって、第２の候補ウィンドウ６００では、目的の候補の直観的発見を可能にする他の何らかの方法で候補のランク付けを行おうとする。
【００７４】
第２の候補ウィンドウ６００内の候補をランク付けるために使用できる基準の１つは、特に日本語および中国語の文脈において、文字または記号の複雑さの測定基準となっている。たとえば、中国語テキスト候補のリストについては、候補を形成するのに必要なストローク数に応じて候補をリスト表示することができる。ストロークの順序により、目的の言語テキストを探索しているユーザはある種の明確な感覚をつかめる。ユーザは、一見似た複雑さを持つ文字が納められているウィンドウ６００の特定の領域をざっと見ることができる。このランク付け基準は、ユーザが正確なストローク数を数えたり、それを知るようにすることを意図したものではなく、強い、首尾一貫した、視覚的に認識可能な並べ替え順序を与えることのみを意図している。
【００７５】
ウィンドウ６００を閉じるために、ユーザは、ウィンドウ６００の外でキーボードでキー入力したり、マウスをクリックするなどコマンドを入力する。ウィンドウの開閉、ウィンドウ内の上下および左右のスクロール、ウィンドウ内の上下のスクロールは、当業で知られており、ここでは詳述しないことは理解されるであろう。
【００７６】
インプレース表音文字テキスト修正
図７〜９は、図５に示されている表音文字テキストＰ1Ｐ2Ｐ3のインプレース表音文字テキスト修正を説明するさまざまな事例での一連の画面表示２００を示している。この例では、ユーザは、入力テキストヒントウィンドウ５０２内の表音文字テキストＰ1Ｐ2Ｐ3が正しくないと判断している。正しい表音文字テキストはＰ1aＰ2Ｐ3であるべきである。
表音文字テキストを修正するために、ユーザはまず、入力テキストヒントウィンドウ５０２から表音文字テキストＰ1Ｐ2Ｐ3を選択する。
【００７７】
図７は、選択した表音文字テキストＰ1Ｐ2Ｐ3が、編集しているテキスト文字Ｃ3の場所にインプレースで表示されることを示している。ユーザは、Ｐ1をＰ1aに変更して表音文字テキストを編集することができる。
【００７８】
図８は、表音文字テキストがＰ1aに変更された後のＵＩを示している。テキストヒントウィンドウ５０２がさらに更新され、変更を反映する。編集操作の結果、同じまたは類似の編集された表音文字テキストＰ1aＰ2Ｐ3を持つ少なくとも１つの新規置換言語テキストＣ3jが候補ウィンドウ５０４に表示される。その後、ユーザは、候補ウィンドウ５０４内の置換言語テキスト（たとえば、Ｃ3j）を選択できる。
【００７９】
図９は、編集された表音文字テキストＰ1aＰ2Ｐ3と置き換わる選択した置換テキストＣ3jを示している。他の実施形態では、編集された表音文字テキストは、最も有望な新規置換言語テキストに自動的に変換できる。
【００８０】
混合言語入力
言語入力アーキテクチャは、さらに、２つまたはそれ以上の言語を区別するように構成できる。第１の言語を表音文字テキストとして検出して言語テキストに変換し、第２の言語を非表音文字テキストとして検出してそのまま保持する。ＵＩ  １３２は、この２つの言語をユーザがテキストを入力したときと同じ行に同時に表示する。この手法は、多言語テキストを入力するときに２つの入力モードを切り替えずに済むという利点がある。ユーザに関する限り、ユーザインタフェースはモードレスである。
【００８１】
図１０は、ユーザインタフェースの画面表示２００を示しており、２つの異なる言語の混合テキストの統合された取り扱いと表示を示している。
記号「Ａ」は、第２の言語テキストの文字を表している。第２の言語Ａは、第２の言語テキストＡがユーザによる入力時に表示される非表音文字言語である。たとえば、第１の言語は漢字であり、第２の言語は英語である。多言語を任意個数の異なる言語とすることができることは明白であろう。
【００８２】
一実装では、ユーザは混合言語テキストを入力することができ、そのうちの１つは言語テキストＣ（たとえば、漢字）に変換可能な表音文字テキストＰ（たとえば、ピンイン）である。文字ベース言語の表音文字テキストＰは、表音文字テキストＰが言語テキストＣに自動変換されるまで言語テキストＡとともにインラインに表示され、言語テキストＣは第２の言語の言語テキストＡとインラインに表示される。図１０は、入力表音文字テキストＰ、変換された言語テキストＣ、および同じインライン領域２０２内にある第２の言語テキストＡを示している。
【００８３】
異なるフォントまたは色を使用して、表音文字テキストＰと非表音文字テキストＡとを区別することができる。たとえば、表音文字テキストＰは、第１のフォントまたは色で表示され、非表音文字テキストＡは、第１のフォントまたは色と異なる第２のフォントまたは色で表示される。フォントおよび色の他に、表音文字テキストＰと非表音文字テキストＡとを視覚的に区別する他の手法を使用することもできる。
【００８４】
一般的なＵＩ操作
図１１〜１９は、言語入力アーキテクチャによって実行される方法を示している。これらの方法を言語入力ユーザインタフェースの一部として実行し表音文字テキストの入力および編集を簡単に行えるようにする他に、変換された言語テキストの編集も行えるようにする。図１１は、一般的なプロセスを示しているが、図１２〜１９は操作のいくつかをより詳細に説明している。これらの方法については、図２〜１０の画面表示をさらに参照して説明している。
【００８５】
図１１は、言語入力ユーザインタフェースを介してテキストを入力する方法１００を示している。操作１１０２で、ユーザインタフェースにより、ユーザは共通のインライン領域２０２内にテキストを入力できる。説明している実装では、入力テキストは、中国語ピンインなどのであることを特徴とする表音文字テキストである。入力テキストは、漢字などの文字ベースの言語の言語テキストに自動的に変換される（操作１１０４）。この変換の一実施例については、図１を参照して上で説明している。読者がこれに関心がある場合、このアーキテクチャの詳細について、本発明に取り込まれている「Ｌａｎｇｕａｇｅ  Ｉｎｐｕｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｆｏｒ  Ｃｏｎｖｅｒｔｉｎｇ  Ｏｎｅ  Ｔｅｘｔ  Ｆｏｒｍ  ｔｏ  Ａｎｏｔｈｅｒ  Ｔｅｘｔ  Ｆｏｒｍ  Ｗｉｔｈ  Ｔｏｌｅｒａｎｃｅ  Ｔｏ  Ｓｐｅｌｌｉｎｇ，Ｔｙｐｏｇｒａｐｈｉｃａｌ，Ａｎｄ  Ｃｏｎｖｅｒｓｉｏｎ  Ｅｒｒｏｒｓ」という表題の米国同時係属出願第＿＿＿＿号および「Ｌａｎｇｕａｇｅ  Ｉｎｐｕｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｆｏｒ  Ｃｏｎｖｅｒｔｉｎｇ  Ｏｎｅ  Ｔｅｘｔ  Ｆｏｒｍ  ｔｏ  Ａｎｏｔｈｅｒ  Ｔｅｘｔ  Ｆｏｒｍ  Ｗｉｔｈ  Ｍｏｄｅｌｅｓｓ  Ｅｎｔｒｙ」という表題の米国同時係属出願第＿＿＿＿号を参照されたい。
【００８６】
操作１１０６では、カーソルの位置変更または明示的コマンドにより示されるとおり、変換後言語テキストをユーザが編集するかどうかを判別する。編集する場合（つまり、操作１１０６からの「はい」の経路）、ＵＩは編集する文字に近いカーソルのユーザの位置変更を受け取る（操作１１０８）。図５に示されているように、カーソルは言語テキスト文字の前に位置変更できる。
【００８７】
操作１１１０で、ＵＩは図５に示されているようにユーザコマンドへの応答として編集ウィンドウ５００を開く。編集ウィンドウ５００は、言語テキストを置換するための第１の候補リスト５０４を含む。適当な置換候補が候補リスト５０４に表示されない場合、ユーザは図６に示されているような第２の候補リストウィンドウ６００を呼び出すことを決めることができる。操作１１１２により、ユーザが第２の候補ウィンドウ６００を要求したかどうかを判別する。適当な候補が第１の候補リスト５０４にあり、ユーザが候補リストウィンドウを開かないことに決めた場合（つまり、操作１１１２からの「いいえ」の分岐）、ユーザは第１の候補リストウィンドウから置換言語テキストを選択して、編集する言語テキストを置換することができる（操作１１１４）。
【００８８】
他方、ユーザが第２の候補ウィンドウを呼び出した場合（つまり、操作１１１２からの「はい」の分岐）、ＵＩは第２の候補リストウィンドウを開き、ユーザは編集中の言語テキストを置換する置換言語テキストを選択できる（操作１１１６）。第１の候補リストウィンドウ５０４または第２の候補リストウィンドウ６００から選択した置換言語テキストが、インライン領域２０２内の言語テキストの場所にインプレースで表示される（操作１１１８）。操作の流れは操作１１０６で続く。
【００８９】
ユーザがテキストを編集したくない場合（つまり、操作１１０６からの「いいえ」経路）、ユーザがテキスト入力を続けるかどうかをＵＩで判別するが、これは、ユーザがカーソル位置を変更して文字を入力し続けることで示される（操作１１２０）。ユーザの動作はテキスト入力を続けることを示唆する傾向がある場合は、カーソルは現在のセクションの終わりのところの入力位置戻り（操作１１２２）、操作の流れは入力インライン操作１１０２で続く。ユーザが続行したくない場合、プロセスは終了する。
【００９０】
インライン入力：操作１１０２および１１０４
図１２は、インライン入力サブプロセス１２００を示しているが、これは、図１１の操作１１０２および１１０４の一実施例である。このサブプロセスを示す画面表示例が図２と図３に示されている。
【００９１】
操作１２０２で、ＵＩは、入力デバイス（たとえば、キーボード、音声認識）から表音文字テキスト（たとえば、ピンイン）の入力文字列を受け取る。言語入力ＵＩは、すでに変換されている言語テキストと同じインライン領域２０２内に表音文字テキストを表示する（操作１２０４）。表音文字テキストから言語テキストへのコンバータ１３８は、操作１２０６で表音文字テキスト文字列を言語テキスト（たとえば、漢字）に変換する。言語入力ＵＩは、表音文字テキストを変換済み言語テキスト文字列に置き換え、インライン領域２０２内にその言語テキストを表示する（操作１２０８）。そこでサブプロセス１２００は終了する。
【００９２】
センテンスベースの変換：操作１１０４
図１３は、自動変換サブプロセス１３００を示しているが、これは、操作１１０４の他の実施例である。このサブプロセスを示す画面表示例が図３と図４に示されている。
【００９３】
操作１３０２で、言語入力アーキテクチャは、入力デバイスを介してユーザによる表音文字テキスト入力文字列を受け取る。言語入力ＵＩは、インライン領域２０２内に入力表音文字テキストを表示する（操作１３０４）。操作１３０６で、言語入力アーキテクチャは、表音文字が既存のセンテンスに属すのかそれとも新規センテンスに属すのかを判別する。この判別は、ピリオドやカンマなどの何らかの句読点をユーザが入力したかどうかに基づいて行うことができる。
【００９４】
入力表音文字テキストが新規センテンスに属している場合（つまり、操作１３０６からの「新規」経路）、入力された表音文字テキストは、前のセンテンスがあればその中の前のテキストの内容を考慮することなく自動的に言語テキストに変換される（操作１３０８）。逆に、入力表音文字テキストが新規センテンスに属していない場合（つまり、操作１３０６からの「既存」経路）、センテンス内の表音文字テキストは、そのセンテンスの文脈内で自動的に変換される（操作１３１０）。この変換の一部として、追加テキストがセンテンス全体の意図した意味を変更し続けるのと同時に、すでに変換されている言語テキストをさらに修正することができる。操作の流れは、変換操作１３０８および１３１０に続いて終了する。
【００９５】
確認済み変換：操作１１０４
図１４は、自動変換サブプロセス１４００を示しているが、ここではユーザが変換済み言語テキストを確認する。サブプロセス１４００は、操作１１０４の他の実施例である。
【００９６】
操作１４０２で、言語入力アーキテクチャは、入力デバイスを介してユーザによる表音文字テキスト入力文字列を受け取る。言語入力ＵＩは、インライン領域２０２内に入力表音文字テキストを表示する（操作１４０４）。対応する未確認言語テキストの表音文字テキストは、文字ベースの言語の言語テキストに自動的に変換される（操作１４０６）。
【００９７】
操作１４０８で、言語入力ＵＩは、ユーザが変換済み言語テキストを確認したかどうかを判別する。確認されていない場合、サブプロセスは終了する。そうでなく、ユーザが言語テキストを確認している場合（つまり、操作１４０８からの「はい」経路）、ＵＩでは、変換された言語テキストを確認し、追加表音文字テキストが入力されるとともに他の文脈上の考察からその言語テキストを削除する（操作１４１０）。
そこで操作の流れが終了する。
【００９８】
インプレース誤り修正：操作１１０８〜１１１８
図１５〜１８は、インプレース誤り修正サブプロセスの異なる実装を示しているが、これは、図１１の操作１１０８〜１１１８の一実施例である。図１５および１６のサブプロセスは、言語テキストを修正するための第１と第２の候補リストの使用に関するものである。図１７および１８のサブプロセスは、表音文字テキストヒントウィンドウを使用して表音文字テキストを修正することに関するものである。
【００９９】
図１５は、他の言語テキストをポップアップ候補ウィンドウで提供することにより変換済み言語テキストを修正するインプレース誤り修正サブプロセス１５００を示している。
このサブプロセス１５００を示す画面表示例が図５に示されている。
【０１００】
操作１５０２で、ユーザがカーソルをすでに入力している言語テキストの近くに移動することに応えて（たとえば、文字の前）、言語入力ＵＩでは、編集する言語テキストを選択または識別する。このＵＩは、編集する言語テキストの真下にある第１の候補ウィンドウを含む編集ウィンドウ５００を開き、選択した言語テキストの置換候補のリストを表示する（操作１５０４）。
【０１０１】
操作１５０６で、ＵＩは第１の候補ウィンドウ５０４から置換候補のユーザによる選択を受け取る。言語入力ＵＩは、表音文字テキストを同じインライン領域２０２内で、選択された言語テキストの代わりに、選択した置換言語テキスト候補を表示する（操作１５０８）。そこで操作の流れが終了する。
【０１０２】
図１６は、他の言語テキストを他の言語テキストの完全なリストを二次の大きなポップアップ候補ウィンドウで提供することにより変換済み言語テキストを修正するインプレース誤り修正サブプロセス１６００を示している。このサブプロセス１６００を示す画面表示例が図６に示されている。
【０１０３】
操作１６０２で、ユーザがカーソルをすでに入力している言語テキストの近くに移動することに応えて（たとえば、文字の前）、言語入力ＵＩでは、編集する言語テキストを選択または識別する。このＵＩは、編集する言語テキストの真下にある第１の候補ウィンドウ５０４を含む編集ウィンドウ５００を開き、選択した言語テキストの置換候補の短いリストを表示する（操作１６０４）。ユーザが適切な置換候補を見つけられない場合、ユーザは置換言語テキスト候補の第２の候補ウィンドウ６００を呼び出すことができる（操作１６０６）。第２の候補リストは、第１の候補ウィンドウよりも大きなまたはより完全な置換言語テキスト候補のリストを含む。
【０１０４】
操作１６０８で、ＵＩは第２の候補ウィンドウ６００から置換候補のユーザによる選択を受け取る。言語入力ＵＩは、表音文字テキストを同じインライン領域２０２内に選択された言語テキストの代わりに選択した置換言語テキスト候補を表示する（操作１６１０）。そこで操作の流れが終了する。
【０１０５】
図１７は、ポップアップヒントウィンドウを介してすでに入力されている表音文字テキストを編集することにより変換済み言語テキストを修正するインプレース誤り修正サブプロセス１７００を示している。このサブプロセス１７００を示す画面表示例が図７に示されている。
【０１０６】
操作１７０２で、ユーザがカーソルをすでに入力している言語テキストの近くに移動することに応えて（たとえば、文字の前）、言語入力ＵＩでは、編集する言語テキストを選択または識別する。このＵＩは、編集する言語テキストの真上にある表音文字テキストヒントウィンドウ５０２を含む編集ウィンドウ５００を開き、ユーザが入力したとおりに表音文字テキストを表示する（操作１７０４）。
【０１０７】
ヒントウィンドウ５０２で表音文字テキストをユーザが選択した後（つまり、操作１７０６からの「はい」経路）、ＵＩは編集している言語テキストの代わりに表音文字テキストを表示する（操作１７０８）。これにより、ユーザはインライン領域２０２内で表音文字テキストを修正できる。そこで操作の流れが終了する。
【０１０８】
図１８は、すでに入力されている表音文字テキストを編集し、編集後の候補の新規セットを表示することにより変換済み言語テキストを修正するインプレース誤りサブプロセス１８００を示している。このサブプロセス１８００を示す画面表示例が図８と図９に示されている。
【０１０９】
操作１８０２で、ユーザがカーソルをすでに入力している言語テキストの近くに移動することに応えて（たとえば、文字の前）、言語入力ＵＩでは、編集する言語テキストを選択または識別する。このＵＩは、選択した言語テキストの真上にある表音文字テキストヒントウィンドウ５０２および言語テキストの真下にある第１の候補ウィンドウ５０４を含む、編集ウィンドウ５００を開く（操作１８０４）。
【０１１０】
ヒントウィンドウ５０２で表音文字テキストをユーザが選択した後（つまり、操作１８０６からの「はい」経路）、ＵＩは編集している言語テキストの代わりに表音文字テキストを表示する（操作１８０８）。ＵＩは、表音文字テキストのユーザ編集結果を受け取ってインライン編集領域２０２内に表示する（操作１８１０）。編集への応答として、ＵＩは第１の候補ウィンドウ５０４に置換言語テキスト候補の新規リストを表示する（操作１８１２）。ユーザは、さらに、必要な場合に第２の候補ウィンドウ６００を呼び出すことができる。
【０１１１】
操作１８１４で、ＵＩは第１の候補ウィンドウ５０４の新規リストから置換候補のユーザによる選択を受け取る。言語入力ＵＩは、表音文字テキストを同じインライン領域２０２内に選択された言語テキストの代わりに選択した置換言語テキスト候補を表示する（操作１６１０）。
そこで操作の流れが終了する。
【０１１２】
多言語入力
図１９は、２つまたはそれ以上の異なる言語をインライン入力ＵＩを使用して入力する多言語入力サブプロセス１９００を示している。このサブプロセス１９００を示す画面表示例が図１０に示されている。
【０１１３】
操作１９０２で、言語入力アーキテクチャは、入力デバイスを介してユーザによる表音文字テキストと非表音文字テキストの混合入力文字列を受け取る。言語入力ＵＩは、すでに変換されている言語テキストと同じインライン領域２０２内に混合テキストを表示する（操作１９０４）。
【０１１４】
操作１９０６で、言語入力アーキテクチャは、入力テキストが非表音文字テキスト（たとえば、英語）に対して表音文字テキスト（たとえば、ピンイン）かどうかを判別する。入力テキストが表音文字テキストである場合（つまり、操作１９０６からの「はい」経路）、言語入力アーキテクチャにより、表音文字テキストは言語テキストに変換される（操作１９０８）。ＵＩは、入力された表音文字テキストの代わりに、また前のテキストとインラインに言語テキストを表示する（操作１９１０）。他方、入力テキストが表音文字テキストである場合（つまり、操作１９０６からの「いいえ」経路）、言語入力アーキテクチャでは変換せず、ＵＩは前のテキストとインラインに非表音文字テキストを表示する（操作１９１２）。そこで操作の流れが終了する。
【０１１５】
中国語ベースの実施例
図２０〜２６は、中国語の文脈における言語入力アーキテクチャとＵＩの実施例を示している。この文脈では、表音文字テキストは中国語ピンインであり、言語テキストは漢字である。
【０１１６】
図２０は、インライン入力機能の一例を示す、中国語入力ユーザインタフェースの実装である。表２０００は、インライン入力領域に表示されるとおりのユーザによるピンインテキスト２００２および２００４入力および対応する変換された漢字テキスト２００６および２００８の２つの文字列を含む。表示画面例２０１０は、表２０００の下に示されており、変換された漢字テキスト２００８を含む。カーソルバー２０１２のところで入力しているピンインテキストは変換された中国語テキストとインラインに表示されることに注意されたい。表示画面２０１０に示される他の特性は、文書処理技術の分野では知られている。
【０１１７】
図２１は、変換された漢字テキストが現在インライン入力領域２１０２に表示されている中国語ＵＩ画面２１００を示している。ユーザは、編集のためカーソルを移動して中国語文字テキスト２１０４を選択し、ピンインテキストヒントウィンドウ２１０８と第１の漢字テキスト候補ウィンドウ２１１０からなるポップアップ編集ウィンドウ２１０６を呼び出している。選択した中国語文字テキスト２１０４と関連するピンインテキスト２１１２が、ピンインテキストヒントウィンドウ２１０８に表示される。
【０１１８】
図２２は、インプレース誤り修正機能の一例を示す、中国語入力ユーザインタフェースの一実装である。表２２００では、表音文字ヒントおよび候補リストを含む編集ウィンドウを開くアクション２２０２および候補リストから項目「１」を選択するアクション２２０４の２つのユーザアクションを左の列に示している。左の列のユーザアクションへの応答として、表２２００の右の列は、対応するスクリーンショット例２２０６および２２０８を示している。
【０１１９】
スクリーンショット２２０６に関して、ユーザは、カーソルを文字テキスト２２１０の前に移動し、編集対象の中国語文字テキスト２２１０を選択する。ユーザは、ピンインテキストヒントウィンドウ２２１２および第１の候補リストウィンドウ２２１４を含む編集ウィンドウを開くコマンドを入力する。
次に、ユーザは候補リスト２２１４から項目「１」を選択し、項目「１」と関連する第１の候補２２１６が元の選択したテキスト２２１０と置き換わる。さらに、リスト２２０８内の候補が更新され（つまり、上へ１項目分スクロール）、選択した候補２２１６がインライン入力領域内に移動することにも注意されたい。更新作業がアニメーション化され、選択された候補２２１６がインライン領域に移動することが視覚的に示される。
【０１２０】
図２３は、ピンインテキストのインプレース修正を示す、中国語入力ユーザインタフェースの他の実装である。表２３００の左の列は、５つのユーザアクション列２３０２〜２３１０を含み、右の列は、ユーザアクションで得られる対応するスクリーンショット例２３１２〜２３２０を示している。
【０１２１】
ユーザが文字テキストを編集することに決めた場合、ユーザはカーソルを編集する文字テキストの前に移動する（アクション２３０２）。ユーザが編集する中国語文字テキスト２３３０を選択するとする（ＵＩスクリーンショット２３１２）。文字テキスト２３３０の前にカーソルを移動した後、ユーザはコマンドを入力し（たとえば、「ＥＳＣ」キーを押す）、編集ウィンドウを呼び出す（アクション２３０４）。その結果、ピンインテキストヒントウィンドウ２３３２および第１の候補リストウィンドウ２３３４が、ＵＩスクリーンショット２３１４に示されているように開かれる。
【０１２２】
次に、ユーザは「０」（アクション２３０６）を入力して、ピンインテキストヒントウィンドウ２３３２でピンインテキスト２３３６を選択する。選択したピンインテキスト２３３６が、ＵＩスクリーンショット２３１６で示されているように選択した文字２３３０に取って代わる。このときに、ユーザは元のピンインテキストを自由に編集できる。
【０１２３】
ユーザがピンインテキスト２３３６内にアポストロフィを追加し（アクション２３０８）、ＵＩスクリーンショット２３１８に示されているようなテキスト２３３６’を出力すると仮定する。編集されたピンインテキスト２３３６’が、インライン領域と、ピンインテキストヒントウィンドウ２３３２の両方に表示される。編集の後、第１の候補ウィンドウ２３３４が文字テキスト候補の新規リストで更新される。この例では、編集されたピンインテキスト２３３６’に対応する新規文字テキスト候補２３３８が、第１の候補リストウィンドウ２３３４に表示される。
【０１２４】
最後に、ユーザは、たとえば「１」を入力して第１の候補リストウィンドウ２３３４で目的の文字テキスト２３３８を選択する（アクション２３１０）。
その結果、選択した文字テキスト２３３８が、ＵＩスクリーンショット２３２０に示されているように、編集されたピンインテキスト２３３６’の場所にインプレースで表示される。この方法で、新規文字テキスト２３３８が実際に、元の言語テキスト２３３０の代わりに表示される。
【０１２５】
図２４は、中国語と英語などの混合言語の入力を示す、中国語入力ユーザインタフェースの他の実装である。表２４００の左の列は、２つのユーザアクション列２４０２および２４０４を含み、右の列は、ユーザアクションで得られる対応するスクリーンショット例２４０６および２４０８を示している。
【０１２６】
ユーザがアクション２４０２で示されているようにピンインテキスト２４１０と英語テキスト２４１２の混合テキストを入力すると仮定する。ユーザは、中国語入力と英語入力のモード切替を行うことなく混合テキストを言語入力ＵＩに入力できる。つまり、ユーザは、停止することなく、同じ行にピンインテキストと英語テキストを簡単に入力できる。ピンインテキスト２４１０は、ＵＩスクリーンショット２４０６に示されているように、中国語テキスト２４１４に変換され、同じインライン領域内に表示される。英語テキスト２４１２は、言語入力アーキテクチャで変換されず、入力したとおりに表示される。
【０１２７】
その後、ユーザはモードを切り替えずに、ピンインテキスト２４１６、英語テキスト２４１８、およびピンインテキスト２４２０の混合テキストを入力する（アクション２４０４）。ピンインテキスト２４１６および２４２０は、ＵＩスクリーンショット２４０８に示されているように、中国語テキスト２４２２および２４２４に変換される。英語テキスト２４１８は、変更されずそのままであり、変換された中国語テキストとインラインに表示される。
【０１２８】
一実装により、表音文字テキストと非表音文字テキストが異なった形で表され、区別できる。たとえば、図２０の表２０００および図２４の表２４００内の混合テキストを比較する。ピンインテキスト（たとえば、図２０の２６１２）は狭い太字フォントで表示されるが、英語テキスト（たとえば、図２４の２４１２または２４１８）は細いｃｏｕｒｉｅｒタイプのフォントで表示される。
【０１２９】
図２５は、第１と第２の候補リストのインプレース編集を示す、中国語入力ユーザインタフェースの他の実装である。表２５００の左の列は、２つのユーザアクション列２５０２および２５０４を含み、右の列は、ユーザアクションで得られる対応するスクリーンショット例２５０６および２５０８を示している。
【０１３０】
アクション２５０２で、ユーザは編集する中国語テキストを選択し、ピンインテキストヒントウィンドウ２５１０と第１の文字テキスト候補リスト２５１２を開くコマンドを入力する。ウィンドウ２５１０および２５１２は、ＵＩスクリーンショット２５０６に示されているように、それぞれ、インライン入力領域の上および下に表示される。
【０１３１】
次に、アクション２５０４で、ユーザは、第２の文字テキスト候補リストを開くコマンドを入力する。第２の文字テキスト候補リストウィンドウ２５１４が、ＵＩスクリーンショット２５０８に示されているように、第１の候補リスト２５１２の隣りにポップアップで開く。その後、ユーザは第２の文字テキスト候補リストウィンドウ２５１４から文字テキスト候補を選択することができる。
【０１３２】
図２６は、確認済み文字テキストのあるセンテンスベースの自動変換を示す、中国語入力ユーザインタフェースの他の実装である。表２６００の左の列は、５つのユーザアクション列２６０２〜２６１０を含み、右の列は、ユーザアクションで得られる対応するスクリーンショット例２６１２〜２６２０を示している。
【０１３３】
アクション２６０２で、ユーザはピンインテキスト２６２２および２６２４を入力する。ＵＩスクリーンショット２６１２に示されているように、ピンインテキスト２６２２は自動的に文字テキスト２６２６に変換され、ピンインテキスト２６２４はさらにユーザ入力があるまで変換されずそのままである。アクション２６０４で、ユーザは続いてピンインテキスト２６２８を入力する。すると、すでに変換されている文字テキスト２６２６は、ピンインテキスト２６２８を追加することにより文脈が変更された結果、異なる中国語文字テキスト２６３０に自動的に変換される。変換された文字テキストのこのような修正は、ＵＩスクリーンショット２６１４に示される。ピンテキスト２６２４および２６２８は、この時点では変換されずそのままであり、修正された言語テキストとインラインに表示され続ける。
【０１３４】
次に、アクション２６０６で、ユーザは、変換したばかりの文字テキスト２６３０を確認する確認コマンド（たとえば、スペースバーを押す）を入力する。一方、ピンインテキスト２６２４および２６２８は、ここまでのセンテンスの文脈に基づいてそれぞれ自動的に中国語テキスト２６３２および２６３４に変換される。これは、スクリーンショット２６１６に示されている。
【０１３５】
その後、アクション２６０８で、ユーザが追加ピンインテキスト（図に示されていない）を同じセンテンス内に入力し、ピンインテキストが、ＵＩスクリーンショット２６１８に示されているように、文字テキスト２６３６に変換される。確認済みの文字テキスト２６３０はピンインテキストを後から入力しても変更されないことに注意されたい。
【０１３６】
比較のため、文字テキスト２６３０はユーザアクション２６０６によって確認されないと仮定する（たとえば、ユーザがスペースバーを押さない）。その代わりに、ユーザは、文字テキスト２６３０の確認をせずに、追加ピンインテキストを入力する。この場合、ＵＩスクリーンショット２６２０に示されているように、文字テキスト２６２６は変更されずそのままであり、テキスト２６３０に修正されない。これは、ピンインテキストから文字テキストへの自動変換がセンテンスベースであり、文字テキスト２６２６がセンテンスの一部であるためである。センテンスがアクティブである限り（つまり、句読点でセンテンスが終わっていないか、または新しいセンテンスがまだ開始していない）、現在のセンテンス内のすでに変換された文字テキストは、ユーザが変換済み文字テキストを確認しない限り、さらに修正を受ける。
【０１３７】
結論
上の説明では、構造機能および／または方法論的動作に固有の言語を使用しているが、付属の特許請求の範囲で定義されている本発明は説明した特定の機能または動作に限られるわけではない。むしろ、特定の機能および動作は、本発明を実装する実施例として開示されている。
【図１】
2011060308.tif 000003
【図２】
2011060308.tif 000004
【図３】
2011060308.tif 000005
【図４】
2011060308.tif 000006
【図５】
2011060308.tif 000007
【図６】
2011060308.tif 000008
【図７】
2011060308.tif 000009
【図８】
2011060308.tif 000010
【図９】
2011060308.tif 000011
【図１０】
2011060308.tif 000012
【図１１】
2011060308.tif 000013
【図１２】
2011060308.tif 000014
【図１３】
2011060308.tif 000015
【図１４】
2011060308.tif 000016
【図１５】
2011060308.tif 000017
【図１６】
2011060308.tif 000018
【図１７】
2011060308.tif 000019
【図１８】
2011060308.tif 000020
【図１９】
2011060308.tif 000021
【図２０】
2011060308.tif 000022
【図２１】
2011060308.tif 000023
【図２２】
2011060308.tif 000024
【図２３】
2011060308.tif 000025
【図２４】
2011060308.tif 000026
【図２５】
2011060308.tif 000027
【図２６】
2011060308.tif 000028
【図２７】
2011060308.tif 000029