JP2008145769A - 対話シナリオ生成システム,その方法およびプログラム - Google Patents
対話シナリオ生成システム,その方法およびプログラム Download PDFInfo
- Publication number
- JP2008145769A JP2008145769A JP2006333484A JP2006333484A JP2008145769A JP 2008145769 A JP2008145769 A JP 2008145769A JP 2006333484 A JP2006333484 A JP 2006333484A JP 2006333484 A JP2006333484 A JP 2006333484A JP 2008145769 A JP2008145769 A JP 2008145769A
- Authority
- JP
- Japan
- Prior art keywords
- information
- dialogue
- user
- rule
- scenario
- 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
Links
Images
Landscapes
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【課題】
ユーザの要求に基づいて機器やコンピュータプログラムの操作を代行する自然言語対話システムに必要となる対話シナリオを効率的に作成する。
【解決手段】
機器やコンピュータプログラムの機能や操作方法が自然言語により記述されている文書から対話シナリオを構築する。まず,文書項目抽出部106で,あらかじめ定められたルールに従って,文書から対象とする項目のみを抽出する。次に,抽出項目分析部108で,対象とする文書に特有の表現ルールに従って,抽出した項目の内容を分析し,必要な情報を抽出する。抽出した情報に対応するコマンドやパラメータを開発者から取得し,対話シナリオ生成部110で,文書から抽出した情報と開発者から取得した情報および,あらかじめ用意されたルールに基づいて,対話シナリオを生成する。
【選択図】図1
ユーザの要求に基づいて機器やコンピュータプログラムの操作を代行する自然言語対話システムに必要となる対話シナリオを効率的に作成する。
【解決手段】
機器やコンピュータプログラムの機能や操作方法が自然言語により記述されている文書から対話シナリオを構築する。まず,文書項目抽出部106で,あらかじめ定められたルールに従って,文書から対象とする項目のみを抽出する。次に,抽出項目分析部108で,対象とする文書に特有の表現ルールに従って,抽出した項目の内容を分析し,必要な情報を抽出する。抽出した情報に対応するコマンドやパラメータを開発者から取得し,対話シナリオ生成部110で,文書から抽出した情報と開発者から取得した情報および,あらかじめ用意されたルールに基づいて,対話シナリオを生成する。
【選択図】図1
Description
本発明は,自然言語対話によってユーザとやり取りを行い,機器の操作をユーザに代わって行うことやユーザにサービスの提供を行う自然言語対話システムにおいて,ユーザとのやり取りに関する情報が記述された対話シナリオを自然言語対話システムの開発者が容易に作成するための技術に関する。
自然言語によりユーザと対話を行い,ユーザが要求する情報やサービスを提供する自然言語対話システムに関する技術は多数提案されている。
自然言語対話システムでは,ユーザとシステムとのやり取りに関する情報を対話シナリオと呼ばれるデータベースとして格納し,対話シナリオに従ってユーザからの質問に対する応答の生成やサービスの提供を行う。しかし,多様なサービスを提供するとともに,システムとユーザとの柔軟な対話を実現するためには,数多くの状況を想定する必要があるため,質の良い対話シナリオを効率的に構築する手段が必要となる。
特許文献1では,ハイパーテキストデータから表部分に対応するテキストデータを抽出し,抽出した表データをシナリオテンプレートに挿入することにより,音声対話シナリオを生成する。
また,特許文献2では,擬似人格との対話サービスを対象とし,対象とする人物のメール,著作物等における発言や対話の内容に基づいて,ユーザの質問を受け付け,返答するための情報となる対話用の基本文書を生成する。
一方,特許文献3では,音声認識や音声合成等の機能を容易に結びつけることが可能なツールを用意することにより,人手により音声インタフェースを構築する際の作業効率向上,作業負荷軽減を図っている。
従来技術では,ユーザと自然言語対話システムとの基本的なやり取りに関する情報がテンプレートとして与えられる,あるいはユーザの発言や対話の記録といった対話シナリオに親和性の高い情報があらかじめ取得できるという前提に基づいている。
一方,ユーザから要求を受け付け,自然言語対話システムがユーザに代わって情報家電のような機器やコンピュータプログラムの操作を行うことを想定した場合,ユーザと自然言語対話システムのやり取りは,操作対象とする機器やコンピュータプログラムの種類によってさまざまな形態となるため,あらかじめ全ての状況を想定してテンプレート化しておくことは困難となる。また,ユーザが他の人物に機器やコンピュータプログラムの操作を依頼するという状況におけるやり取りは,一般的に少なく,さらに,それを記録することに至っては殆どないため,ユーザの発言や対話の内容に基づいて対話シナリオを構築することは非常に困難である。
さらに,従来技術では,人手で対話シナリオを生成する際の作業効率化のための技術も示されているが,近年開発される機器やコンピュータプログラムは,その機能が多岐に渡るため,個々の機能毎にユーザとのやり取りの詳細な状況を想定し,対話シナリオとして記述することは,効率的なツールを用いた場合においても,人手での作業には多大な労力を必要とし,対話シナリオを作成し忘れる機能が生じる可能性も高くなると考えられる。
本発明は,以上の問題を解決し,機器やコンピュータプログラムが提供する多様なサービスに対するユーザ要求に柔軟に対応可能な自然言語対話システムを実現できる対話シナリオを効率的に構築するため,機器やコンピュータプログラムの開発者や提供者がユーザ向けに提供する操作マニュアルや取り扱い説明書等の文書から対話シナリオを構築する技術を提供する。
本発明では,上記の課題を達成し対話シナリオを構築するため,まず,ユーザ向けに提供される文書から,あらかじめ定められたルールに従って,対話シナリオに関連する項目のみを抽出する。抽出する項目は,ユーザからの要求に対応する項目や,ユーザからの要求を実行するために必要となる詳細なやり取りに対応する項目であり,操作の内容を表す見出しや箇条書きされている項目,操作手順を表す項目がそれに相当する。
次に,操作マニュアルや取り扱い説明書等のユーザ向けに提供される文書において用いられる特有の表現形態に従って,抽出した項目の内容を分析し,ユーザからの要求に対応する単位やそれらの関係,ユーザから情報を取得する必要がある項目や操作対象および操作の内容に関する情報を抽出する。表現形態の分析のためには,あらかじめ表現形態に関するルールを用意しておく。
機器やコンピュータプログラムを自然言語対話システムが操作する際には,自然言語対話システムが機器やコンピュータプログラムが解釈可能なコマンドおよびそれに付随するパラメータを送信する必要がある。コマンドやパラメータは,文書から抽出された操作の内容や操作対象,ユーザから入力される情報に対応するが,通常,ユーザに提供される文書には記載されない。このため,文書から抽出された操作内容や操作対象,ユーザから入力される情報に対応するコマンドやパラメータは開発者が補足入力するためのインタフェースを用意する。また,自然言語対話システムがユーザから情報を入力させる場合,機器やコンピュータプログラムが対応している項目が限られるため,複数の選択肢から選択させる場合がある。この場合の選択肢に関する情報はユーザ用に提供される文書に記載されていない場合がある。このため,このような情報も含めて上記のインタフェースでは開発者が入力可能とする。
文書から抽出した項目と開発者が補足した情報,さらに,あらかじめ用意された対話シナリオ生成用のルールに基づいて,対話シナリオを生成する。対話シナリオの生成では,文書から抽出された情報をルールに基づいて修正・補足することにより対話の基本的なやり取りに関する情報を生成し,さらに,応答文の生成および音声認識用文法の生成を行うことにより,対話シナリオを生成する。
操作マニュアルや取り扱い説明書等のユーザ向けに提供される文書に記載されているユーザが行う操作の内容を表す記述,例えば,テレビの操作の場合「テレビをつける」等は,ユーザの基本的な要求を表していると考えることができる。また,これらの文書には,ユーザが機器を使う,あるいはサービスを受けるために行う基本的な操作が全て記述されている。このため,ユーザ向けの文書の内容に基づいて対話シナリオを生成することにより,機器やコンピュータプログラムが提供する多様なサービスへのユーザ要求に柔軟に対応可能な自然言語対話システムを実現できる対話シナリオの効率的な構築が可能となる。
以下,本発明の実施例を図1〜図42を用いて詳述する。
図1は第一の実施例に係わる対話シナリオ生成システムとそれを用いた自然言語対話システムの構成を示す概念ブロック図である。図1において,101は対話シナリオ生成システムを示す。102は,対話シナリオ生成システム101が対話シナリオを生成するために使用する操作対象関連文書である。操作対象関連文書102には,情報家電等の機器やコンピュータプログラムの操作マニュアルや取り扱い説明書等,機器やコンピュータプログラムの開発者や提供者がユーザ向けに提供する文書が含まれる。103は,本実施例による対話シナリオ生成システム101によって生成された対話シナリオである。104は対話シナリオ103の内容に基づいて,ユーザと自然言語による対話を行い,ユーザ要求に基づいて,操作対象の操作を行ったり,操作対象によるサービスをユーザに提供するための自然言語対話システムであり,音声認識機能や音声合成機能,テキスト表示機能等の各種入出力機能とそれらを用いてユーザとの対話を実現する対話制御機能等から構成される。このような音声認識や音声出力を行う入出力部を有し,自然言語によってユーザと対話を行い,ユーザからの要求に基づいて操作対象となる機器やコンピュータプログラムの操作を代行する自然言語対話システムとしては既に知られている技術,例えば,特開2001−188668号公報「会話処理装置および方法,情報処理装置,会話処理システム,並びに記録媒体」に開示された技術を用いることができる。
また,図1における操作対象105は,自然言語対話システム104によって操作される情報家電等の機器やコンピュータプログラムであり,テレビやビデオレコーダ,ワードプロセッサ等を想定している。自然言語対話システム104と操作対象105は,有線あるいは無線のネットワークや赤外線リモコン等,操作対象を操作するために一般的に用いられている手段を使用して接続される。
図1の対話シナリオ生成システム101において,文書項目抽出部106は,文書構造解析ルール107に基づいて,操作対象関連文書102の構造を解析し,対話シナリオ103の生成に必要な項目を抽出する。文書構造解析ルール107には,文書のフォーマットに関する情報や必要な項目を表すキーワード等が記述される。抽出項目分析部108は,文書項目抽出部106によって抽出された項目の内容を表現解析ルール109に基づいて分析し,ユーザと自然言語対話システム104の対話に必要となる情報を抽出する。表現解析ルール109には,抽出した項目を分類したり,操作内容や操作対象等の情報を抽出するためのキーワードやルールが記述される。対話シナリオ生成部110は,抽出項目分析部108で行われた分析の結果と対話シナリオ生成ルール111に基づいて,対話シナリオ103を生成する。対話シナリオ生成ルール111には,抽出項目分析部108における分析で得られた情報を対話シナリオに変換するために必要となるルールや情報を捕捉するためのルールが記述される。また,情報入出力部112は,対話シナリオを生成する際に,自然言語対話システムの開発者が不足している情報を補うために使用する。
図2は本実施例による対話シナリオ生成システム101を一般的に使用される計算機上で実現した場合の構成図である。図2における201は,対話シナリオ生成に必要な各種のプログラムを実行するための情報処理部であり,通常のCPU(Central Processing Unit)を含む。202は,図1における情報入出力部112において,自然言語対話システムの開発者が必要な情報を入力するための入力部であり,キーボードやマウス等の良く知られた装置を用いることができる。表示部203は,図1における情報入出力部112において,対話シナリオ生成に必要となる情報の入力を自然言語対話システムの開発者に促したり,入力した情報の確認等を行うための出力部としての表示装置であり,モニタ等の良く知られた装置を用いることができる。
図2において204は,対話シナリオ生成に必要な各種のプログラムや処理の途中経過に関する情報を格納するための記憶部である。また205は,図1における文書項目抽出部106に対応する処理を行うための文書項目抽出プログラム,206は,同じく抽出項目分析部108に対応する処理を行うための抽出項目分析プログラム,207は,対話シナリオ生成部110と情報入出力部112に対応する処理を行うための対話シナリオ生成プログラムであり,それぞれ記憶部204に記憶され,情報処理部201などで実行される。更に,操作対象関連文書208,文書構造解析ルール209,表現解析ルール210,対話シナリオ生成ルール211,対話シナリオ212はそれぞれ,図1における102,107,109,111,103に対応し,システムが構成される計算機の記憶部に格納される。そのため,各種プログラムを記憶する記憶部204に,これらを記憶・格納する記憶部・格納部を含めたものを情報記憶部と呼ぶことがある。
図3に本実施例で想定している操作対象関連文書の一例を示す。図3はテレビの操作マニュアルの一部を例示しており,「テレビを見る(301)」ための操作として,「テレビをつける(303)」,「音量を調整する(310)」,「音声を切り換える(315)」の3種類の操作が可能であり,それぞれの具体的な操作の手順が項目毎に記述されている(304,306,307,309,311,316,321)。また,操作や手順に対しては,302,305,308,312,313,314,317,318,319,320,322に示すような補足情報が記述される。図3は文字のみによって記述された操作マニュアルの例であるが,より一般的な操作マニュアルは図や表等も交えて操作の手順が記述されている。しかし,基本的な構成は図3に示す例とほぼ同様である。
図4に対話シナリオ生成システム101の文書構造解析ルール107の構成を示す。図4において,フォーマット情報401は,操作対象関連文書102中の対話シナリオを生成するために必要な項目に関するフォーマットを表す。すなわち,文書項目抽出部106では,フォーマット情報401に記述されているフォーマットに該当する項目を操作対象関連文書102より抽出する。
図5に,フォーマット情報401に記述される情報を示す。図5において,階層番号501は,抽出した項目が文書の階層構造中のどの階層の項目であるかを表す番号である。例えば,図3において,「2.テレビを見る(301)」は一番上の階層であるため,階層番号501は「1」となる。また,「(1)リモコンのボタンを押す(304)」は,「2.テレビを見る(301)」や「2.1 テレビをつける(303)」の下の階層であるため,階層番号は「3」となる。図5における種類502は,該当する項目の種類を表す。「見出し」は,「2.テレビを見る(301)」や「2.1 テレビをつける(303)」等の操作の分類を表す項目を示し,「手順」は,「(1)リモコンのボタンを押す(304)」等の具体的な操作手順を表す項目を示す。項目の種類としては,操作対象関連文書102の構造に応じて,他の種類を追加することができる。開始フォーマット503および終了フォーマット504は,操作対象関連文書102中の項目を抽出するかどうかを判定するための条件であり,項目の開始部分に開始フォーマット503の記述が含まれ,且つ,終了部分に終了フォーマット504の記述が含まれている場合,操作対象関連文書102中の項目を抽出対象とする。
図5の505で示される行の場合,項目の開始部分に「/NO/.」という表記が含まれている場合,抽出対象となる。ここで,「/NO/」という表記は任意の数字を表すとする。また,「−」はフォーマットを定めないことを表すとする。この結果,505の条件により「2.テレビを見る(301)」が抽出対象となる。同様に,506の条件では「2.1 テレビをつける(303)」等が,507の条件では,「(1)リモコンのボタンを押す(304)」等が抽出対象となる。
また,図4における項目除外用キーワード402は,フォーマット情報401で抽出された項目中で,例外的に除外すべき項目に含まれるキーワードを記述する。図6に,項目除外用キーワード402に記述されるキーワードの一例を示す。図6に示す例の場合,「はじめに(601)」や「付録(602)」といったキーワードが項目中に含まれている場合は,フォーマット情報401に記述されている条件に該当する場合でも抽出対象としない。
図7に,表現解析ルール109の構成の一例を示す。表現解析ルール109は,操作内容抽出ルール701,条件抽出ルール702,操作種類判定ルール703,操作対象抽出ルール704,選択肢検出ルール705から構成される。
図8に操作内容抽出ルール701のフォーマットの一例を示す。操作内容抽出ルール701は,操作対象関連文書から抽出された項目から「押す」や「入力する」等の,どのような操作であるかを表す表現(操作内容)を検出するためのルールである。図8において801で示される欄には,操作対象関連文書から抽出された項目中に現れる操作内容を表す表現のパターンが記述される。また,802の欄には操作内容の抽出方法が記述される。例えば803に示すパターンにおいて,「*」は任意の表現が記述されることを示し,「(動詞)」と言う記述により,その部分に動詞である何らかの単語が記述されることを表す。これにより,803のパターンでは文末が動詞で終了している場合に,操作内容が含まれると判断されることになる。また,803の操作内容の記述では,803のパターンによって検出された動詞を操作内容として検出することを意味している。よって,操作対象関連文書から抽出された項目が,
「2.テレビを見る」
である場合,動詞である「見る」が操作内容として検出されることになる。図8における804のパターンでは,同様にして,文末が「(動詞)+機能」という表現,例えば,「見る機能」の場合に,動詞「見る」が操作内容として検出される。また,805,806では,「録画」や「再生」等のサ変名詞が対象となっており,805の場合は「予約して録画」,806の場合は「録画機能」というような表現の場合,操作内容が含まれると判断される。さらに,805および806では,右側の欄の記述に従い,「録画する」が操作内容として検出されることになる。図8に示した操作内容抽出ルールでは,具体的な表現と品詞をパターンに含めているが,さらに活用形の種類等を含めるようにしても良い。
「2.テレビを見る」
である場合,動詞である「見る」が操作内容として検出されることになる。図8における804のパターンでは,同様にして,文末が「(動詞)+機能」という表現,例えば,「見る機能」の場合に,動詞「見る」が操作内容として検出される。また,805,806では,「録画」や「再生」等のサ変名詞が対象となっており,805の場合は「予約して録画」,806の場合は「録画機能」というような表現の場合,操作内容が含まれると判断される。さらに,805および806では,右側の欄の記述に従い,「録画する」が操作内容として検出されることになる。図8に示した操作内容抽出ルールでは,具体的な表現と品詞をパターンに含めているが,さらに活用形の種類等を含めるようにしても良い。
図9に条件抽出ルール702のフォーマットの一例を示す。条件抽出ルールは,操作対象関連文書から抽出された項目から操作を実行する条件を表す箇所を検出するためのルールである。また,類似のフォーマットで記載される場合が多いため,操作手順を表す項目から,ユーザが要求として自然言語対話システムに依頼する内容(ユーザ要求)に対応する箇所の抽出を行うためのルールも含む。図9に示すルールでは,開始キーワード901と終了キーワード902で挟まれる箇所を条件として検出すると想定している。キーワードが「−」の場合は,該当するキーワードが存在しないことを示す。また,903には条件を表す部分に該当するか,ユーザ要求に対応する部分かを表す情報が記述される。図9において,「条件」は前者,「ユーザ要求」は後者に対応する。各キーワードには,図8に示す操作内容抽出ルールと同様に,品詞と特定の語との組み合わせをパターンとして記述することができる。例えば,操作対象関連文書から抽出された項目が
「音声を切り替える[BSの場合]」
である場合,904に示すルールにより「BSの場合」の部分が条件を表す箇所として検出される。また,操作対象関連文書から抽出された項目が
「地上波の場合は,[主音声/副音声/主副音声]ボタンを押す」
の場合,「地上波の場合は」の部分が905に示すルール「(名詞)+の場合は」に適合し,「地上波」の部分が条件を表す箇所として検出されることになる。ここで,条件を表す箇所として抽出される部分は,ルールに適合した箇所の内,開始キーワードおよび終了キーワードにおける特定のキーワード以外の部分とする。すなわち,前記の例ではルール中の「(品詞)」に適合する「地上波」を抽出対象とする。また,抽出する箇所は,開始キーワードと終了キーワードを含めて検出するようにしても良い。
「音声を切り替える[BSの場合]」
である場合,904に示すルールにより「BSの場合」の部分が条件を表す箇所として検出される。また,操作対象関連文書から抽出された項目が
「地上波の場合は,[主音声/副音声/主副音声]ボタンを押す」
の場合,「地上波の場合は」の部分が905に示すルール「(名詞)+の場合は」に適合し,「地上波」の部分が条件を表す箇所として検出されることになる。ここで,条件を表す箇所として抽出される部分は,ルールに適合した箇所の内,開始キーワードおよび終了キーワードにおける特定のキーワード以外の部分とする。すなわち,前記の例ではルール中の「(品詞)」に適合する「地上波」を抽出対象とする。また,抽出する箇所は,開始キーワードと終了キーワードを含めて検出するようにしても良い。
図10に操作種類判定ルール703のフォーマットの一例を示す。操作種類判定ルール703は,操作対象関連文書から抽出された項目から検出された操作内容の種類を判定するためのルールであり,操作内容を「自動実行」または「選択肢」のいずれかに分類する。ここで,「自動実行」はユーザからの要求があった場合に無条件に実行可能な操作であることを表し,特定のボタンを押す操作等がこれに当たる。「選択肢」は,複数の選択肢からユーザが何れかを選択した後,あるいは文字列や記号列等の何らかの入力をユーザが行った後でなければ実行できない操作であることを表す。図10において,1001で示す欄には操作内容を表すキーワードが,1002にはそれぞれのキーワードに対する種類が記述される。1003,1004,1005に示すルールには「自動実行」に分類される操作内容が,1006,1007,1008に示すルールには「選択肢」に分類される操作内容が記述されている。
図11に操作対象抽出ルール704のフォーマットの一例を示す。操作対象抽出ルール704は,操作対象関連文書から抽出された項目からボタンやアイコン等の操作対象を表す箇所を検出するためのルールである。図11に示すルールは,図9に示す条件抽出ルールと同様に,開始キーワード1101と終了キーワード1102に挟まれる箇所を操作対象として検出するルールとなっている。例えば,操作対象関連文書から抽出された項目が,
「BSまたはCSの場合は,[音声]ボタンを押す」
である場合は,図11に示すルール1103,1104,1105,1106の中から1104が適用され,「音声」あるいは「[音声]ボタン」が操作対象として検出されることになる。
「BSまたはCSの場合は,[音声]ボタンを押す」
である場合は,図11に示すルール1103,1104,1105,1106の中から1104が適用され,「音声」あるいは「[音声]ボタン」が操作対象として検出されることになる。
図12に選択肢検出ルール705のフォーマットの一例を示す。選択肢検出ルール705は,操作対象が複数存在する場合にそれらを選択肢と見なして全ての選択肢を操作対象関連文書から抽出された項目から検出するためのルールである。図12におけるルールでは,操作対象関連文書から抽出された項目中に操作対象が複数存在する場合の表現のパターンが記述される。また,図12において,($1)や($2),($n)という記述は,その部分に何らかの操作対象が記述されていることを示しており,数字は含まれる操作対象につけられた通し番号である。また,($1)や($2)等に該当する部分が選択肢となる操作対象として検出される。例えば,操作対象関連文書から抽出された項目が,
「 [地上]ボタン,[BS]ボタン,[CS]ボタンのどれかを押す」
である場合,図12に示すルール1201,1202,1203の中の1201が適用され,「[地上]ボタン」,「[BS]ボタン」,「[CS]ボタン」が選択してとして検出されることになる。
「 [地上]ボタン,[BS]ボタン,[CS]ボタンのどれかを押す」
である場合,図12に示すルール1201,1202,1203の中の1201が適用され,「[地上]ボタン」,「[BS]ボタン」,「[CS]ボタン」が選択してとして検出されることになる。
図13に対話シナリオ生成ルール111のフォーマットを示す。図13において,1301には対話シナリオ生成ルール中に記述されるルールの種類を表す文字列や記号を記述する。図13において想定しているルールの種類は「応答文」,「対話ステップ」,「文法生成」の3種類である。「応答文」は自然言語対話システムからユーザへの質問や情報提示等を表すメッセージとなる文を生成する際に必要となるルールを表す。「対話ステップ」は,後述する対話シナリオに含まれる対話ステップを修正・追加するために必要となるルールである。また,「文法」はユーザから自然言語対話システムへの発話を自然言語対話システム内の音声認識機能により認識する際に必要となる音声認識用文法を生成する際に必要となるルールである。図13の1302にはそれぞれのルールの詳細が記述される。1303,1304および1305には種類が「応答文」であるルールが記述されている。1306,1307および1308には種類が「対話ステップ」であるルールが記述されている。1309,1310,1311および1312には種類が「文法」であるルールが記述されている。図13では,説明を容易にするために,ルールを日本語文により記述しているが,後述する各種情報を条件とする記述や,良く知られた形態素解析技術や文法解析技術の結果得られる情報,また,単純な文字列変換に対応した記述のみに留めているため,それらを計算機が理解可能な形式のルールとして記述することや,計算機が実行可能なプログラムとして記載することは容易に行うことができる。図13に記載されているルールがどのように使用されるかは,後述する。
図14に対話シナリオ103のフォーマットを示す。図14で示される対話シナリオは,「テレビをつける」や「音量を調整する」等のユーザ要求毎に作成され,その中には,それぞれのユーザ要求に対応する操作を実行するために必要なユーザとの対話に関する情報が格納される。図14において,対話名1401は,それぞれの対話シナリオに割りあてられる固有の識別子であり,任意の文字列や記号列,数字等を利用することができる。対話名1401は,図1における自然言語対話システム104中で,対話シナリオ103を管理するために利用される。実行判定式1402は,ユーザ要求によって対話シナリオが選択された場合に,選択された対話を実行するかどうかを判定するための条件式である。機器やコンピュータプログラムによって提供される機能やサービスは,特定の状況でのみ実行可能な場合があるため,対話の開始前に実行可否を判定することはユーザビリティ向上のために望ましい。実行判定式1402はこれを実現するための情報であり,自然言語対話システムや操作対象内で使用される変数の値に関する条件を記述することができる。記述するフォーマットとしては,自然言語対話システムや対象機器で使用される変数や変数の参照方法に従ったフォーマットを使用すれば良い。例えば,自然言語対話システム内で「STATUS」という名称の変数が使用され,その値が「true」である場合に対話が実行可能であるとすると,実行判定式1402としては,
$STATUS == “true”
というような記述を使用することができる。ここで,「$STATUS」は「STATUS」という変数の値を参照することを示し,記号「==」は値が等しい場合に条件を満たすことを示すと想定している。
$STATUS == “true”
というような記述を使用することができる。ここで,「$STATUS」は「STATUS」という変数の値を参照することを示し,記号「==」は値が等しい場合に条件を満たすことを示すと想定している。
図14における音声認識用文法名1403は,自然言語対話システム104を構成する音声認識機能で使用される音声認識用文法が格納されたファイルの名称あるいは格納場所を指し示す名称を表す文字列が格納される。音声認識用文法には,ユーザが自然言語対話システムに対して要求を行う場合にユーザが自然言語対話システムに対して発話する内容に関する情報が格納される。音声認識用文法も,文書から抽出される情報に基づいて生成される。図14における対話ステップ数1404は,対話シナリオを構成する対話ステップの数を示す数値である。ここで対話ステップは,ユーザと自然言語対話システムとのやり取りの基本単位と定義し,1405から1406に,具体的な対話ステップの内容が記述される。
図15に対話ステップのフォーマットを示す。対話ステップは,自然言語対話システムからユーザへの質問や確認,情報提示等を行うための応答文,ユーザから自然言語対話システムに入力される情報(音声認識機能がユーザの発話を認識した結果中において,ユーザが発話した内容が格納される変数の名称)を表す入力変数名,ユーザからの情報に基づいて機器やコンピュータプログラムを操作するためのコマンドを基本要素とする。また,状況に基づいて,実行可能な対話ステップと実行不可能な対話ステップが存在するため,実行可否の判定を行うための実行判定式も含まれる。図15において,1501には実行判定式が記述される。実行判定式のフォーマットは,図14における実行判定式1402のフォーマットにおいて説明したものと同様のフォーマットを使用することができる。1502は,対話ステップ中に記述されている応答文,入力変数名,コマンドのいずれを対話ステップ中で利用するかを表す対話ステップ種類である。対話ステップ種類としては,「オペレーション」,「スロット」,「確認」,「ガイダンス」の4種類を想定する。対話ステップ種類が「オペレーション」の場合,応答文とコマンドが使用される。「スロット」の場合は応答文,入力変数名,コマンドが使用される。「確認」の場合は応答文とコマンドが使用される。「ガイダンス」の場合は,応答文のみが使用される。
図15において,応答文1503には応答文を表す文字列を記述する。また,自然言語対話システムや操作対象で使用される変数の値を参照する応答文を記述することもできる。例えば,
「$CHANNELチャンネルでよろしいですか?」
という応答文を使用することができる。ここで,「CHANNEL」は,テレビのチャンネル番号を格納する変数とし,「$CHANNEL」という表記により変数CHANNELの内容を参照することを表し,CHANNELの値が「1」であるとすると,前記の例によりユーザに提示される応答文は,
「1チャンネルでよろしいですか?」
となる。また,図15における入力変数名1504は,ユーザから自然言語対話システムに情報を入力した際,ユーザが入力した情報が格納される変数の名称を表す文字列である。この場合,音声認識機能等の入力手段から得られるユーザからの情報を変数に代入する必要があるが,パーソナルコンピュータ等において一般的に用いられている音声認識機能では,ユーザが入力した音声の認識結果中に含まれる情報を該当する変数名とその値という形で出力することが容易に実現できるため,その機能を利用すれば良い。さらに,図15における1505には,操作対象を操作するためのコマンドを表す文字列が記述される。コマンドのフォーマットとしては操作対象が直接解釈可能な形式を利用することになる。また,応答文で説明したフォーマットと同様に,自然言語対話システムや操作対象で使用される変数の値への参照を含むコマンドを記述するようにすることもできる。
「$CHANNELチャンネルでよろしいですか?」
という応答文を使用することができる。ここで,「CHANNEL」は,テレビのチャンネル番号を格納する変数とし,「$CHANNEL」という表記により変数CHANNELの内容を参照することを表し,CHANNELの値が「1」であるとすると,前記の例によりユーザに提示される応答文は,
「1チャンネルでよろしいですか?」
となる。また,図15における入力変数名1504は,ユーザから自然言語対話システムに情報を入力した際,ユーザが入力した情報が格納される変数の名称を表す文字列である。この場合,音声認識機能等の入力手段から得られるユーザからの情報を変数に代入する必要があるが,パーソナルコンピュータ等において一般的に用いられている音声認識機能では,ユーザが入力した音声の認識結果中に含まれる情報を該当する変数名とその値という形で出力することが容易に実現できるため,その機能を利用すれば良い。さらに,図15における1505には,操作対象を操作するためのコマンドを表す文字列が記述される。コマンドのフォーマットとしては操作対象が直接解釈可能な形式を利用することになる。また,応答文で説明したフォーマットと同様に,自然言語対話システムや操作対象で使用される変数の値への参照を含むコマンドを記述するようにすることもできる。
図16および図17を用いて,文書項目抽出部106で行われる処理を説明する。文書項目抽出部106は,文書構造解析ルール107に基づいて,操作対象関連文書102を解析し,対話シナリオの生成に必要な項目を抽出する。ここでの説明では,操作対象関連文書102として図3に示す例を,文書構造解析ルール107として図5および図6に示す例を用いる。図16は,文書項目抽出部106で行われる処理の流れを表した図である。図16のステップ1601において,操作対象関連文書102から一行を読み込む。図3に示す操作対象関連文書の場合,最初に,
「2.テレビを見る(301)」
が読み込まれる。ステップ1602において,ステップ1601における行の読み込みが成功したかどうかの判定を行い,成功した場合,すなわち,操作対象関連文書中に読み込み可能な行が残っていた場合は,ステップ1603に進む。ステップ1601において行の読み込みに失敗した場合は,操作対象関連文書中の全ての行に対して処理を実行したと見なして終了する。ステップ1603では,文章構造解析ルール中のフォーマット情報に基づいて,ステップ1601で読み込んだ行の階層番号と種類を判定する。例えば,図3における「2.テレビを見る(301)」の場合,図5に示すフォーマット情報を適用すると,505に示すルールにより,階層番号は「1」,種類は「見出し」と判定されることになる。また,フォーマット情報により該当する階層番号および種類が存在しなかった行については,対象外と判定される。ステップ1604では,ステップ1603において対象外と判定された場合,および,該当する階層番号および種類が存在したが項目除外用キーワードが含まれていた場合は,その行に対する処理を中断し,ステップ1601に戻り,次の行に対する処理に移る。そうでない場合は,ステップ1605に進む。例えば「2.テレビを見る(301)」の場合は,該当する階層番号および種類が存在し,図6に示す項目除外用キーワードが含まれないため,ステップ1605に進む。ステップ1605では,行に句点「。」あるいは「.」が含まれている場合,複数の行に分割する処理を行う。情報家電等の機器やコンピュータプログラムの操作マニュアル等では,特に,操作手順の記述において,複数の文が一行中に含まれている場合が見られる。例えば,図3に示す例において,316および322に示す操作手順は,別々の手順として記載されているが,
「地上波の場合は,[主音声/副音声/主副音声]ボタンを押す。BSまたはCSの場合は,[音声]ボタンを押す。」
というような記述が行われる場合もある。ステップ1605では,前記の例に示すような行を複数の文に分割する。この処理は,行中の句点「。」あるいは「.」を検索し,句点「。」あるいは「.」の箇所で行を分割することにより容易に行うことができる。分割後の各文に対応する階層番号および種類は,元の行に対応する階層番号および種類と同様となる。さらにステップ1606では,ステップ1605の処理を行った後の行とそれに対する階層番号および種類を抽出項目分析部108で使用するための情報として図2の記憶部204等に一時的に記憶領域を確保し,格納する。あるいは,ファイルとして格納しても良い。
「2.テレビを見る(301)」
が読み込まれる。ステップ1602において,ステップ1601における行の読み込みが成功したかどうかの判定を行い,成功した場合,すなわち,操作対象関連文書中に読み込み可能な行が残っていた場合は,ステップ1603に進む。ステップ1601において行の読み込みに失敗した場合は,操作対象関連文書中の全ての行に対して処理を実行したと見なして終了する。ステップ1603では,文章構造解析ルール中のフォーマット情報に基づいて,ステップ1601で読み込んだ行の階層番号と種類を判定する。例えば,図3における「2.テレビを見る(301)」の場合,図5に示すフォーマット情報を適用すると,505に示すルールにより,階層番号は「1」,種類は「見出し」と判定されることになる。また,フォーマット情報により該当する階層番号および種類が存在しなかった行については,対象外と判定される。ステップ1604では,ステップ1603において対象外と判定された場合,および,該当する階層番号および種類が存在したが項目除外用キーワードが含まれていた場合は,その行に対する処理を中断し,ステップ1601に戻り,次の行に対する処理に移る。そうでない場合は,ステップ1605に進む。例えば「2.テレビを見る(301)」の場合は,該当する階層番号および種類が存在し,図6に示す項目除外用キーワードが含まれないため,ステップ1605に進む。ステップ1605では,行に句点「。」あるいは「.」が含まれている場合,複数の行に分割する処理を行う。情報家電等の機器やコンピュータプログラムの操作マニュアル等では,特に,操作手順の記述において,複数の文が一行中に含まれている場合が見られる。例えば,図3に示す例において,316および322に示す操作手順は,別々の手順として記載されているが,
「地上波の場合は,[主音声/副音声/主副音声]ボタンを押す。BSまたはCSの場合は,[音声]ボタンを押す。」
というような記述が行われる場合もある。ステップ1605では,前記の例に示すような行を複数の文に分割する。この処理は,行中の句点「。」あるいは「.」を検索し,句点「。」あるいは「.」の箇所で行を分割することにより容易に行うことができる。分割後の各文に対応する階層番号および種類は,元の行に対応する階層番号および種類と同様となる。さらにステップ1606では,ステップ1605の処理を行った後の行とそれに対する階層番号および種類を抽出項目分析部108で使用するための情報として図2の記憶部204等に一時的に記憶領域を確保し,格納する。あるいは,ファイルとして格納しても良い。
図17に,図5に示すフォーマット情報および図6に示す項目除外用キーワードを用いて図3に示す操作対象関連情報から抽出した項目を示す。図17において,1701は階層番号を,1702は項目の種類を,1703は抽出した項目の内容を表す。また,図17における1704は図3における301に,1705は303に,1706は304に,1707は306に,1708は307に,1709は309に,1710は310に,1711は311に,1712は315に,1713は316に,1714は321に,それぞれ対応する。
図18に,抽出項目分析部108で行われる処理の流れを示す。抽出項目分析部108では,ステップ1801において,文書項目抽出部106で抽出された項目における「見出し」と分類された項目(以下,見出し)に対する分析処理を行い,その後,ステップ1802において,「手順」と分類された項目(以下,操作手順)に対する分析処理を行う。また,項目の分類として,「見出し」,「手順」以外の種類がある場合は,階層構造の順序関係に基づいて,適宜,それぞれの種類毎に分析処理を追加すれば良い。抽出項目分析部108で行われる処理により,図17に示すようなフォーマットの情報から,ユーザ要求や操作内容,操作対象,実行条件等に関する情報が抽出され,ユーザ要求毎に図19に示すようなフォーマットで格納される。格納方法としては,図2の記憶部204等に一時的に記憶領域を確保する方法や,あるいはファイルとして格納する方法を使用することができる。
図19において,ユーザ要求内容1901はユーザ要求の内容を表す文字列である。実行条件1902は,1901で示されるユーザ要求が実行される条件を表す文字列である。操作手順数1903には,1901で示されるユーザ要求を実行するための操作手順の数を表す数値が記述される。1904から1905には,具体的な操作手順の内容が記述される。
図20に,操作手順1904から1905に記述される情報のフォーマットを示す。図20において,実行条件2001は,操作手順を実行するための条件を表す文字列である。操作手順種類2002は操作手順の種類を表す記号あるいは文字列が記述される。操作手順の種類としては,特定のボタンを押す操作等,ユーザからの要求があった場合に無条件に実行可能な操作であることを表す「自動実行」と,複数の選択肢からユーザがいずれかを選択した後,あるいは文字列や記号列等の何らかの入力をユーザが行った後でなければ実行できない操作であることを表す「選択肢」のいずれかとする。操作内容2003には,操作の内容を表す文字列を記述する。操作対象2004は,ボタンやメニュー等の操作の対象を表す。選択肢数2005は,複数の操作対象からユーザがいずれかの操作対象を選択する操作である場合に,その選択肢の数を表す。選択肢2005から2006には,具体的な選択肢の内容を記述する。
図21に,見出しに対する分析処理の流れを示す。図21におけるステップ2101では,処理対象となる見出しが残っているかどうかをチェックする。残っていない場合は,処理を終了する。処理対象となる見出しが残っている場合は,ステップ2102において,見出しを一つ選択し,処理対象とする。ステップ2103では,条件抽出ルール702を適用して,対象とする見出しから実行条件を表す部分の抽出を行う。ステップ2104では,対象とする見出し中の実行条件を表す部分以外に対して操作内容抽出ルール701を適用する。操作内容抽出ルールを適用した結果,操作内容を表すパターンに適合した場合,ステップ2105に進み,対象とする見出しを新たなユーザ要求として,図19のフォーマットで表される情報の格納領域を作成し,情報を格納する。格納においては,対象とする見出しから抽出した実行条件を図19における1902として,対象とする見出しから実行条件を除いた部分をユーザ要求内容1901として格納する。それ以外の情報は,この段階では0あるいは空白とする。ステップ2104において,操作内容を表すパターンに適合しない場合は,対象外の見出しと見なし,ステップ2101に戻る。図17に示す例における項目に,図8に示す操作内容抽出ルールを適用した場合,見出し1704,1705,1710,1712は,図8における803に示すルールに適合するため,それぞれに対して図19に示すフォーマットの情報が作成され,格納される。
図22に,操作手順に対する分析処理の流れを示す。図22において,ステップ2201では処理対象となる操作手順が残っているかどうかをチェックする。残っていない場合は処理を終了する。処理対象となる操作手順が残っている場合は,ステップ2202において,操作手順を一つ選択し,処理対象とする。ステップ2203では,条件抽出ルール702を適用して,対象とする操作手順から実行条件を表す部分の抽出を行う。この際,対象とする操作手順が,すぐ上位にある見出しに対する最初の操作手順であり,且つ,同じ見出しに対する次の操作手順中に実行条件が含まれない場合は,抽出した実行条件をすぐ上位にある見出しから生成された図19で示されるフォーマットの情報における実行条件1902として格納する。例えば,図17における1713の操作手順からは,図9におけるルール905により,実行条件として「地上波」が検出される。さらに,次の操作手順である1714からも同様に実行条件として「BSまたはCS」が検出されるため,1713から抽出される実行条件「地上波」は,1713で示される操作手順の実行条件として格納される。一方,1714が無い場合は,実行条件「地上波」は,1713のすぐ上位にある見出し1712の実行条件として格納する。ステップ2204では,対象とする操作手順中の実行条件を表す部分以外に対して,再度,実行条件抽出ルールを適用し,ユーザ要求になり得る箇所を検索し,ユーザ要求になり得る箇所が存在する場合は,図19で示されるフォーマットの情報を格納する領域を新たに生成し,該当する箇所をユーザ要求として格納すると共に,対象とする操作手順中の残りの部分を新たに生成されたユーザ要求に対する操作手順として格納する。例えば,図17における1709の場合,「テレビを消す場合は」の部分は図9におけるルール907により,「ユーザ要求」と判定されるため,「テレビを消す」が新たなユーザ要求として生成され,残りの「もう一度[電源]ボタンを押す」の部分が「テレビを消す」の操作手順として格納される。また,新たに生成されるユーザ要求の階層番号は,元の操作手順のすぐ上位にある「ユーザ要求」より下位であることを示す値になるように設定する。例えば,図17の1709の場合,元の操作手順のすぐ上位にあるユーザ要求1705の階層番号は「2」であるため,それより1大きい値である「3」を「テレビを消す」の階層番号として登録すれば良い。ステップ2205では,対象とする操作手順中から条件となる箇所およびユーザ要求となる箇所を除いた部分に,複数の操作に関する記述が含まれている場合に,個々の操作に分割を行う。この処理は,処理対象から他の句を修飾していない動詞句を抽出し,動詞句がある箇所で処理対象を分割することにより容易に行うことができる。動詞句の抽出および他の句との修飾関係の解析は,良く知られた形態素解析プログラムや文法解析プログラムを用いれば,容易に実現することができる。また,ステップ2203において実行条件が抽出された場合は,分割されたそれぞれの操作に同じ実行条件を付加する。例えば,図17における1708の場合,「入力して」と「選ぶ」が動詞句として抽出される。それぞれ動詞句で1708を分割し,接続助詞を除く等の整形を行うことにより,
「希望のチャンネル番号を入力する」
「チャンネルを選ぶ」
の2種類の操作手順が得られることになる。表現の整形も,形態素解析プログラムや文法解析プログラムの結果から得られる単語の情報を用いることにより容易に行うことができる。また,分割の結果得られた操作手順中の最後の操作手順に対して操作種類判定ルール704を適用し,ルール中のキーワードが含まれているかどうかをチェックする。含まれている場合はステップ2206に進む。含まれていない場合は,図19で示されるフォーマットの情報を格納する領域を新たに生成し,分割の結果得られた操作手順の最後の操作手順を新たなユーザ要求として格納すると共に,後述の2206以降の処理により,残りの操作手順から抽出される情報を新たなユーザ要求に対応する操作手順として格納する。1708から抽出された前記の操作手順の場合,「チャンネルを選ぶ」は図10におけるルールに適合しないため,「チャンネルを選ぶ」がユーザ要求として登録され,「希望のチャンネル番号を入力する」から抽出される情報が「チャンネルを選ぶ」に対する操作手順として格納される。ステップ2206では,分割した結果得られた操作手順全てに対してステップ2207以降の処理が行われたかどうかを判定し,行われたと判定された場合はステップ2201に戻る。行われていないと判定された場合は,ステップ2207に進み,処理対象となる操作手順を一つ選択する。ステップ2208では,選択された操作手順に操作種類判定ルール704を適用し,操作手順の種類が「自動実行」あるいは「選択肢」に分類されるかどうかを判定する。いずれにも分類されない場合はステップ2206に戻る。いずれかに分類された場合は,ステップ2209において,対象となる操作手順から操作種類判定ルール704に適合したキーワードを除く。さらに,残りの部分から名詞を抽出すると共に,操作対象抽出ルール705および選択肢検出ルール706を適用することにより,ボタンやメニュー等の具体的な操作対象を操作手順中から抽出する。例えば,図17における1706では,図11に示す操作対象抽出ルールにより「[電源]ボタン」が操作対象として検出される。また,図17における1707では,「[地上]ボタン」,「[BS]ボタン」,「[CS]ボタン」が操作対象として検出され,さらに図12に示す選択肢検出ルールにより,これら全ての操作対象が選択肢と見なされる。ステップ2210では,対象とする操作手順のすぐ上位の見出しに対応するユーザ要求の操作手順として,以上の処理により得られた実行条件,操作手順の種類,操作対象,選択肢をそれぞれ図20における2001,2002,2004および2005から2006として格納する。また,対象とする操作手順の内容を図20における2003として格納する。この際,操作種類判定ルール704により「自動実行」と分類された操作手順において,選択肢が検出された場合や,操作対象抽出ルール705により操作対象として検出されなかった名詞が操作種類判定ルール704に該当するキーワードの直前に記述されている場合は,操作手順種類2002を「選択肢」に変更して格納を行う。例えば,操作手順が
「[地上]ボタン,[BS]ボタン,[CS]ボタンのどれかを選択する」
である場合,図10に示す操作種類判定ルールにより「自動実行」と判定されるが,図12に示す選択肢検出ルールにより選択肢も検出されるため,「選択肢」と分類する。また,
「番組名を選択する」
の場合も,図10に示す操作種類判定ルールにより「自動実行」と判定されるが,「番組名」という名詞は図11に示す操作対象抽出ルールには該当しないため,「選択肢」と分類する。
「希望のチャンネル番号を入力する」
「チャンネルを選ぶ」
の2種類の操作手順が得られることになる。表現の整形も,形態素解析プログラムや文法解析プログラムの結果から得られる単語の情報を用いることにより容易に行うことができる。また,分割の結果得られた操作手順中の最後の操作手順に対して操作種類判定ルール704を適用し,ルール中のキーワードが含まれているかどうかをチェックする。含まれている場合はステップ2206に進む。含まれていない場合は,図19で示されるフォーマットの情報を格納する領域を新たに生成し,分割の結果得られた操作手順の最後の操作手順を新たなユーザ要求として格納すると共に,後述の2206以降の処理により,残りの操作手順から抽出される情報を新たなユーザ要求に対応する操作手順として格納する。1708から抽出された前記の操作手順の場合,「チャンネルを選ぶ」は図10におけるルールに適合しないため,「チャンネルを選ぶ」がユーザ要求として登録され,「希望のチャンネル番号を入力する」から抽出される情報が「チャンネルを選ぶ」に対する操作手順として格納される。ステップ2206では,分割した結果得られた操作手順全てに対してステップ2207以降の処理が行われたかどうかを判定し,行われたと判定された場合はステップ2201に戻る。行われていないと判定された場合は,ステップ2207に進み,処理対象となる操作手順を一つ選択する。ステップ2208では,選択された操作手順に操作種類判定ルール704を適用し,操作手順の種類が「自動実行」あるいは「選択肢」に分類されるかどうかを判定する。いずれにも分類されない場合はステップ2206に戻る。いずれかに分類された場合は,ステップ2209において,対象となる操作手順から操作種類判定ルール704に適合したキーワードを除く。さらに,残りの部分から名詞を抽出すると共に,操作対象抽出ルール705および選択肢検出ルール706を適用することにより,ボタンやメニュー等の具体的な操作対象を操作手順中から抽出する。例えば,図17における1706では,図11に示す操作対象抽出ルールにより「[電源]ボタン」が操作対象として検出される。また,図17における1707では,「[地上]ボタン」,「[BS]ボタン」,「[CS]ボタン」が操作対象として検出され,さらに図12に示す選択肢検出ルールにより,これら全ての操作対象が選択肢と見なされる。ステップ2210では,対象とする操作手順のすぐ上位の見出しに対応するユーザ要求の操作手順として,以上の処理により得られた実行条件,操作手順の種類,操作対象,選択肢をそれぞれ図20における2001,2002,2004および2005から2006として格納する。また,対象とする操作手順の内容を図20における2003として格納する。この際,操作種類判定ルール704により「自動実行」と分類された操作手順において,選択肢が検出された場合や,操作対象抽出ルール705により操作対象として検出されなかった名詞が操作種類判定ルール704に該当するキーワードの直前に記述されている場合は,操作手順種類2002を「選択肢」に変更して格納を行う。例えば,操作手順が
「[地上]ボタン,[BS]ボタン,[CS]ボタンのどれかを選択する」
である場合,図10に示す操作種類判定ルールにより「自動実行」と判定されるが,図12に示す選択肢検出ルールにより選択肢も検出されるため,「選択肢」と分類する。また,
「番組名を選択する」
の場合も,図10に示す操作種類判定ルールにより「自動実行」と判定されるが,「番組名」という名詞は図11に示す操作対象抽出ルールには該当しないため,「選択肢」と分類する。
図23から図25に,図17における1705から1709に対して抽出項目分析部108で処理を行った結果の一例を示す。図23は,見出し1705を処理した結果格納されたユーザ要求であり,2301にユーザ要求内容である「テレビをつける」が記述されている。1705に実行条件となる箇所は含まれていないため,実行条件2302は空白を示す「−」が記述される。図17において,見出し1705に対する操作手順は1706から1709までの4つが存在しているが,1708は図22におけるステップ2205,また,1709は図22におけるステップ2204により,新たなユーザ要求として格納されるため,1706および1707に対応する操作手順のみが「テレビをつける」に対する操作手順として登録されるため,操作手順数2303は「2」となっている。2304には1706に対応する操作手順,2305には1707に対応する操作手順が記述される。図24に,1706に対応する操作手順に関する情報を示す。図17における1706には,条件となる箇所が含まれていないため,実行条件2401は空白を示す「−」が記述される。また,ステップ2208において「自動実行」と判定されることにより,操作手順種類2402には「自動実行」と記述される。操作手順内容2403には,1706の行の内容がそのまま記述される。操作対象2404には,ステップ2209で抽出された「[電源]ボタン」が格納される。また,1706では選択肢に該当する箇所は存在しないため,選択肢数2405は「0」となり,選択肢に関する情報は記述されない。図25は,1707に対応する操作手順に関する情報を表す。図17における1707にも,条件となる箇所が含まれていないため,実行条件2501は空白を示す「−」が記述される。また,ステップ2208においは「自動実行」と判定されるが,ステップ2209において選択肢が検出されるため,操作手順種類2502は「選択肢」と記述される。操作手順内容2503には,1707の行の内容がそのまま記述される。ステップ2209では選択肢のみが抽出されるため,操作対象2504には空白を示す「−」が記述される。ステップ2209において,選択肢として「[地上]ボタン」,「[BS]ボタン」および「[CS]ボタン」が検出されるため,選択肢数2505は「3」となり,それぞれの選択肢が2506,2507および2508に記述される。
図26に,対話シナリオ生成部110において行われる処理の流れ図を示す。対話シナリオ生成部110では,抽出項目分析部108の処理の結果,図19および図20で示されるフォーマットで格納された情報と対話シナリオ生成ルール111,および情報入出力部112により自然言語対話システムの開発者が入力した情報に基づいて,図14および図15で示されるフォーマットの対話シナリオを生成する。対話シナリオは,ユーザ要求毎,すなわち図19に示すフォーマットで格納される情報を単位として生成される。図26のステップ2601では,全てのユーザ要求に対して対話シナリオの生成を行ったかどうかをチェックする。全てのユーザ要求に対して処理を行った場合は,終了する。そうでない場合は,ステップ2602において,処理の対象とするユーザ要求を一つ選択する。ステップ2603では,新たな対話シナリオを格納する領域を確保し,ユーザ要求内容1901から対話名1401を生成し,登録する。対話名としてはユーザ要求内容を表す文字列をそのまま使用することができる。あるいは,ユーザ要求内容に対応する任意の文字列や記号列,番号等を使用しても良い。ステップ2604では,実行条件1902が空白で無い場合,情報入出力部112により,実行条件の内容を自然言語対話システムの開発者に提示し,開発者から実行条件に対応し自然言語対話システムが解釈可能な判定式を取得し,それを実行判定式1402として登録する。あるいは,実行条件の内容が既知であれば,実行条件と実行判定式との対応表を用意し,それを参照することにより,自動的に実行条件から実行判定式への変換を行い,対話シナリオ中に登録するようにしても良い。ステップ2605では,対象としているユーザ要求における全ての操作手順に対して,ステップ2606およびステップ2607に示す処理を行ったかどうかをチェックし,行ったと判定された場合はステップ2608に進む。そうでない場合は,ステップ2606に進み,情報入出力部112により,操作手順に関する情報を自然言語対話システムの開発者に提示し,開発者から自然言語対話システムが解釈可能な実行判定式,入力変数名,コマンドおよび選択肢に関する補足情報を取得する。入力変数名については,対話シナリオ中で一意となる名称を自動的に生成し,登録することもできる。ステップ2606において開発者より取得した情報および対話シナリオ生成ルール111に基づいて,ステップ2607において操作手順を対話ステップに変換し対話シナリオ中に登録した後,ステップ2605に戻る。あるいは,操作手順に関する情報,すなわち実行条件や操作対象,選択肢が既知の場合,それらと,実行判定式,入力変数名およびコマンドとの対応表を用意し,それを参照することにより,自動的に操作手順に関する情報から実行判定式,入力変数名およびコマンドへの変換を行い,対話シナリオ中に登録するようにしても良い。
図27に,ステップ2604およびステップ2606で,自然言語対話システムの開発者から情報を取得するためのユーザインタフェースの一例を示す。ステップ2604およびステップ2606では,ユーザ要求における実行判定式の入力と操作手順に関する情報の入力を別々に行っているが,図27に示すユーザインタフェースでは,両者を合わせて行うことができるような形態となっている。また,図27では,ハッチングされた欄は,自然言語対話システムの開発者が修正することはできない情報であることを示す。図27において,2701に示す一覧は,抽出項目分析部108における処理の結果生成されたユーザ要求の一覧であり,各ユーザ要求におけるユーザ要求内容1901が一覧に表示されている。2701の一覧中のユーザ要求をマウス等により選択すると,一覧の右側に,選択したユーザ要求に関する詳細な情報が表示される。2702は,ユーザ要求に対する実行条件であり,操作対象関連文書中の該当する項目から抽出された実行条件が表示される。2703は,2702に示す実行条件に対して,自然言語対話システムの開発者が,自然言語対話システムが解釈可能な実行判定式を入力するための欄である。2704は,選択されたユーザ要求における操作手順の一覧である。一覧中には,操作手順における操作内容2003が表示される。2704の一覧中の操作内容をマウス等により選択すると,一覧の下に,選択した操作手順に関する詳細な情報が表示される。2705は,操作手順に対する実行条件であり,操作対象関連文書中の該当する項目から抽出された実行条件が表示される。2706は,2705に示す実行条件に対して,自然言語対話システムの開発者が,自然言語対話システムが解釈可能な実行判定式を入力するための欄である。2707は操作手順種類2002を,2708は操作対象2004の内容を示す。2708に表示される操作対象の内容は,自然言語対話システムの開発者が修正することもできる。2709は,操作手順に対して操作対象である機器やコンピュータプログラムで実行されるコマンドを自然言語対話システムの開発者が入力するための欄である。2710は,操作手順の種類が「選択肢」である場合に,音声認識機能がユーザの発話を認識した結果中において,ユーザが発話した内容が格納される変数の名称である入力変数名を自然言語対話システムの開発者が入力するための欄である。入力変数名としては,対話シナリオ中で一意となる任意の文字列を自動的に登録するようにしても良い。2711は,操作対象関連文書中の該当する項目から抽出された選択肢の一覧である。各選択肢の内容は,自然言語対話システムの開発者が修正することができる。2710および2711は,操作手順種類が「自動実行」である場合は必要ないため,「自動実行」の場合,表示し内容にすることもできる。さらに,図27のユーザインタフェースでは,ユーザ要求毎に登録する情報と,操作手順毎に登録する情報を一つの画面上で行うことができるようになっているが,別々の画面で行えるようにしても良い。また,図27のユーザインタフェースにおいて,必要の無いユーザ要求や操作手順を削除することや,新たなユーザ要求や操作手順を追加できるようにしても良い。
図26のステップ2607で行われる処理の流れ図を図28に示す。図28において,ステップ2801では,操作手順種類が「選択肢」かどうかのチェックを行う。「選択肢」である場合はステップ2802に進み,そうでない場合はステップ2804に進む。ステップ2802では,対象としている操作手順に対応する対話ステップ種類1502を「スロット」に設定する。ステップ2803では,情報入出力部112により,自然言語対話システムの開発者から取得した実行判定式,入力変数名,コマンドを図15に示す対話ステップの実行判定式1501,入力変数名1504およびコマンド1505に登録する。ステップ2803では,自然言語対話システムの開発者から取得した選択肢の補足情報を用いて選択肢の修正・追加も行い,後述のステップ2608の処理において利用する。ステップ2804では,対象としている操作手順に対応する対話ステップ種類1502を「オペレーション」に設定する。ステップ2805では,情報入出力部112により,自然言語対話システムの開発者から取得した実行判定式およびコマンドを図15に示す対話ステップの実行判定式1501およびコマンド1505に登録する。ステップ2806では,対話シナリオ生成ルール111中に記載されている「応答文」という種類のルールを対象とする操作手順の操作内容2003に適用することにより,応答文1503を生成する。例えば,図24に示す操作手順に図13に示す対話シナリオ生成ルールを適用した場合,図23に示すユーザ要求の最初の操作手順であるため,1303に示すルールが適用され,ユーザ要求内容である「テレビをつける(2301)」を変更した「テレビをつけます」が図24に示す操作手順に対する応答文として追加される。また,図25に示す操作手順の場合は,1304に示されるルールが適用される。ここでルール中の「(選択肢の項目)」には全ての選択肢が列挙されることを表すとし,さらに2506から2508に記述されている選択肢に対して「[」と「]ボタン」を削除するように開発者により修正が行われたとすると,応答文は「地上,BS,CSのどれがよろしいですか?」となる。また,図13における1305に示されるルールが適用される場合は,操作手順に関する情報が図29に示すような内容である場合である。図29に1305に示されるルールを適用すると,操作対象2901を使用して,「チャンネル番号をお話し下さい」が応答文として生成される。以上の処理により,図23に示すユーザ要求は図30に示す対話シナリオに,図24および図25に示す操作手順はそれぞれ図31および32に示す対話ステップに変換される。この時点では,音声認識用文法名3001は記述されていない。また,コマンド3101および3202,変数名3201は自然言語対話システムの開発者によって入力されたものとする。また,「$VAL0001」という記述は,変数VAL0001の値を参照することを表すものとする。
図28のステップ2807では,対話シナリオ生成ルール111中に記載されている「対話ステップ」という種類のルールを対象とする操作手順から生成された対話ステップに適用することにより,対話ステップの内容の修正あるいは対話ステップの追加を行う。例えば,図32に示される対話ステップには1306に示されるルールが適用されることにより,図33に示される対話ステップへと修正が行われ,さらに図34および図35に示す対話ステップが図33に示される対話ステップの後に追加される。図33では,コマンド3301が削除され,図35の対話ステップ中のコマンド3501に移動されている。図34に示す対話ステップは種類が「確認」の対話ステップであり,入力変数の内容を確認する応答文をユーザに提示し,ユーザからの応答を取得する。図35の対話ステップはユーザからの入力変数である「YESNO(3402)」の値が「yes」である場合に,コマンド3501を実行する。また,図13における1307に示されるルールは常に適用され,図36に示すような対話ステップが各対話シナリオの最後の対話ステップとして追加される。図36の3601に記述されている変数「RET」は,コマンドの実行結果を示す共通の変数を表すものとする。また,応答文をユーザに提示するのみであるため,対話ステップ種類3602は「ガイダンス」となっている。応答文はユーザ要求内容より生成する。例えば,「(ユーザ要求内容)+ことができません」というようなルールを適用することにより,3603に示す「テレビをつけることができません」という応答文を生成することができる。また,図17における1704から対話シナリオを生成した場合,1704に対応する操作手順が存在しないため,図13における1308に示すルールが適用される。この結果,例えば,図37に示すような対話ステップを生成する。この例における応答文は,階層が一つ下のユーザ要求の内容のみを列挙することにより生成されている。さらに,対象とするユーザ要求より階層が下位のユーザ要求の内容を全て列挙するようにしても良い。
図26におけるステップ2608では,対象となっているユーザ要求から生成された対話シナリオを実行するために必要となる音声認識用文法の生成を行う。図38に,ステップ2608で行われる処理の流れ図を示す。図38において,ステップ3801では,音声認識用文法を格納するためのファイルの名称である音声認識用文法名(図14における1403)を生成し,対話シナリオに登録する。音声認識用文法名としては,他の対話シナリオにおける音声認識用文法名と同一でなければ,任意の文字列あるいは記号列を使用することができる。例えば,対話名(図14における1401)に任意の拡張子を追加した名称を利用すれば良い。ステップ3802では,対話シナリオに記述される対話を開始するためのユーザからの発話を受け付けるための音声認識用文法を生成する。この文法は,対話シナリオの元になったユーザ要求中のユーザ要求内容(図19における1901)に対して,対話シナリオ生成ルール中の「文法」という種類のルールを適用することにより生成する。例えば,図17の1705から生成されるユーザ要求に対するユーザ要求内容は「テレビをつける」であるが,これに図13に示す対話シナリオ生成ルールを適用すると,まず,1309に示すルールが適用され,その結果,
「テレビをつける」
「テレビのスイッチを入れる」
の2つの文が生成される。さらに,1312に示すルールが適用され,
「テレビをつけて下さい」
「テレビをつけたい」
「テレビをつけて」
「テレビのスイッチを入れて下さい」
「テレビのスイッチを入れたい」
「テレビのスイッチを入れて」
という6つの文が生成される。ここで,1312に示すルール中の,「動詞(基本形)」という記述は,その箇所に基本形の動詞が存在する,ということを表すものとする。「動詞(連用形)」の場合は,同様に,連用形の動詞が存在することを示す。これらの文をよく知られた形態素解析プログラム等を使用して単語単位に区切る等の処理を行った後,音声認識用文法に変換する。音声認識用文法のフォーマットは,使用する音声認識機能が解釈可能な形式を使用すればよい。生成した音声認識用文法は,ステップ3801で生成した音声認識用文法名で示されるファイルに格納する。ステップ3803では,種類が「スロット」である対話ステップにおいて,選択肢を入力するためのユーザの発話を認識する文法を生成する。この文法は,対話ステップの元になった操作手順に記述されている選択肢の情報に自然言語対話システムの開発者が修正・追加を行った後の情報を用いて生成する。例えば,図25に示す操作手順に含まれる選択肢に対して「[]と「」ボタン」を削除するように開発者により修正が行われたとすると,ステップ3803で対象となる選択肢の内容は,「地上」,「BS」,「CS」となる。選択肢に対しては,1311に示すルールが適用されるため,
「地上」
「地上です」
「地上にして」
「BS」
「BSです」
「BSにして」
「CS」
「CSです」
「CSにして」
という9つの文が生成される。ここで,1311に示すルール中の「(選択肢)」という記述は,その箇所を選択肢の各内容で置き換えることを表すものとする。ステップ3802の場合と同様に,これらの文をよく知られた形態素解析プログラム等を使用して,単語単位に区切る等の処理を行った後,音声認識用文法に変換する。また,選択肢に対する音声認識用文法では,ユーザが発話した選択肢の内容を入力変数名1504に対応付けた結果を音声認識機能が自然言語対話システムに通知できるようにする必要がある。パーソナルコンピュータ等において一般的に用いられている音声認識機能では,ユーザが発話した音声の認識結果中に含まれる情報を該当する変数名とその値という形で出力することが容易に実現できるため,その機能を利用可能とするようなフォーマットで文法を生成すれば良い。以上の説明では,ユーザ要求から生成される音声認識用文法と操作手順から生成した音声認識用文法を一つの記憶領域あるいはファイルに格納するようにしているが,対話ステップ毎に使用する音声認識用文法を切り換えることが可能な自然言語対話システムを使用する場合,ユーザ要求および各操作手順から生成される音声認識用文法を別々の記憶領域あるいはファイルに格納するようにしても良い。また,以上説明したユーザ要求および操作手順から生成される音声認識用文法は,ユーザが要求する対話を起動した後,必要な選択肢をユーザに対して順に入力を促すタイプの対話を想定しているが,自然言語対話システムの中には,起動する対話とその中で必要な選択肢の情報を含むユーザの発話を認識し,対象となる対話の起動と選択肢の設定(すなわち入力変数への代入)を同時に行うことができる自然言語対話システムも存在する。このような自然言語対話システムで利用可能な音声認識用文法は,対話シナリオ生成ルール中に,ユーザ要求内容と選択肢の内容を含む文を生成するルールを記述することにより,容易に生成することができる。また,対話シナリオを開始するための音声認識用文法に,ユーザが要求可能な機能に関して問合せを行うため文法を追加するようにしても良い。例えば,図37に示す対話ステップが追加された対話シナリオを起動する音声認識用文法に,「テレビを見るための機能には何がありますか?」というような文に対する文法を生成し,追加することができる。この文法の生成は,前記で説明した対話シナリオ生成ルールと同様に,ユーザ要求内容等の文末を変更するルールを用意することにより,容易に実現することができる。これにより,機器やコンピュータプログラムの操作をユーザが依頼するだけでなく,機器やコンピュータプログラムが実行可能な機能をユーザが問合せを行うことが可能となる。
「テレビをつける」
「テレビのスイッチを入れる」
の2つの文が生成される。さらに,1312に示すルールが適用され,
「テレビをつけて下さい」
「テレビをつけたい」
「テレビをつけて」
「テレビのスイッチを入れて下さい」
「テレビのスイッチを入れたい」
「テレビのスイッチを入れて」
という6つの文が生成される。ここで,1312に示すルール中の,「動詞(基本形)」という記述は,その箇所に基本形の動詞が存在する,ということを表すものとする。「動詞(連用形)」の場合は,同様に,連用形の動詞が存在することを示す。これらの文をよく知られた形態素解析プログラム等を使用して単語単位に区切る等の処理を行った後,音声認識用文法に変換する。音声認識用文法のフォーマットは,使用する音声認識機能が解釈可能な形式を使用すればよい。生成した音声認識用文法は,ステップ3801で生成した音声認識用文法名で示されるファイルに格納する。ステップ3803では,種類が「スロット」である対話ステップにおいて,選択肢を入力するためのユーザの発話を認識する文法を生成する。この文法は,対話ステップの元になった操作手順に記述されている選択肢の情報に自然言語対話システムの開発者が修正・追加を行った後の情報を用いて生成する。例えば,図25に示す操作手順に含まれる選択肢に対して「[]と「」ボタン」を削除するように開発者により修正が行われたとすると,ステップ3803で対象となる選択肢の内容は,「地上」,「BS」,「CS」となる。選択肢に対しては,1311に示すルールが適用されるため,
「地上」
「地上です」
「地上にして」
「BS」
「BSです」
「BSにして」
「CS」
「CSです」
「CSにして」
という9つの文が生成される。ここで,1311に示すルール中の「(選択肢)」という記述は,その箇所を選択肢の各内容で置き換えることを表すものとする。ステップ3802の場合と同様に,これらの文をよく知られた形態素解析プログラム等を使用して,単語単位に区切る等の処理を行った後,音声認識用文法に変換する。また,選択肢に対する音声認識用文法では,ユーザが発話した選択肢の内容を入力変数名1504に対応付けた結果を音声認識機能が自然言語対話システムに通知できるようにする必要がある。パーソナルコンピュータ等において一般的に用いられている音声認識機能では,ユーザが発話した音声の認識結果中に含まれる情報を該当する変数名とその値という形で出力することが容易に実現できるため,その機能を利用可能とするようなフォーマットで文法を生成すれば良い。以上の説明では,ユーザ要求から生成される音声認識用文法と操作手順から生成した音声認識用文法を一つの記憶領域あるいはファイルに格納するようにしているが,対話ステップ毎に使用する音声認識用文法を切り換えることが可能な自然言語対話システムを使用する場合,ユーザ要求および各操作手順から生成される音声認識用文法を別々の記憶領域あるいはファイルに格納するようにしても良い。また,以上説明したユーザ要求および操作手順から生成される音声認識用文法は,ユーザが要求する対話を起動した後,必要な選択肢をユーザに対して順に入力を促すタイプの対話を想定しているが,自然言語対話システムの中には,起動する対話とその中で必要な選択肢の情報を含むユーザの発話を認識し,対象となる対話の起動と選択肢の設定(すなわち入力変数への代入)を同時に行うことができる自然言語対話システムも存在する。このような自然言語対話システムで利用可能な音声認識用文法は,対話シナリオ生成ルール中に,ユーザ要求内容と選択肢の内容を含む文を生成するルールを記述することにより,容易に生成することができる。また,対話シナリオを開始するための音声認識用文法に,ユーザが要求可能な機能に関して問合せを行うため文法を追加するようにしても良い。例えば,図37に示す対話ステップが追加された対話シナリオを起動する音声認識用文法に,「テレビを見るための機能には何がありますか?」というような文に対する文法を生成し,追加することができる。この文法の生成は,前記で説明した対話シナリオ生成ルールと同様に,ユーザ要求内容等の文末を変更するルールを用意することにより,容易に実現することができる。これにより,機器やコンピュータプログラムの操作をユーザが依頼するだけでなく,機器やコンピュータプログラムが実行可能な機能をユーザが問合せを行うことが可能となる。
以上述べた処理を行うことにより,情報家電等の機器やコンピュータプログラムの操作マニュアルや取り扱い説明書等の操作対象関連文書から,自然言語対話システムが利用可能な対話シナリオへの変換を行うことが可能となる。
第二の実施例を図39〜図41を用いて説明する。
実施例1では,ユーザが自然言語対話システムに音声等により要求を行い,その内容に基づいて自然言語対話システムが操作対象である情報家電等の機器やコンピュータプログラムを操作するために必要な対話シナリオの生成を行う場合の実施例について説明したが,ユーザが自然言語対話システムに機器やコンピュータプログラムの機能を使用する方法を問合せ,自然言語対話システムがユーザに操作方法の指示を順に指示する形態での対話シナリオを生成するようにすることもできる。
これを行うためには,例えば,実施例1で説明した例において,図39に示すような対話シナリオ生成ルールを用意する。図39に示す対話シナリオ生成ルールを図23,図24および図25に示すユーザ要求および操作手順に適用して対話シナリオを生成する場合,まず3901に示すルールが適用されることにより,図24に示す操作手順に対応する操作ステップの応答文には,
「テレビをつける方法を説明します」
という文が追加されることになる。次に,3902に示すルールが適用されることにより,図24および図25に示す操作内容2403および2503から,それぞれ次のような応答文が生成される。
「リモコンの[電源]ボタンを押して下さい」
「[地上]ボタン,[BS]ボタン,[CS]ボタンのどれかを押して下さい」
3902に示すルールでは,操作内容から応答文を生成しているが,操作内容から抽出した操作対象や選択肢を用いて,独自の表現による応答文を生成するルールを用意し,応答文を生成することもできる。また,3903および3904に示すルールが適用されることにより,図24に示す操作手順から図40および図41に示す対話ステップが生成される。
「テレビをつける方法を説明します」
という文が追加されることになる。次に,3902に示すルールが適用されることにより,図24および図25に示す操作内容2403および2503から,それぞれ次のような応答文が生成される。
「リモコンの[電源]ボタンを押して下さい」
「[地上]ボタン,[BS]ボタン,[CS]ボタンのどれかを押して下さい」
3902に示すルールでは,操作内容から応答文を生成しているが,操作内容から抽出した操作対象や選択肢を用いて,独自の表現による応答文を生成するルールを用意し,応答文を生成することもできる。また,3903および3904に示すルールが適用されることにより,図24に示す操作手順から図40および図41に示す対話ステップが生成される。
図40において,対話ステップ種類4001は,3903に示すルールにより「ガイダンス」が登録される。同時にコマンド4003は空白となる。また,応答文4002は3901および3902が適用された内容となる。また,図41は,3904に示すルールが適用された結果生成される対話ステップであり,図40に示す対話ステップの直後に挿入される。図41に示す対話ステップの内容は,図40に示す対話ステップにより指示を受けたユーザが,指示を実行したかどうかを確認するためのものであり,「はい」,「次は?」等,直前の指示を完了したことを示す発話がユーザから入力された場合,次の対話ステップに進むことになる。ここで,変数YESNOは,自然言語対話システムからの確認に対するユーザの発話の認識結果が代入される変数の名称である。また,音声認識用文法は,3905に示すルールにより,ユーザ要求内容からのみ生成され,操作手順に関する情報から生成しない。図23に示すユーザ要求のユーザ要求内容に3905に示すルールを適用すると,
「テレビをつける方法を教えて下さい」
「テレビをつけるにはどうしたら良いですか?」
というような文が生成され,これらの文が音声認識用文法に変換される。あるいは,操作対象や選択肢等に対するユーザからの質問文,例えば,
「[BS]ボタンはどこにありますか?」
等の質問文に対する音声認識用文法とそれらに対する対話シナリオも,必要な対話シナリオ生成ルールを用意することにより生成することができる。
「テレビをつける方法を教えて下さい」
「テレビをつけるにはどうしたら良いですか?」
というような文が生成され,これらの文が音声認識用文法に変換される。あるいは,操作対象や選択肢等に対するユーザからの質問文,例えば,
「[BS]ボタンはどこにありますか?」
等の質問文に対する音声認識用文法とそれらに対する対話シナリオも,必要な対話シナリオ生成ルールを用意することにより生成することができる。
以上により,機器やコンピュータプログラムの機能や操作方法の説明を行うユーザとの対話を実現するための対話シナリオも,機器やコンピュータプログラムの操作マニュアルや取り扱い説明書等の操作対象関連文書から生成することが可能となる。
第三の実施例を図42を用いて説明する。
実施例1および実施例2における対話シナリオ生成システムでは,対話シナリオ生成部は,抽出項目分析部108での処理結果,対話シナリオ生成ルール111および情報入出力部112より入力される自然言語対話システムの開発者からの情報に基づいて,対話シナリオ103を生成する。一方,操作対象となる機器やコンピュータプログラムの中には,実行可能なコマンドに関する情報や利用可能なパラメータ(操作手順における選択肢に該当する情報)を外部から取得可能な場合が存在する。このような操作対象を使用する場合,対話シナリオ生成の際に,操作対象から取得可能な情報も利用することができる。
図42に,第三の実施例による対話シナリオ生成システムの構成を示す概念ブロック図を示す。図42において,対話シナリオ生成システムの構成要素は,図1に示す実施例1の場合と同様である。図1と図42との差異は,対話シナリオ生成部110が操作対象105と接続されていることである。対話シナリオ生成部110は,操作対象105に対して実行可能なコマンドや利用可能なパラメータに関する情報の送付を要求し,取得された情報を用いて対話シナリオの生成を行う。操作対象105から取得された情報は,例えば,図26に示した流れ図のステップ2604において,自然言語対話システムの開発者に実行判定式の入力を要求する際,操作対象105から取得した実行可能なコマンドの一覧を候補として開発者に提示し,一覧から開発者が必要なコマンドを選択できるようにすることができる。また,ステップ2606において,自然言語対話システムの開発者に実行判定式やコマンド,選択肢の修正・追加情報の入力を要求する際,操作対象105から取得した実行可能なコマンドの一覧や利用可能なパラメータの一覧を候補として開発者に提示し,一覧から開発者が必要なコマンドやパラメータを選択できるようにすることができる。さらに,操作対象となる機器やコンピュータプログラムが実行可能なコマンドや利用可能なパラメータに関する情報は,図示されていないネットワーク等で接続された他のサーバやファイルシステムから取得するようにしても良い。
これにより,対話シナリオを生成するために必要となる開発者の作業を軽減し,効率的に対話シナリオの生成が行うことが可能となる。
以上,種々の実施例を用いて詳述してきた自然言語対話システムは,情報家電等の各種機器やコンピュータプログラムの操作性を向上させるためのインタフェースとして期待できる。本発明による対話シナリオ生成システムは,自然言語対話システムの利用範囲拡大を容易にすることができるため,ユーザインタフェースを有するさまざまな分野の製品への適用が可能である。
101…対話シナリオ生成システム,102…操作対象関連文書,103…対話シナリオ,104…自然言語対話システム,105…操作対象,106…文書項目抽出部,107…文書構造解析ルール,108…抽出項目分析部,109…表現解析ルール,110…対話シナリオ生成部,111…対話シナリオ生成ルール,112…情報入出力部。
Claims (17)
- 自然言語によってユーザと対話を行い,ユーザからの要求に基づいて操作対象となる機器やコンピュータプログラムの操作を代行する自然言語対話システムに必要となる対話シナリオを生成する対話シナリオ生成システムであって,
前記操作対象が有する機能や操作方法を自然言語により記述した操作対象関連文書を格納する文書格納部と,
前記操作対象関連文書の構造を解析するために必要となるルールである文書構造解析ルールを格納する文書構造解析ルール格納部と,
前記文書構造解析ルールに基づいて前記操作対象関連文書の構造を解析し,必要な項目を前記操作対象関連文書から選択する文書項目抽出部と,
選択された前記項目の内容から,ユーザとの対話において必要となる情報を抽出するためのルールである表現解析ルールを格納する表現解析ルール格納部と,
選択された前記項目を前記表現解析ルールに基づいて解析し,前記ユーザとの対話において必要となる情報を抽出する抽出項目分析部と,
前記対話シナリオを生成するためのルールである対話シナリオ生成ルールを格納する対話シナリオ生成ルール格納部と,
前記自然言語対話システムの開発者に対して情報入力を促すと共に,前記開発者からの情報を取得するための情報入出力部と,
前記抽出項目分析部において抽出された情報と,前記対話シナリオ生成ルール,および前記開発者から取得した情報とに基づいて,前記対話シナリオを生成する対話シナリオ生成部と,
を有する対話シナリオ生成システム。 - 請求項1記載の対話シナリオ生成システムにおいて,
前記文書構造解析ルールは,
章や節の先頭に記述されている見出し,
箇条書きされている項目,
操作手順が記述された項目,
の内のいずれか一つ以上の,前記操作対象関連文書中におけるフォーマットに関する情報と項目間の階層関係に関する情報を含み,
前記文書項目抽出部は,前記操作対象関連文書中から,前記フォーマットに該当する項目と前記操作対象関連文書中における項目間の階層関係とを合わせて抽出する
対話シナリオ生成システム。 - 請求項1記載の対話シナリオ生成システムにおいて,
前記表現解析ルールは,
どのような操作を行うか(操作内容)を表す表現を抽出する操作内容抽出ルール,
操作を実行するための前提条件(実行条件)となる表現を抽出するための条件抽出ルール,
操作の種類を判定するための操作種類判定ルール,
何に対して操作を行うか(操作対象)を示す表現を抽出するための操作対象抽出ルール,
複数の操作対象が選択肢となっている場合に選択肢を抽出するための選択肢抽出ルール,
の内のいずれか一つ以上を含み,
前記抽出項目分析部は,前記表現解析ルールに基づいて,前記文書項目抽出部から抽出された項目から,
実行条件の抽出,
操作内容の抽出,
操作対象の抽出,
選択肢の抽出,
操作の種類の判定,
の内のいずれか一つ以上を行う
対話シナリオ生成システム。 - 請求項1記載の対話シナリオ生成システムにおいて,
前記対話シナリオ生成ルールは,
前記自然言語対話システムからユーザに対して質問や確認,説明等を行うためのメッセージである応答文を生成するためのルール,
ユーザと前記自然言語対話システムとの対話におけるやり取りの単位である対話ステップを生成,修正および追加するためのルール,
ユーザから入力される音声を認識するための情報である音声認識用文法を生成するためのルール,
の内のいずれか一つ以上を含み,
前記対話シナリオ生成部は,前記対話シナリオ生成ルールと,前記開発者から取得した情報とに基づいて,前記抽出項目分析部における処理の結果から,
応答文の生成,
対話ステップの生成,修正および追加,
音声認識用文法の生成,
の内のいずれか一つ以上を行う
対話シナリオ生成システム。 - 請求項1記載の対話シナリオ生成システムにおいて,
前記対話シナリオ生成部は,前記対話シナリオとして,
ユーザからの要求に基づいて,前記操作対象の操作を代行するための対話シナリオ,
ユーザからの要求に基づいて,前記操作対象が実行可能な機能をユーザに提示するための対話シナリオ,
ユーザからの要求に基づいて,前記操作対象の実行方法をユーザに教示するための対話シナリオ,
の内のいずれか一つ以上を生成する
対話シナリオ生成システム。 - 請求項4記載の対話シナリオ生成システムにおいて,
前記対話シナリオ生成部は,
前記抽出項目分析部における処理の結果得られる情報を前記開発者に提示し,提示された情報に対して前記開発者が,前記情報入出力部から入力した,前記操作対象が実行するコマンドを前記対話シナリオ中に登録する,
前記抽出項目分析部における処理の結果得られる情報と,前記操作対象が実行するコマンドとの対応関係を表す情報をあらかじめ格納し,前記対応関係を表す情報と前記抽出項目分析部における処理の結果得られる情報とから,コマンドを前記対話シナリオ中に登録する,
の内のいずれか一つ以上を行う
対話シナリオ生成システム。 - 請求項4記載の対話シナリオ生成システムにおいて,
前記対話シナリオ生成部は,
前記操作対象となる機器やコンピュータプログラム,
ネットワーク上に設置されているサーバやファイルシステム,
の内いずれか一つ以上を用いて,前記操作対象が実行可能なコマンドやパラメータに関する情報を取得し,取得した当該情報を用いて前記対話シナリオを生成する
対話シナリオ生成システム。 - 情報処理部と情報記憶部と情報入出力部とを有し,自然言語によるユーザからの要求に基づいて操作対象となる機器や他のコンピュータプログラムの操作を代行する自然言語対話システムに用いる対話シナリオを生成するシステムにおける対話シナリオ生成方法であって,
前記情報処理部が,
前記情報記憶部に記憶された,前記操作対象が有する機能や操作方法を自然言語により記述した操作対象関連文書と,前記操作対象関連文書の構造を解析するための文書構造解析ルールと,前記操作対象関連文書から選択した項目の内容からユーザとの対話において必要となる情報を抽出するための表現解析ルールと,前記対話シナリオを生成するための対話シナリオ生成ルールとを用い,
前記文書構造解析ルールに基づいて前記操作対象関連文書の構造を解析し,前記操作対象関連文書から必要な項目を選択し,
選択された前記項目を前記表現解析ルールに基づいて解析し,前記ユーザとの対話において必要となる情報を抽出し,
前記情報入出力部を用いて,前記自然言語対話システムの開発者に対して情報入力を促し,前記開発者から情報を取得し,
前記抽出された情報と,前記開発者から取得した情報および前記対話シナリオ生成ルールとに基づいて,前記対話シナリオを生成する
対話シナリオ生成方法。 - 請求項8記載の対話シナリオ生成方法において,
前記文書構造解析ルールは,
前記操作対象関連文書中におけるフォーマットに関する情報と項目間の階層関係に関する情報を含み,
前記情報処理部は,
前記文書構造解析ルールに基づいて,前記操作対象関連文書から必要な項目を選択する際,前記フォーマットに該当する項目と前記操作対象関連文書中における項目間の階層関係とを合わせて選択する
対話シナリオ生成方法。 - 請求項8記載の対話シナリオ生成方法において,
前記表現解析ルールは,
どのような操作を行うか(操作内容)を表す表現を抽出する操作内容抽出ルール,
操作を実行するための前提条件(実行条件)となる表現を抽出するための条件抽出ルール,
操作の種類を判定するための操作種類判定ルール,
何に対して操作を行うか(操作対象)を示す表現を抽出するための操作対象抽出ルール,
複数の操作対象が選択肢となっている場合に選択肢を抽出するための選択肢抽出ルール,
の内のいずれか一つ以上を含み,
前記情報処理部は,
前記表現解析ルールに基づいて抽出された情報から,
実行条件の抽出,
操作内容の抽出,
操作対象の抽出,
選択肢の抽出,
操作の種類の判定,
の内のいずれか一つ以上を行う
対話シナリオ生成方法。 - 請求項8記載の対話シナリオ生成方法において,
前記対話シナリオ生成ルールは,
前記自然言語対話システムからユーザに対して質問や確認,説明等を行うためのメッセージである応答文を生成するためのルール,
ユーザと前記自然言語対話システムとの対話におけるやり取りの単位である対話ステップを生成,修正および追加するためのルール,
ユーザから入力される音声を認識するための情報である音声認識用文法を生成するためのルール,
の内のいずれか一つ以上を含み,
前記情報処理部は,
前記対話シナリオ生成ルールと,前記開発者から取得した情報とに基づいて,抽出された前記ユーザとの対話において必要となる情報から,
応答文の生成,
対話ステップの生成,修正および追加,
音声認識用文法の生成,
の内のいずれか一つ以上を行う
対話シナリオ生成方法。 - 請求項8記載の対話シナリオ生成方法において,
前記情報処理部は,前記対話シナリオとして,
ユーザからの要求に基づいて,前記処理対象の操作を代行するための対話シナリオ,
ユーザからの要求に基づいて,前記処理対象が実行可能な機能をユーザに提示するための対話シナリオ,
ユーザからの要求に基づいて,前記処理対象の実行方法をユーザに教示するための対話シナリオ,
の内のいずれか一つ以上を生成する
対話シナリオ生成方法。 - 請求項11記載の対話シナリオ生成方法において,
前記情報処理部は,
前記ユーザとの対話において必要となる情報を,前記開発者に提示し,提示された情報に対して前記開発者が,前記操作対象が実行するコマンドを入力し,入力されたコマンドを対話シナリオ中に登録する,
前記ユーザとの対話において必要となる情報と,前記処理対象が実行するコマンドとの対応関係を表す情報をあらかじめ格納し,前記対応関係を表す情報と前記ユーザとの対話において必要となる情報とから,コマンドを前記対話シナリオ中に登録する,
の内のいずれか一つ以上を行う
対話シナリオ生成方法。 - 情報処理部と情報記憶部と情報入出力部とから構成され,自然言語によるユーザからの要求に基づいて操作対象となる機器やコンピュータプログラムの操作を代行する自然言語対話システムに必要となる対話シナリオを生成する対話シナリオ生成システムのためのプログラムであって,
前記情報記憶部に記憶された,前記操作対象が有する機能や操作方法を自然言語により記述した操作対象関連文書と,前記操作対象関連文書の構造を解析するために必要となる文書構造解析ルールと,ユーザとの対話において必要となる情報を抽出するための表現解析ルールと,前記対話シナリオを生成するためのルールである対話シナリオ生成ルールとを用い,
前記情報処理部に,
前記文書構造解析ルールに基づいて前記操作対象関連文書の構造を解析し,前記操作対象関連文書から必要な項目を選択するステップと,
選択した前記項目を前記表現解析ルールに基づいて解析し,前記ユーザとの対話において必要となる情報を抽出するステップと,
前記情報入出力部を用い,前記自然言語対話システムの開発者に対して情報入力を促すと共に,前記開発者から情報を取得するステップと,
前記抽出された情報と,前記開発者から取得した情報と,前記対話シナリオ生成ルールとに基づいて,前記対話シナリオを生成するステップと,
を実行させる
対話シナリオ生成プログラム。 - 請求項14記載の対話シナリオ生成プログラムにおいて,
前記文書構造解析ルールは,
章や節の先頭に記述されている見出し,
箇条書きされている項目,
操作手順が記述された項目,
の内のいずれか一つ以上の,前記操作対象関連文書中におけるフォーマットに関する情報と項目間の階層関係に関する情報を含み,
前記情報処理部に,
前記文書構造解析ルールに基づいて,前記操作対象関連文書から必要な項目を選択する際,前記フォーマットに該当する項目と前記操作対象関連文書中における項目間の階層関係とを合わせて選択させる
対話シナリオ生成プログラム。 - 請求項14記載の対話シナリオ生成プログラムにおいて,
前記対話シナリオ生成ルールは,
前記自然言語対話システムからユーザに対して質問や確認,説明等を行うためのメッセージである応答文を生成するためのルール,
ユーザと前記自然言語対話システムとの対話におけるやり取りの単位である対話ステップを生成,修正および追加するためのルール,
ユーザから入力される音声を認識するための情報である音声認識用文法を生成するためのルール,
の内のいずれか一つ以上を含み,
前記情報処理部に,
前記対話シナリオ生成ルールと,前記開発者から取得した情報とに基づいて,抽出された前記ユーザとの対話において必要となる情報から,
応答文の生成,
対話ステップの生成,修正および追加,
音声認識用文法の生成,
の内のいずれか一つ以上を実行させる
対話シナリオ生成プログラム。 - 請求項16記載の対話シナリオ生成プログラムにおいて,
前記情報処理部に,
前記ユーザとの対話において必要となる情報を,前記開発者に提示し,提示された情報に対して前記開発者が,前記操作対象が実行するコマンドを入力し,入力されたコマンドを対話シナリオ中に登録する,
前記ユーザとの対話において必要となる情報と,前記処理対象が実行するコマンドとの対応関係を表す情報をあらかじめ格納し,前記対応関係を表す情報と前記ユーザとの対話において必要となる情報とから,コマンドを前記対話シナリオ中に登録する,
の内のいずれか一つ以上を実行させる
対話シナリオ生成プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006333484A JP2008145769A (ja) | 2006-12-11 | 2006-12-11 | 対話シナリオ生成システム,その方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006333484A JP2008145769A (ja) | 2006-12-11 | 2006-12-11 | 対話シナリオ生成システム,その方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008145769A true JP2008145769A (ja) | 2008-06-26 |
Family
ID=39606016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006333484A Pending JP2008145769A (ja) | 2006-12-11 | 2006-12-11 | 対話シナリオ生成システム,その方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008145769A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009023404A1 (de) | 2008-06-03 | 2010-05-20 | Nec Electronics Corp. | Elektrische Sicherung, Halbleitervorrichtung und Verfahren zum Abtrennen einer elektrischen Sicherung |
JP2016057728A (ja) * | 2014-09-08 | 2016-04-21 | 日本電信電話株式会社 | 操作手順記録装置、操作手順記録方法及び操作手順記録プログラム |
JP2018005637A (ja) * | 2016-07-04 | 2018-01-11 | 富士通株式会社 | 検索プログラム、検索方法および検索装置 |
JP2019519870A (ja) * | 2016-04-28 | 2019-07-11 | アムリ, マスードAMRI, Masoud | 言語によって制御されるシステム |
JP2020080025A (ja) * | 2018-11-13 | 2020-05-28 | 株式会社日立製作所 | 質問応答データ生成装置および質問応答データ生成方法 |
JP2021117743A (ja) * | 2020-01-27 | 2021-08-10 | 株式会社日立製作所 | 業務支援システム及び業務支援方法 |
CN114356860A (zh) * | 2022-01-06 | 2022-04-15 | 支付宝(杭州)信息技术有限公司 | 对话生成方法及装置 |
US12013849B2 (en) | 2018-06-14 | 2024-06-18 | Nec Corporation | Question responding apparatus, question responding method, and recording medium |
-
2006
- 2006-12-11 JP JP2006333484A patent/JP2008145769A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009023404A1 (de) | 2008-06-03 | 2010-05-20 | Nec Electronics Corp. | Elektrische Sicherung, Halbleitervorrichtung und Verfahren zum Abtrennen einer elektrischen Sicherung |
JP2016057728A (ja) * | 2014-09-08 | 2016-04-21 | 日本電信電話株式会社 | 操作手順記録装置、操作手順記録方法及び操作手順記録プログラム |
JP2019519870A (ja) * | 2016-04-28 | 2019-07-11 | アムリ, マスードAMRI, Masoud | 言語によって制御されるシステム |
JP7023008B2 (ja) | 2016-04-28 | 2022-02-21 | マスード アムリ, | 言語によって制御されるシステム |
JP2018005637A (ja) * | 2016-07-04 | 2018-01-11 | 富士通株式会社 | 検索プログラム、検索方法および検索装置 |
US12013849B2 (en) | 2018-06-14 | 2024-06-18 | Nec Corporation | Question responding apparatus, question responding method, and recording medium |
JP2020080025A (ja) * | 2018-11-13 | 2020-05-28 | 株式会社日立製作所 | 質問応答データ生成装置および質問応答データ生成方法 |
JP7163143B2 (ja) | 2018-11-13 | 2022-10-31 | 株式会社日立製作所 | 質問応答データ生成装置および質問応答データ生成方法 |
JP2021117743A (ja) * | 2020-01-27 | 2021-08-10 | 株式会社日立製作所 | 業務支援システム及び業務支援方法 |
CN114356860A (zh) * | 2022-01-06 | 2022-04-15 | 支付宝(杭州)信息技术有限公司 | 对话生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9361282B2 (en) | Method and device for user interface | |
JP4090040B2 (ja) | 双方主導マルチモーダル対話及び関連ブラウジング機構を作成するための方法及びシステム | |
KR101683943B1 (ko) | 음성번역 시스템, 제1 단말장치, 음성인식 서버장치, 번역 서버장치, 및 음성합성 서버장치 | |
US20060123358A1 (en) | Method and system for generating input grammars for multi-modal dialog systems | |
KR100549482B1 (ko) | 정보 처리 장치, 정보처리 방법, 및 프로그램을 기억하는 컴퓨터 판독가능 기억 매체 | |
JP2008090545A (ja) | 音声対話装置および音声対話方法 | |
JP2007171809A (ja) | 情報処理装置及び情報処理方法 | |
JP2005092504A (ja) | 情報処理装置及びその制御方法、プログラム | |
KR20170014353A (ko) | 음성 기반의 화면 내비게이션 장치 및 방법 | |
JP2008145769A (ja) | 対話シナリオ生成システム,その方法およびプログラム | |
JP2001209393A (ja) | 自然言語入力方法及び装置 | |
US20140028780A1 (en) | Producing content to provide a conversational video experience | |
JP2016061954A (ja) | 対話装置、方法およびプログラム | |
EP1662363A2 (en) | User interface desiiign apparatus and method | |
JP2003263188A (ja) | 対話フォーカス追跡機能を有する音声命令解釈装置及びその方法並びにその方法を記録したコンピュータで読込み可能な記録媒体 | |
CN109782997B (zh) | 一种数据处理方法、装置及存储介质 | |
JP2004021791A (ja) | 自然言語による既存データの記述方法及びそのためのプログラム | |
KR102527107B1 (ko) | 음성에 기반하여 기능을 실행하기 위한 방법 및 이를 지원하는 사용자 전자 장치 | |
JP2015523623A (ja) | 既存の単一言語プロセスからマルチ言語プロセスを構築すること | |
JPH07311677A (ja) | 操作処理装置 | |
JP3542578B2 (ja) | 音声認識装置及びその方法、プログラム | |
JP2013137584A (ja) | 電子機器、表示方法、およびプログラム | |
WO2003079188A1 (fr) | Procede de fonctionnement d'un objet logiciel au moyen d'une langue naturelle et programme correspondant | |
JP2006236037A (ja) | 音声対話コンテンツ作成方法、装置、プログラム、記録媒体 | |
JP2019197084A (ja) | 手話cg翻訳編集装置及びプログラム |