要約:はてなブックマークのブックマーク数とコメントを点数化してURLを評価するスクリプトを書いてみました
最近はどこのブログに行っても、はてなブックマークのカウンタが見られるようになって、はてなブックマーク数(量)=コンテンツの質だと捉えられがちな向きさえある感じがします。
で、そのことに対する反応ははてブ指数の記事をブックマークしたときにも書いたのだけど、似たようなことはid:I11さんも言っていて、それはブックマークは肯定的引用だけとは限らない。興味本位、ネガティブな評価、嘲笑などを含む。はてブ指数はダイアリーの質とは関係ない。
というもの。
で、じゃあこの興味本位、ネガティブな評価、嘲笑
とかあるいは逆のポジティブな評価を含めて評価できないものかなと。「ブックマークコメントの内容を使えばいーじゃん」ってことで早速実装してみることにしました。
で、できたものがコレ。id:myrmecoleonさんみたく名前をつけてみる。
何してるの?
指定したURLのブックマークからユーザのコメントを全部拾って、キーワードに引っかけて、キーワードによってポイントを足したり引いたりしたりして点数化してます。キーワードは大きく分けてコンテンツに対して肯定的なモノ、否定的なモノ、そして逆接の3つです。ちなみに逆接とは、例えば「いいんだけど、~がおかしい」の部分の「けど」の部分です。
まず、ブックマークを能動的な評価行動と考えて、まず1ブックマークあたり1ポイント加えます。肯定的なキーワードがあった場合は1ブックマークあたり10ポイント、否定的なキーワードの場合は-10ポイント、逆接は-4ポイントとしています。
これらを全部足しあわせて総合点を求めてます。
評価の例
2007-12-15のAM2時くらいにはてブの人気エントリー入りしていたものを投げてみました(数値はいずれも測定時のものです)
| 対象(サイト名略) | ブクマ数 | 点数 | ブクマ数との差 | 加点・減点 |
|---|---|---|---|---|
| ドリコム退職にあたり | 202 users | 134 点 | -68 | プラス評価90 マイナス評価-158 |
| Yahoo! ShortcutsっていうWordPressのプラグインが(略) | 310 users | 420 点 | +110 | プラス評価160 マイナス評価-50 |
| 迷ったら狩野さん!…狩野分析法による優先度付け | 256 users | 294 点 | +38 | プラス評価80 マイナス評価-42 |
| 日本の裁判官がおかしい | 182 users | 42 点 | -140 | プラス評価40 マイナス評価-180 |
| 2007年ウェブデザインの6つのトレンド | 144 users | 140 点 | -4 | プラス評価0 マイナス評価-4 |
| XHTML-CSS Validator | 247 users | 247 点 | ±0 | プラス評価10 マイナス評価-10 |
| 新米Web担当者もこれで安心!8つのステップで(略) | 344 users | 366 点 | +22 | プラス評価30 マイナス評価-8 |
| DivX Proのシリアルナンバーが期間限定で無料配布中 | 96 users | 108 点 | +12 | プラス評価20 マイナス評価-8 |
| 究極の飲み放題の店 | 111 users | 163 点 | +52 | プラス評価110 マイナス評価-58 |
| Second Lifeはてな版? 仮想世界「はてなワールド」β公開 | 315 users | 301 点 | -14 | プラス評価110 マイナス評価-124 |
妥当性としてはまずまずの結果かも。最後のはてなワールドの記事はコメントの勢いからすると、減点が多すぎるかなぁ。
課題と限界
すぐに分かると思うんですけど、単純な肯定 or 否定コメントをカウントしているだけなので、内容に込み入った批判などは評価ポイントとして拾えません。
そうしたものを拾うのならば、newsingみたいな○×機能をはてな側で導入してもらうしかありませんが、はてなスターをリリースしたことから見ると対応することはないでしょうね。
あと、コンテンツの評価に関係ない文脈でのコメントも拾ってしまう(「私は○○がいいと思う」とか)のが難点ですね。
評価手順
ちなみに、評価の手順はこんな感じです。
- ブックマークのコメントを取得
- Mecabを使って漢字かな交じりのコメントをすべてひらがなに変換(評価の精度を上げるため)
- コメントにキーワードが含まれているか調査
- 調査結果に基づいて、得点を算出
キーワードについては、ホットエントリーや炎上しているエントリーなどを参考にして独断と偏見で決めました。コンテンツの評価が目的ですので、否定的だと思われるコメントにはできるだけ人格批判を含めないようにしました1 。
下にWikiを置いておくので、もしコレを加えた方がいいんじゃね?というのがあったら加えてみてください。あとで参考にさせていただきます。
詳しい使い方
基本的には、http://tech.openvista.jp/bookmark/entry/エントリーのURLという形でアクセスすると(HTML形式で)結果を返します。http://tech.openvista.jp/bookmark/xml/エントリーのURLだとXML形式、http://tech.openvista.jp/bookmark/json/エントリーのURLだとJSON形式で結果を返します。
詳しい人に質問!
詳しい人に聞きたいことが一つ、もしご存じでしたら教えてください。URLはmod_rewriteを使って内部で書き換えてるんですが、うまくリダイレクトできないURLがあるんですね。
まず、URL書き換えはhttp://tech.openvista.jp/bookmark/entry/http://example.com/ならhttp://tech.openvista.jp/bookmark/index.php?o=entry&u=http://example.com/となるようにしています。
ですが、これだと ? や # が入っているようなURL、具体的にはhttp://tech.openvista.jp/bookmark/entry/http://gigazine.net/index.php?/news/comments/20071214_divx_pro_free/というURLがうまいこと処理できないんですね(http://tech.openvista.jp/bookmark/index.php?o=entry&u=http://gigazine.net/index.php?という風に?以降が切れちゃいます)
仕方ないので、書き換え時にQSAオプションを付けてhttp://tech.openvista.jp/bookmark/entry/http://gigazine.net/index.php&/news/comments/20071214_divx_pro_free/という風にしてPHP側で無理矢理URLを取得するようなことをしています。
あまりいい解決方法ではないと思うんですが、もっといい方法をご存じでしょうか?
ちなみに .htaccessファイル は以下のようになっています。
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/bookmark/(entry|html|xml|json)/(.+)$
RewriteRule ^(.*)$ /bookmark/index.php?o=%1&u=%2 [L,QSA]そのほか
スクリプト作成にあたっては以下を参考にしました。
- はてなブックマークエントリー情報取得APIとは – はてなダイアリー
- PHPではてなとdel.icio.usの被ブックマーク数をJSON形式で取得する | Sarabande
- PHPの正規表現のpreg_match()関数
- Apache module mod_rewrite
最後になりましたが各ドキュメントを作成された方、Mecabを開発された方に感謝申し上げます。
- ただ、否定的なコメントというのは人格批判スレスレなところもあって、どこまでそれを拾うのかという線引きはムズいですね[戻る]
Popularity: 3% [?]
- キーワード:




読者のコメント
2件