2012/03/28

AKB48を分析する - 2.参考にしたブログ、サイト

最近では、主要なWebサービスは、外部のプログラムへのインターフェースを提供するのが一般的になってきて、趣味でプログラミングをする(そんな人が何人いるかわからないが)には非常に面白い状況になっている。
一昔前だと、プログラミングするといっても、家にはそんなにデータがないから、まったくやる気はおきなかったが、システムといい、コンテンツといい、とっても充実している。アイドルが自分でどんどん情報を発信していて、それを家で利用できるのだ。

私がAKB48を分析するに当たり、だいたい2週間ぐらいで諸々の技術要素の利用環境を整えた。下記の通り、参考にしたサイト、ブログをまとめた。


1.Pythonの導入~入門
分析するためのツールとして、プログラミング言語Pythonを使用する。
Pythonは日本ではまだマイナーな言語だが、外国ではかなり使われている。GoogleやYoutubeもこの言語を使用しているとのことである。
下記のサイトはとってもわかりやすい。これを参照すればとりあえず使えるようになるだろう。

http://www.python-izm.com/

Ubuntuの場合、最初からPythonがインストール済み。

2.PythonからGoogle+にアクセスする
プログラムからGoogle+にアクセスするためのPythonモジュールの利用方法が書いてあるブログ。
この手順どおりにやればPythonからGoogle+のデータが利用できるようになる。

http://typex2.wordpress.com/2011/09/16/google-api%E3%82%92python%E3%81%8B%E3%82%89%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/


4.MongoDB
Google+から取得したメンバーの投稿を手元にストアするため、MongoDBを使用する。
Google+から取得したデータをそのまま突っ込めばきれいにストアして、再利用できるのでとってもお手軽。

とっかかりとしては、公式ドキュメントを参照するのがよいと思う。
http://www.mongodb.org/display/DOCSJP/Home

ただし、インストールの方法は日本語化されていないようだ。
http://www.mongodb.org/display/DOCS/Quickstart

PythonからMongoDBを利用する方法はこちらを参考にした。
http://d.hatena.ne.jp/stog/20100525/1274890034

入門自然言語処理 (アマゾンのサイトより)
5.MySQL
もう一つのデータストアの手段として、オープンソースではメジャーなRDBMSのMySQLを使用する。
定量的な分析、例えばチームごとの投稿数、誰が誰にコメントしたかのカウントなどを実施するにはRDBが向いていると考えるから。やはりSQLは強力なのだ。

WindowsにMySQLをダウンロードするのは、こちらのサイトからインストーラをダウンロードして実行すればよかった。
http://www-jp.mysql.com/downloads/

Ubuntuにインストールするのは、ソフトウエアセンターからやればよかった。

PythonからMySQLを利用する方法はこちらを参考にした。Python-ismはホントに良くできたサイトだ。
http://www.python-izm.com/contents/external/mysql.shtml

6.スクレイピング
サイトのデータから必要な情報を取り出すテクニックをスクレイピングと総称するらしい。
Beautiful Soupという、Pythonのサードパーティのモジュールを使用する。
Google+における、各メンバーのIDを取得するためにこのテクニックを使用した。
参考にしたのはこのブログ
http://d.hatena.ne.jp/lolloo-htn/20090128/1233155734

7.今後に向けた参考図書
今後、メンバーのメッセージに対して色々分析した生きたいと考えている。Pythonでの処理の実例が書かれているので、この本を読んでいる最中である。

入門自然言語処理 (アマゾンへ)



2012/03/27

AKB48を分析する - 1.メンバーのIDをゲットする

私は最近、AKB48の俄ファンになっている。いわゆる推しメンはチームBの鈴木紫帆里。
AKB48の各メンバーが利用している、ぐぐたす(google+)がとってもおもしろいので、分析しようと思う。ソーシャルデータの活用といいうやつだ。

分析のためのツールとしては、プログラミング言語のPythonと、データベースのMongoDB、MySQLを使用する方針とする。
尚、OSはUbuntu11.10とWindows XPをいったりきたりしながら試行錯誤している。
各ツールの導入は、googleで検索すると(Python インストール 等のキーワードで)いろいろと出てくるので参考にしてください。
UbuntuだとPyothonは最初から入っています。また、MySQLはUbuntuソフトウエアセンターからインストールできます。
ちょっと迷ったのがUbuntuでのMongoDBである。いくつか方法があるようですが、私は、
こちらを参考にしました。

分析しようとすると、各メンバーのIDの一覧が必要になる。最初は地道に右クリックでリンクをコピーしてたのですけれど、色々試行錯誤した結果、AKB48 Now on Google+のサイトから一覧をゲットすることに成功した。プログラムは下記の通りです。
ただし、これだと、やすすとかよすすとかしのぶのIDは取ってこれないので、別途追加する必要があります。
BeautifulSoupという、サードパーティーのライブラリを使用しています。
これは、HTMLのソースから必要なデータを抽出する際に非常に便利なライブラリです。こういう処理をスクレイピングというらしい。その筋ではメジャーなツールのようだ。
#! c:/Python26/python.exe
# coding: utf-8 

from BeautifulSoup import BeautifulSoup #@UnresolvedImport
import urllib
def ggtsidlist_make():
    soup = BeautifulSoup(urllib.urlopen("http://www.google.com/intl/ja/+/project48/").read())
    lisoup=[]
    ggtsidlist = []
    for lisoup in soup.findAll("li"):
    
        try:
#            print "'" + lisoup['data-gplusid'] +"'"
#            ggtsid_get = lisoup['data-gplusid']
            ggtsidlist.append(lisoup['data-gplusid'])
        except:
            continue
    return ggtsidlist

if __name__=='__main__':

    ggtsidlist = ggtsidlist_make()
    for ggtsid in ggtsidlist:
        print ggtsid




2012/03/15

グラフのテスト