やってみよう

左のテキストを書き換えると(1行が1文書)、全文書の単語を集めた語彙と、「文書 × 単語」のカウント行列がすぐに作られます。BoW は語順をまったく見ません。「私は猫が好き」と「猫は私が好き」を並べて入力すると、まったく同じ行になることを確かめてみてください ── 単語の袋(bag)に入れて数えるだけ、という名前の由来です。2-gram(連続する2語の組)も数えると、語順の違いが行列に現れます。

各文書の単語

BoW 行列(文書 × 語彙)

文書数
–
語彙数
–
スパース率(0 の割合)
–

CountVectorizer は既定で 1 文字の語(「は」「が」「私」など)を語彙から外します(token_pattern=r"(?u)\b\w\w+\b")。各文書には語彙のごく一部しか現れないため、行列のほとんどが 0 になります(スパース)。実データでは 99% 以上が 0 になることも珍しくありません。「語順が違う2文を試す」で 2-gram を入れると、同じだった 2 行が別々になります。その代わり語彙が増え、スパース率も上がります。