目标:写给完全没有算法基础的同学们学习TF-IDF
目录:
- 在什么场景下我们需要TF-IDF
- TF-IDF是什么
- TF-IDF应用
- Python3 实现TF-IDF
- 总结
一、什么场景下我们需要TF-IDF
在当前工作中,很多时候,我们需要从非结构化的文本中,提取出结构化的数据。这也可以被称为「信息检索」。
经典的信息检索模型包括布尔模型,向量模型,以及TF-IDF模型。
- 布尔模型 该模型以集合的布尔运算为基础,查询效率高,但模型过于简单,无法有效地对文档进行排序,所以查询效果不佳。
- 向量模型 向量模型把文档和查询都视为词所构成的多维向量,而文档与查询的相关性即对应向量间的夹角。不过,由于通常词的数量巨大,向量纬度非常高,而大量的纬度都是 0,计算向量夹角的效果并不好。另外,庞大的计算量也使得向量模型几乎不具备在互联网搜索引擎这样海量数据集上具有可实施性。
- TF-IDF模型,TF模型的思路是,如果词 w 在一篇文档 d 中出现的频率高,并且在其他文档中很少出现,那么我们可以认为词 w 具有很好的区分能力,适合把文章 d 和其他文章区分开来
在上述情况下,让我们来更近一步地了解 TF-IDF。
二、TF-IDF 是什么
2.1 TF
TF (Term Frequency) 即词频。
- 一个词 w 在文章中出现的次数,记为 n。但是因为,不同的文章,有不同的长度,为了便于不同文章的比较,