(57)【要約】【課題】従来、対話コーパスを自動生成できない、という課題があった。【解決手段】二人のユーザから入力される連続した対話文であり、第一のユーザから入力された第一対話文と、当該第一対話文の入力後に、第二のユーザから入力された第二対話文と、当該第二対話文の入力後に、第一のユーザから入力された第三対話文を受け付ける対話文受付部と、前記受け付けた対話文のうち、少なくとも一のユーザから入力された対話文を自然言語処理し、少なくとも一の用語を有する処理結果を取得する自然言語処理部と、前記処理結果と前記対話文受付部が受け付けた対話文、または前記処理結果から、対話文の繋がりに関する情報である対話連係情報を生成する対話連係情報生成部と、前記対話連係情報を蓄積する対話連係情報蓄積部を具備する対話コーパス生成装置により、対話コーパスを自動生成できる。【選択図】図２
2008299754.tif 000002
【特許請求の範囲】
【請求項１】
二人のユーザから入力される連続した対話文であり、第一のユーザから入力された第一対話文と、当該第一対話文の入力後に、第二のユーザから入力された第二対話文と、当該第二対話文の入力後に、第一のユーザから入力された第三対話文を受け付ける対話文受付部と、
前記受け付けた対話文のうち、少なくとも一のユーザから入力された対話文を自然言語処理し、少なくとも一の用語を有する処理結果を取得する自然言語処理部と、
前記処理結果と前記対話文受付部が受け付けた対話文、または前記処理結果から、対話文の繋がりに関する情報である対話連係情報を生成する対話連係情報生成部と、
前記対話連係情報を蓄積する対話連係情報蓄積部を具備する対話コーパス生成装置。
【請求項２】
前記自然言語処理部は、
第一文字列と、文中における前記第一文字列の機能または種類を特定する情報である機能語情報と、前記第一文字列の前に接続され得る文字列の種類を特定する情報である前接続記号と、前記第一文字列の後ろに接続され得る文字列の種類、または区切りであることを示す記号であり、当該記号により区切られた文中における第二文字列の種類を特定する情報である後接続記号とを対に有する辞書情報を１以上格納している辞書情報格納手段と、
前記受け付けた対話文のうち、少なくとも一のユーザから入力された対話文から、区切りであることを示す後接続記号に対する第一文字列を取り出し、当該第一文字列をキーにして、対話文を構成する文を２以上の文字列である２以上の第二文字列に区切り、当該第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記第二文字列の種類を特定する情報を取得し、当該第二文字列と第二文字列の種類を特定する情報を取得する文分割制御手段と、
前記文分割制御手段が取得した２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対に有する処理結果を取得する処理結果構成手段を具備する請求項１記載の対話コーパス生成装置。
【請求項３】
前記対話連係情報は、
第一対話文に対応する１以上の第二文字列または当該１以上の第二文字列から構成される情報である第一対話情報と、
第二対話文に対応する１以上の第二文字列または当該１以上の第二文字列から構成される情報である第二対話情報と、
第三対話文に対応する１以上の第二文字列または当該１以上の第二文字列から構成される情報である第三対話情報を有する請求項２記載の対話コーパス生成装置。
【請求項４】
前記第一対話情報を構成する元になった対話文である第一対話文、前記第二対話情報を構成する元になった対話文である第二対話文、前記第三対話情報を構成する元になった対話文である第三対話文のうちの少なくとも１以上の対話文を、それぞれ前記第一対話情報、前記第二対話情報、前記第三対話情報に対応付けて蓄積する対話文蓄積部をさらに具備する請求項３記載の対話コーパス生成装置。
【請求項５】
前記第二文字列の種類は、
少なくとも文の主題、文の副題、動作状態を含み、
前記処理結果構成手段は、
主題に対応する第二文字列、副題に対応する第二文字列、および動作状態に対応する第二文字列を有する処理結果を取得する請求項２から請求項４いずれか記載の対話コーパス生成装置。
【請求項６】
前記文分割制御手段は、
前記対話文を構成する文の先頭から予め決められたサイズ（ｎ文字［ｎは２以上の整数］）の第三文字列を切り出し、
前記切り出した第三文字列を構成する文字列であって、先頭からｎ文字の文字列から順に、前記辞書情報格納手段に当該文字列が存在するか否かを判断し、ｎ文字の文字列が存在しない場合には、先頭から（ｎ−１）文字の文字列が前記辞書情報格納手段に存在するか否かを判断し、かかる判断を、１文字ずつ文字数を減らして、文字列が存在するまで行い、または、文字列が存在しない場合には、先頭から１文字になるまでかかる判断を行い、
文字列が存在すると判断した場合には、当該文字列に対応する機能語情報と前接続記号と後接続記号とを、前記辞書情報格納手段から読み出し、読み出した機能語情報と前接続記号と後接続記号とを当該文字列に付与し、
文字列が存在しない場合には、１文字の文字列に対して未知語であることを示す情報である未知語情報を付与する要素分割手段と、
前記要素分割手段が未知語情報を付与した連続する未知語であり、ひらがなの文字を連結し文字列を構成し、かつ連続する未知語であり、ひらがなではない文字を連結し文字列を構成し、
前記連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報を付与し、
隣接する２つの、前記要素分割手段が分割した要素またはまとまり情報を読み出し、
当該読み出した要素またはまとまり情報のうち、前出の要素またはまとまり情報の後接続記号と、後出の要素またはまとまり情報の前接続記号から、前出の要素またはまとまり情報と後出の要素またはまとまり情報が連結可能であるか否かを判断し、
連結可能な要素またはまとまり情報を一つの文字列にまとめて、当該まとめた文字列である第二文字列を複数、取得する要素連結手段と、
前記要素連結手段が取得した複数の各第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記各第二文字列の種類を特定する情報を決定し、
当該複数の各第二文字列の種類を特定する情報と、当該複数の各第二文字列を対にした複数の対の情報を取得する文字列取得手段を具備する請求項２から請求項５いずれか記載の対話コーパス生成装置。
【請求項７】
前記対話連係情報生成部は、
第一対話文および第一対話文に対応する１以上の第二文字列を組み合わせた２以上の第一対話情報を生成し、第二対話文および第二対話文に対応する１以上の第二文字列を組み合わせた２以上の第二対話情報を生成し、第三対話文および第三対話文に対応する１以上の第二文字列を組み合わせた２以上の第三対話情報を生成し、
前記対話連係情報蓄積部は、
第一対話情報、第二対話情報、および第三対話情報を有する対話連係情報を２以上、蓄積する請求項３から請求項６いずれか記載の対話コーパス生成装置。
【請求項８】
前記対話連係情報生成部は、
前記２以上の第一対話情報、前記２以上の第二対話情報、前記２以上の第三対話情報のうち、少なくとも１種類の各対話情報に対して、選択される場合の優先度の情報である優先度情報を生成し、当該優先度情報を各対話情報に対して付与し、
前記対話連係情報蓄積部は、
前記優先度情報を有する２以上の対話連係情報を蓄積する請求項７記載の対話コーパス生成装置。
【請求項９】
前記対話連係情報生成部は、
前記第一対話情報、前記第二対話情報、および前記第三対話情報を数値化する請求項３から請求項８いずれか記載の対話コーパス生成装置。
【請求項１０】
第一対話情報、および第二対話情報を対に有する対話連係情報を格納している対話連係情報格納部と、
前記第一対話情報を構成する元になった対話文である第一対話文、前記第二対話情報を構成する元になった対話文である第二対話文のうちの少なくとも１以上の対話文を、それぞれ前記第一対話情報、前記第二対話情報に対応付けて格納している対話文格納部と、
ユーザからの対話文を受け付ける対話文受付部と、
前記対話文を自然言語処理し、少なくとも一の用語を有する処理結果を取得する自然言語処理部と、
前記処理結果を用いて、前記対話連係情報格納部を検索し、第一対話情報を取得する第一対話情報取得部と、
前記第一対話情報と対になる第二対話情報に対応する第二対話文を、前記対話文格納部から取得する対話文取得部と、
前記対話文取得部が取得した対話文を出力する対話文出力部を具備するバーチャルチャット装置。
【請求項１１】
前記自然言語処理部は、
第一文字列と、文中における前記第一文字列の機能または種類を特定する情報である機能語情報と、前記第一文字列の前に接続され得る文字列の種類を特定する情報である前接続記号と、前記第一文字列の後ろに接続され得る文字列の種類、または区切りであることを示す記号であり、当該記号により区切られた文中における第二文字列の種類を特定する情報である後接続記号とを対に有する辞書情報を１以上格納している辞書情報格納手段と、
前記受け付けた対話文中、少なくとも一のユーザから入力された対話文から、区切りであることを示す後接続記号に対する第一文字列を取り出し、当該第一文字列をキーにして、対話文を構成する文を２以上の文字列である２以上の第二文字列に区切り、当該第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記第二文字列の種類を特定する情報を取得し、当該第二文字列と第二文字列の種類を特定する情報を取得する文分割制御手段と、
前記文分割制御手段が取得した２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対に有する処理結果を取得する処理結果構成手段を具備する請求項１０記載のバーチャルチャット装置。
【請求項１２】
前記文分割制御手段は、
前記対話文を構成する文の先頭から予め決められたサイズ（ｎ文字［ｎは２以上の整数］）の第三文字列を切り出し、
前記切り出した第三文字列を構成する文字列であって、先頭からｎ文字の文字列から順に、前記辞書情報格納手段に当該文字列が存在するか否かを判断し、ｎ文字の文字列が存在しない場合には、先頭から（ｎ−１）文字の文字列が前記辞書情報格納手段に存在するか否かを判断し、かかる判断を、１文字ずつ文字数を減らして、文字列が存在するまで行い、または、文字列が存在しない場合には、先頭から１文字になるまでかかる判断を行い、
文字列が存在すると判断した場合には、当該文字列に対応する機能語情報と前接続記号と後接続記号とを、前記辞書情報格納手段から読み出し、読み出した機能語情報と前接続記号と後接続記号とを当該文字列に付与し、
文字列が存在しない場合には、１文字の文字列に対して未知語であることを示す情報である未知語情報を付与する要素分割手段と、
前記要素分割手段が未知語情報を付与した連続する未知語であり、ひらがなの文字を連結し文字列を構成し、かつ連続する未知語であり、ひらがなではない文字を連結し文字列を構成し、
前記連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報を付与し、
隣接する２つの、前記要素分割手段が分割した要素またはまとまり情報を読み出し、
当該読み出した要素またはまとまり情報のうち、前出の要素またはまとまり情報の後接続記号と、後出の要素またはまとまり情報の前接続記号から、前出の要素またはまとまり情報と後出の要素またはまとまり情報が連結可能であるか否かを判断し、
連結可能な要素またはまとまり情報を一つの文字列にまとめて、当該まとめた文字列である第二文字列を複数の取得する要素連結手段と、
前記要素連結手段が取得した複数の各第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記各第二文字列の種類を特定する情報を決定し、
当該複数の各第二文字列の種類を特定する情報と、当該複数の各第二文字列を対にした複数の対の情報をメモリ上に配置する文字列取得手段を具備する請求項１１記載のバーチャルチャット装置。
【請求項１３】
コンピュータを、
二人のユーザから入力される連続した対話文であり、第一のユーザから入力された第一対話文と、当該第一対話文の入力後に、第二のユーザから入力された第二対話文と、当該第二対話文の入力後に、第一のユーザから入力された第三対話文を受け付ける対話文受付部と、
前記受け付けた対話文のうち、少なくとも一のユーザから入力された対話文を自然言語処理し、少なくとも一の用語を有する処理結果を取得する自然言語処理部と、
前記処理結果と前記対話文受付部が受け付けた対話文、または前記処理結果から、対話文の繋がりに関する情報である対話連係情報を生成する対話連係情報生成部と、
前記対話連係情報を蓄積する対話連係情報蓄積部として機能させるためのプログラム。
【請求項１４】
対話文受付部、自然言語処理部、対話連係情報生成部、および対話連係情報蓄積部により実現される対話コーパスの生産方法であって、
前記対話文受付部により、二人のユーザから入力される連続した対話文であり、第一のユーザから入力された第一対話文と、当該第一対話文の入力後に、第二のユーザから入力された第二対話文と、当該第二対話文の入力後に、第一のユーザから入力された第三対話文を受け付ける対話文受付ステップと、
前記自然言語処理部により、前記受け付けた対話文のうち、少なくとも一のユーザから入力された対話文を自然言語処理し、少なくとも一の用語を有する処理結果を取得する自然言語処理ステップと、
前記対話連係情報生成部により、前記処理結果と前記対話文受付ステップで受け付けた対話文、または前記処理結果から、対話文の繋がりに関する情報である対話連係情報を生成する対話連係情報生成ステップと、
前記対話連係情報蓄積部により、前記対話連係情報を蓄積する対話連係情報蓄積ステップを具備する対話コーパスの生産方法。
【請求項１５】
第一対話情報、および第二対話情報を対に有する対話連係情報を記憶媒体に格納しており、
前記第一対話情報を構成する元になった対話文である第一対話文、前記第二対話情報を構成する元になった対話文である第二対話文のうちの少なくとも１以上の対話文を、それぞれ前記第一対話情報、前記第二対話情報に対応付けて記憶媒体に格納しており、
コンピュータを、
ユーザからの対話文を受け付ける対話文受付部と、
前記対話文を自然言語処理し、少なくとも一の用語を有する処理結果を取得する自然言語処理部と、
前記処理結果を用いて、前記記憶媒体を検索し、第一対話情報を取得する第一対話情報取得部と、
前記第一対話情報と対になる第二対話情報に対応する第二対話文を、前記記憶媒体から取得する対話文取得部と、前記対話文取得部が取得した対話文を出力する対話文出力部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２者以上のユーザの対話文を受け付け、少なくとも一者の会話文を自然言語処理し、会話の繋がりデータを取得し、蓄積する対話コーパス生成装置等に関するものである。
【背景技術】
【０００２】
従来、以下のような応答文生成装置があった。つまり、この応答文生成装置は、ユーザ発話とその応答文との発話対、およびその発話対における対話状態のラベル値を付与した対話コーパスを記憶する対話コーパス記憶部を備える。すなわち、まず対話状態管理部は、この対話コーパスに含まれるユーザ発話とその応答文と前記したラベル値とに基づき、入力されたユーザ発話がどのような対話状態か（どのようなラベル値に該当するか）を判断する。そして、応答文生成部は、判断した対話状態に類似するユーザ発話の応答文を対話コーパスから検索する。つまり、入力されたユーザ発話の応答文として最も適切である可能性が高い応答文を対話コーパス記憶部から検索する。そして、この検索した応答文に修正を行い、入力されたユーザ発話に対する応答文として出力する（特許文献１参照）。
【特許文献１】特開２００７−１０２１０４号公報（第１頁、第１図等）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の装置においては、対話コーパスが存在することが前提であった。そして、チャットなどの２者以上の対話文を用いて、対話コーパスを生成するようなことができなかった。
【課題を解決するための手段】
【０００４】
本第一の発明の対話コーパス生成装置は、二人のユーザから入力される連続した対話文であり、第一のユーザから入力された第一対話文と、当該第一対話文の入力後に、第二のユーザから入力された第二対話文と、当該第二対話文の入力後に、第一のユーザから入力された第三対話文を受け付ける対話文受付部と、前記受け付けた対話文のうち、少なくとも一のユーザから入力された対話文を自然言語処理し、少なくとも一の用語を有する処理結果を取得する自然言語処理部と、前記処理結果と前記対話文受付部が受け付けた対話文、または前記処理結果から、対話文の繋がりに関する情報である対話連係情報を生成する対話連係情報生成部と、前記対話連係情報を蓄積する対話連係情報蓄積部を具備する対話コーパス生成装置である。
【０００５】
かかる構成により、チャットなどの２者以上の対話文を用いて、対話コーパスを自動生成できる。
【０００６】
また、本第二の発明の対話コーパス生成装置は、第一の発明に対して、前記自然言語処理部は、第一文字列と、文中における前記第一文字列の機能または種類を特定する情報である機能語情報と、前記第一文字列の前に接続され得る文字列の種類を特定する情報である前接続記号と、前記第一文字列の後ろに接続され得る文字列の種類、または区切りであることを示す記号であり、当該記号により区切られた文中における第二文字列の種類を特定する情報である後接続記号とを対に有する辞書情報を1以上格納している辞書情報格納手段と、前記受け付けた対話文中、少なくとも一のユーザから入力された対話文から、区切りであることを示す後接続記号に対する第一文字列を取り出し、当該第一文字列をキーにして、対話文を構成する文を２以上の文字列である２以上の第二文字列に区切り、当該第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記第二文字列の種類を特定する情報を取得し、当該第二文字列と第二文字列の種類を特定する情報を取得する文分割制御手段と、前記文分割制御手段が取得した２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対に有する処理結果を取得する処理結果構成手段を具備する対話コーパス生成装置である。
【０００７】
かかる構成により、バーチャルチャットシステムに有効に利用できる対話コーパスを自動生成できる。
【０００８】
また、本第三の発明の対話コーパス生成装置は、第二の発明に対して、前記対話連係情報は、第一対話文に対応する１以上の第二文字列または当該１以上の第二文字列から構成される情報である第一対話情報と、第二対話文に対応する１以上の第二文字列または当該１以上の第二文字列から構成される情報である第二対話情報と、第三対話文に対応する１以上の第二文字列または当該１以上の第二文字列から構成される情報である第三対話情報を有する対話コーパス生成装置である。
【０００９】
かかる構成により、バーチャルチャットシステムに有効に利用できる対話コーパスを自動生成できる。
【００１０】
また、本第四の発明の対話コーパス生成装置は、第三の発明に対して、前記第一対話情報を構成する元になった対話文である第一対話文、前記第二対話情報を構成する元になった対話文である第二対話文、前記第三対話情報を構成する元になった対話文である第三対話文のうちの少なくとも１以上の対話文を、それぞれ前記第一対話情報、前記第二対話情報、前記第三対話情報に対応付けて蓄積する対話文蓄積部をさらに具備する対話コーパス生成装置である。
【００１１】
かかる構成により、バーチャルチャットシステムにおいて、より自然な文を出力できるように、対話コーパスを自動生成できる。
【００１２】
また、本第五の発明の対話コーパス生成装置は、第二から第四いずれかの発明に対して、前記第二文字列の種類は、少なくとも文の主題、文の副題、動作状態を含み、前記処理結果構成手段は、主題に対応する第二文字列、副題に対応する第二文字列、および動作状態に対応する第二文字列を有する処理結果を取得する対話コーパス生成装置である。
【００１３】
かかる構成により、バーチャルチャットシステムにおいて、より自然な文を出力できるように、対話コーパスを自動生成できる。
【００１４】
また、本第六の発明の対話コーパス生成装置は、第二から第五いずれかの発明に対して、  前記文分割制御手段は、前記対話文を構成する文の先頭から予め決められたサイズ（ｎ文字[ｎは２以上の整数]）の第三文字列を切り出し、前記切り出した第三文字列を構成する文字列であって、先頭からｎ文字の文字列から順に、前記辞書情報格納手段に当該文字列が存在するか否かを判断し、ｎ文字の文字列が存在しない場合には、先頭から（ｎ−１）文字の文字列が前記辞書情報格納手段に存在するか否かを判断し、かかる判断を、１文字ずつ文字数を減らして、文字列が存在するまで行い、または、文字列が存在しない場合には、先頭から１文字になるまでかかる判断を行い、文字列が存在すると判断した場合には、当該文字列に対応する機能語情報と前接続記号と後接続記号とを、前記辞書情報格納手段から読み出し、読み出した機能語情報と前接続記号と後接続記号とを当該文字列に付与し、文字列が存在しない場合には、１文字の文字列に対して未知語であることを示す情報である未知語情報を付与する要素分割手段と、前記要素分割手段が未知語情報を付与した連続する未知語であり、ひらがなの文字を連結し文字列を構成し、かつ連続する未知語であり、ひらがなではない文字を連結し文字列を構成し、前記連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報を付与し、隣接する２つの、前記要素分割手段が分割した要素またはまとまり情報を読み出し、当該読み出した要素またはまとまり情報のうち、前出の要素またはまとまり情報の後接続記号と、後出の要素またはまとまり情報の前接続記号から、前出の要素またはまとまり情報と後出の要素またはまとまり情報が連結可能であるか否かを判断し、連結可能な要素またはまとまり情報を一つの文字列にまとめて、当該まとめた文字列である第二文字列を複数の取得する要素連結手段と、前記要素連結手段が取得した複数の各第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記各第二文字列の種類を特定する情報を決定し、当該複数の各第二文字列の種類を特定する情報と、当該複数の各第二文字列を対にした複数の対の情報をメモリ上に配置する文字列取得手段を具備する対話コーパス生成装置である。
【００１５】
かかる構成により、バーチャルチャットシステムにおいて、より自然な文を出力できるように、対話コーパスを自動生成できる。
【００１６】
また、本第七の発明の対話コーパス生成装置は、第三から第六いずれかの発明に対して、前記対話連係情報生成部は、第一対話文および第一対話文に対応する１以上の第二文字列を組み合わせた２以上の第一対話情報を生成し、第二対話文および第二対話文に対応する１以上の第二文字列を組み合わせた２以上の第二対話情報を生成し、第三対話文および第三対話文に対応する１以上の第二文字列を組み合わせた２以上の第三対話情報を生成し、前記対話連係情報蓄積部は、第一対話情報、第二対話情報、および第三対話情報を有する対話連係情報を２以上、蓄積する対話コーパス生成装置である。
【００１７】
かかる構成により、バーチャルチャットシステムにおいて、ユーザから入力された文に対して、より高い確率で自然な応答ができるための対話コーパスを自動生成できる。
【００１８】
また、本第八の発明の対話コーパス生成装置は、第七の発明に対して、前記対話連係情報生成部は、前記２以上の第一対話情報、前記２以上の第二対話情報、前記２以上の第三対話情報のうち、少なくとも１種類の各対話情報に対して、選択される場合の優先度の情報である優先度情報を生成し、当該優先度情報を各対話情報に対して付与し、前記対話連係情報蓄積部は、前記優先度情報を有する２以上の対話連係情報を蓄積する対話コーパス生成装置である。
【００１９】
かかる構成により、バーチャルチャットシステムにおいて、ユーザから入力された文に対して、より高い確率で自然な応答ができるための対話コーパスを自動生成できる。
【００２０】
また、本第九の発明の対話コーパス生成装置は、第三から第八いずれかの発明に対して、前記対話連係情報生成部は、前記第一対話情報、前記第二対話情報、および前記第三対話情報を数値化する対話コーパス生成装置である。
【００２１】
かかる構成により、バーチャルチャットシステムにおいて、ユーザから入力された文に対して、より高速に返答文を取得できるような対話コーパスを自動生成できる。
【００２２】
また、本第十の発明の対話コーパス生成装置は、第一対話情報、および第二対話情報を対に有する対話連係情報を格納している対話連係情報格納部と、前記第一対話情報を構成する元になった対話文である第一対話文、前記第二対話情報を構成する元になった対話文である第二対話文のうちの少なくとも１以上の対話文を、それぞれ前記第一対話情報、前記第二対話情報に対応付けて格納している対話文格納部と、ユーザからの対話文を受け付ける対話文受付部と、前記対話文を自然言語処理し、少なくとも一の用語を有する処理結果を取得する自然言語処理部と、前記処理結果を用いて、前記対話連係情報格納部を検索し、第一対話情報を取得する第一対話情報取得部と、前記第一対話情報と対になる第二対話情報に対応する第二対話文を、前記対話文格納部から取得する対話文取得部と、前記対話文取得部が取得した対話文を出力する対話文出力部を具備するバーチャルチャット装置である。
【００２３】
かかる構成により、対話コーパスを用いたバーチャルチャットシステムを提供できる。
【００２４】
また、本第十一の発明のバーチャルチャット装置は、第十の発明に対して、前記自然言語処理部は、第一文字列と、文中における前記第一文字列の機能または種類を特定する情報である機能語情報と、前記第一文字列の前に接続され得る文字列の種類を特定する情報である前接続記号と、前記第一文字列の後ろに接続され得る文字列の種類、または区切りであることを示す記号であり、当該記号により区切られた文中における第二文字列の種類を特定する情報である後接続記号とを対に有する辞書情報を1以上格納している辞書情報格納手段と、前記受け付けた対話文中、少なくとも一のユーザから入力された対話文から、区切りであることを示す後接続記号に対する第一文字列を取り出し、当該第一文字列をキーにして、対話文を構成する文を２以上の文字列である２以上の第二文字列に区切り、当該第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記第二文字列の種類を特定する情報を取得し、当該第二文字列と第二文字列の種類を特定する情報を取得する文分割制御手段と、前記文分割制御手段が取得した２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対に有する処理結果を取得する処理結果構成手段を具備するバーチャルチャット装置である。
【００２５】
かかる構成により、ユーザから入力された文に対して、より精度高く、適切な返答文を取得できる。
【００２６】
また、本第十二の発明のバーチャルチャット装置は、第十一の発明に対して、前記文分割制御手段は、前記対話文を構成する文の先頭から予め決められたサイズ（ｎ文字[ｎは２以上の整数]）の第三文字列を切り出し、前記切り出した第三文字列を構成する文字列であって、先頭からｎ文字の文字列から順に、前記辞書情報格納手段に当該文字列が存在するか否かを判断し、ｎ文字の文字列が存在しない場合には、先頭から（ｎ−１）文字の文字列が前記辞書情報格納手段に存在するか否かを判断し、かかる判断を、１文字ずつ文字数を減らして、文字列が存在するまで行い、または、文字列が存在しない場合には、先頭から１文字になるまでかかる判断を行い、文字列が存在すると判断した場合には、当該文字列に対応する機能語情報と前接続記号と後接続記号とを、前記辞書情報格納手段から読み出し、読み出した機能語情報と前接続記号と後接続記号とを当該文字列に付与し、文字列が存在しない場合には、１文字の文字列に対して未知語であることを示す情報である未知語情報を付与する要素分割手段と、前記要素分割手段が未知語情報を付与した連続する未知語であり、ひらがなの文字を連結し文字列を構成し、かつ連続する未知語であり、ひらがなではない文字を連結し文字列を構成し、前記連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報を付与し、隣接する２つの、前記要素分割手段が分割した要素またはまとまり情報を読み出し、当該読み出した要素またはまとまり情報のうち、前出の要素またはまとまり情報の後接続記号と、後出の要素またはまとまり情報の前接続記号から、前出の要素またはまとまり情報と後出の要素またはまとまり情報が連結可能であるか否かを判断し、連結可能な要素またはまとまり情報を一つの文字列にまとめて、当該まとめた文字列である第二文字列を複数の取得する要素連結手段と、前記要素連結手段が取得した複数の各第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記各第二文字列の種類を特定する情報を決定し、当該複数の各第二文字列の種類を特定する情報と、当該複数の各第二文字列を対にした複数の対の情報をメモリ上に配置する文字列取得手段を具備するバーチャルチャット装置である。
【００２７】
かかる構成により、ユーザから入力された文に対して、より精度高く、適切な返答文を取得できる。
【発明の効果】
【００２８】
本発明による対話コーパス生成装置によれば、対話コーパスを自動生成できる。
【発明を実施するための最良の形態】
【００２９】
以下、対話コーパス生成装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
（実施の形態１）
【００３０】
本実施の形態において、２者以上の対話文を受け付け、少なくとも一者の対話文を自然言語処理し、対話の繋がりデータを取得し、蓄積する対話コーパス生成装置について説明する。また、本実施の形態において、主として、形態素解析を用いない、機能素解析という自然言語解析の手法を用いて、自然言語処理を行う。さらに、本実施の形態において、形態素解析を用いる公知の自然言語解析の手法についても説明する。
【００３１】
図１は、本実施の形態における対話コーパス生成システムの概念図である。対話コーパス生成システムは、第一端末装置１、対話コーパス生成装置２、第二端末装置３を具備する。対話コーパス生成システムにおいて、第一端末装置１と第二端末装置３は、チャットを行い、対話コーパス生成装置２は、チャットにおいて、二人のユーザから入力される対話文を受信し、自然言語処理し、対話コーパスを生成する。第一端末装置１と第二端末装置３は、いわゆるパソコン、携帯端末、携帯電話等を問わない。対話コーパス生成装置２は、主として、第一端末装置１と第二端末装置３から対話文を受信し、他方の端末装置に対話文を送信する中継機能を有する装置として説明する。ただし、かかる対話文の中継機能は、他の装置で行っても良い。
【００３２】
図２は、本実施の形態における対話コーパス生成システムのブロック図である。第一端末装置１は、第一入力受付部１１、第一送信部１２、第一受信部１３、第一出力部１４を具備する。第二端末装置３は、第二入力受付部３１、第二送信部３２、第二受信部３３、第二出力部３４を具備する。第一入力受付部１１、第一送信部１２、第一受信部１３、第一出力部１４は、それぞれ第二入力受付部３１、第二送信部３２、第二受信部３３、第二出力部３４と同一の機能を有し、同一の動作を行う。
【００３３】
対話コーパス生成装置２は、格納部２０、対話文受付部２１、自然言語処理部２２、対話連係情報生成部２３、対話連係情報蓄積部２４、対話文蓄積部２５を具備する。
【００３４】
自然言語処理部２２は、辞書情報格納手段２２１、文分割制御手段２２２、処理結果構成手段２２３を具備する。
【００３５】
文分割制御手段２２２は、要素分割手段２２２１、要素連結手段２２２２、文字列取得手段２２２３を具備する。
【００３６】
第一入力受付部１１は、ユーザからの入力を受け付ける。入力されるのは、チャットの開始指示、終了指示などの指示や、対話文などである。対話文は、１以上の文である。文は、完全な文であるとは限らず、口語調の文が含まれることは言うまでもない。対話文などの入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。また、対話文の入力手段は、マイクでも良い。かかる場合、対話文の入力は音声入力である。対話文を音声で入力する場合、第一入力受付部１１または、その他の装置や手段（対話コーパス生成装置２でも良い）は、図示しない音声認識手段を具備する。第一入力受付部１１は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【００３７】
第一送信部１２は、第一入力受付部１１が受け付けた対話文を、対話コーパス生成装置２に送信する。また第一送信部１２は、第一入力受付部１１が受け付けた開始指示、終了指示などの指示も、対話コーパス生成装置２に送信する。第一送信部１２は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【００３８】
第一受信部１３は、対話コーパス生成装置２から、第二端末装置３のユーザが入力した対話文を受信する。また、第一受信部１３は、開始指示の送信に対応して、対話コーパス生成装置２から、チャットシステムの画面の情報（例えば、ＨＴＭＬで記述されている）を受信する。第一受信部１３は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【００３９】
第一出力部１４は、第一入力受付部１１が受け付けた対話文、第一受信部１３が受信した対話文を出力する。また、第一出力部１４は、チャットシステムの画面を出力する。ここで、出力とは、通常、ディスプレイへの表示である。第一出力部１４は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。第一出力部１４は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【００４０】
格納部２０は、後述する対話連係情報や対話文を格納し得る。格納部２０は、ハードディスクや光ディスク等の不揮発性の記録媒体が好適であるが、ＲＡＭ等の揮発性の記録媒体でも実現可能である。
【００４１】
対話文受付部２１は、二人のユーザから入力される連続した対話文であり、第一のユーザから入力された第一対話文と、当該第一対話文の入力後に、第二のユーザから入力された第二対話文と、当該第二対話文の入力後に、第一のユーザから入力された第三対話文を受け付ける。ここでの受け付けとは、通常、受信である。ただし、対話コーパス生成装置２がスタンドアロンで動作した場合は、受け付けとは、手入力された対話文の取得や、記憶媒体からの読み出しなどである。また、対話文とは、１以上の文を含む。対話文受付部２１は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。なお、対話文受付部２１は、３以上のユーザからの対話文を受け付けても良い。
【００４２】
自然言語処理部２２は、対話文受付部２１が受け付けた対話文のうち、少なくとも一のユーザから入力された対話文を自然言語処理し、少なくとも一の用語を有する処理結果を取得する。自然言語処理部２２は、例えば、いわゆる形態素解析を行い、名詞のみを用語として取得する処理を行っても良い。また、自然言語処理部２２は、例えば、いわゆる形態素解析を行い、重要語を取得する処理を行っても良い。一の重要語を選択する技術は公知技術であるので、説明を省略する。形態素解析処理を行うソフトウェアとして、ChaSen（ＵＲＬ：「http://chasen-legacy.sourceforge.jp/参照）などがある。形態素解析処理は公知技術であるので、説明を省略する。また、複数の用語から一の重要語を選択する技術は、例えば、専門用語を抽出するソフトウェア「TermExtract」（ＵＲＬ「http://gensen.dl.itc.u-tokyo.ac.jp/」参照）などがある。さらに、自然言語処理部２２は、形態素解析を用いない、機能素解析という自然言語解析の手法を用いて、自然言語処理を行っても良い。つまり、自然言語処理部２２は、後述する辞書情報格納手段２２１、文分割制御手段２２２、処理結果構成手段２２３により、機能素解析を行い、処理結果を取得しても良い。なお、処理結果とは、名詞だけでも良いし、後述する「主題」と「状態」の２つの用語でも良いし、後述する「主題」「副題」「動作状態」の３つの用語でも良い。自然言語処理部２２は、通常、ＭＰＵやメモリ等から実現され得る。自然言語処理部２２の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４３】
辞書情報格納手段２２１は、辞書情報を１以上格納している。辞書情報とは、第一文字列と、機能語情報と、前接続記号と、後接続記号とを対に有する情報である。第一文字列とは、「は」「が」などの機能を示す文字列（１文字でも良い）である。機能語情報とは、文中における第一文字列の機能または種類を特定する情報である。前接続記号とは、第一文字列の前に接続され得る文字列の種類を特定する情報である。後接続記号とは、第一文字列の後ろに接続され得る文字列の種類、または区切りであることを示す記号であり、当該記号により区切られた文中における第二文字列の種類を特定する情報である。辞書情報格納手段２２１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００４４】
文分割制御手段２２２は、対話文受付部２１が受け付けた対話文のうち、少なくとも一のユーザから入力された対話文から、第二文字列と第二文字列の種類を特定する情報を取得する。さらに具体的には、文分割制御手段２２２は、対話文受付部２１が受け付けた対話文のうち、少なくとも一のユーザから入力された対話文から、区切りであることを示す後接続記号に対する第一文字列を取り出し、当該第一文字列をキーにして、対話文を構成する文を２以上の文字列である２以上の第二文字列に区切り、当該第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、第二文字列の種類を特定する情報を取得し、当該第二文字列と第二文字列の種類を特定する情報を取得する。文分割制御手段２２２は、通常、ＭＰＵやメモリ等から実現され得る。文分割制御手段２２２の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４５】
要素分割手段２２２１は、対話文を構成する文を以下の方法で要素に分割する。具体的には、要素分割手段２２２１は、対話文を構成する文の先頭から予め決められたサイズ（ｎ文字[ｎは２以上の整数]）の第三文字列を切り出し、切り出した第三文字列を構成する文字列であって、先頭からｎ文字の文字列から順に、辞書情報格納手段２２１に当該文字列が存在するか否かを判断し、ｎ文字の文字列が存在しない場合には、先頭から（ｎ−１）文字の文字列が辞書情報格納手段２２１に存在するか否かを判断し、かかる判断を、１文字ずつ文字数を減らして、文字列が存在するまで行い、または、文字列が存在しない場合には、先頭から１文字になるまでかかる判断を行い、文字列が存在すると判断した場合には、当該文字列に対応する機能語情報と前接続記号と後接続記号とを、辞書情報格納手段２２１から読み出し、読み出した機能語情報と前接続記号と後接続記号とを当該文字列に付与し、文字列が存在しない場合には、１文字の文字列に対して未知語であることを示す情報である未知語情報を付与する。要素分割手段２２２１は、通常、ＭＰＵやメモリ等から実現され得る。要素分割手段２２２１の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４６】
要素連結手段２２２２は、文分割制御手段２２２が分割した要素の中で、連結可能な要素等を一つの文字列にまとめて、第二文字列を複数、取得する。第二文字列は、連結可能な要素等をまとめた文字列である。さらに具体的には、要素連結手段２２２２は、要素分割手段２２２１が未知語情報を付与した連続する未知語であり、ひらがなの文字を連結し文字列を構成し、かつ連続する未知語であり、ひらがなではない文字を連結し文字列を構成し、連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報を付与し、隣接する２つの、要素分割手段前記が分割した要素またはまとまり情報を読み出し、当該読み出した要素またはまとまり情報のうち、前出の要素またはまとまり情報の後接続記号と、後出の要素またはまとまり情報の前接続記号から、前出の要素またはまとまり情報と後出の要素またはまとまり情報が連結可能であるか否かを判断し、連結可能な要素またはまとまり情報を一つの文字列にまとめて、当該まとめた文字列である第二文字列を複数、取得する。要素連結手段２２２２は、通常、ＭＰＵやメモリ等から実現され得る。要素連結手段２２２２の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４７】
文字列取得手段２２２３は、複数の各第二文字列の種類を特定する情報と、当該複数の各第二文字列を対にした複数の対の情報を取得し、メモリ上に配置する。具体的には、文字列取得手段２２２３は、要素連結手段２２２２が取得した複数の各第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記各第二文字列の種類を特定する情報を決定し、当該複数の各第二文字列の種類を特定する情報と、当該複数の各第二文字列を対にした複数の対の情報をメモリ上に配置する。文字列取得手段２２２３は、通常、ＭＰＵやメモリ等から実現され得る。文字列取得手段２２２３の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４８】
処理結果構成手段２２３は、文分割制御手段２２２が取得した２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対に有する処理結果を取得する。また、さらに好適には、処理結果構成手段２２３は、主題に対応する第二文字列、副題に対応する第二文字列、および動作状態に対応する第二文字列を有する処理結果を取得する。動作状態とは、動作状態という区分の文字列でも良いし、動作という区分の文字列でも良いし、状態という区分の文字列でも良い。処理結果構成手段２２３は、通常、ＭＰＵやメモリ等から実現され得る。処理結果構成手段２２３の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４９】
対話連係情報生成部２３は、処理結果と対話文受付部２１が受け付けた対話文、または処理結果から、対話文の繋がりに関する情報である対話連係情報を生成する。対話連係情報は、例えば、第一ユーザが入力した応答文（第一対話文）、その応答文の入力後に第二ユーザが入力した問いかけ文（第二対話文）、その問いかけ文の入力後に第一ユーザが入力した応答文（第三対話文）の３つの文を、順序の情報付きで有する情報である。対話連係情報は、例えば、第一対話文を数値化した第一対話情報、第二対話文を数値化した第二対話情報、第三対話文を数値化した第三対話情報を、順序の情報付きで有する情報である。なお、文を数値化する処理は公知技術であるので、説明を省略する。かかる処理は、例えば、ハッシュキーの生成処理である。ハッシュキーの生成処理は、例えば、文字列を折りたたんで、所定サイズの数値にする処理である。また、ハッシュキーの生成処理は、例えば、文字列を数値化したのち、所定の値で除算し、その余りの値を取得する処理である。対話連係情報が、例えば、第一対話情報、第二対話情報、第三対話情報を有し、例えば、一の第二対話情報に連結される第三対話情報が複数存在する場合、各第三対話情報は、優先度情報をも有しても良い。優先度情報とは、選択される場合の優先度の情報である。なお、優先度情報をも有しても良いのは、第一対話情報、第二対話情報も同様である。
【００５０】
対話連係情報生成部２３は、第一対話文および第一対話文に対応する１以上の第二文字列を組み合わせた２以上の第一対話情報を生成し、第二対話文および第二対話文に対応する１以上の第二文字列を組み合わせた２以上の第二対話情報を生成し、第三対話文および第三対話文に対応する１以上の第二文字列を組み合わせた２以上の第三対話情報を生成しても良い。また、対話連係情報生成部２３は、２以上の第一対話情報、２以上の第二対話情報、２以上の第三対話情報のうち、少なくとも１種類の各対話情報に対して、選択される場合の優先度の情報である優先度情報を生成し、当該優先度情報を各対話情報に対して付与しても良い。さらに、対話連係情報生成部２３は、第一対話情報、第二対話情報、および第三対話情報を数値化しても良い。対話連係情報生成部２３は、通常、ＭＰＵやメモリ等から実現され得る。対話連係情報生成部２３の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００５１】
対話連係情報蓄積部２４は、対話連係情報生成部２３が生成した対話連係情報を、格納部２０に蓄積する。また、対話連係情報蓄積部２４は、第一対話情報、第二対話情報、および第三対話情報を有する対話連係情報を２以上、格納部２０に蓄積することは好適である。さらに、対話連係情報蓄積部２４は、優先度情報を有する２以上の対話連係情報を格納部２０に蓄積することは好適である。対話連係情報蓄積部２４は、通常、ＭＰＵやメモリ等から実現され得る。対話連係情報蓄積部２４の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００５２】
対話文蓄積部２５は、第一対話情報を構成する元になった対話文である第一対話文、第二対話情報を構成する元になった対話文である第二対話文、第三対話情報を構成する元になった対話文である第三対話文のうちの少なくとも１以上の対話文を、それぞれ第一対話情報、第二対話情報、第三対話情報に対応付けて、格納部２０に蓄積する。対話文蓄積部２５は、通常、ＭＰＵやメモリ等から実現され得る。対話文蓄積部の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００５３】
次に、対話コーパス生成システムの動作について説明する。まず、第一端末装置１の動作について説明する。第一端末装置１の第一入力受付部１１は、チャットの開始指示を受け付ける。そして、第一送信部１２は、開始指示を対話コーパス生成装置２に送信する。そして、当該開始指示の送信に対応して、第一受信部１３は、チャットシステムの画面の情報を受信し、第一出力部１４は、チャットシステムの画面を出力する。そして、第一入力受付部１１は、ユーザから、対話文の入力を受け付ける。次に、第一送信部１２は、第一入力受付部１１が受け付けた対話文を、対話コーパス生成装置２に送信する。また、第一受信部１３は、第二端末装置３のユーザが入力した対話文を受信し、当該対話文を、第一出力部１４は、出力する。
【００５４】
次に、対話コーパス生成装置の動作について図３から図８のフローチャートを用いて説明する。
【００５５】
（ステップＳ３０１）対話文受付部２１は、第一端末装置１または、第二端末装置３から対話文を受け付けたか否かを判断する。対話文を受け付ければステップＳ３０２に行き、対話文を受け付けなければステップＳ３０１に戻る。
【００５６】
（ステップＳ３０２）自然言語処理部２２は、ステップＳ３０１で受け付けた対話文が２以上の文を含む場合に、当該対話文が２以上の文に分割し、それぞれの文をメモリ上に配置する。なお、対話文が一の文のみ含む場合、本ステップの分割処理は不要である。また、対話文が複数の文を含む場合に、対話文を２以上の文を分割する処理は公知技術である。
【００５７】
（ステップＳ３０３）自然言語処理部２２は、カウンタｉに１を代入する。
【００５８】
（ステップＳ３０４）自然言語処理部２２は、ステップＳ３０２でメモリ上に配置した文の中に、ｉ番目の文が存在するか否かを判断する。ｉ番目の文が存在すればステップＳ３０５に行き、ｉ番目の文が存在しなければステップＳ３０７に行く。
【００５９】
（ステップＳ３０５）自然言語処理部２２は、ｉ番目の文に対して自然言語処理を行う。自然言語処理の具体例について、図４から図７のフローチャートを用いて説明する。
【００６０】
（ステップＳ３０６）自然言語処理部２２は、カウンタｉを、１インクリメントする。ステップＳ３０４に戻る。
【００６１】
（ステップＳ３０７）対話連係情報生成部２３は、ステップＳ３０６における自然言語処理部２２の処理結果を用いて、対話連係情報生成処理を行う。対話連係情報生成処理の具体例について、図８のフローチャートを用いて説明する。
【００６２】
（ステップＳ３０８）対話文蓄積部２５は、ステップＳ３０１で受け付けた対話文を取得する。
【００６３】
（ステップＳ３０９）対話連係情報蓄積部２４は、ステップＳ３０７で生成し、取得した対話連係情報を、格納部２０に蓄積する。
【００６４】
（ステップＳ３１０）対話文蓄積部２５は、ステップＳ３０８で取得した対話文を、格納部２０に蓄積する。ステップＳ３０１に戻る。
【００６５】
なお、図３のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００６６】
次に、ステップＳ３０５の自然言語処理の具体例について、図４から図７のフローチャートを用いて説明する。
【００６７】
（ステップＳ４０１）要素分割手段２２２１は、カウンタｉに１を代入する。
【００６８】
（ステップＳ４０２）要素分割手段２２２１は、解析対象の文の中に、ｉ番目の文字が存在するか否かを判断する。ｉ番目の文字が存在すればステップＳ４０３に行き、ｉ番目の文字が存在しなければステップＳ４１３に行く。
【００６９】
（ステップＳ４０３）要素分割手段２２２１は、解析対象の文の中の、ｉ番目の文字から（ｉ＋ｎ）番目の文字までの文字列を取得し、バッファ上に置く。ｎは、固定の数であり、例えば、「５」である。なお、処理対象の文に、ｉ番目の文字から（ｉ＋ｎ）番目の文字まで存在しない場合、要素分割手段２２２１は、ｉ番目の文字から文の最終文字までを取得し、バッファ上に置く。つまり、要素分割手段２２２１は、ｉ番目の文字から（ｉ＋ｎ）番目以下の文字までの文字列を取得し、バッファ上に置く。
【００７０】
（ステップＳ４０４）要素分割手段２２２１は、ステップＳ４０３でバッファ上に配置した文字列を、辞書情報格納手段２２１に検索しにいく。
【００７１】
（ステップＳ４０５）要素分割手段２２２１は、ステップＳ４０４における検索結果において、ステップＳ４０３でバッファ上に配置した文字列が、辞書情報格納手段２２１に存在したか否かを判断する。文字列が存在すればステップＳ４１０に行き、文字列が存在しなければステップＳ４０６に行く。なお、文字列が存在する場合とは、バッファ上に配置した文字列と一致する文字列が、辞書情報が有する第一文字列に存在する場合である。
【００７２】
（ステップＳ４０６）要素分割手段２２２１は、ステップＳ４０３でバッファ上に配置した文字列の長さが、1文字であるか否かを判断する。1文字であればステップＳ４０８に行き、1文字でなければステップＳ４０７に行く。
【００７３】
（ステップＳ４０７）要素分割手段２２２１は、ステップＳ４０３でバッファ上に配置した文字列から最後の文字を削除し、一文字少なくして、ｉ番目から文字列を取得し、バッファ上に配置する。なお、要素分割手段２２２１は、単に、バッファ上の最終文字を消去するだけでも良い。ステップＳ４０４に戻る。
【００７４】
（ステップＳ４０８）要素分割手段２２２１は、ｉ番目の文字に未知語であることを示す情報である「未知語」フラグを付与する。「「未知語」フラグを付与する」とは、ｉ番目の文字が他の文字または文字列と区別できれば良く、例えば、他の文字または文字列に何らかのフラグを付与し、未知語であるｉ番目の文字には、何も付与しなくても良い。さらに、未知語を格納するバッファがあり、そのバッファに未知語であるｉ番目の文字を書き込む処理も、「未知語」フラグを付与する処理とする。
【００７５】
（ステップＳ４０９）要素分割手段２２２１は、カウンタｉを１、インクリメントする。ステップＳ４０２に戻る。
【００７６】
（ステップＳ４１０）要素分割手段２２２１は、バッファ上に配置した文字列と一致する第一文字列と対になる機能語情報、前接続記号、および後接続記号を、辞書情報格納手段２２１から読み出し、メモリ上に配置する。
【００７７】
（ステップＳ４１１）要素分割手段２２２１は、バッファ上に配置した文字列に対して、ステップＳ４１０で読み出した機能語情報、前接続記号、および後接続記号を付与する。
【００７８】
（ステップＳ４１２）要素分割手段２２２１は、カウンタｉに、「ｉ＋文字列の文字数」を代入する。ステップＳ４０２に戻る。なお、「文字列の文字数」の「文字列」は、バッファ上に配置した文字列である。
【００７９】
（ステップＳ４１３）要素連結手段２２２２は、要素分割手段２２２１が分割した文字列のうち、連結可能な文字列を連結する。かかる連結処理について、図５のフローチャートを用いて、詳細に説明する。
【００８０】
（ステップＳ４１４）文字列取得手段２２２３は、要素連結手段２２２２が取得した複数の各第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、各第二文字列の種類を特定する情報を決定し、当該複数の各第二文字列の種類を特定する情報と、当該複数の各第二文字列を対にした複数の対の情報をメモリ上に配置する。かかる処理（文分割処理、という）について、図６のフローチャートを用いて、詳細に説明する。
【００８１】
（ステップＳ４１５）文字列取得手段２２２３は、ステップＳ４１６で取得した２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対にして、メモリ上に配置する。かかるメモリ配置処理について、図７のフローチャートを用いて、詳細に説明する。処理を終了する。
【００８２】
次に、ステップＳ４１３の連結処理について、図５のフローチャートを用いて、詳細に説明する。
【００８３】
（ステップＳ５０１）要素連結手段２２２２は、要素分割手段２２２１が未知語フラグ（未知語情報の一種）を付与した連続する未知語であり、ひらがなの文字を連結し文字列を構成する。また、要素連結手段２２２２は、かつ要素分割手段２２２１が未知語フラグを付与した連続する未知語であり、ひらがなではない文字を連結し文字列を構成する。
【００８４】
（ステップＳ５０２）要素連結手段２２２２は、ステップＳ５０１で連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報を付与する。まとまり情報は、機能語情報の一種である。まとまり情報は、文字列に付与される未知語フラグでも良い。
【００８５】
（ステップＳ５０３）要素連結手段２２２２は、カウンタｉに１を代入する。
【００８６】
（ステップＳ５０４）要素連結手段２２２２は、処理対象の文中に、（ｉ＋１）番目の、まとめられた文字列（１文字の場合もある）が存在するか否かを判断する。（ｉ＋１）番目の文字列が存在すればステップＳ５０５に行き、（ｉ＋１）番目の文字列が存在しなければ上位関数にリターンする。
【００８７】
（ステップＳ５０５）要素連結手段２２２２は、ｉ番目の文字列の後接続記号と、（ｉ＋１）番目の文字列の前接続記号を読み出し、メモリ上に配置する。なお、ｉ番目の文字列の後接続記号は、ｉ番目の文字列の最後の第一文字列と対になる後接続記号である。また、（ｉ＋１）番目の文字列の前接続記号は、（ｉ＋１）番目の文字列の先頭の第一文字列と対になる前接続記号である。
【００８８】
（ステップＳ５０６）要素連結手段２２２２は、ステップＳ５０５で読み出したｉ番目の文字列の後接続記号と、（ｉ＋１）番目の文字列の前接続記号から、ｉ番目の文字列と（ｉ＋１）番目の文字列が連結可能であるか否かを判断する。なお、２つの連続する文字列が連結可能であるか否かは、前出の後接続記号と、後出の前接続記号から判断可能であり、要素連結手段２２２２は、例えば、連結可能な２つの文字列の後接続記号と前接続記号の組の情報（ルール）を保持している。
【００８９】
（ステップＳ５０７）要素連結手段２２２２は、ステップＳ５０６における判断結果が、連結可能である、との判断であればステップＳ５０８に行き、連結可能でない、との判断であればステップＳ５０９に行く。
【００９０】
（ステップＳ５０８）要素連結手段２２２２は、ｉ番目の文字列と、（ｉ＋１）番目の文字列を連結する。文字列の連結とは、連結した文字列をバッファに書き込む処理でも良いし、２つの文字列をリンク付けする処理等でも良い。
【００９１】
（ステップＳ５０９）要素連結手段２２２２は、カウンタｉを１、インクリメントする。ステップＳ５０４に行く。
【００９２】
次に、ステップＳ４１４の文分割処理について、図６のフローチャートを用いて、詳細に説明する。
【００９３】
（ステップＳ６０１）文字列取得手段２２２３は、カウンタｉに１を代入する。
【００９４】
（ステップＳ６０２）文字列取得手段２２２３は、処理対処の文中に、ｉ番目の第二文字列が存在するか否かを判断する。ｉ番目の第二文字列が存在すればステップＳ６０３に行き、ｉ番目の第二文字列が存在しなければ上位関数にリターンする。
【００９５】
（ステップＳ６０３）文字列取得手段２２２３は、ｉ番目の第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、各第二文字列の種類を特定する情報を決定する。具体的には、例えば、第二文字列の種類は、例えば、「主題」、「副題」、「動作」、または「状態」であり、第二文字列の最後尾の第一文字列に対応する機能語情報が「動作」または「状態」であれば、第二文字列の種類は「動作」または「状態」であると、文字列取得手段２２２３は決定する。また、第二文字列の最後尾の第一文字列に対応する後接続記号が「主題」または「副題」を示す記号である場合は、第二文字列の種類は「主題」または「副題」であると、文字列取得手段２２２３は決定する。そして、文字列取得手段２２２３は、ｉ番目の第二文字列と、第二文字列の種類を特定する情報を取り出し、メモリ上に配置する。
【００９６】
（ステップＳ６０４）文字列取得手段２２２３は、カウンタｉを１、インクリメントする。ステップＳ６０２に戻る。
【００９７】
次に、ステップＳ４１５のメモリ配置処理について、図７のフローチャートを用いて、詳細に説明する。
【００９８】
（ステップＳ７０１）文字列取得手段２２２３は、出力する文構造の情報を取得する。出力する文構造の情報は、例えば、文字列取得手段２２２３があらかじめ格納しており、この情報を文字列取得手段２２２３が読み出す。また、出力する文構造の情報とは、例えば、「主題，副題，動作｜状態」である。これは、「主題を示す文字列」、「副題を示す文字列」，「動作を示す文字列」または「状態を示す文字列」の順で出力することを示す。「主題」、「副題」、「動作」、「状態」などは、文中の文字列の機能や、意義などを示すことを示す。また、「主題」、「副題」、「動作」、「状態」などを、以下、適宜、文要素という。また、出力する文構造の情報の他の例は、「主題，状態」である。これは、「主題を示す文字列」、「状態を示す文字列」の順で出力することを示す。
【００９９】
（ステップＳ７０２）文字列取得手段２２２３は、カウンタｉに１を代入する。
【０１００】
（ステップＳ７０３）文字列取得手段２２２３は、ステップＳ７０１で読み出した文構造の情報に、ｉ番目の文要素が存在するか否かを判断する。ｉ番目の文要素が存在すればステップＳ７０４に行き、ｉ番目の文要素が存在しなければ上位関数にリターンする。
【０１０１】
（ステップＳ７０４）文字列取得手段２２２３は、ｉ番目の文要素（例えば、「主題」）の情報を読み出し、当該文要素に対応する種類（例えば、「主題」）を示す第二文字列を検索する。
【０１０２】
（ステップＳ７０５）文字列取得手段２２２３は、文要素に対応する種類（例えば、「主題」）を示す第二文字列が存在すればステップＳ７０６に行き、存在しなければステップＳ７０７に行く。
【０１０３】
（ステップＳ７０６）文字列取得手段２２２３は、文要素に対応する種類（例えば、「主題」）を示す第二文字列を取得し、当該第二文字列と、文要素に対応する種類を対にしてバッファに追記する。
【０１０４】
（ステップＳ７０７）文字列取得手段２２２３は、カウンタｉを１、インクリメントする。ステップＳ７０３に戻る。
【０１０５】
なお、図７のフローチャートにおいて、文構造の情報に従って、第二文字列の順序を入れ替えてメモリ上に配置したが、かかる文構造の情報に従って第二文字列の順序を入れ替える処理は必須の処理ではない。第二文字列と、その種類を対にして記憶すれば良い。
【０１０６】
次に、ステップＳ３０７の対話連係情報生成処理について、図８のフローチャートを用いて、詳細に説明する。
【０１０７】
（ステップＳ８０１）対話連係情報生成部２３は、カウンタｉに１を代入する。
【０１０８】
（ステップＳ８０２）対話連係情報生成部２３は、ｉ番目の対話情報のパターンが存在するか否かを判断する。対話連係情報生成部２３は、１以上の対話情報のパターンを図示しない記憶媒体に保持している、とする。対話情報のパターンとは、例えば、「主題，状態」「主題，副題，状態」「対話文全体」「主題」などである。また、対話情報のパターンに対応付けて、優先度情報が格納されている。ｉ番目の対話情報のパターンが存在すればステップＳ８０３に行き、ｉ番目の対話情報のパターンが存在しなければ上位処理にリターンする。
【０１０９】
（ステップＳ８０３）対話連係情報生成部２３は、図示しない記憶媒体から、ｉ番目の対話情報のパターンを取得する。
【０１１０】
（ステップＳ８０４）対話連係情報生成部２３は、受け付けた対話文、または自然言語処理部２２における処理結果から、ステップＳ８０３で取得した対話情報のパターンに合致するように、対話情報を構成する。対話連係情報生成部２３は、例えば、ｉ番目の対話情報のパターンが「主題，状態」である場合、処理結果から「主題」に対応する文字列と、「状態」に対応する文字列を取得し、メモリ上に配置する。
【０１１１】
（ステップＳ８０５）対話連係情報生成部２３は、ステップＳ８０４で対話情報を取得できたか否かを判断する。対話情報を取得できればステップＳ８０６に行き、対話情報を取得できなければステップＳ８１２に行く。
【０１１２】
（ステップＳ８０６）対話連係情報生成部２３は、ｉ番目の対話情報のパターンに対応する優先度情報を、記憶媒体から取得する。
【０１１３】
（ステップＳ８０７）対話連係情報生成部２３は、対話文の発言者の識別子（発言者識別子）と、対話の相手を識別する識別子（相手識別子）を取得する。なお、発言者識別子、相手識別子は、例えば、ユーザのＩＤ（氏名、番号、メールアドレスなど）、端末装置のＩＤ（ＩＰアドレス、ＭＡＣアドレスなど）である。発言者識別子、相手識別子は、チャットの開始の段階で、対話コーパス生成装置２は取得している、とする。
【０１１４】
（ステップＳ８０８）対話連係情報生成部２３は、ステップＳ８０４で取得した対話情報を数値に変更する。
【０１１５】
（ステップＳ８０９）対話連係情報生成部２３は、直前の対話情報が存在するか否かを判断する。なお、直前の対話情報が存在しない場合とは、チャットの最初の段階である。直前の対話情報が存在すればステップＳ８１０に行き、直前の対話情報が存在しなければステップＳ８１３に行く。
【０１１６】
（ステップＳ８１０）対話連係情報生成部２３は、直前の対話情報、または直前の対話情報とさらに前の対話情報をすべて取得する。なお、ここで取得できる対話情報は、複数存在する場合がある。
【０１１７】
（ステップＳ８１１）対話連係情報生成部２３は、ステップＳ８１０で取得したすべての対話情報おのおのに対して、新しい対話情報等をリンク付ける。なお、対話情報等とは、例えば、対話情報と優先度情報と発言者識別子と相手識別子である。なお、対話情報等は、優先度情報と発言者識別子と相手識別子を含まなくても良い。また、リンク付ける処理は、ポインタを生成する処理でも良いし、両者を含むレコードを構成する処理などでも良い。
【０１１８】
（ステップＳ８１２）対話連係情報生成部２３は、カウンタｉを１、インクリメントする。ステップＳ８０２に戻る。
【０１１９】
（ステップＳ８１３）対話連係情報生成部２３は、新しい対話情報をメモリに一時格納する。なお、この対話情報は、次の対話情報にリンク付けられる。ステップＳ８１２に行く。
【０１２０】
なお、図８のフローチャートにおいて、一の対話文に対して、複数の対話情報のパターンに対応する対話情報を構成したが、一の対話文に対して一の対話情報を構成するようにしても良い。
【０１２１】
また、図８のフローチャートにおいて、優先度情報と発言者識別子と相手識別子を取得することは必須ではない。
【０１２２】
さらに、図８のフローチャートにおいて、対話情報を数値に変更する処理は必須ではない。
【０１２３】
以下、本実施の形態における対話コーパス生成システムの具体的な動作について説明する。対話コーパス生成システムの概念図は図１である。ここで、対話コーパス生成システムを構成する第一端末装置１と第二端末装置３は、ユーザが入力した対話文を、相互に、対話コーパス生成装置２経由で送受信し、チャット機能を実現する、とする。チャット機能、チャットシステムについては、公知技術であるので詳細な説明を諸略する。なお、ユーザが入力した対話文は、必ずしも対話コーパス生成装置２経由で、相手の端末装置に送信される必要はない。ユーザが入力した対話文は、直接的に、相手の端末装置に送信されても良いし、他の装置経由で相手の端末装置に送信されても良い。
【０１２４】
以下、対話コーパス生成装置２が、第一端末装置１と第二端末装置３から対話文を受信し、対話コーパスを生成する。かかる対話コーパスを生成する処理について、詳細に説明する。
（具体例１）
【０１２５】
まず、機能素解析の手法を用いた言語処理により、対話コーパスを生成する処理について説明する。
【０１２６】
辞書情報格納手段２２１は、図９に示す辞書情報管理表を格納している。辞書情報管理表は、「第一文字列」「前接続記号」「後接続記号」「機能語情報」の属性を有するレコードを１以上格納している。
【０１２７】
図９の「前接続記号」の「−＆」は、前に、未知語情報で識別される未知語や、「ｏｂｊｅｃｔ」で識別される対象物などが連結されることを示す。「前接続記号」は、他にも「＆＆」などがあり、「＆＆」は、前に、「名前」や、未知語や、「ｏｂｊｅｃｔ」で識別される対象物などが連結されることを示す。「名前」とは、登録している人や物などの名前である。
【０１２８】
また、「後接続記号」の「ｓ％」は、区切りになり得て、「副題」となり得ることを示す。また、「後接続記号」の「＆＆」は、後に、「名前」や、未知語情報で識別される未知語や、「ｏｂｊｅｃｔ」で識別される対象物などが連結されることを示す。また、「後接続記号」の「ｍ％」は、区切りになり得て、「主題」となり得ることを示す。また、「後接続記号」の「ｎ％」は、区切りになり得て、「主題」となり得ることを示す。「ｍ％」と「ｎ％」は、両方とも「主題」となり得るが、「ｍ％」の方が主題になる優先度は高い、ことを意味する。また、「後接続記号」の「−−」は、「ａｃｔｉｏｎ」で識別される文字列が連結されることを示す。また、「後接続記号」の「％=」は、区切りになり得て、かつ、「ｏｂｊｅｃｔ」で識別される対象物や「名前」などが連結されることを示す。また、「後接続記号」の「ｏ％」は、区切りになり得て、「準主題」となり得ることを示す。また、「後接続記号」の「％％」は、強制的な区切りであることを示す。
【０１２９】
また、「機能語情報」の「ｏｂｊｅｃｔ」は、対象物を示す。また、「機能語情報」の「ａｃｔｉｏｎ」は、動作を示す。さらに、「機能語情報」の「ｓｔａｔｅ」は、状態を示す。
【０１３０】
対話連係情報生成部２３は、図１０に示す対話情報パターン管理表を格納している。対話情報パターン管理表は、「ＩＤ」「対話情報パターン」「優先度情報」の属性値を有するレコードを１以上格納している。「対話情報パターン」は、対話情報を構成するためのパターンの情報であり、「文全体」は、対話文を構成する文を、対話情報としてそのまま取得することを示す。また、「「主題」「副題」「動作／状態」」は、対話文を構成する文から、対話情報として「主題」「副題」、および「動作／状態」を取得することを示す。「動作／状態」は、「動作」または「状態」のどちらでも良いことを示す。また、「優先度情報」は、バーチャルなチャットシステム等で対話文が選択される場合の優先度を示す。ここでは、優先度は、小さな数値ほど高い、とする。
【０１３１】
かかる状況において、第一端末装置１のユーザＡと、第二端末装置３のユーザＢは、チャットを楽しんでいる、とする。また、ユーザＡの識別子は「Ａ」、ユーザＢの識別子は「Ｂ」であり、チャットシステム起動時に、各ユーザから入力され、対話コーパス生成装置２は、各識別子を保持している、とする。また、対話コーパス生成装置２が受け付ける対話文に対して、各識別子は付加されている、とする。なお、識別子は、ＩＰアドレスなどでも良いことは言うまでもない。
【０１３２】
図１１は、ユーザＡと、ユーザＢの対話の内容の例である。かかる場合、対話コーパス生成装置２の対話文受付部２１は、まず、ユーザＡの第一端末装置１から送信されてきた対話文「誰と誰が行った？」を受信する。
【０１３３】
そして、自然言語処理部２２は、以下のように機能素解析し、処理結果をメモリ上に配置する。つまり、自然言語処理部２２は、ユーザＡからの対話文「誰と誰が行った？」を以下のように処理し、処理結果を得る。自然言語処理部２２は、対話文が２以上の文を含む場合に、当該対話文が２以上の文に分割し、それぞれの文をメモリ上に配置するが、ここでは、対話文は１文であるので、分割の処理は行わない。そして、要素分割手段２２２１は、解析対象の文「誰と誰が行った？」の中の、１番目の文字から６番目の文字（ここでは、上記ステップＳ４０３におけるｎは「５」である、とする）までの文字列「誰と誰が行っ」を取得し、バッファ上に置く（図１２（１）参照）。次に、要素分割手段２２２１は、バッファ上に配置した文字列「誰と誰が行っ」を、辞書情報格納手段２２１に検索しにいく。要素分割手段２２２１は、文字列「誰と誰が行っ」が、図９の辞書情報管理表に存在しない、と判断する。次に、要素分割手段２２２１は、文字列「誰と誰が行っ」の長さが、1文字であるか否かを判断する。文字列「誰と誰が行っ」は、1文字ではないので、要素分割手段２２２１は、先の文字列より１文字少ない文字列「誰と誰が行」を構成し、バッファ上に置く（図１２の（２））。そして、要素分割手段２２２１は、文字列「誰と誰が行」を、辞書情報格納手段２２１に検索しにいく。同様に、文字列「誰と誰が行」に合致する第一文字列が、図９の辞書情報管理表に存在しない。そして、要素分割手段２２２１は、同様の処理により、１文字ずつ文字数を少なくして、辞書情報格納手段２２１に検索しにいく（図１２の（３）から（６））。そして、要素分割手段２２２１は、最後の文字「誰」も図９の辞書情報管理表に存在しない、と判断する。そして、要素分割手段２２２１は、文字「誰」に、未知語であることを示す情報である「未知語」フラグを付与する（図１２の（７））。なお、ここでの「未知語」フラグは、情報「未知語」である。
【０１３４】
次に、要素分割手段２２２１は、処理対象の文字列の先頭のポインタを１ずらす。そして、要素分割手段２２２１は、２番目の文字から６文字分の文字列「と誰が行った」を読み出し、バッファに配置する（図１２の（８））。そして、同様に、要素分割手段２２２１は、文字列「と誰が行った」を、辞書情報格納手段２２１に検索しにいく。同様に、文字列「と誰が行った」に合致する第一文字列が、図９の辞書情報管理表に存在しない。そして、要素分割手段２２２１は、同様の処理により、１文字ずつ文字数を少なくして、辞書情報格納手段２２１に検索しにいく（図１２の（９）から（１３））。そして、要素分割手段２２２１は、最後の文字「と」は、図９の辞書情報管理表に存在する、と判断する。そして、要素分割手段２２２１は、バッファ上に配置した文字列と一致する第一文字列「と」と対になる前接続記号「−＆」、後接続記号「ｓ％」、および機能語情報「ｏｂｊｅｃｔ」を、辞書情報格納手段２２１から読み出し、メモリ上に配置する。そして、要素分割手段２２２１は、バッファ上に配置した文字列「と」に対して、読み出した前接続記号「−＆」、後接続記号「ｓ％」、および機能語情報「ｏｂｊｅｃｔ」を付与する（図１２の（１４））。
【０１３５】
以上の処理を繰り返し、処理対象の文「誰と誰が行った？」について、図１２の（ｘ）のようなデータを得る。つまり、「誰」「誰」「行」に対して、「未知語」が付与される。また、「と」に対して、「−＆：ｓ％：ｏｂｊｅｃｔ」が付与される。また、「が」に対して、「−＆：ｎ％：ｏｂｊｅｃｔ」が付与される。また、「っ」に対して、「−＆：−−：ａｃｔｉｏｎ」が付与される。また、「た」に対して、「−＆：％＝：ａｃｔｉｏｎ」が付与される。さらに、「？」に対して、「：％％：」が付与される。「：％％：」は、後接続記号が「％％」であることを示す。後接続記号「％％」は、無条件に、後ろが区切られることを示す（図１２の（ｘ））。
【０１３６】
次に、要素連結手段２２２２は、要素分割手段２２２１が未知語フラグ「未知語」を付与した連続する未知語であり、ひらがなではない文字を連結しようとする。また、要素連結手段２２２２は、要素分割手段２２２１が未知語フラグ「未知語」を付与した連続する未知語であり、ひらがなの連続する文字を連結しようとする。ただし、ここでは、連結されるべき連続する未知語は存在しない。
【０１３７】
次に、要素連結手段２２２２は、図２４（ｘ）の各前後するまとまりの文字列（例えば、「誰」と「と」）が連結するか否かを判断し、連結するものは連結させる。
【０１３８】
例えば、「誰」と「と」は、「誰」が未知語で、「と」の前接続記号「−＆」により、要素連結手段２２２２は、連結すると判断する。なぜなら、前接続記号「−＆」は、前の未知語と連結するからである。そして、要素連結手段２２２２は、「誰と」に対して、「：ｓ％：ｏｂｊｅｃｔ」を付与する（図１２（ｘ＋１）参照）。「：ｓ％：ｏｂｊｅｃｔ」は、前接続記号はなし、後接続記号は「ｓ％」、機能語情報は「ｏｂｊｅｃｔ」であることを示す。
【０１３９】
また、要素連結手段２２２２は、同様に、「誰」と「と」が連結し、「行」「っ」および「た」が連結すると判断し、連結させる（図１２の（ｘ＋１））。以上の処理により、要素連結手段２２２２は、３つの第二文字列を得る（図１２（ｘ＋１）参照）。
【０１４０】
次に、文字列取得手段２２２３は、１番目の第二文字列「誰と」を取得し、当該第二文字列の最後尾の第一文字列「と」に対応する機能語情報「ｏｂｊｅｃｔ」または後接続記号「ｓ％」から、第二文字列の種類を「副題」であると、決定する。なお、ここでは、文字列取得手段２２２３は、後接続記号「ｓ％」から、第二文字列「誰と」の種類を「副題」であると、決定する（図１２の（ｘ＋２））。
【０１４１】
次に、文字列取得手段２２２３は、２番目の第二文字列「誰が」を取得し、当該第二文字列の最後尾の第一文字列「が」に対応する機能語情報「ｏｂｊｅｃｔ」または後接続記号「ｎ％」から、第二文字列の種類を「主題」であると、決定する。なお、ここでは、文字列取得手段２２２３は、後接続記号「ｎ％」から、第二文字列「誰が」の種類を「主題」であると、決定する（図１２の（ｘ＋２））。
【０１４２】
さらに、文字列取得手段２２２３は、３番目の第二文字列「行った」を取得し、当該第二文字列の最後尾の第一文字列「た」に対応する機能語情報「ａｃｔｉｏｎ」または後接続記号「％＝」から、第二文字列の種類を「動作」であると、決定する。なお、ここでは、文字列取得手段２２２３は、機能語情報「ａｃｔｉｏｎ」から、第二文字列「行った」の種類を「動作」であると、決定する（図１２の（ｘ＋２））。そして、文字列取得手段２２２３は、図１２（ｘ＋２）の情報（処理結果）を、メモリ上に配置する。以上の処理により、ユーザＡの１番目の対話文の自然言語処理が完了する。
【０１４３】
次に、対話連係情報生成部２３は、以下のように対話連係情報生成処理を行う。つまり、対話連係情報生成部２３は、図１０の対話情報パターン管理表から１番目の対話情報パターン「文全体」を読み出す。そして、対話連係情報生成部２３は、取得した対話情報パターン「文全体」に合致するように、対話文「誰と誰が行った？」を読み出し、当該対話文をそのまま対話情報として、メモリ上に追記する。次に、対話連係情報生成部２３は、１番目の対話情報のパターンに対応する優先度情報「１」を、図１０の対話情報パターン管理表から取得する。また、対話連係情報生成部２３は、対話文の発言者の識別子「Ａ」と、対話の相手を識別する識別子「Ｂ」を取得する。次に、対話連係情報生成部２３は、取得した対話情報を数値に変更する。ここでは、例えば、対話連係情報生成部２３は、ｓｔｒｉｎｇＴｏｉｎｔ（"誰と誰が行った？"）を実行し、数値「５８２５」を得た、とする。なお、ｓｔｒｉｎｇＴｏｉｎｔ（）は、引数の文字列を数値に変換するソフトウェアである、とする。次に、対話連係情報生成部２３は、直前の対話情報が存在しないと判断し、新しい対話情報をメモリに一時格納する。ここで、新しい対話情報は、「対話情報の番号：５８２５，対話情報：誰が誰と行った？：優先度情報：１，発言者ＩＤ：Ａ，相手ＩＤ：Ｂ」である。また、ここでの新しい対話情報は、直前の対話文が存在しないので、対話連係情報を構成する情報である。
【０１４４】
次に、対話文蓄積部２５は、受け付けた対話文「誰が誰と行った？」を取得する。そして、対話連係情報蓄積部２４は、取得した対話連係情報「対話情報の番号：５８２５，対話情報：誰が誰と行った？：優先度情報：１，発言者ＩＤ：Ａ，相手ＩＤ：Ｂ」を、格納部２０に蓄積する。また、対話文蓄積部２５は、取得した対話文「誰が誰と行った？」を、格納部２０に蓄積する。その結果、格納部２０には、図１３に示す問いかけデータ管理表の第１番目のレコードが格納される。また、格納部２０には、図１４に示す対話連係インデックス管理表の第１レコードの「直前応答番号：−，問いかけ番号：５８２５」の２つの属性値が格納される。
なお、対話連係インデックス管理表は、「ＩＤ」「直前応答番号」「問いかけ番号」「応答番号」の属性値を有するレコードを1以上、格納している。「ＩＤ」は、レコードを識別するＩＤである。「直前応答番号」「問いかけ番号」「応答番号」は、文字列（文）を数値化したデータである。また、「直前応答番号」「問いかけ番号」「応答番号」は、対話の繋がりを示し、それぞれ、例えば、Ｂさんの発話文である「直前の応答文」、その次のＡさんの発話文である「問いかけ文」、さらに次のＢさんの発話文である「応答文」に対応する番号である。この３つの属性値により、対話の繋がりを示している。さらに、対話連係インデックス管理表において、「応答番号」が示す応答文の次に、Ａさんの発話があれば、当該「応答番号」が、次のレコードの「直前応答番号」となり、Ａさんの発話に対応する番号が、そのレコードの「問いかけ番号」となる。
【０１４５】
次に、対話連係情報生成部２３は、図１０の対話情報パターン管理表から２番目の対話情報パターン「「主題」「副題」「動作／状態」」を読み出す。そして、対話連係情報生成部２３は、取得した対話情報パターン「「主題」「副題」「動作／状態」」に合致するように、「主題：誰が」「副題：誰と」「動作／状態：行った」を取得し、メモリ上に追記する。次に、対話連係情報生成部２３は、２番目の対話情報のパターンに対応する優先度情報「２」を、図１０の対話情報パターン管理表から取得する。また、対話連係情報生成部２３は、対話文の発言者の識別子「Ａ」と、対話の相手を識別する識別子「Ｂ」を取得する。次に、対話連係情報生成部２３は、取得した対話情報を数値に変更し、「２９１０」を得た、とする。次に、対話連係情報生成部２３は、直前の対話情報が存在しないと判断し、新しい対話情報をメモリに一時格納する。ここで、新しい対話情報は、「対話情報の番号：２９１０，対話情報：「主題：誰が」「副題：誰と」「動作／状態：行った」：優先度情報：２，発言者ＩＤ：Ａ，相手ＩＤ：Ｂ」である。また、ここでの新しい対話情報は、直前の対話文が存在しないので、対話連係情報を構成する情報である。
【０１４６】
次に、対話文蓄積部２５は、受け付けた対話文「誰が誰と行った？」を取得する。そして、対話連係情報蓄積部２４は、取得した対話連係情報「対話情報の番号：２９１０，対話情報：「誰が」「誰と」「行った」：優先度情報：２，発言者ＩＤ：Ａ，相手ＩＤ：Ｂ」を、格納部２０に蓄積する。また、対話文蓄積部２５は、取得した対話文「誰が誰と行った？」を、格納部２０に蓄積する。その結果、格納部２０には、図１３に示す問いかけデータ管理表の第２番目のレコードが格納される。また、格納部２０には、図１４に示す対話連係インデックス管理表の第２レコードの「直前応答番号：−，問いかけ番号：２９１０」の２つの属性値が格納される。なお、「直前応答番号：−」は、直前の応答文（対話文）が存在しないことを示す。
なお、問いかけデータ管理表は、「問いかけ番号」「ｏｂｊｅｃｔ」「優先度情報」「発言者ＩＤ」「相手ＩＤ」「対話文」の属性値を有するレコードを1以上格納している。「ｏｂｊｅｃｔ」は、機能素解析された結果等から構成される対話情報である。「対話文」は、機能素解析の元になった文である。
【０１４７】
次に、対話連係情報生成部２３は、図１０の対話情報パターン管理表から３番目の対話情報パターン「「主題」「動作／状態」「副題」」を読み出す。そして、対話連係情報生成部２３は、取得した対話情報パターン「「主題」「動作／状態「副題」」」に合致するように、「主題：誰が」「動作／状態：行った」「副題：誰と」を取得し、メモリ上に追記する。次に、対話連係情報生成部２３は、３番目の対話情報のパターンに対応する優先度情報「２」を、図１０の対話情報パターン管理表から取得する。また、対話連係情報生成部２３は、対話文の発言者の識別子「Ａ」と、対話の相手を識別する識別子「Ｂ」を取得する。次に、対話連係情報生成部２３は、取得した対話情報を数値に変更し、「１５２０１」を得た、とする。次に、対話連係情報生成部２３は、直前の対話情報が存在しないと判断し、新しい対話情報をメモリに一時格納する。ここで、新しい対話情報は、「対話情報の番号：１５２０１，対話情報：「主題：誰が」「動作／状態：行った」「副題：誰と」：優先度情報：２，発言者ＩＤ：Ａ，相手ＩＤ：Ｂ」である。また、ここでの新しい対話情報は、直前の対話文が存在しないので、対話連係情報を構成する情報である。
【０１４８】
次に、対話文蓄積部２５は、受け付けた対話文「誰が誰と行った？」を取得する。そして、対話連係情報蓄積部２４は、取得した対話連係情報「対話情報の番号：１５２０１，対話情報：「誰が」「行った」「誰と」：優先度情報：２，発言者ＩＤ：Ａ，相手ＩＤ：Ｂ」を、格納部２０に蓄積する。また、対話文蓄積部２５は、取得した対話文「誰が誰と行った？」を、格納部２０に蓄積する。その結果、格納部２０には、図１３に示す問いかけデータ管理表の第３番目のレコードが格納される。また、格納部２０には、図１４に示す対話連係インデックス管理表の第３レコードの「直前応答番号：−，問いかけ番号：１５２０１」の２つの属性値が格納される。
【０１４９】
以下、同様に、図１０の対話情報パターン管理表のすべての対話情報パターンに対応する対話情報を取得し、図１３に示す、現在の問いかけデータ管理表、および図１４に示す、現在の対話連係インデックス管理表を得る。なお、図１３、図１４が得られた上記の処理の結果の概念は、図１５の処理結果概念図に示される。処理結果概念図の左側の矩形は、対話文を解析して得られた処理結果と属性値（優先度情報、発言者ＩＤ、相手ＩＤ）、処理結果概念図の右側の矩形には、対話文がそのまま処理結果等とリンク付けられている。
【０１５０】
次に、対話コーパス生成装置２は、ユーザＢから対話文「私と行った佐藤さんが」を受信し、自然言語処理部２２は、上記説明した機能素解析の手法により、以下のように処理をする。つまり、自然言語処理部２２の文分割制御手段２２２の要素分割手段２２２１は、文「私と行った佐藤さんが」を取得し、メモリ上に配置する（図１６の（１））。そして、要素分割手段２２２１は、メモリ上に配置した文の中の、１番目の文字から６番目の文字までの文字列「私と行った佐」を取得し、バッファ上に置く（図１６の（２））。そして、要素分割手段２２２１は、文字列「私と行った佐」を、辞書情報格納手段２２１に検索しにいく。しかし、文字列「私と行った佐」に合致する第一文字列が、図９の辞書情報管理表に存在しないので、要素分割手段２２２１は、先の文字列より１文字少ない文字列「私と行った」を構成する。そして、要素分割手段２２２１は、文字列「私と行った」をバッファ上に置く（図１６の（３））。そして、同様に、要素分割手段２２２１は、文字列「私と行った」を、辞書情報格納手段２２１に検索しにいく。しかし、文字列「私と行った」に合致する第一文字列が、図９の辞書情報管理表に存在しないので、要素分割手段２２２１は、先の文字列より１文字少ない文字列「私と行っ」を構成し、バッファ上に置く（図１６の（４））。そして、要素分割手段２２２１は、文字列「私と行っ」を、辞書情報格納手段２２１に検索しにいく。同様に、文字列「私と行っ」に合致する第一文字列が、図９の辞書情報管理表に存在しない。そして、要素分割手段２２２１は、同様の処理により、１文字ずつ文字数を少なくして、辞書情報格納部１２に検索しにいく（図１６の（５）から（７））。そして、要素分割手段２２２１は、最後の文字「私」も図９の辞書情報管理表に存在しない、と判断する。そして、要素分割手段２２２１は、文字「私」に、未知語であることを示す情報である「未知語」フラグを付与する（図１６の（８））。なお、ここでの「未知語」フラグは、情報「未知語」である。
【０１５１】
次に、要素分割手段２２２１は、処理対象の文字列の先頭のポインタを１ずらす。そして、要素分割手段２２２１は、２番目の文字から６文字分の文字列「と行った佐藤」を読み出し、バッファに配置する（図１６の（９））。そして、同様に、要素分割手段２２２１は、文字列「と行った佐藤」を、辞書情報格納手段２２１に検索しにいく。同様に、文字列「と行った佐藤」に合致する第一文字列が、図９の辞書情報管理表に存在しない。そして、要素分割手段２２２１は、同様の処理により、１文字ずつ文字数を少なくして、辞書情報格納手段２２１に検索しにいく（図１６の（１０）から（１４））。そして、要素分割手段２２２１は、最後の文字「と」は図９の辞書情報管理表に存在する、と判断する（図９の第１レコードを参照）。次に、要素分割手段２２２１は、バッファ上に配置した文字列と一致する第一文字列「と」と対になる前接続記号「−＆」、後接続記号「ｓ％」、および機能語情報「ｏｂｊｅｃｔ」を、辞書情報格納手段２２１から読み出し、メモリ上に配置する。そして、要素分割手段２２２１は、バッファ上に配置した文字列「と」に対して、読み出した前接続記号「−＆」、後接続記号「ｓ％」、および機能語情報「ｏｂｊｅｃｔ」を付与する（図１６の（１５））。
【０１５２】
以上の処理を繰り返し、処理対象の文「私と行った佐藤さんが」について、図１６の（ｘ）のようなデータを得る。つまり、「私」「行」「佐」「藤」に対して、「未知語」が付与される。また、「と」に対して、「−＆：ｓ％：ｏｂｊｅｃｔ」が付与される。また、「っ」に対して、「−＆：−−：ａｃｔｉｏｎ」が付与される。また、「た」に対して、「−＆：％＝：ａｃｔｉｏｎ」が付与される。また、「さん」に対して、「−＆：＆＆：ｏｂｊｅｃｔ」が付与される。さらに、「が」に対して、「−＆：ｎ％：ｏｂｊｅｃｔ」が付与される（図１６の（ｘ））。
【０１５３】
次に、要素連結手段２２２２は、要素分割手段２２２１が未知語フラグ「未知語」を付与した連続する未知語であり、ひらがなではない文字「佐」と「藤」を連結し文字列「佐藤」を構成する。そして、要素連結手段２２２２は、連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報（ここでは、「未知語」）を付与し、バッファに書き込む。バッファ内の情報は、図１７の（１）である。
【０１５４】
次に、要素連結手段２２２２は、図１７（１）の各前後するまとまりの文字列（例えば、「私」と「と」）が連結するか否かを判断し、連結するものは連結させる。
【０１５５】
例えば、「私」と「と」は、「私」が未知語で、「と」の前接続記号「−＆」により、要素連結手段２２２２は、連結すると判断する。なぜなら、前接続記号「−＆」は、前の未知語と連結するからである。そして、要素連結手段２２２２は、「私と」に対して、「：ｓ％：ｏｂｊｅｃｔ」を付与する（図１７（２）参照）。「：ｓ％：ｏｂｊｅｃｔ」は、前接続記号はなし、後接続記号は「ｓ％」、機能語情報は「ｏｂｊｅｃｔ」であることを示す。
【０１５６】
また、要素連結手段２２２２は、「私と」と「行」は連結しない、と判断する。「私と」の後接続記号「ｓ％」は区切りを示すからである。
【０１５７】
そして、要素連結手段２２２２は、「行」と「っ」、「行っ」と「た」は、それぞれ連結する、と判断し、連結させる。つまり、要素連結手段２２２２は、文字列「行った」を構成し、かつ、「：％＝：ａｃｔｉｏｎ」を付与する（図１７（２）参照）。
【０１５８】
そして、要素連結手段２２２２は、「行った」と「佐藤」は連結しない、と判断する。「行った」の後接続記号「％＝」は区切りを示すからである。次に、同様に、要素連結手段２２２２は、「佐藤」「さん」「が」が連結する、と判断し、文字列「佐藤さんが」を構成し、かつ、「：ｎ％：ｏｂｊｅｃｔ」を付与する（図１７（２）参照）。以上の処理により、要素連結手段２２２２は、３つの第二文字列を得る（図１７（２）参照）。
【０１５９】
次に、文字列取得手段２２２３は、１つ目の第二文字列「私と」と、第二文字列の最後尾の第一文字列に対応する機能語情報「ｓ％」および後接続記号「ｏｂｊｅｃｔ」を取得する。そして、文字列取得手段２２２３は、機能語情報「ｓ％」から、１つ目の第二文字列「私と」は、「副題」である、と第二文字列の種類を決定する。そして、文字列取得手段２２２３は、１番目の第二文字列「私と」と、第二文字列の種類を特定する情報「副題」を取り出し、メモリ上に配置する（図１７（３）参照）。
【０１６０】
次に、文字列取得手段２２２３は、２つ目の第二文字列「行った」と、第二文字列の最後尾の第一文字列に対応する機能語情報「％＝」および後接続記号「ａｃｔｉｏｎ」を取得する。そして、文字列取得手段２２２３は、後接続記号「ａｃｔｉｏｎ」から、２つ目の第二文字列「行った」は、「動作」である、と第二文字列の種類を決定する。そして、文字列取得手段２２２３は、２番目の第二文字列「行った」と、第二文字列の種類を特定する情報「動作」を取り出し、メモリ上に配置する（図１７（３）参照）。
【０１６１】
さらに、文字列取得手段２２２３は、３つ目の第二文字列「佐藤さんが」と、第二文字列の最後尾の第一文字列に対応する機能語情報「ｎ％」および後接続記号「ｏｂｊｅｃｔ」を取得する。そして、文字列取得手段２２２３は、機能語情報「ｎ％」から、３つ目の第二文字列「佐藤さんが」は、「主題」である、と第二文字列の種類を決定する。そして、文字列取得手段２２２３は、３番目の第二文字列「佐藤さんが」と、第二文字列の種類を特定する情報「主題」を取り出し、メモリ上に配置する（図１７（３）参照）。以上の処理により、自然言語処理部２２の処理は完了する。
【０１６２】
次に、対話連係情報生成部２３は、上記と同様に、対話連係情報生成処理を行う。つまり、対話連係情報生成部２３は、図１０の対話情報パターン管理表から１番目の対話情報パターン「文全体」を読み出す。そして、対話連係情報生成部２３は、対話情報パターン「文全体」に合致するように、対話文「私と行った佐藤さんが」を読み出し、当該対話文をそのまま対話情報として、メモリ上に追記する。次に、対話連係情報生成部２３は、１番目の対話情報のパターンに対応する優先度情報「１」を、図１０の対話情報パターン管理表から取得する。また、対話連係情報生成部２３は、対話文の発言者の識別子「Ａ」と、対話の相手を識別する識別子「Ｂ」を取得する。次に、対話連係情報生成部２３は、取得した対話情報を数値「３８２５９」に変更する。次に、対話連係情報生成部２３は、直前の対話情報が存在すると判断し、直前の対話情報のうちの問いかけ番号を全て取得する。その結果、対話連係情報生成部２３は、「５８２５，２９１０，１５２０１・・・」を取得する。次に、対話連係情報生成部２３は、取得したすべての対話情報おのおのに対して、新しい対話情報等（ここでは、応答番号「３８２５９」）をリンク付ける。つまり、対話連係情報生成部２３は、図１４の対話連係インデックス管理表の、問いかけ番号「５８２５，２９１０，１５２０１・・・」のいずれかに合致するレコードの応答番号に「３８２５９」を代入し、図１８の新しい対話連係インデックス管理表を得る。ここでの、直前の対話情報と新しい対話情報のリンク付けは、対話連係インデックス管理表のレコードを完成される（属性値を代入する）処理である。
【０１６３】
次に、対話文蓄積部２５は、受け付けた対話文「私と行った佐藤さんが」を取得する。そして、対話連係情報蓄積部２４は、取得した対話連係情報「対話情報の番号：３８２５９，対話情報：私と行った佐藤さんが：優先度情報：１，発言者ＩＤ：Ｂ，相手ＩＤ：Ａ」を、格納部２０に蓄積する。また、対話文蓄積部２５は、取得した対話文「私と行った佐藤さんが」を、格納部２０に蓄積する。その結果、格納部２０には、図１９に示す応答データ管理表の第１番目のレコードが格納される。応答データ管理表は、「応答番号」「ｏｂｊｅｃｔ」「優先度情報」「発言者ＩＤ」「相手ＩＤ」「対話文」の属性を有する。「応答番号」は、「ｏｂｊｅｃｔ」を数値化した情報である。「ｏｂｊｅｃｔ」は、自然言語処理の結果であり、対話情報パターンに合致する情報である。
なお、応答データ管理表は、「応答番号」「ｏｂｊｅｃｔ」「優先度情報」「発言者ＩＤ」「相手ＩＤ」「対話文」の属性値を有するレコードを1以上格納している。応答データ管理表は、例えば、Ｂさんの発言から構成される。
【０１６４】
次に、対話連係情報生成部２３は、図１０の対話情報パターン管理表から２番目の対話情報パターン「「主題」「副題」「動作／状態」」を読み出す。そして、対話連係情報生成部２３は、取得した対話情報パターン「「主題」「副題」「動作／状態」」に合致するように、「主題：佐藤さんが」「副題：私と」「動作／状態：行った」を取得し、メモリ上に追記する。次に、対話連係情報生成部２３は、２番目の対話情報のパターンに対応する優先度情報「２」を、図１０の対話情報パターン管理表から取得する。また、対話連係情報生成部２３は、対話文の発言者の識別子「Ｂ」と、対話の相手を識別する識別子「Ａ」を取得する。次に、対話連係情報生成部２３は、取得した対話情報を数値に変更し、「９８２５２」を得た、とする。次に、対話連係情報生成部２３は、直前の対話情報が存在しないと判断し、新しい対話情報をメモリに一時格納する。ここで、新しい対話情報は、「対話情報の番号：９８２５２，対話情報：「主題：佐藤さんが」「副題：私と」「動作／状態：行った」：優先度情報：２，発言者ＩＤ：Ｂ，相手ＩＤ：Ａ」である。また、ここでの新しい対話情報は、直前の対話文が存在しないので、対話連係情報を構成する情報である。次に、対話連係情報生成部２３は、直前の対話情報が存在すると判断し、直前の対話情報のうちの問いかけ番号を全て取得する。その結果、対話連係情報生成部２３は、「５８２５，２９１０，１５２０１・・・」を取得する。次に、対話連係情報生成部２３は、取得したすべての対話情報おのおのに対して、新しい対話情報等（ここでは、応答番号「９８２５２」）をリンク付ける。つまり、対話連係情報生成部２３は、図１４の対話連係インデックス管理表の、問いかけ番号「５８２５，２９１０，１５２０１・・・」のいずれかに合致するレコードの応答番号に「９８２５２」を代入し、図１８の対話連係インデックス管理表のレコードＩＤ「ｘ」以降のレコードを得る。
【０１６５】
次に、対話文蓄積部２５は、受け付けた対話文「私と行った佐藤さんが」を取得する。そして、対話連係情報蓄積部２４は、取得した対話連係情報「対話情報の番号：９８２５２，対話情報：「主題：佐藤さんが」「副題：私と」「動作／状態：行った」：優先度情報：２，発言者ＩＤ：Ｂ，相手ＩＤ：Ａ」を、格納部２０に蓄積する。また、対話文蓄積部２５は、取得した対話文「私と行った佐藤さんが」を、格納部２０に蓄積する。その結果、格納部２０には、図１９に示す応答データ管理表の第２番目のレコードが格納される。
【０１６６】
さらに、同様に、対話連係情報生成部２３は、図１０の対話情報パターン管理表から３番目以降の対話情報パターンに対して、対話文「私と行った佐藤さんが」を処理し、対話連係情報を生成する。そして、対話連係情報生成部２３は、図１９に示す応答データ管理表を得る。また、対話連係情報生成部２３は、多数のレコードが格納された対話連係インデックス管理表を得る。現在までの処理の状況は、図２０の処理結果概念図に示される。つまり、対話連係情報生成部２３等は、対話文「誰と誰が行った？」を言語処理した結果と、「私と行った佐藤さんが」を言語処理した結果をリンク付け、かつ、言語処理結果に対応して、対話文が管理されている、状況を構成した。
【０１６７】
次に、対話コーパス生成装置２は、ユーザＡから入力された「どこに行った？」を受信し、自然言語処理部２２は、上記説明した機能素解析の手法により、図２１に示す順序で、処理し、図２１の（Ｘ＋２）に示すように、対話文「どこに行った？」を、「副題：どこに」「動作：行った」「区切り：？」に分解できた。
【０１６８】
そして、対話連係情報生成部２３は、上記と同様の処理により、対話連係情報を生成する。また、対話連係情報蓄積部２４は、図１８の対話連係インデックス管理表に対してレコードを追記し、図２２の対話連係インデックス管理表を得る。また、対話連係情報蓄積部２４および対話文蓄積部２５は、図１３の問いかけデータ管理表にレコードを追記し、図２３の問いかけデータ管理表を得る。現在までの処理の状況を、図２４の処理結果概念図に示す。図２４によれば、３つの対話文の解析結果がリンクされており、各解析結果に対して、元の対話文がリンクされている。
【０１６９】
次に、対話コーパス生成装置２は、ユーザＢから入力された「店舗Ｘ」を受信し、自然言語処理部２２は、上記説明した機能素解析の手法により、図２５に示す順序で、処理し、図２５の（５）に示すように、「店舗Ｘ：未知語」を得る。
【０１７０】
そして、対話連係情報生成部２３は、上記と同様の処理により、また、対話連係情報蓄積部２４は、図２２の対話連係インデックス管理表に対して、レコードＩＤ「Ｙ」「Ｙ＋１」「Ｙ＋２」の「応答番号」に「店舗Ｘ」を数値化した値「１０９」を代入し、図２６の対話連係インデックス管理表を得る。また、対話連係情報生成部２３は、図１９の応答データ管理表にレコードを追記し、図２７の応答データ管理表を得る。
【０１７１】
次に、対話コーパス生成装置２は、ユーザＡから入力された「店舗Ｘは、おしゃれだ。」を受信し、自然言語処理部２２は、上記説明した機能素解析の手法により、図２８に示す順序で、処理し、図２８の（Ｘ＋３）に示すように、対話文「店舗Ｘは、おしゃれだ。」を、「主題：店舗Ｘは」「区切り：、」「状態：おしゃれだ」「区切り：。」に分解する。また、対話連係情報生成部２３等は、上記と同様に処理し、対話連係インデックス管理表や、問いかけデータ管理表を更新していく。
【０１７２】
さらに、対話コーパス生成装置２は、ユーザＡから入力された「店舗Ｘが、テレビで評判だ。」を受信し、自然言語処理部２２は、上記説明した機能素解析の手法により、図２９に示す順序で、処理し、図２９の（Ｘ＋３）に示すように、対話文「店舗Ｘが、テレビで評判だ。」を、「主題：店舗Ｘが」「区切り：、」「副題：テレビで」「状態：評判だ」「区切り：。」に分解する。また、対話連係情報生成部２３等は、上記と同様に処理し、対話連係インデックス管理表や、応答データ管理表を更新していく。
【０１７３】
以上の処理により、図３０の処理結果概念図に示すような対話連係情報が構成されたこととなる。本具体例において、対話連係情報は、例えば、対話連係インデックス管理表、問いかけデータ管理表、および応答データ管理表を有する。
（具体例２）
【０１７４】
次に、形態素解析の手法を用いた言語処理により、対話コーパスを生成する処理について説明する。つまり、ここでは、例えば、自然言語処理部２２は、形態素解析を行い、自立語のみを取得する、とする。そして、自然言語処理部２２は、ユーザＡ、またはユーザＢが入力した対話文の各々から、図３１に示すような自立語の集合を取得する。かかる形態素解析を行い、自立語を取得する処理は公知技術であるので詳細な説明を省略する。
【０１７５】
そして、対話連係情報生成部２３は、取得した自立語（用語）から２以上の組み合わせの用語群を取得する。そして、対話文の順序から、用語群をリンク付ける処理を行う。また、対話連係情報生成部２３は、対話文から取得された自立語のうち、どれだけの数の自立語を用いた用語群かにより、優先度情報を変更する。つまり、対話文「誰と誰が行った？」から抽出された自立語「誰」「誰」「行った」のうち、すべての自立語を用いている用語群の優先度情報は「１」、一つ不足している用語群の優先度情報は「２」、二つ不足している用語群の優先度情報は「３」という具合に、対話連係情報生成部２３は、自立語が欠けるほど、優先度が低い優先度情報を付与する。
【０１７６】
そして、図１１に示すユーザＡとユーザＢのチャットから、言語処理の結果を利用し、対話連係情報生成部２３は、図３２に示す対話連係情報を生成し、対話連係情報蓄積部２４は、当該対話連係情報を蓄積する。
【０１７７】
以上、本実施の形態によれば、実際の対話から、対話文を自然言語処理することにより、例えば、バーチャルチャットシステムなどで利用できる、対話コーパスを自動生成できる。
【０１７８】
また、本実施の形態によれば、機能素解析の手法を用いることにより、未知語が存在しても、対話文を適切に分割でき、当該分割した文の要素を用いた対話コーパスを自動生成できる。また、本実施の形態によれば、機能素解析の手法を用いることにより、チャット等で出現しがちな口語調の対話文に対しても、精度高く言語解析できる。
【０１７９】
さらに、本実施の形態によれば、自然言語処理の結果を数値化（キャッシュＩＤ化）するので、後述するバーチャルチャットシステムなどで利用する場合に、高速に、対話文を取得できる。
【０１８０】
なお、本実施の形態において、自然言語処理の手法として、機能素解析によるもの、形態素解析によるものを説明したが、パターンマッチングなど、他の方法でも良い。
【０１８１】
また、本実施の形態の具体例において、機能素解析し、複数の要素に分解した場合に、対話連係情報生成部２３は、その要素の一部を組み合わせの情報も、対話連係情報を生成する際に用いた。しかし、複数の要素に分解した場合に、対話連係情報生成部２３は、その要素のすべての組み合わせの情報のみを用いて対話連係情報を生成しても良い。
【０１８２】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における対話コーパス生成装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、二人のユーザから入力される連続した対話文であり、第一のユーザから入力された第一対話文と、当該第一対話文の入力後に、第二のユーザから入力された第二対話文と、当該第二対話文の入力後に、第一のユーザから入力された第三対話文を受け付ける対話文受付部と、前記受け付けた対話文のうち、少なくとも一のユーザから入力された対話文を自然言語処理し、少なくとも一の用語を有する処理結果を取得する自然言語処理部と、前記処理結果と前記対話文受付部が受け付けた対話文、または前記処理結果から、対話文の繋がりに関する情報である対話連係情報を生成する対話連係情報生成部と、前記対話連係情報を蓄積する対話連係情報蓄積部として機能させるためのプログラム、である。
【０１８３】
また、上記プログラムにおいて、前記自然言語処理部は、第一文字列と、文中における前記第一文字列の機能または種類を特定する情報である機能語情報と、前記第一文字列の前に接続され得る文字列の種類を特定する情報である前接続記号と、前記第一文字列の後ろに接続され得る文字列の種類、または区切りであることを示す記号であり、当該記号により区切られた文中における第二文字列の種類を特定する情報である後接続記号とを対に有する辞書情報を1以上格納している辞書情報格納手段と、前記受け付けた対話文のうち、少なくとも一のユーザから入力された対話文から、区切りであることを示す後接続記号に対する第一文字列を取り出し、当該第一文字列をキーにして、対話文を構成する文を２以上の文字列である２以上の第二文字列に区切り、当該第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記第二文字列の種類を特定する情報を取得し、当該第二文字列と第二文字列の種類を特定する情報を取得する文分割制御手段と、前記文分割制御手段が取得した２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対に有する処理結果を取得する処理結果構成手段を具備するように、コンピュータを、機能させるためのプログラム、である。
【０１８４】
また、上記プログラムにおいて、前記対話連係情報は、第一対話文に対応する１以上の第二文字列または当該１以上の第二文字列から構成される情報である第一対話情報と、第二対話文に対応する１以上の第二文字列または当該１以上の第二文字列から構成される情報である第二対話情報と、第三対話文に対応する１以上の第二文字列または当該１以上の第二文字列から構成される情報である第三対話情報を有する、ことは好適である。
【０１８５】
また、上記プログラムにおいて、コンピュータを、前記第一対話情報を構成する元になった対話文である第一対話文、前記第二対話情報を構成する元になった対話文である第二対話文、前記第三対話情報を構成する元になった対話文である第三対話文のうちの少なくとも１以上の対話文を、それぞれ前記第一対話情報、前記第二対話情報、前記第三対話情報に対応付けて蓄積する対話文蓄積部としてさらに機能させるためのプログラム、であることは好適である。
【０１８６】
また、上記プログラムにおいて、前記第二文字列の種類は、少なくとも文の主題、文の副題、動作状態を含み、前記処理結果構成手段は、主題に対応する第二文字列、副題に対応する第二文字列、および動作状態に対応する第二文字列を有する処理結果を取得するように機能させるためのプログラム、であることは好適である。
【０１８７】
また、上記プログラムにおいて、前記文分割制御手段は、前記対話文を構成する文の先頭から予め決められたサイズ（ｎ文字[ｎは２以上の整数]）の第三文字列を切り出し、前記切り出した第三文字列を構成する文字列であって、先頭からｎ文字の文字列から順に、前記辞書情報格納手段に当該文字列が存在するか否かを判断し、ｎ文字の文字列が存在しない場合には、先頭から（ｎ−１）文字の文字列が前記辞書情報格納手段に存在するか否かを判断し、かかる判断を、１文字ずつ文字数を減らして、文字列が存在するまで行い、または、文字列が存在しない場合には、先頭から１文字になるまでかかる判断を行い、文字列が存在すると判断した場合には、当該文字列に対応する機能語情報と前接続記号と後接続記号とを、前記辞書情報格納手段から読み出し、読み出した機能語情報と前接続記号と後接続記号とを当該文字列に付与し、文字列が存在しない場合には、１文字の文字列に対して未知語であることを示す情報である未知語情報を付与する要素分割手段と、前記要素分割手段が未知語情報を付与した連続する未知語であり、ひらがなの文字を連結し文字列を構成し、かつ連続する未知語であり、ひらがなではない文字を連結し文字列を構成し、前記連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報を付与し、隣接する２つの、前記要素分割手段が分割した要素またはまとまり情報を読み出し、当該読み出した要素またはまとまり情報のうち、前出の要素またはまとまり情報の後接続記号と、後出の要素またはまとまり情報の前接続記号から、前出の要素またはまとまり情報と後出の要素またはまとまり情報が連結可能であるか否かを判断し、連結可能な要素またはまとまり情報を一つの文字列にまとめて、当該まとめた文字列である第二文字列を複数、取得する要素連結手段と、前記要素連結手段が取得した複数の各第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記各第二文字列の種類を特定する情報を決定し、当該複数の各第二文字列の種類を特定する情報と、当該複数の各第二文字列を対にした複数の対の情報を取得する文字列取得手段を具備するものとして機能させるためのプログラム、であることは好適である。
【０１８８】
また、上記プログラムにおいて、前記対話連係情報生成部は、第一対話文および第一対話文に対応する１以上の第二文字列を組み合わせた２以上の第一対話情報を生成し、第二対話文および第二対話文に対応する１以上の第二文字列を組み合わせた２以上の第二対話情報を生成し、第三対話文および第三対話文に対応する１以上の第二文字列を組み合わせた２以上の第三対話情報を生成し、前記対話連係情報蓄積部は、第一対話情報、第二対話情報、および第三対話情報を有する対話連係情報を２以上、蓄積するものとして機能させるためのプログラム、であることは好適である。
【０１８９】
また、上記プログラムにおいて、前記対話連係情報生成部は、前記２以上の第一対話情報、前記２以上の第二対話情報、前記２以上の第三対話情報のうち、少なくとも１種類の各対話情報に対して、選択される場合の優先度の情報である優先度情報を生成し、当該優先度情報を各対話情報に対して付与し、前記対話連係情報蓄積部は、前記優先度情報を有する２以上の対話連係情報を蓄積するものとして機能させるためのプログラム、であることは好適である。
【０１９０】
また、上記プログラムにおいて、前記対話連係情報生成部は、前記第一対話情報、前記第二対話情報、および前記第三対話情報を数値化するものとして機能させるためのプログラム、であることは好適である。
（実施の形態２）
【０１９１】
本実施の形態において、対話コーパスを用いたバーチャルチャットシステムについて説明する。バーチャルチャットシステムは、ユーザが装置上の仮想的なキャラクタと対話できるシステムである。バーチャルチャットシステムは、ユーザから入力された対話文を自然言語処理し、処理結果に応じて、入力された対話文と繋がるような対話文を検索し、ユーザに提示するものである。自然言語処理部は、主として、機能素解析の手法を用いる。図３３は、バーチャルチャットシステムの概念図である。バーチャルチャットシステムは、端末装置４、バーチャルチャット装置５を具備する。端末装置４は、ユーザがキャラクタとのバーチャルチャットを楽しむための端末であり、いわゆるパソコン、携帯端末、携帯電話等を問わない。
【０１９２】
図３４は、本実施の形態におけるバーチャルチャットシステムのブロック図である。端末装置４は、受付部４０１、指示送信部４０２、キャラクタ受信部４０３、キャラクタ出力部４０４、端末側対話文受付部４０５、端末側対話文送信部４０６、端末側対話文受信部４０７、端末側対話文出力部４０８を具備する。
【０１９３】
バーチャルチャット装置５は、アプリ格納部５０１、キャラクタ格納部５０２、対話連係情報格納部５０３、対話文格納部５０４、対話文受付部５０５、サーバ側受信部５０６、自然言語処理部２２、第一対話情報取得部５０７、対話文取得部５０８、対話文出力部５０９、サーバ側送信部５１０を具備する。自然言語処理部２２は、辞書情報格納手段２２１、文分割制御手段２２２、処理結果構成手段２２３を具備する。文分割制御手段２２２は、要素分割手段２２２１、要素連結手段２２２２、文字列取得手段２２２３を具備する。
【０１９４】
受付部４０１は、ユーザからの各種指示を受け付ける。指示とは、例えば、仮想的なキャラクタとのバーチャルなチャットを行える対話システムを開始する開始指示である。指示とは、例えば、対話システムを終了する開始終了である。受付部４０１は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【０１９５】
指示送信部４０２は、受付部４０１が受け付けた指示を、バーチャルチャット装置５に送信する。指示送信部４０２は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【０１９６】
キャラクタ受信部４０３は、バーチャルチャット装置５からキャラクタを受信する。キャラクタとは、例えば、静止画、または動画のデータ、または動画と音声のデータ等である。キャラクタ受信部４０３は、通常、無線または有線の通信手段で実現されるが、放送受信手段で実現されても良い。
【０１９７】
キャラクタ出力部４０４は、キャラクタ受信部４０３が受信したキャラクタを出力する。ここで、出力とは、通常、ディスプレイへの表示、またはディスプレイへの表示とスピーカーへの音声出力である。キャラクタ出力部４０４は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。キャラクタ出力部４０４は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【０１９８】
端末側対話文受付部４０５は、対話文を受け付ける。端末側対話文受付部４０５は、少なくとも、２度以上、対話文を受け付ける。つまり、端末装置４は、ユーザが対話を行っている状況で利用される。対話文とは、１以上の文の集合である。文は、口語体でも、不完全な文でも良い。また、受け付けとは、通常、手入力による対話文の受け付けであるが、他の装置からの受信、記憶媒体からの読み出しなども含む。対話文の入力手段は、キーボードやマウスやマイクによるもの等、何でも良い。なお、マイクから音声により対話文が入力される場合、端末装置４またはバーチャルチャット装置５または他の図示しない装置が、音声認識処理により音声を対話文に変換する処理を行う。端末側対話文受付部４０５は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【０１９９】
端末側対話文送信部４０６は、端末側対話文受付部４０５が受け付けた対話文をバーチャルチャット装置５に送信する。対話文をバーチャルチャット装置５に送信するタイミングは問わない。端末側対話文送信部４０６は、ユーザからの指示により対話文を送信しても良いし、端末側対話文受付部４０５が対話文を受け付けた場合に、直ちに、対話文を送信しても良い。端末側対話文送信部４０６は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【０２００】
端末側対話文受信部４０７は、バーチャルチャット装置５が送信した対話文を受信する。ここでの対話文は、バーチャルチャット装置５が出力する対話文であり、ユーザが入力した対話文に対応して、送信されてきた対話文である。端末側対話文受信部４０７は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【０２０１】
端末側対話文出力部４０８は、端末側対話文受信部４０７が受信した対話文を出力する。ここで、出力とは、通常、ディスプレイへの表示であるが、プリンタへの印字、音出力、外部の装置への送信等を含む。端末側対話文出力部４０８は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。端末側対話文出力部４０８は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【０２０２】
アプリ格納部５０１は、バーチャルチャットシステムを実現するためのアプリケーションを格納している。アプリ格納部５０１は、例えば、バーチャルチャットシステムのポータル画面の情報（例えば、ＨＴＭＬで記述）を格納している。アプリ格納部５０１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【０２０３】
キャラクタ格納部５０２は、キャラクタを格納している。キャラクタとは、静止画または動画で構成され、端末装置４とユーザと仮想的に対話するキャラクタである。キャラクタ格納部５０２は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【０２０４】
対話連係情報格納部５０３は、第一対話情報、および第二対話情報を対に有する対話連係情報を格納している。対話連係情報は、例えば、実施の形態１で説明した、対話連係インデックス管理表、問いかけデータ管理表、および応答データ管理表を有する情報である。対話連係インデックス管理表において、第一対話情報、および第二対話情報、および次の第一対話情報を対に有する情報が、表のレコードになっている。対話連係情報格納部５０３は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【０２０５】
対話文格納部５０４は、第一対話情報を構成する元になった対話文である第一対話文、第二対話情報を構成する元になった対話文である第二対話文のうちの少なくとも１以上の対話文を、それぞれ第一対話情報、第二対話情報に対応付けて格納している。対話文格納部５０４は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【０２０６】
対話文受付部５０５は、ユーザからの対話文を受け付ける。ここでの受け付けは、通信手段や放送受信手段を用いた受信でも良いし、ユーザからの手入力での受け付けでも良い。対話文受付部５０５は、無線または有線の通信手段で実現されるが、放送を受信する手段等で実現されても良い。
【０２０７】
サーバ側受信部５０６は、端末装置４が送信した開始指示や終了指示などを受信する。サーバ側受信部５０６は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
【０２０８】
第一対話情報取得部５０７は、自然言語処理部２２における処理結果を用いて、対話連係情報格納部５０３を検索し、第一対話情報を取得する。さらに具体的には、第一対話情報取得部５０７は、自然言語処理部２２における処理結果を用いて、当該処理結果から１以上の対話情報を構成し、当該１以上の各対話情報をキーとして、対話連係情報格納部５０３を検索し、一致する対話情報である第一対話情報を取得する。第一対話情報取得部５０７は、通常、ＭＰＵやメモリ等から実現され得る。第一対話情報取得部の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０２０９】
対話文取得部５０８は、第一対話情報取得部５０７が取得した第一対話情報と対になる第二対話情報に対応する第二対話文を、対話文格納部５０４から取得する。対話文取得部５０８は、通常、ＭＰＵやメモリ等から実現され得る。対話文取得部５０８の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０２１０】
対話文出力部５０９は、対話文取得部５０８が取得した対話文を出力する。ここで、出力とは、通常、端末装置４への送信である。なお、バーチャルチャット装置５がスタンドアロンで動作する場合は、出力とは、ディスプレイへの表示、や外部の装置への送信等である。対話文出力部５０９は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【０２１１】
サーバ側送信部５１０は、サーバ側受信部５０６が受信した開始指示に対応して、端末装置４に、バーチャルチャットシステムのポータル画面の情報や、キャラクタの情報を送信する。なお、サーバ側送信部５１０は、送信するポータル画面の情報や、キャラクタの情報を、それぞれ、アプリ格納部５０１、キャラクタ格納部５０２から読み出す。サーバ側送信部５１０は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
【０２１２】
次に、バーチャルチャットシステムの動作について説明する。まず、端末装置４の動作について説明する。端末装置４の受付部４０１は、開始指示をユーザから受け付け、指示送信部４０２は、当該開始指示をバーチャルチャット装置５に送信する。次に、開始指示の送信に対応して、バーチャルチャット装置５から、図示しない受信手段が、バーチャルチャットシステムのポータル画面の情報を受信し、図示しない出力手段が、当該ポータル画面の情報を解釈し、ディスプレイに出力する。また、キャラクタ受信部４０３は、キャラクタを受信し、キャラクタ出力部４０４は、キャラクタを出力する。キャラクタを出力することにより、端末装置４のユーザは、キャラクタとチャットを楽しんでいるように感覚する。また、端末側対話文受付部４０５は、ユーザからの対話文を受け付け、端末側対話文送信部４０６は、その対話文を送信する。また、対話文の送信に対応して、バーチャルチャット装置５から、端末側対話文受信部４０７を受信し、端末側対話文出力部４０８は、当該対話文を出力する。なお、端末側対話文出力部４０８は、ユーザが入力した対話文も出力する。
【０２１３】
次に、バーチャルチャット装置５の動作について図３５、図３６のフローチャートを用いて説明する。図３５、図３６のフローチャートにおいて、図８、図３のフローチャートと同様の処理については、説明を省略する。
【０２１４】
（ステップＳ３５０１）サーバ側受信部５０６は、端末装置４から開始指示を受け付けたか否かを判断する。開始指示を受け付ければステップＳ３５０２に行き、開始指示を受け付けなければステップＳ３５０１に戻る。
【０２１５】
（ステップＳ３５０２）サーバ側送信部５１０は、チャットシステムのポータル画面の情報、キャラクタを、それぞれアプリ格納部５０１、キャラクタ格納部５０２から読み出す。
【０２１６】
（ステップＳ３５０３）サーバ側送信部５１０は、ステップＳ３５０２で読み出したポータル画面の情報、キャラクタを、端末装置４に送信する。
【０２１７】
（ステップＳ３５０４）対話文受付部５０５は、端末装置４から対話文を受け付けたか否かを判断する。対話文を受け付ければステップＳ３０２に行き、対話文を受け付けなければステップＳ３５０７に行く。
【０２１８】
（ステップＳ３５０５）第一対話情報取得部５０７、対話文取得部５０８は、対話文を取得する処理を行う。対話文取得処理について、図３６のフローチャートを用いて説明する。
【０２１９】
（ステップＳ３５０６）対話文出力部５０９は、ステップＳ３５０５で取得した対話文を、端末装置４に出力する。ステップＳ３５０４に戻る。
【０２２０】
（ステップＳ３５０７）図示しない手段は、端末装置４から終了指示を受け付けたか否かを判断する。終了指示を受け付ければ処理を終了し、終了指示を受け付けなければステップＳ３５０４に戻る。
【０２２１】
次に、ステップＳ３５０５の対話文取得処理について、図３６のフローチャートを用いて説明する。
【０２２２】
（ステップＳ３６０１）第一対話情報取得部５０７は、既に取得されている対話情報を数値化する。
【０２２３】
（ステップＳ３６０２）第一対話情報取得部５０７は、カウンタｎに１を代入する。
【０２２４】
（ステップＳ３６０３）第一対話情報取得部５０７は、優先度情報の値がｎの対話情報が存在するか否かを判断する。ｎの対話情報が存在すればステップＳ３６０４に行き、存在しなければステップＳ３６０８に行く。
【０２２５】
（ステップＳ３６０４）第一対話情報取得部５０７は、優先度情報の値がｎの対話情報のうち、ステップＳ３６０１で数値化した対話情報に合致する対話情報を、対話連係情報格納部５０３に対して、検索する。
【０２２６】
（ステップＳ３６０５）第一対話情報取得部５０７は、ステップＳ３６０４で対話情報が検索できたか否かを判断する。対話情報を検索できればステップＳ３６０６に行き、対話情報を検索できなければステップＳ３６０７に行く。
【０２２７】
（ステップＳ３６０６）対話文取得部５０８は、ステップＳ３６０４で取得した対話情報の対の対話情報を、対話連係情報格納部５０３から取得し、当該取得した対話情報に対応する（リンク付けられている）対話文を、対話文格納部５０４から読み出す。上位処理にリターンする。
【０２２８】
（ステップＳ３６０７）第一対話情報取得部５０７は、カウンタｎを１、インクリメントする。ステップＳ３６０３に戻る。
【０２２９】
（ステップＳ３６０８）第一対話情報取得部５０７は、カウンタｉを１、インクリメントする。ステップＳ８０２に戻る。
【０２３０】
（ステップＳ３６０９）対話文取得部５０８は、デフォルトの対話文を読み出す。デフォルトの対話文は、対話文取得部５０８に格納されている、とする。デフォルトの対話文は、例えば、「話題を変えませんか？」等である。上位処理にリターンする。
【０２３１】
以下、本実施の形態におけるバーチャルチャットシステムの具体的な動作について説明する。バーチャルチャットシステムの概念図は図３３である。
【０２３２】
また、対話連係情報格納部５０３には、図３０の対話連係情報が格納されている。また、対話文格納部５０４には、図３０の対話文が、対話連係情報に対応付けて格納されている。また、図３０は、対話連係情報の概念図であるが、実際には、例えば、対話連係情報格納部５０３および対話文格納部５０４には、図２２の対話連係インデックス管理表、図２３の問いかけデータ管理表、図２７の応答データ管理表が格納されている。
【０２３３】
かかる状況において、端末装置４のユーザは、バーチャルチャットシステムの開始指示を入力した、とする。すると、上記説明した動作により、例えば、図３７のようなバーチャルチャットシステムの画面が、端末装置４のディスプレイに表示される。
【０２３４】
次に、ユーザは、バーチャルチャットシステムのキャラクタと対話すべく、対話文「店舗Ｘはどう？」と、店舗Ｘについて説明を投げた、とする。
【０２３５】
すると、対話文「店舗Ｘはどう？」は、バーチャルチャット装置５に送信され、バーチャルチャット装置５の対話文受付部５０５は、対話文「店舗Ｘはどう？」を受け付ける。
【０２３６】
次に、自然言語処理部２２は、対話文「店舗Ｘはどう？」に対して、実施の形態１で説明した機能素解析の自然言語処理を行い、「主題：店舗Ｘは」「状態：どう」を得る。
【０２３７】
次に、第一対話情報取得部５０７は、１つ目の対話情報「店舗Ｘはどう？」（対話文そのまま）を数値化し、例えば、「７９２７３」を得た、とする。
【０２３８】
次に、第一対話情報取得部５０７は、優先度情報の値が１から順に、対話情報が存在するか否かを判断する。また、第一対話情報取得部５０７は、優先度情報の値が１から順に、「７９２７３」をキーとして、対話情報を検索しに行く。ここで、すべての対話情報に対して、「７９２７３」がマッチしなかった、とする。
【０２３９】
次に、第一対話情報取得部５０７は、２つ目の対話情報「「店舗Ｘは」「どう」」（すべての要素を含むパターン）を数値化し、例えば、「５５５３４５」を得た、とする。
【０２４０】
次に、第一対話情報取得部５０７は、優先度情報の値が１から順に、対話情報が存在するか否かを判断する。また、第一対話情報取得部５０７は、優先度情報の値が１から順に、「５５５３４５」をキーとして、対話情報を検索しに行く。ここで、すべての対話情報に対して、「５５５３４５」がマッチしなかった、とする。
【０２４１】
次に、第一対話情報取得部５０７は、３つ目の対話情報「「どう」「店舗Ｘは」」（すべての要素を含み、要素の順序を入れ替えたパターン）を数値化し、例えば、「２９００１」を得た、とする。
【０２４２】
次に、第一対話情報取得部５０７は、優先度情報の値が１から順に、対話情報が存在するか否かを判断する。また、第一対話情報取得部５０７は、優先度情報の値が１から順に、「２９００１」をキーとして、対話情報を検索しに行く。ここで、すべての対話情報に対して、「２９００１」がマッチしなかった、とする。
【０２４３】
次に、第一対話情報取得部５０７は、３つ目の対話情報「「店舗Ｘは」」（主題のみで構成されるパターン）を数値化し、例えば、「３５６７７」を得た、とする。
【０２４４】
次に、第一対話情報取得部５０７は、優先度情報の値が１から順に、対話情報が存在するか否かを判断する。また、第一対話情報取得部５０７は、優先度情報の値が１から順に、「３５６７７」をキーとして、対話情報を検索しに行く。ここで、図３０の上から５番目の矩形内の「店舗Ｘは」に対応する対話情報に合致した、とする。
【０２４５】
次に、対話文取得部５０８は、取得した対話情報「３５６７７」の対の対話情報（図３０の最下位の矩形内の対話情報）を、対話連係情報格納部５０３から取得する。そして、対話文取得部５０８は、その対話情報に対応する対話文「店舗Ｘが、テレビで評判だ。」を、対話文格納部５０４から読み出す。
【０２４６】
そして、対話文出力部５０９は、取得した対話文「店舗Ｘが、テレビで評判だ。」を、端末装置４に送信する。
【０２４７】
次に、端末装置４の端末側対話文受信部４０７は、対話文「店舗Ｘが、テレビで評判だ。」を受信する。そして、端末側対話文出力部４０８は、対話文「店舗Ｘが、テレビで評判だ。」をディスプレイに出力する。
【０２４８】
以上、本実施の形態によれば、ユーザにとって、あたかもキャラクタが話しをしているようなバーチャルなチャットを実現できる。
【０２４９】
なお、本実施の形態におけるバーチャルチャット装置を実現するソフトウェアは、以下のようなプログラムである。つまり、第一対話情報、および第二対話情報を対に有する対話連係情報を記憶媒体に格納しており、前記第一対話情報を構成する元になった対話文である第一対話文、前記第二対話情報を構成する元になった対話文である第二対話文のうちの少なくとも１以上の対話文を、それぞれ前記第一対話情報、前記第二対話情報に対応付けて記憶媒体に格納しており、コンピュータを、ユーザからの対話文を受け付ける対話文受付部と、前記対話文を自然言語処理し、少なくとも一の用語を有する処理結果を取得する自然言語処理部と、前記処理結果を用いて、前記記憶媒体を検索し、第一対話情報を取得する第一対話情報取得部と、前記第一対話情報と対になる第二対話情報に対応する第二対話文を、前記記憶媒体から取得する対話文取得部と、前記対話文取得部が取得した対話文を出力する対話文出力部として機能させるためのプログラム、である。
【０２５０】
また、図３８は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の対話コーパス生成装置やバーチャルチャット装置を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図３８は、このコンピュータシステム３４０の概観図であり、図３９は、コンピュータシステム３４０のブロック図である。
【０２５１】
図３８において、コンピュータシステム３４０は、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）ドライブ、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブを含むコンピュータ３４１と、キーボード３４２と、マウス３４３と、モニタ３４４とを含む。
【０２５２】
図３９において、コンピュータ３４１は、ＦＤドライブ３４１１、ＣＤ−ＲＯＭドライブ３４１２に加えて、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３４１３と、ＣＰＵ３４１３、ＣＤ−ＲＯＭドライブ３４１２及びＦＤドライブ３４１１に接続されたバス３４１４と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）３４１５と、ＣＰＵ３４１３に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３４１６と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３４１７とを含む。ここでは、図示しないが、コンピュータ３４１は、さらに、ＬＡＮへの接続を提供するネットワークカードを含んでも良い。
【０２５３】
コンピュータシステム３４０に、上述した実施の形態の対話コーパス生成装置等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ３５０１、またはＦＤ３５０２に記憶されて、ＣＤ−ＲＯＭドライブ３４１２またはＦＤドライブ３４１１に挿入され、さらにハードディスク３４１７に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ３４１に送信され、ハードディスク３４１７に記憶されても良い。プログラムは実行の際にＲＡＭ３４１６にロードされる。プログラムは、ＣＤ−ＲＯＭ３５０１、ＦＤ３５０２またはネットワークから直接、ロードされても良い。
【０２５４】
プログラムは、コンピュータ３４１に、上述した実施の形態の対話コーパス生成装置等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム３４０がどのように動作するかは周知であり、詳細な説明は省略する。
【０２５５】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０２５６】
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理（ハードウェアでしか行われない処理）は含まれない。
【０２５７】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０２５８】
また、上記各実施の形態において、一の装置に存在する２以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
【０２５９】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０２６０】
以上のように、本発明にかかる対話コーパス生成装置は、チャットなどの２者以上の対話文を用いて、対話コーパスを自動生成できる、という効果を有し、対話コーパス生成装置等として有用である。
【図面の簡単な説明】
【０２６１】
【図１】本実施の形態における対話コーパス生成システムの概念図
【図２】同対話コーパス生成システムのブロック図
【図３】同対話コーパス生成装置の動作について説明するフローチャート
【図４】同自然言語処理の動作について説明するフローチャート
【図５】同連結処理の動作について説明するフローチャート
【図６】同文分割処理の動作について説明するフローチャート
【図７】同自然言語処理の動作について説明するフローチャート
【図８】同対話コーパス生成装置の動作について説明するフローチャート
【図９】同辞書情報管理表を示す図
【図１０】同対話情報パターン管理表を示す図
【図１１】同ユーザ間の対話の内容の例を示す図
【図１２】同自然言語処理の経過を示す図
【図１３】同問いかけデータ管理表を示す図
【図１４】同対話連係インデックス管理表を示す図
【図１５】同処理結果の概念図
【図１６】同自然言語処理の経過を示す図
【図１７】同自然言語処理の経過を示す図
【図１８】同対話連係インデックス管理表を示す図
【図１９】同応答データ管理表を示す図
【図２０】同処理結果の概念図
【図２１】同自然言語処理の経過を示す図
【図２２】同対話連係インデックス管理表を示す図
【図２３】同問いかけデータ管理表を示す図
【図２４】同処理結果の概念図
【図２５】同自然言語処理の経過を示す図
【図２６】同対話連係インデックス管理表を示す図
【図２７】同応答データ管理表を示す図
【図２８】同自然言語処理の経過を示す図
【図２９】同自然言語処理の経過を示す図
【図３０】同処理結果の概念図
【図３１】同自然言語処理結果を示す図
【図３２】同対話連係情報の概念図
【図３３】同バーチャルチャットシステムの概念図
【図３４】同バーチャルチャットシステムのブロック図
【図３５】同バーチャルチャット装置の動作について説明するフローチャート
【図３６】同対話文取得処理について説明するフローチャート
【図３７】同バーチャルチャットシステムの画面例を示す図
【図３８】同対話コーパス生成装置等を実現するコンピュータの外観図
【図３９】同対話コーパス生成装置等を実現するコンピュータのブロック図
【符号の説明】
【０２６２】
１  第一端末装置
２  対話コーパス生成装置
３  第二端末装置
４  端末装置
５  バーチャルチャット装置
１１  第一入力受付部
１２  第一送信部
１２  辞書情報格納部
１３  第一受信部
１４  第一出力部
２０  格納部
２１、５０５  対話文受付部
２２  自然言語処理部
２３  対話連係情報生成部
２４  対話連係情報蓄積部
２５  対話文蓄積部
３１  第二入力受付部
３２  第二送信部
３３  第二受信部
３４  第二出力部
２２１  辞書情報格納手段
２２２  文分割制御手段
２２３  処理結果構成手段
４０１  受付部
４０２  指示送信部
４０３  キャラクタ受信部
４０４  キャラクタ出力部
４０５  端末側対話文受付部
４０６  端末側対話文送信部
４０７  端末側対話文受信部
４０８  端末側対話文出力部
５０１  アプリ格納部
５０２  キャラクタ格納部
５０３  対話連係情報格納部
５０４  対話文格納部
５０６  サーバ側受信部
５０７  第一対話情報取得部
５０８  対話文取得部
５０９  対話文出力部
５１０  サーバ側送信部
２２２１  要素分割手段
２２２２  要素連結手段
２２２３  文字列取得手段
【図１】
2008299754.tif 000003
【図２】
2008299754.tif 000004
【図３】
2008299754.tif 000005
【図４】
2008299754.tif 000006
【図５】
2008299754.tif 000007
【図６】
2008299754.tif 000008
【図７】
2008299754.tif 000009
【図８】
2008299754.tif 000010
【図９】
2008299754.tif 000011
【図１０】
2008299754.tif 000012
【図１１】
2008299754.tif 000013
【図１２】
2008299754.tif 000014
【図１３】
2008299754.tif 000015
【図１４】
2008299754.tif 000016
【図１５】
2008299754.tif 000017
【図１６】
2008299754.tif 000018
【図１７】
2008299754.tif 000019
【図１８】
2008299754.tif 000020
【図１９】
2008299754.tif 000021
【図２０】
2008299754.tif 000022
【図２１】
2008299754.tif 000023
【図２２】
2008299754.tif 000024
【図２３】
2008299754.tif 000025
【図２４】
2008299754.tif 000026
【図２５】
2008299754.tif 000027
【図２６】
2008299754.tif 000028
【図２７】
2008299754.tif 000029
【図２８】
2008299754.tif 000030
【図２９】
2008299754.tif 000031
【図３０】
2008299754.tif 000032
【図３１】
2008299754.tif 000033
【図３２】
2008299754.tif 000034
【図３３】
2008299754.tif 000035
【図３４】
2008299754.tif 000036
【図３５】
2008299754.tif 000037
【図３６】
2008299754.tif 000038
【図３７】
2008299754.tif 000039
【図３８】
2008299754.tif 000040
【図３９】
2008299754.tif 000041