在文本分类问题中,某些高频词一直出现,这样的词对区分文档的作用不大,例如:
D1: 'Job was the chairman of Apple Inc.'
D2: 'I like to use apple computer.'
以上两个文档都关于苹果电脑,词条‘apple’ 对分类意义不大,因此有必要抑制那些在很多文档中都出现了的词条的权重。
在 tf-idf 模式下,词条 t 在文档 d 中的权重计算为:
w(t) = tf(t,d) * idf(t)
其中,tf(t,d)表示为词条t在文档d中的出现频率,idf(t)是倒排文档频率(inverse document frequency),即包含词条t的文档数越多,idf(t)取值越小。所以对上述例子中的词条apple会起到弱化的作用。
其中,nd是文档的总数,df(t) 是包含词条t的文档数,为防止分母为0,采用了平滑处理。以下举个例子来说明如何计算。
counts为文档向量,这里有6个文档,3列即向量空间维度为3,以文档1为例,三个词条的权重分别对应以上的123,最终 [3,0,1] 计算得到 [3,0,2.0986],还可以经过进一步的正则化,即得到[0.819,0,0.573]。
第一次写博客,希望自己能坚持下去,总结,经历,积累。