(57)【要約】【課題】従来、口語体の文章の解析の確度が低い、という課題があった。【解決手段】第一文字列と、文中における第一文字列の機能を特定する機能語情報と、前に接続され得る文字列の種類を特定する前接続記号と、後ろに接続され得る文字列の種類、または区切りであることを示す記号であり、当該記号により区切られた文中における第二文字列の種類を特定する後接続記号とを有する辞書情報を１以上格納しており、解析対象の文から区切りであることを示す後接続記号に対する第一文字列を取り出し、当該第一文字列をキーにして、文を２以上の第二文字列に区切り、当該第二文字列の最後尾の第一文字列の機能語情報または後接続記号から、第二文字列の種類を特定し、２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対にして出力する自然言語処理装置により、口語体の文章の解析が高い確度でできる。【選択図】図１
2008071001.tif 000002
【特許請求の範囲】
【請求項１】
文を格納し得る文格納部と、
第一文字列と、文中における前記第一文字列の機能または種類を特定する情報である機能語情報と、前記第一文字列の前に接続され得る文字列の種類を特定する情報である前接続記号と、前記第一文字列の後ろに接続され得る文字列の種類、または区切りであることを示す記号であり、当該記号により区切られた文中における第二文字列の種類を特定する情報である後接続記号とを対に有する辞書情報を1以上格納している辞書情報格納部と、
前記文格納部の文をメモリ上に読み出し、当該文から区切りであることを示す後接続記号に対する第一文字列を取り出し、当該第一文字列をキーにして、文を２以上の文字列である２以上の第二文字列に区切り、当該第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記第二文字列の種類を特定する情報を取得し、当該第二文字列と第二文字列の種類を特定する情報を取得する文分割制御部と、
前記文分割制御部が取得した２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対にして出力する出力部を具備する自然言語処理装置。
【請求項２】
前記第二文字列の種類は、
少なくとも文の主題、文の副題、動作状態を含み、
前記出力部は、
主題に対応する第二文字列、副題に対応する第二文字列、動作状態に対応する第二文字列の順に、少なくとも３つの文字列を出力する請求項１記載の自然言語処理装置。
【請求項３】
前記文分割制御部は、
前記文格納部の文をメモリ上に読み出し、当該文の先頭から予め決められたサイズ（ｎ文字[ｎは２以上の整数]）の第三文字列を切り出し、メモリ上に配置し、
前記切り出した第三文字列を構成する文字列であって、先頭からｎ文字の文字列から順に、前記辞書情報格納部に当該文字列が存在するか否かを判断し、ｎ文字の文字列が存在しない場合には、先頭から（ｎ−１）文字の文字列が前記辞書情報格納部に存在するか否かを判断し、かかる判断を、１文字ずつ文字数を減らして、文字列が存在するまで行い、または、文字列が存在しない場合には、先頭から１文字になるまでかかる判断を行い、
文字列が存在すると判断した場合には、当該文字列に対応する機能語情報と前接続記号と後接続記号とを、前記辞書情報格納部から読み出し、読み出した機能語情報と前接続記号と後接続記号とを当該文字列に付与し、
文字列が存在しない場合には、１文字の文字列に対して未知語であることを示す情報である未知語情報を付与する要素分割手段と、
前記要素分割手段が未知語情報を付与した連続する未知語であり、ひらがなの文字を連結し文字列を構成し、かつ連続する未知語であり、ひらがなではない文字を連結し文字列を構成し、
前記連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報を付与し、
隣接する２つの、前記要素分割手段が分割した要素またはまとまり情報を読み出し、
当該読み出した要素またはまとまり情報のうち、前出の要素またはまとまり情報の後接続記号と、後出の要素またはまとまり情報の前接続記号から、前出の要素またはまとまり情報と後出の要素またはまとまり情報が連結可能であるか否かを判断し、
連結可能な要素またはまとまり情報を一つの文字列にまとめて、当該まとめた文字列である第二文字列を複数の取得する要素連結手段と、
前記要素連結手段が取得した複数の各第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記各第二文字列の種類を特定する情報を決定し、
当該複数の各第二文字列の種類を特定する情報と、当該複数の各第二文字列を対にした複数の対の情報をメモリ上に配置する文字列取得手段を具備する請求項１または請求項２記載の自然言語処理装置。
【請求項４】
記憶媒体に、文を格納しており、
また、記憶媒体に、第一文字列と、文中における前記第一文字列の機能または種類を特定する情報である機能語情報と、前記第一文字列の前に接続され得る文字列の種類を特定する情報である前接続記号と、前記第一文字列の後ろに接続され得る文字列の種類、または区切りであることを示す記号であり、当該記号により区切られた文中における第二文字列の種類を特定する情報である後接続記号とを対に有する辞書情報を1以上格納しており、
コンピュータに、
前記記憶媒体から文をメモリ上に読み出し、当該文から区切りであることを示す後接続記号に対する第一文字列を取り出し、当該第一文字列をキーにして、文を２以上の文字列である２以上の第二文字列に区切り、当該第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記第二文字列の種類を特定する情報を取得し、当該第二文字列と第二文字列の種類を特定する情報を取得し、メモリ上に配置する文分割制御ステップと、
前記文分割制御ステップで取得した２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対にして、出力手段により出力する出力ステップとを実行させるためのプログラム。
【請求項５】
前記文分割制御ステップは、
前記記憶媒体から文をメモリ上に読み出し、当該文の先頭から予め決められたサイズ（ｎ文字[ｎは２以上の整数]）の第三文字列を切り出し、メモリ上に配置し、
前記切り出した第三文字列を構成する文字列であって、先頭からｎ文字の文字列から順に、前記記憶媒体に当該文字列が存在するか否かを判断し、ｎ文字の文字列が存在しない場合には、先頭から（ｎ−１）文字の文字列が前記記憶媒体に存在するか否かを判断し、かかる判断を、１文字ずつ文字数を減らして、文字列が存在するまで行い、または、文字列が存在しない場合には、先頭から１文字になるまでかかる判断を行い、
文字列が存在すると判断した場合には、当該文字列に対応する機能語情報と前接続記号と後接続記号とを、前記記憶媒体から読み出し、読み出した機能語情報と前接続記号と後接続記号とを当該文字列に付与し、
文字列が存在しない場合には、１文字の文字列に対して未知語であることを示す情報である未知語情報を付与する要素分割ステップと、
前記要素分割ステップで未知語情報を付与した連続する未知語であり、ひらがなの文字を連結し文字列を構成し、かつ連続する未知語であり、ひらがなではない文字を連結し文字列を構成し、
前記連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報を付与し、
隣接する２つの、前記要素分割ステップで分割した要素またはまとまり情報を読み出し、
当該読み出した要素またはまとまり情報のうち、前出の要素またはまとまり情報の後接続記号と、後出の要素またはまとまり情報の前接続記号から、前出の要素またはまとまり情報と後出の要素またはまとまり情報が連結可能であるか否かを判断し、
連結可能な要素またはまとまり情報を一つの文字列にまとめて、当該まとめた文字列である第二文字列を複数の取得し、メモリ上に配置する要素連結ステップと、
前記要素連結ステップで取得した複数の各第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記各第二文字列の種類を特定する情報を決定し、
当該複数の各第二文字列の種類を特定する情報と、当該複数の各第二文字列を対にした複数の対の情報をメモリ上に配置する文字列取得ステップを具備する請求項４記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自然言語を処理する自然言語処理装置等に関するものである。
【背景技術】
【０００２】
従来の日本語などを処理する言語処理装置において、日本語の文に対する形態素解析ツールがある（非特許文献１参照）。
【０００３】
また、ソース自然言語のテキスト文（好適には日本語)を受信し、目的自然言語(好適には英語)に翻訳する自動自然言語翻訳システムがある（例えば、特許文献１参照。）本システムは、ソーステキストに含まれる「かな」を目的言語のアルファベット文字に変換し、語句やフレーズの区切りの存在を「かな」のあいだに認識させる。さらに、本システムは、ソーステキストに形態素解析と統語解析を同時に実行する。
【特許文献１】特開２００６−１６４２９３公報（第１頁、第１図等）
【非特許文献１】インターネット<ＵＲＬ：http://chasen.naist.jp/hiki/ChaSen/>
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来の日本語などの自然言語を処理する装置である自然言語処理装置においては、口語体の文章を高い確度で解析できない、という課題があった。
【０００５】
さらに具体的には、文法がいいかげんな文や、倒置が発生している文や、主語が省略されている文などは、形態素解析を用いる言語解析方法において、品詞の並び順を文法に照らし合わせることで、文を解析する仕組み上、正しく解析できないことも多かった。
【課題を解決するための手段】
【０００６】
本第一の発明の自然言語処理装置は、文を格納し得る文格納部と、第一文字列と、文中における前記第一文字列の機能または種類を特定する情報である機能語情報と、前記第一文字列の前に接続され得る文字列の種類を特定する情報である前接続記号と、前記第一文字列の後ろに接続され得る文字列の種類、または区切りであることを示す記号であり、当該記号により区切られた文中における第二文字列の種類を特定する情報である後接続記号とを対に有する辞書情報を1以上格納している辞書情報格納部と、前記文格納部の文をメモリ上に読み出し、当該文から区切りであることを示す後接続記号に対する第一文字列を取り出し、当該第一文字列をキーにして、文を２以上の文字列である２以上の第二文字列に区切り、当該第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記第二文字列の種類を特定する情報を取得し、当該第二文字列と第二文字列の種類を特定する情報を取得する文分割制御部と、前記文分割制御部が取得した２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対にして出力する出力部を具備する自然言語処理装置である。
【０００７】
かかる構成により、文を、1以上の用語から構成されるまとまりのある複数の文字列に正しく分割できる。その結果、出力部の出力結果を従来の機械翻訳装置に渡した場合、文法的な正確さが不十分な話し言葉でも、正しく機械翻訳が可能である。
【０００８】
また、本第二の発明の自然言語処理装置は、第一の発明に対して、前記第二文字列の種類は、少なくとも文の主題、文の副題、動作状態を含み、前記出力部は、主題に対応する第二文字列、副題に対応する第二文字列、動作状態に対応する第二文字列の順に、少なくとも３つの文字列を出力する自然言語処理装置である。
【０００９】
かかる構成により、例えば、倒置が発生している文でも、正しく文の構造が解析できる。そのため、出力部の出力結果を従来の機械翻訳装置に渡した場合、倒置が発生している口語体の文でも、正しく機械翻訳が可能である。
【００１０】
また、本第三の発明の自然言語処理装置は、第一、第二いずれかの発明に対して、前記文分割制御部は、前記文格納部の文をメモリ上に読み出し、当該文の先頭から予め決められたサイズ（ｎ文字［ｎは２以上の整数］）の第三文字列を切り出し、メモリ上に配置し、前記切り出した第三文字列を構成する文字列であって、先頭からｎ文字の文字列から順に、前記辞書情報格納部に当該文字列が存在するか否かを判断し、ｎ文字の文字列が存在しない場合には、先頭から（ｎ−１）文字の文字列が前記辞書情報格納部に存在するか否かを判断し、かかる判断を、１文字ずつ文字数を減らして、文字列が存在するまで行い、または、文字列が存在しない場合には、先頭から１文字になるまでかかる判断を行い、文字列が存在すると判断した場合には、当該文字列に対応する機能語情報と前接続記号と後接続記号とを、前記辞書情報格納部から読み出し、読み出した機能語情報と前接続記号と後接続記号とを当該文字列に付与し、文字列が存在しない場合には、１文字の文字列に対して未知語であることを示す情報である未知語情報を付与する要素分割手段と、前記要素分割手段が未知語情報を付与した連続する未知語であり、ひらがなの文字を連結し文字列を構成し、かつ連続する未知語であり、ひらがなではない文字を連結し文字列を構成し、前記連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報を付与し、隣接する２つの、前記要素分割手段が分割した要素またはまとまり情報を読み出し、当該読み出した要素またはまとまり情報のうち、前出の要素またはまとまり情報の後接続記号と、後出の要素またはまとまり情報の前接続記号から、前出の要素またはまとまり情報と後出の要素またはまとまり情報が連結可能であるか否かを判断し、連結可能な要素またはまとまり情報を一つの文字列にまとめて、当該まとめた文字列である第二文字列を複数の取得する要素連結手段と、前記要素連結手段が取得した複数の各第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記各第二文字列の種類を特定する情報を決定し、当該複数の各第二文字列の種類を特定する情報と、当該複数の各第二文字列を対にした複数の対の情報をメモリ上に配置する文字列取得手段を具備する自然言語処理装置である。
【００１１】
かかる構成により、口語文でも、正しく解析できる。
【発明の効果】
【００１２】
本発明による自然言語処理装置によれば、自然言語の文章のうち、例えば、口語体の文章でも、高い確度で解析できる。
【発明を実施するための最良の形態】
【００１３】
以下、自然言語処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
（実施の形態）
【００１４】
図１は、本実施の形態における自然言語処理装置のブロック図である。
【００１５】
自然言語処理装置は、受付部１０、文格納部１１、辞書情報格納部１２、文分割制御部１３、出力部１４を具備する。
【００１６】
文分割制御部１３は、要素分割手段１３１、要素連結手段１３２、文字列取得手段１３３を具備する。
【００１７】
受付部１０は、ユーザや外部の装置等からの指示や入力を受け付ける。指示とは、例えば、自然言語処理の開始指示である。入力は、例えば、解析対象の文の入力である。なお、この文は、後述する文格納部１１に、少なくとも一時的に格納される。指示や入力の入力手段は、キーボードやマウスやメニュー画面やマイクによるもの等、何でも良い。受付部１０は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【００１８】
文格納部１１は、文を格納し得る。文とは、文の情報であり、テキストデータである。文格納部１１は、複数の文を格納していても良い。文格納部１１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。なお、文格納部１１の文は、いわゆるＷｅｂ上のホームページの文でも良いし、図示しないマイクが受け付けたユーザの音声を、音声認識し、文字列の文に変換した文などでも良い。
【００１９】
辞書情報格納部１２は、辞書情報を1以上格納している。辞書情報は、第一文字列と、機能語情報と、前接続記号と、後接続記号を対に有する情報である。第一文字列は、1文字以上の文字からなる。機能語情報とは、文中における第一文字列の機能を特定する情報である。また、機能語情報とは、第一文字列の種類を特定する情報であるともいえる。また、前接続記号とは、第一文字列の前に接続され得る文字列の種類を特定する情報である。後接続記号とは、第一文字列の後ろに接続され得る文字列の種類、または区切りであることを示す記号であり、当該記号により区切られた文中における第二文字列の種類を特定する情報である。なお、第二文字列は、第一文字列または２以上の第一文字列が結合した文字列である。第二文字列の種類は、例えば、「文の主題」、「文の副題」、「動作状態」、「準主題」などである。「文の主題」は、解析対象の文の主題を示す文字列であることを示す。「文の副題」は、解析対象の文の副題を示す文字列であることを示す。「動作状態」は、何らかの動作や状態を示す文字列であることを示す。「動作状態」は、「動作」と「状態」という具合に、２つに区別されていても良い。「準主題」は、サブの主題であることを示す。辞書情報格納部１２は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００２０】
文分割制御部１３は、文格納部１１の文をメモリ上に読み出し、当該文から区切りであることを示す後接続記号に対する第一文字列を取り出し、当該第一文字列をキーにして、文を２以上の文字列である２以上の第二文字列に区切り、当該第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、第二文字列の種類を特定する情報を取得し、当該第二文字列と第二文字列の種類を特定する情報を取得し、メモリ上に配置する。第一文字列は、辞書情報格納部１２に存在し、文分割制御部１３は、その第一文字列を読み出す。文分割制御部１３は、通常、ＭＰＵやメモリ等から実現され得る。文分割制御部１３の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２１】
文分割制御部１３を構成する要素分割手段１３１は、文格納部１１の文をメモリ上に読み出し、当該文の先頭から予め決められたサイズ（ｎ文字[ｎは２以上の整数]）の第三文字列を切り出し、メモリ上に配置し、当該切り出した第三文字列を構成する文字列であって、先頭からｎ文字の文字列から順に、辞書情報格納部１２に当該文字列（この文字列は、第一文字列である。）が存在するか否かを判断し、ｎ文字の文字列が存在しない場合には、先頭から（ｎ−１）文字の文字列が辞書情報格納部１２に当該文字列が存在するか否かを判断し、かかる判断を、１文字ずつ文字数を減らして、文字列が辞書情報格納部１２に存在するまで行い、または、文字列が辞書情報格納部１２に存在しない場合には、先頭から１文字になるまでかかる判断を行い、文字列が辞書情報格納部１２に存在すると判断した場合には、当該文字列（この文字列は、第一文字列である。）に対応する機能語情報と前接続記号と後接続記号とを、辞書情報格納部１２から読み出し、読み出した機能語情報と前接続記号と後接続記号とを当該文字列に付与し、文字列が存在しない場合には、１文字の文字列に対して未知語であることを示す情報である未知語情報を付与する。
【００２２】
要素連結手段１３２は、要素分割手段１３１が未知語情報を付与した連続する未知語であり、ひらがなの文字を連結し文字列を構成し、かつ連続する未知語であり、ひらがなではない文字を連結し文字列を構成し、当該連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報を付与し、隣接する要素分割手段１３１が分割した要素またはまとまり情報が有する、前出の要素またはまとまり情報の後接続記号と、後出の要素またはまとまり情報の前接続記号を読み出し、当該前出の要素またはまとまり情報の後接続記号と、後出の要素またはまとまり情報の前接続記号から、前出の要素またはまとまり情報と後出の要素またはまとまり情報が連結可能であるか否かを判断し、連結可能な要素またはまとまり情報を一つの文字列にまとめて、複数の第二文字列を取得する。
【００２３】
文字列取得手段１３３は、要素連結手段１３２が取得した複数の各第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、各第二文字列の種類を特定する情報を決定し、当該複数の各第二文字列の種類を特定する情報と、当該複数の各第二文字列を対にした複数の対の情報をメモリ上に配置する。
【００２４】
要素分割手段１３１、要素連結手段１３２、および文字列取得手段１３３は、通常、ＭＰＵやメモリ等から実現され得る。要素分割手段１３１等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００２５】
出力部１４は、文分割制御部１３が取得した２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対にして出力する。また、出力部１４は、予め出力する第二文字列の種類の順序に関する情報である出力順序情報を保持しており、かかる出力順序情報を読み出し、当該出力順序情報に従って、複数の第二文字列を、正しい順序になるように文として出力しても良い。具体的には、出力部１４は、主題に対応する第二文字列、副題に対応する第二文字列、動作状態に対応する第二文字列の順に、少なくとも３つの文字列を出力する。その結果、出力部１４は、文法的に正しい順序（例えば、正しく機械翻訳するために適した順序）で文を出力することとなる。ここで、出力とは、ディスプレイへの表示、プリンタへの印字、音出力、外部の装置への送信、記録媒体への蓄積等を含む概念である。また、出力とは、他の関数や処理装置に、第二文字列と、第二文字列の種類を特定する情報を対にして渡すことも含む。出力部１４は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部１４は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。なお、出力順序情報は、文の構造を示す情報である場合が多く、文構造情報ともいうこととする。
【００２６】
次に、自然言語処理装置の動作について図２から図５のフローチャートを用いて説明する。
【００２７】
（ステップＳ２０１）受付部１０は、ユーザまたは外部の装置から自然言語処理の開始指示を受け付けたか否かを判断する。自然言語処理の開始指示を受け付ければステップＳ２０２に行き、自然言語処理の開始指示を受け付けなければステップＳ２０１に戻る。
【００２８】
（ステップＳ２０２）文分割制御部１３の要素分割手段１３１は、文格納部１１の文をメモリ上に読み出す。読み出す文は、自然言語処理の開始指示により示される文である。
【００２９】
（ステップＳ２０３）要素分割手段１３１は、カウンタｉに１を代入する。
【００３０】
（ステップＳ２０４）要素分割手段１３１は、ステップＳ２０２でメモリ上に配置した文の中に、ｉ番目の文字が存在するか否かを判断する。ｉ番目の文字が存在すればステップＳ２０５に行き、ｉ番目の文字が存在しなければステップＳ２１５に行く。
【００３１】
（ステップＳ２０５）要素分割手段１３１は、ステップＳ２０２でメモリ上に配置した文の中の、ｉ番目の文字から（ｉ＋ｎ）番目の文字までの文字列を取得し、バッファ上に置く。ｎは、固定の数であり、例えば、「５」である。なお、処理対象の文に、ｉ番目の文字から（ｉ＋ｎ）番目の文字まで存在しない場合、要素分割手段１３１は、ｉ番目の文字から文の最終文字までを取得し、バッファ上に置く。つまり、要素分割手段１３１は、ｉ番目の文字から（ｉ＋ｎ）番目以下の文字までの文字列を取得し、バッファ上に置く。
【００３２】
（ステップＳ２０６）要素分割手段１３１は、ステップＳ２０５でバッファ上に配置した文字列を、辞書情報格納部１２に検索しにいく。
【００３３】
（ステップＳ２０７）要素分割手段１３１は、要素分割手段１３１は、ステップＳ２０６における検索結果において、ステップＳ２０５でバッファ上に配置した文字列が、辞書情報格納部１２に存在したか否かを判断する。文字列が存在すればステップＳ２１２に行き、文字列が存在しなければステップＳ２０８に行く。なお、文字列が存在する場合とは、バッファ上に配置した文字列と一致する文字列が、辞書情報が有する第一文字列に存在する場合である。
【００３４】
（ステップＳ２０８）要素分割手段１３１は、ステップＳ２０５でバッファ上に配置した文字列の長さが、1文字であるか否かを判断する。1文字であればステップＳ２１０に行き、1文字でなければステップＳ２０９に行く。
【００３５】
（ステップＳ２０９）要素分割手段１３１は、ステップＳ２０５でバッファ上に配置した文字列から最後の文字を削除し、一文字少なくして、ｉ番目から文字列を取得し、バッファ上に配置する。なお、要素分割手段１３１は、単に、バッファ上の最終文字を消去するだけでも良い。ステップＳ２０６に戻る。
【００３６】
（ステップＳ２１０）要素分割手段１３１は、ｉ番目の文字に未知語であることを示す情報である「未知語」フラグを付与する。「「未知語」フラグを付与する」とは、ｉ番目の文字が他の文字または文字列と区別できれば良く、例えば、他の文字または文字列に何らかのフラグを付与し、未知語であるｉ番目の文字には、何も付与しなくても良い。さらに、未知語を格納するバッファがあり、そのバッファに未知語であるｉ番目の文字を書き込む処理も、「未知語」フラグを付与する処理とする。
【００３７】
（ステップＳ２１１）要素分割手段１３１は、カウンタｉを１、インクリメントする。ステップＳ２０４に戻る。
【００３８】
（ステップＳ２１２）要素分割手段１３１は、バッファ上に配置した文字列と一致する第一文字列と対になる機能語情報、前接続記号、および後接続記号を、辞書情報格納部１２から読み出し、メモリ上に配置する。
【００３９】
（ステップＳ２１３）要素分割手段１３１は、バッファ上に配置した文字列に対して、ステップＳ２１２で読み出した機能語情報、前接続記号、および後接続記号を付与する。
【００４０】
（ステップＳ２１４）要素分割手段１３１は、カウンタｉに、「ｉ＋文字列の文字数」を代入する。ステップＳ２０４に戻る。なお、「文字列の文字数」の「文字列」は、バッファ上に配置した文字列である。
【００４１】
（ステップＳ２１５）要素連結手段１３２は、要素分割手段１３１が分割した文字列のうち、連結可能な文字列を連結する。かかる連結処理について、図３のフローチャートを用いて、詳細に説明する。
【００４２】
（ステップＳ２１６）文字列取得手段１３３は、要素連結手段１３２が取得した複数の各第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、各第二文字列の種類を特定する情報を決定し、当該複数の各第二文字列の種類を特定する情報と、当該複数の各第二文字列を対にした複数の対の情報をメモリ上に配置する。かかる処理（文分割処理、という）について、図４のフローチャートを用いて、詳細に説明する。
【００４３】
（ステップＳ２１７）出力部１４は、ステップＳ２１６で取得した２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対にして出力する。かかる出力処理について、図５のフローチャートを用いて、詳細に説明する。処理を終了する。
【００４４】
次に、ステップＳ２１５の連結処理について、図３のフローチャートを用いて、詳細に説明する。
【００４５】
（ステップＳ３０１）要素連結手段１３２は、要素分割手段１３１が未知語フラグ（未知語情報の一種）を付与した連続する未知語であり、ひらがなの文字を連結し文字列を構成する。また、要素連結手段１３２は、かつ要素分割手段１３１が未知語フラグを付与した連続する未知語であり、ひらがなではない文字を連結し文字列を構成する。
【００４６】
（ステップＳ３０２）要素連結手段１３２は、ステップＳ３０１で連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報を付与する。まとまり情報は、機能語情報の一種である。まとまり情報は、文字列に付与される未知語フラグでも良い。
【００４７】
（ステップＳ３０３）要素連結手段１３２は、カウンタｉに１を代入する。
【００４８】
（ステップＳ３０４）要素連結手段１３２は、処理対象の文中に、（ｉ＋１）番目の、まとめられた文字列（１文字の場合もある）が存在するか否かを判断する。（ｉ＋１）番目の文字列が存在すればステップＳ３０５に行き、（ｉ＋１）番目の文字列が存在しなければ上位関数にリターンする。
【００４９】
（ステップＳ３０５）要素連結手段１３２は、ｉ番目の文字列の後接続記号と、（ｉ＋１）番目の文字列の前接続記号を読み出し、メモリ上に配置する。なお、ｉ番目の文字列の後接続記号は、ｉ番目の文字列の最後の第一文字列と対になる後接続記号である。また、（ｉ＋１）番目の文字列の前接続記号は、（ｉ＋１）番目の文字列の先頭の第一文字列と対になる前接続記号である。
【００５０】
（ステップＳ３０６）要素連結手段１３２は、ステップＳ３０５で読み出したｉ番目の文字列の後接続記号と、（ｉ＋１）番目の文字列の前接続記号から、ｉ番目の文字列と（ｉ＋１）番目の文字列が連結可能であるか否かを判断する。なお、２つの連続する文字列が連結可能であるか否かは、前出の後接続記号と、後出の前接続記号から判断可能であり、要素連結手段１３２は、例えば、連結可能な２つの文字列の後接続記号と前接続記号の組の情報（ルール）を保持している。
【００５１】
（ステップＳ３０７）要素連結手段１３２は、ステップＳ３０６における判断結果が、連結可能である、との判断であればステップＳ３０８に行き、連結可能でない、との判断であればステップＳ３０９に行く。
【００５２】
（ステップＳ３０８）要素連結手段１３２は、ｉ番目の文字列と、（ｉ＋１）番目の文字列を連結する。文字列の連結とは、連結した文字列をバッファに書き込む処理でも良いし、２つの文字列をリンク付けする処理等でも良い。
【００５３】
（ステップＳ３０９）要素連結手段１３２は、カウンタｉを１、インクリメントする。ステップＳ３０４に行く。
【００５４】
次に、ステップＳ２１６の文分割処理について、図４のフローチャートを用いて、詳細に説明する。
【００５５】
（ステップＳ４０１）文字列取得手段１３３は、カウンタｉに１を代入する。
【００５６】
（ステップＳ４０２）文字列取得手段１３３は、処理対処の文中に、ｉ番目の第二文字列が存在するか否かを判断する。ｉ番目の第二文字列が存在すればステップＳ４０３に行き、ｉ番目の第二文字列が存在しなければ上位関数にリターンする。
【００５７】
（ステップＳ４０３）文字列取得手段１３３は、ｉ番目の第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、各第二文字列の種類を特定する情報を決定する。具体的には、例えば、第二文字列の種類は、例えば、「主題」、「副題」、「動作」、または「状態」であり、第二文字列の最後尾の第一文字列に対応する機能語情報が「動作」または「状態」であれば、第二文字列の種類は「動作」または「状態」であると、文字列取得手段１３３は決定する。また、第二文字列の最後尾の第一文字列に対応する後接続記号が「主題」または「副題」を示す記号である場合は、第二文字列の種類は「主題」または「副題」であると、文字列取得手段１３３は決定する。そして、文字列取得手段１３３は、ｉ番目の第二文字列と、第二文字列の種類を特定する情報を取り出し、メモリ上に配置する。
【００５８】
（ステップＳ４０４）文字列取得手段１３３は、カウンタｉを１、インクリメントする。ステップＳ４０２に戻る。
【００５９】
次に、ステップＳ２１７の出力処理について、図５のフローチャートを用いて、詳細に説明する。
【００６０】
（ステップＳ５０１）出力部１４は、出力する文構造の情報を取得する。出力する文構造の情報は、例えば、出力部１４があらかじめ格納しており、この情報を出力部１４が読み出す。また、出力する文構造の情報とは、例えば、「主題，副題，動作｜状態」である。これは、「主題を示す文字列」、「副題を示す文字列」，「動作を示す文字列」または「状態を示す文字列」の順で出力することを示す。「主題」、「副題」、「動作」、「状態」などは、文中の文字列の機能や、意義などを示すことを示す。また、「主題」、「副題」、「動作」、「状態」などを、以下、適宜、文要素という。
【００６１】
（ステップＳ５０２）出力部１４は、カウンタｉに１を代入する。
【００６２】
（ステップＳ５０３）出力部１４は、ステップＳ５０１で読み出した文構造の情報に、ｉ番目の文要素が存在するか否かを判断する。ｉ番目の文要素が存在すればステップＳ５０４に行き、ｉ番目の文要素が存在しなければステップＳ５０８に行く。
【００６３】
（ステップＳ５０４）出力部１４は、ｉ番目の文要素（例えば、「主題」）の情報を読み出し、当該文要素に対応する種類（例えば、「主題」）を示す第二文字列を検索する。
【００６４】
（ステップＳ５０５）出力部１４は、文要素に対応する種類（例えば、「主題」）を示す第二文字列が存在すればステップＳ５０６に行き、存在しなければステップＳ５０７に行く。
【００６５】
（ステップＳ５０６）出力部１４は、文要素に対応する種類（例えば、「主題」）を示す第二文字列を取得し、当該第二文字列をバッファに追記する。
【００６６】
（ステップＳ５０７）出力部１４は、カウンタｉを１、インクリメントする。ステップＳ５０３に戻る。
【００６７】
（ステップＳ５０８）出力部１４は、ステップＳ５０６で第二文字列を追記していったバッファ内の文を出力する。この文は、１以上の第二文字列の並びで構成されている。上位関数にリターンする。
【００６８】
なお、図５のフローチャートにおいて、第二文字列の並びで構成される文を出力した。しかし、文分割制御部１３が取得した２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対にして出力しても良い。かかる出力結果から、上述した文（完成した文）は構成される。
【００６９】
以下、本実施の形態における自然言語処理装置の具体的な動作について説明する。自然言語処理装置の概念図は図１である。
【００７０】
まず、辞書情報格納部１２は、図６に示す辞書情報管理表を格納している。辞書情報管理表は、「第一文字列」「前接続記号」「後接続記号」「機能語情報」の属性を有するレコードを１以上格納している。
【００７１】
図６の「前接続記号」の「−&」は、前に、未知語情報で識別される未知語や、「ｏｂｊｅｃｔ」で識別される対象物などが連結されることを示す。「前接続記号」は、他に「&&」などがある。「&&」は、前に、「名前」や、未知語や、「ｏｂｊｅｃｔ」で識別される対象物などが連結されることを示す。「名前」とは、登録している人や物などの名前である。
【００７２】
また、「後接続記号」の「ｓ％」は、区切りになり得て、「副題」となり得ることを示す。また、「後接続記号」の「&&」は、後に、「名前」や、未知語情報で識別される未知語や、「ｏｂｊｅｃｔ」で識別される対象物などが連結されることを示す。また、「後接続記号」の「ｎ％」は、区切りになり得て、「主題」となり得ることを示す。また、「後接続記号」の「−−」は、「ａｃｔｉｏｎ」で識別される文字列が連結されることを示す。また、「後接続記号」の「％=」は、区切りになり得て、かつ、「ｏｂｊｅｃｔ」で識別される対象物や「名前」などが連結されることを示す。また、「後接続記号」の「ｏ％」は、区切りになり得て、「準主題」となり得ることを示す。また、「機能語情報」の「ｏｂｊｅｃｔ」は、対象物を示す。また、「機能語情報」の「ａｃｔｉｏｎ」は、動作を示す。さらに、「機能語情報」の「ｓｔａｔｅ」は、状態を示す。
（具体例１）
【００７３】
かかる状況で、ユーザは、解析対象の文「私と行った佐藤さんが」という口語体の文と、自然言語処理の開始指示を入力した、とする。この文は、「私と行った」と「佐藤さんが」が倒置を起こしている。
【００７４】
まず、受付部１０は、「私と行った佐藤さんが」という口語体の文の情報と、自然言語処理の開始指示を受け付ける。そして、受付部１０は、「私と行った佐藤さんが」という口語体の文を、文格納部１１に一時的に格納する。
【００７５】
次に、文分割制御部１３の要素分割手段１３１は、文「私と行った佐藤さんが」を取得し、メモリ上に配置する（図７の（１））。そして、要素分割手段１３１は、メモリ上に配置した文の中の、１番目の文字から６番目（上記の「ｎ」は「５」である）の文字までの文字列「私と行った佐」を取得し、バッファ上に置く（図７の（２））。そして、要素分割手段１３１は、文字列「私と行った佐」を、辞書情報格納部１２に検索しにいく。しかし、文字列「私と行った佐」に合致する第一文字列が、図６の辞書情報管理表に存在しないので、要素分割手段１３１は、先の文字列より１文字少ない文字列「私と行った」を構成する。そして、要素分割手段１３１は、文字列「私と行った」をバッファ上に置く（図７の（３））。そして、同様に、要素分割手段１３１は、文字列「私と行った」を、辞書情報格納部１２に検索しにいく。しかし、文字列「私と行った」に合致する第一文字列が、図６の辞書情報管理表に存在しないので、要素分割手段１３１は、先の文字列より１文字少ない文字列「私と行っ」を構成し、バッファ上に置く（図７の（４））。そして、要素分割手段１３１は、文字列「私と行っ」を、辞書情報格納部１２に検索しにいく。同様に、文字列「私と行っ」に合致する第一文字列が、図６の辞書情報管理表に存在しない。そして、要素分割手段１３１は、同様の処理により、１文字ずつ文字数を少なくして、辞書情報格納部１２に検索しにいく（図７の（５）から（７））。そして、要素分割手段１３１は、最後の文字「私」も図６の辞書情報管理表に存在しない、と判断する。そして、要素分割手段１３１は、文字「私」に、未知語であることを示す情報である「未知語」フラグを付与する（図７の（８））。なお、ここでの「未知語」フラグは、情報「未知語」である。
【００７６】
次に、要素分割手段１３１は、処理対象の文字列の先頭のポインタを１ずらす。そして、要素分割手段１３１は、２番目の文字から６文字分の文字列「と行った佐藤」を読み出し、バッファに配置する（図７の（９））。そして、同様に、要素分割手段１３１は、文字列「と行った佐藤」を、辞書情報格納部１２に検索しにいく。同様に、文字列「と行った佐藤」に合致する第一文字列が、図６の辞書情報管理表に存在しない。そして、要素分割手段１３１は、同様の処理により、１文字ずつ文字数を少なくして、辞書情報格納部１２に検索しにいく（図７の（１０）から（１４））。そして、要素分割手段１３１は、最後の文字「と」は図６の辞書情報管理表に存在する、と判断する（図６の第１レコードを参照）。次に、要素分割手段１３１は、バッファ上に配置した文字列と一致する第一文字列「と」と対になる前接続記号「−&」、後接続記号「ｓ％」、および機能語情報「ｏｂｊｅｃｔ」を、辞書情報格納部１２から読み出し、メモリ上に配置する。そして、要素分割手段１３１は、バッファ上に配置した文字列「と」に対して、読み出した前接続記号「−&」、後接続記号「ｓ％」、および機能語情報「ｏｂｊｅｃｔ」を付与する（図７の（１５））。
【００７７】
以上の処理を繰り返し、処理対象の文「私と行った佐藤さんが」について、図７の（ｘ）のようなデータを得る。つまり、「私」「行」「佐」「藤」に対して、「未知語」が付与される。また、「と」に対して、「−&：ｓ％：ｏｂｊｅｃｔ」が付与される。また、「っ」に対して、「−&：−−：ａｃｔｉｏｎ」が付与される。また、「た」に対して、「−&：％＝：ａｃｔｉｏｎ」が付与される。また、「さん」に対して、「−&：&&：ｏｂｊｅｃｔ」が付与される。さらに、「が」に対して、「−&：ｎ％：ｏｂｊｅｃｔ」が付与される（図７の（ｘ））。
【００７８】
次に、要素連結手段１３２は、要素分割手段１３１が未知語フラグ「未知語」を付与した連続する未知語であり、ひらがなではない文字「佐」と「藤」を連結し文字列「佐藤」を構成する。そして、要素連結手段１３２は、連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報（ここでは、「未知語」）を付与し、バッファに書き込む。バッファ内の情報は、図８の（１）である。
【００７９】
次に、要素連結手段１３２は、図８（１）の各前後するまとまりの文字列（例えば、「私」と「と」）が連結するか否かを判断し、連結するものは連結させる。
【００８０】
例えば、「私」と「と」は、「私」が未知語で、「と」の前接続記号「−&」により、要素連結手段１３２は、連結すると判断する。なぜなら、前接続記号「−&」は、前の未知語と連結するからである。そして、要素連結手段１３２は、「私と」に対して、「：ｓ％：ｏｂｊｅｃｔ」を付与する（図８（２）参照）。「：ｓ％：ｏｂｊｅｃｔ」は、前接続記号はなし、後接続記号は「％ｓ」、機能語情報は「ｏｂｊｅｃｔ」であることを示す。
【００８１】
また、要素連結手段１３２は、「私と」と「行」は連結しない、と判断する。「私と」の後接続記号「％ｓ」は区切りを示すからである。
【００８２】
そして、要素連結手段１３２は、「行」と「っ」、「行っ」と「た」は、それぞれ連結する、と判断し、連結させる。つまり、要素連結手段１３２は、文字列「行った」を構成し、かつ、「：％＝：ａｃｔｉｏｎ」を付与する（図８（２）参照）。
【００８３】
そして、要素連結手段１３２は、「行った」と「佐藤」は連結しない、と判断する。「行った」の後接続記号「％＝」は区切りを示すからである。
【００８４】
次に、同様に、要素連結手段１３２は、「佐藤」「さん」「が」が連結する、と判断し、文字列「佐藤さんが」を構成し、かつ、「：ｎ％：ｏｂｊｅｃｔ」を付与する（図８（２）参照）。
【００８５】
以上の処理により、要素連結手段１３２は、３つの第二文字列を得る（図８（２）参照）。
【００８６】
次に、文字列取得手段１３３は、１つ目の第二文字列「私と」と、第二文字列の最後尾の第一文字列に対応する機能語情報「ｓ％」および後接続記号「ｏｂｊｅｃｔ」を取得する。そして、文字列取得手段１３３は、機能語情報「ｓ％」から、１つ目の第二文字列「私と」は、「副題」である、と第二文字列の種類を決定する。そして、文字列取得手段１３３は、１番目の第二文字列「私と」と、第二文字列の種類を特定する情報「副題」を取り出し、メモリ上に配置する（図８（３）参照）。
【００８７】
次に、文字列取得手段１３３は、２つ目の第二文字列「行った」と、第二文字列の最後尾の第一文字列に対応する機能語情報「％＝」および後接続記号「ａｃｔｉｏｎ」を取得する。そして、文字列取得手段１３３は、後接続記号「ａｃｔｉｏｎ」から、２つ目の第二文字列「行った」は、「動作」である、と第二文字列の種類を決定する。そして、文字列取得手段１３３は、２番目の第二文字列「行った」と、第二文字列の種類を特定する情報「動作」を取り出し、メモリ上に配置する（図８（３）参照）。
【００８８】
さらに、文字列取得手段１３３は、３つ目の第二文字列「佐藤さんが」と、第二文字列の最後尾の第一文字列に対応する機能語情報「ｎ％」および後接続記号「ｏｂｊｅｃｔ」を取得する。そして、文字列取得手段１３３は、機能語情報「ｎ％」から、３つ目の第二文字列「佐藤さんが」は、「主題」である、と第二文字列の種類を決定する。そして、文字列取得手段１３３は、３番目の第二文字列「佐藤さんが」と、第二文字列の種類を特定する情報「主題」を取り出し、メモリ上に配置する（図８（３）参照）。
【００８９】
次に、出力部１４は、保持している情報であり、出力する文構造の情報を読み出す。この文構造の情報の例を図９に示す。そして、図８（３）のメモリ上に配置した情報が有する第二文字列の種類と、図９の文構造の情報の文要素の並びが一致するように、図８（３）のメモリ上に配置した第二文字列を並べる（図９の矢印参照）。その結果、出力部１４は、「佐藤さんが私と行った」を得る。そして、出力部１４は、得た文「佐藤さんが私と行った」を、出力手段により出力する。出力とは、ディスプレイへの表示や、記録媒体への蓄積や、外部装置への送信などである。
（具体例２）
【００９０】
辞書情報格納部１２において、図６に示す辞書情報管理表が格納されている状況において、ユーザは、解析対象の文「私と佐藤さんが行った  映画館に」という口語体の文と、自然言語処理の開始指示を入力した、とする。
【００９１】
上記の具体例１と同様に、要素分割手段１３１は、文「私と佐藤さんが行った  映画館に」を処理する。つまり、要素分割手段１３１は、辞書情報格納部１２を検索し、文「私と佐藤さんが行った  映画館に」を第一文字列、または未知語に分割する。そして、辞書情報の第一文字列に合致した文字列には、当該第一文字列と対になる前接続記号、後接続記号、および機能語情報を付与し、メモリ上に配置する。その結果得られた情報を、図１０に示す。図１０において「文字列」は分割された文字列（１文字も含む）、「前」は前接続記号、「後」は後接続記号、「機」は機能語情報である。前接続記号、後接続記号の「−」は、定義なし、を意味する。「−」は、未知語に対して付される。図１０の機能語情報における「未」は「未知語」、「ｏ」は「ｏｂｊｅｃｔ」、「ａ」は「ａｃｔｉｏｎ」である。
【００９２】
次に、要素連結手段１３２は、上述した説明と同様の処理により、図１０の文字または文字列を連結し、４つの第二文字列と、各第二文字列に対応する前接続記号、後接続記号、および機能語情報を取得し、メモリ上に配置する。かかる情報を図１１に示す。図１１の前接続記号は、第二文字列の先頭の文字または文字列の前接続記号が採用される。また、図１１の後接続記号は、第二文字列の最後の文字または文字列の後接続記号が採用される。さらに、図１１の機能語情報は、第二文字列の最後の文字または文字列の機能語情報が採用される。
【００９３】
次に、文字列取得手段１３３は、４つの第二文字列の後接続記号または機能語情報から第二文字列の種類を決定する。後接続記号が「ｓ％」の場合、第二文字列は「副題」であると決定される。後接続記号が「ｎ％」の場合、第二文字列は「主題」であると決定される。機能語情報が「ａ」の場合、第二文字列は「動作」であると決定される。機能語情報が「ｓ」（ｓｔａｔｕｓ）の場合、第二文字列は「状態」であると決定される。後接続記号が「ｏ％」の場合、第二文字列は「準主題」であると決定される。そして、上記のルールに従って、文字列取得手段１３３は、第二文字列の種類を決定し、図１２に示す第二文字列と種類の情報の対を得る。
【００９４】
次に、出力部１４は、図１３に示す文構造の情報を取得する。図１３に示す文構造の情報は、出力する第二文字列の順序を特定する情報である。図１３の文構造の情報は、「主題」を最初に出力し、続いて、「副題」「準主題」を出力し、最後に「動作」または「状態」を出力することを示す。また、並列の「副題」「準主題」は、入力された文字列の出現順で、順位が決定されることを示す。
【００９５】
次に、出力部１４は、図１２の情報を、図１３の文構造の情報に当て嵌め、「佐藤さんが」「私と」「映画館に」「行った」の順に、第二文字列を並べる。なお、並列の「副題」「準主題」に関して、入力文「私と佐藤さんが行った  映画館に」では、副題「私と」が準主題「映画館に」より前に出現しているので、「私と」「映画館に」の順に第二文字列が並べられる。
【００９６】
そして、出力部１４は、「佐藤さんが私と映画館に行った」という文を出力する。
【００９７】
以上、本実施の形態によれば、例えば、口語文でも、正しく解析できる。さらに具体的には、文の中で倒置が発生していても、機械翻訳などがし易い順序に変更して、文を構築できる。
【００９８】
また、本実施の形態によれば、自然言語処理装置の出力結果を機械翻訳装置に渡すことにより、口語体の文章でも正確に翻訳できる。
【００９９】
また、本実施の形態によれば、助詞などの一定の機能を果たす語（機能語ということとする）に着目して、文字列のつながり具合、分割具合を判断し、まとまりのある文字列を取得できる。したがって、多彩な助詞によって、それが主語なのか、述語なのかを特定できる膠着語の処理に適している。なお、膠着語とは、言語の形態論上の分類のひとつである。膠着語に分類される言語は、ある単語に接頭辞や接尾辞のような形態素を付着させることで、その単語の文の中での文法関係を示す特徴を持つ。膠着語に分類される言語は、日本語、朝鮮語、満州語、モンゴル語、トルコ語、フィンランド語、ハンガリー語、タミル語などである。なお、スワヒリ語やドイツ語、エスペラント、ビルマ語なども部分的に膠着語的性質を持つ。また、機能語は、文法的な意味を表す接辞（助詞、活用語尾など）であり、実質的な意味を表す語（名詞や活用語の語幹など）に付属する。
【０１００】
なお、本実施の形態によれば、「動作」および「状態」をまとめて「動作状態」といっても良い。また、「動作状態」とは、「動作」または「状態」の意味である。
【０１０１】
また、本実施の形態によれば、文分割制御部１３の具体的な動作例として、要素分割手段１３１、要素連結手段１３２、文字列取得手段１３３により動作について説明した。しかし、文分割制御部１３は、他の動作を行い、第二文字列と第二文字列の種類を特定する情報を取得しても良い。つまり、例えば、文分割制御部１３は、後接続記号を用いて、当該後接続記号が区切りを示す第一文字列を、解析対象の文から検索し、当該第一文字列の後ろを区切りだとして、区切りより後ろ、次の区切りまでの文字列を第二文字列として取得しても良い。第二文字列の種類を特定する情報を取得する方法は、既に説明したように、第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から決定する。
【０１０２】
また、本実施の形態の具体例によれば、第一文字列を取得する際の「ｎ」が「５」であったが、「ｎ」は「３」でも「４」でも「１０」等でも良い。
【０１０３】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における自然言語処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記憶媒体に、文を格納しており、また、記憶媒体に、第一文字列と、文中における前記第一文字列の機能または種類を特定する情報である機能語情報と、前記第一文字列の前に接続され得る文字列の種類を特定する情報である前接続記号と、前記第一文字列の後ろに接続され得る文字列の種類、または区切りであることを示す記号であり、当該記号により区切られた文中における第二文字列の種類を特定する情報である後接続記号とを対に有する辞書情報を1以上格納しており、コンピュータに、前記記憶媒体から文をメモリ上に読み出し、当該文から区切りであることを示す後接続記号に対する第一文字列を取り出し、当該第一文字列をキーにして、文を２以上の文字列である２以上の第二文字列に区切り、当該第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記第二文字列の種類を特定する情報を取得し、当該第二文字列と第二文字列の種類を特定する情報を取得し、メモリ上に配置する文分割制御ステップと、前記文分割制御ステップで取得した２以上の区切られた各第二文字列と、各第二文字列の種類を特定する情報を対にして、出力手段により出力する出力ステップとを実行させるためのプログラム、である。
【０１０４】
また、上記プログラムにおける前記文分割制御ステップは、前記記憶媒体から文をメモリ上に読み出し、当該文の先頭から予め決められたサイズ（ｎ文字[ｎは２以上の整数]）の第三文字列を切り出し、メモリ上に配置し、前記切り出した第三文字列を構成する文字列であって、先頭からｎ文字の文字列から順に、前記記憶媒体に当該文字列が存在するか否かを判断し、ｎ文字の文字列が存在しない場合には、先頭から（ｎ−１）文字の文字列が前記記憶媒体に存在するか否かを判断し、かかる判断を、１文字ずつ文字数を減らして、文字列が存在するまで行い、または、文字列が存在しない場合には、先頭から１文字になるまでかかる判断を行い、文字列が存在すると判断した場合には、当該文字列に対応する機能語情報と前接続記号と後接続記号とを、前記記憶媒体から読み出し、読み出した機能語情報と前接続記号と後接続記号とを当該文字列に付与し、文字列が存在しない場合には、１文字の文字列に対して未知語であることを示す情報である未知語情報を付与する要素分割ステップと、前記要素分割ステップで未知語情報を付与した連続する未知語であり、ひらがなの文字を連結し文字列を構成し、かつ連続する未知語であり、ひらがなではない文字を連結し文字列を構成し、前記連結した文字列、または連結されなかった未知語の文字に対してまとまりであることを示す文字列の種類を特定する情報であるまとまり情報を付与し、隣接する２つの、前記要素分割ステップで分割した要素またはまとまり情報を読み出し、当該読み出した要素またはまとまり情報のうち、前出の要素またはまとまり情報の後接続記号と、後出の要素またはまとまり情報の前接続記号から、前出の要素またはまとまり情報と後出の要素またはまとまり情報が連結可能であるか否かを判断し、連結可能な要素またはまとまり情報を一つの文字列にまとめて、当該まとめた文字列である第二文字列を複数の取得し、メモリ上に配置する要素連結ステップと、前記要素連結ステップで取得した複数の各第二文字列の最後尾の第一文字列に対応する機能語情報または後接続記号から、前記各第二文字列の種類を特定する情報を決定し、当該複数の各第二文字列の種類を特定する情報と、当該複数の各第二文字列を対にした複数の対の情報をメモリ上に配置する文字列取得ステップを具備するプログラム、でも良い。
【０１０５】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０１０６】
また、図１４は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の自然言語処理装置を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図１４は、このコンピュータシステム３４０の概観図であり、図１５は、コンピュータシステム３４０のブロック図である。
【０１０７】
図１４において、コンピュータシステム３４０は、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）ドライブ、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブを含むコンピュータ３４１と、キーボード３４２と、マウス３４３と、モニタ３４４とを含む。
【０１０８】
図１５において、コンピュータ３４１は、ＦＤドライブ３４１１、ＣＤ−ＲＯＭドライブ３４１２に加えて、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３４１３と、ＣＰＵ３４１３、ＣＤ−ＲＯＭドライブ３４１２及びＦＤドライブ３４１１に接続されたバス３４１４と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）３４１５と、ＣＰＵ３４１３に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３４１６と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３４１７とを含む。ここでは、図示しないが、コンピュータ３４１は、さらに、ＬＡＮへの接続を提供するネットワークカードを含んでも良い。
【０１０９】
コンピュータシステム３４０に、上述した実施の形態の自然言語処理装置の機能を実行させるプログラムは、ＣＤ−ＲＯＭ３５０１、またはＦＤ３５０２に記憶されて、ＣＤ−ＲＯＭドライブ３４１２またはＦＤドライブ３４１１に挿入され、さらにハードディスク３４１７に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ３４１に送信され、ハードディスク３４１７に記憶されても良い。プログラムは実行の際にＲＡＭ３４１６にロードされる。プログラムは、ＣＤ−ＲＯＭ３５０１、ＦＤ３５０２またはネットワークから直接、ロードされても良い。
【０１１０】
プログラムは、コンピュータ３４１に、上述した実施の形態の自然言語処理装置の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム３４０がどのように動作するかは周知であり、詳細な説明は省略する。
【０１１１】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０１１２】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０１１３】
以上のように、本発明にかかる自然言語処理装置は、口語体の文章でも、高い確度で解析できる、という効果を有し、言語処理装置等として有用である。
【図面の簡単な説明】
【０１１４】
【図１】実施の形態における自然言語処理装置のブロック図
【図２】同自然言語処理装置の動作について説明するフローチャート
【図３】同連結処理について説明するフローチャート
【図４】同文分割処理について説明するフローチャート
【図５】同出力処理について説明するフローチャート
【図６】同辞書情報管理表を示す図
【図７】同文の処理の流れの例を示す図
【図８】同文の処理の流れの例を示す図
【図９】同文の処理の流れの例を示す図
【図１０】同処理途中の文についてのメモリ上のデータ例を示す図
【図１１】同処理途中の文についてのメモリ上のデータ例を示す図
【図１２】同処理途中の文についてのメモリ上のデータ例を示す図
【図１３】同文構造情報の例を示す図
【図１４】同自然言語処理装置を実現するコンピュータの外観図
【図１５】同自然言語処理装置を実現するコンピュータシステムのブロック図
【符号の説明】
【０１１５】
１０  受付部
１１  文格納部
１２  辞書情報格納部
１３  文分割制御部
１４  出力部
１３１  要素分割手段
１３２  要素連結手段
１３３  文字列取得手段
【図１】
2008071001.tif 000003
【図２】
2008071001.tif 000004
【図３】
2008071001.tif 000005
【図４】
2008071001.tif 000006
【図５】
2008071001.tif 000007
【図６】
2008071001.tif 000008
【図７】
2008071001.tif 000009
【図８】
2008071001.tif 000010
【図９】
2008071001.tif 000011
【図１０】
2008071001.tif 000012
【図１１】
2008071001.tif 000013
【図１２】
2008071001.tif 000014
【図１３】
2008071001.tif 000015
【図１４】
2008071001.tif 000016
【図１５】
2008071001.tif 000017