(57)【要約】【課題】自然言語文をコンピュータ処理のための中間言語に精度高く変換できなかった。【解決手段】文字列を含む原言語関数識別子と関数の０または１以上の引数情報とを有する原言語関数情報と、言語非依存の非言語情報識別子とを対に有する原言語文関数情報を１以上格納し得る原言語文関数辞書と、語句と語句識別子とを有する原言語語句情報を１以上格納し得る原言語語句辞書と、文を受け付ける受付部と、文と１以上の原言語関数識別子とのマッチングをとり、マッチする原言語関数識別子と対になる非言語情報識別子を取得し、かつ、語句とのマッチングをとり、マッチする語句識別子を取得し、取得した非言語情報識別子と語句識別子とを用いて、関数構造の中間言語文を構成する中間言語文作成部と、中間言語文を出力する出力部とを具備する自然言語文変換装置により、自然言語文をコンピュータ処理するための中間言語に精度高く変換できる。【選択図】図１
2011108330.tif 000002
【特許請求の範囲】
【請求項１】
原言語の文字列を含む原言語関数識別子と当該原言語関数識別子で識別される関数の引数を示す情報である０または１以上の引数情報とを有する原言語関数情報と、前記原言語関数情報に対応する情報であり、言語非依存の識別子である非言語情報識別子とを対に有する原言語文関数情報を１以上格納し得る原言語文関数辞書と、原言語の語句と、当該語句を識別する語句識別子とを対に有する原言語語句情報を１以上格納し得る原言語語句辞書と、原言語の文を受け付ける受付部と、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得し、かつ、前記原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句識別子を取得し、当該取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する中間言語文作成部と、前記中間言語文作成部が構成した１以上の中間言語文を出力する出力部とを具備する自然言語文変換装置。
【請求項２】
前記中間言語文作成部は、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、前記受付部が受け付けた文の全体を包含する原言語関数識別子である最外部関数を取得し、当該最外部関数の引数となる前記文の一部分に対して、前記最外部関数が取得できなくなるまで、前記最外部関数の取得の処理を繰り返す最外部関数取得手段と、前記最外部関数取得手段が取得した最外部関数の引数であり、最外部関数に置き換えられていない前記文の一部分に対して、前記原言語文関数辞書に格納されている１以上の原言語関数識別子、または前記原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、１以上の原言語関数識別子または前記原言語の1以上の語句を取得する補語関数取得手段と、前記最外部関数取得手段または前記補語関数取得手段が取得した１以上の原言語関数識別子のそれぞれに対応する１以上の非言語情報識別子を取得する非言語情報識別子取得手段と、前記補語関数取得手段が取得した１以上の語句のそれぞれに対応する１以上の語句識別子を取得する語句識別子取得手段と、前記非言語情報識別子取得手段が取得した１以上の非言語情報識別子と前記語句識別子取得手段が取得した１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する中間言語文構成手段とを具備する請求項１記載の自然言語文変換装置。
【請求項３】
前記最外部関数取得手段は、前記受付部が受け付けた文または当該文の一部分の重複する箇所に対して、２以上の最外部関数の候補を取得した場合、前記文中の最も長い文字列に対応する候補を最外部関数として取得する請求項２記載の自然言語文変換装置。
【請求項４】
前記中間言語文作成部は、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子を取得する原言語関数識別子取得手段と、前記受付部が受け付けた文に含まれる１以上の語句であり、前記原言語関数識別子取得手段が取得した原言語関数識別子で識別される関数の引数に対応する１以上の語句と、前記原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句を取得する語句取得手段と、前記原言語関数識別子取得手段が取得した１以上の原言語関数識別子のそれぞれに対応する１以上の非言語情報識別子を取得する非言語情報識別子取得手段と、前記語句取得手段が取得した１以上の語句のそれぞれに対応する１以上の語句識別子を取得する語句識別子取得手段と、前記非言語情報識別子取得手段が取得した１以上の非言語情報識別子と前記語句識別子取得手段が取得した１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する中間言語文構成手段とを具備する請求項１記載の自然言語文変換装置。
【請求項５】
原言語の文字列を含む原言語関数識別子と文型パターンと１以上の語句とを有する原言語型情報と、前記原言語型情報に対応する情報であり、言語非依存の識別子である非言語情報識別子とを対に有する原言語文型情報を１以上格納し得る原言語文型辞書をさらに具備し、前記中間言語文作成部は、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子、および前記原言語文型辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得し、かつ、前記原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句識別子を取得し、当該取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する請求項４記載の自然言語文変換装置。
【請求項６】
原言語関数識別子と１以上の語句との共起を示す情報である共起情報を１以上格納し得る原言語共起辞書をさらに具備し、前記中間言語文作成部は、前記原言語共起辞書に格納されている１以上の共起情報をも用いて、１以上の非言語情報識別子と１以上の語句識別子とを取得し、当該取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する請求項１記載の自然言語文変換装置。
【請求項７】
前記原言語関数識別子は、引数の挿入場所を示す引数挿入情報を有し、前記中間言語文作成部は、当該引数挿入情報を用いて、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得する請求項１記載の自然言語文変換装置。
【請求項８】
語句の原型および当該語句の変形である１以上の変形語句とを対応付けた変化語句情報を１以上格納し得る原言語変化語句辞書をさらに具備し、原言語関数識別子は、語句が変形する可能性があることを示す変化フラグを有し、前記中間言語文作成部は、前記変化フラグが付与された語句をキーとして、前記原言語変化語句辞書を検索し、１以上の変形語句を取得する変形語句取得手段をさらに具備し、前記中間言語文作成部は、１以上の非言語情報識別子を取得する場合に、前記変形語句取得手段が取得した１以上の変形語句をも用いて、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得する請求項１記載の自然言語文変換装置。
【請求項９】
原言語関数識別子は、何らかの語句が挿入され得ることを示す不定語句フラグを有し、前記中間言語文作成部は、１以上の非言語情報識別子を取得する場合に、不定語句フラグをも用いて、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得する請求項１記載の自然言語文変換装置。
【請求項１０】
前記原言語文関数情報または前記原言語文型情報は、関数または文型のタイプを示す関数タイプを有し、前記受付部は、原言語の文および文のタイプを受け付け、前記中間言語文作成部は、非言語情報識別子を取得する場合に、前記受付部が受け付けたタイプに対応する関数タイプを含む前記原言語文関数情報または前記原言語文型情報の中から、原言語関数識別子を取得し、当該原言語関数識別子と対になる１以上の非言語情報識別子を取得する請求項１記載の自然言語文変換装置。
【請求項１１】
目的言語の文字列を含む目的言語関数識別子と当該目的言語関数識別子で識別される関数の引数を示す情報である１以上の引数情報とを有する目的言語関数情報と、前記目的言語関数情報に対応する情報であり、言語非依存の識別子である非言語情報識別子とを対に有する目的言語文関数情報を１以上格納し得る目的言語文関数辞書と、目的言語の語句と、当該語句を識別する語句識別子とを対に有する目的言語語句情報を１以上格納し得る目的言語語句辞書と、前記出力部が出力した１以上の中間言語文が有する１以上の非言語情報識別子を用いて前記目的言語文関数辞書を検索し、１以上の目的言語関数情報を取得し、前記１以上の中間言語文が有する１以上の語句識別子を用いて前記目的言語語句辞書を検索し、１以上の語句を取得し、当該取得した１以上の目的言語関数情報および１以上の語句から目的言語の文を構成する変換部と、前記変換部が構成した目的言語の文を出力する目的言語文出力部とをさらに具備する請求項１記載の自然言語文変換装置。
【請求項１２】
前記変換部は、前記出力部が出力した１以上の中間言語文が有する１以上の非言語情報識別子を用いて前記目的言語文関数辞書を検索し、１以上の目的言語関数情報を取得する目的言語関数情報取得手段と、前記１以上の中間言語文が有する１以上の語句識別子を用いて前記目的言語語句辞書を検索し、１以上の語句を取得する語句取得手段と、前記目的言語関数情報取得手段が取得した１以上の目的言語関数情報と前記語句取得手段が取得した１以上の語句とを用いて、目的言語の文を構成する目的言語文構成手段とを具備する請求項１１記載の自然言語文変換装置。
【請求項１３】
前記目的言語関数識別子は、引数の挿入場所を示す引数挿入情報を有し、かつ、語句が変形する可能性があることを示す変化フラグを有し、かつ、何らかの語句が挿入され得ることを示す不定語句フラグを有し、前記目的言語関数情報取得手段は、２以上の目的言語関数情報を取得し、前記目的言語文構成手段は、前記目的言語関数情報取得手段が取得した２以上の各目的言語関数情報が有する引数挿入情報が示す場所に、前記目的言語関数情報取得手段が取得した目的言語関数情報または前記語句取得手段が取得した語句を挿入し、かつ、目的言語関数情報が有する変化フラグに対応して文字列を変化させ、目的言語の文を構成する請求項１２記載の自然言語文変換装置。
【請求項１４】
非言語情報識別子とアニメーション機能を実現するプログラムを対応付けて格納し得るプログラム格納部と、前記出力部が出力した中間言語文が有する非言語情報識別子に対応するプログラムを、前記プログラム格納部から検索し、実行する実行部とを具備する請求項１記載の自然言語文変換装置。
【請求項１５】
記憶媒体に、原言語の文字列を含む原言語関数識別子と当該原言語関数識別子で識別される関数の引数を示す情報である０または１以上の引数情報とを有する原言語関数情報と、前記原言語関数情報に対応する情報であり、言語非依存の識別子である非言語情報識別子とを対に有する原言語文関数情報を１以上有する原言語文関数辞書と、原言語の語句と、当該語句を識別する語句識別子とを対に有する原言語語句情報を１以上有する原言語語句辞書とを格納しており、受付部、中間言語文作成部、および出力部により実現される自然言語文変換方法であって、前記受付部により、原言語の文を受け付ける受付ステップと、前記中間言語文作成部により、前記受付ステップで受け付けられた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得し、かつ、前記原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句識別子を取得し、当該取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する中間言語文作成ステップと、前記出力部により、前記中間言語文作成ステップで構成された１以上の中間言語文を出力する出力ステップを具備する自然言語文変換方法。
【請求項１６】
記憶媒体に、原言語の文字列を含む原言語関数識別子と当該原言語関数識別子で識別される関数の引数を示す情報である０または１以上の引数情報とを有する原言語関数情報と、前記原言語関数情報に対応する情報であり、言語非依存の識別子である非言語情報識別子とを対に有する原言語文関数情報を１以上有する原言語文関数辞書と、原言語の語句と、当該語句を識別する語句識別子とを対に有する原言語語句情報を１以上有する原言語語句辞書とを格納しており、コンピュータを、原言語の文を受け付ける受付部と、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得し、かつ、前記原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句識別子を取得し、当該取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する中間言語文作成部と、前記中間言語文作成部が構成した１以上の中間言語文を出力する出力部として機能させるためのコンピュータプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、自然言語の文を変換する自然言語文変換装置等に関するものである。
【背景技術】
【０００２】  従来の自然言語文変換装置の例である機械翻訳装置において、以下のような機械翻訳装置があった（特許文献１参照）。つまり、言語データを登録するコーパス記録部と、少なくとも言語データを編集する編集部と、コーパス記録部に登録された言語データより指定した単独あるいは複数の語句を含む文を検索するキーワード検索部と、キーワード検索部で検索された文と編集部で編集中の文との類似度を比較しキーワード検索部により検索された文のうち編集中の文と類似度が高いものから表示する類似文検索部とを備える機械翻訳装置である。【０００３】  また、自然言語文変換装置の例である機械翻訳装置において、確実性や自然性を損なわずにコーパスベースの機械翻訳を実行する機械翻訳装置があった（特許文献２参照）。【０００４】
【特許文献１】特開２００９−８０７７７号公報（第１頁、第１図等）
【特許文献２】特開２００９−１５５１２号公報（第１頁、第１図等）
【発明の開示】
【発明が解決しようとする課題】
【０００５】  しかしながら、従来の自然言語文変換装置においては、自然言語文をコンピュータ処理するための中間言語に、精度高く変換できなかった。そのため、例えば、精度の高い機械翻訳ができなかった。
【課題を解決するための手段】
【０００６】  本第一の発明の自然言語文変換装置は、原言語の文字列を含む原言語関数識別子と原言語関数識別子で識別される関数の引数を示す情報である０または１以上の引数情報とを有する原言語関数情報と、原言語関数情報に対応する情報であり、言語非依存の識別子である非言語情報識別子とを対に有する原言語文関数情報を１以上格納し得る原言語文関数辞書と、原言語の語句と、語句を識別する語句識別子とを対に有する原言語語句情報を１以上格納し得る原言語語句辞書と、原言語の文を受け付ける受付部と、受付部が受け付けた文と、原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得し、かつ、原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句識別子を取得し、取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する中間言語文作成部と、中間言語文作成部が構成した１以上の中間言語文を出力する出力部とを具備する自然言語文変換装置である。【０００７】  かかる構成により、自然言語文をコンピュータ処理するための中間言語に、精度高く変換できる。【０００８】  また、本第二の発明の自然言語文変換装置は、第一の発明に対して、中間言語文作成部は、受付部が受け付けた文と、原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、受付部が受け付けた文の全体を包含する原言語関数識別子である最外部関数を取得し、最外部関数の引数となる文の一部分に対して、最外部関数が取得できなくなるまで、最外部関数の取得の処理を繰り返す最外部関数取得手段と、最外部関数取得手段が取得した最外部関数の引数であり、最外部関数に置き換えられていない文の一部分に対して、原言語文関数辞書に格納されている１以上の原言語関数識別子、または原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、１以上の原言語関数識別子または原言語の１以上の語句を取得する補語関数取得手段と、最外部関数取得手段または補語関数取得手段が取得した１以上の原言語関数識別子のそれぞれに対応する１以上の非言語情報識別子を取得する非言語情報識別子取得手段と、補語関数取得手段が取得した１以上の語句のそれぞれに対応する１以上の語句識別子を取得する語句識別子取得手段と、非言語情報識別子取得手段が取得した１以上の非言語情報識別子と語句識別子取得手段が取得した１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する中間言語文構成手段とを具備する自然言語文変換装置である。【０００９】  かかる構成により、自然言語文をコンピュータ処理するための中間言語に、精度高く変換できる。【００１０】  また、本第三の発明の自然言語文変換装置は、第二の発明に対して、最外部関数取得手段は、受付部が受け付けた文または文の一部分の重複する箇所に対して、２以上の最外部関数の候補を取得した場合、文中の最も長い文字列に対応する最外部関数として取得する自然言語文変換装置である。【００１１】  かかる構成により、自然言語文をコンピュータ処理するための中間言語に、精度高く変換できる。【００１２】  また、本第四の発明の自然言語文変換装置は、第一の発明に対して、中間言語文作成部は、受付部が受け付けた文と、原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子を取得する原言語関数識別子取得手段と、受付部が受け付けた文に含まれる１以上の語句であり、原言語関数識別子取得手段が取得した原言語関数識別子で識別される関数の引数に対応する１以上の語句と、原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句を取得する語句取得手段と、原言語関数識別子取得手段が取得した１以上の原言語関数識別子のそれぞれに対応する１以上の非言語情報識別子を取得する非言語情報識別子取得手段と、語句取得手段が取得した１以上の語句のそれぞれに対応する１以上の語句識別子を取得する語句識別子取得手段と、非言語情報識別子取得手段が取得した１以上の非言語情報識別子と語句識別子取得手段が取得した１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する中間言語文構成手段とを具備する自然言語文変換装置である。【００１３】  かかる構成により、自然言語文をコンピュータ処理するための中間言語に、精度高く変換できる。【００１４】  また、本第五の発明の自然言語文変換装置は、第四の発明に対して、原言語の文字列を含む原言語関数識別子と原言語関数識別子で識別される関数の引数を示す情報である１以上の語句とを有する原言語型情報と、原言語型情報に対応する情報であり、言語非依存の識別子である非言語情報識別子とを対に有する原言語文型情報を１以上格納し得る原言語文型辞書をさらに具備し、中間言語文作成部は、受付部が受け付けた文と、原言語文関数辞書に格納されている１以上の原言語関数識別子、および原言語文型辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得し、かつ、原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句識別子を取得し、取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する自然言語文変換装置である。【００１５】  かかる構成により、自然言語文をコンピュータ処理するための中間言語に、精度高く変換できる。【００１６】  また、本第六の発明の自然言語文変換装置は、第一から第五いずれかの発明に対して、原言語関数識別子と１以上の語句との共起を示す情報である共起情報を１以上格納し得る原言語共起辞書をさらに具備し、中間言語文作成部は、原言語共起辞書に格納されている１以上の共起情報をも用いて、１以上の非言語情報識別子と１以上の語句識別子とを取得し、取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する自然言語文変換装置である。【００１７】  かかる構成により、自然言語文をコンピュータ処理するための中間言語に、より精度高く変換できる。【００１８】  また、本���七の発明の自然言語文変換装置は、第一から第六いずれかの発明に対して、原言語関数識別子は、引数の挿入場所を示す引数挿入情報を有し、中間言語文作成部は、引数挿入情報を用いて、受付部が受け付けた文と、原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得する自然言語文変換装置である。【００１９】  かかる構成により、自然言語文をコンピュータ処理するための中間言語に、精度高く、容易に変換できる。【００２０】  また、本第八の発明の自然言語文変換装置は、第一から第七いずれかの発明に対して、語句の原型および語句の変形である１以上の変形語句とを対応付けた変化語句情報を１以上格納し得る原言語変化語句辞書をさらに具備し、原言語関数識別子は、語句が変形する可能性があることを示す変化フラグを有し、中間言語文作成部は、変化フラグが付与された語句をキーとして、原言語変化語句辞書を検索し、１以上の変形語句を取得する変形語句取得手段をさらに具備し、中間言語文作成部は、１以上の非言語情報識別子を取得する場合に、変形語句取得手段が取得した１以上の変形語句をも用いて、受付部が受け付けた文と、原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得する自然言語文変換装置である。【００２１】  かかる構成により、自然言語文をコンピュータ処理するための中間言語に、より精度高く変換できる。【００２２】  また、本第九の発明の自然言語文変換装置は、第一から第八いずれかの発明に対して、原言語関数識別子は、何らかの語句が挿入され得ることを示す不定語句フラグを有し、中間言語文作成部は、１以上の非言語情報識別子を取得する場合に、不定語句フラグをも用いて、受付部が受け付けた文と、原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得する自然言語文変換装置である。【００２３】  かかる構成により、自然言語文をコンピュータ処理するための中間言語に、より精度高く変換できる。【００２４】  また、本第十の発明の自然言語文変換装置は、第一から第九いずれかの発明に対して、原言語文関数情報または原言語文型情報は、関数または文型の属性値を有し、受付部は、原言語の文および属性値を受け付け、中間言語文作成部は、非言語情報識別子を取得する場合に、受付部が受け付けた属性値を含む原言語文関数情報または原言語文型情報の中から、原言語関数識別子を取得し、原言語関数識別子と対になる１以上の非言語情報識別子を取得する自然言語文変換装置である。【００２５】  かかる構成により、自然言語文が生成された環境を考慮して、自然言語文をコンピュータ処理するための中間言語に変換できる。【００２６】  また、本第十一の発明の自然言語文変換装置は、第一から第十いずれかの発明に対して、目的言語の文字列を含む目的言語関数識別子と目的言語関数識別子で識別される関数の引数を示す情報である１以上の引数情報とを有する目的言語関数情報と、目的言語関数情報に対応する情報であり、言語非依存の識別子である非言語情報識別子とを対に有する目的言語文関数情報を１以上格納し得る目的言語文関数辞書と、目的言語の語句と、語句を識別する語句識別子とを対に有する目的言語語句情報を１以上格納し得る目的言語語句辞書と、出力部が出力した１以上の中間言語文が有する１以上の非言語情報識別子を用いて目的言語文関数辞書を検索し、１以上の目的言語関数情報を取得し、１以上の中間言語文が有する１以上の語句識別子を用いて目的言語語句辞書を検索し、１以上の語句を取得し、取得した１以上の目的言語関数情報および１以上の語句から目的言語の文を構成する変換部と、変換部が構成した目的言語の文を出力する目的言語文出力部とをさらに具備する自然言語文変換装置である。【００２７】  かかる構成により、原言語の文を目的言語の文に、精度高く機械翻訳できる。【００２８】  また、本第十二の発明の自然言語文変換装置は、第十一の発明に対して、変換部は、出力部が出力した１以上の中間言語文が有する１以上の非言語情報識別子を用いて目的言語文関数辞書を検索し、１以上の目的言語関数情報を取得する目的言語関数情報取得手段と、１以上の中間言語文が有する１以上の語句識別子を用いて目的言語語句辞書を検索し、１以上の語句を取得する語句取得手段と、目的言語関数情報取得手段が取得した１以上の目的言語関数情報と語句取得手段が取得した１以上の語句とを用いて、目的言語の文を構成する目的言語文構成手段とを具備する自然言語文変換装置である。【００２９】  かかる構成により、原言語の文を目的言語の文に、精度高く機械翻訳できる。【００３０】  また、本第十三の発明の自然言語文変換装置は、第十二の発明に対して、目的言語関数識別子は、引数の挿入場所を示す引数挿入情報を有し、かつ、語句が変形する可能性があることを示す変化フラグを有し、かつ、何らかの語句が挿入され得ることを示す不定語句フラグを有し、目的言語関数情報取得手段は、２以上の目的言語関数情報を取得し、目的言語文構成手段は、目的言語関数情報取得手段が取得した２以上の各目的言語関数情報が有する引数挿入情報が示す場所に、目的言語関数情報取得手段が取得した目的言語関数情報または語句取得手段が取得した語句を挿入し、かつ、目的言語関数情報が有する変化フラグに対応して文字列を変化させ、目的言語の文を構成する自然言語文変換装置である。【００３１】  かかる構成により、原言語の文を目的言語の文に、精度高く機械翻訳できる。【００３２】  また、本第十四の発明の自然言語文変換装置は、第一から第十いずれかの発明に対して、非言語情報識別子とアニメーション機能を実現するプログラムを対応付けて格納し得るプログラム格納部と、出力部が出力した中間言語文が有する非言語情報識別子に対応するプログラムを、プログラム格納部から検索し、実行する実行部とを具備する自然言語文変換装置である。【００３３】  かかる構成により、自然言語文から精度高く、アニメーションを生成できる。
【発明の効果】
【００３４】  本発明による自然言語文変換装置によれば、自然言語文をコンピュータ処理するための中間言語に、精度高く変換できる。
【発明を実施するための最良の形態】
【００３５】  以下、自然言語文変換装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。【００３６】（実施の形態１）  本実施の形態において、自然言語で記載された文を、関数表現の中間言語文に変換する自然言語文変換装置１について説明する。自然言語文変換装置１が取得した中間言語文は、関数表現であるため、極めてコンピュータ処理が容易である、という特性を有する。なお、コンピュータ処理の例として、実施の形態２で説明する翻訳処理、実施の形態３で説明するアニメーション化する処理があるが、コンピュータ処理は、自然言語文の整合性をチェックしたり、入力された自然言語の文に対して、解説を自動取得したりする、他の処理でも良いことは言うまでもない。また、他の処理とは、例えば、「named tag recognition(名前付タグ認識問題）」を解決する処理がある。この処理は、文中から人名や地名、組織名などの固有名詞を自動的に抜き出す処理である。従来の技術においては、人名や地名等の固有名詞の文字列の特徴を使って、辞書だけでは抽出困難な固有名詞を抽出する、というものであったが、中間言語文を用いる自然言語文変換装置１の方法では、埋め込み語句の属性として、タグに相当するものが既に入っており、容易に名前付タグ認識問題が解ける。【００３７】  ここで、関数表現（「関数の構造」とも言う）とは、一般的には、以下の４種類の情報を有する。１）関数を一意に識別する情報である関数名やメソッド名などの関数識別子、２）文や句のパターンを表現する文型パターン情報、３）引数として関数に埋め込まれる「埋め込み語句」、および４）話者の属性（性別、年齢、職業、宗教など）を識別する記号や、話者と聞き手との関係などの非言語情報識別子、である。【００３８】  つまり、関数表現は、「関数識別子（関数名）」＋「文型パターン情報」＋「引数列（埋め込み語句関係子の列）」＋「非言語情報識別子の集合」となる。４種類の情報のうち、言語に従属したものは、「文型パターン情報」だけである。その他のものは、言語独立である。なお、埋め込み語句関係子とは、埋め込み語句の種類を示す情報である。【００３９】  図１は、本実施の形態における自然言語文変換装置１のブロック図である。【００４０】  自然言語文変換装置１は、原言語文型辞書１１、原言語文関数辞書１２、原言語語句辞書１３、原言語共起辞書１４、受付部１６、関数化部１７、中間言語文作成部１８、出力部１９を備える。【００４１】  中間言語文作成部１８は、原言語関数識別子取得手段１８１、語句取得手段１８２、変形語句取得手段１８３、非言語情報識別子取得手段１８４、語句識別子取得手段１８５、中間言語文構成手段１８６を備える。【００４２】  原言語文型辞書１１は、原言語文型情報を１以上格納し得る。原言語文型情報は、原言語型情報と非言語情報識別子とを対に有する情報である。原言語型情報は、原言語関数識別子と文型パターンと１以上の語句を有する情報である。語句とは、例えば、単語、句、述語、文などである。また、原言語型情報は、原言語関数識別子と文型パターンと１以上の引数である語句を有しても良い。また���原言語型情報は、語句の種類（品詞や、主体、客体などの動詞との関係）を有しても良い。なお、語句は埋め込まれる情報であり、埋め込み語句と言っても良い。語句の種類とは、例えば、文［S］や、名詞または名詞句［N］などである。ここで、語句や埋め込み語句関係子は、原言語関数識別子で識別される関数の引数を示す情報である。原言語関数識別子は、原言語の関数を識別する情報である。文型パターンは、文のパターンを示す情報である。文型パターンは、中心語、機能語、および埋め込み語句（引数）の挿入位置を含み得る。中心語とは、その関数を代表する動詞、形容詞、副詞、接続詞などである。また、機能語とは、中心語を修飾する補語（目的補語、方向補語、時間補語）などを示す前置詞、助詞、助動詞などである。また、引数情報（原言語関数識別子）は、埋め込み語句の分類コードを有しても良い。埋め込み語句の分類コードは、agent,object,placeなどの挿入可能な語句の意味を表す情報である。なお、原言語とは、処理対象（処理前）の文の言語であり、機械翻訳の対象の言語とは限らない。原言語は、例えば、日本語、英語、中国語などである。ただし、原言語は問わないことは言うまでもない。【００４３】  文型パターンは、引数の挿入場所を示す引数挿入情報（例えば、「＿」や「_」）を有しても良い。引数挿入情報は、変化がない埋め込み語句を埋め込む場所を示す。また、文型パターンは、活用や複数型など、語句が変形する可能性があることを示す変化フラグ（例えば、「＠」や「@」）を有しても良い。なお、埋め込み文の主体(agent)や目的語(object)などを文中に埋め込む必要がある場合に、他の埋め込みフラグを用意し、当該埋め込みフラグを、当該埋め込み場所を示すフラグとして利用しても良い。また、他の埋め込みフラグは、変化フラグと同じにするなど、他のフラグと共用しても良い。さらに、非言語情報識別子は、言語非依存の関数を識別する情報である。非言語情報識別子は、文中には明示的に表れない情報であり、例えば、話者の属性（例えば、性別、年齢、職業、宗教など）を識別する記号や、話者と聞き手との関係（例えば、目上、目下、師弟関係など）を示す情報などである。また、非言語情報識別子は、例えば、英数字列である。なお、原言語文型情報等の具体例は、後述する。【００４４】  原言語文型辞書１１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。原言語文型辞書１１に原言語文型情報が記憶される過程は問わない。例えば、記録媒体を介して原言語文型情報が原言語文型辞書１１で記憶されるようになってもよく、通信回線等を介して送信された原言語文型情報が原言語文型辞書１１で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された原言語文型情報が原言語文型辞書１１で記憶されるようになってもよい。【００４５】  原言語文関数辞書１２は、原言語文関数情報を１以上格納し得る。原言語文関数情報は、原言語関数情報と非言語情報識別子とを対に有する情報である。原言語関数情報は、原言語の文字列を含む原言語関数識別子と原言語関数識別子で識別される関数の引数を示す情報である０または１以上の引数情報とを有する情報である。ここでの非言語情報識別子は、原言語関数情報に対応する情報であり、言語非依存の識別子である。詳細には、非言語情報識別子は、原言語関数情報に対応する情報であるが、表現に明示的に表れていない情報を言語非依存にコード化した識別子である。また、原言語文関数情報は、属性値をとり得る。属性値とは、例えば、非言語情報（文や句として明示的に表れない情報）を表すコードである。また、原言語関数情報は、中心語識別記号を含んでも良い。中心語識別記号とは、中心語を識別する記号である。原言語関数情報において、中心語識別記号の後、英語のように語が空白で区切られている場合は「空白」までが中心語となる。また、日本語や韓国語のように動詞や形容詞の語尾が変化する場合は、語幹の終わりを示す記号（例えば、「/」）までが中心語となる。また、ベトナム語のように音節区切り記号が「空白」で、語の区切り記号が無いものは、音節を記号（例えば、「=」）でつないで、語の終わりの「空白」までが中心語となる。【００４６】  引数情報とは、例えば、語句の種類（品詞や主体など）や原言語関数識別子などである。引数情報は、例えば、引数である原言語関数識別子で識別される原言語関数情報の種類（文［S］や、名詞または名詞句［N］）などを有しても良い。なお、原言語文関数情報等の具体例は、後述する。【００４７】  原言語文関数辞書１２は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。原言語文関数辞書１２に原言語文関数情報が記憶される過程は問わない。原言語文関数情報は、例えば、関数化部１７により生成され、蓄積される。【００４８】  原言語語句辞書１３は、原言語の語句と、語句を識別する語句識別子とを対に有する原言語語句情報を１以上格納し得る。原言語語句辞書１３は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。原言語語句辞書１３に原言語語句情報が記憶される過程は問わない。【００４９】  原言語共起辞書１４は、原言語関数識別子と１以上の語句との共起を示す情報である共起情報を１以上格納し得る。共起情報は、例えば、原言語関数識別子と１以上の各語句との共起確率を示す情報や、共起頻度を示す情報などである。共起情報の具体例についても後述する。原言語共起辞書１４は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。原言語共起辞書１４に共起情報が記憶される過程は問わない。共起情報は、例えば、関数化部１７により生成され、蓄積される。【００５０】  受付部１６は、原言語の文を受け付ける。受付部１６は、原言語の文および文のタイプを受け付けても良い。受付部１６は、複数の文を一度に受け付けても良い。そして、複数の文を一度に受け付ける場合、受付部１６は、文ごとに文のタイプをも受け付けても良い。また、受付部１６は、一部の文についてのみ、文のタイプをも受け付けても良い。ここで、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。【００５１】  文等の入力手段は、テンキーやキーボードやマウ��やメニュー画面によるもの等、何でも良い。受付部１６は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。【００５２】  関数化部１７は、原言語文型情報から原言語文関数情報を生成する。例えば、関数化部１７は、原言語文型情報が有する関数の引数を示す情報である１以上の語句を、１以上の引数情報に変更することにより、原言語文関数情報を生成する。かかる場合、関数化部１７は、原言語文型情報が有する原言語関数識別子は変更せずに、原言語文関数情報に含める。関数化部１７は、例えば、原言語文型情報「N1：a-*connected-_（［N: graph］）；」から語句「graph」を消去し、かつ、原言語文型情報の識別子「N1」から種類の情報である「N」のみを取り出し「N1」を「N」に変更し、原言語文関数情報「N  a-*connected-_([N]);」を得ても良い。また、関数化部１７は、例えば、原言語文型情報「S5：もし、@S:S1ていれば、＠S：S2である([S：S4],[S：S3]);」から引数の具体的な値である「S4」「S5」（原言語文型情報の識別子）を消去し、かつ、原言語文型情報の識別子「S4」「S5」を「S1」「S2」に変更し、原言語文関数情報「S    もし、@S:S1ていれば、＠S：S2である([S1],[S2]);」を得ても良い。【００５３】  また、関数化部１７は、原言語文型情報から、共起情報を生成する。例えば、関数化部１７は、原言語文型情報の原言語関数識別子と、その引数である語句を取り出し、当該原言語関数識別子と語句との共起頻度を１、インクリメントして、原言語共起辞書１４に記録する。関数化部１７は、例えば、原言語文型情報「N1：a-*connected-_（［N: graph］）；」から、原言語関数識別子「a-*connected-_」と語句「graph」の共起頻度を１、インクリメントして、原言語共起辞書１４に記録する。【００５４】  さらに、関数化部１７は、原言語文型情報から原言語語句情報の一部を生成しても良い。例えば、関数化部１７は、原言語文型情報にマッチする語句が、原言語語句辞書１３に格納されているか否かを検査し、格納されていない場合に、原言語文型情報にマッチする語句を、原言語語句辞書１３に蓄積する。そして、新たに原言語語句辞書１３に蓄積された語句に対応する語句識別子は、例えば、ユーザが入力する。関数化部１７は、例えば、原言語文型情報「N1：a-*connected-_（［N: graph］）；」から、語句「graph」を取得し、原言語語句辞書１３に語句「graph」が格納されているか否かを検査し、格納されていない場合に、語句「graph」を、原言語語句辞書１３に蓄積する。そして、例えば、ユーザが、語句「graph」に対応する語句識別子「w001」を、原言語語句辞書１３に入力する。【００５５】  関数化部１７は、通常、ＭＰＵやメモリ等から実現され得る。関数化部１７の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。【００５６】  中間言語文作成部１８は、受付部１６が受け付けた文と、原言語文関数辞書１２に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得する。また、中間言語文作成部１８は、受付部１６が受け付けた文と、原言語語句辞書１３���格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句識別子を取得する。そして、中間言語文作成部１８は、取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する。ここで、マッチングとは、例えば、パターンマッチングである。また、例えば、受付部１６が受け付けた文と１以上の原言語の語句とのマッチングをとる処理は、受付部１６が受け付けた文にマッチする原言語関数識別子に対応する引数に対応する文字列と、１以上の原言語の語句とのマッチングをとることである。【００５７】  また、中間言語文作成部１８は、次のように処理を行っても良い。つまり、中間言語文作成部１８は、受付部１６が受け付けた文と、１以上の原言語関数識別子とのマッチングをとる。なお、この１以上の原言語関数識別子は、原言語文関数辞書１２に格納されている原言語関数識別子および原言語文型辞書１１に格納されている原言語関数識別子である。そして、中間言語文作成部１８は、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得する。そして、中間言語文作成部１８は、原言語語句辞書１３に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句識別子を取得する。次に、中間言語文作成部１８は、取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する。【００５８】  また、中間言語文作成部１８は、原言語共起辞書１４に格納されている１以上の共起情報をも用いて、１以上の非言語情報識別子と１以上の語句識別子とを取得し、取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成しても良い。つまり、中間言語文作成部１８は、非言語情報識別子に対応する原言語関数識別子と、共起情報が示す共起頻度や共起確率が大きい語句に対応する語句識別子を取得し、当該語句識別子を用いて、中間言語文を構成することは好適である。【００５９】  また、中間言語文作成部１８は、引数挿入情報を用いて、受付部１６が受け付けた文と、原言語文関数辞書１２に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得する。さらに具体的には、中間言語文作成部１８は、引数挿入情報を用いて、原言語関数識別子に引数の情報を挿入し、文字列のパターンを取得する。そして、中間言語文作成部１８は、かかる文字列のパターンと受付部１６が受け付けた文とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得する。【００６０】  また、中間言語文作成部１８は、１以上の非言語情報識別子を取得する場合に、変形語句取得手段１８３が取得した１以上の変形語句をも用いて、受付部１６が受け付けた文と、原言語文関数辞書１２に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得する。さらに具体的には、中間言語文作成部１８は、変形語句取得手段１８３が取得し��１以上の変形語句と語句の原型のうちから適切な語句を選択し、当該選択した語句を変形語句の位置に配置し、文字列のパターンを取得する。そして、中間言語文作成部１８は、かかる文字列のパターンと受付部１６が受け付けた文とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得する。【００６１】  また、中間言語文作成部１８は、１以上の非言語情報識別子を取得する場合に、不定語句フラグをも用いて、受付部１６が受け付けた文と、原言語文関数辞書１２に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得する。【００６２】  また、中間言語文作成部１８は、非言語情報識別子を取得する場合に、受付部１６が受け付けた属性値を含む原言語文関数情報または原言語文型情報の中から、原言語関数識別子を取得し、原言語関数識別子と対になる１以上の非言語情報識別子を取得する。属性値を用いて原言語文関数情報または原言語文型情報を早期に絞り込むことにより、処理が速くなり、処理の精度も向上する。【００６３】  原言語文関数情報または原言語文型情報は、属性値を有することは好適である。また、属性値(attribute)は、関数に付加されても良い。また、属性値が存在しない関数もあり得ることは言うまでもない。また、属性値には、「関数タイプ」、「非言語情報」、「態・アスペクト・モード」などがある。関数タイプとは、関数のタイプまたは文型のタイプを示す情報である。関数タイプは、例えば、「Ｓ」、「Ｎ」、「Ｐ」である。「Ｓ」とは文である。「Ｎ」とは名詞または名詞句を示す。「Ｐ」とは述語である。非言語情報は、言語に表れない情報である。非言語情報とは、例えば、話者属性（男性、女性、年齢、立場など）、話者と聞き手との関係（上下関係、友人関係、親族関係など）、時制、季節、時間帯、文が登場する場所、文の目的など、文が登場するいずれかの環境を特定する情報である。非言語情報の具体例は、「話者男性(speaker-man)」、「話者（下）・聞き手(上）の関係(respect)」、「昼間(daytime)」などである。また、「態・アスペクト・モード」のうちの態（voice）は、能動態や受動態などを示す。また、アスペクト（aspect）は、時間関係の情報である。さらに、モード（modality）は、意思や感情などの情報である。モードは、意思を示す「Ｉｎｔｅｎｄ」、感情を示す「Ｅｍｏｔｉｏｎ」などがある。また、「Ｖｅｒｂ」属性は、その関数が動詞型であることを示す。関数タイプは、「動詞型、形容詞型」のいずれかであり、２つを区別するために、属性値は「動詞型（Ｖｅｒｂ）」、「形容詞型（Ａｄｌｅｃｔｉｖｅ）」をとり得る。【００６４】  中間言語文作成部１８は、通常、ＭＰＵやメモリ等から実現され得る。中間言語文作成部１８の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。【００６５】  原言語関数識別子取得手段１８１は、受付部１６が受け付けた文と、原言語文関数辞書１２に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子��取得する。また、原言語関数識別子取得手段１８１は、受付部１６が受け付けた文と、原言語文関数辞書１２に格納されている１以上の原言語関数識別子および原言語文型辞書１１に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子を、原言語文関数辞書１２および原言語文型辞書１１から取得する。【００６６】  語句取得手段１８２は、受付部１６が受け付けた文に含まれる１以上の語句であり、原言語関数識別子取得手段１８１が取得した原言語関数識別子で識別される関数の引数に対応する１以上の語句と、原言語語句辞書１３に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句を、原言語語句辞書１３から取得する。【００６７】  変形語句取得手段１８３は、変化フラグが付与された語句の変形語句を取得する。例えば、日本語や韓国語の場合、変形語句取得手段１８３は、変化形（変化のルール）を保持しており、変化形を用いて活用形を生成することにより、変形語句を取得する。また、英語の場合、変形語句取得手段１８３は、時制、人称、複数変形などによる規則変化の場合は、変化のルールを保持しており、当該ルールを適用し、変形語句を取得する。また、不規則変化の場合は、不規則変化の情報を、それぞれ個別に保持しており、変形語句取得手段１８３は、かかる情報を用いて、変形語句を取得する。また、変形語句取得手段１８３は、変化フラグが付与された語句をキーとして、図示しない原言語変化語句辞書を検索し、１以上の変形語句を、原言語変化語句辞書から取得しても良い。つまり、語句から変化語句を取得する方法は問わない。【００６８】  非言語情報識別子取得手段１８４は、原言語関数識別子取得手段１８１が取得した１以上の原言語関数識別子のそれぞれに対応する１以上の非言語情報識別子を、原言語文関数辞書１２から取得する。非言語情報識別子取得手段１８４は、原言語関数識別子取得手段１８１が取得した１以上の原言語関数識別子のそれぞれに対応する１以上の非言語情報識別子を、原言語文型辞書１１から取得しても良い。【００６９】  語句識別子取得手段１８５は、語句取得手段１８２が取得した１以上の語句のそれぞれに対応する１以上の語句識別子を、原言語語句辞書１３から取得する。【００７０】  中間言語文構成手段１８６は、非言語情報識別子取得手段１８４が取得した１以上の非言語情報識別子と語句識別子取得手段１８５が取得した１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する。なお、中間言語文構成手段１８６は、１以上の語句識別子を用いずに、１以上の中間言語文を構成しても良い。また、中間言語文構成手段１８６は、非言語情報識別子取得手段１８４が取得した１以上の非言語情報識別子と、他の中間言語文を識別する１以上の中間言語文識別子とを用いて、１以上の中間言語文を構成しても良い。また、中間言語文構成手段１８６は、受け付けられた一つの原言語の文に対して、通常、一つの中間言語文を構成する。中間言語文の構成方法の具体例は後述する。【００７１】  出力部１９は、中間言語文作成部１８が構成した１以上の中間言語文を出力する。ここで、出力とは、ディスプレイへの��示、プロジェクターを用いた投影、プリンタへの印字、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。【００７２】  出力部１９は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部１９は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。また、出力部１９は、中間言語文を蓄積するソフトウェアにより実現されても良い。【００７３】  次に、自然言語文変換装置１の動作について、図２のフローチャートを用いて説明する。【００７４】  （ステップＳ２０１）受付部１６は、文、または文と文のタイプを受け付けたか否かを判断する。文等を受け付ければステップＳ２０２に行き、文等を受け付けなければステップＳ２０１に戻る。【００７５】  （ステップＳ２０２）中間言語文作成部１８は、カウンタｉに１を代入する。【００７６】  （ステップＳ２０３）中間言語文作成部１８の原言語関数識別子取得手段１８１は、原言語文関数辞書１２に、ｉ番目の原言語文関数情報が存在するか否かを判断する。ｉ番目の原言語文関数情報が存在すればステップＳ２０４に行き、存在しなければステップＳ２１２に行く。【００７７】  （ステップＳ２０４）原言語関数識別子取得手段１８１は、原言語文関数辞書１２から、ｉ番目の原言語文関数情報を読み出す。【００７８】  （ステップＳ２０５）中間言語文構成手段１８６等は、文とｉ番目の原言語文関数情報とのマッチング処理を行う。マッチング処理とは、文とｉ番目の原言語文関数情報とがマッチするか否かを判断する処理である。なお、マッチング処理の対象の文は、受付部１６が受け付けた文や、後述するステップＳ２１０で一部変形された文である。【００７９】  （ステップＳ２０６）中間言語文構成手段１８６は、ステップＳ２０５における判断結果が「マッチする（例えば、マッチフラグ＝ＯＮ）」との判断結果である場合はステップＳ２０７に行き、「マッチしない（例えば、マッチフラグ＝ＯＦＦ）」との判断結果である場合はステップＳ２１１に行く。【００８０】  （ステップＳ２０７）中間言語文構成手段１８６は、ｉ番目の原言語文関数情報を取得する。【００８１】  （ステップＳ２０８）中間言語文構成手段１８６は、ステップＳ２０７で取得した原言語文関数情報と、文とマッチした箇所の情報（文字列）から、原言語型情報を構成する。なお、原言語型情報は、例えば、原言語文関数情報が有する原言語関数識別子と、当該原言語関数識別子に対応する関数の引数となる１以上の語句とを有する。１以上の語句は、文とマッチした箇所の1以上の語句である。また、原言語型情報は、例えば、原言語文関数情報が有する原言語関数識別子と、他の原言語型情報を識別する情報とを有する。他の原言語型情報を識別する情報は、原言語関数識別子に対応する関数の引数となる。【００８２】  （ステップＳ２０９）中間言語文構成手段１８６は、ステップＳ２０８で構成した原言語型情報を、バッファに少なくとも一時蓄積する。【００８３】  （ステップＳ２１０）中間言語文構成手段１８６は、処理対象の文（例えば、受付部１６が受け付けた文や���一部変形された文）を変形する。例えば、中間言語文構成手段１８６は、処理対象の文のうち、マッチしたパターンの箇所を、原言語型情報を識別する情報に置き換え、変形した文を取得する。【００８４】  （ステップＳ２１１）中間言語文作成部１８は、カウンタｉを１、インクリメントする。ステップＳ２０３に戻る。【００８５】  （ステップＳ２１２）中間言語文作成部１８は、カウンタｉに１を代入する。【００８６】  （ステップＳ２１３）中間言語文構成手段１８６は、バッファに、ｉ番目の原言語型情報が存在するか否かを判断する。ｉ番目の原言語型情報が存在すればステップＳ２１４に行き、存在しなければ処理を終了する。【００８７】  （ステップＳ２１４）中間言語文構成手段１８６は、ｉ番目の原言語型情報の原言語関数識別子に対応する言語非依存の識別子である非言語情報識別子を、原言語文関数辞書１２または原言語文型辞書１１から取得する。そして、中間言語文構成手段１８６は、原言語関数識別子を、取得した非言語情報識別子に置き換える。【００８８】  （ステップＳ２１５）中間言語文構成手段１８６は、カウンタｊに１を代入する。【００８９】  （ステップＳ２１６）中間言語文構成手段１８６は、ｉ番目の原言語型情報の中に、ｊ番目の引数が存在するか否かを判断する。ｊ番目の引数が存在すればステップＳ２１７に行き、ｊ番目の引数が存在しなければステップＳ２２１に行く。【００９０】  （ステップＳ２１７）中間言語文構成手段１８６は、ｊ番目の引数が語句であるか否かを判断する。ｊ番目の引数が語句であればステップＳ２１８に行き、語句でなければステップＳ２２０に行く。【００９１】  （ステップＳ２１８）語句識別子取得手段１８５は、ｊ番目の引数である語句をキーとして、原言語語句辞書１３を検索し、語句識別子を取得する。【００９２】  （ステップＳ２１９）中間言語文構成手段１８６は、ステップＳ２１８で取得された語句識別子を、ｉ番目の原言語型情報の引数の箇所に配置する。ここで、配置とは、通常、語句に代えて語句識別子を上書きすることである。【００９３】  （ステップＳ２２０）中間言語文構成手段１８６は、カウンタｊを１、インクリメントする。ステップＳ２１６に戻る。【００９４】  （ステップＳ２２１）出力部１９は、中間言語文を出力する。ここでの出力は、例えば、予め決められたファイルへの蓄積である。【００９５】  （ステップＳ２２２）中間言語文作成部１８は、カウンタｉを１、インクリメントする。ステップＳ２１３に戻る。【００９６】  なお、図２のフローチャートにおいて、中間言語文作成部１８は、原言語文関数辞書１２のみを検索して、中間言語文を構成した。つまり、中間言語文作成部１８は、原言語文型辞書１１を検索して、中間言語文を構成しなかった。しかし、中間言語文作成部１８は、原言語文型辞書１１を検索して、中間言語文を構成しても良い。【００９７】  また、図２のフローチャートにおいて、原言語共起辞書１４を用いなかった。しかし、中間言語文作成部１８は、複数の語句の候補、複数の原言語関数識別子の候補が存在する場合、対応する原言語関数識別子と共起確率が高いまたは共起頻度が大きい語句を取得したり、対応する語句と共起確率が高いまたは共起頻度が大きい原言語関数識別子を取得したりすることは好適である。つまり、中間言語文作成部１８は、原言語共起辞書１４に格納されている１以上の共起情報をも用いて、１以上の非言語情報識別子と１以上の語句識別子とを取得し、取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成しても良い。複数の語句の候補、複数の原言語関数識別子の候補が存在する場合に、一の語句や、一の原言語関数識別子を取得する処理は、中間言語文作成部１８の選択候補一意化手段１８７（図示しない）が行う、とする。【００９８】  また、図２のフローチャートにおいて、文のタイプをも受け付けられた場合、ステップＳ２０３やステップＳ２０４において、当該文のタイプと所定の関係にある関数タイプに対応する原言語文関数情報の集合のみから、ｉ番目の原言語文関数情報を取得するようにしても良い。かかることにより、早期に原言語文関数情報の絞り込みが行え、処理速度が向上する。【００９９】  次に、ステップＳ２０５のマッチング処理について、図３のフローチャートを用いて説明する。【０１００】  （ステップＳ３０１）中間言語文構成手段１８６は、受け付けられた文にタイプが存在するか否かを判断する。タイプが存在すればステップＳ３０２に行き、タイプが存在しなければステップＳ３０３に行く。【０１０１】  （ステップＳ３０２）中間言語文構成手段１８６は、受け付けられた文のタイプと、処理対象の原言語関数情報の関数タイプが所定の関係にあるか否かを判断する。文のタイプと関数タイプとが所定の関係にあればステップＳ３０３に行き、所定の関係になければステップＳ３１４に行く。ここで、所定の関係とは、例えば、文のタイプと関数タイプとが同じであることである。また、所定の関係とは、例えば、文のタイプと関数タイプとが同じである、または関数タイプが空（文のタイプと異なる関数タイプを有しない）であることである。【０１０２】  （ステップＳ３０３）中間言語文構成手段１８６は、処理対象の原言語文関数情報が有する原言語関数情報が1以上の引数を有するか否かを判断する。1以上の引数を有すればステップＳ３０４に行き、1以上の引数を有しなければステップＳ３０５に行く。【０１０３】  （ステップＳ３０４）中間言語文構成手段１８６は、処理対象の原言語関数情報が有する原言語関数識別子の、引数挿入情報が示す引数の箇所を、任意の文字列がマッチする符号（例えば、「＊」）に変換する。【０１０４】  （ステップＳ３０５）中間言語文構成手段１８６は、処理対象の原言語関数情報（原言語関数識別子）が1以上の変化フラグを有するか否かを判断する。1以上の変化フラグを有すればステップＳ３０６に行き、1以上の変化フラグを有しなければステップＳ３０７に行く。【０１０５】  （ステップＳ３０６）変形語句取得手段１８３は、変化フラグが付された語句から、予め決められたルールを適用し、１以上の変形語句を、変化フラグが付された語句ごとに取得する。【０１０６】  （ステップＳ３０７）中間言語文構成手段１８６は、処理対象の原言語関数情報から、文字列のパターンを、１以上取得する。中間言語文構成手段１８６は、例えば、ステップＳ３０４で取得した原言語関数情報に対して、ステップＳ３０６で取得した１以上の語句（検索キーとなった語句）および変形語句を、各々、語句の箇所に挿入し、１以上の語句および変形語句の組み合わせの数だけ、文字列のパターンを取得する。また、変化フラグが存在しない場合、中間言語文構成手段１８６は、例えば、ステップＳ３０４で取得した原言語関数情報が有する原言語関数識別子を、文字列のパターンとして取得する。【０１０７】  （ステップＳ３０８）中間言語文構成手段１８６は、カウンタｉに１を代入する。【０１０８】  （ステップＳ３０９）中間言語文構成手段１８６は、ステップＳ３０７で取得した文字列のパターンのうち、ｉ番目のパターンが存在するか否かを判断する。ｉ番目のパターンが存在すればステップＳ３１０に行き、ｉ番目のパターンが存在しなければステップＳ３１４に行く。【０１０９】  （ステップＳ３１０）中間言語文構成手段１８６は、ｉ番目のパターンと、文とのマッチングをとる。なお、このマッチングとは、例えば、任意の文字列を許す「＊」などの正規表現も加味した、パターンマッチングである。【０１１０】  （ステップＳ３１１）中間言語文構成手段１８６は、ステップＳ３１０におけるマッチングの結果、ｉ番目のパターンと文とがマッチしたか否かを判断する。マッチすればステップＳ３１２に行き、マッチしなければステップＳ３１３に行く。【０１１１】  （ステップＳ３１２）中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。上位処理にリターンする。【０１１２】  （ステップＳ３１３）中間言語文構成手段１８６は、カウンタｉを１、インクリメントする。ステップＳ３０９に戻る。【０１１３】  （ステップＳ３１４）中間言語文構成手段１８６は、マッチフラグに「ＯＦＦ」を代入する。上位処理にリターンする。【０１１４】  以下、本実施の形態における自然言語文変換装置１の具体的な動作について説明する。以下、原言語が英語である場合の具体例１、および原言語が日本語である場合の具体例２について説明する。【０１１５】（具体例１）  今、原言語文関数辞書１２は、図４に示す原言語文関数辞書を格納している。原言語文関数辞書は、「ＩＤ」「原言語文関数情報」「索引」を有するレコードを１以上格納している。「原言語文関数情報」は「種類」「原言語関数情報」「非言語情報識別子」「属性値」を有する。「種類」とは、「原言語関数情報」の種類を示す情報であり、関数タイプと同意義である。また、「種類」は、ここでは、名詞または名詞句を示す「Ｎ」、または文を示す「Ｓ」などの値を採り得る。「原言語関数情報」は、原言語関数識別子および０または１以上の引数情報を有する。原言語関数識別子は、マッチする文字列のパターンを示す情報である。原言語関数識別子「a-*connected-_」の「-」は、スペースを示す。「*」は、任意の文字列（１以上の語句）を示す。さらに詳細には、「*」は、副詞から作られる文型関数を、他の文に埋め込む位置を示している。「_」は、引数情報に対応する引数が入ることを示す。原言語関数識別子「_-@be:a1-_」の「@」は変化フラグであり、「@」に続く語句である「be」が変化し得ることを示す。「a1」は、第一番目の引数を示し、「a1」の表記により、「be」���第一番目の引数により変化することを示す。つまり、「@be:a1」は第一番目の引数により、語句「be」が変化し得ることを示す。また、引数情報は、引数の種類を示す引数種類情報を有する。引数種類情報「N」は、引数が名詞または名詞句であることを示す。引数種類情報［a-object］は、引数が属性を有する主体であることを示す。引数種類情報［object］は、引数が対象物であることを示す。引数種類情報［agent］は、引数が主体であることを示す。引数種類情報［S］は、引数が文であることを示す。つまり、原言語関数情報「a-*connected-_([N])」は、例えば、「a connected graph」に合致することを示す。つまり、原言語関数情報は、マッチする文字列を特定する情報である。また、「非言語情報識別子」は、ここでは数字列であるが、英文字やその他の文字などを用いても良いことは言うまでもない。「非言語情報識別子」は、原言語関数情報を特定できれば良い。さらに、ここでは、「属性値」は、空である。つまり、「ＩＤ＝１」から「ＩＤ＝７」のレコードにおいて、「属性値」は定義されていない。また、「索引」とは、原言語関数情報を検索する場合のキーであり、原言語関数情報を構成する１文字である。「索引」は、関数名イニシャル索引とも言う。【０１１６】  また、図５は、原言語語句辞書１３の例を示す図である。原言語語句辞書１３は、「ＩＤ」「語句」「語句識別子」を有するレコードを１以上格納している。「語句」「語句識別子」は、原言語語句情報である。【０１１７】  かかる状況において、文「If G is a connected graph and every vertex has even degree, then G has an Euler cycle.」が入力され、受付部１６が当該文を受け付けた、とする。【０１１８】  次に、原言語関数識別子取得手段１８１は、１番目の原言語文関数情報を、図４の原言語文関数辞書から読み出す。【０１１９】  次に、中間言語文構成手段１８６は、文のタイプが存在しないので、１番目の原言語文関数情報が有する原言語関数識別子「a-*connected-_」の引数挿入情報「＿」の箇所を任意の文字列がマッチする符号「*」に変換し、「a-*connected-*」を得る。なお、記号「*」は、この文型関数の「中心語」がどれであるかを示している。【０１２０】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子「a-*connected-*」が１以上の変化フラグを有しない、と判断する。そして、中間言語文構成手段１８６は、文字列のパターン「a-*connected-*」を一つ取得する。【０１２１】  次に、中間言語文構成手段１８６は、パターン「a-*connected-*」と、文「If G is a connected graph and every vertex has even degree, then G has an Euler cycle.」とのマッチングをとる。そして、中間言語文構成手段１８６は、文の「a connected graph」の文字列が、パターン「a-*connected-*」にマッチする、と判断する。そして、中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。【０１２２】  次に、中間言語文構成手段１８６は、１番目の原言語文関数情報が有する原言語関数情報「a-*connected-_（［N］）；」と、文とマッチした箇所の情報（文字列）「a connected graph」を用いて、原言語型情報「N1：a-*connected-_（［N:graph］）；」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「a-*connected-_（［N］）；」に対応する種類「N」を取得し、かつ、１番目の「N」の出現を���知し、「N1」を構成する。中間言語文構成手段１８６は、種類「N」の1番目の原言語関数情報に対して、「N1」を取得する。また、中間言語文構成手段１８６は、「a-*connected-_（［N］）；」の[N]の箇所には、マッチングにより語句「graph」を取得し、「a-*connected-_（［N:graph］）；」を得る。そして、中間言語文構成手段１８６は、「a-*connected-_（［N:graph］）；」に「N1」を付加して、原言語型情報「N1：a-*connected-_（［N:graph］）；」を得る。【０１２３】  そして、中間言語文構成手段１８６は、構成した原言語型情報「N1：a-*connected-_（［N:graph］）；」を、バッファに、少なくとも一時蓄積する。【０１２４】  次に、中間言語文構成手段１８６は、受付部１６が受け付けた文「If G is a connected graph and every vertex has even degree, then G has an Euler cycle.」を変形し、「If G is N1 and every vertex has even degree, then G has an Euler cycle.」を得る。つまり、中間言語文構成手段１８６は、マッチした箇所の情報（文字列）「a connected graph」を、原言語型情報の識別子「N1」に置き換える。【０１２５】  次に、原言語関数識別子取得手段１８１は、２番目の原言語文関数情報を、図４の原言語文関数辞書から読み出す。【０１２６】  次に、中間言語文構成手段１８６は、文のタイプが存在しないので、２番目の原言語文関数情報が有する原言語関数識別子「_-@be:a1-_」の引数挿入情報「＿」の箇所を任意の文字列がマッチする符号「*」に変換し、「*-@be:a1-*」を得る。【０１２７】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子が変化フラグ「＠」を有すると、判断する。【０１２８】  次に、変形語句取得手段１８３は、変化フラグ「＠」が付された語句「be」をキーとして、保持している、語句「be」に対する変化のルールを読み出し、当該ルールを適用し、変形語句「is」を取得する。なお、ルールとは、例えば、「a1」が単数であり時制が現在の場合は「is」、「a1」が複数であり時制が現在の場合は「are」、「a1」が単数であり時制が過去の場合は「was」、「a1」が複数であり時制が過去の場合は「were」となる、というルールである。「a1」に該当する語句が単数か複数かは、原言語語句辞書１３を検索することにより取得できる、とする。原言語語句辞書１３の各語句には、単数形か複数形かを示す情報が付与されている。また、時制が現在か過去かについて、文の動詞をキーとして原言語語句辞書１３を検索することにより、取得できる、とする。原言語語句辞書１３の動詞には、現在形、過去形などの語句が記載されているものとする。【０１２９】  次に、中間言語文構成手段１８６は、「be」を「is」に置き換えたパターン「*-is-*」と、文「If G is N1 and every vertex has even degree, then G has an Euler cycle.」とのマッチングをとる。【０１３０】  そして、中間言語文構成手段１８６は、パターン「*-is-*」と、文「If G is N1 and every vertex has even degree, then G has an Euler cycle.」とはマッチする、と判断する。中間言語文構成手段１８６は、パターン「*-is-*」と文を構成する文字列「G is N1」がマッチするので、このパターンと文とがマッチする、と判断する。そして、中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。【０１３１】  次に、中間言語文構成手段１８６は、２番目の原言語文関数情報が有する原言語関数情報「_-@be:a1-_([a-object],[object]);」と、文とマッチした箇所の情報（文字列）「G is N1」を用いて、原言語型情報「S1：_-@be:a1-_([a-object:G],[object：N1]);」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「_-@be:a1-_([a-object],[object]);」に対応する種類「S」を取得し、かつ、１番目の「S」の出現を検知し、「S1」を構成する。そして、中間言語文構成手段１８６は、「_-@be:a1-_([a-object:G],[object：N1]);」に「S1」を付加して、原言語型情報「S1：_-@be:a1-_([a-object:G],[object：N1]);」を得る。【０１３２】  そして、中間言語文構成手段１８６は、構成した原言語型情報「S1：_-@be:a1-_([a-object:G],[object：N1]);」を、バッファに、少なくとも一時蓄積する。【０１３３】  次に、中間言語文構成手段１８６は、上記と同様に、処理対象の文「If G is N1 and every vertex has even degree, then G has an Euler cycle.」を変形し、「If S1 and every vertex has even degree, then G has an Euler cycle.」を得る。【０１３４】  次に、原言語関数識別子取得手段１８１は、３番目の原言語文関数情報を、図４の原言語文関数辞書から読み出す。【０１３５】  次に、中間言語文構成手段１８６は、文のタイプが存在しないので、３番目の原言語文関数情報が有する原言語関数識別子「every-_」の引数挿入情報「＿」の箇所を任意の文字列がマッチする符号「*」に変換し、「every-*」を得る。【０１３６】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子が変化フラグ「＠」を有しないと、判断する。そして、中間言語文構成手段１８６は、文字列のパターン「every-*」を一つ取得する。【０１３７】  次に、中間言語文構成手段１８６は、パターン「every-*」と、変形後の文「If S1 and every vertex has even degree, then G has an Euler cycle.」とのマッチングをとる。そして、中間言語文構成手段１８６は、文の「every vertex」の文字列が、パターン「every-*」にマッチする、と判断する。そして、中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。【０１３８】  次に、中間言語文構成手段１８６は、３番目の原言語文関数情報が有する原言語関数情報「every-_([N]);」と、文とマッチした箇所の情報（文字列）「every vertex」を用いて、原言語型情報「N2：every-_([N：vertex]);」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「every-_([N]);」に対応する種類「N」を取得し、かつ、２番目の「N」の出現を検知し、「N2」を構成する。そして、中間言語文構成手段１８６は、「every-_([N：vertex]);」に「N2」を付加して、原言語型情報「N2：every-_([N：vertex]);」を得る。【０１３９】  そして、中間言語文構成手段１８６は、構成した原言語型情報「N2：every-_([N：vertex]);」を、バッファに、少なくとも一時蓄積する。【０１４０】  次に、中間言語文構成手段１８６は、文「If S1 and every vertex has even degree, then G has an Euler cycle.」を変形し、「If S1 and N2 has even degree, then G has an Euler cycle.」を得る。【０１４１】  次に、原言語関数識別子取得手段１８１は、４番目の原言語文関数情報を、図４の原言語文関数辞書から読み出す。【０１４２】  次に、中間言語文構成手段１８６は、文のタイプが存在しないので、４番目の原言語文関数情報が有する原言語関数識別子「even-_」の引数挿入情報「＿」の箇所を任意の文字列がマッチする符号「*」に変換し、「even-*」を得る。【０１４３】  次に、中間言語文���成手段１８６は、処理対象の原言語関数識別子が変化フラグ「＠」を有しないと、判断する。そして、中間言語文構成手段１８６は、文字列のパターン「even-*」を一つ取得する。【０１４４】  次に、中間言語文構成手段１８６は、パターン「even-*」と、変形後の文「If S1 and N2 has even degree, then G has an Euler cycle.」とのマッチングをとる。そして、中間言語文構成手段１８６は、文の「even degree」の文字列が、パターン「even-*」にマッチする、と判断する。そして、中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。【０１４５】  次に、中間言語文構成手段１８６は、４番目の原言語文関数情報が有する原言語関数情報「even-_([N]);」と、文とマッチした箇所の情報（文字列）「even degree」を用いて、原言語型情報「N3：even-_([N：degree]);」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「even-_([N]);」に対応する種類「N」を取得し、かつ、３番目の「N」の出現を検知し、「N3」を構成する。そして、中間言語文構成手段１８６は、「even-_([N：degree]);」に「N3」を付加して、原言語型情報「N3：even-_([N：degree]);」を得る。【０１４６】  そして、中間言語文構成手段１８６は、構成した原言語型情報「N3：even-_([N：degree]);」を、バッファに、少なくとも一時蓄積する。【０１４７】  次に、中間言語文構成手段１８６は、文「If S1 and N2 has even degree, then G has an Euler cycle.」を変形し、「If S1 and N2 has N3, then G has an Euler cycle.」を得る。【０１４８】  次に、原言語関数識別子取得手段１８１は、５番目の原言語文関数情報を、図４の原言語文関数辞書から読み出す。【０１４９】  次に、中間言語文構成手段１８６は、文のタイプが存在しないので、５番目の原言語文関数情報が有する原言語関数識別子「_-@have:a1-_」の引数挿入情報「＿」の箇所を任意の文字列がマッチする符号「*」に変換し、「*-@have:a1*」を得る。【０１５０】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子が変化フラグ「＠」を有すると、判断する。【０１５１】  次に、変形語句取得手段１８３は、変化フラグ「＠」が付された語句「have」に対する変化のルールを読み出し、当該ルールを適用し、変形語句を取得する。ここで、変化のルールは「a1」が三人称単数であり、時制が現在の場合は「has」に変形されると言うルール、「a1」が三人称以外であり、時制が現在の場合は「have」のままであると言うルール、時制が過去の場合は「had」に変形されると言うルール等である。そして、変形語句取得手段１８３は、「a1」が三人称単数であり、時制が現在であると認識し、語句「have」を「has」に変形する。【０１５２】  次に、中間言語文構成手段１８６は、文字列のパターン「*-has-*」を取得する。【０１５３】  次に、中間言語文構成手段１８６は、パターン「*-has-*」と、文「If S1 and N2 has N3, then G has an Euler cycle.」とのマッチングをとる。【０１５４】  そして、中間言語文構成手段１８６は、２番目のパターン「*-has-*」と、文「If S1 and N2 has N3, then G has an Euler cycle.」とはマッチする、と判断する。中間言語文構成手段１８６は、パターン「*-has-*」と文を構成する文字列「N2 has N3」がマッチするので、このパターンと文とがマッチする、と判断する。そして、中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。【０１５５】  次に、中間言語文構成手段１８６は、５番目の原言語文関数情報が有する原言語関数情報「_-@have:a1-_([agent],[object]);」と、文とマッチした箇所の情報（文字列）「N2 has N3」を用いて、原言語型情報「S2：_-@have:a1-_([object:N2],[object：N3]);」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「_-@have:a1-_([object],[object]);」に対応する種類「S」を取得し、かつ、２番目の「S」の出現を検知し、「S2」を構成する。そして、中間言語文構成手段１８６は、「_-@have:a1-_([object:N2],[object：N3]);」に「S2」を付加して、原言語型情報「S2：_-@have:a1-_([object:N2],[object：N3]);」を得る。【０１５６】  そして、中間言語文構成手段１８６は、構成した原言語型情報「S2：_-@have:a1-_([object:N2],[object：N3]);」を、バッファに、少なくとも一時蓄積する。【０１５７】  また、中間言語文構成手段１８６は、パターン「*-has-*」と、文「If S1 and N2 has N3, then G has an Euler cycle.」を構成する文字列「G has an Euler cycle」がマッチする、と判断する。【０１５８】  次に、中間言語文構成手段１８６は、５番目の原言語文関数情報が有する原言語関数情報「_-@have:a1-_([agent],[object]);」と、文とマッチした箇所の情報（文字列）「G has an Euler cycle」を用いて、原言語型情報「S3：_-@have:a1-_([object:G],[object：Euler cycle]);」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「_-@have:a1-_([object],[object]);」に対応する種類「S」を取得し、かつ、３番目の「S」の出現を検知し、「S3」を構成する。そして、中間言語文構成手段１８６は、「_-@have:a1-_([object:G],[object：Euler cycle]);」に「S3」を付加して、原言語型情報「S3：_-@have:a1-_([object:G],[object：Euler cycle]);」を得る。このように、一の原言語関数情報が複数の箇所にマッチする場合もあり得る。【０１５９】  そして、中間言語文構成手段１８６は、構成した原言語型情報「S3：_-@have:a1-_([object:G],[object：Euler cycle]);」を、バッファに、少なくとも一時蓄積する。【０１６０】  次に、中間言語文構成手段１８６は、処理対象の文「If S1 and N2 has N3, then G has an Euler cycle.」を変形し、「If S1 and S2, then S3.」を得る。【０１６１】  次に、原言語関数識別子取得手段１８１は、６番目の原言語文関数情報を、図４の原言語文関数辞書から読み出す。【０１６２】  次に、中間言語文構成手段１８６は、文のタイプが存在しないので、６番目の原言語文関数情報が有する原言語関数識別子「_-and-_」の引数挿入情報「＿」の箇所を任意の文字列がマッチする符号「*」に変換し、「*-and-*」を得る。【０１６３】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子が変化フラグ「＠」を有しないと、判断する。そして、中間言語文構成手段１８６は、文字列のパターン「*-and-*」を一つ取得する。【０１６４】  次に、中間言語文構成手段１８６は、パターン「*-and-*」と、変形後の文「If S1 and S2, then S3.」とのマッチングをとる。そして、中間言語文構成手段１８６は、文の「S1 and S2」の文字列が、パターン「*-and-*」にマッチする、と判断する。そして、中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。【０１６５】  次に、中間言語文構成手段１８６は、６番目の原言語文関数情報が有する原言語関数情報「_-and-_([S],[S]);」と、文とマッチした箇所の情報（文字列）「S1 and S2」を用いて、原言語型情報「S4：_-and-_([S:S1],[S:S2]);」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「_-and-_([S],[S]);」に対応する種類「S」を取得し、かつ、４番目の「S」の出現を検知し、「S4」を構成する。そして、中間言語文構成手段１８６は、「_-and-_([S:S1],[S:S2]);」に「S4」を付加して、原言語型情報「S4：_-and-_([S:S1],[S:S2]);」を得る。【０１６６】  そして、中間言語文構成手段１８６は、構成した原言語型情報「S4：_-and-_([S:S1],[S:S2]);」を、バッファに、少なくとも一時蓄積する。【０１６７】  次に、中間言語文構成手段１８６は、文「If S1 and S2, then S3.」を変形し、「If S4, then S3.」を得る。【０１６８】  次に、原言語関数識別子取得手段１８１は、７番目の原言語文関数情報を、図４の原言語文関数辞書から読み出す。【０１６９】  次に、中間言語文構成手段１８６は、文のタイプが存在しないので、７番目の原言語文関数情報が有する原言語関数識別子「If-_-,then-_」の引数挿入情報「＿」の箇所を任意の文字列がマッチする符号「*」に変換し、「If-*-,then-*」を得る。【０１７０】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子が変化フラグ「＠」を有しないと、判断する。そして、中間言語文構成手段１８６は、文字列のパターン「If-*-,then-*」を一つ取得する。【０１７１】  次に、中間言語文構成手段１８６は、パターン「If-*-,then-*」と、変形後の文「If S4, then S3.」とのマッチングをとる。そして、中間言語文構成手段１８６は、文の「If S4, then S3」の文字列が、パターン「If-*-,then-*」にマッチする、と判断する。そして、中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。【０１７２】  次に、中間言語文構成手段１８６は、７番目の原言語文関数情報が有する原言語関数情報「If-_-,then-_([S],[S]);」と、文とマッチした箇所の情報（文字列）「If S4, then S3」を用いて、原言語型情報「S5：If-_-,then-_([S：S4],[S：S3]);」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「If-_-,then-_([S],[S]);」に対応する種類「S」を取得し、かつ、５番目の「S」の出現を検知し、「S5」を構成する。そして、中間言語文構成手段１８６は、「If-_-,then-_([S：S4],[S：S3]);」に「S5」を付加して、原言語型情報「S5：If-_-,then-_([S：S4],[S：S3]);」を得る。【０１７３】  そして、中間言語文構成手段１８６は、構成した原言語型情報「S5：If-_-,then-_([S：S4],[S：S3]);」を、バッファに、少なくとも一時蓄積する。【０１７４】  次に、中間言語文構成手段１８６は、文「If S4, then S3」を変形し、「S5」を得る。ここで、入力された文が、一つの原言語型情報の識別子に置き換えられたので、原言語型情報への変換処理を終了する。つまり、入力された一文が、一つの原言語型情報の識別子に置き換えられるまで、上記の置き換え処理を繰り返す。【０１７５】  そして、中間言語文構成手段１８６は、図６に示す８つの原言語型情報をバッファに格納した。【０１７６】  次に、上記の８つの原言語型情報を非言語情報識別子と、語句識別子に変換する。つまり、中間言語文構成手段１８６は、図６に示すバッファ内の情報から、「ＩＤ＝１」の原言語型情報「N1：a-*connected-_（［N: graph］）；」を読み出す。【０１７７】  次に、中間言語文構成手段１８６は、１番目の原言語型情報の原言語関数識別子「a-*connected-_」に対応する言語非依存の識別子である非言語情報識別子「1002002」を、図４の原言語文関数辞書１２から取得し、原言語関数識別子「a-*connected-_」を非言語情報識別子「1002002」に置き換え、「N1：1002002（［N:graph］）；」を得る。【０１７８】  次に、中間言語文構成手段１８６は、１番目の原言語型情報の引数［N:graph］を取得する。【０１７９】  次に、語句識別子取得手段１８５は、引数である語句「graph」をキーとして、図６の原言語語句辞書１３を検索し、語句識別子「w001」を取得する。【０１８０】  次に、中間言語文構成手段１８６は、取得された語句識別子「w001」を、１番目の原言語型情報の引数の箇所に挿入し、「N1：1002002（［N:w001］）；」を得る。【０１８１】  同様に、図６に示すバッファ内の２番目以降の原言語型情報を処理し、８つの中間言語文（図７参照）を得る。中間言語文は、非言語情報識別子と語句識別子を有する。また、非言語情報識別子で識別され得る関数の引数は、語句識別子や中間言語文の識別子や未知語である。中間言語文の識別子とは、図７の「N1」「S1」「N2」などである。未知語とは、原言語語句辞書１３に存在しない語句であり、ここでは「G」である。未知語の場合、語句識別子には置き換えられず、そのまま表記される。【０１８２】  次に、出力部１９は、図７の８つの中間言語文を出力する。ここでの出力は、例えば、予め決められたファイルへの蓄積である。【０１８３】（具体例２）  図８は、日本語の原言語文型辞書１１を示す。図８の原言語文型辞書は、原言語文関数辞書は、「ＩＤ」「原言語文関数情報」を有するレコードを１以上格納している。なお、引数種類情報［a-object］は、引数が主体であることを示す。図８において「-」で囲まれた文字列は、変化することを示す。例えば、「持-つ-」の「つ」は、活用により変化することを示す。【０１８４】  また、図９は、日本語の原言語語句辞書１３の例を示す図である。また、図１０は、日本語の原言語変化語句辞書の例を示す図である。原言語変化語句辞書は、例えば、動詞の活用や形容詞の活用や形容動詞の活用に関する情報を保持している。【０１８５】  かかる状況において、文「もし、Gが接続グラフで、かつすべての節点が偶数次数を持っていれば、Gはオイラー回路を持つ。」が入力され、受付部１６が当該文を受け付けた、とする。【０１８６】  次に、原言語関数識別子取得手段１８１は、１番目の原言語文関数情報を、図８の原言語文関数辞書から読み出す。【０１８７】  次に、中間言語文構成手段１８６は、文のタイプが存在しないので、１番目の原言語文関数情報が有する原言語関数識別子「接続_」の引数挿入情報「＿」の箇所を任意の文字列がマッチする符号「*」に変換し、「接続*」を得る。【０１８８】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子「接続*」が1以上の変化フラグを有しない、と判断する。そして、中間言語文構成手段１８６は、文字列のパターン「接続*」を一つ取得する。【０１８９】  次に、中間言語文構成手段１８６は、パターン「接続*」と、文「もし、Gが接続グラフで、かつすべての節点が偶数次数を持っていれば、Gはオイラー回路を持つ。」とのマッチングをとる。そして、中間言語文構成手段１８６は、文の「接続グ���フ」の文字列が、パターン「接続*」にマッチする、と判断する。そして、中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。【０１９０】  次に、中間言語文構成手段１８６は、１番目の原言語文関数情報が有する原言語関数情報「接続-_（［N］）；」と、文とマッチした箇所の情報（文字列）「接続グラフ」を用いて、原言語型情報「N1：接続_（［N:グラフ］）；」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「接続_（［N］）；」に対応する種類「N」を取得し、かつ、１番目の「N」の出現を検知し、「N1」を構成する。そして、中間言語文構成手段１８６は、「接続_（［N:グラフ］）；」に「N1」を付加して、原言語型情報「N1：接続_（［N:グラフ］）；」を得る。【０１９１】  そして、中間言語文構成手段１８６は、構成した原言語型情報「N1：接続_（［N:グラフ］）；」を、バッファに、少なくとも一時蓄積する。【０１９２】  次に、中間言語文構成手段１８６は、受付部１６が受け付けた文「もし、Gが接続グラフで、かつすべての節点が偶数次数を持っていれば、Gはオイラー回路を持つ。」を変形し、「もし、GがN1で、かつすべての節点が偶数次数を持っていれば、Gはオイラー回路を持つ。」を得る。【０１９３】  次に、原言語関数識別子取得手段１８１は、２番目の原言語文関数情報を、図８の原言語文関数辞書から読み出す。【０１９４】  次に、中間言語文構成手段１８６は、文のタイプが存在しないので、２番目の原言語文関数情報が有する原言語関数識別子「_が_で-ある-」の引数挿入情報「＿」の箇所を任意の文字列がマッチする符号「*」に変換し、「*が*で-ある-」を得る。【０１９５】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子が変化フラグ「-」「-」を有すると、判断する。【０１９６】  次に、変形語句取得手段１８３は、変化フラググ「-」「-」で囲まれた語句「ある」をキーとして、図１０の原言語変化語句辞書を検索し、１以上の変形語句「  （空），あり，ある，あれ，あろ，あっ」を取得する。【０１９７】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子「_が_で-ある-」から、文字列のパターンを６つ取得する。ここで取得した文字列のパターンは、語句「ある」と変形語句「  （空），あり，ある，あれ，あろ，あっ」のぞれぞれを、順に、「*が*で-ある-」の位置に配置した文字列のパターンである。つまり、６つの文字列のパターンは「*が*で」「*が*であり」「*が*である」「*が*であれ」「*が*であろ」「*が*であっ」である。【０１９８】  次に、中間言語文構成手段１８６は、１番目のパターン「*が*で」と、文「もし、GがN1で、かつすべての節点が偶数次数を持っていれば、Gはオイラー回路を持つ。」とのマッチングをとる。なお、ここでの文は、変形後の文である。そして、中間言語文構成手段１８６は、１番目のパターン「*が*で」と文とはマッチする、と判断する。つまり、中間言語文構成手段１８６は、１番目のパターン「*が*で」と文を構成する文字列「GがN1で」がマッチするので、１番目のパターンと文とがマッチする、と判断する。そして、中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。【０１９９】  次に、中間言語文構成手段１８６は、２番目の原言語文関数情報が有する原言語関数情報「_が_で-ある-([a-object],[object]);」と、文とマッチした箇所の情報（文字列）「GがN1で」を用いて、原言語型情報「S1：_が_で-ある-([a-object:G],[object：N1]);」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「_が_で-ある-([a-object],[object]);」に対応する種類「S」を取得し、かつ、１番目の「S」の出現を検知し、「S1」を構成する。そして、中間言語文構成手段１８６は、「_が_で-ある-([a-object:G],[object：N1]);」に「S1」を付加して、原言語型情報「S1：_が_で-ある-([a-object:G],[object：N1]);」を得る。【０２００】  そして、中間言語文構成手段１８６は、構成した原言語型情報「S1：_が_で-ある-([a-object:G],[object：N1]);」を、バッファに、少なくとも一時蓄積する。【０２０１】  次に、中間言語文構成手段１８６は、処理対象の文「もし、GがN1で、かつすべての節点が偶数次数を持っていれば、Gはオイラー回路を持つ。」を変形し、「もし、S1、かつすべての節点が偶数次数を持っていれば、Gはオイラー回路を持つ。」を得る。【０２０２】  次に、原言語関数識別子取得手段１８１は、３番目の原言語文関数情報を、図９の原言語文関数辞書から読み出す。【０２０３】  次に、中間言語文構成手段１８６は、文のタイプが存在しないので、３番目の原言語文関数情報が有する原言語関数識別子「すべての_」の引数挿入情報「＿」の箇所を任意の文字列がマッチする符号「*」に変換し、「すべての*」を得る。【０２０４】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子が変化フラグ「＠」を有しないと、判断する。そして、中間言語文構成手段１８６は、文字列のパターン「すべての*」を一つ取得する。【０２０５】  次に、中間言語文構成手段１８６は、パターン「すべての*」と、変形後の文「もし、S1、かつすべての節点が偶数次数を持っていれば、Gはオイラー回路を持つ。」とのマッチングをとる。そして、中間言語文構成手段１８６は、文の「すべての節点」の文字列が、パターン「すべての*」にマッチする、と判断する。そして、中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。【０２０６】  次に、中間言語文構成手段１８６は、３番目の原言語文関数情報が有する原言語関数情報「すべての_([N]);」と、文とマッチした箇所の情報（文字列）「すべての節点」を用いて、原言語型情報「N2：すべての_([N：節点]);」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「すべての_([N]);」に対応する種類「N」を取得し、かつ、２番目の「N」の出現を検知し、「N2」を構成する。そして、中間言語文構成手段１８６は、「すべての_([N：節点]);」に「N2」を付加して、原言語型情報「N2：すべての_([N：節点]);」を得る。【０２０７】  そして、中間言語文構成手段１８６は、構成した原言語型情報「N2：すべての_([N：節点]);」を、バッファに、少なくとも一時蓄積する。【０２０８】  次に、中間言語文構成手段１８６は、文「もし、S1、かつすべての節点が偶数次数を持っていれば、Gはオイラー回路を持つ。」を変形し、「もし、S1、かつN2が偶数次数を持っていれば、Gはオイラー回路を持つ。」を得る。【０２０９】  次に、原言語関数識別子取得手段１８１は、４番目の原言語文関数情報を、図８の原言語文関数辞書から読み出す。【０２１０】  次に、中間言語文構成手段１８６は、文のタイプが存在しないので、４番目の原言語文関数情報が有する原言語関数識別子「偶数_」の引数挿入情報「＿」の箇所を任意の文字列がマッチする符号「*」に変換し、「偶数*」を得る。【０２１１】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子が変化フラグ「＠」を有しないと、判断する。そして、中間言語文構成手段１８６は、文字列のパターン「偶数*」を一つ取得する。【０２１２】  次に、中間言語文構成手段１８６は、パターン「偶数*」と、変形後の文「もし、S1、かつすべての節点が偶数次数を持っていれば、Gはオイラー回路を持つ。」とのマッチングをとる。そして、中間言語文構成手段１８６は、文の「偶数次数」の文字列が、パターン「偶数*」にマッチする、と判断する。そして、中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。【０２１３】  次に、中間言語文構成手段１８６は、４番目の原言語文関数情報が有する原言語関数情報「偶数_([N]);」と、文とマッチした箇所の情報（文字列）「偶数次数」を用いて、原言語型情報「N3：偶数_([N：次数]);」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「偶数_([N]);」に対応する種類「N」を取得し、かつ、３番目の「N」の出現を検知し、「N3」を構成する。そして、中間言語文構成手段１８６は、「偶数_([N：次数]);」に「N3」を付加して、原言語型情報「N3：偶数_([N：次数]);」を得る。【０２１４】  そして、中間言語文構成手段１８６は、構成した原言語型情報「N3：偶数_([N：次数]);」を、バッファに、少なくとも一時蓄積する。【０２１５】  次に、中間言語文構成手段１８６は、文「もし、S1、かつN2が偶数次数を持っていれば、Gはオイラー回路を持つ。」を変形し、「もし、S1、かつN2がN3を持っていれば、Gはオイラー回路を持つ。」を得る。【０２１６】  次に、原言語関数識別子取得手段１８１は、５番目の原言語文関数情報を、図８の原言語文関数辞書から読み出す。【０２１７】  次に、中間言語文構成手段１８６は、文のタイプが存在しないので、５番目の原言語文関数情報が有する原言語関数識別子「_が_を持-つ-」の引数挿入情報「＿」の箇所を任意の文字列がマッチする符号「*」に変換し、「*が*を持-つ-」を得る。【０２１８】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子が変化フラグ「-」「-」を有すると、判断する。【０２１９】  次に、変形語句取得手段１８３は、変化フラグ「-」「-」で囲まれた語「つ」を語尾に有する語句「持つ」をキーとして、図１０の原言語変化語句辞書を検索し、１以上の変形語句「持つ」「持ち」「持て」「持っ」「持た」を取得する。【０２２０】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子「*が*を持-つ-」から、文字列のパターンを５つ取得する。ここで取得した文字列のパターンは、語句「持つ」「持ち」「持て」「持っ」「持た」のぞれぞれを、順に、「*が*を持-つ-」の位置に配置した文字列のパターンである。つまり、５つの文字列のパターンは「*が*を持つ」「*が*を持ち」「*が*を持て」「*が*を持っ」「*が*を持た」である。【０２２１】  次に、中間言語文構成手段１８６は、上記の５つのパターンと、文「もし、S1、かつN2がN3を持っていれば、Gはオイラー回路を持つ。」とのマッチングをとる。なお、ここでの文は、変形後の文である。そして、中間言語文構成手段１８６は、４番目のパターン「*が*を持っ」と文とはマッチする、と判断する。中間言語文構成手段１８６は、４番目のパターン「*が*を持っ」と文を構成する文字列「N2がN3を持っ」がマッチするので、４番目のパターンと文とがマッチする、と判断する。そして、中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。【０２２２】  次に、中間言語文構成手段１８６は、５番目の原言語文関数情報が有する原言語関数情報「_が_を持-つ-([agent],[object]);」と、文とマッチした箇所の情報（文字列）「N2がN3を持っ」を用いて、原言語型情報「S2：_が_を持-つ-([object:N2],[object：N3]);」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「_が_を持-つ-([agent],[object]);」に対応する種類「S」を取得し、かつ、２番目の「S」の出現を検知し、「S2」を構成する。そして、中間言語文構成手段１８６は、「_が_を持-つ-([object:N2],[object：N3]);」に「S2」を付加して、原言語型情報「S2：_が_を持-つ-([object:N2],[object：N3]);」を得る。【０２２３】  そして、中間言語文構成手段１８６は、構成した原言語型情報「S2：_が_を持-つ-([object:N2],[object：N3]);」を、バッファに、少なくとも一時蓄積する。【０２２４】  また、中間言語文構成手段１８６は、１番目のパターン「*が*を持つ」と、文「もし、S1、かつN2がN3を持っていれば、Gはオイラー回路を持つ。」を構成する文字列「Gはオイラー回路を持つ」がマッチする、と判断する。【０２２５】  次に、中間言語文構成手段１８６は、５番目の原言語文関数情報が有する原言語関数情報「_が_を持-つ-([agent],[object]);」と、文とマッチした箇所の情報（文字列）「Gはオイラー回路を持つ」を用いて、原言語型情報「S3：_が_を持-つ-([object:G],[object：オイラー回路]);」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「_が_を持-つ-([object],[object]);」に対応する種類「S」を取得し、かつ、３番目の「S」の出現を検知し、「S3」を構成する。そして、中間言語文構成手段１８６は、「_が_を持-つ-([object:G],[object：オイラー回路]);」に「S3」を付加して、原言語型情報「S3：_が_を持-つ-([object:G],[object：オイラー回路]);」を得る。このように、一の原言語関数情報が複数の箇所にマッチする場合もあり得る。【０２２６】  そして、中間言語文構成手段１８６は、構成した原言語型情報「S3：_が_を持-つ-([object:G],[object：オイラー回路]);」を、バッファに、少なくとも一時蓄積する。【０２２７】  次に、中間言語文構成手段１８６は、処理対象の文「もし、S1、かつN2がN3を持っていれば、Gはオイラー回路を持つ。」を変形し、「もし、S1、かつS2ていれば、S3。」を得る。【０２２８】  次に、原言語関数識別子取得手段１８１は、６番目の原言語文関数情報を、図８の原言語文関数辞書から読み出す。【０２２９】  次に、中間言語文構成手段１８６は、文のタイプが存在しないので、６番目の原言語文関数情報が有する原言語関数識別子「_@S:S1、かつ_」の引数挿入情報「＿」の箇所を任意の文字列がマッチする符号「*」に変換し、「*@S:S1、かつ*」を得る。【０２３０】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子が変化フラグ「-」「-」を有しないと、判断する。そして、中間言語文構成手段１８６は、文字列のパターン「*@S:S1、かつ*」を一つ取得する。なお、「*@S:S1」は第一の引数が変化し得ることを示す。【０２３１】  次に、中間言語文構成手段１８６は、パターン「*@S:S1、かつ*」と、変形後の文「もし、S1、かつS2ていれば、S3。」とのマッチングをとる。そして、中間言語文構成手段１８６は、文の「S1、かつS2」の文字列が、パターン「*@S:S1、かつ*」にマッチする、と判断する。そして、中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。【０２３２】  次に、中間言語文構成手段１８６は、６番目の原言語文関数情報が有する原言語関数情報「_@S:S1、かつ_([S],[S]);」と、文とマッチした箇所の情報（文字列）「S1、かつS2」を用いて、原言語型情報「S4：_@S:S1、かつ_([S:S1],[S:S2]);」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「_@S:S1、かつ_([S],[S]);」に対応する種類「S」を取得し、かつ、４番目の「S」の出現を検知し、「S4」を構成する。そして、中間言語文構成手段１８６は、「_@S:S1、かつ_([S:S1],[S:S2]);」に「S4」を付加して、原言語型情報「S4：_@S:S1、かつ_([S:S1],[S:S2]);」を得る。【０２３３】  そして、中間言語文構成手段１８６は、構成した原言語型情報「S4：_@S:S1、かつ_([S:S1],[S:S2]);」を、バッファに、少なくとも一時蓄積する。【０２３４】  次に、中間言語文構成手段１８６は、文「もし、S1、かつS2ていれば、S3。」を変形し、「もし、S4ていれば、S3。」を得る。【０２３５】  次に、原言語関数識別子取得手段１８１は、７番目の原言語文関数情報を、図８の原言語文関数辞書から読み出す。【０２３６】  次に、中間言語文構成手段１８６は、文のタイプが存在しないので、７番目の原言語文関数情報が有する原言語関数識別子「もし、@S:S1ていれば、@S：S2である」の引数挿入情報「＿」の箇所が存在しないので、そのまま「もし、@S:S1ていれば、@S：S2である」を得る。【０２３７】  次に、中間言語文構成手段１８６は、処理対象の原言語関数識別子が変化フラグ「-」「-」を有しないと、判断する。そして、中間言語文構成手段１８６は、文字列のパターン「If-*-,then-*」を一つ取得する。【０２３８】  次に、中間言語文構成手段１８６は、パターン「もし、@S:S1ていれば、@S：S2である」と、変形後の文「もし、S4ていれば、S3。」とのマッチングをとる。そして、中間言語文構成手段１８６は、文の「もし、S4ていれば、S3」の文字列が、パターン「もし、@S:S1ていれば、@S：S2である」にマッチする、と判断する。なお、「@S：S2である」は、「@」により、変化し得ることを示し、かかる場合、「@S：S2である」は「S2」（引数だけ）にもなり得ることを示す。そして、中間言語文構成手段１８６は、マッチフラグに「ＯＮ」を代入する。【０２３９】  次に、中間言語文構成手段１８６は、７番目の原言語文関数情報が有する原言語関数情報「もし、@S:S1ていれば、＠S：S2である([S],[S]);」と、文とマッチした箇所の情報（文字列）「もし、S4ていれば、S3」を用いて、原言語型情報「S5：もし、@S:S1ていれば、＠S：S2である([S：S4],[S：S3]);」を構成する。なお、中間言語文構成手段１８６は、原言語関数情報「もし、@S:S1ていれば、@S：S2である([S],[S]);」に対応する種類「S」を���得し、かつ、５番目の「S」の出現を検知し、「S5」を構成する。そして、中間言語文構成手段１８６は、「もし、@S:S1ていれば、@S：S2である([S：S4],[S：S3]);」に「S5」を付加して、原言語型情報「S5：もし、@S:S1ていれば、@S：S2である([S：S4],[S：S3]);」を得る。【０２４０】  そして、中間言語文構成手段１８６は、構成した原言語型情報「S5：もし、@S:S1ていれば、@S：S2である([S：S4],[S：S3]);」を、バッファに、少なくとも一時蓄積する。【０２４１】  次に、中間言語文構成手段１８６は、文「もし、S4ていれば、S3。」を変形し、「S5。」を得る。ここで、入力された文が、一つの原言語型情報の識別子に置き換えられたので、原言語型情報への変換処理を終了する。【０２４２】  そして、中間言語文構成手段１８６は、図１１に示す８つの原言語型情報をバッファに格納した。【０２４３】  次に、上記の８つの原言語型情報を非言語情報識別子と、語句識別子に変換する。つまり、中間言語文構成手段１８６は、図１１に示すバッファ内の情報から、「ＩＤ＝１」の原言語型情報「N1：接続_（［N:グラフ］）；」を読み出す。【０２４４】  次に、中間言語文構成手段１８６は、１番目の原言語型情報の原言語関数識別子「接続_」に対応する言語非依存の識別子である非言語情報識別子「1002002」を、図８の原言語文関数辞書１２から取得し、原言語関数識別子「接続_」を非言語情報識別子「1002002」に置き換え、「N1：1002002（［N: グラフ］）；」を得る。【０２４５】  次に、中間言語文構成手段１８６は、１番目の原言語型情報の引数［N:グラフ］を取得する。【０２４６】  次に、語句識別子取得手段１８５は、引数である語句「グラフ」をキーとして、図９の原言語語句辞書１３を検索し、語句識別子「w001」を取得する。【０２４７】  次に、中間言語文構成手段１８６は、取得された語句識別子「w001」を、１番目の原言語型情報の引数の箇所に挿入し、「N1：1002002（［N:w001］）；」を得る。【０２４８】  同様に、図１１に示すバッファ内の２番目以降の原言語型情報を処理し、８つの中間言語文（図７参照）を得る。【０２４９】  次に、出力部１９は、図７の８つの中間言語文を出力する。ここでの出力は、例えば、予め決められたファイルへの蓄積である。【０２５０】  以上、本実施の形態によれば、自然言語文をコンピュータ処理するための中間言語に、精度高く変換できる。【０２５１】  また、本実施の形態によれば、構文（ｓｙｎｔａｘ）と意味（ｓｅｍａｎｔｉｃｓ）との両方を含む原言語文型情報を用いて、自然言語文をコンピュータ処理するための中間言語に変換するので、極めて精度高く、自然言語文を中間言語に変換できる。なお、構文とは原言語文型情報が有するパターンであり、意味とは原言語文型情報が有する語句などである。つまり、本実施の形態によれば、語句を内部に有する構文を用いて、自然言語文とマッチングを取ることにより、極めて精度高く、自然言語文を中間言語に変換できる。【０２５２】  なお、本実施の形態で説明した中間言語文は、関係型中間言語(relational interlingua)により表現される文である。関係型中間言語は、文の構文構造と意味構造の両方を合わせた情報を、関数の形式で表現する言語である。したがって、中間言語文は、構文解析と意味解析が同時に曖昧���なく、文を解析した結果である、と言える。したがって、非言語情報を関係の要素に加えることにより、実施の形態２で述べるように、目的文（翻訳文）の生成が一意にできる。【０２５３】  なお、本実施の形態において、自然言語文変換装置１は、一の文を処理したが、２以上の文を連続して処理しても良いことは言うまでもない。かかることは他の実施の形態においても同様である。【０２５４】  また、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における自然言語文変換装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、原言語の文字列を含む原言語関数識別子と当該原言語関数識別子で識別される関数の引数を示す情報である１以上の引数情報とを有する原言語関数情報と、前記原言語関数情報に対応する情報であり、言語非依存の識別子である非言語情報識別子とを対に有する原言語文関数情報を１以上有する原言語文関数辞書と、原言語の語句と、当該語句を識別する語句識別子とを対に有する原言語語句情報を１以上有する原言語語句辞書とを格納しており、コンピュータを、原言語の文を受け付ける受付部と、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得し、かつ、前記原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句識別子を取得し、当該取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する中間言語文作成部と、前記中間言語文作成部が構成した１以上の中間言語文を出力する出力部として機能させるためのプログラムである。【０２５５】  また、上記プログラムにおいて、コンピュータを、前記中間言語文作成部は、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子を取得する原言語関数識別子取得手段と、前記受付部が受け付けた文に含まれる１以上の語句であり、前記原言語関数識別子取得手段が取得した原言語関数識別子で識別される関数の引数に対応する１以上の語句と、前記原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句を取得する語句取得手段と、前記原言語関数識別子取得手段が取得した１以上の原言語関数識別子のそれぞれに対応する１以上の非言語情報識別子を取得する非言語情報識別子取得手段と、前記語句取得手段が取得した１以上の語句のそれぞれに対応する１以上の語句識別子を取得する語句識別子取得手段と、前記非言語情報識別子取得手段が取得した１以上の非言語情報識別子と前記語句識別子取得手段が取得した１以上の語句識別子とを用いて、関数の構造を有する１以上の���間言語文を構成する中間言語文構成手段とを具備するものとして機能させるためのプログラム、であることは好適である。【０２５６】  また、上記プログラムにおいて、記録媒体に、原言語の文字列を含む原言語関数識別子と当該原言語関数識別子で識別される関数の引数を示す情報である１以上の語句とを有する原言語型情報と、前記原言語型情報に対応する情報であり、言語非依存の識別子である非言語情報識別子とを対に有する原言語文型情報を１以上有する原言語文型辞書をさらに格納し、前記中間言語文作成部を、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子、および前記原言語文型辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得し、かつ、前記原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句識別子を取得し、当該取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成するものとして、コンピュータを、機能させるためのプログラム、であることは好適である。【０２５７】  また、上記プログラムにおいて、記録媒体に、原言語関数識別子と１以上の語句との共起を示す情報である共起情報を１以上有する原言語共起辞書をさらに格納し、前記中間言語文作成部は、前記原言語共起辞書に格納されている１以上の共起情報をも用いて、１以上の非言語情報識別子と１以上の語句識別子とを取得し、当該取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成するものとして、コンピュータを機能させるためのプログラム、であることは好適である。【０２５８】  また、上記プログラムにおいて、前記原言語関数識別子は、引数の挿入場所を示す引数挿入情報を有し、前記中間言語文作成部は、当該引数挿入情報を用いて、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得するものとして、コンピュータを機能させるためのプログラム、であることは好適である。【０２５９】  また、上記プログラムにおいて、記憶媒体に、語句の原型および当該語句の変形である１以上の変形語句とを対応付けた変化語句情報を１以上有する原言語変化語句辞書をさらに格納し、原言語関数識別子は、語句が変形する可能性があることを示す変化フラグを有し、前記中間言語文作成部は、前記変化フラグが付与された語句をキーとして、前記原言語変化語句辞書を検索し、１以上の変形語句を取得する変形語句取得手段をさらに具備し、前記中間言語文作成部は、１以上の非言語情報識別子を取得する場合に、前記変形語句取得手段が取得した１以上の変形語句をも用いて、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得するものとして、コンピュータを機能させるための��ログラム、であることは好適である。【０２６０】  また、上記プログラムにおいて、原言語関数識別子は、何らかの語句が挿入され得ることを示す不定語句フラグを有し、前記中間言語文作成部は、１以上の非言語情報識別子を取得する場合に、不定語句フラグをも用いて、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得するものとしてコンピュータを機能させるためのプログラム、であることは好適である。【０２６１】  また、上記プログラムにおいて、前記原言語文関数情報または前記原言語文型情報は、関数または文型のタイプを示す関数タイプを有し、前記受付部は、原言語の文および文のタイプを受け付け、前記中間言語文作成部は、非言語情報識別子を取得する場合に、前記受付部が受け付けたタイプに対応する関数タイプを含む前記原言語文関数情報または前記原言語文型情報の中から、原言語関数識別子を取得し、当該原言語関数識別子と対になる１以上の非言語情報識別子を取得するものとして、コンピュータを機能させるためのプログラム、であることは好適である。【０２６２】（実施の形態２）  本実施の形態において、自然言語で記載された文を、関数表現の中間言語文に変換する自然言語文変換装置２について説明する。自然言語文変換装置２は、自然言語文変換装置１と比較して、自然言語文をさらに精度高く、かつ高速に中間言語文に変換できる。【０２６３】  図１２は、本実施の形態における自然言語文変換装置２のブロック図である。【０２６４】  自然言語文変換装置２は、原言語文型辞書１１、原言語文関数辞書１２、原言語語句辞書１３、原言語共起辞書１４、受付部１６、関数化部１７、中間言語文作成部２８、出力部１９を備える。【０２６５】  中間言語文作成部２８は、最外部関数取得手段２８１、補語関数取得手段２８２、非言語情報識別子取得手段２８３、語句識別子取得手段２８４、中間言語文構成手段２８５を具備する。【０２６６】  最外部関数取得手段２８１は、受付部１６が受け付けた文と、原言語文関数辞書１２に格納されている１以上の原言語関数識別子とのマッチングをとり、受付部１６が受け付けた文の全体を包含する原言語関数識別子である最外部関数を取得する。そして、最外部関数取得手段２８１は、最外部関数の引数となる前記文の一部分に対して、前記最外部関数が取得できなくなるまで、最外部関数の取得の処理を繰り返す。なお、最外部関数とは、受付部１６が受け付けた文または文の一部にマッチする原言語関数識別子のうち、当該文の全体または当該文の一部の全体を包含する原言語関数識別子である。【０２６７】  また、最外部関数取得手段２８１は、文または文の一部分に対して、マッチングをとる際に、原言語文関数辞書１２に格納されている１以上の原言語関数識別子および原言語文型辞書１１に格納されている１以上の原言語関数識別子とのマッチングをとっても良い。【０２６８】  また、最外部関数取得手段２８１は、受付部１６が受け付けた文または当該文の一部分が重複する箇所に対して、２以上の最外部関数の候補を取得した場合、文中の最も長い文��列に対応する候補を最外部関数として取得することは好適である。また、最外部関数取得手段２８１は、引数挿入情報を用いて、受付部１６が受け付けた文と、原言語文関数辞書１２に格納されている１以上の原言語関数識別子とのマッチングをとることは好適である。また、最外部関数取得手段２８１は、変化フラグが付与された語句に対して、予め決められたルールを適用して、１以上の変形語句を取得し、当該変形語句をも用いて、受付部１６が受け付けた文または文の一部分と、原言語文関数辞書１２に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子を取得することは好適である。また、最外部関数取得手段２８１は、不定語句フラグをも用いて、受付部１６が受け付けた文または文の一部分と、原言語文関数辞書１２に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子を取得することは好適である。また、最外部関数取得手段２８１は、受付部１６が受け付けたタイプに対応する関数タイプを含む原言語文関数情報または原言語文型情報の中から、原言語関数識別子を取得することは好適である。【０２６９】  また、最外部関数取得手段２８１は、「関数・用語・ひらがな列先頭１文字索引」（以下、単に索引とも言う。）を用いて、最外部関数を取得することは好適である。索引とは、すべての用語（埋め込み語句）と関数名の不変部分および連続ひらがな列の先頭１文字を索引にしたものである。そして、索引により、効率良く文構造解析を行うことが可能になる。特に、連続ひらがな列索引は、日本語に出現する連続ひらがな列を、関数に分解する方法を示したもので、通常、形態素解析をしたあとで、構文解析を行うために品詞並びのルールを設定するが、本装置ではこれを行わず、出現するあらゆるひらがな列を本装置でいう関数の列に分解する辞書の役目を果たさせることで、従来の形態素解析や構文解析を行わず文構造を明確にすることができるものである。【０２７０】  連続ひらがな列索引（連続ひらがな列辞書とも言う。）の例を図１３に示す。連続ひらがな列索引は、「連続ひらがな列」と「分解された関数」とを有するレコードを１以上、格納している。【０２７１】  かかる場合、例えば、「暑くて勉強しにくいので早く寝た。」のような文が受け付けられた、とする。すると、中間言語文作成部２８は、「暑」、「くて」、「勉強」、「しにくい」等の上記の文を構成する文字列の索引語で辞書を引く。【０２７２】  そして、中間言語文作成部２８は、各文字列に対して、以下のような関数を得る。つまり、中間言語文作成部２８は、「「暑」→P=暑-い-([]);、N=「暑さ」」「「くて」→C=@a23:Pくて([P]);」「「勉強」→  「N=勉強」、「P=「勉強-する-」」「「しにくいので」→  P=@v2:Pにくい([P:P]); S=_ので_([P],[P]);」「「早」→  P=早-い-([]);、N=「早さ」」「「く」→  P=@a23:P([P]);」「「寝」→  P=寝-る-([]);、「N=寝具」、「N=寝台」」を得る。【０２７３】  そして、「くて」と「しにくいので」は連続ひらがな列であるので、最外部関数取得手段２８１は、連続かな列索引（図１３参照）を引く。そして、最外部関数取得手段２８１は、分解される関数（関数分解の方法）を得る。そして、最外部関数取得手段２８１は、図１４に示すような解析結果を得る。このように、最初に文の一部を解析して持っておく方法で「曖昧性」が防げ、効率が良い解析が可能となる。【０２７４】  また、最外部関数は、目的文全体を包含できるものである。つまり、最外部関数の内部には、未解析は部分が含まれていてもよいが、最外部関数の外に何かが含まれていてはいけない。【０２７５】  補語関数取得手段２８２は、最外部関数取得手段２８１が取得した最外部関数の引数であり、文のうちの、最外部関数に置き換えられていない一部分（未解析の部分）に対して、原言語文関数辞書１２に格納されている１以上の原言語関数識別子、または原言語語句辞書１３に格納されている１以上の原言語の語句とのマッチングをとり、１以上の原言語関数識別子または原言語の1以上の語句を取得する。また、補語関数取得手段２８２は、原言語文関数辞書１２に加えて、原言語文型辞書１１とのマッチングをとって、原言語文型辞書１１から、原言語関数識別子を取得しても良い。また、補語関数取得手段２８２は、原言語共起辞書１４に格納されている１以上の共起情報をも用いて、１以上の原言語関数識別子と１以上の語句とを取得することは好適である。特に、補語関数取得手段２８２は、２以上の語句（語句識別子）の候補が存在する場合、１以上の共起情報を用いて、原言語関数識別子と共起しやすい語句を取得することは好適である。共起情報は、原言語関数識別子と語句とが共起する確率や、共起していた頻度などの情報である。補語関数取得手段２８２は、引数挿入情報を用いて、受付部１６が受け付けた文と、原言語文関数辞書１２に格納されている１以上の原言語関数識別子とのマッチングをとることは好適である。また、補語関数取得手段２８２は、変化フラグが付与された語句に対して、予め決められたルールを適用して、１以上の変形語句を取得し、当該変形語句をも用いて、受付部１６が受け付けた文と、原言語文関数辞書１２に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子を取得することは好適である。また、補語関数取得手段２８２は、不定語句フラグをも用いて、受付部１６が受け付けた文の一部分と、原言語文関数辞書１２に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子を取得することは好適である。また、補語関数取得手段２８２は、受付部１６が受け付けたタイプに対応する関数タイプを含む原言語文関数情報または原言語文型情報の中から、原言語関数識別子を取得することは好適である。さらに、補語関数取得手段２８２は、索引を用いて、原言語関数識別子を取得しても良い。【０２７６】  非言語情報識別子取得手段２８３は、最外部関数取得手段２８１または補語関数取得手段２８２が取得した１以上の原言語関数識別子のそれぞれに対応する１以上の非言語情報識別子を、原言語文関数辞書１２から取得する。【０２７７】  語句識別子取得手段２８４は、補語関数取得手段２８２が取得した１以上の語句のそれぞれに対応する１以上の語句識別子を、原言語語句辞書１３から取得する。【０２７８】  中間言語文構成手段２８５は、非言語情報識別子取得���段２８３が取得した１以上の非言語情報識別子と語句識別子取得手段２８４が取得した１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する。【０２７９】  最外部関数取得手段２８１、補語関数取得手段２８２、非言語情報識別子取得手段２８３、語句識別子取得手段２８４、および中間言語文構成手段２８５は、通常、ＭＰＵやメモリ等から実現され得る。最外部関数取得手段２８１等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。【０２８０】  次に、自然言語文変換装置２の動作について、図１５のフローチャートを用いて説明する。【０２８１】  （ステップＳ１５０１）受付部１６は、文、または文と文のタイプを受け付けたか否かを判断する。文等を受け付ければステップＳ２０２に行き、文等を受け付けなければステップＳ２０１に戻る。なお、受け付けられた文は、図示しない文字列バッファに格納される。【０２８２】  （ステップＳ１５０２）中間言語文作成部２８は、カウンタｉに１を代入する。【０２８３】  （ステップＳ１５０３）中間言語文作成部２８は、文字列バッファ内に、ｉ番目の文字が存在するか否かを判断する。ｉ番目の文字が存在すればステップＳ１５０４に行き、存在しなければステップＳ１５１３に行く。【０２８４】  （ステップＳ１５０４）最外部関数取得手段２８１は、文字列バッファ内の文字列のうちの、ｉ番目の文字を取得する。【０２８５】  （ステップＳ１５０５）最外部関数取得手段２８１は、ｉ番目の文字をキーとして、索引を検索する。【０２８６】  （ステップＳ１５０６）最外部関数取得手段２８１は、ステップＳ１５０５で検索した索引に対応する１以上の最外部関数の候補を取得する。最外部関数取得手段２８１は、索引に対応し、文字列バッファ内の文字列に前方一致する文字列を有する１以上の最外部関数の候補を取得する。最外部関数の候補は、原言語関数識別子、または語句である。最外部関数の候補は、原言語関数識別子でも良い。つまり、本ステップで、最外部関数の候補を、原言語関数識別子だけに絞り込んでも良い。【０２８７】  （ステップＳ１５０７）最外部関数取得手段２８１は、ステップＳ１５０６で取得した候補のうち、１つ以上の最外部関数となり得るものが存在するか否かを判断する。最外部関数となり得るものが存在すればステップＳ１５０８に行き、存在しなければステップＳ１５１２に行く。なお、最外部関数となり得るものは、原言語関数識別子であり、解析対象の文の中の文末の文字列を含む（続く文字がない）ものである。【０２８８】  （ステップＳ１５０８）最外部関数取得手段２８１は、ステップＳ１５０６で取得した最外部関数の候補、または残っている最外部関数の候補のうち、最も長い最外部関数を取得する。そして、最外部関数取得手段２８１は、文字列バッファ内の元の文に対して、取得した最外部関数を適用し、文から引数を取得する。そして、最外部関数取得手段２８１は、最外部関数に引数を代入し、引数が入った最外部関数を出力バッファに一時的に書き込む。【０２８９】  （ステップＳ１５０９）最外部関数取得手段２８１は、文字列バッファ内の元の文から、最外部関数が有する文字列を削除し、更新された文字列を取得する。【０２９０】  （ステップＳ１５１０）最外部関数取得手段２８１は、最外部関数の引数であり、解析されていない文字列が存在するか否かを判断する。存在すればステップＳ１５１１に行き、存在しなければ処理を終了する。【０２９１】  （ステップＳ１５１１）最外部関数取得手段２８１は、ステップＳ１５０９で取得した文字列を文字列バッファに代入する。【０２９２】  （ステップＳ１５１２）中間言語文作成部２８は、カウンタｉに、取得した文字列の長さを加える。ステップＳ１５０３に戻る。【０２９３】  （ステップＳ１５１３）補語関数取得手段２８２は、補語解析処理を行う。補語解析処理について、図１６のフローチャートを用いて説明する。【０２９４】  次に、ステップＳ１５１３の補語解析処理について、図１６のフローチャートを用いて説明する。【０２９５】  （ステップＳ１６０１）補語関数取得手段２８２は、カウンタｉに１を代入する。【０２９６】  （ステップＳ１６０２）補語関数取得手段２８２は、文字列バッファ内に、ｉ番目の文字が存在するか否かを判断する。ｉ番目の文字が存在すればステップＳ１６０３に行き、存在しなければステップＳ１６１１に行く。【０２９７】  （ステップＳ１６０３）補語関数取得手段２８２は、文字列バッファ内の文字列のうちの、ｉ番目の文字を取得する。【０２９８】  （ステップＳ１６０４）補語関数取得手段２８２は、ｉ番目の文字をキーとして、索引を検索する。【０２９９】  （ステップＳ１６０５）補語関数取得手段２８２は、ステップＳ１５０５で検索した索引に対応する１以上の候補を取得する。補語関数取得手段２８２は、索引に対応し、文字列バッファ内の文字列に前方一致する文字列を有する１以上の候補を取得する。候補は、原言語関数識別子、または語句である。【０３００】  （ステップＳ１６０６）補語関数取得手段２８２は、ステップＳ１６０５で取得した候補のうち、最大長の長さの文字列を有する原言語関数識別子、または語句を取得する。【０３０１】  （ステップＳ１６０７）補語関数取得手段２８２は、ステップＳ１６０６で取得した原言語関数識別子に対応する属性値から、ベクトルが構成できるか否かを判断する。ベクトルが構成できればステップＳ１６０８に行き、ベクトルが構成できなければステップＳ１６０９に行く。【０３０２】  （ステップＳ１６０８）補語関数取得手段２８２は、ベクトルを構成し、図示しない検査バッファに書き込む。ベクトルの構成方法の具体例については後述する。【０３０３】  （ステップＳ１６０９）補語関数取得手段２８２は、カウンタｉに、取得した文字列の長さを加える。ステップＳ１５０３に戻る。【０３０４】  （ステップＳ１６１０）補語関数取得手段２８２は、取得した文字列を除いた、残りの文字列を文字列バッファに代入する。ステップＳ１６０１に戻る。【０３０５】  （ステップＳ１６１１）補語関数取得手段２８２は、検査バッファに書き込まれているベクトルを用いて、周辺和制約を持つ０−１行列存在問題を構成する。ここで、補語関数取得手段２８２は、通常、複数のベクトルを有する行列を構成する。【０３０６】  （ステッ��Ｓ１６１２）補語関数取得手段２８２は、周辺和制約を持つ０−１行列存在問題を解く。なお、本問題を解くことは、行列におけるすべての列（引数）に「１」の値が入るように、行（関数）の引数がどの引数に該当するかを決定することである。【０３０７】  （ステップＳ１６１３）補語関数取得手段２８２は、ステップＳ１６１２の結果、解が存在するか否かを判断する。解が存在すればステップＳ１６１４に行き、存在しなければ、図１５のステップＳ１５０８に戻る。【０３０８】  （ステップＳ１６１４）非言語情報識別子取得手段２８３は、最外部関数取得手段２８１または補語関数取得手段２８２が取得した１以上の原言語関数識別子のそれぞれに対応する１以上の非言語情報識別子を、原言語文関数辞書１２から取得し、原言語関数識別子を非言語情報識別子に置き換える。【０３０９】  （ステップＳ１６１５）語句識別子取得手段２８４は、補語関数取得手段２８２が取得した１以上の語句のそれぞれに対応する１以上の語句識別子を、原言語語句辞書１３から取得し、語句を語句識別子に置き換える。上位処理にリターンする。【０３１０】  以下、本実施の形態における自然言語文変換装置２の具体的な動作について説明する。【０３１１】  今、原言語文関数辞書１２は、図１７に示す原言語文関数辞書を格納している。原言語文関数辞書の構造は、図４や８と同様である。なお、図１７において、索引は省略しているが索引を有しても良い。また、図１７において、原言語関数識別子「@v1:S-ます-([S:S]);」の「v1」は第一引数であることを示す。また、図１７において、属性値または関係子は、引数の種類を示す。「agnt」は「主体」、「topic」は「話題」、「obj」は「対象」、「plc」は「場所」、「implement」は「方法・道具」を示す。なお、「implement」は関係子である。また、属性値は、関数の後に付加されるもので、例えば、「_行-く-([C]){attrib:verb};」の場合、{attrib:}という識別子のあとに属性値「verb」が出現する。また、否定、態、アスペクトやモードのコードは属性値として表現される。【０３１２】  また、図１８は、原言語語句辞書１３の例を示す図である。原言語語句辞書は、品詞の情報も有する。【０３１３】  さらに、図１９は、索引の例を示す。索引は、１文字の「キー」、「識別情報」を有する。「識別情報」は、辞書を識別する「辞書識別子」、辞書のレコードを識別する「ＩＤ」を有する。辞書識別子「１」は原言語文関数辞書、辞書識別子「２」は原言語語句辞書を示す。【０３１４】  かかる状況において、文「私は教室では日本語を使わないことにします」が入力され、受付部１６が、当該文を受け付けた、とする。なお、この文をS0とする。【０３１５】  次に、中間言語文作成部２８の最外部関数取得手段２８１は、以下のように、図１９の「関数・用語・ひらがな列先頭１文字索引」を使って、最外部関数の該当候補を検索する。まず、最外部関数取得手段２８１は、１番目の文字「私」を取得する。そして、最外部関数取得手段２８１は、１番目の文字「私」から、索引の中の識別情報（２，１）を取得する。そして、最外部関数取得手段２８１は、識別情報（２，１）から原言語語句辞書の第一レコードの「N=私」を取得する。そして、最外部関数取得手段２８１は、「N=私」が、受け付けた全ての文をカバーしないことを判断し、「N=私」は、最外部関数ではない、と判断する。【０３１６】  次に、最外部関数取得手段２８１は、２番目の文字「は」を取得する。そして、最外部関数取得手段２８１は、２番目の文字「は」から、索引を経由して、原言語文関数辞書内の「C=_は([N])」を取得する。これが最外部関数になるためには、文末に表れている必要があるが、「は」の後に続く文字列があるので、最外部関数ではないと、最外部関数取得手段２８１は判断する。【０３１７】  次に、最外部関数取得手段２８１は、３番目の文字「教」を取得する。そして、最外部関数取得手段２８１は、３番目の文字「教」から、索引を経由して、原言語文関数辞書内の「N=教室」を取得する。そして、最外部関数取得手段２８１は、「N=教室」が、受け付けた全ての文をカバーしないことを判断し、「N=教室」は、最外部関数ではない、と判断する。「教室」が取得されたので、最外部関数取得手段２８１は、ポインタを２つ（文字列長の分）進める。【０３１８】  次に、最外部関数取得手段２８１は、５番目の文字「で」を取得する。そして、最外部関数取得手段２８１は、索引を経由して、原言語文関数辞書内の「C=_で([N])」、「C=_では([N])」を取得する。この「_で」や「_では」が最外部関数になるためには、文末に表れている必要があるが、最外部関数取得手段２８１は、このどちらもその後に続く文字列があることを検出し、最外部関数ではない、と判断する。「では」が取得されたので、最外部関数取得手段２８１は、ポインタを２つ（文字列長の分）進める。【０３１９】  次に、最外部関数取得手段２８１は、７番目の文字「日」を取得する。そして、最外部関数取得手段２８１は、索引を経由して、原言語語句辞書内の「N=日」、「N=日本」、「N=日本語」の３つの用語を取得する。そして、最外部関数取得手段２８１は、同様に、これら３つとも、最外部関数ではない、と判断する。そして、「日本語」が取得されたので、最外部関数取得手段２８１は、ポインタを３つ（文字列長の分）進める。【０３２０】  次に、最外部関数取得手段２８１は、１０番目の文字「を」を取得する。そして、最外部関数取得手段２８１は、索引を経由して、原言語文関数辞書内の「C=_を([N])」を取得する。これも文末に表れていないので最外部関数ではないと、最外部関数取得手段２８１は判断する。【０３２１】  次に、最外部関数取得手段２８１は、１１番目の文字「使」を取得する。そして、最外部関数取得手段２８１は、「使」を索引に有する原言語関数情報を検索し、原言語文関数辞書内の「_使-う-([agnt:C],[plc:C],[obj:C]) を取得する。これも文末に表れていないので最外部関数ではないと、最外部関数取得手段２８１は判断する。そして、最外部関数取得手段２８１は、動詞「使う」の語頭である可能性があることが分かり、その未然形の「使わ（ない）」が該当すると判断する。そして、「使わ」が取得されたので、最外部関数取得手段２８１は、ポインタを２つ（文字列長の分）進める。【０３２２】  次に、１３番目の文字「な」を取得する。そして、最外部関数取得手段２８１は、索引を経由して、原言語文関数辞書内の「S=@v2:Sないことにします([S:S]);」を取得する。【０３２３】  また、同様に、最外部関数取得手段２８１は、「S=@v2:Sことにします([S:S]);」、「S=@v1:S-ます-([S:S]);」も取得する。【０３２４】  そして、最外部関数取得手段２８１は、これら３つの原言語関数識別子は、最外部関数であると判断する。【０３２５】  次に、最外部関数取得手段２８１は、最も長い文字列を有する「S=@v2:Sないことにします([S:S]);」を最外部関数として採用する。【０３２６】  そして、最外部関数取得手段２８１は、文字列バッファ内の元の文「私は教室では日本語を使わないことにします」から、最外部関数が有する文字列「ないことにします」を削除し、更新された文字列「私は教室では日本語を使わ」を取得する。そして、最外部関数取得手段２８１は、以下のようにして、「使わ」を「使-う-」に変形する。つまり、最外部関数取得手段２８１は、図２０に示す動詞語尾の変形情報を保持している。図２０は、最外部関数取得手段２８１を実現するプログラムの一部であり、配列「ＪＣＴｂｌ［］」に入っている動詞の語尾の変化の情報を利用して、動詞語尾の変形情報を取得するプログラムである。配列「ＪＣＴｂｌ［］」に入っている動詞の語尾の変化は、「未然形／連用形／終止形／・・・」のような変化である。そして、未然形が「わ」であることにより、最外部関数取得手段２８１は、配列ＪＣＴｂｌ［５］の情報から、終止形「う」の文字を取得し、「使わ」を「使-う-」に変形する。【０３２７】  そして、最外部関数取得手段２８１は、「S0=@v2:Sないことにします([S1:私は教室では日本語を使-う-]);」を得る。【０３２８】  次に、引数「私は教室では日本語を使-う-」を文字列バッファに代入する。そして、文字列バッファの文字列に対して、上記と同様に、最外部関数を検出しにいく。【０３２９】  つまり、上記と同様に、最外部関数取得手段２８１は、最外部関数「_使-う-([agnt:C],[plc:C],[obj:C])を取得する。【０３３０】  次に、最外部関数取得手段２８１は、残る文字列「私は教室では日本語を」を文字列バッファに代入する。【０３３１】  次に、最外部関数取得手段２８１は、残る文字列「私は教室では日本語を」から最外部関数を見つけようとするが、見つからない。【０３３２】  そして、次に、補語関数取得手段２８２は、補語解析処理に移行する。つまり、補語関数取得手段２８２は、「私は教室では日本語を」から、１番目の文字「私」を取得する。そして、補語関数取得手段２８２は、１番目の文字「私」から、索引の中の識別情報（２，１）を取得する。そして、補語関数取得手段２８２は、識別情報（２，１）から原言語語句辞書の第一レコードの「N=私」を取得する。【０３３３】  次に、補語関数取得手段２８２は、２番目の文字「は」を取得する。そして、最外部関数取得手段２８１は、２番目の文字「は」から、索引を経由して、原言語文関数辞書内の「C=_は([N])」{属性値:agnt,topic, obj}を取得する。そして、補語関数取得手段２８２は、「_使-う-([agnt:C],[plc:C],[obj:C])の([agnt:C],[plc:C],[obj:C])に、{属性値:agnt,topic, obj}を適用し、ベクトル（１，０，１）を取得し、検査バッファに書き込む。「C=_は([N])」{属性値:agnt,topic, obj}において、属性値として「agnt」「obj」を有するからである。【０３３４】  次に、補語関数取得手段２８２は、３番目の文字「教」を取得する。そして、��外部関数取得手段２８１は、３番目の文字「教」から、索引を経由して、「N=教室」を取得する。教室が取得されたので、補語関数取得手段２８２は、ポインタを２つ（文字列長の分）進める。【０３３５】  次に、補語関数取得手段２８２は、５番目の文字「で」を取得する。そして、補語関数取得手段２８２は、索引を経由して、原言語文関数辞書内の「C=_で([N])」{属性値:plc,implement}、「C=_では([N])」{属性値:plc,implement,topic}を取得する。そして、補語関数取得手段２８２は、より長い文字列を有する原言語関数識別子「C=_では([N])」{属性値:plc,implement,topic}を取得する。そして、補語関数取得手段２８２は、「_使-う-([agnt:C],[plc:C],[obj:C])の([agnt:C],[plc:C],[obj:C])に、{属性値:plc,implement,topic}を適用し、ベクトル（０，１，０）を取得し、検査バッファに書き込む。そして、「では」が取得されたので、補語関数取得手段２８２は、ポインタを２つ（文字列長の分）進める。【０３３６】  次に、補語関数取得手段２８２は、７番目の文字「日」を取得する。そして、補語関数取得手段２８２は、索引を経由して、原言語語句辞書内の「N=日」、「N=日本」、「N=日本語」の３つの用語を取得する。そして、補語関数取得手段２８２は、最大長の名詞(句)を採用する規則から、「N=日本語」を取得する。そして、「日本語」が取得されたので、補語関数取得手段２８２は、ポインタを３つ（文字列長の分）進める。【０３３７】  次に、補語関数取得手段２８２は、１０番目の文字「を」を取得する。そして、最外部関数取得手段２８１は、索引を経由して、原言語文関数辞書内の「C=_を([obj:N])」{属性値:obj}を取得する。そして、補語関数取得手段２８２は、「_使-う-([agnt:C],[plc:C],[obj:C])の([agnt:C],[plc:C],[obj:C])に、{属性値:obj}を適用し、ベクトル（０，０，１）を取得し、検査バッファに書き込む。【０３３８】  次に、補語関数取得手段２８２は、検査バッファに書き込まれているベクトルを用いて、周辺和制約を持つ０−１行列存在問題を構成する。つまり、補語関数取得手段２８２は、以下の数式１に示す行列を構成する。【数１】
2011108330.tif 000003
【０３３９】  そして、補語関数取得手段２８２は、上記の周辺和制約を持つ０−１行列存在問題を解いて、数式２の行列を得る。この行列は、行列におけるすべての列（引数）に「１」の値が入るように、行（関数）の引数がどの引数に該当するかを決定する行列である。【数２】
2011108330.tif 000004
【０３４０】  そして、補語関数取得手段２８２は、数式２の行列から、「私」がagnt、「教室」がplc、「日本語」がobjとなると判断する。【０３４１】  そして、最外部関数取得手段２８１、および補語関数取得手段２８２の上記の処理により、図２１に示す原言語関数識別子の集合が得られる。【０３４２】  次に、非言語情報識別子取得手段２８３は、最外部関数取得手段２８１または補語関数取得手段２８２が取得した１以上の原言語関数識別子（図２１の各行）のそれぞれに対応する１以上の非言語情報識別子を、原言語文関数辞書１２から取得し、原言語関数識別子を非言語情報識別子に置き換える。【０３４３】  次に、語句識別子取得手段２８４は、補語関数取得手段２８２が取得した１以上の語句（図２１の語句）のそれぞれに対応する１以上の語句識別子を、原言語語句辞書１３から取得し、語句を語句識別子に置き換える。【０３４４】  以上の処理により、図２２に示す中間言語文が得られる。【０３４５】  以上、本実施の形態によれば、自然言語文をコンピュータ処理するための中間言語に、極めて精度高く変換できる。【０３４６】  また、本実施の形態における自然言語文変換装置では、通常、すべての正しい文の意味が表現できる。これを、完全意味表現力という。【０３４７】  なお、本実施の形態における自然言語文変換装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、原言語の文字列を含む原言語関数識別子と当該原言語関数識別子で識別される関数の引数を示す情報である１以上の引数情報とを有する原言語関数情報と、前記原言語関数情報に対応する情報であり、言語非依存の識別子である非言語情報識別子とを対に有する原言語文関数情報を１以上有する原言語文関数辞書と、原言語の語句と、当該語句を識別する語句識別子とを対に有する原言語語句情報を１以上有する原言語語句辞書とを格納しており、コンピュータを、原言語の文を受け付ける受付部と、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得し、かつ、前記原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句識別子を取得し、当該取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する中間言語文作成部と、前記中間言語文作成部が構成した１以上の中間言語文を出力する出力部として機能させるためのプログラムである。【０３４８】  また、上記プログラムにおいて、前記中間言語文作成部は、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、前記受付部が受け付けた文の全体を包含する原言語関数識別子である最外部関数を取得し、当該最外部関数の引数となる前記文の一部分に対して、前記最外部関数が取得できなくなるまで、前記最外部関数の取得の処理を繰り返す最外部関数取得手段と、前記最外部関数取得手段が取得した最外部関数の引数であり、最外部関数に置き換えられていない前記文の一部��に対して、前記原言語文関数辞書に格納されている１以上の原言語関数識別子、または前記原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、１以上の原言語関数識別子または前記原言語の1以上の語句を取得する補語関数取得手段と、前記最外部関数取得手段または前記補語関数取得手段が取得した１以上の原言語関数識別子のそれぞれに対応する１以上の非言語情報識別子を取得する非言語情報識別子取得手段と、前記補語関数取得手段が取得した１以上の語句のそれぞれに対応する１以上の語句識別子を取得する語句識別子取得手段と、前記非言語情報識別子取得手段が取得した１以上の非言語情報識別子と前記語句識別子取得手段が取得した１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する中間言語文構成手段とを具備するものとして、コンピュータを機能させるためのプログラム、であることは好適である。【０３４９】  また、上記プログラムにおいて、前記最外部関数取得手段は、前記受付部が受け付けた文または当該文の一部分の重複する箇所に対して、２以上の最外部関数の候補を取得した場合、前記文中の最も長い文字列に対応する最外部関数として取得するものとして、コンピュータを機能させるためのプログラム、であることは好適である。【０３５０】（実施の形態３）  本実施の形態において、機械翻訳を行う自然言語文変換装置３について説明する。つまり、自然言語文変換装置２は、自然言語文変換装置１が出力した中間言語文を目的言語の文に変換する装置である。【０３５１】  図２３は、本実施の形態における自然言語文変換装置３のブロック図である。自然言語文変換装置３は、原言語文型辞書１１、原言語文関数辞書１２、原言語語句辞書１３、原言語共起辞書１４、原言語変化語句辞書１５、受付部１６、関数化部１７、中間言語文作成部２８、出力部１９、目的言語文型辞書３１、目的言語文関数辞書３２、目的言語語句辞書３３、目的言語共起辞書３４、目的言語変化語句辞書３５、変換部３６、目的言語文出力部３７を備える。【０３５２】  変換部３６は、目的言語関数情報取得手段３６１、目的言語文構成手段３６２を備える。【０３５３】  目的言語文型辞書３１は、目的言語文型情報を１以上格納し得る。目的言語文型辞書３１の構造は、原言語文型辞書１１の構造と同様である。目的言語文型情報は、目的言語型情報と非言語情報識別子とを対に有する情報である。目的言語型情報は、目的言語関数識別子と、当該目的言語関数識別子で識別される関数の引数を示す情報である１以上の語句とを有する情報である。目的言語関数識別子は、目的言語の文字列を含む情報であり、目的言語の関数を識別する情報である。目的言語関数識別子は、文のパターンを示す情報である。なお、目的言語とは、翻訳先の文の言語である。目的言語は、原言語とは異なる言語であり、例えば、日本語、英語、中国語などである。ただし、目的言語は問わないことは言うまでもない。目的言語関数識別子は、原言語関数識別子と同じ構造である。さらに、非言語情報識別子は、言語非依存の関数を識別する情報である。【０３５４】  目的言語文型辞書３１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現���能である。目的言語文型辞書３１に目的言語文型情報が記憶される過程は問わない。【０３５５】  目的言語文関数辞書３２は、目的言語文関数情報を１以上格納し得る。目的言語文関数辞書３２の構造は、原言語文関数辞書１２の構造と同様である。目的言語文関数情報は、目的言語関数情報と非言語情報識別子とを対に有する情報である。目的言語関数情報は、目的言語の文字列を含む目的言語関数識別子と目的言語関数識別子で識別される関数の引数を示す情報である１以上の引数情報とを有する情報である。【０３５６】  目的言語関数識別子は、引数の挿入場所を示す引数挿入情報を有しても良い。また、目的言語関数識別子は、語句が変形する可能性があることを示す変化フラグを有しても良い。また、目的言語関数識別子は、何らかの語句が挿入され得ることを示す不定語句フラグを有しても良い。【０３５７】  目的言語文関数辞書３２は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。目的言語文関数辞書３２に目的言語文関数情報が記憶される過程は問わない。【０３５８】  目的言語語句辞書３３は、目的言語の語句と、語句を識別する語句識別子とを対に有する目的言語語句情報を１以上格納し得る。目的言語語句辞書３３の構造は、原言語語句辞書１３の構造と同様である。目的言語語句辞書３３は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。目的言語語句辞書３３に目的言語語句情報が記憶される過程は問わない。【０３５９】  目的言語共起辞書３４は、目的言語関数識別子と１以上の語句との共起を示す情報である共起情報を１以上格納し得る。目的言語共起辞書３４の構造は、原言語共起辞書１４の構造と同様である。目的言語共起辞書３４は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。目的言語共起辞書３４に共起情報が記憶される過程は問わない。【０３６０】  目的言語変化語句辞書３５は、目的言語の語句の原型および語句の変形である１以上の変形語句を対応付けた変化語句情報を１以上格納し得る。目的言語変化語句辞書３５の構造は、原言語変化語句辞書１５と同様である。目的言語変化語句辞書３５は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。目的言語変化語句辞書３５に変化語句情報が記憶される過程は問わない。【０３６１】  変換部３６は、出力部１９が出力した１以上の中間言語文が有する１以上の非言語情報識別子を用いて目的言語文関数辞書３２を検索し、１以上の目的言語関数情報を取得し、１以上の中間言語文が有する１以上の語句識別子を用いて目的言語語句辞書３３を検索し、１以上の語句を取得し、取得した１以上の目的言語関数情報および１以上の語句から目的言語の文を構成する。【０３６２】  変換部３６は、通常、ＭＰＵやメモリ等から実現され得る。変換部３６の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。【０３６３】  目的言語関数情報取得手段３６１は、出力部１９が出力した１以上の中間言語文が有する１以上の非言語情報識別子を用いて目的言語文関数辞書３２を検索し、１以上の���的言語関数情報を取得する。目的言語関数情報取得手段３６１は、２以上の目的言語関数情報を取得しても良い。【０３６４】  目的言語文構成手段３６２は、目的言語関数情報取得手段３６１が取得した１以上の目的言語関数情報と補語関数取得手段２８２が取得した１以上の語句とを用いて、目的言語の文を構成する。【０３６５】  目的言語文構成手段３６２は、目的言語関数情報取得手段３６１が取得した２以上の各目的言語関数情報が有する引数挿入情報が示す場所に、目的言語関数情報取得手段３６１が取得した目的言語関数情報または補語関数取得手段２８２が取得した語句を挿入し、かつ、目的言語関数情報が有する変化フラグに対応して文字列を変化させ、目的言語の文を構成する。目的言語文構成手段３６２は、語句が規則的な変化を行う場合、目的言語文構成手段３６２は、当該変化のルールを保持しており、当該ルールを用いて、語句を変化させ、目的言語の文を構成する。また、語句が不規則に変化する場合、目的言語文構成手段３６２は、変化後の語句を別の語句として扱う。【０３６６】  目的言語文出力部３７は、変換部３６が構成した目的言語の文を出力する。目的言語文出力部３７は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。目的言語文出力部３７は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。【０３６７】  次に、自然言語文変換装置３の動作について、図２４のフローチャートを用いて説明する。出力部１９が中間言語文を出力するまでの処理は、実施の形態１、２で説明した。したがって、図２４のフローチャートにおいて、出力部１９が出力した中間言語文を受け付けてから、目的言語の文を出力する処理について説明する。【０３６８】  （ステップＳ２４０１）変換部３６は、１以上の中間言語文を、出力部１９から受け付けたか否かを判断する。１以上の中間言語文を受け付ければステップＳ２４０２に行き、受け付けなければステップＳ２４０１に戻る。【０３６９】  （ステップＳ２４０２）変換部３６は、カウンタｉに１を代入する。【０３７０】  （ステップＳ２４０３）変換部３６は、ステップＳ２４０１で受け付けた中間言語文の中に、ｉ番目の中間言語文が存在するか否かを判断する。ｉ番目の中間言語文が存在すればステップＳ２４０４に行き、存在しなければステップＳ２４１２に行く。【０３７１】  （ステップＳ２４０４）変換部３６の目的言語関数情報取得手段３６１は、ｉ番目の中間言語文が有する非言語情報識別子を取得する。【０３７２】  （ステップＳ２４０５）目的言語関数情報取得手段３６１は、ステップＳ２４０４で取得した非言語情報識別子をキーとして、目的言語文関数辞書３２を検索し、非言語情報識別子と対になる目的言語関数情報を取得する。なお、ここで、目的言語関数情報取得手段３６１は、ステップＳ２４０４で取得した非言語情報識別子をキーとして、目的言語文型辞書３１を検索し、非言語情報識別子と対になる目的言語型情報を取得しても良い。【０３７３】  （ステップＳ２４０６）目的言語文構成手段３６２は、ｉ番目の中間言語文が引数を含むか否かを判断する。引数を含む場合はステップＳ��４０７に行き、含まない場合はステップＳ２４０９に行く。【０３７４】  （ステップＳ２４０７）目的言語文構成手段３６２は、引数は語句識別子を含むか否かを判断する。語句識別子を含む場合はステップＳ２４０８に行き、語句識別子を含まない場合はステップＳ２４０９に行く。【０３７５】  （ステップＳ２４０８）目的言語文構成手段３６２は、ｉ番目の中間言語文に含まれる語句識別子をキーとして目的言語語句辞書３３を検索し、語句を取得する。なお、ｉ番目の中間言語文に含まれる語句識別子が複数存在する場合は、目的言語文構成手段３６２は、各語句識別子に対応する語句を、目的言語語句辞書３３から取得する。【０３７６】  （ステップＳ２４０９）目的言語文構成手段３６２は、ステップＳ２４０５で取得した目的言語関数情報、およびステップＳ２４０８で取得した語句を用いて、目的言語型情報を構成する。なお、ステップＳ２４０８で語句を取得しなかった場合、目的言語文構成手段３６２は、ステップＳ２４０５で取得した目的言語関数情報を用いて、目的言語型情報を構成する。なお、ステップＳ２４０５で目的言語型情報が取得されている場合、目的言語文構成手段３６２は、ステップＳ２４０５で取得された目的言語型情報の語句を、ステップＳ２４０８で取得した語句に置き換える。【０３７７】  （ステップＳ２４１０）目的言語文構成手段３６２は、ステップＳ２４０９で構成した目的言語型情報をバッファに、少なくとも一時蓄積する。【０３７８】  （ステップＳ２４１１）変換部３６は、カウンタｉを１、インクリメントする。ステップＳ２４０３に戻る。【０３７９】  （ステップＳ２４１２）変換部３６は、カウンタｉに１を代入する。【０３８０】  （ステップＳ２４１３）目的言語文構成手段３６２は、バッファ内に、ｉ番目の目的言語型情報（本実施の形態において、「文型情報」とも言う）が存在するか否かを判断する。ｉ番目の目的言語型情報が存在すればステップＳ２４１４に行き、存在しなければステップＳ２４１９に行く。【０３８１】  （ステップＳ２４１４）目的言語文構成手段３６２は、ｉ番目の文型情報が引数情報を有するか否かを判断する。引数情報が存在すればステップＳ２４１５に行き、存在しなければステップＳ２４１６に行く。【０３８２】  （ステップＳ２４１５）目的言語文構成手段３６２は、他の文型情報が有する目的言語の非言語情報識別子を、ｉ番目の文型情報の、引数の箇所に挿入する。または、目的言語文構成手段３６２は、引数である語句を、ｉ番目の文型情報の、引数の箇所に挿入する。【０３８３】  （ステップＳ２４１６）目的言語文構成手段３６２は、ｉ番目の文型情報の中に変化フラグが存在するか否かを判断する。変化フラグが存在すればステップＳ２４１７に行き、変化フラグが存在しなければステップＳ２４１８に行く。【０３８４】  （ステップＳ２４１７）目的言語文構成手段３６２は、ｉ番目の文型情報の変化フラグに対応する語句を変形して、１以上の変化語句を取得する。なお、目的言語文構成手段３６２は、例えば、保持しているルールに従って、語句の変形を行う。【０３８５】  （ステップＳ２４１８）変換部３６は、カウンタｉを１、インクリメントする。ステップＳ２４１３に戻��。【０３８６】  （ステップＳ２４１９）変換部３６は、その他、必要な処理を行う。必要な処理とは、例えば、目的言語が英語である場合、「-」をスペースに変更する処理である。【０３８７】  （ステップＳ２４２０）目的言語文出力部３７は、変換部３６により構成された目的言語の文を出力する。【０３８８】  以下、本実施の形態における自然言語文変換装置３の具体的な動作について説明する。自然言語文変換装置３は、例えば、日英翻訳機である、とする。つまり、原言語は日本語、目的言語は英語である、とする。【０３８９】  ここで、目的言語文関数辞書３２は、図４に示す表である。ここでは、図４の「原言語」を「目的言語」と書き換える、とする。【０３９０】  また、目的言語語句辞書３３は、図５である。また、目的言語変化語句辞書３５は、図６である。【０３９１】  そして、かかる状況において、受付部１６は、文「もし、Gが接続グラフで、かつすべての節点が偶数次数を持っていれば、Gはオイラー回路を持つ。」を受け付けた、とする。そして、実施の形態１の具体例２で述べた処理により、出力部１９は、図７の８つの中間言語文を出力した、とする。【０３９２】  そして、変換部３６は、図７の８つの中間言語文を、出力部１９から受け付ける。次に、変換部３６は、１番目の中間言語文「N1：1002002（［N:w001］）；」を取得する。【０３９３】  そして、変換部３６の目的言語関数情報取得手段３６１は、１番目の中間言語文が有する非言語情報識別子「1002002」を取得する。【０３９４】  次に、目的言語関数情報取得手段３６１は、取得した非言語情報識別子「1002002」をキーとして、図４の目的言語文関数辞書３２を検索し、非言語情報識別子「1002002」と対になる目的言語関数情報「a-*connected-_([N]);」を取得する。【０３９５】  次に、目的言語文構成手段３６２は、１番目の中間言語文が引数を含むと判断する。そして、目的言語文構成手段３６２は、引数は語句識別子「w001」を含むと判断する。【０３９６】  次に、目的言語文構成手段３６２は、目的言語関数情報に含まれる語句識別子「w001」をキーとして、図５の目的言語語句辞書３３を検索し、語句「graph」を取得する。【０３９７】  次に、目的言語文構成手段３６２は、取得した目的言語関数情報「a-*connected-_([N]);」、および取得した語句「graph」を用いて、目的言語型情報「N1：a-*connected-_（［N:graph］）；」を構成する。つまり、取得した語句が引数の語句識別子に置き換えられる。【０３９８】  そして、目的言語文構成手段３６２は、構成した目的言語型情報をバッファに、少なくとも一時蓄積する。【０３９９】  次に、次に、変換部３６は、２番目の中間言語文「S1：3000401([a-object:G],[object：N1]);」を取得する。【０４００】  そして、変換部３６の目的言語関数情報取得手段３６１は、２番目の中間言語文が有する非言語情報識別子「3000401」を取得する。【０４０１】  次に、目的言語関数情報取得手段３６１は、取得した非言語情報識別子「3000401」をキーとして、図４の目的言語文関数辞書３２を検索し、非言語情報識別子「3000401」と対になる目的言語関数情報「_-@be:a1-_([a-object:G],[object：N1]);」を取得する。【０４０２】  次に、目的言語文構成手段３６２は、１番目の中間言語文が引数を含むと判断する。そし��、目的言語文構成手段３６２は、引数は語句識別子を含まないと判断する。【０４０３】  次に、目的言語文構成手段３６２は、目的言語型情報「S1：_-@be:a1-_([a-object:G],[object：N1]);」を構成する。【０４０４】  次に、目的言語文構成手段３６２は、構成した目的言語型情報をバッファに、少なくとも一時蓄積する。【０４０５】  変換部３６は、以上の処理を、３番目以降の中間言語文に対しても行う。そして、変換部３６は、図６に示すような目的言語型情報の集合を得る。なお、ここでは、図６の原言語型情報を目的言語型情報に読み換える。【０４０６】  次に、目的言語文構成手段３６２は、１番目の目的言語型情報「N1：a-*connected-_（［N: graph］）；」を取得する。そして、目的言語文構成手段３６２は、引数「graph」を引数挿入情報が示す位置に配置し、「N1：a-*connected-graph」を得て、バッファに配置する。【０４０７】  次に、目的言語文構成手段３６２は、２番目の目的言語型情報「S1：_-@be:a1-_([a-object:G],[object：N1]);」を取得する。目的言語文構成手段３６２は、引数である語句「G」および文「N1」を、それぞれ第一の引数挿入情報の位置、第二の引数挿入情報の位置に配置する。そして、目的言語文構成手段３６２は、「S1：G-@be:a1-a-*connected-graph」を得る。そして、ここで、目的言語文構成手段３６２は、変化フラグ「@」を検知する。そして、目的言語文構成手段３６２は、語句「be」をキーとして、目的言語変化語句辞書３５を検索し、変化語句「is,are,was,were」を取得する。そして、a1である「G」に対応する語句「is」を選択し、「@be:a1」を置き換える。そして、目的言語文構成手段３６２は、「S1：G-is-a-*connected-graph;」を得て、バッファに配置する。なお、目的言語文構成手段３６２は、埋め込み語句（ここでは「G」）が単数形であるか複数形であるかを辞書から取得し、保持しているルール（単数形であれば「is」を選択し、複数形であれば「are」を選択するというルール）を適用し、「is」または「are」を選択する。なお、ここでは、目的言語文構成手段３６２は、「G」を確認し、この場合は単数形であるから、「is」にする。【０４０８】  次に、目的言語文構成手段３６２は、３番目の目的言語型情報「N2：every-_([N：vertex]);」を取得する。そして、目的言語文構成手段３６２は、引数「vertex」を引数挿入情報が示す位置に配置し、「N2：every-vertex」を得て、バッファに配置する。【０４０９】  次に、目的言語文構成手段３６２は、４番目の目的言語型情報「N3：even-_([N：degree]);」を取得する。そして、目的言語文構成手段３６２は、引数「degree」を引数挿入情報が示す位置に配置し、「N3：even-degree」を得て、バッファに配置する。【０４１０】  次に、目的言語文構成手段３６２は、５番目の目的言語型情報「S2：_-@have:a1-_([object:N2],[object：N3]);」を取得する。そして、目的言語文構成手段３６２は、引数「N2：every-vertex」、引数「N3：even-degree」を引数挿入情報が示す位置に配置し、「S2：every-vertex-@have:a1-even-degree;」を得る。そして、ここで、変化フラグ「@」が存在するので、目的言語文構成手段３６２は、語句「have」をキーとして、目的言語変化語句辞書３５を検索し、変化語句「has」を取得する。そして、a1である「every-vertex」に対応する語句「has」を選択し、「@have:a1」を置き換える。そして、目的言語文���成手段３６２は、「S2：every-vertex-has-even-degree;」を得て、バッファに配置する。【０４１１】  次に、目的言語文構成手段３６２は、６番目の目的言語型情報「S3：_-@have:a1-_([object:G],[object：Euler cycle]);」を取得する。そして、目的言語文構成手段３６２は、引数「G」、引数「Euler cycle」を引数挿入情報が示す位置に配置し、「S3：G-@have:a1-Euler cycle；」を得る。そして、ここで、変化フラグ「@」が存在するので、目的言語文構成手段３６２は、語句「have」をキーとして、目的言語変化語句辞書３５を検索し、変化語句「has」を取得する。そして、a1である「G」に対応する語句「has」を選択し、「@have:a1」を置き換える。そして、目的言語文構成手段３６２は、「S3：G-has-Euler cycle；」を得て、バッファに配置する。【０４１２】  次に、目的言語文構成手段３６２は、７番目の目的言語型情報「S4：_-and-_([S:S1],[S:S2]);」を取得する。そして、目的言語文構成手段３６２は、引数「S1:G-is-a-*connected-graph;」「S2:every-vertex-has-even-degree;」を引数挿入情報が示す位置に配置し、「S4：G-is-a-*connected-graph-and-every-vertex-has-even-degree;」を得て、バッファに配置する。【０４１３】  次に、目的言語文構成手段３６２は、８番目の目的言語型情報「S5：If-_-,then-_([S：S4],[S：S3]);」を取得する。そして、目的言語文構成手段３６２は、引数「S4:G-is-a-*connected-graph-and-every-vertex-has-even-degree;」「S3：G-has-Euler cycle；」を引数挿入情報が示す位置に配置し、「S5：If-G-is-a-*connected-graph-and-every-vertex-has-even-degree-,then-G-has-Euler cycle；」を得て、バッファに配置する。【０４１４】  次に、「S5：If-G-is-a-*connected-graph-and-every-vertex-has-even-degree-,then-G-has-Euler cycle；」に対して、目的言語文構成手段３６２は、以下の他の処理を行う。まず、目的言語文構成手段３６２は、「-」をスペースに変換する。そして、目的言語文構成手段３６２は、「*」を消去する。これらの処理は、予め決められた他の処理である。【０４１５】  そして、目的言語文構成手段３６２は、目的言語の文「If G is a connected graph and every vertex has even degree ,then G has Euler cycle」を得る。【０４１６】  次に、目的言語文出力部３７は、構成された目的言語の文「If G is a connected graph and every vertex has even degree ,then G has Euler cycle」を出力する。【０４１７】  以上、本実施の形態によれば、原言語の文を目的言語の文に、精度高く機械翻訳できる。【０４１８】  また、本実施の形態によれば、あらゆる自然言語から、他の言語に容易に、かつ、曖昧性なく翻訳でき、この言語からあらゆる自然言語に、容易にかつ曖昧性なく翻訳できる。これを変換容易性という。さらに、本自然言語文変換装置では、この言語を使った翻訳システムが、比較的小さい計算機でも、容易に実装できる。具体的には、約１万の文型関数辞書と３０万語の用語辞書を用いるだけで、機械翻訳システムが実装できる。なお、かかる場合の辞書の必要記憶容量は「20Bx10K+10Bx300K=3.2MB」であり、主記憶装置にすべて読み込める。つまり、本自然言語文変換装置３は、実装の容易性を実現できる。【０４１９】  なお、本実施の形態によれば、１文を機械翻訳した。しかし、複数の文を連続して、機械翻訳しても良いことは言うまでもない。【０４２０】  また、本実施の形態によれば、日英翻訳を行ったが、原言語および目的言語は問わないことは言うまで���ない。【０４２１】  さらに、本実施の形態における自然言語文変換装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、原言語の文字列を含む原言語関数識別子と当該原言語関数識別子で識別される関数の引数を示す情報である１以上の引数情報とを有する原言語関数情報と、前記原言語関数情報に対応する情報であり、言語非依存の識別子である非言語情報識別子とを対に有する原言語文関数情報を１以上有する原言語文関数辞書と、原言語の語句と、当該語句を識別する語句識別子とを対に有する原言語語句情報を１以上有する原言語語句辞書とを格納しており、コンピュータを、原言語の文を受け付ける受付部と、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得し、かつ、前記原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句識別子を取得し、当該取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する中間言語文作成部と、前記中間言語文作成部が構成した１以上の中間言語文を出力する出力部として機能させるためのプログラムである。【０４２２】  また、上記プログラムにおいて、記録媒体に、目的言語の文字列を含む目的言語関数識別子と当該目的言語関数識別子で識別される関数の引数を示す情報である１以上の引数情報とを有する目的言語関数情報と、前記目的言語関数情報に対応する情報であり、言語非依存の識別子である非言語情報識別子とを対に有する目的言語文関数情報を１以上格納し得る目的言語文関数辞書と、目的言語の語句と、当該語句を識別する語句識別子とを対に有する目的言語語句情報を１以上格納し得る目的言語語句辞書とをさらに記憶し、コンピュータを、前記出力部が出力した１以上の中間言語文が有する１以上の非言語情報識別子を用いて前記目的言語文関数辞書を検索し、１以上の目的言語関数情報を取得し、前記１以上の中間言語文が有する１以上の語句識別子を用いて前記目的言語語句辞書を検索し、１以上の語句を取得し、当該取得した１以上の目的言語関数情報および１以上の語句から目的言語の文を構成する変換部と、前記変換部が構成した目的言語の文を出力する目的言語文出力部としてさらに機能させるためのプログラムであることは好適である。【０４２３】  また、上記プログラムにおいて、前記変換部は、前記出力部が出力した１以上の中間言語文が有する１以上の非言語情報識別子を用いて前記目的言語文関数辞書を検索し、１以上の目的言語関数情報を取得する目的言語関数情報取得手段と、前記１以上の中間言語文が有する１以上の語句識別子を用いて前記目的言語語句辞書を検索し、１以上の語句を取得する語句取得手段と、前記目的言語関数情報取得手段が取得した１以上の目的言語関数情報と前記語句取得手段が取得した１以上の語句とを用いて、目的言語の文を構成する目的言語文構成手段とを具備するものとして、コンピュータを機能させるためのプログラムであることは好適である。【０４２４】  ��た、上記プログラムにおいて、前記目的言語関数識別子は、引数の挿入場所を示す引数挿入情報を有し、かつ、語句が変形する可能性があることを示す変化フラグを有し、かつ、何らかの語句が挿入され得ることを示す不定語句フラグを有し、前記目的言語関数情報取得手段は、２以上の目的言語関数情報を取得し、前記目的言語文構成手段は、前記目的言語関数情報取得手段が取得した２以上の各目的言語関数情報が有する引数挿入情報が示す場所に、前記目的言語関数情報取得手段が取得した目的言語関数情報または前記語句取得手段が取得した語句を挿入し、かつ、目的言語関数情報が有する変化フラグに対応して文字列を変化させ、目的言語の文を構成するものとして、コンピュータを機能させるためのプログラムであることは好適である。【０４２５】（実施の形態４）  本実施の形態において、自然言語の文からアニメーションを自動生成する自然言語文変換装置４について説明する。【０４２６】  図２５は、本実施の形態における自然言語文変換装置４のブロック図である。自然言語文変換装置４は、原言語文型辞書１１、原言語文関数辞書１２、原言語語句辞書１３、原言語共起辞書１４、原言語変化語句辞書１５、受付部１６、関数化部１７、中間言語文作成部２８、出力部１９、プログラム格納部４１、実行部４２を備える。【０４２７】  プログラム格納部４１は、非言語情報識別子とアニメーション機能を実現するプログラムを対応付けて格納し得る。非言語情報識別子とプログラムとは、１対１であるとは限らず、１対多、多対１等でも良い。【０４２８】  プログラム格納部４１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。プログラム格納部４１に非言語情報識別子やプログラムが記憶される過程は問わない。【０４２９】  実行部４２は、出力部１９が出力した中間言語文が有する非言語情報識別子に対応するプログラムを、プログラム格納部４１から検索し、実行する。実行部４２は、中間言語文が有する引数を非言語情報識別子に対応するプログラムに渡し、プログラムを実行することは好適である。【０４３０】  実行部４２は、通常、ＭＰＵやメモリ等から実現され得る。実行部４２の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。【０４３１】  次に、自然言語文変換装置３の動作について、図２６のフローチャートを用いて説明する。出力部１９が中間言語文を出力するまでの処理は、実施の形態１で説明した。したがって、図２６のフローチャートにおいて、出力部１９が出力した中間言語文から、アニメーションを出力する処理について説明する。図２６のフローチャートにおいて、図２４のフローチャートと同一のステップについて、説明を省略する。【０４３２】  （ステップＳ２６０１）実行部４２は、ｉ番目の中間言語文が有する１以上の引数を取得する。【０４３３】  （ステップＳ２６０２）実行部４２は、非言語情報識別子をキーとして、プログラム格納部４１を検索し、プログラムを読み出す。【０４３４】  （ステップＳ２６０３）実行部４２は、ステップＳ２６０２で読み出したプログラムを実行する。実行の際に、ステップＳ２６０１で１以上の引数を取得していれば、当該１以上の引数をプログラムに渡して、プログラムを実行する。【０４３５】  以下、本実施の形態における自然言語文変換装置３の具体的な動作について説明する。【０４３６】  今、プログラム格納部４１は、図２７に示すプログラム管理表を保持している。プログラム管理表は、「ＩＤ」「非言語情報識別子」「プログラム識別子」を有するレコードである。プログラム識別子は、プログラムを識別する情報である。プログラム格納部４１は、各プログラム識別子に対応する実行可能なプログラムも保持している、とする。【０４３７】  かかる状況で、自然言語文変換装置３に入力された文「ボールを蹴る」が入力された、とする。【０４３８】  そして、実施の形態１で説明した処理により、出力部１９は中間言語文「ｆ１００１（ｗ８７１）」を出力した、とする。なお、中間言語文「ｆ１００１（ｗ８７１）」が出力されるために、原言語文関数辞書１２は、例えば、原言語文関数情報「S:_を蹴-る-（[object]）：ｆ１００１」を保持している、とする。また、原言語語句辞書１３は、「ボール：ｗ８７１」の原言語語句情報を保持している、とする。【０４３９】  次に、実行部４２は、中間言語文「ｆ１００１（ｗ８７１）」を受け付ける。そして、実行部４２は、非言語情報識別子「ｆ１００１」と、引数（ｗ８７１）を取得する。なお、非言語情報識別子「ｆ１００１」で識別される関数は、引数で示される画像を蹴るアニメーションを実行するプログラムである、とする。また、引数（ｗ８７１）は、ボールの画像ファイルを特定する情報である、とする。【０４４０】  そして、実行部４２は、非言語情報識別子「ｆ１００１」をキーとして図２７のプログラム管理表を検索し、プログラム識別子「ｓｈｏｏｔ（ａｒｇ１）」を得る。【０４４１】  次に、実行部４２は、プログラム識別子「ｓｈｏｏｔ（ａｒｇ１）」の引数に「ｗ８７１」を代入する。そして、実行部４２は、「ｓｈｏｏｔ（ｗ８７１）」を得る。【０４４２】  次に、実行部４２は、「ｓｈｏｏｔ（ｗ８７１）」を実行する。そして、ｗ８７１で特定されるファイルに示されたボールを蹴るアニメーションが表示される。【０４４３】  以上、本実施の形態によれば、自然言語の文から、精度高くアニメーションを生成できる。【０４４４】  なお、本実施の形態における自然言語文変換装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、原言語の文字列を含む原言語関数識別子と当該原言語関数識別子で識別される関数の引数を示す情報である１以上の引数情報とを有する原言語関数情報と、前記原言語関数情報に対応する情報であり、言語非依存の識別子である非言語情報識別子とを対に有する原言語文関数情報を１以上有する原言語文関数辞書と、原言語の語句と、当該語句を識別する語句識別子とを対に有する原言語語句情報を１以上有する原言語語句辞書とを格納しており、コンピュータを、原言語の文を受け付ける受付部と、前記受付部が受け付けた文と、前記原言語文関数辞書に格納されている１以上の原言語関数識別子とのマッチングをとり、マッチする１以上の原言語関数識別子と対になる１以上の非言語情報識別子を取得し、かつ、前記原言語語句辞書に格納されている１以上の原言語の語句とのマッチングをとり、マッチする１以上の語句識別子を取得し、当該取得した１以上の非言語情報識別子と１以上の語句識別子とを用いて、関数の構造を有する１以上の中間言語文を構成する中間言語文作成部と、前記中間言語文作成部が構成した１以上の中間言語文を出力する出力部として機能させるためのプログラムである。【０４４５】  また、上記プログラムにおいて、記憶媒体に、非言語情報識別子とアニメーション機能を実現するプログラムを対応付けて格納し、前記出力部が出力した中間言語文が有する非言語情報識別子に対応するプログラムを、前記記憶媒体から検索し、実行する実行部とを具備するものとして、コンピュータをさらに機能させるためのプログラムであることは好適である。【０４４６】  また、図２５は、本明細書で述べたプログラムを実行して、上述した実施の形態の自然言語文変換装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図２８は、このコンピュータシステム３４０の概観図であり、図２９は、コンピュータシステム３４０のブロック図である。【０４４７】  図２８において、コンピュータシステム３４０は、ＦＤドライブ、ＣＤ−ＲＯＭドライブを含むコンピュータ３４１と、キーボード３４２と、マウス３４３と、モニタ３４４とを含む。【０４４８】  図２９において、コンピュータ３４１は、ＦＤドライブ３４１１、ＣＤ−ＲＯＭドライブ３４１２に加えて、ＭＰＵ３４１３と、ＣＤ−ＲＯＭドライブ３４１２及びＦＤドライブ３４１１に接続されたバス３４１４と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ３４１５に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ３４１６と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３４１７とを含む。ここでは、図示しないが、コンピュータ３４１は、さらに、ＬＡＮへの接続を提供するネットワークカードを含んでも良い。【０４４９】  コンピュータシステム３４０に、上述した実施の形態の自然言語文変換装置等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ３５０１、またはＦＤ３５０２に記憶されて、ＣＤ−ＲＯＭドライブ３４１２またはＦＤドライブ３４１１に挿入され、さらにハードディスク３４１７に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ３４１に送信され、ハードディスク３４１７に記憶されても良い。プログラムは実行の際にＲＡＭ３４１６にロードされる。プログラムは、ＣＤ−ＲＯＭ３５０１、ＦＤ３５０２またはネットワークから直接、ロードされても良い。【０４５０】  プログラムは、コンピュータ３４１に、上述した実施の形態の自然言語文変換装置等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム３４０がどのように動作するかは周知であり、詳細な説明は省略する。【０４５１】  なお、上記プログラムにおいて、ハードウェアによって行われる処理は含まれない。【０４５２】  また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。【０４５３】  また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。【０４５４】  また、上記各実施の形態において説明した自然言語文変換装置は、１以上の端末とネットワークで接続され、利用されても良いことは言うまでもない。【０４５５】  本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０４５６】  以上のように、本発明にかかる自然言語文変換装置は、自然言語文をコンピュータ処理するための中間言語に、精度高く変換できる、という効果を有し、自然言語文変換装置等として有用である。
【図面の簡単な説明】
【０４５７】
【図１】実施の形態１における自然言語文変換装置のブロック図
【図２】同自然言語文変換装置の動作について説明するフローチャート
【図３】同マッチング処理の動作について説明するフローチャート
【図４】同原言語文関数辞書の例を示す図
【図５】同原言語語句辞書の例を示す図
【図６】同原言語型情報の例を示す図
【図７】同中間言語文の例を示す図
【図８】同原言語文型辞書の例を示す図
【図９】同原言語語句辞書の例を示す図
【図１０】同原言語変化語句辞書の例を示す図
【図１１】同原言語型情報の例を示す図
【図１２】実施の形態２における自然言語文変換装置のブロック図
【図１３】同連続ひらがな列索引の例を示す図
【図１４】同最外部関数取得手段の解析結果の例を示す図
【図１５】同自然言語文変換装置の動作について説明するフローチャート
【図１６】同補語解析処理について説明するフローチャート
【図１７】同原言語文関数辞書の例を示す図
【図１８】同原言語語句辞書の例を示す図
【図１９】同索引の例を示す図
【図２０】同最外部関数取得手段の動詞変形方法を説明する図
【図２１】同取得された原言語関数識別子の集合の例を示す図
【図２２】同取得された中間言語文の例を示す図
【図２３】実施の形態３における自然言語文変換装置のブロック図
【図２４】同自然言語文変換装置の動作について説明するフローチャート
【図２５】実施の形態４における自然言語文変換装置のブロック図
【図２６】同自然言語文変換装置の動作について説明するフローチャート
【図２７】同プログラム管理表の例を示す図
【図２８】本明細書の実施の形態におけるコンピュータシステムの概観図
【図２９】同コンピュータシステムのブロック図
【図１】
2011108330.tif 000005
【図２】
2011108330.tif 000006
【図３】
2011108330.tif 000007
【図４】
2011108330.tif 000008
【図５】
2011108330.tif 000009
【図６】
2011108330.tif 000010
【図７】
2011108330.tif 000011
【図８】
2011108330.tif 000012
【図９】
2011108330.tif 000013
【図１０】
2011108330.tif 000014
【図１１】
2011108330.tif 000015
【図１２】
2011108330.tif 000016
【図１３】
2011108330.tif 000017
【図１４】
2011108330.tif 000018
【図１５】
2011108330.tif 000019
【図１６】
2011108330.tif 000020
【図１７】
2011108330.tif 000021
【図１８】
2011108330.tif 000022
【図１９】
2011108330.tif 000023
【図２０】
2011108330.tif 000024
【図２１】
2011108330.tif 000025
【図２２】
2011108330.tif 000026
【図２３】
2011108330.tif 000027
【図２４】
2011108330.tif 000028
【図２５】
2011108330.tif 000029
【図２６】
2011108330.tif 000030
【図２７】
2011108330.tif 000031
【図２８】
2011108330.tif 000032
【図２９】
2011108330.tif 000033
【国際調査報告】
2011108330.tif 000034
2011108330.tif 000035