Hatena::ブログ(Diary)

ダウンロードたけし(寅年)の日記 このページをアンテナに追加 RSSフィード Twitter

2009-07-21

本文抽出モジュールを作り直す

2年ほど前にHTML::FeatureというPerlの本文抽出モジュールを書きました。

こいつはブログやニュース記事から「本文らしき箇所」を適当に推測して抽出してくれるモジュールでして、リリースした当時はライバルもいなかったので、ブログなどでは結構反応がよかったです。外国の方も何人か使ってくれたりして、それなりに充実感のあるモジュールでした。

しかし、昨年HTML::ExtractContentが出現してからは、すっかりその地位を奪われ&忘れられた感がありました。作者としては「ま、いっか」的なノリだったのですが、最近になって急に「本文抽出界での復権を目指し全面リメイクを敢行するよ!」と思うに至りました。


改善方針

方針ってほどの方針ではありませんが、

- サイトごとに定義できる部分はすなおに定義する

- アルゴリズムに頼りすぎない

- google adsenceの人気にあやかる

- 全体的に大げさな作りだったのでスリム化させる

と考えています。

まず処理の第1段階としては、有名どころのブログサービスなどは素直にタグのclassかidを指定して、ガツっと抜いてしまえば精度は完璧なはず(?)なので、そういう設定ができるようなIFを設けようと思います。

第2段階としてgoogle adsenceのコメントタグの有無をチェックします。ブログなんかだとかなりの比率でgoogle_ad_sectionのコメントタグが入ってるから、こいつを手がかりにするといいですね!ってこれは随分前から色々なところで使われてたテクみたいですが。

そして第1、第2段階を経てもうまく抽出できない場合に、第3段階としてようやく今まで通りのアルゴリズムHTMLタグの構成からそれらしい部分を推測する機能)をキックする、といった流れにしてみようと思います。

まだちゃんと仕上げてないんですが、たぶんこの改良で抽出精度は格段にアップするんじゃないかしら、と踏んでます。

中途半端バージョンですが、githubを更新しておきました。興味ある人は見てみてください。まだテスト通らないですがたぶん動きます。

http://github.com/miki/HTML-Feature/tree/master


思う所

しばらく放置していたモジュールですが、急に思う所ができてしまいました。

というのは、ここんとこずっとデータマイニングとか解析系のものばかり追っかけていたんですが、「カッチョイイアルゴリズム」に悦に入っちゃって、その割には精度がでなかったり、変に理屈っぽい部分にこだわりすぎて、遠回りしてるなぁ、と感じてしまった訳です。

ちょっと前ですが、弾さんのブログもヒントになってます。

http://blog.livedoor.jp/dankogai/archives/51218625.html

ヒューリスティックスもいいのだけど、blogのように構造がはっきりしているものは、XPATHでぶっこぬいてもよいように思うのだけど>はてブ中の人。その方が高速で負荷も低いし。


結局のところ、最後はベタに人間様が設定したり登録したりしたものがやっぱ最高だろう!ビバ人間!ということで、どうせ頭弱いんだから今後は人力系で頑張って行こうと思います。


そのうちきちんと書き直しがすんだら、CPANにもアップします。

あ、もう寝なきゃ。午前4時だよ、今日も会社だよ、頭弱いよ、あばばばばー。

meichinmeichin 2009/07/24 20:59 初めまして。meichinと言います。大変申し上げにくいところ、HTML::FeatureからHTML::ExtractContentに移った裏切り者です。
しかし、最近ではその動作の速度、そして精度に少しばかり疑問を抱いていた次第です。
もし、手元にRSSのdescription(序文)の情報があれば、もっと簡単に抜き出せたりするのでしょうか?
もしそうであれば、オプションとして追加して頂ければ大変嬉しいです(^^汗

download_takeshidownload_takeshi 2009/07/25 12:41 meichinさん、こんにちわ。コメントありがとうございます。
HTML::Featureは抜本的に作り直しを考えています。今ちょうど大枠のデザインを件としている最中です。折角のリクエストなので、盛り込む方向で考えてみますね。

meichinmeichin 2009/07/26 02:09 お返事ありがとうございます。ご検討頂き嬉しい限りです!楽しみにお待ちしております。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証