JP7259349B2 - Dialogue device, dialogue method, and program - Google Patents

Dialogue device, dialogue method, and program Download PDF

Info

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
Application number
JP2019009482A
Other languages
Japanese (ja)
Other versions
JP2020119221A5 (en
JP2020119221A (en
Inventor
淳一郎 副島
博康 井手
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2019009482A priority Critical patent/JP7259349B2/en
Publication of JP2020119221A publication Critical patent/JP2020119221A/en
Publication of JP2020119221A5 publication Critical patent/JP2020119221A5/ja
Application granted granted Critical
Publication of JP7259349B2 publication Critical patent/JP7259349B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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.

特開2003-329477号公報JP-A-2003-329477

この種の有限オートマトンを備えた対話装置では、対話シナリオデータを用いて取得される遷移先の応答ルールに基づいて、ユーザに対する応答文が作成される。一方、雑談の対話では、その話題が様々に変化する傾向にあるため、対話シナリオデータの構成によっては、遷移先の応答ルールだけでは不足する可能性がある。 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 is a block diagram illustrating one embodiment of an interactive device; FIG. 対話装置を実現可能なコンピュータのハードウェア例を示す図である。FIG. 2 is a diagram showing an example of hardware of a computer that can implement an interactive device; 制御データ、入力単語データ、及びルールデータのデータフォーマットの例を示す図である。FIG. 4 is a diagram showing examples of data formats of control data, input word data, and rule data; 対話処理の例を示すメインフローチャートである。4 is a main flowchart showing an example of interactive processing; 前処理の詳細例を示すフローチャートである。6 is a flowchart showing a detailed example of preprocessing; ルール検索処理の詳細例を示すフローチャートである。9 is a flowchart showing a detailed example of rule search processing; 応答文出力処理の詳細例を示すフローチャートである。9 is a flowchart showing a detailed example of response sentence output processing; オートマトンによる対話データベースの一実施形態を示す図(その1)である。FIG. 1 is a diagram (part 1) showing an embodiment of a dialogue database based on an automaton; オートマトンによる対話データベースの一実施形態を示す図(その2)である。FIG. 2 is a diagram (part 2) showing an embodiment of a dialogue database based on an automaton; オートマトンによる対話データベースの一実施形態を示す図(その3)である。FIG. 3 is a diagram (part 3) showing an embodiment of a dialogue database based on an automaton; 対話装置の動作例を示す図である。It is a figure which shows the operation example of a dialog apparatus.

以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。図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 database 101 stores a plurality of rule data 110. Each rule data 110 contains an assumed input word set (assumed input utterance sentence), a response sentence, an automaton state number, and the next transition destination of the automaton. state number (hereinafter referred to as "next transition destination state number"). This assumed input word set is composed of a plurality of input words assumed to be input by the user, and the response sentence is a response sentence to the user's utterance. The number and the next transition destination state number of the automaton are associated with each other and stored as the rule data 110 . The state number of the automaton and the next transition destination state number define which of the plurality of rule data 110 should be selected and responded during the dialogue with the user. It represents (defines) the state number of the automaton included in the rule data 110 to be selected when responding to . In this case, the automaton state number and the next transition destination state number may be the same number or different numbers. The automaton state number and the next transition destination state number of each rule data 110, and the response sentence corresponding to each of them are set so that a natural response can be made while appropriately changing the topic in the dialogue with the user. It is Here, for example, a plurality of rule data 110 including the same automaton state number may be stored in the database 101 so as to correspond to user utterances on various topics.

取得部106は、ユーザの入力発話情報115を、例えばマイクロフォン(図示せず)を介して取得する。 Acquisition unit 106 acquires user input speech information 115 via, for example, a microphone (not shown).

抽出部107は、上記入力発話情報115を、増幅器及びA/D(アナログ/デジタル)変換器等を介してデジタル化してデジタル音声に変換する。次に、抽出部107は、このデジタル音声に対して、音声認識処理を実行することにより、入力文のテキストデータを取得し、取得した入力文のテキストデータに対して形態素解析を実行することにより、発話を単語ごと(例えば名詞や動詞、形容詞、副詞等)に分かち書きした形式で、複数の入力単語からなる入力単語組111のテキストデータを抽出する。 The extraction unit 107 digitizes the input speech information 115 through an amplifier, an A/D (analog/digital) converter, and the like, and converts it into digital voice. Next, the extraction unit 107 acquires text data of the input sentence by executing speech recognition processing on the digital voice, and executes morphological analysis on the acquired text data of the input sentence to obtain , text data of an input word set 111 consisting of a plurality of input words is extracted in a form in which the utterance is divided into words (for example, nouns, verbs, adjectives, adverbs, etc.).

応答文出力部103は、複数のルールデータ110から、オートマトンの現在の状態を含む所定の状態と、取得部106にて取得された入力発話情報115とに応じて、応答ルールデータ113を選択し、選択した応答ルールデータ113に含まれる応答文114を所定の対象に対して出力する。 The response sentence output unit 103 selects the response rule data 113 from the plurality of rule data 110 according to a predetermined state including the current state of the automaton and the input utterance information 115 acquired by the acquisition unit 106. , the response sentence 114 included in the selected response rule data 113 is output to a predetermined target.

ここで、応答文出力部103は、次のようなデータ取得部102を有してよい。データ取得部102は、複数のルールデータ110のうちの、オートマトンの現在の状態を含む所定の状態に対応する複数のルールデータよりも少ない複数のルールデータから、取得された入力発話情報115に応じて、応答ルールデータ113の候補となる応答候補の複数のルールデータである応答候補ルールデータ112を検索して取得する。この検索は、例えば次のようにして行われる。まず、取得した入力単語組111に包含される想定入力単語組を有するルールデータ110を、応答候補ルールデータ112の暫定候補データとして検索する。この場合、「入力単語組111に包含される想定入力単語組」は、想定入力単語組の単語数が入力単語組の単語数以下であって、かつ、想定入力単語組のすべての単語が入力単語組の一部またはすべての単語と一致する想定入力単語のことである。データ取得部102は、このようにして検索された1つ以上の暫定候補データに対し、更に後述するように記憶部104を参照して、応答候補ルールデータ112を検索する。 Here, the response sentence output unit 103 may have the data acquisition unit 102 as follows. The data acquisition unit 102 acquires input utterance information 115 from a plurality of rule data less than a plurality of rule data corresponding to a predetermined state including the current state of the automaton, among the plurality of rule data 110 . Then, the candidate response rule data 112 , which are a plurality of rule data of response candidates that are candidates for the response rule data 113 , are retrieved and acquired. This search is performed, for example, as follows. First, the rule data 110 having the assumed input word set included in the acquired input word set 111 is searched as provisional candidate data of the response candidate rule data 112 . In this case, the "assumed input word set included in the input word set 111" is such that the number of words in the assumed input word set is less than or equal to the number of words in the input word set, and all the words in the assumed input word set are input. An assumed input word that matches some or all of the words in the word set. The data acquisition unit 102 searches the response candidate rule data 112 by referring to the storage unit 104 as will be described later, for one or more pieces of provisional candidate data thus retrieved.

応答文出力部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 sentence output unit 103 selects the response rule data 113 from the response candidate rule data 112 searched by the data acquisition unit 102, and extracts the response sentence included in the response rule data 113 (the response included in the rule data 110 in FIG. 1). sentence) is output as a response sentence 114 to the user's utterance. In response to the data (text data, for example) of the response sentence 114 output in this way, the voice corresponding to the response sentence 114 is uttered from the speech synthesis processing unit via the D/A converter, the amplifier, and the speaker. be. If the dialogue device 100 is incorporated as a dialogue function of a robot, for example, the robot causes the dialogue device 100 to utter the above-described voice while detecting the presence of the user in the surroundings with a sensor or the like. Along with this, the response sentence output unit 103 sequentially stores the automaton next transition destination state number (see FIG. 1) included in the response rule data 113 in the storage unit 104 as the stack state number NSA. Thus, the storage unit 104 functions as a stack that stacks state numbers of automatons. The plurality of stack state numbers NSA stored in the storage unit 104 indicate the history of the state numbers of the automaton that transitioned according to the topic of the user's utterance. The most recently stored stack state number NSA indicates the current state number (=topic, for example) of the transitioned automaton.

ここで、データ取得部102は、前述したようにして検索された1つ以上の暫定候補データ(ルールデータ110)のうち、その対応するオートマトンの状態番号(図1参照)が記憶部104中の複数のスタック状態番号NSAのうちの何れかに一致する暫定候補データを、応答候補ルールデータ112として検索する。記憶部104中の各スタック状態番号NSAは、ユーザの発話の話題が辿るのに応じて遷移したオートマトンの状態番号(=例えば話題)を示している。従って、データ取得部102は、データベース101に記憶されているルールデータ110のうち、いままで発生したオートマトンの状態番号(スタック状態番号NSA)と同じ状態番号を含むルールデータ110、すなわち、例えばいままで話題にのぼったルールデータ110から、応答候補ルールデータ112を選択することになる。 Here, the data acquisition unit 102 stores the state number (see FIG. 1) of the corresponding automaton among the one or more provisional candidate data (rule data 110) retrieved as described above in the storage unit 104. Temporary candidate data matching any of the plurality of stack state numbers NSA is retrieved as response candidate rule data 112 . Each stack state number NSA in the storage unit 104 indicates the state number (=for example, topic) of the automaton transitioned according to the topic of the user's utterance. Therefore, the data acquisition unit 102 selects the rule data 110 that includes the same state number as the state number of the automaton that has occurred so far (stack state number NSA) among the rule data 110 stored in the database 101. Answer candidate rule data 112 is selected from the rule data 110 that has become a hot topic.

最も望ましいのは、記憶部104に最も新しく記憶されているスタック状態番号NSA、すなわちオートマトンの現在の状態番号と同じ状態番号を含むルールデータ110が検索されることである。しかしながら、ユーザによる入力単語組111に対応するルールデータ110に含まれるオートマトンの状態番号が、オートマトンの現在の状態番号と必ずしも一致するとは限らない。このような場合に、データ取得部102は、記憶部104が記憶するスタック状態番号NSAが示す過去に辿ってきたオートマトンの状態番号と一致するオートマトンの状態番号を含むとともに、入力単語組111に対応する想定入力単語組を有するルールデータ110を応答候補ルールデータ112として検索する。この対話装置100の構成により、ユーザとの例えば対話における話の流れに沿った応答候補ルールデータ112を検索することができる。 Most preferably, the rule data 110 containing the most recently stored stack state number NSA in storage 104, ie, the same state number as the automaton's current state number, is retrieved. However, the state number of the automaton included in the rule data 110 corresponding to the word set 111 input by the user does not necessarily match the current state number of the automaton. In such a case, the data acquisition unit 102 includes the state number of the automaton that matches the state number of the automaton traced in the past indicated by the stack state number NSA stored in the storage unit 104 and corresponds to the input word set 111. The rule data 110 having an assumed input word set is searched as the answer candidate rule data 112 . With this configuration of the dialogue apparatus 100, it is possible to search for the answer candidate rule data 112 along the flow of dialogue with the user, for example.

この場合、データ取得部102は更に、対応するオートマトンの状態番号が上述のように記憶部104中の複数のスタック状態番号NSAの何れかに一致する複数の応答候補ルールデータ112(ルールデータ110)が存在する場合に、これらの応答候補ルールデータ112のうち、より新しく記憶されたスタック状態番号NSAに一致する状態番号に対応する応答候補ルールデータ112が、応答ルールデータ113として優先的に選択されるように、各応答候補ルールデータ112のスコアを算出する。 In this case, the data acquisition unit 102 further collects a plurality of response candidate rule data 112 (rule data 110) whose corresponding automaton state number matches any of the plurality of stack state numbers NSA in the storage unit 104 as described above. exists, of these candidate response rule data 112, the candidate response rule data 112 corresponding to the state number matching the stack state number NSA stored more recently is preferentially selected as the response rule data 113. The score of each response candidate rule data 112 is calculated as follows.

より具体的には、データ取得部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 data acquisition unit 102 sets a weighting factor for each of the input words included in the input word set 111, for example, using a predetermined method such as the TF-IDF method described later. As a result, the weight coefficients of the plurality of input words are set to the same value or different values depending on their importance. The data acquisition unit 102 also indicates the degree of similarity of the assumed input word set (see the assumed input word set of the rule data 110 in FIG. 1) included in the rule data 110 as the response candidate rule data 112 to the input word set 111. A cosine similarity is calculated for each response candidate rule data 112 according to the set weighting factor. In addition, the data acquisition unit 102 calculates a score indicating an index for selecting the response rule data 113 for each response candidate rule data 112 according to the calculated cosine similarity (the cosine similarity is calculated as a score). ). Further, the data acquisition unit 102 obtains the stack state number NSA stored in the past among the plurality of stack state numbers NSA stored in the storage unit 104, among the plurality of candidate response rule data 112 (rule data 110). , the score of the answer candidate rule data 112 corresponding to the state number that matches is calculated to be a smaller value. Then, the response sentence output unit 103 selects the response candidate rule data 112 having the maximum score as the response rule data 113 based on the score calculated for each response candidate rule data 112 . With this configuration of the dialogue apparatus 100, the response sentence output unit 103 selects one or more of the candidate response rule data 112 retrieved by the data acquisition unit 102, which is closest to the current state number of the automaton (=for example, the current topic). The dialogue device 100 can preferentially select response candidate rule data 112 corresponding to a state number (=for example, a closer topic) as the response rule data 113, and can have a more natural dialogue with the user according to the topic. can be provided.

ここまでの構成に加えて、選択された応答ルールデータ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 sentence storage unit 104, the data acquisition unit 102 determines the priority ( For example, the score described above) may be changed according to how many times in the past the response sentence 114 of the response candidate rule data 112 was generated. With this configuration of the interactive device 100, it is possible to prevent repeated output of the response sentence 114 based on the same response rule data 113. FIG.

ここまでの構成に加えて、データベース101には、所定の複数の非想定用ルール(後述するワイルドカードリスト、スーパーワイルドカードリスト)が含まれてもよい。そして、データ取得部102は、ユーザによる発話の内容が想定外の内容である場合、すなわち、入力単語組111の複数の単語が、いずれのルールデータ110の想定用入力単語組の複数の単語を包含していない場合には、複数の非想定用ルールのうち、前回に選択された応答ルールデータに対応するものを、応答候補ルールデータとして取得してよい。 In addition to the configuration described so far, the database 101 may include a plurality of predetermined non-assumed rules (wild card list and super wild card list, which will be described later). Then, when the content of the user's utterance is unexpected content, that is, the plurality of words of the input word set 111 do not match the plurality of words of the assumed input word set of any of the rule data 110 . If not included, among the plurality of non-assuming rules, the one corresponding to the previously selected response rule data may be acquired as the response candidate rule data.

図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) CPU 201, a memory 202, an input device 203, an output device 204, an auxiliary information storage device 205, a media drive device 206 into which a portable recording medium 211 is inserted, and a network connection device. 207 , an audio input device 208 and an audio output device 209 . These components are interconnected by bus 210 . The configuration shown in FIG. 2 is an example of a computer that can implement the interactive device 100 of FIG. 2, and such a computer is not limited to this configuration.

メモリ202は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)、フラッシュメモリ等の半導体メモリであり、例えば、後述する図4~図7のフローチャートの処理に対応するプログラム、及び後述する図3に対応する各種データを格納する。 The memory 202 is, for example, a Read Only Memory (ROM), a Random Access Memory (RAM), or a semiconductor memory such as a flash memory. Various data corresponding to FIG. 3 are stored.

CPU(プロセッサ)101は、例えば、メモリ202を利用して、図2の対話装置100に用いられる後述する図4~図7のフローチャートの処理に対応するプログラムを実行することにより、図2に示される各処理ブロックとして動作する。 A CPU (processor) 101 uses a memory 202, for example, to execute a program corresponding to processing of flow charts of FIGS. It operates as each processing block.

入力装置203は、例えば、タッチパネル入力装置であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置204は、例えば、上記タッチパネル入力装置と一体に形成される液晶ディスプレイ(LCD:Liquid Crystal Display)などのディスプレイ装置であり、オペレータ又はユーザへの問合せ又は処理結果の出力に用いられる。 The input device 203 is, for example, a touch panel input device, and is used to input instructions or information from an operator or user. The output device 204 is, for example, a display device such as a liquid crystal display (LCD) integrally formed with the touch panel input device, and is used to output an inquiry to an operator or user or a processing result.

補助情報記憶装置205は、例えば、半導体記憶装置、ハードディスク記憶装置、磁気ディスク記憶装置、光ディスク装置、光磁気ディスク装置などであり、例えば、図1で説明したデータベース101を記憶する記憶装置、或いは、図1の記憶部104又は応答文記憶部105として動作する。図2の対話装置100は、補助情報記憶装置205に図2の対話装置100に用いられる例えば図4から図7のフローチャートの処理を実行するプログラム及び図3で後述する各種データなどのデータを格納しておき、それらをメモリ202にロードして使用してもよい。 The auxiliary information storage device 205 is, for example, a semiconductor storage device, a hard disk storage device, a magnetic disk storage device, an optical disk device, a magneto-optical disk device, or the like. It operates as the storage unit 104 or the response sentence storage unit 105 in FIG. 2 stores, in the auxiliary information storage device 205, data such as programs for executing the processes of the flowcharts of FIGS. 4 to 7 and various data described later in FIG. stored, and loaded into the memory 202 for use.

媒体駆動装置206は、可搬型記録媒体211を駆動し、その記録内容にアクセスする。可搬型記録媒体211は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体211は、Compact Disk Read Only Memory(CD-ROM)、Digital Versatile Disk(DVD)、Universal Serial Bus(USB)メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体211に上述のプログラム及びデータを格納しておき、メモリ202にロードして使用することができる。 The media drive device 206 drives the portable recording medium 211 and accesses the recorded contents. The portable recording medium 211 is a memory device, flexible disk, optical disk, magneto-optical disk, or the like. The portable recording medium 211 may be Compact Disk Read Only Memory (CD-ROM), Digital Versatile Disk (DVD), Universal Serial Bus (USB) memory, or the like. An operator or user can store the above-described programs and data in the portable recording medium 211 and load them into the memory 202 for use.

このように、上述のプログラム及びデータを格納するコンピュータ読取り可能な記録媒体は、メモリ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 memory 202, the auxiliary information storage device 205, or the portable recording medium 211. is.

ネットワーク接続装置207は、例えばLocal Area Network(LAN)等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。図2の対話装置100は、上述のプログラム又はデータを外部の装置からネットワーク接続装置207を介して受信し、それらをメモリ202にロードして使用することができる。 A network connection device 207 is a communication interface that is connected to a communication network such as a Local Area Network (LAN) and performs data conversion associated with communication. The interactive device 100 of FIG. 2 can receive the above-described programs or data from an external device via the network connection device 207, load them into the memory 202, and use them.

音声入力装置208は、ユーザが喋る音声をアナログ入力音声信号として入力するマイクロフォン/アンプ、アナログ入力音声信号をデジタル入力音声信号に変換するA/D(アナログ/デジタル)変換器、デジタル入力音声信号をユーザからの入力としてCPU201に引き渡すためのインタフェース回路などである。 The voice input device 208 includes a microphone/amplifier for inputting the user's voice as an analog input voice signal, an A/D (analog/digital) converter for converting the analog input voice signal to a digital input voice signal, and a digital input voice signal. It is an interface circuit or the like for handing over to the CPU 201 as an input from the user.

音声出力装置209は、図2の対話装置100が生成した応答文114に対応するデジタル音声信号を合成する音声合成処理装置、デジタル音声信号をアナログ音声信号に変換するD/A(デジタル/アナログ)変換器、アナログ音声信号をユーザに向かって放音するためのアンプ/スピーカなどである。 The speech output device 209 is a speech synthesis processing device that synthesizes a digital speech signal corresponding to the response sentence 114 generated by the dialogue device 100 in FIG. converters, amplifiers/speakers for emitting analog audio signals to the user.

なお、図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 input device 203 and part or all of the output device 204 may be omitted if there is no need to input instructions or information from the operator or user. If the portable recording medium 211 or communication network is not used, the media drive device 206 or the network connection device 207 may be omitted.

図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 memory 202 in FIG. 2 in order from the address of the start pointer Ctrl of the control data.

transition:対話データベースへのポインタ。図2の補助情報記憶装置205などに記憶される図2のデータベース101内のルールデータ110の先頭へのポインタである。ルールデータ110は、図1を用いて前述したように、オートマトンの状態番号毎に、ユーザが発話すると想定される単語の組(想定入力単語組)と、それに対応する応答文と、次に遷移するオートマトンの状態番号(次遷移先状態番号)を管理する。 transition: a pointer to the transition database. It is a pointer to the beginning of the rule data 110 in the database 101 in FIG. 2 stored in the auxiliary information storage device 205 in FIG. As described above with reference to FIG. 1, the rule data 110 includes, for each state number of the automaton, a set of words assumed to be uttered by the user (assumed input word set), a corresponding response sentence, and then a transition It manages the state number of the automaton (next transition destination state number).

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 storage unit 104 .

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 rule data 110 stored in the database 101 of FIG. The head pointer of each rule data 110 is indicated by transition[i] (i=0, 1, 2, . It is stored in the database 101 of FIG. 1 in the information storage device 205 (or in the memory 202).

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 rule data 110 .
userWords [userWordCount]: An array of text data of assumed input words given as input to the rule data 110 . It corresponds to the assumed input word set in the rule data 110 of FIG.
state_id: current state number of the automaton. This number indicates the state to which the rule data 110 belongs. It corresponds to the state number in the rule data 110 of FIG.
bot_reply: reply text. It is the text data of the response sentence that is the output of the rule data 110 . It corresponds to the response sentence in the rule data 110 of FIG.
next_state_id: Next transition destination state number. This is a number indicating the transition destination state of the automaton that transitions after the rule data 110 is selected. It corresponds to the next transition destination state number in the rule data 110 of FIG.

prev:前ポインタ。現在のルールデータ110の直前に接続されるルールデータ110へのポインタである。 prev: previous pointer. A pointer to the rule data 110 connected immediately before the current rule data 110 .

next:次ポインタ。現在のルールデータ110の直後に接続されたルールデータ110へのポインタである。 next: next pointer. A pointer to the rule data 110 connected immediately after the current rule data 110 .

図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 CPU 201 of FIG. 2 executes an interactive processing program stored in the memory 202 while using various data described in FIG. .

図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 CPU 201 initializes various variables in the memory 202 and loads necessary data from the auxiliary information storage device 205 to the memory 202 (step S401). ).

次に、CPU201は、図3(a)の制御データ上のオートマトンの状態番号のスタック配列state_idに、初期状態を表す状態番号0をプッシュする(ステップS402)。 Next, the CPU 201 pushes the state number 0 representing the initial state to the stack array state_id of the automaton state numbers on the control data in FIG. 3A (step S402).

ステップS402の後、CPU201は、ユーザ発話の入力(ステップS403)と、対話装置の終了指示(ステップS404)の待機状態となる(ステップS403とステップS404の繰返し処理)。 After step S402, the CPU 201 waits for input of a user's speech (step S403) and an instruction to end the interactive device (step S404) (repetitive processing of steps S403 and S404).

ユーザが発話を行うと、図2の音声入力装置208において、ユーザが喋る音声がマイクロフォン/アンプでアナログ入力音声信号として入力され、A/D変換器においてそのアナログ入力音声信号がデジタル入力音声信号に変換され、図2のバス210を介してCPU201に送られる。そして、CPU201が、このデジタル入力音声信号の所定閾値以上のパワーを検出したときに、ユーザ発話の入力が検出され、ステップS404の判定がYESとなる。CPU201は、前処理(ステップS405)、ルール検索処理(ステップS406)、及び応答文出力処理(ステップS407)を順次実行し、その後、ステップS403とS404の待機処理に戻る。 When the user speaks, in the voice input device 208 of FIG. 2, the voice spoken by the user is input as an analog input voice signal through a microphone/amplifier, and the analog input voice signal is converted into a digital input voice signal in the A/D converter. It is converted and sent to CPU 201 via bus 210 in FIG. Then, when the CPU 201 detects the power of the digital input audio signal equal to or higher than the predetermined threshold, the input of the user's utterance is detected, and the determination in step S404 becomes YES. The CPU 201 sequentially executes preprocessing (step S405), rule search processing (step S406), and response sentence output processing (step S407), and then returns to standby processing in steps S403 and S404.

ユーザが特には図示しないパワースイッチをオフして対話装置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 CPU 201 discards the secured area on the memory 202, and the state shown in FIG. Terminates the indicated interactive processing and terminates the system.

図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 CPU 201 initializes each data (variable) in FIGS. 3A and 3B on the memory 202 (step S501).

次に、CPU201は、図4のステップS404で入力されたユーザの発話に基づくデジタル音声データに対して、まず音声認識を行って入力文のテキストデータを作成し、更にそのテキストデータに対して形態素解析を実行することにより、形態素に分割された複数の単語から成る入力単語群を抽出する(ステップS502)。この入力単語群は、図1の入力単語組111に対応する。 Next, the CPU 201 first performs speech recognition on the digital voice data based on the user's utterance input in step S404 in FIG. By executing the analysis, an input word group consisting of a plurality of words divided into morphemes is extracted (step S502). This input word group corresponds to the input word set 111 in FIG.

次に、CPU201は、初期値1を、メモリ202上の変数であるスコア係数にセットする(ステップS503)。スコア係数については、後述する。 Next, the CPU 201 sets the initial value 1 to the score coefficient, which is a variable on the memory 202 (step S503). The score coefficient will be described later.

次に、CPU201は、ステップS502での形態素解析により抽出した先頭の形態素から順に(ステップS504)、ステップS505ですべての形態素の検索が終了したと判定するまで(ステップS505)、ステップS509で形態素を順次検索しながら、以下のステップS506からS508の一連の処理を、形態素毎に繰り返し実行する。 Next, the CPU 201 sequentially extracts morphemes from the first morpheme extracted by the morphological analysis in step S502 (step S504) until it is determined in step S505 that all morphemes have been searched (step S505). While sequentially searching, a series of processes from steps S506 to S508 below are repeatedly executed for each morpheme.

まず、CPU201は、図3(a)の制御データの入力単語数:inputWordCountの値をインクリメントする。また、CPU201は、図3(b)の入力単語データの新たなエントリ(記憶領域)(例えばinputWords[i])をメモリ202上に生成し、そのエントリ内の入力単語:wordとして、ステップS504又はS509で取得した形態素のテキストを登録する(以上、ステップS506)。なお、CPU201は、入力単語データの新たなエントリの前ポインタ:prevを、その直前に生成されているエントリの先頭アドレスに設定し、更にその直前エントリの次ポインタ:nextの値を上記新たなエントリの先頭アドレスに設定することにより、ユーザ発話に従って順番に接続された入力単語データのエントリのリストを生成する。 First, the CPU 201 increments the number of input words: inputWordCount of the control data in FIG. 3(a). Further, the CPU 201 generates a new entry (storage area) (for example, inputWords[i]) for the input word data shown in FIG. The text of the morpheme acquired in S509 is registered (above, step S506). The CPU 201 sets the previous pointer (prev) of the new entry of the input word data to the top address of the entry generated immediately before it, and sets the value of the next pointer (next) of the immediately preceding entry to the new entry. By setting the starting address of the input word data, a list of entries of the input word data connected in order according to the user's utterance is generated.

次に、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 CPU 201 sets a weighting factor for the input word corresponding to the morpheme acquired in step S504 or S509, and stores the weighting factor in the input word data of FIG. The weighting factor of the new entry: weight is set (step S507). It can be said that the above-mentioned weighting factor indicates the importance of the input word of the corresponding morpheme in the input document. The degree of importance of a word in a document is determined by a well-known method called TF (Term Frequency), in which a word that appears more frequently in an input document is set as a higher (important) value, and by cross-cutting several documents. The words that are used can be set by the TF-IDF method in combination with another well-known method called IDF (Inverse Document Frequency), which is not set to a very large (important) value. Therefore, the weighting factors mentioned above may be set by such a TF-IDF approach. In addition, the degree of importance of a word within a document varies depending on the part of speech of the morpheme. For example, nouns and verbs are assigned large weighting coefficient values, while particles are assigned small values. Therefore, the weighting factors described above may be set from, for example, a weighting factor table for each part of speech or an IDF (Inverse Document Frequency) table held in the auxiliary information storage device 205 in FIG.

そして、CPU201は、ステップS507で取得した重み係数の2乗値を、ステップS503で初期設定したメモリ202上のスコア係数に加算する(ステップS508)。スコア係数については後述する。 Then, the CPU 201 adds the square value of the weighting factor acquired in step S507 to the score factor in the memory 202 initialized in step S503 (step S508). Score coefficients will be described later.

以上のステップ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 CPU 201 calculates the square root of the score coefficient finally calculated in step S508, which is a variable in the memory 202, and further calculates its reciprocal. is calculated, and the calculation result is set as the evaluation coefficient (denominator of the evaluation formula): score_coef in the control data of FIG. 3(a) (step S510). The evaluation coefficient score_coef calculated in this manner substantially obtains cos (cosine) distance=correlation coefficient.

共分散(分子)と、ルールデータ側の標準偏差は後述するルール検索処理時に算出するものとするが、入力側である入力単語組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 CPU 201 ends the pre-processing of step S405 in FIG. 4 illustrated in the flowchart in FIG.

図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 data acquisition unit 102 in FIG. As described above in the description of the data acquisition unit 102 in FIG. 1, the data acquisition unit 102 operates according to a state model called automaton while referring to the rule data 110 stored in the database 101 . Similarly, the rule search process of FIG. 6 operates according to the state model of the automaton while referring to the rule data 110 of FIG. Here, an automaton is a model that consists of a combination of states, transitions, and actions. It is the rule data 110 on the database 101 that "transitions" and defines the state. In addition, in this embodiment, as will be described later, the search of the rule data 110 and the transition of the state are also controlled according to the stack state number NSA stored in the storage unit 104 described with reference to FIG.

以下、図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 CPU 201 first determines that all the rule searches for the input word set obtained from the user's utterance in the preprocessing of step S405 in FIG. 4 shown in FIG. Step S613: YES), a series of processes from steps S601 to S612 are repeatedly executed.

この繰返し処理において、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 CPU 201 first reads the rule data 110 (corresponding to the rule data 110 in the database 101 in FIG. 1) of FIG. First, the database 102 is searched for the rule data 110 containing the assumed input word set included in the input word set (corresponding to the input word set 111 in FIG. 1) (step S601). As another embodiment of step S601, the CPU 201 determines that the assumed input word count (see FIG. 3C) is the input word count (FIG. 3A) of the input word set (corresponding to the input word set 111 in FIG. 1). ) and all the assumed words in the array of assumed input words (see FIG. 3(c)) match all of the input words (see FIG. 3(b)). good. Note that when the input sentence is in Japanese, the order of the words between the assumed input word set and the input word set does not matter. This is to cope with the case where words are inverted depending on the input sentence.

ステップS601の検索の結果、CPU201は、データベース102内からルールデータが見つかったか否かを判定する(ステップS602)。 As a result of the search in step S601, the CPU 201 determines whether rule data has been found in the database 102 (step S602).

ルールデータが見つからなかった場合(ステップS602の判定がNOの場合)には、CPU201は、全てのルールデータの検索が終了したか否かを判定する(ステップS613)。 If no rule data is found (NO in step S602), the CPU 201 determines whether or not all rule data have been searched (step S613).

全てのルールデータの検索が終了していない場合(ステップS613の判定がNOの場合)には、CPU201は、ステップS601の検索処理に戻ってルールデータの検索を繰り返し実行する。 If the search for all rule data has not ended (NO in step S613), the CPU 201 returns to the search processing in step S601 and repeats the search for rule data.

ステップ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 CPU 201 executes a series of processes shown in steps S603 to S612 below to perform step S601. It is determined whether or not to adopt the rule data found in the above as the response candidate rule data 112 (see FIG. 1).

具体的には、CPU201はまず、図2のメモリ202上に保持している変数である状態番号係数が示す倍率を、初期値である1.0にセットする(ステップS603)。状態番号係数は、現在の状態以外の過去に発生した状態に対応するルールデータを検索する場合に、その状態をどの程度重要視するかを決定するための重みデータである。 Specifically, the CPU 201 first sets the magnification indicated by the state number coefficient, which is a variable held in the memory 202 in FIG. 2, to the initial value of 1.0 (step S603). The state number coefficient is weight data for determining how important a state is to be given when retrieving rule data corresponding to a state that occurred in the past other than the current state.

次に、CPU201は、メモリ202(記憶部104)上に制御データとして保持している(記憶されている)状態番号のスタック配列:state_id(図3(a)参照)において、スタック配列中の所定の複数のスタック状態番号NSAのうち、最初のスタック状態番号NSA、すなわち、記憶された最新の状態番号を読み出す(ステップS604)。 Next, the CPU 201 stores a stack array of state numbers held (stored) as control data in the memory 202 (storage unit 104): state_id (see FIG. 3A). The first stack state number NSA, ie, the latest stored state number, is read out of the plurality of stack state numbers NSA (step S604).

次に、CPU201は、ステップS601によって見つかったルールデータ中の状態番号:state_id(図3(c)参照)が、上記ステップS604又は後述するS611によって選択された現在のスタック状態番号NSAと一致するか否かを判定する(ステップS605)。 Next, the CPU 201 determines whether the state number: state_id (see FIG. 3C) in the rule data found in step S601 matches the current stack state number NSA selected in step S604 or S611, which will be described later. It is determined whether or not (step S605).

ステップS605の判定がYESならば、CPU201は、応答候補ルールデータリストtransCandidates(図3(a)参照)に、当該ルールデータに対応するステップS601で見つかったルールデータへのポインタ:transition(図3(c))の値を登録することにより、上記応答候補ルールデータリストに、当該ルールデータを新たな応答候補ルールデータ112として追加する(ステップS606)。 If the determination in step S605 is YES, the CPU 201 stores a pointer to the rule data found in step S601 corresponding to the rule data in response candidate rule data list transCandidates (see FIG. 3A): transition (see FIG. 3 ( By registering the value of c)), the rule data is added to the response candidate rule data list as new response candidate rule data 112 (step S606).

次に、CPU201は、応答候補ルールデータリストtransCandidatesから参照される、今回追加された応答候補ルールデータ112のスコアに、図6のステップS601で見つかったルールデータ110の想定入力単語組内の各想定入力単語に対応する各入力単語の各重み係数:weight(図3(b)参照)の2乗値を、全入力単語で累算する(ステップS607)。なお、応答候補ルールデータ112のスコアの初期値は所定値に設定されている。所定値は任意の値を採用可能であり、例えば値0でもよい。 Next, the CPU 201 adds each assumption in the assumed input word set of the rule data 110 found in step S601 of FIG. The square value of each weight coefficient: weight (see FIG. 3B) of each input word corresponding to the input word is accumulated for all input words (step S607). Note that the initial value of the score of the answer candidate rule data 112 is set to a predetermined value. Any value can be adopted as the predetermined value, for example, the value 0 may be used.

続いて、CPU201は、応答候補ルールデータリストtransCandidatesから参照される、今回追加された応答候補ルールデータ112のスコアに、メモリ202上に保持されている変数である状態番号係数の2乗値を累算する(ステップS608)。前述したように、状態番号係数は、オートマトンの現在の状態番号以外の状態番号を含むルールデータ110を採用する場合に、その状態番号をどの程度重要視するかを決定するための重みデータである。 Subsequently, the CPU 201 accumulates the square value of the state number coefficient, which is a variable held in the memory 202, to the score of the response candidate rule data 112 added this time, which is referred to from the response candidate rule data list transCandidates. (step S608). As described above, the state number coefficient is weight data for determining how important the state number is when adopting the rule data 110 including the state number other than the current state number of the automaton. .

次に、CPU201は、応答候補ルールデータリストtransCandidatesから参照される、ステップS606で追加された応答候補ルールデータ112としてのルールデータ110のスコアの値を、下記(1)式に従い、コサイン類似度に変換する(ステップS609)。「sqrt()」は、平方根を計算する演算を示す。「Ctrl.score_coef」は、図3(a)の制御データの先頭アドレスCtrlから参照される評価係数であり、図5のステップS503、S508、S510などで算出されている値である。また、「transCandidates->score」は、メモリ202上の今回追加された応答候補ルールデータ112のスコア変数値を示している。 Next, the CPU 201 converts the score value of the rule data 110 as the response candidate rule data 112 added in step S606, which is referenced from the response candidate rule data list transCandidates, into the cosine similarity according to the following equation (1). Convert (step S609). "sqrt()" denotes an operation that computes the square root. "Ctrl.score_coef" is an evaluation coefficient referenced from the start address Ctrl of the control data in FIG. Also, “transCandidates->score” indicates the score variable value of the response candidate rule data 112 added this time on the memory 202 .

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 rule data 110 as the new response candidate rule data 112 are calculated by the above equation (1), the standard deviation corresponding to the above-mentioned input word set is calculated. The correlation coefficient can be calculated by multiplying by the reciprocal evaluation coefficient.

次に、CPU201は、ステップS613の処理からステップS601に戻り、次のルールデータに対する検索処理を繰り返し実行する。 Next, the CPU 201 returns from the process of step S613 to step S601, and repeats the search process for the next rule data.

一方、ステップ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 rule data 110 found in step S601 does not match the current stack state number NSA selected in step S604 or S611, the CPU 201 It is determined whether or not the search for the stack state number NSA in the array has ended (step S610). When the determination in step S610 is NO, the stack state number NSA stored one before the stack state number NSA being read at that time is read out (step S611), and the state number coefficient is attenuated by a predetermined value. A coefficient (1.0>attenuation coefficient>0) is multiplied (step S612), and the process returns to step S605.

一方、上記ステップ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 rule data 110 is completed, wild card list search processing and super wild card list search processing are executed in steps S614 and S615, respectively, as will be described later. , the process ends.

以上により、図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 rule data 110 found in step S601 matches the first stack state number NSA read out in step S604, that is, the current state of the automaton ( In step S605: YES), the state number coefficient set to 1.0 in step S603 is used as it is, and is accumulated in step S608.

一方、ステップ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 CPU 201 converts the maximum likelihood (highest score) candidate rule data 110 to the response rule data list of FIG. It is determined as data 113 (step S701).

続いて、CPU201は、ステップS701の最尤候補のルールデータ110が有する応答文:bot_reply(図3(c)参照)を、図2の音声出力装置209に出力する(ステップS702)。音声出力装置209は、応答文:bot_replyに対応するデジタル音声応答信号を合成し、そのデジタル音声応答信号を内蔵のD/A変換器にてアナログ音声応答信号に変換し、そのアナログ音声応答信号をアンプ及びスピーカを介してユーザに向かって放音する。なお、上記応答文:bot_replyの音声信号を放音せずに、上記応答文:bot_replyのテキストデータが、出力装置204のディスプレイに表示されてもよい。 Subsequently, the CPU 201 outputs the response sentence: bot_reply (see FIG. 3C) included in the maximum likelihood candidate rule data 110 in step S701 to the voice output device 209 in FIG. 2 (step S702). The voice output device 209 synthesizes a digital voice response signal corresponding to the response sentence: bot_reply, converts the digital voice response signal to an analog voice response signal with a built-in D/A converter, and converts the analog voice response signal to A sound is emitted toward the user via an amplifier and a speaker. The text data of the response sentence: bot_reply may be displayed on the display of the output device 204 without outputting the voice signal of the response sentence: bot_reply.

続いて、CPU201は、最尤候補のルールデータ110の遷移先状態番号:next_state_id(図3(c)参照)を取得する(ステップS703)。 Subsequently, the CPU 201 acquires the transition destination state number: next_state_id (see FIG. 3C) of the maximum likelihood candidate rule data 110 (step S703).

そして、CPU201は、ステップS702で取得した遷移先状態番号が、状態番号のスタック配列:state_id(=図1のスタック状態番号NSA)上で連続しないようにして、遷移先状態番号を、スタック状態番号NSAとして上記スタック配列にプッシュする(ステップS704)。この場合、本処理の初回の実行時、すなわち、状態番号のスタック配列に何もスタック状態番号NSAがスタックされていないときには、現在の状態番号及び遷移先状態番号を、この順にスタック配列にプッシュする。 Then, the CPU 201 prevents the transition destination state numbers obtained in step S702 from being consecutive on the stack array of state numbers: state_id (= stack state number NSA in FIG. It is pushed to the stack array as NSA (step S704). In this case, when this process is executed for the first time, that is, when no stack state number NSA is stacked in the state number stack array, the current state number and transition destination state number are pushed to the stack array in this order. .

図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 state number 0 to state number 4. FIG. Also, FIG. 8(a) shows a legend regarding the operation examples shown in FIGS. 8(b), 9, and 10. FIG. Numbers (X=0, 1, 2, 3, 4) enclosed in thick solid circles indicate state numbers of the automaton. A broken-line frame #Xi with a pound sign indicates the i-th rule data 110 (see FIG. 1) when the state number of the automaton is the state number X. FIG. In this rule data 110, dark-colored frames indicate "conditions" for selecting the rule data 110. FIG. Also, the text in the balloon facing left is the input word group (input word group 111 ) indicates an assumed input word set (see FIG. 1) to be matched. The text in the balloon facing to the right indicates the text of the response sentence (see FIG. 1).

ここで、ユーザによる入力文と入力単語組の取得方法については、前述したとおりである。この入力単語組のテキストデータは、図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 state number 0, the rule data 110 [#0-0] is such that, for example, when an interrogative sentence including the word "I like" is given as an input word set corresponding to the input sentence by speaking of the user, This is rule data for outputting a response sentence corresponding to the text "I don't understand." Further, in this operation example, after the response sentence based on the rule data 110[#0-0] is output (step S702 in FIG. 7), the solid line output from the dashed frame of the rule data 110[#0-0] As indicated by the arrow, the state number of the automaton maintains the current state number 0. pushed onto the stack). This solid arrow corresponds to the next transition destination state number in the rule data 110 of FIG. The same applies to the rule data 110 [#0-1] and [#0-3] in state number 0 shown in FIG. 8(b).

一方、図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 state number 0 shown in FIG. 8B includes two words "animal" and "talk" corresponding to the interrogative sentence of the input sentence "animal story". This is a rule for outputting a response sentence corresponding to the text "Yes, let's talk about animals" when given an input word set. Also, in this operation example, after the response sentence based on this rule data 110[#0-2] is output (step S702), the solid line arrow output from the dashed frame of the rule data 110[#0-2] is changed to a thick line. As shown by adding "1" surrounded by a dashed circle, the state number of the automaton transitions from the current state number 0 to the state number 1 shown in FIG. The transition destination state number=1 is acquired from the data 110 [#0-2] and pushed onto the stack in step S704).

図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 state number 1, it is in a state in which a group of rule data for talking about animals is associated. For example, the rule data 110 [#1-0] is such that when an input word set generated from an input sentence includes the word "cat", the response sentence "Cat's eyes are big, isn't it?" as a general topic about cats. It is a rule for output. In addition, the rule data 110 [#1-1] is such that when an input word set generated from an input sentence includes the word "eyes", "cat's eyes are big, aren't they?" as a general topic about cat's eyes. This is a rule for outputting a response sentence. After these rule data 110 [#1-0] and [#1-1] are output (step S702 in FIG. 7), each of the rule data 110 [#1-0] and [#1-1] The state numbers of the automaton are shown in FIG. 9 through the current state number 1 shown in FIG. Transition to state number 2 (transition destination state number=2 is acquired from rule data 110 [#1-0] or [#1-1] in step S703 of FIG. 7, and pushed to the stack in step S704).

一方、図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 state 1 of FIG. 9, the rule data 110 [#1-2], for example, defines a general topic about foxes as a general topic about foxes when an input word set generated from an input sentence includes the keyword "foxes." This is a rule for outputting a response sentence such as "I have an image of you acting at night." In addition, the rule data 110 [#1-3] indicates that when an input word set generated from an input sentence includes the word "eyes", a general topic related to fox eyes is "A fox might have eyes like a cat." This is a rule for outputting the response sentence. After these rule data 110 [#1-2] and [#1-3] are output (step S702 in FIG. 7), each of the rule data 110 [#1-2] and [#1-3] The state numbers of the automaton are shown in FIG. 9 through the current state number 1 shown in FIG. Transition to state number 4 (transition destination state number=4 is acquired from rule data 110 [#1-2] or [#1-3] in step S703 of FIG. 7, and pushed to the stack in step S704).

なお、猫の話題に関するルールデータ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 state number 2 in FIG. 10 that transitions after rule data 110 [#1-0] or rule data 110 [#1-1] in state number 1 in FIG. 9 is selected, and the state that transitions from state number 2 State number 3 corresponds to the group of rule data 110 relating to deeper topics about cats. On the other hand, the state of state number 4 in FIG. 9, which transitions after rule data 110 [#1-2] or rule data 110 [#1-3] in state number 1 of FIG. etc.).

図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 state number 1 in FIG. This is a rule for returning similar ambiguous response sentences such as After the rule data 110 [#1-4] is output (step S702 in FIG. 7), the solid-line arrow that emerges from the dashed-line frame of the rule data 110 [#1-4] is surrounded by a thick solid-line circle with "1 , the state number of the automaton maintains the state number 1 shown in FIG. The number=1 is obtained, and 1 remains stored at the top of the stack in step S704).

図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 state number 0 of the automaton, the user speaks, for example, and the input sentence In[0] "Let's talk about animals" is input. Suppose that an input word set consisting of is generated by morphological analysis. 3C stored in the memory 202 or the auxiliary information storage device 205, the assumed input word set userWords[0], userWords [1] (see FIG. 3(c)) is included in (here, "matches") the input word set "animal" and "story", and the rule data 110 is retrieved (step S601 in FIG. 6). . As a result, the current state number state_id (see FIG. 3(c)) matches the automaton state number 0 in FIG. )) is included in (or matches with) the input word set “animal” and “talk” is searched for one rule data 110 [#0-2]. Also, although not explained in step S601, it is determined that the input sentence In[0] is an interrogative sentence of the "proposal" type as the "type" and has "affirmative" as the "affirmative/negative" item. , the rule data 110 [#0-2] is retrieved and set as the response candidate rule data 112 (the first determination in step S605 in FIG. 6 is YES, and step S606 fart).

次に、図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 value 1 as the next transition destination state number next_state_id (Fig. 7 step S703), the state number of the automaton changes from state number 0 to state number 1 (step S704 in FIG. 7).

このとき、応答ルールデータ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 value 0 of the state number state_id (see FIG. 3(c)) is first pushed and stored as the stack state number NSA in the state number stack array: state_id (see FIG. 3(a)). The value 1 of the next transition destination state number next_state_id of the data 110 [#0-2] is further pushed to the state number stack array: state_id (see FIG. 3A) and stored as the next stack state number NSA. (step S704 in FIG. 7). In this case, the state number 0 is stored as the previous past stack state number NSA, and the next transition destination state number 1 is stored as the latest stack state number NSA.

またこのとき、図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 state number 1 of the post-transition automaton, the input sentence In[1] "I'm thinking of getting a cat" is input, and the input word set 111 including the word "cat" is generated by morphological analysis of this. Suppose it was On the other hand, among the plurality of rule data 110 in FIG. 3C, the assumed input word set userWords[0] (see FIG. ” is searched for rule data 110 that is included in (or matches with) (step S601 in FIG. 6). As a result, the current state number state_id (see FIG. 3(c)) matches the state number 1 of the automaton shown in FIG. is included in (or matches with) the input word set "cat". Also, the input sentence In[1] is determined to be an interrogative sentence of the "other" type as the "type" and has "affirmative" as the "affirmative/negative" item, which corresponds to the input sentence In[1] in FIG. Then, the rule data 110 [#1-0] is searched as the answer candidate rule data 112 (the first judgment in step S605 in FIG. 6 becomes YES, and the process proceeds to step S606).

次に、図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 value 2 as the next transition destination state number next_state_id (see FIG. 7 step S703), the state number of the automaton transitions from the previous state number 1 to state number 2 (step S704 in FIG. 7).

このとき、応答ルールデータ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 state number 2 of the automaton after the transition, the input sentence In[2] is "That's right, your eyes are big and cute, isn't it?" . On the other hand, among the plurality of rule data 110 in FIG. 3C, the assumed input word set userWords[0] (see FIG. ” is retrieved (or matches) (step S601).

この結果、図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 state number 2 of the automaton, and the current state number state_id (see FIG. 3 The rule data 110 [#1-1] and [#1-3] in which (see (c)) matches the state number 1 are sequentially searched, and the determination in step S602 becomes YES. Subsequently, in subsequent steps S603 to S612, for the rule data 110 [#2-0], the state number 2 of the automaton is added to the top of the state number stack array: state_id (see FIG. 3(a)). Matches the latest pushed stack state number NSA (=2), and as a result of the first determination of YES in step S605, the state number coefficient=1 is accumulated in the score (step S608). ). Similarly, for the rule data 110 [#1-1] and [#1-3], the state numbers of these automatons are the stack array of state numbers: state_id (see FIG. 3(a)). The second pushed stack state number NSA (=1) is matched, and as a result, step S612 is executed once each by making a second determination of YES in step S605. , state number coefficient=1×0.9=0.9 are accumulated (steps S612, S608).

以上より、そのスコアが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 value 2 as the next transition destination state number next_state_id (Fig. 7 step S703), the state number of the automaton representing the rule data 110 to be selected next maintains the previous state number 2 (step S704 in FIG. 7).

このとき、応答ルールデータ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 value 2 of the transition destination state number next_state_id 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-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 state number 2 of the post-transition automaton, assume that the input sentence In[3] is "Suddenly you're talking about a fox, isn't it?", and an input word set 111 including the word "fox" is generated. . On the other hand, among the plurality of rule data 110 in FIG. 3(c), the assumed input word set userWords[0] (see FIG. 3(c)) is included in the input word set "fox" (or , matching) rule data 110 is retrieved (step S601).

この結果、図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 rule data 110 including the current state number 2 of the automaton in FIG. , “fox” in the assumed input word array userWords[] (see FIG. 3(c)) does not exist, but as illustrated in FIG. 3(c)), the rule data 110 [#1-2] including "fox" in the assumed input word array userWords[] (see FIG. 3(c)) is searched. , the determination in step S602 is YES. Subsequently, in subsequent steps S603 to S612, for the rule data 110 [#1-2], the state number 1 of the automaton is pushed before the latest state number 2 of the state number stack array: state_id. and the past stack state number NSA (=1), which results in a YES determination in step S605 for the second time. 0.9=0.9 is multiplied (steps S612, S608).

以上より、ルールデータ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 value 4 as the next transition destination state number next_state_id (step S703), the state number of the automaton transitions from state number 2 to state number 4 (step S704 in FIG. 7).

このとき、応答ルールデータ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 value 4 of the transition destination state number next_state_id is pushed to the state number stack array: state_id and stored as the latest stack state number NSA (step S704).

またこのとき、前述した応答文記憶部に、応答ルールデータ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 state number 1 after the transition, it is assumed that the input sentence In[4] is "that's right, you know well" and that an input word set 111 including the word "that's right" is generated. On the other hand, among the plurality of rule data 110 in FIG. 3C, the assumed input word group userWords[0] (see FIG. The rule data 110 included in (or matching with) is searched (step S601).

この結果、図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 rule data 110 including the current state number 4 of the automaton in FIG. , "Sona na" in the assumed input word array userWords[] (see FIG. 3(c)) is not found, but as illustrated in FIG. The rule data 110 [#1-4] includes "that's right" in the array userWords[] of assumed input words (see FIG. 3(c)) in the rule data 110 included as the number state_id (see FIG. 3(c)). is retrieved, and the determination in step S602 becomes YES. Subsequently, in subsequent steps S603 to S612, for the rule data 110 [#1-4], the state number 1 of the automaton is higher than the latest stack state number NSA (=4) of the state number stack array: state_id. Matches the past stack state number NSA (=1) that was pushed earlier, and as a result of the determination of YES in step S605 for the third time, step S612 is executed twice, and the state number is added to the score. A coefficient=1×0.9×0.9=0.81 is multiplied (steps S612 and S608).

以上より、ルールデータ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 state number 1 of the automaton is selected as the response rule data 113 corresponding to the input sentence In [4], as shown in FIG. 11 (step S701). . Then, as shown in FIG. 11, the response sentence bot_reply (see FIG. 3(c)) of the rule data 110 [#1-4] selected as the rule data 113 is the response sentence Out[4]=“That's right. I think" (see FIG. 11), that is, is generated as a response sentence 114 (see FIG. 1) and output (step S702). Along with that, the rule data 110 [#1-4] selected as the response rule data 113 is referred to, and since this rule data 110 [#1-4] contains the value 1 as the next transition destination state number next_state_id ( Step S703 in FIG. 7), the state number of the automaton representing the rule data 110 to be selected next maintains the previous state number 1 (step S704 in FIG. 7).

このとき、応答ルールデータ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 value 1 of the transition destination state number next_state_id 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として選択されたルールデータ#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 state number 0 of the automaton shown in FIG. 8(b), the item of the input statement is "*". This is a rule with a word matching condition of "treat any word (morpheme) as applicable". Then, for example, as an input sentence, there is a keyword (and there is no condition such as a question sentence) that is not set in any of the other rule data 110 [#0-0] to [#0-2] including the state number 0. It is a rule for outputting a response sentence such as "What did you say?" when given. This "*" is called a wild card. A solid-line arrow emerging from the dashed frame of the rule data 110[#0-3] indicates that after the rule data 110[#0-3] is selected, the same state number 0 as before the selection is maintained. (That is, the next transition destination state number is 0). By setting such wildcard rule data, ambiguous dialogue can be realized.

図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 state number 3 of the automaton shown in FIG. 10, the input statement item is "#". This is called a super wild card. The super-wildcard has the same word matching condition as the wildcard, ``treat any word (morpheme) as corresponding'', but the rule data 110 is the state number that matches the current state number of the automaton. Only those that include are added as answer candidate rule data 112, and when this rule data 110 is added to the candidates, rule data 110 in other states are deleted from the answer candidate rule data list. Similar to the wildcard described above, a keyword (and a condition such as an interrogative sentence) that is not set in any other rule data 110 [#3-0] to [#3-1] including state number 3 is used as an input sentence. This is a rule for outputting a response sentence such as "I would like to touch it" when given "No"). Here, for example, after the rule data 110 [#3-3] is selected by the solid-line arrow emerging from the dashed frame of the rule data 110 [#3-3], a different state number (for example, state number 2 ). In this way, when an appropriate transition destination is described in the super wildcard rule data 110, the behavior of transitioning to another state number can be realized. By setting such super wild card rule data 110, it is possible to realize a dialogue that greatly changes the topic when the dialogue gets stuck. Alternatively, for example, it is possible to implement behavior such as staying in the same state until a satisfactory answer is obtained systematically, that is, repeating the same question.

図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 CPU 201 also performs the above-described wild card and super wild card: The same search processing as in the processing from steps S601 to S613 described above is executed. Its details are omitted.

なお、前述しようたに、スーパーワイルドカードは、それに対応するルールデータ110が応答ルールデータ113(図1参照)として選択された後は、選択前とは異なる状態番号にオートマトンの状態番号が遷移するという性格上、このルールデータ110に含まれる状態番号は、状態番号のスタック配列:state_id(=図1のスタック状態番号NSA)に同じ番号のスタック状態番号NSAが含まれているか否かにかかわらず、現在の状態番号と一致しないルールは応答候補ルールデータリストtransCandidatesに追加しないように制御されてよい。また、このリストにスーパーワイルドカードのルールが追加された段階で、リストからは、現在の状態番号以外の状態番号を有するルールを排除するように制御されてよい。 As described above, after the rule data 110 corresponding to the super wild card is selected as the response rule data 113 (see FIG. 1), the state number of the automaton transitions to a state number different from that before selection. Therefore, the state number included in the rule data 110 is the same regardless of whether the stack array of state numbers: state_id (=stack state number NSA in FIG. 1) includes the stack state number NSA of the same number. , a rule that does not match the current state number may be controlled so as not to be added to the response candidate rule data list transCandidates. Also, when the super wild card rule is added to this list, the list may be controlled to exclude rules having state numbers other than the current state number.

以上、本実施形態では、データベース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 rule data 110 corresponding to the input utterance information 115 among the plurality of rule data 110 stored in the database 102, for example, the set of assumed input words corresponding to the set of input words in the input utterance information 115 is set as a candidate for response rule data 113 (response candidate rule data 112). A rule indicating a predetermined state including the current state of the automaton among the plurality of rule data 110, for example, a state included in a plurality of states stored in the storage unit 104 for sequentially storing the current state or the state of the automaton. Data 110 is selected as a candidate for response rule data 113 (response candidate rule data 112). Then, the response sentence 114 included in the response rule data 113 selected as such is output. As a result, in this embodiment, it is possible to output the response sentence 114 based on the response rule data 113 along the flow of conversation with the user, for example. At this time, in the present embodiment, among the plurality of rule data 110, the state of the corresponding automaton responds with rule data indicating the same state as the state stored more recently among the plurality of states stored in the storage unit 104. It can be preferentially selected as the rule data 113 . As a result, it is possible to output a response sentence 114 based on the response rule data 113 that better corresponds to the current topic.

本実施形態の場合と異なり、従来の対話装置では、例えば、オートマトンの現在の状態番号を含むルールデータとして適切なルールデータが設定されていないために、現在の状態番号のルールデータ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 rule data 110. The score is calculated so that the rule data 110 corresponding to the state of the automaton showing the same state as the previously stored state is less likely to be selected as the response rule data. For example, in each rule data 110, the state number coefficient of the rule data 110 is multiplied by an attenuation coefficient whose value is attenuated as the state indicated by the rule data 110 is stored in the storage unit 104 in the past, and The multiplied state number factor is accumulated in the score of that rule data 110 . Then, the rule data 110 having the maximum score among the multiple rule data 110 is selected as the response rule data 113 . Therefore, it is possible to provide the dialogue device 100 that enables natural dialogue based on past topics with the user and in line with more recent topics.

また、本実施形態では、入力文(入力発話情報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 rule data 110 and the plurality of input words in the input word set 111 extracted by morphological analysis from the input sentence, Response candidate rule data 112 is retrieved from a plurality of rule data 110 in the database 101 . In this way, in this embodiment, since the response candidate rule data 112 is searched by comparing words, it is possible to determine dialogue rules based on appropriate words included in the topic.

加えて、本実施形態では、応答候補ルールデータ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 sentence storage unit 105, which stores a predetermined number of past response sentences. It is possible to prevent the dialogue from becoming monotonous.

本実施形態では、入力単語毎に重み係数を設定しているが、全ての入力単語に一律に同じ重み係数を設定してもよい。 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 storage unit 104 is attenuated. The state number coefficient is multiplied, the state number coefficient is accumulated in the score of the answer candidate rule data 112, and the answer rule data 113 is selected from the plurality of answer candidate rule data 112 according to the score. The candidate response rule data 112 corresponding to a specific past status may be preferentially selected as the response rule data 113 based on another algorithm from the status history.

本実施形態では、ルールデータ110毎に設定された想定入力単語組が入力単語組111と比較されることにより応答候補ルールデータ112が選択されるようにしたが、想定入力単語組ではなく、例えばルールデータ110中の応答文から形態素解析により得られる単語組が入力単語組111と比較されてもよい。その他、様々に設定された単語組や文と入力単語組とが比較されてもよい。 In this embodiment, the assumed input word set set for each rule data 110 is compared with the input word set 111 to select the response candidate rule data 112. However, instead of the assumed input word set, for example A word set obtained by morphological analysis from a response sentence in the rule data 110 may be compared with the input word set 111 . Alternatively, variously set word sets or sentences may be compared with the input word set.

本実施形態では、ユーザによる発話の内容が想定外の内容である場合(入力単語組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 sentence storage unit 105 that stores a predetermined number of past response sentences. However, the same response sentence may be output repeatedly according to a predetermined algorithm.

本実施形態では、データベース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 rule data 110 in the database 101, and finally the response rule data 113 is selected from the plurality of candidate response rule data 112. 6 and 7 is shown as a method for determining the number of stacks corresponding to the most recently stored stack state number NSA among the plurality of stack state numbers NSA stored in the storage unit 104. Various algorithmic techniques can be employed under the condition that the response candidate rule data 112 is preferentially selected as the response rule data 113 . For example, from the stage of searching the answer candidate rule data 112 from the rule data 110 in the database 102, each state in the plurality of stack state numbers NSA stored in the storage unit 104 is compared with each state in the rule data 112. The search may be performed while

上記本実施形態の構成に加えて、現在の状態番号と同じ状態番号を含むルールデータがみつかったらその時点で応答候補ルールデータリスト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 storage unit 104 is retrieved. An approach that does not consider NSA may be adopted.

上記本実施形態では、図6において全てのルール検索が終了するまで入力単語組に包含される想定入力単語組を含むルールデータ110を検索するステップS601の処理が繰り返し実行されている。これに対して、オートマトンの現在の状態番号及びスタック配列に含まれるスタック状態番号NSAのいずれかと一致する状態番号を含むルールデータ110についてのみ、入力単語組に応じた検索が行われるようにしてもよい。 In the present embodiment described above, the process of step S601 of searching for the rule data 110 including the assumed input word set included in the input word set is repeatedly executed until all rule searches in FIG. 6 are completed. On the other hand, even if the rule data 110 including the state number matching either the current state number of the automaton or the stack state number NSA included in the stack array is searched according to the input word set, good.

更に、上記本実施形態では、減衰係数を反映させたコサイン類似度がスコアとして算出されているが、応答候補ルールデータ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 acquisition unit 106 may acquire the input utterance information 115 based on the voice of a predetermined target, such as a user, input via the microphone.
Further, in the above-described embodiment, a speaker may be further provided, and the response sentence output unit 103 may output a voice corresponding to the response sentence 114 to a predetermined target, such as a user, via the speaker. .
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 1.
(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 1 or 2.
(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 3.
(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 appendices 1 to 5.
(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 appendices 1 to 6.
(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 dialogue device 101 database 102 data acquisition unit 103 response sentence output unit 104 storage unit 105 response sentence storage unit 106 acquisition unit 107 extraction unit 110 rule data 111 input word set 112 response candidate rule data 113 response rule data 114 response sentence 115 input utterance Information NSA Stack State Number 201 CPU
202 Memory 203 Input Device 204 Output Device 205 Auxiliary Information Storage Device 206 Media Drive Device 207 Network Connection Device 208 Audio Input Device 209 Audio Output Device 210 Bus 211 Portable Recording Medium

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.
JP2019009482A 2019-01-23 2019-01-23 Dialogue device, dialogue method, and program Active JP7259349B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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