bag of words とは?
bag of words (BoW) モデルは最もシンプルな特徴抽出手法の 1 つで、テキスト分類、感情分析、トピックモデリングなど、多くの自然言語処理 (NLP) 分野で使用されています。bag of words は、文書中の単語や記号などの固有の特徴の出現回数をカウントすることで構築されます。
例
この例では、MATLAB® 関数の bagOfWords
を用いて、arXiv で公開された数学論文の要旨集から bag of words モデルを作成します。モデルを可視化する最も簡単な方法の 1 つは、MATLAB 関数の wordcloud(bag)
を用いてワードクラウドをプロットすることです。オレンジ色の大きいフォントで表示されている単語が、bag of words モデルで最多数を占める (頻出) 単語です。
bag of words モデルを使用する場面
bag of words はわかりやすく、実装も簡単です。そのため、テキストデータを用いたモデルを構築する際に、最初に使用されることが多い手法です。ただし、bag of words には、以下のようないくつかの制限があります。
- 文脈の欠如: bag of words モデルは、文書中で出現する特徴の順序を維持しないため、場合によっては重要な情報が削除される可能性があります。たとえば、「is this a good day」と「this is a good day」は、文脈を考慮せずにテキストデータを解析すると、等価とみなされます。
- 予測不能なモデル品質: bag of words モデルに文書から得られるすべての特徴を含めると、モデルサイズが大きくなり、スパース性や数値的不安定性が生じます。有用な bag of words モデルを構築するには、多くの場合、文書テキストを慎重に前処理する必要があります。
bag of words モデルの代替方法
bag of words のようなモデル固有の制限がない、優れた代替モデルもいくつか存在します。
- bag-of-n-grams: 単一の特徴ではなく、複数の特徴を使用する
- term frequency–inverse document frequency (tf-idf): 重要度を反映する
- 単語埋め込み: word2vec、GloVe、FastText などの数値ベクトルに特徴の分散表現を作成する
- 転移モデル: 事前学習済みのディープラーニング モデルを転移学習に使用する
ただし、bag of words はわかりやすく、実装も簡単であり、多くのユースケースで十分に有用です。bag of words やその他のテキストデータのモデリング手法に関する詳細については、MATLAB で使用する Text Analytics Toolbox™ を参照してください。
製品使用例および使い方
参考: 自然言語処理, テキスト解析, 感情分析, word2vec, MATLAB によるテキストマイニング, レンマ化, 語幹化, n-gram, データサイエンス, ディープラーニング, ngram