imHo RSSフィード

2011-01-27

2.2.1 トークン化

Tokenization

  • 文字シーケンスが与えられ、文書ユニットが定義されたら、トークン化はそれをトークンというピースに切り分ける処理で、同時に句読点などの文字を捨てる
    • 型とトークンの区別は重要
    • トークン(token)はある文章中の文字シーケンスの実体で、処理するのに便利な意味単位でグループ化されたもの
    • 型(type)はすべてのトークンが同じ文字シーケンスを含むクラスである?
    • 語句(term)はIRシステムの辞書に含まれる型である
  • 使用する正しいトークンとは何か?
    • 英語でも、アポストロフィとか:aren't
  • トークン化のこれらの問題は言語ごとに変わる。言語特定(Language identification)が必要。
  • 普通じゃない特定のトークン:C++, C#, B-52, M*A*S*Hとか
    • メールアドレスとかURLとかIPアドレスとか積荷追跡番号とか
  • ハイフンの扱いとか
  • スペースが入るけど1つのトークンとして見たいものとか:San Francisco, Los Angeles, white space vs. whitespace
    • 1つの方法として、ユーザがハイフンを指定したら、システムは3つの全てのパターンに一般化する、というものがあるが、ユーザのトレーニングに依存し、ハイフンなしで書いた場合には一般化されない
  • フランス語:アポストロフィ l'ensemble
  • ドイツ語:複合名詞、スペースなしで結合 Lebensversicherungsgesellschaftsangestellter `life insurance company employee'
    • 複合スプリッター(compound-splitter)モジュール
    • この現象は東アジア語(中国語、日本語、韓国語、タイ語)の限定されたケース
    • 隠れマルコフモデルなどの機械学習によるヒューリスティックな方法
      • 間違う可能性もある
    • または単語ベースのインデクス化をやめて単語の区切りかどうかに関わらずすべて単に短い文字シーケンスのインデクス化にしてしまう(k-グラム)
      • このアプローチが魅力的な3つの理由