#7章 テキストデータの処理
テキストデータの長さはまちまちなので、今までの数値特徴量とは扱い方が違うため、
前処理の仕方も違ってくる。
##7.1 映画レビューの感情分析
以下のようなデータセットがあるとする。
・映画のレビュー(テキスト形式)
・「肯定的」もしくは「否定的」(ラベル)
レビューのテキストから、「肯定的」か「否定的」かを判別すると、
2クラス分類として処理できる。そうするために、
テキストデータを数値形式に変換する必要がある。
##7.2 BoW(Bag of Words)によるテキスト表現
Bowは最もシンプルで効率が良く、広く使われているデータの表現方法である。
文章中にその単語が何回出てきたか、という点にのみ着目する。
以下の3ステップで処理する。
1.トークン分割(Tokenization)
文章を単語に分割する。
2.ボキャブラリ構築(Vocabulary building)
すべての文書に現れる、すべての単語に番号を付ける。
3.エンコード
それぞれの文書に対して、単語が出てくる数をカウントする。
##7.3 tf-idf(term frequency-inverse document frequency)を用いたスケール変換
tf-idfとは、特徴量がどのくらい情報を持っているかに応じて、特徴量のスケールを変換する方法のうちの1つである。
特定の文書にのみ頻出し、ほかの文書にあまり現れない単語は、その文書の内容を示す
という考え方に基づいている。
以下は、文書dにおける、単語wのtf-idfスコアである。
N:訓練セット中の文書の数
Nw:訓練セット中の文書のうち、wがある文書の数
tf:文書d中にwが現れる回数
上記の式を使うことによって、
文書の長さがベクトル表現に影響しなくなる。
(ベクトルの長さがすべて1になるようにスケール変換するため)
##7.4 1単語よりも大きい単位のBoW(n-グラム)
BoWの問題は、単語の順番が完全に失われることである。
そこで、単語を1つ1つに区切るのではなく、
2つもしくは3つ連続するように区切る。
2つのトークンをバイグラム(bigram)、3つのトークンをトリグラム(trigram)、
n個のトークンを**n-グラム(n-gram)という。
ほとんどの場合は1つのトークンであるユニグラム(unigram)**で十分である。
5-グラムぐらいまでは性能が向上する可能性があるものの、
特徴量の数が増え、ユニークな特徴量も増えるので過剰適合しやすくなる。
##7.5 トピックモデリング(topic modeling)と文書クラスタリング
トピックモデリングは、テキストデータによく用いられる技術で、
それぞれの文書に対して1つ以上の**トピック(topic)**を割り当てる
教師なし学習である。
割り当てるトピックが1つの場合、クラスタリングとなる。
トピックが2つ以上の場合、成分分析となる。
トピックモデリングはこの成分分析に属し、
**LDA(Latent Dirichlet Allocation)**という成分分析手法のことである。
###7.6.1 LDA
機械学習での「トピック」とは、日常会話のトピックとは意味が違う。
・機械学習のトピック
→文章によく出る単語に過ぎず、意味があるかないかは不明
・会話のトピック
→政治、スポーツ、金融など
##7.7 まとめと展望
SPAM検出、感情分析などのクラス分類では、BoWが有効である。