使用投票 API
开发人员可以在识别解决方案中结合使用多个 Engine。当多个 Engine 为一个字符或者词汇生成不同的识别变体时,开发人员可以通过在变体之间进行投票来选择最佳变体。为实现投票功能,ABBYY FineReader Engine 带有一个特殊的投票 API,能为有相应权重值的字符或者词汇识别提供不同的假设。开发人员还可以通过投票 API 来用自己的数据库和算法检查识别结果并纠正文本。例如,开发人员可以从字母构建词汇或者检查所有生成的假设。
重要事项!投票API不可用于手写文本识别。
WordRecognitionVariants 对象代表一个词汇的假设集合,CharacterRecognitionVariants 对象代表一个字符的假设集合。这些集合的元素分别是 WordRecognitionVariant 和 CharacterRecognitionVariant 对象。
WordRecognitionVariant 对象代表一个词汇的单个假设,包含假设的文本、模型类型、笔画的平均宽度、以及是否在词典中已找到假设的信息。可通过该对象的 GetCharParams 方法访问单个字符参数。
CharacterRecognitionVariant 对象代表一个字符的单个假设,包含字符置信度、字符用宋体所写的概率,以及字符是上标还是下标的信息。
如何检索一个词汇或者字符的识别变体
如需找出一个词汇或者字符的所有识别假设,请执行以下操作:
- 设置 RecognizerParams 对象的 SaveWordRecognitionVariants 和 SaveCharacterRecognitionVariants 属性为 TRUE。这一操作旨在使 FineReader Engine 将识别变体保存在识别结果中。
- 将 RecognizerParams 对象作为 PageProcessingParams 对象的子对象(或者包含PageProcessingParams 对象的 DocumentProcessingParams 对象) 传递到一种 ABBYY FineReader Engine 识别方法。
- 假设集合可以在识别后通过 ICharParams::WordRecognitionVariants, ICharParams::CharacterRecognitionVariants 属性和 IParagraph::GetWordRecognitionVariants 方法进行访问。
注: 这些方法将为不可打印字符(空格、回车符等等)和编辑期间未获识别但是被添加到文本的字符返回零。如果文本由之前的一个 ABBYY FineReader Engine 版本识别也会返回零。假设集合包含从最佳到最差排序的识别变体。如果 RecognizerParams 对象的 SaveWordRecognitionVariants 或 SaveCharacterRecognitionVariants 属性被设为 FALSE,相应的集合将只包含一个元素。
C++ (COM) 代码
C# 代码
CharConfidence 和 IsSuspicious 属性之间的区别
PlainText 和 CharacterRecognitionVariant 对象的 CharConfidence 属性为只读 int 属性,提供对字符图像识别的准确度估计。CharParams 对象的 IsSuspicious 属性为布尔属性,当设为 TRUE 时,表明字符识别不可靠。CharConfidence 进行准确度估计时不考虑字符的上下文,而可靠性 (IsSuspicious) 基于识别准确度和上下文两者,例如,对字符所属的单词进行的字典分析。
识别字符时,ABBYY FineReader Engine会提供多个识别变量,每个变量有一个置信度值。该值是对变量正确概率的内部估计,即识别的图像确实代表该字符变量。例如,字母 "e" 的图像可以识别为:
- 置信度为 95 的 "e" 字符。
- 置信度为 85 的 "c" 字符。
- 置信度为 65 的 "o" 字符,等等。
置信度区间为 0 至 100。如字符并非作为识别结果获得,则其置信度为 100,例如,从 PDF 源文件中直接提取的字符的置信度。
注意,置信度不应该被理解为通用识别质量尺度。置信度不可用于不同字符置信度估计之间的比较,其唯一可靠的用途是用来比较同一图像(字符)的多个识别变量。此外,识别变量的置信度高并不保证该变量会被选为识别结果。该选择取决于上下文(字符所属的单词)和差异化比较结果。例如,如果包含 "e"(置信度 95)的单词不在字典里,而含 "c"(置信度 85)的单词在字典里,则后者会被选为识别结果,尽管它的置信度低。
然后,选定的识别结果会被 CharParams 对象的 IsSuspicious 属性标记为可疑。该属性由某种算法确定,该算法在估计可靠性时会考虑众多参数,例如所选变量的识别置信度,字符其它变量的置信度,附近字符及其识别变量的置信度,字符的几何参数,以及字符的上下文(单词)。如果可靠性估计低于特定阈值,则该字符的 IsSuspicious 属性将被设为 TRUE。此类可疑字符会在 ABBYY FineReader 中突出显示。
另请参阅
17.09.2024 15:14:41