ITmedia NEWS > STUDIO >
ITmedia AI+ AI活用のいまが分かる

AIがダジャレ判定→面白いと布団が吹っ飛ぶ “Qiita映え”バッチリ、話題のAI開発した若手チームを直撃これからのAIの話をしよう(ダジャレ編)(2/4 ページ)

» 2019年02月06日 07時00分 公開
[松本健太郎ITmedia]

 「大喜利番組『フットンダ』の感じを再現したくて、AIがダジャレを判定して、面白ければ布団が実際に吹っ飛ぶような装置を作ろうと思いました」と藤田さんは語ります。

 まず「布団が吹っ飛んだ瞬間」という具体的なイメージがあって、そこからどうやって実現するかを逆算していったようです。

 その構想を聞いた残り3人のメンバーも乗り気で、酒井さんは「単純に面白そうだなと。自分が言ったダジャレに反応してくれるだけでもうれしいですよね」と話します。

 ちなみに馬場さんによると「最初は布団が吹っ飛ぶのではなく、猫が寝転ぶみたいな案もあった」そうですが、一番インパクトがあって伝わりやすい「布団が吹っ飛ぶ」という見せ方に決まりました。猫が寝転ぶのはどう再現するつもりだったのかも気になる所ですが。

AIは「面白い」が分かるのか?

 布団が吹っ飛ぶオフトゥンフライングシステムの構成をあらためて説明します。まず、小さなマイクロコンピュータである「Raspberry Pi」(以下ラズパイ)上で稼働しているブラウザからPCを介して渾身のダジャレを入力します。

AI 「オフトゥンフライングシステム」の全体像(藤田さんの記事から引用)

 すると、ダジャレ判定AI「Shareka」が入力された内容をダジャレかどうか判定します。ただし入力文を全てカタカナに変換して判別するので、「UberEATSを奪いつつ」「用紙はA4でえーよん」といった英語読みには対応していません。

 ダジャレと判定されると、ダジャレ評価AI「Ukeruka」が面白いかどうか評価します。Ukerukaには「ダジャレ・ステーション」というダジャレ投稿サイトにある約4万5000個のダジャレデータを学習させました。このサイトでは、投稿されたダジャレを5点満点で評価することができ、各ダジャレに評価点が付いています。これらのダジャレデータを基に、入力されたダジャレの面白さをAIが判定。面白ければ布団が吹っ飛びます。

 SharekaとUkerukaは共にプログラミング言語のPythonで作られており、オープンソースの形態素解析エンジン「Mecab」を使って言葉を“形態素”(意味を持つ表現要素の最小単位)に分けて判別するなど、かなり真面目に作られています。Qiita上でソースコードが公開されているので、気になる方はご覧ください。

 実装した結果、ダジャレ判定AIのSharekaは想定通りの性能だったようです。藤田さんも「同じ単語を繰り返しているかどうかなど、ダジャレの判別自体は誰がやってもある程度は同じだと思うんです。人間の知識をルールベースでプログラムすればいけると思っていました」と語ります。

 一方、文章を1文字単位で処理できる「character-level CNN」というディープラーニングの一種を用いたダジャレ評価AIのUkerukaは、ほとんど精度が上がらなかったようです。

AI ダジャレ評価AIの開発を担当した中西さん

 ディープラーニングを採用した理由を語る中西さんは、「ダジャレの面白さは “音”にあると仮説を立て、ひらがな1文字1文字で処理を行うことができる『character-level CNN』に注目したというのが表の理由で、ディープラーニングを使った方がQiita映えを狙えるという裏の理由もあります」と笑顔を見せます。ちなみにQiitaの記事内では、が使われているオフトゥンフライングシステムは、「CNN」(畳み込みニュートラルネットワーク)と相性が良いという「真の理由」が添えられています。

 「もちろん、実際にはディープラーニング以外も試しています。例えば特徴量を作って、“何文字掛かっている”か計算しました。例えば『布団が吹っ飛んだ』ならフトンの3文字、『犬が居ぬ』ならイヌの2文字が掛かっていますが、3文字の方が完成度は高いだろうと仮説立てました。でも、実際に評価する所はなかなかうまくいきませんでしたね」(中西さん)

 その理由を、藤田さんは「よくよく考えるとダジャレの面白さ度合いが分からないですよね。人間がダジャレの面白さ度合いを分かっていない以上、AIにも分からないんです」と述べます。

Copyright © ITmedia, Inc. All Rights Reserved.