■変女botに4コマ漫画自動生成機能を実装しました!
コミックナタリーさんに取り上げて頂けました!変女bot(@henjo_official)に4コマ漫画自動生成機能を導入しています!
「変女」公式botに新機能、お題をリプライすると4コママンガを自動生成 https://t.co/uxE1eClNLL pic.twitter.com/X2Qzbe2ZIp
— コミックナタリー (@comic_natalie) February 20, 2018
「◯◯◯◯◯」みたいな感じで「」付きでお題を変女botに話しかけてもらえれば、botがお題を使って自動で4コマ漫画を作っちゃうので、是非とも遊んでみてください!
■官能小説を学習したAI?!
変女botの各種機能は一つ一つはシンプルなものが多いのです。なので大抵の新機能は週末の土日を利用して1~2日で作成/リリースまで一気にやってしまうのですが、今回の4コマ漫画自動生成機能は機械学習とかまで組み込んでAI的な要素を強めたため、普段より若干手間かかっています。
そして今回、機械学習のデータに使ったのはなんと官能小説!
4コマ漫画機能はランダム要素も強いので毎回使うわけではないのですが、この2コマ目なんかは官能小説を機械学習したAIが作り出したセリフになります。
官能小説を学んだAIのセリフをそのまま会話APIに渡すなどして、次のセリフを作ったりもしています。さらに、それっぽく4コマ漫画になるようにセリフの繋がりを調整したり、ある程度はオチを固定したり、逆にランダム要素を強めたりとか、そんな感じで4コマ漫画が出来上がっていきます。
で、見ての通りお題によってはなかなか酷い4コマ漫画が自動生成で完成すると!(もはや他人事)
それにしても自動化は素晴らしです。いろいろお題をもらってbotが4コマを毎日作ってるうちにたまたま面白い漫画も生まれるはず!!もう少し性能をあげられたら、単行本のおまけページにぐらい使えたりする??かも??
■色々なWebAPIを使っています
WebAPIって何?って人向けに簡単に説明すると、WebAPIというものはWeb上に公開されている便利なプログラムだと思ってください。例えば翻訳WebAPIに「hello」と投げて、日本語への翻訳指示をすると「こんにちは」と翻訳結果を文字列で返してくれたりします。
これがとにかく便利なんです。一から全ての機能を実装するのは本当に大変なので、今回作成した4コマ漫画自動作成機能でもいろいろなWebAPIを使っています。お題に合わせて会話的な感じの流れも欲しいので、そのあたりは部分はリクルートさんのA3RTやUserLocalさんのところの会話APIにもお世話になりました。
あと結構面倒なのはフキダシの中に文章をそれっぽく配置するところですね。
まず4コマ漫画を作るために↓こんな感じのセリフの入っていない1コマ画像を大量に用意します。
ここに文字を入れたり、画像を4つ繋げて4コマ漫画として完成させるのですが、フキダシの位置は画像ごとに違うし、そもそもフキダシの大きさも違う。そこにどんな長さのセリフが来てもいいように、改行や文字の大きさを合わせて綺麗に納めるのが結構面倒なんです!
今年は本当にインフルエンザが流行った |
例えばこんな文章がセリフとして自動生成されたとします。次はこれを漫画のフキダシに配置する必要があるのですが、単に文字数で改行すると下記のようになったります。
まぁ、そんなに悪くないけど、単語が途中で切られると変に感じるパターンも出て来ます。なのでちょっと工夫して単語の途中で改行しないようにすると↓こんな感じになります。
1行の長さが変わるので、文字の大きさも調整するのですが、この例のように2行目が「が」で始まるのもセリフとしてはやはり変な感じです。
■形態素解析がすごい
このような改行問題を解決するために「形態素解析」という自然言語の文章を単語に分ける方法を使います。WebAPIでも形態素解析のサービスが提供されているので、これを使います(本当に便利!)。ってことで今回はUserLocalさんの形態素解析APIを使いました。
この形態素解析ですが、文章を分割するだけでなく、分割した各単語の名詞や助詞といった情報まで教えてくれるので、改行の時になるべく単語の途中で切らないようにしたり、行の先頭が助詞で始まらないようにプログラムすることも可能になるのです。
なので形態素解析の解析結果を使って、適切な箇所での改行をおこないつつ、文字の大きさを調整つつで、こんな感じにフキダシに合わせたセリフがやっと生成されます!
どうでしょう?これならいろいろなケースにそれなりに対応できそうな気がします。
ただこの方法も万能でないというか、どうしてもスペースが限られているので単語の途中で文章を切ったりする必要もあり、そのあたりはなかなか難しいところですね。
■ApitoreというAPIのマーケットプレイスが面白い
4コマ漫画自動生成で使っているWebAPIはUserLocal、A3RT、googleと、、それとApitoreを新規で使っています。このApitoreは私も今回初めて知ったのですが、主に自然言語処理に関する様々なWebAPIが公開されています。
Apitore
https://apitore.com/about/company
ここの面白いところは自分の作ったWebAPIを有料APIとして公開できることです。もちろん無料公開でもいいみたい。けど、個人がAPIを公開して対価を得られる仕組み!これがなかなか面白いですね。アイディア一つで多くの人に使われて、さらにお金も入るのはちょっと楽しそうです。
…もし自分でなにか作って公開するとしたら?そうですね…やるにしても多くの人に使ってもらうためには多少は話題性も欲しいところなので、ネット受けも考えて「ブログのタイトルを自動評価」してくれるAPIなんてどうでしょう?
ブログやニュース記事のアクセスはタイトルも非常に重要なので、タイトルの文章をWebAPIに投げるとタイトルの良し悪し(評価基準は多くのアクセスが取れるかどうか)を100点満点で返してくれると面白い気もします。
そして、自分のブログの平均アクセス数もAPIに渡せば、タイトルから予想アクセス数も出せる気もします。これ、実際にあったら需要あると思いますよ!ブログだけでなく、ニュース記事にも有効です。本当にタイトル一つでアクセスって全然違いますからね。。。
ちなみに「ブログのタイトルを評価」APIですが、実は大量のデータを持っている企業ならすぐにでもできるはずです。既存のニュース記事やブログの自然言語のタイトル情報をベクトル化し、ラベルにはアクセス数をレンジ分けなどして評価を付けます。そのデータセットを教師あり学習すれば、それっぽい人工知能が誕生!するはず。
まぁ、あくまでデータさえあればですけど。今の時代は本当にデータが大事です。ってことで誰か作ってくれるのを待ってます。使いますよ!
(スタッフ)