TF-IDF(词频-逆文档频率)

文章目录

高频词只能说明词汇在评论中出现的频率高,但并不能说明这个词汇的重要性。利用关键词提取可以弥补这一不足,关键词提取是一种自动化的文本处理技术,它可以从一篇文章中自动抽取出最能代表文章主题和内容的若干个词语或短语。通常情况下,这些词语或短语具有较高的频率和重要性,可以很好地反映出文章所涉及的主题和核心内容。

TF-IDF (Term Frequency - Inverse Document Frequency,词频-逆文档频率)是信息检索中衡量一个词语重要程度的统计指标,广泛应用于文本分析领域。TF 指一个词语的词频,需要先除以文档中的总词数,防止 TF 值更加偏向于长文本中的词语,而 IDF 是这个词语在所有文档中出现的频率,然后取对数,就得到这个词语的 IDF 值。最后,TF 值与 IDF 值相乘就得到了这个词语的 TF-IDF 值,即词语的重要程度,算法公式如下:

词频 Term Frequency (TF) 是指文件中出现某一具体词语的频率

T F = 某个词在文章中出现的次数 文章中词的总数 TF=\frac{某个词在文章中出现的次数}{文章中词的总数} TF=文章中词的总数某个词在文章中出现的次数

逆文档频率(IDF),即文档总数与包含某一具体词语文档数比值的对数值:

I D F = log ⁡ 语料库的文档总数 包含该词的文档数 + 1 IDF=\log\frac{语料库的文档总数}{包含该词的文档数+1} IDF=log包含该词的文档数+1语料库的文档总数
其中加1是为了避免分母为0的情形。

注:当单词A在一个文章中出现的频率很高的时候,我们倾向于认为A是一个重要的词汇。但是,如果没个文章都包含了A,我们又会觉得这个词不重要,没有独特性。

为什么TF-IDF的公式中要使用log函数呢?
1.首先对于那些词频特别高,几乎每个文档都有的停用词(如“的”,“地”,“了”),文档集中含停用词的数量约等于总的文档集数量,即 N / n ≃ 1 N/n \simeq 1 N/n1(N/n恒大于1)。在只使用TF的情况下,停用词所占的权重很大,但是它并没有区分能力,与我们的期望不符。使用IDF(带对数函数)之后,由于log(1)=0,则停用词通过TF-IDF计算出的权重就为0(根号达不到这样的效果),就可以消除很多停用词的影响

2.第二个原因是,使用log可以防止权重爆炸。如果某些词只出现一篇或者少数几篇文档中(比如错别字),在没有log的情况下,IDF就会非常小(分母过小),从而影响其权重,而使用log能减轻这种影响。3.公式中分母+1,是采用了拉普拉斯平滑,避免有部分新的词没有在预料库中出现过而导致分母为0的情况出现,增强算法的健壮性。

你可能感兴趣的:(#,自然语言处理,tf-idf)