49607


「日本語入力を支える技術 ―変わり続けるコンピュータと言葉の世界」徳永拓之 著では、bag of wordsについて、こういう説明が述べられています。

> 「bag of words」では、文章を単語に区切って含まれる単語の数を数え、それぞれの **単語に対応する次元**
> に単語の出現回数を設定するものです。例えば、「this is a pen」という文をベクトルに変換することを考えます。
> **「this」「is」「a」「pen」に対応するベクトル** の次元がそれぞれ「3」「4」「9」「2」であったとすると、２、３、４、９
> **の次元だけ１であり、他の次元はすべて０である** ようなベクトルになります。

1、「単語に対応する次元」はどういうものですか。

２、「this」「is」「a」「pen」に対応するベクトルとはどういうものですか、次元である「3」「4」「9」「2」はそれらの単語の出現回数ですか。[Wikipedia:
Bag-of-words model](https://en.wikipedia.org/wiki/Bag-of-
words_model)で紹介された方法に沿って、`{"this": 3, "is": 4, "a": 9, "pen": 2}`で表現できますか。

３、「２、３、４、９の次元だけ１であり、他の次元はすべて０である」どういう意味でしょうか。


CC BY-SA 4.0
2018-10-23T12:36:40.570
49573
2018-10-24T07:25:07.607
30643
question
自然言語処理
bag of wordsでのデータの表現について


[用語について]  
バッグ(bag)というのは集合論の用語で、多重集合(multiset)とも呼ばれます。  
集合(set)が、ある要素が含まれるか否か(1か0か）なのに比べて、バッグは同じ要素を複数個含むことができます。

１．  
次元というのは、互いに独立な（他の値が変化しても、自分の値に影響がない）軸のことです。  
この質問の「bag of words」では、個々の単語が別々の軸になっていて、その単語が元の文章に何回使われているかが、その値になります。

２．  
"book","pen","this","is","that","apple","orange","note","a","an"の１０単語に注目した時、"book"という単語が一つ目なので一つ目の次元（１の次元）、"an"という単語は十個目なので十個目の次元（１０の次元）となる訳です。

{"this": 3, "is": 4, "a": 9, "pen": 2}
という表現方法は、"this"が３番目の次元、"is"が４番目の次元、といった事を表しているだけで、"this"や"is"が文章に何度出現するかの情報を含んでいませんから、別物です。

３．  
"this is a pen"という文章を当てはめてみると、左側の表になります（文章で使われた単語の行を赤字にしてあります）  
出現回数の数値の並び（ベクトル）は、0,1,1,1,0,0,0,0,1,0となります（「２、３、４、９の次元だけ１」[2番目、3番目、4番目、9番目の数値だけ1で残りは0に、なってますよね])  
表では、0,1,1,1,0,0,0,0,1,0が３列目に縦に表示されています。  
同様に、"that is an apple"であれば右側の表になって、ベクトルは0,0,0,1,1,1,0,0,0,1となります。

[![Bag of
wordsの例](https://i.stack.imgur.com/BBobj.png)](https://i.stack.imgur.com/BBobj.png)


CC BY-SA 4.0
2018-10-24T07:25:07.607
49607
2018-10-24T07:25:07.607
217
49573
answer