在文本分类问题中,某些高频词一直出现,这样的词对区分文档的作用不大,例如:

  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会起到弱化的作用。

tf-idf 词条权重计算-LMLPHP

其中,nd是文档的总数,df(t) 是包含词条t的文档数,为防止分母为0,采用了平滑处理。以下举个例子来说明如何计算。

tf-idf 词条权重计算-LMLPHP

counts为文档向量,这里有6个文档,3列即向量空间维度为3,以文档1为例,三个词条的权重分别对应以上的123,最终 [3,0,1] 计算得到 [3,0,2.0986],还可以经过进一步的正则化,即得到[0.819,0,0.573]。

第一次写博客,希望自己能坚持下去,总结,经历,积累。

05-11 11:27