takahashiのブログ

Web サイトの本文抽出を PHP で行う

こんにちは高橋です。ひさびさです。ぺちぺで検索エンジンや類似文書の提示エンジンなどを作成していたのですが、普通の文書ではなくサイト等の場合、タグやヘッダ情報、サイドバーリンクなどを対象に含めると精度がめちゃくちゃになるので、それを改善するために本文抽出プログラムを週末に実装しました。まだ一応動く程度です(いろいろと怪しいところがあるので、ごめんなさい)。

http://hakaselab.sakura.ne.jp/make/extractcontent/extractcontent.phps

下記のように利用します。
<?php
require('./extractcontent.php');
list($body, $title) = extractcontent_analy(file_get_contents('http://www.example.com'));

echo $title;
echo $body;

今回実装したものは、サイボウズ・ラボの nakatani さんが実装されたものを移植(すべて出来ていない)しました。素晴らしいコードをありがとうございます。

Webページの本文抽出 (nakatani @ cybozu labs)

また内部処理につきましては、 Perl にて本文抽出を作成されたはてなインターンの方の Kansai.pm での講演資料があがっていました(はてなブックマーク等で利用されている?)。内部の処理についてはこちらが詳しいです。ぜひ参考にしてみて下さい。

Kansai.pm #11 HTMLからの本文抽出

下記に弊社のブログのエントリー(http://www.systemfriend.co.jp/node/312)に対して上記 PHP を実行して本文抽出したサンプルを置いておきます。

http://hakaselab.sakura.ne.jp/make/extractcontent/example.sf326.txt
それなりに本文は抽出できているかんじです。

この記事のトラックバックURL:

http://www.systemfriend.co.jp/trackback/326