HTMLから本文抽出(extractcontent)完全にメモ程度なのですが、、HTMLから本文情報を抽出する必要があったのでいいライブラリはないかと物色。
どうもextractcontentというのがあるらしい。
Extractcontenthttp://www.moongift.jp/2007/10/extractcontent/サイボーズのオープンソースらしい
とりあえず、gemからinstallできるので使ってみる。
$sudo gem install extractcontent
rubyのサンプルコードはこんな感じ
--
#! /usr/bin/ruby
# -*- coding: utf-8 -*-
#
# 本文抽出サンプル
#
$KCODE="u"
require 'open-uri'
require 'rubygems'
require 'extractcontent'
require 'kconv'
# ひとつ前のblogのエントリー
URL = 'http://tachiphoto.blog61.fc2.com/blog-entry-1176.html'
extractor = ExtractContent::Extractor.new
open(URL) do |html|
body,title = extractor.analyse(html.read)
puts "body :#{body.toutf8}"
end
--
実行
$./extract_body.rb
body :形態素解析用ライブラリとしてMeCabをサーバー側のCygwinにインストール。twitter botのサーバーはネットとかtwitterを見ているテーブル上にあるwindows7マシンで、開発用のMacと環境が違うのでかなりめんどい。あと穹ちゃん可愛い。
早速、MeCabのコンパイルにひっかかる。http://sarastron.blog69.fc2.com/blog-entry-15.html事象的にはcygwin用のマクロのincludeのundef// tricky macro for MSVC#if defined(_MSC_VER) || defined(__CYGWIN__)#define for if (0); else for/* why windows.h define such a generic macro */#undef max#undef min#define snprintf _snprintf#endifcommon.hの変な部分に記述してある!!わかわからん。というので上記のURLを参考に修正。これでコンパイルはOK。次にrubyラッパーのコンパイルでまたこける。これはmecabのライブラリをうまく認識できていなかったので、Makefileを直接編集で対応http://d.hatena.ne.jp/gnarl/20100519/1274276712さらに環境変数をg++に変更したりライブラリの追加など以前紹介したURLで記述されている部分を修正http://sites.google.com/site/casualconcj/yutiriti-puroguramu/mecab-ruby-wo-insutoru-suru#TOC-MeCab-Ruby-これでOK!!サーバー側で形態素解析できるようになりました。
おっと!いいじゃん!なかなか。^-^
どうも本文抽出にCRFを使っているみたいですね、なかなか
http://www.slideshare.net/shuyo/web-using-crf↑
たぶん、開発者の発表資料。