跳转到主要内容
这是外部字典的接口。此接口及其所有方法都在客户端实现。由于它派生自 IUnknown 接口,因此客户端对象也应实现 IUnknown 方法。 ABBYY FineReader Engine 对象支持以下字典类型:标准字典、用户字典和基于正则表达式的字典。如果这些字典类型无法满足您的需求,IExternalDictionary 接口允许您实现自己的字典类型。您可以借助 ExternalDictionaryDescription 对象的 SetDictionary 方法附加自己的字典。有关详细信息,请参阅使用词典部分。

外部字典创建指南

ABBYY FineReader Engine 会识别文本中的单词,然后将该单词连同其中每个字符的识别候选变体一起传递给外部字典。字典必须从所有可用组合中选出属于字典的组合,并通过 IExternalDictionaryCallback 回调接口返回这些组合。请注意,每个字符的识别候选变体包含了 ABBYY FineReader Engine 预期在单词各个位置可能出现的所有变体:
  • 字母大小写:
    • 如果 ABBYY FineReader Engine 为某个字符提供的候选变体同时包含大写和小写字母,则字典必须检查包含大写字母的单词和包含小写字母的单词;如果存在,则返回这两种变体。
    • 如果某个字符的候选变体仅包含小写字母,则字典必须只返回包含小写字母的单词。
    • 如果某个字符的候选变体仅包含小写字母,但字典中只有带大写字母的单词,则字典可自行决定是否确认该组合。
    • 一般来说,一个单词可以有以下拼写变体:全部字母均为小写、首字母大写其余字母小写,以及全部字母均为大写。因此,我们建议你的字典对普通单词只包含这些变体。
  • 变音符号:
    • 如果该语言允许带变音符号和不带变音符号两种形式,则字典必须能够确认这两种形式。
    • 如果该语言只允许一种拼写形式,则字典必须只确认这一种形式。
  • 字符集:
    • 传递给字典的字符识别候选变体仅包含 ABBYY FineReader Engine 认为在该语言中可接受的字符。如果某个字符对字典来说是“未知”的,则字典可以用任意字符替换该字符。包含语言字母表中不可接受字符的单词将被 ABBYY FineReader Engine 忽略。
  • 连字符:
    • ABBYY FineReader Engine 在将单词传递给字典之前会删除连字符。因此,如果传递的候选变体中出现连字符,则表示 ABBYY FineReader Engine 想要检查的是带连字符的单词。
    • ABBYY FineReader Engine 会将整个单词传递给字典。如果一个单词在换行处被拆分且没有连字符,ABBYY FineReader 会尝试将两部分连接起来,然后在字典中检查连接后的结果。
  • 权重:
    • 单词的标准权重为 100。

方法

名称描述
CheckPrefix确定字典中是否包含具有指定前缀的词。
CheckWords通过 ExternalDictionaryCallback 对象的 ExternalDictionaryResult 方法,向识别器提供集合中包含字典词条的字符串信息。

输入参数

ExternalDictionary 对象是 IExternalDictionaryDescription::SetDictionary 方法的输入参数。

备注

在 Linux 中,如果 Engine 对象以进程外服务器方式加载,则此接口无法使用。

另请参阅

IExternalDictionaryCallback ExternalDictionaryDescription 使用词典