TF-IDF(词频-逆文档频率)
/ TEE-eff-EYE-dee-eff /
TF-IDF 是一套简单却出奇有效的配方,用来给「一个词对某篇文档(在一个更大的集合里)有多重要」打分。它的直觉是:一个词若在某篇文档里频繁出现、在别处却很少出现,那它对这篇文档就重要。「the」在每篇文档里都没完没了地出现,所以拿来区分文档毫无用处。「线粒体」在某一篇生物学文章里大量出现、在别处几乎绝迹——于是它成了「这篇文档讲什么」的一枚有力指纹。
名字本身就拼出了相乘的两半。TF——词频——数一个词在这篇文档里出现得多频繁:提及越多,权重越大。IDF——逆文档频率——则纵观整个集合,给那些在许多文档里都冒头的词降权:一个词在集合里越稀少,就越有辨识度。两者一乘,一个词只有在「这里频繁」且「整体稀少」时才得高分。这会自动压下常见的填充词(无需手工列表就优雅地处置了停用词),并抬高那些真正刻画每篇文档特征的词。
几十年来,TF-IDF 一直是搜索引擎和文档分类器的骨干,至今仍是一个强劲、快速、透明的基准——好算、好解释。它诚实的局限,与它所依托的词袋模型一样:它把词当作互相独立的符号,因此看不出「car」和「automobile」是一个意思,也完全无视词序。嵌入能捕捉 TF-IDF 捕捉不了的语义——但 TF-IDF 依然是一个出奇结实、值得最先一试的东西。
在一批新闻文章里,「said」几乎篇篇都有,所以它的 IDF 极小,TF-IDF 分数在哪儿都低。「earthquake」在某一篇里大量出现、别处罕见——那里 TF 高,整体 IDF 也高——于是它得高分,标出了那篇文章的主题。
TF-IDF 高 = 这里频繁、整体稀少 = 一个刻画本文档特征的词。
TF-IDF 会自动给无处不在的词降权,因此无需手工列表就处理了停用词——但它仍把词当作互相独立的符号,看不见近义词,也无视词序。