Feature extraction from text and images
学習目標
- Explain how employed model impacts choice of preprocessing
- Summarize feature preprocessings for numeric and categorical features
- Summarize feature generation approaches for datetime and coordinates
- Summarize approaches to deal with missing values
- Outline the pipeline of applying Bag of Words
- Compare Bag of Words and Word2vec
- Explain how to extract CNN descriptors from images
Bag of words
テキストから特徴を抽出する
主に2つの方法がある
- bag of words を適用する
- 単語をベクトルにするようなアンサンブルを使う
bag of words
- 単語ごとに出現数を数える
- sklearn では CountVectorizer で出来る
後処理
サンプルを比較可能にする(特徴のスケーリングに依存しているモデルに対して有効) 単語の出現頻度で正規化する。(全体数で割る)
重要な機能を強化して、不要なものを減らす 特徴を文書数の逆数で正規化する (idf) => 頻度が高い単語に対応する特徴は、頻度が低い単語に対応する特徴より、縮小される
sklearn では、TfidVectorizer が使われる
Ngram
- 単語に対応する列だけでなく、異なる単語に対応する列も追加する
- 単語ではなく、文字で特徴を持たせた方が手軽なことがある
- 文字の Ngram はあまり目にしない単語の場合に役立つ
- sklearn の CountVectorizer は、Ngaram を使うのに適切な Ngram_range というパラメータがある
- 単語のNgramから、文字のNgramに変更するのに、analyzer というパラメータが使える
前処理
- Lowercase (小文字化)
- Lemmatization (語彙化)
- Stemming (ステミング)
- 単語の末尾を切り捨て、単語を生成する
- Stopwords
- 重要な情報を含まない単語を省く
- sklearnのCountVectorizerには、max_df というパラメータもある
まとめ
- 前処理
- Ngram で分割
- 後処理 (TF-iDFを使って正規化)