先日、Googleブログ検索で泳いだ話を書きましたが、そうやって収集した情報を活かそうとした時に、ブログの「記事本文のみを取得する」方法が欲しくなりました。
フィードに本文が全て含まれていれば良いのですが、そうでない場合も多いので、プログラムで抽出することに。車輪の再発明を避けるべく(断じて作るのが面倒だったわけではない)、既に作られていそうなものを探してみた。
その中で精度、手軽さ、共に良かったのがこれ。
ExtractContent(BSDライセンス)
http://labs.cybozu.co.jp/blog/nakatani/2007/09/web_1.html
文中における句読点の存在や、ブロック内の文章の長さなどを元にスコアを付け、スコアが低いものを除去した状態で返してくれる。
これを使ってどの程度の精度が出るのか確認したかったので、テスト用のソースを書く。概要はこんな感じ。
・URLを指定して、HTMLページを取得する
・ExtractContentを使って取得ページを解析する
・取得ページのBODYタグの直下に解析結果を挿入して、ファイルに保存する
・そのファイルをブラウザで見ると、ページの全体と解析結果が一望できる
ソースはこちら(動作確認はかなり適当です。自己責任でご使用ください)
mwextractcontenttest.rb
Hpricot使ったりしてます。あと引数指定するとリンクを辿って解析をしたりします。詳細はソースのコメントにて。
ということをしていたらいつのまにやら午前3時。明日は寝不足気味に出勤すること確定。いかんですな。この世界は楽し過ぎます。