Chinese Simplified (简体中文)

处理语言

主要识别参数之一是识别过程中使用的语言。在分析和识别前设置合适的语言很重要。借助 IRecognizerParams::SetPredefinedTextLanguage 方法,可以轻松指定识别语言。该方法会影响 IRecognizerParams::TextLanguage 属性。默认情况下,该参数用英语识别语言进行初始化。您也可以使用语言自动检测 (请参见 IRecognizerParams::LanguageDetectionMode 属性了解详情)。

重要事项! 语言自动检测仅处理预定义语言(完整列表请参见 ABBYY FineReader Engine 中的预定义语言

下文介绍了关于ABBYY FineReader Engine 默认支持的语言信息以及提供识别语言高级功能对象的有用信息。

预定义语言

ABBYY FineReader Engine 提供一套默认支持的语言。这些语言被称为“预定义语言”。PredefinedLanguages 对象表示的预定义语言集合可通过 Engine 对象的 PredefinedLanguages 属性进行访问。它是 PredefinedLanguage 对象的集合。

预定义语言由其内部名称标识。您可以通过 IRecognizerParams::SetPredefinedTextLanguage 方法按照相应预定义语言的名称直接指定识别语言。预定义语言的内部名称列表请见 ABBYY FineReader Engine 中的预定义语言

文本的识别语言

识别期间使用的语言由 TextLanguage 对象表示。指定识别参数的 RecognizerParams 对象存储对 TextLanguage 对象的引用。识别函数要么将该对象为作为输入参数传递给它们的 PageProcessingParams 对象的子对象,要么从 Layout 对象中的块采用该对象。

TextLanguage 对象具有以下主要属性:

  • 内部名称。我们建议为内部语言选择唯一名称;内部语言对于 ABBYY FineReader Engine 分发包中提供的语言来说是唯一的。要确保新语言的名称是唯一的。
  • 字母集TextLanguage 对象包含以下字母集:在词汇之间可能遇到的标点符号、禁止字符、紧邻在词汇前后的其它标点符号。
  • 禁止字典。您可以使用 ProhibitingDictionaries 对象的 TextLanguage 属性创建一个禁止字典集合。来自这些字典的词汇不能被用作已识别词汇的变体。但是如果没有变体剩下,而使用禁止词汇是唯一的选项,则来自这些字典的词汇仍然可能会出现在识别文本中。请参见 借助字典进行处理

字符的识别语言

识别期间,文本被分为词汇,每个词汇对应一种或多种识别语言。单词中的每个字符都有一种识别语言。该识别语言由 BaseLanguage 对象表示,可通过 ITextLanguage::BaseLanguages 属性进行访问。

BaseLanguage 对象有以下属性:

  • 内部名称。我们建议为内部语言选择唯一的名称;内部语言对于 ABBYY FineReader Engine 分发包中提供的语言来说是唯一的。要确保新语言的名称是唯一的。

如果一种基本识别语言对应一个已识别词汇,则该词汇中每个字符的 ICharParams::LanguageName 属性将在识别后被设为基本语言的内部名称。如果多种基本识别语言对应一个词汇(例如,对于双语复合词汇),则该词汇中的字符的 ICharParams::LanguageName 属性为空。ICharParams::LanguageId 属性包含基本语言的标识符,与已识别词汇无关。

  • 字母集。字母集包含构成语言字母表的字母、构成其扩展字母表的字母(用于借用词汇中)、紧邻词汇前后的标点符号、词汇内允许但是被内部拼写检查系统忽略的字符,以及在下标和上标中允许的符号。
  • 字典。一个单词的识别语言可附带一个字典。请参见 借助字典进行处理

创建复合识别语言

ABBYY FineReader Engine 可让您轻松创建由多种预定义识别语言组成的复合识别语言。这可通过 LanguageDatabase 对象来完成创建。例如,您可以创建一个包含英语和德语词汇的识别语言。

  1. 调用 IEngine::CreateLanguageDatabase 方法创建 LanguageDatabase 对象。
  2. 使用参数“英语,德语”调用 ILanguageDatabase::CreateCompoundTextLanguage 方法。
  3. 使用收到的 TextLanguage 对象进行文本识别。

LanguageDatabase 对象也可让您导入在 ABBYY FineReader Engine for Windows 中创建的用户自定义语言。使用这些语言, 请执行以下操作:

  1. 调用 IEngine::CreateLanguageDatabase 方法创建 LanguageDatabase 对象。
  2. 使用 ILanguageDatabase::LoadFrom 方法将语言载入 LanguageDatabase 对象中。
  3. 按语言名称将其作为 LanguageDatabase 对象的 TextLanguage 对象来获取所需语言。
  4. 使用收到的 TextLanguage 对象进行文本识别。

另请参阅

借助字典进行处理

识别带空格的词汇

识别中文、日文和韩文

03.07.2024 8:50:25

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.