【概述】
词频-逆文档频率(Term Frequency-Inverse Document Frequency,TF-IDF)是一种用于信息检索与数据挖掘的常用加权技术,常用于衡量单词在文档中重要性,其结合了单词在文档中的频率和在整个文集中的普遍程度
TF-IDF 的主要思想是:如果某个单词在一个文档中出现的频率高,并且在其他文档中很少出现,则认为此词或者短语具有很好的类别区分能力
TF-IDF 简单快速,而且容易理解,但缺点有时使用词频来衡量文章中的一个词的重要性不够全面,有时候重要的词出现的可能不够多,而且这种计算无法体现位置信息,无法体现词在上下文的重要性
【词频】
词频(Term Frequency,TF)是单词在文档中出现的频率,通常会进行归一化处理,以防止其偏向过长的文档
【逆文档频率】
逆文档频率(Inverse Document Frequency,IDF)表示单词的普遍程度,如果包含单词 $w$ 的文档越少,则 IDF 值就越大,说明词条具有很好的类别区分能力;反之,若一个单词越常见,那么分母就越大,IDF 就越小
考虑到所有文档都不包含单词 $w$ 的情况,即为避免分母为 $0$,需要 $+1$
【TF-IDF】
TF-IDF 是 TF 与 IDF 的乘积
若在某一文档内,单词 $w$ 的 TF 高,说明该单词在该文档中较为重要,反之,TF 低,则说明该单词在该文档中不重要;若单词 $w$ 的 IDF 高,则说明该单词在整个语料库中不常见,反之,IDF 低,则说明该单词在文档中较为重要
也就是说,TF-IDF 与一个单词在文档中出现的次数成正比,与该单词在整个语料库出现的次数成反比
【Sklearn 实现】
1 | from sklearn.feature_extraction.text import TfidfVectorizer |