TF-IDF:传统IR的相关排序技术
TF-IDF:传统IR的相关排序技术(一)
概念介绍:
IR(Information Retrieval),其中文含义为信息检索技术;是指信息按一定的方式组织起来,并根据信息用户的需要找出有关的信息的过程和技术。
TF-IDF(term frequency–inverse document frequency),是一种用于信息检索与数据挖掘的常用加权技术。
概念延伸:
TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了TF-IDF以外,因特网上的搜索引擎还会使用基于链接分析的评级方法,以确定文件在搜寻结果中出现的顺序。
应用举例:
提问:
在一堆书籍里面,想找寻某主题相关的资料,该用什么标准来判定这堆书籍里面的A 比B更符合你的主题呢?
人类的做法:看一下这些书籍的名字,看看哪些书名里面包含我要找的主题的相关信息,
然后再在剩下的这部分书籍中概览一下内容,看看哪个更符合想要的。
人是这么想的,信息检索系统也得这样做才能给出我们最想要的结果,但是一个问题又暴露了出来——程序看不懂文字无法判定。那么该如何帮助程序(即信息检索系统)解决这个问题?
通过观察可以发现,想查询的主题中所包含的词汇跟这堆书籍中的某个子集内容中的词汇是有交集的。
解决方案:
先来给定一个词典,它是N个词的集合。
∑={t1,t2,…,tn}
而对于搜索的条件q和这堆书籍中的某一本d,则可以根据这个词典表示为:
q={q1,q2,…,qn}
d={d1,d2,…,dn}
其中q1为t1这个词汇在你的搜索条件q中出现的次数,q2为t2这个词汇在搜索条件q中出现的次数,依次类推。如果qn为零,则表示第n个词在q中没有出现。
设定w1=d1/∑dn,则w1即为词汇t1在d中出现的频率,此刻d即可表示为:
d=
对于一些质量很高的信息(书籍、文献等),词频是一个很好的,可以通过程序语言实现的,表达词汇在文档中所占权重的方式。
此时又会出现一个问题,一些词比如“我们”、“大家”等这种词汇也肯定会在多篇文章中出现,但是用此来衡量的话显然上面下的结论是不成立的啊。
如果说程序给“我们、大家”等词汇进行定义,那么就可以解决这个问题:
用ki(i=1,2,3,…,n)来表示ti这个词汇在书籍的集合D中所涉及的书籍次数,M 表示书籍D的大小,则ki/M的值即可以说明一些问题,我们定义这个值为ti的文档频率(document frequency)。
显然,文档频率越高,这个词的权重就应该越低。
为了便于计算,常用的会是与文档频率成反比的一个量,我们称之为倒置文档频率(inverse document frequency),定义为:
IDFi=lg(M/ki)
这样以来,wi就变成了
tf-idf
给定某种权重的定量设计,求文档和查询的相关性就变成了求d和q向量的某种距离,最常用的是余弦(cos)距离(这句话果断不懂,完全复制来的)。
余弦距离
当然,对于目前web上这些个鱼龙混杂的网页,仅仅依靠td-idf是不够的(很容易造成一大堆关键词堆砌的网页获得好的排名),这也促成了基于链接关系等一系列算法的诞生。