半構造化文書に対する木構造と文字列
を組合せたラッパーの自動生成法
山田泰寛* 池田大輔** 廣川佐千男**
*九州大学大学院システム情報科学府
**九州大学情報基盤センター
発表手順
 コンテンツ抽出プログラム:ラッパー
 PLRラッパー
 PLRラッパーの自動生成法
 実験
 まとめと今後の課題
背景
異なるサイト間の情報を比較
たくさんのリンクを巡る
情報を記録・記憶
手間と時間がかかる
背景
自動的に統合
容易に比較が可能
(1)発見・収集 (2)抽出・整列 (3)統合
サイトごとにテンプレートが異なる
ラッパー
 1サイト上のWebページで同種の内容を含み、
大量に存在するものから、同種の内容を抽出
するプログラム

同一のテンプレートを持つ
ラッパー生成問題
 与えられた1サイト上のWebページの集合
から、同種の内容を抽出するためのルール
を作成する問題
 入力:同種の内容を含むWebページの集合
 出力:ルールの集合
ラッパー生成のポイント
 コンテンツ部分の特定


ページ中に広告や無関係な情報が含まれる
GUIや訓練例による半自動的な手法
 ルールの表現方法

文字列ベース


LRラッパー(Kushmerickら, 1997)
木構造ベース

Treeラッパー (村上ら, 2001)
LRラッパー
.....
<font size=“5”>廣川佐千男</font>
.....
<a href=“mailto:[email protected]>
Address: hirokawa.xxx.jp</a>
.....
<font size=“5”>山田泰寛</font>
.....
<a href=“mailto:[email protected]>
Address: [email protected]</a>
.....
項目を囲んでいる
左・右区切文字列で特定
同じ項目を囲む区切文字
列は同一
名前
左区切文字列: 5“>
右区切文字列: </f
LRラッパーの問題点
.....
<font size=“5”>廣川佐千男</font>
.....
<a href=“mailto:[email protected]>
Address: [email protected]</a>
.....
<font size=“5”>山田泰寛</font>
.....
<a href=“mailto:[email protected]>
Address: [email protected]</a>
.....
メールアドレス
左区切文字列: “>
右区切文字列: </a
左区切文字列が
特定できない
Treeラッパー
body
木構造のパスを用いて表現
font
a
font
a
名前
<body>-<font>-TEXT
メールアドレス
< body>-<a>-TEXT
廣川佐千男
山田泰寛
Address: [email protected]
Address: [email protected]
Treeラッパー問題点
body
font
a
font
a
Address: [email protected] Address: [email protected]
不必要な文字列まで抽出する
統合の際にノイズとなる
PLRラッパー
 PLR(Path-Left-Right)ラッパー


木構造によるパスの特定
左・右区切文字列
メールアドレス
パス < body>-<a>-TEXT
左区切文字列 Address:
右区切文字列 NULL
body
a
Address: [email protected]
a
Address: [email protected]
発表手順
 コンテンツ抽出プログラム:ラッパー
 PLRラッパー
 PLRラッパーの自動生成法
 実験
 まとめと今後の課題
高頻度部分(赤)と低頻度部分(黒)に分ける
ラッパー生成アルゴリズム
境界を決め、
ルールを抽出
(1) コンテンツ部分特定
入力:1サイト上の
複数の半構造化文書
出現頻度の低い
ルールを捨てる
(2)ルール抽出
出力:ルール
ルール
(3)不要なルールの削除
コンテンツ部分特定
高頻度部分(赤)
文字列
低頻度部分(黒)
対応
対応
構造記述部分
コンテンツ部分
 高頻度部分:頻度の高い部分文字列の現れる部分
 部分文字列の長さ n と頻度の上位 a (%)の決定

頻度の高い部分文字列が構造部分に現れるように
コンテンツ部分特定
 長さ n が小さいとき

文書1
文書2
文書3
頻度の高い部分文字列は構造記述・コンテンツ
部分の両方に現れる
コンテンツ部分特定
 長さ n が大きいとき


文書1
文書2
文書3
コンテンツ部分の頻度が下がる
頻度の高い部分文字列は構造記述部分のみに現れる
位置による頻度
(a) 長さ 2
(b) 長さ 5
コンテンツ部分特定
 長さ n が大きすぎるとき


文書1
文書2
文書3
構造記述部分の頻度が下がる
再び、頻度の高い部分文字列は構造記述・コンテンツ
部分の両方に現れる
コンテンツ部分特定
n: 小
a: 小
n: 小
a: 大
n: 大
a: 小
n: 大
a: 大
n: 大きすぎる
分割がうまく行なわれないときは、境界の数が大きい
交代数 (山田他、Discovery Science 2001)
長さ n と割合 a の決定
初期状態(n,a)は(2,1)
2
3
4
1
2
n
n+1
長さ
(n, a)の交代数と
(n+1, a)、(n, a+1)の交代数を比較
a
a+1
極小の交代数をとる時、長さnと頻度の上位aは十分大きいと判断
%
出力例
 例1
 例2
高頻度部分(赤)と低頻度部分(黒)に分ける
ラッパー生成アルゴリズム
境界を決め、
ルールを抽出
(1) コンテンツ部分特定
入力:1サイト上の
複数の半構造化文書
出現頻度の低い
ルールを捨てる
(2)ルール抽出
出力:ルール
ルール
(3)不要なルールの削除
ルールの生成
 パスの特定


入力文書を木構造に展開
低頻度部分(黒)を含むノー
ドのパスを特定
ルールの生成
 区切文字列の抽出




前ステップで特定されたパスで特定されるノード
左区切文字列は、高頻度部分と低頻度部分の境界から前
に出現する文字列で共通する最長の文字列
右区切文字列は、低頻度部分と高頻度部分の境界から後
に出現する文字列で共通する最長の文字列
共通する文字列が無い場合は“NULL”
[email protected]
[email protected]
[email protected]
左区切文字列“アドレスは”
右区切文字列“です。”
高頻度部分(赤)と低頻度部分(黒)に分ける
ラッパー生成アルゴリズム
境界を決め、
ルールを抽出
(1) コンテンツ部分特定
入力:1サイト上の
複数の半構造化文書
出現頻度の低い
ルールを捨てる
(2)ルール抽出
出力:ルール
ルール
(3)不要なルールの削除
不要なルールの削除
 有用な項目の判断


項目の出現に注目
ある文書には現れ、ある文書には現れない項目
 半数以上の文書から抽出できるルールを採用
高頻度部分(赤)と低頻度部分(黒)に分ける
ラッパー生成アルゴリズム
境界を決め、
ルールを抽出
(1) コンテンツ部分特定
入力:1サイト上の
複数の半構造化文書
出現頻度の低い
ルールを捨てる
(2)ルール抽出
出力:ルール
ルール
(3)不要なルールの削除
発表手順
 コンテンツ抽出プログラム:ラッパー
 PLRラッパー
 PLRラッパーの自動生成法
 実験
 まとめと今後の課題
実験
 産経新聞(日本語, 50ファイル)

本文, 日付, 見出し, ジャンル
ジャンル <html><head><title>TEXT
SankeiNULL
 Altavista(英語, 50ファイル) Sankei-international



検索結果の件数
左区切文字列“We_found_”
右区切文字列“_results”
We_found_187,302_results
失敗例(1)
 左・右区切文字列特定の問題点

産経新聞の日付
日付


<html><body bgcolor><i><b>TEXT
2002.01.1
NULL
項目部分が区切文字列の一部に含まれる
項目部分の一部が高頻度部分に含まれること
が原因
<!---★今日の日付に--->2002.01.12</b></i>
日にちの1の位のみ低頻度部分
失敗例(2)
 同一ノードに複数の項目


例 日付とセキュリティホールの種類
左・右区切文字列特定の問題点
[_2003,09,18_]_openssh_にセキュリティホール
いづれの項目も、左区切文字列“[_”
右区切文字列“_にセキュリティホール”
2つの項目が同時の項目として抽出される
Treeラッパーの問題点
<blockquote>
段落1<p>
段落2<p>
段落3<p>
</blockquote>
産経新聞の本文部分
段落ごとにタグがはさまれている
本文全体ではなく、段落ごとに抽出
Treeラッパーの問題点
同じ項目にタグが挟まれている場合に、細かく分かれてしまう
ただし、全体として抜き出すほうがいいのか、
細かく抜き出すほうがいいのか判断が難しい
まとめ
 PLRラッパーの自動生成法



Treeラッパー + LRラッパー
項目部分を含むノードのパス
前後に共通する左・右区切文字列
 実験

不要な文字列の削除に成功
今後の課題
 境界特定の精度の向上


不要部分と項目部分
問題点:項目部分が区切文字列に含まれる
 複数の項目の分離

共通部分特定に改善の必要あり
 項目の抽出に成功した後

異なるサイト間の同種の項目の統合
ダウンロード

発表資料