(57)【特許請求の範囲】
【請求項１】
複数の言語をサポートし、サポートされている言語で書かれた電子文字列内のスペースをフォーマットするように構成されたフォーマットモジュールであって、
前記電子文字列がサポートされている言語で書かれているかどうかを識別するように構成された言語識別器であって、前記サポートされている言語のうち、前記電子文字列が書かれている可能性が最も高い言語を識別するよう構成された言語識別器と、
前記電子文字列内の句読点を識別するように構成された文字識別器であって、
各ルールが前記電子文字列内の識別すべき句読点に関連する複数のルールセットであって、各ルールは、サポートされている言語、及び前記句読点を所与として、前記フォーマットモジュールによって前記電子文字列に適用すべきスペースのフォーマットを記述する１又はそれ以上の操作に関連し、前記複数のルールセットは、各言語に関連するルールセット及び各言語族に関連するルールセットを含む、複数のルールセットと、
適用可能なルールが識別されるまで、又は適用可能なルールが識別されずに全てのルールが枯渇するまで、まず前記言語に固有のルールセットからの各ルールを前記電子文字列と比較し、次に前記言語が属する言語族に適用可能なルールセットからの各ルールを前記電子文字列と比較するように構成された比較機構と、
を含む文字識別器と、
を備え、
前記フォーマットモジュールは、サポートされている言語が識別されると、前記適用可能なルールに関連する１又はそれ以上の操作を前記電子文字列に適用することにより、前記識別された言語、及び前記識別された句読点に基づいて前記句読点の両側のスペースをフォーマットするように構成される、
ことを特徴とするフォーマットモジュール。
【請求項２】
少なくとも１つの言語をサポートし、サポートされている言語で書かれた電子文字列内のスペースをフォーマットするように構成されたフォーマットモジュールであって、
前記電子文字列がサポートされている言語で書かれているかどうかを識別するように構成された言語識別器と、
前記電子文字列内の句読点を識別するように構成された文字識別器であって、
各ルールが前記電子文字列内の識別すべき句読点に関連する少なくとも１つのルールセットであって、文脈ルール、文字ルール及びカテゴリルールを含む、少なくとも１つのルールセットと、
適用可能なルールが識別されるまで、又は適用可能なルールが識別されずに全てのルールが枯渇するまで、文脈ルール、文字ルール、次にカテゴリルールの順番で前記ルールを前記電子文字列と比較するように構成された比較機構と、を備え、
前記フォーマットモジュールは、サポートされている言語が識別されると、前記適用可能なルールに関連する１又はそれ以上の操作を前記電子文字列に適用することにより、前記識別された言語、及び前記識別された句読点に基づいて前記句読点の両側のスペースをフォーマットするように構成される、
ことを特徴とするフォーマットモジュール。
【請求項３】
前記句読点の両側のスペースをフォーマットすることは、前記句読点の両側のスペースを挿入及び／又は削除することを含む、
ことを特徴とする請求項１又は２に記載のフォーマットモジュール。
【請求項４】
前記比較機構は、サポートされている言語が識別された時にのみ、各ルールを前記電子文字列と比較するように構成される、
ことを特徴とする請求項１又は２に記載のフォーマットモジュール。
【請求項５】
前記フォーマットモジュールは、複数の言語をサポートし、前記言語識別器は、前記サポートされている言語のうち、前記電子文字列が書かれている可能性が最も高い言語をさらに識別するように構成される、
ことを特徴とする請求項２に記載のフォーマットモジュール。
【請求項６】
前記フォーマットモジュールは、前記句読点のカテゴリに基づいて該句読点の両側のスペースをフォーマットするように構成される、
ことを特徴とする請求項１に記載のフォーマットモジュール。
【請求項７】
前記文字識別器は、前記電子文字列における特定の文脈を識別するようにさらに構成され、前記フォーマットモジュールは、前記文脈に基づいて前記句読点の両側の前記スペースをフォーマットするように構成される、ことを特徴とする請求項１に記載のフォーマットモジュール。
【請求項８】
前記１又はそれ以上の操作は一連の操作を含み、前記比較機構は、あるルールが適用可能であると判明した時に、前記電子文字列に前記一連の操作を適用するように構成される、
ことを特徴とする請求項１又は２に記載のフォーマットモジュール。
【請求項９】
前記文字識別器は、１つのルールセットが各サポートされている言語のためのものである複数のルールセットを含み、前記比較機構は、前記最も可能性の高い言語に対応する前記ルールセットの各ルールを前記電子文字列と比較するように構成される、
ことを特徴とする請求項５に記載のフォーマットモジュール。
【請求項１０】
前記フォーマットモジュールは、各言語に関連するルールセット及び各言語族に関連するルールセットを含み、前記ルールは、サポートされている言語が識別されると、適用可能なルールが識別されるまで、又は適用可能なルールが識別されずに全てのルールが枯渇するまで、前記比較機構が、まず前記言語に固有のルールセットからの各ルールを比較し、次に前記言語が属する言語族に適用可能なルールセットからの各ルールを比較するように階層構造で適用される、
ことを特徴とする請求項９に記載のフォーマットモジュール。
【請求項１１】
前記ルールセットは、文脈ルール、文字ルール及びカテゴリルールを含み、前記比較機構は、適用可能なルールが識別されるまで、又は適用可能なルールが識別されずに全てのルールが枯渇するまで、文脈ルール、文字ルール、次にカテゴリルールの順番で前記ルールを比較するように構成される、
ことを特徴とする請求項１に記載のフォーマットモジュール。
【請求項１２】
電子装置にテキストを入力するためのシステムであって、
電子文字列を入力として受け取るように構成されるとともに、訂正された電子文字列を生成して出力するように構成されたテキスト予測エンジンと、
請求項１から１１のいずれか１項に記載のフォーマットモジュールと、
を備え、前記フォーマットモジュールは、前記訂正された電子文字列を入力として受け取るとともに、サポートされている言語が識別されると、該識別された言語及び前記フォーマットモジュールが識別した句読点に基づいて、前記訂正された電子文字列内の前記句読点の両側のスペースをフォーマットすることによってフォーマット済みの文字列を生成するように構成される、
ことを特徴とするシステム。
【請求項１３】
複数の言語をサポートするとともに言語識別器と文字識別器とを有するフォーマットモジュールを用いて、電子文字列内のスペースをフォーマットする方法であって、前記文字識別器は、各ルールが前記電子文字列内の識別すべき句読点に関連する複数のルールセットであって、各ルールは、サポートされている言語、及び前記句読点を所与として、前記フォーマットモジュールによって前記電子文字列に適用すべきスペースのフォーマットを記述する１又はそれ以上の操作に関連し、前記複数のルールセットは、各言語に関連するルールセット及び各言語族に関連するルールセットを含む、複数のルールセットを含み、
前記言語識別器が、前記電子文字列が、前記フォーマットモジュールによってサポートされている言語で書かれているかどうかを識別するステップと、
前記言語識別器が、前記サポートされている言語のうち、前記電子文字列が書かれている可能性が最も高い言語を識別するステップと、
前記文字識別器が、前記電子文字列内の句読点を識別するステップと、
前記文字識別器が、サポートされている言語が識別されると、適用可能なルールが識別されるまで、又は適用可能なルールが識別されずに全てのルールが枯渇するまで、まず前記言語に固有のルールセットからの各ルールを前記電子文字列と比較し、次に前記言語が属する言語族に適用可能なルールセットからの各ルールを前記電子文字列と比較するステップと、
前記フォーマットモジュールが、前記適用可能なルールに関連する１又はそれ以上の操作を前記電子文字列に適用することにより、前記識別された言語、及び前記識別された句読点に基づいて前記句読点の両側のスペースをフォーマットするステップと
を含むことを特徴とする方法。
【請求項１４】
少なくとも１つの言語をサポートするとともに言語識別器と文字識別器とを有するフォーマットモジュールを用いて、電子文字列内のスペースをフォーマットする方法であって、前記文字識別器は、各ルールが前記電子文字列内の識別すべき句読点に関連する少なくとも１つのルールセットであって、文脈ルール、文字ルール及びカテゴリルールを含む、少なくとも１つのルールセットを含み、
前記言語識別器が、前記電子文字列が、前記フォーマットモジュールによってサポートされている言語で書かれているかどうかを識別するステップと、
前記文字識別器が、前記電子文字列内の句読点を識別するステップと、
前記文字識別器が、サポートされている言語が識別されると、適用可能なルールが識別されるまで、又は適用可能なルールが識別されずに全てのルールが枯渇するまで、文脈ルール、文字ルール、次にカテゴリルールの順番で前記ルールを前記電子文字列と比較するステップと、
前記フォーマットモジュールが、前記適用可能なルールに関連する１又はそれ以上の操作を前記電子文字列に適用することにより、前記識別された言語及び前記識別された句読点に基づいて前記句読点の両側のスペースをフォーマットするステップと、
を含むことを特徴とする方法。
【請求項１５】
請求項１３又は１４に記載の方法をプロセッサに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文字列内のスペースのフォーマットに関する。具体的には、本発明は、電子文字列内のスペースをフォーマットするためのフォーマットモジュール、システム及び方法に関する。
【背景技術】
【０００２】
句読点は、文字言語の構造及び構成、並びに音読した時に観察されるべき抑揚及び区切りを示す記号である。句読点の表現法及び使用法は、言語間及びスクリプト間で異なるが、大抵の場合、文章の意味の曖昧さを除くために不可欠である。句読点の使用及び解釈は、文脈に強く依存することができる。例えば、ピリオド「．」は、文末の句読点、省略指示子、小数点などとして使用することができる。句読点は、数式及び化学式にも存在する。
【０００３】
いくつかの区切子は対で登場し、一方のみで存在することはできない。例えば、左括弧「（」と右括弧「）」がある。しかしながら、シナリオによっては単一文字を用いて２つの区切子が表現され、例えば、単一の引用符「‘」などの場合には曖昧さが生じる。
【０００４】
スペースは、単語、文字、数字及び句読点を分離するためにしばしば使用される空白領域である。スペースのフォーマットについての慣習は言語間で異なる。例えば、英語における疑問符「？」の前後の正しいスペースのフォーマットは「単語？  」であり、単語と疑問符の間にスペースはなく、疑問符の後にスペースが入る。しかしながら、フランス語では「単語  ？  」が慣習であり、疑問符の両側にスペースが挿入される。
【０００５】
いくつかの現在市販されているテキスト入力システムは、何らかの形のスペースフォーマットを示す。例えば、ユーザがスペースを入力した後に文字［？！：；，．］のうちの１つを入力した場合、Ａｎｄｒｏｉｄのデフォルトキーボードは、テキストが入力されている言語に関わらず、先頭スペースを除いて末尾スペースを加えることにより、句読点の両側のスペースをフォーマットする。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】英国特許出願第２０１１／００１４１９号明細書
【特許文献２】国際公開第２０１２／０４２２１７号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、電子文字列内のスペースが正しくフォーマットされているかどうかをユーザが気にすることなくメッセージの内容に集中できるように、電子文字列内のスペースを自動的にフォーマットするための手段を提供することである。また、電子文字列内のスペースを、電子文字列が書かれている言語の慣習に基づいて正しくフォーマットするための手段を提供することも本発明の目的である。
【課題を解決するための手段】
【０００８】
本発明の第１の態様では、少なくとも１つの言語をサポートし、サポートされている言語で書かれた電子文字列内のスペースをフォーマットするように構成されたフォーマットモジュールを提供し、このフォーマットモジュールは、
電子文字列がサポートされている言語で書かれているかどうかを識別するように構成された言語識別器と、
電子文字列内の特定の文字又は特定の文字列を識別するように構成された文字識別器と、
を備え、フォーマットモジュールは、サポートされている言語が識別されると、この識別された言語、及び識別された特定の文字又は文字列に基づいて電子文字列内のスペースをフォーマットするように構成される。
【０００９】
電子文字列内のスペースをフォーマットすることは、電子文字列においてスペースを挿入及び／又は削除することを含むことが好ましい。
【００１０】
好ましい実施形態では、文字識別器が、
各ルールが電子文字列内の識別すべき特定の文字又は文字列に関連する少なくとも１つのルールセットと、
ルールが適用可能であるかどうかを識別するために、少なくとも１つのルールセットのうちの１つのルールセットの各ルールを電子文字列と比較するように構成された比較機構と、
を含み、各ルールは、サポートされている言語、及び特定の文字又は文字列を所与として、フォーマットモジュールによって電子文字列に適用すべきスペースのフォーマットを記述する１又はそれ以上の操作に関連し、
フォーマットモジュールは、適用可能なルールに関連する１又はそれ以上の操作を電子文字列に適用することにより、電子文字列内のスペースをフォーマットするように構成される。
【００１１】
比較機構は、サポートされている言語が識別された時にのみ、少なくとも１つのルールセットのうちの１つのルールセットの各ルールを電子文字列と比較するように構成されることが好ましい。
【００１２】
フォーマットモジュールは複数の言語をサポートし、言語識別器は、サポートされている言語のうち、電子文字列が書かれている可能性が最も高い言語をさらに識別するように構成されることが好ましい。
【００１３】
文字識別器は、句読点を識別するように構成することができ、フォーマットモジュールは、句読点に基づいて句読点の両側のスペースをフォーマットするように構成することができる。
【００１４】
文字識別器は、電子文字列における特定の文脈を識別するように構成することができ、フォーマットモジュールは、文脈に基づいて電子文字列内のスペースをフォーマットするように構成することができる。
【００１５】
文字識別器は、電子文字列における句読点を識別するように構成することができ、フォーマットモジュールは、句読点のカテゴリに基づいて、句読点の両側のスペースをフォーマットするように構成することができる。
【００１６】
１又はそれ以上の操作は一連の操作を含むことができ、比較機構は、あるルールが適用可能であると判明した時に、電子文字列に一連の操作を適用するように構成される。
【００１７】
フォーマットモジュールが複数の言語に対応するように構成されている場合、文字識別器は、１つのルールセットが各サポートされている言語のためのものである複数のルールセットを含むことが好ましく、比較機構は、最も可能性の高い言語に対応するルールセットの各ルールを電子文字列と比較するように構成される。
【００１８】
フォーマットモジュールは、各言語に関連するルールセット、各言語族に関連するルールセット及び世界中の全ての言語に関連するルールセットを含むことができ、これらのルールは、サポートされている言語が識別されると、適用可能なルールが識別されるまで、又は適用可能なルールが識別されずに全てのルールが枯渇するまで、比較機構が、まず言語に固有のルールセットからの各ルールを比較し、次に言語が属する言語族に適用可能なルールセットからの各ルールを比較し、次に全ての言語に適用可能なルールセットの各ルールを比較するように階層構造で適用される。
【００１９】
比較機構は、ルールを特定の所定の順序で比較するように構成されることが好ましい。ルールセットは、文脈ルール、文字ルール及びカテゴリルールを含むことが好ましく、比較機構は、適用可能なルールが識別されるまで、又は適用可能なルールが識別されずに全てのルールが枯渇するまで、文脈ルール、文字ルール、次にカテゴリルールの順番でルールを比較するように構成されることが好ましい。
【００２０】
本発明の第２の態様では、少なくとも１つの言語に対応し、電子文字列内のスペースをフォーマットするように構成されたフォーマットモジュールを提供し、このフォーマットモジュールは、
電子文字列内の句読点を識別するように構成された句読点識別器を備え、
フォーマットモジュールは、サポートされている言語が識別されると、電子文字列が書かれている言語、識別された句読点、及び句読点の文脈に基づいて電子文字列内のスペースをフォーマットするように構成される。
【００２１】
本発明の第３の態様では、電子装置にテキストを入力するためのシステムを提供し、このシステムは、
電子文字列を入力として受け取るように構成されるとともに、訂正された電子文字列を生成して出力するように構成されたテキスト予測エンジンと、
上述したフォーマットモジュールと、
を備え、フォーマットモジュールは、訂正された電子文字列を入力として受け取るとともに、サポートされている言語が識別されると、訂正された電子文字列内のスペースをフォーマットすることによってフォーマット済みの文字列を生成するように構成される。
【００２２】
本発明の第４の態様では、電子装置にテキストを入力するためのシステムを提供し、このシステムは、
電子文字列を入力として受け取るように構成されたテキスト予測エンジンを備え、このテキスト予測エンジンは、
電子文字列が書かれている可能性が最も高い言語を識別し、該識別された言語に基づいて電子文字列を訂正するように構成された言語識別器を含み、
テキスト予測エンジンは、訂正された電子文字列を生成して出力するとともに、識別された言語を出力するように構成され、システムは、
少なくとも１つの言語をサポートし、識別された言語及び訂正された電子文字列を受け取るように構成されるとともに、識別された言語がサポートされている時に電子文字列内のスペースをフォーマットするように構成されたフォーマットモジュールをさらに備え、このフォーマットモジュールは、
電子文字列内の特定の文字又は特定の文字列を識別するように構成された文字識別器を含み、
フォーマットモジュールは、識別された言語及び識別された特定の文字又は特定の文字列に基づいて、電子文字列内のスペースをフォーマットするように構成される。
【００２３】
本発明の第５の態様では、少なくとも１つの言語をサポートするとともに文字識別器を有するフォーマットモジュールを用いて、電子文字列内のスペースをフォーマットする方法を提供し、この方法は、
電子文字列が、フォーマットモジュールによってサポートされている言語で書かれているかどうかを識別するステップと、
文字識別器を用いて、電子文字列内の特定の文字又は特定の文字列を識別するステップと、
サポートされている言語が識別されると、フォーマットモジュールを用いて、識別された言語及び識別された特定の文字又は文字列に基づいて電子文字列内のスペースをフォーマットするステップと、
を含む。
【００２４】
フォーマットモジュールは、電子文字列がフォーマットモジュールによってサポートされている言語で書かれているかどうかを識別するための言語識別器を備えることができる。フォーマットモジュールは複数の言語をサポートし、この方法は、言語識別器を用いて、電子文字列の最も可能性の高い言語を識別するステップをさらに含むことが好ましい。
【００２５】
電子文字列の最も可能性の高い言語はテキスト予測エンジンによって識別することができ、この方法は、最も可能性の高い言語をフォーマットモジュールに送信し、このフォーマットモジュールが、この最も可能性の高い言語がフォーマットモジュールによってサポートされているかどうかを識別するステップをさらに含む。
【００２６】
言語識別器は、各ルールが電子文字列内のスペースのフォーマットを定める少なくとも１つのルールセット及び比較機構を含むことが好ましく、この方法は、
文字列にルールが適用可能であるかどうかを識別するために、比較機構を用いて、少なくとも１つのルールセットのうちの１つのルールセットの各ルールを電子文字列と比較するステップと、
比較機構を用いて、文字列に特定のルールが適用可能であることを識別するステップと、
電子文字列に適用可能なルールを適用して電子文字列内のスペースをフォーマットするステップと、
をさらに含む。
【００２７】
比較機構は、サポートされている言語が識別された時にのみ、少なくとも１つのルールセットのうちの１つのルールセットの各ルールを電子文字列と比較することが好ましい。
【００２８】
各ルールは、識別すべき特定の文字又は文字列に関連することができ、各ルールは、サポートされている言語及び特定の文字又は文字列を所与として、フォーマットモジュールによって電子文字列に適用すべきスペースのフォーマットを記述する１又はそれ以上の操作に関連する。この方法では、適用可能なルールを適用するステップが、この適用可能なルールに関連する１又はそれ以上の操作を電子文字列に適用するステップを含むことが好ましい。
【００２９】
特定の文字を識別するステップは、句読点を識別するステップを含むことができ、電子文字列内のスペースをフォーマットするステップは、句読点の形式に基づいて句読点の両側のスペースをフォーマットするステップを含むことができる。
【００３０】
特定の文字列を識別するステップは、特定の文脈を識別するステップを含むことができ、電子文字列内のスペースをフォーマットするステップは、文脈に基づいてスペースをフォーマットするステップを含むことができる。
【００３１】
特定の文字を識別するステップは、句読点を識別するステップを含むことができ、電子文字列内のスペースをフォーマットするステップは、句読点のカテゴリに基づいて句読点の両側のスペースをフォーマットするステップを含むことができる。
【００３２】
各ルールが１又はそれ以上の操作に関連する場合、１又はそれ以上の操作は一連の操作を含むことができ、この一連の操作は、電子文字列に順に適用される。
【００３３】
フォーマットモジュールが複数の言語をサポートしている場合、言語識別器は、１つのルールセットが各サポートされている言語のためのものである複数のルールセットを含むことができ、各ルールを電子文字列と比較するステップは、最も可能性の高い言語に対応するルールセットの各ルールを比較するステップを含む。
【００３４】
フォーマットモジュールは、各サポートされている言語に関連するルールセット、各言語族に関連するルールセット及び世界中の全ての言語に関連するルールセットを含むことができ、この方法は、言語が識別されると、適用可能なルールが識別されるまで、又は適用可能なルールが識別されずに全てのルールが枯渇するまで、比較機構が、まず言語に固有のルールセットからの各ルールを比較し、次に言語が属する言語族に適用可能なルールセットからの各ルールを比較し、次に全ての言語に適用可能なルールセットの各ルールを比較するように階層構造でルールを適用するステップを含む。
【００３５】
比較機構は、ルールを特定の所定の順序で比較することが好ましい。
【００３６】
ルールセットは、文脈ルール、文字ルール及びカテゴリルールを含むことができ、この方法は、適用可能なルールが識別されるまで、又は適用可能なルールが識別されずに全てのルールが枯渇するまで、文脈ルール、文字ルール、次にカテゴリルールの順番でルールを比較するステップを含むことが好ましい。
【００３７】
本発明の第６の態様では、上述した方法をプロセッサに実行させるためのコンピュータプログラム手段を記憶したコンピュータ可読媒体を含むコンピュータプログラム製品を提供する。
【００３８】
以下の添付図面を参照しながら本発明を詳細に説明する。
【図面の簡単な説明】
【００３９】
【図１】本発明による、予測エンジン及びフォーマットモジュールを備えたシステムの概略図である。
【図２】本発明によるフォーマットモジュールの概略図である。
【図３】図２のフォーマットモジュールをさらに詳細に示す概略図である。
【図４】本発明による、所与の言語のためのルールセット内の特定のタイプのルールの構造において、比較機構がルールを比較する順序を示す図である。
【図５】本発明による、英語の場合のルールの構築方法、及び比較機構がルールを比較する順序を示す図である。
【発明を実施するための形態】
【００４０】
本発明は、特定の文章が書かれる言語の慣習に基づいて文章のスペースをフォーマットするように構成されたフォーマットモジュールを提供する。このフォーマットモジュールは、電子文字列内のスペースを挿入及び／又は削除することによってスペースをフォーマットする。
【００４１】
必須ではないが、フォーマットモジュール１０は、図１に示すようなテキスト予測エンジン３０を含む電子装置１００などのシステムの一部であることが好ましい。この電子装置は、ＰＤＡ、タブレット、ラップトップコンピュータ又は携帯電話機などのモバイル装置であることが好ましい。フォーマットモジュールは、ユーザがテキストメッセージとして入力した電子文字列内のスペースをフォーマットするために使用することができる。ユーザは、仮想キーボードなどの入力機構を介してテキストを入力することにより、電子装置１００のテキスト入力システム５０と相互作用する。予測テキスト入力システムの特定の事例では、テキスト予測エンジン３０を、タイプミス又はスペルミスした単語を訂正するように構成するとともに、ユーザが次に何を書こうとしているかを予測するように構成することができ、従って装置に対するテキスト入力の性能及び品質を向上させることができる。このようなテキスト予測エンジン３０の例は英国特許出願第２０１１／００１４１９号に記載されており、この特許出願はその全体が引用により本明細書に組み入れられる。
【００４２】
図１から分かるように、装置１００に文字列が入力される。この文字列はテキスト予測エンジン３０に渡され、このテキスト予測エンジン３０が、この文字列を修正してスペルミスした単語を訂正し、及び／又は単語を予測することができる。テキスト予測エンジン３０によってこのように修正された文字列はフォーマットモジュール１０に渡される。フォーマットモジュール１０は、図１及び図２に示すように、スペースをフォーマットしたバージョンの修正済み文字列を出力するように構成される。フォーマットモジュールは、文字列内のスペースを挿入及び／又は削除することによって文字列のスペースをフォーマットする。フォーマットモジュール１０は、文字列が書かれている言語がフォーマットモジュール１０によってサポートされている場合に、この文字列のスペースをフォーマットする。
【００４３】
図２に、本発明によるフォーマットモジュール１０を示す。フォーマットモジュール１０は、少なくとも１つの言語をサポートするように構成される。フォーマットモジュール１０は、電子文字列がフォーマットモジュール１０によってサポートされている言語で書かれているかどうかを識別するように構成された言語識別器２０を含む。言語識別器２０は、電子文字列がフォーマットモジュール１０によってサポートされている言語で書かれているかどうかを識別するために、当業で周知の一般的な特性を有する１又はそれ以上の統計的言語モデルを利用する。
【００４４】
好ましい実施形態では、フォーマットモジュール１０が複数の言語をサポートする。従って、好ましい実施形態では、言語識別器２０が、各々がフォーマットモジュール１０によってサポートされている異なる言語に対応する複数の統計的言語モデルを含み、言語識別器２０は、サポートされている可能性が最も高い電子文字列の言語を識別するようにさらに構成される。いかなる段階においても、フォーマットモジュール１０は、各々が言語モデルに関連する「活格言語」のリストを維持するように構成される。
【００４５】
最も可能性の高い現在の言語を識別するための１つの処理は、ある文脈を所与として言語の確率を最大化し、すなわち以下の（ベイズのルールを用いた）式に従ってＰ（言語｜文脈）を最大化することである。
0006273285.tif 000002
【００４６】
Ｐ（言語｜文脈）の絶対値が重要でない時には、言語のランク付けのみが重要であるため、言語に依存しないＰ（文脈）の項は式から外すことができる。また、言語全体にわたる一様な事前確率であるＰ（言語）＝ｋも、言語に対して一定であるので外すことができる。これらの仮定を行うと、言語識別器が推定に必要とする数量は、Ｐ（文脈｜言語）のみである。通常、文脈は一連の単語にすぎず、従って言語識別器は、Ｐ（文脈｜言語）を推定するために、条件付き確率推定の「チェーン」を用いて以下のような「マルコフ」の条件付き独立仮定を行うことが好ましい。
0006273285.tif 000003
【００４７】
従って、各言語は、局所的文脈を所与として単語の確率を推定することができる（国際公開第２０１２／０４２２１７号に記載されている当業で周知の）平滑化したｎグラム言語モデルによって個別にモデル化される。
【００４８】
構文情報及び／又は意味情報を含むような異なるタイプの言語モデル使用する他のＰ（文脈｜言語）推定方法も存在する。別の可能性は、隠れマルコフモデル（ＨＭＭ）を用いて観察されない言語「状態」の進行を推定することであろう。さらなる可能性は、例えばサポートベクターマシン（ＳＶＭ）又はニューラルネットワークなどの監視下識別分類モデルを用いて言語を予測することであろう。
【００４９】
言語識別器２０は、入力文字列を一連の用語に変換するために、当業で周知のトークナイザを使用する。
【００５０】
図１に示すようなシステムでは、言語識別器がフォーマットモジュール１０内に提供されるのではなく、予測エンジン３０が言語識別器を含むことができる。上述したように、言語識別器は、トークナイザ及び複数の言語モデルを含み、これらは、全体が引用により本明細書に組み入れられる国際公開第２０１２／０４２２１７号に記載される予測エンジンなどの予測エンジン内に既に存在している可能性がある。
【００５１】
言語識別器２０は、文脈を所与として最も可能性の高い言語を推定するために、サポートされている各言語での文脈の可能性を順に計算するように構成され、最も可能性の高い言語を選択する。文脈（一連の用語）の可能性は、先行する用語を所与とした各用語の確率の積であり、国際公開第２０１２／０４２２１７号のテキスト予測エンジンに関連して記載されているような平滑化したｎグラムモデルによって計算される。
【００５２】
ユーザがタイピング中に言語を切り換えた場合、句読点の前後のスペースのフォーマットは、例えば「Ｂｏｎｊｏｕｒ  ｍｏｎ  ａｍｉ  ！  Ｈｏｗ  ａｒｅ  ｙｏｕ  ｄｏｉｎｇ？  Ｔａｌｋ  ｔｏ  ｙｏｕ  ｓｏｏｎ．」のように、書かれた言語に応じて文章間で異なることができる。
【００５３】
言語の変化を識別できるフォーマットモジュール１０を提供するために、例えばユーザが文章間で言語を切り換えた場合、言語識別器２０は、最も可能性の高い言語を推定するために使用される文脈の量を制限するように構成されることが好ましい。これにより、最も可能性の高い言語を識別するためのモデル内に近時性の基本形がもたらされ、すなわち文書内でより最近に使用された言語は、かなり前に使用された言語よりも直感的に可能性が高い。例えば、１つの実施形態では、言語識別器２０が、文脈の６つの最新の単語を使用することができる。しかしながら、この文脈の最新の単語数は、ユーザが言語を切り換える頻度、及びいずれかの所与の言語におけるこれらの単語の入力ストリームの長さに応じて選択することができる。
【００５４】
言語識別器２０は、電子文字列が書かれている言語がフォーマットモジュール１０によってサポートされているかどうかを識別するように構成されることが好ましい。非限定的な例として、言語識別器２０は、各々がサポートされている言語に対応する言語識別器の言語モデルの１つに文字列の文脈用語が全く存在しない場合、この電子文字列がサポートされていない言語で書かれていると識別することができる。従って、言語モデルの１つに文脈用語のうちの１つ又はそれ以上が存在すると判定された場合、言語識別器は、この電子文字列がサポートされている言語で書かれていると判断する。この例に対する変形は、言語識別器２０が、電子文字列がサポートされている言語で書かれていると判断するために、言語モデル内に特定の割合又は比率の文脈単語が存在するかどうか、例えば文脈用語の１／４、２／３、又はその他のいずれかの割合又は比率が言語モデルの１つに存在するかどうかを識別するように構成される例である。電子文字列の言語がサポートされているかどうかを判断するには、他のあらゆる好適な方法を使用することができる。
【００５５】
図３に示すように、文字識別器４０は、各ルールが識別すべき文字又は特定の文字列に関連するルールセット７０と、ルールが適用可能であるかどうかを判断するために、ルールセット７０の各ルールを電子文字列と比較するように構成された比較機構６０とを含むことが好ましい。ルールが適用可能である場合、例えばルールが特定の句読点に関連するものであってこのルールを適用できると判明した場合、この句読点が電子文字列内に存在するという理由で文字又は特定の文字列が識別される。電子文字列は、例えば１回につき１つの文字のように順番にフォーマットモジュール１０に渡されて、比較機構６０が、受け取った最後の文字又は最後の文字列と各ルールを比較することが好ましい。
【００５６】
従って、文字識別器４０は、これらのルールを使用して、句読点などの特定の文字又は文字列が電子文字列内にいつ発生したかを識別する。さらに、これらのルールは、そのルールに関連する１又はそれ以上の操作により、電子文字列に適用すべきスペースフォーマット、すなわちスペースを挿入及び／又は削除すべきかどうかを定める。従って、あるルールが特定の文字又は文字列に適用可能であると判明すると、このルールに関連する操作が電子文字列に適用されて電子文字列内のスペースがフォーマットされ、例えば特定の文字が句読点である場合、この操作は、以下で詳細に説明するように句読点の両側のスペースのフォーマットを定めることができる。
【００５７】
ルールセット７０は、フォーマットモジュール１０によってサポートされている各言語のための複数のルールセットを含むことが好ましい。比較機構６０は、最もサポートされている可能性が高い言語として言語識別器２によって識別された言語に関するルールセットを比較するように構成される。言語識別器２０が単一の言語をサポートする実施形態では、比較機構６０が、その言語に対応する単一のルールセット７０を含み、電子文字列の言語がサポートされている言語として識別された場合には、ルールセット７０をこの電子文字列と比較するように構成される。文字列の言語がサポートされている言語として識別されなかった場合、比較機構６０は適用可能なルールを探索しない。
【００５８】
フォーマットモジュール１０は、システム設計者が新たなルール及び関連操作をフォーマットモジュールに手動で追加できるように構成される。これらのルール及び関連操作は、フォーマットモジュールの他の構成要素に影響を与えることなく更新することができる。
【００５９】
ルールは、Ｒｕｌｅ：：（Ｃ、ｓ、Ａ、Ｓ）のように４タプルによって定められることが好ましい。
【００６０】
：：は、「のタイプを有する」と読むことができる演算子である。
【００６１】
Ｃは、タイプＦ：：［文字］→｛真、偽｝の関数を実行する正規表現の形を取り、例えば、入力文字列を受け入れて、ルールを適用可能であるかどうか、従ってそのルールに関連する一連の操作を適用すべきかどうかを示すブールを戻す条件文である。比較機構６０は、タイプＦ：：［文字］→｛真、偽｝の関数を実行することにより、電子文字列内の特定の文字又は文字列を識別する。従って、このフィールドは必須であり、決して空にはならない。
【００６２】
ｓは、場合によってシステムが以前のルールの適用を「思い出す」ことを可能にする状態を表す。例えば、システムが状態を維持する必要がない時には、この状態を「Ｎｏｎｅ」にすることができ、或いは、例えば左括弧「（」と右括弧「）」のように、区切子が対で登場し、一方のみで存在することができない場合、この状態を「Ｏｐｅｎ」又は「Ｃｌｏｓｅ」にすることができる。
【００６３】
Ａは、一連の操作、すなわちＡ：：［Ａｃｔｉｏｎ］である。特別な事例では、［  ］によって表される空のシーケンスとすることができる。操作は、特定の文字列の文脈を所与とした時に（例えば、数式の文脈において句読点が発見された場合に）フォーマットモジュール１０が例えば句読点に適用すべきスペースフォーマットを記述できるようにする手段である。比較機構６０によって電子文字列の句読点がルールの１つに一致すると判断された場合、このルールによって保持される各操作が好ましくは順に句読点に適用されて、句読点の両側のスペースの正しいフォーマットが確実になる。例えば、句読点がピリオドであれば、最も可能性の高い言語が英語である場合、この操作は、ピリオドの前のスペースを（このようなスペースが存在する場合）削除して、ピリオドの後ろにスペースを（このようなスペースが無い場合）挿入するものとすることができる。
【００６４】
フォーマットモジュールは、タイプＡ及びタイプＢという２つの操作タイプを含むことができる。
【００６５】
タイプＡの操作は、以下のように、文字列に作用してフォーマット済みの文字列を戻し、フォーマット以外によって文字列を変化させない関数である。
操作Ａ：：［文字］→［文字］
【００６６】
例えば、「単語．単語」の場合→「単語．  単語」となる。
【００６７】
タイプＢの操作は、以下のように、ある文字列を所与として、この文字列を変化させることなくシステムの状態を表すコードを戻す関数である。
操作Ｂ：：［文字］→新たな状態
【００６８】
この新たな状態は、例えば「単語．」→「システムの遷移状態」のように、システムが、例えば次の文字を大文字にすべきか否かを定めるための遷移状態に入ることができる考えられる状態のいずれかである。
【００６９】
Ｓは、「二次ルール」として知られている再帰的な一連のルール、すなわちＳ：：［Ｒｕｌｅ］である。Ｒｕｌｅがいずれの二次ルールも記述していない場合、Ｓはφによって表される。二次ルールは、親ルールの操作が適用される前にチェックされ、この二次ルールによって記述されている因子に応じ、条件文Ｃのための別の挙動を可能にする。二次ルールのための入力は、親ルールのための入力と同じ電子文字列であるが、二次ルールのための条件文Ｃの焦点は、親ルールを誘発した文字に先行する文字列内の文字である。
【００７０】
例えば、電子文字列が１回につき１つの文字のように順番にフォーマットモジュールに渡されるような好ましい実施形態では、比較機構が、受け取った最後の文字と各親ルールとを比較する。親ルールが適用可能であり、親ルールが少なくとも１つの二次ルールを含むと判明した場合、（条件文Ｃは、親ルールでは最後の文字に焦点を当て、二次ルールでは最後から二番目の文字に焦点を当てるので）比較機構は、少なくとも１つの二次ルールを文字列の最後から二番目の文字と比較する。
【００７１】
以下、二次ルールの適用についてさらに詳細に説明する。二次ルールは必須ではないので、一般的なＲｕｌｅの形態ではこのフィールドを省くことができる。
【００７２】
フォーマットモジュール１０を設計する際には、設計者がルールに関連する一連の操作を所定の操作候補の組から選択することができる。この一連の操作は、あらゆる順序及びあらゆる反復回数のあらゆる数の操作候補を含むことができる。上述したように、フォーマットモジュール１０は、フォーマットモジュール１０のシステム設計者が、関連する操作を手動で拡張して言語又はテキスト入力システムの要件に適応させることを可能にする。
【００７３】
好ましい実施形態では、フォーマットモジュールが、文脈ルール、カテゴリルール及び文字ルールという、上述したルールの３つの特殊化を含む。この特殊化されたルールは、自然言語における句読点の使用法を得るための強力なツールを提供する。
【００７４】
文脈ルールは、文脈ルール：：（Ｃ、Ｎｏｎｅ、Ａ、φ）という形のルールである。Ｃに存在する正規表現は文脈のみに適用され、この正規表現は、例えば「ｗｗｗ」のように、電子文字列の文脈における特定の文字列に対応する。状態が「Ｎｏｎｅ」であるので、文脈ルールが状態を有すること又は維持することは決してない。文脈ルールは「二次ルール」を有していない。
【００７５】
文脈ルールの例としては、例えば「ｗｗｗ．ｓｉｔｅ．ｃｏｍ」のように文脈内に「ｗｗｗ」が存在する時に、区切子「．」のいずれの側にも自動的にスペースを挿入すべきではない旨を明記するＵＲＬのためのルールがある。
【００７６】
従って、文脈ルールの例は、文脈ルール：：（′ｗｗｗ′、Ｎｏｎｅ、［ＤｅｌｅｔｅＳｐａｃｅＢｅｆｏｒｅ，ＤｅｌｅｔｅＳｐａｃｅＡｆｔｅｒ］、φ）となる。
【００７７】
カテゴリルールは、カテゴリルール：：（Ｃ、Ｎｏｎｅ、Ａ、Ｓ）の形を取ることが好ましい。
このルールは、電子文字列内の文字のユニコードカテゴリをルールによって定められた一連のユニコードカテゴリ、例えば句読点のユニコードカテゴリと照合する。
【００７８】
Ｃは、句読点のユニコードカテゴリを照合することに限定された正規表現である。従って、この種のルールは単一文字にのみ適用される。Ｓは、例えば、文脈ルール、文字ルール又はカテゴリルールなどの一連の二次ルールである。或いは、二次ルールが定義されていない場合には、このフィールドを空（φ）にすることができる。
【００７９】
カテゴリルールの例は以下の通りである。
カテゴリルール：：（′Ｐ′、Ｎｏｎｅ、［ＤｅｌｅｔｅＳｐａｃｅＢｅｆｏｒｅ，ＩｎｓｅｒｔＳｐａｃｅＡｆｔｅｒ］、φ）、例えば「！」及び「？」は同じスペースを用いてフォーマットすべきであるため、Ｐは、「！」及び「？」を含むカテゴリなどの句読点のカテゴリに対応する。
【００８０】
当業で周知のように、ユニコード規格内の文字は、これらの文字に関連する様々な範囲の特性を有する。これらの特性の１つは、文字が属するカテゴリである。カテゴリルールの条件文Ｃは、ユニコードカテゴリに関連することができる。文字の一般的カテゴリ値は、その主な使用に基づいて、その文字の基本的分類として機能する。この特性は、広く使用されているＡＳＣＩＩ文字の下位区分を、文字、数字、句読点及び記号、すなわち、より大きくより包括的なユニコード規格の範囲に適した状態を保つように構成されてさらに細分割される必要がある有用な分類に拡張する。
【００８１】
各ユニコードコードポイントには、基準となる一般的カテゴリ値が割り当てられる。一般的カテゴリの各値には２文字の属性値エイリアスが与えられ、第１の文字が、メジャークラスに関する情報を与え、第２の文字が、そのメジャークラスのサブクラスを指定する。各クラスにおいて、「他（ｏｔｈｅｒ）」というサブクラスは、メジャークラスの残りの文字を収集するにすぎない。例えば、「Ｎｏ」（数字、他）というサブクラスは、１０進数又は文字ではないＮｕｍｂｅｒクラスの全ての文字を含む。これらの文字は、同じメジャークラス内におけるこれらのメンバーシップ以外にはほとんど共通点を有していなくてもよい。
【００８２】
文字ルールは、文字ルール：：（Ｃ、ｓ、Ａ、Ｓ）の形を取ることが好ましい。このルールは、ルールによって定められた文字を電子文字列内の文字と照合する。従って、この種のルールでは、Ｃは単一文字しか含むことができない。Ｃは、電子文字列の文字と照合される単一文字から成る正規表現である。Ｃは、特定の関心文字のユニコードを定めることができ、このユニコードが電子文字列のユニコードと照合される。
【００８３】
ｓは、Ｎｏｎｅ状態：｛Ｏｐｅｎ、Ｃｌｏｓｅ、Ｎｏｎｅ｝に加えて２つの新たな状態を定めることが好ましい。従って、ｓは、Ｏｐｅｎ状態又はＣｌｏｓｅ状態にあると考えられる曖昧な対のための操作を決定し、曖昧でない文字の状態は含まない。この定義により、１つの句読点に対して異なる状態を表す２つの異なる一連の操作が必要な場合、システムは、例えば英語の場合には以下の文章を正しくフォーマットするように２つのルールを定める。
Ａｎｄ  ｈｅ  ｓａｉｄ  ″Ｇｏｏｄｂｙｅ″  ａｎｄ  ｌｅｆｔ．  Ｉｔ  ｗａｓ  ｓｕｒｐｒｉｓｉｎｇ．（そして彼は「さよなら」と言って去った。驚きであった。）
【００８４】
この文章におけるスペースのフォーマットを定める文字ルールは以下の通りである。
ルール１→文字ルール：：（′″′、Ｏｐｅｎ、［ＩｎｓｅｒｔＳｐａｃｅＢｅｆｏｒｅ，ＤｅｌｅｔｅＳｐａｃｅＡｆｔｅｒ］、φ）
ルール２→文字ルール：：（′″′、Ｃｌｏｓｅ、［ＤｅｌｅｔｅＳｐａｃｅＢｅｆｏｒｅ，ＩｎｓｅｒｔＳｐａｃｅＡｆｔｅｒ］、φ）
ルール３→文字ルール：：（′．′、Ｎｏｎｅ、［ＤｅｌｅｔｅＳｐａｃｅＢｅｆｏｒｅ，ＩｎｓｅｒｔＳｐａｃｅＡｆｔｅｒ］、φ）
【００８５】
Ｓは、文脈、カテゴリ又は文字という３つのルールタイプのいずれかを含むことができる一連の二次ルールである。また、Ｓはさらなるルールを定めることもできず、この場合、このフィールドはφで示される。
【００８６】
次に、ルールの反復を説明するための例、特に二次ルールがどのように適用されるかを示す。フランス語では、例えば、
0006273285.tif 000004
のように、感嘆符「！」又は疑問符「？」の両側にスペースが配置される。しかしながら、例えば、
0006273285.tif 000005
のように、現在の感嘆符に別の感嘆符が先行する時は、このルールに例外が生じる。この状況にシステムが正しく対処するために、以下のように二次ルールを定めることができる。
ルール１→文字ルール：：（′！′、Ｎｏｎｅ、［ＩｎｓｅｒｔＳｐａｃｅＢｅｆｏｒｅ，ＩｎｓｅｒｔＳｐａｃｅＡｆｔｅｒ］、［ｒｕｌｅ２］）
ルール１→カテゴリルール：：（′Ｐ′、Ｎｏｎｅ、［ＤｅｌｅｔｅＳｐａｃｅＢｅｆｏｒｅ，ＩｎｓｅｒｔＳｐａｃｅＡｆｔｅｒ］、φ）
【００８７】
この例では、Ｐは、現在の関心文字の前に生じる、ユニコード規格に従うカテゴリ句読点に関連し、例えば、フォーマットモジュール１０が「？！」というシーケンス内の「！」を受け取った場合、Ｐは「？」を含むカテゴリである。上記の例では、ユーザが最初に「！」とタイプした時に、ルール１が発動される。ルール１の発動ルーチン内では、全ての二次ルールがチェックされるが一致は生じず、「！」に先行する句読点が存在しないので、フォーマットモジュール１０によってルール１のデフォルト操作が適用される。その後に感嘆符が挿入されると、ユニコード規格によって「！」がカテゴリ句読点内に存在するので、二次ルールを適合させるためのステップによってルール２が発動され、ルール２に定められた操作が適用される。
【００８８】
仮にルール２が存在しなかったとすると、このフォーマットは、
0006273285.tif 000006
になる。従って、誤ったテキストフォーマットがもたらされる。
【００８９】
所与の言語では、一般に電子文字列内のスペースを確実に正しくフォーマットするように定められた複数のルールを有する必要がある。フォーマットモジュール１０が所与の言語のスペースのフォーマットパターンを簡潔に指定できるように、異なるルールタイプ、すなわち文脈、カテゴリ及び文字が優先方式を用いて適用されることが好ましい。
【００９０】
以下、ルールタイプの適用に優先順位付けすることが好ましい理由を実証する２、３の例を示す。
【００９１】
ＵＲＬという特定の事例では、文脈内に「ｗｗｗ」が存在する時には自動的にスペースを挿入すべきでない旨を定める文脈ルールと、ピリオド「．」の句読点が導入された時にはその後にスペースを挿入すべきである旨を示す文字ルールという２つのルールが存在すると仮定する。この状況では、最初に文字ルールが適用され、ユーザが「ｗｗｗ．ｓｉｔｅ．ｃｏｍ」と入力した場合、ピリオドのための文字ルールに優先権があるので、区切子からの結果は「ｗｗｗ．  ｓｉｔｅ．  ｃｏｍ」になる。このようなＵＲＬを正しくフォーマットするには、文脈ルールの方が文字ルールよりも高い優先権を有するべきであり、従って最初に適用されるようにすべきである。
【００９２】
別の例では、フォーマットモジュールが、数学カテゴリ内の全ての文字は数学文字の両側にスペースを有する旨を示す第１のカテゴリルールと、「−」（マイナス）という文字はハイフンとして使用される可能性が高いので、この文字はその両側にスペースを有さない旨を定める第２の文字ルールという２つのルールを含む。仮にユーザが「−」を挿入し、カテゴリルールの方が文字ルールよりも高く優先順位付けされている場合には、文字ルールが発動されることは決してない。従って、このシーケンスを正しくフォーマットするには、カテゴリルールよりも文字ルールの方を高く優先順位付けすべきである。
【００９３】
優先順位付けされたルールが適用されると、比較機構６０は、適用可能なルールの探索を中止する。しかしながら、上述したように、二次ルールセットの一部として異なるルールタイプを適用することもできる。
【００９４】
従って、好ましい実施形態では、図４に示すように、比較機構が、以下の優先順位決定構造に従って個々の言語のルールを比較するように構成され、フォーマットモジュールも、以下の優先順位決定構造に従って個々の言語のルールを適用するように構成される。
文脈ルール→文字ルール→カテゴリルール
【００９５】
比較機構６０は、この優先順位決定構造を実装するために、ルールタイプを識別するように構成されることが好ましい。比較機構６０は、あらゆる好適な手段によってルールタイプを識別するように構成することができる。例えば、各ルールにそのルールタイプをラベル付けすることができ、この場合、比較機構６０は、これらのルールを電子文字列と比較する前に、第１のルールタイプの全てのルールを識別してこれらのうちの１つが適用可能であるかを確認するように構成される。所与のタイプのルールをコンテナ内に配置し、比較機構６０が所与のコンテナ内の全てのルールを比較してから次のコンテナに移るようにする。別の実施形態では、比較機構６０が、異なるルールタイプを識別するためのコードを含むことができる。
【００９６】
或いは、優先順位決定構造に従ってルール自体に順序付けし、例えば優先順位決定構造に従ってルール自体をリストすることができる。
【００９７】
上記の説明から明らかなように、比較機構６０は、ルールが適用可能であると判明した場合には優先順位決定構造を続行せず、例えばｗｗｗ．ｓｉｔｅ．ｃｏｍにカテゴリルールが適用可能であると判明した場合、比較機構６０は適用可能なルールの探索を中止しているので、文字ルールの比較又は適用は行われない。そうでなければ、文脈ルールの後にこの文字ルールが適用された場合、上述したような「ｗｗｗ．  Ｓｉｔｅ．  Ｃｏｍ」という誤ったフォーマットが生じてしまう。しかしながら、発動された文字ルールが以下の二次カテゴリルールを含む場合、適用されるルールは、例えばフォーマットモジュールが句読点の反復である「！！」に対処することなどの他のルールタイプの二次ルールを含むことができる。
ルール１→文字ルール：：（′！′、Ｎｏｎｅ、［ＩｎｓｅｒｔＳｐａｃｅＢｅｆｏｒｅ，ＩｎｓｅｒｔＳｐａｃｅＡｆｔｅｒ］、［Ｒｕｌｅ２］）
ルール２→カテゴリルール：：（′Ｐ＊′、Ｎｏｎｅ、［ＤｅｌｅｔｅＳｐａｃｅＢｅｆｏｒｅ，ＩｎｓｅｒｔＳｐａｃｅＡｆｔｅｒ］、φ）
【００９８】
ルールは、英語などの特定の言語、及びラテン語などのその言語が属する言語族に適用することも、或いは世界中の全ての言語に適用することもできる。句読点には、いくつかの言語に共通する複数の慣習が存在する。例えば、全ての言語においてＵＲＬは同じ形で書かれており、従ってこれらの言語は全て、これらの要素を正しくフォーマットするのに必要なルールを有していなければならない。
【００９９】
フォーマットモジュール１０が複数の言語をサポートする好ましい実施形態では、言語識別器２０が、識別した言語を比較機構６０に渡すように構成され、比較機構６０が、このように識別された特定の言語を所与として、ルールセット７０からの関連するルールを比較するように構成される。ルールセットは、同じルールが繰り返されることを避けるために、階層化構造で順序付けられることが好ましい。
【０１００】
従って、比較機構６０は、例えば上述したような文脈ルール→文字ルール→カテゴリルールなどのルール優先順位決定構造に従ってルールを比較するように構成されることに加え、以下のように一般性が高くなる特定の順序でルールを比較するようにさらに構成される。
言語固有のルール→言語族のルール→世界的ルール
【０１０１】
比較機構６０は、ルールをこの順序で比較できるように、言語一般化ルール、すなわちルールが言語固有のルールであるか、言語族のルールであるか、それとも世界的ルールであるかを識別するように構成されることが好ましい。ルールタイプの優先順位決定構造を説明する際には、言語一般化ルールを認識するように比較機構６０を符号化し、或いは言語一般化ルールのタイプを識別できるように各ルールにラベル付して、上述したようなコンテナを使用することができる。上述したように、代替例としては、ルールを一般化構造の形に順序付けることを挙げることができる。
【０１０２】
従って、比較機構６０は、ルールタイプと、例えばフランス語に適用可能な文脈ルール（言語固有のルール）などの言語一般化ルールとを識別するように構成されることが好ましい。
【０１０３】
図５から分かるように、比較機構６０は、あるルールが適用可能であると判明するまで上述した優先順位システムに従ってルールを比較し、すなわち、まず言語の一般性が高まる順序で全ての「文脈ルール」を比較し、例えばまず言語固有のルール、次に言語族のルール、そして世界的ルールといった順序で文脈ルールをチェックし、次に、次のルールタイプである文字ルールを言語の一般性が高まる順序で比較し、その後、あるルールが適用可能であると判明するまで同様にカテゴリルールを比較し、判明した時点で適用可能なルールの探索を中止する。或いは、比較機構６０は、適用可能なルールが存在せずに全てのルールが枯渇したと判明するまで全てのルールを比較する。
【０１０４】
比較機構６０は、各ルールを電子文字列内の各文字と順番に比較するように構成されることが好ましい。従って、比較機構６０が、文字列のある文字に対してルールが適用可能であることを発見した場合、フォーマットモジュール１０は、このルールを電子文字列に適用して電子文字列のスペースをフォーマットし、比較機構は、文字列内の次の文字とルールとの比較に移る。同様に、その文字に適用可能なルールが存在しないことが判明した場合にも、比較機構６０は、電子文字列内の次の文字とルールとの比較に移る。
【０１０５】
以上から理解されるように、言語識別器２０は、電子文字列が書かれている言語がサポートされているかどうか、及び好ましくはサポートされている可能性が最も高い言語はどれであるかを識別するように構成される。言語識別器２０は、ユーザによって言語が切り換えられたかどうかを識別するために、ひいては比較機構６０によって電子文字列と比較されているルールセットを変更するために、現在の言語を周期的に、例えば（電子文字列がトークナイザによって一連の用語又は単語に変換される場合には）用語毎に、又は例えば３つの用語毎に識別するように構成することができる。他のあらゆるチェック頻度を使用することができる。言語識別器２０が、文字列の言語がフォーマットモジュール１０によってサポートされていないと判断した場合、比較機構６０は、適用可能なルールの探索を中止する。
【０１０６】
本発明によるフォーマットモジュール１０、又はフォーマットモジュール１０を含むシステム１００は、動的自動句読法を実行する言語検出及びルール機構を提供する。同じ句読点であっても句読点が発生する文脈に応じて挙動が異なるという可能性を無視する既存のシステムとは異なり、本発明のフォーマットモジュール１０は、句読点の文脈に基づいて句読点の両側のスペースをフォーマットすることができる。
【０１０７】
従って、本発明のフォーマットモジュール１０は、目標言語に適した正しくフォーマットされた句読点を生成するのに必要な相互作用を低減することによってユーザの生産性を高めることができる。多言語ユーザの場合、フォーマットモジュール１０は、スペースのフォーマットを現在入力されている言語に合わせて自動的に調整できることが好ましい。これにより、ユーザは、様々な目標言語に固有のフォーマットの慣習ではなく、配信されているメッセージに集中できるようになる。
【０１０８】
さらに、本発明のフォーマットモジュール１０は、句読点のスペースをフォーマットする挙動を定める別個の層、すなわちルール及びその関連操作を提供する。これにより、他の言語のスペースフォーマットに影響を与えることなく、又はフォーマットモジュール１０全体のアップグレードを必要とすることなく、特定の言語のためのルール及びその関連操作を個別に手動でアップデートして特定の言語のスペースフォーマットを変更することが可能になる。
【０１０９】
本発明は、好ましくはユーザによって入力された電子文字列内のスペースをフォーマットするための対応する方法も提供する。図１、及び上述したフォーマットモジュール１０、並びにフォーマットモジュール１０を含むシステム１００を参照すると、この方法は、電子文字列がフォーマットモジュールによってサポートされている言語で書かれているかどうかを識別するステップと、文字識別器４０（図２を参照）を用いて電子文字列内の特定の文字又は特定の文字列を識別するステップと、フォーマットモジュール１０を用いて、サポートされている言語が識別された場合、この識別された言語、及び識別された特定の文字又は文字列に基づいて、電子文字列のスペースをフォーマットするステップとを含む。フォーマットモジュール１０、及びフォーマットモジュール１０を含むシステム１００の説明から明らかなように、フォーマットモジュールは、複数の言語をサポートすることが好ましく、またフォーマットモジュール１０の言語識別器２０、又はシステム１００の予測エンジン３０の言語識別器によって、サポートされている可能性が最も高い言語を識別することができる。
【０１１０】
本発明の方法の他の態様は、上記のシステムの説明と同様に容易に判明することができる。例えば、フォーマットモジュールは、電子文字列がフォーマットモジュールによってサポートされている言語で書かれているかどうかを識別し、最も可能性が高い電子文字列の言語を識別するための言語識別器を含む。この方法は、フォーマットモジュールと同様に、比較機構１０を用いて、この識別された最も可能性の高い言語などに対応するルールセットを選択するステップも含む。
【０１１１】
本発明は、本発明による方法をプロセッサに実行させるためのコンピュータプログラム命令を記憶するコンピュータ可読媒体を含むコンピュータプログラム製品も提供する。
【０１１２】
このコンピュータプログラム製品は、本発明による方法を外部プロセッサに、すなわち電子装置のプロセッサに実行させるためのコンピュータプログラム手段を記憶するデータキャリアとすることができる。このコンピュータプログラム製品は、例えばデータキャリア又は供給者からインターネット又はその他の利用可能なネットワークを介してダウンロードすることもでき、例えば、ダウンロードされた時点でコンピュータプログラム手段を実行するためのプロセッサを含む（携帯電話機などの）モバイル装置又はコンピュータにアプリケーションとしてダウンロードされる。
【０１１３】
本説明はほんの一例にすぎず、説明した実施形態には、特許請求の範囲に定める本発明の範囲から逸脱することなく変更又は修正を行うことができると理解されるであろう。
【符号の説明】
【０１１４】
１０  フォーマットモジュール
３０  予測エンジン
５０  テキスト入力システム
１００  装置
【図１】
0006273285.tif 000007
【図２】
0006273285.tif 000008
【図３】
0006273285.tif 000009
【図４】
0006273285.tif 000010
【図５】
0006273285.tif 000011