tf-idf

TF-IDF 是为了解决 documentterm 的权重问题。

TF (term frequency)

将一个 document 中的每一个 term 都赋予一个权重,最简单的方法就是将 term 在此 document 中出现的次数。用频数表示权重的方法叫做 TF,数学表示为: tft,d <script type="math/tex" id="MathJax-Element-1">\text{tf}_{t,d}</script> ,表示 “document” d 中 “term” t 出现的次数。

IDF(Inverse document Frequency)

使用 TF 方法进行 query 有个很严重的问题:所有的 query term 都被同等的对待。实际情况下,并不是所有的 term 都具有同样的辨别力。比如说,and 这个 term 几乎会出现在所有的 document 中。一个想法是,使用 termdocumentfrequency 来调整 使用 term frequency计算出来的 term 的权重 。idf 就是这么一个调整系数。

dft <script type="math/tex" id="MathJax-Element-2">\text{df}_t</script> : 集合中,包含 “term” tdocument 个数

idft=logNdft <script type="math/tex" id="MathJax-Element-3">\text{idf}_t = \log \frac{N}{\text{df}_t}</script> : 其中 N 表示 集合中 document 的个数。 值越大,表示 “term” t 更具有辨别力。

tf-idf weighting

tf-idf weighting 的公式如下:

tf-idft,d=tft,didft
<script type="math/tex; mode=display" id="MathJax-Element-4"> \text{tf-idf}_{t,d} = \text{tf}_{t,d} *\text{idf}_t </script>
在 Query 情况下,如何计算document 的 Score:
Score(q,d)=tqtf-idft,d
<script type="math/tex; mode=display" id="MathJax-Element-5"> \text{Score}(q,d) = \sum_{t \in q} \text{tf-idf}_{t,d} </script>

参考资料

https://nlp.stanford.edu/IR-book/html/htmledition/inverse-document-frequency-1.html

https://nlp.stanford.edu/IR-book/html/htmledition/term-frequency-and-weighting-1.html

https://nlp.stanford.edu/IR-book/html/htmledition/tf-idf-weighting-1.html

©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:上身试试 返回首页