以前このブログで公開していました Web ページ(HTML)から本文と思わしきテキストを抽出するモジュールを RubyForge に登録、 gem でインストールできるようになりました。
gem install extractcontent
といっても、このモジュールは1ファイルで構成されていて、依存関係もないので、以前の公開方法のままでもあまり支障はなかったような気もするんですが、RubyForge に登録する練習もしておきたかったし、gem で入れられる方が便利ですよね?
- ExtractContent プロジェクトページ
- http://rubyforge.org/projects/extractcontent/
一応プロジェクトページの URL も貼り付けておきますが、実質リリースファイル置き場でしかなくて、SCM もまだ使ってません……
また、せっかくリリースするので、
・「全然 module っぽくないコード」と DIS られたw
・1インスタンスしか持てない(マルチスレッドで使いたい場合にまずい?)
というのに対応するべく、実装をクラスに切り替えました。
そのため抽出用のインスタンスを得るには ExtractContent::Extractor.new してください。
$KCODE="u" require 'rubygems' require 'extractcontent' # Constractor opt = {:decay_factor=>0.75} # optional settings extractor = ExtractContent::Extractor.new(opt) html = ' ~~~ ' # target html body, title = extractor.analyse(html) # analyse
以前のモジュールを使っていただいていた方のことを一応考慮しまして、ExtractContent.analyse メソッドも残しています(ExtractContent モジュールで Extractor のインスタンスを include している)。
抽出の原理などは特に変わっていませんので、そのあたりにご興味のある人は以前のエントリを参照してください。