(57)【要約】【課題】規則の要素を有限状態変換器テンプレートに挿入することにより第１及び第２の正字法規則を個別の有限状態変換器にコンパイルする、正字法規則をコンパイルする方法を提供する。【解決手段】個別の有限状態変換器を結合して、単一の結合有限状態変換器を形成する。一実施形態では、まず有限状態変換器を有限状態変換器内の共通のコアに基づいて結合する。その後、そのコアに対する結合有限状態変換器を結合して、その一組の正字法規則に対する単一の有限状態変換器を形成する。【選択図】図１
2008108266.tif 000002
【特許請求の範囲】
【請求項１】
正字法規則をコンパイルして実行可能有限状態変換器を形成する方法であって、
前記正字法規則のコアに対してコア有限状態変換器を形成し、
前記正字法規則の文脈に対して文脈有限状態変換器を形成し、
前記正字法規則の演算子に関連付けられたテンプレートに基づき、前記コア有限状態変換器と前記文脈有限状態変換器とを結合して規則有限状態変換器を形成し、
該規則有限状態変換器を使用して、実行可能有限状態変換器を作成する
ことを特徴とする方法。
【請求項２】
前記正字法規則の第２の文脈に対して第２の文脈有限状態変換器を形成し、前記規則有限状態変換器を形成することは、前記テンプレートに基づき前記コア有限状態変換器、前記文脈有限状態変換器、及び前記第２の文脈有限状態変換器を結合することを特徴とする請求項１に記載の方法。
【請求項３】
前記正字法規則は第１の正字法規則であり、前記規則有限状態変換器は第１の規則有限状態変換器であり、第２の正字法規則に対するコア有限状態変換器及び文脈有限状態変換器を形成し、前記第２の規則の演算子に関連付けられたテンプレートに基づき前記コア有限状態変換器及び文脈有限状態変換器を結合して第２の規則有限状態変換器にすることを特徴とする請求項２に記載の方法。
【請求項４】
前記第２の正字法規則の前記テンプレートは、前記第１の正字法規則の前記テンプレートと異なることを特徴とする請求項３に記載の方法。
【請求項５】
前記第１の正字法規則の演算子は、前記第２の正字法規則の前記演算子と異なることを特徴とする請求項４に記載の方法。
【請求項６】
複数の規則有限状態変換器を作成し、各規則有限状態変換器は異なる規則に関連付けられていることを特徴とする請求項１に記載の方法。
【請求項７】
前記規則有限状態変換器を使用することは、同じコアを備える規則有限状態変換器を結合してコア毎に単一の結合コア有限状態変換器を形成することを特徴とする請求項６に記載の方法。
【請求項８】
前記規則有限状態変換器を使用することは、コアに対する前記結合コア有限状態変換器を結合して集合有限状態変換器を形成することを特徴とする請求項７に記載の方法。
【請求項９】
前記集合有限状態変換器を形成する前に各結合コア有限状態変換器を最小にすることを特徴とする請求項８に記載の方法。
【請求項１０】
コンピュータ実行可能命令を格納するコンピュータ読取可能な媒体であって、
前記コンピュータ実行可能命令は、
正字法規則内の演算子を識別するステップと、
前記演算子に基づいてテンプレートを選択するステップと、
前記正字法規則の要素を前記テンプレートに挿入し、有限状態変換器を形成するステップと
を実行することを特徴とするコンピュータ読取可能な媒体。
【請求項１１】
前記正字法規則は、表層形式から語彙形式へのマッピングを示すコアを含むことを特徴とする請求項１０に記載のコンピュータ読取可能な媒体。
【請求項１２】
前記正字法規則は、左文脈及び右文脈を含むことを特徴とする請求項１１に記載のコンピュータ読取可能な媒体。
【請求項１３】
前記正字法規則の要素を挿入することは、前記コア、左文脈、及び右文脈を前記テンプレートに挿入することを特徴とする請求項１２に記載のコンピュータ読取可能な媒体。
【請求項１４】
演算子を識別する前記ステップと、テンプレートを選択する前記ステップと、複数の規則のそれぞれに対する要素を挿入して複数の有限状態変換器を形成する前記ステップを実行することを特徴とする請求項１０に記載のコンピュータ読取可能な媒体。
【請求項１５】
前記有限状態変換器のうちの少なくとも２つを結合して結合有限状態変換器を形成することを特徴とする請求項１４に記載のコンピュータ読取可能な媒体。
【請求項１６】
少なくとも２つの有限状態変換器を結合することは、同じコアを持つすべての有限状態変換器を結合することを特徴とする請求項１５に記載のコンピュータ読取可能な媒体。
【請求項１７】
少なくとも２つの有限状態変換器を結合することは、第１のコアを持つすべての有限状態変換器を結合することにより第１の結合有限状態変換器を形成し、第２のコアを持つすべての有限状態変換器を結合することにより第２の結合有限状態変換器を形成することを特徴とする請求項１６に記載のコンピュータ読取可能な媒体。
【請求項１８】
前記第１の結合有限状態変換器と前記第２の結合有限状態変換器とを結合して集合有限状態変換器を形成することを特徴とする請求項１７に記載のコンピュータ読取可能な媒体。
【請求項１９】
前記第１の結合有限状態変換器を最小化し、前記第２の結合有限状態変換器を最小化することを特徴とする請求項１７に記載のコンピュータ読取可能な媒体。
【請求項２０】
前記集合有限状態変換器を最小化することを特徴とする請求項９に記載の方法又は請求項１９に記載のコンピュータ読取可能な媒体。
【請求項２１】
前記集合有限状態変換器から実行可能有限状態変換器を形成することを特徴とする請求項２０に記載のコンピュータ読取可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、言語処理に関するもので、より詳細には、表層テキスト（ｓｕｒｆａｃｅ  ｔｅｘｔ）を語彙表現（ｌｅｘｉｃａｌ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）に変換する言語処理技術に関する。
【背景技術】
【０００２】
言語処理では、表層形式の単語を語彙形式に変換することで、品詞の違いに関連する形態により生じる単語の綴りの差違を取り除くのが一般的である。例えば、「ｈａｐｐｉｎｅｓｓ」という表層形式は、「ｈａｐｐｙ＋ｎｅｓｓ」という語彙形式に変換され、「ｆｏｕｎｄ」は「ｆｉｎｄ」という語彙形式に変換され、過去形を示すマーカーがその語彙形式に付加される。このような変換を行うと、対応する必要のある単語の変化形の数が減るため単語の後処理が簡素化される。
【０００３】
このような変換を実行する一般的な方法として、有限状態変換器（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｔｒａｎｓｄｕｃｅｒｓ）が使われている。有限状態変換器では、表層形式の単語を語彙形式の文字又はマーキングにマッピングする遷移により２つの状態が接続される。多くのシステムでは、有限状態変換器は、表層形式の文字から語彙形式の文字へのマッピングを記述する一組の規則に基づいて生成される。これの規則のいくつかは、左文脈（ｌｅｆｔ  ｃｏｎｔｅｘｔ）、右文脈（ｒｉｇｈｔ  ｃｏｎｔｅｘｔ）、又は左右両方の文脈を含み、有限状態変換器内に２つよりも多い状態を必要とする。例えば、ｉからｙへの変換を行う規則に、文字ｉの前に表層形式の「ｐ」を必要とする「ｐ：ｐ」という左文脈及び文字ｉの後に「ｎ」を必要とする「ｎ：ｎ」という右文脈が含まれていた場合、完全な有限状態変換器は、開始状態、第２の状態への文字ｐの遷移、第２の状態から第３の状態への変換ｉ：ｙの遷移、及び第３の状態からの文字「ｎ」の遷移を含むことになる。
【０００４】
２レベル形態（ｔｗｏ−ｌｅｖｅｌ  ｍｏｒｐｈｏｌｏｇｙ）の有限状態変換器を使用して語彙形式の単語を作成するが、そのために、表層形式を有限状態変換器に入力として適用する。有限状態変換器は、状態毎に、現在の状態から次の状態への遷移に入力の中の現在の文字を使用できるかどうかを判別する。使用できる場合、有限状態変換器は次の状態への遷移を進め、入力の中の次の文字を選択する。現在の文字がある状態から出る遷移のどれとも一致しない場合、有限状態変換器は失敗し、有限状態変換器の開始状態に戻る。
【０００５】
従来技術では、規則の各部分、つまり、左文脈、コア（ｃｏｒｅ）、及び右文脈は、別々の有限状態変換器として定義されていた。これらの有限状態変換器はそれぞれ、別々に、形態処理時に使用することが可能な２進表現に変換される。
【０００６】
実行時に、さまざまな有限状態変換器がユーザ入力に基づいて動的に結合され、その入力に合わせて修正された単一の仮想ＦＳＴが生成される。
【０００７】
有限状態変換器を実行時に結合することで実用的な形態システム（ｍｏｒｐｈｏｌｏｇｙ  ｓｙｓｔｅｍｓ）が得られるが、形態処理の時間がかなり長くなる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、規則のコアに対するコア有限状態変換器（ｃｏｒｅ  Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｔｒａｎｓｄｕｃｅｒ）と規則の文脈に対する文脈有限状態変換器（ｃｏｎｔｅｘｔ  Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｔｒａｎｓｄｕｃｅｒ）を形成する正字法規則（ｏｒｔｈｏｇｒａｐｈｙ  ｒｕｌｅｓ）をコンパイルする方法を提案することを目的とする。
【課題を解決するための手段】
【０００９】
コア有限状態変換器は、規則の演算子に関連付けられたテンプレートに基づき、文脈有限状態変換器と結合され、規則有限状態変換器（ｒｕｌｅ  Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｔｒａｎｓｄｕｃｅｒ）を形成する。その後、この規則有限状態変換器を使用して、実行可能有限状態変換器（ｅｘｅｃｕｔａｂｌｅ  Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｔｒａｎｓｄｕｃｅｒ）を作成する。一実施形態では、規則有限状態変換器は、さらに、有限状態変換器の共通コアに基づいて結合され、コア有限状態変換器を形成する。その後、複数のコア有限状態変換器が結合され、正字法規則の集合に対する集合有限状態変換器（ｓｅｔ  Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｔｒａｎｓｄｕｃｅｒ）を形成する。その後、この集合有限状態変換器は、実行可能有限状態変換器に変換される。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明の実施の態様について説明する。
図１は、本発明を実装できる好適なコンピューティングシステム環境の一実施例を示す図である。コンピューティングシステム環境１００は、適当なコンピューティング環境の一例にすぎず、本発明の用途又は機能性の範囲に関する制限を示唆する意図はない。コンピューティング環境１００は、オペレーティング環境例１００に示されている１つのコンポーネント又はその組み合わせに関係する依存関係又は要求条件があるものと解釈すべきでない。
【００１１】
本発明は、他の数多くの汎用又は専用コンピューティングシステム環境又は構成で動作する。本発明とともに使用するのに好適と思われるよく知られているコンピューティングシステム、環境、及び／又は構成の例として、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、電話システム、上述したシステム又はデバイスを含む分散コンピューティング環境などがあるが、これらに限定されない。
【００１２】
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的背景状況において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、通信ネットワークを通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施するものである。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスなどのローカルコンピュータとリモートコンピュータの両方の記憶媒体に配置される。
【００１３】
図１を参照すると、本発明を実装するシステム例は、汎用コンピューティングデバイスをコンピュータ１１０の形で備えている。コンピュータ１１０が備えるコンポーネントとしては、処理ユニット１２０、システムメモリ１３０、及びシステムメモリを備えるさまざまなシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１などがあるが、これらに限定されない。システムバス１２１は、メモリバス又はメモリコントローラ、周辺機器バス、及び各種バスアーキテクチャを採用するローカルバスを含む数種類のバス構造のどれでもよい。例えば、このようなアーキテクチャとしては、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、及びＭｅｚｚａｎｉｎｅバスとも呼ばれるＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスがあるが、これらに限定されない。
【００１４】
コンピュータ１１０は通常、さまざまなコンピュータ読取可能な媒体を含む。このコンピュータ読取可能な媒体は、コンピュータ１１０によってアクセスできる媒体であればどのような媒体でも使用でき、揮発性及び不揮発性媒体、着脱式及び固定式媒体を含む。例えば、コンピュータ読取可能な媒体は、コンピュータ記憶媒体及び通信媒体を含むことができるが、これらに限定されない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラムモジュール、又はその他のデータなどの情報を格納する方法又は技術で実装される揮発性及び不揮発性、着脱式及び固定式媒体を含む。コンピュータ記憶媒体としては、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又はその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多目的ディスク（ＤＶＤ）又はその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又はその他の磁気記憶デバイス、又は目的の情報を格納するために使用することができコンピュータ１１０によりアクセスできるその他の媒体がある。通信媒体は、通常、搬送波又はその他のトランスポートメカニズムなどの変調データ信号により、コンピュータ可読命令、データ構造体、プログラムモジュール、又はその他のデータを実現するものであり、さらに情報配信媒体を含む。「変調データ信号」という用語は、信号内の情報を符号化する方法でその特性のうち１つ又は複数が設定又は変更された信号を意味する。例えば、通信媒体としては、有線ネットワーク又は直接配線接続などの有線媒体、及び音響、ＲＦ、赤外線、及びその他の無線媒体などの無線媒体があるが、これらに限定されない。上記のいずれの組み合わせもコンピュータ読取可能な媒体の範囲に収まらなければならない。
【００１５】
システムメモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１及びランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性及び／又は不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ１１０内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム１３３（ＢＩＯＳ）は通常、ＲＯＭ１３１内に格納される。通常、ＲＡＭ１３２には、処理ユニット１２０に直接アクセス可能な、かつ／又は処理ユニット１２０により現在操作されているデータ及び／又はプログラムモジュールを格納する。例えば、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、及びプログラムデータ１３７を示しているが、これらに限定されない。
【００１６】
コンピュータ１１０はさらに、その他の着脱式／固定式の揮発性／不揮発性コンピュータ記憶媒体を備えることもできる。これは例にすぎないが、図１は、固定式の不揮発性磁気媒体の読み書きを行うハードディスクドライブ１４１、着脱式の不揮発性磁気ディスク１５２の読み書きを行う磁気ディスクドライブ１５１、及びＣＤ−ＲＯＭ又はその他の光媒体などの着脱式の不揮発性光ディスク１５６の読み書きを行う光ディスクドライブ１５５を示している。操作環境例で使用できる他の着脱式／固定式の揮発性／不揮発性コンピュータ記憶媒体としては、磁気テープカセット、フラッシュメモリカード、デジタル多目的ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどがあるが、これらに限定されない。ハードディスクドライブ１４１は、通常、インターフェース１４０などの固定式のメモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１及び光ディスクドライブ１５５は、通常、インターフェース１５０などの着脱式のメモリインターフェースによりシステムバス１２１に接続される。
【００１７】
図１に示されている上述したドライブ及び関連するコンピュータ記憶媒体は、コンピュータ１１０用のコンピュータ可読命令、データ構造体、プログラムモジュール、及びその他のデータを格納する機能を備える。例えば、図１では、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、及びプログラムデータ１４７を格納するものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、及びプログラムデータ１３７と同じである場合もあれば異なる場合もあることに注意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、及びプログラムデータ１４７に対しては、ここで、異なる番号を割り当てて、最低でも、それが異なるコピーであることを示している。
【００１８】
ユーザは、キーボード１６２、マイク１６３、及びマウス、トラックボール、タッチパッドなどのポインティングデバイス１６１などの入力デバイスを介してコンピュータ１１０にコマンド及び情報を入力できる。他の入力デバイス（図示せず）としては、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらの入力デバイスやその他の入力デバイスは、システムバスに結合されているユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されることが多いが、パラレルポート、ゲームポート、又はユニバーサルシリアルバス（ＵＳＢ）などの他のインターフェース及びバス構造により接続することもできる。モニタ１９１又はその他の種類の表示デバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタの他に、コンピュータはさらにスピーカー１９７及びプリンタ１９６などの他の周辺出力デバイスも備えることができ、これらは出力周辺インターフェース１９５を介して接続することができる。
【００１９】
コンピュータ１１０は、リモートコンピュータ１８０などの１つ又は複数のリモートコンピュータへの論理接続を使用してネットワーク環境で動作する。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルドデバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、又はその他の共通ネットワークノードでもよく、通常は、コンピュータ１１０に関係する上述の要素の多く又はすべてを含む。図１に示されている論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１とワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、及びインターネットでは一般的なものである。
【００２０】
ＬＡＮネットワーキング環境で使用する場合、コンピュータ１１０はネットワークインターフェース又はアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用する場合、コンピュータ１１０は通常、モデム１７２又はインターネットなどのＷＡＮ１７３上で通信を確立するための他の手段を備える。モデム１７２は、内蔵でも外付けでもよいが、ユーザ入力インターフェース１６０又はその他の適切なメカニズムを介してシステムバス１２１に接続できる。ネットワーク環境では、コンピュータ１１０又はその一部に関して述べたプログラムモジュールは、リモートメモリ記憶デバイスに格納できる。例えば、図１には、リモートアプリケーションプログラム１８５がリモートコンピュータ１８０に常駐しているように示されている。図示されているネットワーク接続は一例であり、コンピュータ間に通信リンクを確立するための他の手段を使用できることは理解されるであろう。
【００２１】
本発明は、実行時に効率よく動作して表層言語形式を語彙形式に変換する有限状態変換器を構成する方法を提示する。
【００２２】
図２及び図３は、それぞれ、本発明の実施形態の基本動作を示す単純なブロック図及び流れ図を示している。図３のステップ３００では、表層形式から語彙形式への可能な変換を記述するため言語学者によって一組の正字法規則２００が書かれている。既定では、表層形式による各文字は語彙形式によるそれと同じ文字にマッピングされるとする。各規則で、この既定のマッピングの例外を記述する。
【００２３】
一実施形態では、各規則は、既定でないマッピング、左文脈、及び右文脈を定義するコアを含む。これらの要素はそれぞれ、コロンで区切られた文字のペアとして書かれ、左側の文字は表層形式による文字を表し、右側の文字は語彙形式による文字を表す。したがって、コア「ｉ：ｙ」は、表層形式の文字「ｉ」から語彙形式の文字「ｙ」へのマッピングを示す。同様に、「ａ：ｂ」の左文脈は、表層形式によるコア文字の左に「ａ」があり、語彙形式によるコア文字の右に「ｂ」があることを示す。通常、左文脈の表層形式による文字と語彙形式の文字は互いに、「ａ：ａ」というように、一致する。右文脈の表層形式による文字と語彙形式による文字も、互いに一致する傾向にある。
【００２４】
一実施形態では、規則が存在しうる、存在しなければならない、コアの表層形式の文字が見つかった場合に存在しなければならない、又は存在してはならない、に基づいて、４種類の規則がある。これらの規則はそれぞれ、別々の演算子−＞、＜−＞、＜−、及び＞＜により表される。通常、これらの規則は以下の形式で書かれる。
【００２５】
コア演算子左文脈−−−右文脈
例えば、以下のルール：
ａ：ｂ−＞ｃ：ｃ−−−ｄ：ｄ
は、「ａ」から「ｂ」へのコアのマッピングを表しており、ｃ：ｃの左文脈とｄ：ｄの左文脈がある場合に存在しうる。
【００２６】
正字法規則２００は、コンパイラ２０２に送られる。ステップ３０２で、コンパイラ２０２内の規則ＦＳＴ形成２０４により有限状態変換器が生成される。規則ＦＳＴ形成２０４は、まず、ステップ３０１で各規則を解析し、各規則のコア、演算子、左文脈、及び右文脈を識別する。ステップ３０２で、規則ＦＳＴ形成２０４により、各コア、左文脈、及び右文脈に対し別々のＦＳＴが形成される。次に、規則の演算子に関連付けられているテンプレートを使用して、各規則の左文脈ＦＳＴを規則のそれぞれのコアＦＳＴと結合する。この結合されたＦＳＴは、さらに、同じテンプレートに基づき、規則のそれぞれの右文脈ＦＳＴと結合され、規則ＦＳＴが形成される。
【００２７】
４種類の演算子があり得るので、演算子の種類毎に１つずつ、４つの別々のテンプレートがある。
【００２８】
図４は、「存在しうる」演算子に対するテンプレート有限状態変換器を示す図である。テンプレートは、３つの状態４００、４０６、及び４１４を含む。状態４００及び４０６は、有限状態変換器がそれらの状態で終わるときに「成功」の値を生成する受理状態を表す。状態４１４は、有限状態変換器がその状態で終わるときに「失敗」の値を生成する棄却状態を表す。一般に、本発明に示している図では、受理状態は２つの同心円で表されており、棄却状態は単一の円で表されている。
【００２９】
図４のテンプレートで、規則の左文脈はＬｓ：Ｌ１として示されているように状態４００と状態４０６の間の遷移４０２に沿って挿入される。左文脈は、さらに、自己ループ遷移（ｓｅｌｆ  ｌｏｏｐ  ｔｒａｎｓｉｔｉｏｎ）４０８に沿って挿入され、状態４０６から出て、状態４０６に戻る。したがって、有限状態変換器では、状態変換器が状態４００又は状態４０６にある間に左文脈が表層形式及び語彙形式で出現した場合、有限状態変換器は状態４０６に移動する。状態４００はさらに既定の遷移４０４を含み、この遷移により、有限状態変換器は左文脈が出現するまで状態４００をループする。
【００３０】
次に、コアＣｓ：Ｃｌが、状態４０６と状態４１４の間の遷移４１２に沿って挿入される。コアＣｓの表層形式を使用し、「＊」文字とのペアを形成して、語彙形式による可能な任意の文字を表す。次に、このペアは、状態４０６から状態４１２への遷移４１０に沿って挿入される。そこで、有限状態変換器は、状態４０６にある場合、コアが出現した場合に状態４１４に遷移し、左文脈が再び出現した場合に状態４０６に戻り、他の値が出現した場合に状態４００に戻る。
【００３１】
右文脈Ｒｓ：Ｒｌが、状態４１４と状態４００の間の遷移４１６に挿入される。有限状態変換器が状態４１４にある間に右文脈が出現した場合、有限状態変換器は状態４００に戻る。しかし、状態４１４で他の値が出現した場合、有限状態変換器は失敗し、棄却状態４１４で終わる。
【００３２】
図５は、「存在してはならない」演算子に対するテンプレート有限状態変換器を示す図である。テンプレートには、３つの受理状態５００、５０２、及び５０４と１つの棄却状態５０６が含まれる。左文脈Ｌｓ：Ｌｌは、状態図５００と状態５０２の間の遷移５０８と状態５０２に対する自己ループ遷移５１０に挿入される。コアＣｓ：Ｃｌは、状態５０２と５０４の間の遷移５１２に挿入され、右文脈Ｒｓ：Ｒｌは、状態５０４と５０６の間に挿入される。
【００３３】
動作時に、図５の有限状態変換器は、状態５００又は状態５０２にある間に左文脈が出現した場合に状態５０２に遷移する。状態５０２にある間にコアが出現した場合、有限状態変換器は状態５０４に遷移する。状態５０２にある間にコアも左文脈も出現しない場合、有限状態変換器は遷移５１２に沿って状態５００に戻る。状態５０４にある間に、右文脈が出現した場合、有限状態変換器は遷移５１４を辿り、棄却状態５０６に進み、左文脈、コア、及び右文脈のシーケンスに遭遇しているため有限状態変換器は失敗する。状態５０４で右文脈が出現しない場合、遷移５１６は状態５００に進む。
【００３４】
図６は、コアの意味論的形式が出現した場合に「存在しなければならない」演算子のテンプレートを示す図である。図６のテンプレートは、受理状態６００及び６０２及び棄却状態６０４を含むが、これらは図４の「存在しうる」テンプレートの状態４００、４０６、及び４１４に類似している。このテンプレートは、さらに、受理状態６０６及び棄却状態６０８を含む。左文脈Ｌｓ：Ｌｌが、状態６０２で終わる遷移６１０、６１２、及び６１４に挿入される。コアＣｓ：Ｃｌが遷移６１６に挿入され、コアＣｓの表層形式による文字が語彙形式に対する「＊」文字と結合され、遷移６１８に挿入される。右文脈Ｒｓ：Ｒｌが、遷移６２０と遷移６２２に挿入される。
【００３５】
実行されると、図６の有限状態変換器は、左文脈に遭遇したときに状態６００から状態６０２に進む。左文脈が出現しなければ、遷移６２４に沿って状態６００をループする。状態６０２で、有限状態変換器は、コアが出現すれば状態６０４に進み、左文脈が再び出現すれば状態６０２をループし、コアの語彙形式と異なる値を持つコアの表層形式の文字が出現すれば状態６０６に遷移し、これら以外のすべての場合については状態６００に戻る。状態６０４で、有限状態変換器は、右文脈が出現すれば受理状態６００に戻る。右文脈が出現しない場合、有限状態変換器は状態６０４で失敗する。
【００３６】
状態６０６で、有限状態変換器は、右文脈が出現すれば失敗状態６０８に遷移する。そこで、シーケンスに左文脈が含まれ、コアの表層形式とコアの語彙形式以外の文字とがペアになっており、右文脈が出現した場合、テンプレートは状態６０８で失敗する。状態６０６で左文脈が出現した場合、有限状態変換器は状態６０２に戻る。状態６０６でこれ以外の値があった場合、有限状態変換器は既定の遷移６２６に沿って状態６００に戻る。
【００３７】
図７は、「存在しなければならない」演算子に対するテンプレートを示す図である。このテンプレートは、図６のテンプレートに似ており、３つの受理状態７００、７０２、及び７０６及び２つの棄却状態７０４及び７０８を含む。左文脈は、遷移７１０、７１２、及び７１４で状態７０２に挿入され、コアは、遷移７１６で状態７０４に挿入され、右文脈は、遷移７１８で状態７００に挿入され、遷移７２０で状態７０８に挿入される。既定の遷移７２２及び７２４が、状態７０２と７０６の間、及び状態７０６と７００の間に入る。
【００３８】
図３のステップ３０２で規則を適切なテンプレートに挿入することにより個々の有限状態変換器が形成された後、図２のコンパイラ２０２の規則結合器２０６により、各コアに対する個々の有限状態変換器がコア別に結合される。このような有限状態変換器の結合の一例が図８、図９、及び図１０に示されている。図８は、コア「ａ：ｂ」の第１の有限状態変換器を示しており、図９は、コア「ａ：ｂ」の第２の有限状態変換器を示している。コア「ａ：ｂ」の結合有限状態変換器は、図１０に示されている。
【００３９】
図８に示されている有限状態変換器は、規則
ａ：ｂ−＞ｃ：ｃ−−−ｄ：ｄ
を表しており、図９に示されている有限状態変換器は、規則
ａ：ｂ＜−ｄ：ｄ−−−ｅ：ｅ
を表している。
【００４０】
これらの規則に関して２点注意すべきである。第１に、これらは異なる演算子を伴うことである。本発明では、有限状態変換器はどのような演算子についても、ステップ３０４で結合できる。第２に、図８の有限状態変換器の規則の右文脈は、図９の有限状態変換器の左文脈を形成するということである。したがって、これらの規則は逐次実行される。
【００４１】
図８及び図９の有限状態変換器を結合する第１のステップでは、初期状態８００及び９００を結合して図１０の有限状態変換器の単一の初期状態１０００を形成する。その後、図８の状態８０２及び８０４は図１０の有限状態変換器に状態１００２及び１００４として挿入され、図９の状態９０２、９０４、９０６、及び９０８はそれぞれ状態１００６、１００８、１０１０、及び１０１２として挿入される。初期有限状態変換器内の状態間の遷移は、２、３例外がある結合有限状態変換器内に保持される。第１に、別の初期状態が単一の初期状態１０００により置き換えられているため、初期状態８００及び９００への遷移及び初期状態８００及び９００からの遷移は初期状態１０００への遷移及び初期状態１０００からの遷移に変更される。第２に、図８の有限状態変換器の右文脈は図９の有限状態変換器の左文脈であるため、図８の有限状態変換器の右文脈に対する状態８０４から状態８００への遷移８０６は、初期状態１０００ではなく状態１００６で終了するように、結合有限状態変換器内で変更される。これにより、表層シーケンス「ｃａｄａｅ」は、状態１０００、１００２、１００４、１００６、１００８と進み、状態１０００に戻ることにより、「ｃａｄ」と「ｄａｅ」の両方に対する状態を辿ることができる。
【００４２】
最後に、コア遷移の前の各状態は、すべての受理状態から左文脈遷移を通って到達可能でなければならない。そのために、遷移を付け加える。特に、左文脈「ｃ：ｃ」を使用できるようにするため状態１００２への遷移１０１４及び１０１６が加えられ、左文脈「ｄ：ｄ」を使用できるようにするため状態１００６への遷移１０１８が加えられる。
【００４３】
同じ初期状態を共有し、各受理状態からコア遷移前の状態への左文脈遷移が必ずあるようにし、右文脈遷移を適切に接続して規則が次から次へとつながるようにすることで、同じコアに対する追加有限状態変換器を図１０の有限状態変換器と結合できることに注意されたい。
【００４４】
図１１、図１２、及び図１３は、第２のコア「ｈ：ｉ」について有限状態変換器を結合する他の例を示す図である。図１１の有限状態変換器は、規則
ｈ：ｉ−＞ｇ：ｇ−−−ｊ：ｊ
に対するものであり、図１２の有限状態変換器は、規則
ｈ：ｉ−＞ｋ：ｋ−−−ｎ：ｎ
に対するものである。
【００４５】
前の例のように、図１１及び図１２の有限状態変換器の別々の初期状態１１００及び１２００は、それぞれ、結合されて、図１３の有限状態変換器の単一の初期状態１３００となる。個々の初期状態への遷移及び個々の初期状態からの遷移は、単一の初期状態１３００への遷移及び単一の初期状態１３００からの遷移に変更される。これらの規則は次々につながっていないので、各規則の右文脈は初期状態１３００に戻ることに注意されたい。
【００４６】
さらに、受理状態から左文脈を出現させられるように、状態１３０６及び１３０８への遷移１３０２及び１３０４が追加される。遷移１３０２では、受理状態１３０６から状態１３０８への左文脈「ｇ：ｇ」を使用できる。遷移１３０４では、受理状態１３０８から状態１３０６への左文脈「ｋ：ｋ」を使用できる。
【００４７】
特定のコアに対する有限状態変換器が結合され単一の有限状態変換器にした後、結合コア有限状態変換器を最小にする任意選択のステップが、図２の最小化器（ｍｉｎｉｍｉｚｅｒ）２０８によりステップ３０６で実行される。このような最小化手法は、当業でよく知られており、到達不可能な状態を除去し、等価な状態が同じ入力値について同じ一組の状態に遷移する等価な状態を結合することを伴う。
【００４８】
図１４は、有限状態変換器を最小にする従来技術による一手法の流れ図である。このプロセスはステップ１４００から始まり、状態は、受理状態であるのか、棄却状態であるのかに基づいて２つのグループのうちの１つに分けられる。ステップ１４０２で、各グループ内の状態は、与えられた表層形式／語彙形式のペアについて遷移先のグループに基づきサブグループに分けられる。そこで、受理グループ内の状態に遷移する状態は、一方のサブグループに入れられ、棄却グループ内の状態に遷移する状態は、他方のサブグループに入れられる。
【００４９】
この方法では、ステップ１４０４で、少なくとも２つのサブグループが可能な表層／語彙形式のペアのどれかについて形成できるかどうかを調べる。サブグループを形成することが可能であれば、ステップ１４０６でグループは分割され、各サブグループは独立のグループとなる。その後、このプロセスはステップ１４０２に戻り、グループの集まりをさらに分割できるかどうかを調べる。ステップ１４０４でグループはもはや分割できなくなっている場合、各グループ内の状態が結合されて単一の状態となり、ステップ１４０８で、個々の状態への遷移及び個々の状態からの遷移が、その単一の結合された状態へ、またその単一の結合された状態から行われる。
【００５０】
コア有限状態変換器は、ステップ３０６で最小化された後、図２のコア結合器２１０により結合されて単一の有限状態変換器になる。図１５は、図１０及び図１３のコア有限状態変換器を結合することにより形成される単一の有限状態変換器を示す図である。
【００５１】
有限状態変換器を結合してコア有限状態変換器を形成した後、コア有限状態変換器を結合するステップで、各コア有限状態変換器の初期状態を単一状態に結合する。そうして、状態１０００及び１３００は図１５で状態１５００になり、状態１０００及び１３００への遷移及び状態１０００及び１３００からの遷移は状態１５００への遷移及び状態１５００からの遷移となる。
【００５２】
左文脈を使用できるためには、各左文脈の遷移は、コア遷移の前に各受理状態から適切な状態に届かなければならない。したがって、可能な左文脈のそれぞれを使用できるようにするため、多数の遷移を加えなければならない。例えば、状態１５０６への左文脈「ｇ：ｇ」を使用できるようにするため、遷移１５０２及び１５０４を追加する。さらに、コア有限状態変換器を形成するときに行ったように規則を次々につなげられるようにするには、右文脈の遷移を修正する必要がある。
【００５３】
図１５の有限状態変換器は、一組の規則に対する単一の有限状態変換器の小さな例であることに注意されたい。実際には、単一有限状態変換器はかなり大きくなる。
【００５４】
有限状態変換器は、ステップ３０８で形成された後、最小化器２１２を使用してステップ３１０で最小化される。このため、集合有限状態変換器が得られるが、これは正字法規則２００のすべてを表す単一有限状態変換器である。その後、この集合有限状態変換器は、ステップ３１２で実行可能有限状態変換器２１４に変換される。実行可能有限状態変換器は、実行時に直接実行することができる。実行時に、表層形式２１６の文字列が実行可能有限状態変換器２１４に適用される。表層形式に基づき、有限状態変換器２１４は、状態間を移動し、それにより、語彙形式２１８を出力する。すべての規則に対して単一の有限状態変換器があるため、実行時での実行は従来技術のシステムよりもかなり高速化される。
【００５５】
本発明は、特定の実施形態を参照しながら説明したが、当業者は本発明の精神と範囲を逸脱することなく形式と内容に変更を加えられることを理解できるであろう。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施形態を実施できる好適なコンピューティング環境のブロック図である。
【図２】本発明により有限状態変換器を形成し、使用するシステムのブロック図である。
【図３】本発明により有限状態変換器を形成する方法の流れ図である。
【図４】「存在しうる」有限状態変換器（"may occur" Finite State Transducer）の状態図である。
【図５】「存在しなければならない」有限状態変換器（"must occur" Finite State Transducer）の状態図である。
【図６】「コア表層文字が出現した場合に存在しなければならない」有限状態変換器（"must occur if a core surface character occurs" Finite State Transducer）の状態図である。
【図７】「存在してはならない」有限状態変換器（"must not occur" Finite State Transducer）の状態図である。
【図８】コアを持つ規則に対する有限状態変換器を示す図である。
【図９】図８と同じコアを持つ第２の規則に対する有限状態変換器を示す図である。
【図１０】図８及び９の有限状態変換器を結合することにより形成される有限状態変換器を示す図である。
【図１１】コアを持つ規則に対する有限状態変換器を示す図である。
【図１２】図１１と同じコアを持つ第２の規則に対する有限状態変換器を示す図である。
【図１３】図１１及び１２の有限状態変換器を結合することにより形成される有限状態変換器を示す図である。
【図１４】有限状態変換器を最小にする一方法の流れ図である。
【図１５】図１０及び１３の有限状態変換器を結合することにより形成される有限状態変換器を示す図である。
【符号の説明】
【００５７】
１００  コンピューティングシステム環境
１１０  コンピュータ
１２０  処理ユニット
１２１  システムバス
１３０  システムメモリ
１３１  読み取り専用メモリ（ＲＯＭ）
１３２  ランダムアクセスメモリ（ＲＡＭ）
１３３  基本入出力システム
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  その他のプログラムモジュール
１３７  プログラムデータ
１４０  インターフェース
１４１  ハードディスクドライブ
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  その他のプログラムモジュール
１４７  プログラムデータ
１５０  インターフェース
１５１  磁気ディスクドライブ
１５２  着脱式な不揮発性磁気ディスク
１５５  光ディスクドライブ
１５６  着脱式な不揮発性光ディスク
１６０  ユーザ入力インターフェース
１６１  ポインティングデバイス
１６２  キーボード
１６３  マイク
１７０  アダプタ
１７１  ローカルエリアネットワーク（ＬＡＮ）
１７２  モデム
１７３  ワイドエリアネットワーク（ＷＡＮ）
１８０  リモートコンピュータ
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力周辺インターフェース
１９６  プリンタ
１９７  スピーカー
２００  正字法規則
２０２  コンパイラ
２０４  規則ＦＳＴ形成
２０６  規則結合器
２０８  最小化器
２１０  コア結合器
２１４  実行可能有限状態変換器
２１６  表層形式
２１８  語彙形式
４００、４０６、４１４  状態
４０８  自己ループ遷移
４１２  遷移
５００、５０２、５０４  受理状態
５０６  棄却状態
６００、６０２  受理状態
６０４  棄却状態
６１０、６１２、６１４  遷移
６２６  遷移
７００、７０２、７０６  受理状態
７０４、７０８  棄却状態
７１０、７１２、７１４  遷移
７１６  遷移
７１８  遷移
７２０  遷移
７２２、７２４  遷移
８０２、８０４  状態
１００２、１００４  状態
９０２、９０４、９０６、９０８  状態
１００６、１００８、１０１０、１０１２  状態
１１００、１２００  初期状態
１３００  初期状態
１３０２、１３０４  遷移
１３０６、１３０８  状態
１５００  状態
１５０２、１５０４  遷移
１５０６  状態
【図１】
2008108266.tif 000003
【図２】
2008108266.tif 000004
【図３】
2008108266.tif 000005
【図４】
2008108266.tif 000006
【図５】
2008108266.tif 000007
【図６】
2008108266.tif 000008
【図７】
2008108266.tif 000009
【図８】
2008108266.tif 000010
【図９】
2008108266.tif 000011
【図１０】
2008108266.tif 000012
【図１１】
2008108266.tif 000013
【図１２】
2008108266.tif 000014
【図１３】
2008108266.tif 000015
【図１４】
2008108266.tif 000016
【図１５】
2008108266.tif 000017