単一文章の要約システム(3) : 知的ロボットのセリフを自動で短くする

単文要約をスムースにすることは、当面する最も重要な課題だと思っている。すでに、過去二階の投稿で、初期の実行方法は示した。そして、実際それは即興漫才ロボットに組み込んでいる。しかし、先の投稿にも書いたように、まだ不十分で、単純にword2vecの距離で測って主語と関係性の薄いフレーズをバサバサと削って短くしているのでは、言葉としてつながりが悪くなって意味が伝わりにくくなってしまうのである。名詞と名詞、動詞と名詞などを繋いでいく助詞の選択が悪いなどの問題がある。

どうするのか?マルコフ連鎖を応用して、文章を生成していく手法があるが、それは、2つや3つの連続することがから、次の言葉を生成するシステムである。その発想を利用して、ある句を削除したときに、削除した前後の句をうまくつなげるように、前の句の助詞を改定していくのが良い。

それを実現するために、大量の文章コーパスから

〇〇□□〇〇

のように、挟まれた助詞に関するデータベースを作成すれば良い。これも、一つのマルコフ連鎖である。

ただ、データが膨大になってしまう可能性がある。あるいは逆にデータの欠落が大量に発生してしまうという可能性もある。どうするのか。少し考える。

ロボット即興漫才の到達点:事務所のネタ見せを終えて

事務所のネタ見せがあり、人前でロボット即興漫才を披露した三度目の機会となった。今回の機会は、全2回と決定的に違っている。単にこれまでの漫才よりもうまくいったということではない。確かに、その点ではよかったのだが、それよりもはるかに重要な意味があるパフォーマンスだった。

まず、漫才台本もその一部である謎かけも、完全にその場で作るものだった。前回は、基本、コアとなる言葉は、私が作るわけではなく、コンピュータが作るものだが、ロボットが聞き取れる言葉については、全て事前に釣らせていた。今回は、そのコアの言葉もすべて、その場でロボットに作成させた点で、私的には「画期的」なことなのだ。

というよりも、これこそ私がお笑いロボットをやりだしてから最もやりたかったことなのだ。それができたという点で、私的にはすごいことだった。

漫才も謎かけも、レベルは低いし言葉がちょっとおかしなところがあったりしたが、今回は、本当に漫才や謎かけになっていた、と私は思っている。

しかも、今回は、ロボットが認識できる言葉をこれまでの3000語弱から、8000語以上まで増やしたのだ。これも画期的だ。というよりも、その場でロボットが自由にネタを作る力を持ったから、単に、聞き取り語彙を増やすだけで、ネタ作りができるようになったのだ。つまり、ロボットが聞き取りできる言葉がいくら増えても、ロボットは基本、ネタを作ることができるシステムになっている。

現在、8000語を認識するために、サリーのtopicファイルをコンパイルする時間として1分以上かかるようになっている。前は10秒か20秒で終わっていたのに。

今後これを、サリー(ロボットnao)がどこまで認識できるかわからないが、数万程度に増やしたい。というよりも数十万、数百万個まで増やしたいのが本音だが。

じゃあ、次の課題は(1)ロボットの認識語彙を数万に増やす、(2)単文要約が、まだ不十分で、要約した文章が、理解しにくくなる時がある。(3)漫才と謎かけネタをよりレベルの高いものにする、などがすぐに思い浮かぶ。(1)は、ただ、語彙を増やしてそれがうまくいくかチェックすればいいだけで、うまくいくところの上限が限界なのであり、確かめるだけで良い。

問題は、(2)の単文要約である。これについては、次の投稿にする。