相关性算法--BM25
BM25是计算词对于文档相关性的算法,可以简单的拆解为3个部分
第一部分:IDF(逆向文档频率),之前我们说过TF/IDF算法的时候讲过 IDF,IDF就是指集合中的总文档数 / 包含搜索词的文档数,包含这个词的文档数越少,就越能体现这个词的代表性,相关度就越高。
第二部分:TF(词频),在TF/IDF中我们也谈到了,当一个词在文档中出现的次数越多,就代表这个词在文章中的重要程度,进而体现出这个词相对的相关度呈正相关。
第三部分:dl(文档长度),这个概念是之前所没有提及的,举例:
文档1:我爱你中国 (dl:5)
文档2:我爱你我的中国 (dl:7)
我们可以简单的理解为,文档1的长度为5,文档2的长度为7,‘中国’ 一词在文档1和文档2中同时出现,但是由于文档1的长度低于文档2,我们可以认为,文档1的相关性更高。就好比一篇文章叫 ‘中国’,另一片文章叫 ‘我的祖国是中国’。前者在搜索词为 ‘中国’ 的时候更具有代表性。
所以,BM25 = IDF * TF / TF + dl 这只是近似理解的方程式,应用到实际的生产环境中还有许多的系数需要调整,这篇文章简单的介绍了这个算法的大致原理,让大家心里对这个算法有个大致的理解