布尔模型
苹果 AND 公司:表示搜索既包含“苹果”,又包含“公司”这两个词的文档。
苹果 OR 公司:表示搜索包含“苹果”,或包含“公司”这两个词中任意一个的文档。
特点:简单粗暴
向量空间模型
把文档被分词后的每一个词当作向量空间的一个维度,把文档表示为一个线性矩阵,比较某个文档的矩阵和查询词的矩阵之间的余弦距离,距离越近,则相关性越大。最后根据相关性对搜索结果做排序。
注意事项:使用TF-IDF对部分词权重进行调整,对文档长度过大的做惩罚等。
特点:依赖于经验对模型的参数进行调整。
BIM、BM25、BM25F
这三个算法是逐步完善的关系
BIM
对于用户的一次搜索,假设拆分为三个词W1、W2、W3,假设索引库中的文档总数为100,有10个文档包含W1,20个文档包含W2,30个文档包含W3,则把W1的权重记为10%,W2的权重记为20%,W3的权重记为30%。假设有一个文档Doc1包含W1、W2两个搜索词,则它的相关性为10%,20%两个权重的汇总。依此对索引库中的100个文档算出相关性得分,把搜索结果按相关性得分排序即可。
BM25
在BIM的基础上增加了两个新的参考因素:1、搜索词在文档中的权重;2、搜索词自身的权重。
BM25F
在BM25的基础上增加考虑了文档中不同Field的权重。比如,标题中包含搜索比内容中包含搜索词要有更高的相关性得分。
特点:当前效果最好的模型,在商业搜索引擎中广泛使用。