プロ野球関連ツイートを形態素解析するサーバーレスアーキテクチャを作ってみた話
いよいよ2021のプロ野球シーズンが開幕しました!毎年この時期になると、ほぼ毎日のように試合観戦をしている位プロ野球が大好きな私ですが、この度、プロ野球関連ツイートからワードクラウドを生成するTwitter Botを作成しましたので簡単にnoteにまとめてみます。
作ろうと思った動機
2つあります。
1つ目は『僅かながらでもプロ野球を盛り上げたい』
2つ目は『プロ野球ファンがどのようなツイート(&リツイート)をしているのか単純に気になった』
1つ目の理由ですが、現在Twitter上でプロ野球情報を定期的に発信している方々のTwitterに触発された面も大きいです。例えば『ただの野球好き』さんなどは、毎日マスコットでその日の順位を発信しているのですが、その絶妙な表現力や物腰の柔らかさで多くのフォロワーも獲得しています。
また『ただの野球好き』さんとは毛色が違うものの、データ分析の観点から個人で情報発信している方々も多く、おそらく各球団に数人はこういうコアなファンが存在していると思います。個人でこれだけの熱量を持って情報発信をしているのは凄いと感じると同時に、自分も定期的に野球に関する情報を発信していこうと感じた次第です。ちょうど今日、ニュースでパリーグTVが『過去最高益&6期連続黒字化達成』と報道されていましたが、昨今インターネットを通じた情報発信がプロ野球人気に一役買っているのは言うまでもありません。Twitterに目を通してみても球団公式アカウントはもとより、贔屓のチームが勝った負けただのTwitterで多くのファンが盛り上がる様は、リアルタイムで追っていると結構驚くものがあります。そこで自分も微力ながらその盛り上がりに貢献できるように今回手始めとしてBotを作成することにいたしました。何より手軽にできて良いです。
2つ目の理由『プロ野球ファンがどのようなツイート(&リツイート)をしているのか単純に気になった』ですが、これは完全に興味本位です。普段自分は贔屓のライオンズの情報はそれなりにみているのでが、12球団なだらかにしてみた場合に、どのような選手の情報が多く発信されているのか、またどのようなイベントが注目されているのか、可視化することで何か見えてくるのかも知れないと感じて、今回Botを作成してみることにしました。Twitter APIの使用上、リツイートを除いたデータ収集も可能ですが、敢えてリツートも集めることで『より多くの人の目に止まったワード』と言う視点でのワードクラウドを生成してみたつもりです。(2021/04/14追記:数日運用してみた結果、リツイートを含めない方がよりファンの生の声を反映できそうな気がしてきたので、結局リツイートは検索対象から除外しました。)
システム構成
上記図以外の技術キーワード:Python3, Docker, AWS CLI
サーバーレスの良いところはなんと言ってもコスパ!Twitter APIは無料枠の範囲内、もちろんLambdaも実質無料です。形態素解析やWordCloud生成にはPythonの外部モジュールが必要になってくるのですが、そちらに関しては、Lambda関数のレイヤーとして登録しています。LambdaはEC2のAmazonLinuxOSと同じ環境で動いていますので、レイヤーを生成する際もそちらと同じ環境を再現する必要がありますが、今回はDockerコンテナを利用しています。また、ローカル環境とLambdaの連携にAWS CLIを利用しています。尚、PythonのWordcloudをそのまま使おうとすると、日本語が文字化けしてしまうため、S3にフォントファイルをおき、WordCloud作成時にそちらを使用しています。
今後の運用
取り敢えず、まだオープンしたばかりで何も見えてこないのですが、目下気になることは、『どうすればフォロワーが増えるのか??』ということです(笑)今まで個人でSNSをしていて、フォロワー数を気にしたことなんてなかったのですが、こうやって別アカウントで情報発信していくとなるとやはり気になります(笑)ソーシャルメディアを使ったマーケティングなども興味はあるのですが、どのようなコンテンツに人は興味を示すのか?どうやってSNS上で広まっていくのか、今後も少しずつバージョンアップを重ねながら実験観察していきたいと思います。