LoginSignup
16
9

More than 3 years have passed since last update.

恋人を自動で見つけてくれる「恋のキューピットAI」をつくった話

Last updated at Posted at 2019-12-18

はじめに

こんにちは。
クリスマスも近づき、人肌が恋しくなる時期になりました。

ですが、街で可愛い人を見かけても声をかける勇気があるわけはないし、SNSで気の合いそうな人が偶然恋人を募集していても連絡を送る勇気は当然ありません。

そこで、

じゃあ勝手に、性格の合いそうな恋人探し中の人同士をマッチングさせちゃおう!!

と思い、今回開発したのが「恋のキューピットAI」です!

(本当は、「#Twitter転職」を活用して新しい職を探している人と、企業をマッチングさせるTwitter Botを作りたかったが、どう上手に企業と転職希望者をツイート内容から区別するかが見えず、アドベントカレンダーの担当日も近く、諦め、恋人探しの方にしました)

何をつくったか

スクリーンショット 2019-12-18 13.06.59.pngスクリーンショット 2019-12-18 12.57.49.png

恋のキューピットAIはこのように、すでに稼働していて、毎時間ひたすらTwitterユーザーをマッチングさせています。
これで、自分から絡みに行きづらい人でも「なんかよくわからいけど、AIがオススメしているみたいだし、クリスマス一緒に過ごしませんか?」と誘えるようになるわけですね!!

プログラムの具体的な手順は、以下の通りです。

① 「彼女欲しい」と最近ツイートした人を何人か集める
② 「彼氏欲しい」と最近ツイートした人を何人か集める
③ 自己紹介や過去のツイートなどの情報から、最も相性の良さそうなペアを1組抽出する
④ 両者のTwitter IDを含んだツイートをアカウントでツイートをする

技術的な説明

スライド1.png

こんな感じで、
まず、Twitter APIを使ってそれぞれの対象ユーザーを集めてきます。(前回プログラムを動かした時間以降に呟いた人たちを集められれば良いです)
ただし、このままだと怪しいボット(特に「彼氏欲しい」ツイートしているアカウントに多い)なども一緒に集めてきてしまうので、それらを出来るだけスクリーニングします。
こうして残されたアカウントたち同士で、自己紹介欄やら過去のツイートやら(ここはまだ試行錯誤中)を比較し、相性の良さそうなペアを探していきます。
最後にそのペアをツイートすれば完了です!

自分はコアサーバーに自分のレンタルサーバーを持っていたのでそこに、このプログラムと実行するシェルスクリプト ファイルを置いて、CRONジョブを設定し、毎時間動くようにしています(このCRONジョブの設定が1番時間かかった)。

まだ、相性の評価方法は試行錯誤中ですが、プログラム自体は全部で4時間ほどで開発完成しました。
(Twitter APIも申請したら数秒で取得できました。)

懸念点

Twitterからスパム扱いされないか

何よりもこれが気になります。
この恋のキューピットAIは、ツイートするときに、対象者に直接メンション(@Twitter ID)を飛ばすので、相手に通知を送ってしまいます。
最近Twitterさんは、なにやら規制が厳しそうですし、怪しいボットとして消されないか怖いです。

ツイートしない時がある

サーバーのCRONジョブが正常にプログラムを実行していても、ちゃんとツイートしてくれないことがよくあります。
おそらく、Twitter APIの規制的に毎時間ツイート検索して、ツイート投稿することに制限が掛けられているのかと推測しています。

相性の評価方法

本体を見てもらえばわかると思いますが、まだまだきちんと相性のあってそうな人同士をマッチングできている訳ではありません。
精度がガバガバです。
どうやって評価しようか考えています。
是非、皆さんの意見をご教授頂きたいです。

終わりに

求人マッチングのボットを作りたかったのを妥協してつくったわりには、
結構個人的にこのボットは気に入っています。
実は、過去にこんなもの(「落合陽一っぽいツイートを自動生成してツイートさせてみた」も作ったことがありましたが、同じくらい気に入ってます。
特に、

  • Twitterという1番その人のことがわかる情報を元にマッチングさせる点(マッチングアプリのプロフは嘘とサクラだらけ)
  • 「彼女欲しい」となんとなくツイートした人と、同じく「彼氏欲しい」と似た時間になんとなくツイートした人がマッチングされる感じがすごいエモい
  • マッチングアプリでは、自分から(特に男は)能動的にアクションを起こさなくてはいけなかったものが、これだと受動的にマッチングできる点

が、なかなか新しいんじゃないかなと思っています。

ぜひ、皆さんフォローして意見ください!(特に相性の精度向上のところ困っている)

あ!
それと、前回の記事に対してTwitterで意見をくれた方々改めまして本当にありがとうございました!

意見をもらっておいて、こんなTwitter Botをアップデートよりも先に開発してしまってすみません!
自分でも今自分がやるべきことはこれじゃないだろおおお!と分かってはいたのですが、思いついたら作らずにはいられない体質なので、先にこれをつくってしまいました。

大変申し訳ございませんでした。

開発者に対する意見、お叱りに関してはすべてこちらに送りください。

それでは!!

16
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
9