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時間.昨日より少し速く読めるようになったー.
今日は寝よう.

ここまでの感想

  • 教科書オブ教科書.最新手法や王道的な手法について引用を「あえて」していないような印象を受ける.網羅的に説明をしておきながら,深くなりすぎないように気をつかっている様子が伺える.それが俺の正義(ジャスティス),と勝手に解釈している.そこらへんはFSNLPと通じるものがあり.
  • それにしても○○頁で後述する,という記述が多い.本になったら直っているんだろうか.
  • 執筆中の2005年頃,というfootnoteがあった.そんな前から書いていたんだ...
  • 情報検索アルゴリズムを読んでいればor少しでも事前知識があれば今まで読んでいる部分については,復習+新たな再発見,という感じです.