【DS検定対策】文章を数字の列に変える!Bag-of-Words(BoW)の仕組み
コンピュータは「言葉」をそのまま理解できません。テキストを「単語の出現回数」という数字のリストに変換するのが、Bag-of-Words(BoW)です。
1. 【 問題 】
自然言語処理における前処理(ベクトル化)の手法において、文章中の語順や文法構造をすべて無視し、どの単語が何回出現したかという「頻度」のみに着目して文書を数値化する手法を何と呼ぶでしょうか?
① Word2Vec
② Bag-of-Words(BoW)
③ 形態素解析
④ N-gram
2. 【 解答 】
3. 整理:文章が「数字のリスト」になるイメージ
例えば、あらかじめ辞書に「私」「カレー」「食べた」「テニス」という単語が登録されているとします。このとき、2つの文章は以下のように数値化(ベクトル化)されます。
【 ベクトル化の具体例 】
・文章A:「私はカレーを食べた」
⇒ [ 1, 1, 1, 0 ] (テニスは0回)
・文章B:「私はテニスをした後にカレーを食べた」
⇒ [ 1, 1, 1, 1 ] (各1回ずつ)
--------------------------
◎ メリット: 構造が非常にシンプルなため、計算が高速で、ナイーブベイズなどのアルゴリズムと組み合わせて「スパムメール判定」などに古くから大活躍しています。
4. Bag-of-Wordsの限界と発展形
1. 語順が無視される: 「私があなたを好き」と「あなたが私を好き」は、BoWでは全く同じ数値になってしまい、意味の違いを区別できません。
2. 「てにをは」が強くなる: 出現回数だけを数えるため、「〜です」「〜ます」のような、どの文章にも出る定番ワードが一番重要だと誤判定されがちです。
★ これを解決するのが「TF-IDF」です!
「よく出る単語の価値を低く、特定の文章にしか出ないレア単語の価値を高く」補正するTF-IDFは、BoWの発展形としてDS検定の超・超頻出ポイントです。
5. DS検定形式:実戦4択クイズ
問:Bag-of-Wordsのように単語単位で区切るのではなく、文字や単語を「連続するN個の塊」として区切ることで、語順の情報をある程度残したまま頻度を数える手法を何と呼ぶか。
① TF-IDF ② コサイン類似度 ③ N-gram ④ 感情極性辞書
【 正解: ③ 】
解説: 例えば「テニス」を2文字ずつ区切って「テニ」「ニス」として数えるような手法を「N-gram(この場合はBi-gram)」と呼びます。BoWの「語順が消える」という弱点を補うためによく使われます。
6. まとめ
DS検定において「どの単語が何回出現したかを数値化」「語順を無視」というキーワードが出たら「Bag-of-Words(BoW)」です。テキストデータをAIに投入するための第一歩となる重要な手法として、しっかり記憶にセットしておきましょう!