TwitterのデータからRT数が増える投稿をPythonを利用して分析してみた【ソースコード付き】
背景
・知人がアルファツイッタラーを目指し始めて、「フォロワーが増えない!ふぁぼは来るけどRT来ない」という相談をされました。
・そういえばフォロワー獲得のためにはRTは必要なKPIだけど、ファボが多いのにRTは少ないツイートってあるよねぇと心当たりがあったので、そのツイートの特徴が分かったら面白いと思い、調べてみようと思いました。
・で調べたらかなり面白かったので、その結果が需要あるか調べたところ需要があったのでかきました。
目次
- 本研究の目的
- いいねされるけどRTされないツイートの特徴を特定する
- いいねもRTもされるツイートの特徴を特定する
- 前処理 (スキップ可)
- 分析編 (スキップ可)
- いいねはくるけどRTされないツイートの特徴
- バズるツイートの8類型をいいね数・RT数・RT率で解説
- 【プレスリリース型】
- 【拡散依頼型】
- 【クラファン型】
- 【パラサイト型】
- 【Tips型】
- 【アハ体験型】
- 【主義主張型】
- 応用編
- バズるツイート型を組み合わせよう
本研究の目的
・いいね、RTされるコンテンツの特徴を洗い出すことによって、より質の高いコンテンツを生み出せるようになりたいです。
・人間がいいね、リツイートする深層心理を統計的に洗い出したいですね。
・いいねもリツイートもされるコンテンツの特徴を再現可能なレベルに落とし込みたいです。そうすれば狙ってRTが多いツイートできるし!
・あと、ツイッターのデータって、お宝のようなデータで意外によい施策が出てきたりするので、みんなデータ分析してみよう!という意味も兼ねています。
自身の仮説
以下、「いいね」と「RT」をするのか自身の仮説です。
なぜいいねするか?
・単純に愛。良いと思ったらいいねする。
・もしくはブックマークしておきたいという場合もある。
なぜRTするか?
・誰も知らないと思える情報をシェアすることで自己顕示欲を満たしたい
・他の人にとって有益な情報を提供し、他者貢献したい
・自分が言いたいと思える言葉を代弁してもらいたい。
いいねとRTの違いは何か?
・自分の中でとどめておきたいのが「いいね」
・他者と共有したいのがRT
いいねされるけどRTされないツイートがあるはず
・いいねとRTをマトリックスに落とし込むとこうなると思います。
・いいね数は多いけど、RTが少ない独占欲型だとフォロワーは増えにくいです。ロイヤリティは上がると思うんですけどね。
・理想的には、いいね数が多く、かつ拡散されるツイートがよいと思います。そして実際このツイートこそ、一番フォロワー数が増えます。
ブラックハットSROとホワイトハットSRO
「とりあえずひらすらフォローして、後でリムーブすればいいんじゃないですか?」という突っ込みがきそうなのでそこの説明を最初にしておきます。それはブラックハットSROだと思います。僕はホワイトハックSROをやりたいです。
これはSEOでいうブラックハットSEOとホワイトハックSEOを、ソーシャルメディアに拡張した考え方です。信頼度最適化(Social Reliability Optimization)に拡張した考え方。自分の造語なので公的なものではないです。ホワイトハックSROを利用して、フォロワー数を増やすのがクリーンだと思うので、後者の方法で考えます。
・ブラックハットSRO:ひらすらフォローしてフォロバがなかった人をリムーブする方法。信頼度は落ちるので、フォロワーの質が下がる
・ホワイトハットSRO:ユーザーに価値のあるコンテンツを提供することによって、フォロワー数を増やす方法。信頼度が高いフォロワーが集まる。
先行研究
・しのださんのツイートから、記事を見てみる
・ターゲットを絞る
①ターゲットを絞る: 発信すべき情報を「自分が発信したい情報」と「差別化できる情報」が重なる部分に絞る...「自分のフォロワーが欲しがる情報」の軸を加えて考える必要があります。...このように、ターゲット像やインサイトが更に明確に見えてきたので、ターゲットを見直し、さらにニーズがある情報に特化させていくことにしました。
フォロワーの欲しい情報を定義して、それに対して適切な情報を発信するのがよいそうです。
以下、えとみほさんのnoteから。フォロワーの増やし方
・長文ほどエンゲージメント率が高い
1ツイートあたりの文字数を140文字ギリギリいっぱいまでに増やしたのだ。「は?それだけ?」という感じかもしれないが、本当にこれだけで劇的にフォロワーが増えたのである。
・拙くてもいいから「自分の言葉で」発信する
「なんのためにフォロワーを増やすのか」という目的に立ち返ると、すべきことはやみくもに数を増やすことではないということがわかるだろう。そのときに大事なのは、拙くてもいいから「自分の言葉で」発信すること。これに尽きる。
らしいです。
本研究の問い
・いいね、RTされるコンテンツとは何か?
RQ
・いいねされやすいけどRTされないツイートの特徴は何か
・いいねもRTもされやすいコンテンツとは何か
手法
・ツイッターのAPIをたたいて、過去の自分のツイートのデータを取得する
・Qiitaの記事を参考に、データを取得する
前処理
・ツイートID・ツイート日・ツイート・Fav数・RT数を取得しました。
・Pythonでサクっとデータを取得しました。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import tweepy
import csv
import time
from config import CONFIG
# 各種ツイッターのキーをセット
CONSUMER_KEY = CONFIG["CONSUMER_KEY"]
CONSUMER_SECRET = CONFIG["CONSUMER_SECRET"]
ACCESS_TOKEN = CONFIG["ACCESS_TOKEN"]
ACCESS_SECRET = CONFIG["ACCESS_SECRET"]
#FLASKのキーの設定
SECRET_KEY = CONFIG["SECRET_KEY"]
#Tweepy
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
#APIインスタンスを作成
api = tweepy.API(auth)
#ツイート取得
tweet_data = []
for tweet in tweepy.Cursor(api.user_timeline,screen_name = "never_be_a_pm",exclude_replies = True).items():
try:
tweet_data.append([tweet.id,tweet.created_at,tweet.text.replace('\n',''),tweet.favorite_count,tweet.retweet_count])
print(tweet_data)
except Exception as e:
time.sleep(15)
#csv出力
with open('today.csv', 'w',newline='',encoding='utf-8') as f:
writer = csv.writer(f, lineterminator='\n')
writer.writerow(["id","created_at","text","fav","RT"])
writer.writerows(tweet_data)
pass
・認証情報はfrom config import CONFIGで呼び出して、別ファイルに保存しています。以下config.py (ソースコードは有料版で見れます)
#ツイッターの設定
CONFIG = {
"CONSUMER_KEY":"",
"CONSUMER_SECRET":"",
"ACCESS_TOKEN":"",
"ACCESS_SECRET":"",
"SECRET_KEY":""
}
・ソースコードはこちらを参照
・こうして取れたデータを、Jupyter Notebookで分析しました。
サポートでいただいたお金はFanzaの動画を購入するために利用されます。