pythonでSBM研究

pythonでSBM研究をはてなブックマークに追加 pythonでSBM研究をdel.icio.usに追加 Yahoo!ブックマークに登録 pythonでSBM研究をGoogle Bookmarksに追加

昨日に引き続きpythonとlivedoorClipデータセットに関するエントリです。
今日やってみた事は、URLを渡してタギングされた内容の嵩みをとるという事です。嵩みを取る事により、タグクラウドみたいな表現も出来てきますね。
で、与えたURLはhttp://clip.livedoor.com/でライブドアクリップのURLです。データセットに書かれているタグは半角スペースデリミタで”hoge moge piyo”のように表現されています。データベースにもそのまま投入したので、これらひとつひとつのタグの嵩みを取る場合はsplitしてあげる必要があります。

サンプルソース

# -*- coding: utf-8 -*-
import sqlite3
def dump():
DBNAME = "ldclip.db"
conn = sqlite3.connect( DBNAME )
cur = conn.cursor()
wordDict = {}
outFile = open('get.txt', 'w')
try:
cur.execute("SELECT tags FROM BOOKMARK WHERE url ='http://clip.livedoor.com/'" )
for row in cur:
for elem in row:
wlst = elem.split(' ')
for word in wlst:
if len( word ) > 0:
wordDict.setdefault( word, 0 )
wordDict[ word ] += 1
wordList = sorted( wordDict.items(), key=lambda ( k, v ): ( v, k ) )
wordList.reverse()
for row in wordList:
outFile.write( row[ 0 ].encode( "utf-8") + "(" + str( row[ 1 ] ) + ")\n" )
finally:
cur.close()
outFile.close()
dump()

pythonにはディクショナリ、リスト、タプルという概念があるのですがここら辺の事はワタシもまだまだ正しく理解していないので、ちゃんと理解してから詳細な解説エントリを書きたいと思います。ということで、今回はさわりだけです。

ソースのwordDictという変数がディクショナリです。ディクショナリをソートする場合はsortedメソッドを利用する必要があります。(リストをソートする場合はインスタンスメソッドからsort()で行ける模様です。)このsortedメソッドがwordListというリストを返すので大きい嵩みから表示させるためreverseしています。

主力結果

livedoor(112)
sbm(62)
SBM(32)
ソーシャルブックマー(30)
クリップ(20)
相互リンク頂(16)
相互リンク(16)
リンク集(16)
リンク(16)
サイト(16)
clip(16)
bookmark(14)
ブックマーク(10)
これはすごい(8)
web2.0(8)
web(8)
tool(8)
ライブドア(6)
ソーシャル(6)
はてな(6)
service(6)
Livedoor(6)
-(6)
刺身(4)
ベンリ(4)
ネットサービス(4)
テスト(4)
ツール(4)
これはひどい(4)
social(4)
sbs(4)
livedoorクリップ(4)
livedoorclip(4)
hatena(4)
[(4)
WebService(4)
Web(2)
9234567890(2)
8234567890(2)
7234567890(2)
6234567890(2)
5234567890(2)
4234567890(2)
3234567890(2)
2234567890(2)
1234567890(2)
非モテ(2)
経営(2)
節税(2)
神様(2)
社会(2)
研究(2)
大野彩(2)
口コミ(2)
便利(2)
人材開発(2)
人材教育(2)
人材採用(2)
人事(2)
下旬(2)
ホットペッパー(2)
ブックマーク](2)
ブクマ(2)
ビューティー(2)
パクリ(2)
ネット関係(2)
ネットワーク(2)
ネタ(2)
デリバリー(2)
ソーシャル](2)
シャープヘルシオ,ダ(2)
グルメ(2)
クチコミ(2)
キャッシング(2)
オンラインブックマー(2)
オンラインBKMサービス(2)
エロス(2)
ぶっくまぁく(2)
お気に入り(2)
おもしろい(2)
あとで読む(2)
あとでよむ(2)
webservice(2)
webapi(2)
tmp(2)
test(2)
sokuwan(2)
socialbookmark(2)
sns(2)
scoliosis(2)
portal(2)
plaggger(2)
perl(2)
mala(2)
livedoorReader(2)
livedoor,コンテンツ(2)
lifehack(2)
ldc(2)
javascript(2)
imported(2)
httpwww.cameo.co.jpnotepaddown(2)
httpclip.livedoor.com(2)
bookmarks(2)
boofy(2)
blogger(2)
blog(2)
api(2)
YouTube(2)
Thumbnail(2)
SBS(2)
R18(2)
LDR(2)
LDC(2)
GJ!(2)
CGM(2)
@web(2)

コメントをどうぞ