JP2005228075A - 日常言語プログラム処理システム、その方法および修辞構造解析方法 - Google Patents

日常言語プログラム処理システム、その方法および修辞構造解析方法 Download PDF

Info

Publication number
JP2005228075A
JP2005228075A JP2004036460A JP2004036460A JP2005228075A JP 2005228075 A JP2005228075 A JP 2005228075A JP 2004036460 A JP2004036460 A JP 2004036460A JP 2004036460 A JP2004036460 A JP 2004036460A JP 2005228075 A JP2005228075 A JP 2005228075A
Authority
JP
Japan
Prior art keywords
program
rhetorical
sentence
language
knowledge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004036460A
Other languages
English (en)
Inventor
Toru Sugimoto
本 徹 杉
Noriko Ito
藤 紀 子 伊
Michio Sugano
野 道 夫 菅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
RIKEN Institute of Physical and Chemical Research
Original Assignee
RIKEN Institute of Physical and Chemical Research
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by RIKEN Institute of Physical and Chemical Research filed Critical RIKEN Institute of Physical and Chemical Research
Priority to JP2004036460A priority Critical patent/JP2005228075A/ja
Publication of JP2005228075A publication Critical patent/JP2005228075A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Abstract

【課題】 日常言語により表現された入力プログラムの意味を理解してコンピュータ処理を実行することができる、日常言語プログラム処理システムの提供。
【解決手段】 言語理解・生成モジュール11は各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造を同定する。プログラム正規化モジュール12はテキスト理解結果52に基づいて、コマンドに関する知識22等を利用して、入力プログラム51に含まれる各文を実行可能な形式に書き換えて正規化する。実行プログラム生成モジュール13はプログラム正規化結果53と、修辞構造の情報とに基づいて、入力プログラム51に含まれる各文の正規化処理の結果を統合する。プログラム実行モジュール14において、実行プログラム生成モジュール13により生成された実行プログラム54を解釈し、アプリケーションソフトウェアまたはハードウェア33上で実行されるコマンドに変換して実行する。
【選択図】 図1

Description

本発明は、人間が日常的に用いる言語(日常言語)の意味を理解して情報処理を行う日常言語コンピューティングシステムに係り、とりわけ、日常言語により表現された一連のコンピュータ操作指示を含む入力プログラムの意味を理解してコンピュータ処理を実行する日常言語プログラム処理システムおよびその方法に関する。また、本発明は、このような日常言語プログラム処理システムにおいて入力プログラムの意味を理解する際に好適に用いられる修辞構造解析方法に関する。
近年、情報処理技術などの急速な進歩により、コンピュータが我々の生活に急速に普及してきている。しかしながら、コンピュータを十分に活用できる人は専門的知識を持っている人に限られており、コンピュータを使える者と使えない者との間の情報技術格差がますます広がっていくものと考えられている。
このような状況において本発明者らは、日常生活において家電製品と同じような感覚で誰でも簡単にコンピュータを扱えるようにするため、「日常言語コンピューティング」という発想に基づき、ユーザとコンピュータとが日常言語で対話することができる新しいコンピュータシステムの開発を進めている(特許文献1〜3参照)。
一般に、ユーザがコンピュータを始めとする情報機器を操作する上で大きな問題となるのは、情報機器に対して複雑な条件や手順を伴う操作の指示を与えるのが難しいということである。
このような問題を解決するため、従来においては、自然言語によるプログラミングの技術が既に幾つか開発されている(特許文献4、5参照)。これらの技術は、コンピュータなどの情報機器のコマンドに対応する自然言語の語句を指定する手段を設け、この手段により、ユーザが実行させたい順番に従ってそれらの語句を列挙することにより、一連の操作の実行を指示することを可能にするものである。
しかしながら、上記特許文献4、5に記載された技術では、(1)ユーザが条件分岐や繰り返しなどの制御の流れを精密に指定する必要がある、(2)ユーザが実行可能なコマンドの種類を把握して必ずそれらの組み合わせとして指示を与える必要がある、という2点から、プログラムの作成およびその作成方法の習得にあたってユーザに大きな負担を与える、という問題がある。
このような問題の原因の一つは、上記特許文献4、5に記載された手法が言語の意味内容や体系を考慮に入れた処理を行っていないことにある。
しかしながら、この点については、本発明者らが提案する日常言語コンピューティングシステムを用いることにより効果的に解決することができる(特許文献1〜3参照)。すなわち、日常言語コンピューティングシステムにおいては、言語データベースとして、語彙文法、意味およびコンテクストの体系をデータベース化したセミオティックベースを利用することにより、言語の意味内容や体系を考慮に入れた形でテキスト処理を行うことが可能であり、日常言語によりコンピュータの操作および実行を行うことができる。具体的には例えば、日常言語コンピューティングシステムにおいては、言語の持つ体系やそれが使用されるコンテクストも含めた意味の処理を行うため、例えば「クリスマス会の招待状を書きたい。」という指示をユーザが入力すれば、「招待状を作成するためにワープロソフトウェアを起動する」、といった処理をコンピュータ(アプリケーションソフトウェア等)上で行うことができる。
特開2002−236681号公報 特開2003−345604号公報 特開2003−345800号公報 特開2000−322245号公報 特開平7−311677号公報
しかしながら、情報機器に対して与えられる操作の指示としては、複数の文からなる言語テキストなどによって指定されるような複雑な条件や手順を伴う操作の指示があり、このような操作の指示を理解してコンピュータ処理を実行することは必ずしも容易ではない。
本発明はこのような点を考慮してなされたものであり、本発明者らが提案する日常言語コンピューティングシステムをさらに改良し、日常言語により表現された一連のコンピュータ操作指示を含む入力プログラムの意味を理解してコンピュータ処理を実行することができる、日常言語プログラム処理システムおよびその方法を提供することを目的とする。
また、本発明は、このような日常言語プログラム処理システムにおいて入力プログラムの意味を理解する際に好適に用いられ、日常言語により表現された一連のコンピュータ操作指示を表す複数の修辞ユニットを解析して当該複数の修辞ユニット間の関係を表す修辞構造を同定することができる修辞構造解析方法を提供することを目的とする。
本発明は、第1の解決手段として、日常言語により表現された一連のコンピュータ操作指示を含む入力プログラムの意味を理解してコンピュータ処理を実行する日常言語プログラム処理システムにおいて、語彙文法、意味およびコンテクストの体系をデータベース化したセミオティックベースを利用して、ユーザが入力した入力プログラムであって日常言語により表現された一連のコンピュータ操作指示を表す複数の文を含む入力プログラムのテキスト理解を行い、当該入力プログラムに含まれる各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造を同定する言語理解・生成モジュールと、前記言語理解・生成モジュールにより得られたテキスト理解結果に基づいて、あらかじめ保持された知識を利用して、前記入力プログラムに含まれる各文を実行可能な形式に書き換えて正規化するプログラム正規化モジュールと、前記プログラム正規化モジュールにより得られたプログラム正規化結果と、前記言語理解・生成モジュールにより得られた修辞構造の情報とに基づいて、前記入力プログラムに含まれる各文の正規化処理の結果を統合し、日常言語により表現された実行プログラムを生成する実行プログラム生成モジュールと、前記実行プログラム生成モジュールにより生成された実行プログラムのうちコマンドに対応する表現とコマンドの実行順序の制御を指定する表現とを解釈し、コンピュータ上で実行されるコマンドに変換して実行するプログラム実行モジュールとを備えたことを特徴とする日常言語プログラム処理システムを提供する。
なお、上述した第1の解決手段において、前記言語理解・生成モジュールは、前記入力プログラムに含まれる各文の語彙文法特徴および意味特徴に基づいて当該各文の意味内容を表す概念構造を同定することが好ましい。
また、上述した第1の解決手段において、前記言語理解・生成モジュールは、前記入力プログラムに含まれる各文内の接続表現に基づいて当該各文間の関係を表す修辞構造を同定することが好ましい。
さらに、上述した第1の解決手段において、前記言語理解・生成モジュールは、前記接続表現に加えて、前記各文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報に基づいて、当該各文間の関係を表す修辞構造を同定することが好ましい。また、前記言語理解・生成モジュールは、前記接続表現および前記タイプ情報に加えて、前記各文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報に基づいて、当該各文間の関係を表す修辞構造を同定してもよい。
さらに、上述した第1の解決手段において、前記プログラム正規化モジュールは、前記知識として、コンピュータ上で実行されるコマンドに関する知識、前記入力プログラムに含まれるユーザの表現を意味内容を変えることなくコンピュータ上で実行可能な表現に書き換えるための換言用知識、および事実的な情報に関する事実的知識を用いることが好ましい。
さらに、上述した第1の解決手段において、前記プログラム正規化モジュールは、前記入力プログラムに含まれる各文ごとに条件部分、操作部分、ループ範囲およびループ要素を抽出することにより当該各文を実行可能な形式に書き換えることが好ましい。
さらに、上述した第1の解決手段において、前記実行プログラム生成モジュールは、前記入力プログラムに含まれる各文間の関係を表す修辞構造を参照して子ユニットから親ユニットの方向に向かって当該各文の正規化処理の結果を統合することが好ましい。
さらに、上述した第1の解決手段において、前記プログラム正規化モジュール、前記実行プログラム生成モジュールおよび前記プログラム実行モジュールのうちの少なくとも一つのモジュールは、当該各モジュールでの処理に必要な情報が不足したり曖昧だったときに前記言語理解・生成モジュールにより確認または問い合わせための言語テキストを生成してユーザに提示することが好ましい。
さらに、上述した第1の解決手段においては、前記入力プログラムを入力するユーザとの間における言語テキストのやりとりを制御するプランモジュールをさらに備えることが好ましい。
本発明は、第2の解決手段として、日常言語により表現された一連のコンピュータ操作指示を含む入力プログラムの意味を理解してコンピュータ処理を実行する日常言語プログラム処理方法において、語彙文法、意味およびコンテクストの体系をデータベース化したセミオティックベースを利用して、ユーザが入力した入力プログラムであって日常言語により表現した一連のコンピュータ操作指示を表す複数の文を含む入力プログラムのテキスト理解を行い、当該入力プログラムに含まれる各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造を同定する第1のステップと、前記第1のステップで得られたテキスト理解結果に基づいて、あらかじめ保持された知識を利用して、前記入力プログラムに含まれる各文を実行可能な形式に書き換える第2のステップと、前記第2のステップで得られたプログラム正規化結果と、前記第1のステップで得られた修辞構造の情報とに基づいて、前記入力プログラムに含まれる各文の正規化処理の結果を統合し、日常言語により表現された実行プログラムを生成する第3のステップと、前記第3のステップで生成された実行プログラムのうちコマンドに対応する表現とコマンドの実行順序の制御を指定する表現とを解釈し、コンピュータ上で実行されるコマンドに変換して実行する第4のステップとを含むことを特徴とする日常言語プログラム処理方法を提供する。
なお、上述した第2の解決手段においては、前記第1のステップにおいて、前記入力プログラムに含まれる各文の語彙文法特徴および意味特徴に基づいて当該各文の意味内容を表す概念構造を同定することが好ましい。
また、上述した第2の解決手段においては、前記第1のステップにおいて、前記入力プログラムに含まれる各文内の接続表現に基づいて当該各文間の関係を表す修辞構造を同定することが好ましい。
さらに、上述した第2の解決手段においては、前記第1のステップにおいて、前記接続表現に加えて、前記各文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報に基づいて、当該各文間の関係を表す修辞構造を同定することが好ましい。
さらに、上述した第2の解決手段においては、前記第1のステップにおいて、前記接続表現および前記タイプ情報に加えて、前記各文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報に基づいて、当該各文間の関係を表す修辞構造を同定することが好ましい。
さらに、上述した第2の解決手段においては、前記第2のステップにおいて、前記知識として、コンピュータ上で実行されるコマンドに関する知識、前記入力プログラムに含まれるユーザの表現を意味内容を変えることなくコンピュータ上で実行可能な表現に書き換えるための換言用知識、および事実的な情報に関する事実的知識を用いることが好ましい。
さらに、上述した第2の解決手段においては、前記第2のステップにおいて、前記入力プログラムに含まれる各文ごとに条件部分、操作部分、ループ範囲およびループ要素を抽出することにより当該各文を実行可能な形式に書き換えることが好ましい。
さらに、上述した第2の解決手段においては、前記第3のステップにおいて、前記入力プログラムに含まれる各文間の関係を表す修辞構造を参照して子ユニットから親ユニットの方向に向かって当該各文の正規化処理の結果を統合することが好ましい。
本発明は、第3の解決手段として、日常言語により表現された一連のコンピュータ操作指示を表す複数の修辞ユニットを解析して当該複数の修辞ユニット間の関係を表す修辞構造を同定する修辞構造解析方法において、意味内容を表す概念構造が同定された複数の修辞ユニットを準備する第1のステップと、前記第1のステップで準備された複数の修辞ユニットに含まれる一つ以上の文内の接続表現を抽出する第2のステップと、前記第1のステップで準備された複数の修辞ユニットに含まれる一つ以上の文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報を特定する第3のステップと、前記第2のステップで抽出された接続表現および前記第3のステップで特定されたタイプ情報に基づいて、前記複数の修辞ユニット間の関係を表す修辞構造を同定する第4のステップとを含むことを特徴とする、修辞構造解析方法を提供する。
なお、上述した第3の解決手段においては、前記第1のステップで準備された複数の修辞ユニットに含まれる一つ以上の文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報を特定する第5のステップをさらに含み、前記第4のステップにおいて、前記第2のステップで抽出された接続表現および前記第3のステップで特定されたタイプ情報に加えて、前記第5のステップで特定された意味内容関係情報に基づいて、前記複数の修辞ユニット間の関係を表す修辞構造を同定することが好ましい。
本発明の第1および第2の解決手段によれば、入力プログラムに含まれる各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造に基づいて、あらかじめ保持された知識(コマンドに関する知識、換言用知識および事実的知識)を利用して、入力プログラムに含まれる各文の実行可能性を検査し、必要に応じて実行可能な形式に書き換えて正規化する。そして、このようにして得られたプログラム正規化結果と、既に得られた修辞構造の情報とに基づいて、入力プログラムに含まれる各文の正規化処理の結果を統合して実行プログラムを生成し、最終的に、生成された実行プログラムのうちコマンドに対応する表現とコマンドの実行順序の制御を指定する表現とを解釈し、コンピュータ上で実行されるコマンドに変換して実行する。このため、ユーザは入力プログラムにおいてプログラムの実行時の制御構造を明示的に記述する必要がなく、日常言語で自由に記述された操作指示テキストからなる入力プログラムから抽出された言語的な修辞構造の情報を利用して特定の制御構造を備えた実行プログラムが生成される。また、ユーザはコマンドに直接対応する語句以外の内容を操作指示として含めることができる。これらは、コマンドの性質に関する知識や、タスク領域に関する知識、ユーザに関する知識を利用してプログラムの正規化処理の過程でコマンドの組み合わせに変換される。結果として、コンピュータやプログラミングについての専門的な知識をほとんど持たないユーザでも日常的な言語表現を用いてコンピュータの操作指示を容易に行えるようになる。
本発明の第3の解決手段によれば、日常言語により表現された一連のコンピュータ操作指示を表す複数の修辞ユニットを解析して当該複数の修辞ユニット間の関係を表す修辞構造を同定する際に、複数の修辞ユニットに含まれる一つ以上の文内の接続表現だけでなく、複数の修辞ユニットに含まれる一つ以上の文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報や、複数の修辞ユニットに含まれる一つ以上の文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報を考慮するようにしているので、複数の修辞ユニット間の関係を表す修辞構造をより確実に同定することができる。
発明を実施するための形態
次に、図面を参照して本発明の実施の形態について説明する。
[1.日常言語プログラム処理システムの概要]
まず、図1により、本発明の一実施の形態に係る日常言語プログラム処理システムの全体構成について説明する。
図1に示すように、本実施の形態に係る日常言語プログラム処理システム10は、日常言語により表現された一連のコンピュータ操作指示を含む入力プログラム51の意味を理解してコンピュータ処理を実行するものであり、言語理解・生成モジュール11、プログラム正規化モジュール12、実行プログラム生成モジュール13、プログラム実行モジュール14およびプランモジュール15を有している。なお、本実施の形態においては、日常言語プログラム処理システム10が、日常言語によりコンピュータとしてのアプリケーションソフトウェアまたはハードウェア33の操作および実行を行うための言語アプリケーション32(上記特許文献3参照)に搭載されて用いられる場合を例に挙げて説明する。ここで、図1および図2に示すように、言語アプリケーション32は、日常言語コンピューティングシステム41上においてセミオティックベース21およびクライアント秘書エージェント31と連携して動作する。
以下、日常言語プログラム処理システム10に含まれる各モジュール(言語理解・生成モジュール11、プログラム正規化モジュール12、実行プログラム生成モジュール13、プログラム実行モジュール14およびプランモジュール15)の詳細について説明する。
言語理解・生成モジュール11は、セミオティックベース21を利用して、ユーザが入力した入力プログラム51のテキスト理解を行い、当該入力プログラム51に含まれる各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造(隣接する文の間の関係の種類と文のつながりの構造)を同定するものである。ここで、セミオティックベース21は、言語が使用されるコンテクストまで考慮した言語学的な言語システムのモデルであり、語彙文法、意味およびコンテクストの体系をデータベース化したものである。また、入力プログラム51は、日常言語により表現された一連のコンピュータ操作指示を表す複数の文を含むものである。
プログラム正規化モジュール12は、言語理解・生成モジュール11により得られたテキスト理解結果52に基づいて、あらかじめ保持された知識(コマンドに関する知識22、換言用知識23および事実的知識24)を利用して、入力プログラム51に含まれる各文の実行可能性を検査し、必要に応じて実行可能な形式に書き換えて正規化するものである。
実行プログラム生成モジュール13は、プログラム正規化モジュール12により得られたプログラム正規化結果53と、言語理解・生成モジュール11により得られた修辞構造の情報とに基づいて、入力プログラム51に含まれる各文の正規化処理の結果を統合し、日常言語により表現された実行プログラム54を生成するものである。
プログラム実行モジュール14は、実行プログラム生成モジュール13により生成された実行プログラム54のうちコマンドに対応する表現とコマンドの実行順序の制御を指定する表現とを解釈し、アプリケーションソフトウェアまたはハードウェア33上で実行されるコマンドに変換して実行するものである。
プランモジュール15は、入力プログラム51を入力するユーザと言語アプリケーション32との間における言語テキストのやりとり(対話)を制御するものである。具体的には例えば、入力プログラム51の入力に付随した言語テキストに対して、ユーザに対する応答のための言語テキスト(応答テキスト55)を生成したり言語アプリケーション32に対して指示を出したりする。なお、プランモジュール15は、入力プログラム51に対してのテキスト理解の結果(入力プログラム51に含まれる各文の概念構造および各文間の修辞構造を含むテキスト理解結果52)についてはプログラム正規化モジュール12に送るように制御する。ここで、プランモジュール15の構成および動作は本発明の特徴部分ではなく、また本発明者らが既に出願した特願2002−304842号に詳細に記載されているので、詳細な説明は省略する。
なお、プログラム正規化モジュール12、実行プログラム生成モジュール13およびプログラム実行モジュール14のうちの少なくとも一つのモジュールは、当該各モジュールでの処理に必要な情報が不足したり曖昧だったときに言語理解・生成モジュール11により確認または問い合わせための言語テキスト(応答テキスト55)を生成してユーザに提示することができるようになっている。
[2.日常言語コンピューティングシステムの概要]
次に、図2により、図1に示す日常言語プログラム処理システム10が搭載される言語アプリケーション32に組み込まれて用いられる日常言語コンピューティングシステム41の概要について説明する。
図2に示すように、図1に示す日常言語プログラム処理システム10が搭載される言語アプリケーション32は、日常言語コンピューティングシステム41上においてセミオティックベース21およびクライアント秘書エージェント31と連携して動作する。
ここで、日常言語コンピューティングシステム41は、言語の意味内容や体系を考慮に入れた形でテキスト処理を行うものであり、ユーザとが日常言語で対話したり、日常言語によりアプリケーションソフトウェアまたはハードウェア33の操作および実行を行うことを可能にするシステムである。具体的には、日常言語コンピューティングシステム41は、日常言語の意味を理解するための基本的な言語データベースであるセミオティックベース21と、ユーザに対して日常言語コンピューティングシステム41の窓口となるクライアント秘書エージェント31と、クライアント秘書エージェント31から言語プロトコルを介して送られた言語テキストに基づいて日常言語によりアプリケーションソフトウェアまたはハードウェア33の操作および実行を行う言語アプリケーション32とを備えている。なお、日常言語コンピューティングシステム41に含まれるセミオティックベース21、クライアント秘書エージェント31および言語アプリケーション32は、言語オペレーティングシステム(LOS)上で動作するようになっている。
以下、日常言語コンピューティングシステム41上で動作するセミオティックベース21、クライアント秘書エージェント31および言語アプリケーション32の構成および動作の概要について説明する。なお、セミオティックベース21、クライアント秘書エージェント31および言語アプリケーション32の構成および動作は基本的に上記特許文献1〜3に記載されたものと同一であるので、ここでは詳細な説明は省略する。
[2.1.セミオティックベース]
セミオティックベース21は、日常言語の意味を理解するための基本的な言語データベースであり、ユーザの入力した言語テキストの理解およびユーザに対して出力する応答のための言語テキストの生成に利用される。ここで、セミオティックベース21は、語彙文法、意味およびコンテクストの体系をデータベース化したものであり、次の(1)〜(6)のような構成要素からなる。
(1)コンテクストベース:言語が使用される状況を分類するための特徴の体系を納めたもの。
(2)意味ベース:言語の意味的な特徴の体系を納めたもの。
(3)語彙文法ベース:言語の語彙文法的な特徴の体系を納めたもの。
(4)表現ベース:言語の表現手段である文字や音声に関する特徴の体系を納めたもの。
(5)電子化辞書:語彙項目の辞書的情報の他、コンテクストベース、意味ベース、語彙文法ベースおよび表現ベースの体系との関係を表す情報を納めたもの。
(6)コーパスベース:言語テキストに対して、コンテクストベース、意味ベース、語彙文法ベースおよび表現ベースの体系を用いてタグ付けを行った結果を納めたもの。
なお、以上のうち、コンテクストベース、意味ベース、語彙文法ベースおよび表現ベースに関しては、言語的特徴とその間の関係を表現するためにシステムネットワークと呼ばれる表現形式が用いられている。また、コンテクストベースに関してはさらに、状況の中で言葉(日常言語)を使って表現される概念の体系を納めた概念辞書が含まれている。
[2.2.クライアント秘書エージェント]
クライアント秘書エージェント31は、ユーザに対して日常言語コンピューティングシステム41の窓口となるエージェントであり、ユーザに関する情報を集めたクライアントモデルと呼ばれるデータベースを保持し、ユーザの好みや、操作および言葉遣いの傾向に適応した処理を行う。また、クライアント秘書エージェント31は、ユーザの入力した言語テキストの意味を理解したりユーザに対して出力する言語テキストを生成する言語理解・生成機能を持つ他、ユーザの入力の意図を理解してユーザに対する応答のための言語テキスト(応答テキスト55)を生成したり言語アプリケーション32に対して指示を出したりするなどの対話の進行を管理するためのプランニング機能も持つ。なお、クライアント秘書エージェント31は、ユーザの入力に対してアプリケーションソフトウェアまたはハードウェア33に対する問い合わせや操作が必要な場合には、適切な言語アプリケーションを選択して言語テキストの転送を行う。
[2.3.言語アプリケーション]
言語アプリケーション32は、日常言語によりアプリケーションソフトウェアまたはハードウェア33の操作および実行を行うものである。ここで、言語アプリケーション32は、クライアント秘書エージェント31から言語プロトコルを介して送られた言語テキストの意味を理解し、指示に合った操作を実行したり応答のための言語テキスト(応答テキスト55)を生成したりするために、クライアント秘書エージェント31と同様の言語理解・生成機能およびプランニング機能を持つ。また、言語アプリケーション32は、インタフェースを介してアプリケーションソフトウェアまたはハードウェア33を操作するためのコマンド解釈・実行機能を持つ。さらに、言語アプリケーション32は、言語テキストの意味とアプリケーションソフトウェアまたはハードウェア33のコマンドとの関連を推論するために、コマンドの性質に関する知識やタスク領域に関する知識を持つ。
[3.日常言語プログラム処理システムの構成および動作の詳細]
次に、図1および図2により、本実施の形態に係る日常言語プログラム処理システム10の構成および動作の詳細について、内部での処理の流れに沿って説明する。
[3.1.テキスト理解]
図2に示す日常言語コンピューティングシステム41において、ユーザが音声またはキーボードを用いて日常言語テキストの形で入力した一連のコンピュータ操作指示を含む入力プログラム51は、クライアント秘書エージェント31を介して、入力プログラム51の内容に適した言語アプリケーション32(例えば、ユーザが文書の作成に関する指示を入力した場合には、ワープロの言語アプリケーション)に送られる。
ここで、言語アプリケーション32内には日常言語プログラム処理システム10が搭載されており、クライアント秘書エージェント31を介して送られてきた入力プログラム51に対しては、図1に示すように、まず、言語理解・生成モジュール11によりテキスト理解が行われる。これにより、入力プログラム51に含まれる各文の意味内容を表す概念構造が各文の語彙文法特徴および意味特徴に基づいて同定される。また、複数の文の集合体としての言語テキスト全体の修辞構造が解析され、各文間の関係を表す修辞構造(隣接する文の間の関係の種類と文のつながりの構造)が同定され、さらに、文脈を加味しながら省略されている部分などが補完される。入力プログラム51の具体例を図3、図13および図21に示す。
ここで、言語理解・生成モジュール11におけるテキスト理解処理の具体的内容について説明する。
[3.1.1.セミオティックベースを利用した文解析]
言語理解・生成モジュール11は、初めに、入力プログラム51に含まれる各文に対して、形態素解析器および係り受け解析器を利用して、形態素解析および係り受け解析をそれぞれ行う。次いで、言語理解・生成モジュール11は、セミオティックベース21内の電子化辞書を参照して単語レベルの意味的情報および語彙文法的情報を抽出する。ここまでを「前処理」という。
次に、言語理解・生成モジュール11は、セミオティックベース21内の語彙文法ベースおよび意味ベースのシステムネットワークを参照して、語彙文法解析および意味解析をそれぞれ行い、前処理の結果得られた単語レベルの情報から、句レベルおよび文レベルの語彙文法特徴および意味特徴を抽出する。
その後、言語理解・生成モジュール11は、セミオティックベース21内のコンテクストベースの概念辞書を参照して、概念解析および文脈解析をそれぞれ行い、文の概念的な構造を同定したり、文に含まれる名詞句や代名詞が指し示す内容を既知の対象の中から選んだりする。これにより、入力プログラム51に含まれる各文の意味内容を表す概念構造が同定される。入力プログラム51に含まれる各文の概念構造の具体例を図4、図14および図22に示す。
[3.1.2.修辞構造解析]
次に、言語理解・生成モジュール11は、上述した一連の処理(前処理、語彙文法解析、意味解析、概念解析および文脈解析)で得られた情報に基づいて、修辞構造解析を行い、入力プログラム51に含まれる各文間の関係を表す修辞構造(隣接する文の間の関係の種類と文のつながりの構造)を同定する。一般に、修辞構造とは、文以上の言語テキストの連なりを単位(「修辞ユニット」という)とし、それらの修辞ユニット間に見られる修辞的な関係(段落の始めの文はトピックを導入し、残りの文はその説明をしているなど)を構造的に表現したものである。
ここでは、入力プログラム51の修辞構造を、修辞ユニットをノードで表し、修辞ユニット間の親子関係(全体・部分関係)をアークで表した木構造で表現するものとする。この場合、修辞ユニットには子ユニット間の修辞関係を意味特徴として付与し、アークには子ユニット同士の関係(主従の関係や同列の関係)をロール情報として付与する。入力プログラム51の修辞構造の具体例を図5、図6、図15および図23に示す。
なお、本実施の形態に係る日常言語プログラム処理システム10においては、言語理解・生成モジュール11により得られた修辞構造の情報を、その後に続くプログラム正規化モジュール12および実行プログラム生成モジュール13における処理の過程で実行プログラムの制御構造を導出するために利用することを想定している。
ここで、このような修辞構造を規定するための修辞関係としては、文献(“Mann et al.:“Rhetorical Structure Theory and Text Analysis”,In: Mann,W.,Thomson,S.A. (eds.): Discourse Descripsion: Diverse Linguistic Analyses of a Fund-Raising Text. Amsterdam,John Benjamins(1992)39-78”)などで提案されている修辞関係のうち特にプログラムの操作を表している文(修辞ユニット)とその操作の実行条件を表している文(修辞ユニット)との間の関係に関するもの(下記(1)(2))を用いることができる。
(1)“condition”:従属ユニット(図5、図6、図15および図23において“S”というロールを持つノード)で表現されている条件が成り立つ範囲で、主要ユニット(図5、図6、図15および図23において“N”というロールを持つノード)で表現されている内容を実行する。
(2)“otherwise”:従属ユニット(“S”)で表現されている条件が成り立たない範囲でのみ、主要ユニット(“N”)で表現されている内容を実行する。(なお、この関係は、一般的な規則に対して例外を提示するときなどに用いられる。)
また、もう少し一般的な修辞関係で、プログラムの制御構造の導出に利用することができるものとしては、下記(3)〜(7)を用いることができる。
(3)“sequence”:主要ユニット1(“N1”)で表現されている内容と、主要ユニット2(“N2”)で表現されている内容との間に時間的順序関係が成り立つ。
(4)“circumstance”:従属ユニット(“S”)で表現されている場所および時間で、主要ユニット(“N”)で表現されている内容が成り立つ。
(5)“elaboration”:主要ユニット(“N”)で表現されている内容を、従属ユニット(“S”)でさらに詳しく説明する。
(6)“restatement”:主要ユニット(“N”)で表現されている内容を、従属ユニット(S)で別の表現に言い換える。
(7)“disjunction”:主要ユニット1(“N1”)で表現されている内容および主要ユニット2(“N2”)で表現されている内容のうちの少なくともどちらか一方が成り立つ。
ここで、言語理解・生成モジュール11においては、入力プログラム51に含まれる複数の修辞ユニットを解析して当該複数の修辞ユニット間の関係を表す修辞構造を同定するために、次の2つの手法を利用する。
(1)接続表現(手がかり語)を利用する。
修辞関係を明示する言語的な手段としては、「ただし」などの接続詞、「たら」などの接続助詞、「このとき」などの接続句などの各種の接続表現がある。これらの接続表現が文(修辞ユニット)に含まれているかどうかは前処理の結果から判断できるので、これらの接続表現を手がかり語として、入力プログラム51に含まれる各文(修辞ユニット)間の関係を表す修辞構造を同定する。なお、これらの手がかり語は、あらかじめ、セミオティックベース21内の語彙文法ベースおよび意味ベースのシステムネットワークを介して修辞関係と関連付けられている。例えば、「ただし」が文頭にあった場合には、その文(修辞ユニット)は“otherwise”の従属ユニット、その前の文(修辞ユニット)は主要ユニットとなる。一方、「また」が文頭にあった場合には、その文(修辞ユニット)は“condition”の主要ユニット、その前の文(修辞ユニット)は従属ユニットとなる。
(2)文のタイプや意味内容の関係を利用する。
ここでいう「文のタイプ」とは、直感的に言えば、各文(修辞ユニット)が操作内容を表すものであるのか命題的内容を表すものであるのかに関する情報(タイプ情報)であり、言語学的に言えば、“material process”または“relational process”の語彙文法特徴のどちらを持つかによって分類されるものである。例えば、「新着メールを研究室フォルダに入れる」という文は操作内容を表し、「添付ファイルが文書ファイルである」という文は命題的内容を表している。
一方、「意味内容の関係」は、各文(修辞ユニット)の意味内容が両立可能であるのか相反するものであるのかに関する情報(意味内容関係情報)であり、次のようにまとめられる。
第1に、2つの文(修辞ユニット)の両方が操作内容を表しており、かつ、各文(修辞ユニット)がそれ自身の中でそれぞれ条件を含んでいるときであれば、意味内容の関係として次の場合が考えられる。
(ia) 両方が同じ基準の異なる条件を示している場合。(例えば、メールの差出人という同じ基準で、差出人が研究室の人かその研究室の属する特定の組織(例えば「理研」)の人かという異なる条件。)
(ib) 両方が異なる基準の条件を示している場合。(例えば、映画の製作年と映画の製作国という異なる基準。)
第2に、2つの文(修辞ユニット)のうち少なくとも一方が命題的内容を表しているときであれば、意味内容の関係として次の場合が考えられる。
(iia) 両方が同時に成立する場合。(例えば、理研の人から来たメールを理研フォルダに入れることと、理研の人のメールアドレスの特徴とは同時に成り立つ。)
(iib) 両方が同時には成立しない場合。(例えば、あるメールが研究室フォルダにあることと、同じメールが理研フォルダにあることとは同時には成立しない。)
なお、以上のような複雑な関係は、必要に応じて、一般常識やユーザに関する個人的知識、アプリケーション操作に関する知識などを参照することによって同定される。
ここで、言語理解・生成モジュール11により、上記(1)(2)のような2つの手法を利用して、入力プログラム51に含まれる複数の文(修辞ユニット)間の関係を表す修辞構造を同定する際には、修辞構造の同定の過程で特定できる構造を優先して、木構造の形を決定していくが、それだけでは不十分なので、以下の2つの要素を加味して可能な木構造の順位付けを行う。
(i) 2つの修辞ユニットに含まれるすべての文が同じ概念クラスの目的語を持つならば、所定の値を得点に加える。
(ii) 2つの修辞ユニットに共通に含まれる概念(部分グラフ)の総数をユニットに含まれる文の数で割った値を、得点に加える。
このようにして修辞関係で結び付けられる2つの修辞ユニット間の関連性を計算し、合計して得られる総合スコアの一番高いものを、目的とする修辞ユニット間の修辞構造とする。
[3.1.3.対話機能]
プランモジュール15の1つの機能として対話機能があり、対話の構造を管理することにより、ユーザとの自然な対話のやりとりができるように制御する。また、この対話機能により、独話テキストの理解だけでなく、対話の文脈を考慮に入れた理解を行うことができる。このような目的のため、プランモジュール15は、「質問/回答」のような対話のやりとりについての可能なパターンを集めたデータベースであるプランライブラリと、現在進行中の対話の構造を表すプラン構造と呼ばれるデータ構造とを持つ。プランライブラリの各項目は、セミオティックベース21内の状況タイプや意味特徴と対応付けられており、セミオティックベース21の機能を介して状況と言語的特徴との連関を活かした処理を行うことができるようになっている。
なお、ユーザが単一の文からなる操作指示テキストを入力した場合には、プランモジュール15による制御の下で、言語理解・生成モジュール11によるテキスト理解の結果に基づいて、ユーザに対する応答のための言語テキスト(応答テキスト55)が生成されたり言語アプリケーション32に対して指示が出されたりする。一方、ユーザが複数の文からなる操作指示テキスト(入力プログラム51)を入力した場合には、プランモジュール15による制御の下で、言語理解・生成モジュール11によるテキスト理解の結果(入力プログラム51に含まれる各文の概念構造および各文間の修辞構造を含むテキスト理解結果52)がプログラム正規化モジュール12へ送られる。
また、プログラム正規化モジュール12、実行プログラム生成モジュール13およびプログラム実行モジュール14での処理の過程で、当該各モジュールでの処理に必要な情報が不足したり曖昧だったときには、プランモジュール15による制御の下で、言語理解・生成モジュール11により確認または問い合わせための言語テキスト(応答テキスト55)が生成されてユーザに提示される。
[3.2.プログラム正規化]
プログラム正規化モジュール12は、言語理解・生成モジュール11により得られたテキスト理解結果52を受け取ると、あらかじめ保持された知識(コマンドに関する知識22、換言用知識23および事実的知識24)を利用して、入力プログラム51に含まれる各文の実行可能性を検査し、必要に応じて実行可能な形式に書き換えて正規化する。ただし、この場合、入力プログラム51に含まれる文が操作内容を表す表現(言語学的に言えば“material process”)を含まない文の場合には、正規化処理を行わず、その意味内容を事実的知識24に追加する。
ここで、入力プログラム51に含まれる各文の正規化処理の結果、その文の実行可能な条件部分、操作部分、ループ範囲およびループ要素が抽出され、これらを含むプログラム正規化結果53が実行プログラム生成モジュール13へ送られる。プログラム正規化結果の具体例を図10、図18および図26に示す。
なお、プログラム正規化モジュール12において、入力プログラム51に含まれる各文の実行可能性を検査する過程で、必要な情報の不足や曖昧な部分が発見されたときには、処理が中断され、確認または問い合わせのための言語テキスト(応答テキスト55)が生成されてユーザに対して指示する指示が言語理解・生成モジュール11へ送られる。
[3.2.1.利用する知識]
プログラム正規化モジュール12により利用される知識としては、次の3種類の知識が挙げられる。
(1)コマンドに関する知識
コマンドに関する知識22は、コンピュータとしてのアプリケーションソフトウェアまたはハードウェア33上で実行されるコマンドに関する知識であり、日常言語で表現されている。なおここでは、次の3種類のものを合わせて「コマンド」と呼ぶ。
a.操作:アプリケーションソフトウェアまたはハードウェア33で実行可能な操作(例:(ファイルを)保存する)
b.条件:操作の制御に用いられる、アプリケーションソフトウェアまたはハードウェア33で判定可能な条件(例:2つのモノが等しい)
c.モノ:操作のパラメータとなり得る、アプリケーションソフトウェアまたはハードウェア33で同定可能なモノ(例:ファイル)
ここで、各コマンドには、実行する際に(すなわち、操作の実行や、条件の判定、モノの同定を行うために)値を指定する必要のある必須パラメータが存在する。コマンドに関する知識22の具体例を図7、図16および図24に示す。
(2)換言用知識
換言用知識23は、入力プログラム51に含まれるユーザの表現を意味内容を変えることなくアプリケーションソフトウェアまたはハードウェア33上で実行可能な表現に書き換えるための知識であり、日常言語で表現されている。具体的には、換言前の表現と換言後の表現の対の集合が列挙されている。換言用知識23の具体例を図8、図17および図25に示す。
(3)事実的知識
事実的知識24は、換言用知識23と同様に、入力プログラム51に含まれる表現の書き換えに利用される知識であり、日常言語で表現されている。
[3.2.2.文の正規化]
入力プログラム51に含まれる各文に対する正規化処理は、文の種類に応じて次のように行われる。
(1)単文の場合
文全体を操作の記述とみなし、次節(3.2.3.)の要領で正規化を行う。
(2)重文、複文の場合
文の構成要素間の関係(修辞関係)の種類に応じて処理を行う。
具体的には例えば、修辞関係が“sequence”の場合には、すべての構成要素を操作の記述とみなし、次節(3.2.3.)の要領で正規化を行う。また、修辞関係が“condition”または“elaboration”の場合には、主要要素を操作の記述、従属要素を条件の記述とみなし、それぞれ次節(3.2.3.)の要領で正規化を行う。
[3.2.3.操作、条件、モノの正規化]
各文に含まれる操作、条件、モノに対する正規化処理は、次の処理Aを実行することにより行われる。もし、処理Aに成功したら、それがこの正規化処理の結果となる。もし、処理Aに失敗した場合には、次節(3.2.4)で述べる換言の処理により表現を書き換えた後で改めて処理Aを試みる。処理Aに失敗し、またこれ以上換言ができない場合には、正規化処理は失敗となる。
<処理A>
(1)正規化処理の対象となる要素がシステムに事前に登録されているモノ(例えば「ユーザ」)または具体的な文字列(例えば「.riken.jp」という文字列)である場合には、処理Aは成功とする。
(2)正規化処理の対象となる要素がコマンドに関する知識に登録されていないタイプのもの(操作、条件、モノ)である場合には、処理Aは失敗とする。
(3)正規化処理の対象となる要素に関し、コマンドに関する知識に必須パラメータとして登録されているパラメータの中で値が存在しないものが存在する場合は、処理Aは失敗とする。
(4)正規化処理の対象となる要素に関し、必須パラメータの値が存在する場合には、その値(操作、条件、モノのいずれか)の正規化を試みる。
(5)正規化処理の対象となる要素に関し、もし、必須パラメータの値の正規化に失敗した場合には、その値を同定する上で母集合となるリストが状況から同定可能であれば、その値を同定するための条件を表す表現を作り、その条件の正規化を試みる。この条件の正規化に成功した場合には、この条件を元の文の条件部分に追加し、パラメータ値とその母集合となるリストとをそれぞれループ要素、ループ範囲として設定する。逆に、もし、この条件の正規化に失敗したら、正規化処理の対象となる要素(操作、条件、モノ)に対する処理Aは失敗とする。
(6)すべての必須パラメータの値の正規化に成功したら、正規化処理の対象となる要素(操作、条件、モノ)に対する処理Aは成功とする。
[3.2.4.換言]
各文に含まれる表現の書き換えには次の2種類の方法がある。
(1)換言前の表現の一部分が換言用知識23における換言前の表現とマッチング可能である場合は、その部分を換言用知識23における換言後の表現に置き換える。
(2)換言前の表現が「AとBが等しい」というタイプの表現であり、ある事実的知識24の一部分がAとマッチング可能である場合は、その事実的知識のその部分をBに置き換えた表現を換言後の表現とする。
なお、プログラム正規化モジュール12において、正規化処理のために換言を行った場合には、言語理解・生成モジュール11により、正規化処理後のプログラムをユーザに提示してそれがユーザの意図と一致しているかどうかを確認することが好ましい。
[3.3.実行プログラム生成]
プログラム正規化モジュール12においてすべての文の正規化に成功した場合、実行プログラム生成モジュール13は、入力プログラム51に含まれる各文(修辞ユニット)間の関係を表す修辞構造を参照して次のような手順で正規化処理の結果を統合し、日常言語により表現された実行プログラム54を生成する。
具体的な手順は次のとおりである。
(1)各文(修辞ユニット)の意味内容を改めて1つの文の形で表現する。もし、抽出された条件部分Aおよび操作部分Bがともに空でないならば、「もしAならばB」という形の表現を作る。もし、Aが空ならば、操作部分Bがそのままこの文の表現となる。
(2)言語理解・生成モジュール11により得られた修辞構造を参照してその木構造の子ユニットから親ユニットの方向に向かって当該各文(修辞ユニット)の表現を順に統合していく。具体的な統合の処理は、修辞関係の種類に応じて次のように行う。
(i) 修辞関係が“condition”の場合には、次の2つに分かれる。
(ia) 従属ユニットの条件部分をA、操作部分をB、主要ユニットの条件部分をC、操作部分をDと表すとき、操作B、Dが両立できないならば、これらを統合した表現として「もしAならば、(もしCならばD、そうでなければB)」という形の表現を作る。
(ib) それ以外の場合には、従属ユニットの条件部分をA、操作部分をB、主要ユニットの表現をCで表すことにすると、「もしAならば、BそしてC」という形の表現を作る。
(ii) 修辞関係が“otherwise”の場合には、従属ユニットの条件部分をA、操作部分をB、主要ユニットの表現をCで表すことにすると、「もしAならばB、そうでなければC」という形の表現を作る。
(iii) 修辞関係が“sequence”、“disjunction”の場合には、主要ユニット1、主要ユニット2の表現をそれぞれA、Bで表すことにすると、「AそしてB」という形の表現を作る。
(iv) 修辞関係が“circumstance”、“elaboration”、“restatement”の場合には、主要ユニットの表現がそのまま親ユニットの表現となる。
(3)最後に、もし、いずれかの文(修辞ユニット)に対してループ範囲Rおよびループ要素Eが抽出された場合には、上記(2)で生成されたプログラム表現の先頭に「Rの中のすべてのEに対して次の処理を繰り返す。」という形の表現を追加する。
以上において、生成される実行プログラム54の表現が複雑になる場合は、「次の処理を行う。…。以上。」のような、処理の範囲を明示する表現を適宜用いるものとする。生成された実行プログラム54の具体例を図11、図19および図27に示す。
[3.4.プログラム実行]
生成された実行プログラム54が実行プログラム生成モジュール13から送られると、プログラム実行モジュール14は、次の2つの機能を利用して、実行プログラム54中で指定された制御の流れに従ってアプリケーションソフトウェアまたはハードウェア33のコマンドに逐次変換して実行する。
(1)コマンド実行機能:実行プログラム54に含まれる操作、条件、モノの表現を解釈し、それに対応するコマンドを呼び出して実行する。
(2)実行制御機能:次に挙げるようなコマンドの実行順序の制御を指定する表現を解釈して、指定された順序でコマンドを実行する。
(i) 「AそしてB」:操作を逐次実行する。
(ii) 「もしAならばB、そうでなければC」:条件Aを判定して、それに応じて操作BまたはCを実行する。
(iii) 「Rの中のすべてのEに対して次の処理を繰り返す。A」:リストRに含まれるすべての要素Eに対して操作Aを繰り返し実行する。
このように本実施の形態によれば、プログラム正規化モジュール12において、言語理解・生成モジュール11により得られたテキスト理解結果52(入力プログラム51に含まれる各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造)に基づいて、あらかじめ保持された知識(コマンドに関する知識22、換言用知識23および事実的知識24)を利用して、入力プログラム51に含まれる各文の実行可能性を検査し、必要に応じて実行可能な形式に書き換えて正規化する。そして、実行プログラム生成モジュール13において、プログラム正規化モジュール12により得られたプログラム正規化結果53と、言語理解・生成モジュール11により得られた修辞構造の情報とに基づいて、入力プログラム51に含まれる各文の正規化処理の結果を統合して実行プログラム54を生成し、最終的に、プログラム実行モジュール14において、実行プログラム生成モジュール13により生成された実行プログラム54のうちコマンドに対応する表現とコマンドの実行順序の制御を指定する表現とを解釈し、アプリケーションソフトウェアまたはハードウェア33上で実行されるコマンドに変換して実行する。このため、ユーザは入力プログラム51においてプログラムの実行時の制御構造を明示的に記述する必要がなく、日常言語で自由に記述された操作指示テキストからなる入力プログラム51から抽出された言語的な修辞構造の情報を利用して特定の制御構造を備えた実行プログラムが生成される。また、ユーザはコマンドに直接対応する語句以外の内容を操作指示として含めることができる。これらは、コマンドの性質に関する知識や、タスク領域に関する知識、ユーザに関する知識を利用してプログラムの正規化処理の過程でコマンドの組み合わせに変換される。結果として、コンピュータやプログラミングについての専門的な知識をほとんど持たないユーザでも日常的な言語表現を用いてコンピュータの操作指示を容易に行えるようになる。
また、本実施の形態によれば、言語理解・生成モジュール11において、入力プログラム51に含まれる一連のコンピュータ操作指示を表す複数の修辞ユニットを解析して当該複数の修辞ユニット間の関係を表す修辞構造を同定する際に、複数の修辞ユニットに含まれる一つ以上の文内の接続表現だけでなく、複数の修辞ユニットに含まれる一つ以上の文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報や、複数の修辞ユニットに含まれる一つ以上の文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報を考慮するようにしているので、複数の修辞ユニット間の関係を表す修辞構造をより確実に同定することができる。
次に、上述した実施の形態の具体的実施例について述べる。
実施例1
実施例1として、電子メールの管理のためのプログラムの生成および実行を行う場合を例に挙げて説明する。より具体的には、ユーザが、受信メールのフォルダ振り分け、不要なメールの削除、メールの転送、およびメール本体や添付ファイルの内容表示などの操作をある条件の下で一括して行う状況を考える。このような場合、実施例1においては、下記の手法により、自分が行いたい電子メールの管理についての条件や手順を日常言語で記述して与えるだけで、メールソフトウェアに与えられるプログラムの生成および実行を行うことが可能であり、ユーザがメールソフトウェアの細かい仕様を知らなくても希望の操作を実現することができる。
実施例1においては、図3に示すような5つの文からなる操作指示テキスト(入力プログラム)をユーザが与えたと仮定して、日常言語プログラム処理システムにおける処理過程を説明する。なおここでは、ユーザが文(3)で言及している「研究室」は特定の組織である「理研」に属する1つの研究室を指し、日常言語プログラム処理システムは、この事実を研究室のメンバーに関する知識とともに事実的知識として持っているものと仮定する。
<テキスト理解>
ユーザが入力した入力プログラムは、クライアント秘書エージェントを介して、メールソフトウェアの操作および実行を行う言語アプリケーションに送られる。言語アプリケーションでは、まず、日常言語プログラム処理システムの言語理解・生成モジュールにおいて、セミオティックベースを利用した文解析が行われ、入力プログラムに含まれる各文の意味内容を表す概念構造が各文の語彙文法特徴および意味特徴に基づいて同定される。ここで、テキスト理解結果の例として、文(1)の概念構造を図4に示す。
次に、言語理解・生成モジュールにおいて、修辞構造解析が行われ、図3に示す入力プログラムに含まれる5つの文の間の関係を表す修辞構造が同定される。ここで、図3に示す入力プログラムに含まれる5つの文の間の修辞関係は次のように求められる。
(i) 文(2)は命題的内容を表す文(言語学的に言えば“relational process”)であり、直前の文(1)と同じ内容を表現しているので、文(1)(2)は“restatement”の関係にある。
(ii) 文(1)(3)は同じ基準(メールの差出人)の異なる条件(理研の人、研究室の人)を示しており、また、この研究室は理研に属するという仮定から、文(1)を含む修辞ユニットと文(2)を含む修辞ユニットとは“otherwise”の関係にある。
(iii) 文(4)(5)はそれぞれ文頭に「この時」、「また」という手がかり語があるので、これらの文を先頭とする修辞ユニットはそれぞれ直前の修辞ユニットと“condition”の関係にある。
ここで、このようにして文の間の関係が決まっても、これらの組み合わせによってできる木構造の形は一意には決まらない。すべての可能な木構造の候補に得点付けを行い、最高得点となる構造を選ぶと、図5に示すような修辞構造が得られる。なお、図5においては、修辞ユニットを表すボックスの中に修辞関係の種類とそのユニットの得点とが示されている。例えば、文(4)(5)は「添付ファイル」という同じクラスの目的語を持ち(1点)、それを概念としても共有しているので(1/2=0.5点)、この2文から構成される“condition”という関係の修辞ユニットの得点は1.5点となる。同様にして他の修辞ユニットの得点も求めると、この木構造の全体としての得点は、最上位のユニットの得点、すなわち3.83点となる。
図6は別の修辞構造の候補の例を示す図である。この修辞構造の得点を同様に求めると、2.7となり、図5に示す修辞構造よりも得点が低いので、この修辞構造は選択されない。
<プログラム正規化>
言語理解・生成モジュールからテキスト理解結果が送られると、プログラム正規化モジュールは、あらかじめ保持された知識(コマンドに関する知識、換言用知識および事実的知識)を利用して、入力プログラムに含まれる各文の実行可能性を検査し、必要に応じて実行可能な形式に書き換えて正規化する。なお、この際に利用される具体的な知識(メールソフトウェアのコマンドに関する知識および換言用知識)を図7および図8にそれぞれ示す。なお、図3に示す入力プログラムに含まれる5つの文のうち文(2)は操作内容ではなく命題的内容を表す文(“relational process”)であるので、正規化処理を行わず、その内容を事実的知識に追加する。
まず、図3に示す入力プログラムに含まれる5つの文のうち文(1)に対する正規化処理について説明する。
文(1)は複文であり、主節と従属節との修辞関係の種類は“elaboration”である。従って、主節を操作の記述、従属節を条件の記述と見なし、それぞれ正規化を行う。主節の「メールを「理研」フォルダに入れる」については、コマンドに関する知識(図7参照)に「入れる」のエントリが存在するので、その必須パラメータである対象(object)および宛先(destination)の値を探し、正規化を試みる。まず、対象パラメータの値は「メール」であるが、「メール」はコマンドに関する知識にコマンドとして存在しないので、値の正規化に失敗する。しかし、状況から「メール」の母集合として「受信メールボックス(に含まれるメール)」が同定され、またこの「メール」には付加的なパラメータなどの条件が付いていないので、結局この対象パラメータの値の同定は成功し、「メール」、「受信メールボックス」がそれぞれ文(1)のループ要素、ループ範囲として設定される。次に、場所パラメータの値は「「理研」フォルダ」であり、「(メール)フォルダ」はコマンドに関する知識に存在し、その必須パラメータである名前(name)は、この場合には、具体的な文字列「理研」として指定されているので、正規化に成功する。したがって、主節の正規化は換言の必要がなく成功し、その結果である「メールを「理研」フォルダに入れる」という表現が文(1)の操作部分として設定される。
文(1)の従属節の「メールが理研の人から来た」については、コマンドに関する知識に「来た」を含むエントリが存在せず、また、状況から「来た」の母集合を同定することもできないので、換言を試みる必要がある。そこで換言用知識(図8参照)を検索すると、「[メール]が[人]から来た」という表現を換言前の表現として持つ知識が見つかる。この表現は従属節の表現とマッチング可能であるので、換言のための方法(1)(上節(3.2.4.)参照)を用いることにより、換言後の表現「メールの差出人が理研の人と等しい」が得られる。なお、この書き換えの過程を概念構造のレベルで表すと図9のようになる。次に、この換言後の表現を用いて改めて正規化を試みる。「等しい」はコマンドに関する知識にコマンドとして存在するものの、必須パラメータである対象2の値「理研の人」における「人」はエントリが存在せず、その母集合の同定もできない。また、「人」および「理研の人」に対して書き換えを行うような換言用知識も存在しない。そこで再びこの表現「メールの差出人が理研の人と等しい」に対して換言を試みることになる。その結果、再び換言のための上記方法(1)(上節(3.2.4.)参照)を用いることにより、「メールの差出人アドレスが理研の人のメールアドレスと等しい」という表現が得られる。この新しい表現に対する処理Aは、先ほどと同様に「理研の人」という箇所で失敗し、さらなる換言が必要となる。今度は、事実的知識に知識データとして追加した文(2)の内容に「理研の人のメールアドレス」という部分があるので、換言のための方法(2)(上節(3.2.4.)参照)を用いることにより、「メールの差出人アドレスの末尾に「.riken.jp」が付く」という表現が得られる。「末尾に付く」、「差出人アドレス」はコマンドに関する知識にコマンドとして存在し、「メール」は主節の内容を正規化した際にループ要素として設定済みであり、「.riken.jp」は具体的な文字列であるので、この表現は正規化可能である。結局、従属節の正規化の結果として、「メールの差出人アドレスの末尾に「.riken.jp」が付く」という表現が文(2)の条件部分として設定される。
残りの文(3)(4)(5)に対しても同様に正規化処理を行う。とくに、文(3)における「研究室の人」という表現は、ここでの仮定として日常言語プログラム処理システムが研究室のメンバーのリスト(ここでは仮に、「小林さん、高橋さん、…」とする)のデータを持つとしているので、換言用知識を利用して「小林さん、または高橋さん、または…」という形の表現に書き換えられる。各文の正規化処理の結果(プログラム正規化結果)を図10にまとめて示す。
今回は、入力プログラムに含まれる「研究室」という語が具体的にどの研究室のことを指すのかを日常言語プログラム処理システムが(文脈解析時に)判断しそのメンバーを特定することができると仮定したが、場合によっては、「研究室」という語がどの研究室を指すのか曖昧で決められないことも考えられる。その場合は、上述したような正規化処理の過程が「研究室の人」のところで失敗するため処理が中断し、日常言語プログラム処理システムはユーザに対して「「研究室」とはどの研究室のことですか?」などと確認または問い合わせの応答を行うことになる。
<実行プログラム生成>
プログラム正規化モジュールからプログラム正規化結果が送られると、実行プログラム生成モジュールは、入力プログラムに含まれる各文の正規化処理の結果を統合し、日常言語により表現された実行プログラムを生成する。この際に、言語理解・生成モジュールにより得られた修辞構造の情報が利用される。
まず、入力プログラムに含まれる各文の条件部分と操作部分とをつなげて1つの文の形に表現する。次に、修辞構造(木構造)の子ユニットから親ユニットの方向に向かって当該各文の表現を順に統合していく。具体的には例えば、文(4)(5)は“condition”の関係にあり、両者の操作部分である添付ファイルの保存および表示は両立可能な操作であるので、これらを統合すると「もし添付ファイルがあるならば、添付ファイルをマイドキュメントの「研究室」フォルダに保存する。そして、もし添付ファイルが文書ファイルであるならば、添付ファイルを表示する。」という内容の表現が生成される。この表現に続けて、次は同様にして文(3)の内容と統合し、その後、文(1)の内容と統合すると、図11に示す実行プログラムのうち行(2)〜(10)の範囲の表現が得られる。最後に、正規化処理の過程で抽出されたループ構造を表す文を行(1)(11)に追加する。これにより、実行プログラムが完成する。なお、図11に示す実行プログラムでは、処理の構造が分かりやすいように、「次の処理を行う。…。以上。」といった処理の範囲を明示する表現や、行頭の字下げなどを行っている。
<プログラム実行>
生成された実行プログラムが実行プログラム生成モジュールから送られると、プログラム実行モジュールは、実行プログラム中で指定された制御の流れに従ってメールソフトウェアのコマンドに逐次変換して実行する。
ここでは、ユーザの受信メールボックスに図12のような5通のメールが入っている状況を考える。この場合、図11に示す実行プログラムの行(1)の指定により、この5通のメールに対して行(2)〜(10)の処理を繰り返す。まず、1番目のメールに対して、行(2)の条件部分のチェックを行う。すなわち、このメールの差出人フィールドを調べるソフトウェアコマンド、およびその値が「小林さん」や「高橋さん」と一致するかどうか調べるコマンドをメールソフトウェアに送出する。その結果、条件が満たされることが判明し、行(3)〜(8)の処理に制御が移る。これにより、このメールを受信メールボックスから「研究室」という名前のフォルダに移動するコマンド、メールを自宅に転送するコマンドが実行され、さらに行(5)(7)の条件のチェック、および添付ファイル(report.pdf)の保存および表示のコマンドが実行される。
受信メールボックス内の2番目以降のメールに対しても同様に処理が行われる。なお、4番目のメールは、行(2)の条件を満たさないので、行(10)に進み、その行(行(10))の条件は満たすので、「理研」という名前のフォルダに移動される。また、5番目のメールは、行(2)(10)の条件をいずれも満たさないので何も操作が行われない。
実施例2
実施例2として、ビデオ録画の予約のためのプログラムの生成および実行を行う場合を例に挙げて説明する。より具体的には、ユーザがビデオ機器を操作して自分の好みの条件でテレビ番組の録画予約を行う状況を考える。このような場合、実施例2においては、ビデオ機器が本発明の機能を搭載しているか、または本発明の機能を搭載したコンピュータに接続されていれば、下記の手法により、自分が録画したいと思う番組のジャンルや特徴についての条件や手順を日常言語で記述して与えるだけで、ビデオ機器に与えられるプログラムの生成および実行を行うことが可能であり、ユーザがビデオ機器の細かい操作方法やテレビ番組の番組表(テレビ番組リスト)等を知らなくてもビデオ録画の予約を簡易に行うことができる。
実施例2においては、図13に示すような5つの文からなる操作指示テキスト(入力プログラム)をユーザが与えたと仮定して、日常言語プログラム処理システムにおける処理過程を説明する。なおここでは、操作対象となるビデオ機器またはそれに接続されたコンピュータが、電子番組表などのデータにアクセスして放送予定のテレビ番組の情報を取得する機能を備えているものと仮定する。
<テキスト理解>
ユーザが入力した入力プログラムは、クライアント秘書エージェントを介して、ビデオ機器の操作および実行を行う言語アプリケーションに送られる。言語アプリケーションでは、まず、日常言語プログラム処理システムの言語理解・生成モジュールにおいて、セミオティックベースを利用した文解析が行われ、入力プログラムに含まれる各文の意味内容を表す概念構造が各文の語彙文法特徴および意味特徴に基づいて同定される。ここで、テキスト理解結果の例として、文(1)の概念構造を図14に示す。
次に、言語理解・生成モジュールにおいて、修辞構造解析が行われ、図13に示す入力プログラムに含まれる5つの文の間の関係を表す修辞構造が同定される。ここで、図13に示す入力プログラムに含まれる5つの文の間の修辞関係は次のように求められる。
(i) 文(2)(5)は文頭に「ただし」という手がかり語があるので、これらの文を先頭とする修辞ユニットはそれぞれ直前の修辞ユニットと“otherwise”の関係にある。
(ii) 文(4)は文頭に「そのとき」という手がかり語があるので、文(4)を先頭とする修辞ユニットは直前の修辞ユニットと“circumstance”の関係にある。
(iii) 文(1)(2)(4)(5)は映画に関する異なる基準(放送日、製作年、製作国、出演者)の条件を表しており、手がかり語によって修辞関係が明示されていない限り、後方の修辞ユニットが前方の修辞ユニットで提示された条件を引き継ぎながら新しい条件を追加する“condition”の関係にある。
ここで、以上のような修辞関係に関するこれらの条件をすべて満たし、かつ、得点付けにより最も高得点となる木構造を選ぶようにすれば、図13に示す入力プログラムの修辞構造が図15に示すようなものであると同定される。
<プログラム正規化>
入力プログラムの各文に対する正規化処理は実施例1の場合と同様に行われる。この際に利用される具体的な知識(ビデオ機器のコマンドに関する知識および換言用知識)を図16および図17にそれぞれ示す。なお、図13に示す入力プログラムに含まれる5つの文のうち文(3)は操作内容ではなく命題的内容を表す文(“relational process”)であるので、正規化処理は行わず、その内容を事実的知識に追加する。
具体的には例えば、入力プログラムに含まれる文(1)の従属節である「映画が2004年1月2日に放送される」は、コマンドに関する知識として「放送される」を含むエントリがないので、換言が行われ、「映画の放送日が2004年1月2日と等しい」という条件に書き換えられる。ここで、コマンドに関する知識(図16参照)における「等しい」および「放送日」のエントリが参照され、また、映画はテレビ番組の一種であり、状況から、テレビ番組の母集合としてこのビデオ機器がアクセスすることが可能なテレビ番組リストが同定されるので、この従属節の正規化処理は成功し、「映画の放送日が2004年1月2日と等しい」、「テレビ番組リスト」、「映画」がそれぞれ文(1)の条件部分、ループ範囲、ループ要素に設定される。各文の正規化処理の結果を図18にまとめて示す。
<実行プログラム生成>
実行プログラムを生成する処理も実施例1の場合と同様に行われる。
具体的には例えば、入力プログラムにおいて文(1)と文(2)との間、および文(3)(4)と文(5)との間がそれぞれ“otherwise”という修辞関係にあるので、「もしAならばB、そうでなければC」という表現に統合する。次に、この2つの表現を“condition”という修辞関係を反映させて統合する。この場合、実施例2では、両方の構造の操作部分に「録画する」、「録画しない」という両立不可能な操作が指定されているので、前方の表現の条件部分を最初に検査して(図19における行(2))、次に後方の表現(行(3)(4)(5))、そして最後に前方の表現の操作部分(行(7)(8))を実行する、という制御構造が導出される。最後に、正規化処理の過程で抽出されたループ構造を表す表現が追加されて実行プログラムが完成する。なお、最終的に生成された実行プログラムを図19に示す。
<プログラム実行>
生成された実行プログラムが実行プログラム生成モジュールから送られると、プログラム実行モジュールは、実行プログラム中で指定された制御の流れに従ってビデオ機器のコマンドに逐次変換して実行する。ただし、テレビ番組の録画は放送開始時刻にならないと行えないので、実際にはビデオ機器の録画予約コマンドが、実行プログラム中の番組録画の指示に対応すると考える。
ここでは、プログラム実行時のテレビ番組リストが図20に示すような内容である状況を考える。この場合、図19に示す実行プログラムの行(1)の指定により、この5つのテレビ番組に対して行(2)〜(11)の処理を繰り返す。その結果、図20に示すテレビ番組リストのうち上から1、3、5番目の映画はそれぞれ行(7)、行(5)、行(7)の条件に該当するので、録画予約が行われない。一方、2、4番目の映画はそれぞれ行(8)、行(3)の指示により録画予約が行われることになる。
実施例3
実施例3として、インターネットで情報収集を行うためのプログラムの生成および実行を行う場合を例に挙げて説明する。より具体的には、ユーザがインターネット上のWWWを利用して自分の必要とする情報を収集しようとする状況を考える。このような場合、実施例3においては、下記の手法により、訪問するウェブページの範囲や収集する情報の内容および量などについての条件や手順を日常言語で記述して与えるだけで、プログラムの生成および実行を行うことが可能であり、ユーザがインターネットを利用した検索方法に詳しくなくても一連の検索および保存の処理を自動的に行うことができる。
実施例3においては、図21に示すような4つの文からなる操作指示テキスト(入力プログラム)をユーザが与えたと仮定して、日常言語プログラム処理システムにおける処理過程を説明する。
<テキスト理解>
ユーザが入力した入力プログラムは、クライアント秘書エージェントを介して、WWW閲覧ソフトウェアの操作および実行を行う言語アプリケーションに送られる。言語アプリケーションでは、まず、日常言語プログラム処理システムの言語理解・生成モジュールにおいて、セミオティックベースを利用した文解析が行われ、入力プログラムに含まれる各文の意味内容を表す概念構造が各文の語彙文法特徴および意味特徴に基づいて同定される。ここで、テキスト理解結果の例として、文(1)の概念構造を図22に示す。
次に、言語理解・生成モジュールにおいて、修辞構造解析が行われ、図21に示す入力プログラムに含まれる4つの文の間の関係を表す修辞構造が同定される。ここで、図21に示す入力プログラムに含まれる4つの文の間の修辞関係は次のように求められる。
(i) 文(2)は文頭に「ただし」という手がかり語があるので、文(2)を先頭とする修辞ユニットは直前の修辞ユニットと“otherwise”の関係にある。
(ii) 文(3)は、前の文の「スポーツニュース」に対して「芸能ニュース」と同じ基準の異なる条件を提示しており、これらは互いに共通要素を持たない条件であるので、文(3)を先頭とする修辞ユニットは直前の修辞ユニットと“disjunction”の関係にある。
(iii) 文(4)は前の3つの文(文(1)〜(3))とは異なる基準(更新日)の条件を示しており、それらの例外的な場合の操作について記述しているので、文(4)と前の3つの文(文(1)〜(3))とは“otherwise”の関係にある。
ここで、以上のような修辞関係に関するこれらの条件をすべて満たし、かつ、得点付けにより最も高得点となる木構造を選ぶようにすれば、図21に示す入力プログラムの修辞構造が図23に示すようなものであると同定される。
<プログラム正規化>
入力プログラムの各文に対する正規化処理は実施例1、2の場合と同様に行われる。この際に利用される具体的な知識(WWW閲覧ソフトウェアのコマンドに関する知識および換言用知識)を図24および図25にそれぞれ示す。
具体的には例えば、入力プログラムに含まれる文(1)の従属節である「スポーツニュースがABC新聞のホームページに載っている」は、換言用知識を用いて、「スポーツニュースがABC新聞のホームページのニュース記事リストに含まれる」に換言される。しかしながら、この表現に含まれる「ABC新聞のホームページのニュース記事リスト」は、これ自体が「スポーツニュース」の母集合として同定されるので、文(1)の条件部分からは除外されて、その結果、文(1)の条件部分としては「スポーツニュース」を条件の形に変換した「ニュース記事がスポーツニュースである」という表現が設定される。
文(2)〜(4)についても同様であるが、これらは「ニュース記事」を共通のループ要素として持つので、ループ範囲についても最初の文で設定された「ABC新聞のホームページのニュース記事リスト」を受け継ぐことになる。各文の正規化処理の結果を図26にまとめて示す。
<実行プログラム生成>
実行プログラムを生成する処理も実施例1、2の場合と同様に行われる。なおここでは、実施例1、2に現れなかった修辞関係として、“disjunction”という関係が文(1)(2)と文(3)との間に存在する。これに対しては、文(1)(2)に対応する実行プログラム(図27の行(4)(5))と、文(3)に対応する実行プログラム(図27の行(6))とを順に並べて出力し、逐次的に実行するものとする。なお、最終的に生成された実行プログラムを図27に示す。
<プログラム実行>
生成された実行プログラムが実行プログラム生成モジュールから送られると、プログラム実行モジュールは、実行プログラム中で指定された制御の流れに従ってWWW閲覧ソフトウェアのコマンドに逐次変換して実行する。
ここでは、プログラム実行時にWWW閲覧ソフトウェアによって取得されるABC新聞のホームページ上にあるニュース記事が図28に示すような内容である状況を考える。この場合には、図27に示す実行プログラムを実行した結果、図28に示すニュース記事ののうち上から4、6番目の記事がマイドキュメントの「ニュース」という名前のフォルダに保存される。
本発明の一実施の形態に係る日常言語プログラム処理システムの全体構成を示す図。 図1に示す日常言語プログラム処理システムが前提とする日常言語コンピューティングシステムの概要を説明するための図。 実施例1で用いられる入力プログラムの一例を示す図。 図3に示す入力プログラムの入力文(1)の概念構造を示す図。 図3に示す入力プログラムの修辞構造の一候補を示す図。 図3に示す入力プログラムの修辞構造の他の候補を示す図。 実施例1で用いられる知識(コマンドに関する知識)の一例を示す図。 実施例1で用いられる知識(換言用知識)の一例を示す図。 実施例1における換言による概念構造の変換の様子の一例を示す図。 実施例1におけるプログラム正規化結果の一例を示す図。 実施例1における、生成された実行プログラムの一例を示す図。 実施例1における実行プログラムのループ範囲(受信メールボックス)の内容の一例を示す図。 実施例2で用いられる入力プログラムの一例を示す図。 図13に示す入力プログラムの入力文(1)の概念構造を示す図。 図13に示す入力プログラムの修辞構造の一候補を示す図。 実施例2で用いられる知識(コマンドに関する知識)の一例を示す図。 実施例2で用いられる知識(換言用知識)の一例を示す図。 実施例2におけるプログラム正規化結果の一例を示す図。 実施例2における、生成された実行プログラムの一例を示す図。 実施例2における実行プログラムのループ範囲(テレビ番組リスト)の内容の一例を示す図。 実施例3で用いられる入力プログラムの一例を示す図。 図21に示す入力プログラムの入力文(1)の概念構造を示す図。 図21に示す入力プログラムの修辞構造の一候補を示す図。 実施例3で用いられる知識(コマンドに関する知識)の一例を示す図。 実施例3で用いられる知識(換言用知識)の一例を示す図。 実施例3におけるプログラム正規化結果の一例を示す図。 実施例3における、生成された実行プログラムの一例を示す図。 実施例3における実行プログラムのループ範囲(ニュース記事リスト)の内容の一例を示す図。
符号の説明
10 日常言語プログラム処理システム
11 言語理解・生成モジュール
12 プログラム正規化モジュール
13 実行プログラム生成モジュール
14 プログラム実行モジュール
15 プランモジュール
21 セミオティックベース
22 コマンドに関する知識
23 換言用知識
24 事実的知識
31 クライアント秘書エージェント
32 言語アプリケーション
33 アプリケーションソフトウェアまたはハードウェア
41 日常言語コンピューティングシステム
51 入力プログラム
52 テキスト理解結果
53 プログラム正規化結果
54 実行プログラム
55 応答テキスト

Claims (20)

  1. 日常言語により表現された一連のコンピュータ操作指示を含む入力プログラムの意味を理解してコンピュータ処理を実行する日常言語プログラム処理システムにおいて、
    語彙文法、意味およびコンテクストの体系をデータベース化したセミオティックベースを利用して、ユーザが入力した入力プログラムであって日常言語により表現された一連のコンピュータ操作指示を表す複数の文を含む入力プログラムのテキスト理解を行い、当該入力プログラムに含まれる各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造を同定する言語理解・生成モジュールと、
    前記言語理解・生成モジュールにより得られたテキスト理解結果に基づいて、あらかじめ保持された知識を利用して、前記入力プログラムに含まれる各文を実行可能な形式に書き換えて正規化するプログラム正規化モジュールと、
    前記プログラム正規化モジュールにより得られたプログラム正規化結果と、前記言語理解・生成モジュールにより得られた修辞構造の情報とに基づいて、前記入力プログラムに含まれる各文の正規化処理の結果を統合し、日常言語により表現された実行プログラムを生成する実行プログラム生成モジュールと、
    前記実行プログラム生成モジュールにより生成された実行プログラムのうちコマンドに対応する表現とコマンドの実行順序の制御を指定する表現とを解釈し、コンピュータ上で実行されるコマンドに変換して実行するプログラム実行モジュールとを備えたことを特徴とする日常言語プログラム処理システム。
  2. 前記言語理解・生成モジュールは、前記入力プログラムに含まれる各文の語彙文法特徴および意味特徴に基づいて当該各文の意味内容を表す概念構造を同定することを特徴とする、請求項1に記載のシステム。
  3. 前記言語理解・生成モジュールは、前記入力プログラムに含まれる各文内の接続表現に基づいて当該各文間の関係を表す修辞構造を同定することを特徴とする、請求項1または2に記載のシステム。
  4. 前記言語理解・生成モジュールは、前記接続表現に加えて、前記各文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報に基づいて、当該各文間の関係を表す修辞構造を同定することを特徴とする、請求項3に記載のシステム。
  5. 前記言語理解・生成モジュールは、前記接続表現および前記タイプ情報に加えて、前記各文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報に基づいて、当該各文間の関係を表す修辞構造を同定することを特徴とする、請求項4に記載のシステム。
  6. 前記プログラム正規化モジュールは、前記知識として、コンピュータ上で実行されるコマンドに関する知識、前記入力プログラムに含まれるユーザの表現を意味内容を変えることなくコンピュータ上で実行可能な表現に書き換えるための換言用知識、および事実的な情報に関する事実的知識を用いることを特徴とする、請求項1乃至5のいずれか一項に記載のシステム。
  7. 前記プログラム正規化モジュールは、前記入力プログラムに含まれる各文ごとに条件部分、操作部分、ループ範囲およびループ要素を抽出することにより当該各文を実行可能な形式に書き換えることを特徴とする、請求項1乃至6のいずれか一項に記載のシステム。
  8. 前記実行プログラム生成モジュールは、前記入力プログラムに含まれる各文間の関係を表す修辞構造を参照して子ユニットから親ユニットの方向に向かって当該各文の正規化処理の結果を統合することを特徴とする、請求項1乃至7のいずれか一項に記載のシステム。
  9. 前記プログラム正規化モジュール、前記実行プログラム生成モジュールおよび前記プログラム実行モジュールのうちの少なくとも一つのモジュールは、当該各モジュールでの処理に必要な情報が不足したり曖昧だったときに前記言語理解・生成モジュールにより確認または問い合わせための言語テキストを生成してユーザに提示することを特徴とする、請求項1乃至8のいずれか一項に記載のシステム。
  10. 前記入力プログラムを入力するユーザとの間における言語テキストのやりとりを制御するプランモジュールをさらに備えたことを特徴とする、請求項1乃至9のいずれか一項に記載のシステム。
  11. 日常言語により表現された一連のコンピュータ操作指示を含む入力プログラムの意味を理解してコンピュータ処理を実行する日常言語プログラム処理方法において、
    語彙文法、意味およびコンテクストの体系をデータベース化したセミオティックベースを利用して、ユーザが入力した入力プログラムであって日常言語により表現した一連のコンピュータ操作指示を表す複数の文を含む入力プログラムのテキスト理解を行い、当該入力プログラムに含まれる各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造を同定する第1のステップと、
    前記第1のステップで得られたテキスト理解結果に基づいて、あらかじめ保持された知識を利用して、前記入力プログラムに含まれる各文を実行可能な形式に書き換える第2のステップと、
    前記第2のステップで得られたプログラム正規化結果と、前記第1のステップで得られた修辞構造の情報とに基づいて、前記入力プログラムに含まれる各文の正規化処理の結果を統合し、日常言語により表現された実行プログラムを生成する第3のステップと、
    前記第3のステップで生成された実行プログラムのうちコマンドに対応する表現とコマンドの実行順序の制御を指定する表現とを解釈し、コンピュータ上で実行されるコマンドに変換して実行する第4のステップとを含むことを特徴とする日常言語プログラム処理方法。
  12. 前記第1のステップにおいて、前記入力プログラムに含まれる各文の語彙文法特徴および意味特徴に基づいて当該各文の意味内容を表す概念構造を同定することを特徴とする、請求項11に記載の方法。
  13. 前記第1のステップにおいて、前記入力プログラムに含まれる各文内の接続表現に基づいて当該各文間の関係を表す修辞構造を同定することを特徴とする、請求項11または12に記載の方法。
  14. 前記第1のステップにおいて、前記接続表現に加えて、前記各文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報に基づいて、当該各文間の関係を表す修辞構造を同定することを特徴とする、請求項13に記載の方法。
  15. 前記第1のステップにおいて、前記接続表現および前記タイプ情報に加えて、前記各文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報に基づいて、当該各文間の関係を表す修辞構造を同定することを特徴とする、請求項14に記載の方法。
  16. 前記第2のステップにおいて、前記知識として、コンピュータ上で実行されるコマンドに関する知識、前記入力プログラムに含まれるユーザの表現を意味内容を変えることなくコンピュータ上で実行可能な表現に書き換えるための換言用知識、および事実的な情報に関する事実的知識を用いることを特徴とする、請求項11乃至15のいずれか一項に記載の方法。
  17. 前記第2のステップにおいて、前記入力プログラムに含まれる各文ごとに条件部分、操作部分、ループ範囲およびループ要素を抽出することにより当該各文を実行可能な形式に書き換えることを特徴とする、請求項11乃至16のいずれか一項に記載の方法。
  18. 前記第3のステップにおいて、前記入力プログラムに含まれる各文間の関係を表す修辞構造を参照して子ユニットから親ユニットの方向に向かって当該各文の正規化処理の結果を統合することを特徴とする、請求項11乃至17のいずれか一項に記載の方法。
  19. 日常言語により表現された一連のコンピュータ操作指示を表す複数の修辞ユニットを解析して当該複数の修辞ユニット間の関係を表す修辞構造を同定する修辞構造解析方法において、
    意味内容を表す概念構造が同定された複数の修辞ユニットを準備する第1のステップと、
    前記第1のステップで準備された複数の修辞ユニットに含まれる一つ以上の文内の接続表現を抽出する第2のステップと、
    前記第1のステップで準備された複数の修辞ユニットに含まれる一つ以上の文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報を特定する第3のステップと、
    前記第2のステップで抽出された接続表現および前記第3のステップで特定されたタイプ情報に基づいて、前記複数の修辞ユニット間の関係を表す修辞構造を同定する第4のステップとを含むことを特徴とする、修辞構造解析方法。
  20. 前記第1のステップで準備された複数の修辞ユニットに含まれる一つ以上の文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報を特定する第5のステップをさらに含み、
    前記第4のステップにおいて、前記第2のステップで抽出された接続表現および前記第3のステップで特定されたタイプ情報に加えて、前記第5のステップで特定された意味内容関係情報に基づいて、前記複数の修辞ユニット間の関係を表す修辞構造を同定することを特徴とする、請求項19に記載の方法。
JP2004036460A 2004-02-13 2004-02-13 日常言語プログラム処理システム、その方法および修辞構造解析方法 Pending JP2005228075A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004036460A JP2005228075A (ja) 2004-02-13 2004-02-13 日常言語プログラム処理システム、その方法および修辞構造解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004036460A JP2005228075A (ja) 2004-02-13 2004-02-13 日常言語プログラム処理システム、その方法および修辞構造解析方法

Publications (1)

Publication Number Publication Date
JP2005228075A true JP2005228075A (ja) 2005-08-25

Family

ID=35002743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004036460A Pending JP2005228075A (ja) 2004-02-13 2004-02-13 日常言語プログラム処理システム、その方法および修辞構造解析方法

Country Status (1)

Country Link
JP (1) JP2005228075A (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016534616A (ja) * 2013-08-06 2016-11-04 アップル インコーポレイテッド リモート機器からの作動に基づくスマート応答の自動作動
JP2017027111A (ja) * 2015-07-15 2017-02-02 日本電信電話株式会社 接続表現項構造解析装置、方法、及びプログラム
US9986419B2 (en) 2014-09-30 2018-05-29 Apple Inc. Social reminders
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10079014B2 (en) 2012-06-08 2018-09-18 Apple Inc. Name recognition system
US10356243B2 (en) 2015-06-05 2019-07-16 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US10373617B2 (en) 2014-05-30 2019-08-06 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10410637B2 (en) 2017-05-12 2019-09-10 Apple Inc. User-specific acoustic models
US10482874B2 (en) 2017-05-15 2019-11-19 Apple Inc. Hierarchical belief states for digital assistants
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US10755703B2 (en) 2017-05-11 2020-08-25 Apple Inc. Offline personal assistant
US10791176B2 (en) 2017-05-12 2020-09-29 Apple Inc. Synchronization and task delegation of a digital assistant
US10810274B2 (en) 2017-05-15 2020-10-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US11217255B2 (en) 2017-05-16 2022-01-04 Apple Inc. Far-field extension for digital assistant services
US12010262B2 (en) 2020-08-20 2024-06-11 Apple Inc. Auto-activating smart responses based on activities from remote devices

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6275731A (ja) * 1985-09-30 1987-04-07 Ricoh Co Ltd 情報処理装置の指令装置
JPH03164834A (ja) * 1989-11-22 1991-07-16 Hitachi Ltd プログラミング言語間相互変換方式
JPH0468464A (ja) * 1990-07-10 1992-03-04 Agency Of Ind Science & Technol 文章構造解析装置
JPH04140834A (ja) * 1990-10-02 1992-05-14 Hitachi Ltd プログラム生成方法およびそのための仕様入力方法
JP2002236681A (ja) * 2001-02-09 2002-08-23 Inst Of Physical & Chemical Res 日常言語コンピューティングシステムおよびその方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6275731A (ja) * 1985-09-30 1987-04-07 Ricoh Co Ltd 情報処理装置の指令装置
JPH03164834A (ja) * 1989-11-22 1991-07-16 Hitachi Ltd プログラミング言語間相互変換方式
JPH0468464A (ja) * 1990-07-10 1992-03-04 Agency Of Ind Science & Technol 文章構造解析装置
JPH04140834A (ja) * 1990-10-02 1992-05-14 Hitachi Ltd プログラム生成方法およびそのための仕様入力方法
JP2002236681A (ja) * 2001-02-09 2002-08-23 Inst Of Physical & Chemical Res 日常言語コンピューティングシステムおよびその方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10079014B2 (en) 2012-06-08 2018-09-18 Apple Inc. Name recognition system
US10791216B2 (en) 2013-08-06 2020-09-29 Apple Inc. Auto-activating smart responses based on activities from remote devices
JP2016534616A (ja) * 2013-08-06 2016-11-04 アップル インコーポレイテッド リモート機器からの作動に基づくスマート応答の自動作動
US10373617B2 (en) 2014-05-30 2019-08-06 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9986419B2 (en) 2014-09-30 2018-05-29 Apple Inc. Social reminders
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US10356243B2 (en) 2015-06-05 2019-07-16 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
JP2017027111A (ja) * 2015-07-15 2017-02-02 日本電信電話株式会社 接続表現項構造解析装置、方法、及びプログラム
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10553215B2 (en) 2016-09-23 2020-02-04 Apple Inc. Intelligent automated assistant
US10755703B2 (en) 2017-05-11 2020-08-25 Apple Inc. Offline personal assistant
US10791176B2 (en) 2017-05-12 2020-09-29 Apple Inc. Synchronization and task delegation of a digital assistant
US10410637B2 (en) 2017-05-12 2019-09-10 Apple Inc. User-specific acoustic models
US11405466B2 (en) 2017-05-12 2022-08-02 Apple Inc. Synchronization and task delegation of a digital assistant
US10482874B2 (en) 2017-05-15 2019-11-19 Apple Inc. Hierarchical belief states for digital assistants
US10810274B2 (en) 2017-05-15 2020-10-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
US11217255B2 (en) 2017-05-16 2022-01-04 Apple Inc. Far-field extension for digital assistant services
US12010262B2 (en) 2020-08-20 2024-06-11 Apple Inc. Auto-activating smart responses based on activities from remote devices

Similar Documents

Publication Publication Date Title
US9336200B2 (en) Assisting document creation
KR100650427B1 (ko) 자연어 인식 애플리케이션 구축을 위한 통합 개발 툴
RU2592396C1 (ru) Способ и система для машинного извлечения и интерпретации текстовой информации
JP3009215B2 (ja) 自然語処理方法および自然語処理システム
KR20170106308A (ko) 어노테이션 보조 장치 및 그것을 위한 컴퓨터 프로그램
JP2005182823A (ja) 縮小されたテキスト本文を生成する方法
JP2010532897A (ja) 知的なテキスト注釈の方法、システム及びコンピュータ・プログラム
JP6676109B2 (ja) 発話文生成装置とその方法とプログラム
JP2012520528A (ja) 自然言語テキストの自動的意味ラベリングのためのシステム及び方法
JP2015511746A5 (ja)
JP2005228075A (ja) 日常言語プログラム処理システム、その方法および修辞構造解析方法
Bonn et al. Building a Broad Infrastructure for Uniform Meaning Representations
Pimentel et al. General and specialized lexical resources: A study on the potential of combining efforts to enrich formal lexicons
Cheng et al. A question answering system for project management applications
JP2948159B2 (ja) データベース装置
Talita et al. Challenges in building domain ontology for minority languages
JP3856388B2 (ja) 類義性計算方法、類義性計算プログラム、類義性計算プログラムを記録したコンピュータ読み取り可能な記録媒体
Schneider A database-driven ontology for German grammar
Tiwari et al. Mold-a framework for entity extraction and summarization
RU2635213C1 (ru) Способ суммаризации текста и используемые для его реализации устройство и машиночитаемый носитель информации
Aina A Hybrid Yoruba Noun Ontology
Dissanayake et al. Enhancing conversational ai model performance and explainability for sinhala-english bilingual speakers
JP4938298B2 (ja) テキストの要約に含める文の候補を出力する方法およびプログラム
Bontcheva et al. D3. 1 Key concept identification and clustering of similar content
JP2003173338A (ja) 辞書構築支援装置、辞書構築支援方法及び辞書構築支援プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100525

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100602

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100528

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101001