「Docker, Streamlit」Twitterフォロワー増加数分析アプリ【利用可能】

Python-Streamlitと自身のTwitter-Analyticsから得たデータをもとにTwitterのフォロワー増加数を分析するWebアプリを作成したので、そのアプリの使用方法をまとめています。

詳細コードは以下のGitHubから入手できますので、ご利用くださいませ。

1. Twitter分析内容

このWebアプリで分析できることは

  1. 月々のフォロワー数増加に関係のあるパラメータを表示する(相関関数、
  2. ①で得たパラメータに関連するパラメータを抽出
  3. ②で得たパラメータに対し、良い結果を得られたTweetを表示(保存可能)
  4. 【Option】Tweetの簡易な文字列分析

となります。分析結果から、フォロワー増加に関連のあるパラメータや、Tweetを見つけ出すサポートを実施できます。

2. Webアプリ起動方法

本章では、Webアプリの入手方法と起動方法を記載します。

2-1. Webアプリコードのclone

以下のGitHubからソースコードをDownloadします。

Clone URLはこちらにあります。各個人のPCの適当なフォルダー内にCloneください。

図1 GitHub Clone

なお、余談ですがGitHubは8月以降HTTPSでのCloneができなくなるため、他のアクセス方法に変更することをおすすめします。SSH接続への変更方法は以下にの記事に記載しています。

2-2. Twitterデータ入手

以下のTwitter-Analyticsにログインして、ご自身のデータを入手します。

必要なデータは以下の2つです。

  1. Tweetデータ
  2. 月々のフォロワー増加数

①に関しては以下の記事をご参考ください。

②の月々のフォロワー増加数は、以下のオレンジ点線にあります。分析したい月の増加数をメモしておいてください。

図2 月ごとのフォロワー増加数

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″と入力すると、以下のような画面が表示されます。

図3 Webアプリ起動

上記の画面が出ていれば、Webアプリを起動完了です。

3. Webアプリ概要

以下では、本Webアプリの操作方法を説明します。

3-1. データ表示

起動した段階で、twitterデータがうまく読み込まれている場合は、以下のようなコメントが表示されます。

図4 tweetデータ取得成功

しかし、何らかの理由(データがない、データ形式が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にしています。ご自身のデータに応じて変更ください。

図5 相関関数パラメータ(+1 follower)

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

図6 各月のfollower増加数

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

図7 各月の各パラメータ表示例

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

図8 関連するパラメータが存在しないときのエラー表示

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

図9 関連するパラメータが存在する場合の表示

図10は、”+1 follower”と”+1 follower”に対し相関関数の値が高いtweetパラメータを散布図表示し、その関係を単回帰分析により、数値化しています。

グラフ内の”+1 followers”は、各パラメータがその値を各月に得た場合、フォロワーが一人増えると予想しています。

グラフ内の”R2″は、その値の確からしさを示しています。値の範囲は、0から1を取り1に近づくほど、予測の精度が高いことを意味します。

また、”Detail Single Regression”のチェックを押すと単解析結果詳細を表示できます。

図10 tweet単回帰分析の結果

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

図11 重回帰分析結果

以上が”+1 follower”解析となります。本解析から”Good(いいね)”の増加が、”+1 follower”に効果的であると判断したと仮定して、以下の説明を行います。

3-3. 各パラメータ分析

3-2で”Good(いいね)”の増加が、”+1 follower”に効果的であると判断したと仮定して、以下の説明を行います。他のパラメータも同様に分析できます。

図12のように、解析するパラメータを選択します。

図12 解析パラメータ選択

図13に示す”quantile”で、データ前処理として上記で選択したパラメータの上位を除去する処理が可能です。これは、バズったtweetなどを除去したい時などにご利用ください。

パラメータ範囲は0.01から1.00で、初期値は0.99としています。データを除去したくないときは1.0を入力してください。

図13 quantile処理(前処理)

図14に示す”Level”は、選択したパラメータのトレンドグラフの表示レベルを決定できます。例えば、”month”を選択すると、月ごとの選択したパラメータの推移が表示されます。

初期値は”month”です。他にも”year”や”quarter”、”weekday”があるのでご利用ください。

図14 表示レベル設定

以上を実行して、”*** Analyze ***”ボタンを押すと、以下に示す解析結果が表示されます。

図15のようにTweetデータの生データを表示します。

図15 Tweet生データ

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

図16 トレンドグラフ

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

図17 ヒストグラム

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

図18 関連するパラメータが存在しない場合のエラー表示

最後に単回帰分析及び重回帰分析を行います。こちらは3-2と同様ですので説明を省略します。

3-4. Good Tweet解析

こちらでは、上記までの解析結果から、どのようなtweetがフォロワー増加に繋がるかを分析します。

図19に示す”percent”は3-3で選択したパラメータに対し相関関数の高いパラメータの上位何%のTweetを表示するかを設定できます。

図19 percent設定

例えば、”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)。

図20 Good_Tweet

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

図21 Excel出力確認ボタン

そうすると、”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”のカラムがあることが確認できます。

図22 文字列カラム追加

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

図23 hue表示する文字列選択
図24 選択文字列によるhue表示

hue表示すると新しい発見があるかもしれませんね。ぜひご利用ください。本Webアプリの概要説明は以上となります。

5. まとめ

DockerとStreamlitによるWebアプリを作成して見したが、驚くほど簡単でした。

これからも継続して作成していこうと思います。なお、本Webアプリでバグ等あれば、ご連絡ください。

ここまでお読みいただきましてありがとうございました。

以下の記事もご参考ください。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT US

Baran-gizagiza
経歴:浪人→理系大学院卒業→大手製造業に就職(技術職)→アメリカ赴任中 仕事は、研究・設計など上流工程の仕事に携わっています。企業勤務を継続しながら、新しいことにチャレンジしたいと思い、ブログを下記はじめました。 このブログでは、趣味である 筋トレ(健康、ダイエット) AIとデータ(高校数学、プログラミング) 読書(主に自己啓発系) を中心に、人生経験やおすすめ情報の発信しています。