第 6 章 Web データ管理 67
6.4 Web 標準フォーマット
6.4.4 言語解析
基本ブロック
footer block内に“copyright”,“HOME”等特定の文字列を含む block終了がページ末尾から100文字以内
block開始がページ末尾から300文字以内
(ページ先頭からblock上端までの距離) / (bodyタグの高さ)≥0.6 (以上全てを満たす) header index.*への内部リンクをもつ
block開始がページ先頭から100文字以内 block終了がページ先頭から300文字以内
(ページ先頭からblock下端までの距離) / (bodyタグの高さ)≤0.4 (以上全てを満たす) link 自分以下の66%以上のblockにaタグを含む繰り返し構造をもつ image 自分以下の80%以上のblockの葉ノードがimgタグ
maintext テキストの長さが200文字以上
句読点または“の”以外の助詞の全形態素に占める割合が5%以上 (以上いずれか満たす) form block以下にformタグを含む
unknown 上記以外の領域 サブブロック
profile “プロフィール”,“ユーザ名”,“名前”など特定の文字列を 自分以下のblockに2個以上含む
address “住所”,“連絡先”,“TEL”など特定の文字列を自分以下の blockに2個以上含む
6.4.3.5 領域判定
最後に6.4.3.4節で分割した各ブロックに対してその領域名を判定する.
各領域の判定アルゴリズムを表6.4に示す.基本ブロックに属する領域は表6.4の上から順に条件に適 合するかしないかを判定する.すべてのブロックに基本ブロックの領域名が割り当てられたのち,サブブ ロックに属する領域の判断を行う.ただし,図6.12のようにインライン要素が連続する場合はそれを一 つの領域にまとめる.この例の場合は6.4.3.4節のアルゴリズムで分割された
. . .-a-br-br-br-br-b-. . .
の部分をmaintext領域としてまとめる.
図6.13,6.14のwebページに対して領域判定を行った結果を図6.15,6.16に示す.
6.4 Web標準フォーマット 83
図6.12 インライン要素を1つの領域としてまとめる例
図6.13 Webページとそのメタデータ(1)
図6.14 Webページとそのメタデータ(2)
形態素解析とは文を形態素に分割し,それぞれの形態素に品詞を付与する処理のことである.ここでは
図6.15 構造解析を行ったページの例(1) 図6.16 構造解析を行ったページの例(2)
赤ちゃん あかちゃん 赤ちゃん 名詞6普通名詞1*0*0 ”カテゴリ:人 ドメイン:家庭・暮らし 代表表記:赤ちゃん/ あかちゃん”
の の の 助詞9接続助詞3*0*0 NIL
虫歯 むしば 虫歯 名詞6普通名詞1*0*0 ”カテゴリ:動物-部位 ドメイン:健康・医学 代表表記:虫歯/むしば” を を を 助詞9格助詞1*0*0 NIL
防ぐ ふせぐ 防ぐ 動詞2*0子音動詞ガ行4基本形2 ”代表表記:防ぐ/ふせぐ”
。 。 。 特殊1句点1*0*0 NIL EOS
図6.17 「赤ちゃんの虫歯を防ぐ。」をJUMANで形態素解析した結果
子供 こども 子供 名詞6普通名詞1 * 0 * 0 ”カテゴリ:人 代表表記:子供/こども”
服 ふく 服 名詞6普通名詞1 * 0 * 0 ”漢字読み:音 カテゴリ:人工物-衣類 ドメイン:家庭・暮らし 代表表記:服/ふく” を を を 助詞9格助詞1 * 0 * 0 NIL
せんたく せんたく せんたく 名詞6サ変名詞2 * 0 * 0 ”カテゴリ:抽象物 ドメイン:家庭・暮らし 代表表記:洗濯/せ んたく”
@せんたく せんたく せんたく 名詞6サ変名詞2 * 0 * 0 ”カテゴリ:抽象物 代表表記:選択/せんたく” する する する 動詞2 * 0サ変動詞16基本形2 ”付属動詞候補(基本) 代表表記:する/する”
。 。 。 特殊1句点1 * 0 * 0 NIL EOS
図6.18 「子供服をせんたくする。」をJUMANで形態素解析した結果
形態素解析器JUMAN*3を例にして説明する.
「赤ちゃんの虫歯を防ぐ。」という文の解析結果を図6.17に示す.一行が一形態素に相当し,各行は以 下の情報からなる.
表記 読み 原形 品詞 品詞番号 品詞細分類 品詞細分類番号 活用型 活用型番号 活用形 活用形番号 意味情報
*3http://nlp.kuee.kyoto-u.ac.jp/nl-resource/juman.html
6.4 Web標準フォーマット 85
#S-ID:1 KNP:3.0-20080214 DATE:2008/04/21 SCORE:10.00000
* 1D <SM-主 体><SM-人><BGH:赤 ち ゃ ん/あ か ち ゃ ん><文 頭><助 詞><連 体 修 飾><体 言><係:ノ 格><区 切 :0-4><RID:1069><正規化代表表記:赤ちゃん/あかちゃん><主辞代表表記:赤ちゃん/あかちゃん>
+ 1D <SM-主 体><SM-人><BGH:赤 ち ゃ ん/あ か ち ゃ ん><文 頭><助 詞><連 体 修 飾><体 言><係:ノ 格><区 切 :0-4><RID:1069><名詞項候補><先行詞候補><係チ:非用言格解析——用言&&文節内:T解析格-ヲ><正規化代表表記: 赤ちゃん/あかちゃん>
赤ちゃん あかちゃん 赤ちゃん 名詞6普通名詞1 * 0 * 0 ”カテゴリ:人 ドメイン:家庭・暮らし 代表表記:赤ちゃん/ あかちゃん”<カテゴリ:人><ドメイン:家庭・暮らし><代表表記:赤ちゃん/あかちゃん><正規化代表表記:赤ちゃん/あか ちゃん><文頭><かな漢字><名詞相当語><自立><内容語><タグ単位始><文節始><文節主辞>
の の の 助詞9接続助詞3 * 0 * 0 NIL<かな漢字><ひらがな><付属>
* 2D<BGH:虫歯/むしば><ヲ><助詞><体言><係:ヲ格><区切:0-0><RID:1118><格要素><連用要素><正規化代表表
記:虫歯/むしば><主辞代表表記:虫歯/むしば>
+ 2D <BGH:虫歯/むしば><ヲ><助詞><体言><係:ヲ格><区切:0-0><RID:1118><格要素><連用要素><名詞項候補
><先行詞候補><正規化代表表記:虫歯/むしば>
虫歯 むしば 虫歯 名詞6普通名詞1 * 0 * 0 ”カテゴリ:動物-部位 ドメイン:健康・医学 代表表記:虫歯/むしば”<カ
テゴリ:動物-部位><ドメイン:健康・医学><代表表記:虫歯/むしば><正規化代表表記:虫歯/むしば><漢字><かな漢字><名
詞相当語><自立><内容語><タグ単位始><文節始><文節主辞>
を を を 助詞9格助詞1 * 0 * 0 NIL<かな漢字><ひらがな><付属>
* -1D<BGH:防ぐ/ふせぐ><文末><句点><用言:動><レベル:C><区切:5-5><ID:(文末)><RID:112><提題受:30><主
節><正規化代表表記:防ぐ/ふせぐ><主辞代表表記:防ぐ/ふせぐ>
+ -1D<BGH:防ぐ/ふせぐ><文末><句点><用言:動><レベル:C><区切:5-5><ID:(文末)><RID:112><提題受:30><主
節><正規化代表表記:防ぐ/ふせぐ><主題格:一人称優位>
防ぐ ふせぐ 防ぐ 動詞2 * 0子音動詞ガ行4基本形2 ”代表表記:防ぐ/ふせぐ”<代表表記:防ぐ/ふせぐ><正規化代表 表記:防ぐ/ふせぐ><表現文末><かな漢字><活用語><自立><内容語><タグ単位始><文節始><文節主辞>
。 。 。 特殊1句点1 * 0 * 0 NIL<文末><英記号><記号><付属>
EOS
図6.19 「赤ちゃんの虫歯を防ぐ。」をKNPで構文解析した結果
また,「@」から始まる行は曖昧性のある形態素を表す.例えば,「子供服をせんたくする。」の「せんた く」には「選択」と「洗濯」の曖昧性があることがわかる(図6.18).
■代表表記
この節では,JUMANが出力する代表表記について述べる.代表表記とは,表記の揺れを吸収するため に各形態素に与えられるIDである.「代表表記」と呼んでいるが,形態素の代表的表現を主張するもので はない.
代表表記は,表記と読みを「/」で連結したものであり,例えば,「子供」「こども」「子ども」には代表表 記「子供/こども」,「大根」「ダイコン」「だいこん」には代表表記「大根/だいこん」,「表す」,「表わす」,
「あらわす」には代表表記「表す/ あらわす」が与えられる.
6.4.4.2 構文解析
構文解析とは,形態素解析の結果を入力とし,それらを文節単位にまとめ,文節間の係り受け関係を決 定する解析のことである.ここでは構文解析器KNP*4を例にして説明する.
「赤ちゃんの虫歯を防ぐ。」という文をKNPで解析した結果を図6.19に示す.「#」から始まる行はコ メント,「*」から始まる行は文節,「+」から始まる行は基本句(後述),それ以外の行は形態素の情報を表 す.文節,基本句の行は,係り先の文節/基本句のIDと係り受けタイプ,素性列からなる.係り受けタイ プとしては,並列(P),同格(A),それ以外(D)の3種類がある.
■基本句
基本句とは格・省略解析などにおける処理の基本単位である.基本句は内容語1つを核とする形態素列 である.
*4http://nlp.kuee.kyoto-u.ac.jp/nl-resource/knp.html
!" #$
%&'(
)*+,
,-!"#
,!"#
./!"#
0 1
#$
#2
#$
34
567$%#&'
,!"#
89!"#
:;!"#
<=7!"#
>?@1A=B7!"#
#$
図6.20 「赤ちゃんの虫歯を防ぐ。」をSynGraph構造に変換した例(灰色は基本ノードを,白は SYNノードを意味する)
■内容語
内容語・準内容語とは機能的でない形態素に付与される素性である.準内容語は基本句として独立しな いが,何かしらの意味を保持する接尾辞である.
6.4.4.3 同義語・句のアライメント
「赤ちゃん」と「赤子」,「一番近い」と「最寄り」のように同じ意味を表す表現は多く存在する.これら の表現を関連付ける(アライメント)ことは,情報検索や機械翻訳などのアプリケーションを考えた場合 重要である.同義語・句のアライメントとは,入力文に対して,事前に辞書等から獲得した同義語・句を 関連付ける処理を呼び,ここではSynGraph[5]を例に説明する*5.
SynGraphとは,文と文の柔軟なマッチングを実現するために,入力文における語・句の同義・上位下
位関係を関連付けるツールである.同義・上位下位関係は,国語辞典,Webコーパスから自動獲得した ものを用いている.これらを効率的に扱えるように,WordNetにおけるSynSet同様,同じ意味に属す 表現の集合にID(SynID)が付与されており,このIDを入力文中の語句に関連付ける.図6.20に「赤 ちゃんの虫歯を防ぐ。」をSynGraphにより解析した結果を,図6.21にツールの実際の出力を示す.
SynGraphはKNPの基本句を単位としてアライメント処理を行う.入力文中の語・句が多義であった
場合,複数の同義語・句(Synノード)が関連付けられる.また,複数の基本句に対して一つの同義語・
句が付与される場合があり,例えば,「一番 近い」という2つの基本句に対して<最寄り>というSynノー ドが付与される.
「!!」で始まる行はSYNノード群に共通の素性を表わし,「!」で始まる行はSYNノードの情報を表す.
それぞれ以下のようなフォーマットとなっている.
!! (対応する基本句のID) (係り先の基本句のID)(係り受けタイプ) (文法素性列)
! (対応する基本句のID) (文法素性列)
付与される文法素性としては,<上位語>,<反義>,<否定>,<受身>,<尊敬>,<可能>などがある.
また,各ノードは元の表現とどれくらい似ているかを反映したスコアを持つ.現在は,同義関係であれ ば0.99,上位関係であれば0.7としている.例えば,<SYNID:s116:乳飲み子/ちのみご>は「赤ちゃん」と 同義関係にあるのでスコア0.99を持ち,<SYNID:s2914:子女/しじょ>は<SYNID:s14638:虫歯/むしば>
*5詳細については当該論文を参照されたい.