プログラマでありたい

おっさんになっても、プログラマでありつづけたい

「第2回Webスクレイピング勉強会@東京」に参加&発表してきました

 前回に引き続き第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の運用例

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

KimonoLabsと今後のサービスのあり方のはなし

f:id:dkfj:20140813182433p:plain


 別記事にも書きましたが、第2回Webスクレイピング勉強会@東京に参加してきました。そこで注目のサービスであるKimonoLabの中の人であるPratap Ranadさんの話を聞いてきました。シンプルながら明確なメッセージで、非常に感銘を受けました。

KimonoLabsのミッション



 KimonoLabsの始まりは、あるサービスを作ろうとして航空会社ごとのデータを取得しようとしたことが始まりのようです。しかし、航空会社ごとにWebスクレイピングするのは手間で、非常に大変だったそうです。サイト側がAPIを提供すれば解決なのですが、APIを提供している会社は0.0005%に過ぎないそうです。またセマンティックWebにすれば良いという話もありますが、あれはデータを提供する側が努力する必要があり、そもそも構造として間違っていたとのことです。KimonoLabsはこの構造を逆転させ、データを取得する方が少し労力を提供すれば良い構造にしたとのことです。また、誰かがKimonoLabsを使ってスクレイピングのAPIを作ることにより、他の人でも利用できるようになり、結果としてデータを構造化させることができるとのことです。
 私は、セマンティックWebの失敗の理由について、非常に共感しました。いろいろな職場でも議論されてると思いますが、プロジェクト等の経験などがどうして共有されないのかという問題と一緒だと思います。情報を取得する方ではなく、提供する側に努力させても、インセンティブがないのです。受益者側の働きかけに構造を変える必要があるのです。この辺り、KimonoLabsの狙いは非常に素晴らしいと思います。

KimonoLabsの由来



 そもそもKimonoLabsおよびKimonoの名前の由来は何なのでしょうか?それは、「Open the kimono」というビジネス上のスラングに由来するようです。参加者一同、Open the kimonoと聞いたとたん、頭の中は悪代官様しか出なかったのですが、(ビジネス上の)ややこしい問題を紐解くとか整理するといったような意味があるようです。もっとも、サービスに名前をつける必要があったので、思いついたのをつけたという事実もあるようです。

KimonoLabsの収益源



 無料で充分使えるKimonoの収益源の話です。私も気になってたのですが、企業側にAPI提供を手助けすることで収益化を図っているようです。つまり、一般の人が用途の応じてサイトからデータを収集するのではなくて、サイトの運営者側がKimonoを利用してデータを提供するということです。この構造は、一番驚きました。実際、Fortune500などの有力企業に多数採用されているようです。

感想



 先日の記事にも書きましたが、クローラーを作る人やWebスクレイピングする人は、それ自体が目的ではなくデータを集めて何かをするのが目的です。当然ながら、データを収集する為の労力は最小限にするのがよいでしょう。その点を考えると、KimonoLabsが目指す点は、非常に素晴らしいと思います。実際、スクレイピングする人の9割は、Kimonoを利用すれば解決するでしょう。もちろん、Kimonoでは解決できない問題も多数あります。だからと言って、オーダメイドのスーツのようなものを万人に勧めるのは間違いです。既成品では満足できない人にこそ、オーダーメイドが必要なのです。
 SIerに身をおく自分としては、今後のIT市場の方向性がはっきり見えてきて正直怖い部分もあります。一方で便利なサービスが容易に利用できて、楽しみな側面があります。それらを組み合わせて、何を実現するのか。その辺りを考えていこうと思います。
 最後に、半年かけて手掛けてきたクローラー本の発売を目前に控えた自分としては、この発言が一番印象的でした。
私も同感です。


See Also:
RubyでWebスクレイピングの話をしてきました。第1回Webスクレイピング勉強会@東京
「第2回Webスクレイピング勉強会@東京」に参加&発表してきました
プログラミング・レスで5分でサックリWebスクレイピング「kimonolabs」
『Rubyによるクローラー開発技法』を書きました


参照:
マウスでなぞるだけで、あらゆるデータ取得をAPI化——Y Com出身のスタートアップKimono Labsにインタビュー - THE BRIDGE(ザ・ブリッジ)
第2回Webスクレイピング勉強会@東京 に参加してきた #東京スクラッパー | Developers.IO
第2回Webスクレイピング勉強会@東京(全3回) - connpass
2014/08/17 第2回Webスクレイピング勉強会@東京 #東京スクラッパー - Togetterまとめ

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例