Project, Thoughts @ 10 January 2011, Comments Off

昨年は会社の仕事を通して新しいことにいろいろチャレンジできた年でした。
その一例を挙げると、

  1. Androidアプリのプログラミング
  2. AndroidでのOpenGLプログラミング
  3. iPhone上での3Dオブジェクトを多用したゲーム(coming soon…)
  4. Pythonを使ったサーバサイドプログラミングおよび自然言語処理 (Poibot)

こんな感じでしょうか。その中でも、Poibot (http://poibot.jp/ および http://twitter.com/poibot_jp)の実装のために覚えたPython自然言語処理のイロハは今後いろいろと役に立ちそうです(人工知能の研究室出身とはいえ、最適化計算一本やりだったので、自然言語処理はノータッチでした。おはずかしい…) 忘れる前にPython/自然言語処理をより掘り下げようと、お正月休みを利用して実験していた結果が今回のポストです。

今回、題材としては、昨年世の中を騒がせたWikileaks (http://www.wikileaks.ch/)を取り上げました。

Wikileaksに関しては、いろいろとニュースで流れてはいるものの、どういった内容の文書が含まれているのか、また日本と世界の外交にどのような影響があるのか、いまいち実感として分からないというのが多くの方の印象ではないでしょうか。だからといって、いちいち文書を読む気にもならない…. また中身を調べるとしても、公開されている文書の正当性/真偽に疑問符がつく以上、文書の内容に踏み込んだ解説は避けたいというのもあります。

そこでまず手始めに、Wikileaksの文書上で最も参照されているのはどの国か、もっと簡単に言うと日本のことが書かれた文書はどのくらいあるのか? という点にしぼって、解析および可視化を行いました。

対象: 12月25日 Wikileaksでtorrentとして公開されている 6521の PDF, Plain Text, Rich Text, Microsoft Wordのデータのうち、テキスト化することができた4829の文書

簡単な言語処理(単語の抽出, 品詞の解析など)を行った後、国名(Japan, US, United States/US/USA, China, UK/Britain… etc) の登場回数を各文書ごとにカウントしてた結果、以下のようになりました (参照数のデータはこちら)
chart_1.png

予想通り、アメリカに関する文書が圧倒的な数を占めています。アフガニスタン、イラク、パキスタンなどが上位にきているのは、アルカイーダなどのテロ組織に関する文書が多数含まれているからでしょうか。中国が上位にきているのも目を引きます。日本は18番目。参照数で中国の約半数という結果になりました。
続いて、同一の文書内で参照されている数、各国名の共起度を調べてみました。
たとえば、北朝鮮についての文書であれば、韓国、中国そして日本などについて参照されている可能性が高いことは素人でも想像がつきます。同様に自爆テロに関する文書であれば、イラクやアフガニスタン、アメリカやイギリスが登場する確率は高いでしょう。このようにして、各国の関係の深さが、Wikileaksの文書から浮かび上がるのではないかと考えたわけです。

結果はこうなりました。下のStartボタンをクリックするとインタラクティブなアプレットのページに飛びます。国にマウスオンしてクリックすると、その国と同じ文書内で参照されている回数が表示されます。余白でクリックすると、元に戻ります(わかりにくいかな…?)
201101101245.jpg

http://www.sonasphere.com/blog/upload/vis_wikileaks_1/

スクリーンショット: 各国の参照数
Screen shot 2011-01-10 at 10.02.53.png

スクリーンショット2: アフガニスタンが参照されている文書の中での各国の参照数
Screen shot 2011-01-10 at 10.02.39.png

Uncategorized @ 03 December 2008, Comments Off

ちょっといまさらという気もしますが、先月の最大のニュースは何と言ってもアメリカ大統領選挙でのオバマ候補の勝利ですよね。ちょうどその前後に、“マイケル・ムーア in アホでマヌケな大統領選 [DVD]““告発のとき [DVD]“ といったポスト9.11、ポストイラク戦争後の現代アメリカの民主主義の現状についての映画をいくつか見ていたこともあり、あらためてアメリカという国の底力を思い知らされたような気がします。

大統領選挙の結果自体については、僕が詳しく書くまでもないことなので、ここでは省略しますが (President-electという言葉の存在を初めて知った)、選挙後に目にとまったのがNewYorkタイムズのオンライン版に掲載されたこのマップです。

President Map – Election Results 2008 – The New York Timesピクチャ 1.png

County(郡でいいのかな?)ごとに両候補者の投票数の「差」を円で表現しています。例えば、ロサンゼルスやシカゴなどの青い円が大きい郡は、オバマが大差で勝ったということを表しています。左側のスライダーで過去の選挙を選ぶと、円の直径がスムーズに変化し、今回の選挙の結果を過去の選挙と簡単に比較することができます。この図を一見するだけで、中西部と南部で共和党が強いこと、今回マケイン候補がとった州でも民主党が票をのばしていることが見て取れます。さらに地図をクリックすることで州ごとの結果を拡大してみると、やはり大都市圏でオバマ氏が強いこと、逆に南部の田舎のような特に保守的な地域では実はマケイン氏が得票を伸ばしていることなどが分かります。

僕自身がこの地図を見て、最初に思い出したのがこの図です。“Visualizing Data” の第三章で、データのマッピングの例として、Ben Fryが紹介したサンプルのプログラムです。(Processing.jsバージョンがこちらにあります。Firefoxのみで動作するようなので注意してください)

ピクチャ 3.png

似てませんか? 大きさをスムーズに変化させられるところもそっくり。色使いまで、共和党の赤と民主党の青にあわせたかのようです。ストレートなマッピング方式なので似てくるのは当然として…
シンプルな方法でも、実際のデータをビジュアライズすることで、複雑な事象を直感的に分かりやすく伝えられることを改めて強く印象づけられました。

このBen Fryの「Visualizing Data」の日本語訳がとうとう発売されました!


“ビジュアライジング・データ ―Processingによる情報視覚化手法” (Ben Fry)

監訳者がなんとあの「富豪家」の増井俊之さん(Apple)  (WWDCの際にはお世話になりました > 増井さん)、さらにはProcessing本などで有名な前川さんや田中さんも翻訳に関わっていたという豪華な顔ぶれです。

see conference #3 – Speaker: Ben Fry
情報の可視化に関するカンファレンス SEEでのBen Fry(Processingの元々の開発者の一人)のプレゼンテーション。(エンベッドできなかったので、上のリンクからどうぞ。最初にドイツ語のスピーカー紹介が入るが後は英語)

ピクチャ 3-1
面白かったのが、人間とチンパンジーのDNAの差異をビジュアライゼーションを利用して説明したくだり。上の画面全体がDNAの総体だとしたら、差異があるのは、赤い点で示されたごくごく限られた点だというのだ。まさに The picture is worth a thousand words.

Uncategorized @ 11 April 2008, Comments Off

浮動小数の変数の定義で、doubleを使うかfloatを使うかを迷うことはプログラミングの過程でよくあること。

ただし、Processing環境ではほとんど迷う必要はない: floatを使う!

というのも、ProcessingのAPIはすべてfloatを扱うようになっている。しかも、少数のリテラルにはプリプロセッサーによって、自動的に “f” がつけられるようになっている。
つまり、3.1415 と書くと、 3.1415f と書いたのと同じ。

どうしても精度の高い計算を,ProcessingのAPIとは関係ないところで内部的に行う場合(そもそもそういう計算をProcessingでやる必要があるのかという疑問はさておき)は、doubleを使うことも選択肢としてある。それ以外は、doubleをつかっても結局は floatに丸め込まれてしまうことを考慮しましょ。

Mashup @ 01 April 2008, Comments Off

Masshlogo-
とりあえず、仮の名前 – 仮のサーバで。

Massh! – v0.1 alpha
http://www.sonasphere.com/mash/

リリースが間に合ってよかった! なんとか公約を果たせた.. かな。


より高画質で観る→Vimeo.com

Mashup @ 26 March 2008, “2 Comments”

プロトタイプの第七弾. シナリオとしては、

エミネムのループを探してみたんだが…見つからない。まだだれもエミネムの曲のループを登録していないらしい。だったらインターネットを探してみよう。いくつかみつかった。適当なのを選んで、ループを選択。Jamiroquaiのビートとミックスすると…

こんな感じ。字が読みにくいので、HDでアップした。EmbedだとHDで観れないようなので、Vimeoのサイトでフルスクリーンで観ることをお進めする。

ベータテストの開始に向けて忙しくなってきた。