ブログの記事本文を抽出するAPI: TSUBUAN

KOSHIANに続いてTSUBUANをつくりました。
URLを与えるとそのページに含まれる本文らしき文章をXMLで返すAPIです。

RESTで引数はurlしかありませんが、一応仕様はこちらに。
http://zuzara.dyndns.org/docs/contentextractionapi.html

サンプルレスポンス:
http://zuzara.dyndns.org/api/tsubuan?url=http://blog.zuzara.com/2006/12/12/173/

アルゴリズムは以前作ったスクリプトの改良、といった感じです。精度をちゃんと数字にしていませんが、汎用的にどんなブログでも取得できるようになったと思います。必ずしもブログのみが対象ではなく、言語による依存もありません。精度実験では中国語のブログも対象にしてみました。

以前あった、ceekzさんのアイディアも使わせていただきました。
ブログの本文抽出にチャレンジ – Ceekz Logs

・直前のエントリと diff を取る
・RSS の description と比較する

と、句読点の数も本文らしき箇所の候補が複数あった場合、考慮しています。

現時点で認識しているうまく抽出できないケースは、

  • 本文の文字数が極端に少ない
  • はてなのように1つのページに複数の記事がある
  • 一部の、Yahoo!ブログやspaces.live.comのようにdivが改行ごとに含まれるような場合
  • コメントがやたら長い
  • 本文以外にもたくさん文章がある
  • サイドバーなど、不要な文字列も混じる

HTMLを解析しているのでHTMLがきれいでないとうまくいきません。コメントに関しては、分離したかったのですが本文の一部として取得するケースが多いと思います。

またAPIとしては若干、結果を返すまでの時間が長いです。あくまで実験という位置づけで試していただければ幸いです。

注意点

  • サーバの回線が細いのが不安です。
  • 将来的にドメイン名が変わる可能性が高いです。
  • 蹴飛ばしてケーブルが抜ける等の生活に密着した原因でサーバが止まる可能性があります。
  • やむを得ず後方互換性のない仕様に変更される可能性があります。
  • 事前の告知なしにサービスを終了する可能性もゼロではありません。

お断り

  • このAPIは無保証です。本APIを利用して発生したいかなる損害に対しても責任を負いません。
  • 商用利用はご相談ください。
  • 1秒に1回以下のリクエストとしてください。
  • 研究目的等で大量のデータを解析する必要がある場合、ご相談ください。
  • スパイウェアや不正利用、その他法律に反することには利用できません。
  • 本サービスと全く同機能のサービスを本サービスを利用して公開しないでください。

ご意見等はお気軽にコメント欄までお願いします。
メールでもOKです。

2007年10月11日現在停止中
現在サーバを止めています。

This entry was posted in つくる. Bookmark the permalink. Both comments and trackbacks are currently closed.

4 Comments

  1. lsk
    Posted 2007/04/08 at 5:35 pm | Permalink

    アフィリエイト広告を掲載しているサイトで、TSUBUAN、KOSHIANの両APIを利用したいのですが、商用利用にあたるのでしょうか。
    よろしくお願いします。

  2. Posted 2007/04/08 at 7:23 pm | Permalink

    法人組織で運営しているサイトでなければ構いません。

  3. シェリー
    Posted 2007/06/08 at 2:22 pm | Permalink

    修士論文のため、3000件近くのブログ内容を保存した(HTML形式)が、いろいろなサイトから収集したため、どっちのブログ会社は限っていません。
    このツール利用できますか?

  4. Posted 2007/06/08 at 3:04 pm | Permalink

    シェリーさん、
    どうぞご利用ください。Academicな利用はWelcomeです。

One Trackback

  • […] zuzara : ブログの記事本文を抽出するAPI: TSUBUAN KOSHIANに続いてTSUBUANをつくりました。 URLを与えるとそのページに含まれる本文らしき文章をXMLで返すAPIです。 […]

Page optimized by WP Minify WordPress Plugin