1. TFIDF
这是一个评价文档中词汇重要程度的一种算法。
主要思想:
如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
如果包含词条t的文档越少,也就是n越小,IDF越大,则说明词条t具有很好的类别区分能力。
-------------------------------------------------------------------------
TF指terms frequency,即文档D中某个词出现的频率,等于这个词出现的次数与文档D总词汇数的比值。
IDF指inverse document frequency,逆向文件频率,指文档集的大小与文档集中含有某个词的文档的个数的比值的对数。
tfidf(i,j)=tf(i,j)*idf(i).
涉及概念:
stopword(应删除词:也就是指“的,得,地,了,呢”等词
stemming(词干:英文单词有变形,应该把变形后的单词视为与变性前一样。
词的权重
2. Okapi BM25
一种排序的函数。
评估函数给定查询Q,包含q1,q2,q3...这些关键词(比如Google搜索:锐捷 VMware Linux),有文档集Doc,含有文档D1,D2,D3....。f(qi,D),表示在文档D中的频率,即tf,|D|表示Doc中文档的个数,IDF表示qi的IDF值。
3. 相关反馈
相关反馈的思路:将给定查询最先返回的结果,和这些结果是否与新查询是否相关的信息利用起来。
分为三种:显式反馈,隐式反馈,以及伪反馈。
显示反馈的场景:google生成了查询结果的排序,你直接告诉他这个应该在第一个,那个在第几个。
隐式反馈的场景:Google生成了查询结果的排序,你第一次点了第三个,说明第三个的结果优于其他的结果,隐式的说明了,第三个应该在第一个。
伪反馈:不需要人来操作或告知,对查询出来的结果一次一次的迭代。
具体实现:把初始查询的结果作为相关结果,选择前K个文档,从这里边使用TFIDF选取20~30个特征词,然后再把这些词当做查询的输入进行查询,查询结果作为最终的结果
网友评论