RによるTwitterユーザーのクラスター分析

 
 
今後web上に落ちているテキストデータを元に知見を生み出すということをやっていくことになりそうなので、
試しに自分のTwitterのフォロワーをクラスター分析でグループ分けしてみました。
 

つぶやきデータの収集

 
Twitterからの情報取得の方法として、RではTwitteRというパッケージがあります。
http://cran.r-project.org/web/packages/twitteR/index.html
 
しかし、TwitteRは自分のRのバージョンではnot availableと言われて使えないようだったので、
今回はこちらのRuby用のTwitter APIクライアントを使用することにしました。
https://github.com/sferik/twitter

 


require "twitter"

Twitter.configure do |config|
 config.consumer_key = "xxx"
 config.consumer_secret = "xxx"
 config.oauth_token = "xxx"
 config.oauth_token_secret = "xxx"
end

事前にhttps://dev.twitter.com/よりアプリケーションを登録し、consumer_keyなどを取得しておく必要があります。そしてconfigに値をセット。

 


timeline = Twitter.home_timeline({:count => 20})

users = []

timeline.each do |timeline|
	tweet = "";
	user_id = timeline[:user][:id]

	unless users.include?(user_id)
		user_timeline = Twitter.user_timeline(user_id, {:count => 100})

		user_timeline.each do |user_timeline|
			tweet << user_timeline[:text]
			tweet << " "
		end	

		output = File.open("data/#{timeline[:user][:id]}.txt", "w")
		output.write(tweet)
		output.close

  		users.push(user_id)
	end	
end

自分のタイムラインに流れているユーザーを上から20人分取得し、そこから各ユーザーごとに最新のつぶやきを100件取得します。
今回はつぶやき間の分析などは行わないつもりでしたので、あらかじめユーザーごとの全てのつぶやきをつなげて保存することにしました。

また、後ほどターム・文書行列を作るために、指定のフォルダ下にユーザーごとのつぶやきのテキストファイルを作成します。

 

クラスター分析

 
ここから先はRを使用します
 
事前にMeCabとRからMeCabを使うためのライブラリであるRMeCabをインストールしておく必要があります
http://rmecab.jp/wiki/index.php?RMeCab
 

library(RMeCab)
DM <- docMatrix("data", pos = c("名詞"))

docMatrix関数を使って、ターム・文書行列を作成します。この関数は、列にTwitterユーザー名、行に一度でも出現した語が並んであり、その升目に語の出現頻度が書かれてある行列を作成します。
 
今回は業界や興味分野などでクラスタリングできたら良いなと思い、名詞のみを抽出しました。pos引数に指定すれば動詞なども抜き出せます。

“愛”, “握手”, “以外”, “伊藤”, “意見”, “異彩”, “移住”, “一員”, “一覧”, “運用”, “英”, “英国”, “横尾”, “欧州”・・・などの単語がつぶやかれています。
 

plot(hclust(dist(t(DM)), "ward"))

個体間の距離の計測・クラスター作成・プロットまで一気にやっています。
今回はウォード法を使用しました。これはクラスター内の分散が最も小さくなるようにクラスタを作成する方法です。クラスタリングの階層的手法としては、他にも最長距離法や群平均法などがあります。
 
 
その結果がこんな感じ(各枝はTwitterのユーザーID)

ward

右側は「民主主義」とか「理想」とか「自尊心」とか社会科学系のガチなことをつぶやいている方々で、左側は「巨人はクソ」とか「クリパ10人連れて来る」とか「フットサルたのぴーー」とかユルい感じでつぶやいている方々に分かれているっぽい(と自分は解釈した)
 
今回は17人のみですが、より多くのユーザーについて分析するときに、自分のフォロワーにどのようなジャンルの人がいるのかを要約的に把握するのには良いんじゃないかと思います。

 
次回は具体的にどんな単語が出てきたか・その傾向等調べたいと思います。
 
【参考】

Rを用いたTwitterテキストマイニング

Twitter Ruby Gemを使って、RubyでTwitterキーワード検索を試す

 

Clustter クラスタ判定ツール
これによると自分は「池澤あやか」クラスタらしい(なんだそりゃ)

Health2.0 2013で見た注目の医療IT系サービス6選

1394473_740641072617146_311852597_n
先週まで、Health2.0のannual conferenceに行ってきたので、その中でも面白いと思った海外の医療IT系のサービスをご紹介します。
選定は独断と偏見で特に分野は絞っていません。

 

*Health 2.0とはヘルスケア分野における新しいテクノロジーを紹介・促進する組織です。世界各地でカンファレンスやハッカソンを行っています。
http://www.health2con.com/

 

 

1. Treato

Treato
http://treato.com/

Treatoはソーシャルメディアも含めたweb上の情報から、医薬品についてユーザーが何と言っているかの情報を収集し、キレイなインターフェースにて表示しれくてるサービスだ。

その医薬品についてのポジティブかネガティブか、どのような懸念や副作用が言われているかなどの情報が自動的にカテゴリ分けされ、見やすく表示されている。

今後は製薬会社のマーケター向けにビジネスを行っていきたいようだ。

 

 

2. Ginger.io

Ginger.io
http://ginger.io/

Ginger.ioを使うと、スマートフォンより患者の日常の生活・動きをトラッキングし、医療従事者に伝えることができる。

患者側からすると、スマートフォンから取られたデータといくつかの簡単な質問に答えることにより、より良いサポートが受けられる。
医療従事者の方々からすると、患者さんの動きを把握することで、問題が起きたときにすぐ察知したりより効果的にマネンジメントできるようになる。

 

 

3. Medlio

Medlio

http://www.medl.io/

Medlioは次の時代の健康保険証になることを目指している。Medlioを使うと、保険会社からのアップデート情報を受け取ったり、近くの病院や薬局を検索したり、簡単に受付が済ませられたり、スマートフォンで簡単に支払ができたりと、病院に行く際に必要な諸々の機能を1つのアプリとして提供してくれる。

 

 

4.Genetrainer

GeneTrainer

http://www.genetrainer.com/

Genetrainerは遺伝情報をベースにし、あなただけの専用のトレーナーになってくれる。Genetrainerを使うには、まず23andMeなどの遺伝子検査を受け、Genetrainerにその情報を提供する。その後、フィットネスのゴールを選択すると、あなたの遺伝情報を元にゴール達成のための一番簡単な方法を教えてくれ、フィットネスの計画を立ててくれる。

 

創業者のralph pethicaは遺伝学のPh.Dで、フィットネスとダイエットに対して強い情熱を持っている。

現在は限られたユーザーのみがアクセスできるようになっている。

(23andMeは2013年10月現在直接的には日本向けのサービスは展開していない)

 

 

5.Vimty

Vimty

http://vimty.com/

Vimtyの創業者であるBlaine Warkentine(MD, MPH)は遺言書(事前指示書(advance directive)とも言われる)についての大きな問題を起業家精神溢れる方法で解決しようとしている。

ある研究によると、大人のうち80%が遺言書を書いておきたいと思っているが、実際に書いている人は7%しか居ないという。

 

デモも見た限り、本当にスムーズに事前指示書を作成することができる。

こちらのサービスもまだ2013年10月現在正式リリースされていないが、事前に登録しておくことはできる。

 

 

6.Mana Health

Mana health

http://mana-health.com/

Mana healthは最近ニューヨーク州とも契約を勝ち取った患者向けポータルだ。Mana Healthを使うと、元々は無機質な医療データを直感的に理解できるダッシュボード上に表示してくれる。患者さんの情報は簡単にダウンロードできたり、医療従事者に送ることができる。

ヘルスケアの情報をaggregateし、ダッシュボードに表示するというサービスは数多くリリースされているが、デモを見る限りその中でもMana Healthはとても情報の伝え方が優れていると感じた。

 

 

いかがでしたでしょうか?

次回はwearable系などのように絞ったまとめもしたいと思っています。

それではまた!