Passer au contenu principal
L’un des principaux paramètres de reconnaissance est la langue utilisée lors de la reconnaissance. Il est important de définir la langue appropriée avant l’analyse et la reconnaissance. Vous pouvez spécifier facilement la langue de reconnaissance à l’aide de la méthode IRecognizerParams::SetPredefinedTextLanguage. Cette méthode agit sur la propriété IRecognizerParams::TextLanguage. Par défaut, ce paramètre est initialisé avec l’anglais comme langue de reconnaissance. Vous pouvez également utiliser la détection automatique de la langue (voir la propriété IRecognizerParams::LanguageDetectionMode pour plus d’informations).
La détection automatique de la langue ne concerne que les langues prédéfinies (voir la liste complète dans Langues prédéfinies dans ABBYY FineReader Engine).
Vous trouverez ci-dessous des informations utiles sur les langues prises en charge par défaut dans ABBYY FineReader Engine, ainsi que sur les objets offrant des fonctionnalités avancées pour gérer les langues de reconnaissance.

Langues prédéfinies

ABBYY FineReader Engine fournit un ensemble de langues prises en charge par défaut. Ces langues sont appelées « langues prédéfinies ». La collection des langues prédéfinies disponibles, représentée par l’objet PredefinedLanguages, est accessible via la propriété PredefinedLanguages de l’objet Engine. Il s’agit d’une collection d’objets PredefinedLanguage. Les langues prédéfinies sont identifiées par leurs noms internes. Vous pouvez spécifier directement une langue de reconnaissance à l’aide du nom de la langue prédéfinie correspondante via la méthode IRecognizerParams::SetPredefinedTextLanguage. Pour obtenir la liste des noms internes des langues prédéfinies, voir Predefined Languages in ABBYY FineReader Engine.

Langue de reconnaissance d’un texte

La langue utilisée lors de la reconnaissance est représentée par l’objet TextLanguage. L’objet RecognizerParams, qui spécifie les paramètres de reconnaissance, stocke une référence à l’objet TextLanguage. Les fonctions de reconnaissance utilisent cet objet soit comme sous-objet de l’objet PageProcessingParams qui leur est transmis en paramètre d’entrée, soit à partir d’un bloc dans un objet Layout. L’objet TextLanguage expose les principales propriétés suivantes :
  • Nom interne. Nous recommandons de choisir un nom unique pour la langue interne ; c’est déjà le cas pour les langues fournies dans le pack de distribution d’ABBYY FineReader Engine. Veillez à ce que les noms des nouvelles langues soient également uniques.
  • Jeux de lettres. L’objet TextLanguage contient les jeux de lettres suivants : les signes de ponctuation pouvant apparaître entre les mots, les caractères interdits et les signes de ponctuation supplémentaires placés immédiatement avant et après les mots.
  • Dictionnaires d’interdiction. Vous pouvez créer une collection de dictionnaires d’interdiction à l’aide de la propriété ProhibitingDictionaries de l’objet TextLanguage. Les mots de ces dictionnaires ne peuvent pas être utilisés comme variantes d’un mot reconnu. Toutefois, s’il ne reste plus aucune variante et que l’utilisation d’un mot interdit est la seule possibilité, des mots issus de ces dictionnaires peuvent tout de même apparaître dans le texte reconnu. Voir Travailler avec les dictionnaires.

Langue de reconnaissance des caractères

Lors de la reconnaissance, le texte est divisé en mots, auxquels correspondent une ou plusieurs langues de reconnaissance. Une langue de reconnaissance est attribuée à chaque caractère d’un mot. Cette langue de reconnaissance est représentée par l’objet BaseLanguage et est accessible via la propriété ITextLanguage::BaseLanguages. L’objet BaseLanguage possède les propriétés suivantes :
  • Nom interne. Nous recommandons de choisir un nom unique pour la langue interne ; c’est déjà le cas pour les langues fournies avec le pack de distribution d’ABBYY FineReader Engine. Veillez à ce que les noms des nouvelles langues soient également uniques.
Si une langue de reconnaissance de base correspond à un mot reconnu, la propriété ICharParams::LanguageName de chaque caractère de ce mot est définie sur le nom interne de la langue de base après la reconnaissance. Si plusieurs langues de reconnaissance de base correspondent à un mot (par ex., pour des mots composés bilingues), la propriété ICharParams::LanguageName est vide pour les caractères de ce mot. La propriété ICharParams::LanguageId contient l’identifiant de la langue de base, quel que soit le mot reconnu.
  • Jeux de lettres. Un jeu de lettres comprend les lettres qui forment l’alphabet de la langue, les lettres qui forment son alphabet étendu (utilisé dans les mots d’emprunt), les signes de ponctuation placés immédiatement avant et après les mots, les caractères autorisés à l’intérieur des mots mais ignorés par le système interne de vérification orthographique, ainsi que les symboles autorisés en indice et en exposant.
  • Dictionnaire. Une langue de reconnaissance associée à un mot peut avoir un dictionnaire qui lui est attaché. Voir Travailler avec les dictionnaires.

Création d’une langue de reconnaissance composite

ABBYY FineReader Engine permet de créer facilement des langues de reconnaissance composites à partir de plusieurs langues de reconnaissance prédéfinies. Pour cela, utilisez l’objet LanguageDatabase. Par exemple, vous pouvez créer une langue de reconnaissance incluant à la fois des mots anglais et allemands :
  1. Créez un objet LanguageDatabase en appelant la méthode IEngine::CreateLanguageDatabase.
  2. Appelez la méthode ILanguageDatabase::CreateCompoundTextLanguage avec le paramètre “English,German”.
  3. Utilisez l’objet TextLanguage obtenu pour la reconnaissance de texte.
Les Visual Components sont actuellement prises en charge uniquement sous Windows.
L’objet LanguageDatabase permet également d’importer des langues personnalisées créées par l’utilisateur dans ABBYY FineReader Engine for Windows à l’aide des Visual Components. Les Visual Components permettent de créer des langues de reconnaissance personnalisées avec des jeux de lettres, des dictionnaires et d’autres paramètres définis par l’utilisateur. Les langues de reconnaissance créées de cette manière sont stockées dans un ensemble de fichiers et sont accessibles via l’objet LanguageDatabase. Si vous souhaitez utiliser les langues créées dans Visual Components, procédez comme suit :
  1. Créez un objet LanguageDatabase en appelant la méthode IEngine::CreateLanguageDatabase.
  2. Chargez les langues dans l’objet LanguageDatabase à l’aide de la méthode ILanguageDatabase::LoadFrom.
  3. Récupérez la langue requise par son nom sous la forme d’un objet TextLanguage à partir de l’objet LanguageDatabase.
  4. Utilisez l’objet TextLanguage obtenu pour la reconnaissance de texte.

Voir aussi

Travailler avec les dictionnaires Reconnaître les mots contenant des espaces Reconnaître le chinois, le japonais et le coréen