Saltar al contenido principal
Uno de los principales parámetros de reconocimiento es el idioma que se utiliza durante este proceso. Es importante establecer el idioma correcto antes del análisis y el reconocimiento. El idioma de reconocimiento puede especificarse fácilmente mediante el método IRecognizerParams::SetPredefinedTextLanguage. Este método afecta a la propiedad IRecognizerParams::TextLanguage. De forma predeterminada, este parámetro se inicializa con el idioma de reconocimiento inglés. También puede usar la detección automática de idioma (consulte la propiedad IRecognizerParams::LanguageDetectionMode para obtener más información).
La detección automática de idioma solo funciona con los idiomas predefinidos (consulte la lista completa en Predefined Languages in ABBYY FineReader Engine).
A continuación encontrará información útil sobre los idiomas compatibles de forma predeterminada en ABBYY FineReader Engine y los objetos que ofrecen funciones avanzadas para trabajar con los idiomas de reconocimiento.

Idiomas predefinidos

ABBYY FineReader Engine proporciona un conjunto de idiomas compatibles de forma predeterminada. Estos idiomas se denominan “idiomas predefinidos”. Se puede acceder a la colección de idiomas predefinidos disponibles, representada por el objeto PredefinedLanguages, a través de la propiedad PredefinedLanguages del objeto Engine. Es una colección de objetos PredefinedLanguage. Los idiomas predefinidos se identifican por sus nombres internos. Puede especificar directamente un idioma de reconocimiento mediante el nombre del idioma predefinido correspondiente a través del método IRecognizerParams::SetPredefinedTextLanguage. Para consultar la lista de nombres internos de los idiomas predefinidos, consulte Predefined Languages in ABBYY FineReader Engine.

Idioma de reconocimiento de un texto

El idioma que se usa durante el reconocimiento se representa mediante el objeto TextLanguage. El objeto RecognizerParams, que especifica los parámetros de reconocimiento, almacena una referencia al objeto TextLanguage. Las funciones de reconocimiento toman este objeto, ya sea como subobjeto del objeto PageProcessingParams que se les pasa como parámetro de entrada o de un bloque de un objeto Layout. El objeto TextLanguage expone las siguientes propiedades principales:
  • Nombre interno. Recomendamos seleccionar un nombre único para el idioma interno; ya lo es en el caso de los idiomas incluidos en el paquete de distribución de ABBYY FineReader Engine. Asegúrese de que los nombres de los nuevos idiomas sean únicos.
  • Conjuntos de letras. El objeto TextLanguage contiene los siguientes conjuntos de letras: signos de puntuación que pueden aparecer entre palabras, caracteres prohibidos y signos de puntuación adicionales que van inmediatamente antes y después de las palabras.
  • Diccionarios de exclusión. Puede crear una colección de diccionarios de exclusión mediante la propiedad ProhibitingDictionaries del objeto TextLanguage. Las palabras de estos diccionarios no pueden usarse como variantes de una palabra reconocida. Sin embargo, si no queda ninguna variante y usar una palabra prohibida es la única opción, las palabras de estos diccionarios pueden seguir apareciendo en el texto reconocido. Consulte Trabajar con diccionarios.

Idioma de reconocimiento para caracteres

Durante el reconocimiento, el texto se divide en palabras, y a cada palabra le corresponden uno o varios idiomas de reconocimiento. A cada carácter de una palabra se le asigna un idioma de reconocimiento. Este idioma de reconocimiento está representado por el objeto BaseLanguage y se puede consultar mediante la propiedad ITextLanguage::BaseLanguages. El objeto BaseLanguage tiene las siguientes propiedades:
  • Nombre interno. Recomendamos seleccionar un nombre único para el idioma interno; ya es único en el caso de los idiomas incluidos en el paquete de distribución de ABBYY FineReader Engine. Asegúrese de que los nombres de los idiomas nuevos sean únicos.
Si un idioma base de reconocimiento corresponde a una palabra reconocida, la propiedad ICharParams::LanguageName de cada carácter de esa palabra se establece con el nombre interno del idioma base después del reconocimiento. Si varios idiomas base de reconocimiento corresponden a una misma palabra (por ejemplo, en palabras compuestas bilingües), la propiedad ICharParams::LanguageName de los caracteres de esa palabra queda vacía. La propiedad ICharParams::LanguageId contiene el identificador del idioma base independientemente de cuál sea la palabra reconocida.
  • Conjuntos de letras. Un conjunto de letras incluye las letras que forman el alfabeto del idioma, las letras que forman su alfabeto ampliado (utilizado en palabras tomadas de otros idiomas), los signos de puntuación que aparecen inmediatamente antes y después de las palabras, los caracteres permitidos dentro de las palabras pero ignorados por el sistema interno de revisión ortográfica, y los símbolos permitidos en subíndices y superíndices.
  • Dictionary. Un idioma de reconocimiento de una palabra puede tener un diccionario asociado. Consulte Trabajar con diccionarios.

Creación de un idioma de reconocimiento compuesto

ABBYY FineReader Engine proporciona una forma sencilla de crear idiomas de reconocimiento compuestos a partir de varios idiomas de reconocimiento predefinidos. Esto se hace mediante el objeto LanguageDatabase. Por ejemplo, puede crear un idioma de reconocimiento que incluya palabras en inglés y alemán:
  1. Cree un objeto LanguageDatabase llamando al método IEngine::CreateLanguageDatabase.
  2. Llame al método ILanguageDatabase::CreateCompoundTextLanguage con el parámetro “English,German”.
  3. Utilice el objeto TextLanguage obtenido para el reconocimiento de texto.
Actualmente, Visual Components solo es compatible con Windows.
El objeto LanguageDatabase también le permite importar idiomas personalizados definidos por el usuario creados en ABBYY FineReader Engine para Windows mediante Visual Components. Visual Components ofrece los medios para crear idiomas de reconocimiento personalizados con conjuntos de letras, diccionarios y otros parámetros especificados por el usuario. Los idiomas de reconocimiento creados de esta manera se almacenan en un conjunto de archivos y se puede acceder a ellos mediante el objeto LanguageDatabase. Si desea utilizar los idiomas creados en Visual Components, haga lo siguiente:
  1. Cree un objeto LanguageDatabase llamando al método IEngine::CreateLanguageDatabase.
  2. Cargue los idiomas en el objeto LanguageDatabase mediante el método ILanguageDatabase::LoadFrom.
  3. Obtenga el idioma necesario por su nombre como un objeto TextLanguage del objeto LanguageDatabase.
  4. Utilice el objeto TextLanguage obtenido para el reconocimiento de texto.

Consulte también

Trabajar con diccionarios Reconocimiento de Words con espacios Reconocimiento de los idiomas chino, japonés y coreano