(57)【特許請求の範囲】
【請求項１】
テキスト入力を容易にする方法であって、
クライアント側の動作環境内のアプリケーション内から、入力アシスタントを呼び出す段階であって、前記入力アシスタントは、前記アプリケーションと同じ動作環境内の独立型入力サービスであるとともに複数のアプリケーション内から呼び出されるように動作可能である、段階と、
前記アプリケーションの入力領域においてユーザからのテキスト文字列を受信する段階と、
前記入力アシスタントによって、前記テキスト文字列を完成させる入力予測を提供する段階と、
を含み、
前記提供する段階は、
前記アプリケーションの前記入力領域内の1つの単語の少なくとも一部の入力テキストを選択する段階と、
2つ以上の異なるテキスト支援サービスのどれが前記入力テキストに関連する処理を実行するのに適切かを決定する段階と、
前記決定に基づき、前記2つ以上の異なるテキスト支援サービスから1つまたは複数のテキスト支援サービスを選択する段階であって、(i)前記ユーザからの動作がない期間が所定の期間経過後、かつ(ii)前記入力テキストの長さが所定の長さより長い場合には、前記１つまたは複数の選択されたテキスト支援サービスを取得する段階を自動的に実行する段階と、
前記入力アシスタントによって、前記入力アシスタントと通信する前記1つまたは複数の選択されたテキスト支援サービスから前記入力テキストに関連するテキスト内容を受信する段階と、
前記受信されたテキスト内容を前記クライアント側で提示する段階と、
を含み、
各テキスト支援サービスは、前記入力テキストに関して支援を提供するように構成され、
各テキスト支援サービスは、種々の言語の検出された特徴に基づいて、その選択を規定する異なる規則または基準を有していることを特徴とするテキスト入力を容易にする方法。
【請求項２】
前記入力予測は、前記入力文字列との関連性に従って順位付けされた、単語または表現のリストを具備することを特徴とする請求項1に記載の方法。
【請求項３】
前記リストは、前記アプリケーション内のポップアップメニューで前記ユーザに提示されることを特徴とする請求項2に記載の方法。
【請求項４】
前記リストからの最も高い順位の単語または表現の残りの部分が、前記入力テキスト内で影付きの色で塗られ、ユーザ確認に応じて前記入力領域に渡されることを特徴とする請求項2に記載の方法。
【請求項５】
前記メニュー内の項目の選択のユーザ確認に応じて、前記選択された入力テキストを置換するために、前記選択された項目を前記入力領域に渡す段階をさらに含むことを特徴とする請求項4に記載の方法。
【請求項６】
前記2つ以上の異なるテキスト支援サービスは、
第2の言語の単語もしくはフレーズの第1の言語での意味を提供する二国語辞書サービス、
ある言語の単語の誤った綴りを検出し同じ言語でのその正しい綴りを提供する綴りチェックサービス、
少なくとも2つの言語間のテキスト翻訳を提供する翻訳サービス、
ある言語の特定の単語の同意語および反意語を提供するシソーラスサービス、
目的の表現に関連する特定のユーザによって入力された過去の表現を提供する入力履歴サービス、
1つまたは複数の入力文の文法をチェックする文法チェッカ、
特定の文書形式の本文を含む予め規定された文書形式を提供するテンプレートフィルタ、
入力テキストの全体的な文書品質を決定するために使用することができるグレーダ、
のうちの少なくとも2つを含むことを特徴とする請求項1に記載の方法。
【請求項７】
前記ユーザによって入力される前記テキスト文字列は英語であり、
前記二国語辞書サービスは、英語の単語またはフレーズに対して中国語の意味を提供するように構成された英語-中国語辞書サービスであり、
前記綴りチェックサービスは、英単語の誤った綴りを検出し、その正確な綴りを提供するように構成され、
前記翻訳サービスは、英語および中国語間で翻訳するように構成され、
前記シソーラスサービスは、英単語の同意語および反意語を返すように構成されていることを特徴とする請求項6に記載の方法。
【請求項８】
前記2つ以上の異なるテキスト支援サービスの少なくとも1つは、前記クライアントから離れたサーバにおいて実行されることを特徴とする請求項1に記載の方法。
【請求項９】
前記入力テキストを選択する段階は、前記ユーザによって手動で行われることを特徴とする請求項1に記載の方法。
【請求項１０】
前記入力テキストを選択する段階は、前記入力アシスタントによって自動的に行われることを特徴とする請求項1に記載の方法。
【請求項１１】
クライアント側のアプリケーション内から呼び出され、前記アプリケーションの入力領域内でユーザから受信した入力テキストを処理するように構成された、前記クライアント側の入力アシスタントであって、前記クライアント側のアプリケーションと同じ動作環境内の独立型入力サービスである、入力アシスタントと、
前記入力テキストを構文解析するテキストパーサと、
2つ以上の異なるテキスト支援サービスと通信し、2つ以上の異なるテキスト支援サービスのどれが前記入力テキストに関連する処理を実行するのに適切かを決定し、前記決定に基づき、前記２つ以上の異なるテキスト支援サービスから1つまたは複数のテキスト支援サービスを選択し、(i)前記ユーザからの動作がない期間が所定の期間経過後、かつ(ii)前記入力テキストの長さが所定の長さより長い場合には、前記１つまたは複数の選択されたテキスト支援サービスを取得することを自動的に実行し、前記選択された１つまたは複数のテキスト支援サービスから前記入力テキストに関連するテキスト内容を受信し、前記入力テキストに関連する前記テキスト内容を結果として前記入力アシスタントに返すように構成された、サービス通信インタフェースと、
前記入力アシスタントから受信した前記結果を提示するプレゼンテーションハンドラと、
を備え、
各テキスト支援サービスは、前記入力テキストに関して支援を提供するように構成され、
各テキスト支援サービスは、種々の言語の検出された特徴に基づいて、その選択を規定する異なる規則または基準を有していることを特徴とするテキスト入力を容易にするためのシステム。
【請求項１２】
前記2つ以上の異なるテキスト支援サービスの少なくとも1つは、リモートサーバに配置されることを特徴とする請求項11に記載のシステム。
【請求項１３】
前記2つ以上の異なるテキスト支援サービスは、
第2の言語の単語もしくはフレーズの第1の言語での意味を提供する二国語辞書サービス、
ある言語の単語の誤った綴りを検出し同じ言語でのその正しい綴りを提供する綴りチェックサービス、
少なくとも2つの言語間のテキスト翻訳を提供する翻訳サービス、
ある言語の特定の単語の同意語および反意語を提供するシソーラスサービス、
目的の表現に関連する特定のユーザによって入力された過去の表現を提供する入力履歴サービス、
のうちの少なくとも2つを含むことを特徴とする請求項12に記載のシステム。
【請求項１４】
前記ユーザによって入力される前記テキスト文字列は英語であり、
前記二国語辞書サービスは、英語の単語またはフレーズに対して中国語の意味を提供するように構成された英語-中国語辞書サービスであり、
前記綴りチェックサービスは、英単語の誤った綴りを検出し、その正確な綴りを提供するように構成され、
前記翻訳サービスは、英語および中国語間で翻訳するように構成され、
前記シソーラスサービスは、英単語の同意語および反意語を返すように構成されていることを特徴とする請求項13に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、一般に、テキスト入力に関し、より詳細には、入力言語に精通していないユーザのためにテキスト入力を容易にする(facilitate)ことに関する。
【背景技術】
【０００２】
英語などのいくつかのラテン語に関して、単語は、コンピュータで入力するとき、1文字ずつ入力されるアルファベットから構成される。ユーザによるテキスト文字列入力では、単語の綴りの誤り、もしくは間違った時制などの文法上の誤りなど、いくつかの誤り、またはその他の誤りがある可能性がある。英語のテキストを入力する、母国語が英語ではないユーザに関して、例えば、英語で入力するときに適切な単語またはフレーズが使用されることを確実にするために、ユーザの母国語での単語の定義または文の意味を決定するために、ユーザがオンライン辞書または翻訳サービスなどの追加のリソースを見つける必要がある場合がある。いくつかの場合では、使用されるサービスは、特定の文字列に対する、綴りチェッカ、同意語または反意語を見つけるシソーラス、最も可能性が高い形態(例えば、綴り)の予測など、いくつかのテキスト入力支援機能を提供することができる。図1Aは、テキスト文字列「honor」の代替および修正を提供するテキストエディタの一例である。テキストエディタは、カーソルを文字列内に移動させ、マウスの右クリックによってトリガされる。この例では、ユーザは、ユーザが元々入力領域内に入力しようと意図していた単語を選択することができる。図1Bは、Google Inc.によって提供されるオンライン辞書サービスのGoogle(登録商標)辞書で単語「bilingual」の意味を見つける一例である。
【０００３】
しかしながら上記2つの例では、入力支援機能は、図1Aのテキストエディタなどの特定のアプリケーションに限定されるか、例えば別個のアプリケーションにおけるサービスによって提供されるインタフェースに従ってユーザが呼び出さなければならない別個のサービスによって提供される。さらに、各々の場合で提供されるサービスは、テキスト入力を特定のアプリケーションで行うときにユーザが頼るには十分ではない場合もある。
【０００４】
一方、中国語、韓国語または日本語の東アジア言語などのいくつかの非ラテン言語に関して、これらの言語の文字または記号がキーボードで見つからないため、ユーザはこのような言語の任意の文字を直接入力するために一般的なキーボードを使用することができない。これらの言語でのテキストの入力を容易にするために、種々の入力方法が使用される。これは、オペレーティングシステム内のいわゆる入力方式エディタ(Input Method Editor:IME)を実行し、それを、アプリケーションでユーザからのテキスト入力を必要とする可能性がある各アプリケーションで呼び出すことによって達成される。異なった言語または同じ言語でテキストを入力するために1つより多くのIMEを1つのコンピュータにインストールすることができ、各々をユーザによってユーザの好みに応じて使用することができる。IMEフレームワーク(IMF)は、異なったIMEを管理するオペレーティングシステム内の管理プラットフォームである。IMFは、Microsoft Windows(登録商標)(IMM32およびText Service Framework)、Linux(登録商標) (scimおよびibus)、Mac OSX(登録商標)およびAndroid(登録商標)(IMF)などの種々の最新オペレーティングシステムに存在する。オペレーティングシステムでの異なったIME間の切替えは、IMFによって管理される。しかしながら、文字の間接的な入力を提供する機能を除いて、このようなアジアの言語のために提供される大部分の入力方式は、ユーザをテキスト入力経験の際に支援する多くの追加の機能を持たない。
【０００５】
母国語が中国語で、特定のアプリケーションの入力領域に英語で入力しているユーザなど、非母国語で入力または書き込みするときにしばしば入力支援を必要とする場合があるユーザにとって、どのような形式のアプリケーションが使用されているか、または相互作用されているかに関係なく、ユーザが、複数の他のサービスを呼び出すことなく、高度なランタイム入力支援機能について1つのサービスのみに頼ることができれば、有益であろう。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本明細書に記載のシステムおよび方法は、オペレーティングシステム環境内の任意のアプリケーションから呼び出すためのIMEとして実行される入力アシスタントを提供することによって、上述した問題を解決することを目的とし、入力アシスタントは、ユーザが複数の入力支援サービスに対してこの単一のサービスに頼ることができるように高度な入力支援機能を提供する。
【課題を解決するための手段】
【０００７】
概して、本明細書に記載の主題の革新的な一態様は、テキスト入力を容易にするための方法に関する。方法は、クライアント側の動作環境でアプリケーション内から、アプリケーションと同じ動作環境内の独立型入力サービスであり、複数のアプリケーション内から呼び出されるように動作可能な入力アシスタントを呼び出す動作と、アプリケーションの入力領域でユーザからのテキスト文字列を受信する動作と、アプリケーションの入力領域内で1つの単語の少なくとも一部の入力テキストを選択する動作と、少なくとも2つ以上の異なるテキスト支援サービスから1つまたは複数のテキスト支援サービスを選択する動作と、入力アシスタントと通信する1つまたは複数の選択されたテキスト支援サービスからの入力テキストに関連するテキスト内容を入力アシスタントによって受信する動作と、受信されたテキスト内容をクライアント側で提示する動作とを含む。
【０００８】
他の態様では、最後に文字を入力してからユーザによって予め決められた動作がない期間後に、入力予測を提供することが実行可能であり、入力予測は、入力文字列との関連性に従って順位付けされた単語または表現のリストを含み得る。
【０００９】
さらに他の態様では、受信されたテキスト内容の項目が、選択された入力テキストに対する各項目の関連性のそれぞれの順位に従って、アプリケーション内のメニューに表示可能であり、ユーザが、例えばスペースバーまたは「リターン」キーを押すことによって、メニュー内の項目の選択を確認すると、選択された項目が、選択された入力テキストを代わりに使用するために入力領域に渡されてもよい。
【００１０】
一態様では、入力アシスタントと通信するテキスト支援サービスは、以下、すなわち、第2の言語の単語もしくはフレーズの第1の言語での意味を提供する辞書サービス、ある言語の単語の誤った綴りを検出し同じ言語でのその正しい綴りを提供する綴りチェックサービス、少なくとも2つの言語間のテキスト翻訳を提供する翻訳サービス、ある言語の特定の単語についての同意語および反意語を提供するシソーラスサービス、目標表現に関連する特定のユーザによって入力された過去の表現を提供する入力履歴サービス、1つまたは複数の入力文の文法をチェックする文法チェッカ、特定の文書形式の本文を含む予め定義された文書形式を提供するテンプレートフィルタを少なくとも含むことができる、あるいは、このサービスはさらには、入力テキストの全体的な文書品質を決定するために使用することができるグレーダによって提供され得る。他の態様では、ユーザによって入力されるテキスト文字列は英語であってもよく、二国語辞書サービスは、英語の単語またはフレーズに対する中国語での定義を提供するように構成された英語-中国語辞書サービスとすることができ、綴りチェックサービスは、英単語の誤った綴りを検出し、その正しい綴りを提供するように構成可能であり、翻訳サービスは、英語および中国語間で翻訳するように構成可能であり、シソーラスサービスは、英単語の同意語および反意語を返すように構成可能である。
【００１１】
さらに他の態様では、テキスト支援サービスの少なくとも1つは、クライアントから離れたサーバによって提供される。
【００１２】
これらの態様のそれぞれの他の実施形態は、これらの方法の動作を各々が実行するように構成された、対応するシステム、装置、および、コンピュータ記憶装置に記録されたコンピュータプログラムを含むことができる。
【００１３】
1つまたは複数の実施形態の詳細は、添付図面および以下の説明に記載される。他の特徴、目的および利点は、説明および図面から、並びに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１４】
【図１Ａ】特定のアプリケーションに固有のテキスト入力を容易にする既存の機能のスクリーンショットである。
【図１Ｂ】特定のアプリケーションに固有のテキスト入力を容易にする既存の機能のスクリーンショットである。
【図２】本発明によるテキスト入力を容易にするシステムの図である。
【図３】テキスト入力を容易にするプロセスを示すフローチャートである。
【図４Ａ】生成された入力案の例である。
【図４Ｂ】生成された入力案の例である。
【図４Ｃ】生成された入力案の例である。
【図５Ａ】ユーザによるテキストの入力を支援するために活用変化された案を提供するための形式を示す例である。
【図５Ｂ】ユーザによるテキストの入力を支援するために活用変化された案を提供するための形式を示す例である。
【図５Ｃ】ユーザによるテキストの入力を支援するために活用変化された案を提供するための形式を示す例である。
【図５Ｄ】ユーザによるテキストの入力を支援するために活用変化された案を提供するための形式を示す例である。
【発明を実施するための形態】
【００１５】
種々の図面中の同様の参照記号は、同様の要素を示す。
【００１６】
図2は、テキスト入力を容易にするためのシステムの図である。システムのこの実装例では、種々の異なるアプリケーションは、コンピュータのオペレーティングシステムにインストールされる。ウェブブラウザ210、またはテキストエディタ212などのこれらのアプリケーションは、それぞれ、ユーザのアプリケーションとの相互作用中にユーザがテキスト内容を入力するための少なくとも1つの領域を含む。各アプリケーションは、ユーザがアプリケーションの特定の入力領域で英語などの特定の言語で何らかのテキストを入力しているときにテキスト入力支援を提供することができる綴りチェッカなどのいくつかの内部テキスト入力支援機能をすでに持っていてもよい。
【００１７】
これらのアプリケーションは、それらがそれら自体のテキスト入力支援能力を有するかどうかにかかわらず、オペレーティングシステムの管理の下で、同じオペレーティングシステム環境の下に存在する外部入力方式エディタ(IME)または入力アシスタントを呼び出すように構成されている。呼出しは、例えば、カーソルが入力領域内で点滅しているときなど、焦点がアプリケーションの入力領域内にあるときに、「ctrl+スペース」などのキーの特定の組合せを押すことによって引き起こされてもよい。呼び出されたIMEまたは外部入力アシスタントは、呼び出しているアプリケーション自体の内部の入力支援機能によって提供される機能の範囲よりはるかに広い機能の範囲をカバーすることができるアプリケーションを任意に呼び出すための一組の一様な入力アシスタント機能を提供することができる。
【００１８】
図2のシステムでは、入力アシスタント220は、種々のアプリケーション210〜214と同じオペレーティングシステム環境で動作する。入力アシスタントは、この例では、3つのモジュール、すなわち、テキストパーサ222、プレゼンテーションハンドラ224およびサービス通信インタフェース226を備える。テキストパーサ222は、アプリケーションの入力領域からテキスト文字列の形態でテキスト入力を受信し、この受信されたテキスト文字列に予備構文解析を行い、どの入力支援サービスがこの入力文字列の要求を処理するのに適切であるかを決定し、詳細なテキスト支援情報のためのサービス通信インタフェース226を介してテキスト文字列を関連するサービスに送信するように構成されている。プレゼンテーションハンドラ224は、入力文字列に対する関連性に応じた異なるサービスの結果の各項目の点数化および順位などの適切な形態で入力アシスタントサービスから受信した結果を処理し、提示し、ユーザによる閲覧のためのポップアップメニューで順位に従って項目を表示するように構成されている。さらに、ハンドラ224は、リスト内の特定の項目をアプリケーションの入力領域に渡すために、または、ポップアップメニューもしくはサブメニューを終了させるために、ユーザからのナビゲーションコマンドまたは選択を受信することもできる。
【００１９】
サービス通信インタフェース226は、種々の入力支援サービスと通信するように構成され、種々の入力支援サービスは、入力アシスタント220および呼び出すアプリケーション210〜214と同じコンピュータ内に実装されてもよく、または、リモートサーバ内に実装されてもよい。インタフェース226は、アプリケーションの入力領域から受信された構文解析された文字列を適切なサービスに受け渡し、これらのサービスからの結果を待つ。結果が受信されると、インタフェース226は、これらの結果を、呼出し側アプリケーションでのプレゼンテーション処理およびクライアント装置への表示のため、プレゼンテーションハンドラ224に送信する。
【００２０】
複数の異なるテキスト支援サービス232〜238が、入力アシスタント220に利用可能であってもよい。処理の複雑さの性質に基づいて、入力支援サービス232〜238のいくつかまたはすべてが、入力アシスタント220と同じオペレーティングシステム環境内に存在してもよく、いくつかの実装では、オペレーティングシステムの下で容易に開発および管理するための1つの製品として、入力アシスタント220と一体化されてもよい。いくつかの他の入力支援サービスは、呼出し側アプリケーションおよび入力アシスタント220が動作しているコンピュータから離れた場所に存在してもよい。入力アシスタント220は、サービス通信インタフェース226を介して、簡易オブジェクトアクセスプロトコル(SOAP)を介するウェブサービスへの呼出しなどの標準プロトコルに従って、インターネットまたは他の専用ネットワークを介してこのようなサービスと通信することができる。プライバシを保証するために、このような通信は、プライバシ保護技術および/または暗号化プロトコルを使用して実施されてもよい。
【００２１】
図3は、テキスト入力を容易にするプロセスを示すフローチャートである。図3のプロセスは、図2の入力アシスタント220で実施されてもよい。ステップ301で、入力アシスタント220はアプリケーション内で呼び出される。この場合のアプリケーションは、例えば、ワードプロセッシングアプリケーション、インスタントメッセンジャ、または単に、Google Chrome(登録商標)もしくは他のブラウザなどの特定のブラウザによって開かれたテキスト入力部を有するウェブページであってもよく、あるいは、ユーザとの相互作用での特定のステップでユーザからのテキスト入力を必要とする任意の他のアプリケーションであってもよい。参照を容易にするために、ユーザとの相互作用中にユーザからテキスト入力を受信するための入力領域を有するこのようなアプリケーションを指すために、任意の特定のアプリケーションの代わりに、総称用語「アプリケーション」を以下では使用する。アプリケーションは、綴りチェック、文法チェック、同意語および反意語を見つけるためのシソーラスなどを提供するワードプロセッシングプログラムなど、それ自体の入力支援機能をすでに有してもよい。このようなアプリケーションを使用して、ユーザは、アプリケーション自体の内部のこれらの入力支援機能を使用することを選択することができ、または、アプリケーション内からの入力アシスタント220の呼出しを介して、本明細書に記載のシステムによって提供されるものなど、外部リソースを使用することを決定することができる。
【００２２】
いくつか実装形態では、ユーザが現在作業している入力領域が焦点の対象となった後、例えば、カーソルが入力領域内にあり、点滅し、入力領域が入力テキストを受ける準備ができていることを示す場合、ユーザは、「Ctrl+スペース」または「Ctrl+Shift+スペース」などのキーの組合せで打鍵することによって、入力アシスタント220の呼出しへと進むことができる。入力アシスタント220を呼び出すためのキーの正確な組合せは、オペレーティングシステム環境で慣習的に構成されてもよい。例えば、入力アシスタント220は、アプリケーションと同じコンピュータ上の同じオペレーティングシステム環境内に存在するサービスであり、入力アシスタント220およびアプリケーションの双方は、このコンピュータ上の同じオペレーティングシステムによって管理されている。
【００２３】
外部入力アシスタント220の呼出しは、アプリケーション内の任意の内部入力支援機能を、それらの異なるトリガ設定のために自動的に抑制する必要はない。例えば、特定のワードプロセッシングプログラムでは、綴りおよび文法のチェックが、バックグラウンドプロセスによって入力領域内に既に入力されたテキスト全体に自動的に行われてもよく、同意語および反意語の発見が、目標の単語を選択し、「Shift+F7」を押下することによって行われてもよく、呼び出された入力アシスタント220によって、特定の入力文字列を処理するために入力アシスタント220を呼び出すための機構が上記トリガ機構と異なる限り、ユーザは、ユーザのテキスト入力経験を改善するために、内部または外部の入力支援機能を呼び出す選択肢を常に有することができる。
【００２４】
入力アシスタント220がアプリケーション内で呼び出され、入力領域がユーザからのテキスト入力を受信した後、入力支援が外部入力アシスタント220からユーザに利用可能になる。例えば、ユーザは以下の文字列を入力領域内に入力することができる「Wikipedia is a free, multili」(ステップ302)。その後、ユーザは、ユーザが入力しようとする単語がどのように綴られたかを考えるのをこの時点でやめることができる。
【００２５】
いくつかの実装形態では、入力アシスタント220は、最後の文字の入力から2秒など、予め決められた期間にユーザからの動作がないことを決定した場合、自動的にトリガされてもよい。いくつかの実装形態では、入力アシスタント220は、予め決められた期間が経過し、既に入力されたテキストが少なくとも予め決められたしきい値長さ、例えば4文字である場合にのみ、トリガされることになる。トリガに応じて、入力アシスタント220は、カーソルが位置する場所から戻って次のスペースまでのテキストの文字列を読み取ることになる。上記例では、文字列「multili」が入力文字列として読み取られ、さらなる処理のために入力アシスタント220に送信されることになる。
【００２６】
代わりに、ユーザは、カーソルをユーザが入力した文字列の終わりから未完成の単語の中央または最初の文字のすぐ前に移動させた可能性がある。例えば、カーソルは、文字列「multili」の文字「l」および「t」の間、または文字「m」のすぐ前に位置する可能性がある。ユーザは、入力アシスタント220をトリガするために、「Ctrl+'バックスラッシュ'」などのキーの組合せをさらに使用することができる。この場合、入力アシスタント220は、カーソルの前後の、すなわち間にスペースがない連続した文字列を読み取ることができ、同様に、文字列「multili」を入力アシスタント220への入力文字列として取り出す。さらに、ユーザが文字列「multili」の後に1つまたは複数のスペースを意図せずに入力した場合、入力アシスタント220は、これらのスペースをスキップし、次のスペースまで読み返すように、したがって、入力アシスタント220への入力文字列として文字列「multili」を依然として得るように構成されてもよい。したがって、システムは、入力テキストから、正確にまたは不正確に綴られている可能性がある最後の入力単語または単語の断片を読み取ることができる。
【００２７】
入力文字列が得られると、入力アシスタント220は、文字列「multili」で開始する任意の可能な単語を得るために、サービス通信インタフェース226を介してこの入力文字列を辞書サービス232に渡す。この場合、この文字列で開始する単語を完成させるための入力案を提供する目的のために、文字列「multili」はそのままの状態で渡され、目的のサービスは明確である(または、目的のサービスは最小限の程度の信頼性で決定される)、すなわち、単語または単語の断面のための辞書サービスであるため、入力アシスタントのテキストパーサ222は、入力文字列での構文解析に自身が関与する必要はない。文字列「multili」を受信すると、入力アシスタント220自体に組み込まれたデジタル辞書製品、または、インターネットを介してアクセス可能なオンライン辞書サービスであってもよい辞書サービス232は、そのデータ格納部から、文字列「multili」で始まるあらゆる単語を検索し、それらを自身の順位基準に従って並べ替え、ユーザに提示するためにサービス通信インタフェース226を介して結果を入力アシスタント220のプレゼンテーションハンドラ224に送出する。プレゼンテーションハンドラ224は、予測された単語のリストを受信すると、ポップアップメニューを準備し、ポップアップメニューおよび単語をアプリケーションの入力領域に隣接して表示する(ステップ303)。一部のユーザにとって、オートコンプリーションの機能は必要ない可能性がある。この場合、図3に示すステップ303をスキップすることができ、入力アシスタント220は、ステップ304〜306に記載されている支援を提供するために進むことができる。
【００２８】
予測された単語のリストは、それらの基本的な意味と共に提示されてもよい。いくつかの実装形態では、基本的な意味は異なった言語である。図4Aは、予測された単語のリストのメニューの一例であり、母国語が中国語のユーザによる理解を容易にするために、各単語の後にそれらの中国語での基本的な意味が示される。この例では、第1の予測された単語「multilingual」がデフォルトで選択される。文字列「lingual」は、単語「multilingual」を完成させるために入力領域内にすでに一時的に入力されており、予測された部分「ngual」は、これが単に提案された入力であり、入力領域での最終的な入力ではないことを示すために、影付きの色であるか、下線が付けられる、または任意の他の特徴を示す方法で強調される。単語「multilingual」が、ユーザが入力することを意図するものであることをユーザが決定する場合、ユーザは、例えばスペースバーまたは「リターン」キーを押すことによって、完全な単語「multilingual」の入力を確定することができる。この単語が、ユーザが意図するものではない場合、ユーザは、上および下矢印キーを使用して意図された単語に対して上下にスクロールさせることによって、リスト内の他の単語を選択することができる。いくつかの実施では、スクロールさせる間、選択された単語は、単語「multilingual」でのデフォルトの選択の場合と同じように、入力領域内で一時的にオートコンプリートされることになる。
【００２９】
英単語の用法を理解する上で非英語話者のユーザをさらに支援するために、辞書サービス232は、単語の各意味でのより詳細な説明と、各々のそのような用法のソース言語(すなわち、入力される単語の言語)でのサンプル文章とをさらに提供することができる。上記例では、単語の定義が、プレゼンテーションハンドラ224によって別個のウィンドウに表示されてもよい。図4Bでは、単語「multilingual」に関する中国語での詳細な意味および英語での対応するサンプル文章がサブウィンドウに表示され、これは、図4Aでのように単語「multilingual」が選択されたときに、右矢印キーを押すことによってトリガされる。用語「multilingual」の異なる翻訳がサブウィンドウに表示される図4Cに示すように、ユーザがさらなる参照のために単語の各々の特定の意味または翻訳のためのウェブページを訪ねたい場合、辞書サービス232はそのウェブページへのURLリンクをさらに提供することができる。
【００３０】
単語の残りの部分を予測する機能、すなわち、単語レベルでのオートコンプリーションの機能以外に、入力アシスタント220は、入力言語の非母国語話者が入力テキストに関する情報を得るのを支援することで、または、ユーザの以前の入力履歴から入力のヒントを提供することで、より多用途であってもよい。
【００３１】
いくつかの実装形態では、入力された単語または複数の単語の綴りをチェックするために、綴りチェックサービスが提供されてもよい。オートコンプリーション機能を有する上記の場合では、入力アシスタント220が、予測された単語は入力文字列のための辞書サービス232から利用可能ではないと決定した場合、例えば、入力文字列が「multtpl」である場合、ユーザは予め決められた時間待機することによって、オートコンプリーションサービスを要求していない可能性があるが、代わりに、入力文字列の綴りをチェックするサービスを要求している可能性がある(または、綴りチェックサービスなしでオートコンプリーションサービスを使用することができない可能性がある)と、入力アシスタント220は決定することができる。入力アシスタントは、この単語の考えられる正確な綴りを得るために、入力文字列「multtpl」を綴りチェックサービス234に転送することになる。綴りチェックサービスは、辞書サービス232と同様に、ローカルコンピュータ上の入力アシスタント220と統合されたサービスであってもよく、またはインターネットを介してアクセス可能な遠隔サービスであってもよい。綴りチェックサービス234からの各結果は、入力文字列に対するその関連性に応じて点数化および順位付けされる。これらの結果を受信すると、プレゼンテーションハンドラ224は、ユーザによる検討および選択のために、これらの結果を辞書サービス232からの結果と同様に提示する。
【００３２】
ユーザが辞書サービス232または綴りチェックサービス234からの結果を検討し、選択を行った後、ユーザは、選択後の追加の内容を入力することに進むことができる。この場合、入力アシスタント220は、カーソルが新たな場所で他の予め決められた期間動作していないことによる、または、入力文字列の手動選択およびその後のテキスト文字列の入力アシスタント220への送信によるユーザからの入力アシスタント220への自発的な呼出しによる、ユーザからの次の呼出しを待つことになる。単に予め決められた時間待機することによって、完全な単語を予測するために入力アシスタント220を作動させる、または、入力文字列に綴りチェックを行うステップは、任意である。ユーザは、以下に詳細に説明するように、入力支援のために入力アシスタント220を直接起動することができる。
【００３３】
単にオートコンプリーションまたは綴りチェック目的のために予め決められた時間待機することによって入力アシスタント220をトリガすることとは別に、入力アシスタント220は、さらに、より高度なサービスのために手動または自動でトリガされてもよい。いくつかの実装形態では、ユーザは、マウスまたは「Shift」キーに加えて矢印キーなどのキーの組合せを使用して、連続する文字の単語または文字列を手動で選択し、「Ctrl+'バックスラッシュ'」などの他のキーの組合せを押すことによって、入力アシスタント220をトリガすることができる(ステップ304)。代わりの実装形態では、入力領域からの1つまたは複数の単語の選択は、ユーザが「Ctrl+'バックスラッシュ'」を押すことによって入力アシスタント220をトリガしたとき、最初に任意の入力テキストを手動で選択することなしに、入力アシスタント220によって自動で行われてもよい。この場合、入力アシスタント220は、カーソルの周囲のテキストをチェックし、例えばカーソルが位置する場所から開始する前の部分的な1つまたは複数の単語を、入力支援サービスを呼び出すための入力テキストとして選択することができる。代わりの実装形態では、ユーザが短い期間、例えば1秒のうちに「Ctrl+'バックスラッシュ'」を2回押した場合、入力アシスタント220は、カーソルの周囲の文全体を入力テキストとして選択することができる。
【００３４】
ユーザによって手動で選択された、または、入力アシスタント220によって自動で選択された入力領域からの入力文字列を受信すると、入力アシスタント220のテキストパーサ222は、最初に、入力文字列への予備構文解析処理を行うことになる。いくつかの実装形態では、テキストパーサ222は、最初に、入力文字列の言語を決定する。例えば、入力文字列が文字列「三花」である場合、テキストパーサは、中国語であると決定することができる。中国語の入力の場合、英単語に不慣れなユーザがこの中国語テキストの対応する英単語を要求している可能性が非常に高いため、テキストパーサ222は、この中国語テキストを、英語の対応する単語または意味のための辞書サービス232に転送することになる。辞書サービス232は、この場合、プレゼンテーションハンドラ224によってユーザに適切に提示するために、入力アシスタント220に用語「orchid」を返す(return)ことになる。
【００３５】
逆に、入力文字列が「wikipedia is a free, multilingual encyclopedia project」である場合、テキストパーサ222は、入力テキストが英語であると決定することになる。さらに、テキストパーサ222は、入力文字列内の少なくとも1つのスペースを単に識別することによって、文字列のテキストからのこの入力文字列に複数の単語が存在すると決定することになる。この場合、ユーザは入力文字列内の単語または複数の単語の意味をチェックすることを単に望まず、代わりに、文のフレーズの意味をチェックすることを望んでいると推測される。
【００３６】
いくつかの実装形態では、この入力文字列は翻訳サービスに転送されてもよく、翻訳サービスは、入力アシスタント220が存在するコンピュータから離れて位置してもよく、ユーザが入力した単語が英語では大部分正しいことを確認する際のユーザの参照のためにユーザに提示するために、中国語の入力文字列の翻訳を得ることができる。テキストパーサ222は、この入力文字列を文法サービスに送ることもでき、文法サービスは、入力文字列の英語の文法をチェックし、改善案の形態での結果を、または、入力文字列の問題のある部分を単に強調する結果を得る。上記翻訳および文法チェックプロセスは、同時に行われてもよく(ステップ305)、両方のサービスからの結果が、ユーザに提示するための1つのリスト内に集約してもよい(ステップ306)。
【００３７】
特定の入力文字列のためにどのサービスが呼び求められるべきかを決定するために、異なる規則または基準がテキストパーサ222に設定されてもよい。規則または基準は、種々の言語の検出された特徴(例えば、スペース、スペース無し、連続する文字の数など)に基づいて、サービスの選択を規定することができる。例えば、10より多くの連続しないスペースを含む入力文字列は、綴りチェックサービスおよび翻訳サービスのみに転送されるべきであり、3未満の連続しないスペースを含む入力文字列は、辞書サービス232、綴りチェックサービス234、入力履歴サービス236などに転送されるべきである。ユーザのテキスト入力体験を改善するための最良の可能性のある結果または結果の組合せを提供する上で、受信された入力文字列を処理するためにどのサービスが適切であるかをよりよく決定するために、その予備構文解析段で追加の機能がテキストパーサ222内に実装されてもよい。代わりに、テキストパーサ222によって常に決定される代わりに、特定の入力文字列を処理するための適切なサービスを選択するために、特定の入力文字列に関してユーザによって特定のキーの組合せを単に入力することによって、または、入力アシスタント220内で機能的GUIウィンドウを呼び出すことによって、特定の入力支援サービスが手動で指定またはトリガされてもよい。
【００３８】
さらなる代替として、テキストパーサ222は、決定を行う必要はないが、入力アシスタント220に接続されたすべての入力支援サービスに要求を転送する。各入力支援サービスは、受信された入力テキストが結果を提供するのに適切であるかどうかを決定する。決定は、例えば、テキストが各々の特定のサービスによって処理されるのに適切である場合を定義する規則または条件を参照することによって行われてもよい。例えば、翻訳サービスが、受信されたテキストが目標の言語であることを発見した場合、要求している入力アシスタント220にnull値を返すことになる。入力アシスタント220のプレゼンテーションハンドラ224は、次に、ユーザに提示するための任意のnull値をスキップしつつ、別のサービスからの結果を再構成することになる。
【００３９】
いくつかの実装形態では、ユーザが特定の文脈でしばしば使用する可能性がある、内容の大きな部分を入力する際にユーザを支援するために、ユーザに特有の入力履歴を提供するために、入力履歴サービス236が使用されてもよい。例えば、弁理士は、オフィスアクションに応答する際に多くの決まった表現を使用する可能性がある。この場合、ユーザは、入力アシスタント220とのユーザアカウントを有することができ、ユーザアカウントで、ユーザは、ユーザの好みに応じた設定を構成し、入力履歴サービス236とのアカウントでの将来の使用のために頻繁に使用される表現を格納するために、入力アシスタント220を呼び出すことができる。入力履歴サービスは、中央サーバに配置されてもよく、このことは、ユーザが入力アシスタント220と別のコンピュータからアカウントにログインすることを可能にし、入力体験を支援する上で、入力アシスタント220内のユーザの好みの構成を享受し、ユーザ自身の入力履歴を使用することの利点を依然として有する。中央サービスに習慣的な内容を格納し、ユーザアカウントの使用によってどこからでも必要なときはいつでもそれらを検索ことは、当分野で実行可能である。
【００４０】
図5Aは、ユーザの入力履歴から検索された項目の表示例である。この例では、第1の項目「Wikipedia is a complimentary, multilingual encyclopedia project」は、入力文字列「wikipedia is」の予測結果であり、ユーザの過去の入力から検索される。この例の他の2つの項目は、ウェブコンテンツのコーパスから検索された関連する文であり、コーパスは、入力アシスタント220に結合された独立したサービスであってもよく、入力文字列に基づいてフレーズ、文またはパラグラフさえ提供する。
【００４１】
いくつかの実装形態では、異なったサービスからの結果を、ユーザが選択するための単一のポップアップウィンドウ内に表示することができる。プレゼンテーションハンドラ224は、任意の既知の順位付け基準に従って各サービスからの結果を並べ替えることができ、順位づけ基準は、各結果項目の入力文字列への関連性を反映するために、各サービスからの各結果項目の重みづけ順位を少なくとも含む。いくつかの実装形態では、プレゼンテーションハンドラは、1つの表示ウィンドウにおいて異なるサービスからの結果を結合して、提示する。図5Aの上述の例では、リスト内の3つの項目は、2つの異なるサービスからのものである。プレゼンテーションハンドラ224は、入力履歴サービス236からの第1の結果を、ウェブコンテンツのコーパスからの他の2つの項目と1つのウィンドウ内で一緒に結合して、表示する。
【００４２】
いくつかの実施では、辞書サービス232は、特定のカテゴリの代わりの結果を、検討のためにユーザに提示することができる。これらの異なる結果は、異なるユーザ入力、例えば、異なるキーボード呼出しコマンドに応じて表示されてもよい。例えば、図5Bでは、語幹「impress」の入力文字列の異なる形態が提示され、音声、品詞などのそれらの部分も、各単語の後に予測結果として説明される。図5Cでは、辞書サービスのシソーラスサブサービスが、入力単語「free」の同意語を提供する。図5Dでは、動詞「watch」の異なる反映する形態のみが提示され、母国語が中国語の英語ユーザによる理解を容易にするために、音声のその特定の部分の中国語での説明が各項目に続けられる。
【００４３】
ユーザのテキスト入力経験でユーザを支援するサービスは、上記に限定されない。他の言語による、または、追加の入力支援もしくはテキスト予測機能による支援を提供する他のサービスが、追加の入力支援をユーザに提供するために、入力アシスタント220と統合または入力アシスタント220に接続されてもよい。例えば、サービスは、入力文字列「a lot」がフレーズ「a lot of」の予測を返せるように、全体で共通に使用されるフレーズを構成する、入力文字列内の1つまたは複数の失われた単語を補充する機能を提供することができる。また、本開示でのキーの押下またはキーの組合せの押下の様々な定義は、例示目的のみのためであり、サービスをトリガするまたはポップアップウィンドウを操作する同じ効果を達成するために、多くの異なる組合せが異なるオペレーティングシステムで定義されてもよい。
【００４４】
本明細書に記載の主題および機能動作の実施形態は、デジタル電子回路網で、実体的に具体化されたコンピュータソフトウェアもしくはファームウェアで、本明細書で開示された構造およびそれらの構造的等価物を含むハードウェアで、あるいは、それらの1つまたは複数の組合せで実施可能である。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行するための、またはデータ処理装置の動作を制御するための、コンピュータ記憶媒体において符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装可能である。代わりにまたは加えて、プログラム命令は、データ処理装置によって実行するための適切な受信装置に送信するための情報を符号化するために発生された、人工的に生成された信号、例えば、機械が生成した電気、光、または電磁信号である伝播信号上で符号化されてもよい。コンピュータ記憶媒体は、機械可読記憶装置、機械可読記憶基板、ランダムまたはシリアルアクセスメモリ装置、あるいは、それらの1つまたは複数の組合せであってもよい。
【００４５】
用語「データ処理装置」は、例としてプログラム可能プロセッサ、コンピュータ、または、複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用論理回路網、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置は、ハードウェアに加えて、当のコンピュータプログラムのための実行環境を創出するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいはそれらの1つまたは複数の組合せを構成するコードを含むこともできる。
【００４６】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイル言語もしくはインタプリタ言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラム言語で書かれてもよく、独立型プログラムとして、またはモジュールとして、構成要素、サブルーチン、または、コンピューティング環境での使用に適した他の適切なユニットを含む、任意の形態で配置されてもよい。コンピュータプログラムは、必須ではないが、ファイルシステム内のファイルに対応してもよい。プログラムは、他のプログラムまたはデータ(例えば、マークアップ言語文書に格納された1つまたは複数のスクリプト)を保持するファイルの一部に、当のプログラム専用の単一のファイルに、あるいは、複数の調整されたファイル(例えば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を格納するファイル)に格納されてもよい。コンピュータプログラムは、1台のコンピュータで、あるいは、1つの場所にまたは複数の場所に分散されて配置され、通信ネットワークによって相互接続された複数のコンピュータで実行されるように配置されてもよい。
【００４７】
本明細書に記載のプロセスまたは論理の流れは、入力データに対して動作し出力を生成することによって機能を実行するように1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって行われてもよい。プロセスおよび論理の流れは、特別な目的の論理回路網、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行われてもよく、装置は、特別な目的の論理回路網、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)として実装されてもよい。
【００４８】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサおよび特別な目的のマイクロプロセッサの両方、並びに、任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、命令およびデータを、読み出し専用メモリもしくはランダムアクセスメモリ、または両方から受け取ることになる。コンピュータの本質的な要素は、命令を行うまたは実行するプロセッサ、並びに、命令およびデータを格納する1つまたは複数のメモリ装置である。概して、コンピュータは、データを格納する1つまたは複数の大容量記憶装置、例えば、磁気、光磁気ディスク、または光ディスクも含むことになり、あるいは、これらからデータを受け取る、もしくはこれらにデータを転送する、またはその両方を行うようにこれらに作動的に結合されることになる。しかしながら、コンピュータはこのようなデバイスを有する必要はない。さらに、コンピュータは、他の装置、例えば、ほんのわずかな例のみを挙げると、携帯電話、パーソナルデジタルアシスタント(PDA)、携帯オーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、または携帯記憶装置(例えば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれてもよい。
【００４９】
コンピュータプログラム命令およびデータを格納するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROMおよびフラッシュメモリデバイス、磁気ディスク、例えば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、並びに、CD-ROMおよびDVD-ROMを含む、すべての形態の不揮発性メモリ、媒体およびメモリ装置を含む。プロセッサおよびメモリは、特定の目的の論理回路網によって補われてもよく、または、特定の目的の論理回路網に組み込まれてもよい。
【００５０】
ユーザとの相互作用を提供するために、本明細書に記載の主題の実施形態は、ユーザに情報を表示するための表示装置、例えばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、並びに、ユーザがコンピュータに入力を提供できるようにするキーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールを有するコンピュータにおいて実施可能である。ユーザとの相互作用を提供するために、他の種類の装置が同様に使用されてもよく、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってもよく、ユーザからの入力は、音響、音声または触覚入力を含む任意の形態で受信されてもよい。加えて、コンピュータは、ユーザによって使用される装置に文書を送信し、この装置から文書を受信することによって、例えば、ウェブブラウザから受信した要求に応じてユーザのクライアント装置上のウェブブラウザにウェブページを送信することによって、ユーザと相互作用することができる。
【００５１】
本明細書は多くの具体的な実装形態の詳細を含んでいるが、これらは、任意の発明のまたは特許請求することができるものの範囲の限定として解釈されるべきではなく、特定の発明の特定の実施形態に特有であり得る機能の説明として解釈されるべきである。本明細書に別個の実施形態の文脈で記載された特定の特徴は、単一の実施形態において組合せで実施されてもよい。逆に、単一の実施形態の文脈で記載された種々の特徴は、複数の実施形態において別々に、または、任意の適切な部分的組合せで実施されてもよい。さらに、特徴が特定の組合せで作用するように上述され、そのようなものとして最初に特許請求されている可能性があるが、特許請求された組合せからの1つまたは複数の特徴は、いくつかの場合では組合せから削除されてもよく、特許請求された組合せは、部分的組合せまたは部分的組合せの変形形態に向けられてもよい。
【００５２】
同様に、動作が特定の順序で図面に示されているが、これは、このような動作が示されている特定の順序でまたは連続的な順番で行われることを必要とするように、または、所望の結果を達成するためにすべての示されている動作が行われることを必要とするように解釈されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利でありうる。さらに、上述した実施形態の種々のシステム構成要素の分離は、このような分離をすべての実施形態で必要とするものとして理解されるべきではなく、記載されたプログラム構成要素およびシステムは、概して、単一のソフトウェア製品に一緒に統合されてもよく、または、複数のソフトウェア製品にパッケージ化されてもよいと理解されるべきである。
【００５３】
手段の特定の実施形態を説明してきた。他の実施形態が以下の特許請求の範囲内にある。例えば、特許請求の範囲に列挙した動作は、異なった順序で行われてもよく、依然として所望の結果を達成することができる。一例として、添付図面に示されたプロセスは、所望の結果を達成するために、示された特定の順序または連続的な順番を必ずしも必要としない。特定の実装形態では、マルチタスクおよび並列処理が有利でありうる。
【符号の説明】
【００５４】
210  ウェブブラウザ
212  テキストエディタ
214  アプリケーション
220  入力アシスタント
222  テキストパーサ
224  プレゼンテーションハンドラ
226  サービス通信インタフェース
232  辞書サービス
234  綴りチェックサービス
236  入力履歴サービス
238  翻訳サービス
【図１Ａ】
0005809290.tif 000002
【図１Ｂ】
0005809290.tif 000003
【図２】
0005809290.tif 000004
【図３】
0005809290.tif 000005
【図４Ａ】
0005809290.tif 000006
【図４Ｂ】
0005809290.tif 000007
【図４Ｃ】
0005809290.tif 000008
【図５Ａ】
0005809290.tif 000009
【図５Ｂ】
0005809290.tif 000010
【図５Ｃ】
0005809290.tif 000011
【図５Ｄ】
0005809290.tif 000012