1

我已经使用 Kofax 转换模块 3 年了,但我仍然不确定数据库定位器是如何工作的。

我有一个非常简单的数据库,有一堆列。我有一个很简单的PDF文档,OCR就搞定了。

我想根据单列的值从数据库中检索一条记录。因此,如果在文档中找到此列中的值,我希望数据库定位器以 100% 的置信度返回相应的记录(或者该单个值的 OCR 置信度)。

最后但并非最不重要的一点是,我希望这种信心与我在数据库定位器的属性(常规选项卡)中设置的“最小信心”一起使用。

但这似乎不可能。
看,我的 PDF 文档包含一个由 OCR 读取的值,它与数据库列 100% 匹配。
定位器以所谓的 100% 置信度返回记录,因为我在该单列上设置了搜索掩码。

但是,如果我将最低置信度设置为高于 34%,则不会返回记录。

这是为什么?如何修复?
我真的必须使用脚本定位器来做我想做的事,这似乎并不复杂吗?

4

2 回答 2

4

不直观的置信值

当数据库定位器运行时,它会尝试查找与文档 OCR 最匹配的记录。您看到的行为的关键是它首先进行实际的模糊搜索,返回满足最小置信度的记录,然后定位器本身进行额外的处理:根据记录是否满足字段来增加或降低记录的置信度,搜索定位器中定义的遮罩或区域设置。

这种行为的好处是内存和处理效率。核心模糊搜索索引可以快速确定哪些记录满足初始置信度阈值,然后Database Locator只需将这些记录加载到内存中并进行后处理。另一种方法是加载所有记录以进行后处理,以防后处理将置信度推高到阈值之上。那会更直观,但效率较低。

可能的配置改进

如果您只打算搜索那一列,而其他列只是您想要返回的数据,那么请确保该列是唯一被索引的列。当您打开数据库的属性时,它会显示带有复选框的字段名称。任何被检查的字段都被编入索引,并且是定位器尝试在文档上查找的内容的一部分。如果您检查了一堆实际上不在文档上的字段,则您的信心可能会降低,特别是如果您的定位器设置“对空字段的惩罚”也有一个非零值。

使用 KSMS 时,无法在 Project Builder 中更改索引列,因为 KSMS 正在构建和提供索引。而是在 KSMS 管理中打开数据库的导入设置,然后查看复选框的“要使用的列”部分。如果您通过上载文件而不是指向 UNC 路径来配置数据库,则需要再次上载它才能更改索引的列。

语境

对于将其视为传统数据库问题的任何人: KTM 中此上下文中的“数据库”从 CSV 或关系数据库中获取记录,并对它们进行索引以进行模糊匹配。这种核心模糊搜索功能有多种用途,其中之一是数据库定位器。

文档提到数据库定位器处理与模糊搜索分开: 脚本帮助主题“特定列中的数据库查找”显示如何使用脚本中的模糊搜索(从脚本窗口:帮助>脚本帮助,然后脚本示例>特定列中的数据库查找),但它也提到了模糊搜索本身与数据库定位器处理的其他一些设置分开。

于 2018-03-03T21:33:02.583 回答
2

只是为斯蒂芬已经很好的答案添加更多见解。首先,数据库定位器 (DBL) 和使用搜索掩码时的最低置信度存在一些已知问题。我们对此没有明确的解释,但我们观察到 DBL 可能会丢失比返回的置信度更高的记录,尤其是在处理索引中的数百万条记录时。我们搜索了一次客户 id,并将阈值设置为 0.8,返回的记录数为 100。DBL 返回的记录在 0.8 和 0.98 之间,但不是肯定存在的最终记录。但是,将最小置信度增加到 1 确实产生了它。

此外,这是计算数据库定位器中的置信度的方式。首先,让我们看看 DBL 中存在的权重:

  • 必须存在:1.8
  • 高:1.4
  • 正常:1
  • 低:0.6
  • 非常低:0.2

然后将每个子字段的置信度乘以权重。假设 DBL 以 1 的置信度找到了第一个名字,而您说它“非常重要”——加权置信度值为 1.8。这对每个子字段重复,记录的最终置信度是所有置信度和权重的总和。

这是一个例子:让我们假设四个具有不同权重的子字段。我们还假设我们的 DBL 找到了名字和姓氏的可靠匹配(名字占 95%,姓氏占 100%);这个城市有信心,但不是邮政编码:

                        First Name   Street   Zip    City  
 --------------------- ------------ -------- ------ ------ 
  Importance (weight)   1.4             1.4    0.2    0.2  
  Confidence            0.95              1    0.2      1  
  weighted Confidence   1.33            1.4   0.04    0.2  
  --                                                       
  TOTAL:                93%                                

记录的总置信度为 0.93,计算方法如下:

(1.33 + 1.4 + 0.04 + 0.2 ) / (1.4 + 1.4 + 0.2 + 0.2) = 0.928125
于 2018-03-05T08:41:58.610 回答