AI(人工知能)用語集

自然言語処理の初めの一歩!bag of words(BoW)を楽々入門

bag of words(Bow)

自然言語処理という機械学習の分野がありますよね。この分野では人間が利用する言語(自然言語)をどのようにコンピュータに理解させるかという研究が行われており、自然言語をコンピュータに理解させるためには様々な手法でテキストをベクトルに変換する必要があります。

本記事ではベクトルへの変換手法であるbag of words (Bow)について解説しましょう。

自然言語処理とは

自然言語処理ではコンピュータ上で言語を理解させるための様々な研究タスクがありますが、この中には文書をカテゴリに分ける分類、文書の要約を作成する文書要約、テキストから必要な情報を取り出す情報抽出など様々な技術があります。

そのいずれの場合でも文章をベクトルとして表現し、数学的な処理を行うことで望む結果を得ることになります。ベクトル化には次の章で説明するように、様々な手法があります。

文書のベクトル化

文章をいかに適切にベクトル変換するかは多くの研究が行われてきており、単語の出現数を数えるカウントベースの手法、word2vecなどの手法を用いた単語の分散表現ベースの手法、ニューラルネットワークによる埋め込み手法などがあります。

それぞれの手法に長所と短所があります。以降で簡単にご紹介しましょう。

カウントベースの手法

  • 単語の出現数を数え上げるだけなので単純
  • 全単語の出現数を考慮できるため表現力が高い
  • 単語の順番を考慮できない

単語の分散表現ベースの手法

  • 各単語の意味を間接的に考慮できる
  • 学習済みのword2vecさえあれば簡単にベクトルを得られる
  • 文書が長くなるほど各ベクトルの違いがなくなる

ニューラルネットワークベースの手法

  • 分散表現としての表現力が非常に高い
  • BERTなどのパラメータ数の多いモデルが必要

bag of words(BoW)とは

bag of words(以下BoW)はカウントベースの手法に属し、文書中に出現する単語の数を数え上げることからその名前が付けられています(単語の袋)。

BoWでは文書中に出現する全てのユニークな単語にインデックスを割り当て、各単語が何度文書中に出現したかを数え上げます。そして出現回数を対応する単語のインデックスに割り当てることで文書ベクトルとします。

最も単純なBoWでは出現数をそのまま数え上げて各インデックスに当てはめますが、tf-idfという各単語の重みつけ手法を用いて単語間の重要度を考慮したベクトル化手法もあり、こちらの手法はシンプルながら非常に強力な表現力を持ちます。

bag of words(BoW)の弱点

BoWは各単語を数え上げるという性質上、単語の順番を考慮できないという問題があることに加えて、各単語に意味を考慮する手法ではないため、各単語に着目した分析には適しません。

また全文書中のユニークな単語にインデックスを割り当てるため、ベクトルの次元数が大きくなってしまうという問題もあります。

まとめ

BoWについて重要な点をまとめましょう。

  • 文書をベクトル化する手法のひとつ
  • 文書中の単語の出現数を数え上げるカウントベースの手法
  • 単純ながら強力な表現力を持つ
以上、ご覧いただきありがとうございました。

燃やせ探究心!突き詰めろ美しきソースコード!オタフ☆クラブ

みんなのAI(人工知能)用語集

トップへ戻る
タイトルとURLをコピーしました