ジオコーディング技術による釣りブログの可視化
2007MI032 原田

健太

指導教員

2007MI056 堀山

河野洋輔

浩之

つ述語パターンと組み合わせを行う．

1 はじめに

ここでは，ふたつのベースライン手法と比較し高い近年，MAP と別情報を融合したマッシュアップサイ精度が得られた．また竹市ら [2] は形態素解析ツールのトは多数存在する．釣りに関してのこのようなサイトに釣り場へ行くユーザも少なくないにも関わらず，商業

ChaSen を使用している．
2.2 地名抽出の先行研究
安村ら [3] の手法は，地理的包含関係を考慮して，地名者など一部の人が登録したものしか存在しない．また，の未登録による地名の未抽出に対処している．さらに，

WEB 上には個人ブログなど釣り場情報を含むものが多同じ場所を示す異なる地名の存在にも対処するため，正数存在し，そのなかには雑誌などにも載っていない穴場式名称とは異なる地名を登録している．

情報などが記載されているものも存在する．しかし，ブログにはブロガーの近況など，余計な情報が入ってお2.3 ジオコーディング技術の先行研究
竹市ら [2] の手法は，抽出した地名を東京大学空間情り，必要な情報を調べるのは時間がかかる．

報学研究センターが提供している CSV アドレスマッチ

は WEB 上では様々な釣り場情報が存在し，それを基本研究では，ユーザが釣り情報に関するキーワード

ングサービスを用いてあらかじめ地名テーブルを作成を入力し，検索にヒットした情報を Google Map 上にしておき，緯度経度に変換している．また細川ら [5] の表示できるようにする．Google Map 上に表示する内容

手法は，翻訳対象地名文字列を「地名が指す場所の説明は，地名，ブログ名，ブログにその情報が記載された日文」と拡大して，地図への文書自動配置機能を実現して付，魚名，その釣り場の評価である．また，プラスの評いる．

価を表す釣り場は赤いマーカー，マイナスの評価を表す

3 釣り情報取得取得システムの構築

釣り場には青いマーカーをそれぞれ表示する．このシス

3.1 釣り情報取得取得システムの構築案

テムの実現方法として，収集した釣りブログに対して

ChaSen で作成した魚名テーブルと照合し，関連語を抽

まず，あらかじめ収集しておいたブログを解析プロ出する．データはにほんブログ村で紹介されている釣りグラムに通し，データベースに格納していく．データ

ブログから収集する．関連語として抽出された地名はベースは MySQL を選択した．出力先の地図は，GoogleCSV アドレスマッチングサービスを用いて作成した地

Map を選択した．ここでは本研究の地域情報取得シス
テムの構築手順を (1)〜(6) で示し，図 1 に表示する．
(1) まず準備として釣りブログの記事を wget を用いて名テーブルと照合し，緯度経度に変換する．評価表現の抽出，スコアリングは ChaSen が抽出した単語をあらか収集しておく．この際拡張子が html のものだけ収集すじめ用意した評価語辞書と照合することにより行う．

る．収集した釣りブログのファイルは全て同一ディレク

2 ブログ解析方法の諸研究トリに保存し，Perl プログラムを読み込みやすくする．

ブログ解析技術を用いた論文を紹介していく．表 1 は(2)Perl のプログラムを実行して，収集したブログを解

ジオコーディング技術を用いた研究をまとめたもので析しデータベースに格納していく．この際形態素解析，ある．

地名抽出，魚名抽出，評価表現抽出，評価語のスコアリ

2.1 関連語抽出の先行研究

ング，抽出された地名の緯度経度の照合，全文検索を行

数原ら [1] の手法では一つの話題を入力とし，的確にうためのインデックス作成もこのプログラム内で行う．

イベントマイニングを行うための適切な関連語を抽出し格納していく内容は，ファイル名，魚名，マップに乗せている．抽出方法として以下のように行う．

る地名，評価語のスコア，マップに載せる地名の緯度経（1）ブログ記事から取得した大量の文を対象に，1 文ず度，全文検索を行うための全文インデックスである．

つ係り受け解析を行い，格要素・格助詞・述語をひとつ(3) 実際にユーザーが操作を行う動作で，PHP を用いての組としたパターンの抽出を行う．

ユーザーが検索したい用語をキーワード検査画面に入力（2）抽出された述語パターンについて，それぞれ同一のする．

パターンの頻度を計算する．そして，入力された話題語(4) キーワード検索画面から受け取ったキーワードを検が含まれている述語パターンに注目し，同一の述語を持

索 PHP プログラムに送る．

1

表 1 ジオコーディング技術を用いたシステムの比較
タイトル
抽出対象
抽出データ
抽出方法
ブログにおけるイベントマイニングのた同一パターン
一般ブログ
関連語
めの適切なキーワード抽出 [1]の頻度
観光ブログの評価抽出による地域情報獲
地名，評価
観光ブログ
[3] の手法
得 [2]表現，評価地図への文書自動配置機能の地域内情報
同一パターン
一般ブログ
関連語
発信システムへの適性評価 [5]の頻度

ジオコーディングの手法なし
あらかじめ作成した
地名テーブルを参照
非地理的特徴の活用による位置情報の関連付け

かし釣りブログでは，具体的な住所を抽出できないた
め，地名を抽出し住所を付加させる必要がある．
本研究では，この問題を解決するために，あらかじめ地名テーブルを作成しておき，それを参照することで可能とする．地名テーブルの作成方法は，CSV 形式の住所データを日本郵政のサイトから市町村レベルで取得し，CSV アドレスマッチングサービスを通して地名に緯度経度を付加したテーブルを作成する．そうして抽出した地名をこのテーブルに通すことで， 緯度経度に変換していく．

4 釣り情報取得システムの実装
4.1 釣りブログデータの収集
本研究での釣りブログの収集にあたって，「にほんブログ村-釣りブログ」*1 から収集し行う．収集するブログの記事は東海地方のブログ 100 件と限定した．また，ブログ記事をダウンロードするため，クローラ機能を持つ wget を使用し，「DL.bat」というファイルを作成した．これは「test.txt」内に記述された URL から拡
図1

張子が html となっているものを再帰的にダウンロード

地域情報取得システムの構築する．

4.2 釣りブログの地名抽出(5) 送られてきたキーワードを基に，PHP 上から SQL文をのせてデータベースにアクセスし，キーワードが地名抽出のプログラムを地名抽出プログラム枠内にMySQL に格納されているか検索を行う．検索にヒット示す．地名抽出を行うため，まず chomp ($ ) によっした情報をマップに表示できるようにする．て改行を行うコードの削除を行う．読み込んだファイ(6) データベースに登録してある情報から，地名，魚名，URL を記載した Google Map を作成する．

ルは空白により単語が区切られているため，@blog =split(/\s+/， $ ); によって空白で分割し，配列$blog に1 つずつ格納していく．また$blog[$i] =˜ s/( | )+//g;

3.2 抽出した地名情報のジオコーディング

では全角，半角の空白を削除する．

ブログからの釣り場の情報だけでは具体的な地名が得られない場合がある．そこで，安村ら [3] の手法を用い具体的な地名抽出の方法としては上の枠内で記述される．この手法により例として，地名情報である「名古屋ており，形態素解析で得た結果を用いて行っていく．形市釣り場公園」が未登録であったとしても，上位階層の態素解析の結果における地名の品詞は「名詞-固有名詞-地名である「名古屋」を含んでいるため，「名古屋」を抽地域-一般」と分析されるため，基本的な方針としては，出することができる．またこの場合，ブログエントリをこの文字列が出てきた時，地名の抽出を行うものとす「名古屋市釣り場公園」に対応付けることはできないが，る．ただし例外として，「愛知県愛知郡」という地名が地理包含領域の地名「名古屋」に対応付けすることがで出現した場合，「愛知」という単語を 2 回地名と認識しきる．また，このようにして抽出した地名に，ジオコーてしまい，地名の正確な出現回数が分からなくなってしディング技術の CSV アドレスマッチングサービス使用*1 http://fishing.blogmura.com/

し，緯度経度を付加するためには住所が必要となる．し2

まう．これに対応するため， $hozon = $blog[]; を用い

評価語のスコアリングプログラム

while(<HYO>){
chomp ($_);
を記憶し，地名の後に「県」という単語が出現した場合$ward = $_;は地名抽出を行わないこととした．また地名の出現回数$in = "sukoajisyo．txt";
に関しては，地名が抽出されたとき$ count++; を行い，open(JISYO， $in) or die("can’topen file $in\n");$ count の値を 1 増加させて，地名を chimei-extract．
while(<JISYO>){txt に書き込む．また，もし地名が抽出されなかった場
chomp ($_);
合は，$ count が 0 の場合で，その場合は No place と@data = split(/\s+/， $_);
chimei-extract．txt に書き込まれる．
for($k=0; $k<@data; $k++) {$data[$k] =~ s/( | )+//g;} if($ward eq $data[1]){
地名抽出プログラム$score += $data[0];while(<EXTR>){
print OUT "$ward $data[0] \n";}chomp ($_);
elsif($data[1] eq "EOS"){@blog = split(/\s+/， $_);
print OUT "評価語ではありません\n";}}for($i=0; $i<@blog; $i++) {close(JISYO);}$blog[$i] =~ s/( | )+//g; }for($i=1; $i = 2; $i++){
4.4 釣り情報取得の各プログラムif(($hozon2=~ /名詞-固有名詞-地域-一般/)
釣り情報取得システム構築の際に，4 つのファイルを&& ($blog[0] !~ /県/)作成した．各ファイルの説明し，図 2 で地域情報獲得シ&& ($blog[3] !~ /名詞-一般/)&& ($hozon1 !~ /EOS/)) {ステムの実行例を示す．
$count++;zen.pl: ブログを読み込み形態素解析，地名抽出，魚名print OUT "$hozon1 ";抽出，評価表現抽出，スコアリング，抽出された地名の$hozon1 = $blog[0]; $hozon2 = $blog[3];緯度経度の取得，データベースに各情報の格納を行って
else{$hozon1 = $blog[0];$hozon2 = $blog[3];}いる．kensaku.php: ユーザーが検索したいキーワード
if(($blog[0] =~ /漁港/)を入力する画面．
&&($hozon4 =~ /名詞/)){$count++;
BLOG.php: kensaku.php から受けた取ったキーワード
print OUT "$hozon3$blog[0] ";}をデータベースにアクセスし，ヒットした情報を XML$hozon3 = $blog[0];$hozon4 = $blog[3];last;}
データに変換し，BLOG.php に送る．
else{$hozon3 = $blog[0];map.html: BLOG.php から受けとった XML データを$hozon4 = $blog[3];基に地図作成．
last;}}}
close(EXTR);close(OUT);5 釣り情報取得システムの考察評価て，1 回前に出現した単語と形態素解析が分析した品詞実装したシステムに対してアンケートを実施し，その4.3 評価語のスコアリング結果を基に考察評価を行う．なおアンケートの比較対評価語のスコアリングを行うプログラムを評価語の象として，「にほんブログ村」の中部地方，「釣りなび」スコアリングプログラム枠内に示す．評価語のスコア*2 の東海地域を対象とした．これは，本研究が東海地

リングについては，最初に$ward =$ ; で評価語が入っ方のブログ 100 件を対象としているためである．この 3ているテキストファイルから評価語を読み込む．次に，つのシステムについて，各アンケート項目の実演を実際

open(JISYO， $in) で鍛冶ら [6] のスコア辞書を参考にに見てもらい評価してもらう．アンケートは学生研究室した，釣り用のスコア辞書を開く．これは，釣りの評価の 10 人を対象に実施し，以下の 5 つの項目について，5語には「入れ食い」，「坊主」など釣りの専門用語が使わ段階で評価してもらった．なお (6) は自由回答とした．

れており，そのままでは釣りの評価語を抽出できない(1) ユーザの入力した情報 (地理情報，魚名) からブロためである．while(<JISYO>) の内部で改行を削除し，グの URL，地名，釣れる魚，評価をわかりやすく知る

空白で分割し，@data という配列に内容を格納する．評ことができた．

価語の内容と釣り用のスコア辞書の内容が一致した時に(2) ユーザが入力した情報 (地理情報，魚名) から地名を$score += $data[0]; とすることで，スコアの合計を計算している．また，もし評価語がなかった場合は「評価語ではありません」と出力される．

*2 http://ika.s17.xrea.com/

3

6 まとめ本研究では，WEB 上に存在する未整理のブログからの釣り情報の収集が難しいという問題点を，ブログの形態素解析，地名と評価の抽出をし，GoogleMap 上に表示することにより解決した．
また，各項目の 5 段階評価のアンケートから本システ
ムと他の 2 つのサイトとの性能比較を行った．ブログの
図2

URL，地名，釣れる魚，評価のわかりやすさの項目は3.8，入力した情報から地名を簡単に知ることができた

地域情報獲得システム実行例という項目は 4.9，入力した情報の評価を素早く表示で簡単に知ることができた．

きたという項目では 4.6，検索したい項目を簡単に調べ(3) ユーザが入力した情報の評価を素早く表示できた．

られたという項目では 2.5 という結果を得た．またシス(4) ユーザが検索したい項目を簡単に調べられた．
(5) システムの総合的な満足度 (操作性，情報収集能力，テムの総合的な満足度は 3.4 であった．他の 2 つのサイ

画面の見やすさ，検索時間の長さといった，システムの名，釣れる魚，評価のわかりやすさに関して釣りなびが総合的な評価)．

0.8，検索したい項目の調べやすさに関して釣りなびが(6) 本システムの不満な点，改善点．

2.2 上回る結果となった．

トと比較して低評価だった項目は，ブログの URL，地

表 2 はそれぞれの項目のアンケート結果をまとめた物

また，収集した釣りブログ 100 件の地名の抽出精度にである．にほんブログ村，釣りなび内の () 内の数字は関しては 79% という高い数値を得ることができた．釣本研究とのスコアの差を表している．

りブログは市町村名を記述しているものが多かったた
め，市町村名に重点をおいた抽出方法は釣りブログに関

表 2 各システムのアンケート結果
質問項目 本研究 にほんブログ村 釣りなび

(1)

3.8

1.6(2.2)

4.6(-0.8)

(2)

4.9

2.0(2.9)

1.8(3.1)(3)

4.6

3.8(0.8)

3.7(0.9)(4)

2.5

2.1(0.4)

4.7(-2.2)

(5)

3.4

2.7(0.7)

3.0(0.4)

しては実用的であると考えられる．
今後の課題としては，魚名だけでなく魚のサイズが表示できるようにすること，魚名と同じ人物名などを抽出しないようにすることがあげられる．

参考文献

表 2 からもわかるように，本システムは質問項目 2 と質

[1] 数原良彦, 戸田浩之, 櫻井彰人, ブログにおけるイベントマイニングのための適切なキーワード抽出, 電

問項目 3 では高評価だが，質問項目 1 質問項目 4 は釣子情報通信学会第 18 回データ工学ワークショップ,りなびより低評価である．改善方法としては，地図以外

pp.1-6, 2007.
[2] 竹市絋一郎, 武野佑基, 観光ブログの評価抽出による地域情報獲得, 南山大学数理情報学部情報通信学科 2009 年度, 卒業論文, pp.172-175, 2009.にも，評価の一覧，コメントを含んだ項目の表示などのホームページの改善などがあげられる．また，システムの総合的な満足度という項目では他の 2 つのシステムよ[3] 安村祥子, 池崎正, 渡邉豊英, 牛尼剛聡, blog マッピ
ングを用いたイベント情報抽出, DEWS2007 D8-3,り高評価を得ることができた．しかし，他の 2 つのシステムとのスコアの差はそれほどつかなかった．その理由

pp.1-8, 2007.
[4] 藤村滋, 豊田正史, 喜連川優, 電子掲示板からの評価
表現および評判情報の抽出, 人工知能学会全国大会

としては，人物名などと魚名が同じ場合の対処がしていない，データベースに登録してあるブログの情報量の少なさ，キーワード検索の際の該当しないキーワードが存(第 18 回), 3F1-03, pp.1-4, 2004.
[5] 細川宜秀, 地図への文書自動配置機能の地域内情在する，スコア辞書の得点付けが詳細でないなどがあげられる．本システムはプロトタイプであるため，データ情報を登録し，その他の改善点を改善すれば，他の 2 つ報発信システムへの適性評価, DEIM2010 D7-5,pp.1-8, 2010.
[6] 鍛治伸裕, 喜連川優, 自動構築した評価文コーパスのシステムとの満足度の差は大きくなるのではないかとからの評価表現辞書の構築, 日本データベース学会

考えられる．

Letters Vol.6, No.1, pp.1-4, 2007.

ベースに関東地方などのブログ記事の情報を多く登録していない．よって，データベースに多くのブログ記事の4