どうも、たけとけたです。
Pythonで遊んでいます。今回は、前回のエントリと同じく「からあげ先生のとにかく楽しいAI自作教室」の中にあった、「Twitterの過去データを基に最適なプロフィール生成」をやってみました!
Twitterの過去アーカイブデータをダウンロード
本内容は、書籍の第3章を参考にやっています。まずはTwitterの過去アーカイブデータをダウンロードします。これはTwitterアカウントのほうでやりました。
アーカイブ申請から2、3日後に承認されて、全データをダウンロードできるようになりました。
自分のPCにダウンロードしたのちに、Google ColabにTweet.jsファイルをアップロードすれば準備完了です。
ちょっとデータ見返して見ましたが、大学生時代のツイートとか久しぶりに見て発狂しそうになりましたね。一例だけ上げてみると、
さあて、白紙だ。なりたい自分と今の自分、じっと見つめる。どうせ、都合のいい神様にはなれないんだから、芯がないとね。
ポエマー全開じゃないですか、消え失せたい。。。
他のやつもなかなかやばかったので真実から目を背けて、分析に移ることにします。
Twitterの過去アーカイブをWord Cloudで可視化
はてなブログでは数年前にやったことのあるWord Cloudでの見える化です。一時期流行ったけど最近あんまり見ないですねそういえば。
「03_karaage_ai_book_tweet_to_text.ipynb」をダウンロードしてやってます。詰まりそうなところはデータの読み込みのところですかね。この辺りは前回Google colabとの連携の実装をいろいろやったので楽しくできました。
これだと、「あと」とか「なに」とかつなぎの単語が多いので、分析から外す必要があります。あとは、このブログ名が「たけとけたの片付かない部屋」なので、ブログを上げた時のタイトルを読み込んで「部屋」が上に上がってきてしまってますね。この辺りをJanomeの前処理をいじっていきます。具体的に触っているのは下記の部分です。
def normalize_text(text):text = re.sub(r'\[.*?\]', "", text)text = re.sub('たけとけた', "", text)text = re.sub('片付かない部屋', "", text)text = re.sub('ところ', "", text)text = re.sub('とこ', "", text)text = re.sub('ほう', "", text)text = re.sub('うち', "", text)text = re.sub('よう', "", text)text = re.sub('あと', "", text)text = re.sub('たち', "", text)(略)text = re.sub('子ども', "子供", text)text = re.sub('ブログ更新', "ブログ", text)text = re.sub('更新', "", text)text = re.sub('あれ', "", text)text = re.sub('いや', "", text)text = re.sub('ここ', "", text)text = re.sub('おれ', "", text)text = re.sub('はず', "", text)text = text.strip()return text
この処理をした後、WordCloudした結果がこちら。
だいぶまとまりましたね!「時間」「ブログ」「仕事」「研究」「日本」がよく出ているようです。仕事に関する単語や、趣味のアニメや芝居なども出てきていますね。
Twitterのプロフィールを編集する
今のTwitterのプロフィールはこんな感じです。
あれですね、化学メーカーで製造技術のところはほとんど出てきていないですね笑
仕事のことは書いてても化学メーカーのことは書いていないという・・・
ということで修正します。
最後、願望になってしまった。時間を使うワードがほかに「時間の魔術師」しか思いつかなかったのでやむなし。
「あんまり分析結果使ってないやん」と思ってしまったんですが、学生時代と社会人初期のTweetが多かったようで、今と乖離がありました。研究とか芝居はあんまり最近はしてないです。期間を切って分析した方がよかったかな。この辺は課題ですねー。
最後に
今回Twitterの分析をしてみました!やったことがある内容が多くて、Google colab使ってですがサクサクできてよかったです!
今後ですが、実は裏でTwitter APIの申請をしてGoogle Colabで直接データ抜き出しできるようにしていたので、定期的にツイートを抜き出して分析->Word Cloudで可視化->自動ツイートみたいなこともしてみたいですね。そこまでできなくても、自動化を次はやりたい。
最初は自分のPC環境にDockerを導入してやってみようかと思ってたんですが、環境整備のところでつまづいてしまいそうなのでクラウドサービス使うとか別の方法も考えてるところです。
自分の働く会社でも機械学習モデルを使った予測を化学プラントに実装するソフトウェアの導入が進んでいて、興味本位で触っていたこの辺りのことも役に立ちそうです。これからも楽しんでやっていきます!
ではでは!