本発明は、自然言語の認識処理に関し、特に、自然言語の文章の意味内容に対応して処理を実行する自然言語処理装置とその自然言語処理方法、及び自然言語処理プログラムに関する。
従来より、人が利用する言葉である自然言語の意味内容をコンピュータに認識させる自然言語処理の技術が研究されている。コンピュータに自然言語を認識させることにより、自然言語を用いてコンピュータに命令を与え操作したり、自然言語の文章を翻訳させたり、コンピュータとの対話等が可能となる。
従来の自然言語処理では、認識対象の自然言語の文章に対して、文章から個々の形態素を抽出する形態素解析、文章構造を明らかにする構文解析、文章の意味内容を理解する意味解析を実行することによりその意味内容を認識しており、また文脈を理解する文脈解析や、入力された文章に対する適切な応答の文章を生成する応答処理等を行うものもある。
また、これらの各処理においては、形態素辞書、構文辞書、意味解析用辞書等の辞書データを予め備えて、これを参照することが必要となる。
こうした自然言語処理の従来技術としては、例えば、特開平7−105213号公報や特開2000−112938号公報に開示された従来技術がある。
特開平7−105213号 公報
特開2000−112938号 公報
上述したように従来の自然言語処理では、以下に述べるような問題点があった。
第1に、従来の技術では、膨大な種類の言葉を記録した各種の辞書を備えることが必要であるという問題点があった。
必要となる辞書を予め準備するための、辞書データの収集・整理の作業には多くのコストが必要となり、自然言語処理システムの開発を困難にしていた。また、コンピュータ装置は、入力された文章の各字句を辞書の膨大な種類の言葉と照らし合わせて一致する言葉を検索するため、その処理が重く時間も掛かることになり、またこのため、利用するコンピュータ装置には高い処理性能が必要となった。
第2に、従来の技術では、入力される自然言語の文章の意味内容に対応させて実行させる処理を設定する手続きが面倒だという問題点があった。
従来では、こうした設定のためにはその自然言語処理装置内の各部で実行される処理についての知識が必要であり、また新たに設定するためにプログラム自体の書き直しとなる場合もあり面倒であった。更に、システムの開発者ではない利用者自身が設定を変更することはとても難しかった。また、設定が面倒であることから、文脈に応じた細かい応答内容を設定することができなかった。
第3に、従来では、システムが予め備えている辞書にない、未知の言葉が入力された場合に対応することが困難であるという問題点があった。
このため、自然言語を用いた人工知能システムを構築する際において、知識データの更新処理を(A・Bを任意の言葉として)『AはBです』等の自然言語の文章で命令する方式を採用しようとしても、A・Bの各言葉が予め辞書に登録されていなくてはシステムがこれに対応することができず、自由に新しい言葉を追加することができなかった。
本発明の目的は、上記従来技術の欠点を解決し、大容量の辞書を必要とすることなく、処理が軽くコンピュータに高い性能を必要とせず、処理内容の設定が容易で実用性に富む自然言語処理装置とその自然言語処理方法、及び自然言語処理プログラムを提供することにある。
上記目的を達成するため本発明の自然言語処理装置は、自然言語の文を処理する自然言語処理装置であって、前記文の分割位置を指定するための語句である分割語句の一覧を示す分割語句テーブルと、自然言語のテキストデータである処理対象の文を、前記分割語句テーブルに基づいて、前記処理対象の文中に前記分割語句が含まれる場合に、前記処理対象の文を各前記分割語句の先頭及び末尾の個所で分割することにより、前記処理対象の文を1つ又は複数の部分文字列に分割した分割文を生成する分割手段と、文字列が1つ又は複数個の指定された文字列の内のいずれかに一致するとういう条件を示す文字列条件データを前記分割文を構成する各位置の前記部分文字列のそれぞれに指定することにより前記分割文の類型を示す類型データと、前記類型データが示す前記分割文の類型に対して前記分割手段が生成した前記分割文が該当する場合において実行すべき処理内容を示す処理内容データとを、対応させて記録した応答テーブルと、前記分割手段により生成された前記分割文に対し、前記応答テーブル中の前記類型データであって、前記文字列条件データの個数が当該分割文を構成する前記部分文字列の個数と等しく、かつ全ての前記部分文字列が対応する位置の前記文字列条件データの条件を満たすものを、当該分割文の類型に該当する前記類型データであるとして検索する類型検索手段と、前記応答テーブルから、前記類型検索手段による前記検索に該当した前記類型データに対応して記録されている前記処理内容データを抽出する抽出処理手段と、前記抽出処理手段が抽出した前記処理内容データが示す処理内容を実行する応答手段を備えることを特徴とする。
請求項2の本発明の自然言語処理装置は、分割を禁止する2字以上の文字列である連結語句の一覧を示す連結語句テーブルを備え、前記分割手段は、前記処理対象の文を、前記文中に含まれる各前記分割語句の先頭及び末尾の個所のそれぞれにおいて、当該個所が前記連結語句の内部に該当しない場合に限り分割することにより前記分割文を生成する手段を備えることを特徴とする。
請求項3の本発明の自然言語処理装置は、前記分割手段は、前記処理対象の文を分割した前記部分文字列の先頭の文字が、予め指定された先頭禁則文字の1つに該当する場合に、当該部分文字列とその1つ前の位置の前記部分文字列との間の前記分割を解除して連結させる手段と、前記部分文字列の末尾の文字が、予め指定された末尾禁則文字の1つに該当する場合に、当該部分文字列とその1つ後の位置の前記部分文字列との間の前記分割を解除して連結させる手段を備えることを特徴とする。
請求項4の本発明の自然言語処理装置は、前記処理対象の文から削除する語句である削除語句の一覧を示す削除語句テーブルを備え、前記分割手段は、前記処理対象の文を、各前記削除語句を全て削除した上で、前記分割語句テーブルに基づいて1つ又は複数の前記部分文字列に分割することにより前記分割文を生成する手段を備えることを特徴とする。
請求項5の本発明の自然言語処理装置は、前記分割手段は、前記処理対象の文を、句読点・スペース・タブ・改行を全て削除した上で、前記分割語句テーブルに基づいて1つ又は複数の前記部分文字列に分割することにより前記分割文を生成する手段を備えることを特徴とする。
請求項6の本発明の自然言語処理装置は、書換対象の語句である書換元語句のそれぞれに、前記書換元語句を書換える書換後語句を対応させて記録した書換語句テーブルを備えることを特徴とする。
請求項7の本発明の自然言語処理装置は、前記分割手段は、前記処理対象の文を、当該文中に含まれる全ての前記書換元語句を前記書換語句テーブルにおいて対応する前記書換後語句に置換した後に、前記分割語句テーブルに基づいて1つ又は複数の前記部分文字列に分割することにより前記分割文を生成する手段を備えることを特徴とする。
請求項8の本発明の自然言語処理装置は、前記分割手段は、前記処理対象の文を、前記分割語句テーブルに基づいて1つ又は複数の前記部分文字列に分割した上で、各前記部分文字列の内でいずれかの前記書換元語句と一致するものを全て、前記書換語句テーブルにおいて対応する前記書換後語句にそれぞれを置換することで前記分割文を生成する手段を備えることを特徴とする。
請求項9の本発明の自然言語処理装置は、語句を各グループ毎にまとめて記録した語句分類テーブルを備え、前記類型検索手段は、前記文字列条件データにおいて前記語句分類テーブル内の前記グループが指定されている場合には、当該グループ中の語句の1つと前記分割文における対応する位置の前記部分文字列とが一致する場合に当該文字列が当該文字列条件データの条件を見たすものとして、前記類型データを検索する手段を備えることを特徴とする。
請求項10の本発明の自然言語処理装置は、語句を各グループ毎にまとめて記録した語句分類テーブルを備え、前記類型検索手段は、前記文字列条件データにおいて前記語句分類テーブル内の前記グループが指定されている場合には、前記分割文における対応する位置の前記部分文字列と当該グループ中の語句の1つとが一致する場合、又は前記部分文字列と前記語句分類テーブル内の全ての語句とが一致しない場合において当該文字列が当該文字列条件データの条件を見たすものとして、前記類型データを検索する手段を備えることを特徴とする。
請求項11の本発明の自然言語処理装置は、前記応答テーブルは、任意の前記部分文字列が条件を満たすという内容の前記文字列条件データを含み、前記類型検索手段は、前記文字列条件データにおいて任意の前記部分文字列が条件を満たすという内容が指定されている場合には、前記分割文における対応する位置の前記部分文字列が常に当該文字列条件データの条件を見たすものとして前記類型データを検索する手段を備えることを特徴とする。
請求項12の本発明の自然言語処理装置は、データを記録する1つ又は複数の知識テーブルを備え、前記応答手段は、前記処理内容データに基き、指定された前記知識テーブル内を参照する手段と、前記処理内容データに基き、指定された前記知識テーブル内に指定されたデータを追加する手段と、前記処理内容データに基き、指定された前記知識テーブル内から指定されたデータを削除する手段を備えることを特徴とする。
請求項13の本発明の自然言語処理装置は、前記抽出処理手段は、前記類型検索手段による検索に該当した前記類型データに対応して前記応答テーブルに記録された前記処理内容データを抽出する手段と、抽出された前記処理内容データに、前記類型検索手段が検索に用いた前記分割文の1つ又は複数の指定された位置の前記部分文字列のデータを付加した上で前記応答手段に送る手段を備え、前記応答手段は、前記処理内容データが示す処理内容を、当該処理内容データに付加された1つ又は複数の前記部分文字列のデータを用いて実行する手段を備えることを特徴とする。
請求項14の本発明の自然言語処理装置は、電気通信ネットワークを介して外部のサーバと通信する通信手段を備え、前記応答手段は、前記処理内容データに基き、当該処理内容データに付加された1つ又は複数の前記部分文字列を検索キーワードに用いて、前記外部のサーバに対し情報を問合せて取得する手段を備えることを特徴とする。
請求項15の本発明の自然言語処理装置は、前記応答手段は、前記処理内容データに基き、指定された新たな前記類型データ及び対応する前記処理内容データを、前記応答テーブルに追加する追加手段と、前記処理内容データに基き、前記応答テーブルから、指定された前記類型データ及び対応する前記処理内容データを削除する削除手段を備えることを特徴とする。
請求項16の本発明の自然言語処理装置は、前記応答テーブルを複数種類備え、前記類型検索手段は、各前記応答テーブルを予め指定された順番に従い順次検索対象として、前記分割文の類型に該当する前記類型データを検索する手段を備えることを特徴とする。
請求項17の本発明の自然言語処理装置は、前記応答テーブルを複数種類備え、各前記応答テーブルは、各前記応答テーブルのいずれを前記類型検索手段が検索に使用するのかを指定する応答テーブル設定命令である前記処理内容データを含み、前記分割手段は、前記処理内容データに示される前記応答テーブル設定命令に基いて、前記類型検索手段が検索に使用する前記応答テーブルを設定する手段を備えることを特徴とする。
請求項18の本発明の自然言語処理装置は、前記応答テーブルを複数種類備え、各前記応答テーブルは、各前記応答テーブルのいずれを前記類型検索手段が検索に使用するのかを指定し、かつ、複数の前記応答テーブルを検索に使用する場合においては各前記応答テーブルの検索順序を指定する応答テーブル設定命令である前記処理内容データを含み、前記分割手段は、前記処理内容データに示される前記応答テーブル設定命令に基いて、前記類型検索手段が検索に使用する前記応答テーブル、及び、複数の前記応答テーブルを検索に使用する場合におけるその検索順序を設定する手段を備えることを特徴とする。
請求項19の本発明の自然言語処理装置は、前記分割手段は、前記処理対象の文中における予め指定された語句の有無に基いて、前記類型検索手段が検索に使用する前記応答テーブルを設定する手段を備え、前記類型検索手段は、前記分割手段が設定した前記応答テーブルを検索対象として、前記分割手段が生成した前記分割文の類型に該当する前記類型データを検索する手段を備えることを特徴とする。
請求項20の本発明の自然言語処理装置は、前記分割語句テーブルを複数種類備え、前記分割手段は、前記処理対象の文中における予め指定された言葉の有無に基いて、当該文の分割に用いる前記分割語句テーブルを設定する分割語句テーブル設定手段と、前記分割語句テーブル設定手段が設定した前記分割語句テーブルに基いて、前記処理対象の文を1つ又は複数の前記部分文字列に分割することにより前記分割文を生成する手段を備えることを特徴とする。
請求項21の本発明の自然言語処理装置は、自然言語の文の入力を受付け、入力された前記文をテキストデータの形式に変換し前記処理対象の文として前記分割手段に渡す入力手段を備えることを特徴とする。
請求項22の本発明の自然言語処理装置は、前記入力手段は、音声をテキストデータに変換する音声認識手段と、前記自然言語の文の音声による入力を受付けて前記音声認識手段によりテキストデータに変換し、前記処理対象の文として前記分割手段に渡す手段を備えることを特徴とする。
請求項23の本発明の自然言語処理装置は、前記入力手段は、通信ネットワークを介して前記自然言語の文の入力を受付ける手段を備えることを特徴とする。
請求項24の本発明の自然言語処理装置の自然言語処理方法は、自然言語のテキストデータである処理対象の文の入力を受け付ける入力手段と、前記処理対象の文の分割位置を指定するための語句である分割語句の一覧を示す分割語句テーブルと、前記入力手段が受け付けた前記処理対象の文を1つ又は複数の部分文字列に分割した分割文を生成する分割手段と、文字列が1つ又は複数個の指定された文字列の内のいずれかに一致するとういう条件を示す文字列条件データを前記分割文を構成する各位置の前記部分文字列のそれぞれに指定することにより前記分割文の類型を示す類型データと、前記類型データが示す前記分割文の類型に対して前記分割手段が生成した前記分割文が該当する場合において実行すべき処理内容を示す処理内容データとを、対応させて記録した応答テーブルと、前記分割手段により生成された前記分割文に対し、前記応答テーブル中から当該分割文の類型に該当する前記類型データを検索する類型検索手段と、前記応答テーブルから、前記類型検索手段による前記検索に該当した前記類型データに対応して記録されている前記処理内容データを抽出する抽出処理手段と、前記抽出処理手段が抽出した前記処理内容データに基づいて、前記処理対象の文の入力に対する応答を出力する応答手段とを備える自然言語処理装置の自然言語処理方法であって、前記処理対象の文の入力を前記入力手段が受け付けるステップと、前記分割手段が、前記入力手段が受け付けた前記処理対象の文を、前記分割語句テーブルを参照して、前記処理対象の文中に前記分割語句が含まれる場合に、前記処理対象の文を各前記分割語句の先頭及び末尾の個所で分割することにより、前記処理対象の文を1つ又は複数の部分文字列に分割した分割文を生成する分割ステップと、前記類型検索手段が、応答テーブルを参照して、前記分割ステップにおいて生成された前記分割文に対し、前記応答テーブル中の前記類型データであって、前記文字列条件データの個数が当該分割文を構成する前記部分文字列の個数と等しく、かつ全ての前記部分文字列が対応する位置の前記文字列条件データの条件を満たすものを、当該分割文の類型に該当する前記類型データであるとして検索する類型検索ステップと、前記抽出処理手段が、前記応答テーブルを参照して、前記類型検索ステップでの前記検索に該当した前記類型データに対応して記録されている前記処理内容データを前記応答テーブルから抽出する抽出処理ステップと、前記応答手段が、前記抽出処理ステップにおいて抽出された前記処理内容データが示す処理内容を実行する応答ステップを実行することを特徴とする。
請求項25の本発明の自然言語処理装置の自然言語処理方法は、前記自然言語処理装置は、分割を禁止する2字以上の文字列である連結語句の一覧を示す連結語句テーブルを備え、前記分割手段が、前記連結語句テーブルを参照するステップと、前記処理対象の文を、前記連結語句テーブルに基づいて、前記文中に含まれる各前記分割語句の先頭及び末尾の個所のそれぞれにおいて、当該個所が前記連結語句の内部に該当しない場合に限り分割することにより前記分割文を生成するステップを実行することを特徴とする。
請求項26の本発明の自然言語処理装置の自然言語処理方法は、前記分割手段が、前記処理対象の文を分割した複数の前記部分文字列に対して、連続する位置の2つ以上の前記部分文字列を連結した場合に前記連結語句と等しくなるものがあるかどうかをチェックする分割検出ステップと、前記チェックに該当した前記部分文字列の組を連結して新たな前記部分文字列とする連結ステップと、前記分割検出ステップにおける前記チェックに該当する前記部分文字列が無くなるまで、前記分割検出ステップと前記連結ステップとを繰返し実行することにより、分割された前記連結語句の無い前記分割文を生成するステップを実行することを特徴とする。
請求項27の本発明の自然言語処理装置の自然言語処理方法は、前記分割手段が、前記処理対象の文に対して、文字列比較を行う始りの文字の位置を示す比較起点位置に先頭の文字を示す"1"を設定するステップと、前記比較起点位置が、前記処理対象の文の文字数を越える場合には、前記分割ステップの処理を終了させ、前記処理対象の文の文字数を越えない場合には、各前記分割語句に対して、前記処理対象の文の前記比較起点位置から始る当該分割語句の文字数分の文字列と当該文字列とが一致するかどうかをチェックする判定ステップと、前記判定ステップにおいて一致する前記分割語句が無い場合には、前記比較起点位置を"1"増加させた上で、前記判定ステップに戻り以降の処理を再び実行させるステップと、前記判定ステップにおいて一致する前記分割語句が有る場合には、前記処理対象の文において当該分割語句を一部分として含む前記連結語句が存在するかどうかをチェックする連結語句検出ステップと、前記連結語句検出ステップにおいて、当該分割語句を一部分として含む前記連結語句が見つからなかった場合には、前記処理対象の文を当該分割語句の先頭及び末尾の個所で分割し、前記比較起点位置を当該分割語句の文字数分増加させた上で、前記判定ステップに戻り以降の処理を再び実行させるステップと、前記連結語句検出ステップにおいて、当該分割語句を一部分として含む前記連結語句が見つかった場合には、前記処理対象の文を、当該連結語句の先頭及び末尾の個所で分割し、かつ当該連結語句の部分を構成する前記部分文字列が複数個である場合には、その全てを連結して1個の前記部分文字列とし、前記比較起点位置を増加させて文字列比較を行う始りの文字の位置を当該連結語句の末尾の文字より1つ先の文字に設定した上で、前記判定ステップに戻り以降の処理を再び実行させるステップを実行することを特徴とする。
請求項28の本発明の自然言語処理装置の自然言語処理方法は、前記自然言語処理装置は、語句を各グループ毎にまとめて記録した語句分類テーブルを備え、前記類型検索手段が、語句を各グループ毎にまとめて記録した語句分類テーブルを参照するステップと、前記文字列条件データにおいて前記語句分類テーブル内の前記グループが指定されている場合には、当該グループ中の語句の1つと前記分割文における対応する位置の前記部分文字列とが一致する場合に当該文字列が当該文字列条件データの条件を見たすものとして、前記類型データを検索するステップを実行することを特徴とする。
請求項29の本発明の自然言語処理装置の自然言語処理方法は、前記自然言語処理装置は、データを記録する1つ又は複数の知識テーブルを備え、前記応答ステップは、前記知識テーブルを参照するステップと、前記処理内容データに基き、指定された前記知識テーブル内を参照するステップと、前記処理内容データに基き、指定された前記知識テーブル内に指定されたデータを追加するステップと、前記処理内容データに基き、指定された前記知識テーブル内から指定されたデータを削除するステップを実行することを特徴とする。
請求項30の本発明の自然言語処理装置の自然言語処理方法は、前記抽出処理手段が、前記類型検索ステップによる検索に該当した前記類型データに対応して前記応答テーブルに記録された前記処理内容データを抽出するステップと、抽出された前記処理内容データに、前記類型検索ステップにおいて検索に用いた前記分割文の1つ又は複数の指定された位置の前記部分文字列のデータを付加した上で前記応答ステップに送るステップを実行し、前記応答手段が、電気通信ネットワークを介して外部のサーバと通信する通信ステップと、前記処理内容データに基き、当該処理内容データに付加された1つ又は複数の前記部分文字列を検索キーワードに用いて、前記外部のサーバに対し情報を問合せて取得するステップを実行するうことを特徴とする。
請求項31の本発明の自然言語処理装置の自然言語処理方法は、前記応答手段が、前記処理内容データに基き、指定された新たな前記類型データ及び対応する前記処理内容データを、前記応答テーブルに追加する追加ステップと、前記処理内容データに基き、前記応答テーブルから、指定された前記類型データ及び対応する前記処理内容データを削除する削除ステップを実行することを特徴とする。
請求項32の本発明の自然言語処理装置の自然言語処理方法は、前記自然言語処理装置は、前記応答テーブルを複数種類備え、前記分割ステップは、前記処理内容データにおいて示される、複数種類備える各前記応答テーブルのいずれを前記類型検索ステップにおいて検索に使用するのかを指定し、かつ、複数の前記応答テーブルを検索に使用する場合には各前記応答テーブルの検索順序を指定する応答テーブル設定命令を参照するステップと、前記処理内容データに示される前記応答テーブル設定命令に基いて、前記類型検索ステップにおいて検索に使用する前記応答テーブル、及び、複数の前記応答テーブルを検索に使用する場合におけるその検索順序を設定するステップを備えることを特徴とする。
請求項33の本発明の自然言語処理装置の自然言語処理方法は、前記分割手段が、前記処理対象の文中における予め指定された語句の有無に基いて、前記類型検索ステップにおいて検索に使用する前記応答テーブルを設定するステップを実行し、前記類型検索手段が、前記分割ステップにおいて設定した前記応答テーブルを検索対象として、前記分割ステップにおいて生成した前記分割文の類型に該当する前記類型データを検索するステップを実行することを特徴とする。
請求項34の本発明の自然言語処理装置の自然言語処理方法は、前記自然言語処理装置は、前記分割語句テーブルを複数種類備え、前記分割手段が、前記処理対象の文中における予め指定された言葉の有無に基いて、複数種類備える前記分割語句テーブルのいずれを当該文の分割に用いるのかを設定する分割語句テーブル設定ステップと、前記分割語句テーブル設定ステップにおいて設定した前記分割語句テーブルに基いて、前記処理対象の文を1つ又は複数の前記部分文字列に分割することにより前記分割文を生成するステップを実行することを特徴とする。
以上説明したように本発明の自然言語処理装置とその自然言語処理方法、及び自然言語処理プログラムによれば、次に述べるような効果が得られる。
本発明の第1の効果は、直ちに文章構造から意味内容の認識をする方式のため、処理対象の文章中の全ての語句がシステム内の辞書に予め登録されている必要がないことである。そして、認識した構文構造を基に、その意味内容を認識し適切な応答を返すことができる。従来では膨大な労力と費用を必要とした単語辞書の作成・更新のコストが解消され、効率のよい自然言語認識のシステムの開発が可能となる。
本発明の第2の効果は、従来のように大容量の単語辞書を用いて文中の語句を照合する方式ではないため、記憶容量が少なく、処理性能の低い装置でも自然言語認識を行うことができることである。このため、パソコン環境に限らず、PDA、携帯通信端末、カーナビ、その他家庭電化製品等の各種環境においても自然言語認識のシステムを構築することが可能である。
本発明の第3の効果は、本発明の自然言語認識装置を用いることにより、例えば、検索語句を“パソコン”とする場合に「パソコンの意味は何」等の話し言葉を用いて問い合わせることができることである。これは、入力された「〜の意味は何」に対してその文章構造を基に情報検索の問合せの言葉であることを認識することができるからである。検索に用いる“〜”の部分は任意の語句に対し対応することができ、新語や専門用語などの予め単語辞書に登録しておくことが困難な言葉についても検索することができる。
また例えば、明日の東京の天気を検索する場合に、現在の検索システムにおける“今日”“東京”“天気”の3つの条件を個別に指定する方式ではなく、自然言語認識により「明日の東京の天気を調べて」という話し言葉により一回で検索させることができる。これは、本発明の自然言語認識装置では、「明日の東京の天気を調べて」の文の文章構造を認識して、“今日”“東京”“天気”の検索条件を示す語句を正しく抽出することができるからである。
本発明の第4の効果は、本発明の自然言語認識装置を用いることにより、例えば、「〜は〜です」「〜は〜ではない」「〜は〜ですか」「〜の〜は〜です」「〜は〜の〜です」「〜の〜は何」等の話し言葉の形で自由に知識データを追加・削除・更新することができる。
例えば、日本の首都が東京である旨の知識データを登録する際に、“日本”“首都”“東京”の3つの条件を個別に指定する方式ではなく、自然言語認識により「日本の首都は東京です」という話し言葉により一回で登録させることができる。これは、本発明の自然言語認識装置では、「日本の首都は東京です」の文の文章構造を認識して、“日本”“首都”“東京”の各語句を抽出し、かつこの各語句の相互関係を認識できるからである。
本発明の第5の効果は、応答ファイル等の内容を書き換えることで、利用者が自然言語認識の詳細な処理を自由に設定することができることである。また、文脈に応じた細かい応答内容を設定することも可能であり、例えば、ホテルの予約処理や地理案内の提供等をコンピュータと人との間で対話的に行うなど、実用的な応答処理を設定することができる。
次に、本発明の実施の形態について図面を参照して詳細に説明する。図1は、本発明の自然言語処理装置100の構成の一例を示すブロック図である。
図1を参照すると、本実施の形態の自然言語処理装置100は、分割部20と、応答抽出部30と、応答部40と、分割語句テーブル80と、応答テーブル85を備えている。また分割部20は、分割語句検索部21と分割処理部29を備え、応答抽出部30は、類型検索部31と、抽出処理部39を備えている。
分割部20は、自然言語のテキストデータである処理対象の文を、文の分割方法を規定した分割規則に基いて1つ又は複数の部分文字列に分割した分割文を生成する。
分割規則は、分割部20による文の分割方法を定めたものであり、ここで図1の実施の形態の分割部20においては、処理対象の文中に含まれる場合に文を分割する語句である分割語句の一覧を示す分割語句テーブル80を用いて以下に説明する方法で分割を行う。
これは、本実施の形態の分割部20は、分割語句検索部21と分割処理部29を備えて、分割語句検索部21が、処理対象の文中に含まれる分割語句を検索し、もし分割語句が含まれる場合には分割処理部29が、処理対象の文をその分割語句の先頭及び末尾の個所で分割するのである。
応答抽出部30は、分割部20が生成した分割文を基に、分割文の類型を示す類型データ毎に実行する処理内容を示す処理内容データを対応させて記録した応答テーブル85を検索することにより、実行すべき処理内容を示す処理内容データを抽出する。
これは、応答抽出部30は、類型検索部31と抽出処理部39を備えて、類型検索部31は、分割部20が生成した分割文の類型に該当する類型データを応答テーブル85から検索し、そして抽出処理部39は、この検索に該当した類型データに対応して応答テーブル85に記録された処理内容データを抽出するのである。
そして、応答部40は、抽出処理部39が抽出した処理内容データが示す処理内容を実行する。
ここで、応答部40に処理を実行させるためには、処理対象の文中の語句が必要となる場合もある。このため必要に応じて、抽出処理部39は、応答テーブル85から抽出した処理内容データに、類型検索部31が検索に用いた分割文の1つ又は複数の指定された位置の部分文字列のデータを付加した上で応答部40に送る機能を備えるものとする。この処理内容データに付加する部分文字列の位置は、処理内容データにより指定することができる。
次に、図面を参照して本実施の形態による自然言語処理装置100の動作について詳細に説明する。
図2は、本実施の形態の自然言語処理装置100の動作を示したフローチャートであり、図2を参照すると本実施の形態の自然言語処理装置100は、まず分割部20が処理対象の文を分割して分割文を生成する(ステップ1001)。
図3は、本実施例の分割部20による分割文の生成処理を詳細に示したフローチャートである。図3を参照すると、まず分割部20の分割語句検索部21が処理対象の文の先頭から、文中に分割語句が含まれているかどうかを検索する(ステップ1001−1)。
図4は、本実施の形態の分割語句テーブル80の一例を示す図であり、ここでは“が”“の”“に”“を”“は”の5種類の語句を分割語句としている。このように、助詞を分割語句に用いることで、文章を個々の意味のまとまり毎に分割することができる。
そして、文中にこれらの分割語句がある場合には(ステップ1001−2)、検出されたその分割語句の前後で、分割処理部29が文を分割する(ステップ1001−3)。例えば、処理対象の文が「今日の天気」である場合には、分割語句である“の”が含まれているため、この文章を分割語句“の”の前後で区切り「今日,の,天気」と3つの部分文字列に分割するのである。なお、分割部20の分割処理により分割された個々の部分を部分文字列と呼ぶこととする(上述の例では“今日”“の”“天気”の3つが部分文字列)。
次に、ステップ1001−3において分割を行ったこの分割語句の後に続く場所から、再び文中に分割語句が含まれているかどうかを検索する(ステップ1001−4)。もし、分割語句が含まれていないのならばこれで分割文の生成は完了とし、また分割語句が含まれている場合には、再びステップ1001−3に戻りその分割語句の前後で文章を区切り、ステップ1001−4において分割語句が検出されなくなるまで、ステップ1001−3とステップ1001−4を交互に実行する(ステップ1001−2)。
例えば、処理対象の文が「今日の天気」である場合には、先のステップ1001−3において「今日,の,天気」と3つの部分文字列に分割されて、分割語句“の”の後に続く“天気”以下においてはもう分割語句が無いため、これで分割処理は完了し「今日,の,天気」が分割文となる。
また別の例として、処理対象の文が「今日の東京の天気」である場合には、1回目のステップ1001−3においては1つ目の分割語句“の”により「今日,の,東京の天気」と分割される。ここで分割をした分割語句“の”の後“東京の天気”にも再び分割語句“の”が現れるため、再びステップ1001−3に戻り、2回目のステップ1001−3においては「今日,の,東京,の,天気」と分割される。2つ目の分割語句“の”の後に続く“天気”以下においてはもう分割語句が無いため、これで分割処理は完了し「今日,の,東京,の,天気」が分割文となる。
ここで、分割部20による分割処理においては、必ずしも複数個の部分文字列に分割される必要は無く、分割が無い場合には処理対象の文章と同じ部分文字列1個により構成される分割文が生成されることとする。例えば、処理対象の文が「何時」である場合には、分割語句テーブル80内の分割語句が含まれていないため分割されず、そのまま「何時」が分割文となる。
再び、図2のフローチャートの説明に戻る。分割部20により分割文が生成されると、応答抽出部30の類型検索部31が、この分割文に該当する類型データを応答テーブル85から検索する(ステップ1002)。
図5は、本実施の形態による応答テーブル85の一例を示す図である。図5の応答テーブル85の例においては、各行毎に類型データと処理内容データとが対応する1つの項目が示されており、各行のコロン“:”の左側が類型データであり、その右側が処理内容データである。
図5の例における類型データでは、前述の分割文とほぼ同じ形式であり、「日本,の,首都,は」や「一日,は,何時間」のように分割文を構成する各部分文字列のデータを指定している。また、「<*>,を,表示」のように“<*>”を用いている場合には、任意の部分文字列が条件を満たすこととし、対応する位置の部分文字列を制限しない旨を示す。例えば、「ABC,を,表示」「いろは,を,表示」「0123,を,表示」等の分割文に対して、「<*>,を,表示」の類型データが該当することになる。
ここで、類型データ中の個々の区切られたデータを文字列条件データと呼ぶこととする。例えば、「<*>,を,表示」の類型データの場合は“<*>”“を”“表示”の3個の文字列条件データがある。
つまり、類型データは、分割文を構成する各位置の部分文字列のそれぞれに対して、当該部分文字列が満たすべき条件を示す文字列条件データ順番に示すことにより、分割文の類型を示す。例えば、「<*>,を,表示」の類型データの場合には、3個の部分文字列から成る分割文であって、かつ1番目の部分文字列は任意であり、2番目と3番目の部分文字列がそれぞれ“を”“表示”に一致するものが条件を満たすのである。
図6は、本実施の形態による自然言語処理装置100の類型検索部31による検索処理を詳細に示したフローチャートである。
図6を参照すると、まず応答テーブル85内の類型データであって、文字列条件データの個数が、分割文の部分文字列の個数と等しいものを全て取出し、これを以下の処理のチェック対象とする(ステップ1002−1)。
そして、未チェックの類型データが残っている場合には(ステップ1002−2)、未チェックである類型データの1つを取り、その1つ目の文字列条件データと、分割文の1つ目の部分文字列とを、判定対象に定める(ステップ1002−3)。
そして、この判定対象の文字列条件データの条件を部分文字列が満たすかどうかをチェックし(ステップ1002−4)、もし条件を満たしていない場合にはステップ1002−2に戻り、また条件を満たしている場合には、判定対象の文字列条件データと部分文字列をそれぞれ1つ先に進めて同様のチェックを行いこれを全ての部分文字列のチェックが完了するまで繰り返す(ステップ1002−4〜1002−6)。
ここで未判定の部分文字列がなくなった場合、つまり全ての部分文字列が対応する位置の文字列条件データの条件を満たす場合には、この判定対象の類型データが検索に該当することが判明したのであり、検索処理を終了する(ステップ1002−7)。
また、ステップ1002−2において、もう未チェックの類型データが残っていない場合には、検索に該当する類型データが無いことが判明したのであり検索処理を終了する(ステップ1002−8)。
再び、図2のフローチャートの説明に戻る。ステップ1002の類型検索部31による検索に該当する類型データがある場合には、この類型データに対応する処理内容データを抽出処理部39が抽出し(ステップ1003)、この処理内容データに示される処理内容を応答部40が実行する(ステップ1004)。
また、ステップ1002の類型検索部31による検索に該当する類型データがない場合には、定められたエラー処理を実行処理を実行することとする。このエラー処理としては例えば、文章を認識できなかった旨を通知するエラーメッセージを表示する方式や、無応答にして当該文章を無視する方式等が考えられる。
図5の応答テーブルにおいては、処理内容データに、ハイフン“-”に続いて関数名“応答文出力”又は“応答文生成”を記載している。“応答文出力”の関数は、これに続く括弧の中の文章を応答文として出力させる旨の命令である。“応答文生成”の関数は、“応答文生成(時刻)”の場合には現在時刻を応答文として出力させる旨の命令であり、“応答文生成(日付)”の場合には現在の日付を応答文として出力させる旨の命令である。なお、応答部40に対してこのように処理内容データのテキストに記載した命令を実行させる技術は公知であり、本発明に特に関係しない部分であるため説明を省略する。
例えば、「日本の首都は」という文章が処理対象である場合には、分割部20により分割文「日本,の,首都,は」が生成され(ステップ1001)、これに該当する類型データを類型検索部31が応答テーブル85から検索し(ステップ1002)、検索に該当した類型データに対応する処理内容データ「-応答文出力(東京都です)」を抽出処理部39が抽出し(ステップ1003)、応答部40がこの処理内容データに基いて応答文「東京都です」を出力する(ステップ1004)。
また例えば、「一日は何時間」という文章が処理対象である場合には、分割部20により分割文「一日,は,何時間」が生成され(ステップ1001)、これに該当する類型データを類型検索部31が応答テーブル85から検索し(ステップ1002)、検索に該当した類型データに対応する処理内容データ「-応答文出力(24時間です)」を抽出処理部39が抽出し(ステップ1003)、応答部40がこの処理内容データに基いて応答文「24時間です」を出力する(ステップ1004)。
また、類型データに“<*>”の任意指定を用いる場合等においては、その任意の部分文字列のデータにも基いて処理を実行させたい。このため、抽出処理部39には、抽出した処理内容データに、類型検索部が検索に用いた分割文の指定された位置の部分文字列のデータを付加した上で応答部40に送る機能を備え、応答部40には、処理内容データが示す処理内容を、当該処理内容データに付加された部分文字列のデータを用いて実行する機能を備えるものとする。また、処理内容データに付加する部分文字列の個数は複数でもよい。
これに対応するため、図5の応答テーブル85においては、処理内容データに「-応答文出力(<1>)」のように部分文字列の番号を不等号の括弧“<”“>”で囲んで指定し、抽出処理部39は、こうした処理内容データを抽出した場合において、不等号の括弧“<”“>”で囲まれた部分を指定された部分文字列で置換えることで、処理内容データに指定された部分文字列を付加することができる。
例えば、「ABCを表示」という文章が処理対象である場合には、分割部20により分割文「ABC,を,表示」が生成され(ステップ1001)、これに該当する類型データを類型検索部31が応答テーブル85から検索し(ステップ1002)、検索に該当した類型データ「<*>,を,表示」に対応する処理内容データ「-応答文出力(<1>)」を抽出処理部39が抽出し、“<1>”の部分を1番目の部分文字列“ABC”に置換えた処理内容データ「-応答文出力(ABC)」を応答部40に送り(ステップ1003)、応答部40がこの処理内容データに基いて応答文「ABC」を出力する(ステップ1004)。
例えば、「1丁目の2番地を表示」という文章が処理対象である場合には、分割部20により分割文「1丁目,の,2番地,を,表示」が生成され(ステップ1001)、これに該当する類型データを類型検索部31が応答テーブル85から検索し(ステップ1002)、検索に該当した類型データ「<*>,の,<*>,を,表示」に対応する処理内容データ「-応答文出力(<1>の<3>)」を抽出処理部39が抽出し、“<1>”と“<3>”の部分をそれぞれ1番目と3番目の部分文字列“1丁目”“2番地”に置換えた処理内容データ「-応答文出力(1丁目の2番地)」を応答部40に送り(ステップ1003)、応答部40がこの処理内容データに基いて応答文「1丁目の2番地」を出力する(ステップ1004)。
図7は、本発明の図1の実施の形態による自然言語処理装置100の一連の処理を、上述の様々な処理を含めて示したフローチャートである。
図7を参照すると、本実施の形態の自然言語処理装置100は、まず分割部20により処理対象の文を分割し分割文を生成する(ステップ1051)。この分割処理の方法については図3のフローチャートに例が示されている。
次に、応答抽出部30の類型検索部31により、応答テーブル85内の類型データであって、文字列条件データの個数が分割文の部分文字列の個数と等しく、かつ全ての文字列条件データの条件をそれぞれに対応する位置の部分文字列が満たしているものを検索する(ステップ1052)。この検索処理の方法については図6のフローチャートに例が示されている。
次に、応答抽出部30の抽出処理部39により、類型データに対応する処理内容データを抽出し、分割文を構成する部分文字列の内で処理内容データにおいて指定されるものを、処理内容データに付加して応答部40に送る(ステップ1053)。そして、応答部40が、処理内容データに付加された部分文字列を用いて、その処理内容データが示す処理内容を実行する(ステップ1054)。
ここで、この図1の実施の形態による自然言語処理装置100の分割部20による分割文の生成処理について、他の好ましい実施例を説明する。
分割部20は、処理対象の文を個々の意味のまとまり毎に分割できることが好ましいが、前述の図3のフローチャートに示される“が”“の”“に”“を”“は”等の分割語句を用いて分割する方式のみでは、1つの単語が複数の部分文字列に不適切に分割されてしまう危険があり、これを回避できるようにしたい。
ここで、単語等の意味のまとまりをもつ文字列においては、その先頭に来ない文字や、その末尾に来ない文字がある。例えば、先頭に来ない文字としては「っゃゅょぁぃぅぇぉッャュョァィゥェォ」等の促音・促音等、長音符「ー」、「ん」、閉じる括弧等があり、末尾に来ない文字としては開く括弧等がある。
このため、この先頭に来ない文字を先頭禁則文字、末尾に来ない文字を末尾禁則文字としてそれぞれ定め、分割部20による分割後にこれらの禁則文字が該当する部分文字列に対しては、前後の部分文字列と連結させることにより、先頭禁則文字が先頭になったり、末尾禁則文字が末尾となることを回避することができる。
図8は、本実施の形態による自然言語処理装置100の分割部20による分割文の生成処理の、上述の他の一例を説明するフローチャートである。図8を参照すると、ステップ1001−1〜1001−4までは、図3の前述の処理と同じであるが、ステップ1001−4に続いて、禁則文字を回避する処理を行っている。
つまり、先頭の文字が先頭禁則文字である部分文字列がある場合には、その部分文字列とその1つ前の部分文字列とを、双方の間の分割を解除して1つの部分文字列にし(ステップ1001−5)、続いて、末尾の文字が末尾禁則文字である部分文字列がある場合には、その部分文字列とその1つ後の部分文字列とを、双方の間の分割を解除して1つの部分文字列にする(ステップ1001−6)。
例えば、「にんじん」、「にんぎょ」、「にんにく」、「はんてん」、「はんぺん」等の各単語は、分割語句による分割で「に,んじん」、「に,んぎょ」、「に,ん,に,く」、「は,んてん」、「は,んぺん」として複数の部分文字列に分割されてしまう。そこで、上述の禁則文字を回避する処理を行うことにより、これらの単語を1つの部分文字列として正しく分割させることができる。
以上説明したように本実施の形態の自然言語処理装置100によれば、第1に従来のように予め膨大な量の単語を登録した単語辞書を備える必要が無くなる。これは、文章を“が”“の”“に”“を”“は”等の助詞の位置を基に文章構造から認識するとができ、また類型データにおいて任意の文字列を示す“<*>”等のワイルドカードを含めることで、システム中に登録されていない未知の単語の入力を受けつけることができるからである。
第2に、入力される自然言語の文章の意味内容に対応させて実行させる処理をとても容易に設定することができる。これは、図5の応答テーブル85の例に示されるように、処理対象の文章の類型と、それに対する応答とを分り易く簡単に応答テーブル85で指定することができるからである。
第3に、システムが予め備えている辞書にない、未知の言葉が入力された場合にも適切に対応することができる。これは、類型データに任意の文字列を示す“<*>”等を含めた場合においても、単に任意の文字列の入力を受けつけるのみではなく、この“<*>”が対応する位置の部分文字列のデータを参照して応答処理に用いることができ、適切な応答処理を実行させることができるからである。
次に、本発明の実施例1について図面を参照して詳細に説明する。図9は、本発明の実施例1による自然言語処理装置100aの構成を示すブロック図である。
図9を参照すると、本実施例の自然言語処理装置100aは、図1の自然言語処理装置100と比較して、分割を禁止する2字以上の文字列である連結語句の一覧を示す連結語句テーブル81を新たに備え、分割部20aにおいて、処理対象の文中に含まれる連結語句を検索する連結語句検索部22を新たに備える。本実施例の自然言語処理装置100aは、分割部20aにより、処理対象の文を連結語句の内部に該当しない個所に限り分割したものを分割文として生成することを特徴とする。
図10は、本実施例による連結語句テーブル81の一例を示す図である。図10の例を参照すると、本実施例の連結語句テーブル81は、“きのこ”“菜の花”“竹の子”“おはよう”の各語句が連結語句として記録されている。
次に、図面を参照して本実施例による自然言語処理装置100aの動作について詳細に説明する。
図11、図12は、本実施例の自然言語処理装置100aの分割部10aによる分割文の生成処理を示すフローチャートであって、それぞれが異なる方式に基くものであり、本実施例においてはこの2種類の方式の処理を説明する。
図11では、処理対象の文を部分文字列に分割した後に、分割されている連結語句を検出して連結させる方式である。図12では、処理対象の文を部分文字列に分割する際に、連結語句を分割することになるのかをチェックすることにより連結語句の分割を回避する方式である。
まず、図11の方式の動作を説明する。図11を参照すると、まず分割部10aは、処理対象の文を、文中に含まれる分割語句の先頭及び末尾で分割することにより部分文字列に分ける(ステップ1101)。この処理内容は、図3や図8の分割文生成処理と同様である。
次に、連結語句が連続する位置の複数個の部分文字列に分割されている場合には、その各部分文字列の間の分割を解除して1つの部分文字列にする処理を行う。まず、先頭の部分文字列を、連結語句の分割チェックの起点に定める(ステップ1102)。
そして、起点の部分文字列を含めて、未チェックの部分文字列が2個以上ある場合には(ステップ1103)、連結語句検索部22が、連結語句が分割されているかどうかを起点の部分文字列からチェックする(ステップ1104)。ただし、ここで未チェックの部分文字列が2個以上ないのであれば、もう連結する部分文字列が無いので、分割文の生成処理を終了とする(ステップ1103)。
ここで連結語句が分割されている場合には、分割処理部29aが、この連結語句の内部の分割を解除して1つの部分文字列にする。そして、連結語句の分割チェックの起点を、この連結した連結語句の次の部分文字列に進めて、ステップ1103以降の分割をチェックする処理に戻る(ステップ1107)。また、ステップ1105において連結語句が分割されていない場合には、連結語句の分割チェックの起点を次の部分文字列に進めて、ステップ1103以降の分割をチェックする処理に戻る(ステップ1108)。
以上のようにして、分割されている連結文字列のない分割文を生成することができる。
例えば、処理対象の文が「菜の花の写真」である場合には、先のステップ1101において「菜,の,花,の,写真」と分割されてしまうが、ここでこの先頭の部分文字列“菜”を起点に連結語句を探すと(ステップ1104)、連結語句“菜の花”が検出されてこれが3つに分割されていることが分るため、この“菜,の,花”の内側の2箇所の分割を解除して1つの部分文字列“菜の花”とする(ステップ1106)。すると「菜の花,の,写真」が得られ、分割チェックの起点を“菜の花”の次の部分文字列“の”に定めて(ステップ1107)、2回目の分割チェックを行う。
2回目の分割チェックでは連結語句が見つからないので、次の部分文字列“写真”を、連結語句の分割チェックの起点に定めて(ステップ1108)、3回目の分割チェックを行う。すると、残る部分文字列が1つのみでもう連結処理はできないので(ステップ1103)、分割文の生成処理を終了する。このようにして「菜の花の写真」の文は各単語毎に「菜の花,の,写真」と適切に分割することができる。
次に、図12の方式の動作を説明する。図12参照すると、まず分割部10aは、文字列比較を行う始りの文字の位置を示す比較起点位置に、文の先頭を示す“1”を設定する(ステップ1151)。
そして、比較起点位置が、処理対象の文の文字数を越えない場合には(ステップ1152)、分割語句検索部21が、個々の分割語句に対して、処理対象の文の比較起点位置から始るその分割語句の文字数分の文字列と、その分割語句とが一致するかをチェックする(ステップ1153)。また、比較起点位置が、処理対象の文の文字数を越える場合にはこの分割処理を終了する(ステップ1152)。
そして、一致する分割語句がない場合には、比較起点位置を“1”増加させることにより1文字先に進めて、ステップ1152以降の分割語句と一致するかをチェックする処理に戻る(ステップ1154、1155)。
また、一致する分割語句がある場合には、連結語句検索部22が、処理対象の文中においてこの分割語句が他の連結語句の一部分として含まれるかどうかをチェックする(ステップ1156)。ここで、この分割語句が連結語句に含まれない場合には、分割処理部29aが、この分割語句の前後で文を分割し(ステップ1157)、この分割語句の文字数を比較起点位置に加算して(ステップ1158)、ステップ1152以降の分割語句と一致するかをチェックする処理に戻り、この分割語句の次の文字からチェックを再開する。
また、この分割語句が連結語句に含まれる場合には、分割処理部29aが、この連続語句の前後で文を分割する(ステップ1159)。そして、この連続語句が複数の部分文字列に分割されている場合には、分割処理部29aが、その各部分文字列の間の分割を解除して1つの部分文字列にする(ステップ1160)。そして、比較起点位置を増加させて文字列比較を行う始りの文字の位置をこの連結語句の末尾の文字より1つ先の文字(つまり連結語句の次の文字)に設定した上で、ステップ1152以降の分割語句と一致するかをチェックする処理に戻る(ステップ1161)。
以上のようにして、分割されている連結文字列のない分割文を生成することができる。
例えば、処理対象の文が「菜の花の写真」である場合を考える。まず1回目の分割語句のチェックにおいては1文字目からチェックされ(ステップ1151〜1153)、図4の例に示されるいずれの分割語句にも該当しないので、比較起点位置を“1”増加させてステップ1152に戻る(ステップ1154、1155)。
2回目の分割語句のチェックにおいては2文字目“の”からチェックされ、これが分割語句に該当するため、処理対象の文中においてこの分割語句が他の連結語句の一部分として含まれるかどうかをチェックする(ステップ1156)。すると、この2文字目の“の”は連結語句“菜の花”の一部分として処理対象の文に含まれるので、この連結語句“菜の花”の前後で文を分割し「菜の花,の写真」が得られる(ステップ1159)。ここで、分割処理においては、文の先頭の前の個所、及び文の末尾の後ろの個所の分割は無視する。
そして、この連続語句“菜の花”は分割されていない1つの分割文字列なのでそのままにして(ステップ1160)、この連結語句“菜の花”の次の文字“の”を比較起点位置に設定して、ステップ1152に戻る(ステップ1161)。
3回目の分割語句のチェックにおいては、“の”が分割語句に該当し(ステップ1154)かつ分割語句の一部に含まれていないため(ステップ1156)、この分割語句“の”の前後で文を分割し「菜の花,の,写真」が得られる(ステップ1157)。ここで分割処理においては、既に分割済の個所への分割は無視することとする。
そして、この分割語句“の”の次の文字“写”を比較起点位置に設定して、ステップ1152に戻る(ステップ1161)。
4回目の分割語句のチェックにおいては、いずれの分割語句にも該当しないので、比較起点位置を“1”増加させて“5”としステップ1152に戻る(ステップ1154、1155)。5回目の分割語句のチェックにおいても同様に、“真”はいずれの分割語句にも該当しないので、比較起点位置を“1”増加させて“6”としステップ1152に戻る(ステップ1154、1155)。すると、比較起点位置が“7”となり、処理対象の文の文字数“6”を超えるため、これで分割文の生成処理が終了する。このようにして「菜の花の写真」の文は各単語毎に「菜の花,の,写真」と適切に分割することができる。
以上説明したように本実施例の自然言語処理装置100aによれば、図1の実施の形態の効果に加えて、分割を回避する語句を予め設定することにより、文章を単語毎・意味毎に適切に分割することができ、自然言語の高い認識性能を実現できる。
次に、本発明の実施例2について図面を参照して詳細に説明する。図13は、本発明の実施例2の自然言語処理装置100bの構成の一例を示すブロック図である。
図13を参照すると、本実施例の自然言語処理装置100bは、図1の自然言語処理装置100と比較して、処理対象の文から削除する語句である削除語句の一覧を示す削除語句テーブル82を新たに備え、また分割部20bには、処理対象の文に含まれる削除語句を検索する削除語句検索部23を新たに備える。
本実施例の自然言語処理装置100bは、分割部20bが、処理対象の文を分割して分割文を生成する前に、各削除語句を全て削除することを特徴とする。また、処理対象の文から、句読点・スペース・タブ・改行等の削除も行う。
図14は、本実施例による自然言語処理装置100bの削除語句テーブル82の一例を示す図であり、“えーと”“あのー”の2つの語句が削除語句として登録されている。このような語句は、例えば音声認識による文章等において発生しやすい。
このような、意味を持たない冗長な語句は削除しても文章の意味を解釈する上では特に問題はなく、またこうした不要な語句が削除されることで文章が短くすっきりとし、自然言語認識処理の精度が向上することにもなる。また、処理対象の文章には句読点・スペース・タブ・改行等が含まれることがあり、これらを削除することも同様にして自然言語処理の精度が向上することになる。
次に、図15を参照して本実施例による自然言語処理装置100bの動作について詳細に説明する。図15は、本実施例の自然言語処理装置100bの分割部20bによる分割文の生成処理の動作を示したフローチャートである。
図15を参照すると、まず分割部20bは、分割処理部29b等により、処理対象の文に含まれる句読点・スペース・タブ・改行を全て削除する(ステップ1201)。そして、削除語句検索部23が検出する処理対象の文に含まれる削除語句を、分割処理部29b等により全て削除する(ステップ1202)。そして、図1の実施の形態等の方法によりこの文を分割し分割文を生成する(ステップ1203)。
例えば、「えーとあのー今の時刻は」の文章に対して、図1の実施の形態等の方法では「えーとあ,のー今,の,時刻,は」と各単語がバラバラに分割されてしまう。そこで、本実施例の方法では、削除語句検索部23により削除語句“えーと”“あのー”が含まれることを検出し、これを削除して「今の時刻は」となり(ステップ1202)、更に分割語句に基いて分割処理を行い「今,の,時刻,は」と各単語毎に適切に分割することができる(ステップ1203)。
また本実施例においては、図14のステップ1201とステップ1202はその実行の順序を逆にしてもよく、またステップ1201とステップ1202の一方のみを実行する方式を採用しても文中から不要な語句が削除されることにより同様の効果が実現される。
以上説明したように本実施例の自然言語処理装置100bによれば、図1の実施の形態の効果に加えて、文中から不要な語句を削除することで、より精度の高い自然言語の認識処理を実現することができる。
次に、本発明の実施例3について図面を参照して詳細に説明する。図16は、本発明の実施例3の自然言語処理装置100cの構成の一例を示すブロック図である。
図16を参照すると、本実施例の自然言語処理装置100cは、図1の自然言語処理装置100と比較して、書換対象の語句である書換元語句のそれぞれに書換元語句を書換える書換後語句を対応させて記録した書換語句テーブル83を新たに備え、また分割部20cには、処理対象の文に含まれる書換語句を検索する書換語句検索部24を新たに備える。
本実施例の自然言語処理装置100cは、分割部20cが、処理対象の文に含まれる書換元語句を書換後語句に書換えて分割文を生成することを特徴とする。
図17は、本実施例の書換語句テーブル83の一例を示す図である。図17の例においては、各行においてコロン“:”の右側が書換元語句であり、その左側が対応する書換後語句である。つまり、“きょう”は“今日”に書き換え、“あす”“あした”“みょうにち”はそれぞれ“明日”に書き換え、“スケジュール”は“予定”に書き換える旨の内容である。
次に、図面を参照して本実施例による自然言語処理装置100cの動作について詳細に説明する。
図18、図19は、本実施例の自然言語処理装置100cの分割部20cによる分割文の生成処理の動作を示したフローチャートであって、それぞれが異なる方式に基くものであり、本実施例においてはこの2種類の方式の処理を説明する。
図18では、処理対象の文中に含まれる全ての書換元語句を対応する書換後語句に置換した上で、分割を行い分割文を生成する方式である。図19では、処理対象の文を分割した上で、各部分文字列の内でいずれかの書換元語句と一致するものを全て対応する書換後語句に置換することで分割文を生成する方式である。
まず、図18の方式の動作を説明する。図18を参照すると、まず分割部20cは、書換語句検索部24により処理対象の文に含まれる書換元語句を検索して、文に含まれる書換元語句を全て対応するそれぞれの書換先語句に分割処理部29c等により変換する(ステップ1301)。そして、前述の実施例や実施の形態の方法によりこの文を分割し分割文を生成する(ステップ1302)。
このようにして、同じ意味を示すいくつもの同義語を、代表する1つの語句に変換して処理することができるので、同義語の内の代表する1つの語句を用いて応答テーブル85に類型データとして設定することができる。
例えば、「今日の予定」「きょうの予定」「今日のスケジュール」「きょうのスケジュール」の各文は、ステップ1301により全て同じ「今日の予定」と変換され、ステップ1302において「今日,の,予定」と分割される。このため、「今日,の,予定」のみを類型データとして応答ファイルに登録するのみで、「今日の予定」「きょうの予定」「今日のスケジュール」「きょうのスケジュール」のそれぞれの文に対し共通の処理を実行させることができる。
次に、図19の方式の動作を説明する。図19を参照すると、まず分割部20cは、前述の実施例や実施の形態の方法によりこの文を分割する(ステップ1351)。そして、書換語句検索部24により、各部分文字列の内でいずれかの書換元語句と一致するものを検索して、書換元語句に一致する部分文字列を全て対応するそれぞれの書換先語句に分割処理部29c等により変換する(ステップ1352)。
例えば、「今日の予定」「きょうの予定」「今日のスケジュール」「きょうのスケジュール」の各文は、ステップ1351において「今日,の,予定」「きょう,の,予定」「今日,の,スケジュール」「きょう,の,スケジュール」と分割され、ステップ1352において書換元語句を書換後語句に変換することにより全て「今日,の,予定」と変換される。このため、図18の場合と同様の処理結果を得ることができる。
以上説明したように本実施例の自然言語処理装置100cによれば、図1の実施の形態の効果に加えて、応答テーブル85中の項目を増やすことなく、様々な同義語の使用に対応することができる。
次に、本発明の実施例4について図面を参照して詳細に説明する。図20は、本発明の実施例4の自然言語処理装置100dの構成の一例を示すブロック図である。
図20を参照すると、本実施例の自然言語処理装置100dは、図1の自然言語処理装置100と比較して、
語句を各グループ毎にまとめて記録した語句分類テーブル86と、各種のデータを記録する登録データテーブル88を新たに備え、また応答抽出部30dには、語句が語句分類テーブル86中の各グループ中に登録されているかどうか検索する分類検索部32を新たに備える。
本実施例の自然言語処理装置100dは、応答テーブル85dにおいて、類型データの文字列条件データとして、語句分類テーブル内の予め指定されたグループ中の語句の1つと一致するという条件を指定できるようにしたことを特徴とする。更に、応答部40dにおいて、各種のデータを記録した登録データテーブル88内のデータを参照・追加・削除する機能を備え、その内容に用いて処理を実行させることができるようにした。
図21は、本実施例による語句分類テーブル86の一例を示す図である。図21の例においては、各行のコロン“:”の左側が分類されたグループの名前であり、コロン“:”の右側がそのグループに含まれる語句である。つまり、“プログラム名”と“画像名”の2つのグループがあり、“プログラム名”のグループには“メモ帳”“電卓”“ブラウザ”の各語句が含まれ、“画像名”のグループには“地図”“設計図”“写真”の各語が含まれる旨の内容である。
図22は、本実施例による登録データテーブル88の一例を示す図である。図22の例においては、コロン“:”の左側がプログラム名や画像名であり、コロン“:”の右側がそれに対応するファイル名である。つまりプログラム名が“メモ帳”“電卓”“ブラウザ”である各プログラムのファイル名と、画像名が“地図”“設計図”“写真”である各画像のファイル名が登録されている。
図23は、本実施例による応答テーブル85dの一例を示す図であり、「<プログラム名>,を,出して」と「<画像ファイル名>,を,出して」との2種類の類型データがあり、コロン“:”以下の中括弧“{”“}”に囲まれた内部がそれぞれに対応する処理内容データである。この各処理内容データにおいては、中括弧“{”“}”に囲まれた内部の2行の命令を順次実行する。
また、類型データの文字列条件データにおいては、“<プログラム名>”や“<画像ファイル名>”のように語句分類テーブル86のグループ名を不等号の括弧“<”“>”で囲むことにより、この文字列条件データに対応する位置の部分文字列がこの指定したグループ中の語句の1つに一致するという条件を示すこととする。
つまり、「<プログラム名>,を,出して」の類型データには、「メモ帳,を,出して」「電卓,を,出して」等の分割文が該当し、「<画像ファイル名>,を,出して」の類型データには、「地図,を,出して」「設計図,を,出して」等の分割文が該当するのである。
図23の応答テーブルにおいては、処理内容データに、ハイフン“-”に続いて関数名“応答文出力”と“プログラム実行”“登録実行”“登録削除”のいずれかとが記載されている。
“応答文出力”の関数は、前述の実施の形態と同じく、これに続く括弧の中の文章を応答文として出力させる旨の命令である。“プログラム実行”の関数は、任意の文字列を“〜”で表すこととして、“プログラム実行(登録プログラム,〜)”の場合は、“〜”の部分に示されるプログラム名の登録データテーブル88に登録された対応するファイル名のプログラムを実行する旨の命令である。“プログラム実行(画像表示,〜)”の場合は、“〜”の部分に示される画像名の登録データテーブル88に登録された対応するファイル名の画像ファイルを表示する旨の命令である。“登録実行”と“登録削除”の命令については後に説明する。
次に、図面を参照して本実施例による自然言語処理装置100dの動作について詳細に説明する。本実施例の自然言語処理装置100dの全体的な動作は図1の実施の形態等と同様であるが、応答抽出部30dの処理において語句分類テーブル86のグループを指定する文字列条件データに対応することと、応答部40dの処理において登録データテーブル88のデータに基いて処理を実行できることとが新たに追加される。
図7のフローチャートを参照・比較して、本実施例の処理を説明する。本実施例の自然言語処理装置100dの動作は、まず、ステップ1051と同じく、分割部20が処理対象の文を分割する。
そして、ステップ1052と同様にして、応答抽出部30dの類型検索部31dが、応答テーブル内の類型データであって、文字列条件データの個数が分割文の部分文字列の個数と等しく、かつ全ての文字列条件データの条件をそれぞれに対応する位置の部分文字列が満たしているものを検索する。
ただし、文字列条件データに“<プログラム名>”や“<画像ファイル名>”のように、語句分類テーブル86のグループ名が指定されている場合には、文字列条件データの成立チェック(図6のステップ1002−4)において、分類検索部32が語句分類テーブル86を参照して、この文字列条件データに対応する位置の部分文字列がこの指定したグループ中の語句の1つに一致するかどうかチェックすることで、条件の成否を判定する。
そして、ステップ1053と同様にして、応答抽出部30dの抽出処理部39dが、類型データに対応する処理内容データを抽出し分割文を構成する部分文字列の内で処理内容データにおいて指定されるものを、処理内容データに付加して応答部40dに送る。
そして、ステップ1054と同様にして、応答部40dが、処理内容データに付加された部分文字列を用いて、その処理内容データが示す処理内容を実行する。
ただし、処理内容データに“プログラム実行”等の登録データテーブル88のデータに基いて実行する命令については、応答部40dは、登録データテーブル88を参照して必要なデータを取得し指定された処理を実行する。
図24は、本実施例の応答部40dのこうした登録データテーブル88のデータに基いて実行する命令に対する動作の例を示したフローチャートである。ここでは、登録プログラムの実行命令を例に取る。
図24を参照すると、本実施例の応答部40dは、まず処理内容データ(ここでは登録プログラムの実行命令)を受付る(ステップ1401)。そして、処理内容データに付加された部分文字列である“プログラム名”のデータを取得する(ステップ1402)。
そして、登録データテーブル88を参照して、“プログラム名”に対応して登録された“ファイル名”のデータを取得する(ステップ1403)。そして、“ファイル名”に示されるプログラムファイルを起動させる(ステップ1404)。
例えば、“プログラム実行(登録プログラム,メモ帳)”の命令を受けつけた場合には(ステップ1401)、処理内容データに付加された部分文字列である“プログラム名”のデータである“メモ帳”を取得し(ステップ1402)、登録データテーブル88を参照して、この“メモ帳”に対応して登録された“ファイル名”である“memo.exe”のデータを取得し(ステップ1403)、この“memo.exe”のプログラムファイルを起動させる(ステップ1404)。
このようにして、本実施例の自然言語処理装置100dは、ファイルランチャーとして、指定した名前のプログラムを実行したり、指定した名前の画像ファイルを表示することができる。
本実施例の応答部40dは、登録データテーブル88等のデータを記録した知識テーブルを参照するのみではなく、新たにデータを追加したり、登録済みのデータを削除する機能も備える。
図23の本実施例の応答テーブル85dは、処理内容データにおいて、データを追加する“登録実行”とデータを削除する“登録削除”の関数を含んでいる。ここで説明のため、任意の文字列を“A”“B”“C”と表し、それぞれがグループ名、そのグループの語句、その語句に対応するファイル名を示すこととする。
“登録実行”の関数は、“登録実行(A,B,C)”の形式で示され、語句分類テーブル86にグループ名“A”の語句“B”を新規に登録し(つまり“A:B”の行を追加する)、登録データテーブル88に語句“B”に対応させてファイル名“C”を新規に登録する(つまり“B:C”の行を追加する)。
“登録削除”の関数は、“登録削除(A,B)”の形式で示され、語句分類テーブル86からグループ名“A”の語句“B”を削除し(つまり“A:B”の行を削除する)、登録データテーブル88から語句“B”の登録を削除する(つまり“:”の左側が“B”である行を削除する)。
これらの関数の命令に対しても、応答部40dは図24のフローチャートと同様にして処理を実行することができる。
また、もし登録データテーブル88等の知識テーブルや語句分類テーブル等の自然言語装置内のテーブルに対して、データを参照するのみで追加・削除を行わないのであれば、追加削除の機能は備えずにデータを参照する機能のみを備えることとしてもよい。
また、本実施例の登録データテーブル88は、1つのテーブルにプログラムのファイル名と画像のファイル名の2種類を登録しているが、登録するデータの種類に応じてテーブルの数は複数にしてもよい。
等の知識テーブルや語句分類テーブル等の自然言語装置内のテーブルに対して、データを参照するのみで追加・削除を行わないのであれば、追加削除の機能は備えずにデータを参照する機能のみを備えることとしてもよい。
また、文字列条件データに語句分類テーブル86のグループ名が指定されている場合の文字列条件データの成立チェック(図6のステップ1002−4)においては、上述のこの文字列条件データに対応する位置の部分文字列がこの指定したグループ中の語句の1つに一致するかどうかをチェックして判定する方式以外にも、次のような判定方法もある。つまり、グループ名が指定されている文字列条件データに対して、対応する位置の部分文字列が、語句分類テーブル内の予め指定されたグループ中の語句の1つと一致するか、又は、語句分類テーブル内の全ての語句と一致しない場合には条件成立とする判定方法である。
以上説明したように、本実施例の自然言語処理装置100dによれば、図1の実施の形態の効果に加えて、文字列条件データとして語句のグループを指定することができるため、予め定めた特定の語句のみに対応させて所定の処理を実行させることができる。更に、応答部40dにおいて、データを記録した語句分類テーブル86等を参照する機能を備えたことにより、本実施例において説明したファイルランチャーに用いる等の、こうしたテーブルを利用したより複雑な命令を実行させることができる。更に、こうしたテーブルのデータを追加や削除する機能を備えたことにより、自然言語の文を用いて登録されている知識データを自由に追加・削除でき、人工知能システムや知識の登録ツールとして利用することができる。
次に、本発明の実施例5について図面を参照して詳細に説明する。図25は、本発明の実施例5の自然言語処理装置100eの構成の一例を示すブロック図である。
図25を参照すると、本実施例の自然言語処理装置100eは、図20の実施例4と比較して、通信ネットワーク200を介して外部のサーバ300−1〜300−nと接続する通信部60を新たに備え、登録データテーブル88の代りにウェブサイト名とそのウェブサイトのURLアドレスとを対応させて記録したURLテーブル88eを備える。
本実施例の自然言語処理装置100eは、「東京の天気を調べて」等の自然言語の文章による問合せに応じて、通信ネットワーク200を介して外部のサーバ300−1〜300−nに対し情報を問合せて取得する機能を備える。
通信ネットワーク200は、例えば、インターネット、パソコン通信、LAN、VPN等の情報通信回線である。サーバ300−1〜300−nは、通信ネットワーク200を介して、情報検索の問合せを受付けてその検索結果を返信する機能を備えるコンピュータ装置である。
図26、図27、図28は、それぞれ本実施例による自然言語処理装置100eの語句分類テーブル86e、URLテーブル88e、応答テーブル85eである。
図26の本実施例の語句分類テーブル86eにおいては、都道府県名と駅名の各グループのそれぞれに、いくつかの都道府県名や駅名が登録されている。また、データの件数が多いので、図中においては“・・・”によりデータの一部を省略していることを示している。
図26の本実施例のURLテーブル88eにおいては、“辞書”“天気”“時刻表”のそれぞれのウェブサイト名に対応して、ウェブサイトのURLアドレスが登録されている。この各URLアドレスは、サーバ300−1〜300−nの内のいずれかのURLアドレスを示すものである。
図27の本実施例の応答テーブル85eにおいては、処理内容データにおいて、通信ネットワーク200を介して情報を取得する“ネット検索”の関数を含んでいる。ここで説明のため、任意の文字列を“A”“B”と表し、それぞれがウェブサイト名と検索キーワードを示すこととする。
“ネット検索”の関数は、“ネット検索(A,B)”の形式で示され、URLテーブル88eにウェブサイト名“A”に対応して登録されたURLアドレスのウェブサイトに対して、検索キーワード“B”により情報検索の問合せを行い、その検索結果を受信して表示する。
次に、図面を参照して本実施例による自然言語処理装置100eの動作について詳細に説明する。
本実施例の自然言語処理装置100eは、分割部20と応答抽出部30eの動作については、前の実施例4と同様である。例えば、「インターネットの意味を調べて」「東京の天気を調べて」「名古屋駅の時刻表を調べて」のそれぞれの文は、分割部20により「インターネット,の,意味,を,調べて」「東京,の,天気,を,調べて」「名古屋駅,の,時刻表,を,調べて」の各分割文に分割され、応答抽出部30eにより各処理内容データが抽出されて指定された部分文字列が付加されて「ネット検索(辞書,インターネット)」「ネット検索(天気,東京)」「ネット検索(時刻表,名古屋駅)」のそれぞれが得られる。
図29は、本実施例による応答部40eの処理の一例を示すフローチャートである。図29を参照すると、まず、応答部40eが処理内容データ(ここでは情報検索命令)を受付けて(ステップ1501)、処理内容データに付加された部分文字列である“ウェブサイト名”と“検索キーワード”の各データを取得し(ステップ1502)、URLテーブル88eを参照して、“ウェブサイト名”に対応して登録された“URLアドレス”のデータを取得する(ステップ1503)。
そして、通信部60により通信ネットワーク200を介して“URLアドレス”に示されるウェブサイトに接続し、“検索キーワード”を用いて情報検索の問合せを行う(ステップ1504)。そして、通信部60によりこの問合せに対するウェブサイトからの検索結果を受信し、応答部40eがその検索結果を表示する(ステップ1505)。
例えば「ネット検索(辞書,インターネット)」の処理内容データを受付けた場合には(ステップ1501)、ウェブサイト名“辞書”と検索キーワード“インターネット”を取得し(ステップ1502)、URLテーブル88eを参照して、ウェブサイト名“辞書”に対応して登録されたURLアドレス“www.Dictionary.co.jp”のデータを取得する(ステップ1503)。そして、通信部60により、通信ネットワーク200を介してこのウェブサイト(http://www.Dictionary.co.jp)に接続し、検索キーワード“インターネット”により情報検索の問合せを行う(ステップ1504)。そして、通信部60によりこの問合せに対するウェブサイトからの検索結果を受信し、応答部40eがその検索結果を表示する(ステップ1505)。
「ネット検索(天気,東京)」「ネット検索(時刻表,名古屋駅)」の処理内容データを受付けた場合にも同様である。
以上説明したように、本実施例の自然言語処理装置100eによれば、前の実施例4の効果に加えて、通信ネットワーク200を介して外部のサーバ300−1〜300−nに情報を問合せて取得する処理を、自然言語による命令を用いて実行させることができる。
次に、本発明の実施例6について図面を参照して詳細に説明する。図30は、本発明の実施例6の自然言語処理装置100fの構成の一例を示すブロック図である。
本実施例の自然言語処理装置100fは、応答部40fが、処理内容データに基いて応答テーブル85fの内容を書換える機能を備える。
図31は、本実施例の自然言語処理装置100fの動作を示したフローチャートである。図31を参照すると、本実施例の自然言語処理装置100fは、まず分割部20が、処理対象の文を分割して分割文を生成し(ステップ1601)、応答抽出部30の類型検索部31が、設定されている応答テーブル85fを用いて分割文に該当する類型データを検索し(ステップ1602)、応答抽出部30の抽出処理部39が、この類型データに対応する処理内容データを抽出する(ステップ1603)。
そして、応答部40fが、処理内容データに示される処理を実行し、もし処理内容データに指定されている場合には応答抽出部30が参照する応答テーブル85fに対し新規項目の追加や、既存項目の削除も行う(ステップ1604)。
図32は、本実施例による応答テーブル85fの一例を示す図である。図32の応答テーブル85fには“応答テーブル追加”の関数が含れており、“応答テーブル追加”の関数は、この関数名に続く括弧内の類型テーブルと処理内容データとの組(例えば「<*>:-応答文出力(<1>)」)を応答テーブル85fに追加する。
例えば、「<*>,を,表示」の類型データに該当する文を入力すると、「応答文出力(<1>)」の処理内容データにより“<*>”の部分に係る文章が表示され、また「応答テーブル追加(<*>:-応答文出力(<1>))」の処理内容データにより、応答テーブル85fに1行新たに「<*>:-応答文出力(<1>)」が追加される。
これにより、例えば「ABCを表示」を入力すると、“ABC”が表示されると共に、応答テーブル85fに「<*>:-応答文出力(<1>)」が追加される。このため、次の入力で“あいうえお”を表示させたい場合には、「あいうえおを表示」と入力する以外にも、単に「あいうえお」と入力するのみでこれを表示させることができる。
また、“応答テーブル追加”の関数は、この関数名に続く括弧内のデータを、応答テーブル85fに追加したままにするのではなく、その追加されたデータに含まれる類型データと、この追加処理を命じた基の類型データのいずれかに分割文が該当する限りにおいて追加したデータを保持することにすると便利である。
例えば、「ABCを表示」の文の入力後において、入力される文が「あいうえおを表示」や「あいうえお」のように分割文が「<*>,を,表示」と「<*>」のいずれかに該当する場合には、応答テーブル85fに追加した「<*>:-応答文出力(<1>)」を保持し、そうでない文が入力された場合には、保持されたこの「<*>:-応答文出力(<1>)」を消去するのである。
このように、応答テーブル85fに追加したデータを、命令の種類が変った段階で消去することで、誤認識を防止することができる。
例えば、「ABCを表示」の文の入力後においては、部分文字列が1つのみの文が入力されると追加された「<*>:-応答文出力(<1>)」に該当してその文が表示される。この後に「今は何時」の文を入力すると、先に追加されている「<*>:-応答文出力(<1>)」が消去され、新たに「何時:-応答文生成(時刻)」が応答テーブル85fに追加される。このため、ここで「何時」と入力した場合には、誤って「何時」の文が表示されるのではなく、正しく現在の時刻が表示される。
図33は、本実施例の応答テーブル85f’の図32以外の他の一例を示す図である。この図33の応答テーブル85f’の例は、実施例5の通信ネットワーク200を介して外部のサーバ300−1〜300−nに情報検索の問合せを行う形態等において適用することができる。
例えば、「北海道の天気を調べて」等の文で都道府県の天気を問合せた後は、以後「東京は」「大阪は」等の短い文で天気を問合せることができる。また、「東京駅の時刻表を調べて」等の文で駅の時刻表を問合せた後は、「静岡駅は」「名古屋駅は」等の短い文で駅の時刻表を問合せることができる。
以上説明したように、本実施例の自然言語処理装置100fによれば、図1の実施の形態等の効果に加えて、文の意味内容に対応して自然言語処理装置100fが実行する処理を、簡単により詳細に設定することができる。
次に、本発明の実施例7について図面を参照して詳細に説明する。図34は、本発明の実施例7の自然言語処理装置100gの構成の一例を示すブロック図である。
図34を参照すると、本実施例の自然言語処理装置100gは、図1の実施の形態と比較して、複数個の応答テーブル85g−1〜85g−nを新たに備えている。
本実施例の自然言語処理装置100gは、応答部40gが処理内容データに基いて、応答抽出部30gがどの応答テーブル85g−1〜85g−nを検索に用いるのかを設定する機能を備えることを特徴とする。
これは、本実施例の自然言語処理装置100gが、検索に使用する応答テーブル85g−1〜85g−nとして様々な使用目的に特化したものをそれぞれに揃えて、それを自由に切替えて使用でききるようにするためである。
図35は、本実施例の自然言語処理装置100gの動作を示したフローチャートである。図35を参照すると、本実施例の自然言語処理装置100gは、まず分割部20が、処理対象の文を分割して分割文を生成し(ステップ1701)、応答抽出部30gの類型検索部31が、検索に使用する応答テーブルとして設定されている応答テーブル85g−1〜85g−nを用いて分割文に該当する類型データを検索し(ステップ1702)、応答抽出部30の抽出処理部39が、この類型データに対応する処理内容データを抽出する(ステップ1703)。
そして、応答部40gが、処理内容データに示される処理を実行し、もし処理内容データに指定されている場合には、処理内容データに基いて各応答テーブル85g−1〜85g−nのいずれを応答抽出部30gが検索に使用するのかを設定する(ステップ1704)。
また、テップ1704において、複数個の応答テーブル85g−1〜85g−nを応答抽出部30gが検索に使用するよう設定する際には、その検索の順序も設定できるようにしてもよい。
図36と図37は、それぞれ本実施例の応答テーブル85g−1、85g−nの一例を示すものである。
図36の応答テーブル85g−1は通常時において使用するテーブルであり、図37の応答テーブル85g−2はこの自然言語処理装置100gを用いてクイズを行う目的のために特化したテーブルである。ただし、検索に使用する応答テーブルを設定する命令である“応答テーブル設定”の関数を含む項目以外は、各応答テーブル85g−1、85g−n共に図面中においては記載を省略している。
“応答テーブル設定”の関数は、“応答テーブル設定(クイズ)”の場合には、応答抽出部30gが検索に使用するテーブルとして、クイズを行う目的に特化した応答テーブル85g−2を設定する旨の命令である。また“応答テーブル設定(通常)”の場合には、応答抽出部30gが検索に使用するテーブルとして、通常時に使用するテーブルである応答テーブル85g−1を設定する旨の命令である。
この場合においては、通常時の応答テーブル85g−1が使用されている時に「クイズを開始」の文が入力されると、その分割文がこの応答テーブル85g−1の「クイズ,を,開始」の類型データに該当し、まず「応答文出力(クイズを開始します)」の処理内容データにより「クイズを開始します」の文が表示され、次の行の「応答テーブル設定(クイズ)」の処理内容データにより、検索に使用するテーブルとしてクイズを行う目的に特化した応答テーブル85g−2が設定される。
また、クイズを行う目的に特化した応答テーブル85g−2が使用されている時に「クイズを終了」の文が入力されると、その分割文がこの応答テーブル85g−1の「クイズ,を,終了」の類型データに該当し、まず「応答文出力(クイズを終了します)」の処理内容データにより「クイズを終了します」の文が表示され、次の行の「応答テーブル設定(通常)」の処理内容データにより、通常時に使用する応答テーブル85g−1が検索に使用するテーブルとして設定される。
また、応答抽出部30gは、同時に複数個の応答テーブル85g−1〜85g−nを予め定められた順番で検索に使用できるものとしてもよい。この場合、応答部40gが応答抽出部30gにおいて使用する応答テーブル85g−1〜85g−nを設定する際に、複数個の応答テーブル85g−1〜85g−nを使用するように設定する場合には、その検索順序も設定するできるようにしてもよい。
例えば、通常時は応答テーブル85g−1のみを検索に用いて、クイズを行うときには応答テーブル85g−2と応答テーブル85g−1の両方のテーブルを検索に用いる方式を実施することができる。また、このクイズのために両方のテーブルを使用する場合においては、クイズ目的に特化した応答テーブル85g−2の方を優先して検索に用いる方式実施することができる。
また、複数の応答テーブル85g−1〜85g−nを検索する場合においても、必ずしもそれぞれのテーブルの検索順序を設定する必要があるのではなく、同時に使用する各応答テーブル85g−1〜85g−nの各項目を全く任意の順序で検索する方式や、各項目の検索に該当した頻度や、最後に検索に該当した日時等を基に検索順序を設定する方式が可能である。
また、各応答テーブル85g−1〜85g−nは、予め全て自然言語処理装置100g内に備える必要は無く、例えば、実施例5に示されるようなインターネット等の通信ネットワーク200を介して外部のサーバ300−1〜300−nに接続している形態においては、自然言語処理装置100g内に無い応答テーブル85g−1〜85g−nが必要となった時に、そのテーブルを備えるサーバ300−1〜300−nからダウンロードして使用する等の方式も実施することができる。
以上説明したように、本実施例の自然言語処理装置100gによれば、図1の実施の形態等の効果に加えて、検索に使用する応答テーブル85g−1〜85g−nとして様々な使用目的に特化したものをそれぞれに揃えて、それを自由に切替えて使用することができる。これにより様々な専門的な用途に特化した自然言語の認識処理を、必要に応じて切替えて使用することができ、高い実用性を実現することができる。
次に、本発明の実施例8について図面を参照して詳細に説明する。図38は、本発明の実施例8の自然言語処理装置100hの構成の一例を示すブロック図である。
図38を参照すると、本実施例の自然言語処理装置100hは、図1の実施の形態と比較して、複数の分割語句テーブル80h−1〜80h−nと、複数の応答テーブル85h−1〜85h−nを新たに備え、分割部20hには、テーブル設定部25を新たに備える。
分割部20hのテーブル設定部25は、処理対象の文中における予め指定された語句の有無に基いて、分割部20hが分割処理に使用する分割語句テーブル80h−1〜80h−nを設定し、また、類型検索部31hが検索に使用する応答テーブル85h−1〜85h−nを設定する機能を備える。
処理対象の文章において、1つの部分文字列として分割される部分は、1つの文字列条件データ“<*>”により受付けることができ、その部分を1にまとめて応答抽出部30hから応答部40に送ることができるため、応答部40において各種の処理に用いることが容易である。
しかし、“が”“の”“に”“を”“は”の分割語句が含まれるような長い部分は、分割部20hによる分割処理で複数の部分文字列に分割されてしまうため、うまく1つにまとめて応答部40に処理させることができない。
そこで本実施例においては、利用する分割語句テーブル80h−1〜80h−nを、処理対象の文に対応して使い分けることにより、長い部分を一括して処理させたい文に対しては、特別に“が”“の”“に”“を”“は”を含まない分割語句テーブルを利用することにより当該部分を分割させないようにする。
次に、図43を参照して本実施例による自然言語処理装置100gの動作について詳細に説明する。図43は、本発明の実施例8による自然言語処理装置100gの処理を説明するフローチャートである。
図43を参照すると、まず、テーブル設定部25が、予め定められた語句が処理対象の文の中に含まれるか否かに基いて、使用する分割語句テーブル80h−1〜80h−n、応答テーブル85h−1〜85h−nがどれであるのかを設定する(ステップ1801)。
そして、分割部20hが、設定された分割語句テーブル80h−1〜80h−nを使用して文を分割し分割文を生成し(ステップ1802)、応答抽出部30hの類型検索部31hが、設定された応答テーブル85h−1〜85h−nから分割文に該当する類型データを検索し(ステップ1803)、応答抽出部30hの抽出処理部39hが、その応答テーブル85h−1〜85h−nから、類型データに対応する処理内容データを抽出し(ステップ1804)、応答部40がその処理内容データに示される処理を実行する(ステップ1805)。
ここで、応答部40に文の長い部分を一括して処理させたい場合とは、例えば、図23に示される知識データの登録処理における登録する知識データや、図5の「<*>,を,表示:-応答文出力(<1>)」や図28の「<*>,の,意味,を,調べて:-ネット検索(辞書,<1>)」における“<*>”の部分等がある。ここで本実施例においては、図5の「<*>,を,表示:-応答文出力(<1>)」を例に説明する。
図39、図40は、それぞれ本実施例の分割語句テーブル80h−1、80h−2の一例を示す図である。図41、図42は、それぞれ本実施例の応答テーブル85h−1、85h−2の一例を示す図である。
図39の分割語句テーブル80h−1は、図4の例と同じであり“が”“の”“に”“を”“は”により構成されている。また、図40の分割語句テーブル80h−2は“を表示”のみである。
ここで、分割部20hのテーブル設定部25は、処理対象の文に“を表示”の語が含まれる場合には分割語句テーブル80h−2と応答テーブル85h−2を用いるように設定し、含まれない場合には分割語句テーブル80h−1と応答テーブル85h−1を用いるように設定することとする。
図41の応答テーブル85h−1は、図5の例の「<*>,を,表示:-応答文出力(<1>)」と「<*>,の,<*>,を,表示:-応答文出力(<1>の<3>)」の2つの項目を含まないものである。これは「〜を表示」の形式の文は、応答テーブル85h−2の方で処理されるのであって、応答テーブル85h−1の側は検索されないため含めていない。また、図42の応答テーブル85h−2は「<*>,を表示:-応答文出力(<1>)」の項目のみを備えている。
ここで、“を表示”を含まない処理対象の文に対する処理を考える。まず、テーブル設定部25が、分割語句テーブル80h−1と応答テーブル85h−1とを使用するテーブルとして設定する(ステップ1801)。すると、“を表示”を含まない文に対しては、この分割語句テーブル80h−1と応答テーブル85h−1による処理は前述の図4と図5の分割語句テーブル80と応答テーブル85にそれぞれ等しいため、前述の実施の形態と同じ処理が実行されることになる(ステップ1802〜1805)。
次に、“を表示”を含む処理対象の文に対する処理を考える。この“を表示”を含む文の例としては、前述のように、“〜”を任意の文字列として「〜を表示」の形式の文がある。
まず、テーブル設定部25が、分割語句テーブル80h−2と応答テーブル85h−2とを使用するテーブルとして設定する(ステップ1801)。
そして、分割部20hが、この分割語句テーブル80h−2に基いて処理対象の文を分割し分割文を生成する(ステップ1802)。分割語句“を表示”により、通常の場合は、「〜,を表示」の2つの部分文字列から成る分割文が生成される。
そして、応答抽出部30hの類型検索部31hが、応答テーブル85h−2から分割文「〜,を表示」に該当する類型テーブルを検索する(ステップ1803)。すると、応答テーブル85h−2の「<*>,を表示:-応答文出力(<1>)」の項目の類型テーブルが検索に該当し、この処理内容データ「応答文出力(<1>)」の“<1>”が1番目の部分文字列で置き返られて、応答部40hに「応答文出力(〜)」として送られ、この“〜”の部分が表示される。
このように本実施例においては「〜を表示」の形式の文を、分割語句テーブル80h−2を基に分割するため、この“〜”の中に“が”“の”“に”“を”“は”が含まれていても1つの部分文字列とすることができるので、適切に“〜”の部分を用いて応答部40に処理させることができる。
また、上述の説明においてはテーブル設定部25は、文中に予め指定された語句が含まれるかどうかにより使用するテーブルを決定しているが、他の方式として、この予め指定された語句が更に予め指定した位置にあるかどうかに基いて使用するテーブルを決定する方式も同様にして可能である。
例えば、テーブル設定部25が、処理対象の文の末尾が“を表示”である場合に分割語句テーブル80h−2及び応答テーブル85h−2を用いることとし、それ以外の場合には、分割語句テーブル80h−1及び応答テーブル85h−1を用いることができる。
こうした方式を採用することにより、使用するテーブルを決定するためのキーワード“を表示”が、文末ではなく文中にある場合においても応答テーブル85h−2でなく通常時の応答テーブル85h−1を用いて適切に処理させることができる。
また、テーブル設定部25が、このようにして使用するテーブルを決定するためのキーワード“を表示”を、文末で検出した場合には、分割語句テーブル80h−1を用いて分割するのではなく、このキーワード“を表示”の前の1個所のみで分割することとする方式も同様にして実施することができる。
こうした方式を採用することにより、使用するテーブルを決定するためのキーワード“を表示”が文中に複数ある場合においても、「〜,を表示」の形式の2個の部分文字列からなる分割文に適切に分割することができる。
また、使用するテーブルを決定するためのキーワードに“の意味を調べて”を用いることで、同様にして図28の「<*>,の,意味,を,調べて:-ネット検索(辞書,<1>)」の処理に適応することができる。
また、使用するテーブルを決定するためのキーワードの数は1つに限らず、同時に複数個用いてもよい。例えば、処理対象の文に“の意味を調べて”を含む場合には意味検索に対応するテーブルを用いることとし、“を表示”を含む場合には文章表示に対応するテーブルを用いるように制御するのである。
以上説明したように、本実施例の自然言語処理装置100hによれば、図1の実施の形態等の効果に加えて、文章中の長い語句を途中で分割せずに1つの部分文字列として適切に処理することが可能となる。
次に、本発明の実施例9について図面を参照して詳細に説明する。図44は、本発明の実施例9の自然言語処理装置100kの構成の一例を示すブロック図である。
図44を参照すると、本実施例の自然言語処理装置100kは、図1の実施の形態と比較して、外部から入力を受付けて分割部20にテキストデータの形で渡す入力部である音声認識部10と、応答部40が生成した応答のテキストを外部に出力する出力部である音声合成部50を新たに備える。
図45は、本実施例の自然言語処理装置100kの動作を示したフローチャートである。図45を参照すると、まず音声認識部10が、自然言語の文章の音声による入力を受付けて(ステップ1901)、この音声を解析して、その音声が表す言葉を文字により表現するテキストデータに変換して分割部20へ送る(ステップ1902)。
これに続くステップ1903〜1906の処理は、前述の実施の形態や実施例と同様であり、まず分割部20が、音声認識部10から送られたテキストデータの文章を分割して分割文を生成し(ステップ1903)、類型検索部31が、この分割文に該当する類型データを検索し(ステップ1904)、抽出処理部39が、この類型データに対応する処理内容データを抽出し(ステップ1905)、応答部40が、この処理内容データに基き応答文を生成する(ステップ1906)。
そして、音声合成部50が、この応答文のテキストデータを音声合成により音声データに変換し(ステップ1907)、この応答文の音声データを再生して出力する(ステップ1908)。
こうして、本実施例の自然言語処理装置100kは、予めテキストデータの形で処理対象の文が渡される必要が無く、音声により入力される言葉に対しても、音声認識部10が音声認識によりテキストデータに変換するこにより、前述の実施の形態や実施例と同様にしてその文章の意味内容に対応して設定されている処理を応答部40に実行させることができる。また、応答部40が生成した応答の文章を音声合成部50により音声データに変換して出力することができる。
これにより、自然言語処理装置100kと利用者とが、人間同士のように音声により会話をすることができる。
また、外部からの自然言語の入力手段としては、音声認識部10以外にも様々な方式が可能であり、例えば、紙等に記載されている文字による文章の画像データを認識してその文章のテキストデータを生成するOCRの機能を用いる方式も同様に実施することができる。
また、本実施例の自然言語処理装置100kへの音声の入力方法としては、装置にマイク等により直接入力する以外にも様々な方式が可能であり、例えば、図46の自然言語処理装置100mに示されるように、通信ネットワーク200を介して外部の通信端末400−1〜400−nからの、音声による入力を受付けることも同様にして可能である。
図46を参照すると、自然言語処理装置100mは、図44の自然言語処理装置100kと比較して、通信ネットワーク200を介して外部の通信端末400−1〜400−nと通信する通信部60mを新たに備えている。
また図面中には示されていないが、分割部20及び応答抽出部30の各部においては、図44の自然言語処理装置100kと同様の各処理部を内部に備えているものとする。
図47は、自然言語処理装置100mの動作を示したフローチャートである。図47を参照すると、まず通信部60mが、通信ネットワーク200を介して、外部の通信端末400−1〜400−nから音声による入力を受信する(ステップ1951)。
そして、続くステップ1952〜1957は、図45のフローチャートのステップ1902〜1907と同様であり、この音声による入力に対する応答文の音声データが生成され(ステップ1952〜1957)、これを通信部60mが、通信ネットワーク200を介して外部の通信端末400−1〜400−nに送信する(ステップ1958)。
以上説明したように、本実施例の自然言語処理装置100k、100mによれば、図1の実施の形態等の効果に加えて、音声等による自然言語の入力を受付けて処理することができ、また利用者との間で人間同士のように音声により会話をすることができる。
なお、上記各実施例及び実施の形態の本発明の自然言語処理装置100、100a、100b、100c、100d、100e、100f、100g、100h、100k、100mは、音声認識部10、分割部20、20a、20b、20c、20h、応答抽出部30、30d、30e、30g、30h、応答部40、40e、40f、40g、音声合成部50、通信部60の機能や、その他の機能をハードウェア的に実現することは勿論として、各機能を備えるコンピュータプログラムである自然言語処理プログラム90、90a、90b、90c、90d、90e、90f、90g、90h、90k、90mを、コンピュータ処理装置のメモリにロードされることで実現することができる。この自然言語処理プログラム90、90a、90b、90c、90d、90e、90f、90g、90h、90k、90mは、磁気ディスク、半導体メモリその他の記録媒体に格納される。そして、その記録媒体からコンピュータ処理装置にロードされ、コンピュータ処理装置の動作を制御することにより、上述した各機能を実現する。
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。例えば、応答テーブル85等の各種テーブルの形式は、上述の各実施例における具体例に限定されるものではなく、例えば市販の表計算ソフトやデータベースソフトにおいて利用されているデータ形式を採用する方式も同様にして実施することができる。また、応答テーブル85の処理内容データにおいて用いた関数や命令も、上述の各実施例における具体例に限定されるものではなく、公知の技術により実施可能なさまざまな命令を応答テーブル85に記載して応答部40に実行させることが可能であり、このような形態も同様にして実施することができる。
以上説明したように、本発明の自然言語処理装置とその自然言語処理方法、及び自然言語処理プログラムは、インターネット等を利用した情報検索や、知識データの登録システムや人工知能システム、またその他ファイルランチャー等に利用することができる。
本発明の自然言語処理装置の構成の一実施の形態を示すブロック図である。
本発明の図1の実施の形態による自然言語処理装置の処理を説明するフローチャートである。
本発明の図1の実施の形態による自然言語処理装置の分割部による分割文の生成処理を説明するフローチャートである。
本発明の図1の実施の形態による自然言語処理装置の分割語句テーブルの一例を示す図である。
本発明の図1の実施の形態による自然言語処理装置の応答テーブルの一例を示す図である。
本発明の図1の実施の形態による自然言語処理装置の類型検索部による検索処理を説明するフローチャートである。
本発明の図1の実施の形態による自然言語処理装置の処理をより詳細に説明するフローチャートである。
本発明の図1の実施の形態による自然言語処理装置の分割部による分割文の生成処理の他の一例を説明するフローチャートである。
本発明の実施例1による自然言語処理装置の構成を示すブロック図である。
本発明の実施例1による自然言語処理装置の連結語句テーブルの一例を示す図である。
本発明の実施例1による自然言語処理装置の分割部による分割文の生成処理を説明するフローチャートである。
本発明の実施例1による自然言語処理装置の分割部による分割文の生成処理の他の一例を説明するフローチャートである。
本発明の実施例2による自然言語処理装置の構成を示すブロック図である。
本発明の実施例2による自然言語処理装置の削除語句テーブルの一例を示す図である。
本発明の実施例2による自然言語処理装置の分割部による分割文の生成処理を説明するフローチャートである。
本発明の実施例3による自然言語処理装置の構成を示すブロック図である。
本発明の実施例3による自然言語処理装置の書換語句テーブルの一例を示す図である。
本発明の実施例3による自然言語処理装置の分割部による分割文の生成処理を説明するフローチャートである。
本発明の実施例3による自然言語処理装置の分割部による分割文の生成処理の他の一例を説明するフローチャートである。
本発明の実施例4による自然言語処理装置の構成を示すブロック図である。
本発明の実施例4による自然言語処理装置の語句分類テーブルの一例を示す図である。
本発明の実施例4による自然言語処理装置の登録データテーブルの一例を示す図である。
本発明の実施例4による自然言語処理装置の応答テーブルの一例を示す図である。
本発明の実施例4による自然言語処理装置の応答部による処理を説明するフローチャートである。
本発明の実施例5による自然言語処理装置の構成を示すブロック図である。
本発明の実施例5による自然言語処理装置の語句分類テーブルの一例を示す図である。
本発明の実施例5による自然言語処理装置のURLテーブルの一例を示す図である。
本発明の実施例5による自然言語処理装置の応答テーブルの一例を示す図である。
本発明の実施例5による自然言語処理装置の応答部による処理を説明するフローチャートである。
本発明の実施例6による自然言語処理装置の構成を示すブロック図である。
本発明の実施例6による自然言語処理装置の処理を説明するフローチャートである。
本発明の実施例6による自然言語処理装置の応答テーブルの一例を示す図である。
本発明の実施例6による自然言語処理装置の応答テーブルの他の一例を示す図である。
本発明の実施例7による自然言語処理装置の構成を示すブロック図である。
本発明の実施例7による自然言語処理装置の処理を説明するフローチャートである。
本発明の実施例7による自然言語処理装置の応答テーブルの一例を示す図である。
本発明の実施例7による自然言語処理装置の応答テーブルの一例を示す図である。
本発明の実施例8による自然言語処理装置の構成を示すブロック図である。
本発明の実施例8による自然言語処理装置の分割語句テーブルの一例を示す図である。
本発明の実施例8による自然言語処理装置の分割語句テーブルの一例を示す図である。
本発明の実施例8による自然言語処理装置の応答テーブルの一例を示す図である。
本発明の実施例8による自然言語処理装置の応答テーブルの一例を示す図である。
本発明の実施例8による自然言語処理装置の処理を説明するフローチャートである。
本発明の実施例9による自然言語処理装置の構成を示すブロック図である。
本発明の実施例9による自然言語処理装置の処理を説明するフローチャートである。
本発明の実施例9による自然言語処理装置のその他の構成を示すブロック図である。
本発明の実施例9のその他の構成による自然言語処理装置の処理を説明するフローチャートである。
符号の説明
100、100a、100b、100c、100d、100e、100f、100g、100h、100k、100m 自然言語処理装置
10音声認識部
20、20a、20b、20c、20h 分割部
21、21h 分割語句検索部
22 連結語句検索部
23 削除語句検索部
24 書換語句検索部
25 テーブル指定部
29、29a、29b、29c、21h 分割処理部
30、30d、30e、30g、30h 応答抽出部
31、31e、31h 類型検索部
32 分類検索部
39、39d、39e、39h 抽出処理部
40、40e、40f、40g 応答部
50 音声合成部
60、60m 通信部
80、80h−1〜80h−n 分割語句テーブル
81 連結語句テーブル
82 削除語句テーブル
83 書換語句テーブル
85、85d、85e、85f、85g−1、85g−2〜85g−n、85h−1〜85h−n 応答テーブル
86、86e 語句分類テーブル
88 登録データテーブル
88e URLテーブル
90、90a、90b、90c、90d、90e、90f、90g、90h、90k、90m 自然言語処理プログラム
200 通信ネットワーク
300−1〜300−n サーバ
400−1〜400−n 通信端末