コロナに負けず、できることを少しずつ。

[Social] XFNによるソーシャルなつながりの解析 (Cygwin/python)

NO IMAGE

■XFNによるソーシャルなつながりの解析 (Cygwin/python)

[amazon_enhanced asin=”4873115132″ container=”” container_class=”” price=”All” background_color=”FFFFFF” link_color=”000000″ text_color=”0000FF” /]

オライリーの入門ソーシャルデータ

を実際に手元にある Windows マシンで試したいと言う友人がおり、日頃似たようなテーマでソーシャル・ストリームをソースにした各種解析を実施している自身のニーズとマッチしたので、本 blog を通じてその内容を紹介したい。
===
■環境
cygwin で python が使える環境で、普通にソースが読める程度。
(ソースを読み、参照している関数を easy_install で追加するなど、その程度)
easy_install でミススペルしてるんじゃないか?というメッセージが出た時は、
http://pypi.python.org/simple/ ここを見て適切な文言に直してください。
■ソース入手
https://github.com/ptwobrussell/Mining-the-Social-Web/
ギットハブから必要となるソースを得る。その他、本書で指定されたユーティリティや関連情報から適宜入手しておくこと。
■ソース修正
基本不要。
強いて言うならば、UTF-8 エンコードになっているかの確認くらい。
[幅優先探索を使って XFN リンクをクロール microformats__xfn_crawl.py ] を試す。
特に悩むところはないので、例題通り実施する。
赤字箇所が実際に入力する内容。引数として XFN情報を持つURLを渡すこと)

Tue Dec 27 13:35:28 ~/social/ptwobrussell-Mining-the-Social-Web-a1118d8/python_code/
yukio@Lets-note:$ python microformats__xfn_scrape.py http://www.almaer.com

(このクロールを実施すると ./out/ へ out.graph が生成される。生成される内容は次の枠線内)

補足:ノードとエッジで label 特性が使用されている。実際に [label=”*”]; として直列化されていることが結果からも明らかである。(DOT言語として必須要件)

strict digraph {
“index.xml” [label=”All Entries”];
“http://www.almaer.com/blog/” -> “index.xml” [label=”me”];
“http://friendfeed.com/dion” [label=”FriendFeed”];
“http://www.almaer.com/blog/” -> “http://friendfeed.com/dion” [label=”me”];
“http://ajaxian.com/” [label=”Ajaxian”];
“http://www.almaer.com/blog/” -> “http://ajaxian.com/” [label=”me”];
“/blog/category/personal/feed” [label=”Personal”];
“http://www.almaer.com/blog/” -> “/blog/category/personal/feed” [label=”me”];
“http://twitter.com/statuses/user_timeline/4216361.atom” [label=”My Tweets”];
“http://www.almaer.com/blog/” -> “http://twitter.com/statuses/user_timeline/4216361.atom” [label=”me”];
“http://profile.to/dion” [label=”Facebook Profile”];
“http://www.almaer.com/blog/” -> “http://profile.to/dion” [label=”me”];
“/blog/category/tech/feed” [label=”Technical”];
“http://www.almaer.com/blog/” -> “/blog/category/tech/feed” [label=”me”];
“http://almaer.com/blog/comments/feed” [label=”Comments”];
“http://www.almaer.com/blog/” -> “http://almaer.com/blog/comments/feed” [label=”me”];
“http://www.google.com/reader/public/atom/user/13910122292257868277/label/dion” [label=”Activity Stream”];
“http://www.almaer.com/blog/” -> “http://www.google.com/reader/public/atom/user/13910122292257868277/label/dion” [label=”me”];
“http://www.linkedin.com/in/dalmaer” [label=”LinkedIn Profile”];
“http://www.almaer.com/blog/” -> “http://www.linkedin.com/in/dalmaer” [label=”me”]
}
※もし、XFN データを含まない URL を指定すると次のように digraph 入れ子が空っぽのものが生成されます(これは本書に記載ありませんが、python など LL言語を普通に使える方を想定しているからだと思います)
strict digraph {
}
↓ (次にグラフ描画するため、circo コマンドを実行する)

Tue Dec 27 13:35:28 ~/social/ptwobrussell-Mining-the-Social-Web-a1118d8/python_code
yukio@Lets-note:$ circo -Tpng -Ograph ./out/graph.dot

本書 P.31 の原図が生成されたことが分かります。
本書では、図 2-1 Ajaxian の XFNデータの有向グラフですが、ここでは波及する人名をここで公開するのは気が引けたので「me」は何に有向しているのかを描画しました。
詳しくは本書をご覧ください。
メモ:http://gmpg.org/xfn/
===
Windows でも何ら遜色なく例題を進められることを確認しました。
以上

Cygwinカテゴリの最新記事