JP7259349B2 - Dialogue device, dialogue method, and program - Google Patents
Dialogue device, dialogue method, and program Download PDFInfo
- Publication number
- JP7259349B2 JP7259349B2 JP2019009482A JP2019009482A JP7259349B2 JP 7259349 B2 JP7259349 B2 JP 7259349B2 JP 2019009482 A JP2019009482 A JP 2019009482A JP 2019009482 A JP2019009482 A JP 2019009482A JP 7259349 B2 JP7259349 B2 JP 7259349B2
- Authority
- JP
- Japan
- Prior art keywords
- rule data
- input
- response
- state
- automaton
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、ユーザからの入力に応じた応答文を出力する対話装置、対話方法、及びプログラムに関する。 The present invention relates to an interactive device, an interactive method, and a program for outputting a response sentence according to an input from a user.
従来、ユーザからの入力に応じた応答文を出力する対話装置として、例えば特許文献1に開示されたものが知られている。この従来の対話装置は、車両のナビゲーション装置に適用されたものであり、有限オートマトンで構成された対話シナリオデータを備えている。従来の対話装置では、そのときどきのユーザからの入力に応じ、対話シナリオデータに従って、ユーザとの対話が実行される。 2. Description of the Related Art Conventionally, as an interactive device for outputting a response sentence in response to an input from a user, for example, one disclosed in Japanese Patent Application Laid-Open No. 2002-200012 is known. This conventional dialogue system is applied to a vehicle navigation system and has dialogue scenario data composed of a finite automaton. A conventional dialogue device executes dialogue with a user according to dialogue scenario data in response to input from the user at that time.
この種の有限オートマトンを備えた対話装置では、対話シナリオデータを用いて取得される遷移先の応答ルールに基づいて、ユーザに対する応答文が作成される。一方、雑談の対話では、その話題が様々に変化する傾向にあるため、対話シナリオデータの構成によっては、遷移先の応答ルールだけでは不足する可能性がある。 A dialogue apparatus having this kind of finite automaton creates a response sentence for a user based on a transition destination response rule obtained using dialogue scenario data. On the other hand, in casual conversations, the topic tends to change in various ways, so depending on the configuration of the dialogue scenario data, there is a possibility that the transition destination response rule alone may not be sufficient.
このような問題は、広範囲の話題を取得できるように上記の対話シナリオデータを構成することによって回避することができるが、その場合には、話題が唐突に切り替わることによって、ユーザとの対話が不自然になるおそれがある。 Such a problem can be avoided by configuring the above dialogue scenario data so that a wide range of topics can be acquired. It can become natural.
そこで、本発明は、ユーザと自然に対話できるようにすることを目的とする。 SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to enable a natural dialogue with a user .
態様の一例の対話装置は、所定の対象から入力された入力発話情報を取得する取得手段と、複数の入力単語の組、応答文、オートマトンの状態、及び、次に遷移すべきオートマトンの状態を互いに対応付けたルールデータを複数記憶したデータベースから、前記オートマトンの現在の状態を含む所定の状態と、前記取得手段によって取得された入力発話情報に含まれる複数の入力単語とに応じて、ルールデータを選択し、選択したルールデータに含まれる応答文を前記所定の対象に対して出力する応答文出力手段と、前記選択されたルールデータに対応する前記所定の状態を記憶手段に順次記憶させる記憶制御手段と、を備え、前記記憶制御手段による記憶制御の後、前記取得手段によって入力発話情報が取得されると、前記応答文出力手段は、選択すべきルールデータが複数存在する場合、前記データベースに複数記憶されているルールデータのうち、前記記憶手段に記憶されている複数の前記所定の状態におけるより新しく記憶された前記所定の状態と同じ状態に対応するルールデータを優先的に選択する。 An example of a dialogue device includes an acquisition means for acquiring input utterance information input from a predetermined target, a set of a plurality of input words, a response sentence, an automaton state, and an automaton state to be transitioned to next. rule data according to a predetermined state including the current state of the automaton and a plurality of input words included in the input utterance information obtained by the obtaining means from a database storing a plurality of rule data associated with each other; and a response sentence output means for outputting a response sentence included in the selected rule data to the predetermined object; and a memory for sequentially storing the predetermined state corresponding to the selected rule data in a storage means. and a control means , when the input utterance information is acquired by the acquisition means after the storage control by the storage control means, the response sentence output means, if there is a plurality of rule data to be selected, the database among the plurality of rule data stored in the storage means , rule data corresponding to the same state as the predetermined state stored more recently than the plurality of predetermined states stored in the storage means are preferentially selected. .
本発明によれば、ユーザと自然に対話することが可能となる。 According to the present invention , it becomes possible to interact with the user naturally.
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。図1は、対話装置の一実施形態を示すブロック図である。対話装置100は、データベース101(データベース)、取得部106(取得手段)、抽出部107(抽出手段)、データ取得部102(データ取得手段)を含む応答文出力部103(応答文出力手段)、及び記憶部104(記憶手段)を備え、所定の対象、例えばユーザと対話可能に構成されている。この対話装置100は例えば、家庭用の対話機能付きスピーカーや、ロボットの対話機能に組み込んで使用することができる。ロボットである場合、上記所定の対象は例えば、他のロボットであってもよい。 EMBODIMENT OF THE INVENTION Hereinafter, it demonstrates in detail, referring drawings for the form for implementing this invention. FIG. 1 is a block diagram illustrating one embodiment of an interactive device. The dialogue device 100 includes a response sentence output unit 103 (response sentence output means) including a database 101 (database), an acquisition unit 106 (acquisition means), an extraction unit 107 (extraction means), and a data acquisition unit 102 (data acquisition means), and a storage unit 104 (storage means), and is configured to be able to interact with a predetermined target, for example, a user. This interactive device 100 can be used, for example, by incorporating it into a speaker with an interactive function for home use or an interactive function of a robot. In the case of a robot, the predetermined target may be, for example, another robot.
データベース101は、複数のルールデータ110を記憶しており、各ルールデータ110には、想定入力単語組(想定入力発話文)と、応答文と、オートマトンの状態番号と、オートマトンの次回の遷移先の状態番号(以下「次遷移先状態番号」という)とが含まれる。この想定入力単語組は、ユーザから入力されると想定される複数の入力単語で構成され、応答文は、ユーザの発話に対する応答文であり、これらの想定入力単語組、応答文、オートマトンの状態番号、及びオートマトンの次遷移先状態番号が、互いに対応付けられて、ルールデータ110として記憶されている。オートマトンの状態番号及び次遷移先状態番号は、ユーザとの対話中に、複数のルールデータ110のうちのいずれを選択して応答すべきかを規定するものであり、次遷移先状態番号は、次回の応答時に選択すべきルールデータ110に含まれるオートマトンの状態番号を表して(定義して)いる。この場合、オートマトンの状態番号と次遷移先状態番号は、同じ番号であったり、異なる番号であったりする。各ルールデータ110のオートマトンの状態番号及び次遷移先状態番号、並びに、それらの各々に対応する応答文は、ユーザとの対話における話題を適切に変化させながら自然な応答が行われるように、設定されている。ここで、例えば様々な話題のユーザの発話に対応できるように、同一のオートマトンの状態番号を含む複数のルールデータ110が、データベース101に記憶されていてもよい。
The
取得部106は、ユーザの入力発話情報115を、例えばマイクロフォン(図示せず)を介して取得する。
抽出部107は、上記入力発話情報115を、増幅器及びA/D(アナログ/デジタル)変換器等を介してデジタル化してデジタル音声に変換する。次に、抽出部107は、このデジタル音声に対して、音声認識処理を実行することにより、入力文のテキストデータを取得し、取得した入力文のテキストデータに対して形態素解析を実行することにより、発話を単語ごと(例えば名詞や動詞、形容詞、副詞等)に分かち書きした形式で、複数の入力単語からなる入力単語組111のテキストデータを抽出する。
The
応答文出力部103は、複数のルールデータ110から、オートマトンの現在の状態を含む所定の状態と、取得部106にて取得された入力発話情報115とに応じて、応答ルールデータ113を選択し、選択した応答ルールデータ113に含まれる応答文114を所定の対象に対して出力する。
The response
ここで、応答文出力部103は、次のようなデータ取得部102を有してよい。データ取得部102は、複数のルールデータ110のうちの、オートマトンの現在の状態を含む所定の状態に対応する複数のルールデータよりも少ない複数のルールデータから、取得された入力発話情報115に応じて、応答ルールデータ113の候補となる応答候補の複数のルールデータである応答候補ルールデータ112を検索して取得する。この検索は、例えば次のようにして行われる。まず、取得した入力単語組111に包含される想定入力単語組を有するルールデータ110を、応答候補ルールデータ112の暫定候補データとして検索する。この場合、「入力単語組111に包含される想定入力単語組」は、想定入力単語組の単語数が入力単語組の単語数以下であって、かつ、想定入力単語組のすべての単語が入力単語組の一部またはすべての単語と一致する想定入力単語のことである。データ取得部102は、このようにして検索された1つ以上の暫定候補データに対し、更に後述するように記憶部104を参照して、応答候補ルールデータ112を検索する。
Here, the response
応答文出力部103は、データ取得部102で検索された応答候補ルールデータ112から応答ルールデータ113を選択し、その応答ルールデータ113に含まれる応答文(図1のルールデータ110に含まれる応答文を参照)を、ユーザの発話に対する応答文114として出力する。このようにして出力された応答文114のデータ(例えばテキストデータ)に対して、音声合成処理部からD/A変換器、増幅器、及びスピーカを介して、応答文114に対応する音声が発声される。なお、対話装置100が例えばロボットの対話機能として組み込まれている場合、ロボットはユーザが周囲に存在することをセンサ等によって検出している状態で、上記音声の発声を対話装置100に行わせる。これと共に、応答文出力部103は、応答ルールデータ113に含まれるオートマトンの次遷移先状態番号(図1参照)を、スタック状態番号NSAとして、記憶部104に順次記憶する。このように、記憶部104は、オートマトンの状態番号をスタックするスタックとして機能する。記憶部104に記憶された複数のスタック状態番号NSAは、ユーザの発話の話題が辿るのに応じて遷移したオートマトンの状態番号の履歴を示すと同時に、これらの複数のスタック状態番号NSAのうち、最も新しく記憶されたスタック状態番号NSAは、遷移したオートマトンの現在の状態番号(=例えば話題)を示している。
The response
ここで、データ取得部102は、前述したようにして検索された1つ以上の暫定候補データ(ルールデータ110)のうち、その対応するオートマトンの状態番号(図1参照)が記憶部104中の複数のスタック状態番号NSAのうちの何れかに一致する暫定候補データを、応答候補ルールデータ112として検索する。記憶部104中の各スタック状態番号NSAは、ユーザの発話の話題が辿るのに応じて遷移したオートマトンの状態番号(=例えば話題)を示している。従って、データ取得部102は、データベース101に記憶されているルールデータ110のうち、いままで発生したオートマトンの状態番号(スタック状態番号NSA)と同じ状態番号を含むルールデータ110、すなわち、例えばいままで話題にのぼったルールデータ110から、応答候補ルールデータ112を選択することになる。
Here, the
最も望ましいのは、記憶部104に最も新しく記憶されているスタック状態番号NSA、すなわちオートマトンの現在の状態番号と同じ状態番号を含むルールデータ110が検索されることである。しかしながら、ユーザによる入力単語組111に対応するルールデータ110に含まれるオートマトンの状態番号が、オートマトンの現在の状態番号と必ずしも一致するとは限らない。このような場合に、データ取得部102は、記憶部104が記憶するスタック状態番号NSAが示す過去に辿ってきたオートマトンの状態番号と一致するオートマトンの状態番号を含むとともに、入力単語組111に対応する想定入力単語組を有するルールデータ110を応答候補ルールデータ112として検索する。この対話装置100の構成により、ユーザとの例えば対話における話の流れに沿った応答候補ルールデータ112を検索することができる。
Most preferably, the
この場合、データ取得部102は更に、対応するオートマトンの状態番号が上述のように記憶部104中の複数のスタック状態番号NSAの何れかに一致する複数の応答候補ルールデータ112(ルールデータ110)が存在する場合に、これらの応答候補ルールデータ112のうち、より新しく記憶されたスタック状態番号NSAに一致する状態番号に対応する応答候補ルールデータ112が、応答ルールデータ113として優先的に選択されるように、各応答候補ルールデータ112のスコアを算出する。
In this case, the
より具体的には、データ取得部102は、例えば、入力単語組111に含まれる入力単語の各々に、後述するTF-IDF手法などの所定の手法によって、重み係数を設定する。これにより、複数の入力単語の各々の重み係数は、その重要度に応じて、互いに同じ値に設定されたり、互いに異なる値に設定されたりする。また、データ取得部102は、応答候補ルールデータ112としてのルールデータ110に含まれる想定入力単語組(図1のルールデータ110の想定入力単語組を参照)の入力単語組111に対する類似度を示すコサイン類似度を、設定した重み係数に応じて、応答候補ルールデータ112毎に算出する。また、データ取得部102は、算出したコサイン類似度に応じて、応答候補ルールデータ112毎に、応答ルールデータ113を選択するための指標を示すスコアを算出する(コサイン類似度をスコアとして算出する)。さらに、データ取得部102は、複数の応答候補ルールデータ112(ルールデータ110)のうちの、記憶部104に記憶された複数のスタック状態番号NSAのうちのより過去に記憶されたスタック状態番号NSAに一致する状態番号に対応する応答候補ルールデータ112のスコアを、より小さな値に算出する。そして、応答文出力部103は、応答候補ルールデータ112毎に算出された上記スコアに基づいて、最大のスコアを有する応答候補ルールデータ112を応答ルールデータ113として選択する。この対話装置100の構成によって、応答文出力部103は、データ取得部102により検索された1つ以上の応答候補ルールデータ112のうち、オートマトンの現在の状態番号(=例えば現在の話題)により近い状態番号(=例えばより近い話題)に対応する応答候補ルールデータ112を、応答ルールデータ113として優先的に選択することができ、よりユーザとの話題に沿った自然な対話が行える対話装置100を提供することが可能となる。
More specifically, the
ここまでの構成に加えて、選択された応答ルールデータ113に基づいて生成された応答文114を過去所定回数分記憶する応答文記憶部104(応答文記憶手段)を更に備えてよい。そして、データ取得部102は、応答文記憶部104を参照することにより、1つ以上の応答候補ルールデータ112中の各応答候補ルールデータ112が応答ルールデータ113として選択されるときの優先度(例えば前述したスコア)を、応答候補ルールデータ112の応答文114が過去何回目に生成されたかに応じて変更してよい。この対話装置100の構成により、同じ応答ルールデータ113による応答文114が繰り返し出力されるのを防ぐことができる。
In addition to the above configuration, a response sentence storage unit 104 (response sentence storage means) may be further provided for storing a predetermined number of past response sentences 114 generated based on the selected response rule data 113 . Then, by referring to the response
ここまでの構成に加えて、データベース101には、所定の複数の非想定用ルール(後述するワイルドカードリスト、スーパーワイルドカードリスト)が含まれてもよい。そして、データ取得部102は、ユーザによる発話の内容が想定外の内容である場合、すなわち、入力単語組111の複数の単語が、いずれのルールデータ110の想定用入力単語組の複数の単語を包含していない場合には、複数の非想定用ルールのうち、前回に選択された応答ルールデータに対応するものを、応答候補ルールデータとして取得してよい。
In addition to the configuration described so far, the
図2は、図2の対話装置100を実現可能なコンピュータのハードウェア例を示す図である。このコンピュータは、通常のパーソナルコンピュータのほか、スマートフォン、タブレット端末、デジタルカメラなどを含む。図2に示されるコンピュータは、CPU(Central Processing Unit)CPU201、メモリ202、入力装置203、出力装置204、補助情報記憶装置205、可搬型記録媒体211が挿入される媒体駆動装置206、ネットワーク接続装置207、音声入力装置208、及び音声出力装置209を有する。これらの構成要素は、バス210により相互に接続されている。図2に示される構成は図2の対話装置100を実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
FIG. 2 is a diagram showing an example of computer hardware that can implement the dialog apparatus 100 of FIG. This computer includes smartphones, tablet terminals, digital cameras, etc., in addition to ordinary personal computers. The computer shown in FIG. 2 includes a CPU (Central Processing Unit)
メモリ202は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)、フラッシュメモリ等の半導体メモリであり、例えば、後述する図4~図7のフローチャートの処理に対応するプログラム、及び後述する図3に対応する各種データを格納する。
The
CPU(プロセッサ)101は、例えば、メモリ202を利用して、図2の対話装置100に用いられる後述する図4~図7のフローチャートの処理に対応するプログラムを実行することにより、図2に示される各処理ブロックとして動作する。
A CPU (processor) 101 uses a
入力装置203は、例えば、タッチパネル入力装置であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置204は、例えば、上記タッチパネル入力装置と一体に形成される液晶ディスプレイ(LCD:Liquid Crystal Display)などのディスプレイ装置であり、オペレータ又はユーザへの問合せ又は処理結果の出力に用いられる。
The
補助情報記憶装置205は、例えば、半導体記憶装置、ハードディスク記憶装置、磁気ディスク記憶装置、光ディスク装置、光磁気ディスク装置などであり、例えば、図1で説明したデータベース101を記憶する記憶装置、或いは、図1の記憶部104又は応答文記憶部105として動作する。図2の対話装置100は、補助情報記憶装置205に図2の対話装置100に用いられる例えば図4から図7のフローチャートの処理を実行するプログラム及び図3で後述する各種データなどのデータを格納しておき、それらをメモリ202にロードして使用してもよい。
The auxiliary
媒体駆動装置206は、可搬型記録媒体211を駆動し、その記録内容にアクセスする。可搬型記録媒体211は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体211は、Compact Disk Read Only Memory(CD-ROM)、Digital Versatile Disk(DVD)、Universal Serial Bus(USB)メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体211に上述のプログラム及びデータを格納しておき、メモリ202にロードして使用することができる。
The
このように、上述のプログラム及びデータを格納するコンピュータ読取り可能な記録媒体は、メモリ202、補助情報記憶装置205、又は可搬型記録媒体211のような、物理的な(非一時的な)記録媒体である。
Thus, the computer-readable recording medium storing the above programs and data is a physical (non-temporary) recording medium such as the
ネットワーク接続装置207は、例えばLocal Area Network(LAN)等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。図2の対話装置100は、上述のプログラム又はデータを外部の装置からネットワーク接続装置207を介して受信し、それらをメモリ202にロードして使用することができる。
A
音声入力装置208は、ユーザが喋る音声をアナログ入力音声信号として入力するマイクロフォン/アンプ、アナログ入力音声信号をデジタル入力音声信号に変換するA/D(アナログ/デジタル)変換器、デジタル入力音声信号をユーザからの入力としてCPU201に引き渡すためのインタフェース回路などである。
The
音声出力装置209は、図2の対話装置100が生成した応答文114に対応するデジタル音声信号を合成する音声合成処理装置、デジタル音声信号をアナログ音声信号に変換するD/A(デジタル/アナログ)変換器、アナログ音声信号をユーザに向かって放音するためのアンプ/スピーカなどである。
The
なお、図2の対話装置100が図2の全ての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、オペレータ又はユーザからの指示又は情報を入力する必要がない場合は、入力装置203の一部又は全部や出力装置204の一部又は全部が省略されてもよい。可搬型記録媒体211又は通信ネットワークを利用しない場合は、媒体駆動装置206又はネットワーク接続装置207が省略されてもよい。
2 does not need to include all the components shown in FIG. 2, and it is possible to omit some of the components depending on the application or conditions. For example, part or all of the
図3は、図2のコンピュータが実現する図2の対話装置100の制御に必要な主要な各種データのフォーマットの例を示す図である。 FIG. 3 is a diagram showing an example of the format of various main data necessary for controlling the interactive device 100 of FIG. 2 realized by the computer of FIG.
図3(a)は、制御データのデータフォーマット例である。制御データの先頭ポインタCtrlのアドレスから順に、以下の各種データが図2のメモリ202に記憶される。
FIG. 3(a) is an example of a data format of control data. The following various data are stored in the
transition:対話データベースへのポインタ。図2の補助情報記憶装置205などに記憶される図2のデータベース101内のルールデータ110の先頭へのポインタである。ルールデータ110は、図1を用いて前述したように、オートマトンの状態番号毎に、ユーザが発話すると想定される単語の組(想定入力単語組)と、それに対応する応答文と、次に遷移するオートマトンの状態番号(次遷移先状態番号)を管理する。
transition: a pointer to the transition database. It is a pointer to the beginning of the
inputWordCount:入力単語数。入力されたユーザ発話の単語(形態素)数である。 inputWordCount: Input word count. It is the number of words (morphemes) in the input user utterance.
inputWords[inputWordCount]:図3(b)の入力単語データへのポインタ。入力されたユーザ発話に含まれる単語(形態素)群の実体アドレスである。上記入力単語数inputWordCount分の入力単語データ配列である。 inputWords[inputWordCount]: A pointer to the input word data in FIG. 3(b). This is the entity address of the word (morpheme) group included in the input user utterance. This is an input word data array for the number of input words inputWordCount.
transCandidates:応答候補ルールデータリスト。当該の入力による条件に合致する1つ以上の応答候補ルールデータ112(図1参照)を格納するためのリストである。各リストの要素は、各ルールデータtransition[i](図3(c)参照)へのポインタのほかに、各応答候補ルールデータ112の一致単語数の値や、各応答候補ルールデータ112のスコアの値も含む。 transCandidates: Answer candidate rule data list. This is a list for storing one or more response candidate rule data 112 (see FIG. 1) that match the input condition. Elements of each list include a pointer to each rule data transition[i] (see FIG. 3(c)), a value of the number of matching words of each candidate response rule data 112, and a score of each candidate response rule data 112. Also includes the value of
state_id:状態番号のスタック配列。記憶部104に記憶されるスタック状態番号NSA(図1参照)を管理するスタック配列である。
state_id: stack array of state numbers. It is a stack array for managing stack state numbers NSA (see FIG. 1) stored in the
score_coef:評価係数。各応答候補ルールデータ112を評価するためのコサイン距離を計算する際の、入力側分母成分である。 score_coef: evaluation coefficient. It is the input side denominator component when calculating the cosine distance for evaluating each response candidate rule data 112 .
図3(b)は、ユーザの発話に基づいて検出される図1の入力単語組111を示す入力単語データのデータフォーマット例である。各入力単語データの先頭ポインタはinputWords[i](i=0、1、2、・・・)で示され、入力単語データ毎に、このアドレスから順に以下の各種データが、図2のメモリ202に記憶される。 FIG. 3(b) is an example data format of input word data showing the input word set 111 of FIG. 1 detected based on the user's utterance. The head pointer of each input word data is indicated by inputWords[i] (i=0, 1, 2, . . . ). stored in
word:入力単語。形態素解析処理により設定される、形態素単位のテキストデータ列である。 word: Input word. This is a morpheme-based text data string set by morpheme analysis processing.
weight:重み係数。そのルール内でのその単語の重要度を示すための係数である。重み係数の値は、例えば品詞に応じて大小が付けられ、例えば名詞や動詞に対しては大きな値、助詞などに対しては小さな値が付けられる。 weight: Weighting factor. A coefficient for indicating the importance of the word within the rule. The value of the weighting factor is, for example, assigned a large value according to the part of speech. For example, a large value is assigned to nouns and verbs, and a small value is assigned to particles.
prev:前ポインタ。ユーザの発話において、現在の入力単語の直前に発音された入力単語へのポインタである。 prev: previous pointer. A pointer to the input word pronounced just before the current input word in the user's utterance.
next:次ポインタ。ユーザの発話において、現在の入力単語の直後に発音された入力単語へのポインタである。 next: next pointer. A pointer to the input word pronounced immediately after the current input word in the user's utterance.
図3(c)は、図1のデータベース101に記憶されるルールデータ110のデータフォーマット例である。各ルールデータ110の先頭ポインタはtransition[i](i=0、1、2、・・・)で示され、ルールデータ110毎に、このアドレスから順に以下の各種データが、例えば図2の補助情報記憶装置205内(メモリ202内でもよい)の図1のデータベース101に記憶される。
FIG. 3(c) is an example data format of the
userWordCount:想定入力単語数。ルールデータ110の入力として与えられる想定入力単語の数である。
userWords[userWordCount]:ルールデータ110の入力として与えられる想定入力単語のテキストデータの配列である。図1のルールデータ110内の想定入力単語組に対応する。
state_id:オートマトンの現在の状態番号。ルールデータ110が属する状態を示す番号である。図1のルールデータ110内の状態番号に対応する。
bot_reply:応答文。ルールデータ110の出力である応答文のテキストデータである。図1のルールデータ110内の応答文に対応する。
next_state_id:次遷移先状態番号。ルールデータ110が選択された後に遷移するオートマトンの遷移先の状態を示す番号である。図1のルールデータ110内の次遷移先状態番号に対応する。
userWordCount: Expected number of input words. This is the number of assumed input words given as input to the
userWords [userWordCount]: An array of text data of assumed input words given as input to the
state_id: current state number of the automaton. This number indicates the state to which the
bot_reply: reply text. It is the text data of the response sentence that is the output of the
next_state_id: Next transition destination state number. This is a number indicating the transition destination state of the automaton that transitions after the
prev:前ポインタ。現在のルールデータ110の直前に接続されるルールデータ110へのポインタである。
prev: previous pointer. A pointer to the
next:次ポインタ。現在のルールデータ110の直後に接続されたルールデータ110へのポインタである。
next: next pointer. A pointer to the
図4から図7は、図2の対話装置100の動作を実現するために、図2のコンピュータが実行する対話処理の例を示すフローチャートである。この対話処理は、図2のCPU201が、メモリ202又は補助情報記憶装置205に記憶されている図3で説明した各種データを用いながら、メモリ202に記憶された対話処理プログラムを実行する処理である。
4 to 7 are flowcharts showing examples of interactive processing executed by the computer of FIG. 2 to implement the operation of the interactive device 100 of FIG. This interactive processing is processing in which the
図4は、対話処理の例を示すメインフローチャートである。特には図示しないパワースイッチがオンされてシステムが起動すると、CPU201が、メモリ202上の各種変数の初期化、及び必要なデータの補助情報記憶装置205からメモリ202へのロードを実行する(ステップS401)。
FIG. 4 is a main flowchart showing an example of interactive processing. When a power switch (not shown) is turned on to start the system, the
次に、CPU201は、図3(a)の制御データ上のオートマトンの状態番号のスタック配列state_idに、初期状態を表す状態番号0をプッシュする(ステップS402)。
Next, the
ステップS402の後、CPU201は、ユーザ発話の入力(ステップS403)と、対話装置の終了指示(ステップS404)の待機状態となる(ステップS403とステップS404の繰返し処理)。
After step S402, the
ユーザが発話を行うと、図2の音声入力装置208において、ユーザが喋る音声がマイクロフォン/アンプでアナログ入力音声信号として入力され、A/D変換器においてそのアナログ入力音声信号がデジタル入力音声信号に変換され、図2のバス210を介してCPU201に送られる。そして、CPU201が、このデジタル入力音声信号の所定閾値以上のパワーを検出したときに、ユーザ発話の入力が検出され、ステップS404の判定がYESとなる。CPU201は、前処理(ステップS405)、ルール検索処理(ステップS406)、及び応答文出力処理(ステップS407)を順次実行し、その後、ステップS403とS404の待機処理に戻る。
When the user speaks, in the
ユーザが特には図示しないパワースイッチをオフして対話装置100の終了指示が発生すると、ステップS403の判定がYESとなって、CPU201は、確保したメモリ202上の領域等を破棄し、図4に示す対話処理を終了し、システムを終了する。
When the user turns off a power switch (not shown) to issue an instruction to terminate the interactive apparatus 100, the determination in step S403 becomes YES, and the
図5は、図4のステップS405の前処理の詳細例を示すフローチャートである。この前処理では主に、図3(b)の入力単語データinputWords[0]、inputWords[1]、・・・を作成する処理が実行される。 FIG. 5 is a flow chart showing a detailed example of preprocessing in step S405 of FIG. In this preprocessing, processing for creating input word data inputWords[0], inputWords[1], . . . in FIG. 3B is mainly executed.
まず、CPU201は、メモリ202上にある図3(a)及び(b)の各データ(変数)を初期化する(ステップS501)。
First, the
次に、CPU201は、図4のステップS404で入力されたユーザの発話に基づくデジタル音声データに対して、まず音声認識を行って入力文のテキストデータを作成し、更にそのテキストデータに対して形態素解析を実行することにより、形態素に分割された複数の単語から成る入力単語群を抽出する(ステップS502)。この入力単語群は、図1の入力単語組111に対応する。
Next, the
次に、CPU201は、初期値1を、メモリ202上の変数であるスコア係数にセットする(ステップS503)。スコア係数については、後述する。
Next, the
次に、CPU201は、ステップS502での形態素解析により抽出した先頭の形態素から順に(ステップS504)、ステップS505ですべての形態素の検索が終了したと判定するまで(ステップS505)、ステップS509で形態素を順次検索しながら、以下のステップS506からS508の一連の処理を、形態素毎に繰り返し実行する。
Next, the
まず、CPU201は、図3(a)の制御データの入力単語数:inputWordCountの値をインクリメントする。また、CPU201は、図3(b)の入力単語データの新たなエントリ(記憶領域)(例えばinputWords[i])をメモリ202上に生成し、そのエントリ内の入力単語:wordとして、ステップS504又はS509で取得した形態素のテキストを登録する(以上、ステップS506)。なお、CPU201は、入力単語データの新たなエントリの前ポインタ:prevを、その直前に生成されているエントリの先頭アドレスに設定し、更にその直前エントリの次ポインタ:nextの値を上記新たなエントリの先頭アドレスに設定することにより、ユーザ発話に従って順番に接続された入力単語データのエントリのリストを生成する。
First, the
次に、CPU201は、ステップS504又はS509で取得した形態素に対応する入力単語の重み係数を設定し、その重み係数を、ステップS506でメモリ202上に生成した図7(b)の入力単語データの新たなエントリの重み係数:weightとして設定する(ステップS507)。上述の重み係数は、対応する形態素の入力単語の、入力された文書内での重要度を示しているといえる。単語の文書内での重要度は、入力文書内で多く出現する単語ほど大きな(重要な)値として設定されるTF(Term Frequency)と呼ばれる良く知られた手法と、いくつもの文書で横断的に使われている単語はそれほど大きな(重要な)値ではなく設定されるIDF(Inverse Document Frequency)と呼ばれる良く知られた他の手法とを組合せたTF-IDF手法により設定することができる。従って、上述の重み係数は、このようなTF-IDF手法により設定されてよい。また、単語の文書内での重要度は、形態素の品詞によっても異なる。重み係数の値は、例えば名詞や動詞に対しては大きな値、助詞などに対しては小さな値が割り当てられる。そこで、上述の重み係数は、例えば図2の補助情報記憶装置205に保持している、品詞別の重み係数テーブルや、IDF(Inverse Document Frequency)テーブルなどから設定されてよい。
Next, the
そして、CPU201は、ステップS507で取得した重み係数の2乗値を、ステップS503で初期設定したメモリ202上のスコア係数に加算する(ステップS508)。スコア係数については後述する。
Then, the
以上のステップS506からS508までの一連の処理が、ステップS505からS509までの繰返し処理により入力により得られる全ての形態素について実行されることにより、図3(b)の入力単語データinputWords[0]、inputWords[1]、・・・が作成される。図3(b)に示されるように、入力単語データinputWords[i](i=0、1、・・・)は、形態素解析された現在の形態素のテキストデータである入力単語wordと、その入力単語に対応してステップS507で取得された重み係数weightと、前後のエントリへのポインタprev及びnextから構成される。 The above series of processes from steps S506 to S508 are executed for all morphemes obtained by the input through repeated processes from steps S505 to S509, thereby obtaining the input word data inputWords[0], inputWords[1], . . . are created. As shown in FIG. 3B, the input word data inputWords[i] (i=0, 1, . It consists of the weight coefficient weight obtained in step S507 corresponding to the word, and pointers prev and next to the previous and subsequent entries.
すべての形態素に対する処理が終了してステップS505の判定がYESになると、CPU201は、メモリ202上の変数である、前記ステップS508で最終的に算出されたスコア係数の平方根を算出し、更にその逆数を算出して、その算出結果を図3(a)の制御データ内の評価係数(評価式の分母):score_coefとして設定する(ステップS510)。このようにして算出される評価係数score_coefは、実質的には、cos(コサイン)距離=相関係数を求めていることになる。
When the processing for all morphemes is completed and the determination in step S505 becomes YES, the
共分散(分子)と、ルールデータ側の標準偏差は後述するルール検索処理時に算出するものとするが、入力側である入力単語組111に対応する分散は、どのルールに対しても共通のものであり、かつ分母の成分として発生するものであるので、まずステップS503で初期設定の後に、ステップS508で各入力単語の重み係数の2乗を加算してスコア係数を算出し、算出したスコア係数をステップS510であらかじめ逆数化して図3(a)の評価係数score_coefとして求めておき、後述する各応答候補ルールデータ112のスコアをコサイン類似度に変換する演算(図6のステップS609参照)において、(計算負荷のかかる除算ではなく、)乗算で処理できるようにするためである。その後、CPU201は、図5のフローチャートで例示される図4のステップS405の前処理を終了する。
The covariance (numerator) and the standard deviation of the rule data are calculated during the rule search process, which will be described later, but the variance corresponding to the input word set 111 on the input side is common to all rules. and is generated as a component of the denominator, first, after initial setting in step S503, the score coefficient is calculated by adding the square of the weight coefficient of each input word in step S508, and the calculated score coefficient is reciprocated in advance in step S510 to obtain the evaluation coefficient score_coef in FIG. This is to allow multiplication (rather than computationally expensive division). After that, the
図6は、図4のステップS406のルール検索処理の詳細例を示すフローチャートである。このルール検索処理は、図1のデータ取得部102の処理機能を実現するものである。図1のデータ取得部102の説明で前述したように、データ取得部102は、データベース101に記憶されているルールデータ110を参照しながら、オートマトンと呼ばれる状態モデルに従って動作する。図6のルール検索処理も同様に、メモリ202又は補助情報記憶装置205上のデータベース101に記憶されている図3(c)のルールデータ110を参照しながら、オートマトンの状態モデルに従って動作する。ここで、オートマトンとは、状態と遷移と動作の組み合わせからなるモデルであり、ある時点で「現在状態」と呼ぶ何れか1つの状態をとり、何らかのイベントや条件によってある状態から別の状態へと「遷移」し、その状態を規定するのがデータベース101上のルールデータ110である。また、本実施形態では、後述するようにルールデータ110の検索と状態の遷移が、図1で説明した記憶部104に記憶されるスタック状態番号NSAに応じても制御される。
FIG. 6 is a flowchart showing a detailed example of the rule search processing in step S406 of FIG. This rule search processing implements the processing function of the
以下、図4のステップS406のルール検索処理の詳細例である図6のフローチャートの処理について、説明する。 The processing of the flowchart of FIG. 6, which is a detailed example of the rule search processing in step S406 of FIG. 4, will be described below.
図6において、CPU201はまず、前述した図5で示される図4のステップS405の前処理においてユーザの発話から得られた入力単語組について、全てのルール検索が終了したと判定するまで(後述するステップS613:YES)、ステップS601からS612の一連の処理を繰り返し実行する。
In FIG. 6, the
この繰返し処理において、CPU201はまず、メモリ202又は補助情報記憶装置205に記憶されている図3(c)のルールデータ110(図1のデータベース101内のルールデータ110に対応)において、前述したように上記入力単語組(図1の入力単語組111に対応)に包含される想定入力単語組を含むルールデータ110を、データベース102内から検索する(ステップS601)。ステップS601の他の実施形態として、CPU201は、想定入力単語数(図3(c)参照)が上記入力単語組(図1の入力単語組111に対応)の入力単語数(図3(a)参照)に一致し、かつ想定入力単語の配列(図3(c)参照)中の全ての想定単語が、入力単語(図3(b)参照)の全てと一致するルールデータを検索してもよい。なお、入力文が日本語である場合には、想定入力単語組と入力単語組の間の単語の順番は問わない。これは、入力文によっては、単語の倒置等が発生する場合に対応するためである。
In this iterative process, the
ステップS601の検索の結果、CPU201は、データベース102内からルールデータが見つかったか否かを判定する(ステップS602)。
As a result of the search in step S601, the
ルールデータが見つからなかった場合(ステップS602の判定がNOの場合)には、CPU201は、全てのルールデータの検索が終了したか否かを判定する(ステップS613)。
If no rule data is found (NO in step S602), the
全てのルールデータの検索が終了していない場合(ステップS613の判定がNOの場合)には、CPU201は、ステップS601の検索処理に戻ってルールデータの検索を繰り返し実行する。
If the search for all rule data has not ended (NO in step S613), the
ステップS601での検索の結果、ルールデータが見つかった場合(ステップS602の判定がYESの場合)には、CPU201は、以下のステップS603からS612で示される一連の処理を実行することにより、ステップS601で見つかったルールデータを応答候補ルールデータ112(図1参照)として採用するか否かを判定する。
If rule data is found as a result of the search in step S601 (if the determination in step S602 is YES), the
具体的には、CPU201はまず、図2のメモリ202上に保持している変数である状態番号係数が示す倍率を、初期値である1.0にセットする(ステップS603)。状態番号係数は、現在の状態以外の過去に発生した状態に対応するルールデータを検索する場合に、その状態をどの程度重要視するかを決定するための重みデータである。
Specifically, the
次に、CPU201は、メモリ202(記憶部104)上に制御データとして保持している(記憶されている)状態番号のスタック配列:state_id(図3(a)参照)において、スタック配列中の所定の複数のスタック状態番号NSAのうち、最初のスタック状態番号NSA、すなわち、記憶された最新の状態番号を読み出す(ステップS604)。
Next, the
次に、CPU201は、ステップS601によって見つかったルールデータ中の状態番号:state_id(図3(c)参照)が、上記ステップS604又は後述するS611によって選択された現在のスタック状態番号NSAと一致するか否かを判定する(ステップS605)。
Next, the
ステップS605の判定がYESならば、CPU201は、応答候補ルールデータリストtransCandidates(図3(a)参照)に、当該ルールデータに対応するステップS601で見つかったルールデータへのポインタ:transition(図3(c))の値を登録することにより、上記応答候補ルールデータリストに、当該ルールデータを新たな応答候補ルールデータ112として追加する(ステップS606)。
If the determination in step S605 is YES, the
次に、CPU201は、応答候補ルールデータリストtransCandidatesから参照される、今回追加された応答候補ルールデータ112のスコアに、図6のステップS601で見つかったルールデータ110の想定入力単語組内の各想定入力単語に対応する各入力単語の各重み係数:weight(図3(b)参照)の2乗値を、全入力単語で累算する(ステップS607)。なお、応答候補ルールデータ112のスコアの初期値は所定値に設定されている。所定値は任意の値を採用可能であり、例えば値0でもよい。
Next, the
続いて、CPU201は、応答候補ルールデータリストtransCandidatesから参照される、今回追加された応答候補ルールデータ112のスコアに、メモリ202上に保持されている変数である状態番号係数の2乗値を累算する(ステップS608)。前述したように、状態番号係数は、オートマトンの現在の状態番号以外の状態番号を含むルールデータ110を採用する場合に、その状態番号をどの程度重要視するかを決定するための重みデータである。
Subsequently, the
次に、CPU201は、応答候補ルールデータリストtransCandidatesから参照される、ステップS606で追加された応答候補ルールデータ112としてのルールデータ110のスコアの値を、下記(1)式に従い、コサイン類似度に変換する(ステップS609)。「sqrt()」は、平方根を計算する演算を示す。「Ctrl.score_coef」は、図3(a)の制御データの先頭アドレスCtrlから参照される評価係数であり、図5のステップS503、S508、S510などで算出されている値である。また、「transCandidates->score」は、メモリ202上の今回追加された応答候補ルールデータ112のスコア変数値を示している。
Next, the
transCandidates->score
=sqrt(transCandidates->score)
×Ctrl.score_coef ・・・(1)
transCandidates->score
=sqrt(transCandidates->score)
x Ctrl. score_coef (1)
上記(1)式により、共分散と、新たな応答候補ルールデータ112としてのルールデータ110に対応する標準偏差がここまでで計算されるので、これに前述した入力単語組に対応する標準偏差の逆数である評価係数が乗算されることにより、相関係数が算出できることになる。
Since the covariance and the standard deviation corresponding to the
次に、CPU201は、ステップS613の処理からステップS601に戻り、次のルールデータに対する検索処理を繰り返し実行する。
Next, the
一方、ステップS605の判定がNO、すなわち、ステップS601で見つかったルールデータ110の状態番号:state_idが、ステップS604又はS611によって選択された現在のスタック状態番号NSAと一致しなければ、CPU201は、スタック配列中のスタック状態番号NSAの検索が終了したか否かを判定する(ステップS610)。このステップS610の判定がNOのときには、そのときに読みだされているスタック状態番号NSAよりも一つ前に記憶されたスタック状態番号NSAを読み出す(ステップS611)とともに、状態番号係数に所定の減衰係数(1.0>減衰係数>0)を乗算し(ステップS612)、ステップS605に戻る。
On the other hand, if the determination in step S605 is NO, that is, if the state number: state_id of the
一方、上記ステップS610の判定がYESで、状態番号のスタック配列中のスタック状態番号NSAの検索が終了したときには、前記ステップS613以降を実行する。 On the other hand, when the determination in step S610 is YES and the search for the stack state number NSA in the stack array of state numbers is completed, steps S613 and subsequent steps are executed.
一方、ステップS613の判定がYESで、全てのルールデータ110の検索が終了したときには、ステップS614及びS615において、ワイルドカードリスト検索処理及びスーパーワイルドカードリスト検索処理をそれぞれ、後述するようにして実行し、本処理を終了する。
On the other hand, when the determination in step S613 is YES and the search for all
以上により、図6に示すルール検索処理では、ステップ601で見つかったルールデータ110の状態番号が、ステップS604で読みだされた最初のスタック状態番号NSAと、すなわちオートマトンの現在状態と一致する場合(ステップS605:YES)には、ステップS603で値1.0に設定された状態番号係数がそのまま用いられ、ステップS608で累算される。
As described above, in the rule search process shown in FIG. 6, when the state number of the
一方、ステップ601で見つかったルールデータの状態番号が最初のスタック状態番号NSAと一致しない場合(ステップS605:NO)には、スタック配列に記憶されたスタック状態番号NSAが新しいものから順に読みだされ(ステップS611)、状態番号係数に減衰係数が乗算される(ステップS612) とともに、再度ステップS605が実行され、読みだされたスタック状態番号NSAに、ルールデータ110位に含まれるオートマトンの状態番号が一致するか否かが判定される。そして、すべてのスタック状態番号NSAの検索が終了しない限り(ステップS610:NO)、ステップS605がYESになるまで、ステップS611及びS612が繰り返し実行される。 On the other hand, if the state number of the rule data found in step 601 does not match the first stack state number NSA (step S605: NO), the stack state numbers NSA stored in the stack array are read out from the newest one. (Step S611), the state number coefficient is multiplied by the attenuation coefficient (Step S612), and step S605 is executed again. A match is determined. Steps S611 and S612 are repeatedly executed until step S605 becomes YES unless the retrieval of all stack state numbers NSA is completed (step S610: NO).
これにより、ステップS611で読みだされるスタック状態番号NSAがより過去のものになるほど、値1.0よりも小さい減衰係数が状態番号係数に乗算される回数がより多くなる結果、状態番号係数は、より小さな値に設定される。この場合、例えば減衰係数が値0.9の場合には、状態番号係数は、ステップS603で設定される初期値の値1.0から、減衰係数が乗算されるたびに、0.9→0.81、・・・というように減衰される。そして、ステップS605の判定がYESになると、減衰された状態番号係数を用いて応答候補ルールデータ112のスコアが算出される(ステップS608)。 As a result, the older the stack state number NSA read in step S611 is, the more times the state number coefficient is multiplied by an attenuation factor smaller than 1.0. , is set to a smaller value. In this case, for example, when the damping coefficient is 0.9, the state number coefficient is changed from 1.0, which is the initial value set in step S603, to 0.9→0 each time the damping coefficient is multiplied. .81, . . . Then, if the determination in step S605 becomes YES, the score of the response candidate rule data 112 is calculated using the attenuated state number coefficient (step S608).
図7は、図4のステップS407の応答文出力処理の詳細例を示すフローチャートである。まずCPU201は、応答候補ルールデータリストtransCandidates中の各応答候補ルールデータ112としてのルールデータ110のスコアに基づいて、最尤の(スコアが最も高い)候補のルールデータ110を、図1の応答ルールデータ113として決定する(ステップS701)。
FIG. 7 is a flowchart showing a detailed example of response sentence output processing in step S407 of FIG. First, the
続いて、CPU201は、ステップS701の最尤候補のルールデータ110が有する応答文:bot_reply(図3(c)参照)を、図2の音声出力装置209に出力する(ステップS702)。音声出力装置209は、応答文:bot_replyに対応するデジタル音声応答信号を合成し、そのデジタル音声応答信号を内蔵のD/A変換器にてアナログ音声応答信号に変換し、そのアナログ音声応答信号をアンプ及びスピーカを介してユーザに向かって放音する。なお、上記応答文:bot_replyの音声信号を放音せずに、上記応答文:bot_replyのテキストデータが、出力装置204のディスプレイに表示されてもよい。
Subsequently, the
続いて、CPU201は、最尤候補のルールデータ110の遷移先状態番号:next_state_id(図3(c)参照)を取得する(ステップS703)。
Subsequently, the
そして、CPU201は、ステップS702で取得した遷移先状態番号が、状態番号のスタック配列:state_id(=図1のスタック状態番号NSA)上で連続しないようにして、遷移先状態番号を、スタック状態番号NSAとして上記スタック配列にプッシュする(ステップS704)。この場合、本処理の初回の実行時、すなわち、状態番号のスタック配列に何もスタック状態番号NSAがスタックされていないときには、現在の状態番号及び遷移先状態番号を、この順にスタック配列にプッシュする。
Then, the
図8、図9、及び図10は、上述した処理の動作例を示している。図8(b)、図9、及び図10は、オートマトンの状態番号が状態番号0から状態番号4まで遷移する場合の動作例を示している。また、図8(a)は、図8(b)、図9、及び図10に示す動作例に関する凡例を示している。太い実線の丸で囲まれた数字(X=0、1、2、3、4)はオートマトンの状態番号を示している。また、シャープ記号が付与されている破線枠#X-iは、オートマトンの状態番号が状態番号Xである場合におけるi番のルールデータ110(図1参照)を示している。このルールデータ110において、濃い色の枠は、そのルールデータ110が選択されるための「条件」を示している。また、左側に向いている吹出し枠中のテキストは、ユーザから取得される入力発話情報(図1の入力発話情報115に対応)に対する形態素解析により得られる入力単語組(図1の入力単語組111に対応)がマッチすべき想定入力単語組(図1参照)を示している。そして、右側に向いている吹出し枠中のテキストは、応答文(図1参照)のテキストを示している。
8, 9, and 10 show operation examples of the processing described above. FIGS. 8B, 9, and 10 show an operation example when the state number of the automaton transitions from
ここで、ユーザによる入力文と入力単語組の取得方法については、前述したとおりである。この入力単語組のテキストデータは、図1の入力単語組111に対応しているが、以下単に「入力単語組」と記載したときは図1の入力単語組111に対応しているものとする。 Here, the method of acquiring the sentence input by the user and the input word set is as described above. The text data of this input word set corresponds to the input word set 111 in FIG. 1, but hereinafter simply referred to as "input word set" corresponds to the input word set 111 in FIG. .
例えば、図8(b)に示されるオートマトンの状態番号が0である場合には、会話のスタート時の一般的な話の導入を行うためのルールデータ群が対応付けられている状態である。この状態番号0において、ルールデータ110[#0-0]は、例えばユーザが喋ることにより、入力文に対応する入力単語組として「好き」という単語を含む疑問文が与えられたときには、「どうかな、わからないな」というテキストに対応する応答文を出力するためのルールデータである。また、この動作例では、このルールデータ110[#0-0]による応答文が出力された(図7のステップS702)後には、ルールデータ110[#0-0]の破線枠から出力する実線矢印として示されるように、オートマトンの状態番号は現在の状態番号0を維持する(図7のステップS703でルールデータ110[#0-0]から遷移先状態番号=0が取得され、ステップS704でスタックにプッシュされる)。この実線矢印は、図1のルールデータ110における次遷移先状態番号に対応する。図8(b)に示される状態番号0におけるルールデータ110[#0-1]、[#0-3]についても同様である。
For example, when the state number of the automaton shown in FIG. 8(b) is 0, it is in a state in which a rule data group for introducing a general speech at the start of a conversation is associated. In this
一方、図8(b)に示される状態番号0におけるルールデータ110[#0-2]は、入力文「動物の話」の疑問文に対応する「動物」「話」という2つの単語を含む入力単語組が与えられたときには、「うん、動物の話をしよう」というテキストに対応する応答文を出力するためのルールである。また、この動作例では、このルールデータ110[#0-2]による応答文が出力された(ステップS702)後には、ルールデータ110[#0-2]の破線枠から出力する実線矢印を太い破線の丸で囲まれた「1」に付すことで示されるように、オートマトンの状態番号が、現在の状態番号0から図9に示される状態番号1に遷移する(図7のステップS703でルールデータ110[#0-2]から遷移先状態番号=1が取得され、ステップS704でスタックにプッシュされる)。
On the other hand, the rule data 110 [#0-2] in
図9に示されるオートマトンの状態番号が状態番号1である場合は、動物に関する話題を会話するためのルールデータ群が対応付けられている状態である。例えばルールデータ110[#1-0]は、入力文から生成される入力単語組が単語「猫」を含むときに猫に関する一般的な話題として「猫の目って大きいよね」という応答文を出力するためのルールである。また、ルールデータ110[#1-1]は、入力文から生成される入力単語組が単語「目」を含むときに猫の目に関する一般的な話題として「猫の目って大きいよね」という応答文を出力するためのルールである。これらのルールデータ110[#1-0]や[#1-1]が出力された(図7のステップS702)後には、ルールデータ110[#1-0]や[#1-1]の各破線枠から出力する実線矢印を太い破線の丸で囲まれた「2」に付すことで示されるように、オートマトンの状態番号が、図9に示される現在の状態番号1から図10に示される状態番号2に遷移する(図7のステップS703でルールデータ110[#1-0]又は[#1-1]から遷移先状態番号=2が取得され、ステップS704でスタックにプッシュされる)。
When the state number of the automaton shown in FIG. 9 is
一方、図9の状態1において、例えばルールデータ110[#1-2]は、入力文から生成される入力単語組がキーワード「狐」を含むときに狐に関する一般的な話題として「狐って夜に行動するイメージあるよね」という応答文を出力するためのルールである。また、ルールデータ110[#1-3]は、入力文から生成される入力単語組が単語「目」を含むときに狐の目に関する一般的な話題として「狐って目が猫みたいかも」という応答文を出力するためのルールである。これらのルールデータ110[#1-2]や[#1-3]が出力された(図7のステップS702)後には、ルールデータ110[#1-2]や[#1-3]の各破線枠から出力する実線矢印を太い破線の丸で囲まれた「4」に付すことで示されるように、オートマトンの状態番号が、図9に示される現在の状態番号1から図9に示される状態番号4に遷移する(図7のステップS703でルールデータ110[#1-2]又は[#1-3]から遷移先状態番号=4が取得され、ステップS704でスタックにプッシュされる)。
On the other hand, in
なお、猫の話題に関するルールデータ110[#1-1]と狐の話題に関するルールデータ110[#1-3]は、共に入力文から生成される入力単語組が単語「目」を含むときに選択され得るが、どちらが選択されるかは、入力単語組と各ルールデータ110の想定入力単語組との類似度(コサイン類似度)を算出するときの条件によって変化し得る(図5及び図6のステップS607、S608、S609、図7のステップS701)。このような構成により、対話が画一的になるのを回避している。 Note that both the rule data 110 [#1-1] regarding the topic of cats and the rule data 110 [#1-3] regarding the topic of foxes are generated when the input word set generated from the input sentence includes the word "eyes". However, which one is selected may change depending on the conditions for calculating the degree of similarity (cosine similarity) between the input word set and the assumed input word set of each rule data 110 (FIGS. 5 and 6). (steps S607, S608, S609, step S701 in FIG. 7). Such a configuration avoids the dialogue from becoming uniform.
図9の状態番号1におけるルールデータ110[#1-0]又はルールデータ110[#1-1]が選択された後に遷移する図10の状態番号2の状態、更に状態番号2から遷移する状態番号3の状態は、猫についての更に深い話題に関するルールデータ110群に対応している。一方、図9の状態番号1におけるルールデータ110[#1-2]又はルールデータ110[#1-3]が選択された後に遷移する図9の状態番号4の状態は、狐のお話(童話等)についての話題に関するルールデータ110群に対応している。
The state of
図9の状態番号1におけるルールデータ110[#1-4]は、入力文として「そうなんだ」というような曖昧な内容に対応する入力単語組が与えられたときに、「そうだと思うの」というような同様の曖昧な応答文を返すためのルールである。ルールデータ110[#1-4]が出力された(図7のステップS702)後には、ルールデータ110[#1-4]の破線枠から出る実線矢印を太い実線の丸で囲まれた「1」に戻して付することで示されるように、オートマトンの状態番号が、図9に示される状態番号1を維持する(図7のステップS703でルールデータ110[#1-4]から遷移先状態番号=1が取得され、ステップS704でスタックの先頭に1が記憶されたままとされる)。
The rule data 110 [#1-4] in
図11は、図8から図9に例示されるオートマトンに対応する図6のルール検索処理の具体的な動作例を示す図である。まず、オートマトンの状態番号0において、ユーザが例えば喋ることにより、入力文In[0]として「動物の話でもしようか」が入力され、これに対応して「動物」「話」という2つの単語からなる入力単語組が形態素解析により生成されたとする。これに対して、メモリ202又は補助情報記憶装置205に記憶されている図3(c)の複数のルールデータ110のうち、その想定入力単語の配列中の想定入力単語組userWords[0]、userWords[1](図3(c)参照)が、上記入力単語組「動物」「話」に包含される(ここでは、「一致する」)ルールデータ110が検索される(図6のステップS601)。この結果、現在の状態番号state_id(図3(c)参照)が図8(b)のオートマトンの状態番号0と一致し、想定入力単語組userWords[0]、userWords[1](図3(c)参照)が入力単語組「動物」「話」に包含される(又は、一致する)1つのルールデータ110[#0-2]が検索される。また、ステップS601では説明しなかったが、入力文In[0]が「タイプ」として「提案」型の疑問文であり「肯定/否定」項目として「肯定」を有するものと判定され、図11の入力文In[0]に対応させられて、ルールデータ110[#0-2]が検索され、応答候補ルールデータ112とされる(図6のステップS605の1回目の判定でYESとなりステップS606へ)。
FIG. 11 is a diagram showing a specific operation example of the rule search processing in FIG. 6 corresponding to the automaton illustrated in FIGS. 8 to 9. In FIG. First, in the
次に、図11に示されるように、この1つの応答候補ルールデータ112[#0-2]が、入力文In[0]に対応する応答ルールデータ113として選択される(図7のステップS701)。この結果、図11に示されるように、応答ルールデータ113として選択されたルールデータ110[#0-2]の応答文bot_reply(図3(c)参照)が、応答文Out[0]=「うん、動物の話をしよう」(図11参照)、すなわち応答文114(図1参照)として生成され、出力される(ステップS702)。それに伴い、応答ルールデータ113として選択されたルールデータ110[#0-2]が参照され、このルールデータ110[#0-2]に次遷移先状態番号next_state_idとして値1が含まれるので(図7のステップS703)、オートマトンの状態番号が、いままでの状態番号0から状態番号1に遷移する(図7のステップS704)。
Next, as shown in FIG. 11, this one response candidate rule data 112[#0-2] is selected as the response rule data 113 corresponding to the input sentence In[0] (step S701 in FIG. 7). ). As a result, as shown in FIG. 11, the response text bot_reply (see FIG. 3(c)) of the rule data 110 [#0-2] selected as the response rule data 113 becomes the response text Out[0]=“ Yes, let's talk about animals" (see FIG. 11), that is, is generated and output as the response sentence 114 (see FIG. 1) (step S702). Along with this, the rule data 110 [#0-2] selected as the response rule data 113 is referred to, and the rule data 110 [#0-2] contains the
このとき、応答ルールデータ113として選択されたルールデータ110[#0-2]のように、初めて選択された応答ルールデータ113である場合には、そのルールデータ110[#0-2]の現在の状態番号state_id(図3(c)参照)の値0が、まずスタック状態番号NSAとして、状態番号のスタック配列:state_id(図3(a)参照)にプッシュされて記憶され、続いて、ルールデータ110[#0-2]の次遷移先状態番号next_state_idの値1が、次のスタック状態番号NSAとして、状態番号のスタック配列:state_id(図3(a)参照)に更にプッシュされて記憶される(図7のステップS704)。この場合、状態番号0が、1回前の過去のスタック状態番号NSAとして記憶され、次遷移先状態番号1が、最新のスタック状態番号NSAとして記憶されることになる。
At this time, if the response rule data 113 is selected for the first time like the rule data 110 [#0-2] selected as the response rule data 113, the current rule data 110 [#0-2] The
またこのとき、図7のフローチャートには記載していないが、図1の応答文記憶部105に対応するメモリ202又は補助情報記憶装置205(図2参照)内の応答文記憶部(図示せず)に、応答ルールデータ113として選択されたルールデータ#0-2の応答文Out[0]=「うん、動物の話をしよう」が記憶される。 Also, at this time, although not shown in the flowchart of FIG. ), the response sentence Out[0]=“Yes, let's talk about animals” of the rule data #0-2 selected as the response rule data 113 is stored.
次に、遷移後のオートマトンの状態番号1において、入力文In[1]として「猫を飼おうと思うんだけど」が入力され、これに対する形態素解析により単語「猫」を含む入力単語組111が生成されたとする。これに対して、図3(c)の複数のルールデータ110のうち、その想定入力単語の配列中の想定入力単語組userWords[0](図3(c)参照)が上記入力単語組「猫」に包含される(又は、一致する)ルールデータ110が検索される(図6のステップS601)。この結果、現在の状態番号state_id(図3(c)参照)が図9のオートマトンの状態番号1と一致し、想定入力単語組userWords[0]、userWords[1](図3(c)参照)が入力単語組「猫」に包含される(又は、一致する)1つのルールデータ110[#1-0]が検索される。また、入力文In[1]が「タイプ」として「その他」型の疑問文であり「肯定/否定」項目として「肯定」を有するものと判定され、図11の入力文In[1]に対応させられて、ルールデータ110[#1-0]が応答候補ルールデータ112として検索される(図6のステップS605の1回目の判定でYESとなりステップS606へ)。
Next, in
次に、図11に示されるように、この1つの応答候補ルールデータ112[#1-0]が、入力文In[1]に対応する応答ルールデータ113として選択される(図7のステップS701)。この結果、図11に示されるように、応答ルールデータ113として選択されたルールデータ110[#1-0]の応答文bot_reply(図3(c)参照)が、応答文Out[1]=「猫の目って大きいよね」(図11参照)、すなわち応答文114(図1参照)として生成され、出力される(ステップS702)。それに伴い、応答ルールデータ113として選択されたルールデータ110[#1-0]が参照され、このルールデータ110[#1-0]に次遷移先状態番号next_state_idとして値2が含まれるので(図7のステップS703)、オートマトンの状態番号が、いままでの状態番号1から状態番号2に遷移する(図7のステップS704)。
Next, as shown in FIG. 11, this one response candidate rule data 112[#1-0] is selected as the response rule data 113 corresponding to the input sentence In[1] (step S701 in FIG. 7). ). As a result, as shown in FIG. 11, the response text bot_reply (see FIG. 3(c)) of the rule data 110[#1-0] selected as the response rule data 113 becomes the response text Out[1]=“ Cat's eyes are big, aren't they?" (see FIG. 11), that is, is generated and output as response sentence 114 (see FIG. 1) (step S702). Along with this, the rule data 110 [#1-0] selected as the response rule data 113 is referred to, and this rule data 110 [#1-0] contains the
このとき、応答ルールデータ113として選択されたルールデータ110[#1-0]のように、2回目以降に選択された応答ルールデータ113である場合には、そのルールデータ110[#1-0]に含まれる次遷移先状態番号next_state_idの値2が、最新のスタック状態番号NSAとして、状態番号のスタック配列:state_id(図3(a)参照)にプッシュされて記憶される(ステップS704)。 At this time, if the rule data 110 [#1-0] selected as the response rule data 113 is the response rule data 113 selected after the second time, the rule data 110 [#1-0] ] is pushed to the state number stack array: state_id (see FIG. 3A) and stored as the latest stack state number NSA (step S704).
またこのとき、図6のフローチャートには記載していないが、前述した応答文記憶部に、応答ルールデータ113として選択されたルールデータ110[#1-0]の応答文Out[1]=「猫の目って大きいよね」が記憶される。 Also, at this time, although not shown in the flowchart of FIG. Cats have big eyes." is remembered.
次に、遷移後のオートマトンの状態番号2において、入力文In[2]として「そうだね、目が大きくて可愛いよね」が入力され、単語「目」を含む入力単語組111が生成されたとする。これに対して、図3(c)の複数のルールデータ110のうち、その想定入力単語の配列中の想定入力単語組userWords[0](図3(c)参照)が上記入力単語組「目」に包含される(又は、一致する)ルールデータ110が検索される(ステップS601)。
Next, assume that in
この結果、図6のステップS601→S602→S613→S601のループ処理により、想定入力単語組userWords[0](図3(c)参照)が入力単語組「目」に包含される(又は、一致する)のに加えて、現在の状態番号state_id(図3(c)参照)がオートマトンの状態番号2と一致する1つのルールデータ110[#2-0]と、現在の状態番号state_id(図3(c)参照)が状態番号1と一致するルールデータ110[#1-1]、[#1-3]とが順次検索されて、順次ステップS602の判定がYESとなる。続いて、その後のステップS603からS612において、ルールデータ110[#2-0]については、そのオートマトンの状態番号2が状態番号のスタック配列:state_id(図3(a)参照)の一番上にプッシュされている最新のスタック状態番号NSA(=2)と一致し、それにより1回目のステップS605でYESと判定される結果、そのスコアに、状態番号係数=1が累算される(ステップS608)。同様に、ルールデータ110[#1-1]及び[#1-3]については、それらのオートマトンの状態番号が状態番号のスタック配列:state_id(図3(a)参照)の一番上から2番目にプッシュされているスタック状態番号NSA(=1)と一致し、それにより2回目のステップS605でYESと判定されることにより、ステップS612がそれぞれ1回ずつ実行される結果、それぞれのスコアに、状態番号係数=1×0.9=0.9が累算される(ステップS612、S608)。
As a result, the assumed input word set userWords[0] (see FIG. 3C) is included in the input word set "me" (or matched ), one rule data 110 [#2-0] whose current state number state_id (see FIG. 3(c)) matches the
以上より、そのスコアが1.0倍されたルールデータ110[#2-0]と、それぞれのスコアが0.9倍されたルールデータ110[#1-1]及び[#1-3]とが、応答候補ルールデータリストtransCandidatesにそれぞれ応答候補ルールデータ112として取得される。 From the above, rule data 110 [#2-0] whose score is multiplied by 1.0, and rule data 110 [#1-1] and [#1-3] whose respective scores are multiplied by 0.9 are acquired as response candidate rule data 112 in the response candidate rule data list transCandidates.
次に、図6のフローチャートには示されていないが、ルールデータ110[#2-0]と、ルールデータ110[#1-1]及び[#1-3]について、それぞれの応答文114が前述した応答文記憶部に登録されているか否かが判定される。これにより、ルールデータ110[#2-0](図10)とルールデータ110[#1-1](図9)の応答文=「猫の目って大きいよね」が、応答文Out[1]として出力されていて上記応答文記憶部に登録されていることが判定される。この結果、同じ応答文114が続けて出力されてしまうことを避けるために、ルールデータ110[#2-0](図10)とルールデータ110[#1-1](図9)は選択されずに、ルールデータ110[#1-3]が、図11に示されるように、入力文In[2]に対応する応答ルールデータ113として選択される。 Next, although not shown in the flow chart of FIG. 6, the respective response sentences 114 for the rule data 110 [#2-0] and the rule data 110 [#1-1] and [#1-3] are: It is determined whether or not it is registered in the above-described response sentence storage unit. As a result, the response sentence of the rule data 110[#2-0] (FIG. 10) and the rule data 110[#1-1] (FIG. 9)=“Cat's eyes are big, aren't they?” ] and registered in the response sentence storage unit. As a result, rule data 110 [#2-0] (FIG. 10) and rule data 110 [#1-1] (FIG. 9) are selected in order to avoid outputting the same response sentence 114 in succession. First, the rule data 110[#1-3] is selected as the response rule data 113 corresponding to the input sentence In[2], as shown in FIG.
この結果、図11に示されるように、応答ルールデータ113として選択されたルールデータ110[#1-3]の応答文bot_reply(図3(c)参照)が、応答文Out[2]=「狐って目が猫みたいかも」(図11参照)、すなわち応答文114(図1参照)として生成され、出力される(ステップS702)。それに伴い、応答ルールデータ113として選択されたルールデータ110[#1-3]が参照され、このルールデータ110[#1-3]に次遷移先状態番号next_state_idとして値2が含まれるので(図7のステップS703)、次に選択すべきルールデータ110を表すオートマトンの状態番号が、いままでの状態番号2を維持する(図7のステップS704)。
As a result, as shown in FIG. 11, the response text bot_reply (see FIG. 3(c)) of the rule data 110 [#1-3] selected as the response rule data 113 becomes the response text Out[2]=“ A fox might have eyes like a cat' (see FIG. 11), that is, it is generated and output as the response sentence 114 (see FIG. 1) (step S702). Along with this, the rule data 110 [#1-3] selected as the response rule data 113 is referred to, and the rule data 110 [#1-3] contains the
このとき、応答ルールデータ113として選択されたルールデータ110[#1-3]は2回目以降に選択された応答ルールデータ113であるため、そのルールデータ110[#1-3]に含まれる次遷移先状態番号next_state_idの値2が、最新のスタック状態番号NSAとして、状態番号のスタック配列:state_id(図3(a)参照)にプッシュされて記憶される(ステップS704)。
At this time, since the rule data 110 [#1-3] selected as the response rule data 113 is the response rule data 113 selected after the second time, the next rule data included in the rule data 110 [#1-3] The
またこのとき、図6のフローチャートには記載していないが、前述した応答文記憶部に、応答ルールデータ113として選択されたルールデータ110[#1-3]の応答文Out[2]=「狐って目が猫みたいかも」が記憶される。 Also, at this time, although not shown in the flowchart of FIG. A fox might have eyes like a cat' is remembered.
次に、遷移後のオートマトンの状態番号2において、入力文In[3]として「急に狐の話になるのね」が入力され、単語「狐」を含む入力単語組111が生成されたとする。これに対して、図3(c)の複数のルールデータ110のうち、その想定入力単語組userWords[0](図3(c)参照)が上記入力単語組「狐」に包含される(又は、一致する)ルールデータ110が検索される(ステップS601)。
Next, in
この結果、図6のステップS601→S602→S613→S601のループ処理において、図9のオートマトンの現在の状態番号2を現在の状態番号state_id(図3(c)参照)として含むルールデータ110には、「狐」を想定入力単語の配列userWords[](図3(c)参照)に含むルールデータ110は存在しないが、図9に例示されるように、状態番号1を現在の状態番号state_id(図3(c)参照)として含むルールデータ110中に、「狐」を想定入力単語の配列userWords[](図3(c)参照)に含むルールデータ110[#1-2]が検索されて、ステップS602の判定がYESとなる。続いて、その後のステップS603からS612において、ルールデータ110[#1-2]については、そのオートマトンの状態番号1が状態番号のスタック配列:state_idの最新の状態番号2よりも先にプッシュされている過去のスタック状態番号NSA(=1)と一致し、それにより2回目のステップS605でYESと判定される結果、ステップS612が1回実行される結果、そのスコアに、状態番号係数=1×0.9=0.9が乗算される(ステップS612、S608)。
As a result, in the loop processing of steps S601→S602→S613→S601 in FIG. 6, the
以上より、ルールデータ110[#1-2]のみが、応答候補ルールデータリストtransCandidatesに応答候補ルールデータ112として取得される。 As described above, only rule data 110 [#1-2] is acquired as response candidate rule data 112 in the response candidate rule data list transCandidates.
次に、図11に示されるように、応答候補ルールデータ112として取得されたルールデータ110[#1-2]が、入力文In[3]に対応する応答ルールデータ113として選択される(ステップS701)。この結果、図11に示されるように、応答ルールデータ113として選択されたルールデータ110[#1-2]の応答文bot_reply(図3(c)参照)が、応答文Out[3]=「狐って夜に行動するイメージあるよね」(図11参照)、すなわち応答文114(図1参照)として生成され、出力される(ステップS702)。その後、応答ルールとして選択されたルールデータ110[#1-2]が参照され、このルールデータ110[#1-2]に次遷移先状態番号next_state_idとして値4が含まれるので(図7のステップS703)、オートマトンの状態番号が、いままでの状態番号2から状態番号4に遷移する(図7のステップS704)。
Next, as shown in FIG. 11, the rule data 110 [#1-2] acquired as the answer candidate rule data 112 is selected as the answer rule data 113 corresponding to the input sentence In[3] (step S701). As a result, as shown in FIG. 11, the response text bot_reply (see FIG. 3(c)) of the rule data 110 [#1-2] selected as the response rule data 113 becomes the response text Out[3]=“ There is an image that foxes act at night.” (see FIG. 11), that is, is generated and output as response sentence 114 (see FIG. 1) (step S702). After that, the rule data 110 [#1-2] selected as the response rule is referred to, and since this rule data 110 [#1-2] contains the
このとき、応答ルールデータ113として選択されたルールデータ110[#1-2]は2回目以降に選択された応答ルールデータ113であるため、そのルールデータ110[#1-2]に含まれる次遷移先状態番号next_state_idの値4が、最新のスタック状態番号NSAとして、状態番号のスタック配列:state_idにプッシュされて記憶される(ステップS704)。
At this time, since the rule data 110 [#1-2] selected as the response rule data 113 is the response rule data 113 selected after the second time, the next rule data included in the rule data 110 [#1-2] The
またこのとき、前述した応答文記憶部に、応答ルールデータ113として選択されたルールデータ110[#1-2]の応答文Out[1]=「狐って夜に行動するイメージあるよね」が記憶される。 Also, at this time, the response sentence Out[1] of the rule data 110 [#1-2] selected as the response rule data 113 is stored in the response sentence storage unit. remembered.
更に続いて、遷移後の状態番号1において、入力文In[4]として「そうなんだ、よく知ってるね」が入力され、単語「そうなんだ」を含む入力単語組111が生成されたとする。これに対して、図3(c)の複数のルールデータ110のうち、その想定入力単語の配列中の想定入力単語組userWords[0](図3(c)参照)が上記入力単語組「そうなんだ」に包含される(又は、一致する)ルールデータ110が検索される(ステップS601)。
Further, in
この結果、図6のステップS601→S602→S613→S601のループ処理において、図9のオートマトンの現在の状態番号4を現在の状態番号state_id(図3(c)参照)として含むルールデータ110には、「そうなんだ」を想定入力単語の配列userWords[](図3(c)参照)に含むルールデータ110は見つからないが、図9に例示されるように、オートマトンの状態番号1を現在の状態番号state_id(図3(c)参照)として含むルールデータ110中に、「そうなんだ」を想定入力単語の配列userWords[](図3(c)参照)に含むルールデータ110[#1-4]が検索されて、ステップS602の判定がYESとなる。続いて、その後のステップS603からS612において、ルールデータ110[#1-4]については、そのオートマトンの状態番号1が状態番号のスタック配列:state_idの最新のスタック状態番号NSA(=4)よりも先にプッシュされている過去のスタック状態番号NSA(=1)と一致し、それにより3回目のステップS605でYESと判定される結果、ステップS612が2回実行される結果、そのスコアに状態番号係数=1×0.9×0.9=0.81が乗算される(ステップS612、S608)。
As a result, in the loop processing of steps S601→S602→S613→S601 in FIG. 6, the
以上より、ルールデータ110[#1-4]が、応答候補ルールデータリストtransCandidatesに応答候補ルールデータ112として取得される。 As described above, the rule data 110 [#1-4] is acquired as the response candidate rule data 112 in the response candidate rule data list transCandidates.
次に、図11に示されるように、応答候補ルールデータ112として取得されたルールデータ110[#1-4]について、その応答文bot_reply(図3(c)参照)が、応答文Out[4]=「そうだと思うの」が前述した応答文記憶部に登録されているか否かがチェックされる。この結果、上記の応答文Out[4]=「そうだと思うの」が応答文記憶部に登録されていないことが、判定される。この結果、オートマトンの状態番号1を含むルールデータ110[#1-4]が、図11に示されるように、入力文In[4]に対応する応答ルールデータ113として選択される(ステップS701)。そして、図11に示されるように、ルールデータ113として選択されたルールデータ110[#1-4]の応答文bot_reply(図3(c)参照)が、応答文Out[4]=「そうだと思うの」(図11参照)、すなわち応答文114(図1参照)として生成され、出力される(ステップS702)。そそれに伴い、応答ルールデータ113として選択されたルールデータ110[#1-4]が参照され、このルールデータ110[#1-4]に次遷移先状態番号next_state_idとして値1が含まれるので(図7のステップS703)、次に選択すべきルールデータ110を表すオートマトンの状態番号が、いままでの状態番号1を維持する(図7のステップS704)。
Next, as shown in FIG. 11, for rule data 110 [#1-4] acquired as response candidate rule data 112, the response sentence bot_reply (see FIG. 3(c)) is the response sentence Out[4]. ]="I think so" is checked whether or not it is registered in the above-described response sentence storage unit. As a result, it is determined that the response sentence Out[4]=“I think so” is not registered in the response sentence storage unit. As a result, the rule data 110 [#1-4] including the
このとき、応答ルールデータ113として選択されたルールデータ110[#1-4]は2回目以降に選択された応答ルールデータ113であるため、そのルールデータ110[#1-4]に含まれる次遷移先状態番号next_state_idの値1が、最新のスタック状態番号NSAとして、状態番号のスタック配列:state_id(図3(a)参照)にプッシュされて記憶される(ステップS704)。
At this time, since the rule data 110 [#1-4] selected as the response rule data 113 is the response rule data 113 selected after the second time, the next rule data included in the rule data 110 [#1-4] The
またこのとき、図6のフローチャートには記載していないが、前述した応答文記憶部に、応答ルールデータ113として選択されたルールデータ#1-4の応答文Out[4]=「そうだと思うの」(応答文114)が記憶される。 At this time, although not shown in the flow chart of FIG. of” (response sentence 114) is stored.
また、図8(b)に示されるオートマトンの状態番号0を含むルールデータ110[#0-3]は、入力文の項目が「*」になっている。これは、「どんな単語(形態素)でも該当するものとして扱う」という単語一致条件を持つルールである。そして、例えば、入力文として、状態番号0を含む他のどのルールデータ110[#0-0]~[#0-2]にも設定されていないキーワード(かつ疑問文等の条件は無し)が与えられた場合に、「え、何か言った?」というような応答文を出力するためのルールである。この「*」をワイルドカードと呼ぶ。ルールデータ110[#0-3]の破線枠から出る実線矢印によって、ルールデータ110[#0-3]が選択された後は、選択前と同じ状態番号0を維持することが示されている(すなわち、次遷移先状態番号が0)。このようなワイルドカードのルールデータを設定することにより、曖昧な対話を実現することが可能となる。
In the rule data 110 [#0-3] including the
図10に示されるオートマトンの状態番号3を含むルールデータ110[#3-2]は、入力文の項目が「#」になっている。これをスーパーワイルドカードと呼ぶ。スーパーワイルドカードは、ワイルドカードの場合と同様の「どんな単語(形態素)でも該当するものとして扱う」という単語一致条件を持つが、ルールデータ110として、オートマトンの現在の状態番号と一致する状態番号を含むもののみが応答候補ルールデータ112として追加され、このルールデータ110が候補に追加された段階で、他の状態のルールデータ110は応答候補ルールデータリストから削除される。上述のワイルドカードに似て、入力文として、状態番号3を含む他のどのルールデータ110[#3-0]~[#3-1]にも設定されていないキーワード(かつ疑問文等の条件は無し)が与えられた場合に、「触ってみたいよう」というような応答文を出力するためのルールである。ここで例えば、ルールデータ110[#3-3]の破線枠から出る実線矢印によって、ルールデータ110[#3-3]が選択された後は、選択前とは異なる状態番号(例えば状態番号2)に遷移する。このように、スーパーワイルドカードのルールデータ110にしかるべき遷移先が記載されているときには、他の状態番号に遷移する挙動が実現できる。このようなスーパーワイルドカードのルールデータ110を設定することにより、対話が詰まったときに話題を大きく変えるような対話を実現することが可能となる。或いは、例えばシステム的に満足のいく回答が得られるまで同じ状態に滞留する、すなわち同じ質問を繰り返すなどの挙動を実現することも可能である。
In the rule data 110 [#3-2] including the
図6のルール検索処理において、現在の入力単語組に対して全てのルールデータの検索が終了しステップS613の判定がYESになった後に、CPU201は、上述したワイルドカード及びスーパーワイルドカードについても、前述のステップS601からS613の処理の場合と同様の検索処理を実行する。その詳細については省略する。
In the rule search process of FIG. 6, after the search of all rule data for the current input word set is completed and the determination in step S613 becomes YES, the
なお、前述しようたに、スーパーワイルドカードは、それに対応するルールデータ110が応答ルールデータ113(図1参照)として選択された後は、選択前とは異なる状態番号にオートマトンの状態番号が遷移するという性格上、このルールデータ110に含まれる状態番号は、状態番号のスタック配列:state_id(=図1のスタック状態番号NSA)に同じ番号のスタック状態番号NSAが含まれているか否かにかかわらず、現在の状態番号と一致しないルールは応答候補ルールデータリストtransCandidatesに追加しないように制御されてよい。また、このリストにスーパーワイルドカードのルールが追加された段階で、リストからは、現在の状態番号以外の状態番号を有するルールを排除するように制御されてよい。
As described above, after the
以上、本実施形態では、データベース102に記憶される複数のルールデータ110のうち入力発話情報115に応じたルールデータ110、例えば入力発話情報115中の入力単語の組に対応した想定入力単語の組が設定されているルールデータ110が、応答ルールデータ113の候補(応答候補ルールデータ112)として選択される。また、上記複数のルールデータ110のうちオートマトンの現在の状態を含む所定の状態、例えば現在の状態又はオートマトンの状態を順次記憶する記憶部104に記憶された複数の状態に含まれる状態を示すルールデータ110が、応答ルールデータ113の候補(応答候補ルールデータ112)として選択される。そして、そのように選択された応答ルールデータ113に含まれる応答文114が出力される。これにより、本実施形態では、ユーザとの例えば対話における話の流れに沿った応答ルールデータ113に基づく応答文114を出力することができる。このとき、本実施形態では、複数のルールデータ110のうち、対応するオートマトンの状態が記憶部104に記憶された複数の状態のうちのより新しく記憶された状態と同じ状態を示すルールデータを応答ルールデータ113として優先的に選択することができる。これにより、現在の話題により良く対応する応答ルールデータ113に基づく応答文114を出力することができる。
As described above, in the present embodiment, the
本実施形態の場合と異なり、従来の対話装置では、例えば、オートマトンの現在の状態番号を含むルールデータとして適切なルールデータが設定されていないために、現在の状態番号のルールデータ110が応答ルールデータ113として選択されなかった場合には、例えばランダムに他の状態番号を含むルールデータを検索せざるを得ず、その結果、話題が唐突に切り替わるというような事態が発生していた。これに対して、本実施形態では、上述したようにして応答ルールデータ113の選択を行うことができるので、話題が唐突に切り替わるのを抑制することができ、ユーザと自然に対話できる対話装置100を提供することが可能となる。 Unlike the case of this embodiment, in the conventional interactive device, for example, appropriate rule data including the current state number of the automaton is not set. If it was not selected as the data 113, for example, rule data containing other state numbers had to be searched at random, and as a result, the topic suddenly changed. On the other hand, in the present embodiment, since the response rule data 113 can be selected as described above, the conversation apparatus 100 can suppress abrupt switching of the topic and can have a natural conversation with the user. can be provided.
また、本実施形態では、応答ルールデータ113を選択するための指標を示すスコアがルールデータ110毎に算出され、複数のルールデータ110のうちの、記憶部104に記憶された複数の状態のうちのより過去に記憶された状態と同じ状態を示すオートマトンの状態に対応するルールデータ110が応答ルールデータとして選択されにくくなるようにスコアが算出される。例えば、各ルールデータ110において、そのルールデータ110が示す状態が記憶部104においてより過去に記憶された状態であるほど値が減衰する減衰係数が、そのルールデータ110の状態番号係数に乗算され、乗算された状態番号係数がそのルールデータ110のスコアに累算される。そして、複数のルールデータ110のうち最大のスコアを有するルールデータ110が、応答ルールデータ113として選択される。このため、過去に辿ってきたユーザとの話題に基づき、かつより最近の話題により良く沿った、自然な対話が行える対話装置100を提供することが可能となる。
Further, in the present embodiment, a score indicating an index for selecting the response rule data 113 is calculated for each
また、本実施形態では、入力文(入力発話情報115)の文脈に応じてその入力文を構成する入力単語毎に可変の重みが設定され、応答候補ルールデータ112毎に、その応答候補ルールデータ112中の各想定入力単語に対応する各入力単語の重みが累算されてその応答候補ルールデータ112の入力文に対する類似度を示す類似度パラメータが算出され、その類似度パラメータに応じてその応答候補ルールデータ112に対するスコアが算出される。そして、各応答候補ルールデータ112のスコア値のうち最大のスコアを有する応答候補ルールデータ112が応答ルールデータ113として選択される。このため、入力文の文脈に応じた正しい応答ルールデータ113を選択することが可能となる。 Further, in this embodiment, a variable weight is set for each input word constituting the input sentence according to the context of the input sentence (input utterance information 115). The weight of each input word corresponding to each assumed input word in 112 is accumulated to calculate a similarity parameter indicating the similarity of the response candidate rule data 112 to the input sentence. A score is calculated for the candidate rule data 112 . Then, the candidate response rule data 112 having the maximum score among the score values of each candidate response rule data 112 is selected as the response rule data 113 . Therefore, it is possible to select correct response rule data 113 according to the context of the input sentence.
更に、本実施形態では、複数のルールデータ110の各々に含まれる想定入力単語と、入力文からの形態素解析により抽出された入力単語組111中の複数の入力単語との比較結果に基づいて、データベース101中の複数のルールデータ110から応答候補ルールデータ112が検索される。このようにして、本実施形態では、単語同士の比較により応答候補ルールデータ112が検索されるので、話題に含まれる適切な単語に基づく対話ルールの決定が可能となる。
Furthermore, in this embodiment, based on the results of comparison between the assumed input words included in each of the plurality of
加えて、本実施形態では、応答候補ルールデータ112からの応答ルールデータ113の選択において過去所定回数分の応答文を記憶した応答文記憶部105を参照することにより同じ応答文114が繰り返し出力されないようにすることができるので、対話が単調になるのを防ぐことが可能となる。
In addition, in this embodiment, when selecting response rule data 113 from response candidate rule data 112, the same response sentence 114 is not repeatedly output by referring to the response
本実施形態では、入力単語毎に重み係数を設定しているが、全ての入力単語に一律に同じ重み係数を設定してもよい。 In this embodiment, a weighting factor is set for each input word, but the same weighting factor may be set uniformly for all input words.
本実施形態では、各応答候補ルールデータのスコアとしてコサイン類似度を算出し、その大小によって複数の応答候補ルールデータ112から応答ルールデータ113が選択されるようにしたが、テキストマッチングのための各種類似度の演算が適用されてもよい。 In this embodiment, the cosine similarity is calculated as the score of each response candidate rule data, and the response rule data 113 is selected from the plurality of response candidate rule data 112 according to the magnitude of the cosine similarity. A similarity operation may be applied.
本実施形態では、応答候補ルールデータ112の状態が記憶部104に記憶されている複数のスタック状態番号NSAのうちのより過去に記憶されたスタック状態番号NSAであるほど値が減衰する減衰係数を状態番号係数に乗算し、この状態番号係数を応答候補ルールデータ112のスコアに累算し、そのスコアに応じて複数の応答候補ルールデータ112から応答ルールデータ113を選択するようにしたが、複数の状態履歴から他のアルゴリズムに基づいて過去の特定の状態に対応する応答候補ルールデータ112が優先的に応答ルールデータ113として選択されるようにしてもよい。
In the present embodiment, a damping coefficient is set such that the value of the answer candidate rule data 112 is attenuated as the stack state number NSA stored in the past among the plurality of stack state numbers NSA stored in the
本実施形態では、ルールデータ110毎に設定された想定入力単語組が入力単語組111と比較されることにより応答候補ルールデータ112が選択されるようにしたが、想定入力単語組ではなく、例えばルールデータ110中の応答文から形態素解析により得られる単語組が入力単語組111と比較されてもよい。その他、様々に設定された単語組や文と入力単語組とが比較されてもよい。
In this embodiment, the assumed input word set set for each
本実施形態では、ユーザによる発話の内容が想定外の内容である場合(入力単語組111の複数の単語が、いずれのルールデータ110の想定用入力単語組の複数の単語を包含していない場合)に非想定用ルール(ワイルドカードリスト、スーパーワイルドカードリスト)が参照されるようにしたが、想定外の内容である場合にそれらを参照せずに、所定のルールに従って対話が行われるようにしてもよく、あるいは、何も発話しないようにしてもよい。 In this embodiment, when the content of the user's utterance is unexpected content (when a plurality of words in the input word set 111 does not include a plurality of words in any of the assumed input word sets of the rule data 110) ) are made to refer to non-expected rules (wildcard list, super wildcard list), but if the contents are unexpected, they are not referred to, and dialogue is carried out according to the predetermined rules. , or may not speak at all.
本実施形態では、応答候補ルールデータ112からの応答ルールデータ113の選択において過去所定回数分の応答文を記憶した応答文記憶部105を参照することにより同じ応答文114が繰り返し出力されないようにしたが、所定のアルゴリズムに従って同じ応答文を繰り返し出力されるようにしてもよい。
In this embodiment, when selecting response rule data 113 from response candidate rule data 112, the same response sentence 114 is prevented from being repeatedly output by referring to the response
本実施形態では、データベース101中の複数のルールデータ110から入力単語組111に対応する応答候補ルールデータ112を選択し、複数の応答候補ルールデータ112の中から応答ルールデータ113を最終的に選択する手法として、図6及び図7のフローチャートで示されるアルゴリズムの手法を示したが、記憶部104に記憶された複数のスタック状態番号NSAのうちのより新しく記憶されたスタック状態番号NSAに対応する応答候補ルールデータ112が応答ルールデータ113として優先的に選択されるという条件で、様々なアルゴリズムの手法を採用することが可能である。例えば、データベース102中のルールデータ110から応答候補ルールデータ112を検索する段階から、記憶部104に記憶された複数のスタック状態番号NSA中の各状態とルールデータ112中の各状態とが比較されながら検索が行われてもよい。
In this embodiment, the candidate response rule data 112 corresponding to the input word set 111 is selected from a plurality of
上記本実施形態の構成に加えて、現在の状態番号と同じ状態番号を含むルールデータがみつかったらその時点で応答候補ルールデータリスト112の検索を終了し、記憶部104に記憶されたスタック状態番号NSAを考慮しない手法が採用されてもよい。
In addition to the configuration of this embodiment described above, when rule data containing the same state number as the current state number is found, the search of the answer candidate rule data list 112 is terminated at that point, and the stack state number stored in the
上記本実施形態では、図6において全てのルール検索が終了するまで入力単語組に包含される想定入力単語組を含むルールデータ110を検索するステップS601の処理が繰り返し実行されている。これに対して、オートマトンの現在の状態番号及びスタック配列に含まれるスタック状態番号NSAのいずれかと一致する状態番号を含むルールデータ110についてのみ、入力単語組に応じた検索が行われるようにしてもよい。
In the present embodiment described above, the process of step S601 of searching for the
更に、上記本実施形態では、減衰係数を反映させたコサイン類似度がスコアとして算出されているが、応答候補ルールデータ112毎に一旦コサイン類似度が算出されてから減衰係数を用いてスコアが減衰させられるような処理が実行されてもよい。また、減衰係数を乗算項として用いているが、減算項として用いてスコアを算出するように、スコアの算出式を設定してもよい。 Furthermore, in the above-described embodiment, the cosine similarity reflecting the attenuation coefficient is calculated as the score. A process may be performed that causes the Further, although the attenuation coefficient is used as a multiplication term, the score calculation formula may be set so that the score is calculated using the attenuation coefficient as a subtraction term.
上述の実施形態において、マイクロフォンをさらに備え、取得部106がマイクロフォンを介して入力された例えばユーザのである所定の対象の音声に基づいて、入力発話情報115を取得するようにしてよい。
また、上述の実施形態において、スピーカをさらに備え、応答文出力部103は、応答文114に対応する音声を、スピーカを介して例えばユーザである所定の対象に対して出力するようにしてもよい。
これらの構成により、例えば本実施形態による対話装置100を、ロボットやスマートフォンの対話アプリとして実現することが可能となる。
In the above-described embodiment, a microphone may be further provided, and the
Further, in the above-described embodiment, a speaker may be further provided, and the response
With these configurations, for example, the interactive device 100 according to this embodiment can be realized as an interactive application for a robot or a smartphone.
本実施形態では、対話装置100を図2のハードウェア構成例を有するコンピュータによって実行されるコンピュータプログラムとして提供することも可能となる。 In this embodiment, it is also possible to provide the interactive device 100 as a computer program executed by a computer having the hardware configuration example of FIG.
本実施形態では、ユーザからの入力文は音声データとして与えられそれに対して音声認識が実行されることにより入力文のテキストデータが与えられたが、これに限られるものではなく、ネットワークなどからメールシステムや各種メッセージングシステム、又はSNSシステムなどを介して入力文のテキストデータが直接与えられてもよい。 In this embodiment, the input sentence from the user is given as voice data, and text data of the input sentence is given by executing voice recognition on it. The text data of the input sentence may be given directly via the system, various messaging systems, SNS systems, or the like.
以上、開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができる。 While the disclosed embodiments and their advantages have been described in detail above, those skilled in the art can make various modifications, additions, and omissions without departing from the scope of the invention, which is clearly defined in the appended claims. .
その他、本発明は上述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上述した実施形態で実行される機能は可能な限り適宜組み合わせて実施しても良い。上述した実施形態には種々の段階が含まれており、開示される複数の構成要件による適宜の組み合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、効果が得られるのであれば、この構成要件が削除された構成が発明として抽出され得る。 In addition, the present invention is not limited to the above-described embodiments, and can be modified in various ways without departing from the gist of the present invention. Also, the functions executed in the above-described embodiments may be combined as appropriate as possible. Various steps are included in the above-described embodiments, and various inventions can be extracted by appropriately combining the disclosed multiple constituent elements. For example, even if some constituent elements are deleted from all the constituent elements shown in the embodiments, if an effect can be obtained, a configuration in which these constituent elements are deleted can be extracted as an invention.
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
応答文をそれぞれ含み、互いに異なるオートマトンの状態に対応付けられた複数のルールデータを記憶し、前記オートマトンの状態の遷移先の状態が定義されたデータベースと、
所定の対象から入力された入力発話情報を取得する取得手段と、
前記複数のルールデータから、前記オートマトンの現在の状態を含む所定の状態と、前記取得された入力発話情報とに応じて、応答ルールデータを選択し、選択した応答ルールデータに含まれる前記応答文を前記所定の対象に対して出力する応答文出力手段と、
前記オートマトンの状態を順次記憶するための記憶手段と、を備え、
前記所定の状態は、前記記憶手段に記憶された複数の状態を含み、
前記応答文出力手段は、前記複数のルールデータのうちの、対応する前記オートマトンの状態が前記記憶手段に記憶された複数の状態のうちのより新しく記憶された状態と同じ状態を示すルールデータを、前記応答ルールデータとして優先的に選択する、
対話装置。
(付記2)
前記応答文出力手段は、
前記複数のルールデータのうちの、前記オートマトンの現在の状態を含む所定の状態に対応する前記複数のルールデータよりも少ない複数のルールデータから、前記取得された入力発話情報に応じて、前記応答ルールデータの候補となる応答候補の複数のルールデータを検索して取得するデータ取得手段を有し、
前記取得した応答候補の複数のルールデータのうちの、対応する前記オートマトンの状態が前記記憶手段に記憶された複数の状態のうちのより新しく記憶された状態と同じ状態を示す応答候補ルールデータを、前記応答ルールデータとして優先的に選択する、
付記1に記載の対話装置。
(付記3)
前記応答文出力手段は、
前記応答ルールデータを選択するための指標を示すスコアを、前記ルールデータ毎に算出し、前記複数のルールデータのうちの、前記記憶手段に記憶された複数の状態のうちのより過去に記憶された状態と同じ状態を示す前記オートマトンの状態に対応する前記ルールデータが前記応答ルールデータとして選択されにくくなるように、前記スコアを算出する、
付記1又は2に記載の対話装置。
(付記4)
前記複数のルールデータの各々は、前記オートマトンの状態及び前記応答文に対応付けられた、前記所定の対象から入力されると想定される想定入力発話文を含み、
前記取得された入力発話情報に基づいて、前記所定の対象の発話文中に含まれる入力単語を抽出する抽出手段と、
抽出された前記入力単語毎に重みを設定する重み設定手段と、
前記入力単語毎に設定された前記重みに応じて、前記入力単語を含む前記所定の対象の発話に対する前記想定入力発話文の類似度を示す類似度パラメータを算出する類似度パラメータ算出手段と、をさらに備え、
前記応答文出力手段は、前記設定された前記類似度パラメータに応じて、前記スコアを算出する、
付記3に記載の対話装置。
(付記5)
前記選択された応答ルールデータに基づいて生成された応答文を過去所定回数分記憶する応答文記憶手段を更に備え、
前記応答文出力手段は、前記応答文記憶手段を参照することにより、前記応答候補ルールデータからの前記応答ルールデータの選択を、同じ応答文が繰り返し出力されないように、行う、付記1乃至4の何れか1項に記載の対話装置。
(付記6)
マイクロフォンをさらに備え、
前記取得手段は、前記マイクロフォンを介して入力された前記所定の対象の音声に基づいて、前記入力発話情報を取得する、
付記1乃至5のいずれか1項に記載の対話装置。
(付記7)
スピーカをさらに備え、
前記応答文出力手段は、前記応答文に対応する音声を、前記スピーカを介して前記所定の対象に対して出力する、
付記1乃至6の何れか1項に記載の対話装置。
(付記8)
所定の対象から入力された入力発話情報を取得する処理と、
応答文をそれぞれ含み、互いに異なるオートマトンの状態に対応付けられた複数のルールデータを記憶し、前記オートマトンの状態の遷移先の状態が定義されたデータベースを用い、前記複数のルールデータから、前記オートマトンの現在の状態を含む所定の状態と、前記取得された入力発話情報とに応じて、応答ルールデータを選択し、選択した応答ルールデータに含まれる前記応答文を前記所定の対象に対して出力する出力処理と、
前記オートマトンの状態を記憶手段に順次記憶する処理と、を含み、
前記所定の状態は、前記記憶手段に記憶された複数の状態を含み、
前記出力処理は、前記複数のルールデータのうちの、対応する前記オートマトンの状態が前記記憶手段に記憶された複数の状態のうちのより新しく記憶された状態と同じ状態を示すルールデータを、前記応答ルールデータとして優先的に選択する処理を含む、
対話方法。
(付記9)
コンピュータに、付記8に記載の対話方法を実行させるためのプログラム。
The following notes are further disclosed with respect to the above embodiments.
(Appendix 1)
a database storing a plurality of rule data each including a response sentence and associated with mutually different states of the automaton, and defining transition destination states of the states of the automaton;
Acquisition means for acquiring input utterance information input from a predetermined target;
selecting response rule data from the plurality of rule data according to a predetermined state including the current state of the automaton and the obtained input utterance information, and the response sentence included in the selected response rule data; response sentence output means for outputting to the predetermined target;
storage means for sequentially storing states of the automaton,
The predetermined state includes a plurality of states stored in the storage means,
The response sentence output means outputs rule data indicating that the state of the corresponding automaton, among the plurality of rule data, is the same as the state stored more recently among the plurality of states stored in the storage means. , preferentially selected as the response rule data,
interactive device.
(Appendix 2)
The response sentence output means is
According to the obtained input utterance information, from a plurality of rule data less than the plurality of rule data corresponding to a predetermined state including the current state of the automaton, out of the plurality of rule data, the response data acquisition means for retrieving and acquiring a plurality of rule data of response candidates that are candidates for rule data;
response candidate rule data indicating that the state of the corresponding automaton, among the plurality of rule data of the acquired response candidates, is the same as the state stored more recently among the plurality of states stored in the storage means; , preferentially selected as the response rule data,
1. An interactive device according to
(Appendix 3)
The response sentence output means is
A score indicating an index for selecting the response rule data is calculated for each of the rule data, and the score stored earlier than the plurality of states stored in the storage means among the plurality of rule data is calculated. calculating the score so that the rule data corresponding to the state of the automaton indicating the same state as the state of the response is less likely to be selected as the response rule data;
3. A dialogue device according to
(Appendix 4)
each of the plurality of rule data includes an assumed input utterance sentence assumed to be input from the predetermined object, associated with the state of the automaton and the response sentence;
extraction means for extracting an input word included in the predetermined target utterance sentence based on the acquired input utterance information;
weight setting means for setting a weight for each extracted input word;
a similarity parameter calculating means for calculating a similarity parameter indicating a similarity of the assumed input utterance sentence to the predetermined target utterance containing the input word according to the weight set for each input word; further prepared,
The response sentence output means calculates the score according to the set similarity parameter.
3. An interactive device according to
(Appendix 5)
further comprising response sentence storage means for storing a predetermined number of past response sentences generated based on the selected response rule data;
The response sentence output means selects the response rule data from the response candidate rule data by referring to the response sentence storage means so that the same response sentence is not repeatedly output. A dialogue device according to any one of the preceding claims.
(Appendix 6)
Equipped with an additional microphone,
The acquisition means acquires the input utterance information based on the predetermined target voice input via the microphone.
6. A dialogue device according to any one of
(Appendix 7)
Equipped with additional speakers,
The response sentence output means outputs a voice corresponding to the response sentence to the predetermined target via the speaker.
7. A dialogue device according to any one of
(Appendix 8)
a process of acquiring input utterance information input from a predetermined target;
Using a database that stores a plurality of rule data each including a response sentence and associated with mutually different states of the automaton, and defining transition destination states of the states of the automaton, from the plurality of rule data, the automaton selecting response rule data according to a predetermined state including the current state of and the obtained input utterance information, and outputting the response sentence included in the selected response rule data to the predetermined target and output processing to
a process of sequentially storing the state of the automaton in a storage means,
The predetermined state includes a plurality of states stored in the storage means,
In the output processing, rule data indicating the same state of the corresponding automaton among the plurality of rule data as the state stored more recently among the plurality of states stored in the storage means is output as the rule data. Including the process of preferentially selecting as response rule data,
how to interact.
(Appendix 9)
A program for causing a computer to execute the interaction method according to appendix 8.
100 対話装置
101 データベース
102 データ取得部
103 応答文出力部
104 記憶部
105 応答文記憶部
106 取得部
107 抽出部
110 ルールデータ
111 入力単語組
112 応答候補ルールデータ
113 応答ルールデータ
114 応答文
115 入力発話情報
NSA スタック状態番号
201 CPU
202 メモリ
203 入力装置
204 出力装置
205 補助情報記憶装置
206 媒体駆動装置
207 ネットワーク接続装置
208 音声入力装置
209 音声出力装置
210 バス
211 可搬型記録媒体
100
202
Claims (9)
複数の入力単語の組、応答文、オートマトンの状態、及び、次に遷移すべきオートマトンの状態を互いに対応付けたルールデータを複数記憶したデータベースから、前記オートマトンの現在の状態を含む所定の状態と、前記取得手段によって取得された入力発話情報に含まれる複数の入力単語とに応じて、ルールデータを選択し、選択したルールデータに含まれる応答文を前記所定の対象に対して出力する応答文出力手段と、
前記選択されたルールデータに対応する前記所定の状態を記憶手段に順次記憶させる記憶制御手段と、を備え、
前記記憶制御手段による記憶制御の後、前記取得手段によって入力発話情報が取得されると、前記応答文出力手段は、選択すべきルールデータが複数存在する場合、前記データベースに複数記憶されているルールデータのうち、前記記憶手段に記憶されている複数の前記所定の状態におけるより新しく記憶された前記所定の状態と同じ状態に対応するルールデータを優先的に選択する、
ことを特徴とする対話装置。 Acquisition means for acquiring input utterance information input from a predetermined target;
A predetermined state including the current state of the automaton and a predetermined state including the current state of the automaton from a database that stores a plurality of rule data in which a plurality of sets of input words, response sentences, states of the automaton, and states of the automaton to be transitioned to next are associated with each other. a response sentence for selecting rule data in accordance with a plurality of input words contained in the input utterance information acquired by said acquisition means, and outputting a response sentence contained in the selected rule data to said predetermined target; an output means;
storage control means for sequentially storing the predetermined states corresponding to the selected rule data in a storage means ;
After the storage control by the storage control means, when the input utterance information is acquired by the acquisition means, the response sentence output means , if there is a plurality of rule data to be selected, among the data , preferentially selecting rule data corresponding to the same state as the predetermined state stored more recently among the plurality of predetermined states stored in the storage means;
A dialogue device characterized by:
前記応答文出力手段は、前記取得した候補の複数のルールデータのうちの、対応する前記オートマトンの状態が前記記憶手段に記憶された複数の前記所定の状態におけるより新しく記憶された前記所定の状態と同じ状態を示すルールデータを優先的に選択する、
ことを特徴とする請求項1に記載の対話装置。 According to the obtained input utterance information, candidate and further comprising data acquisition means for retrieving and acquiring a plurality of rule data,
The response sentence output means stores a newer predetermined state than the plurality of predetermined states in which the state of the corresponding automaton is stored in the storage means among the acquired plurality of candidate rule data. preferentially select the rule data showing the same state as
2. The interactive device according to claim 1, characterized by:
前記ルールデータを選択するための指標を示すスコアを、前記ルールデータ毎に算出し、前記複数のルールデータのうちの、前記記憶手段に記憶された複数の状態におけるより過去に記憶された状態と同じ状態を示す前記所定の状態に対応するルールデータが選択されにくくなるように、前記スコアを算出する、
ことを特徴とする請求項1又は2に記載の対話装置。 The response sentence output means is
A score indicating an index for selecting the rule data is calculated for each of the rule data, and a state stored earlier than the plurality of states stored in the storage means among the plurality of rule data is calculated. calculating the score so that the rule data corresponding to the predetermined state indicating the same state is less likely to be selected;
3. A dialogue device according to claim 1 or 2, characterized in that:
前記取得された入力発話情報に基づいて、前記所定の対象の発話文中に含まれる入力単語を抽出する抽出手段と、
抽出された前記入力単語毎に重みを設定する重み設定手段と、
前記入力単語毎に設定された前記重みに応じて、前記入力単語を含む前記所定の対象の発話に対する前記想定入力発話文の類似度を示す類似度パラメータを算出する類似度パラメータ算出手段と、をさらに備え、
前記応答文出力手段は、前記設定された前記類似度パラメータに応じて、前記スコアを算出する、
ことを特徴とする請求項3に記載の対話装置。 each of the plurality of rule data includes an assumed input utterance sentence assumed to be input from the predetermined object, associated with the predetermined state and the response sentence;
extraction means for extracting an input word included in the predetermined target utterance sentence based on the acquired input utterance information;
weight setting means for setting a weight for each extracted input word;
a similarity parameter calculating means for calculating a similarity parameter indicating a similarity of the assumed input utterance sentence to the predetermined target utterance containing the input word according to the weight set for each input word; further prepared,
The response sentence output means calculates the score according to the set similarity parameter.
4. The interactive device according to claim 3, characterized by:
前記応答文出力手段は、前記応答文記憶手段を参照することにより、同じ応答文が繰り返し出力されないように前記ルールデータを選択することを特徴とする、請求項1乃至4の何れか1項に記載の対話装置。 further comprising response sentence storage means for storing a predetermined number of past response sentences generated based on the selected rule data;
5. The method according to any one of claims 1 to 4, wherein said response sentence output means selects said rule data by referring to said response sentence storage means so that the same response sentence is not repeatedly output. Dialog device as described.
前記取得手段は、前記マイクロフォンを介して入力された前記所定の対象の音声に基づいて、前記入力発話情報を取得する、
ことを特徴とする請求項1乃至5のいずれか1項に記載の対話装置。 Equipped with an additional microphone,
The acquisition means acquires the input utterance information based on the predetermined target voice input via the microphone.
6. A dialogue device according to any one of claims 1 to 5, characterized in that:
前記応答文出力手段は、前記応答文に対応する音声を、前記スピーカを介して前記所定の対象に対して出力する、
ことを特徴とする請求項1乃至6の何れか1項に記載の対話装置。 Equipped with additional speakers,
The response sentence output means outputs a voice corresponding to the response sentence to the predetermined target via the speaker.
7. A dialogue device according to any one of claims 1 to 6, characterized in that:
所定の対象から入力された入力発話情報を取得する取得ステップと、
複数の入力単語の組、応答文、オートマトンの状態、及び、次に遷移すべきオートマトンの状態を互いに対応付けたルールデータを複数記憶したデータベースから、前記オートマトンの現在の状態を含む所定の状態と、前記取得ステップによって取得された入力発話情報に含まれる複数の入力単語とに応じて、ルールデータを選択し、選択したルールデータに含まれる応答文を前記所定の対象に対して出力する応答文出力ステップと、
前記選択されたルールデータに対応する前記所定の状態を記憶手段に順次記憶させる記憶制御ステップと、を含み、
前記記憶制御ステップによる記憶制御の後、前記取得ステップにて入力発話情報が取得されると、前記応答文出力ステップは、選択すべきルールデータが複数存在する場合、前記データベースに複数記憶されているルールデータのうち、前記記憶手段に記憶されている複数の前記所定の状態におけるより新しく記憶された前記所定の状態と同じ状態に対応するルールデータを優先的に選択する、
ことを特徴とする対話方法。 A dialogue method executed by a dialogue device,
an acquisition step of acquiring input utterance information input from a predetermined target;
A predetermined state including the current state of the automaton and a predetermined state including the current state of the automaton from a database that stores a plurality of rule data in which a plurality of sets of input words, response sentences, states of the automaton, and states of the automaton to be transitioned to next are associated with each other. , a response sentence for selecting rule data in accordance with a plurality of input words included in the input utterance information acquired in the acquiring step , and outputting a response sentence included in the selected rule data to the predetermined target. an output step;
a storage control step for sequentially storing the predetermined states corresponding to the selected rule data in a storage means ;
After the storage control by the storage control step, when the input utterance information is acquired in the acquisition step, the response sentence output step, if there is a plurality of rule data to be selected, stores a plurality of rule data in the database. among the rule data , preferentially selecting rule data corresponding to the same state as the predetermined state stored more recently than the plurality of predetermined states stored in the storage means;
A dialogue method characterized by:
所定の対象から入力された入力発話情報を取得する取得ステップ、
複数の入力単語の組、応答文、オートマトンの状態、及び、次に遷移すべきオートマトンの状態を互いに対応付けたルールデータを複数記憶したデータベースから、前記オートマトンの現在の状態を含む所定の状態と、前記取得ステップによって取得された入力発話情報に含まれる複数の入力単語とに応じて、ルールデータを選択し、選択したルールデータに含まれる応答文を前記所定の対象に対して出力する応答文出力ステップ、
前記選択されたルールデータに対応する前記所定の状態を記憶手段に順次記憶させる記憶制御ステップ、を実行させ、
前記記憶制御ステップによる記憶制御の後、前記取得ステップにて入力発話情報が取得されると、前記応答文出力ステップは、選択すべきルールデータが複数存在する場合、前記データベースに複数記憶されているルールデータのうち、前記記憶手段に記憶されている複数の前記所定の状態におけるより新しく記憶された前記所定の状態と同じ状態に対応するルールデータを優先的に選択するよう実行させるためのプログラム。 to the computer of the interactive device,
an acquisition step of acquiring input utterance information input from a predetermined target;
A predetermined state including the current state of the automaton and a predetermined state including the current state of the automaton from a database that stores a plurality of rule data in which a plurality of sets of input words, response sentences, states of the automaton, and states of the automaton to be transitioned to next are associated with each other. , a response sentence for selecting rule data in accordance with a plurality of input words included in the input utterance information acquired in the acquiring step, and outputting a response sentence included in the selected rule data to the predetermined target. output step,
executing a storage control step of sequentially storing the predetermined states corresponding to the selected rule data in a storage means;
After the storage control by the storage control step, when the input utterance information is acquired in the acquisition step, the response sentence output step, if there is a plurality of rule data to be selected, stores a plurality of rule data in the database. A program for preferentially selecting, among rule data, rule data corresponding to the same state as the predetermined state stored more recently than the plurality of predetermined states stored in the storage means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019009482A JP7259349B2 (en) | 2019-01-23 | 2019-01-23 | Dialogue device, dialogue method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019009482A JP7259349B2 (en) | 2019-01-23 | 2019-01-23 | Dialogue device, dialogue method, and program |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2020119221A JP2020119221A (en) | 2020-08-06 |
JP2020119221A5 JP2020119221A5 (en) | 2022-01-18 |
JP7259349B2 true JP7259349B2 (en) | 2023-04-18 |
Family
ID=71892081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019009482A Active JP7259349B2 (en) | 2019-01-23 | 2019-01-23 | Dialogue device, dialogue method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7259349B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240242036A1 (en) * | 2021-05-24 | 2024-07-18 | Nippon Telegraph And Telephone Corporation | Dialogue apparatus, dialogue method, and program |
WO2024069974A1 (en) * | 2022-09-30 | 2024-04-04 | 日本電信電話株式会社 | Dialogue device, dialogue method, and dialogue program |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006349954A (en) | 2005-06-15 | 2006-12-28 | Fujitsu Ltd | Dialog system |
JP2018181041A (en) | 2017-04-17 | 2018-11-15 | 日本電信電話株式会社 | Interactive rule selecting device, interactive device, interactive rule selecting method, interactive method, interactive rule selecting program, and interactive program |
-
2019
- 2019-01-23 JP JP2019009482A patent/JP7259349B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006349954A (en) | 2005-06-15 | 2006-12-28 | Fujitsu Ltd | Dialog system |
JP2018181041A (en) | 2017-04-17 | 2018-11-15 | 日本電信電話株式会社 | Interactive rule selecting device, interactive device, interactive rule selecting method, interactive method, interactive rule selecting program, and interactive program |
Also Published As
Publication number | Publication date |
---|---|
JP2020119221A (en) | 2020-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11302330B2 (en) | Clarifying questions for rewriting ambiguous user utterance | |
US20210142794A1 (en) | Speech processing dialog management | |
US11037553B2 (en) | Learning-type interactive device | |
US9418152B2 (en) | System and method for flexible speech to text search mechanism | |
US20200380077A1 (en) | Architecture for resolving ambiguous user utterance | |
US10664527B1 (en) | Response retrieval system and method | |
CN106875936B (en) | Voice recognition method and device | |
JP5062171B2 (en) | Speech recognition system, speech recognition method, and speech recognition program | |
US10872601B1 (en) | Natural language processing | |
JPWO2008114811A1 (en) | Information search system, information search method, and information search program | |
KR102120751B1 (en) | Method and computer readable recording medium for providing answers based on hybrid hierarchical conversation flow model with conversation management model using machine learning | |
KR20090111825A (en) | Method and apparatus for language independent voice indexing and searching | |
US11615787B2 (en) | Dialogue system and method of controlling the same | |
JP6275354B1 (en) | Intention estimation device and intention estimation method | |
CN110473543B (en) | Voice recognition method and device | |
JP7259349B2 (en) | Dialogue device, dialogue method, and program | |
US20130138441A1 (en) | Method and system for generating search network for voice recognition | |
JP2020154076A (en) | Inference unit, learning method and learning program | |
US10417345B1 (en) | Providing customer service agents with customer-personalized result of spoken language intent | |
US20220399013A1 (en) | Response method, terminal, and storage medium | |
Moyal et al. | Phonetic search methods for large speech databases | |
EP4295358A1 (en) | Lookup-table recurrent language model | |
JP6629172B2 (en) | Dialogue control device, its method and program | |
US20110131033A1 (en) | Weight-Ordered Enumeration of Referents and Cutting Off Lengthy Enumerations | |
US20090222266A1 (en) | Apparatus, method, and recording medium for clustering phoneme models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20190415 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220107 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220107 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230216 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230320 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7259349 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |