Twitter API v2の使い方5[フォロワードクラウド]

Twitter API v2の使い方5[フォロワードクラウド]

フォロワードクラウド

ワードクラウドというものがある。
これを使うと文章中の出現頻度が高い単語を大きく表示して文章の内容を画像1枚で図示することができる。

前回の記事でTwitterの任意のアカウントについて、フォロワーのユーザー情報を取得することができた。

これを使ってフォロワーの自己紹介文からワードクラウドを作る。
これがフォロワードクラウド。
アカウントをフォローしている層が図示できる。

1. 自分のアカウントで実験

まずは自分のTwitterアカウントで実験。



詳しいやり方は後述するがwordcloudのpythonライブラリを使うと簡単にできる。

できた。



URLの名残のようなものが目立つ。
頻出単語を抽出しているだけなのでそうなる。

ここで設定を2箇所変える。

    1. stopwords

stopwordsを設定すると特定の単語が選ばれないようにできる。
ここにhttpsを設定する。

    1. min_word_length

min_word_lengthを設定すると選ばれる単語の最小の長さを決められる。
これを3にする。

その結果がこれ。



とらのあなの18禁コーナーみたいになった。

Twitterで一番多く描いてる漫画はおそらくキンプリなのでまあ妥当。
次いでプリリズ、プリパラ、プリチャンも漫画描いてるので妥当。

ポケモン、アイカツ、プリキュア、あんスタ、Freeなどは上記のプリティーシリーズとファン層が被っているのだと考えられる。

2. 他のアカウントで実験

Twitter API v2を使用すると自分のアカウント以外のフォロワー情報も取得できる。
これにより以下3つのアカウントのフォロワードクラウドを作成した。



「【公式】遊戯王OCG」



「アニメ「キラッとプリ☆チャン」公式アカウント」



「少年ジャンプ編集部」


「キラッとプリ☆チャン」公式アカウントはプリティーリズムの頃から名前を変えて運用しているので実質プリティーシリーズ公式アカウント。
自分のアカウントと多少似ているが「キンプリ」の割合が大きく異なることが分かる。

遊戯王OCGのフォロワーは「APEX」とか「モンハン」とかゲームの名前が目立つのがそれっぽい。
「大学生」に比べて「社会人」がかなり大きいことから年齢層が伝わる。

少年ジャンプ編集部からは「呪術廻戦」の人気が分かる。
「ヒロアカ」と「五条悟」が同じくらいの大きさ。
あと海外のフォロワーが多いのか英単語が目立つ。

3. 実装方法

3.1. インストール

参考
https://qiita.com/str32/items/4539e417a9cb333abd52

    1. MeCab

https://github.com/ikegami-yukino/mecab/releases
からインストーラーをダウンロードしてインストールする。

    1. wordcloud

任意のPython環境にwordcloudをインストールする。

1
pip install wordcloud

3.2. CSVファイル取得

前回の記事の通りにすると任意のアカウントのフォロワー情報がCSVファイルに保存できる。
それを使う。

3.3. コード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import MeCab
import wordcloud
from wordcloud import WordCloud

import csv

#### 設定
csv_filepath = "4790312834_followers.csv" # 読み込むCSVファイル
font_path = "C:\Windows\Fonts\游ゴシック\YuGothB.ttc" # 表示するフォント、設定しないと日本語が文字化けする

#### CSVファイルからテキスト取得
text_list = []
with open(csv_filepath, "r", encoding="utf-16", errors="ignore", newline="") as f:
for row in csv.DictReader(f, dialect="excel-tab"):
text_list.append(row["description"]) #取得したい列(description)
content = "\n".join(text_list[1:]) # 1行目は列名なので飛ばす

#### テキスト分割(分かち書き)
tagger = MeCab.Tagger("-Owakati")
parse = tagger.parse(content)

wordcloud
stopwords=["https"]
background_color="black"
colormap = "spring"
min_word_length = 3
wordcloud = WordCloud(font_path=font_path, width=800, height=400, stopwords=stopwords, min_word_length=min_word_length,background_color=background_color, colormap=colormap)
wordcloud.generate(content)
wordcloud.to_file("wordcloud.png")

4. Twitter API リンク

タグ ,

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×