我们平时在百度搜索想要的东西的时候,往往会搜到很多结果,比如搜索ElasticSearch:
那么什么是TF-IDF打分原理呢?
TF: 表示的是词频,即一篇文章中包含了多少个我们要搜的关键词,关键词越多,代表与我们想要的结果越相关;
DF: 代表文档频率,表示的是包含关键词的文档的总数目;如果有100篇文章,每一篇文章ElasticSearch关键词都出现了,那么文档频率就是100%;
IDF: DF取反;这个很好理解,TF代表某个关键词在一篇文档当中的区分度,而DF代表的是某个关键词在全部文档当中的区分度,DF取反之后与TF的乘积就代表打分规则,举个例子,如果ElasticSearch在一篇文档内的区分度很多并且在全部文档中出现的频次也很高,那么这个分数也越高;
举个例子算一下就很明了了:比如科比这个词在6篇文档中都出现了,所以DF=6;但在每一篇文章的词频不同,在每一篇文章中出现的次数分别为:3、2、7、9、1、2;根据这些数据就可以求出打分值来:
这样子TF/DF值越大,代表这篇文章就跟搜索的关键词越相关,应该排在前面被搜索到。