Text Classification APIで街コンぽいイベント名を考える


社会人3年目エンジニアの関です。
どんどんと暑くなるにつれてPCの熱が嫌になってきています。

普段開発を行っていると動作検証でイベントページを作成することがあるのですが、一番悩むのがイベント名の付け方です。

思いっきりテストページぽく適当なイベント名を付けてもいいのですが、出来れば街コンぽくしたい!
でもそもそも「街コンぽい」って何?イベントの種別ごとにイベント名にパターンはあるの?
と悩みはなかなか尽きません・・・。

ということで、今回はText Classification APIを使って「街コンぽい」イベント名の付け方を考えてみたいと思います。

Text Classification APIとは

リクルートが公開している機械学習やディープランニングのAPI群(A3RT)の一つです。
無料で使用することができますし、丁寧なドキュメントも付いているので非常にありがたいです。

Text Classification APIはConvolutional Neural Networkを利用して、文章の分類を行うAPIです。
例えば、学習データとしてニュース記事とそのトピック(スポーツや政治など)を与えると、未知の記事データに対してのトピックを推定してくれます。

他のAPIも気になる方は以下をご参照ください。
https://a3rt.recruit-tech.co.jp/product/

実際に試してみる

今回使ったソースファイルを見てみたい、動作確認をしてみたいと思った方は以下からどうぞ。
JavaScriptで作ってもよかったのですが、APIキーなど見せたくなかったのでPHPで作っています。

目標

自分の考えたイベント名に対して「街コン」の評価値を最大にする(ラベル付けさせる)

使用するデータ

  • データ総数は132件
  • 「街コン」「恋活パーティー」「プチ街コン」「婚活パーティー」「自分磨き」の5つのラベル
  • イベント種別(ラベル)とイベント名を組にして学習

検証方法

学習させたモデルに対してテキストを投げると、以下のようなイベント種別と評価値が返されます。
評価値が高い=該当のイベント種別ぽい名前が付けられているとして、検証します。

{
    status: 0,
    message: "ok",
    classes: [
        {label: "婚活パーティー", probability: 0.396938},
        {label: "恋活パーティー", probability: 0.301677},
        {label: "街コン", probability: 0.291992},
        {label: "自分磨き", probability: 0.00600503},
        {label: "プチ街コン", probability: 0.00338727}
    ]
}

(ちなみにこれ「婚活」に対する結果なのですが、恋活も評価値が高くなるのが驚き。)

イベント名を街コンぽくする

もくもくとプログラムでも書こうぜコン

ラベル 街コン プチ街コン 恋活パーティー 婚活パーティー 自分磨き
評価値 0.123232 0.241536 0.566378 0.0226373 0.046217

恋活パーティーって立食だけどそこでプログラミング・・・?
というツっこみはさておいて、私の考えたこの素敵なイベント名に様々な要素をくっつけて街コンの評価値を最も高くしていきたいと思います。

エンジニア必見!技術で繋がる新しい出会い!もくもくとプログラムでも書こうぜコン

ラベル 街コン プチ街コン 恋活パーティー 婚活パーティー 自分磨き
評価値 0.141234 0.353475 0.352576 0.028061 0.124654

煽り文句を付けてみたところ、なぜかプチ街コンと恋活パーティーの評価値が同じくらいに。

6月3日(土)もくもくとプログラムでも書こうぜコン@八丁堀

ラベル 街コン プチ街コン 恋活パーティー 婚活パーティー 自分磨き
評価値 0.339186 0.426766 0.113549 0.0552537 0.0652452

日付と場所を入れてみたところ、街コンの数値が大きく上がりました。たしかに1ユーザとしては街コン探しで特に気になるポイントですよね。でもやはりプチ街コンの評価値が高いです。

【2枠限りの限定販売】6月3日(土)もくもくとプログラムでも書こうぜコン

ラベル 街コン プチ街コン 恋活パーティー 婚活パーティー 自分磨き
評価値 0.471448 0.211916 0.18445 0.0639014 0.0682844

あとはこれしかないと思い、限定販売要素を付け足してみました。なぜかこれで「街コン」の評価値が一番高くなったのでとりあえず完成です。(書いていないですがここまでで何十回も試しています。)

おわりに

今回はあまりデータ件数が無いので精度はイマイチですが、件数を増やせば必然的に精度も上がってくるはずです。他にも売れるイベント名称のパターンとか探れたら面白いかなぁと思います。

A3RTでは他にも画像評価や行動ログ分析などのAPIも公開されています。
機会があればそれらを活用して何か作ってみたいです。