barutanGNE's blog

kindleで読んだ本の感想や、プログラミングに関する記事など。

Twitter Streaming API、Node.js、MySQLでツイートの言語を調べてみたら、インドネシアすごかった

Twitter Streaming API からのツイートをMySQLに保存

SQLを勉強中なんだけど、なにか意味のあるデータを持っていないと、いろいろな問い合わせを勉強していてもおもしろくない。というわけで、Twitter Streaming APIから流れてくるツイートをMySQLに突っ込むプログラムをNode.jsを書いてみた。

ただ、肝心のツイート内容やユーザー名、ツイートの日付などなどを突っ込もうと思うと、テキストのエスケープや日付の形式の変換が結構めんどう。そこで、とりあえずユーザーid、言語、フォロー数、フォロワー数だけ記録。

Twitter Streaming API からツイートを取得

ただ標準出力に結果を流し続けるだけだったら、以下のようなプログラムになる。

Node.jsでMySQL

node-mysqlを使うと、以下のようにしてMySQLと接続できる。 使うデータベースは、あらかじめ作成して権限を設定しておく。

全体のソースコード

上2つを単純に組み合わせたシンプルなプログラムなので、とくに説明するところもなし。

実験結果

2014/2/4 火曜日の、17:00あたりから17:20くらいまで動かして、約5万ツイート取得。いろいろ分析するには、すごく偏ったデータ。ツイートの言語を調べるなら、時差の影響を考えても最低24時間は動かすべき。

しかしあんまりたくさんデータがあっても、複雑な問い合わせができなくなるので、今回はこれくらいで。

総数を数える

SQL

select count(*) from twitter_public;

結果

+----------+
| count(*) | 
+----------+
|    49361 |
+----------+

言語別に総数を数える

SQL

select lang, count(*) sum from twitter_public 
group by lang order by sum desc;

結果

+------+-------+
| lang | sum   |
+------+-------+
| ja   | 14694 |
| en   | 13088 |
| id   |  5204 |
| es   |  2959 |
| ar   |  2858 |
| tr   |  1677 |
| und  |  1423 |
| ru   |  1207 |
| ko   |  1114 |
| pt   |   999 |
| fr   |   723 |
| tl   |   652 |
| th   |   557 |
| it   |   334 |
| nl   |   325 |
| de   |   276 |
| vi   |   177 |
| pl   |   141 |
| et   |   133 |
| sl   |   129 |
| ht   |    92 |
| sv   |    89 |
| sk   |    74 |
| lv   |    72 |
| bg   |    58 |
| zh   |    46 |
| el   |    40 |
| da   |    37 |
| fa   |    36 |
| fi   |    32 |
| no   |    31 |
| hu   |    31 |
| he   |    26 |
| uk   |    25 |
| hi   |    22 |
| lt   |    18 |
| ur   |    11 |
| is   |    11 |
| bn   |     5 |
| ta   |     4 |
| ne   |     3 |
| my   |     1 |
| am   |     1 |
| si   |     1 |
| hy   |     1 |
+------+-------+

日本語(ja)ツイートが英語(en)より多くなってる。データをとった17時付近だと、ニューヨークあたりは午前3時、だからかな? 中国語(zh)は、金盾で少ないんだろう。

インドネシア????

(id)はインドネシア語、らしい

ネイティブスピーカーの数が多い言語の一覧 - Wikipedia

インドネシア語は、上を見ると37位なんだけどな……でも話し言葉と書き言葉でごにょごにょ……。とか思っていたら

なぜ君は、Facebookユーザー数世界トップの「インドネシア」を目指さないのか? ー VANGUARD定例イベント 3月30日開催【増田(@maskin)真樹】 : TechWave

そういえばこんな記事もあった

「投資有望国」首位はインドネシア、中国は4位転落 JBIC調査 - SankeiBiz(サンケイビズ)

人口世界第四位のインドネシア、今日まで場所もうろ覚えでごめんなさい。