02 The term vocabulary and postings lists (pp.19-32)
今日もやる気の神様が降りてきたので読んでみた.相変わらずわかりやすい.
2.1
文書(document)の単位をどうするか,というところから始まる.
まずバイト列をlinear sequenceに直そうねー,というところから始まる.外国人にとってはお涙頂戴の始め方である.メリケンさんの95%はここで首をひねるだろう「なんでそんなことが難しいのか?」
次に出てくる単語(token)への分割あたりでアラビア語の例が出てくる.右から読むのだけれど,アラビア数字は左から読むらしい.大変ですな.
詳細は省くけれど,とにかく説明が丁寧.すべてのケースを網羅しているわけではないけれど,そこまで説明するんだ,と思うことが多い.
- ひとつのファイルを複数の文書に分割したい
- mbxとか
- 逆に複数のファイルをひとつの文書として扱いたい
- html化されたpptスライドとか
2.2 Determining the vocabulary of terms
2.2.1. Tokenization
要点)トークン化は言語依存で,作者泣かせでFA.
言葉の定義たち
- token
- ある文書中における意味を持つ単位の文字列
- type
- 一言でいうとtokenのクラス.tokenの種類.
- term
- 検索システムに登録されている単語.tokenが(ときに激しく,ときに切なく)正規化されたもの
- スペースで区切っていいんかねー
- ハイフンどうしようかー
- ゲルマンは形容詞と名詞がくっつくっぽい.
- そういう言語にはword segmentationという技術があります.
- 日本語の例が「和尚」って(笑
トークン化が厳しかったら,もうひとつのアプローチとして,word-based indexingを諦めて,character k-gramsがありますよ.
2.2.2. 不要語の除去
不要語の選択方法について詳細な解説はなし.後述します,が多すぎ.
general trend...とか,easy way...という出だしが多い.つまり良くも悪くも無難なハナシ.刺激が欲しい年頃の人には向かないかも.
2.2.3. 正規化 (normalization)
- equivalence classを作って吸収する
- 非正規化token同士の関係を保持
- 非正規化単語が出現した時点で「別の単語としてもindexしておく」
- 例)carをautomobile”としても”登録しておく
以下,細かい話が続く.ここまで細かい話をする必要があるのだろうか?
- アクセント記号どうしよう
- 大文字・小文字どうしよう
- 日付表現,IPとかどうしよう
結局他言語が多いよ,という説明ののちに,色々な言語が抱える問題について簡単に紹介.
- フランス語圏でも契約文書に英語が含まれているから言語判定が難しいよねー
- 日本語はかな,カナ,漢字が混同している.カオスwww
- BeijingとPekingって一緒の意味なんだぜ
ひとつの解決方法として音声記号で考えるというアプローチがある.
- Soundex algorithm
聞いたことないや.
と,ここまでで13.5P/1時間.昨日より少し速く読めるようになったー.
今日は寝よう.