(57)【要約】【課題】ユーザに認識文法モデルの作成方法、修正方法を分かり易い方法で示すことができる認識文法モデル作成方法及び検査方法を提供する。【解決手段】認識文法モデル作成部１０１で、認識可能な文及び該文を構成する文字列が定義された認識文法モデル１０３を作成する。文法検査部１０２では、文データ１０４を入力し、かつ前記認識文法モデル１０３を入力し、該文データ１０４と前記認識文法モデル１０３との対応関係を調べ、前記文データ１０４を、前記認識文法モデルにおいて定義されている定義部分１０６と、定義されていない未定義部分１０７に分類して検査結果１０５として出力する。さらに、検査結果１０５を提示部に提示することもできる。【選択図】  図１
2004151547.tif 000002
【特許請求の範囲】
【請求項１】
文データを入力し、該文データと認識文法モデルとの対応関係を調べ、
前記文データを、前記認識文法モデルにおいて定義されている定義部分と、定義されていない未定義部分に分類して検査結果として出力する、
ことを特徴とする認識文法モデル作成方法。
【請求項２】
音声認識を行う際に、認識可能な文及び該文を構成する文字列が定義された認識文法モデルを作成し、
文データを入力し、該文データと前記認識文法モデルとの対応関係を調べ、
前記文データを、前記認識文法モデルにおいて定義されている定義部分と、定義されていない未定義部分に分類して検査結果として出力する、
ことを特徴とする認識文法モデル作成方法。
【請求項３】
さらに、前記検査結果を提示部に提示する、ことを特徴とする請求項１又は２記載の認識文法モデル作成方法。
【請求項４】
前記文データが文字列によって記述されていることを特徴とする請求項１乃至請求項３のいずれか１つに記載の認識文法モデル作成方法。
【請求項５】
前記定義部分が、前記文データの先頭から前記認識文法モデルによって連続して定義されている部分からなり、前記未定義部分が、前記文データから前記定義部分を除いた部分からなることを特徴とする請求項１乃至請求項４のいずれか１つに記載の認識文法モデル作成方法。
【請求項６】
前記文データの中から少なくとも一部分を取り除いて順序を変えずつないだ部分を第２の文データとして、前記第２の文データが前記認識文法モデルによって定義されている場合、前記定義部分が前記第２の文データからなり、前記未定義部分が前記文データから前記定義部分を除いた部分からなることを特徴とする請求項１乃至請求項４のいずれか１つに記載の認識文法モデル作成方法。
【請求項７】
前記文データを複数部分に分割して、少なくとも１箇所の分割部分に任意の文データを挿入して、順序を変えずにつなぎ合わせたものを第３の文データとして、前記第３の文データが前記認識文法モデルによって定義されている場合、前記定義部分が前記文データからなり、前記未定義部分が前記第３の文データから前記定義部分を除いた部分からなることを特徴とする請求項１乃至請求項４のいずれか１つに記載の認識文法モデル作成方法。
【請求項８】
前記文データが前記認識文法モデルにおいて定義されていない場合に、前記文データを前記認識文法モデルにおいて定義されている定義部分と、定義されていない未定義部分に分類することを特徴とする請求項５乃至請求項７のいずれか１つに記載の認識文法モデル作成方法。
【請求項９】
前記定義部分と前記未定義部分を異なる様式で提示することを特徴とする請求項１乃至請求項８のいずれか１つに記載の認識文法モデル作成方法。
【請求項１０】
前記定義部分と前記未定義部分を異なる場所に表示することを特徴とする請求項９記載の認識文法モデル作成方法。
【請求項１１】
前記定義部分を表示して、前記未定義部分を表示しないことを特徴とする請求項９記載の認識文法モデル作成方法。
【請求項１２】
前記定義部分を表示しないで、前記未定義部分を表示することを特徴とする請求項９記載の認識文法モデル作成方法。
【請求項１３】
前記定義部分と前記未定義部分を異なる色で表示することを特徴とする請求項９記載の認識文法モデル作成方法。
【請求項１４】
前記定義部分と前記未定義部分を異なるフォントで表示することを特徴とする請求項９記載の認識文法モデル作成方法。
【請求項１５】
前記定義部分と前記未定義部分を異なる羅線をつけて表示することを特徴とする請求項９記載の認識文法モデル作成方法。
【請求項１６】
前記定義部分を、１つまたは複数の別の記号に置き換えて提示することを特徴とする請求項９乃至請求項１１及び請求項１３乃至請求項１５のいずれか１つに記載の認識文法モデル作成方法。
【請求項１７】
グラフィカルユーザインターフェイス（ＧＵＩ）上で、前記文データを入力する第１の入力手段と、前記の作成された認識文法モデルを入力する第２の入力手段と、前記文データを前記認識文法モデルにおいて定義されている前記定義部分と、定義されていない前記未定義部分に分類し、前記検査結果として出力する手段と、を具備することを特徴とする請求項１乃至請求項１６のいずれか１つに記載の認識文法モデル作成方法。
【請求項１８】
文データを入力する一方、認識文法モデルを入力し、
前記文データを前記認識文法モデルにおいて定義されている定義部分と、定義されていない未定義部分に分類して検査結果として出力する、
ことを特徴とする認識文法モデル検査方法。
【請求項１９】
音声認識を行う際に、認識可能な文字列が定義された認識文法モデルを作成し、
文データを入力する一方、前記の作成された認識文法モデルを入力し、
前記文データを、前記認識文法モデルにおいて定義されている定義部分と、定義されていない未定義部分に分類して検査結果として出力する、
ことを特徴とする認識文法モデル検査方法。
【請求項２０】
さらに、前記検査結果を提示部に提示する、ことを特徴とする請求項１８又は請求項１９いずれか１つに記載の認識文法モデル検査方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音声認識を行う際に、認識可能な１つ以上の文が定義された認識文法モデルを作成する認識文法モデル作成方法及び検査方法に関する。
【０００２】
【従来の技術】
例えば、非特許文献１及び非特許文献２では、認識文法モデル作成ツールとして、グラマーテストツール「Ｇｒａｍｍａｒ  ｔｅｓｔ  ｔｏｏｌ」がある。
【０００３】
「Ｇｒａｍｍａｒ  ｔｅｓｔ  ｔｏｏｌ」は、文字列入力フィールドに１文をキーボードから入力して、入力した１文が認識文法モデルによって定義されているか、定義されていないかを判定することができる。判定結果は、有効「ｖａｌｉｄ」または無効「ｉｎｖａｌｉｄ」という単語と、それに続く入力した文字列によって表示される。ｖａｌｉｄが定義されている状態を示して、ｉｎｖａｌｉｄが定義されていない状態を示す。また、ファイルに改行で区切った複数の文字列を記述して、ファイルを指定することによって、複数の文が定義されているか、定義されていないか判定することができる。この場合も、判定結果はｖａｌｉｄまたはｉｎｖａｌｉｄという単語と、それに続く入力した各文に対応する文字列によって表示される。
【０００４】
【非特許文献１】
“ウエッブスフェアボイスサーバ２．０インプリメーションガイド”（ＷｅｂＳｐｈｅｒｅ  Ｖｏｉｃｅ  Ｓｅｒｖｅｒ  ２．０  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  Ｇｕｉｄｅ）６．３．７、［ｏｎｌｉｎｅ］、日本ＩＢＭ、［平成１４年８月２７日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｒｅｄｂｏｏｋｓ．ｉｂｍ．ｃｏｍ／ｐｕｂｓ／ｐｄｆｓ／ｒｅｄｂｏｏｋｓ／ｓｇ２４６５３７．ｐｄｆ＞
【０００５】
【非特許文献２】
“アイビーエム  ウエッブスフェアボイスツールキット２．０  ヘルプ”（ＩＢＭ  ＷｅｂＳｐｈｅｒｅ  Ｖｏｉｃｅ  Ｔｏｏｌｋｉｔ  ２．０  Ｈｅｌｐ）  Ｔａｓｋｓ，Ｔｅｓｔｉｎｇ  ｇｒａｍｍａｒｓ，Ｔｅｓｔ  ａ  ｇｒａｍｍａｒ、［ｏｎｌｉｎｅ］、ＩＢＭ、［平成１４年８月２９日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ１４．ｓｏｆｔｗａｒｅ．ｉｂｍ．ｃｏｍ／ｗｅｂａｐｐ／ｄｏｗｎｌｏａｄ／ｐｒｅｃｏｎｆｉｇ．ｊｓｐ？ｉｄ＝２００２−０５−０１＋１０％３Ａ３７％３Ａ０９．７８１０１７Ｒ＞
【０００６】
【発明が解決しようとする課題】
しかしながら、前述の「Ｇｒａｍｍａｒ  ｔｅｓｔ  ｔｏｏｌ」では、判定結果は、入力した文が定義されているか、定義されていないかを表すｖａｌｉｄとｉｎｖａｌｉｄの２値で出力されるのみで、入力した文を構成する複数の部分について、どの部分か定義されていて、どの部分が定義されていないかを示す機能はない。
【０００７】
すなわち、従来の技術では、認識文法モデルが、入力した文データを受理するように作成されているか、作成されていないかを判定する技術に留まっている。ユーザが意図した通りに認識文法モデルを作成、修正するために、ユーザに認識文法モデルの作成方法、修正方法を分かり易い方法で提示する技術となっていない。
【０００８】
本発明は、上記の問題に鑑み、ユーザに認識文法モデルの作成方法、修正方法を分かり易い方法で示すことができる認識文法モデル作成方法及び検査方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明に係る認識文法モデル作成方法は、文データを入力し、該文データと認識文法モデルとの対応関係を調べ、前記文データを、前記認識文法モデルにおいて定義されている定義部分と、定義されていない未定義部分に分類して検査結果として出力する、ことを特徴とする。
【００１０】
この発明では、入力した任意の文データにおける定義部分と未定義部分を示すことができ、ユーザはその検査結果に基づいて認識文法モデルを修正する際に、未定義部分とされた部分を認識文法モデルで定義するように書き直すことが可能となる。
【００１１】
本発明に係る認識文法モデル作成方法は、音声認識を行う際に、認識可能な文及び該文を構成する文字列が定義された認識文法モデルを作成し、文データを入力し、該文データと前記認識文法モデルとの対応関係を調べ、前記文データを、前記認識文法モデルにおいて定義されている定義部分と、定義されていない未定義部分に分類して検査結果として出力する、ことを特徴とする。
【００１２】
この発明では、入力した任意の文データにおける定義部分と未定義部分を示すことができ、ユーザはその検査結果に基づいて認識文法モデルを修正する際に、未定義部分とされた部分を認識文法モデルで定義するように書き直すことが可能となる。
【００１３】
さらに本発明は、さらに、前記検査結果を提示部に提示する、ことを特徴とする。
【００１４】
さらに本発明は、前記文データが文字列によって記述されていることを特徴とする。
【００１５】
さらに本発明は、前記定義部分が、前記文データの先頭から前記認識文法モデルによって連続して定義されている部分からなり、前記未定義部分が、前記文データから前記定義部分を除いた部分からなることを特徴とする。
【００１６】
この発明では、入力した文データの先頭からどこまでが認識文法モデルによって定義されている部分であるかを示すことができる。
【００１７】
さらに本発明は、前記文データの中から少なくとも一部分を取り除いて順序を変えずつないだ部分を第２の文データとして、前記第２の文データが前記認識文法モデルによって定義されている場合、前記定義部分が前記第２の文データからなり、前記未定義部分が前記文データから前記定義部分を除いた部分からなることを特徴とする。
【００１８】
この発明では、入力した文データに余計なものが入っている場合に、その余分な部分を取り除けば、認識文法モデルによって定義されている文データと一致するとき、その一部分を除いた文データを定義部分とする。
【００１９】
さらに本発明は、前記文データを複数部分に分割して、少なくとも１箇所の分割部分に任意の文データを挿入して、順序を変えずにつなぎ合わせたものを第３の文データとして、前記第３の文データが前記認識文法モデルによって定義されている場合、前記定義部分が前記文データからなり、前記未定義部分が前記第３の文データから前記定義部分を除いた部分からなることを特徴とする。
【００２０】
この発明では、入力した文データに任意の文データを挿入すれば、認識文法モデルによって定義されている文データと一致するとき、任意の文データが挿入される前の文データを定義部分とする。
【００２１】
さらに本発明は、前記文データが前記認識文法モデルにおいて定義されていない場合に、前記文データを前記認識文法モデルにおいて定義されている定義部分と、定義されていない未定義部分に分類することを特徴とする。
【００２２】
この発明では、まず、入力した文データが認識文法モデルによって定義されている文データと全体的に一致するかどうかを検査して、完全に一致しない場合に、どこが一致している部分、どこが一致していない部分かを分類する。すなわち、入力する文データを認識する場合に、まず完全に一致するかどうかを検査する方が、処理負荷が軽くて済む。これは、一致している場合の方が多いだろうという予想の元に、先ず完全に一致するかどうか見ておいて、一致しない場合だけ、定義部分と未定義部分に分ける処理を行うことで、全体として処理が軽くなるようにしている。
【００２３】
さらに本発明は、前記定義部分と前記未定義部分を異なる様式で提示することを特徴とする。
【００２４】
さらに本発明は、前記定義部分と前記未定義部分を異なる場所に表示することを特徴とする。
【００２５】
さらに本発明は、前記定義部分を表示して、前記未定義部分を表示しないことを特徴とする。
【００２６】
さらに本発明は、前記定義部分を表示しないで、前記未定義部分を表示することを特徴とする。
【００２７】
さらに本発明は、前記定義部分と前記未定義部分を異なる色で表示することを特徴とする。
【００２８】
さらに本発明は、前記定義部分と前記未定義部分を異なるフォントで表示することを特徴とする。
【００２９】
さらに本発明は、前記定義部分と前記未定義部分を異なる羅線をつけて表示することを特徴とする。
【００３０】
さらに本発明は、前記定義部分を、１つまたは複数の別の記号に置き換えて提示することを特徴とする。
【００３１】
さらに本発明は、グラフィカルユーザインターフェイス（ＧＵＩ）上で、前記文データを入力する第１の入力手段と、前記の作成された認識文法モデルを入力する第２の入力手段と、前記文データを前記認識文法モデルにおいて定義されている前記定義部分と、定義されていない前記未定義部分に分類し、前記検査結果として出力する手段と、を具備することを特徴とする。
【００３２】
さらに、認識文法モデルの作成方法に係る本発明は、認識文法モデルの検査方法に係る発明としても成立する。
【００３３】
以上のように本発明では、認識文法モデルによって文データが定義されている部分と、定義されていない部分をユーザに分かり易く示すことができる。すなわち、文字列などで記述された文データにおいて、認識文法モデルによって定義されている部分と、定義されていない部分を求め、異なる場所に表示するまたは、定義されている部分のみを表示する、定義されていない部分のみを表示する、異なる色で表示する、異なるフォントで表示する、異なる羅線をつけて表示するなどを行うことによって、文データが定義されている部分と、定義されていない部分をユーザに分かり易く示すことができる。
【００３４】
ユーザは、認識文法モデルによって、文データが定義されている部分及び、文データが定義されていない部分及び、文データが定義されている部分と定義されていない部分の境界と、認識文法モデルとの対応関係を見ることによって、認識文法モデルを容易に修正することができる。
【００３５】
これにより、ユーザに認識文法モデルの作成方法、修正方法を分かり易い方法で提示する方法を提供することが可能となる。
【００３６】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態について説明する。発明の実施形態を説明する前に、本発明の概要を説明する。
【００３７】
音声認識処理部（音声認識エンジン）における音声認識処理の方法としては、一般的には、入力された音声信号を音響的に解析し、その解析結果として得られたパラメータ（特徴量）を音素レベル単位で音声認識辞書内のデータ（音素の特徴成分を示すデータ）と比較して類似度を計算し、類似度の高い音素を変換処理して文字列を作成する。
【００３８】
このような音声認識処理では、どういう文字列を認識するかということを予め定義しておく必要がある。すなわち、予めどんな文字列を受理するかを定義しておくことで、音声認識エンジンは、音声データを認識処理したときに、定義された認識文字列を結果として出力することができる。
【００３９】
従って、正しく定義された認識文字列を得るために、文及び該文を構成する文字列を正しく定義した認識文法モデルを予め作成しておき、入力として任意の文データを入力した際に、その文データを定義されている部分と定義されていない部分に分類し、検査結果として出力できれば、その検査結果に基づいて未定義な文字列を定義するように認識文法モデルを修正することができ、実用性，汎用性のより高い有用な認識文法モデルを作成することが可能となる。また、その検査結果に基づいて定義されている文字列を未定義にするように認識文法モデルを修正することができ、不要な語を受理しない、実用性のより高い有用な認識文法モデルを作成することが可能となる。
【００４０】
なお、上記の文字列は、少なくとも１つの文字からなるものであり、単語や文節に限定されるものではなく、ユーザが任意に決めることができる。
【００４１】
図１は、本発明の第１の実施形態に係る認識文法モデル作成方法をブロック化して示す図である。
【００４２】
図１の認識文法モデル作成方法では、認識文法モデル作成部１０１と文法検査部１０２とを有している。認識文法モデル作成部１０１では、予め認識文法モデル１０３が作成される。文法検査部１０２は、制御部１０９と分類部１０８からなる。制御部１０９は、認識文法モデル１０３と、文データ１０４の入力を受け、認識文法モデル１０３と文データ１０４の対応関係１１０を調べて、該対応関係１１０を分類部１０８へ渡す。分類部１０８は、対応関係１１０を制御部１０９から受け、文データ１０４を認識文法モデル１０３で定義されている定義部分１０６と、定義されていない未定義部分１０７に分類して、検査結果１０５として出力する。
【００４３】
図１に示した、認識文法モデルの作成方法の動作を説明する。
音声認識を行う際に、認識文法モデル作成部１０１で認識可能な文及び該文を構成する文字列が定義された認識文法モデルを作成し、文法検査部１０２では、文データを入力し、かつ前記認識文法モデルを入力し、該文データと前記認識文法モデルとの対応関係を調べ、前記文データを、前記認識文法モデルにおいて定義されている定義部分と、定義されていない未定義部分に分類して検査結果として出力する。
【００４４】
この実施形態では、入力した任意の文データについて定義部分と未定義部分とに区分して出力することができる。ユーザはその区分した検査結果に基づいて新たに認識文法モデルを作成（又は修正）する際に、未定義部分とされた部分を認識文法モデルで定義することで、より広い範囲の文データに有用な認識文法モデルを作成することが可能となる。また、定義部分とされた部分を認識文法モデルで未定義にすることによって、より狭い範囲の文データに有用な認識文法モデルを作成することが可能となる。
【００４５】
図２は、図１における文法検査部１０２に入力される文データ１０４の一例を示している。
図２において、文データは、文字２０１、文字２０２、文字２０３、文字２０４、によって構成されている。
換言すれば、文データは１つまたは複数の文字Ｗ（１），Ｗ（２）、…Ｗ（Ｎ）によって構成されている。
【００４６】
図３は、図１における認識文法モデル作成部１０１によって作成される認識文法モデル１０３の一例を示している。
【００４７】
図３において、認識文法モデル１０３は、始端ノード４０１、終端ノード４０２、ノード４０３、ノード４０４、始端ノード４０１とノード４０３をつなぐリンク４１１、始端ノード４０１とノード４０３をつなぐリンク４１２、ノード４０３とノード４０４をつなぐリンク４１３、ノード４０４と終端ノード４０２をつなぐリンク４１４、ノード４０４と終端ノード４０２をつなぐリンク４１５、リンク４１１に関連付けられたリンク文データ４２１、リンク４１２に関連付けられたリンク文データ４２２、リンク４１３に関連付けられたリンク文データ４２３、リンク４１４に関連付けられたリンク文データ４２４、リンク４１５に関連付けられたリンク文データ４２５によって構成されている。
【００４８】
上記認識文法モデル１０３には、「本を開く」、「本を閉じる」、「窓を開く」、「窓を閉じる」の４つの文と、「本」、「窓」、「を」、「開く」、「閉じる」の５つのリンク文データ４２１、４２２、４２３、４２４、４２５が定義されている。
【００４９】
換言すれば、認識文法モデルは、始端ノードと、終端ノードと、１つまたは複数のノードと、始端ノードと各ノードをつなぐ各接続あたり１つまたは複数のリンクと、各ノードと各ノードをつなぐ各接続あたり１つまたは複数のリンクと、各ノードと終端ノードをつなぐ各接続あたり１つまたは複数のリンクと、各リンクに関連付けられたリンク文データから構成されている。すなわち、認識文法モデルには、少なくとも１つの文と、該文のそれぞれを構成する少なくとも１つのリンク文データを定義することができる。各リンク文データは、１つまたは複数の文字、すなわち、少なくとも１つの文字によって構成される。
【００５０】
図４は、図３に示したリンク文データ４２５を示している。
図４において、リンク文データ４２５は、文字５０１、文字５０２、文字５０３、によって構成されている。
【００５１】
図５は、文データが認識文法モデルによって定義されているか、定義されていないかを判定するフローチャートを示している。
図５は、本実施形態の動作を説明する際に、図７、図１２、図１７で使われるサブルーチンの元となるものである。すなわち、図７、図１２、図１７で使われるサブルーチンは、図５のサブルーチンを改変して作成されている。
【００５２】
サブルーチンにおいて、ローカルな変数とは、サブルーチンの中でのみ有効な変数であるとして、サブルーチンを再起呼び出ししたときには、また新しく確保される変数であり、サブルーチンが再起呼び出しから戻ったときには、再起呼び出し前に確保したローカルな変数の値は保持されているとする。
サブルーチンにおいて、ローカルなフラグもローカルな変数と同様の扱いであるとする。
【００５３】
図５に示したサブルーチンＺは、引数として、文データと、文データの位置を指す値と、認識文法モデルと、該認識文法モデルを構成する、始端ノード、または終端ノード、またはノードを指す値とを受け取り、引数として受け取った文データが認識文法モデルによって定義されているか、定義されていないかを判定する。
【００５４】
サブルーチンＺの中で使用しているＤＥＦＩＮＥＤは、サブルーチンを呼び出すメインルーチンの中で定義されている変数であり、文データが認識文法モデルによって定義されているか定義されていないかが設定される。変数ＤＥＦＩＮＥＤは０が定義されていない状態を表し、１が定義されている状態を表す。
【００５５】
以下に、図５に示した処理を説明する。
サブルーチンＺは、文データと、文データの現在の処理位置の文字を指す値と、を引数として受け取り、この値をローカルな変数Ｉに設定する。
【００５６】
サブルーチンＺは、認識文法モデルと、認識文法モデルを構成する、始端ノード、または終端ノード、またはノードを指す値と、を引数として受け取り、この値をローカルな変数Ｊに設定する。
【００５７】
図２に示すように、文データを構成する文字を先頭から１、２、３、、、Ｎと番号を付け、文データを構成する各文字をＷ（１）、Ｗ（２）、Ｗ（３）、、、Ｗ（Ｎ）と表す。
【００５８】
図３に示すように、認識文法モデルの始端ノードに１、終端ノードにＭ、始端ノード、終端ノード以外の各ノードに２、３、．．．、Ｍ−１と番号をつけ、番号がＪである始端ノードまたは、終端ノード、または各ノードＪから出ている各リンクに（Ｊ，１）、（Ｊ，２）、．．．、（Ｊ，Ｌ＿Ｊ）と番号をつけ、各リンクをＬ（Ｊ，１）、Ｌ（Ｊ，２）、．．．Ｌ（Ｊ，Ｌ＿Ｊ）と表し、各リンクに対応する各リンク文データをＬＳ（Ｊ，１）、ＬＳ（Ｊ，２）、．．．、ＬＳ（Ｊ，Ｌ＿Ｊ）と表す。
【００５９】
処理１０１：文データが認識文法モデルによって定義されているかどうかを調べるために、各リンク文データと比較される文データの一部または全部からなる文データを表すローカルな変数をＳとして、Ｓに文字Ｗ（Ｉ）を設定して、処理１０２へ進む。
【００６０】
処理１０２：リンクの番号を表すためにローカルな変数ａを１で初期化して、処理１０３へ進む。
処理１０３：Ｌ（Ｊ，ａ）に検査済みを示すローカルなフラグが立っているか否か調べて、検査済みを示すローカルなフラグが立っている場合は処理１０４へ進み、検査済みを示すローカルなフラグが立っていない場合は処理１１０へ進む。
【００６１】
処理１０４：ａがＬ＿Ｊと等しいか調べる。すなわち、前の処理１０３で調べたリンクが番号Ｊのノードの中で最後のリンクである、すなわち、番号Ｊのノードの中のリンクは全て検査済みであるかどうか判定する。ａがＬ＿Ｊと等しい場合は、処理１０６へ進み、ａがＬ＿Ｊと等しくない場合は処理１０５へ進む。
【００６２】
処理１０５：ａに１を足す。すなわち、ａを次のリンクを指すようにして、処理１０３に進む。
処理１０６：ＩがＮに等しいか調べる。すなわち、文データの現在の処理位置が文データの最後尾Ｎに達しているか調べる。ＩがＮに等しい場合は、処理１０９へ進む。ＩがＮに等しくない場合は処理１０７へ進む。
【００６３】
処理１０７：ＳにＷ（Ｉ）を追加する。処理１０８に進む。
処理１０８：Ｉに１を追加する。処理１０２に進む。
処理１０９：サブルーチンの呼び出し元へ戻る。
処理１１０：ＳがＬＳ（Ｊ，ａ）と等しいか調べる。ＳがＬＳ（Ｊ，ａ）と等しい場合は処理１１１に進み、等しくない場合は処理１０４へ進む。
【００６４】
処理１１１：Ｌ（Ｊ，ａ）に検査済みを示すローカルなフラグを立てる。処理１１２へ進む。
処理１１２：Ｌ（Ｊ，ａ）の接続先ノード番号をローカルな変数ＪＪに設定する。処理１１５へ進む。
処理１１５：ＪＪがＭと等しいか調べる。ＪＪがＭと等しい場合は処理１１９へ進み、等しくない場合は処理１１６へ進む。
【００６５】
処理１１６：ＩがＮと等しいか調べる。すなわち、文データの現在の処理位置が文データの最後尾Ｎに達しているか調べる。ＩがＮに等しい場合は、処理１２１へ進む、ＩがＮに等しくない場合は、処理１１７へ進む。
【００６６】
処理１１７：引数として、現在処理している文データと、文データの現在の処理位置の文字を指す値Ｉ＋１と、現在処理している認識文法モデルと、認識文法モデルを構成する、始端ノード、または終端ノード、またはノードを指す値ＪＪと、を与えて再帰呼び出しを行い、再帰呼び出しの処理から戻ったら、処理１１８へ進む。
【００６７】
処理１１８：ＤＥＦＩＮＥＤが１と等しいか調べる。ＤＥＦＩＮＥＤが１と等しい場合は処理１２１へ進み、等しくない場合は処理１０４へ進む。
処理１１９：ＩがＮと等しいか調べる。すなわち、文データの現在の処理位置が文データの最後尾Ｎに達しているか調べる。ＩがＮに等しい場合は、処理１２０へ進む、ＩがＮに等しくない場合は、処理１２１へ進む。
【００６８】
処理１２０：ＤＥＦＩＮＥＤに１を設定する。
【００６９】
処理１２１：サブルーチンの呼び出し元へ戻る。
【００７０】
図６は、文法検査部１０２の動作を示す第１のフローチャートである。すなわち、図６は、文法検査部１０２において、定義部分１０６が、文データ１０４の先頭から認識文法モデル１０３によって連続して定義されている部分からなり、未定義部分１０７が、文データ１０４から定義部分１０６を除いた部分として、検査結果１０５を出力するフローチャートのメインルーチンを示している。
【００７１】
処理０１：認識文法モデルの入力を受け付け処理０２へ進む。
処理０２：文データの入力を受け付け処理０３へ進む。
【００７２】
処理０３：文データが認識文法モデルによって定義されているかされていないかが設定される変数ＤＥＦＩＮＥＤを０に初期化する。変数ＤＥＦＩＮＥＤは０が定義されていない状態を表し、１が定義されている状態を表す。処理０４へ進む。
処理０４：文データの先頭から認識文法モデルによって定義されている範囲を探索した場合に、認識文法モデルによって定義されている最大の位置を指すＲを０に初期化して処理０５に進む。
【００７３】
処理０５：引数として、文データと、文データの現在の処理位置の文字を指す値１と、認識文法モデルと、認識文法モデルを構成する、始端ノード、または終端ノード、またはノードを指す値１と、を与えて、サブルーチンＡを呼び出し、サブルーチンＡの処理から戻ったら処理０６へ進む。
処理０６：検査結果を出力するサブルーチンＢを呼び、サブルーチンＢの処理から戻ったら、終了する。
【００７４】
図７に、図６におけるサブルーチンＡの処理動作を示している。
サブルーチンＡにおいて、図５に示したサブルーチンＺと同じ処理番号を記したものは、図５に示したサブルーチンＺの同じ処理番号のものと同じ動作をするものとして説明を省略する。ただし、処理１１２において処理１１５へ進むと記した箇所は、処理Ａ−００１へ進むに置き換えるものとする。
【００７５】
処理Ａ−００１：ＲがＩより小さいか調べる。ＲがＩより小さい場合は処理Ａ−００２へ進み、小さくない処理１１５へ進む。
【００７６】
処理Ａ−００２：ＲにＩの値を設定する。すなわち、認識文法モデルによって定義されている最大の位置を更新する。処理１１５へ進む。
【００７７】
図８に、図６におけるサブルーチンＢの処理動作を示している。
処理Ｂ−００１：ＤＥＦＩＮＥＤが１と等しいか判定する。文データが認識文法モデルによって定義されている場合はＤＥＦＩＮＥＤは１であり、定義されていない場合はＤＥＦＩＮＥＤは０である。ＤＥＦＩＮＥＤが１と等しい場合は、処理Ｂ−００３へ進み、等しくない場合は処理Ｂ−００２へ進む。
【００７８】
処理Ｂ−００２：文データの先頭から認識文法モデルによって連続して定義されている部分、すなわち定義部分として、Ｗ（１）、Ｗ（２）、、、Ｗ（Ｒ）を、未定義部分として、Ｗ（Ｒ＋１）、Ｗ（Ｒ＋２）、、、Ｗ（Ｎ）を、検査結果として出力して処理Ｂ−００４へ進む。
【００７９】
処理Ｂ−００３：定義部分として、Ｗ（１）、Ｗ（２）、、、Ｗ（Ｎ）、未定義部分はなしとして検査結果を出力して処理Ｂ−００４へ進む。
【００８０】
処理Ｂ−００６：サブルーチンの呼び出し元に戻る。
【００８１】
図９は、図６における文データの一例を示している。各行が１つの文データを表すものとする。
【００８２】
図１０に、図９の文データに対する、出力結果の一例を示している。すなわち、文法検査部１０２として図６のメインルーチン、図７のサブルーチンＡ、図８のサブルーチンＢに示した手続きを用いて、認識文法モデル１０３として図３に示した認識文法モデルを入力し、文データ１０４として、図９に示した文データを順に入力した場合の、検査結果１０５の出力例を示している。ただし、図１０において、文字の下に直線を引いた部分は定義部分として、文字の下に点線を引いた部分は未定義部分として分類された部分である。なお、この場合の定義部分は、文データの先頭から認識文法モデルによって連続して定義されている部分である。
【００８３】
図１１は、文法検査部１０２の動作を示す第２のフローチャートである。すなわち、図１１は、文法検査部１０２において、文データ１０４の中から一部分を取り除いて順序を変えずにつないだ第２の文データが認識文法モデル１０３によって定義されている場合、定義部分１０６を前記第２の文データとして、未定義部分を文データ１０４から前記第２の文データを除いた部分として、検査結果１０５を出力するフローチャートのメインルーチンを示している。
【００８４】
処理２０１：認識文法モデルの入力を受け付け処理２０２へ進む。
処理２０２：文データの入力を受け付け処理２０３へ進む。
処理２０３：文データが認識文法モデルによって定義されているかされていないかが設定される変数ＤＥＦＩＮＥＤを０に初期化する。変数ＤＥＦＩＮＥＤは０が定義されていない状態を表し、１が定義されている状態を表す。処理２０４へ進む。
【００８５】
処理２０４：属性付き文字及び属性付き文字列を保存するスタック変数をＳＴＡＣＫ＿Ｉとする。属性には定義属性と未定義属性がある。処理２０５へ進む。
【００８６】
処理２０５：サブルーチンＣを文データと、文データの現在の処理位置の文字を指す値１を、認識文法モデルと、認識文法モデルを構成する、始端ノード、または終端ノード、またはノードを指す値１を与えて呼び出し、サブルーチンＣの処理から戻ったら処理２０６へ進む。
【００８７】
処理２０６：検査結果を出力するサブルーチンＤを呼び、サブルーチンＤの処理から戻ったら、終了する。
【００８８】
図１２に、図１１におけるサブルーチンＣの処理を示している。
サブルーチンＣにおいて、図５に示したサブルーチンＺと同じ処理番号を記したものは、図５に示したサブルーチンＺの同じ処理番号のものと同じ動作をするものとして説明を省略する。ただし、処理１０６において処理１０９へ進むと記した箇所は、処理Ｃ−００３へ進むに置き換えるものとする。また、処理１１２において処理１１５へ進むと記した箇所は、処理Ｃ−００１へ進むに置き換えるものとする。さらに、処理１１８において処理１０４へ進むと記した箇所は、処理Ｃ−００２へ進むに置き換えるものとする。
【００８９】
処理Ｃ−００１：ＳＴＡＣＫ＿ＩにＳを定義属性をつけてプッシュする。処理１１５へ進む。  処理Ｃ−００２：ＳＴＡＣＫ＿Ｉをポップする。すなわち、処理Ｃ−００１で追加したＳを取り除く。処理１０４へ進む。
【００９０】
処理Ｃ−００３：処理Ｃ−００３を通るのが、再帰呼び出しを含めずに一回目かどうか調べる。すなわち、処理Ｃ−００３を通った状態と通っていない状態を表すローカルなフラグを用意して、初期状態ではフラグは立っておらず、１回目に処理Ｃ−００３を通ったときにフラグを立てる。フラグが立っていない場合は処理Ｃ−００３を通るのは１回目であると判断して、フラグが立っている場合は処理Ｃ−００３を通るのは１回目でないと判断する。処理Ｃ−００３を通るのが１回目の場合は、処理Ｃ−００４へ進み、処理Ｃ−００３を通るのが１回目でない場合は、処理Ｃ−００９へ進む。
【００９１】
処理Ｃ−００４：ＩにサブルーチンＣが呼び出されたときに受け取った、文データの現在の処理位置の文字を指す値を設定する。処理Ｃ−００５へ進む。
処理Ｃ−００５：ＳＴＡＣＫ＿Ｉに文字Ｗ（Ｉ）を未定義属性をつけて追加する。処理Ｃ−００６へ進む。
【００９２】
処理Ｃ−００６：ＩがＮと等しいか調べる。ＩがＮに等しい場合は処理Ｃ−００８へ進み、等しくない場合は処理Ｃ−００７へ進む。
処理Ｃ−００７：Ｉに１を足して、処理１０１へ進む。
処理Ｃ−００８：ＤＥＦＩＮＥＤに１を設定する。処理Ｃ−０１０へ進む。
【００９３】
処理Ｃ−００９：ＳＡＴＣＫ＿Ｉをポップする。すなわち、処理Ｃ−００５で追加した文字を取り除く。処理Ｃ−０１０へ進む。
処理Ｃ−０１０：サブルーチンの呼び出し元に戻る。
【００９４】
図１３に、図１１におけるサブルーチンＤの処理を示している。
処理Ｄ−００１：ＤＥＦＩＮＥＤが１と等しいか判定する。ＤＥＦＩＮＥＤが１と等しい場合は、処理Ｄ−００３へ進み、等しくない場合は処理Ｄ−００２へ進む。
処理Ｄ−００２：定義部分をなし、未定義部分を文データすべてとして、検査結果を出力して、処理Ｄ−００９へ進む。
【００９５】
処理Ｄ−００３：属性付き文字または属性付き文字列を指すＤ＿Ｓを定義して、ＳＴＡＣＫ＿Ｉに最初に追加した文字または文字列で初期化する。処理Ｄ−００４へ進む。
処理Ｄ−００４：Ｄ＿Ｓに設定された文字または文字列の属性を調べる。Ｄ＿Ｓの属性が定義属性の場合は処理Ｄ−００６へ進み、  Ｄ＿Ｓの属性が未定義属性の場合は処理Ｄ−００５へ進む。
【００９６】
処理Ｄ−００５：Ｄ＿Ｓの指す文字または文字列を未定義部分として出力する。処理Ｄ−００７へ進む。
処理Ｄ−００６：Ｄ＿Ｓの指す文字または文字列を定義部分として出力する。処理Ｄ−００７へ進む。
【００９７】
処理Ｄ−００７：Ｄ＿ＳにＳＴＲＡＣＫ＿Ｉに次に追加した文字または文字列を設定する。ＳＴＡＣＫ＿Ｉに次に追加した文字または文字列が存在しない場合は、Ｄ＿Ｓは何も指さない。処理Ｄ−００８へ進む。
処理Ｄ−００８：Ｄ＿Ｓが文字または文字列を指している場合は、処理Ｄ−００４へ進み、Ｄ＿Ｓが何も指していない場合は処理Ｄ−００９へ進む。
処理Ｄ−００９：サブルーチンの呼び出し元に戻る。
【００９８】
図１４は、図１１における文データの一例を示している。各行が１つの文データを表すものとする。
【００９９】
図１５は、図１４の文データに対する、出力結果の一例を示している。すなわち、図１５は、文法検査部１０２として図１１のメインルーチン、図１２のサブルーチンＣ、図１３のサブルーチンＤに示した手続きを用いて、認識文法モデル１０３として図３に示した認識文法モデルを入力し、文データ１０４として、図１４に示した文データを順に入力した場合の、検査結果１０５の出力例を示している。ただし、図１５において、文字の下に直線を引いた部分は定義部分として、文字の下に点線を引いた部分は未定義部分として分類された部分である。
【０１００】
図１６は、文法検査部１０２の動作を示す第３のフローチャートである。すなわち、図１６は、文法検査部１０２において、文データ１０４を複数部分に分割して、少なくとも１箇所の分割部分に任意の文データを挿入して、順序を変えずにつなぎ合わせた第３の文データが認識文法モデル１０３によって定義されている場合、定義部分を文データ１０４として、未定義部分を前記第３の文データから文データ１０４を除いた部分として、検査結果１０５を出力するフローチャートのメインルーチンを示している。
【０１０１】
処理３０１：認識文法モデルの入力を受け付け処理３０２へ進む。
処理３０２：文データの入力を受け付け処理３０３へ進む。
処理３０３：文データが認識文法モデルによって定義されているかされていないかが設定される変数ＤＥＦＩＮＥＤを０に初期化する。変数ＤＥＦＩＮＥＤは０が定義されていない状態を表し、１が定義されている状態を表す。処理３０４へ進む。
【０１０２】
処理３０４：属性付き文字及び属性付き文字列を保存するスタック変数をＳＴＡＣＫ＿Ｉとする。属性には定義属性と未定義属性がある。処理３０５へ進む。
【０１０３】
処理３０５：サブルーチンＥを文データと、文データの現在の処理位置の文字を指す値１を、認識文法モデルと、認識文法モデルを構成する、始端ノード、または終端ノード、またはノードを指す値１を与えて呼び出し、サブルーチンＥの処理から戻ったら処理２０６へ進む。
処理３０６：検査結果を出力するサブルーチンＤを呼び、サブルーチンＤの処理から戻ったら、終了する。
【０１０４】
図１７に、図１６におけるサブルーチンＥの処理を示している。
サブルーチンＥにおいて、図５に示したサブルーチンＺと同じ処理番号を記したものは、図５に示したサブルーチンＺの同じ処理番号のものと同じ動作をするものとして説明を省略する。ただし、処理１０６において処理１０９へ進むと記した箇所は、処理Ｅ−００３へ進むに置き換えるものとする。また、処理１１２において処理１１５へ進むと記した箇所は、処理Ｅ−００１へ進むに置き換えるものとする。さらに、処理１１８において処理１０４へ進むと記した箇所は、処理Ｅ−００２へ進むに置き換えるものとする。
【０１０５】
処理Ｅ−００１：ＳＴＡＣＫ＿ＩにＳを定義属性をつけてプッシュする。処理１１５へ進む。
【０１０６】
処理Ｅ−００２：ＳＴＡＣＫ＿Ｉをポップする。すなわち、処理Ｅ−００２で追加したＳを取り除く。処理１０４へ進む。
【０１０７】
処理Ｅ−００３：ＩにサブルーチンＥが呼び出されたときに受け取った、文データの現在の処理位置の文字を指す値を設定する。処理Ｅ−００４へ進む。
処理Ｅ−００４：  Ｌ（Ｊ，１）からＬ（Ｊ，Ｌ＿Ｊ）までの検査済みを示すフラグを降し、未検査にする。処理Ｅ−００５へ進む。
【０１０８】
処理Ｅ−００５：リンクの番号を表すためにローカルな変数ｂを１で初期化して、処理Ｅ−００６へ進む。
処理Ｅ−００６：Ｌ（Ｊ，ｂ）の接続先ノード番号をローカルな変数ＪＪに設定する。処理Ｅ−００７へ進む。
【０１０９】
処理Ｅ−００７：ＳＴＡＣＫ＿ＩにＬＳ（Ｊ．ｂ）を未定義属性をつけてプッシュする。処理Ｅ−００８へ進む。
処理Ｅ−００８：ＪＪがＭと等しいか調べる。ＪＪがＭと等しい場合は処理Ｅ−０１５へ進み、等しくない場合は処理Ｅ−００９へ進む。
【０１１０】
処理Ｅ−００９：引数として、現在処理している文データと、文データの現在の処理位置の文字を指す値Ｉを、現在処理している認識文法モデルと、認識文法モデルを構成する、始端ノード、または終端ノード、またはノードを指す値ＪＪを与えて再帰呼び出しを行い、再帰呼び出しの処理から戻ったら、処理Ｅ−０１０へ進む。
【０１１１】
処理Ｅ−０１０：ＤＥＦＩＮＥＤが１と等しいか調べる。ＤＥＦＩＮＥＤが１と等しい場合は処理Ｅ−０１６へ進み、等しくない場合は処理Ｅ−０１１へ進む。
処理Ｅ−０１１：ＳＴＡＣＫ＿Ｉをポップする。すなわち、処理Ｅ−００７で追加したＬＳ（Ｊ，ｂ）を取り除く。処理Ｅ−０１２へ進む。
【０１１２】
処理Ｅ−０１２：ｂがＬ＿Ｊと等しいか調べる。ｂがＬ＿Ｊと等しい場合は、処理Ｅ−０１４へ進み、ｂがＬ＿Ｊと等しくない場合は処理Ｅ−０１３へ進む。
処理Ｅ−０１３：ｂに１を足す。すなわち、ｂを次のリンクを指すようにして、処理Ｅ−００６にすすむ。
【０１１３】
処理Ｅ−０１４：サブルーチンの呼び出し元へ戻る。
処理Ｅ−０１５：ＤＥＦＩＮＥＤに１を設定する。
処理Ｅ−０１６：サブルーチンの呼び出し元へ戻る。
【０１１４】
図１８に、図１６における文データの一例を示している。各行が１つの文データを表すものとする。
【０１１５】
図１９に、図１８の文データに対する、出力結果の一例を示している。すなわち、文法検査部１０２として図１６のメインルーチン、図１７のサブルーチンＥ、図１３のサブルーチンＤに示した手続きを用いて、認識文法モデル１０３として図３に示した認識文法モデルを入力して、文データ１０４として、図１８に示した文データを順に入力した場合の、検査結果１０５の出力例を示している。ただし、図１９において、文字の下に直線を引いた部分は定義部分として、文字の下に点線を引いた部分は未定義部分として分類された部分である。
【０１１６】
次に、先ず文データの全体が認識文法モデルにおいて定義されているかいないかを検査して、認識文法モデルにおいて定義されていない場合に、前記文データを前記認識文法モデルにおいて定義されている定義部分と、定義されていない未定義部分に分類し、検査結果として出力する例について説明する。
【０１１７】
図２０は、文法検査部１０２の動作を示す第４のフローチャートである。図２０では、文法検査部１０２において、文データ１０４が認識文法モデル１０３によって定義されていない場合に、文データ１０４から少なくとも一部分を取り除いて順序を変えずにつないだ第２の文データが認識文法モデル１０３によって定義されている場合、定義部分１０６を前記第２の文データとして、未定義部分を文データ１０４から前記第２の文データを除いた部分として、検査結果１０５を出力するフローチャートのメインルーチンを示している。
【０１１８】
図２０において、図１１に示したフローチャートと同じ番号を記したものは、図１１に示したフローチャートの同じ処理番号のものと同じ動作をするものとして説明を省略する。ただし、処理２０３において処理２０４へ進むと記した箇所は、処理４０１へ進むに置き換えるものとする。
【０１１９】
処理４０１：引数として、文データと、文データの現在の処理位置の文字を指す値１と、認識文法モデルと、認識文法モデルを構成する、始端ノード、または終端ノード、またはノードを指す値１と、を与えて、サブルーチンＺを呼び出し、サブルーチンＺの処理から戻ったら処理４０２へ進む。
【０１２０】
処理４０２：ＤＥＦＩＮＥＤが１と等しいか判定する。ＤＥＦＩＮＥＤが１と等しい場合は、処理４０３へ進み、等しくない場合は処理２０４へ進む。
処理４０３：文データは定義されているとする検査結果を出力して、終了する。
【０１２１】
図２１は、図２０における文データの一例を示している。各行が１つの文データを表すものとする。
【０１２２】
図２２は、図２１の文データに対する、出力結果の一例を示している。すなわち、図２２は、文法検査部１０２として図２０のメインルーチン、図５のサブルーチンＺ、図１２のサブルーチンＣ、図１３のサブルーチンＤに示した手続きを用いて、認識文法モデル１０３として図３に示した認識文法モデルを入力して、文データ１０４として、図２１に示した文データを順に入力した場合の、検査結果１０５の出力例を示している。ただし、図２２において、文字の下に直線を引いた部分は定義部分として、文字の下に点線を引いた部分は未定義部分として分類された部分であり、”○”は文データは定義されているとする検査結果の出力である。
【０１２３】
図２３は、本発明の第２の実施形態に係る認識文法モデル作成方法をブロック化して示す図である。
【０１２４】
図２３のブロック図において、図１のブロック図と同じ番号を記してある部分は同じ処理をするものとして、説明を省略する。図２３のブロック図は、図１のブロック図に、提示部１１１と提示結果１１２が追加された構成となっている。提示部１１１は、分類部１０８からの検査結果を受け取り、定義部分と未定義部分それぞれに提示するための様式を設定して、提示結果１１２として出力する。
【０１２５】
第２の実施形態における認識文法モデル作成部１０１で作成される認識文法モデル１０３は、第１の実施形態における、例えば、図３の文法モデルと同様である。また、第２の実施形態における文法検査部１０２の動作は、第１の実施形態における図６、図１１、図１６、又は図１２に示したフローチャートと同様である。
【０１２６】
図２４は、図２３における提示結果の一例を示している。例えば図１０に示した検査結果（定義部分を、文データの先頭から前記認識文法モデルによって連続して定義されている部分とし、未定義部分を、文データから前記定義部分を除いた部分とする）を受けて、提示部１１１において定義部分と未定義部分を異なる場所に表示する様式を設定した場合の、提示結果１１２の例を示している。
【０１２７】
表の左側の列に定義部分を、表の右側の列に未定義部分を表示している。定義部分を”○”などの記号に置き換えて表示するなどの方法も可能である。
【０１２８】
図２５は、図１０に示した検査結果を受けて、提示部１１１において定義部分を表示して、未定義部分を表示しない様式を設定した場合の、提示結果１１２の例を示している。
定義部分のみが表示されている。定義部分を”○”などの記号に置き換えて表示するなどの方法も可能である。
【０１２９】
図２６は、図１０に示した検査結果を受けて、提示部１１１において定義部分を表示しないで、未定義部分を表示する様式を設定した場合の、提示結果１１２の例を示している。未定義部分のみが表示されている。
【０１３０】
図２７は、図１０に示した検査結果を受けて、提示部１１１において定義部分と未定義部分を異なる色で表示する様式を設定した場合の、提示結果１１２の例を示している。
定義部分は色１で、未定義部分は色２で表示している。定義部分を”○”などの記号に置き換えて表示するなどの方法も可能である。
【０１３１】
図２８に、図１０に示した検査結果を受けて、提示部１１１において定義部分と未定義部分を異なるフォントで表示する様式を設定した場合の、提示結果１１２の例を示している。
定義部分は明朝体の斜体で、未定義部分はゴシック体で表示している。定義部分を”○”などの記号に置き換えて表示するなどの方法も可能である。
【０１３２】
図２９に、図１０に示した検査結果を受けて、提示部１１１において定義部分と未定義部分を異なる羅線をつけて表示する様式を設定した場合の、提示結果１１２の例を示している。
定義部分の下には直線を引き、未定義部分の下には破線を引いて表示している。定義部分を”○”などの記号に置き換えて表示するなどの方法も可能である。
【０１３３】
図３０は、第２の実施形態における、グラフィカルユーザインターフェース（ＧＵＩ）を備えた、認識文法モデル作成方法の画面例を示している。
【０１３４】
パーソナルコンピュータ内に上述した認識文法モデル作成方法のプログラムを実装（インストール）し、コンピュータ画面上に実行画面「テキスト検証ツール」として映出した状態を示している。文字列入力される文データを予め入力した認識文法モデルと比較し、文データの先頭から連続して定義されている部分と定義されていない部分を分類し、コンピュータ画面上にグラフィカルユーザインターフェース（ＧＵＩ）にて、図１０に示したような検査結果を図２４に示した提示形態で出力する例を説明する。
【０１３５】
画面６００には、メニューバー領域６０１、認識文法モデル作成領域６０２、文データ入力領域６０３、定義部分提示領域６０４、未定義部分提示領域６０５の各領域が設けられている。
画面上部には、「ファイル」、「編集」、「表示」、「文法検査」、「ヘルプ」の各メニューを有したメニューバー領域６０１がある。
【０１３６】
画面左部の認識文法モデルとタイトルがつけられた領域は、認識文法モデルの作成領域６０２である。マウスやキーボードなどの操作手段を用いて、メニューを選択する、文字列を入力するなどを行うことによって、認識文法モデルを作成することができる。従って、認識文法モデル作成領域６０２は、認識文法モデルの入力手段を構成している。
【０１３７】
画面右部は、文データの入力領域６０３及び検査結果の出力領域６０４，６０５である。画面中央の文データとタイトルがついた列は、文データを入力する領域６０３で、マウスやキーボードなどの操作手段を用いて、セルを選択して文字列を入力することで文データを作成することができる。従って、文データ入力領域６０３は、文データの入力手段を構成している。認識文法モデルと文データを入力し終えたら、メニューバー領域６０１から「文法検査」メニューを選択するまたは、図示しない文法検査ボタンを押すことによって、認識文法モデルと文データが文法検査部１０２に入力され、文法検査が行われる。
【０１３８】
検査結果は、提示部１１１に入力されて、定義部分は画面右部の定義部分とタイトルのついた領域６０４に、未定義部分は画面右部の未定義部分とタイトルのついた領域６０５に、ぞれぞれ入力した文データと同じ行に提示結果として出力される。従って、定義部分提示領域６０４及び、未定義部分提示領域６０５は、検査結果の出力手段を構成している。
【０１３９】
以上説明した本発明の実施形態によれば、認識文法モデルによって文データが定義されている部分と、定義されていない部分をユーザに分かり易く提示することができる。すなわち、文字列などで記述された文データにおいて、認識文法モデルによって定義されている部分と、定義されていない部分を求め、それぞれ異なる場所に表示するまたは、定義されている部分のみを表示する、定義されていない部分のみを表示する、異なる色で表示する、異なるフォントで表示する、異なる羅線をつけて表示するなどを行うことによって、文データが定義されている部分と、定義されていない部分をユーザに分かり易く提示することが可能となる。
【０１４０】
ユーザは、認識文法モデルによって、文データが定義されている部分及び、文データが定義されていない部分及び、文データが定義されている部分と定義されていない部分の境界と、認識文法モデルとの対応関係を見ることによって、認識文法モデルを容易に作成及び修正することが出来る。
【０１４１】
尚、以上述べた認識文法モデルの作成方法に係る発明は、認識文法モデルの検査方法に係る発明としても成立する。
【０１４２】
【発明の効果】
以上述べたように本発明によれば、ユーザに認識文法モデルの作成方法、修正方法を分かり易い方法で示す認識文法モデル作成方法及び検査方法を実現することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る認識文法モデル作成方法を示すブロック図。
【図２】図１における文法検査部に入力される文データの一例を示す図。
【図３】図１における認識文法モデル作成部によって作成される認識文法モデルの一例を示す図。
【図４】図３における、リンクに関連付けられた文字列の一例を示す図。
【図５】文データが認識文法モデルによって定義されているか、定義されていないかを判定するフローチャート。
【図６】本発明の実施形態における、文法検査部の動作を示す第１のフローチャート。
【図７】図６おける、サブルーチンＡの部分の動作を示すフローチャート。
【図８】図６おける、サブルーチンＢの部分の動作を示すフローチャート。
【図９】図６における、文データの一例を示す図。
【図１０】図６における、出力結果の一例を示す図。
【図１１】本発明の実施形態における、文法検査部の動作を示す第２のフローチャート。
【図１２】図１１における、Ｃの部分の動作を示すフローチャート。
【図１３】図１１における、Ｄの部分の動作を示すフローチャート。
【図１４】図１１における、文データの一例を示す図。
【図１５】図１１における、出力結果の一例を示す図。
【図１６】本発明の実施形態における、文法検査部の動作を示す第３のフローチャート。
【図１７】図１６における、Ｅの部分の動作を示すフローチャート。
【図１８】図１６における、文データの一例を示す図。
【図１９】図１６における、出力結果の一例を示す図。
【図２０】本発明の実施形態における、文法検査部の動作を示す第４のフローチャート。
【図２１】図２０における、文データの一例を示す図。
【図２２】図２０における、出力結果の一例を示す図。
【図２３】本発明の第２の実施形態に係る認識文法モデル作成方法を示すブロック図。
【図２４】本発明の実施形態における、提示部で定義部分と未定義部分を異なる場所に表示する様式を設定した提示結果の例を示す図。
【図２５】本発明の実施形態における、提示部で定義部分を表示して、未定義部分を表示しない様式を設定した提示結果の例を示す図。
【図２６】本発明の実施形態における、提示部で定義部分を表示しないで、未定義部分を表示する様式を設定した提示結果の例を示す図。
【図２７】本発明の実施形態における、提示部で定義部分と未定義部分を異なる色で表示する様式を設定した提示結果の例を示す図。
【図２８】本発明の実施形態における、提示部で定義部分と未定義部分を異なるフォントで表示する様式を設定した提示結果の例を示す図。
【図２９】本発明の実施形態における、提示部で定義部分と未定義部分を異なる羅線をつけて表示する様式を設定した提示結果の例を示す図。
【図３０】本発明の実施形態における、ＧＵＩを備えた認識文法モデル作成方法の画面例を示す図。
【符号の説明】
１０１…認識文法モデル作成部、１０２…文法検査部、１０３…認識文法モデル、１０４…文データ、１０５…検査結果、１０６…定義部分、１０７…未定義部分、１０８…分類部、１０９…制御部、１１０…対応関係、１１１…提示部、１１２…提示結果、２０１〜２０４…文字、４０１…始端ノード、４０２…終端ノード、４０３，４０４…  ノード、４１１〜４１５…リンク、４２１〜４２５…リンク文データ、５０１〜５０３…文字、６００…画面、６０１…メニューバー領域、６０２…認識文法モデル作成領域、６０３…文データ入力領域、６０４…定義部分提示領域、６０５…未定義部分提示領域。
【図１】
2004151547.tif 000003
【図２】
2004151547.tif 000004
【図３】
2004151547.tif 000005
【図４】
2004151547.tif 000006
【図５】
2004151547.tif 000007
【図６】
2004151547.tif 000008
【図７】
2004151547.tif 000009
【図８】
2004151547.tif 000010
【図９】
2004151547.tif 000011
【図１０】
2004151547.tif 000012
【図１１】
2004151547.tif 000013
【図１２】
2004151547.tif 000014
【図１３】
2004151547.tif 000015
【図１４】
2004151547.tif 000016
【図１５】
2004151547.tif 000017
【図１６】
2004151547.tif 000018
【図１７】
2004151547.tif 000019
【図１８】
2004151547.tif 000020
【図１９】
2004151547.tif 000021
【図２０】
2004151547.tif 000022
【図２１】
2004151547.tif 000023
【図２２】
2004151547.tif 000024
【図２３】
2004151547.tif 000025
【図２４】
2004151547.tif 000026
【図２５】
2004151547.tif 000027
【図２６】
2004151547.tif 000028
【図２７】
2004151547.tif 000029
【図２８】
2004151547.tif 000030
【図２９】
2004151547.tif 000031
【図３０】
2004151547.tif 000032