在了解TF-IDF原理前,我们首先需要高清楚为啥需要它以及它能解决什么问题?下面我们先从以计数为特征的文本向量化来说起。
以计数特征文本向量化的不足
计数特征,简单来讲就是统计每个特征词在文档中出现的次数,把次数作为特征的权重。因此在以计数特征文本分词并向量化后,我们可以得到词汇表中每个词在各个文本中形成的词向量,比如我们将下面4个短文本做了词频统计:
corpus=[
”我 来到 风景 非常 美丽 的 杭州 喝 到了 非常 好喝 的 龙井”,
“我 非常 喜欢 旅游”,
“我 非常 喜欢 吃 苹果 “,
”我 非常 喜欢 看 电视”
]
使用sklearn处理后得到的基于计数特征的词向量如下:
如何我们直接将这以计数特征的12维特征作为每篇文档的特征向量,来进行文本分类,那么将会出现一个明显的问题。比如第一个文本,我们发现”杭州”,”龙井”和“风景”各出现1次,而“非常“出现了2次。单从计数特征来看似乎这个文本与”非常“这个特征更关系紧密。但是实际上”非常“是一个非常普遍的词,在4个短文本中都出现了,因此虽然它的词频为2,但是重要性却比词频为1的”“杭州”,”龙井”和“风景”要低的多,因为它在四个短文本区分度最低。但是,如果我们采用以计数为特征的向量化就无法反应这一点。因此我们需要进一步的预处理来反应文本的这个特征,而这个预处理就是TF-IDF。