(57)【要約】文字列の単語に対して置換語を提示するコンピュータ実施方法である。この方法において、入力語からなる入力文字列が受け取られる。入力語は次いで候補テーブルの対象語と照合される。次に、一致した対象語に対応する置換語候補と点数とが候補テーブルから抽出される。各点数は、入力語が対応する置換語候補で置換される確率を示す。最後に、入力語をその対応する置換語候補で置換することが、置換語に対する点数に基づいて選択的に提示される。本発明の別形態は、この方法を実施するよう構成したスペルチェックシステムを対象とする。
2008539476.tif 000002
【特許請求の範囲】
【請求項１】
文字列の単語に対して置換語を提示するコンピュータ実施方法であって、
ａ）入力語の入力文字列を受信するステップと、
ｂ）前記入力語を候補テーブルの対象語と照合するステップと、
ｃ）前記の照合された対象語に対応する置換語候補および候補点数を前記候補テーブルから抽出するステップであって、各候補点数は前記入力語が前記の対応する置換語候補で置き換えられる確率を示すステップと、
ｄ）前記置換語に対する候補点数に基づいて、前記入力語を該入力語に対応する置換語候補で選択的に置換することを提示するステップと
を含むことを特徴とする方法。
【請求項２】
ミススペルした入力語を前記照合ステップｂ）の前に校正するステップをさらに含み、それにより前記入力文字列はスペルが正しい入力語のみを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記入力文字列の前記入力語を前記の対応する置換語候補で置換することより、前記置換語候補を用いて置換文字列候補を形成するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記置換文字列候補に対して確率点数を計算するステップをさらに含み、
各確率点数は前記入力語と、前記置換文字列候補内に含まれる前記置換語候補とに基づき、
前記提示ステップｄ）は前記確率点数に基づいて前記置換文字列候補の前記の対応する置換語候補で前記入力語の置換を提示することをさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記提示ステップｄ）は前記確率点数に前記対応する候補点数を乗じて前記置換文字列候補の各々に対する最終点数を得ることを含み、
前記提示ステップｄ）は、最高の最終点数を有する前記置換文字列候補の前記の対応する置換語候補で前記入力語の置換を提示することを含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記候補テーブルの前記対象語及び前記の対応する置換語候補は、それぞれ、用語集内の単語を識別する用語集識別子の形であることを特徴とする請求項１に記載の方法。
【請求項７】
前記候補テーブルの前記置換語候補は、閾値を満足する該置換語候補に対応する対象語からの編集距離を有する単語を含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記候補テーブルの前記置換語候補は、該置換語候補に対応する対象語に対して同様な意味を有する単語を含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記候補テーブルの前記置換語候補は、該置換語候補に対応する対象語と発音が一致する単語を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記候補テーブルの前記置換語候補は、該置換語候補に対応する対象語に対する一般的な校正である単語を含むことを特徴とする請求項１に記載の方法。
【請求項１１】
入力文字列の入力単語に対して置換語を提示するスペルチェックシステムにより使用するための候補テーブルを生成するコンピュータ実施方法であって、
ａ）単語の用語集を供給するステップと、
ｂ）前記用語集内の対象語を前記用語集内の前記単語と比較するステップと、
ｃ）前記比較ステップｂ）に基づいて前記対象語に対する置換語候補を識別するステップと、
ｄ）前記対象語と該対象語に対応する識別した置換語候補とを対にした候補テーブルを形成するステップと、
ｅ）前記候補テーブルをコンピュータ可読媒体に格納するステップと
を含むことを特徴とする方法。
【請求項１２】
前記比較ステップｅ）は前記用語集内の前記単語から前記対象語に対して測定した編集距離を編集距離の閾値と比較することを含み、
前記識別ステップｃ）は前記対象語からの編集距離が編集距離の閾値を満足する置換語候補を前記対象語の各々に対して識別することを含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記比較ステップｂ）は前記用語集における他の単語の各々の意味を前記対象語の各々と比較することを含み、
前記識別ステップｃ）はその意味が前記対象語と同様である置換語候補を前記対象語の各々に対して識別することを特徴とする請求項１１に記載の方法。
【請求項１４】
前記比較ステップｂ）は前記用語集における前記単語の各々の発音表記を前記対象語の各々の発音表記と比較することを含み、
前記識別ステップｃ）はその発音表記が前記対象語の発音表記と一致する置換語候補を前記対象語の各々に対して識別することを特徴とする請求項１１に記載の方法。
【請求項１５】
前記形成ステップｄ）は前記置換語候補が前記の対応する対象語に置換される確率に基づいて対象語と置換語候補との対の各々に対する候補点数を生成し、前記候補点数を含むように前記候補テーブルを形成することを含むことを特徴とする請求項１１に記載の方法。
【請求項１６】
前記候補点数は前記置換語候補と前記の対応する対象語との間の編集距離に基づくことを特徴とする請求項１５に記載の方法。
【請求項１７】
文のログ内で空白により分割した第１の単語と第２の単語とを有する単語の対を分析するステップであって、前記分析するステップは、前記空白の削除、前記第１の単語の終端文字の前にある前記空白の移動、および前記第２の単語の先頭文字の後にある前記空白の移動のうちの１つにより形成される新規正式な語を識別することを含むステップと、
前記形成ステップｄ）において前記新規正式な語を、第１の単語および第２の単語のうち対応する一方に対する置換語候補として前記候補テーブルに追加するステップと
を含むことを特徴とする請求項１１に記載の方法。
【請求項１８】
入力文字列の入力語に対して置換語を提示するスペルチェックシステムであって、
候補テーブルの対象語に一致する前記入力語の各々に対して置換語候補と対応する候補点数とを出力する候補生成部であって、各候補点数は前記入力語が前記の対応する置換語候補で置換される確率を示す候補生成部と、
前記の対応する候補点数に基づいて前記入力語に対する置換語候補を選択的に出力する文脈スペルエンジンと
を備えることを特徴とするシステム。
【請求項１９】
前記候補生成部が出力した前記の対応する置換語候補により置換された少なくとも１つの前記入力語を有する前記入力文字列に対応する置換文字列候補に関する確率点数の出力を有する言語モデルを含み、
前記確率点数の出力は前記置換文字列候補の正確性の指標であり、
前記文脈スペルエンジンが生成した置換語候補の選択的な出力は、前記置換文字列候補に含まれる前記置換語候補に対応した前記確率点数の出力と前記候補点数とに基づくことを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記候補生成部の前記出力及び前記文脈スペルエンジンの前記出力のうちの１つから排除される置換語候補のリストを含む候補排除テーブルを含むことを特徴とする請求項１８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にスペルチェック方法およびシステムに関し、より詳細には、入力文字列内の単語に基づいた入力文字列のスペルに対して置換語を提示するよう構成したスペルチェック方法およびシステムに関する。
【背景技術】
【０００２】
文書処理アプリケーションを用いて生成した文書内にあるような入力テキストは、スペルミスを含む多くの様々な種類の誤りを含む可能性がある。結果として不正な単語となるスペルミスは一般に用語集（lexicon）ベースのスペルチェッカーで処理することができる。上記のミススペルは、単語のスペルのタイプミスまたは不案内により生ずる可能性がある。
【０００３】
用語集ベースのスペルチェッカーは入力テキスト内の単語を用語集の単語と比較し、用語集内に見つからなかった入力テキスト内の単語を識別する。１つまたは複数の置換語がスペルミスした単語に対して提示されることがよくある。例えば、入力テキスト「ｆｌｙ  ｆｒｍ  Ｂｏｓｔｏｎ」に対して、スペルチェッカーは「ｆｒｍ」をスペルミスとして識別するであろう。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
その他の種類のミススペルでは、一般に従来のスペルチェックアプリケーションでは検出不可能である正式な語がある。例えば、意図した単語のスペルのタイプミスまたは不案内である結果、文書処理アプリケーションのユーザが意図せず正式な語を入力する場合がある。例えば、入力テキスト「ｆｌｙ  ｆｏｒｍ  Ｂｏｓｔｏｎ」において単語「ｆｏｒｍ」は、その単語が意図した単語「ｆｒｏｍ」のミススペルだとしても従来のスペルチェックアプリケーションでは警告されない正式な語である。この種のミススペルの校正には一般に、その単語が使用されている文脈の分析が必要である。
【０００５】
一般には、従来のスペルチェックアプリケーションは、識別した不正な単語に対して編集距離（edit distance）に基づいて置換語を提示する。編集距離は、正式な代替語の形成に必要な変更を表す。不正な入力語から最短の編集距離を有する用語集内の単語は、ユーザに提示される最初の置換語である。例えば、語句「ｆｌｙ  ｆｒｍ  Ｂｏｓｔｏｎ」において大多数のスペルチェックアプリケーションは、正しい単語「ｆｒｏｍ」を提示する前に「ｆｏｒｍ」を置換語として提示するであろう。なぜならば、提示を行う際にその単語の文脈を考慮していないからである。ミススペルに対して最適な置換語を提示するため、ミススペルが見つかった文脈の分析を行わなければならない。
【０００６】
従って、ミススペルした単語に対する提示の向上と、使用が不適切な正式な単語に対する検出の改善を行うため、単語を使用している文脈を分析する能力のある改善されたスペルチェック方法およびシステムが必要である。
【０００７】
本発明の実施形態はこれらおよび他の問題に対する解決法を提供し、先行技術に対する利点を提供する。
【課題を解決するための手段】
【０００８】
一般には、本発明はスペルチェック方法およびシステムに関し、本スペルチェック方法およびシステムは対象語（subject word）と置換語候補（candidate replacement word）の対と各対に対する候補点数（candidate score）とを含む候補テーブルを利用し、その候補テーブルに基づいて単語の置換が提示される。
【０００９】
本発明の一態様は、文字列の単語に対して置換語を提示するコンピュータ実施方法に関する。この方法は、入力語の入力文字列が受け取られ、次いで、その入力語は候補テーブルの対象語と照合される。次に、照合された対象語に対応する置換語候補および候補点数が候補テーブルから抽出される。各候補点数は、対応する置換語候補で入力語が置換される確率を示す。最後に、入力語のそれに対応する置換語候補になる置換が、置換語の候補点数に基づいて選択的に提示される。
【００１０】
本発明の別態様は、入力文字列の入力語に対して置換語を提示するスペルチェックシステムを対象としている。システムは候補生成部（candidate generator）および文脈スペルエンジン（contextual spelling engine）を含む。候補生成部は、候補テーブルの対象語と一致する入力語の各々に対して、置換語候補および対応する候補点数の出力をする。各候補点数は、対応する置換語候補で入力語が置換される確率を示す。文脈スペルエンジンは、対応する候補点数に基づいて入力語に対する置換語候補を選択的に出力する。
【００１１】
本発明のさらなる別態様は候補テーブルの形成方法を対象にしている。この候補テーブルはスペルチェックシステムで使用され、入力文字列の入力語に対して置換語を提示する。この方法において単語の用語集が与えられる。次に、用語集内の対象語が用語集内の他の単語と比較される。次いでその比較に基づいて、置換語候補が対象語に対して識別される。次に、識別した対象語とそれに対応する置換語候補との対を含む候補テーブルが形成される。最後に、候補テーブルはコンピュータ可読媒体に格納される。
【００１２】
本発明の実施形態を特徴付ける他の特徴および利点は、以下の詳細説明および添付図面を参照することで明らかになるであろう。
【発明を実施するための最良の形態】
【００１３】
本発明は一般に、不正な入力文字列の入力語に対して正確な置換語を提供するスペルチェック方法およびシステムに関する。さらに、本発明のスペルチェック方法およびシステムは、不適切に使用した入力文字列の正式な入力語に対して、置換語候補の提示を提供することができる。本発明の実施形態は、入力語が使用されている文脈上の置換語の提示に基づいている。
【００１４】
本発明を詳細に説明する前に、本発明を使用できるコンピューティング環境の例を説明する。
【００１５】
コンピューティング環境の例
図１は、本発明を実施可能な適切なコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は適切なコンピューティング環境の一例でしかなく、本発明の使用または機能性の範囲に対する限定を示唆するとは意図していない。また、コンピューティング環境１００は動作環境例１００に示した構成要素の１つまたは組合せに関する依存性または要件を有するとも解釈されるべきでない。
【００１６】
本発明は、多数の他の汎用または特殊用途コンピューティングシステム環境または構成で動作可能である。本発明の使用に適した公知のコンピューティングシステム、環境、および／または構成の例は、これらに限らないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家電機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記システムまたは装置の任意のものを含む分散コンピューティング環境、等を含む。
【００１７】
本発明は、コンピュータが実行中のプログラムモジュールなどの、コンピュータ実行可能命令の一般的な文脈で記述できる。一般に、プログラムモジュールはルーチン、プログラム、オブジェクト、コンポーネント、データ構造、等を含み、これらは特定のタスクを実行するかまたは特定の抽象データ型を実装する。本発明は分散コンピューティング環境で実施することができ、その環境では、通信ネットワークを通して接続したリモート処理装置によりタスクが実行される。分散コンピューティング環境においては、メモリ記憶装置を含むローカルおよびリモートコンピュータ記憶媒体の両方にプログラムモジュールを置くことができる。
【００１８】
図１を参照すると、本発明を実装するシステムの例は汎用コンピューティングデバイスをコンピュータ１１０の形式で含む。コンピュータ１１０の構成要素は、これらに限らないが、処理装置１２０、システムメモリ１３０、およびシステムメモリを含む様々なシステムコンポーネントを処理装置１２０に接続するシステムバス１２１を含む。システムバス１２１は数種のバス構造のうち任意のものでよく、それらはメモリバスまたはメモリ制御装置、周辺バス、および様々な任意のバスアーキテクチャを用いるローカルバスがあげられる。限定としてではなく例として、上記アーキテクチャは業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子標準協会（ＶＥＳＡ）ローカルバス、およびメザニンバスとしても知られる周辺コンポーネント相互接続（ＰＣＩ）バスを含む。
【００１９】
コンピュータ１１０は、典型的には様々なコンピュータ可読媒体を含む。コンピュータ可読媒体はコンピュータ１１０がアクセス可能な任意の利用可能媒体で可能であり、揮発性および不揮発性媒体、ならびに取り外し可能および取り外し不可能媒体の両方を含む。限定としてではなく例として、コンピュータ可読媒体はコンピュータ記憶媒体と通信媒体を含む。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を格納する任意の方法または技術で実装した、揮発性および不揮発性媒体、取り外し可能および取り外し不可能媒体を含む。コンピュータ記憶媒体は、これらに限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報の格納に使用可能で、コンピュータ１１０がアクセス可能な任意の他の媒体を含む。通信媒体は、典型的にはコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを、搬送波などの変調データ信号、または他のトランスポート機構で具現化し、任意の情報配信媒体を含む。用語「変調データ信号」は、１つまたは複数の特性セットを有する信号が、信号内の情報を符号化するように設定または変更した信号を意味する。限定としてではなく例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、並びに音響、ＲＦ、赤外線および他の無線媒体などの無線媒体を含む。上記の任意の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【００２０】
システムメモリ１３０はコンピュータ記憶媒体を、読取専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性および／または不揮発性メモリの形式で含む。例えば起動時にコンピュータ１１０内部の構成要素間の情報転送を支援する基本ルーチンを含む基本入出力システム１３３（ＢＩＯＳ）が、典型的にはＲＯＭ１３１内に格納される。ＲＡＭ１３２は、典型的には、処理装置１２０が即座にアクセス可能および／または処理装置１２０上で現在実行中のデータおよび／またはプログラムモジュールを含む。限定としてではなく例として、図１はオペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６およびプログラムデータ１３７を示す。
【００２１】
コンピュータ１１０は他の取り外し可能／取り外し不可能、揮発性／不揮発性コンピュータ記憶媒体もまた含むことができる。ほんの一例として、図１は取り外し不可能、不揮発性磁気媒体を読み書きするハードディスクドライブ１４１、取り外し可能、不揮発性磁気ディスク１５２を読み書きする磁気ディスクドライブ１５１、およびＣＤ  ＲＯＭまたは他の光媒体のような取り外し可能、不揮発性光ディスク１５６を読み書きする光ディスクドライブ１５５を示す。動作環境の例において使用可能な他の取り外し可能／取り外し不可能、揮発性／不揮発性コンピュータ記憶媒体は、これらに限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯＭ、等を含む。ハードディスクドライブ１４１は、典型的にはインタフェース１４０などの取り外し不可能メモリインタフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、典型的にはインタフェース１５０などの取り外し可能メモリインタフェースによりシステムバス１２１に接続される。
【００２２】
上述し、図１に示したドライブとそれらの関連コンピュータ記憶媒体は、コンピュータ１１０に対するコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータを格納する。例えば、図１においてハードディスクドライブ１４１はオペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６およびプログラムデータ１４７を格納するとして示される。これらのコンポーネントはオペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じか、または異なるかのいずれでも可能であることに留意されたい。本明細書において、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７に異なる番号を与え、少なくともそれらが異なるコピーであることを示す。
【００２３】
ユーザは、キーボード１６２、マイクロフォン１６３および、マウス、トラックボールまたはタッチパッド等のポインティングデバイス１６１などの入力装置を介して、命令および情報をコンピュータ１１０に入力できる。他の入力装置（不図示）はジョイスティック、ゲームパッド、パラボラアンテナ、スキャナ、等を含むことができる。これらおよび他の入力装置は、システムバスに接続されるユーザ入力インタフェース１６０を介して処理装置１２０に接続されることがよくあるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ）などの他のインタフェースおよびバス構造により接続することもできる。モニタ１９１または他種の表示装置は、また、ビデオインタフェース１９０などのインタフェース経由でシステムバス１２１に接続される。そのモニタに加えて、コンピュータはスピーカ１９７およびプリンタ１９６などの他の周辺出力装置を含むこともでき、周辺出力インタフェース１９０を介してそれらを接続することができる。
【００２４】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータに対する論理接続を用いてネットワーク環境で動作することができる。リモートコンピュータ１８０はパーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の共通ネットワークノードであることが可能であり、典型的にはコンピュータ１１０に関して上述した構成要素の多く、または全てを含む。図１に示した論理接続はローカルエリアネットワーク（ＬＡＮ）１７１および広域通信網（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。上記のネットワーク環境は職場、企業規模のコンピュータネットワーク、イントラネットおよびインターネットで一般的である。
【００２５】
ＬＡＮネットワーク環境で使用するとき、コンピュータ１１０はネットワークインタフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境で使用するとき、コンピュータ１１０は、典型的にはモデム１７２、またはインターネットなどのＷＡＮ１７３上で通信を確立する他の手段を含む。モデム１７２は内部または外部にあってよく、ユーザ入力インタフェース１６０または他の適切な機構を経由してシステムバス１２１に接続可能である。ネットワーク環境において、コンピュータ１１０に対して示したプログラムモジュールまたはその一部は、リモートメモリ記憶装置に格納することができる。限定としてではなく例として、図１はリモートアプリケーションプログラム１８５がリモートコンピュータ１８０上に存在するとして示す。示したネットワーク環境は例であって、コンピュータ間の通信を確立する他の手段を使用できることは理解されるであろう。
【００２６】
本発明は図１に関して説明したようなコンピュータシステム上で実行できることは留意すべきである。しかしながら、本発明はサーバ、メッセージ処理専用のコンピュータ上で実行することができ、また、本発明の様々な部分が、分散コンピューティングシステムの様々な部分で実行される分散システム上で実行できる。
【００２７】
スペルチェック方法およびシステム
上述したように、本発明は、一般には不正な入力文字列の入力語に対して、正確な置換語を提示するスペルチェック方法およびシステムに関する。さらに、本発明のスペルチェック方法およびシステムは、使用が不適切だが正式である入力文字列の入力語に対して置換語を提示することができる。本発明が提示する置換語は、一般に入力語が使用される文脈に基づいている。
【００２８】
さらに、本発明はスペルチェックに対してデータ駆動型のアプローチを与える。結果として、スペルチェック方法およびシステムの実施形態は、構文またはルールベースの文法チェッカーと同様な理論的な言語学的専門知識を必要としない。また、本実施はルールベースのシステムより非常に単純で、保守およびセキュリティのコストが少ない。さらに、候補を生成する機構は一般に言語非依存性であり、複数の言語に容易に拡張できる。
【００２９】
本発明の実施形態を図２および図３を参照して説明する。図２は、本発明の実施形態に従った文字列の単語に対して置換語を提示する方法を示すフローチャートである。図３は本発明の実施形態に従うスペルチェックシステム２００のブロック図であり、前記方法を実施するよう構成されている。
【００３０】
当該方法のステップ２０２では、入力語の入力文字列２０４がスペルチェックシステム２００により受け取られる。文書処理アプリケーション２０６のユーザは入力文字列２０４を、キーボード、マイクロフォン（即ち、口述で）、または他の従来方法を通して最初に入力できる。または、入力文字列２０４を既存の文書、ウェブページ、または別の情報源から抽出することができる。
【００３１】
アプリケーション２０６は入力文字列２０４をシステム２００に対して完全な文で与えることが望ましい。さらに、入力文字列２０４をスペルチェックシステム２００に対してトークン化した形で、または他の認識可能な形式で与えることができ、またはシステム２００が入力文字列２０４をこのような形式に変換することができる。
【００３２】
入力文字列はシステム２００の文脈スペルエンジン２１０から候補生成部２０８に与えられる。入力文字列２０４は正式な（即ち、正確なスペルの）単語のみを含むことが望ましい。
【００３３】
前記方法の一実施形態によると、入力文字列２０４のミススペル入力文字列は用語集ベースのスペルチェッカー２１２を用いて校正される。スペルチェッカー２１２は入力文字列２０４の各入力語を用語集２１４の単語と比較する。用語集２１４内に含まれない入力語に対して提示される置換は、従来の方法に従ってスペルチェッカー２１２により生成される。スペルチェッカー２１２が生成した置換候補はユーザに提示され、ユーザはスペルチェッカー２１２が識別したスペルミス単語に対してその置換候補の中から選択し、それにより入力文字列が修正される。あるいは、ミススペルした入力語に対してスペルチェッカー２１２が生成する提示された校正候補は、候補生成部２０８に提供され、その候補生成部２０８は正式な語のみ含む入力文字列を形成する。正式な単語のみを含む入力文字列は、次に候補生成部２０８により分析される。
【００３４】
候補生成部２０８の目的は、入力文字列２０４の入力語と、同様または関連する置換語候補を識別することである。置換語候補は後にアプリケーション２０６へ、入力語に対して提示した置換語として提供できる。置換語候補および入力語の対は候補テーブル２１６に含まれる。
【００３５】
表１は、本発明の実施形態に係る候補テーブル２１６の一部の例である。候補テーブル２１６は、各々が置換語候補に関連付けられる対象語と、対象語が置換語候補で置換される確率を示す候補点数とを含む。
【００３６】
【表１】
2008539476.tif 000003
【００３７】
候補テーブル２１６の一実施形態は、各対象語と置換語候補との対に対する編集エントリを含む。編集エントリは、置換語候補の形成のために対象語に対して実施されなければならない変換を記述する。例えば、「ａｂａｃｋ」を「ａｌａｃｋ」に変換するため、「ａｂａｃｋ」の「ｂ」は「ｌ」に変換されなければならず、これを「ｂ：ｌ」と表す。同様に、「ａｂａｃｋ」内の最初の「ａ」を削除して置換語候補「ｂａｃｋ」を形成することは「ａ：」と表すことができる。「ａｂａｌｏｎｅｓ」に「’」を追加して「ａｂａｌｏｎｅ’ｓ」にすることは単純に「Ａ」で表すことができる。対象語「ｂｒｅａｋ」に対する「ｂｒａｋｅ」などの同音異義語の置換語候補は「Ｈ」と表される。また、他の方法を使用して、対応する置換語候補に対象語を変換するために実行しなければならない様々な編集を識別することができる。
【００３８】
文脈スペルエンジン２１０は候補テーブル内の編集エントリを使用して、入力文字列の分析中に置換語候補に対する点数を修正することができる。編集エントリをクラスに分類し、編集タイプクラスの頻度などの情報を反映する様々な値を割当てることができる。その値が高ければ、置換語候補の点数に及ぼす編集タイプの影響が高くなる。これらのクラスまたは編集タイプの点数を候補点数に追加するかまたは含めることができる。例えば、対象語の開始文字を削除して置換語候補を形成した結果、その置換語候補の点数が増加する可能性がある。
【００３９】
本発明の一実施形態によると、候補テーブル２１６はコンピュータ可読媒体にバイナリファイルとして格納され、スペルチェックシステム２００による迅速なアクセスのためにコンピューティング環境のメモリにロードされる。本発明の一実施形態によると、候補テーブル２１６はハッシュテーブルとしてバイナリファイル内に格納される。
【００４０】
候補テーブル２１６の別の実施形態によると、対象語および置換語候補を識別するために用語集識別子が使用される。用語集識別子は、図３に示す用語集２１４などの用語集内の対応する単語へリンクを張っている。本発明のこの実施形態は、大規模な候補テーブル２１６の格納に必要なメモリ量を削減するように動作する。
【００４１】
当該方法のステップ２１８で、候補生成部２０８は入力文字列２０４の入力語を候補テーブル２１６の対象語と照合する。次いでステップ２２０で、置換語候補２２２および対応する候補点数２２４が、一致した対応する対象語に基づいて入力文字列２０４の各入力語に対して候補テーブル２１６から抽出される。同一の対象語または入力語に関連する多数の置換語候補が存在する可能性があるので、候補生成部２０８はそれぞれの一致入力語に対して置換語候補と点数との対を複数生成する可能性がある。置換語候補２２２および点数２２４の対は文脈スペルエンジン２１０に出力されてさらに処理される。
【００４２】
一般には、候補テーブル２１６内の候補点数２２４は、対応する置換語候補で入力語が置換される確率を示す。さらに、候補点数２２４は、対象語と対応する置換語候補２２２との間にある誤りの数を反映することができる。
【００４３】
本発明の一実施形態によると、候補スコア２２４は１つまたは複数の因子に基づき、それらの各々は互いに掛け合わされて、候補テーブル２１６内の対象語と置換語候補との対に対する候補点数を形成することが望ましい。上記因子は対象語および置換語候補の間の編集距離またはタイピング距離、ヒューリスティック、対象語および置換語候補の発音の違い、ならびに置換語候補が対象語を置換する可能性に関連する他の因子を含む。
【００４４】
編集タイプとヒューリスティックに基づく候補点数２２４は、対象語と置換語候補との間の差異に依存して変化する。例えば、単数形の対象語が複数形の置換語候補に変換される可能性は非常に低い。結果として、上記の置換語候補には低い候補点数を与えるべきである。他方、対象語から置換語候補への変換が、最も一般的に起きるスペルミスに関する先頭文字のみの変換を含むとき、上記対象語および置換語候補の対は高い候補点数を得る。
【００４５】
また、対象語への空白追加による対象語の２語への分割に基づく点数も、編集距離に関連する。そのような編集は一般に、それらが相対的に高頻度で出現するので高い候補点数が与えられる。
【００４６】
置換語候補が対象語の同音異義語または同音異義語に近いとき、その単語の対は、置換語候補の発音が対象語と十分には類似していないときよりも高い点数が与えられる。
【００４７】
当該方法のステップ２２６で、文脈スペルエンジン２１０は、置換語候補２２２の対応点数２２４に基づいて、入力文字列２０４の入力語に対する置換語候補２２２の出力２３０を選択的に生成する。本発明の一実施形態によると、システム２００は文脈スペルエンジン２１０から置換文字列候補２４２を受信する言語モデル２４０を含む。置換文字列候補２４２は修正入力文字列２０４であり、それらの各々は対応する入力語の代わりとなる置換語候補２２２を含む。
【００４８】
言語モデル２４０は、置換文字列候補２４２の各々に対する確率点数２４４を出力するよう動作する。一般には、確率点数２４４は、文の大きなログに対する統計データ２４６（即ち、他の単語に対する単語の出現頻度データ）に基づいて特定の置換文字列候補２４２を発見する可能性の指標を与える。一般に、特定の単語の文字列が見つかる可能性が高くなれば、その文字列に含まれる単語が正しく使用される可能性がより高くなると考えられる。従って、各置換文字列候補２４２に対する確率点数２４４は、その文字列内の入力文字と置換語候補との正しい組合せをもたらす。
【００４９】
所与の単語の文字列（即ち、ｗ１，ｗ２，ｗ３，．．．，ｗＮ）に対する確率点数２４４（Ｐ（ｃｏｎｔｅｘｔ）で表す）を、式１に従い統計データ２４６を用いて計算できる。一般に、文字列の確率は、他の単語が与えられた場合に各単語が文字列内に出現する確率に等しい。従って文字列の確率は、第１の単語の確率（Ｐ（ｗ１））に第１の単語が与えられた場合の第２の単語の確率を乗じたもの（Ｐ（ｗ２|ｗ１））に第１および第２の単語が与えられた場合の第３の単語の確率を乗じたもの（Ｐ（ｗ３|ｗ２，ｗ１））、等々となる。
【００５０】
Ｐ（ｃｏｎｔｅｘｔ）＝Ｐ（ｗ１）＊Ｐ（ｗ２|ｗ１）＊Ｐ（ｗ３|ｗ２，ｗ１）＊．．．
＊Ｐ（ｗＮ|ｗＮ−１，ｗＮ−２．．．ｗ２，ｗ１）                                
式１
【００５１】
本発明の一実施形態によると、式２で与えられる式１のトライグラム（trigram）近似が使用される。文字列の各単語に対してトライグラム近似は、文字列のＮ個の単語全てではなく（存在するならば）２つの先行語を使用する。
【００５２】
Ｐ（ｃｏｎｔｅｘｔ）〜Ｐ（ｗ１）＊Ｐ（ｗ２|ｗ１）＊Ｐ（ｗ３|ｗ２，ｗ１）＊．．．
＊Ｐ（ｗＮ|ｗＮ−１，ｗＮ−２）                                                
式２
【００５３】
本発明の一実施形態によると、文脈スペルエンジン２１０は各置換語文字列候補に対する最終点数に基づいて、提示した置換語候補または置換文字列候補２３０を選択してアプリケーション２０６に出力する。最終点数（Ｐ（ｃａｎｄｉｄａｔｅ｜ｉｎｐｕｔ  ｗｏｒｄ，ｃｏｎｔｅｘｔ）で表す）がそれぞれ、式３に従って計算される。この計算は、置換文字列候補に対する確率点数（Ｐ（ｃｏｎｔｅｘｔ，ｃａｎｄｉｄａｔｅ）で表す）に、置換文字列候補２４２を形成するために入力語を置換した置換語候補２２２（ｃａｎｄｉｄａｔｅ）に対応する候補点数２２４を乗じることで行われる。
【００５４】
例えば、「Ｉ  ｓｅｅ  ｙｏｕ  ｔｏ」という入力文字列２０４の入力語「ｔｏ」に対して、置換語候補２２２「ｔｏｏ」、「ｔｏｔ」、および「ｔｗｏ」がそれらの対応点数２２４とともに候補生成部２０８により生成されるとしよう。対応する置換文字列候補２４２は次いで「Ｉ  ｓｅｅ  ｙｏｕ  ｔｏｏ」、「Ｉ  ｓｅｅ  ｙｏｕ  ｔｏｔ」、および「Ｉ  ｓｅｅ  ｙｏｕ  ｔｗｏ」となる。文脈スペルエンジン２１０は次に言語モデル２４０に対する呼び出しを何回か行い、言語モデル２４０は置換文字列候補２４２の各々に対する確率点数を計算する。
【００５５】
次いで置換文字列候補２４２に対する最終点数が文脈スペルエンジン２１０によって、それらの確率点数２４４にそれらの対応する候補点数２２４を乗じることで計算される。従って、置換文字列候補２４２「Ｉ  ｓｅｅ  ｙｏｕ  ｔｏｏ」に対する最終点数は、文字列「Ｉ  ｓｅｅ  ｙｏｕ  ｔｏｏ」の確率に、候補テーブル２１６から得た入力語「ｔｏ」に対する置換語候補「ｔｏｏ」に対応する点数２２４を乗じたものに等しい。
【００５６】
本発明の一実施形態によると、最高の最終点数を有する置換文字列候補の置換語候補２２２が、文脈スペルエンジン２１０により出力２３０としてアプリケーション２０６に提示される。または、文脈スペルエンジン２１０は最高の最終点数を有する置換文字列候補２４２に対応する置換語候補２２２のみを、それが閾値を超えると提示することができる。本発明の別の実施形態によると、閾値を超える最終点数を有する複数の置換語候補２２２は文脈スペルエンジン２１０により出力２３０としてアプリケーション２０６に提示される。
【００５７】
閾値は、対象語および候補語の確率の関数として予め決定するか動的に計算することができる。一実施形態において、閾値はＴｈｒｅｓｈｏｌｄ＝αＰ（ｓｕｂｊｅｃｔ  ｗｏｒｄｓ）＋βＰ（ｃａｎｄｉｄａｔｅ  ｗｏｒｄｓ）＋γＰ（ｉｎｐｕｔ  ｗｏｒｄｓ）−Ｐ（ｃａｎｄｉｄａｔｅ  ｗｏｒｄｓ）から動的に決定される。
【００５８】
候補テーブルの生成
図４は、本発明の実施形態に従ってスペルチェックシステム２００が使用するための候補テーブル２１６の生成方法を示すフローチャートである。この方法のステップ２５０で、単語の用語集が与えられる。用語集は非常に大規模（例えば、１０万語以上）であることが望ましい。次にステップ２５２で、用語集内の対象語は用語集内の他の単語と比較される。用語集の各単語、または少なくとも用語集のうち最も頻繁に使用される単語は、それぞれ用語集内の他の単語と比較される対象語となることが望ましい。ステップ２５４で、置換語候補がステップ２５２の比較に基づいて対象語に対して識別される。
【００５９】
本発明の一実施形態によると、対象語を用語集内の他の単語と比較すること（ステップ２５２）は、対象語に対する用語集の各単語間の編集距離またはタイピング距離を計算すること、および編集距離を編集距離の閾値と比較することを含む。編集距離閾値を満足する編集距離を有する置換語候補は、対象語に対する置換語候補として識別される。閾値の「満足」は編集距離の計算方法に依存しており、その閾値に到達すること、その閾値を超えること、またはその閾値を下回ることにより満足されると意図されることは理解されるべきである。
【００６０】
比較ステップ２５２の別の実施形態によると、用語集の各単語の意味が対象語と比較される。識別ステップ２５４は、次いで、意味が対象語の意味と同様である用語集の単語を置換語候補として識別することを含む。例えば、対象語の同義語が置換語候補として特定される。本発明の一実施形態によると、用語集の対象語はシソーラスデータに対して照合され（check）、当該方法のステップ２５４で同様な意味を有する置換語候補がシソーラスデータから置換語候補として識別される。
【００６１】
比較ステップ２５２の別の実施形態によると、用語集内の単語の発音表記が用語集の対象語と比較される。用語集の単語の発音表記は、単語を従来のテキストスピーチ変換エンジンに与えることで自動的に生成されるのが望ましい。対象語の発音表記に一致する発音表記を有する用語集の単語は、識別ステップ２５４で対象語に対する置換語候補として識別される。これらの対の例には「ｂｅａｒ」と「ｂａｒｅ」、および「ｗｈｉｃｈ」と「ｗｉｔｃｈ」があげられる。従って、対象語の同音異義語が置換語候補として識別される。本発明の別の実施形態によると、近似的に同音異義語である用語集の単語（即ち、閾値を満足するもの）も置換語候補として識別される。
【００６２】
本発明の別の実施形態は文の大きなログ内に発見されたバイグラム（即ち、単語の対）の分析を含む。この分析は、バイグラムの第１単語と第２単語との間に位置する空白をシフトまたは削除すると少なくとも１つの正式な語が生成されるか否かを決定することを含む。比較ステップ２５２の一実施形態は、空白シフト分析から生成した正式な語と対象語を比較することを含む。第１単語の終端文字の前、または第２単語の先頭文字の後のいずれかの空白をシフトすることにより、またはその空白を削除することにより形成した正式な語のみを、比較ステップ２５２で使用することが望ましい。なぜならば、それらはより一般的な誤植に対応しているからである。対象語に一致する新規形成した正式な語は次いで、ステップ２５４で対象語に対する置換語候補として識別される。例えば、単語の対「ｕｓｅ  ｓｗｏｒｄｓ」に対する置換語候補は「ｕｓｅｓ  ｗｏｒｄｓ」であり、単語の対「ｄｏｇ  ｓａｎｄ」に対する置換語候補は「ｄｏｇｓ  ａｎｄ」である。同様に、単語の対「ａｎｙ  ｏｎｅ」に対する置換語候補は「ａｎｙｏｎｅ」であり、逆に、単語対「ａｎｙｏｎｅ」に対する置換語候補は「ａｎｙ  ｏｎｅ」である。
【００６３】
当該方法のステップ２５６で、対象語とそれに対応する識別された置換語候補との対を含む候補リスト２１６が形成される。最後にステップ２５８で、候補テーブル２１６が図１に関して上述したようなコンピュータ可読媒体に格納される。
【００６４】
本発明の別の実施形態によると、上述のように置換語候補が対応する対象語を置換する確率に基づいて、ステップ２５６で対象語と置換語候補との対の各々に対して候補点数２２４が生成される。候補点数は、比較ステップ２５２で分析および上述した１つまたは複数の因子に基づくことが望ましい。候補点数はステップ２５８で、コンピュータ可読媒体に格納される候補テーブル２１６に含まれる。
【００６５】
候補排除テーブル
本発明の別の実施形態によると、候補排除テーブル２６０が生成される。候補排除テーブル２６０は、候補生成部２０８が文脈スペルエンジン２１０に置換語候補２２２として提示すべきでない或る特定の置換語候補を識別する。従って、候補排除テーブル２６０は、不適切または望ましくない置換語候補が文脈スペルエンジン２１０によってアプリケーション２０６に提示されることを防止する。候補排除テーブル２６０は不快感を与えるような置換語候補を含むことが望ましい。さらに、「ｒｏｕｇｈ」および「ｔｏｕｇｈ」などの明確化が困難で同様な文脈に頻繁に出現する単語を候補排除テーブルに含めることができる。「ｃｏｌｏｒ」と「ｃｏｌｏｕｒ」、または「ｇｏｏｄｂｙｅ」と「ｇｏｏｄ−ｂｙｅ」などの、同じ対象語でスペルが異なる受入れ可能なものは、それらを候補排除テーブル２６０に含めることで削除される。また、単数形の入力語を複数形とする誤植は稀であるので、単数形の対象語とそれらの複数形は候補排除テーブル２６０に含めることが望ましい。
【００６６】
本発明の一実施形態によると、候補テーブル２１６は周期的に更新され、候補排除テーブル２６０内に照合語の対を有する対象語と置換語候補との対を削除する。さらに、候補排除テーブル２６０内のものと一致する置換語候補を有する候補テーブル２１６内の対象語と置換語候補との対も削除することができる。その結果、候補テーブル２１６の大きさが削減され、スペルチェックシステム２００がより効率的に動作することができる。
【００６７】
本発明は特定の実施形態を参照して説明してきたが、当業界の技術者は、本発明の要旨および範囲から逸脱することなく形式的且つ詳細に変更を加えることができることを理解するだろう。
【図面の簡単な説明】
【００６８】
【図１】本発明を実施可能なコンピューティング環境のブロック図である。
【図２】本発明の実施形態に従って、文字列の単語に対して置換語を提示する方法を示すフローチャートである。
【図３】本発明の実施形態に従うスペルチェックシステムのブロック図である。
【図４】本発明の実施形態に従ってスペルチェックシステムが、入力文字列の入力語に対して置換語を提示するために使用する、候補テーブルの生成方法を示すフローチャートである。
【図１】
2008539476.tif 000004
【図２】
2008539476.tif 000005
【図３】
2008539476.tif 000006
【図４】
2008539476.tif 000007