「ウゼェんだよ! 見んなハゲ!」「ああ゛? キモいんだよ! 馴れ馴れしく呼ぶな!!」pixivに8月15日まで公開されている対話型Webサービス「罵倒少女」が話題になっている。黒髪に制服姿の美少女の正体は、ソニー・ミュージックエンタテインメントと言語理解研究所(ILU)が共同開発している人工知能。ユーザーが入力した言葉の意味を推測して、「朝っぱらから声かけんじゃねえよ!」などとテキストで罵倒するほか、イラストやボイスメッセージを返す、いわゆる「チャットボット」だ。
日本のチャットボットで最も有名なのは、LINE公式アカウントの「りんな」だろう。日本マイクロソフトが昨年開発したものだ。私も今年の6月に「ギャグおやじ」を遊びで作っているが、文字で会話するだけのチャットボットなら、今では簡単に作れてしまう。
この、おやじギャグを連発するLINEアカウント「ギャグおやじ」は、私一人で3日程度で簡単に試作できた。LINEデベロッパーのアカウントを取得し、ドコモから公開されている日本語APIと、無料のPaaSを組み合わせるだけで、意外に簡単に作れてしまう。しかもランニングコストは無料。十数人のLINE友人にバラまいただけだが、みんなにはかなりウケた。
で、このソニーの「罵倒少女」をチョイと遊んでみたのだが、やはり基本構造は一般的なチャットボットと同じだろうと思う。人間の行う「会話」もそうだが、相手の言葉の意味を正確に把握していなくても、「会話」というものは成立する。相手の発する言葉の中にある「キーワード」だけに反応するだけで、人間は自分の言葉を理解してくれたと思うからだ。もし相手の言葉の中に、事前に準備しているキーワードが無い場合には、話題を変えればよいだけだ。この「罵倒少女」というキャラは、その意味でチャットボットには最適だろう。入力された言葉がデータベースにない場合、つまり会話が続かなければ定型文の「罵倒」さえすればよいのだから。
またユーザー登録する際に、Facebookのアカウントから年齢や性別情報も取得できるので、ログイン毎に前回の会話ログからユーザー情報を蓄積していき、会話を変化することもできるはず。このあたりは機械学習の「レコメンデーション機能」で実現は難しくないはずだ。
このチャットボットが「会話」するには、入力された言葉を認識し判断するモジュールと、「発話」のためのモジュールが必要になる。日本語を認識するには「自然言語処理」をするのだが、今では日本語APIが公開されているので、簡単なレベルでよいなら、つまりキーワードを抽出するだけなら私にでもできてしまうレベルだ。しかし「発話」となると難しい。「きまぐれ人工知能プロジェクト」ではショートショートが書けたのだから、研究レベルでは存在するのだろうが、私はその手法をまだ知らない。準備してある定型文の中の単語を入れ替えるだけなら簡単だろうが、それではあまりに単純な会話にしかならないだろう。私の「ギャグおやじ」は、たいした時間をかけていないので100程度のギャグや会話文を用意し、その中から選択しているだけだ。これだけでも、長時間続けない限り、それほど不自然な会話にはならなかった。
まあ、会話のすべてのパターンを準備することは不可能だろうが、膨大なユーザーと会話しているマイクロソフトの「りんな」はどうしているのだろうか。やはり数十万パターンを用意した「力技」なのだろうか。どこかにMSから論文が出ていればよいのだが。そろそろ「発話」用の日本語APIを、どこかから公開して欲しい。そうすれば、ヘルプデスク以外にも、もっとチャットボットを利用したビジネスが活発化するだろうから。