サンプル・プログラムの解説:日本語形態素解析Webサービス |
|
|
0021: /** |
|
|
WebAPI「日本語形態素解析 Web サービス」(Yahoo!JAPAN)を利用するため、アプリケーション ID を取得する必要がある。http://api.search.yahoo.co.jp/webservices/register_application から無料で取得できる。 取得した ID は変数 $ApplicationID に格納すること。 |
|
0186: /** |
|
「URL で与えられたコンテンツから単語を切り出し、出現頻度を数える」処理は、「PHP で形態素解析を行う」で作成したユーザー関数 getParse をほぼそのままの形で使う。
ただし今回、検索対象とするのは名詞だけにすることを考えているので、filter を指定できるように、引数に $filter を追加している。 |
サンプル・プログラムの解説:ワードクラウドの作成 |
|
|
0267: /** |
|
|
ワードクラウドを作成する処理は、「PHP で『kizasi.jp』を利用する」で使った表示ルーチン"putTitle" からだいぶ変更した。ここでは、表示文字サイズは、計算式を使って算出することにした。
単語の最多出現頻度を C1、最小出現頻度を C2、ある単語の出現頻度を N、表示する文字フォントサイズ(%)を S とすると、 S = 30 ÷ (C1 - C2) * N * N + 80で計算することにした。 これは、ある単語の出現回数 N が増えると、回数の二乗に比例して文字サイズが大きくなるというものである。当初、単純比例で大きくしようとしたのだが、それでは頻度による大きさの違いがそれほど目立たなかったので、二乗に比例するようにした。 また、あまりにも大きくなりすぎるのも困るので、変数 $max_fsize で制限を設けるようにした。 |
|
0256: /** |
|
ただ文字サイズを変更して並べるだけでは面白くないので、個々の単語にリンクを張ることにした。
ここでは、その単語を Google 検索に投げ、その際に site で絞り込み検索を指定するようにした。$site には自サイトの URL を入れておけばいいだろう。 |
サンプル・プログラムの解説:コンテンツの取り出し |
|
|
0162: /** |
|
|
ユーザー関数 getParse に渡すコンテンツを URL から取り出す必要がある。 これには少し工夫が必要だ。 まず、URL の全体を getParse に渡すのは非合理的だ。ヘッダやフッタなど、コンテンツとして分析する必要がない部分も含まれてしまう。 たとえば、「ぱふぅ家のホームページ」の場合、以下のコメントで囲まれた部分に本文が入っている。 <!-- 本文 -->これ以外の部分はヘッダやメニューであるため、コンテンツには含めたくない。 そこで用意したのがユーザー関数 my_get_contents である。 まず、関数 file_get_contents を使ってコンテンツ全体を変数 $instr に取り込む。 次に、 preg_match を使って、解析したい本文だけを切り出す。 最後に、関数 strip_tags 、 strip_tags 、 strip_tags を使い、HTML や PHP のタグ、特殊文字、改行・タブなどを消去しておく。 ユーザー関数 my_get_contents については、解析したサイトの状況に合わせて変更してほしい。 なお、「ぱふぅ家のホームページ」以外については、ヘッダやフッタを含めて解析するように変更した。 |
|
|
|
|
|
2008年10月11日 作成
2009年06月20日 更新
Copyright by studio pahoo, (C)2009
(※)本ページはリンクフリーですが、複製・転載時にはご一報ください。 ★本ページへのご意見・ご質問・お便りは、ここをクリックしてください。 |