JPWO2019208222A1 - 回答選択装置、回答選択方法、回答選択プログラム - Google Patents

回答選択装置、回答選択方法、回答選択プログラム Download PDF

Info

Publication number
JPWO2019208222A1
JPWO2019208222A1 JP2020516203A JP2020516203A JPWO2019208222A1 JP WO2019208222 A1 JPWO2019208222 A1 JP WO2019208222A1 JP 2020516203 A JP2020516203 A JP 2020516203A JP 2020516203 A JP2020516203 A JP 2020516203A JP WO2019208222 A1 JPWO2019208222 A1 JP WO2019208222A1
Authority
JP
Japan
Prior art keywords
question
unit
pair
search result
answer
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.)
Granted
Application number
JP2020516203A
Other languages
English (en)
Other versions
JP7111154B2 (ja
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2019208222A1 publication Critical patent/JPWO2019208222A1/ja
Application granted granted Critical
Publication of JP7111154B2 publication Critical patent/JP7111154B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3346Query execution using probabilistic model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Probability & Statistics with Applications (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

入力された質問に対してより適切な回答を得る。本発明の回答選択装置は、記録部、文書検索部、情報取得部、スコア算出部、ランキング部を備える。記録部は、質問と応答のペアである質問応答ペアを複数記録する。文書検索部は、入力質問を入力とし、記録部に記録された質問応答ペアから質問応答ペアを検索し、検索結果質問応答ペアとして出力する。情報取得部は、入力質問と検索結果質問応答ペアを入力とし、入力質問に対する検索結果質問応答ペアの適切さを数値化するための情報を取得し、数値化用情報として出力する。スコア算出部は、検索方式に基づく適切さを示す数値と数値化用情報に基づく数値から、検索結果質問応答ペアごとの入力質問に対するスコアを算出する。ランキング部は、スコアがより適切であることを示す順番に、検索結果質問応答ペアを選択し、選択された検索結果質問応答ペアの応答を、回答として出力する。

Description

本発明は入力された質問に対する回答を出力する回答選択装置、回答選択方法、回答選択プログラムに関する。
対話システム(音声エージェントやパーソナルロボット)が日常的に用いられるようになってきている。対話システムは大きく二種類に分けられる。一つはタスク指向型対話システム、もう一つは非タスク指向型対話システムである。前者は、対話によって所定のタスクを遂行するものであり、後者はいわゆる日常会話を主とするものである。これらの類型については非特許文献1に詳しく示されている。
近年は、スマートフォン上のパーソナルアシスタントやパーソナルロボットなどの普及に伴い、ユーザとのやり取りを継続して行う必要性が増している。そのため、対話システムにも、長期間一貫した応答、すなわち、個性を持ったような応答が求められるようになってきている。対話システムが個性的な応答を実現する方法はいくつも提案されてきている。最も基本的なものは、特定のキャラクタに紐づいた対話ルール、もしくは質問応答ペアを準備し、それを用いて応答を行うものである。非特許文献2,3のシステムでは、質問応答ペアを準備し、それらを用例として検索することで個性的な応答を実現している。
加えて、文末表現などを書き換えることによって、個性を対話システムに付与する研究もある。非特許文献4では,13種類の書き換え規則を用いることで,発話文に個性を与えている。
発話の変換規則を人手で作成することはコストが高いため、ニューラルネットワークを用い、ある個人に紐づいた対話データから自動的に個性的な応答を生成する研究もなされている。非特許文献5では,ツイッター(登録商標)から得られた発話ペアと話者のユーザIDを併用することで、あるユーザIDに特化した応答を生成するニューラルネットワークを構成できることが示されている。
中野幹生,駒谷和範,船越孝太郎,中野有紀子,奥村学(監修) ,"対話システム",コロナ社,2015. Shota Takeuchi, Tobias Cincarek, Hiromichi Kawanami, Hiroshi Saruwatari, and Kiyohiro Shikano, "Construction and optimization of a question and answer database for a real-environment speech-oriented guidance system", in Proc. Oriental COCOSDA, pages 149-154, 2007. Anton Leuski, Ronakkumar Patel, David Traum, and Brandon Kennedy, "Building effective question answering characters", in Proc. SIGDIAL, pages 18-27, 2009. Chiaki Miyazaki, Toru Hirano, Ryuichiro Higashinaka, and Yoshihiro Matsuo, "Towards an entertaining natural language generation system: Linguistic peculiarities of japanese fictional characters", in Proc. SIGDIAL, pages 319-328, 2016. Jiwei Li, Michel Galley, Chris Brockett, Georgios P Spithourakis, Jianfeng Gao, and Bill Dolan, "A persona-based neural conversation model", arXiv preprint arXiv:1603.06155, 2016.
質問応答ペアを用いる場合、ユーザが入力した質問と意味が近い質問を質問応答ペアから探し、その応答を用いて回答することが一般的である。しかし、質問同士の意味的な近さ、ユーザが入力した質問と得られる応答のつながりなどを正確に計算することは容易ではないため、適切な回答が得られないという課題がある。
本発明は、このような課題に鑑みてなされたものであり、入力された質問に対してより適切な回答を得ることを目的とする。
本発明の回答選択装置は、入力された質問である入力質問に対する1つまたは複数の回答を出力する。本発明の回答選択装置は、記録部、文書検索部、情報取得部、スコア算出部、ランキング部を備える。記録部は、質問と応答のペアである質問応答ペアを複数記録する。文書検索部は、入力質問を入力とし、あらかじめ定めた検索方式で、記録部に記録された質問応答ペアから質問応答ペアを検索し、検索結果質問応答ペアとして出力する。情報取得部は、入力質問と検索結果質問応答ペアを入力とし、入力質問に対する検索結果質問応答ペアの適切さを数値化するための情報を取得し、数値化用情報として出力する。スコア算出部は、検索方式に基づく適切さを示す数値と数値化用情報に基づく数値から、検索結果質問応答ペアごとの入力質問に対するスコアを算出する。ランキング部は、スコアがより適切であることを示す順番に、あらかじめ定めた数の検索結果質問応答ペアを選択し、選択された検索結果質問応答ペアの応答を、回答として出力する。
本発明の回答選択装置によれば、入力質問と意味が近い質問を質問応答ペアから探すだけではなく、入力質問に対する質問応答ペアの適切さを数値化して質問応答ペアを選択するので、より適切な応答を回答として出力できる。
実施例1および実施例2の回答選択装置の機能構成例を示す図。 実施例1及び実施例2の回答選択装置の処理フロー例を示す図。 実施例2の拡張なりきり発話組生成装置の機能構成の例を示す図。 実施例2の拡張なりきり発話組生成方法の処理手続きの例を示す図。 第一発話及び第二発話のIDの例を示す図。 第一記録部1に記録されているなりきり発話組の例を示す図。 実施例3の回答選択装置の機能構成例を示す図。 実施例3の回答選択装置の処理フロー例を示す図。 実施例3のモデル学習装置に機能構成例を示す図。 実施例3のモデル学習装置の処理フロー例を示す図。
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
図1に実施例1の回答選択装置の機能構成例を示す。図2に実施例1の回答選択装置の処理フロー例を示す。実施例1の回答選択装置100は、入力された質問である入力質問に対する1つまたは複数の回答を出力する。例えば、M個の回答を出力するようにあらかじめ定めておけばよい。Mは1以上の整数である。例えばM=5のように定めてもよいし、チャットボットのように回答を1つだけにしたい場合はM=1とすればよい。回答選択装置100は、記録部190、文書検索部110、情報取得部121、スコア算出部160、ランキング部170を備える。
記録部190は、質問と応答のペアである質問応答ペアを複数記録する。質問と応答のペアとは、質問:「こんにちは」,応答:「どうもです」のペア、質問:「何歳ですか」,応答「30歳です」のペアなどであり、あらかじめ定めたキャラクタを想定して作成したものである。質問応答ペアの数は想定される質問の種類などに応じて適宜決めればよい。上記のような一般的な質問を想定するのであれば、例えば1万以上の質問応答ペアを準備すればよい。
文書検索部110は、入力質問を入力とし、あらかじめ定めた検索方式で、記録部190に記録された質問応答ペアから質問応答ペアを検索し、検索結果質問応答ペアとして出力する(S110)。例えば、あらかじめ最大でN個の質問応答ペアを検索結果質問応答ペアとするように決めておけばよい。NはM以上の整数であり、例えば10のように定めればよい。なお、Nは2以上が望ましいが、1以上でも構わない。文書検索部110には、一般的に用いられている文書検索エンジンを用いればよい(参考文献1:Hatena Blog, 2014年11月12日,“確率的情報検索 Okapi BM25 についてまとめた” ,[平成30年4月10日検索]、インターネット<http://sonickun.hatenablog.com/entry/2014/11/12/122806>.)。具体的には、入力質問から形態素解析によって内容語(名詞、動詞、形容詞など)を抽出し、重要な内容語がより多くマッチする質問を持つ質問応答ペアを検索し、出力すればよい。また、文書検索部110は、重要な内容語がマッチした程度を示す数値も出力し、この数値はスコア算出部160に入力される。
スコア算出部160は、文書検索部110が出力した重要な内容語がマッチした程度を示す数値から、文書検索部110で用いている検索方式に基づく適切さを示す数値を求める。例えば、文書検索部110が出力した重要な内容語がマッチした程度を示す数値から、検索結果質問応答ペアの順位rを求める。そして、
1.0-(r−1)/max_rank (1)
ただし、max_rankは検索結果質問応答ペアの数
のように検索方式に基づく適切さを示す数値を求めればよい。max_rankは文書検索部110が検索し得る最大の数Nとしてもよい。例えば、max_rank=10でr=5の場合、検索方式に基づく適切さを示す数値は、0.6となる。以下では、検索方式に基づく適切さを示す数値を、検索スコア(search_score)とする。
情報取得部121は、入力質問と検索結果質問応答ペアを入力とし、入力質問に対する検索結果質問応答ペアの適切さを数値化するための情報を取得し、数値化用情報として出力する(S121)。より具体的には、情報取得部121は、質問タイプ推定部120、焦点抽出部130、翻訳モデル適用部140、発話ベクトル抽出部150を備えればよい。数値化用情報に基づく数値は、情報取得部121が出力した数値化用情報をスコア算出部160の入力とし、スコア算出部160内で求めればよい。詳細については後述する。
<質問タイプ推定部120を有する場合>
質問タイプ推定部120は、入力質問の質問タイプおよび検索結果質問応答ペアの質問タイプを特定する情報を推定する(S120)。この場合、スコア算出部160は、入力質問の質問タイプと検索結果質問応答ペアの質問タイプを特定する情報に基づいて、質問タイプが一致するほど、より適切であることを示すようにスコアを算出する(S160)。質問タイプを特定する情報とは、質問タイプ自体でもよいし、応答に含まれる拡張固有表現のタイプなどでもよい。
例えば、質問タイプの類型には大きく2種類ある。一つは、一般質問タイプと呼ばれるもので、以下の15種類からなる。
真偽,名称:その他,説明:意味,数量:その他,名称:場所名,名称:人名,説明:原因,その他,数量:日付,名称:組織名,説明:方法,数量:時間,数量:金額,その他:選択,説明:評判,説明:連想 もう一つは詳細質問タイプと呼ばれるもので、質問が具体的にどのような固有表現(固有名詞や数値表現)について尋ねているかを表す質問タイプである。詳細質問タイプの類型は三階層からなり、末端には200の詳細質問タイプがある。この類型は関根の拡張固有表現の類型(参考文献2:Satoshi Sekine, Kiyoshi Sudo, and Chikashi Nobata, “Extended named entity hierarchy”, in Proc. LREC, 2002.,参考文献3:「関根の拡張固有表現階層」定義,Version 7.1.2,2016年9月16日,[平成30年4月6日検索]、インターネット<https://nlp.cs.nyu.edu/ene/ene_j_20160801/Japanese_7_1_2_160917.htm>.)に基づく。第一階層目には28個,第二階層目には103個,三階層目には200個の固有表現がある。この階層では、固有表現によっては、三階層でない場合もある。たとえば、Spaは一階層目のLocationの直下にSpaがある。このような場合は、Spaについては、二階層目・三階層目のどちらもSpaとしている。
質問からその質問タイプを推定するには、機械学習を用いた文書分類の手法を用いればよい。具体的には、質問とその質問タイプが対となったデータを大量に準備し、どのような質問の場合、どのような質問タイプとなるかを推定する分類器を機械学習の手法により構築する。これは文書分類の一般的な方法である。学習手法としては、例えばロジスティック回帰を用いればよいが、サポートベクトルマシンやニューラルネットワークなどの手法を用いてもよい。学習のための素性としては、質問を形態素解析して得られる単語のunigram,bigram,trigramの情報を用いればよいが、その他、品詞情報などを用いてもよい。
本発明では、一般質問タイプ、および詳細質問タイプについては階層ごとに分類器を構築する。よって、質問タイプ推定部120は、質問に対して一般質問タイプ,詳細質問タイプ(一階層目),詳細質問タイプ(二階層目),詳細質問タイプ(三階層目)の4つの質問タイプを出力する。例えば、「好きな温泉はどこですか?」という質問であれば、以下の出力が得られる。
・ 一般質問タイプ: 名称:場所名
・ 詳細質問タイプ(一階層目): Location
・ 詳細質問タイプ(二階層目): Spa
・ 詳細質問タイプ(三階層目): Spa
二階層目・三階層目がともにSpaとなっているのは、Spaについては二階層目・三階層目がともにSpaであるためである。
質問タイプ推定部120は、例えば、入力質問に対する4つの質問タイプと、検索結果質問応答ペアの質問に対する4つの質問タイプを出力する。これらの4つの質問タイプが、数値化用情報の例である。この場合は、スコア算出部160には、入力質問に対する4つの質問タイプと検索結果質問応答ペアの質問に対する4つの質問タイプが数値化用情報として入力される。例えば、4つの質問タイプのうち2つが一致している場合の数値化用情報に基づく数値は、2/4=0.5のように求めればよい。この場合は、数値が大きい方がより適切であることを示している。以下では、質問タイプに基づく数値を、質問タイプ一致スコア(qtypes_match_score)とする。質問タイプ推定部120を用いれば、単に重要語の一致だけでなく、質問タイプに適合した回答を選びやすいため、より適切な回答を選ぶことができる。
なお、質問タイプ推定部120は、検索結果質問応答ペアの応答を利用してもよい。この場合は、質問タイプ推定部120は、入力質問に対する4つの質問タイプと、検索結果質問応答ペアの質問の一般質問タイプと、検索結果質問応答ペアの応答に含まれる拡張固有表現のタイプを出力する。例えば、質問タイプ推定部120は、検索結果質問応答ペアの応答について、拡張固有表現の抽出器をかける。これにより、応答にどのような拡張固有表現が含まれているかが分かる。例えば、応答が「草津市の温泉に行った」であれば、拡張固有表現として「草津市」と「温泉」が抽出され、拡張固有表現のタイプとしてCity,Spaが抽出される。この場合、抽出された拡張固有表現のタイプが、検索結果質問応答ペアの質問タイプを特定する情報である。また、入力質問に対する4つの質問タイプと、検索結果質問応答ペアの質問の一般質問タイプと、検索結果質問応答ペアの拡張固有表現のタイプが、数値化用情報の例であり、スコア算出部160に入力される。スコア算出部160は、一般質問タイプについては、入力質問と検索結果質問応答ペアの質問で一致しているか否かで1,0の数値化をする。また、スコア算出部160は、入力質問の詳細質問タイプの3階層のそれぞれについて、対応する拡張固有表現のタイプが応答に含まれているかによって数値化する。含まれているときは1、含まれていないときは0とすればよい。その後、数値を例えば2/4=0.5のように求めればよい。このような処理によっても、同様に質問タイプ一致スコア(qtype_amtch_score)を計算できる。
<焦点抽出部130を有する場合>
焦点抽出部130は、入力質問および検索結果質問応答ペアの質問について、話題となる単語列を焦点語として抽出する(S130)。この場合、スコア算出部160は、入力質問の焦点語と検索結果質問応答ペアの質問の焦点語が一致するほど、より適切であることを示すようにスコアを算出する(S160)。焦点語とは、発話文の話題を表す単語列(基本的に名詞句)のことである。例えば、「先日イギリスに行きました。」という文であれば、「イギリス」が焦点語である。焦点語を抽出するには、機械学習による系列ラベリングの手法を用いればよい。具体的には、大量の文について、焦点語となる単語列をラベル付けし、どのような単語列の場合にその単語列が焦点語となるかの条件を学習すればよい。例えば、条件付き確率場(conditional random fields; CRF)と呼ばれる機械学習の手法を用いて、焦点箇所がラベル付けされたデータから焦点抽出を行う焦点抽出器を構築すればよい。文章中の重要な箇所にラベル付けを行い、系列ラベリングの手法により、未知の文章における重要な箇所をCRFによって抽出することは、言語処理において一般的に用いられている技術である。焦点抽出部130では、この焦点抽出器を用いて、質問から焦点語を抽出し、これらを出力する。なお、焦点語は複数出力される場合もあるし、焦点語が含まれない場合は、出力は空リストとなる。例えば、「今は一人暮らしですか?」という質問であれば、「一人暮らし」が出力となる。
焦点抽出部130は、入力質問の焦点語と、検索結果質問応答ペアの質問の焦点語を出力する。焦点語も数値化用情報の例である。スコア算出部160には、入力質問の焦点語と検索結果質問応答ペアの質問の焦点語が数値化用情報として入力される。スコア算出部160は、例えば、同じ焦点語がある場合は1.0、同じ焦点語がない場合は0.0のように数値化用情報に基づく数値を求めればよい。以下では、焦点語に基づく数値を、焦点一致スコア(center-word_score)とする。焦点抽出部130を用いれば、より質問の焦点を考慮して回答を選ぶことが可能となる。
<翻訳モデル適用部140を有する場合>
翻訳モデル適用部140は、入力質問および検索結果質問応答ペアの応答を入力とし、入力質問から応答が得られる確率に基づく数値を翻訳尤度として出力する(S140)。この場合、スコア算出部160は、翻訳尤度が高いほど、より適切であることを示すように前記スコアを算出する(S160)。また、翻訳モデル適用部140は、さらに、応答から入力質問が得られる確率に基づく数値を逆翻訳尤度として出力してもよい(S140)。この場合、スコア算出部160は、逆翻訳尤度が高いほど、より適切であることを示すようにスコアを算出する(S160)。
翻訳尤度(翻訳スコア)の算出には、翻訳モデルを用いればよい。翻訳モデルとは、入力文を書き換えて別の文章に翻訳するための統計情報である。例えば、どの単語がどの単語に書き換わりやすいといった情報を保持する。これは、機械翻訳において一般的に用いられるものである。近年では、この翻訳モデルをニューラルネットワークで表現することが多く、大量の文ペアから学習した翻訳モデル(seq2seq モデル、もしくはencoder-decoder モデルとも呼ばれる)を用いて、質問を回答に書き換える研究が盛んである(参考文献4:Oriol Vinyals and Quoc Le, “A neural conversational model”, arXiv preprint arXiv:1506.05869, 2015.)。翻訳モデルは、入力文を書き換えるだけでなく、入力文に対する出力文の生成確率を計算することができる。生成確率は、入力文に対する出力文の妥当性を表している。この確率値は非常に小さい値になるため、具体的には対数尤度の値を用いればよい。また、対数尤度は単語数に依存して小さくなることから、対数尤度を単語数で割って正規化すればよい。この対数尤度を正規化した値のことを、翻訳尤度(翻訳スコア)と呼ぶことにする。翻訳モデルは、質問文と回答文のペアを大量に準備してモデルを学習することで構築すればよい。例えば、実際的な翻訳サービスの実現に用いられている翻訳モデル構築ツールを用いればよい。
翻訳モデルの構築には大量の文ペアが必要である。質問応答ペアが少ない場合(例えば、1万程度の場合)、妥当な翻訳モデルを構築できない可能性がある。この場合は、まずキャラクタを特に念頭に置かずに量を重視して作成した50万程度の質問応答ペアを用いて、初期翻訳モデルを学習する。その後、その初期翻訳モデルをベースとして、あらかじめ定めたキャラクタを想定して作成した質問応答ペアに適応させることで、キャラクタに関する翻訳モデルを構築すればよい。
また、翻訳モデルを学習する際に、入力文と出力文を入れ替えて学習することで、出力文から入力文を生成する翻訳モデルも構築することができる。そこで、同様の手続きを用いて入力文と出力文を入れ替えて翻訳モデル(「逆翻訳モデル」と呼ぶことにする。)を構築すればよい。この逆翻訳モデルから得られる確率は、回答文から見て質問文がどの程度妥当かを表す値である。ここでも、対数尤度を単語数で割った値を求めればよい。この値を逆翻訳尤度(逆翻訳スコア(逆方向の翻訳スコア))と呼ぶことにする。翻訳モデル適用部140は、入力質問と検索結果質問応答ペアの応答について、翻訳尤度(翻訳スコア)と逆翻訳尤度(逆翻訳スコア(逆方向の翻訳スコア))を返す。
翻訳モデル適用部140は、少なくとも翻訳尤度を出力し、逆翻訳尤度も出力してもよい。翻訳尤度と逆翻訳尤度も数値化用情報の例である。スコア算出部160には、少なくとも翻訳尤度が数値化用情報として入力される。スコア算出部160には、逆翻訳尤度も数値化用情報として入力されてもよい。翻訳尤度と逆翻訳尤度は0〜1の間に正規化されていないため、他の数値化用情報に基づく数値との統合が難しい。そこで、スコア算出部160は、質問応答ペアを、それぞれ翻訳尤度,逆翻訳尤度によって値が大きいもの順にソートし、それぞれの順位rを得る。そして、スコア算出部160は、式(1)を適用することで0〜1の間の値に変換し、翻訳尤度に基づく数値、逆翻訳尤度に基づく数値とすればよい。以下では、翻訳尤度に基づく数値を翻訳スコア(translation_score)、逆翻訳尤度に基づく数値を逆翻訳スコア(rev_translation_score)とする。翻訳モデル適用部140を用いれば、質問と応答の関連性を考慮したスコアを算出できるので、キャラクタの個性なども考慮した回答の選択が可能になる。
<発話ベクトル抽出部150を有する場合>
発話ベクトル抽出部150は、入力質問および検索結果質問応答ペアの質問について、意味内容を表す発話ベクトルを求める(S150)。この場合は、スコア算出部160は、入力質問の発話ベクトルと検索結果質問応答ペアの質問の発話ベクトルが類似するほど、より適切であることを示すようにスコアを算出する(S160)。
例えば、周辺単語情報に基づいて、単語に固定長のベクトル(単語ベクトル)を割り当てる手法を用いればよい(参考文献5:Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado, and Jeff Dean, “Distributed representations of words and phrases and their compositionality”, in Proc. NIPS, pages 3111-3119, 2013.)。単語を固定長のベクトルとして扱うことができるようになるという利便性から、近年一般的に用いられている。発話ベクトル抽出部150は、入力された文を形態素解析し、単語に分割する。そして、それぞれの単語について参考文献5に示された技術などで得られる単語ベクトルを取得し、すべての単語についてそれらのベクトルを加算する。最後に、ノルムを1に正規化して発話を表すベクトル(発話ベクトル)を得ればよい。
発話ベクトル抽出部150は、入力質問についての発話ベクトルと検索結果質問応答ペアの質問についての発話ベクトルを出力する。発話ベクトルも数値化用情報の例である。スコア算出部160には、入力質問についての発話ベクトルと検索結果質問応答ペアの質問についての発話ベクトルが数値化用情報として入力される。スコア算出部160は、例えば、入力質問についての発話ベクトルと検索結果質問応答ペアの質問についての発話ベクトルのコサイン類似度を、発話ベクトルに基づく数値として求めればよい。コサイン類似度は、意味的類似度を表している。以下では、発話ベクトルに基づく数値を、意味的類似スコア(semantic_similarity_score)とする。発話ベクトル抽出部150を用いれば、発話ベクトルに基づいて回答を選ぶことができる。
スコア算出部160は、検索方式に基づく適切さを示す数値と数値化用情報に基づく数値から、検索結果質問応答ペアごとの入力質問に対するスコアを算出する(S160)。入力質問Q、検索結果質問応答ペアの質問Q’、応答A’とするときに、スコアscore(Q,(Q’,A’))を例えば以下のように求めればよい。
score(Q,(Q’,A’))
=w・search_score
+w・qtypes_match_score
+w・center-word_score
+w・translation_score
+w・rev_translation_score
+w・semantic_similarity_score (2)
ただし、w,…,wは、どの数値を重視するかを決める重みである。すべて1.0のように設定してもよいし、想定される入力質問や記録部190に記録されている質問応答ペアに応じて最適な性能が出るようにチューニングしてもよい。なお、情報取得部121が、質問タイプ推定部120、焦点抽出部130、翻訳モデル適用部140、発話ベクトル抽出部150の中の一部しか備えていない場合は、存在しない数値化用情報に基づく数値は式(2)に含めなければよい。スコア算出部160は、検索結果質問応答ペアについて上記スコアを付与したものを出力する。ランキング部170には、上記スコアが付与された検索結果質問応答ペアが入力される。
ランキング部170は、スコアがより適切であることを示す順番に、あらかじめ定めた数の検索結果質問応答ペアを選択し、選択された検索結果質問応答ペアの応答を、回答として出力する(S170)。上述の例では、スコアの値が大きいほど、より適切であることを示すので、ランキング部170はスコアの値が大きい順番にM個の検索結果質問応答ペアを選択し、選択された検索結果質問応答ペアの応答を、回答として出力すればよい。なお、M=5であれば5個の回答が出力される。チャットボットのように回答を1つだけにしたい場合はM=1に設定しておけばよい。
実施例1の回答選択装置によれば、入力質問と意味が近い質問を質問応答ペアから探すだけではなく(重要な内容語がマッチするという視点での検索だけでなく)、異なる視点でも入力質問に対する質問応答ペアの適切さを数値化して質問応答ペアを選択するので、より適切な応答を回答として出力できる。また、式(2)の重みをチューニングすれば、想定される入力質問や記録されている質問応答ペアに応じて最適な性能に設定できる。
[変形例]
なお、回答選択装置100は1つの筐体で構成する必要はなく、各構成部が通信回線で接続された別々の筐体に配置され、1つの装置のように動作する構成としてもよい。例えば、クライアント装置からの要求に応じて、サーバ装置がランキング結果を返す構成となるように、各構成部がサーバ装置とクライアント装置に分れて配置されていてもよい。
<回答選択装置>
実施例1では、質問応答ペアを記録しているのは記録部190だけだったが、実施例2の回答選択装置200は、記録部190に加え、拡張記録部290も備える。なお、本実施例の中では、記録部190を基本記録部190と呼ぶこともある。拡張記録部290には、後述する「拡張なりきり発話組生成装置及び方法」によって生成された質問応答ペアが記録されている。
図1に実施例2の回答選択装置の機能構成例を示す。図2に実施例2の回答選択装置の処理フロー例を示す。実施例2の回答選択装置200は、入力された質問である入力質問に対する1つまたは複数の回答を出力する。例えば、M個の回答を出力するようにあらかじめ定めておけばよい。Mは1以上の整数である。例えばM=5のように定めてもよいし、チャットボットのように回答を1つだけにしたい場合はM=1とすればよい。回答選択装置200は、記録部190、拡張記録部290、文書検索部210、情報取得部121、スコア算出部260、ランキング部170を備える。
文書検索部210は、入力質問を入力とし、あらかじめ定めた検索方式で、記録部190と拡張記録部290に記録された質問応答ペアから質問応答ペアを検索し、検索結果質問応答ペアとして出力する(S210)。例えば、あらかじめ最大でN個の質問応答ペアを検索結果質問応答ペアとするように決めておき、N個を記録部190から検索した場合は、N(=N−N)個を拡張記録部290から検索し、合計N個の検索結果質問応答ペアを出力すればよい。NはM以上の整数、NとNはN以下の整数である。例えばN=10のように定めればよい。なお、Nは2以上が望ましいが、1以上でも構わない。文書検索部110には、参考文献1に示されているような一般的に用いられている文書検索エンジンを用いればよい。具体的には、入力質問から形態素解析によって内容語(名詞、動詞、形容詞など)を抽出し、重要な内容語がより多くマッチする質問を持つ質問応答ペアを検索し、出力すればよい。また、文書検索部210は、重要な内容語がマッチした程度を示す数値も出力し、この数値はスコア算出部260に入力される。
情報取得部121は実施例1と同じである。情報取得部121は、N個の検索結果質問応答ペアに対して、どちらの記録部に記録されていたのかを区別せずに、入力質問に対する検索結果質問応答ペアの適切さを数値化するための情報を取得し、数値化用情報として出力すればよい(S121)。
スコア算出部260は、検索方式に基づく適切さを示す数値と数値化用情報に基づく数値から、検索結果質問応答ペアごとの入力質問に対するスコアを算出する(S260)。また、スコア算出部260は、どちらの記録部に記録されていたかを区別し、例えば、記録部190から検索された検索結果質問応答ペアが選ばれやすくなるように、重み付けをしてもよい。後述する「拡張なりきり発話組生成装置及び方法」で拡張した質問応答ペア(拡張記録部290に記録されている質問応答ペア)に基づく回答は、記録部190に記録されていた質問応答ペアに基づく回答に比べると、汎用的なので翻訳尤度および逆翻訳尤度が高くなる傾向にある一方、情報が少ないので聞き手(応答を受け取る人)の満足度は低くなりやすいという傾向がある。そこで、記録部190に記録されていた検索結果質問応答ペアが選ばれやすくなるように翻訳尤度と逆翻訳尤度を重み付けすればよい。つまり、スコア算出部260は、記録部190に記録されていた検索結果質問応答ペアの方が、拡張記録部290に記録されていた検索結果質問応答ペアよりも、より適切であることを示すようにスコアを算出すればよい。
重み付けの具体例を以下に示す。
(例1)スコア算出部260で求める6つのスコアのうち、検索スコアは、記録部190に記録されていたN個の検索結果質問応答ペアをランキングした逆数、及び、拡張記録部290に記録されていたN個の検索結果質問応答ペアをランキングした逆数をそれぞれ用いる。つまり、検索スコアは、記録部ごとに独立に求める。翻訳スコアと逆翻訳スコアは、どちらの記録部から選ばれているか区別せずに、N個をまとめてランキングした逆数を用いる。
(例2)拡張記録部290からの検索結果質問応答ペアの翻訳尤度(翻訳スコア)と逆翻訳尤度(逆翻訳スコア)を定数倍(例えば0.8倍)する。
(例3)質問応答の教師データとなるような特定のデータセットに対して、スコア算出部260で求める6つのスコアのグリッドサーチ(例えば、0.1〜1.0まで0.1刻みの10段階)+(記録部190からの検索結果質問応答ペアであるか、拡張記録部290からの検索結果質問応答ペアであるか)の組み合わせ、に対して適宜重みを決定してもよい。
ランキング部170は、実施例1と同じである。実施例2の回答選択装置によれば、実施例1の回答選択装置と同様の効果が得られると共に、キャラクタになりきった回答も可能となる。
<拡張なりきり発話組生成装置及び方法>
まず、拡張なりきり発話組生成装置及び方法の一般的な例について説明する。拡張なりきり発話組生成装置は、図3に示すように、第一記録部1、第二記録部2、なりきり発話組選択部3、拡張なりきり発話組生成部4及び記録部5を例えば備えている。
拡張なりきり発話組生成方法は、拡張なりきり発話組生成装置の各構成部が、以下に説明する及び図4に示すステップS3からステップS4の処理を行うことにより例えば実現される。
以下、拡張なりきり発話組生成装置の各構成部について説明する。
<第一記録部1>
第一記録部1には、I個のなりきり発話組i=(ti(1),ti(2))(i=1,…,I)が記録されている。
Iは、所定の正の整数である。例えば、Iは、2以上の整数である。なりきり発話組iは、第一発話ti(1)と、第一発話ti(1)に対応付けられている、第一発話ti(1)に対して所定の人格になりきって行われた第二発話ti(2)という2個の発話である。
例えば、第一発話は質問の発話であり、第二発話はその質問に対する応答の発話である。
なお、なりきり発話組iは、第一発話ti(1)及び第二発話ti(2)を識別するための発話IDと共に、第一記録部1に記録されていてもよい。
第一発話ti(1)及び第二発話ti(2)の例は、(ti(1),ti(2))=(「好きな食べ物は何ですか?」,「食えれば何でもよいわ!」)である。第一発話ti(1)及び第二発話ti(2)の他の例は、(ti(1),ti(2))=(「金ヶ崎退き口の戦いはどうでしたか?」,「さすがのワシも死を覚悟するほどであった」)である。
第一記録部1に記録させるなりきり発話組の収集は、例えば以下のようにウェブサイトを通して行われる。まず、実在する有名人(歴史上の人物、俳優、ナレーター等)、架空のキャラクタ(小説やアニメの登場人物等)等の所定の人格をテーマにしてなりきりによるやり取りを質問応答の形式で行ってもらう趣旨のウェブサイトを構築する。そして、このウェブサイトにおいて、複数人(例えば50人程度かそれ以上)に、所定の質問に対する所定の人格になりきった回答を投稿してもらう。また、回答の投稿のみでなく、質問自体も投稿をしてもらい、以降に回答を投稿する人に対しては、投稿された質問も所定の質問に含めるようにしてもよい。所定の質問とその質問に対して投稿された各回答との組が、なりきり発話組の候補となる。なお、第二発話ti(2)である回答を識別するために各回答にはIDが付与される。
そして、「所定の質問とその質問に対して投稿された各回答との組」のうち、例えば、ある発話組(以下、第一の発話組)の「回答の文字列」と類似又は同一である「回答の文字列」を有する、第一の発話組とは異なる第二の発話組が存在する場合に、第一の発話組および第二の発話組のそれぞれが「なりきり発話組」として第一記録部1に記録されてもよい。あるいは、例えば、第一の発話組の「所定の質問」とその質問に対して投稿された「回答」それぞれについて、第一の発話組の「所定の質問の文字列」と類似又は同一である「所定の質問の文字列」を有し、かつ、第一の発話組の「回答の文字列」と類似又は同一である「回答の文字列」を有する、第一の発話組とは異なる第二の発話組が存在する場合に、第一の発話組および第二の発話組のそれぞれが「なりきり発話組」として第一記録部1に記録されてもよい。要は、「所定の質問とその質問に対して投稿された各回答との組」のうち、「回答」が類似又は同一の組、または、「質問」と「回答」の両方が類似又は同一の組が2以上存在する発話組が「なりきり発話組」として第一記録部1に記録されてもよい。ここで、類似とは、文字列同士の類似度が所定の基準を満たすことである。例えば、「回答」が類似するとは、任意の二つの回答の文字列間の類似度が所定の基準を超えることである。例えば、「質問」と「回答」の両方が類似するとは、任意の二つの所定の質問の文字列間の類似度Aと、その二つの所定の質問それぞれに対応する二つの回答の文字列間の類似度Bとを加算平均(または二乗平均)した値が所定の基準を超える、または、類似度Aと類似度Bの双方が所定の基準を超えることである。類似度の定義及び例は、後述する。このように、なりきり発話組の候補の中に、「回答」が類似又は同一、または、「質問」と「回答」の両方が類似又は同一のなりきり発話組の候補が存在するなりきり発話組の候補を「なりきり発話組」とすることで、誤ったデータを学習させるなど悪意を持って回答されたデータを除外することができる。これにより、データの正確性を向上させることができる。
なお、投稿された各回答の所定の人格らしさについての評価が投票可能となっていてもよい。投稿された第二発話ti(2)である回答の所定の人格らしさについての評価は、その第二発話ti(2)のなりきり発話組iと共に第一記録部1に記録される。
「所定の質問とこのようにして投稿された各回答との組」のうち、類似又は同一の組の個数がカウントされた「データ個数」が、なりきり発話組に紐づけられて第一記録部1に記録されてもよい。
なお、上記のウェブサイトで集められた直後のなりきり発話組の候補の第一発話ti(1)及び第二発話ti(2)を識別するためのIDは、例えば図5及び以下に説明するように付与されている。まず、第一発話ti(1)及び第二発話ti(2)を含めた発話のそれぞれに対して発話IDが付与されている。また、発話が第二発話ti(2)である場合には、質問元IDが更に付与されている。発話が第一発話ti(1)である場合には、その発話は質問そのものであるため、質問元IDは付与されていない。このため、図5では、発話が第一発話ti(1)である場合の質問元IDの欄に「None」と記載している。なお、第一発話ti(1)及び第二発話ti(2)は、一対一の対応しか取ることができないので、同じ発話内容である複数の第二発話ti(2)に対して異なる質問元IDが付与されている場合もある。図5では、「食えれば何でもよいわ!」という同じ発話内容である、発話IDが3,4の第二発話ti(2)に対して、それぞれ1,2の質問元IDが付与されている。
上記のように、なりきり発話組の候補の中に2回以上登場したものがなりきり発話組として第一記録部1に記録されるが、その際に、なりきり発話組iの第一発話ti(1)及び第二発話ti(2)を識別するための発話IDは、例えば図6に示すように付与される。図6では、なりきり発話組に新たに1から始まる発話IDが付与されている。
後述するステップS3以降の処理は、第二発話ti(2)ごとに行われる。
<第二記録部2>
第二記録部2には、J個の非なりきり発話組j=(t'j(1),t'j(2))(j=1,…,J)が記録されている。
Jは、所定の正の整数である。例えば、Jは、2以上の整数である。
非なりきり発話組は、第一発話t'j(1)と、第一発話t'j(1)に対応付けられている、第一発話t'j(1)に対して行われた第二発話t'j(2)という2個の発話である。
第一発話t'j(1)及び第二発話t'j(2)の例は、(t'j(1),t'j(2))=(「今日の晩御飯何がいい?」,「食えれば何でもいいわ!」)である。第一発話t'j(1)及び第二発話t'j(2)の他の例は、(t'j(1),t'j(2))=(「昨日の地震、怖かったね」,「さすがの俺も死にそうだった」)である。
なお、非なりきり発話組jについての情報は、例えばTwitter(登録商標)等の対話のやり取りがテキストで表されているwebサイトから得ることができる。
<非なりきり発話組選択部3>
非なりきり発話組選択部3には、第一記録部1から読み込まれたなりきり発話組iの第二発話ti(2)と、第二記録部2から読み込まれた非なりきり発話組jとが入力される。
非なりきり発話組選択部3は、第一記録部1から読み込んだ各なりきり発話組iの第二発話ti(2)と同一又は類似の第二発話t'j(2)に対応する非なりきり発話組jを第二記録部2から1個以上選択する(ステップS3)。
選択された非なりきり発話組jは、拡張なりきり発話組生成部4に出力される。
例えば、nを1以上J以下の正の整数として、第二発話ti(2)と同一又類似の第二発話t'j(2)に対応する非なりきり発話組として、n個の非なりきり発話組(t'1(1),t'1(2)),…,(t'n(1),t'n(2))が選択される。
第二発話ti(2)と同一又は類似の第二発話t'j(2)とは、第二発話ti(2)との類似度が所定の基準を超える第二発話t'j(2)である。
類似度は、レーベンシュタイン距離、正規化レーベンシュタイン距離、COS類似度、WordMoversDistance等の発話を構成する文字列同士の近さを表す指標である。類似度は、文字列同士の近さを表す指標であればよく、レーベンシュタイン距離、正規化レーベンシュタイン距離、COS類似度、WordMoversDistanceに限るものではない。
所定の基準を超えるとは、値が小さいほど似ていることを表す類似度を用いる場合には、類似度が所定の基準値より小さいことであり、値が大きいほど似ていることを表す類似度を用いる場合には類似度が所定の基準値より大きいことである。
以下、類似度が正規化レーベンシュタイン距離である場合を例に挙げて説明する。
レーベンシュタイン距離は、1文字の挿入、削除、置換によって、一方の文字列をもう一方の文字列に変形するのに必要な操作の最小回数である。1文字の挿入及び1文字の削除は1回の操作とカウントされ、1文字の置換は2回の操作とカウントされる。これに対して、正規化レーベンシュタイン距離は、レーベンシュタイン距離を、2個の文字列の中の長い方の文字列の文字数で割った値である。すなわち、文字列rと文字列r'の正規化レーベンシュタイン距離NLD(r,r')は、NLD(r,r')=(rとr'のレーベンシュタイン距離)/max(|r|,|r'|)である。ここで、|r|は文字列rの文字数であり、|r'|は文字列r'の文字数である。正規化レーベンシュタイン距離は、0以上1以下の値となる。レーベンシュタイン距離及び正規化レーベンシュタイン距離は、値が小さいほど似ていることを表す。
例えば、2個の文字列r,r'が、r=「ice cream」,r'=「dry ice」であったとする。この場合、2個の文字列r,r'のレーベンシュタイン距離及び正規化レーベンシュタイン距離は、以下のようにして求めることができる。「ice cream」という文字列は、以下に示す削除と挿入により「dry ice」という文字列にすることができる。
“ice cream”
↓“m”を削除
“ice crea”
↓“a”を削除
“ice cre”
↓“e”を削除
“ice cr"
↓“r”を削除
“ice c”
↓“c”を削除
“ice ”
↓“e”の後ろの空白を削除
“ice”
↓“d”を1文字目前に挿入
“dice”
↓“r”を2文字目前に挿入
“drice”
↓“y”を3文字目前に挿入
“dryice”
↓空白を4文字目前に挿入
“dry ice”
このように、「ice cream」という文字列は、6回の削除と4回の挿入という10回の操作により、「dry ice」という文字列にすることができる。このため、「ice cream」という文字列と「dry ice」という文字列のレーベンシュタイン距離は10となる。
「ice cream」という文字列rの文字数|r|は9であり、「dry ice」という文字列r'の文字数|r'|は7である。このため、正規化レーベンシュタイン距離NLD(r,r')=(rとr'のレーベンシュタイン距離)/max(|r|,|r'|)=10/max(9,7)=10/9≒1.11…となる。正規化レーベンシュタイン距離は0に近いほど似ていることを表すことを考慮すると、「ice cream」という文字列と「dry ice」という文字列は、ほとんど似ていないことがわかる。
2個の文字列r,r'が、r=「chocolate-covered donut」,r'=「chocolate-topped donut」であるとする。この場合、「chocolate-covered donut」という文字列は、11文字目の「c」の削除、12文字目の「v」の削除、12文字目の「e」という3文字の削除、11文字目の前に「t」の挿入、13文字目の前に「p」、13文字目の前に「p」の挿入、という6回の操作により、「chocolate-topped donut」という文字列にすることができる。また、「chocolate-covered donut」という文字列の文字数は23であり、「chocolate-topped donut」という文字列の文字数は22である。このため、この場合、正規化レーベンシュタイン距離NLD(r,r')=6/23=0.26…となる。このため、「chocolate-covered donut」という文字列と「chocolate-topped donut」という文字列とは、比較的似ていることがわかる。
類似度として正規化レーベンシュタイン距離を用いた場合には、非なりきり発話組選択部3は、第二発話ti(2)との正規化レーベンシュタイン距離が、所定の基準値よりも小さい第二発話t'j(2)に対応する非なりきり発話組jを第二記録部2から1個以上選択する。この場合の所定の基準値は、0より大きく1より小さい数であり、例えば0.1である。
例えば、第二発話ti(2)=「食えれば何でもよいわ!」であり、所定の基準値=0.2であるとする。また、記録部2に、(t'j(1),t'j(2))=(「今日の晩御飯何がいい?」,「食えれば何でもいいわ!」)という非なりきり発話組jが記録されているとする。
まず、日本語の場合について説明する。
「食えれば何でもよいわ!」という文字列は、8文字目の「よ」の削除、8文字目前に「い」の挿入という2回の操作により、又は、8文字目の「よ」を「い」にする置換という1回の操作により、「食えれば何でもいいわ!」という文字列にすることができる。このため、「食えれば何でもよいわ!」という文字列と「食えれば何でもいいわ!」という文字列のレーベンシュタイン距離は、2となる。また、「食えれば何でもいいわ!」という文字列の文字数及び「食えれば何でもよいわ!」という文字列の文字数は、11である。このため、「食えれば何でもよいわ!」という文字列と「食えれば何でもいいわ!」という文字列の正規化レーベンシュタイン距離は2/11≒0.18となる。0.18<0.2であるため、非なりきり発話組選択部3は、第二発話ti(2)=「食えれば何でもよいわ!」との正規化レーベンシュタイン距離が、所定の基準値0.2よりも小さい第二発話t'j(2)に対応する非なりきり発話組jとして、(t'j(1),t'j(2))=(「今日の晩御飯何がいい?」,「食えれば何でもいいわ!」)という非なりきり発話組jを選択する。
次に、英語の場合について説明する。
「I'd eat anything as long as it's edible !」という文字列は、3文字目の「d」の削除、3文字目前に「l」の挿入、3文字目前に「l」の挿入という3回の操作により、「I'll eat anything as long as it's edible !」という文字列にすることができる。このため、「I'd eat anything as long as it's edible !」という文字列と「I'll eat anything as long as it's edible !」という文字列のレーベンシュタイン距離は、3となる。また、「I'll eat anything as long as it's edible !」という文字列の文字数は42であり、「I'd eat anything as long as it's edible !」という文字列の文字数は、41である。このため、「I'd eat anything as long as it's edible !」という文字列と「I'll eat anything as long as it's edible !」という文字列の正規化レーベンシュタイン距離は3/42≒0.071となる。0.071<0.2であるため、非なりきり発話組選択部3は、第二発話ti(2)=「I'd eat anything as long as it's edible !」との正規化レーベンシュタイン距離が、所定の基準値0.2よりも小さい第二発話t'j(2)に対応する非なりきり発話組jとして、(t'j(1),t'j(2))=(「今日の晩御飯何がいい?」,「I'll eat anything as long as it's edible !」)という非なりきり発話組jを選択する。
第一記録部1に記録されている第二発話ti(2)に所定の人格らしさについての評価が付与されている場合には、非なりきり発話組選択部3は、所定の人格らしさについての評価が高い第二発話ti(2)のなりきり発話組iを優先して用いて、上述のステップS3の処理を行ってもよい。例えば、非なりきり発話組選択部3は、所定の人格らしさについての評価が所定の基準値以上の第二発話ti(2)のなりきり発話組iに対してのみ、上述のステップS3の処理を行ってもよい。
<拡張なりきり発話組生成部4>
拡張なりきり発話組生成部4には、非なりきり発話組選択部3で選択された1個以上の非なりきり発話組が入力される。
拡張なりきり発話組生成部4は、非なりきり発話組選択部3で選択された各非なりきり発話組jの第一発話t'j(1)と、なりきり発話組iの第二発話ti(2)とを対応付けて拡張なりきり発話組(t'j(1), ti(2))とし、出力する(ステップS4)。
生成された拡張なりきり発話組は、記録部5に記録される。生成された拡張なりきり発話組を記録部5に記録する処理を行うタイミングは、任意である。すなわち、生成された拡張なりきり発話組を記録部5に記録する処理は、拡張なりきり発話組が生成される度ごとに行われてもよいし、ある第二発話ti(2)に対する1個以上の拡張なりきり発話組の全てが生成された後に行われてもよいし、複数の第二発話ti(2)のそれぞれに対する1個以上の拡張なりきり発話組の全てが生成された後に一回だけ行われてもよい。
例えば、非なりきり発話組選択部3で、第二発話ti(2)と同一又類似の第二発話t'j(2)に対応する非なりきり発話組jとしてn個の非なりきり発話組(t'1(1),t'1(2)),…,(t'n(1),t'n(2))が選択されたとする。この場合、各t'j(1)とti(2)とを対応付けることにより、n個の拡張なりきり発話組(t'1(1),ti(2)),…,(t'n(1),ti(2))が生成される。
例えば、非なりきり発話組選択部3で、第二発話ti(2)=「食えれば何でもよいわ!」と同一又類似の第二発話t'j(2)に対応する非なりきり発話組jとして、(t'j(1),t'j(2))=(「小腹がすいたら何食べる?」,「食えれば何でもいいわ!」)という1個の非なりきり発話組が選択されたとする。この場合、第一発話t'j(1)=「小腹がすいたら何食べる?」と第二発話ti(2)=「食えれば何でもよいわ!」とを対応付けることにより、(t'j(1),ti(2))=(「小腹がすいたら何食べる?」,「食えれば何でもよいわ!」)という1個の拡張なりきり発話組が生成される。
これまで提案されていた対話システムを高品質化する手法では、第一発話に対する応答である第二発話の妥当性を考えていた。これに対して、上記の実施形態の手法では、第二発話ti(2)でカバーすることができる第一発話の範囲を拡大することを考えている。この点で、上記の実施形態の手法は、これまで提案されていた手法と異なる。
このようにして、第二発話ti(2)でカバーすることができる第一発話の範囲を拡大しても、応答である第二発話は、所定の人格になりきったなりきり発話組の第二発話ti(2)そのものであるため、所定の人格らしさは失われないという長所がある。
[拡張なりきり発話組生成装置及び方法の変形例]
[変形例1]
拡張なりきり発話組生成部4は、第一記録部1に記録されている第二発話ti(2)の中で同一の第二発話ti(2)の数が多いほど、その同一の第二発話ti(2)を含む拡張なりきり発話組に大きな重みを付与する重み付与部41を備えていてもよい。
この場合、後述する対話装置及び方法では、付与された重みが大きい拡張なりきり発話組が優先して用いられる。
第一記録部1に記録されている第二発話ti(2)の中の同一の第二発話ti(2)の数が多いほど、その同一の第二発話ti(2)は所定の人格らしさが高いと言える。このため、第一記録部1に記録されている第二発話ti(2)の中の同一の第二発話ti(2)の数が多いほど、その同一の第二発話ti(2)を含む拡張なりきり発話組に大きな重みを付与し、対話装置及び方法で優先して用いられるようにすることで、対話装置及び方法により生成される発話の所定の人格らしさが高まる。
例えば、第一記録部1に記録されている第二発話ti(2)の中に、「食えれば何でもよいわ!」という第二発話ti(2)が10回登場し、「甘いものなら何でもよいわ!」という第二発話ti(2)が3回登場し、「かすていらはうまい!」という第二発話ti(2)が1回登場したとする。
この場合、fを所定の非減少関数として、重み付与部41は、「甘いものなら何でもよいわ!」という第二発話ti(2)を含む拡張なりきり発話組にf(10)の重みを付与し、「甘いものなら何でもよいわ!」という第二発話ti(2)を含む拡張なりきり発話組にf(3)の重みを付与し、「かすていらはうまい!」という第二発話ti(2)を含む拡張なりきり発話組にf(1)の重みを付与してもよい。
[変形例2]
拡張なりきり発話組生成部4は、拡張なりきり発話組生成部4により生成される拡張なりきり発話組の中の同一の拡張なりきり発話組の数が多いほど、その同一の拡張なりきり発話組に大きな重みを付与する重み付与部41を備えていてもよい。
この場合、後述する対話装置及び方法では、付与された重みが大きい拡張なりきり発話組が優先して用いられる。
拡張なりきり発話組生成部4により生成される拡張なりきり発話組の中の同一の拡張なりきり発話組の数が多いほど、その同一の拡張なりきり発話組は応答としても正当度合いが高いと言える。このため、拡張なりきり発話組生成部4により生成される拡張なりきり発話組の中の同一の拡張なりきり発話組の数が多いほど、その同一の拡張なりきり発話組に大きな重みを付与し、対話装置及び方法で優先して用いられるようにすることで、対話装置及び方法により生成される発話の正当度合いが高まる。
[変形例3]
変形例1及び2を組み合わせてもよい。
すなわち、拡張なりきり発話組生成部4は、第一記録部1に記録されている第二発話ti(2)の中で同一の第二発話ti(2)の数が多いほど、その同一の第二発話ti(2)を含む拡張なりきり発話組に大きな重みを付与し、かつ、拡張なりきり発話組生成部4により生成される拡張なりきり発話組の中の同一の拡張なりきり発話組の数が多いほど、その同一の拡張なりきり発話組に大きな重みを付与する重み付与部41を備えていてもよい。
変形例1及び2を組み合わせることにより、変形例1及び2の両方の効果を得ることができる。すなわち、変形例1及び2を組み合わせることにより、対話装置及び方法により生成される発話の所定の人格らしさ及び正当度合いが高まる。
[回答選択装置200の拡張記録部290が記録する質問応答ペアの生成]
上述の説明では、拡張なりきり発話組生成装置及び方法の一般的な例について説明した。ここでは、どのように回答選択装置200の拡張記録部290が記録する質問応答ペアを生成するのかを説明する。なお、記録部190に記録されている質問応答ペアが上述の第一記録部1が記録している「なりきり発話組」、拡張記録部290に記録されている質問応答ペアが上述の記録部5に記録される「拡張なりきり発話組」に相当する。記録部190に記録されている質問応答ペアを、第一記録部1に記録させる(記録部190を第一記録部1としてもよい。)。そして、第二記録部2にはあらかじめ収集した質問応答ペアを記録させておく。例えばTwitter(登録商標)等の対話のやり取りがテキストで表されているwebサイトから質問応答ペアの情報を収集し、第二記録部2に記録させればよい。
そして、非なりきり発話組選択部3の処理(ステップS3)と拡張なりきり発話組生成部4の処理(ステップS4)を実行することで、記録部5に生成した質問応答ペアを記録すればよい。つまり、生成した質問応答ペアが、上述の拡張なりきり発話組である。より具体的には、ステップS3では、非なりきり発話組選択部3が、第一記録部1(または記録部190)から読み込んだ応答と同一又は類似の応答を含む質問応答ペアを第二記録部2から1個以上選択する。なお、ステップS3は、読み込まれた応答と選択された質問応答ペアの応答が、所定の人格らしさについての評価が所定の基準を超える類似度の場合に、行うことにしてもよい。類似度に関しては、上述の一般的な拡張なりきり発話組生成装置及び方法と同じである。ステップS4では、非なりきり発話組選択部3で選択された第二記録部2に記録されている質問応答ペアの質問と、非なりきり発話組選択部3が第一記録部1(または記録部190)から読み込んだ応答のペアを、生成された質問応答ペアとして出力し、記録部5(または拡張記録部290)に記録する。このように拡張記録部290に記録する質問応答ペアを生成すれば、記録部190が記録している質問応答ペアの応答の人格らしさを維持しながら、いろいろな表現の質問とのペアを追加できる。
なお、上述の拡張なりきり発話組生成装置及び方法の変形例1〜3も用いてもよい。この場合は、拡張なりきり発話組生成部4は重み付与部41を備える。重み付与部41の機能は上述の変形例1〜3と同じである。変形例1を用いる場合、記録部190に記録されている応答に同一の応答が多いほど、その応答を含む生成した質問応答ペアは、大きな重みが付与されて拡張記録部290に記録される。変形例2を用いる場合、拡張記録部290に記録される同一の質問応答ペアが多いほど、その質問応答ペアは、大きな重みが付与されて拡張記録部290に記録される。どちらの場合も、回答選択装置200では、付与された重みが大きい質問応答ペアを優先して用いればよい。
[変形例]
なお、回答選択装置200は1つの筐体で構成する必要はなく、各構成部が通信回線で接続された別々の筐体に配置され、1つの装置のように動作する構成としてもよい。例えば、拡張記録部290は、記録部190及び文書検索部210とは異なる筐体に備えられ、通信回線などで繋がった構成でもよい。
<回答選択装置>
図7に実施例3の回答選択装置の機能構成例を示す。図8に実施例3の回答選択装置の処理フロー例を示す。実施例3の回答選択装置300は、入力された質問である入力質問に対して、あらかじめ定めたキャラクタらしい1つまたは複数の回答を出力する。例えば、M個の回答を出力するようにあらかじめ定めておけばよい。Mは1以上の整数である。例えばM=5のように定めてもよいし、チャットボットのように回答を1つだけにしたい場合はM=1とすればよい。回答選択装置300は、記録部390、文書検索部310、情報取得部121、スコア算出部160、ランキング部170を備える。
記録部390は、質問と応答のペアである質問応答ペアの集合410、質問から応答を求めるための学習済みの翻訳モデル461を記録している。記録部390は、さらに応答から質問を求めるための学習済みの逆翻訳モデル462を記録してもよい。「質問から応答を求めるための学習済みの翻訳モデル」とは質問に対して応答が生成される確率を示すモデル、「応答から質問を求めるための学習済みの逆翻訳モデル」とは応答が生成されたときにある質問がされた確率を示すモデルを意味している。翻訳モデル461と逆翻訳モデル462は、応答のキャラクタらしさの程度を示す指標を対応付けた質問と応答のペアを用いて、指標が示す程度に従って学習されている。「指標が示す程度に従って学習」とは、応答がキャラクタらしいほど生成される確率が高くなるように学習されることを意味している。例えば、後述するモデル学習装置400を用いて学習すればよい。
質問応答ペアの集合410は、なりきり質問応答の仕組みを用いて多数の質問応答ペアを収集することで構築すればよい。質問応答ペアの数は想定される質問の種類などに応じて適宜決めればよい。例えば、実在する人物Aを対象としてキャラクタらしい応答の質問応答ペアを、1万程度収集すればよい。質問応答ペアの例としては,質問:「こんにちは」,応答:「どうもです」のペア、質問:「何歳ですか」,応答「30歳です」のペアなどであり、あらかじめ定めたキャラクタを想定して作成したものである。
文書検索部310は、実施例1の文書検索部と同様に、入力質問を入力とし、あらかじめ定めた検索方式で、記録部390に記録された質問応答ペアから質問応答ペアを検索し、検索結果質問応答ペアとして出力する(S310)。例えば、あらかじめ最大でN個の質問応答ペアを検索結果質問応答ペアとするように決めておけばよい。NはM以上の整数であり、例えば10のように定めればよい。なお、Nは2以上が望ましいが、1以上でも構わない。文書検索部310にも、参考文献1に示されたような一般的に用いられている文書検索エンジンを用いればよい。具体的には、入力質問から形態素解析によって内容語(名詞、動詞、形容詞など)を抽出し、重要な内容語がより多くマッチする質問を持つ質問応答ペアを検索し、出力すればよい。また、文書検索部110が、重要な内容語がマッチした程度を示す数値も出力し、この数値をスコア算出部160に入力してもよい。
記録部390は、さらに、質問応答ペアごとに応答のキャラクタらしさの程度を示す指標を対応付けて記録してもよい。この場合は、文書検索部310は、この指標も用いて、記録部390に記録された質問応答ペアから質問応答ペアを検索すればよい。
前記キャラクタらしさの程度を示す指標としては、例えば、キャラクタ本人以外の人によって評価された第1指標(その回答の良さを表す数値)、キャラクタ本人が回答した応答であることを示す第2指標(その回答がキャラクタ本人によってなされたことを示すラベル)、キャラクタ本人がキャラクタらしいと認定したことを示す第3指標(その回答がキャラクタ本人によって認定されたことを示すラベル)などがある。以下では、キャラクタ本人を人物Aとする。
第1指標(その回答の良さを表す数値)は、例えば、質問応答ペアをオンラインユーザに見てもらい、その回答が人物Aらしいと思ったら、ボタンを押すことで1ずつ増えていく仕組みを用いて取得すればよい。ある回答について10回そのボタンが押されたのであれば、第1指標(その回答の良さを表す数値)は10となる。例えば、この数値のことを「ポイね」と呼ぶことにする。加えて、なりきり質問応答で質問応答を収集している過程には、人物Aにも参加してもらってもよい。人物Aが回答を書き込んだ場合、その回答には、人物Aの書き込みであることがラベル付けされるようにすれば第2指標となる。これは、その回答がキャラクタ本人によってなされたことを示すラベルであり、このラベルのことを本人ラベルと呼ぶことにする。最後に、人物Aに収集された質問応答ペアを見てもらい、これはよいと認定した回答を選定してもらってもよい。そのような回答にはキャラクタ本人によって認定されたことを示すラベル(第3指標)が付与される。このラベルのことを認定ラベルと呼ぶことにする。このように質問応答ペアには、3種類の付加情報である第1指標(ポイね),第2指標(本人ラベル),第3指標(認定ラベル)を対応付けることができる。なお、回答の良さを表す数値である第1指標(ポイね)、本人によってならされたことを示すラベルである第2指標(本人ラベル)、本人によって認定されたことを示すラベルである第3指標(認定ラベル)は排反である必要はない。例えば、本人が回答の良さを表す数値を入力すると、本人によって認定されたことになるようにしてもよい。
文書検索部310が、3種類の付加情報である第1指標(ポイね),第2指標(本人ラベル),第3指標(認定ラベル)を用いれば、より適切な検索結果質問応答ペアを検索できる。例えば、第1指標(ポイね)が閾値以上のものだけを対象に検索する,本人ラベルが付与されているもののみを対象に検索する,認定ラベルが付与されているもののみを対象に検索するといった検索が可能になる。これにより、より人物Aらしい応答を持つ質問応答ペアを得ることが可能である。一方、検索の範囲を限定すると検索対象の質問応答ペアの数が少なくなるので、検索対象となる質問応答ペアの数などを考慮しながら、適宜検索の範囲を限定すればよい。
情報取得部121は、実施例1と同様に、入力質問と検索結果質問応答ペアを入力とし、入力質問に対する検索結果質問応答ペアの適切さを数値化するための情報を取得し、数値化用情報として出力する(S121)。本実施例の情報取得部121は、少なくとも翻訳モデル適用部140を備えており、入力質問から応答が得られる確率に基づく数値である翻訳尤度(翻訳スコア)を求める。スコア算出部160は、翻訳尤度(翻訳スコア)に基づいて検索結果質問応答ペアごとの入力質問に対するスコアを算出する(S160)。情報取得部121は、は、さらに、逆翻訳モデルを用いて応答から入力質問が得られる確率に基づく数値である逆翻訳尤度(逆翻訳スコア)を求め、翻訳尤度(翻訳スコア)と逆翻訳尤度(逆翻訳スコア)に基づいて検索結果質問応答ペアごとの入力質問に対するスコアを算出してもよい。
情報取得部121内の翻訳モデル適用部140は、例えば、検索結果質問応答ペアを、それぞれ翻訳尤度(翻訳スコア)によって値が大きいもの順にソートし、それぞれの順位rを得る。そして、翻訳モデル適用部140は、翻訳尤度に基づく数値である翻訳スコア(translation_score)を、
1.0-(r−1)/max_rank (3)
ただし、max_rankは検索結果質問応答ペアの数
のように求めることで、0〜1の間の値を求めてもよい。max_rankは文書検索部310が検索し得る最大の数Nとしてもよい。例えば、max_rank=10でr=5の場合、翻訳尤度に基づく数値である翻訳スコア(translation_score)は、0.6となる。翻訳モデル適用部140は、同様に逆翻訳尤度に基づく数値である逆翻訳スコア(rev_translation_score)ついても、逆翻訳尤度(逆翻訳スコア)が大きいもの順にソートし、式(3)を適用することで求めればよい。そして、入力質問Q、検索結果質問応答ペアの質問Q’、応答A’とするときに、スコアscore(Q,(Q’,A’))を例えば以下のように求めればよい。
score(Q,(Q’,A’))
=w・translation_score
+w・rev_translation_score (4)
ただし、wは、どちらの数値を重視するかを決める重みである。どちらも1.0としてもよいし、翻訳モデルと逆翻訳モデルの特性を考慮してチューニングしてもよい。スコアscore(Q,(Q’,A’))がスコア算出部160の出力となる。
ランキング部170は、スコアがより適切であることを示す順番に、あらかじめ定めた数の検索結果質問応答ペアを選択し、選択された検索結果質問応答ペアの応答を、回答として出力する(S170)。上述の例では、スコアの値が大きいほど、より適切であることを示すので、ランキング部170はスコアの値が大きい順番にM個の検索結果質問応答ペアを選択し、選択された検索結果質問応答ペアの応答を、回答として出力すればよい。なお、M=5であれば5個の回答が出力される。チャットボットのように回答を1つだけにしたい場合はM=1に設定しておけばよい。
実施例3の回答選択装置によれば、スコア算出部が用いる翻訳モデルは、応答のキャラクタらしさの程度を示す指標を対応付けた質問と応答のペアを用いて、指標が示す程度に従って学習されている。よって、質問応答ペアの応答がキャラクタらしいかを評価できる。したがって、従来よりもあらかじめ定めたキャラクタらしい回答を得ることができる。さらに、スコア算出部が逆翻訳モデルも用いれば、よりキャラクタらしい回答を得ることができる。
<モデル学習装置>
図9に実施例3のモデル学習装置に機能構成例を示す。図10に実施例3のモデル学習装置の処理フロー例を示す。実施例3のモデル学習装置400は、質問から応答を求めるための学習済みの翻訳モデル、応答から質問を求めるための学習済み逆翻訳モデルの少なくとも一方を生成する。モデル学習装置400は、記録部490、質問応答ペア拡張部420、翻訳モデル学習部440を備える。
記録部490は、質問と応答のペアである質問応答ペアの集合410、拡張質問応答ペアの集合430、質問から応答を求めるための翻訳モデル461または応答から質問を求めるための逆翻訳モデル462を記録する。質問応答ペアの集合410は、質問応答ペアごとにあらかじめ定めたキャラクタに対する応答のキャラクタらしさの程度を示す指標が対応付けられている。
質問応答ペア拡張部420は、よりキャラクタらしいことを示す指標が対応付けられている質問応答ペアほど個数を多く増やすことで拡張質問応答ペアを生成する(S420)。例えば、質問応答ペア拡張部420は、入力として質問応答ペアと3種類の付加情報である第1指標(ポイね),第2指標(本人ラベル),第3指標(認定ラベル)を用いて、質問応答ペアを拡張する。具体的には、(a)第1指標(ポイね)が付与されている質問応答ペアの個数をx倍に増やす,(b)第2指標(本人ラベル)が付与されている質問応答ペアの個数をy倍に増やす,(c)第3指標(認定ラベル)が付与されている質問応答ペアの個数をz倍に増やすという処理によって、質問応答ペアを拡張すればよい。3種類の付加情報が重複していた場合は、優先ルールを用いて拡張すればよい。具体的には、(b)>(c)>(a)の順番で拡張を試行し、拡張が実行されれば他の処理による再度の拡張はしないようにすればよい。これは、第2指標(本人ラベル)を重視した拡張の仕方であるが、他の優先ルールを用いてもよい。例えば、(a)を重視するようにしてもよい。また、xは第1指標(ポイね)の数に依存して決めてもよい。具体的には、x=第1指標(ポイね)の数×c,ここでcは定数であり設計者が適宜決定すればよい。たとえば、1.0である。これは、純粋に第1指標(ポイね)の数だけ質問応答ペアを拡張することを意味する。y,zについても設計者が適宜決定すればよい。例えば、yは10、zは5のように決めればよい。質問応答ペア拡張部220は、上述の処理により拡張された質問応答ペアを、拡張質問応答ペアの集合430の要素として記録部490に記録する。
上述の個数を増やすとは,<Q:「元気ですか」,A:「元気ですよ!」>が一つの質問応答ペアとするとき、単純に同じ質問応答ペアを追加することを意味する。例えば、この質問応答ペアの個数を2倍にするとは、<Q:「元気ですか」,A:「元気ですよ!」>をもう1つ追加することである。このように個数を増やすことにより、学習の処理でこの質問応答ペアに含まれる単語等の統計量が増加し、ランキングの上位になりやすくなる。
翻訳モデル学習部440は、拡張質問応答ペアを用いて翻訳モデル461、逆翻訳モデル462の少なくとも一方の学習を行う(S440)。もちろん、翻訳モデル461と逆翻訳モデル462の両方の学習を行ってもよい。具体的には、回答選択装置300の説明で示したとおり、翻訳モデルは、質問文と回答文のペアを大量に準備してモデルを学習することで構築すればよい。例えば、実際的な翻訳サービスの実現に用いられている翻訳モデル構築ツールを用いればよい。また、質問応答ペアが少ない場合(例えば、1万程度の場合)、妥当な翻訳モデルを構築できない可能性がある。この場合は、まずキャラクタを特に念頭に置かずに量を重視して作成した50万程度の質問応答ペアを用いて、初期翻訳モデルを学習する。その後、その初期翻訳モデルをベースとして、あらかじめ定めたキャラクタを想定して作成した質問応答ペアに適応させることで、キャラクタに関する翻訳モデルを構築すればよい。さらに、同様の手続きを用いて入力文と出力文を入れ替えて逆翻訳モデルを構築すればよい。
実施例3のモデル学習装置によれば、質問応答ペア拡張部が、よりキャラクタらしいことを示す指標が対応付けられている質問応答ペアほど個数を多く増やした拡張質問応答ペアを生成し、翻訳モデル学習部が、拡張質問応答ペアを用いて翻訳モデルまたは逆翻訳モデルの学習を行う。よって、よりキャラクタらしい応答を持つ質問応答ペアほど翻訳尤度または逆翻訳尤度が高くなるように学習できる。したがって、実施例3のモデル学習装置で生成した翻訳モデル、逆翻訳モデルを用いれば、回答選択装置は従来よりもあらかじめ定めたキャラクタらしい回答を得ることができる。
[プログラム、記録媒体]
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
1 第一記録部 2 第二記録部
3 なりきり発話組選択部 4 拡張なりきり発話組生成部
41 重み付与部
100,200,300 回答選択装置
110,210,310 文書検索部
120 質問タイプ推定部 121 情報取得部
130 焦点抽出部 140 翻訳モデル適用部
150 発話ベクトル抽出部
160,260 スコア算出部
170 ランキング部
5,190,390 記録部
290 拡張記録部
400 モデル学習装置
410 質問応答ペアの集合 420 質問応答ペア拡張部
430 拡張質問応答ペアの集合 440 翻訳モデル学習部
461 翻訳モデル 462 逆翻訳モデル
なお、質問タイプ推定部120は、検索結果質問応答ペアの応答を利用してもよい。この場合は、質問タイプ推定部120は、入力質問に対する4つの質問タイプと、検索結果質問応答ペアの質問の一般質問タイプと、検索結果質問応答ペアの応答に含まれる拡張固有表現のタイプを出力する。例えば、質問タイプ推定部120は、検索結果質問応答ペアの応答について、拡張固有表現の抽出器をかける。これにより、応答にどのような拡張固有表現が含まれているかが分かる。例えば、応答が「草津市の温泉に行った」であれば、拡張固有表現として「草津市」と「温泉」が抽出され、拡張固有表現のタイプとしてCity,Spaが抽出される。この場合、抽出された拡張固有表現のタイプが、検索結果質問応答ペアの質問タイプを特定する情報である。また、入力質問に対する4つの質問タイプと、検索結果質問応答ペアの質問の一般質問タイプと、検索結果質問応答ペアの拡張固有表現のタイプが、数値化用情報の例であり、スコア算出部160に入力される。スコア算出部160は、一般質問タイプについては、入力質問と検索結果質問応答ペアの質問で一致しているか否かで1,0の数値化をする。また、スコア算出部160は、入力質問の詳細質問タイプの3階層のそれぞれについて、対応する拡張固有表現のタイプが応答に含まれているかによって数値化する。含まれているときは1、含まれていないときは0とすればよい。その後、数値を例えば2/4=0.5のように求めればよい。このような処理によっても、同様に質問タイプ一致スコア(qtype_match_score)を計算できる。
文書検索部210は、入力質問を入力とし、あらかじめ定めた検索方式で、記録部190と拡張記録部290に記録された質問応答ペアから質問応答ペアを検索し、検索結果質問応答ペアとして出力する(S210)。例えば、あらかじめ最大でN個の質問応答ペアを検索結果質問応答ペアとするように決めておき、N個を記録部190から検索した場合は、N(=N−N)個を拡張記録部290から検索し、合計N個の検索結果質問応答ペアを出力すればよい。NはM以上の整数、NとNはN以下の整数である。例えばN=10のように定めればよい。なお、Nは2以上が望ましいが、1以上でも構わない。文書検索部10には、参考文献1に示されているような一般的に用いられている文書検索エンジンを用いればよい。具体的には、入力質問から形態素解析によって内容語(名詞、動詞、形容詞など)を抽出し、重要な内容語がより多くマッチする質問を持つ質問応答ペアを検索し、出力すればよい。また、文書検索部210は、重要な内容語がマッチした程度を示す数値も出力し、この数値はスコア算出部260に入力される。
<拡張なりきり発話組生成装置及び方法>
まず、拡張なりきり発話組生成装置及び方法の一般的な例について説明する。拡張なりきり発話組生成装置は、図3に示すように、第一記録部1、第二記録部2、なりきり発話組選択部3、拡張なりきり発話組生成部4及び記録部5を例えば備えている。
この場合、fを所定の非減少関数として、重み付与部41は、「食えれば何でもよいわ!」という第二発話ti(2)を含む拡張なりきり発話組にf(10)の重みを付与し、「甘いものなら何でもよいわ!」という第二発話ti(2)を含む拡張なりきり発話組にf(3)の重みを付与し、「かすていらはうまい!」という第二発話ti(2)を含む拡張なりきり発話組にf(1)の重みを付与してもよい。
1 第一記録部 2 第二記録部
なりきり発話組選択部 4 拡張なりきり発話組生成部
41 重み付与部
100,200,300 回答選択装置
110,210,310 文書検索部
120 質問タイプ推定部 121 情報取得部
130 焦点抽出部 140 翻訳モデル適用部
150 発話ベクトル抽出部
160,260 スコア算出部
170 ランキング部
5,190,390 記録部
290 拡張記録部
400 モデル学習装置
410 質問応答ペアの集合 420 質問応答ペア拡張部
430 拡張質問応答ペアの集合 440 翻訳モデル学習部
461 翻訳モデル 462 逆翻訳モデル

Claims (21)

  1. 入力された質問である入力質問に対する1つまたは複数の回答を出力する回答選択装置であって、
    質問と応答のペアである質問応答ペアを複数記録した記録部と、
    前記入力質問を入力とし、あらかじめ定めた検索方式で、前記記録部に記録された質問応答ペアから質問応答ペアを検索し、検索結果質問応答ペアとして出力する文書検索部と、
    前記入力質問と前記検索結果質問応答ペアを入力とし、前記入力質問に対する前記検索結果質問応答ペアの適切さを数値化するための情報を取得し、数値化用情報として出力する情報取得部と、
    前記検索方式に基づく適切さを示す数値と前記数値化用情報に基づく数値から、前記検索結果質問応答ペアごとの前記入力質問に対するスコアを算出するスコア算出部と、
    前記スコアがより適切であることを示す順番に、あらかじめ定めた数の前記検索結果質問応答ペアを選択し、選択された検索結果質問応答ペアの応答を、回答として出力するランキング部と
    を備える回答選択装置。
  2. 請求項1記載の回答選択装置であって、
    前記情報取得部は、前記入力質問の質問タイプおよび前記検索結果質問応答ペアの質問タイプを特定する情報を推定する質問タイプ推定部を有し、
    前記スコア算出部は、前記入力質問の質問タイプと前記検索結果質問応答ペアの質問タイプを特定する情報に基づいて、質問タイプが一致するほど、より適切であることを示すように前記スコアを算出する
    ことを特徴とする回答選択装置。
  3. 請求項1または2に記載の回答選択装置であって、
    前記情報取得部は、前記入力質問および前記検索結果質問応答ペアの質問について、話題となる単語列を焦点語として抽出する焦点抽出部を有し、
    前記スコア算出部は、前記入力質問の焦点語と前記検索結果質問応答ペアの質問の焦点語が一致するほど、より適切であることを示すように前記スコアを算出する
    ことを特徴とする回答選択装置。
  4. 請求項1〜3のいずれかに記載の回答選択装置であって、
    前記情報取得部は、前記入力質問および前記検索結果質問応答ペアの応答を入力とし、前記入力質問から前記応答が得られる確率に基づく数値を翻訳尤度として出力する翻訳モデル適用部を有し、
    前記スコア算出部は、前記翻訳尤度が高いほど、より適切であることを示すように前記スコアを算出する
    ことを特徴とする回答選択装置。
  5. 請求項4記載の回答選択装置であって、
    前記翻訳モデル適用部は、さらに、前記応答から前記入力質問が得られる確率に基づく数値を逆翻訳尤度として出力し、
    前記スコア算出部は、前記逆翻訳尤度が高いほど、より適切であることを示すように前記スコアを算出する
    ことを特徴とする回答選択装置。
  6. 請求項1〜5のいずれかに記載の回答選択装置であって、
    前記情報取得部は、前記入力質問および前記検索結果質問応答ペアの質問について、意味内容を表す発話ベクトルを求める発話ベクトル抽出部を有し、
    前記スコア算出部は、前記入力質問の発話ベクトルと前記検索結果質問応答ペアの質問の発話ベクトルが類似するほど、より適切であることを示すように前記スコアを算出する
    ことを特徴とする回答選択装置。
  7. 請求項1記載の回答選択装置であって、
    質問と所定の人格になりきった応答のペアを質問応答ペアとして複数記録した拡張記録部も備え、
    前記文書検索部は、前記拡張記録部に記録された質問応答ペアからも質問応答ペアを検索し、検索結果質問応答ペアとして出力する
    ことを特徴とする回答選択装置。
  8. 請求項4記載の回答選択装置であって、
    質問と所定の人格になりきった応答のペアを質問応答ペアとして複数記録した拡張記録部も備え、
    前記文書検索部は、前記拡張記録部に記録された質問応答ペアからも質問応答ペアを検索し、検索結果質問応答ペアとして出力し、
    前記スコア算出部は、前記記録部に記録されていた検索結果質問応答ペアの方が、前記拡張記録部に記録されていた検索結果質問応答ペアよりも、より適切であることを示すように前記スコアを算出する
    ことを特徴とする回答選択装置。
  9. 請求項5記載の回答選択装置であって、
    質問と所定の人格になりきった応答のペアを質問応答ペアとして複数記録した拡張記録部も備え、
    前記文書検索部は、前記拡張記録部に記録された質問応答ペアからも質問応答ペアを検索し、検索結果質問応答ペアとして出力し、
    前記スコア算出部は、前記記録部に記録されていた検索結果質問応答ペアの方が、前記拡張記録部に記録されていた検索結果質問応答ペアよりも、より適切であることを示すように前記スコアを算出する
    ことを特徴とする回答選択装置。
  10. 請求項7〜9のいずれかに記載の回答選択装置であって、
    第二記録部に、あらかじめ収集した質問応答ペアを記録させておき、
    前記記録部から応答を読み込み、読み込まれた応答と同一又は類似の応答を含む質問応答ペアを第二記録部2から選択し、
    前記の選択された質問応答ペアの質問と前記読み込まれた応答とからなる質問応答ペアを生成し、
    前記の生成した質問応答ペアを、前記拡張記録部が記録した質問応答ペアとする
    ことを特徴とする回答選択装置。
  11. 請求項10記載の回答選択装置であって、
    前記読み込まれた応答と前記の選択された質問応答ペアの応答とは、所定の基準を超える類似度である
    ことを特徴とする回答選択装置。
  12. 請求項10または11記載の回答選択装置であって、
    前記記録部に記録されている応答に同一の応答が多いほど、その応答を含む前記の生成した質問応答ペアは、大きな重みが付与されて前記拡張記録部に記録される
    ことを特徴とする回答選択装置。
  13. 請求項10〜12のいずれかに記載の回答選択装置であって、
    前記拡張記録部に記録される同一の質問応答ペアが多いほど、その質問応答ペアは、大きな重みが付与されて前記拡張記録部に記録される
    ことを特徴とする回答選択装置。
  14. 請求項1記載の回答選択装置であって、
    前記記録部は、質問から応答を求めるための学習済みの翻訳モデルも記録しており、
    前記情報取得部は、前記翻訳モデルを用いて前記入力質問から前記応答が得られる確率に基づく数値である翻訳尤度を求め、
    前記スコア算出部は、前記翻訳尤度に基づいて前記検索結果質問応答ペアごとの前記入力質問に対するスコアを算出し、
    前記翻訳モデルは、応答のキャラクタらしさの程度を示す指標を対応付けた質問と応答のペアを用いて、前記指標が示す程度に従って学習されたものである
    ことを特徴とする回答選択装置。
  15. 請求項14記載の回答選択装置であって、
    前記記録部は、応答から質問を求めるための学習済みの逆翻訳モデルも記録しており、
    前記情報取得部は、前記逆翻訳モデルを用いて前記応答から前記入力質問が得られる確率に基づく数値である逆翻訳尤度も求め、
    前記スコア算出部は、前記翻訳尤度と前記逆翻訳尤度に基づいて前記検索結果質問応答ペアごとの前記入力質問に対するスコアを算出し、
    前記逆翻訳モデルも、応答の前記キャラクタらしさの程度を示す指標を対応付けた質問と応答のペアを用いて、前記指標が示す程度に従って学習された
    ことを特徴とする回答選択装置。
  16. 請求項14または15記載の回答選択装置であって、
    前記記録部は、前記質問応答ペアごとに応答の前記キャラクタらしさの程度を示す指標を対応付けて記録しており、
    前記文書検索部は、前記指標も用いて、前記記録部に記録された質問応答ペアから質問応答ペアを検索する
    ことを特徴とする回答選択装置。
  17. 請求項14〜16のいずれかに記載の回答選択装置であって、
    前記キャラクタらしさの程度を示す指標は、前記キャラクタ本人以外の人によって評価された第1指標、前記キャラクタ本人が回答した応答であることを示す第2指標、前記キャラクタ本人が前記キャラクタらしいと認定したことを示す第3指標を含む
    ことを特徴とする回答選択装置。
  18. 記録部、文書検索部、情報取得部、スコア算出部、ランキング部を備える回答選択装置を用いて、入力された質問である入力質問に対する1つまたは複数の回答を出力する回答選択方法であって、
    あらかじめ前記記録部に、質問と応答のペアである質問応答ペアを複数記録しておき、
    前記文書検索部が、前記入力質問を入力とし、あらかじめ定めた検索方式で、前記記録部に記録された質問応答ペアから質問応答ペアを検索し、検索結果質問応答ペアとして出力する文書検索ステップと、
    前記情報取得部が、前記入力質問と前記検索結果質問応答ペアを入力とし、前記入力質問に対する前記検索結果質問応答ペアの適切さを数値化するための情報を取得し、数値化用情報として出力する情報取得ステップと、
    前記スコア算出部が、前記検索方式に基づく適切さを示す数値と前記数値化用情報に基づく数値から、前記検索結果質問応答ペアごとの前記入力質問に対するスコアを算出するスコア算出ステップと
    前記ランキング部が、前記スコアがより適切であることを示す順番に、あらかじめ定めた数の前記検索結果質問応答ペアを選択し、選択された検索結果質問応答ペアの応答を、回答として出力するランキングステップと
    を実行する回答選択方法。
  19. 請求項18記載の回答選択方法であって、
    前記回答選択装置は、質問と所定の人格になりきった応答のペアを質問応答ペアとして複数記録した拡張記録部も備え、
    前記文書検索ステップでは、前記拡張記録部に記録された質問応答ペアからも質問応答ペアを検索し、検索結果質問応答ペアとして出力する
    ことを特徴とする回答選択方法。
  20. 請求項18記載の回答選択方法であって、
    前記記録部は、質問から応答を求めるための学習済みの翻訳モデルも記録しており、
    前記情報取得ステップは、前記翻訳モデルを用いて前記入力質問から前記応答が得られる確率に基づく数値である翻訳尤度を求め、
    前記スコア算出ステップは、前記翻訳尤度に基づいて前記検索結果質問応答ペアごとの前記入力質問に対するスコアを算出し、
    前記翻訳モデルは、応答の前記キャラクタらしさの程度を示す指標を対応付けた質問と応答のペアを用いて、前記指標が示す程度に従って学習されたものである
    ことを特徴とする回答選択方法。
  21. 請求項1〜17のいずれかに記載の回答選択装置としてコンピュータを動作させるための回答選択プログラム。
JP2020516203A 2018-04-27 2019-04-10 回答選択装置、回答選択方法、回答選択プログラム Active JP7111154B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018086369 2018-04-27
JP2018086369 2018-04-27
PCT/JP2019/015624 WO2019208222A1 (ja) 2018-04-27 2019-04-10 回答選択装置、回答選択方法、回答選択プログラム

Publications (2)

Publication Number Publication Date
JPWO2019208222A1 true JPWO2019208222A1 (ja) 2021-05-13
JP7111154B2 JP7111154B2 (ja) 2022-08-02

Family

ID=68295369

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020516203A Active JP7111154B2 (ja) 2018-04-27 2019-04-10 回答選択装置、回答選択方法、回答選択プログラム

Country Status (3)

Country Link
US (1) US20210117458A1 (ja)
JP (1) JP7111154B2 (ja)
WO (1) WO2019208222A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11508357B2 (en) * 2018-04-25 2022-11-22 Nippon Telegraph And Telephone Corporation Extended impersonated utterance set generation apparatus, dialogue apparatus, method thereof, and program
JP2020190970A (ja) * 2019-05-23 2020-11-26 株式会社日立製作所 文書処理装置およびその方法、プログラム
US11429789B2 (en) * 2019-06-12 2022-08-30 International Business Machines Corporation Natural language processing and candidate response identification
US11710480B2 (en) * 2019-08-07 2023-07-25 International Business Machines Corporation Phonetic comparison for virtual assistants
US11132512B2 (en) * 2019-11-08 2021-09-28 International Business Machines Corporation Multi-perspective, multi-task neural network model for matching text to program code
US11314950B2 (en) * 2020-03-25 2022-04-26 International Business Machines Corporation Text style transfer using reinforcement learning
CN111428514A (zh) * 2020-06-12 2020-07-17 北京百度网讯科技有限公司 语义匹配方法、装置、设备以及存储介质
CN113282733B (zh) * 2021-06-11 2024-04-09 上海寻梦信息技术有限公司 客服问题匹配方法、系统、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11265400A (ja) * 1998-03-13 1999-09-28 Omron Corp 情報処理装置および方法、ネットワークシステム、並びに記録媒体
WO2007099812A1 (ja) * 2006-03-01 2007-09-07 Nec Corporation 質問回答装置、質問回答方法および質問回答用プログラム
JP2011018327A (ja) * 2009-07-08 2011-01-27 Honda Motor Co Ltd 質問応答データベース拡張装置および質問応答データベース拡張方法
JP2015109068A (ja) * 2013-12-05 2015-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 回答候補間の関係を識別および表示する機構、方法、コンピュータ・プログラム、ならびに装置
WO2017191696A1 (ja) * 2016-05-06 2017-11-09 ソニー株式会社 情報処理システム、および情報処理方法
JP2018055548A (ja) * 2016-09-30 2018-04-05 株式会社Nextremer 対話装置、学習装置、対話方法、学習方法、およびプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2839391A4 (en) * 2012-04-20 2016-01-27 Maluuba Inc CONVERSATION AGENT
CN104216913B (zh) * 2013-06-04 2019-01-04 Sap欧洲公司 问题回答方法、系统和计算机可读介质
US20150186528A1 (en) * 2013-12-26 2015-07-02 Iac Search & Media, Inc. Request type detection for answer mode selection in an online system of a question and answer search engine
US10509860B2 (en) * 2016-02-10 2019-12-17 Weber State University Research Foundation Electronic message information retrieval system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11265400A (ja) * 1998-03-13 1999-09-28 Omron Corp 情報処理装置および方法、ネットワークシステム、並びに記録媒体
WO2007099812A1 (ja) * 2006-03-01 2007-09-07 Nec Corporation 質問回答装置、質問回答方法および質問回答用プログラム
JP2011018327A (ja) * 2009-07-08 2011-01-27 Honda Motor Co Ltd 質問応答データベース拡張装置および質問応答データベース拡張方法
JP2015109068A (ja) * 2013-12-05 2015-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 回答候補間の関係を識別および表示する機構、方法、コンピュータ・プログラム、ならびに装置
WO2017191696A1 (ja) * 2016-05-06 2017-11-09 ソニー株式会社 情報処理システム、および情報処理方法
JP2018055548A (ja) * 2016-09-30 2018-04-05 株式会社Nextremer 対話装置、学習装置、対話方法、学習方法、およびプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RADU SORICUT AND ERIC BRILL: "Automatic Question Answering: Beyond the Factoid", PROCEEDINGS OF THE HUMAN LANGUAGE TECHNOLOGY CONFERENCE OF THE NORTH AMERICAN CHAPTER OF THE ASSOCIA, JPN7021005668, 3 May 2004 (2004-05-03), US, pages 57 - 64, XP055646121, ISSN: 0004671489 *
森部 敦: "自動会話システム(人工無能)の開発とその応用 −Webテキストからの会話文生成と会話形成に関する研究", 映像情報メディア学会技術報告, vol. 第29巻 第50号, JPN6021051729, 21 December 2021 (2021-12-21), pages 11 - 16, ISSN: 0004671490 *

Also Published As

Publication number Publication date
US20210117458A1 (en) 2021-04-22
JP7111154B2 (ja) 2022-08-02
WO2019208222A1 (ja) 2019-10-31

Similar Documents

Publication Publication Date Title
JP7111154B2 (ja) 回答選択装置、回答選択方法、回答選択プログラム
Habibi et al. Keyword extraction and clustering for document recommendation in conversations
JP6819990B2 (ja) 対話システム及びそのためのコンピュータプログラム
WO2020042925A1 (zh) 人机对话方法、装置、电子设备及计算机可读介质
CN110196901A (zh) 对话系统的构建方法、装置、计算机设备和存储介质
Nayak et al. To Plan or not to Plan? Discourse Planning in Slot-Value Informed Sequence to Sequence Models for Language Generation.
Agrawal et al. Affective representations for sarcasm detection
Ismail et al. Bangla word clustering based on n-gram language model
Dethlefs et al. Cluster-based prediction of user ratings for stylistic surface realisation
King et al. Evaluating approaches to personalizing language models
Tiwari et al. Ensemble approach for twitter sentiment analysis
KR20170122755A (ko) 함의 페어 확장 장치, 그것을 위한 컴퓨터 프로그램, 및 질문 응답 시스템
Hao et al. BertNet: Harvesting knowledge graphs with arbitrary relations from pretrained language models
KR101677859B1 (ko) 지식 베이스를 이용하는 시스템 응답 생성 방법 및 이를 수행하는 장치
Khalid et al. Topic detection from conversational dialogue corpus with parallel dirichlet allocation model and elbow method
Spliethöver et al. Argument from Old Man's View: Assessing Social Bias in Argumentation
El Janati et al. Adaptive e-learning AI-powered chatbot based on multimedia indexing
KR102240910B1 (ko) 머신 러닝 기반 한국 고객 서비스 어시스턴트 보조 시스템
Finardi et al. BERTa\'u: Ita\'u BERT for digital customer service
Lorenc et al. Benchmark of public intent recognition services
Demir Turkish data-to-text generation using sequence-to-sequence neural networks
Otani et al. Large-scale acquisition of commonsense knowledge via a quiz game on a dialogue system
Corrada-Emmanuel et al. Answer passage retrieval for question answering
Liu et al. Finding social media trolls: Dynamic keyword selection methods for rapidly-evolving online debates
Avdiu et al. Predicting learner knowledge of individual words using machine learning

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201019

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201019

A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A801

Effective date: 20201019

A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20201019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220420

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: 20220621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220704

R150 Certificate of patent or registration of utility model

Ref document number: 7111154

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150