1 Boolean retrieval
Download
Report
Transcript 1 Boolean retrieval
IIR輪講復習
#2 The term vocabulary
and postings lists
お知らせ
たつをさんによる補足情報
http://chalow.net/clsearch.cgi?cat=IIR
復習資料おきば
http://bloghackers.net/~naoya/iir/ppt/
参考
http://wwwcsli.stanford.edu/~hinrich/informationretrieval-book.html
本資料は書籍の輪読会に向けたサマリ
資料内で一部上記ドキュメントからの引用あ
り
第2章前半の概要
インデクシング前の前処理
Document delineation
リニアな文字列へのデコード
ドキュメント単位の決定
The vocabulary of terms の決定
トークナイズ
ストップワード
正規化
ステミング / lemmatization
1. Document delineation
リニアな文字列へのデコード
ドキュメントの単位を決める
リニアな文字列にデコード
bytes → linear sequene of characters
エンコーディング
ASCII は trivial。UTF-8 などをどうするか
ヒューリスティクス
ユーザーに選択させる
メタデータ
様々なフォーマット
Word Doc, zip, ppt, PDF, XML ...
ドキュメントの種類に合わせて前処理する
リニアな並びでない言葉
アラビア語
digital representation に変換できる
ドキュメントの単位を決める
粒度の違うドキュメント群
ファイル
UNIX の mbox (1つのファイルに複数のメール)
Zip (1つのファイルに複数のファイル)
ppt (mbox とは逆、全体を一つに扱いたい)
“Index granularity” (インデックスの粒度)
Precision と recall のトレードオフ
目的に合わせてちょうどよい単位にする
そのためにはドメインをよく知ること
例: ウェブ検索 → HTMLページ1枚で1件、ppt や
pdf は複数ページで1件
2. the vocabulary of terms を決める
必要な作業
トークナイズ
ストップワードの導入
正規化
ステミング / 分類整理 (lemmatize)
トークナイズ
トークナイズ
Friend, Romans, Countrymen, lend me
your ears
Friends | Romans | Countrymen |
lend | me | your | ears
様々な問題
どこで区切るか問題
専門用語問題
ハイフネーション問題
ホワイトスペース問題
言語固有の問題
どこで区切るか問題
区切りが分からない
“Mr. O’Neil”
aren’t
対策方法
クエリとドキュメント解析で同じトークナイ
ザを使う
区切りと言語判定
区切りは言語毎の問題
言語判定重要
短い文字列で十分判定できる
特徴的なパターン
専門用語問題
専門用語
C++, C# や B-52, M*A*S*H
コンピュータ関連
[email protected]
142.32.48.231
1Z9999W998453999981 (トラッキング番号)
専門用語問題への対策
インデクスから取り除く方法もあり
ただし、検索の際の大きな制限になる
メタデータとして別にインデクス化
semantic type が明らかなもの
メールの日付など
→ 6.1
ハイフネーション問題
“Hewlett-Packard”
“co-education”
“the hold-him-back-and-drag-himaway maneuver”
ホワイトスペース問題
ホワイトスペース問題
Los Angels
White Space / whitespace
ハイフネーション問題と一部共通
over-eager / over eager / overeager
ハイフネーション / WS への対策
妥協案
以下を同じ term とみなす
over-eager
“over eager”
overeager
ユーザーにハイフンを使わせる
もっと良い方法は?
equivalence classing
言語ごとの問題
言語固有の問題
ドイツ語
中国語
etc ..
日本人涙目
単語境界がない
漢字とひらがなとカタカナ
日本語は難しい。自然言語処理重要。
日本語のトークナイズ手法例
大規模ボキャブラリから最長マッチ
機械学習 (e.g 隠れマルコフモデル)
N-gram
ストップワード
ストップワード
the, as, a, an ...
ただし、やりすぎ良くない
ストップリスト
出現頻度でソートして手で作る
Web検索では使われない
近年の IR システムではコストでない
圧縮、rank、impact sorted indexes
See Also: 5.3, 6.2.1, 7.1.5
正規化 (Normalization)
正規化
USA == U.S.A.
term を、表層的に違っても意味は同じと
みなすこと
equivalence classing
以下を同じ単語として扱う
anti-discriminatory
antidiscriminatory
後者に同じ
Query Expansion に比較すると、機械的な
処理
Query Expansion
query expansion
equivalence classing より柔軟
同意語の関係辞書を作る (人手、機械学習)
car = automobile
詳しくは 9 章で
Query expantion の方法 x 2
Unnormalized なままインデクシング、
クエリ拡張リストを別に用意
○ 空間
× 時間
インデクシング中に対応辞書を作る
× 空間
○ 時間
やりすぎよくない
equivalence classing も query
expansion もやりすぎはよくない
○ U.S.A → USA
× C.A.T → cat
よくやる正規化の一部#1
ステミングと lemmatization
後述
よくやる正規化の一部#2
アクセント記号、発音区別記号
記号を削除
ユーザーは多くの場合 non-ASCII テキストは入力しないから
大文字と小文字
全部小文字にする
英語のヒューリスティクス
ほとんどのユーザーは小文字で検索する
「タイトルに出てくる全大文字もしくは殆ど大文字」「文中のセ
ンテンスの capitalize されているもの」は残す
英語での問題
ne’er => never, colour => color
日付 3/12/91 = Mar. 12 1991 ...
英語以外の言語での正規化
Other languages 重要
WWW の 6割英語、4割が他言語
今後も他言語は増えていく
英語 blog は全世界で 1/3 でしかない
Equivalence classing においてそれぞれの言語
で固有の問題
言語に特化したトークナイズ、正規化を行う
日本語が良い例
複数言語が混在しているドキュメントへの対応
ステミングと
Lemmatization
Stemming / Lemmatization
語尾変化や派生などに対応する方法
am, are, is => be
car, cars, car’s, cars’ => car
equivalence classing の手法に含まれる
ステミング (Stemming)
基本語尾を chop
アルゴリズムはあるものの、形態素解析
などは行わない (文脈判断はあまりしな
い)
Porter 1980
Lovins 1968
Paice 1990
ステミング例
例
caresses => caress
ponies => poni
cats => cat
正確なステミングの結果ではなく、
equivalence classes になるのが重要
Lemmatization
形態素解析を行い “lemma” を求める
問題点
ステミングよりも正確だが、パフォーマンス
のトレードオフが大きい
equivalence classing を構築するという観
点ではステミング以上の効果はそれほど大き
くない
今回のまとめ
インデクシング前の前処理の詳細
実装にはそこまで踏み込まず
文字列へのデコード
トークナイズと正規化
Practical か本格的にやるか
多くをカバーできるなら Practical に
日本語は日本語に特化した文献を参照す
る必要がありそう