コンピュータ実施方法であって、複数の自然言語および書記体系の入力文字を含む文字言語マッピングをクライアントデバイス上に記憶して、前記入力文字のそれぞれが存在する、それぞれの1つまたは複数の自然言語および関連する書記体系を指定するステップと、複数のクエリ文字を含む、前記クライアントデバイス上で受信されたユーザ提出クエリ入力に基づいて生成されたクエリ提案である検索クエリを取得するステップと、前記複数のクエリ文字のそれぞれに関して、前記記憶された文字言語マッピングに従って、前記クエリ文字に関して、それぞれが前記クエリ文字を含む、それぞれの1つまたは複数の候補言語書記体系の対を識別するステップ、および前記それぞれの1つまたは複数の候補言語書記体系の対のそれぞれの総数に基づいて、前記クエリ文字に関して識別された前記それぞれの1つまたは複数の候補言語書記体系の対のそれぞれに関してサブスコアを生成するステップと、前記複数のクエリ文字に関して識別された前記候補言語書記体系の対のそれぞれに関して、前記候補言語書記体系の対に関して生成されたすべてのサブスコアを集約して、前記候補言語書記体系の対に関して、それぞれのスコアを取得するステップと、前記複数のクエリ文字に関して識別された前記候補言語書記体系の対の前記それぞれのスコアに基づいて、前記検索クエリに関するソース言語を決定するステップと前記検索クエリを前記ソース言語から前記ソース言語とは異なるターゲット言語に翻訳するための、機械翻訳サービスに対する翻訳要求を生成するステップとを含む方法。コンピュータ実施方法であって、複数のクエリ文字を含む検索クエリを受信するステップと、前記複数のクエリ文字のそれぞれに関して、記憶された文字言語マッピングに従って、前記クエリ文字に関して、それぞれが前記クエリ文字を含む、それぞれの1つまたは複数の候補言語書記体系の対を識別するステップ、および前記それぞれの1つまたは複数の候補言語書記体系の対のそれぞれの総数に基づいて、前記クエリ文字に関して識別された前記それぞれの1つまたは複数の候補言語書記体系の対のそれぞれに関してサブスコアを生成するステップと、前記複数のクエリ文字に関して識別された前記候補言語書記体系の対のそれぞれに関して、前記候補言語書記体系の対に関して生成されたすべてのサブスコアを集約して、前記候補言語書記体系の対に関して、それぞれのスコアを取得するステップと、前記複数のクエリ文字に関して識別された前記候補言語書記体系の対の前記それぞれのスコアに基づいて、前記検索クエリに関するソース言語を決定するステップとを含む方法。前記識別するステップと、前記生成するステップと、前記集約するステップと、前記決定するステップとを実行するクライアントデバイス上に前記文字言語マッピングを記憶するステップをさらに含む、請求項2に記載の方法。前記文字言語マッピングが、複数の非重複文字セット内のそれぞれの一意の文字に関して、前記一意の文字が存在する、それぞれの1つまたは複数の言語書記体系の対を識別する、請求項2に記載の方法。それぞれのクエリ文字に関して識別された、それぞれの候補言語書記体系の対に関して生成された前記サブスコアが、前記クエリ文字に関して識別された前記候補言語書記体系の対の前記それぞれの総数と逆相関関係を有する、請求項2に記載の方法。前記候補言語書記体系の対に関して生成されたすべてのサブスコアを前記集約して、前記候補言語書記体系の対に関して、前記それぞれのスコアを取得するステップが、前記候補言語書記体系の対が、前記複数のクエリ文字のうちの1つまたは複数に関して識別された唯一の候補言語書記体系の対である場合、前記候補言語書記体系の対に関して生成された1つまたは複数のサブスコアをブーストするステップをさらに含む、請求項2に記載の方法。前記検索クエリが、検索エンジンに提出されたクエリ入力に応答して生成された一次言語クエリ提案である、請求項2に記載の方法。前記検索クエリを前記決定されたソース言語から前記決定されたソース言語とは異なるターゲット言語に翻訳するための機械翻訳要求を送信するステップと、前記検索クエリに対応するクロス言語クエリ提案として、前記機械翻訳要求に応答して受信された、前記検索クエリの機械生成翻訳を提供するステップとをさらに含む、請求項7に記載の方法。1つまたは複数のプロセッサと、命令を記憶したメモリとを備え、前記命令は、前記1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに、複数のクエリ文字を含む検索クエリを受信するステップと、前記複数のクエリ文字のそれぞれに関して、記憶された文字言語マッピングに従って、前記クエリ文字に関して、それぞれが前記クエリ文字を含む、それぞれの1つまたは複数の候補言語書記体系の対を識別するステップ、および前記それぞれの1つまたは複数の候補言語書記体系の対のそれぞれの総数に基づいて、前記クエリ文字に関して識別された前記それぞれの1つまたは複数の候補言語書記体系の対のそれぞれに関してサブスコアを生成するステップと、前記複数のクエリ文字に関して識別された前記候補言語書記体系の対のそれぞれに関して、前記候補言語書記体系の対に関して生成されたすべてのサブスコアを集約して、前記候補言語書記体系の対に関して、それぞれのスコアを取得するステップと、前記複数のクエリ文字に関して識別された前記候補言語書記体系の対の前記それぞれのスコアに基づいて、前記検索クエリに関するソース言語を決定するステップとを含む動作を実行させる、システム。前記動作が、前記識別するステップと、前記生成するステップと、前記集約するステップと、前記決定するステップとを実行するクライアントデバイス上に前記文字言語マッピングを記憶するステップをさらに含む、請求項9に記載のシステム。前記文字言語マッピングが、複数の非重複文字セット内のそれぞれの一意の文字に関して、前記一意の文字が存在する、それぞれの1つまたは複数の言語書記体系の対を識別する、請求項9に記載のシステム。それぞれのクエリ文字に関して識別された、それぞれの候補言語書記体系の対に関して生成された前記サブスコアが、前記クエリ文字に関して識別された前記候補言語書記体系の対の前記それぞれの総数と逆相関関係を有する、請求項9に記載のシステム。前記候補言語書記体系の対に関して生成されたすべてのサブスコアを前記集約して、前記候補言語書記体系の対に関して、前記それぞれのスコアを取得するステップが、前記候補言語書記体系の対が、前記複数のクエリ文字のうちの1つまたは複数に関して識別された唯一の候補言語書記体系の対である場合、前記候補言語書記体系の対に関して生成された1つまたは複数のサブスコアをブーストするステップをさらに含む、請求項9に記載のシステム。前記検索クエリが、検索エンジンに提出されたクエリ入力に応答して生成された一次言語クエリ提案である、請求項9に記載のシステム。前記動作が、前記検索クエリを前記決定されたソース言語から前記決定されたソース言語とは異なるターゲット言語に翻訳するための機械翻訳要求を送信するステップと、前記検索クエリに対応するクロス言語クエリ提案として、前記機械翻訳要求に応答して受信された、前記検索クエリの機械生成翻訳を提供するステップとをさらに含む、請求項14に記載のシステム。本明細書では、自動言語検出、詳細には、一次言語入力提案をクロス言語入力提案に翻訳するための自動ソース言語検出に関する技術について説明する。概して、本明細書で説明される主題の一態様は、複数の自然言語および書記体系の入力文字を含む文字言語マッピングをクライアントデバイス上に記憶して、入力文字のそれぞれが存在する、それぞれの1つまたは複数の自然言語および関連する書記体系を指定する動作と、複数のクエリ文字を含む、クライアントデバイス上で受信されたユーザ提出クエリ入力に基づいて生成されたクエリ提案である検索クエリを取得する動作と、複数のクエリ文字のそれぞれに関して、記憶された文字言語マッピングに従って、そのクエリ文字に関して、それぞれがそのクエリ文字を含む、それぞれの1つまたは複数の候補言語書記体系の対を識別する動作、およびそれぞれの1つまたは複数の候補言語書記体系の対のそれぞれの総数に基づいて、そのクエリ文字に関して識別された、それぞれの1つまたは複数の候補言語書記体系の対のそれぞれに関してサブスコアを生成する動作と、それらの複数のクエリ文字に関して識別された候補言語書記体系の対のそれぞれに関して、候補言語書記体系の対に関して生成されたすべてのサブスコアを集約して、候補言語書記体系の対に関して、それぞれのスコアを取得する動作と、それらの複数のクエリ文字に関して識別された候補言語書記体系の対のそれぞれのスコアに基づいて、その検索クエリに関するソース言語を決定する動作と、検索クエリをソース言語からソース言語とは異なるターゲット言語に翻訳するための、機械翻訳サービスに対する翻訳要求を生成する動作とを含む方法で実施可能である。本態様の他の実施形態は、それぞれ、これらの方法の動作を実行するように構成された、対応するコンピュータシステムと、装置と、1つまたは複数のコンピュータ記憶デバイス上に記憶されたコンピュータプログラムとを含む。1つまたは複数のコンピュータのシステムは、動作に際して、システムにこれらの動作を実行させる、システム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せによってそのように構成可能である。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されたとき、装置にこれらの動作を実行させる命令を有することによってそのように構成可能である。概して、本明細書で説明される主題の一態様は、複数のクエリ文字を含む検索クエリを受信する動作と、複数のクエリ文字のそれぞれに関して、記憶された文字言語マッピングに従って、そのクエリ文字に関して、それぞれがそのクエリ文字を含む、それぞれの1つまたは複数の候補言語書記体系の対を識別する動作、およびそれぞれの1つまたは複数の候補言語書記体系の対のそれぞれの総数に基づいて、そのクエリ文字に関して識別された、それぞれの1つまたは複数の候補言語書記体系の対のそれぞれに関してサブスコアを生成する動作と、それらの複数のクエリ文字に関して識別された候補言語書記体系の対のそれぞれに関して、候補言語書記体系の対に関して生成されたすべてのサブスコアを集約して、候補言語書記体系の対に関して、それぞれのスコアを取得する動作と、それらの複数のクエリ文字に関して識別された候補言語書記体系の対のそれぞれのスコアに基づいて、その検索クエリに関するソース言語を決定する動作とを含む方法で実施可能である。本態様の他の実施形態は、それぞれ、これらの方法の動作を実行するように構成された、対応するコンピュータシステムと、装置と、1つまたは複数のコンピュータ記憶デバイス上に記憶されたコンピュータプログラムとを含む。1つまたは複数のコンピュータのシステムは、動作に際して、システムにこれらの動作を実行させる、システム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せによってそのように構成可能である。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されたとき、装置にこれらの動作を実行させる命令を有することによってそのように構成可能である。これらの実施形態およびその他の実施形態は、以下の特徴のうちの1つまたは複数をオプションで含むことが可能である。いくつかの実装形態では、これらの技法は、識別する動作と、生成する動作と、集約する動作と、決定する動作とを実行するクライアントデバイス上に文字言語マッピングを記憶する動作をさらに含む。いくつかの実装形態では、文字言語マッピングは、複数の非重複文字セット内のそれぞれの一意の文字に関して、一意の文字が存在する、それぞれの1つまたは複数の言語書記体系の対を識別する。いくつかの実装形態では、それぞれのクエリ文字に関して識別された、それぞれの候補言語書記体系の対に関して生成されたサブスコアは、そのクエリ文字に関して識別された候補言語書記体系の対のそれぞれの総数と逆相関関係を有する。いくつかの実装形態では、候補言語書記体系の対に関して生成されたすべてのサブスコアを集約して、候補言語書記体系の対に関して、それぞれのスコアを取得する前記動作は、候補言語書記体系の対が複数のクエリ文字のうちの1つまたは複数に関して識別された唯一の候補言語書記体系の対である場合、候補言語書記体系の対に関して生成された1つまたは複数のサブスコアをブーストする動作をさらに含む。いくつかの実装形態では、検索クエリは、検索エンジンに提出されたクエリ入力に応答して生成された一次言語クエリ提案である。いくつかの実装形態では、これらの方法は、検索クエリを決定されたソース言語からその決定されたソース言語とは異なるターゲット言語に翻訳するための機械翻訳要求を送信する動作と、検索クエリに対応するクロス言語クエリ提案として、機械翻訳要求に応答して受信された、検索クエリの機械生成翻訳を提供する動作とをさらに含む。以下のうちの1つまたは複数を実現するために、本明細書で説明される主題の特定の実施形態を実施することが可能である。ユーザのクエリ入力に基づいて生成される一次言語クエリ提案の実際の言語は、時として、機械実施言語検出技法に基づいて確認することが困難な場合があり得る。多くの洗練された技法は、そのような自動言語検出を実現するためにサーバ側で実施可能であるが、この検出プロセスは、多くの時間と計算資源とを必要とする。加えて、これらの洗練された技法は、それでもなお、一次言語クエリ提案が複数の言語または書記体系からの語およびまたは文字を含むとき、誤った結果を生み出す場合がある。加えて、一次言語クエリ提案が複数の言語および関連する書記体系において存在する語およびまたは文字を含むとき、自動言語検出に曖昧さが生じる場合もある。本明細書で説明される技法は、従来の言語検出方法のこれらの課題に対処することができる。例えば、本明細書で説明された技法を使用すると、簡単なクライアント側プロセスを使用して、自動言語検出を迅速かつ効率的に完了することができる。これらの技法は、他の洗練された言語検出方法によって、正確な言語検出結果をもたらすためにはあまりにも短すぎるとしばしばみなされる検索クエリの言語を検出するのに適している。加えて、これらの技法は、混合言語検索クエリを識別されたソース言語から所望されるターゲット言語に翻訳することによって、有用なクロス言語クエリ提案を生成することができるように、混合言語検索クエリに関する適切なソースを識別することができる。本明細書で説明される主題の1つまたは複数の実施形態の詳細は、添付の図面および下の説明に記載される。本主題の他の特徴、態様、および利点は、この説明、図面、および特許請求の範囲から明らかになるであろう。様々な図面において、類似参照番号および記号は類似の要素を示す。検索エンジンは、ユーザによって入力されたクエリ入力に応答して、一次言語クエリ提案を提供することができる。一次言語クエリ提案は、ユーザの元のクエリ入力の拡張およびオートコンプリートなど、ユーザの元のクエリ入力に基づいて生成されたクエリ提案である。一次言語クエリ提案は、多くの場合、1つまたは複数のクエリログ内に記憶されたユーザ提出検索クエリに基づいて生成される。一部の検索エンジンは、それぞれの一次言語クエリ提案に関するクロス言語クエリ提案を提供することも可能であり、この場合、このクロス言語クエリ提案は、一次言語クエリ提案の言語または書記体系とは異なる第2の言語または書記体系で書かれたクエリである。クロス言語クエリ提案を提供するとき、検索エンジンは、概して、機械翻訳サービスを用いて、それぞれの一次言語クエリ提案に関する候補翻訳を生成する。それぞれの翻訳タスクに関して、機械翻訳サービスは、一次言語クエリ提案に関するソース言語の仕様と、その翻訳に関するターゲット言語の仕様とを必要とする。クロス言語クエリ提案の品質は、一次言語クエリ提案に関するソース言語の正確かつ適切な識別に依存する。一次言語クエリ提案が混合言語クエリであり、複数の言語およびまたは書記体系からの語を含むとき、自動言語検出は厄介な場合がある。この種の混合言語クエリに関して単一のソース言語を識別するための従来の機械ベースの技法は、多くの場合、不正確かつ予測不可能な結果を生み出す。例えば、ある例示的な一次言語クエリ提案に関する自動検出言語は、ドイツ語の場合があり、ある例示的な一次言語クエリ提案に関する自動検出言語はマレー語の場合があるが、両方のクエリ提案は実際には半分が英語で、半分が中国語である。そのような不正確なソース言語仕様を使用した機械翻訳は、多くの場合、同じ話題に関するが、一次言語クエリ提案の対象となる言語とは異なる言語のクロス言語コンテンツを取り出す際に効果的でないクロス言語クエリ提案を生み出す。例えば、ドイツ語から英語への一次言語クエリ提案の機械生成翻訳はやはり、である。が一次言語クエリ提案に関するクロス言語クエリ提案として提供される場合、2つのクエリ提案のうちの1つは関係ないものになる。本明細書で説明されるように、文字言語マッピングはクライアントデバイス上に記憶されうる。いくつかの実装形態では、文字言語マッピングは、ユーザによって入力されたテキストとして入力可能であり、ユーザによって検索エンジンに提出された検索クエリの一部を形成するすべての一意の文字をカバーする。いくつかの実装形態では、文字言語マッピングは、すべてのそのような一意の文字のサブセットをカバーする。それぞれの一意の文字は、一意の識別子を有する。文字言語マッピングは、マッピング内のそれぞれの一意の文字に関して、その一意の文字が存在しうる、言語および関連する書記体系の対応するセットを指定する。それぞれの一意の文字に関連する言語と書記体系の対のセットは、例えば、その一意の文字の一意の識別子によって、文字言語マッピングに従って識別可能である。文字言語マッピングに基づいて、言語検出モジュールは、検索クエリのそれぞれの文字を処理して、その文字が存在しうる候補言語書記体系の対のそれぞれのセットを識別することができる。言語検出モジュールは、次いで、その文字に関して識別された候補言語書記体系の対のそれぞれのセットのそれぞれに関してサブスコアを生成することができ、この場合、サブスコアは、その文字に関して識別されている候補言語書記体系の対の総数に依存する。例えば、より高い総数はより低いサブスコアに対応しうるのに対して、より低い総数はより高いサブスコアに対応しうる。検索クエリのすべての文字が処理された後で、それぞれの候補言語書記の対に関してサブスコアが集計されて、候補言語書記体系の対に関して最終的なスコアを生み出す。言語検出モジュールは、次いで、候補言語書記体系の対の最終スコアに基づいて、候補言語書記体系の対から検索クエリに関して適切なソース言語を識別することができる。いくつかの実装形態では、クエリ内の特定の文字に関して、1つの候補言語書記体系の対だけが識別された場合、この特定の文字の関連でこの候補言語書記体系の対に関して生成されたサブスコアをブーストすることができる。これにより、ブーストされたサブスコアが候補言語書記体系の対の最終スコアに追加されるとき、そのクエリに関するソース言語として、この候補言語書記体系の対が選択されることになる総合的な可能性は増大しうる。いくつかの実装形態では、文字言語マッピングに従って、検索クエリのすべてのクエリ文字が特定の候補言語書記体系の対の中に見出された場合、そのクエリに関するソース言語として、この特定の候補言語書記体系の対が選択されることになる総合的な可能性が増大しうるように、この候補言語書記体系の対にブーストを適用することも同様に可能である。図1は、異なる自然言語の入力提案が提供される、ある例示的なシステム100の例示的なデータフローを示すブロック図である。図1では、クライアントデバイス115上で実行するモジュール110は、検索エンジンクエリ入力フィールド内でユーザ122から受信された入力120を監視する。入力120は、一続きの文字として書き込まれる。それぞれの文字は、その文字と同じ言語および書記体系内または異なる言語および書記体系内のすべての他の文字とを区別する、それぞれの一意の符号化を有する。そのような一意の符号化システムのある例は、109000個を超える文字、93個を超えるスクリプトのそれぞれに関して一意の符号化を提供するユニコードシステムである。例えば、入力autoは、4個の英語の文字、すなわち、a、u、t、およびoを含む。入力は3個の中国語文字、すなわち、、およびを含む。入力は9個の文字、すなわち、、余白、m、o、v、i、およびeを含む。いくつかの実装形態では、モジュール110は、クライアントデバイス115上で実行するウェブブラウザ内で実行するJavaScriptスクリプトであるか、またはクライアントデバイス115上で実行するウェブブラウザ内にインストールされたプラグインソフトウェアである。モジュール110は、入力120を受信して、入力120が受信されるにつれて、その入力120を提案サービスモジュール125に自動的に送信する。いくつかの実装形態では、提案サービスモジュール125は、テキスト入力、例えば、ユーザ提出クエリ入力を受信して、代替、例えば、クエリ提案をテキスト入力に戻す、サーバ上で実行するソフトウェアである。いくつかの実装形態では、提案サービスモジュール125は、ユーザのクエリ入力120に基づいて、一次言語クエリ提案のセットを決定する。検索エンジンは、1つまたは複数のクエリログ内に記憶されたユーザ提出クエリに基づいて、一次言語クエリ提案を生成することができる。クエリログから生成された一次言語クエリ提案は、時として、混合言語クエリと、ユーザ指定された好ましい言語または機械指定デフォルト言語以外の言語でのクエリとを含む場合がある。したがって、一次言語クエリ提案が機械翻訳技法を使用して翻訳されることになるとき、一次言語クエリ提案に関する実際のソース言語を確認するために時として追加のステップが必要とされる。いくつかの実装形態では、提案サービスモジュール125は、機械翻訳サービスに連絡して、提案サービスモジュール125によって生成された一次言語クエリ提案に関するクロス言語クエリ提案として使用するための候補翻訳を取得することができる。あるいは、提案サービスモジュール125は、一次言語クエリ提案のセットをモジュール110に戻すことができ、モジュール110は、次いで、翻訳サービスモジュール130に連絡して、それぞれの一次言語クエリ提案に関する翻訳を取得する。モジュール110は、一次言語クエリ提案に対応するクロス言語クエリ提案として、その翻訳をユーザに表示することができる。クライアント側で翻訳要求プロセスを実施することによって、提案サービスモジュール125上の負荷を削減することができる。いくつかの実装形態では、モジュール110は、一次言語クエリ提案に関して自動的に検出されたソース言語と、クロス言語クエリ提案に関して、ユーザ指定された好ましい言語とに従って、それぞれの翻訳要求に関するソース言語とターゲット言語とを指定する。モジュール110が一次言語クエリ提案に関して適切なソース言語をどのように決定するかについての詳細が図2に関して提供される。翻訳要求に応答して、一次言語クエリ提案を翻訳するために、翻訳サービスモジュール130によって、様々な機械翻訳技法を使用することが可能である。機械翻訳技法の例は、規則ベースの機械翻訳技法と、統計的機械翻訳技法と、事例ベースの機械翻訳技法と、上記の機械翻訳技法のうちの1つまたは複数の組合せとを含む。他の機械翻訳技法も可能である。いくつかの実装形態では、モジュール110が十分な信頼水準で一次言語クエリ提案に関してソース言語を識別しない場合、モジュール110は、翻訳要求と共に、複数の候補言語書記体系の対を翻訳サービスモジュールに提供することができる。翻訳サービスモジュール130は、翻訳を実行する前に、他の技法に基づいて、追加の自動言語検出プロセスを実行することができる。いくつかの実装形態では、モジュール110は、一次言語クエリ提案とクロス言語クエリ提案とをユーザインターフェース124内でユーザ122にリアルタイムで、すなわち、ユーザ122が検索エンジンクエリ入力フィールド内に文字をタイプするにつれて提示することができる。例えば、モジュール110は、ユーザ122によってタイプされた第1の文字に関連する一次言語クエリ提案およびクロス言語クエリ提案の第1のグループを提示して、ユーザ122が第2の文字を順にタイプするのに応答して、一続きの第1の文字および第2の文字に関連する一次言語クエリ提案およびクロス言語クエリ提案の第2のグループを提示することができる、等々である。図2は、ある例示的な言語検出モジュール200の動作を例示するブロック図である。言語検出モジュール200は、図1に示される言語検出器135を実施するために使用可能である。図2にははやり、図1に示される文字言語マッピング134の代わりに、文字言語マッピング204が示されている。図2に示されるように、言語検出モジュール200は、一次言語クエリ提案202を受信する。一次言語クエリ提案202は、ユーザの元のクエリ入力に基づいて提案サービスモジュールによって生成されて、言語検出モジュール200に提供されうる。一次言語クエリ提案Qは、一連の文字を含み、この場合、この一連の文字は、1つまたは複数の言語および関連する書記体系で1つまたは複数の語を形成する。言語検出モジュール200が一次言語クエリ提案202を受信した後で、言語検出モジュール200の文字処理モジュール210は、一次言語クエリ提案202のそれぞれの文字を処理する。文字の処理は、同時であっても、または順次であってもよい。クエリ提案Qの一連の文字内のそれぞれの文字に関して、文字処理モジュール210は、その文字の一意の識別子に従って、文字言語マッピング204内で探索を実行することができる。いくつかの実装形態では、文字言語マッピング204は、検索エンジンにおいて受信された検索クエリ内に見出すことができるそれぞれの一意の文字に関するエントリーを含むことが可能である。検索エンジンは多くの自然言語および関連する書記体系のうちの1つまたは複数で書き込まれたクエリを受け入れることができるため、文字言語マッピング204は、多くの異なる言語および関連する書記体系からの文字もカバーする。例えば、文字言語マッピング204は、中国語文字、アラビア語文字、英語文字、日本語の平仮名文字、日本語の片仮名文字、朝鮮語のハングル文字、ローマ数字、およびその他の言語の文字ならびに関連する書記体系の文字に関するエントリーを含むことが可能である。加えて、多くの言語および関連する書記体系は文字セットの一部またはすべてを共有する場合があるため、文字言語マッピング204内のそれぞれの一意の文字は複数の言語および書記体系の対にマッピングすることができる。例えば、多くの中国語文字は、日本語でも漢字文字として使用され、朝鮮語でも漢字文字として使用される。別の例では、英語の文字Aを多くの他の言語内および関連するアルファベット内で見出すこともできる。いくつかの実装形態では、文字言語マッピング204は、検索クエリ202に関して自動言語検出を実行するデバイス上でテキストファイルとして局所的に記憶可能である。文字言語マッピングを局所的に記憶することによって、自動言語検出の速度を改善することができる。いくつかの実装形態では、その文字に関連する言語書記体系の対のセットの手掛かりとして、それぞれの文字のそれぞれの一意の文字識別子を使用して、文字言語マッピング204を検索可能な表または検索可能なインデックスとして実施することが可能である。いくつかの実装形態では、文字言語マッピング204は、それぞれの一意の文字に関して、その文字が存在しうる、いくつかの言語および関連する書記体系のそれぞれの総数を指定することも可能である。この総数は、特定の文字を含むクエリがそれらの言語および関連する書記体系のうちの1つで書き込まれている可能性がどれだけ高いかのインジケータとして機能しうる。例えば、文字が多くの言語および関連する書記体系内で見出される共通文字である場合、その共通の文字の存在は、その検索クエリが、その共通文字を含む多くの言語および関連する書記体系のうちの1つで書き込まれた可能性があることの弱いインジケータを提供する。対照的に、文字が、小数の言語および関連する書記体系でだけ見出される稀な文字である場合、その稀な文字の存在は、検索クエリが小数の言語および関連する書記体系のうちの1つで書かれている可能性があることの強いインジケータを提供する。文字が1つの言語および関連する書記体系内でだけ見出される場合、検索クエリ内のその文字の存在は、検索クエリがその1つの言語および関連する書記体系で書き込まれている可能性があることの非常に強いインジケータである。いくつかの実装形態では、文字処理モジュール210は、文字言語マッピング204内の文字を探索することによって、検索クエリ202内の文字のすべてを処理して、その検索クエリの少なくとも1つの文字にマッピングされた言語書記体系の対に従って、そのクエリに関する候補言語書記体系の対を決定する。いくつかの実装形態では、文字処理ステップの前に、その検索クエリ内のいくつかの文字を除去することができる。例えば、書込みスペース、ローマ数字など、すべての言語および書記体系に通じた文字を除去して、文字処理モジュール210によって使用しないことが可能である。いくつかの実装形態では、検索クエリ202のそれぞれの文字を処理するとき、文字処理モジュール210は、その文字の関連で1つまたは複数の候補言語書記体系の対のセットのそれぞれに関してサブスコアを生成することができる。サブスコアは、その文字に関して識別されている候補言語書記体系の対の総数と逆相関関係でありうる。すなわち、Niのより大きな値は、それぞれの候補言語書記体系の対Ljに関するSSCiLjのより小さな値に対応する。いくつかの実装形態では、Ni1である場合、それぞれの候補言語書記体系の対Ljに関するSSCiLjの値をブーストすることが可能である。文字処理モジュール210が、検索クエリ202のすべての文字の処理を完了して、その検索クエリ202に関して識別された、それぞれの候補言語書記体系の対に関して、すべてのサブスコアを生成すると、言語スコアモジュール220は、その検索クエリ202に関して識別された候補言語書記体系の対のそれぞれに関して最終スコアを生成することができる。それぞれの候補言語書記体系の対に関して生成されているサブスコアの数は、候補言語書記体系の対が識別されているクエリ文字の数に等しい。すなわち、それぞれの候補言語書記体系の対に関して生成されているサブスコアの数は、文字言語マッピング204に従って、候補言語書記体系内に存在することを見出すことができるクエリ文字の数に等しい。いくつかの実装形態では、言語スコアモジュール220は、候補言語書記体系の対に関して生成されているすべてのサブスコアを集計することによって、それぞれの候補言語書記体系に関して最終スコアを生成することができる。例えば、検索クエリ春の花が言語検出モジュール200に提出されたと仮定する。第1の文字春が文字処理モジュール210によって処理されるとき、その第1の文字春は3つの異なる言語書記体系の対にマッピングされることが決定される。これにより、サブスコアSS春を3つの候補言語書記体系の対のそれぞれに関して生成することができる。第2の文字のが文字処理モジュール210によって処理されるとき、その第2の文字のは1つだけの候補言語書記体系の対にマッピングされることが決定される。これにより、サブスコアを単一の候補言語書記体系の対に関して生成することができる。第3の文字花が文字処理モジュール210によって処理されるとき、その第3の文字花は2つの候補言語書記体系の対にマッピングされることが決定される。これにより、サブスコアを2つの候補言語書記体系の対に関して生成することができる。言語スコアモジュール220がクエリ春の花に関して識別された候補言語書記体系の対のそれぞれに関して最終スコアを計算するとき、言語スコアモジュール220は、その候補言語書記体系の対に関して生成されているすべてのサブスコアを集約することができる。例えば、日本語の漢字の場合、最終スコアはFS1SS春SS花131256である。中国語の漢字の場合、最終スコアはFS2SS春SS花131256である。朝鮮語の漢字の場合、最終スコアはFS3SS春13である。日本語の平仮名の場合、最終スコアはSSの1である。したがって、候補言語書記体系の対の最終スコアに基づいて、言語スコアモジュール220は、この検索クエリは日本語で書き込まれている可能性が最も高いと決定することができる。日本語は平仮名の書記体系と漢字の書記体系とを組み合わせて使用することが多いため、言語スコアモジュール220は、その検索クエリ春の花のソース言語は日本語であるという結論を容易に出すことができ、その検索クエリに関する特定の書記体系をさらに確認しない。いくつかの実装形態では、それぞれの候補言語書記体系の対に関してサブスコアを集約する前に、言語スコアモジュール220は、特定のクエリ文字の関連で導出された特定の候補言語書記体系の対がその特定のクエリ文字にマッピングする唯一の言語書記体系の対であることを条件に、その特定の候補言語書記体系の対のサブスコアをブーストすることができる。いくつかの実装形態では、このブーストは、大きな乗数をサブスコアに乗算することによって達成される。いくつかの実装形態では、ブースト定数を、候補言語書記体系の対のサブスコアに適用する代わりに、候補言語書記体系の対の最終スコアに追加することができる。いくつかの実装形態では、検索クエリのすべてのクエリ文字が文字言語マッピングに従って特定の候補言語書記体系の対の中に見出された場合、ブーストをその特定の候補言語書記体系の対の最終スコアに同様に適用することが可能である。言語スコアモジュール220が、検索クエリ202に関して識別された候補言語書記体系の対の最終スコアに基づいて、検索クエリ202に関する適切なソース言語を決定すると、言語スコアモジュール220は、識別されたソース言語を翻訳要求モジュール230に送信することができる。翻訳要求モジュール230は、次いで、検索クエリを決定されたソース言語から所望されるターゲット言語に翻訳することを要求する翻訳要求を翻訳サービスモジュールに送信することができる。上述の説明は単なる例示であり、当業者は記述された技法の範囲および趣旨から逸脱せずに、様々な改変および修正を行うことができる点に留意されたい。例えば、いくつかの実装形態では、候補言語書記体系の対の最終スコアは、検索クエリ202に関する適切なソース言語を決定する際のいくつかの要因のうちの1つとして使用される。いくつかの実装形態では、いくつかの候補言語書記体系の対が同じ最終スコアを有する場合、言語スコアモジュールは、候補言語書記体系の対のそれぞれを別個の翻訳要求内のソース言語として翻訳サービスモジュールに提供することができる。図3は、検索クエリに関する適切なソース言語を決定するためのある例示的な方法300を示す流れ図である。方法300は、例えば、図1のモジュール110または図2の言語検出モジュール200によって実施可能である。例示的な方法300は、検索クエリが受信されるときに開始する。検索クエリは複数のクエリ文字を含む。いくつかの実装形態では、検索クエリは、特定の言語書記体系関連性を有さない、ある種の文字を除去するために事前処理される。複数のクエリ文字のそれぞれに関して、記憶された文字言語マッピングに従って、そのクエリ文字に関して、それぞれの1つまたは複数の候補言語書記体系の対が識別される。いくつかの実装形態では、文字言語マッピングは、方法300の1つまたは複数のステップを実行するクライアントデバイス上に記憶される。いくつかの実装形態では、文字言語マッピングは、複数の非重複文字セット内のそれぞれの一意の文字に関して、その中に一意の文字が存在する、それぞれの1つまたは複数の言語書記体系の対を識別する。いくつかの実装形態では、それぞれの1つまたは複数の候補言語書記体系の対のそれぞれの総数に基づいて、それぞれのクエリ文字に関して識別された、それぞれの1つまたは複数の候補言語書記体系の対のそれぞれに関してサブスコアが生成されるとき、方法300は続く。いくつかの実装形態では、それぞれのクエリ文字に関して識別された、それぞれの候補言語書記体系の対に関して生成されたサブスコアは、そのクエリ文字に関して識別された候補言語書記体系の対のそれぞれの総数と逆相関関係を有する。例えば、減少関数を使用して、サブスコアと対応する総数との間の関係を定義することができる。次いで、複数のクエリ文字に関して識別された候補言語書記体系の対のそれぞれに関して、候補言語書記体系の対に関して生成されたすべてのサブスコアを集約して、その候補言語書記体系の対に関して、それぞれのスコアを取得する。いくつかの実装形態では、候補言語書記体系の対が複数のクエリ文字のうちの1つまたは複数に関して識別された唯一の候補言語書記体系の対である場合、その候補言語書記体系の対に関して生成された1つまたは複数のサブスコアをブーストすることができる。最終スコアが取得されると、複数のクエリ文字に関して識別された候補言語書記体系の対のそれぞれのスコアに基づいて、その検索クエリに関するソース言語を決定することができる。いくつかの実装形態では、検索クエリは、検索エンジンに提出されたクエリ入力に応答して生成された一次言語クエリ提案であり、方法300は、検索クエリを決定されたソース言語からその決定されたソース言語とは異なるターゲット言語に翻訳するための機械翻訳要求を送信するステップと、検索クエリに対応するクロス言語クエリ提案として、機械翻訳要求に応答して受信された、検索クエリの機械生成翻訳を提供するステップとをさらに含むことが可能である。上記の例示的な方法およびその他の方法の他の特徴は、本明細書の他の部分、例えば、図1~図2に関して説明される。本明細書で説明された本主題および機能動作の実施形態は、デジタル電子回路の形で、または本明細書内で開示される構造およびその構造的均等物を含めて、コンピュータソフトウェア、コンピュータファームウェア、またはコンピュータハードウェアの形で、あるいはそれらのうちの1つもしくは複数の組合せの形で実施可能である。本明細書で説明された主題の実施形態は、1つまたは複数のコンピュータプログラム製品、すなわち、データ処理装置によって実行するために、またはデータ処理装置の動作を制御するために有形プログラムキャリア上で符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実施可能である。有形プログラムキャリアは、コンピュータ可読媒体であってよい。コンピュータ可読媒体は、機械可読記憶装置、機械可読記憶基板、メモリデバイス、またはそれらのうちの1つもしくは複数の組合せであってよい。データ処理装置という用語は、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含めて、データを処理するためのすべての装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、当該コンピュータプログラムに関する実行環境を生み出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むことが可能である。プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られているコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含めて、任意の形態のプログラミング言語で書込み可能であり、またコンピュータプログラムは、独立型プログラムとして、またはモジュールとして、コンピューティング環境で使用するのに適した構成要素、サブルーチン、または他のユニットを含めて、任意の形態で配備可能である。コンピュータプログラムは、ファイルシステム内のファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータ、例えば、マークアップ言語文書内に記憶された1つもしくは複数のスクリプトを保持するファイルの一部内、当該プログラム専用の単一ファイル内、または複数の協調ファイル内、例えば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイル内に記憶可能である。コンピュータプログラムは、1つのコンピュータ上で実行されるように配備可能であるか、または1つの場所に配置されるか、もしくは複数の場所を通して分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配備可能である。本明細書で説明された方法および論理の流れは、入力データに作用して、出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行可能である。専用論理回路、例えば、FPGAまたはASICによって、これらの方法および論理の流れを実行することも可能であり、また専用論理回路、例えば、FPGAまたはASICとして装置を実装することも可能である。コンピュータプログラムを実行するのに適したプロセッサは、例として、汎用マイクロプロセッサおよび専用マイクロプロセッサ、ならびに任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、読出し専用メモリもしくはランダムアクセスメモリ、またはそれらの両方から命令およびデータを受信することになる。コンピュータの本質的な要素は、命令を実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。概して、コンピュータは、やはりデータを記憶するための1つもしくは複数の大容量記憶装置、例えば、磁気ディスク、光磁気ディスク、または光ディスクを含むことになるか、あるいは当該大容量記憶装置からデータを受信し、当該大容量記憶装置にデータを転送し、またはそれらの両方を行うために動作可能に当該大容量記憶装置に結合されることになる。しかし、コンピュータはそのようなデバイスを有さなくてもよい。さらに、コンピュータは、別のデバイス、ほんのいくつかの例を挙げれば、例えば、モバイル電話、携帯情報端末、モバイル音声プレイヤまたはモバイルビデオプレイヤ、ゲームコンソール、全地球測位システム受信機の中に埋め込み可能である。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体記憶装置、例えば、EPROM、EEPROM、およびフラッシュメモリデバイスと、磁気ディスク、例えば、内蔵ハードディスクまたはリムーバブルディスクと、光磁気ディスクと、CDROMディスクおよびDVDROMディスクとを含めて、すべての形態の不揮発性のメモリ、媒体装置および記憶装置を含む。プロセッサおよびメモリは、専用論理回路によって補完可能であるか、または専用論理回路内に組込み可能である。ユーザとの対話を提供するために、本明細書で説明された主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えば、CRTモニタまたはLCDモニタと、それによってユーザがコンピュータに入力を提供できるキーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールとを有するコンピュータ上で実施可能である。ユーザとの対話を実現するために、その他の種類のデバイスを同様に使用することも可能であり、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであってよく、ユーザからの入力は、音響入力、音声入力、または触覚入力を含めて、任意の形態で受信可能である。本明細書で説明された主題の実施形態は、例えば、データサーバとしてなど、バックエンド構成要素を含むか、ミドルウェア構成要素、例えば、アプリケーションサーバを含むか、フロントエンド構成要素、例えば、それを介してユーザが本明細書で説明された主題の実装形態と対話することができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、あるいは1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実施可能である。システムの構成要素は、任意の形態または任意の媒体のデジタルデータ通信、例えば、通信ネットワークによって相互接続可能である。通信ネットワークの例は、ローカルエリアネットワークおよび、広域ネットワーク、例えば、インターネットを含む。コンピューティングシステムは、クライアントとサーバとを含むことが可能である。クライアントおよびサーバは、概して、互いから離れており、典型的には、通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行し、互いに対してクライアントサーバ関係を有するコンピュータプログラムによって生じる。本明細書は多くの特定の実装形態の詳細を含むが、これらの詳細は、任意の実装形態または特許請求されるうるものの範囲の限定と解釈されるべきではなく、特定の実装形態の特定の実施形態に固有でありうる特徴の説明と解釈すべきである。別個の実施形態の関連で、本明細書で説明された一部の特徴を単一の実施形態の形で組み合わせて実施することも可能である。反対に、単一の実施形態の関連で説明された様々な特徴を複数の実施形態の形で別個に、または任意の適切なサブコンビネーションの形で実施することも可能である。さらに、特徴は上である種の組合せの形で機能するとして説明されている場合があり、そういうものとして当初特許請求されている場合すらあるが、特許請求される組合せからの1つまたは複数の特徴を、場合によっては、その組合せから削除することが可能であり、特許請求される組合せは、サブコンビネーションまたはサブコンビネーションの改変に関する場合もある。同様に、動作は図面において特定の順序で示されているが、これは、そのような動作が示された特定の順序もしくは連続順序で実行されるべきであること、または望ましい結果を達成するために、すべての例示された動作を実行すべきであることを必要とすると理解すべきではない。ある特定の状況において、マルチタスキングおよび並列処理が有利な場合がある。さらに、上で説明された実施形態の様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とすると理解すべきではなく、説明されたプログラム構成要素およびシステムは、概して、単一のソフトウェア製品内に一緒に統合可能であるか、または複数のソフトウェア製品内に包装可能であると理解すべきである。本明細書で説明された本主題の特定の実施形態が説明されてきた。他の実施形態は添付の特許請求の範囲の範囲内である。例えば、特許請求の範囲で列挙される動作は、異なる順序で実行可能であり、依然として望ましい結果を達成する。一例として、添付の図面に示された方法は、望ましい結果を達成するために、示された特定の順序、または連続順序を必要とするとは限らない。一部の実装形態では、マルチタスキングおよび並列処理が有利な場合がある。