プログラミングを始めて３ヶ月半の未経験が「エンジニアチェッカー」を作ってインフルエンサーを撲滅してしまった話

# インフルエンサー見なくなったと思いませんか？
エンジニア界隈をあんなにも盛り上げてくれたインフルエンサー。
最近、ちょっと元気ないですよね。

実はこれ、**[「エンジニアチェッカー」](https://engineer-checker.com/)**というサービスの影響なんです。

# 多くの未経験が目を覚ましてしまった
[エンジニアチェッカー](https://engineer-checker.com/)の基本機能は**「エンジニアの皮を被ったインフルエンサー」**を検知することです。
まるで優秀なエンジニアであるかのように装って未経験向けに発信してるインフルエンサー、いますよね。
そういった人たちに**「インフルエンサー」**というレッテルを貼り直してあげるのがこのサービスの仕事です。

ありがたいことに、2020年7月のリリースからわずか**3日で10000人**以上もの方々に使っていただくことができました。

その中にはインフルエンサーをエンジニアだと勘違いしていた未経験もいたでしょう。
情報発信を頑張っているインフルエンサー見習いの未経験もいたでしょう。
もしかしたらインフルエンサーご本人もいたかもしれません。

彼らの多くは[エンジニアチェッカー](https://engineer-checker.com/)を使うことによって改心しました。
インフルエンサーを信じる未経験は消え、インフルエンサーを目指す未経験も消え、そして最後にはインフルエンサーも消えていきました。

# 使用技術
という盛大な前置き（釣り）を経て、[エンジニアチェッカー](https://engineer-checker.com/)で使用した技術について書かせていただこうと思います。タイトルにもある通りプログラミングを始めて数ヶ月の自分が使った技術ですし**決してレベルの高いものではありません**が、外部APIを多く使用しており、それら(札束の力）に頼ることで技術力が低くても提供するサービスの内容をある程度充実させられたと言う点で、特にこれから個人サービス・ポートフォリオを作る駆け出しエンジニアの方に多少なりとも参考になることを願って書きます。

## 言語・FW
Ruby 2.6.4
Ruby on Rails 5.2.4.3

触ったことのある言語がこれしかなかったのでこれで書きました。ActiveRecordを使っていませんし必ずしもRailsである必要は無かったです。あとCSSも生で書いてます。

# 外部API
### Twitter API
診断対象アカウントのツイート・名前・プロフィール・フォロー・フォロワー等を取得するためにTwitterが提供しているAPIを使いました。実際には[twitter](https://github.com/sferik/twitter)というgemを使用してAPIを叩いています。エンドポイントごとにリクエスト制限があるため注意です。例えば「フォロワーのリストを取得する」というエンドポイントは、15分に15回までしかリクエストを送れません。
参考：[Rate limits — Twitter Developers ](https://developer.twitter.com/en/docs/twitter-api/v1/rate-limits)

全くの0からコンテンツを用意しなくてもいいため、Twitterの情報をAPIで持ってきてアレコレ加工するというサービス・ポートフォリオは作りやすいし使ってもらいやすいのではないかなと思います。

### Amazon Rekognition
[Amazon Rekognition（高精度の画像・動画分析サービス）| AWS](https://aws.amazon.com/jp/rekognition/?blog-cards.sort-by=item.additionalFields.createdDate&blog-cards.sort-order=desc)
**画像解析**をしてくれるAWSのサービスです。人間の顔写真に対して推定年齢や性別の解析（顔解析）や、何の生物や物体が写っているかという解析(ラベル解析）を行ってくれます。
リリース当時、容姿端麗な女性をアイコンにして駆け出しエンジニアを装い、フォロワーを集める、スクールの勧誘をしたり情報商材を売りつける、といった手法がにわかに流行っていたのでそれを検知するために使用しました。また「猫エンジニア」や「筋肉エンジニア」の判定にも一部使用しています。

画像解析の精度としてはほとんど満足のいくものでした。顔解析について、実物の人間の顔写真に対しては概ね正しく年齢や性別を読み取ってくれますが、二次元アイコンに対してはその多くについて性別をFemale(女性）と認識してしまいます（イラストを解析することを想定していないため、当然といえば当然のことです）。またラベル解析についてはキツネを猫と認識してしまうなどがありましたが、逆にイラストで描かれた猫についても「これは猫である」と認識してくれていたことが多かったと思います。







### Amazon Comprehend
[Amazon Comprehend（テキストのインサイトや関係性を検出）| AWS](https://aws.amazon.com/jp/comprehend/)
文章をいろいろ解析してくれるAWSのサービスです。今回は**感情分析**の機能のみを使いました。
Neutral・Positive・Negative・Mixedの4種類の感情のどれに近いかをそれぞれ％表示で分析してくれます。

感情分析の用途としては**「インフルエンサーの誤判定を防ぐ」**ためのものです。
「インフルエンサー的なツイート」「インフルエンサーに関連するツイート」の多さで診断結果が変わってきますが、Comprehendを導入する以前は**「インフルエンサーを批判するツイート」**に対して上記のインフルエンサー関連ツイートだと評価してしまうケースが多発し、アンチインフルエンサー的なアカウントをインフルエンサーだと診断してしまう、**診断サービスとしてあるまじき事態**が発生していました。

そこでComprehendを導入し、**インフルエンサーに対して感情的にPositive(肯定的）なツイート**のみをインフルツイートとして計上することで、インフルエンサーの誤判定が圧倒的に減り、かなり実態と近い診断を下せるようになりました。

Comprehendの使用には従量制で課金されるので、一時期は感情分析の野良gemも試してみましたが、やはり分析の精度にかなり差異があり、結果的にはComprehendを選択しました。

# インフラ
### Heroku(hobbyプラン)
無料プランだとサブドメイン以外で独自ドメインが設定できなかったので月7$払ってhobbyプランにしています。

# 終わりに
リリースが半年近く前ということで完全に賞味期限切れの話題だと思いますが[RUNTEQ](https://runteq.jp/)のアドベントカレンダーに参加させてもらうということで書かせていただきました。

私が卒業したプログラミングスクールのRUNTEQ
https://runteq.jp/

インフルエンサーを撲滅してしまったので、今はコラビットという会社で不動産の闇を暴いています！
https://github.com/collabit-inc/job-offer-engineer