2008年、Webは文字列解析で変わっていくまとめサイト2.0(2/8 ページ)

» 2007年12月28日 10時44分 公開
[大澤文孝,ITmedia]

形態素解析で分析する

 まずは、自動的に話題のキーワードを作り出すための全体的な流れから説明しよう。この流れは、図2のようになる。

1)Webサイトに接続し、コンテンツを総舐めする

 まずは、目的のWebサイトに接続し、コンテンツを総なめする。これは、いわばWeb自動巡回ソフトのように、Webページに含まれるリンク先を探し出して、そのリンク先まで探ることを意味する。

 今回は、WWW:Mechanizeというモジュールを用いて自動巡回を実現することにする。

2)形態素解析する

 1)で得たHTMLコンテンツからキーワードとなり得るものを抜き出す。ここで、幾つかの工夫が必要となる。

2.a)HTML全体を解析しても意味がない

 HTML全体には、「どのページでも同じ内容」が入っていることが多い。例えば、「DTD宣言」はもちろん、「ヘッダ」や「フッタ」、場合によっては、「広告エリア」もあるだろう。つまりHTML全体を解析するのではなく、そのページごとの「本文となっている部分」だけを解析しないと適切な結果とならない。

 本文となっている部分を抜き出すには、スクレイピングの技術を用いればよい。今回は、前週説明した「Web::Scraper」を用いてCSSセレクタで抽出しよう。

 また言うまでもないが、解析の対象となるのは、「テキストだけ」だ。HTMLタグを取り除いて解析しないと、「div」や「p」といった文字が、最頻出キーワードになってしまう可能性がある。

2.b)形態素解析する

 統計を行うためのテキストを抽出したら、それを形態素解析する。

 形態素解析とは、文を「名詞」「助詞」「動詞」「形容詞」といった品詞に分解する操作だ。より簡単にいえば、「てにをは」などで語句をブツ切りする操作であり「わかち書き」ともいう。

 形態素解析には幾つかあるが、今回は、「MeCab(和布蕪(めかぶ))」という形態素解析エンジンを用いる。

 MeCabは、単純にわかち書きするだけでなく、分割した、それぞれの品詞の種類までわかる。品詞の種類まで分かることは、キーワードを抜き出すという目的において重要だ。というのは、「の」とか「が」といった助詞、そのほか、副詞や形容詞は、キーワードとして適切ではないためだ。

 用途にもよるが、ほとんどの場合、キーワードとして適切なのは「名詞」である。

 そこで、MeCabを用いて形態素解析した結果、「名詞」が見つかったら、その数をカウントするという仕組みで実装していきたい。

図2■Webページを形態素解析してキーワード頻度を調べる

WWW::Mechanizeによるコンテンツの収集方法

 まずは、WWW::Mechanizeを使って自動巡回することから始めよう。

 WWW::Mechanizeは、「Handy web browsing in a Perl object」とうたわれており、このライブラリは、Webブラウザにおける各種操作――フォームへの入力、サブミット、リンク先の取得と移動――をエミュレートする。

 今回は、リンク先をたどるという、いわゆる「自動巡回ソフト」的な使い方をするが、フォーム操作ができるという点から、「Webアプリケーションのテストの自動化」にも、よく使われている。

 WWW::Mechanizeは、CPANで配布されている。cpanコマンドを用いるなどして、インストールしておいてほしい。


# cpan install WWW::Mechanize

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ