2010年9月19日日曜日

Twitter ユーザーの言語設定の統計

ボットを作るついでに、Twitter ユーザーの言語設定の統計をとってみようと思い、プログラムを書きました。

10分ごとに Twitter の公開タイムラインから最新の20件のツイートを取得し、それぞれのツイートを投稿したユーザーの言語設定(*1)情報を抽出して、言語別にカウントしていっています。

これまでの累計を可視化したのがこちら。
このグラフのデータは10分ごとにリアルタイムで更新されています。
2010年09月19日に運用開始しました。


2文字のアルファベットはISOの言語コードを示しており、

en : 英語
ja : 日本語
es : スペイン語
de : ドイツ語
fr : フランス語
it : イタリア語

などとなっています。


公開タイムライン上の ツイート を取得してカウントしているので、
ここでのカウント数の割合=言語別ユーザー数の割合
とは ならない ことに注意が必要です。
まあ結果として似たようなものになるのかもしれませんが。

また、ユーザーの居住国を特定するものでもありません。
英語はアメリカ、イギリス、カナダ、オーストラリアなどで、スペイン語はスペインや中南米などで広く使われていますし、日本人でも英語に設定しているユーザーもいるかも知れません。

あくまで、どの言語に設定しているユーザーがより多くツイートしているか、というグラフになります。


このデータを収集するプログラムは、例によって Google App Engine 上で動いています。
グラフの描画には、Google Chart API を使っています。

----
(*1) Twitter の「設定」 > 「ユーザー情報」 > 「言語選択」 で設定する言語です。

2010年9月14日火曜日

@RTpubTL30en について

@RTpubTL30en は、30分に一回、英語の公開ツイートを リツイートするボットです。

@RTpubTL30jp の英語版です。

日本人である我々が享受できるメリットとしては、


 ・英語の勉強をしている人は、英語に触れられる機会が増える。
 ・現代の生きた英語を知ることができる。

ぐらいでしょうか。


言語判別の精度が向上しました。(2010.10.03)
ユーザーの言語設定でなく、ちゃんとツイートの内容から言語を判別するようにしました。
文章の言語解析には Google Language API を使っています。
Google Language API では言語判別の結果とともに、結果に対する "confidence" (自信、信頼度)が返ってくるので、その値がある閾値以上のものをリツイートの対象として採用するようにしました。
これも @RTpubTL30jp と同様、単にユーザーの言語設定をツイートの言語と見なしているに過ぎないのですが、言語設定は英語のままツイートは違う言語でしているユーザーもけっこういるようで、したがって言語判別の精度はあまり高くありません。
ザッと見た感じでは、6~7割が英語、それ以外は別の言語が引っ掛かっています。



2010年9月13日月曜日

What is @RTpubTL30en ?

News: Accuracy of language identification was improved! (Oct. 03, 2010)

@RTpubTL30en is a bot which retweets the newest tweet on public timeline written in English every 30 minutes.

If you follow this bot, you can:

 - obtain various kinds of information almost automatically
 - find interesting twitter-ers
 - enjoy a bustling timeline

@RTpubTL30en analyzes the sentences of a tweet and identifies what language the tweet is written in.(powered by Google Language API)
Actually @RTpubTL30en does not analyze the sentences of a tweet, but checks the language settings of the user who made the tweet.
In the result, sometimes @RTpubTL30en confuses the language and retweets non-English tweets.

Please try to follow @RTpubTL30en !!

2010年9月12日日曜日

@RTnowplayingJP について

@RTnowplayingJP は、30分に一回、#nowplaying というハッシュタグのついた日本のツイートを リツイートするボットです。


@RTnowplayingJP では、

 ・"日本の" ユーザーが今どんな音楽を聴いているのか知ることができて
 ・自分の知らない曲やアーティストを発見したり
 ・自分の好きな曲を聴いている他のユーザーを発見してニヤリとしたり

することができます。

#nowplaying はユーザーが今聴いている曲についてツイートするときに付けられることの多いハッシュタグです。
iTunes等と連携して自動でポストするTwitterクライアント等もあるようです。

#nowplaying を含むツイートは  で検索できますが、世界中のツイートが検索対象になってしまうので、@RTnowplayingJP では日本のツイートに限定してピックアップするようにしました。


2010年9月11日土曜日

@RTpubTL30jp について

@RTpubTL30jpのフォローはこちらから!

@RTpubTL30jp は、30分に一回、Twitter の公開タイムラインから、日本語で書かれたツイートを探して リツイートするボットです。
ただそれだけですが、以下のような人にはメリットがあると思います。

・Twitter を始めたばかりで自分のタイムラインが寂しい人。
・知らない人のツイートもちょっとだけ読んでみたい人。
・ジャンルに縛られず不特定多数の情報をキャッチしたい人。
・日本語の勉強をしている外国人の人(?)。

自分から取りに行かなくても、適度に自動的に情報が入ってくる、というのが情報収集のひとつの在り方だと思うのです。

このボットは Google App Engine 上で動いています。
アルゴリズムは別に難しくなくて、実はツイートの内容を解析しているわけではありません。
Twitter API で公開タイムライン上のユーザーの言語設定を抜き出し、日本語(ja)になっているユーザーのツイートをリツイートしています。

そのため、言語設定が日本語以外になっているユーザーが日本語でツイートしても、このボットには引っ掛かりません。
ただ、逆に言語設定が日本語になっているユーザーのほとんどは日本語でツイートすると思われるため、このボットは成り立っています。

また、Twitter API では一度に取り出せる公開ツイートが20件までなので、その20件の中に日本語のものが無かった場合は、何もしません。
ダメだった場合1分後にリトライする機能とかもつけたいところ。

将来的にはテキスト解析エンジンかなんかを積んで、特定のカテゴリに関するツイートを探してリツイートするなんてこともやってみたい。