投稿日:2022/08/21
世の中で話題の商品などを自分で調べられたら便利だなと思い,特定の検索ワードから,Twitterでトレンドの単語をランキングにするプログラムを組んでみた.
得られる結果のイメージはこんな感じ↓↓↓
(ここの例は「KALDI」で検索した1月分のツイートから取得)
言語はPython.
例えば「KALDI」の話題の商品を調べたかったら,「KALDI」と検索して見つかる投稿を集め,よく出てくる単語をランキング化してGoogle スプレッドシートへ出力する.
ネットで調べるだけでは中々見つからない,タイムリーかつリアルな情報が見つかるので便利です.
なお,この記事は備忘録的な思いで書くので,細かいコードなどは割愛.
TwitterでDMくれれば可能な範囲で答えるので,興味ある人はぜひ!
ちなみに,今回の技術のベースは"デイトラ"というオンラインスクールで学べます.
自分で詳しく勉強してみたい!,という方にはオススメです!
プログラム概要
プログラム詳細
①検索ワードを読み込む
あらかじめ用意したtxtファイルに,検索したい単語を入力しておく.
例えば,「KALDI」について調べたい場合は言語や文字の大小を考慮して「KALDI」「カルディ」「kaldi」などを入れる.
②検索ワードの数だけループ
検索ワードの数だけ③~⑦の処理を繰り返す.
③各ワードで検索したツイート情報を取得
「tweepy」というライブラリを使い,各ワードで検索した時に得られるツイート情報を取得する.
取得できる情報は様々.
今回はユーザ名/ユーザID/リツイート数/いいね数/投稿日時/投稿本文を取得.
また,取得する期間やツイート数も決められる.
基本的に毎日実行して情報を集める形で運用したかったので,期間は実行時の24時間前まで,ツイート数は一旦MAXで100とした.
④ツイート情報をスプレッドシートヘ書き込む
「oauth2client」「gspread」というライブラリを使えば,GoogleスプレッドシートをPythonで操作できる.
そこで,③で取得したユーザ名/ユーザID/リツイート数/いいね数/投稿日時/投稿本文をスプレッドシートへ書き込む.
botのツイートが紛れないよう,リツイート数/いいね数が一定以上のツイートのみ書き込み.
なお,すでにそのツイートがスプレッドシート上に存在する場合は書き込まれないように処理.
(例えば,「KALDI」「カルディ」のいずれもが含まれるツイートがある場合,重複したツイートを取得してしまうので,その対策)
⑤ツイート文章を単語で分解
「janome」という形態要素解析用のライブラリを使い,③で得られたツイート本文を単語レベルに分解する.
このライブラリを使うと,以下のように文章を分解してくれる.
(処理前)このパンに塗るカレーペーストが美味しい.
→(処理後)この/パン/に/塗る/カレー/ペースト/が/美味しい/.
⑥単語の出現回数をスプレッドシートヘ書き込む
④と同様のライブラリを使って,⑤の結果を元に,単語の出現回数をスプレッドシートヘ書き込み,ランキング化する.
この際,「この」とか「が」とか,トレンドを分析するのに必要が無い品詞なども取得してしまう.
最終的にある程度,手作業で除外するのは避けられないが,少しでも手間を減らすため,除外したい単語を記載したtxtファイルを用意しておく.
これらと一致する単語の場合は,スプレッドシートへ書き込まれないように処理.
得られる結果
冒頭でも紹介してますが,⑥で最終的に以下のような結果が得られます.
(ここの例は「KALDI」で検索した2022年4月の1月分のツイートから取得)
「台湾」とか「カレー」,「豆腐」のツイートが多いことが分かりますね.
④で,ランキングの元になるツイート本文も保存しているので,気になったトレンドワードから,具体的にどんな商品が呟かれているのか確認することもできます.
最後に
以上,「特定の検索ワードから,Twitterでトレンドの単語をランキングにするプログラム」の紹介(備忘録)でした!
このプログラムを使えば,自分が好きなお店やブランドで話題の商品を調べられるので中々便利です.
例えば,下のような記事を書く時に重宝してます↓↓↓
【2022年4月_KALDI編】約1400件のツイートからわかる,つぶやきが多かった人気商品
世界の珍しい食品,かわいいアイテムを手に入れられるカルディコーヒーファーム(カルディ).
カルディ関連のツイート総数1405件を元に,投稿が多かったキーワード7つから,話題の商品を調査しました.
今回は具体的なコードまで記事にしていませんが,気が向いたらまた書こうかな〜と思ったり.
もしも興味がある方がいらっしゃれば,TwitterでDMくれれば可能な範囲で答えます!
美味しいものをいただいて本日も幸せ.
それでは皆さん本日も,乾杯!