小编bro*_*ozo的帖子

SQL Server 中的 BM25(全文搜索)实现

我在尝试在 SQL Server 2008 R2 中实现 BM25 算法时遇到了问题。我知道 SQL Server 包含全文搜索选项,它已经实现了 BM25 的变体,但我想做一些参数调整测试,并且由于 FTS 过程是不可编辑的(据我所知),我我决定自己实现它。

我有两个表,TF(词频)和 DF(文档频率),结构如下:

TF

*注:权重列表示该词的重要性(通常为1)

ID | Term | DocumentID | Count | TermID | Weight*
Run Code Online (Sandbox Code Playgroud)

DF

ID | Term | Count
Run Code Online (Sandbox Code Playgroud)

TF 表包含了词条和文档之间的关系;也就是说,该词在文档中的出现频率。DF 表包含有关有多少文档包含一个术语的信息。可以使用 DF.ID 和 TF.TermID 链接这两个表。使用这两个表,我现在想根据维基百科文章中的公式计算两个文档(一个文档充当查询)之间的 BM25 相似度值。表 TF 和 DF 分别转换为函数 f(q, D) 和 n(q):

在此处输入图片说明

在此处输入图片说明

我希望结果采用以下格式:

DocumentA_ID | DocumentB_ID | BM25_Value
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的一些代码:

DECLARE @N FLOAT;
DECLARE @AVGDL FLOAT;
DECLARE @K1 FLOAT;
DECLARE @B FLOAT;
SET @K1 = 1.2;
SET @B …
Run Code Online (Sandbox Code Playgroud)

sql-server full-text-search sql-server-2008-r2

7
推荐指数
1
解决办法
976
查看次数