Colorful Wires

エンジニアリングの勉強の記録

Text Mining: Concepts, Implementation, and Big Data Challenge

テキスト分類とクラスタリングについて、包括的にまとめた一冊です。

知りたいこと

  • Text Indexing とは何か (p.19)
  • テキスト分類の全体的な流れはどのようなものか
  • Tokenization 時に気をつけることは何か
  • Stemming では何をするべきか
  • Stop Words には何を指定するのが一般的か
  • Additional Further Steps とあるが何をするのか
  • 評価の方法は

Text indexing とは何か

Text indexing とは、文や複数の文を単語のリストにすることです。

そういえば、過去に Text indexing を明確に 1 つのプロセスと考えず、 非構造化されたままプログラムを書いたことがあります。見通しが悪くなった記憶があります。

テキスト分類の全体的な流れはどのようなものか

おおよそ以下の流れになるようです。

  • Text inexing
    • Tokenization
    • Stemming
    • Stopword Removal
    • Additional Steps
      • Index Filtering
      • Index Expansion
      • Index Optimization
  • Text Encoding
    • Feature Selection
    • Feature Value Assignment
  • Modeling
  • Evaluation

Tokenization 時に気をつけることは何か

私が忘れたことのある処理です。

  • 大文字を小文字に変換する
  • 16% などの数や記号が含まれた語は捨てる

Stemming では何をする

Stemming では Root にします。(例: simplest → simple)

日本語ではどうするのが良いのかは別にまとめます。

Stopword には何を指定する?

英語では on, to, in, but, however などを指定します。 negative な単語は、感情の推定時などには、例外的に残します。

Additional Further Steps とは

Index Fitlering

重みの小さな語を捨てることです。

捨て方には大きく 3 つのアプローチがあります。 1. ランク ベースのアプローチ。決まった個数の上位の単語を残します。 2. スコア ベースのアプローチ。しきい値以上の単語を残します。 3. 混合アプローチ。

単語の位置によって、捨てるか捨てないかを変える方法もあります。 パラグラフの最初と最後には重要な語があります。

事前に文長を検討することは重要で、 文長が短い場合は情報が落ちる可能性が大きくなるので、 Index Filtering を行わないことがあります。

Index Expansion

文に含まれていない関連のある語を追加することです。

External words (virtual words) という、関連のある単語を、検索エンジンを使って取得します。 これにより、単語数が増えます。

ここでは、Collocation を使います。


\displaystyle
\mathrm{collocation}(\mathrm{term}_i, \mathrm{term}_j) = \frac{2 D F_{ij} }{ DF_i + DF_j }

Index Optimization

単語毎に以下を選ぶ問題として最適化することのようです。

  • そのままにする
  • index filtering の対象(除去)
  • index expansion の対象(拡張)

評価の方法は?

後で書きます。