第1の形式の、複数の語を有する入力文字列を受信するステップと、前記入力文字列を前記第1の形式から第2の形式に変換するステップであって、1つまたは複数のルールを前記入力文字列に適用して、前記複数の語よりも少ない翻訳用の1つまたは複数の語を識別するステップと、前記識別された1つまたは複数の語を前記第2の形式の1つまたは複数の翻訳された語に翻訳するステップと、前記複数の語の残りの語を、前記第2の形式の書き直された語に書き直すステップとを含むステップと、前記翻訳された語と前記書き直された語とを結び付けて、前記第2の形式の混合型出力文字列を形成するステップとを含む、データ処理装置によって実行される方法。前記第1の形式および前記第2の形式は、それぞれ第1の書記体系および第2の書記体系である、請求項1に記載の方法。前記第1の形式および前記第2の形式は、それぞれ第1の自然言語および第2の自然言語である、請求項1に記載の方法。前記入力文字列は、タイプを含み、1つまたは複数のルールを前記入力文字列に適用するステップは、前記入力文字列の前記タイプと合致するタイプを有する1つまたは複数のルールを識別するステップと、前記入力文字列の前記タイプと合致するルールにおいて、前記入力文字列が前記それぞれの1つまたは複数の合致するルールの文字列パターンと合致するか否かを判断するステップとを含む、請求項1に記載の方法。各ルールは、それぞれの出力形式において複数のそれぞれのルール出力を含む、請求項4に記載の方法。合致するルールは、前記第1の形式から前記第2の形式に翻訳される前記ルールパターンの1つまたは複数の語を含む、請求項4に記載の方法。前記残りの語を書き直すステップは、前記文字列を複数のトークンにトークン化するステップと、各トークンを前記第1の形式から第2の形式に書き直すステップと、前記第2の形式の前記書き直されたトークンを結び付けて、前記第2の形式の書き直された出力文字列を形成するステップとを含む、請求項1に記載の方法。第1の形式の、複数の語を有する入力文字列を受信する動作と、前記入力文字列を前記第1の形式から第2の形式に変換する動作であって、1つまたは複数のルールを前記入力文字列に適用して、前記複数の語よりも少ない翻訳用の1つまたは複数の語を識別する動作と、前記識別された1つまたは複数の語を、前記第2の形式の1つまたは複数の翻訳された語に翻訳する動作と、前記複数の語の残りの語を、前記第2の形式の書き直された語に書き直す動作とを含む動作と、前記翻訳された語と前記書き直された語とを結び付けて、前記第2の形式の混合型出力文字列を形成する動作とを含む動作を実行するために対話するように動作可能な1つまたは複数のコンピュータを含むシステム。前記第1の形式および前記第2の形式は、それぞれ第1の書記体系および第2の書記体系である、請求項8に記載のシステム。前記第1の形式および前記第2の形式は、それぞれ第1の自然言語および第2の自然言語である、請求項8に記載のシステム。前記入力文字列は、タイプを含み、1つまたは複数のルールを前記入力文字列に適用する動作は、前記入力文字列の前記タイプと合致するタイプを有する1つまたは複数のルールを識別する動作と、前記入力文字列の前記タイプと合致するルールにおいて、前記入力文字列が前記それぞれの1つまたは複数の合致するルールの文字列パターンと合致するか否かを判断する動作とを含む、請求項8に記載のシステム。各ルールは、それぞれの出力形式において複数のそれぞれのルール出力を含む、請求項11に記載のシステム。合致するルールは、前記第1の形式から前記第2の形式に翻訳される前記ルールパターンの1つまたは複数の語を含む、請求項11に記載のシステム。前記残りの語を書き直す動作は、前記文字列を複数のトークンにトークン化する動作と、各トークンを前記第1の形式から第2の形式に書き直す動作と、前記第2の形式の前記書き直されたトークンを結び付けて、前記第2の形式の書き直された出力文字列を形成する動作とを含む、請求項8に記載のシステム。データ処理装置によって実行されるときに、前記データ処理装置に対し、第1の形式の、複数の語を有する入力文字列を受信する動作と、前記入力文字列を前記第1の形式から第2の形式に変換する動作であって、1つまたは複数のルールを前記入力文字列に適用して、前記複数の語よりも少ない翻訳用の1つまたは複数の語を識別する動作と、前記識別された1つまたは複数の語を、前記第2の形式の1つまたは複数の翻訳された語に翻訳する動作と、前記複数の語の残りの語を、前記第2の形式の書き直された語に書き直す動作とを含む動作と、前記翻訳された語と前記書き直された語とを結び付けて、前記第2の形式の混合型出力文字列を形成する動作とを含む動作を実行させる命令を含むコンピュータプログラムで符号化されたコンピュータ記憶媒体。前記第1の形式および前記第2の形式は、それぞれ第1の書記体系および第2の書記体系である、請求項15に記載のコンピュータ記憶媒体。前記第1の形式および前記第2の形式は、それぞれ第1の自然言語および第2の自然言語である、請求項15に記載のコンピュータ記憶媒体。前記入力文字列は、タイプを含み、1つまたは複数のルールを前記入力文字列に適用する動作は、前記入力文字列の前記タイプと合致するタイプを有する1つまたは複数のルールを識別する動作と、前記入力文字列の前記タイプと合致するルールにおいて、前記入力文字列が前記それぞれの1つまたは複数の合致するルールの文字列パターンと合致するか否かを判断する動作とを含む、請求項15に記載のコンピュータ記憶媒体。各ルールは、それぞれの出力形式において複数のそれぞれのルール出力を含む、請求項18に記載のコンピュータ記憶媒体。合致するルールは、前記第1の形式から前記第2の形式に翻訳される前記ルールパターンの1つまたは複数の語を含む、請求項18に記載のコンピュータ記憶媒体。前記残りの語を書き直す動作は、前記文字列を複数のトークンにトークン化する動作と、各トークンを前記第1の形式から第2の形式に書き直す動作と、前記第2の形式の前記書き直されたトークンを結び付けて、前記第2の形式の書き直された出力文字列を形成する動作とを含む、請求項15に記載のコンピュータ記憶媒体。本明細書は、第1の形式から第2の形式へのテキスト入力文字列の変換に関係する技術について説明する。テキストおよび音声の国際化および翻訳において、いくつかの単語が、それらの意味に基づいて翻訳される。他の単語は、それらの音または正字法、たとえば、ある言語を書くにあたり特定の書記体系を使用するルールに基づいて書き直される。たとえば、英語名Highbridgeは、日本語ハイブリッジに書き直される。高橋という翻訳された形式にはならない。混合形式は、意味的に入力文字列の一部分を翻訳し、入力文字列の他の部分を書き直すことを含む。たとえば、HighbridgeParkは、日本語ではハイブリッジ公園という混合形式になることがあり、この場合、ハイブリッジが書き直し部分であり、公園が翻訳部分である。本明細書は、語の入力文字列を第1の形式から第2の形式に、たとえば、ある自然言語または書記体系から別の自然言語または書記体系に変換するための技法について説明する。変換は、たとえば、書き直しおよび混合型翻訳技法を使用して実行できる。語の入力文字列を第1の形式から第2の形式に変換することは、第1の言語の書記体系から第2の言語の書記体系に変換することのほか、同じ言語において2つの書記体系の間で変換することを含みうる。いくつかの実装形態では、複数の語を含む入力文字列の場合、機械変換を実行して、ある形式による入力文字列を別の形式の出力文字列に変換する。機械変換は、入力文字列における語の書き直しおよび翻訳の混合である出力文字列を生成することを含みうる。たとえば、語の入力文字列は、1つまたは複数の語が翻訳されるべきか否かを判断するためのルールを使用することと、他の語に対して書き直しを実行するための言語固有のルールを使用することとを含みうる。一般に、本明細書で説明する対象の一態様は、第1の形式の、複数の語を有する入力文字列を受信するアクションと、入力文字列を第1の形式から第2の形式に変換するアクションであって、1つまたは複数のルールを入力文字列に適用して、複数の語よりも少ない翻訳用の1つまたは複数の語を識別するアクションと、識別された1つまたは複数の語を、第2の形式の1つまたは複数の翻訳された語に翻訳するアクションと、複数の語の残りの語を、第2の形式の書き直された語に書き直すアクションとを含むアクションと、翻訳された語と書き直された語とを結び付けて、第2の形式の混合型出力文字列を形成するアクションとを含む方法に具現化されうる。本態様の他の実施形態は、各々が本方法のアクションを実行するように構成された、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイスに記録されたコンピュータプログラムを含む。1つまたは複数のコンピュータのシステムは、動作中にシステムに対しアクションを実行させる、システムにインストールされているソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せを有することによって、特定の動作またはアクションを実行するように構成されうる。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されるときに、かかる装置に対しアクションを実行させる命令を含むことによって、特定の動作またはアクションを実行するように構成されうる。これらおよび他の実施形態は、以下の特徴のうちの1つまたは複数を随意に含むことができる。第1の形式および第2の形式は、それぞれ第1の書記体系および第2の書記体系である。第1の形式および第2の形式は、それぞれ第1の自然言語および第2の自然言語である。入力文字列は、タイプを含み、1つまたは複数のルールを入力文字列に適用することは、入力文字列のタイプと合致するタイプを有する1つまたは複数のルールを識別することと、入力文字列のタイプと合致するルールにおいて、入力文字列が、それぞれの1つまたは複数の合致するルールの文字列パターンと合致するか否かを判断することとを含む。各ルールは、それぞれの出力形式において複数のそれぞれのルール出力を含む。合致するルールは、第1の形式から第2の形式に翻訳されるルールパターンの1つまたは複数の語を含む。残りの語を書き直すことは、文字列を複数のトークンにトークン化することと、各トークンを第1の形式から第2の形式に書き直すことと、第2の形式の書き直されたトークンを結び付けて、第2の形式の書き直された出力文字列を形成することとを含む。一般に、本明細書で説明する対象の一態様は、第1の形式の、書き直される複数の語を有する文字列を受信するアクションと、文字列を複数のトークンにトークン化するアクションと、各トークンを第1の形式から第2の形式に書き直すアクションと、1つまたは複数の形式固有のルールを、第2の形式の書き直されたトークンに適用するアクションと、第2の形式の書き直されたトークンを結び付けて、第2の形式の書き直された出力文字列を形成するアクションとを含む方法に具現化されうる。本態様の他の実施形態は、各々が本方法のアクションを実行するように構成された、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイスに記録されたコンピュータプログラムを含む。1つまたは複数のコンピュータのシステムは、動作中にシステムに対しアクションを実行させる、システムにインストールされているソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せを有することによって、特定の動作またはアクションを実行するように構成されうる。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されるときに、かかる装置に対しアクションを実行させる命令を含むことによって、特定の動作またはアクションを実行するように構成されうる。これらおよび他の実施形態は、以下の特徴のうちの1つまたは複数を随意に含むことができる。文字列をトークン化することは、文字列を単語トークンに分割することを含む。第1の形式は第1の書記体系であり、第2の形式は第2の書記体系である。第1の形式は第1の自然言語であり、第2の形式は第2の自然言語である。形式固有のルールは、形態素または単語の境界で生じる様々な音韻過程に関係する。結び付けは、出力形式および1つまたは複数の言語ルールに基づいて、出力語の1つまたは複数の対の間に追加の文字を加えることを含む。各トークンを書き直すことは、1つまたは複数の有限状態トランスデューサを使用して、第1の形式および第2の形式の発音表記を生成することを含む。本明細書で説明する対象の特定の実施形態を実施して、以下の利点のうちの1つまたは複数を実現できる。変換の精度は、書き直しのみ、または翻訳のみの場合と比較して、書き直しおよび意味的翻訳の混合型を使用することで向上する。書き直しは、個々の語を別々に翻訳する場合と比較して、他の語の文脈を使用することで改善する。名前が書き写されている実体に関する情報を組み込むことで、書き直しの精度が向上する。たとえば、MenloParkが公園を指すのか、それとも都市を指すのかを知っていることは、変換される出力に影響しうる。本明細書で説明する対象の1つまたは複数の実施形態の詳細を、添付の図面および以下の説明で示す。対象の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになろう。様々な図面における同じ参照番号および表示は、同じ要素を示す。図1は、入力文字列を変換するための例示的な方法100の流れ図である。便宜上、方法100は、方法100を実行する、1つまたは複数のコンピューティングデバイスを含むシステムに関して説明する。特に、方法100は提示用の地理的データを処理することに関する動作について説明するが、同様のアクションを他のタイプのデータに対して実行することもできる。システムは、第1の書記体系における1つまたは複数の入力文字列を受信する。入力文字列は、第1の形式から第2の形式に変換される。第1の形式および第2の形式は、同じ言語または異なる言語を表しうる。いくつかの実装形態では、1つまたは複数の入力文字列が、地理的特徴の集合から受信される。これらの地理的特徴は、たとえば、政治的指定、観光目的地、または公園を含みうる。各地理的特徴は、物理的世界における対応する実体に関する情報により注釈されるか、明示されることがある。情報はタイプのカテゴリ、たとえば、都市、公園、または観光名所を含むことができる。いくつかの実装形態では、タイプ分けは、継承のないタイプの単純な一覧である。他の実装形態では、タイプ分けは単一の継承ツリー階層を使用した手持ち式であり、各タイプは別のタイプのサブタイプであり、その他のタイプのサブタイプではない1つまたは複数の根タイプを例外とする。さらにいくつかの他の実装形態では、タイプ分けは複数の継承ツリーを使用する手持ち式であり、1つのタイプは他のタイプのサブタイプでないことも、1つまたは複数の他のタイプのサブタイプであることもある。以下で図2に関してさらに詳しく説明するように、ルールを生成するために特徴が使用されうる。加えて、タイプ階層は、特徴タイプについて説明する自由形式テキストの特徴ごとの複数のタイプタグを許容しうる。タイプ分けのほかに、特徴は、示された物理的実体に関する他の情報、たとえば、都市の人口、または建物の高さにより明示されることもある。たとえば、一定の規模の都市のみに、または大きい建物の名前のみにルールを適用するときに、生成される書き直しに影響を与えるために、この他の非タイプ分け情報が使用されることもある。地理的特徴の例が使用される一方で、他のデータ、たとえば、ビジネスレジストリまたは特定のタイプに関する外部情報が知られているか、導出されうる他のデータも同様に処理されうる。たとえば、企業名は適用可能な様々な企業特徴と結び付きうる、であることを表す。システムは、随意に事前処理を実行する。事前処理は、入力文字列に対して実行される複数の動作を含みうる。事前処理は、入力文字列に対して直接実行されるアクション、または後で入力文字列に適用するためのデータベースもしくは他の情報の集合を生成することを伴うこともある。いくつかの実装形態では、いくつかの処理ステップは、提示用の地理的データを処理するためのより大きいパイプラインの一部である。たとえば、地理的データの場合、事前処理は、重複する特徴を統合およびまたは除去すること、近隣データセットからの道を繋ぎ合わせること、既存の特徴の形から新しい特徴を合成すること、形状の不規則を改めること、または特徴の属性を取り入れることを含みうる。近隣データセットからの道を繋ぎ合わせることは、異なるデータセットが使用されうる異なる地域間で地理的データを訂正することを指し、たとえば、第1の国と第2の国との間の境界を越える道は、第1の国のデータセットと第2の国のデータセットとの間で整合していないことがある。この事前動作は、総じて提示用の地理的データを処理するためのパイプラインの一部でありうる。地理的データの特徴を合成することは、たとえば、国および地方から英語圏の境界を合成すること、たとえば、米国オーストラリアニュージーランドカナダケベック州、を含む。これは、どの地域が入力文字列の変換を必要としているかを定義し、国または他の地政学的境界以外の情報に基づかない可能性のある部分を定義するのに役立つ。事前処理段階の一部として説明したが、これらのタスクは、実行されるタスクのタイプに応じて、後のプロセスの一部として、または別個の動作として、複合的手順で実行されうる。たとえば、図3に関して後述する書き直し動作中に、人間が入力した翻訳が適用されることがある。あるいは、いくつかの実装形態では、事前処理が実行されない。システムは、入力文字列について人間が入力した翻訳を識別する。これらは、不規則な翻訳を有する周知の語についての人間によって識別される翻訳である。たとえば、フランス語名がであるスイスの都市の場合、このステップは、英語名Geneva、ドイツ語Genf、イタリア語Ginevra、スロバキア語、ロシア語などを加えることがある。同様に、英語名がCaliforniaである米国の州の場合、このステップは、ドイツ語名Kalifornienを加えることがある。これにより、対応する語を追加することで入力データを修正することができ、スペルミスまたは入力テキストを処理するのに使用される1つまたは複数のルールによって識別されていない語の言語版を使用することによる悪い変換の可能性が低下する。たとえば、1つの特定の通りの名前が、たとえばデータ提供者の問題により、誤字を有したり、誤って称されたりすることがある。これらの識別された翻訳は、たとえば、図2~図3に関して後述する書き直しまたは翻訳の動作を実行する際に使用するために、データベースまたは辞書に入力される。システムは、1つまたは複数の語について辞書の翻訳を識別する。辞書の翻訳は、同じ名前を有する入力テキストの集合内のすべての語に適用される。たとえば、米国にはCityHallと呼ばれる建物が沢山ある。辞書の表現は、その名前を調べ、ドイツ語のRathaus、フランス語の、日本語の役所などの名前を、合致する名前を有するすべての語に入れることがある。こうして、特定の特徴または語に関する複数の翻訳が、文字列を変換する際に使用するために識別される。システムは、各入力文字列に対して機械変換を実行する。機械変換は、第1の形式の入力文字列の少なくとも一部分を第2の形式に変換する。入力文字列の機械変換は、1つまたは複数のルールに従って翻訳可能な部分があるか否かを判断することと、翻訳されない任意の部分の書き直しを実行することとを含む。入力文字列の機械変換については、以下で図2~図3に関してさらに詳しく説明する。システムは、変換された入力文字列に対して事後処理を実行する。たとえば、事後処理を使用して、パイプラインの最初の部分が正しく処理されなかった語または属性をブラックリストに載せることができる。たとえば、変換された出力文字列の品質は、言語的理由により特定の地理的地域において異なりうる。その結果、変換された語、たとえば通り名をブラックリストに載せることが、そのデータが現在信頼できない場合、実行されうる。したがって、マップデータを提示する例では、それらの語は表示用に変換されることなく、代わりに元の入力文字列が使用される。同様に、シンガポールには中国語と英語の両方による通りが沢山あるので、それらの英語の通り名を中国語に翻訳する必要はない。システムは、第2の形式の変換された文字列を出力する。たとえば、変換された文字列は、後で使用するために保存されうる。いくつかの実装形態では、変換された文字列は、対応するマップデータが表示のために要求されたときに取り出される地理的ラベルである。たとえば、中国の情報を識別する地理的データの英語の文字列を有するデータベースは、中国の提示マップにラベルを付ける際に使用するために、中国語の文字列に変換されうる。別の例では、変換された文字列は、生成された後にユーザに提示されうる。いずれの例でも、変換された文字列のうちの1つまたは複数は単独で、または他のデータとともに提示されうる。図2は、入力文字列の機械変換のための例示的な方法200の流れ図である。便宜上、方法200は、方法200を実行する、1つまたは複数のコンピューティングデバイスを含むシステムに関して説明する。システムは入力文字列を受信する。入力文字列は、たとえば、第1の形式から第2の形式に変換される入力文字列の集合から受信されうる。いくつかの実装形態では、入力文字列は、たとえば図1で説明したように、受信される前に1つまたは複数の事前処理ステップを経ている。あるいは、入力文字列は事前処理なしに直接処理される。システムは、受信された入力文字列にルールのグループを適用する。ルールは、特定の特徴タイプおよび特徴タイプが入力文字列と合致した場合に実行するアクションを識別する。システムは、たとえばルール階層に従って入力文字列に各ルールを適用する。特徴は、入力文字列における特徴のラベリングに基づいて、特定の特徴タイプと合致する。ルールは、所与の特徴タイプに関するルールと合致する1つまたは複数の語のパターンを有しうる。入力文字列が入力パターンと合致した場合、ルールは合致する。いくつかの実装形態では、所与の言語または書記体系に関して定義されたルールごとに、それぞれの言語または書記体系において1つまたは複数の出力パターンがある。入力文字列が入力パターンと合致した場合、システムは、ルールによって定義されたそれぞれの出力パターンに従って、1つまたは複数の出力語を生成する。たとえば、下に示すのは、地理的特徴の英語名を日本語、韓国語、キルギス語、ロシア語、簡体字、および繁体字に変換するための3つの例示的なルール構造である。これらの例示的なルールは、明確にするために単純化されている。したがって、たとえば、特徴タイプparkに関連するルールは、英語入力パターンParkを有し、それにより、parkの前に何らかのワイルドカードテキストを有する特徴タイプparkの入力テキスト文字列は、ルールと合致する。たとえば、カリフォルニア州サンフランシスコにある公園を指す入力文字列LafayetteParkは、入力パターンと合致する。対応する出力パターンが複数の言語で提供される。特に、所与の入力文字列について、LafayetteParkに再び目を向けると、システムは合致を求めてルールのすべてを探索する。LafayetteParkの例では、入力文字列の特徴Parkは特徴タイプTYPEPARKを有するとラベルを付けられるので、第1のルールは合致する。ルールは、TYPEPARKのサブタイプも合致するように、特徴タイプの存在論に従って構成される。加えて、入力文字列LafayetteParkは入力パターンParkと合致するので、第1のルールは合致する。システムは、ルールに基づいて入力文字列の1つまたは複数の語を翻訳すべきか否かを判断する。特に、入力文字列が特定の特徴およびルールと合致している場合、システムは1つまたは複数の出力文字列を生成する。出力パターンは、1つまたは複数の言語における翻訳された語を含みうる。例示的なルールに示されているように、out条項は、出力言語について、出力を生成する方法を指定するパターンを含む。LafayetteParkの場合、ルールは複数の言語における出力パターンを識別し、各々はParkをそれぞれの言語に翻訳する。たとえば、日本語では、ルールの出力パターンはoutであり、ここで1はLafayette、公園は日本語における語parkの翻訳である。こうして、文字列の一部分が第2の形式に翻訳される一方、文字列の一部分は第1の形式にとどまる。対照的に、カリフォルニア州にある都市を指し、特徴タイプTYPECITYを有する入力文字列MenloParkは、上記の例示的なルールの第1のルールと合致しない。使用するタイプ体系によれば、特徴タイプTYPECITYはTYPEPARKのサブタイプであるとは見なされないからである。第1のルールは合致していないので、システムは特徴タイプTYPETouristDestinationに関する第2のルールを試みるが、またしても成功しない。しかしながら、TYPECITYはTYPEPOLITICALのサブタイプであるので、第3のルールが合致する。しかしながら、この場合、ルールと合致する文字列の出力パターンは翻訳を含まず、全体の出力1はMenloParkであるので、翻訳される文字列の部分はない。システムは、入力文字列の1つまたは複数の残りの語を書き直す。特に、1つまたは複数の語を有する入力文字列について、合致ルールに従って翻訳されなかった語は書き直される。書き直しは、語を第1の形式から第2の形式にマッピングする。第2の形式は、同じ言語もしくは異なる言語の場合、または同じ書記体系もしくは異なる書記体系の場合がある。特定の書き直し技法については、以下で図3に関してより詳しく説明する。システムは、変換された文字列を出力する。変換された文字列は、ルールの適用による書き直された語と翻訳された語との結び付きを含む。いくつかの実装形態では、複数の変換された文字列が、それぞれの言語または書記体系で出力される。いくつかの他の実装形態では、特定の出力言語または書記体系が、入力文字列に関して指定される。上記の例では、入力文字列LafayetteParkはルールと合致しており、結果的にルールを適用してLafayette公園となり、ここで公園は日本語におけるParkの翻訳である。次いで、語Lafayetteがターゲット書記体系、この場合は日本語に書き直される。この例では、書き直しはラファイエットを返す。これはParkの翻訳と結び付けられ、混合形式ラファイエット公園となる。同様に、第2の例MenloParkでは、翻訳される語がなかったので、入力文字列全体が書き直される。日本語への書き直しの場合、結果として生じる出力はメンローパークである。特に、特徴タイプの使用に起因して、都市MenloParkは文字どおりに書き直され、一方で公園LafayetteParkは部分的に書き直され、部分的に翻訳されることに留意されたい。別の例として、入力文字列Genevacityhallはルールに基づいてcityhallの翻訳を識別する。次いで、システムはGenevaに対し書き換えを実行する。Genevaは、人間が入力した翻訳のデータベースに現れることがある。次いで変換された出力は、cityhallの翻訳と結び付いたGenevaの翻訳となる。同様のプロセスは他のタイプのデータに使用されうる。たとえば、特定の企業ルールに従って企業名が処理されうる。したがって、企業名FooBarIncの場合、ルールはIncを、別の形式へのincorporatedの翻訳により識別する。この翻訳は、FooBarの書き直しと結び付けられ、結果的に混合型の変換された出力文字列が生じる。図3は、入力文字列の語を書き直すための例示的な方法300の流れ図である。便宜上、方法300は、方法300を実行する、1つまたは複数のコンピューティングデバイスを含むシステムに関して説明する。システムは、第2の形式に翻訳されない第1の形式の入力文字列の語をトークン化する。たとえば、システムは、文字列を別個の単語に分割することによって、入力文字列の語をトークン化する。英語では、たとえば、これは分割ポイントとしてスペースを使用することによって行われる。他の言語、たとえば、中国語、日本語、および韓国語では、書記体系に応じて、単語間のスペースがないことから、これらの言語用の他のトークン化技法が必要である。上記の例MenloParkでは、トークンはMenlo、Parkとなる。システムは各トークンを第2の形式に書き直す。特に、各トークンは別個に書き直される。上記の例では、トークンMenlo、Parkはメンロー、パークに別個に書き直される。異なる書き直し技法を使用して、個別のトークンまたは単語を書き直すことができる。例示的な書き直し技法については、以下で詳述する。随意に、入力形式と出力形式との組合せに応じて、システムは書き直されたトークンに追加のルールを適用する。具体的には、これらの追加のルールは、入力形式および出力形式に固有の特定の言語的現象に対処する。たとえば、1つの言語的現象は外連声、またはフランス語の場合は特にフランス語のリエゾンと呼ばれる。この現象は、特定の単語が、1つまたは複数の他の単語を有する文脈に応じてどのように取り扱われるかに関係する。特に、これは、形態素または単語の境界で生じる様々な音韻過程に関係する。たとえば、フランス語名Maisondesabricotsについて考える。問題は、フランス語の単語desが、後に続く単語に応じて異なって発音されることである。この発音の相違は、フランス語をいくつかの他の言語に書き直すときに顕著になる。後に続く単語が子音で始まる場合、フランス語のdesはdeと発音される、つまり、単語の最後のsは発音されない。一方、後に続く単語が母音で始まる場合、フランス語のdesの発音は、有声の聞き取れるz音を含み、dezとなる。さらに複雑なことに、フランス語を日本語に正しく書き直すには、z音はdesの書き直しに付加されず、代わりに、後に続く単語の書き直しの前に付加される必要がある。したがって、Maison、des、abricotsを書き直すとき、言語固有の書き直しルールの適用は、メゾン、デズ、アブリコーからメゾン、デ、ザブリコー、すなわちに変わる。これらの追加のルールを適用するために、入力トークンと出力トークンの両方が使用される。加えて、連声ルールについて、連声を引き起こす単語の辞書を使用してルールを生成することができる。たとえば、フランス語を日本語に書き直す場合、sで終わるフランス語の単語の全部ではなく一部のみが、それが日本語の書き直しに現れる範囲でリエゾンを引き起こす。システムは書き直された出力文字列を出力する。複数のトークンが書き直された場合、追加のルールの適用に基づいて語または語順を変更して書き直された出力を形成するために、最後の一連の語が結び付けられる。一部分が翻訳された場合、上記の変換された出力文字列を生成するために、この書き直された部分が翻訳された部分に結合される。いくつかの実装形態では、結び付けは、書き直された語の間にスペースを追加することを含む。たとえば、翻訳されたトークンMenlo、Parkは、MenloParkを提供するために各語の間にスペースを追加することによって結び付けられる。いくつかの他の実装形態では、結び付けるときに言語固有のハイフネーションルールが適用される。たとえば、ドイツ語では、特定のタイプの文字列におけるハイフネーションを必要とするつづり字法がある。さらにいくつかの他の実装形態では、結び付けは、書き直されたトークンの間に他の特徴を追加することを含む。たとえば、日本語の単語の間にカタカナの中点が追加されることがある。したがって、入力文字列MenloParkの場合、日本語の書き直されたトークンメンロー、パークは出力文字列メンローパークになる。ルールは、単にスペースの代わりに中点を挿入するだけの場合よりも複雑になりうる。たとえば、日本語のカタカナの中点文字を挿入するのは、挿入ポイントの両側が実際に日本語のかな表記のうちの1つである場合のみである。したがって、MenloParkBridgeをメンロー、パーク、橋に変換した後、結び付けてメンローパーク橋が作られる。メンローとパークとの間には、両方の文字列がカタカナ書記体系であるので、中点が挿入される。一方、パークと橋との間には、前者のみがカタカナで書かれ、後者が日本語の漢字書記体系で書かれているので、中点は挿入されない。様々な技法を使用して、個々のトークンを書き直すことができる。特に、書き直し中に、各トークンが例外辞書に照らしてチェックされる。例外辞書を使用して、発音、およびそれに応じて他の言語への書き直しが不規則である単語に対処する。例外辞書は様々なタイプのデータを含みうる。いくつかの実装形態では、例外辞書がログ分析に基づいて実装され、これを使用して、どの文字列がユーザに頻繁に表示されるかを識別する。たとえば、マッピングサービスのユーザが閲覧した世界の特定の部分を識別し、それらのマップに提示される語をカウントすることが可能である。カウントは指定期間に、全ユーザにわたって合算される。結果は、ユーザ要求元によって分けられる。したがって、異なる言語における特定の文字列が、異なる地域、たとえば、日本、ロシア、中国、韓国のユーザに頻繁に示される。ソース言語の発音の不規則性に応じて、人間の評価者が上位2000~20000単語の書き直しを手動で入力する。したがって、上位N個の最頻出単語は、正確性に関して高い信頼性を有する。これらの書き直しは例外辞書に追加される。いくつかの他の実装形態では、例外辞書が経験則を使用して実装され、特に不規則な文字列を識別する。たとえば、英語ではなくゲール語である可能性が高いグレートブリテン内の名前の文字列を識別する。次いで、これらのゲール語の単語は、英語から別の言語に異なるプロセスを使用して書き直される。次いで、これらの書き直しは例外辞書に追加される。トークンが例外辞書内で発見されなかった場合、特定の書き直し技法が選択される。たとえば、特定の書き直し技法が、ソースおよびターゲットの言語または書記体系に基づいて選択されうる。したがって、たとえば、ある書き直し技法がスペイン語入力を日本語出力に変換するときに使用され、別の書き直し技法が英語入力を日本語出力に変換するときに使用されうる。様々な書き直し技法が使用されうる。例示的な書き直し技法は、文脈依存書き換えルールに基づく単純な書き直し、またはテキスト音声技術に基づく複雑な書き直しを含むが、これらに限定されない。文脈依存書き換えルールに基づく単純な書き直しは、たとえば、一定程度の規則的な句読法を有する入力言語を書き直すために使用される。特定のライブラリに従って語を書き直す際に使用するために、書き換えルールエンジンが受信されうる。書き直しライブラリを使用して、根底の単語を翻訳することなく、ある書記体系から別の書記体系に文字を変換する。たとえば、英語入力batがギリシャ語のβατに変換されうる。いくつかの実装形態では、オープンソース書き直しライブラリが使用される。ライブラリは、ある書記体系から別の書記体系に文字がどのように書き直されるかを定義するルールを含む。特定の変換ルールシンタックスに従って使用されるライブラリ用のカスタム変換ルールを生成することができる。いくつかの実装形態では、テキストは、入力言語から入力言語の音素表示またはXSAMPA表記、入力言語の音素表示から出力言語の音素表示、出力言語の音素表示から出力言語の書記形式へと、複数のステップで変換される。ライブラリは、特定のタイプのテキストを書き直すためのルールの集合を含む。たとえば、場合によっては、ギリシャ語とラテン語の両方の文字間には、1対1の関係がある。ルールは、ソース文字列とターゲット文字列の間でマッピングする。以下はこの関係を示しているπp。ルールによれば、ギリシャ語からラテン語に書き直すときには、πをpに変換し、ラテン語からギリシャ語に書き直すときには、pをπに変換する。より一般的には、シンタックスは、文字列1文字列2である。ルールはより複雑になることがあり、たとえば、ルールは文脈に基づくことがある。たとえば、ギリシャ語では、γからnへの変換を、それが以下の文字、すなわち、γ、κ、またはχのうちのいずれかの前にある場合に行うルールとなっている。それ以外の場合はgに変換するルールとなっている。同様に別の例では、ギリシャ語のシグマは、単語の最後にある場合にはと書かれ、それ以外の場合にはσと書かれる。文字をギリシャ語からラテン語に変換するときには、これは問題ではない。しかし、文字をラテン語からギリシャ語に戻すときには、これは問題であり、特にルールは、書き直される文字列の文脈に応じていつsに変換すべきかを定義している。たとえば、チェコ語の入力文字列を韓国語の入力文字列に変換するために書き直しを実行するとき、以下の連鎖を使用できる。チェコ語→IPA記号を使用した音素のチェコ語→ラテン語表記の韓国語→韓国語表記の韓国語。特に、これは以下の変換を行う。→→holeusyuki→これらのステップは分離可能であり、それにより、ルールのいくつかの部分を独立して使用し、また他のルールにつないで、複数の言語ペア全体で再利用することができる。たとえば、チェコ語を日本語に書き直すためのルールは、チェコ語から韓国語へのルールとまったく同じIPA記号を使用した音素のチェコ語において機能する。したがって、チェコ語からIPA記号を使用した音素のチェコ語への変換は、韓国語を生成するときと、日本語出力を生成するときの両方に使用できる。一例として、以下はチェコ語の文字nを文脈に応じてnまたはnのいずれかに変換するためのルールである。ngkqx→gkqxのうちの1つの前では、チェコ語の書記素nは、軟口蓋鼻音と発音される。n→n他の文脈では、チェコ語の書記素nは、n音として発音される。また、一例として、これらは、文脈に応じて、チェコ語の文字を異なる韓国語ラテン語文字列に変換するためのルールである。が単語の末尾、たとえば、が母音の前がk音の前が任意の他の文脈。個々の語の書き直しを実行するとき、入力形式および出力形式に基づいて特定のルールを適用するために適切なライブラリを使用する。次いで、書き直された語を上記のようにさらに処理して、第1形式の入力文字列から第2の形式の出力文字列への変換である最終出力文字列を生成することができる。不規則な発音が多い入力言語、特に英語の場合、テキスト音声技術を使用する一層複雑なシステムが使用されうる。具体的には、入力単語を出力単語または中間形式に変換するために、例に基づいてオフラインで訓練される幅広い種類のモデルが使用されうる。いくつかの実装形態では、システムはモデルの種類として有限状態トランスデューサを使用する。一例では、モデルが入力単語および対応する書き直しの例に対して直接訓練されうる。実行時に、入力単語が、訓練されたモデルによって多数の可能な出力形式に変換される。システムは、有限状態トランスデューサまたは他のモデルによって割り振られた数字の重み付けに基づいて、単一の最も優れた出力形式を導出する。別の例では、変換全体は複数のステップを含みうる。入力形式は最初に中間形式に変換される。中間変換がまったく実行されないこと、または任意の回数だけ実行されることがある。出力書き直しが中間形式のうちの1つまたは複数から、場合により入力単語と組み合わせて導出される。いくつかの実装形態では、発音表記が中間形式として使用される。特に、入力単語が最初にソース言語の発音表記に変換される。次いで、この発音表記は、ターゲット言語の発音表記に変換される。次いで、ターゲット言語の発音表記は、ターゲット言語の正字法による形式にさらに変換される。あるいは、入力単語はターゲット言語の発音表記または正字法による表記に変換されうる。いくつかの実装形態では、システムは有限状態トランスデューサに支援されて計算されるソース言語とターゲット言語の両方における発音表記を使用して書き直しを実行する。図4は、例示的なシステムアーキテクチャ400である。システムアーキテクチャ400は、入力文字列を第1の形式から第2の形式に変換するための動作を実行することが可能である。システムアーキテクチャ400は、1つまたは複数のプロセッサ4024など、1つまたは複数の随意のディスプレイデバイス404、グラフィックス処理ユニット406、ネットワークインターフェース408、FireWire、USBなど、随意の入力デバイス410、および1つまたは複数のコンピュータ可読媒体412を含む。これらの構成要素は、1つまたは複数のバス414を使用して通信およびデータを交換する。コンピュータ可読媒体という用語は、実行のためにプロセッサ402に命令を提供することに参加する任意の媒体を指す。コンピュータ可読媒体412は、オペレーティングシステム416、Windows、Linuxなど、ネットワーク通信モジュール418、文字列変換器420、および他のアプリケーション424をさらに含む。オペレーティングシステム416は、マルチユーザ、マルチ処理、マルチタスク、マルチスレッド、リアルタイムなどでありうる。オペレーティングシステム416は、限定はしないが、入力デバイス410からの入力を認識すること、ディスプレイデバイス404に出力を送ること、コンピュータ可読媒体412のファイルおよびディレクトリを追跡すること、周辺デバイスを制御すること、および1つまたは複数のバス414のトラフィックを管理することを含む基本的タスクを実行する。ネットワーク通信モジュール418は、ネットワーク接続を確立し維持するための様々な構成要素などの通信プロトコルを実施するためのソフトウェアを含む。文字列変換器420は、図1~図3に関して説明したように入力文字列を第1の形式から第2の形式に変換するための様々な機能を実行するための様々なソフトウェア構成要素を提供する。本明細書で説明する対象および動作の実施形態は、デジタル電子回路において、または本明細書で開示される構造およびその構造の同等物を含む、コンピュータソフトウェア、ファームウェアもしくはハードウェアにおいて、またはこれらのうちの1つもしくは複数の組合せで実施できる。本明細書で説明する対象の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のため、またはデータ処理装置の動作を制御するため、コンピュータ記憶媒体に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実施できる。代替的にまたは追加として、プログラム命令は、人工生成の伝搬信号、たとえば、データ処理装置による実行のために適切な受信機装置に送信する情報を符号化するために生成される、機械生成の電気信号、光信号または電磁信号に符号化できる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくは順次アクセスメモリアレイもしくはデバイス、またはこれらのうちの1つもしくは複数の組合せであること、またはこれらに含まれることがある。さらに、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工生成の伝搬信号に符号化されたコンピュータプログラム命令の発信元または宛先でありうる。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理構成要素または媒体であること、またはこれらに含まれることがある。本明細書で説明する動作は、1つまたは複数のコンピュータ可読記憶デバイスに保存されているか、他のソースから受信したデータに対してデータ処理装置によって実行される動作として実施できる。データ処理装置という用語は、たとえばプログラマブルプロセッサ、コンピュータ、チップ上のシステム、またはこれらの複数のもしくは組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、たとえばFPGAまたはASICを含むことができる。この装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作るコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想機械またはこれらのうちの1つもしくは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング、グリッドコンピューティングインフラストラクチャなど様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。コンピュータプログラムは、コンパイルまたは翻訳された言語、宣言形または手続き形の言語を含む任意の形式のプログラミング言語で書かれてよく、独立プログラムとしての形式、またはモジュール、構成要素、サブルーチン、オブジェクトもしくはコンピューティング環境での使用に適した他のユニットとしての形式など、任意の形式で展開されてよい。コンピュータプログラムは、ファイルシステム内のファイルに対応しうるが、対応する必要はない。プログラムは、他のプログラムもしくはデータを保持するファイルの一部分、問題のプログラム専用の1つのファイル、または複数の調整されたファイルに記憶できる。コンピュータプログラムは、1つのコンピュータ、または1つの場所に位置するか、もしくは複数の場所に分布し、通信ネットワークで相互接続された複数のコンピュータで実行されるように展開できる。本明細書で説明するプロセスおよび論理フローは、入力データに対し動作すること、および出力を生成することによってアクションを実行するための1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行できる。プロセスおよび論理フローはまた、専用論理回路、たとえばFPGAまたはASICによって実行可能であり、装置はまた、専用論理回路、たとえばFPGAまたはASICとして実装可能である。コンピュータプログラムの実行に適したプロセッサは、たとえば、汎用および専用のマイクロプロセッサ、ならびに任意の種類のデジタルコンピュータのうちの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取り専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの基本的要素は、命令に従いアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つもしくは複数の大容量記憶デバイス、たとえば磁気ディスク、光磁気ディスクもしくは光ディスクを含み、またはかかる大容量記憶デバイスからデータを受信し、もしくはかかる大容量記憶デバイスにデータを転送し、もしくはその両方を行うように動作可能に結合される。ただし、コンピュータはかかるデバイスを備えている必要はない。さらに、コンピュータは、別のデバイス、いくつか挙げてみると、たとえば携帯電話、携帯情報端末、携帯音声もしくは映像プレーヤー、ゲームコンソール、全地球測位システム受信機、またはポータブル記憶デバイスフラッシュドライブなどに組み込まれうる。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、あらゆる形式の不揮発性メモリ、媒体およびメモリデバイス、たとえば、半導体メモリデバイス、磁気ディスク、光磁気ディスクならびにCDROMおよびDVDROMディスクを含む。プロセッサおよびメモリは専用論理回路によって補完され、または専用論理回路に組み込まれてよい。ユーザと対話するために、本明細書で説明する対象の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRTまたはLCDモニタ、ならびにユーザがコンピュータに入力を行うことができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータで実施できる。他の種類のデバイスを使用してユーザと対話することも可能で、たとえば、ユーザに提供されるフィードバックは、任意の形式の知覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバックまたは触覚フィードバックであってよく、ユーザからのインプットは、音響、音声または触覚インプットを含む任意の形式で受信できる。また、コンピュータは、ユーザによって使用されているデバイスにドキュメントを送り、かかるデバイスからドキュメントを受信することによって、たとえばユーザのクライアントデバイス上のウェブブラウザに、ウェブブラウザから受信したリクエストに応答してウェブページを送ることによって、ユーザと対話することができる。本明細書で説明する対象の実施形態は、たとえばデータサーバとしての後置構成要素を含む、またはミドルウェア構成要素、たとえばアプリケーションサーバを含む、または前置構成要素、たとえば、本明細書で説明する対象の実装形態とユーザが対話できるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含む、または1つもしくは複数のかかる後置、ミドルウェアもしくは前置構成要素の任意の組合せを含むコンピューティングシステムで実施できる。システムの構成要素は、デジタルデータ通信の任意の形式または媒体、たとえば通信ネットワークによって相互接続できる。通信ネットワークの例には、ローカルエリアネットワーク、広域ネットワーク、インターネットワーク、およびピアツーピアネットワークが含まれる。コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に互いに離れており、通常は通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータで稼動し、互いにクライアントサーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバはクライアントデバイスにデータを送信する。クライアントデバイスで生成されたデータは、サーバにおいてクライアントデバイスから受信されうる。本明細書は多くの特定の実施詳細を含んでいるが、かかる詳細を、いずれかの発明または特許請求内容の範囲の限定と解釈すべきではなく、特定の発明の特定の実施形態に固有の特徴の説明と解釈すべきである。また、個別の実施形態に関して本明細書において説明するいくつかの特徴は、1つの実施形態において組合せで実施できる。反対に、1つの実施形態に関して説明する様々な特徴は、複数の実施形態で個別に、または任意の適切な副組合せで実施できる。さらに、特徴は一定の組合せで機能するものとして上述され、当初はそういうものとして特許請求されることもあるが、特許請求される組合せによる1つまたは複数の特徴は、場合によっては、当該組合せにより実施可能であり、特許請求される組合せは副組合せまたは副組合せの変形を対象にしうる。同様に、動作は特定の順序で図面に示されているが、これについては、所望の結果を達成するために、そのような動作を示された特定の順序でもしくは順次に実行すること、またはすべての示された動作を実行することを要求するものとして理解すべきではない。状況によっては、マルチタスク処理および並列処理が有利なこともある。また、上述の実施形態における様々なシステム構成要素の分離については、すべての実施形態でそのような分離を要求するものとして理解すべきではなく、説明されるプログラム構成要素およびシステムは一般に1つのソフトウェア製品への統合、または複数のソフトウェア製品へのパッケージ化が可能であると理解すべきである。以上、対象の特定の実施形態について説明してきた。他の実施形態も、後述の特許請求の範囲内にある。場合によっては、特許請求の範囲で列挙されるアクションは、異なる順序で実行可能であり、その場合でも所望の結果を達成できる。また、添付の図に記載のプロセスは、所望の結果を達成するために、必ずしも示された特定の順序または順次であることを要求しているわけではない。いくつかの実装形態では、マルチタスク処理および並列処理が有利なこともある。