Python-Streamlitと自身のTwitter-Analyticsから得たデータをもとにTwitterのフォロワー増加数を分析するWebアプリを作成したので、そのアプリの使用方法をまとめています。
詳細コードは以下のGitHubから入手できますので、ご利用くださいませ。
▼ Contents
1. Twitter分析内容
このWebアプリで分析できることは
- 月々のフォロワー数増加に関係のあるパラメータを表示する(相関関数、
- ①で得たパラメータに関連するパラメータを抽出
- ②で得たパラメータに対し、良い結果を得られたTweetを表示(保存可能)
- 【Option】Tweetの簡易な文字列分析
となります。分析結果から、フォロワー増加に関連のあるパラメータや、Tweetを見つけ出すサポートを実施できます。
2. Webアプリ起動方法
本章では、Webアプリの入手方法と起動方法を記載します。
2-1. Webアプリコードのclone
以下のGitHubからソースコードをDownloadします。
Clone URLはこちらにあります。各個人のPCの適当なフォルダー内にCloneください。

なお、余談ですがGitHubは8月以降HTTPSでのCloneができなくなるため、他のアクセス方法に変更することをおすすめします。SSH接続への変更方法は以下にの記事に記載しています。
2-2. Twitterデータ入手
以下のTwitter-Analyticsにログインして、ご自身のデータを入手します。
必要なデータは以下の2つです。
- Tweetデータ
- 月々のフォロワー増加数
①に関しては以下の記事をご参考ください。
②の月々のフォロワー増加数は、以下のオレンジ点線にあります。分析したい月の増加数をメモしておいてください。

2-3. データ格納
2-2で入手したデータをWebアプリに反映します。①Tweetデータは、”data”フォルダーに格納します。
twitter-analytics
├─data <=ここに格納する
├─output
└─src
②月々のフォロワー増加数は、srcフォルダーにある”manage.py”の内部に、”follower”という辞書型のデータ入力項目を用意しているので、そちらに2-2で調べた各月のフォロワー増加数を入力します。
""" manage.py """
"""
中略
月ごとのフォロワー数を入力してください。新たに追加することもできます。
以下は2020年6月から2021年3月までの記入例です.
"""
follower = {
'2020-06':15,
'2020-07':45,
'2020-08':100,
'2020-09':70,
'2020-10':50,
'2020-11':60,
'2020-12':20,
'2021-01':40,
'2021-02':20,
'2021-03':35,
}
""" 省略 """
これで基本的なデータセットは完了です。
2-4. Webアプリを起動する
Webアプリを起動するために、ターミナルで”twitter-analytics”フォルダーに移動し、以下のコマンドを入力します。
$ docker-compose up -d --build
そのあとに、Webブラウザ(Google Cromeなど)のアドレスに、”localhost:8501″と入力すると、以下のような画面が表示されます。

上記の画面が出ていれば、Webアプリを起動完了です。
3. Webアプリ概要
以下では、本Webアプリの操作方法を説明します。
3-1. データ表示
起動した段階で、twitterデータがうまく読み込まれている場合は、以下のようなコメントが表示されます。

しかし、何らかの理由(データがない、データ形式がcsvファイルでない等)があると、以下のようなエラーを表示するため、ご自身のtweetデータを確認ください。

3-2. +1 followers分析
こちらの分析は、Webアプリ起動時に、”+1 followers”に関係があるTweetパラメータとして、”+1 followers”との相関関数が0.7以上のパラメータを抽出して解析します。
なお、”インプレッション”数は、数字が大きくなりやすいので表示値を1/1000倍しています。
それではそれぞれの項目を説明します。
図5は、”+1 followers”に関係があるTweetパラメータを抽出する際のパラメータです。範囲は0.1 ~ 1.0まで選択できます。初期値は0.7にしています。ご自身のデータに応じて変更ください。

図6は、各月のfollower増加数を棒グラフで表示しています。マウスでグラフの拡大縮小もできます。

また、その下の”Detail Month data”にチェックを入れると、詳細データを表示できます。

次に単回帰分析を行いますが、一つ注意点があります。高い相関関数を設定すると、関連するパラメータが存在しないことがあります。その場合、図8のようにエラーが表示されますので、その際は相関関数の値を下げてみてください。

“+1 followers”に関連するパラメータが存在する場合には、図9のようなコメントが表示されます。

図10は、”+1 follower”と”+1 follower”に対し相関関数の値が高いtweetパラメータを散布図表示し、その関係を単回帰分析により、数値化しています。
グラフ内の”+1 followers”は、各パラメータがその値を各月に得た場合、フォロワーが一人増えると予想しています。
グラフ内の”R2″は、その値の確からしさを示しています。値の範囲は、0から1を取り1に近づくほど、予測の精度が高いことを意味します。
また、”Detail Single Regression”のチェックを押すと単解析結果詳細を表示できます。

図11は、正規化したデータと非正規化データを用いた重回帰分析結果を示しています。p値も表示しているので、ご参考ください。

以上が”+1 follower”解析となります。本解析から”Good(いいね)”の増加が、”+1 follower”に効果的であると判断したと仮定して、以下の説明を行います。
3-3. 各パラメータ分析
3-2で”Good(いいね)”の増加が、”+1 follower”に効果的であると判断したと仮定して、以下の説明を行います。他のパラメータも同様に分析できます。
図12のように、解析するパラメータを選択します。

図13に示す”quantile”で、データ前処理として上記で選択したパラメータの上位を除去する処理が可能です。これは、バズったtweetなどを除去したい時などにご利用ください。
パラメータ範囲は0.01から1.00で、初期値は0.99としています。データを除去したくないときは1.0を入力してください。

図14に示す”Level”は、選択したパラメータのトレンドグラフの表示レベルを決定できます。例えば、”month”を選択すると、月ごとの選択したパラメータの推移が表示されます。
初期値は”month”です。他にも”year”や”quarter”、”weekday”があるのでご利用ください。

以上を実行して、”*** Analyze ***”ボタンを押すと、以下に示す解析結果が表示されます。
図15のようにTweetデータの生データを表示します。

選択したパラメータのトレンドグラフが表示されます。(levelは”month”設定)

選択したパラメータと関連するパラメータのヒストグラムを表示します。

なお、ここでも相関関数の指定値が高すぎると関連するパラメータが存在せず、図18のようなエラーが表示されますので、指定値を下げて再度実行してみてください。

最後に単回帰分析及び重回帰分析を行います。こちらは3-2と同様ですので説明を省略します。
3-4. Good Tweet解析
こちらでは、上記までの解析結果から、どのようなtweetがフォロワー増加に繋がるかを分析します。
図19に示す”percent”は3-3で選択したパラメータに対し相関関数の高いパラメータの上位何%のTweetを表示するかを設定できます。

例えば、”Good”に対する相関関数が高いパラメータを”Engagement”、”User_Click”および”Hash_Click”し、percentを20%とします。
この条件では、それぞれの上位20%のアンドを取り、その条件に合致するTweetを表示します。つまり選択されるTweetは、
Good_Tweet = (“Engagement”で上位20%) & (“User_Click”で上位20%) & (“Hash_Click”で上位20%)
となります。この表示されたTweetを”Good_Tweet”としています。このGood_TweetはWebアプリの最後に記載されます(図20)。

また、このGood_Tweetのデータをexcel形式で保存したい場合は、図21に示すチェックボックスを”Yes”にして、解析ボタン”*** Analyze ***”を実行してください。

そうすると、”output”フォルダーに”Good_Tweet.xlsx”のデータが保存されているはずです。
なお、出力ファイル名を変更したい場合は、“manage.py”の”Outputfile”の名前を変更してください。
""" manage.py """
"""
中略
出力ファイルディレクトリとファイル名を指定してください
"""
Outputfile = "../output/Good_Tweet.xlsx" <=ここを変更する
""" 省略 """
4. 【Option】文字列分析
こちらはオプションですが、Tweet内に含まれる文字列をパラメータの一つにすることが可能です。
変更方法は以下となります。ここでは、”Python”という文字列を例に説明します。
至ってシンプルです。”manage.py”の”string_list”に分析したい文字列をリスト形式で指定してください。
""" manage.py """
"""
中略
Option: 分析したい文字列をリストで渡してください
"""
string_list = ['Python'] <=ここを変更する
""" 省略 """
“string_list”に追加することで、分析対象に”Python”の文字列が含まれる”Tweet”数も分析対象とすることができます。もちろん、複数の文字列検索も可能です。
例えば、図22は”+1 followers”のMonthly dataですが、”Detail Month data”を確認すると、新たに”Python”のカラムがあることが確認できます。

また、文字列検索を追加した場合、”2-4. Single Regression Analytics”で図23のように選択した文字列による分類表示も可能です(図24)。


hue表示すると新しい発見があるかもしれませんね。ぜひご利用ください。本Webアプリの概要説明は以上となります。
5. まとめ
DockerとStreamlitによるWebアプリを作成して見したが、驚くほど簡単でした。
これからも継続して作成していこうと思います。なお、本Webアプリでバグ等あれば、ご連絡ください。
ここまでお読みいただきましてありがとうございました。
以下の記事もご参考ください。
コメントを残す