「その文書らしい単語」に高い重みをつけるベクトル化
左のテキストを書き換えると(1行が1文書)、TF-IDF 行列がすぐに作り直されます。値が大きいセルほど濃く塗られ、各文書でいちばん高い語には枠が付きます。ポイントは 2 つ。TF(その文書での出現割合)が高くても、IDF(レア度)が低ければ重みは伸びません。「です」「は」のように全文書に出る語は \(\text{IDF} = 0\) になり、TF-IDF も 0 になります。文書を足し引きすると IDF が動くことも確かめてみてください。
log は自然対数です。
「私 vs 動物」の例では \(\text{IDF}(\text{私}) \approx 0.4055\)(3文書中2文書に出現)、\(\text{IDF}(\text{動物}) \approx 1.0986\)(3文書中1文書だけ)となり、レアな「動物」が重く扱われます。なお scikit-learn の TfidfVectorizer は IDF の平滑化と L2 正規化を行うため、ここで示す素朴な定義とは数値が異なります。