#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 に
 日本語は日本語に特化した文献を参照す
る必要がありそう