14

我不明白它们是什么,如果没有太多关于它们如何工作的实现细节,我会非常感谢一个简单的解释来展示它们给世界带来的价值。

4

2 回答 2

13

规范是分数计算的一部分。范数可以按照你喜欢的方式计算,真的。使规范与众不同的主要因素是它是在索引时计算的。通常,其他影响分数的因素是在查询时根据文档与查询的匹配程度来计算的。相反,它通过norm与文档一起存储来节省查询性能。

可以在 Lucene 的TFIDFSimilarity中找到并详细描述标准实现。在那里,它是设置字段提升(或所有字段提升的乘积,如果在字段上设置了多个)和“lengthNorm”(这是一个计算因子,旨在更重地衡量较短文档的匹配)。这些都不依赖于查询的构成,因此在索引时计算和存储都是不错的选择。

然后,它们以压缩的、高损耗的单字节格式存储(精度约为 1 位有效十进制数字)。

于 2013-07-08T22:26:12.407 回答
6

当您索引、处理您的源信息时,您会将某些文档和字段视为比其他文档和字段更重要。

例如,任务是监视同事的电子邮件。标题字段中的单词匹配比正文字段中的单词匹配更重要。我们通过将标题字段中的匹配数乘以一个大于我们用于正文字段匹配的数字来做到这一点。

可索引电子邮件记录示例

+----+-------------+--------------+
| ID | Title       | Body         |
|----+-------------+--------------|
| 7  | Back Monday | Ben was sick |
| 8  | I'm sick    | cover for me |
| 9  | Help        | I am stuck   |
+----+-------------+--------------+

因此,搜索“sick”并将标题匹配乘以 4,将正文匹配乘以 2,然后将最高分排在第一位 - 文档的 ID 8 排在第一位,ID 7 排在第二位(见下表 1)。

表 1:按分数排序的单词“sick”的匹配项(降序)

+----+---------+--------+-----------------------+
| Id | Title   | Body   | Score                 |
|    | Matches | Matches|                       |
|----+---------+--------+-----------------------|
| 8  | 1       | 0      | (1 * 4) + (0 * 2) = 4 |
| 7  | 0       | 1      | (0 * 4) + (1 * 2) = 2 |
+----+---------+--------+-----------------------+

这些数字,4 和 2,我们将匹配乘以是norms

于 2017-02-04T16:00:25.037 回答