(57)【要約】【課題】お題文に適切な回答文を選択できるようにすること。【解決手段】お題文特徴量算出部１０３で、特徴キーワードＤＢ１０７ｂの特徴キーワードとのコサイン類似度に基づき、与えられたお題文Ｑの特徴量Ｆｑを計算する。正例負例判定部１０４により、特徴量Ｆｑを正例負例判定モデルに適用し、回答文Ａの正負を判定する。正例と判定された回答文Ａのペアとなる複数のお題文と、お題文Ｑとのコサイン類似度を回答文スコア算出部１０５で計算し、その最高値を回答文Ａのスコアとする。そして、最大のスコアを示す回答文を、回答文選択部１０６により、お題文Ｑに対する回答文として選択する。【選択図】図１
2020004224.tif 000002
【特許請求の範囲】
【請求項１】
各回答文に対して、正例あるいは負例が付与されたお題Ｑｉの特徴量から構築された各回答文の正例負例判定モデルを用いて、各回答文に対する与えられた題文Ｑの正例負例を判定する正例負例判定手段と、
前記正例負例判定手段により正例と判定された回答文を対象に、回答文に対して正例であるお題Ｑｉの特徴量と前記題文Ｑの特徴量とから回答文のスコアを求める回答文スコア算出手段と、
前記回答文のスコアに基づいて、前記題文Ｑに対する回答文を選択する回答文選択手段と、
を具備する、回答文選択装置。
【請求項２】
前記お題Ｑｉの特徴量はお題Ｑｉに含まれる単語のキーワードベクトルから求め、
前記題文Ｑの特徴量は題文Ｑに含まれる単語のキーワードベクトルから求める、
請求項1に記載の回答文選択装置。
【請求項３】
前記回答文スコア算出手段は、
前記お題Ｑｉの特徴量と前記題文Ｑの特徴量とからコサイン類似度を計算し、コサイン類似度の最高値を回答文のスコアとする、
請求項２に記載の回答文選択装置。
【請求項４】
題文を与えられた回答文選択装置が実行する回答文選択方法であって、
前記回答文選択装置が、各回答文に対して、正例あるいは負例が付与されたお題Ｑｉの特徴量から構築された各回答文の正例負例判定モデルを用いて、各回答文に対する与えられた題文Ｑの正例負例を判定する過程と、
前記回答文選択装置が、前記正例と判定された回答文を対象に、回答文に対して正例であるお題Ｑｉの特徴量と前記題文Ｑの特徴量とから回答文のスコアを求める過程と、
前記回答文選択装置が、前記回答文のスコアに基づいて、前記題文Ｑに対する回答文を選択する過程とを具備する、回答文選択方法。
【請求項５】
請求項１乃至３のいずれか１項に記載の回答文選択装置が備える前記各部の処理を、当該回答文選択装置が備えるプロセッサに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば入力文に対する回答文を選択するための、回答文選択装置、方法、およびプログラムに関する。
【背景技術】
【０００２】
『話芸』といわれる演芸のなかでも、言葉使いの妙を楽しむ『なぞかけ』や『大喜利』といったジャンルのファンは多い。大喜利では、例えば「こんな○○○は嫌だ！」といったお題に対して気の利いた答えを返すことが聴衆の笑いを誘うもととなっており、ひとつの芸として評価される。
【０００３】
近年、コンピュータは社会のあらゆる領域で使われていて、例えばタブレットを用いた音声翻訳サービスや、ＡＩ（Artificial Intelligence）スピーカの活用などが知られるようになってきている。そのキーとなるのは、入力文に対する適切な回答文を選択する技術であり、この技術が、エンターテインメントの分野でも活用されようとしている。つまり、お題への回答文をコンピュータに生成させるといった用途である。
【０００４】
入力文に対して回答文を選択する技術としては、大規模なテキストデータから述語項構造データベースを作成し、対話の話題を示す単語を含むレコードを述語項構造データベースから選択して、回答文を生成する方式がある（例えば特許文献１を参照）。一般的なＱ＆Ａについては、ユーザの発話文の履歴に含まれる単語が回答文に含まれる頻度をスコアとして、回答文を選択する技術がある（例えば特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−７９３８３号公報
【特許文献２】特開２００７−１０２１０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
大喜利には、大規模テキストデータを用いる手法を適用することが難しい。一般的な大規模テキストデータ内では、大喜利のお題文に対して共起性の低い回答文が正例となるケースが多くなってしまうためで、少なくとも、笑いを生起する述語項構造データベースの構築は困難である。
【０００７】
また、大喜利は、普通の会話とは違って時系列的な要素が少ない。このためユーザ発話文の単語やお題文の単語の履歴に基づくスコアリングでの手法では、回答文を適切に選択することが難しかった。
【０００８】
この発明は、上記事情に着目してなされたもので、その一側面では、お題文に適切な回答文を選択できる技術を提供しようとするものである。
【課題を解決するための手段】
【０００９】
上記課題を解決するためにこの発明の第１の態様は、各回答文に対して、正例あるいは負例が付与されたお題Ｑｉの特徴量から構築された各回答文の正例負例判定モデルを用いて、各回答文に対する与えられた題文Ｑの正例負例を判定する正例負例判定手段と、前記正例負例判定手段により正例と判定された回答文を対象に、回答文に対して正例であるお題Ｑｉの特徴量と前記題文Ｑの特徴量とから回答文のスコアを求める回答文スコア算出手段と、前記回答文のスコアに基づいて、前記題文Ｑに対する回答文を選択する回答文選択手段と、を具備する。
【発明の効果】
【００１０】
この発明の第１の態様によれば、各回答文に対して、正例あるいは負例が付与されたお題Ｑｉの特徴量から構築された各回答文の正例負例判定モデルを用いて、正例負例判定手段により、各回答文に対する与えられた題文Ｑの正例負例が判定される。また、前記正例負例判定手段により正例と判定された回答文を対象に、回答文に対して正例であるお題Ｑｉの特徴量と前記題文Ｑの特徴量とから、回答文スコア算出手段により、回答文のスコアが求められる。そして、前記回答文のスコアに基づいて、前記題文Ｑに対する回答文が、回答文選択手段により選択される。このような構成であるから、お題文に対する適切な回答文を選択することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施形態に係わる回答文選択装置の一例を示す機能ブロック図である。
【図２】図２は、特徴キーワードＤＢ１０７ｂに記憶される特徴キーワードの一例を示す図である。
【図３】図３は、図２の特徴キーワードごとに対応付けられたキーワードベクトル列の一例を示す図である。
【図４】図４は、正例ペアをつくるお題文と回答文との対応の一例を示す図である。
【図５】図５は、負例ペアをつくるお題文と回答文との対応の一例を示す図である。
【図６】図６は、一実施形態に係わる回答文選択装置１０００の処理手順の一例を示すフローチャートである。
【図７】図７は、正例負例の判定およびスコアの算出について説明するためのフローチャートである。
【図８】図８は、回答文スコアデータについて説明するための図である。
【発明を実施するための形態】
【００１２】
次に、図面を参照してこの発明の実施の形態について説明する。以下では、話芸としての大喜利を採りあげ、大喜利の枠組みの中で、お題文に対して聴衆（ユーザ）の笑いを生起する回答文を選択する技術について説明する。
【００１３】
［一実施形態］
（構成）
図１は、実施形態に係わる回答文選択装置の一例を示す機能ブロック図である。一実施形態では、回答文選択装置１０００は、お題文入力装置１００１からお題文を入力され、このお題文に対して回答文を作成し、情報提示装置１００２に出力する。
【００１４】
お題文入力装置１００１は、ユーザから与えられたお題文を受け付け、テキストデータ形式のお題文を回答文選択装置１０００に渡す。お題文入力装置１００１は、例えばパソコンやスマートフォン等のヒューマンマシンインタフェース装置である。お題文は、これらの装置にテキスト形式で入力されることが想定される。このほか、ＡＩスピーカ等の音声認識装置や、マイク等の音声入力装置にお題文を音声で与え、テキストに認識させるようにしても良い。
【００１５】
情報提示装置１００２は、回答文をテキストで表示するディスプレイ等が想定される。このほか、回答文を音声データに変換してスピーカから拡声出力するようにしても良い。お題文入力装置１００１と情報提示装置１００２を一体化すれば、お題文に回答を返すガジェットとして楽しむことができる。
【００１６】
回答文選択装置１０００は、コンピュータであり、ハードウェアとしてのプロセッサ１００と、記憶部１０７とを備える。  
プロセッサ１００は、記憶部１０７に記憶されたプログラム１０７ａに従って、実施形態に係わる機能を実現する。
【００１７】
記憶部１０７は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等の半導体メモリ、あるいはＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等のストレージメディアである。記憶部１０７は、プロセッサ１００を回答文選択装置１０００として機能させるためのプログラム１０７ａと、特徴キーワードを記憶する特徴キーワードデータベース（ＤＢ）１０７ｂと、複数の回答文を記憶する大喜利データベース（ＤＢ）１０７ｃとを記憶する。
【００１８】
ところで、プロセッサ１００は、実施形態に係わる処理機能として、お題文格納部１０１、キーワード抽出部１０２、お題文特徴量算出部１０３、正例負例判定部１０４、回答文スコア算出部１０５、および、回答文選択部１０６を備える。これらの機能ブロックは、プログラム１０７ａがメモリにロードされ、当該プログラムの実行の過程で生成されるプロセスとして、理解され得る。
【００１９】
お題文格納部１０１は、お題文入力装置１００１から与えられたお題文（お題文Ｑと表記する）を受け付け、保持し、キーワード抽出部１０２に出力する。
【００２０】
キーワード抽出部１０２は、お題文格納部１０１から渡されたお題文Ｑを、例えば既知の形態素解析技術により単語の単位にまで分割して単語群を得る。さらにキーワード抽出部１０２は、この単語群から、事前に定義された既定の単語（除外単語）を除去し、単語群［ｗ１，ｗ２，…，ｗｎ］を得る。ｎは、除外単語群を除いたお題文Ｑの単語長である。このお題文Ｑに由来する単語群［ｗ１，ｗ２，…，ｗｎ］は、お題文特徴量算出部１０３に送られる。
【００２１】
お題文特徴量算出部１０３は、キーワード抽出部１０２から渡された単語群［ｗ１，ｗ２，…，ｗｎ］から、お題文Ｑの特徴量Ｆｑを計算する。単語群［ｗ１，ｗ２，…，ｗｎ］は、お題文Ｑの各単語をベクトル化した配列といえる。お題文特徴量算出部１０３は、この配列と、特徴キーワードＤＢ１０７ｂとを用いてお題文Ｑの特徴量Ｆｑを計算する。
【００２２】
図２は、特徴キーワードＤＢ１０７ｂに記憶される特徴キーワードの一例を示す図である。図２に示されるような特徴キーワードは、例えば、既存のデータベース（例えばＷｉｋｉｐｅｄｉａ（登録商標）等）からのデータマイニング等の手法で予め抽出されることができる。
【００２３】
既存のＷｏｒｄ２Ｖｅｃ等の手法を適用すれば、単語の概念をベクトルで表現可能な単語空間を構築することができる。Ｗｏｒｄ２Ｖｅｃは、大量のテキストデータを解析し、各単語の意味をベクトル表現化す手法の一つとして知られている。図２の特徴キーワード群に対してＷｏｒｄ２Ｖｅｃを適用することにより、特徴キーワード群の要素の特徴キーワードの各々を、それぞれベクトル表現で表すことができる。
【００２４】
図３は、図２の特徴キーワード群に、例えばＷｏｒｄ２Ｖｅｃを適用して作成されたキーワードベクトル列の一例を示す図である。図３に示されるｍは、特徴キーワード数である。
【００２５】
単語間の類似度は、例えばコサイン類似度で算出することができる。例えばベクトルｗ１とｔ１との類似度は、スカラー量であるｃｏｓ（ｗ１，ｔ１）で表される。お題文特徴量算出部１０３は、配列［ｗ１，ｗ２，…，ｗｎ］とキーワードベクトル［ｔ１，ｔ２，…，ｔｍ］とのコサイン類似度を算出する。そして、お題文特徴量算出部１０３は、各特徴キーワードに対してお題文Ｑの各単語の最高類似度と最低類似度とに基づいて、例えば式（１）を用いてお題文Ｑの特徴量Ｆｑを計算する。  
【００２６】
【数１】
2020004224.tif 000003
【００２７】
式（１）の右辺におけるｍａｘはコサイン類似度の最大値を表し、ｍｉｎは最小値を表す。右辺の各要素は、配列［ｗ１，ｗ２，…，ｗｎ］の全てについての、キーワードベクトル［ｔ１，ｔ２，…，ｔｍ］とのコサイン類似度の最大値または最小値である。式（１）によれば、特徴量Ｆｑは、２ｍ次元ベクトルである。計算された特徴量Ｆｑは、正例負例判定部１０４に送られる。
【００２８】
正例負例判定部１０４は、大喜利ＤＢ１０７ｃに記憶された回答文の全てについて、お題文Ｑが正例か、または負例かを、お題文Ｑの特徴量Ｆｑを用いて判別する。一実施形態において、正例とは、お題文と回答文とのペアがユーザの笑いを想起することを意味し、負例とは、お題文と回答文とのペアがユーザの笑いを想起しないことを意味する。
【００２９】
正例か負例かの判別には、予め構築された正例負例判定モデルを用いることができる。ここで、正例負例判定モデルは、例えば、自然言語解析で一般的な、サポートベクトルマシンなどを用いて構築することができる。このほか、ｋ−近傍法などの他の機械学習手法・統計手法を用いてもよい。
【００３０】
図４および図５は、大喜利ＤＢ１０７ｃに記憶される内容の一例を示す図である。大喜利ＤＢ１０７ｃは、お題文と回答文との正例ペア（図４）と、お題文と回答文との負例ペア（図５）とを記憶する。一実施形態において、正例ペアとは、ユーザの笑いを生起するお題文と回答文とのペアであり、負例ペアとは、ユーザの笑いを生起しないお題文と回答文とのペアである。例えばお題文Ｑ１について図４、図５を参照すると、回答文Ａ１，Ａ２，Ａ３，Ａ４がお題文Ｑ１と正例ペアになり、回答文Ａ５，Ａ６，Ａ７は、お題文Ｑ１と負例ペアになる。
【００３１】
一つの回答文は、お題文の特定の特徴に対して成立する回答文であるため、他の回答文においても同様の特徴を有していれば正例ペアとして存在する。つまり、回答文が正例となるか、負例となるかは、お題文の特定の特徴に拠っている。
【００３２】
実施形態では、大喜利におけるお題文とその回答文が、お題文の特定の特徴のもとで結合していることに着目する。例えば、「こんなテーブルは嫌だ」というお題文に対し「傾いている」という回答文があるとする。これらは「テーブルは水平である」という特徴のもとで結合している。
【００３３】
一方、水平を特徴として含む対象としては、椅子や家なども該当する。よって「傾いている」という回答文は、「こんな椅子は嫌だ」や「こんな家は嫌だ」といったお題文にも正例として結合するべきといえる。
【００３４】
正例負例判定部１０４は、正例負例判定モデルにお題文Ｑの特徴量Ｆｑを入力し、出力ラベルが１であれば正例判定、−１であれば負例判定として判定結果を回答文スコア算出部１０５に出力する。
【００３５】
回答文スコア算出部１０５は、大喜利ＤＢ１０７ｃの各回答文に対するお題文Ｑの正例負例判定結果を、正例負例判定部１０４から取得する。そして、回答文スコア算出部１０５は、お題文Ｑの特徴量Ｆｑに基づいて、大喜利ＤＢ１０７ｃの各回答文ごとに、お題文Ｑとの適合度を示すスコアを計算する。計算されたスコアは、回答文選択部１０６に渡される。
【００３６】
回答文選択部１０６は、回答文スコア算出部１０５から渡されたスコアに基づいて、お題文Ｑに対して最大のスコアを示す回答文を選択し、情報提示装置１００２に出力する。情報提示装置１００２は、選択された回答文をテキスト表示、あるいは音声出力などの形態でユーザに提示する。次に、上記構成における作用を説明する。
【００３７】
（作用）
図６は、一実施形態に係わる回答文選択装置１０００の処理手順の一例を示すフローチャートである。図６において、お題文Ｑが与えられると（ステップＳ１）、回答文選択装置１０００は、このお題文Ｑを単語の単位にまで分割し、お題文Ｑのキーワードを抽出する（ステップＳ２）。次に、回答文選択装置１０００は、抽出されたお題文Ｑのキーワードからお題文Ｑの特徴量Ｆｑを計算する（ステップＳ３）
次に、回答文選択装置１０００は、お題文Ｑの特徴量Ｆｑと、大喜利ＤＢ１０７ｃに含まれる各お題文の特徴量との類似度を計算し、類似度の高いお題文を抽出する。そして、この抽出されたお題文に結合する回答文のお題回答適合度（正例：＋１，負例：−１）を用いてスコアを算出する（ステップＳ４）。
【００３８】
さらに、回答文選択装置１０００は、算出されたスコアに基いて、お題文Ｑに対する回答文を大喜利ＤＢ１０７ｃから選択する（ステップＳ５）。
【００３９】
図７は、正例負例の判定およびスコアの算出について説明するためのフローチャートである。一実施形態では、回答文Ａ１に対するお題文Ｑの正例／負例判定を例として説明する。
【００４０】
図７において、回答文選択装置１０００は、回答文Ａ１に対する正例ペアのお題群（集合）Ｐと負例ペアのお題群（集合）Ｎを、大喜利ＤＢ１０７ｃから取得する（ステップＳ１０）。図４を参照すると、正例ペアのお題群ＰにはＱ１，Ｑ２が含まれ、図５を参照すると、負例ペアのお題群ＮにはＱ３が含まれることが分かる。
【００４１】
次に、回答文選択装置１０００は、群Ｐの各お題文（Ｑ１，Ｑ２）の特徴量と、群Ｎの各お題文（Ｑ３）の特徴量とを算出する。ここでも、コサイン類似度によりお題文の特徴量を算出することができる。お題文Ｑ１，Ｑ２の特徴量をＦｑ１，Ｆｑ２とし、お題文Ｑ３の特徴量をＦｑ３とする。そして回答文選択装置１０００は、Ｆｑ１，Ｆｑ２をそれぞれラベル１とし、Ｆｑ３をラベル−１として、サポートベクトルマシンを用いた機械学習により、正例負例判定モデルを構築する（ステップＳ１１）。
【００４２】
次に、回答文選択装置１０００は、与えられたお題文Ｑの特徴量Ｆｑを正例負例判定モデルに入力し（ステップＳ１２）、出力ラベルが１か−１かを判定する（ステップＳ１３）。出力ラベルが１であれば、回答文選択装置１０００は正例と判定し（ステップＳ１４）、−１であれば負例と判定する（ステップＳ１５）。
【００４３】
正例負例判定部１０４は、大喜利ＤＢ１０７ｃに記憶された全ての回答文について、お題文Ｑとの正例／負例を判定する。その結果を受けて、回答文スコア算出部１０５は、お題文Ｑが正例判定であった回答文の集合（回答文群Ａｐとする）を抽出する。回答文スコア算出部１０５は、回答文群Ａｐの要素である各々の回答文に対して、正例ペアとなるお題文の集合（お題文群Ｏｐとする）を求める。例えば、お題文Ｑが回答文Ａ１に対して正例と判定されれば、回答文Ａ１に正例ペアとなるお題文群Ｏｐは、Ｑ１，Ｑ２が該当する（図５）。
【００４４】
次に、回答文スコア算出部１０５は、お題文Ｑの特徴量Ｆｑと、お題文群Ｏｐの要素である各々のお題文Ｑ１，Ｑ２の特徴量Ｆｑ１，Ｆｑ２とのコサイン類似度を計算し、その最高値を、お題文Ｑの回答文Ａ１に対するスコアとして設定する。そして、この処理を回答文群Ａｐの要素である回答文の全てに対して行うことで、お題文Ｑに対する回答文スコアデータが作成される。回答文選択部１０６は、回答文スコアデータに基づいて、お題文Ｑに対する回答文を選択する。
【００４５】
図８は、回答文スコアデータについて説明するための図である。図８において、回答文Ａ１のスコアは０．８であり、図示される中では最も高い。すなわち図８を参照する限り、お題文Ｑに対しては回答文Ａ１が選択されることになる。なお負例判定となった回答文については、スコア算出は実施されない。図８においては、データ欠損を示すＮａＮ（Not a Number）でこのことが示される。
【００４６】
（効果）
以上のように一実施形態では、正例ペアをなすお題文と回答文、および負例ペアをなすお題文と回答文を、大喜利ＤＢ１０７ｃに予め記憶させる。ユーザの笑いを想起する回答文とお題文とのペアを正例とし、笑いを想起しないことを負例として、或る一つの回答文Ａに対しお題文の正例集合Ｐと負例集合Ｎとを求める。そして、集合Ｐと集合Ｎとを教師として学習させた正例負例判定モデルを構築する。
【００４７】
お題文Ｑが与えられると、その特徴量Ｆｑを、予めデータベース化された特徴キーワードとのコサイン類似度により算出する。特徴量Ｆｑを正例負例判定モデルに適用し、回答文Ａの正例／負例を判定する。正例と判定された回答文Ａのペアとなる複数のお題文と、お題文Ｑとのコサイン類似度を計算し、その最高値を回答文Ａのスコアとする。そして、最大のスコアを示す回答文をお題文Ｑへの回答文として選択し、提示するようにした。
【００４８】
このようにしたので、述語項構造データベースを用いることなく、また、ユーザの発話履歴を参照する必要もなく、未知のお題文に対して、ユーザの笑いを生起する回答文を選択することができる。すなわちこの発明によれば、お題文に対して適切な回答文を選択することが可能になる。
【００４９】
なお、この発明は上記実施形態に限定されるものではない。例えば図７のフローチャートにおいて、正例負例判定モデルの構築に係わる手順（ステップＳ１０，Ｓ１１）と、この正例負例判定モデルを用いて正例または負例を判定する手順（ステップＳ１２〜Ｓ１５）とが続けて実行される必要は無い。例えばステップＳ１０，Ｓ１１の手順だけを繰り返し実行することで、正例負例判定モデルの学習が積み重ねられ、ステップＳ１２〜Ｓ１５における判定の精度の向上が期待できる。
【００５０】
また、プロセッサ１００の機能ブロックの全て、あるいは少なくとも１つのブロックをクラウドコンピューティングシステムに実装することも可能である。回答文の選択に係わる処理をクラウドサービスに委託すれば、ユーザ側の装置の負担を軽減することができ、ＡＩスピーカ等のガジェットや、スマホアプリ等の実現形態も可能となる。  
このほか、回答文選択装置の機能構成等についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
【００５１】
この発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００５２】
１００…プロセッサ、１０１…お題文格納部、１０２…キーワード抽出部、１０３…題文特徴量算出部、１０４…正例負例判定部、１０５…回答文スコア算出部、１０６…回答文選択部、１０７…記憶部、１０７ａ…プログラム、１０７ｂ…特徴キーワードデータベース、１０７ｃ…大喜利データベース、１０００…回答文選択装置、１００１…お題文入力装置、１００２…情報提示装置。
【図１】
2020004224.tif 000004
【図２】
2020004224.tif 000005
【図３】
2020004224.tif 000006
【図４】
2020004224.tif 000007
【図５】
2020004224.tif 000008
【図６】
2020004224.tif 000009
【図７】
2020004224.tif 000010
【図８】
2020004224.tif 000011