前回に引き続き、第2回Webスクレイピング勉強会@東京に参加し、発表もしてきました。今回は、ブログやサイトから本文部分をどうやって抽出するのかというテーマです。ブログの本文抽出とは、ヘッダーやフッダー、サイドメニューなど情報として不要な部分を排除して、本文部分だけを抜き出す手法です。HTMLのタグを解析するルールベースと、自然言語処理を利用して本文らしさを抽出するヒューリスティックな方法の2つについて、簡単に説明しています。
解説と質疑応答
そもそもブログやサイトの本文を抽出する目的としては、2つくらいあるのではと思います。1つは、その記事そのものを読みたい場合。もう1つは、記事を統計解析などの元データとして利用したい場合があると思います。前者の場合は記事全文がないと意味がないし、後者は必ずしも記事全文は必要ないという前提になります。
そういった前提の場合、どういった手法が適切なのかというテーマです。記事全文を正確に取得する場合は、HTMLのタグを解析してルールベースでやるべきです。しかしこの場合は、ブログやサイトごとにHTMLの構造が違うので、ブログ種別ごとに作りこむ必要があり対応に手間がかかります。一方で記事全文が必ずしも必要がない場合は、本文らしさを抽出するヒューリスティックな方法が良いと考えています。
本文らしさの抽出の方法としては、原理の簡単な説明と既存のモジュールを紹介しています。説明忘れてたのですが、Rubyの本家ExtractContentは、Rubyのバージョンによる正規表現エンジンの違いから、1.8系まででしか使えません。1.9以降で利用する場合は、Fork版を利用する必要があります。ご注意ください。
・ブログのユーザ属性の取得方法について
「これ間違いなくおじさんだ!」が解るのかについて。どの話の流れからか忘れましたが、ブログを書いている人の属性を取得するという話になりました。私としては、2つくらいの方法があるかと考えています。1つ目はブログのプロフィールに載せられているTwitterやFacebookから属性(男性/女性、10代、20代、30代…)などを取得する。もう一つは、予め素性がはっきりしている人のデータを集めて教師データとして、クラスタリングする方法などが考えられます。ただジェンダーや性別を特徴づける言葉は曖昧なので、後者の方法は中々難しいのではと思います。一方で、関心の範囲でクラスタリングするのは比較的可能だと思います。
感想
当日は体調最悪で、発表中もボーっとしてて質疑応答の記憶もロクに無いです。申し訳ないです。KimonoLabsさんの発表まで何とか聞いて、途中で断念して帰りました。Kimonoについては色々書きたいことがあるので、改めてエントリーをあげようと思います。Kimonoの中の人と話せなかったのが残念でなりません。
あと当日も宣伝していましたが、「Rubyによるクローラー開発技法」が遂に今週末に発売です。早いところで8/23くらいから並びだすのではという話です。もし買ったかたおられましたら、感想頂ければありがたいです。どんな厳しい言葉にも耐えられるハートの準備中です。
See Also:
RubyでWebスクレイピングの話をしてきました。第1回Webスクレイピング勉強会@東京
プログラミング・レスで5分でサックリWebスクレイピング「kimonolabs」
『Rubyによるクローラー開発技法』を書きました
KimonoLabsと今後のサービスのあり方のはなし
参照:
第2回Webスクレイピング勉強会@東京 に参加してきた #東京スクラッパー | Developers.IO
第2回Webスクレイピング勉強会@東京(全3回) - connpass
2014/08/17 第2回Webスクレイピング勉強会@東京 #東京スクラッパー - Togetterまとめ
Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例
- 作者: るびきち,佐々木拓郎
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/08/25
- メディア: 大型本
- この商品を含むブログ (1件) を見る