社内se × プログラマ × ビッグデータ

プログラミングなどITに興味があります。

タイガースとジャイアンツが含まれるツイート件数をカウントしてみた

データ取得期間

2018/11/11 - 11/13 内の数時間

データ取得方法
  • Twitter API(検索) を叩くバッチを1分間隔で実行。
  • 検索条件のキーワードとして、”タイガース” もしくは、”ジャイアンツ”が含まれること。
  • リツイートは取得対象外
  • たまに単に球団名が列挙されているツイートが存在するが、特に除外はしていない(取得対象内)
集計方法

Apache spark の spark-shell を使う。
とは言っても、特別な分析ライブラリを使用するわけでもなく、単にRDDとして取り込んで極めて基本的な関数を呼び出すだけ。

集計ログ

取得した総ツイート件数

scala> val rawData = sc.textFile("タイガース_ジャイアンツ.txt")
rawData: org.apache.spark.rdd.RDD[String] = タイガース_ジャイアンツ.txt MapPartitionsRDD[19] at textFile at <console>:27

scala> rawData.count
res24: Long = 1650

ツイートにタイガースが含まれる件数

scala> def isTigers(line: String): Boolean = line.contains("タイガース")
isTigers: (line: String)Boolean

scala> rawData.filter(isTigers).count
res25: Long = 551

ツイートにジャイアンツが含まれる件数

scala> def isGiants(line: String): Boolean = line.contains("ジャイアンツ")
isGiants: (line: String)Boolean

scala> rawData.filter(isGiants).count
res26: Long = 1196

1つのツイートにタイガースとジャイアンツの両方が含まれているものもある。
しかし、ジャイアンツが含まれているツイート数がタイガースよりも、およそ2倍という結果に。

ツイートに矢野監督が含まれる件数

scala> def isYano(line: String) = line.contains("矢野監督")
isYano: (line: String)Boolean

scala> rawData.filter(isYano).count
res30: Long = 5

ツイートに原監督が含まれる件数

scala> def isHara(line: String) = line.contains("原監督")
isHara: (line: String)Boolean

scala> rawData.filter(isHara).count
res31: Long = 11

もちろん、これだけで世間の注目度を示しているわけではないし、集計期間や集計方法にも問題がたくさんあると思いますが、それにしても思っていた以上に数値に差が出る結果となりました。
もう少しサンプルデータを増やした上で、別の角度からも集計をしてみたい。