tf-idf 词加权

1.tf-idf

tf-idf, term frequency - inverse document frequency,词频 -逆向文档频率。
用于评价一个单词在整个语料库中的重要程度, 即这个词是否对不同文档有着很好的区分能力.
如果某个词语term在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为这个词语具有很好的文档分类能力。
它通常用于词加权, 即作为权重因子(weight factor) 被用于信息检索.

参考

  1. wikipedia
  2. stanford: tf-idf-weighting

2.公式

i 表示term, j 表示doc. D 表示文档总数.

  • tf(i,j)=ijj
    表示词语i在文档j中的频率。
  • idf(i)=log(Di)
    含有词语i的文档数越少,则此项得分最高。
  • tf_idf(i,j)=tf(i,j)×idf(i)
    衡量词语i在j中的重要性.

  • tf_idf(i)=idf(i)×jntf(i,j) ,得分越高表示词语i对文章的分类能力越强。
    总的也能统计, 但这个一般不用.

3.业界工具

gensim有tf-idf的实现.
输出的是一个权重矩阵 A , Ai,j=tf_idfi,j .

4. 表格示例

tf-idf 词加权_第1张图片
图 4-1 tf-idf(word, doc)

5.灵活变种

借鉴 tf_idf(i,j)=tf(i,j)×idf(i) 的思想, 综合运用 term score, term hot, field weight, inverse document frequency. 得到的新公式为:

ts_th_idf(i,j)=ts(i,j)log(th(i)|{doc|idoc}|)(5-1)

  • i, j
    i 为 term, j 为 doc.
  • ts(i,j)
    ts 即 term_score.
    ts(i,j)=fieldjweight(field)frequency(i,j,field)

    即 term i 在 doc j 中的得分.
  • th(i)
    th 即 term_hot, 该term本身的热度.
  • weight(field)
    doc由若干field组成, 代表指定field的权重.
  • frequency(i,j,field)
    i 在 j 的 field 中出现的频次

你可能感兴趣的:(NLP)