Détection d’erreurs dans des transcriptions OCR de documents historiques par réseaux de neurones récurrents multi-niveau (Combining character level and word level RNN s for post- OCR error detection) (2018)

Abstract: Le traitement à posteriori de transcriptions OCR cherche à détecter les erreurs dans les sorties d’OCR pour tenter de les corriger, deux tâches évaluées par la compétition ICDAR-2017 Post-OCR Text Correction. Nous présenterons dans ce papier un système de détection d’erreurs basé sur un modèle à réseaux récurrents combinant une analyse du texte au niveau des mots et des caractères en deux temps. Ce système a été classé second dans trois catégories évaluées parmi 11 candidats lors de la compétition.

## introduction les systèmes actuels de reconnaissance optique de caractères (optical character recognition -ocr) obtiennent désormais d'excellentes performances sur des documents imprimés et scannés avec soin. cependant les documents historiques restent un défi pour les domaines du traitement d'images et du traitement automatique de la langue du fait d'une mauvaise qualité d'impression ainsi que de supports parfois endommagés. de plus, certaines collections de documents numérisés à l'aide de ces outils ne sont que rarement retraitées avec des systèmes à jours, principalement pour des raisons de coûts. or ces erreurs d'ocr peuvent avoir un impact conséquent sur la recherche de documents dans une bibliothèque numérique @xcite . ainsi, indépendamment de la tâche d'ocr elle-même, le post-traitement des transcriptions automatiques est une tâche permettant à la fois d'évaluer la qualité d'archives numérisées tout en donnant l'occasion de les corriger. c'est dans ce contexte que la compétition icdar-2017 post-ocr text correction a été organisée, dans le but de comparer différentes approches concernant les deux tâches de détection d'erreurs d'une part et de correction des erreurs détectées d'autre part. en tenant compte des contraintes liées à ces archives, seule la sortie de texte brute est accessible, aucune autre information n'est fournie, comme l'image, les scores de confiances ou les informations relatives aux polices détectées. historiquement, ces systèmes utilisent des modèles de caractères ainsi que des collections de mots pour résoudre certaines ambiguïtés survenant après l'analyse d'image @xcite . mais il arrive que des erreurs subsistent à l'utilisation de telles méthodes, car le vocabulaire ne peut être couvert pour toute la langue d'une part et pour des questions propres au domaine de l'ocr ou l'utilisation de modèles reposant uniquement sur la fréquence des mots peuvent s'avérer insuffisants @xcite . de nombreuses méthodes ont été proposées pour simultanément détecter et corriger ces erreurs, en utilisant différentes approches tels que les canaux bruités @xcite , l'utilisation d'outils externes tels que des correcteurs orthographiques @xcite ou la combinaison de plusieurs systèmes d'ocr afin d'accroître la robustesse de la reconnaissance @xcite . de plus, il n'est pas rare dans le cas de la correction d'erreurs à posteriori d'étiqueter les corrections à apporter sur une séquence donnée afin de la remanier par la suite, comme cela peut être fait pour la post-édition automatique de traductions @xcite . le présent document décrit l'architecture proposée par notre équipe pour la tâche de détection d'erreurs de la compétition icdar. nous avons suivi le même type d'approche ayant été appliquée avec succès aux méthodes de détection d'erreurs dans des sorties de reconnaissance automatique de la parole @xcite , en considérant la tâche de détection d'erreur comme un exercice de classification de séquences. la méthode repose sur un modèle de réseaux de neurones récurrent analysant le texte à l'échelle des caractères ainsi qu'à celle des mots, le tout joint dans un seul modèle multilingue s'exécutant en deux temps. ce système a été utilisé sur un corpus rassemblé pour l'occasion contenant des documents historiques en anglais et français et a été classé second dans le cadre de la tâche de détection parmi onze participants. la distribution des sources dans ce corpus de 12m de caractères en fonction de la langue et du type de document est référencée dans le tableau 1. on observe ainsi que le taux d'erreur ocr peut varier de 1% à 4%. 3 réseau de neurones récurrent au niveau des mots et des caractères pour la détection d'erreurs la première étape de notre système consiste en une combinaison de deux modèles de réseaux de neurones récurrents (recurrent neural network, abrégé rnn par la suite) au niveau des caractères pour associer une étiquette (correct ou erroné) à chaque symbole d'une séquence, ainsi que d'un modèle de langue dont le rôle est de prédire le caractère suivant étant donné les caractères l'entourant. ces deux éléments sont présentés dans les sous-sections suivantes. l'implémentation de ce réseau a été réalisée à l'aide du toolkit keras @xcite . ## configuration expérimentale pour entraîner le système ayant participé à la compétition icdar nous avons utilisé 2 3 de la totalité du corpus que nous avions à disposition (tableau 1) comme corpus d'entraînement et les 1 3 restant comme corpus de validation. les modèles de langue à l'échelle des caractères mais aussi à celle des mots ont étaient entraînés sur la portion du corpus de la compétition réservée à cet effet, ainsi que sur des textes issus de dépêches afp des années passées afin d'accroître le vocabulaire et de permettre au ml de pouvoir effectuer de meilleures généralisations. nous avons ajouté ces données à hauteur de 25 000 nouveaux termes pour chaque langage (français et anglais), ceci semblant être le seuil optimal pour lequel l'ajout de ces éléments de lexique puisse apporter des gains, avant d'engendrer une dégradation des performances sur le corpus d'évaluation. notre modèle utilise dans sa version finale un lexique de 256 symboles caractères et de 136 752 mots, incluant la ponctuation. il est important de noter que la détection d'erreurs est un problème très déséquilibré au niveau de la représentation des données. en effet, ces dernières représentent, dans le corpus mis à notre disposition durant la compétition, approximativement 2% de la totalité des mots. un réseau de neurones entraîné sur une telle collection aura tôt fait de toujours choisir comme résultat de prédiction la catégorie d'exemples dominante, c'est-à-dire la classe non-erronée. pour surmonter cette difficulté, nous avons, durant la post-propagation ayant lieu lors de l'apprentissage, doublé le poids attribué par la fonction de coût lorsqu'une mauvaise prédiction devant être attribuée à la classe d'erreur se présentait. cela dans le but d'augmenter l'impact des corrections faites au modèle durant cette phase. ## résultats et évaluation la tache de détection d'erreurs de la compétition post ocr text correction est évaluée à l'échelle des tokens, qui ne sont autres, pour les organisateurs, qu'une suite de symboles séparés par un espacement (incluant les tabulations et les caractères vides), ponctuation comprise. les métriques utilisées sont le rappel, la précision et la f-mesure, avec un classement des participants effectué sur la f-mesure. le jeu de données de test contient 177k mots (96,5k en anglais et 80,6k en français) avec des taux d'ocr bien plus élevés que pour les corpus d'entraînement (de 7 à 10%). comme on peut le voir dans le tableau 2, les résultats officiels de la compétition icdar @xcite placent notre système à la seconde position dans trois des quatre catégories de textes. les résultats obtenus sont stables pour la langue anglaise indépendamment du type de document et suivent la même chute de performances lorsque nous comparons les scores de nos sorties à celles des gagnants de cette compétition sur la partie du corpus attribuée aux textes français, en particuliers les monographies comme décrit dans le tableau 2. ceci peut être en partie expliqué par le fait que le taux d'erreur est moindre sur le corpus de textes français, les erreurs étant dès lors plus difficiles à mettre en évidence.