Brevet FR3163752A1 — publié le 20251226

Il est proposé un procédé de traitement syntaxique d’une chaîne de caractères acquise par un dispositif électronique, le procédé comprenant : un filtrage d'une pluralité de chaînes de caractères candidates obtenues à partir de ladite chaîne de caractères acquise en fonction d’une correspondance entre une expression régulière et au moins une des chaînes de caractères candidates. Il est également proposé un module correspondant. Figure de l’abrégé : Figure 1 Procédé et module de traitement de chaîne de caractères La présente divulgation relève du domaine du traitement de texte. Elle concerne plus précisément un procédé de traitement syntaxique d’une chaîne de caractères acquise par un dispositif électronique et un module correspondant. Les méthodes traditionnelles de traitement automatique de chaînes de caractères se concentrent souvent sur une reconnaissance exacte des caractères à traiter sans robustesse aux erreurs, par exemple les erreurs courantes observées notamment dans des résultats de reconnaissance optique de caractères, limitant leur efficacité dans des applications pratiques variées. Dans ce contexte et face à la complexité croissante des données textuelles traitées par les systèmes numériques, il existe un besoin pour un mécanisme capable de gérer efficacement des erreurs de reconnaissance de chaînes de caractères. Résumé La présente divulgation vient améliorer la situation. Il est proposé un procédé, au moins partiellement automatique, de traitement syntaxique d’une chaîne de caractères acquise par un dispositif électronique, le procédé comprenant un filtrage d'une pluralité de chaînes de caractères candidates obtenues à partir de ladite chaîne de caractères acquise en fonction d’une correspondance entre une expression régulière et au moins une des chaînes de caractères candidates. Le procédé proposé peut aider, au moins dans certains modes de réalisation, à améliorer (par exemple significativement) la précision et l’efficacité d’applications aussi variées que la reconnaissance de texte, la saisie de données, la validation de données, la recherche dans une base de données, le traitement automatique de documents comportant des formats spécifiques (par exemple des documents juridiques ou médicaux)... Le procédé proposé peut notamment être utilisé dans toute application requérant l'identification robuste d’une chaîne de caractères, c’est-à-dire même en présence d'erreurs potentielles de saisie ou de reconnaissance. En filtrant les chaînes de caractères candidates selon leur correspondance avec une expression régulière, le procédé proposé limite (par exemple minimise) le risque d'erreur en ne considérant que les chaînes qui sont les plus susceptibles de correspondre à l'expression attendue. Cela optimise le traitement en réduisant le volume de données inutiles traitées, augmentant ainsi l'efficacité et la rapidité du traitement. La correspondance, également appelée adéquation, compatibilité ou concordance, désigne le degré de concordance (ou correspondance) entre une chaîne de caractères candidate et un modèle défini par une expression régulière ou un motif. Le terme "matching" peut aussi être utilisé pour représenter le concept de correspondance. La concordance peut être totale ou partielle, en fonction des critères de correspondance utilisés pour évaluer la relation. Par exemple, une concordance totale signifie que la chaîne de caractères candidate satisfait pleinement aux critères définis par l'expression régulière (ie satisfait tous les critères), tandis qu'une concordance partielle indique que la chaîne satisfait à une partie des critères mais présente de légères divergences tolérées, comme des fautes de frappe mineures ou des variations de format. Selon un autre aspect, il est proposé un module de traitement syntaxique d’une chaîne de caractères acquise par un dispositif électronique, configuré pour filtrer une pluralité de chaînes de caractères candidates obtenues à partir de ladite chaîne de caractères acquise en fonction d’une correspondance entre une expression régulière et au moins une des chaînes de caractères candidates. Selon un autre aspect, il est proposé un programme informatique comportant des instructions pour la mise en œuvre de tout ou partie d’un procédé tel que défini dans les présentes lorsque ce programme est exécuté par un processeur. Selon un autre aspect, il est proposé un support d’enregistrement non transitoire, lisible par un ordinateur, sur lequel est enregistré un tel programme. Les caractéristiques exposées dans les paragraphes suivants peuvent, optionnellement, être mises en œuvre, indépendamment les unes des autres ou en combinaison les unes avec les autres : Dans un exemple, le procédé comprend en outre une sélection, dans une base, d’une entrée représentant la chaîne de caractères acquise, en fonction d’une similarité entre ladite entrée et une chaîne de caractères candidate issue du filtrage. Cette fonctionnalité peut permettre d’identifier précisément et de manière fiable la chaîne de caractères acquise. Un exemple d’application possible concerne la gestion de bases de données clients. Par exemple, la mise en œuvre du procédé, avant de lancer une recherche dans une base de données pour identifier un compte associé à un numéro de téléphone ou une adresse email donnée, peut aider à filtrer les entrées incorrectes. Ceci assure que seules les chaînes correspondant précisément aux formats désirés sont considérées dans la recherche, limitant (ou même évitant) ainsi des requêtes superflues ou erronées et améliorant la rapidité et l'efficacité des opérations de recherche dans la base. Dans un exemple, le filtrage tient compte d’un nombre de chaînes de caractères candidates. Limiter le nombre de chaînes à traiter contribue à une gestion efficace de ressources système. Ce principe trouve son utilité dans des applications telles que des centres d'appel ou des systèmes de réponse automatisée, où il existe un besoin pour une identification rapide de la requête la plus probable parmi un grand nombre d'interactions simultanées, pour aider à fournir une réponse rapide et précise à un utilisateur. Dans un exemple, le filtrage tient compte d’au moins une probabilité d'occurrence individuelle d’au moins un caractère d’au moins une des chaînes de caractères candidate. Dans un exemple, le filtrage tient compte d’un score de probabilité global d’une des chaînes de caractères candidates, ledit score de probabilité globale étant basé sur des probabilités d'occurrence individuelles d’au moins une partie des caractères de ladite chaîne. La prise en compte de probabilités d'occurrence individuelle pour tout ou partie des caractères acquis permet de rectifier efficacement des erreurs sans nécessiter une réacquisition partielle ou complète de la chaîne de caractères, particulièrement dans des environnements où les erreurs typographiques ou de reconnaissance sont fréquentes, par exemple la transcription automatique d’un terme épelé, la vérification de numéros de série inscrits sur des produits, ou encore la détection et correction d’erreurs courantes de saisie dans un code informatique. Dans un exemple, la probabilité d’occurrence individuelle d’un caractère donné est fournie avec au moins une des chaînes de caractères candidates en tant que résultat d'analyse de la chaîne de caractères acquise par un analyseur. Dans un exemple, la probabilité d’occurrence individuelle d’un caractère donné tient compte d’au moins une valeur d’erreur connue ou attendue entre le caractère donné et au moins un caractère de remplacement. Tenir compte de valeurs (par exemple prédéterminées) d'erreurs entre caractères permet d’anticiper et de corriger automatiquement des erreurs typiques, telles que celles souvent rencontrées dans des entrées générées par des interfaces de reconnaissance vocale ou de reconnaissance optique de caractères. Par exemple, dans les applications de commande vocale, cela permet de réduire significativement les erreurs de compréhension des commandes vocales dues à des prononciations imprécises et/ou à des accents variés. Lorsque la probabilité est fournie par l'analyseur, elle peut être particulièrement adaptée à des contextes dynamiques où les caractéristiques du texte et/ou du fond des caractères peuvent varier, comme dans la reconnaissance optique de caractères apparaissant dans des sous-titres de vidéos. En revanche, l'utilisation de valeurs prédéterminées (constantes ou paramétrables) peut être plus appropriée pour des applications où les erreurs suivent des modèles plus constants, comme dans la correction de saisies. Les erreurs de saisie sur ordinateur dépendent notamment de la langue écrite et du mode de saisie. Par exemple, pour l'OCR, des erreurs typiques incluent la confusion entre '0', zéro et 'O', la lettre ‘O’ majuscule. Dans les dictaphones, des erreurs dues à la similarité phonétique, comme entre "vert", "vers" et "verre", sont fréquentes. Pour la saisie au clavier, les erreurs sont souvent liées à la proximité des touches, comme entre 'r' et 't'. Dans un exemple, l’expression régulière est préalablement spécifiée ou est une extension d’une proposition d’expression régulière préalablement spécifiée. La spécification ou l'extension des expressions régulières offre une adaptabilité à diverses applications, par exemple la reconnaissance de parties manquantes de chaînes de caractères apparaissant sur un document endommagé, le filtrage de contenu sur les réseaux sociaux où il est désirable d’identifier et de modérer différentes variations potentielles notamment par substitution de caractères de certains mots ou expressions, la bioinformatique pour la recherche de motifs génétiques spécifiques ou la sécurité informatique pour la détection de schémas dans le trafic réseau qui pourraient indiquer une activité malveillante. Dans un exemple, la pluralité de chaînes de caractères candidates comprend au moins une première chaîne de caractères candidate et une deuxième chaîne de caractères candidate obtenue à partir d’un traitement de la première chaîne de caractères candidate. Par exemple, si une chaîne de caractères initiale ne présente pas une correspondance avec l'expression régulière spécifiée, une deuxième chaîne est générée à partir de la première et comparée à nouveau. Si cette deuxième chaîne échoue également à atteindre une correspondance requise, une troisième peut être générée à partir de l'une des deux précédentes. Ce processus itératif peut être poursuivi jusqu'à obtenir une correspondance ou un nombre de correspondances suffisant et/ou pendant un nombre donné de tentatives. Cette démarche peut aider non seulement à augmenter (par exemple maximiser) les chances de trouver une correspondance exacte entre une expression régulière et une chaîne candidate, mais aussi à réduire les coûts opérationnels en évitant par exemple le traitement de grandes quantités de données peu probables. D’autres caractéristiques, détails et avantages apparaîtront à la lecture de la description détaillée ci-après, et à l’analyse des dessins annexés, sur lesquels : Fig. 1 FIG. 1 montre un exemple de système de traitement syntaxique. Fig. 2 FIG. 2 montre un tableau représentant des exemples fictifs de probabilités d'occurrence pour chaque caractère d’un exemple de chaîne de caractères acquise par un analyseur. Fig. 3 FIG. 3 montre un tableau présentant des exemples de caractères de remplacement possibles pour chaque caractère d’un exemple de chaîne de caractères acquise par un analyseur, ainsi que des exemples fictifs de probabilités d'occurrence associées à chaque caractère de remplacement. Fig. 4 FIG. 4 montre une matrice de probabilités établissant des exemples fictifs de pourcentages d'erreurs connues entre différents caractères de l'ensemble de caractères. Dans la description qui va suivre, des chiffres de référence identiques désignent des éléments identiques ou ayant des fonctions similaires. Un aspect de la technique proposée dans le présent document est un procédé de traitement syntaxique d’une chaîne de caractères acquise par un dispositif électronique, le procédé comprenant un filtrage d'une pluralité de chaînes de caractères candidates obtenues à partir de ladite chaîne de caractères acquise en fonction d’une correspondance entre une expression régulière et au moins une des chaînes de caractères candidates. Un autre aspect de la technique proposée est un module de traitement syntaxique d’une chaîne de caractères acquise par un dispositif électronique, configuré pour filtrer une pluralité de chaînes de caractères candidates obtenues à partir de ladite chaîne de caractères acquise en fonction d’une correspondance entre une expression régulière et au moins une des chaînes de caractères candidates. Tous moyens matériels et/ou logiciels adaptés peuvent être utilisés pour la mise en œuvre pratique dudit module. De manière générale, bien que des aspects de la technique proposée puissent être décrits dans le présent document comme étant un processus, un dispositif, un système, une procédure ou une méthode, il est à noter que la technique proposée peut également couvrir une mémoire informatique susceptible d’être raccordée à un processeur éventuellement raccordé à une interface de communication, la mémoire stockant des instructions qui, lorsqu'elles sont exécutées par un tel processeur, permettent de réaliser les processus, dispositifs, systèmes, procédures ou méthodes décrits dans ce document. Un processeur désigne ici, sauf précision contraire, toute unité de traitement apte à exécuter des instructions et des calculs. Cette définition inclut, de manière non limitative, les processeurs physiques ou virtuels de toute architecture, tels que les unités centrales de traitement (CPU), les unités de traitement graphique (GPU), les circuits intégrés spécifiques à une application (ASIC) et les réseaux logiques programmables sur site (FPGA). Un processeur peut être conçu pour exécuter des tâches générales ou spécifiques, et peut être intégré dans divers dispositifs et systèmes pour accomplir des opérations de traitement de données. Quelques termes spécifiques sont à présent clarifiés pour une meilleure compréhension de la technique proposée. Un caractère est une unité minimale de texte représentée typiquement par un symbole, une lettre, ou un chiffre. Par exemple, 'A' est un caractère représentant une lettre de l'alphabet latin, '9' est un caractère numérique, '#' est un caractère spécial utilisé dans divers contextes informatiques. Le standard informatique Unicode est constitué d’un répertoire de près de 150000 caractères couvrant plus de 150 écritures. Une chaîne de caractères est une séquence de caractères utilisée pour représenter du texte ou des données dans un programme informatique. Par exemple, ‘Bonjour’ est une chaîne de caractères correspondant à un mot, ‘12345’ est une chaîne de caractères composée de chiffres. Une chaîne de caractères acquise se réfère à toute chaîne de caractères obtenue via un dispositif électronique, par exemple à travers des méthodes comme la saisie au clavier, la reconnaissance vocale, une sonde logicielle, une génération de contenu par IA, ou la reconnaissance optique de caractères (OCR). Cela peut désigner par exemple une chaîne acquise par OCR à partir d'un document scanné ou un mot de passe entré dans un formulaire en ligne. Les termes « expression régulière », « expression rationnelle », « motif », ou en anglais « regular expression » ou « pattern », sont souvent utilisés de manière interchangeable dans certains contextes. Dans le contexte du présent document, ces termes sont également employés de manière interchangeable pour désigner une séquence ou une combinaison de caractères qui définit un modèle à des fins par exemple de reconnaissance, de recherche ou de remplacement de portions de texte. Elle peut notamment être utilisée pour la recherche de correspondances de motifs dans des textes. Un motif ou pattern désigne généralement une séquence fixe ou une règle simple qui peut être utilisée pour reconnaître des chaînes de caractères. Un motif peut être aussi simple qu'une séquence spécifique de caractères ou un ensemble de règles très basiques pour identifier des formats attendus, par exemple « \d{5}(-\d{4})? » représente le format du zip code US ou « 1\d{10} » représente une série de 11 chiffres qui commence par un 1. Une expression régulière ou un motif de type « glob » utilise une syntaxe spéciale pour définir non seulement des motifs simples mais aussi le cas échéant des opérations plus complexes comme des répétitions, des choix optionnels, et des groupements. En cela, les expressions régulières permettent une recherche flexible et avancée de motifs dans un texte. Le choix de définir un modèle via un motif simple, un motif de type « glob » ou une expression régulière est un choix d’implémentation dépendant de l’application envisagée et des besoins afférents. Un traitement syntaxique se réfère à une analyse d’une structure formelle d'une chaîne de caractères pour en vérifier la conformité à une ou plusieurs règles ou un ou plusieurs motifs. Cette analyse peut s'appliquer à la grammaire d'une langue mais également à des structures abstraites non liées à une langue spécifique, telles que des formats de données ou des codes. Pour désigner un traitement syntaxique non lié à une quelconque langue, il est fait référence dans le présent document à un traitement de motifs structuraux. Un traitement de motifs structuraux peut par exemple être appliqué à la reconnaissance et/ou la validation de numéros téléphoniques, adresses email, adresses URL, adresses IP, adresses MAC, codes postaux, numéros de pièces d’identité, numéros de sécurité sociale, numéros de matricule, numéros de cartes de crédit, coordonnées bancaires, plaques d’immatriculation, identifiants de réseaux sociaux, numéros de factures, numéros de récépissés, références de documents, codes de produits, numéros de série, clés de licence de logiciels, coordonnées géographiques, numéros de commande, séquences génomiques, séries numériques etc. en se basant sur des règles structurales prédéfinies, par exemple comme obéissant à un motif prédéfini tel qu’une combinaison de lettres et de chiffres selon un ordre particulier. De telles règles structurales peuvent par exemple être obtenues par accès à un fichier de configuration. Par opposition au traitement syntaxique, un traitement sémantique analyse le sens et l'interprétation des mots et des phrases au-delà de leur structure. Il se concentre sur la compréhension du contenu et du contexte. La similarité mesure à quel point deux chaînes de caractères sont proches l'une de l'autre. Elle peut être quantifiée à l'aide de différentes métriques, dont la distance de Levenshtein est un exemple courant. La distance de Levenshtein entre deux chaînes est le nombre minimum de modifications simples (insertion, suppression, remplacement d'un caractère) nécessaires pour changer une chaîne en l'autre. Plus la distance est petite, plus les chaînes sont considérées comme similaires. La distance de Levenshtein est de 0 lorsque deux chaînes sont identiques. Par exemple, la distance entre ‘chat’ et ‘chat’ est de 0, indiquant une correspondance exacte. Une faible distance de Levenshtein indique une grande similarité. Par exemple, la distance entre ‘chat’ et ‘chats’ est de 1, car une seule insertion est nécessaire. Une distance plus élevée indique moins de similarité. Par exemple, la distance entre ‘chat’ et ‘chien’ est de 3 (remplacer 'a' par 'i', remplacer ‘t’ par ‘e’ et ajouter 'n'), indiquant une similarité plus faible. Le filtrage, dans le contexte du traitement de données, désigne le processus de tri et de sélection de certaines entités tout en écartant d'autres, en fonction de critères prédéfinis. Ce processus peut servir à isoler des éléments qui répondent à des spécifications particulières, ou à exclure ceux qui ne les respectent pas, afin d'obtenir un ensemble de données plus pertinent ou conforme aux besoins d'une application donnée. Filtrer des chaînes de caractères en fonction d’une correspondance exacte avec une expression régulière permet par exemple de conserver uniquement les chaînes de caractères correspondant à l’un parmi un ensemble de formats de date spécifiques, comme ‘JJ/MM/AAAA’, ‘JJ.MM.AAAA’, ‘JJ-MM-AAAA’ ou ‘JJMMAAAA’, en éliminant toutes les autres chaînes de caractères non conformes. Dans le présent document, les chaînes de caractères ainsi conservées sont également désignées en tant que chaînes de caractères filtrées ou issues du filtrage. Dans des cas où une flexibilité est prévue, le filtrage peut aussi se faire en fonction de la similarité, utilisant par exemple la distance de Levenshtein pour tolérer de petites erreurs comme des fautes de frappe ou des inversions de caractères. Par exemple, une date saisie comme ‘12/09/2022’ pourrait être acceptée même si elle est entrée légèrement incorrectement, telle que ’12-092022’ ou ‘12/09/202’. Ces chaînes, bien qu'imparfaites, seraient toujours considérées comme des chaînes de caractères filtrées ou issues du filtrage, car elles sont suffisamment proches des formats requis pour être fonctionnelles. Un module est un composant logiciel et/ou matériel configuré pour exécuter une ou plusieurs fonctions spécifiques, éventuellement au sein d’un système informatique plus large. La technique proposée est particulièrement utile dans des domaines nécessitant une grande précision de reconnaissance textuelle, tels que la saisie de données, la gestion documentaire automatisée, la retranscription ou les services de réponse automatisée où il est souhaitable de mettre en œuvre un mécanisme de recherche robuste aux erreurs quelle que soit leur origine, par exemple des erreurs de saisie, de retranscription ou de reconnaissance. Des méthodes basées sur une analyse de contexte permettent la recherche d’informations dans un texte fourni par un analyseur de document et qui peut être par exemple affiché sur un écran ou sélectionné par un utilisateur. Dans ce cadre, des modèles d’analyse de langage permettent de déterminer un contexte associé à une requête d’un utilisateur et de proposer des solutions sans nécessiter la formulation explicite d’une recherche par l’utilisateur. Dans certains cas, le contexte de la recherche peut être lié à la détection de mots clés renseignés par l’utilisateur. L’analyse de contexte peut contenir un modèle de langage, ce qui lui confère une certaine robustesse aux erreurs de détection provoquées par l’analyseur de document. Cependant, ces méthodes ne sont pas adaptées lorsque la recherche ne concerne pas un mot courant ou connu tel que renseigné dans un dictionnaire mais plutôt un motif particulier tel qu’un numéro de facture ou un numéro de série dont l’expression exacte est a priori inconnue mais dont la structure générale est tout de même connue (par exemple un numéro, ou une référence, composé de 5 lettres et 6 chiffres). Par ailleurs, il est possible que le texte fourni par l’analyseur de documents comporte des erreurs d’origines variées, par exemple des erreurs liées à sa capture, telles qu’une omission d’un caractère ou une identification incorrecte des d’un caractère particulier (par exemple un « 0 », zéro, détecté à la place d’un « o », la lettre « o » minuscule). Un des objectifs de la technique proposée est de fournir un mécanisme ou un service de détection de motif robuste à ces types d’erreur. Une solution robuste consiste à comparer l’ensemble de mots d’une base de référence à l’ensemble des mots fournis par l’analyseur de document en utilisant un algorithme de mesure d’une distance telle qu’une distance de Levenshtein et ses dérivés. Néanmoins dans ce cas le nombre de tests de distance à faire est important. Le calcul à réaliser est de complexité quadratique O(n×m), avec n, le nombre de mots dans la base et m, le nombre de mots fournis par l’analyseur de documents. La complexité de ce calcul le rend coûteux en consommation de ressources processeur et en temps de calcul. Comparativement à la solution robuste évoquée, la technique proposée est avantageuse notamment en ce qu’elle permet de filtrer au préalable les chaînes de caractères fournies par l’analyseur avant de les comparer aux chaînes de caractères stockées dans la base de données et en ce qu’elle aide à corriger de potentielles erreurs dans les chaînes de caractères fournies par l’analyseur. Cela permet de réduire le nombre de chaînes de caractères non-pertinentes à comparer tout en augmentant les chances de trouver la bonne chaîne de caractères dans la base de données. La technique proposée peut assurer par ailleurs, au moins dans certains modes de réalisation, un niveau élevé de qualité et d'exactitude dans la reconnaissance réalisée. Il est présent fait référence à la FIG. 1 , qui illustre un exemple de système de traitement syntaxique comprenant : un module 1 d‘obtention de motif, un module 2 d’extension de motif, un module 3 d‘obtention d’image, un module 4 de conversion d’image en chaîne de caractère acquise, un module 5 d’extension de la chaîne de caractères acquise, un module 6 de filtrage, un dictionnaire 7, et un module 8 de sortie. Le module 1 d’obtention de motif est configuré pour obtenir, définir, créer, déterminer, recevoir, ou configurer un ou plusieurs motifs, ou patterns, destinés à servir de base pour identifier une ou plusieurs chaînes de caractères pertinentes dans des informations textuelles traitées. Par motif, il peut aussi être entendu une expression régulière ou une structure syntaxique. Le module 1 peut être implémenté comme une interface utilisateur permettant aux utilisateurs de définir manuellement les motifs ou comme un composant logiciel automatisé capable de générer des motifs basés sur des critères prédéfinis. Dans certains cas, il peut inclure des capacités de machine learning pour adapter les motifs basés sur les exemples précédents et les résultats obtenus. Le module 1 peut aussi recevoir au moins une partie des motifs et/ou des critères d’un autre dispositif électronique (serveur, base de données, terminal) via une interface de communication. Le module 2 d’extension de motif est configuré pour étendre ce ou ces motifs afin de couvrir des variantes possibles, augmentant ainsi la flexibilité et la portée de la recherche. Par exemple, un motif initial peut être ajusté pour inclure des variantes orthographiques courantes ou des erreurs typiques de saisie. Le module 2 peut être implémenté comme un algorithme automatisé qui génère des variations des motifs basés sur des règles linguistiques ou des statistiques d'erreurs communes. Dans certains cas, ce module peut être intégré au module 1 pour former un module d’obtention de motif étendu, où les extensions de motifs sont générées de manière dynamique lors de leur définition. Le module 3 d‘obtention d’image est configuré pour obtenir, acquérir ou importer une image, par exemple une capture d’écran, ou tout type de fichier image sur laquelle apparaît un document ou une surface contenant des informations textuelles à traiter. L’image sert de source de données pour le module 4. Le module 3 peut inclure des capacités de capture d'images en temps réel à partir de caméras ou de scanners, ou il peut être configuré pour importer des fichiers d'image existants. Il peut également être doté de fonctionnalités de prétraitement des images, telles que le recadrage ou le filtrage pour améliorer la qualité de la reconnaissance des caractères. Le module 4 de conversion d’image en chaîne de caractère acquise est configuré pour utiliser la reconnaissance optique de caractères (OCR) pour convertir les images capturées en texte brut. Il identifie les caractères visuels et les digitalise pour obtenir une chaîne de caractères acquise. Les modules 3 et 4 peuvent être remplacés et/ou complétés par d'autres types d'analyseurs de texte, tels que un module de reconnaissance vocale pour convertir des enregistrements audio en texte ou des modules de reconnaissance d'écriture manuscrite pour convertir des notes manuscrites en texte numérique. L'algorithme OCR peut également être ajusté pour différents types de langues et de caractères, y compris les scripts non latins ou pour différentes polices et formats de caractères. Le module 5 d’extension de la chaîne de caractères acquise est configuré pour étendre la chaîne de caractère fournie par le module 4 pour inclure des variations possibles. Cela peut impliquer l'ajout de caractères alternatifs basés sur les probabilités d'occurrence et/ou la correction des erreurs typiques identifiées pendant l'analyse OCR. Le module 5 peut inclure des algorithmes de correction orthographique et/ou grammaticale, ainsi que des modèles probabilistes pour prédire les substitutions de caractères les plus probables. Ce module peut également être combiné avec le module 4 dans un système intégré d’obtention d’une pluralité de chaînes de caractères dites « candidates », comprenant à la fois la chaîne acquise et des chaînes dérivées. Le module 5 peut également être configuré pour fournir des probabilités d'occurrence pour au moins un des caractères de la chaîne de caractères fournie par le module 4 et pour au moins un (par exemple chaque) caractère en question, un ou plusieurs caractères alternatifs avec des probabilités d'occurrence associées. Par exemple, pour une chaîne acquise, le module 5 peut indiquer que le caractère 'O' a une probabilité de 80% d'être correct, mais qu'il pourrait aussi être '0' avec une probabilité de 15%, ou 'Q' avec une probabilité de 5%. Ces probabilités d’occurrence peuvent être utilisées pour générer des chaînes de caractères étendues en tenant compte des caractères alternatifs et de leur probabilité d’occurrence respective. On note que cette extension est décrite à titre d’exemple illustratif, les chaînes de caractères candidates pouvant être obtenues de différentes manières n’impliquant pas nécessairement un module 5 d’extension. Par exemple, plusieurs modules 4 peuvent être utilisés en parallèle, chacun fournissant une chaîne candidate respective, ce qui, après déduplication, permet d’obtenir un ensemble de chaînes candidates distinctes. Le module 6 de filtrage est configuré pour obtenir ou déterminer une correspondance, entre la chaîne de caractère fournie par le module 4 (étendue par le module 5) et le motif fourni par le module 1 (éventuellement étendu par le module 2). Il cherche des correspondances exactes ou proches pour filtrer la pluralité de chaînes de caractères en fonction de la correspondance avec le motif fourni par le module 1 (éventuellement étendu par le module 2). Le module 6 peut utiliser divers algorithmes de mesure de similarité, tels que le NFA ou le Thompson NFA. Le dictionnaire 7 est une base de données, par exemple stockée sur au moins une mémoire informatique, configurée pour stocker des entrées, par exemple des références ou des exemples de chaînes de caractères et/ou de motifs validés. Il est utilisé pour traiter la ou les chaînes de caractères filtrées par le module 6 et identifier une correspondance exacte ou proche avec les références stockées dans le dictionnaire. Le dictionnaire peut être statique, contenant des données préchargées, ou dynamique, s'enrichissant de nouvelles entrées au fur et à mesure que le système apprend et traite de nouvelles chaînes de caractères. Il peut également être partagé à travers un réseau pour permettre l'accès à une base de données centralisée. Le module 8 de sortie est configuré pour générer une sortie finale associée à la chaîne de caractères acquise. Cette sortie est basée au moins sur la ou les chaînes filtrée(s) par le module 6 (par exemple ça peut être directement la sortie du module 6) et éventuellement sur une sélection, dans le dictionnaire 7, d’au moins une entrée associée à la chaîne de caractères acquise, en fonction d’une similarité entre ladite entrée et une chaîne de caractères candidate issue du filtrage. Le module 8 peut produire différentes formes de sortie, telles que des rapports, des fichiers de données, des alertes en temps réel, ou des visualisations graphiques. Il peut également intégrer des capacités d'exportation vers d'autres systèmes ou bases de données pour une utilisation ultérieure. Le module 8 peut utiliser divers algorithmes de mesure de similarité, tels que la distance de Levenshtein, la distance de Jaccard, et/ou des méthodes basées sur des réseaux neuronaux pour évaluer la similarité entre les chaînes de caractères filtré et les chaines de caractères issues du dictionnaire. Il peut également intégrer des fonctionnalités de filtrage avancées, telles que des seuils de similarité adaptatifs ou des pondérations basées sur le contexte. Une boucle de rétroaction peut être prévue pour ajuster les paramètres du système en temps réel, basant les ajustements sur les résultats obtenus. Par exemple, si une chaîne de caractères n’est pas trouvée dans le dictionnaire 7, le système peut renvoyer des informations aux modules précédents pour affiner les motifs ou les algorithmes de similarité. La boucle de rétroaction peut inclure des composants de machine learning pour améliorer continuellement la précision du procédé, ou des modules d’analyse de performance pour identifier et corriger des inefficacités dans le traitement des données. Dans un exemple de mise en œuvre du système de la FIG. 1 , un motif est fourni au module 1 d’obtention de motif. Pour cela, une expression régulière est par exemple spécifiée au module 1 par un utilisateur à l’aide d’une interface homme-machine. Un exemple d’expression régulière noté /[A,B,C]{3}/ est compris comme représentant une chaîne de caractères comprenant une série de trois caractères successifs représentant chacun la lettre A, la lettre B ou la lettre C. Les chaînes de caractères AAB1024, CBA4802 et ABC5678 présentent toutes trois une correspondance exacte avec cet exemple d’expression régulière. L’utilisateur peut également spécifier, outre l’expression régulière, différents marqueurs représentant des instructions ou paramètres de recherche. Par exemple, de manière connue, l’expression régulière peut porter le marqueur ‘g’ indiquant d’effectuer une recherche globale dans un texte fourni et de renvoyer en sortie toutes les correspondances trouvées. En parallèle, le module 4 fournit un ensemble de chaînes de caractères représentant une suite de mots affichés sur un écran. Un exemple d’ensemble de chaînes de caractères est « la référence est AB(5678 ». Dans cet exemple, aucune des chaînes de caractères de l’ensemble ne correspond exactement à l’expression régulière /[A,B,C]{3}/ car le module 4 a décodé par erreur le caractère “(“ à la place du caractère “C”. Le module 4 peut aussi fournir une probabilité d’occurrence de chacun des caractères de la chaîne de caractères ‘AB(5678’. A titre d’exemple, un tableau 10 rassemblant des chiffres fictifs représentant ces probabilités d’occurrence est représenté sur la FIG. 2 . Le module 4 peut aussi fournir, pour chacun des caractères de la chaîne de caractères ‘AB(5678’, au moins un caractère de remplacement et une probabilité d’occurrence associée. A titre d’exemple, un tableau 11 rassemblant des données fictives représentant un caractère de remplacement pour chaque caractère de la chaîne de caractères ‘AB(5678’ et les probabilités d’occurrence associées à chacun de ces caractères de remplacement est représenté sur la FIG. 3 . Les probabilités d’occurrence des caractères issus de l’analyseur peuvent aussi être obtenues d’une source distincte de l’analyseur. Par exemple, elles peuvent être fournies sous la forme de valeurs fixes préalablement calculées et/ou stockées. La FIG. 4 représente un exemple de matrice 12 de probabilités pouvant être établie à partir de données statistiques de correspondances par exemple à l’aide d’algorithmes d’apprentissage automatique utilisant un grand nombre d’échantillons d’entraînement variés. Cette matrice représente des pourcentages d'erreurs connues (issus par exemple d’un tel apprentissage) entre un caractère d'un ensemble de caractères, et d’autres caractères de cet ensemble (par exemple de tous les d’autres caractères de cet ensemble). L’ensemble de caractères peut par exemple inclure potentiellement l'alphabet latin en minuscule et majuscule, les chiffres et des caractères spéciaux. Par exemple, la lettre "O" peut être testée contre "0" avec un écart de 3%, et la lettre "C" contre "(" avec un écart de 10%. La matrice de probabilités a une hauteur et une largeur correspondant au nombre d'éléments de l’ensemble. Les colonnes représentent des caractères acquis, et les lignes des caractères de remplacement potentiels. Dans un exemple de réalisation, il peut être tenu compte conjointement de probabilités d’occurrence fournies par des sources distinctes. Par exemple une probabilité consolidée d’occurrence d’un caractère peut être calculée comme étant la moyenne des valeurs obtenues des différentes sources. Les caractères de remplacement permettent, en combinaison avec les caractères de la chaîne de caractère acquise ‘AB(5678’, de construire une pluralité de chaînes de caractères dérivées de cette chaîne de caractères acquise. Les probabilités d’occurrence individuelles des caractères permettent en outre de calculer un score , fonction de ces probabilités, pour au moins une chaîne de caractères, à savoir aussi bien celle acquise qu’une chaîne construite à partir de celle acquise. Il est ainsi possible de faire une liste de chaînes de caractères candidates à partir des caractères fournis par l’analyseur et d’ordonnancer la liste en classant les chaînes de caractères candidates en fonction de leur score (par exemple en les classant par score décroissant dans des modes de réalisation où une première chaîne plus probable qu’une seconde chaîne se voit attribuer un score plus élevé que celui de cette seconde chaîne, ou en les classant par score croissant dans des modes de réalisation où une première chaîne plus probable qu’une seconde chaîne se voit attribuer un score moins élevé que celui de cette seconde chaîne). Selon les modes de réalisation, diverses méthodes de calcul de score peuvent être utilisées. La méthode la plus simple consiste à calculer le score comme la moyenne des probabilités d'occurrence des caractères qui constituent la chaîne. Par exemple, comme illustré en FIG. 2 , si une chaîne est constituée de caractères ayant chacun une probabilité d'occurrence individuelle, le score est la moyenne arithmétique de ces probabilités. Dans certains cas, il peut être utile de pondérer les probabilités d'occurrence en fonction de l'importance relative des caractères dans un contexte spécifique. Par exemple, certains caractères pourraient avoir un poids plus élevé s'ils sont connus pour être critiques pour la reconnaissance correcte de la chaîne. Une autre méthode consiste à utiliser un score cumulatif où des pénalités sont appliquées pour chaque caractère remplacé. Par exemple, si un caractère de remplacement a une probabilité d'occurrence nettement inférieure à celle du caractère original, une pénalité proportionnelle pourrait être appliquée. Une combinaison des méthodes précitées peut aussi être utilisée : par exemple, une moyenne pondérée pourrait être combinée avec des pénalités pour obtenir un score final plus représentatif de la fiabilité globale de la chaîne candidate. A titre d’illustration, en poursuivant l’exemple des figures 2 et 3, et en se limitant pour chaque caractère de la chaîne de caractères acquise à un unique caractère de remplacement correspondant, il est possible de classer les chaînes de caractères candidates selon le principe général exposé ci-après, où CH1 désigne la chaîne de caractères acquise ‘AB(5678’, les autres chaînes de caractères candidates sont respectivement désignées par CH2, CH3, etc..., et chaque chaîne de caractères est associée à un score, global à la chaîne, correspondant à la moyenne arithmétique des probabilités d’occurrence des caractères qui la constituent. Pour la chaîne de caractères acquise, il est possible de trier ses caractères selon la différence entre la probabilité pCH1[i] de chaque caractère CH1[i] et la probabilité pRemp(CH1[i]) de son caractère de remplacement Remp(CH1[i]) (cette différence de probabilité pCH1[i] - pRemp(CH1[i]) est aussi appelée ci-après probabilité de remplacement). Par exemple, les caractères de la chaîne acquise peuvent être triés de la plus petite différence de probabilité à la plus grande. Dans cet exemple, l'ordre des caractères à interchanger est donné par PCARACTERES = [(7, A), (8, 5), (B, 6)]. On commence par interchanger le premier caractère PCARACTERES[0] qui est ‘(‘. Cela génère deux chaînes de caractères candidates, chacune associée à un score global correspondant : AB(5678 - 73% ABC5678 - 72%. Ensuite, pour chaque chaîne de caractères obtenue, on réitère l’échange de caractères avec le deuxième caractère, PCARACTERES[1], qui est ‘7’. Cela génère un total de quatre chaînes de caractères candidates pouvant être classées comme ci-après : CH1 : AB(5678 - 73% CH2 : ABC5678 - 72% CH3 : AB(56L8 - 67% CH4 : ABC56L8 - 66%. Enfin, pour chaque chaîne obtenue, on continue avec le caractère suivant, en remplaçant PCARACTERES[2], le A avec le E. Cela génère un total de huit chaînes de caractères candidates : CH1 : AB(5678 - 73% CH2 : ABC5678 - 72% CH3 : AB(56L8 - 67% CH4 : ABC56L8 - 66% CH5 : EBC5678 - 65% CH6 : EBC56L8 - 64% CH7 : EB(5678 - 63% CH8 : EB(56L8 - 62%. Ainsi, en générant et en ordonnant les traitements avec les probabilités de remplacement des caractères des chaînes de caractères candidates selon leur score global décroissant, il est possible d’établir une liste où la chaîne de caractères candidate ayant le score le plus élevé (ie la plus probable globalement) est la première à être comparée au motif défini. Dans l’exemple fourni, des substitutions individuelles successives de caractères par les caractères de substitution fournis permettent au maximum d’obtenir une liste de 256 chaînes de caractères candidates classées par score décroissant, de : CH1 : AB(5678 - 73% jusqu’à CH256 : EBCS6LB’ - 16%. Dans cette liste ordonnée, il peut être prévu que la chaîne de caractères CH1 ayant le score le plus élevé (AB(5678 - 73%) soit la première à être comparée avec l’expression régulière définie par le module 1 (éventuellement étendue par le module 2). Si cette chaîne ne correspond pas exactement au motif, il peut être prévu que la chaîne suivante CH2 dans la liste soit comparée avec l’expression régulière, et ce jusqu'à ce qu'une correspondance soit trouvée ou que toutes les chaînes aient été évaluées. Ce processus garantit que la chaîne de caractères la plus probable est évaluée en premier, optimisant ainsi les ressources et augmentant la probabilité de trouver une correspondance correcte rapidement. Il peut également être prévu que les chaînes de caractères candidates soient générées à la volée sur la base d’un ou plusieurs critères. Par exemple, il peut être prévu de : comparer d’abord la chaîne CH1 ‘AB(5678’ avec l’expression régulière, le résultat de la comparaison indiquant une absence de correspondance exacte dans ce cas, puis de générer la chaîne CH2 ‘ABC5678’ et de la comparer avec l’expression régulière, le résultat de la comparaison indiquant cette fois une correspondance exacte, et de cesser la génération de nouvelles chaînes et de conserver la chaîne CH2 ‘ABC5678’ en tant que chaîne de caractères candidate filtrée. Le critère retenu dans cet exemple est qu'une correspondance exacte avec l’expression régulière doit être trouvée pour arrêter la génération et la comparaison des chaînes de caractères, ou en d’autres termes, de réitérer successivement la génération et la comparaison tant qu’une correspondance exacte n’est pas trouvée et arrêter la génération et la comparaison lorsqu’une correspondance exacte est trouvée . Plusieurs critères alternatifs sont envisageables pour décider ou non de continuer à comparer des chaînes de caractères avec l’expression régulière et/ou pour décider ou non de continuer à générer de nouvelles chaînes de caractères. Par exemple, il peut être tenu compte d’un des critères suivants ou d’une combinaison de ces critères : un nombre de chaînes de caractères à générer et/ou comparer inférieur ou égal à un premier nombre (représentant par exemple un nombre maximum de chaînes de caractères à générer et/ou comparer) une valeur du score de probabilité global d’une chaîne de caractères acquise ou générée supérieure ou égale (inférieure ou égale selon les modes de réalisation) à une première valeur (par exemple constante et/ ou prédéfinie, jouant le rôle de seuil), une mesure de similarité, en particulier pour les applications ne nécessitant pas une correspondance exacte avec l’expression régulière, un temps de traitement pour la génération et la comparaison des chaînes (devant par exemple rester inférieur ou égale à une première durée, constante et/ou prédéfinie, jouant le rôle de seuil), un taux d’utilisation de ressources système, telles que l'occupation CPU ou mémoire. Ces critères peuvent être pris en compte en tant que seuils ou de manière plus flexible selon les besoins de l'application. Par exemple, des chaînes de caractères pourraient être générées jusqu’à l’atteinte d’une première valeur (utilisée par exemple comme seuil) du score de probabilité global ou jusqu’à ce que toutes les possibilités disponibles soient épuisées. Les critères peuvent être ajustés, par exemple de manière dynamique, pour trouver un équilibre optimal entre précision et efficacité. Lorsque l’obtention d’une correspondance exacte avec l’expression régulière n’est pas retenue comme critère d’arrêt de la comparaison des chaînes de caractères candidates, il est possible d’obtenir à l’issue du filtrage, pour une chaîne de caractères obtenue de l’analyseur, une pluralité de chaînes de caractères candidates filtrées. A titre de variante, il est possible de prévoir un prétraitement de l’expression régulière, /[A,B,C]{3}/. Par exemple, l’expression régulière peut être transformée en une expression régulière étendue /[A,B,C]{2,3}/ qui englobe toute chaîne de caractères comportant une séquence de deux à trois lettres consécutives parmi A, B et C. Une telle démarche est utile lorsque l’analyseur, par exemple un analyseur OCR, peut ne pas détecter la première lettre d’une chaîne de caractères ‘ABC5678’ et acquiert ainsi par erreur la chaîne de caractères ‘BC5678’. Il peut ensuite être prévu, lorsque la chaîne de caractères détectée comporte uniquement une séquence de deux lettres consécutives parmi A, B et C, de générer des chaînes de caractères supplémentaires par l’ajout d’une troisième lettre à la séquence. L’ajout peut être effectué uniquement en tête ou en fin de séquence ou de manière exhaustive selon toutes les positions envisageables. Même en cas de cumul d’erreurs, par exemple en cas d’acquisition d’une chaîne de caractères ‘B(5678’, les processus proposés ci-avant peuvent aider à corriger les erreurs et à reconstituer avec succès la chaîne de caractères correcte ‘ABC5678’. Il est à présent considéré un scénario dans lequel une ou plusieurs chaînes de caractères candidates filtrées sont obtenues à l’issue du filtrage. Pour vérifier si cette ou ces chaînes de caractères candidates est/sont référencée(s) dans le dictionnaire 7, une possibilité est d'utiliser la distance de Levenshtein pour comparer tour à tour les références du dictionnaire avec chacune des chaînes de caractères candidates filtrées. Prenons comme exemple un système de gestion de factures où il est nécessaire d'identifier un numéro de facture apparaissant dans un document OCRisé. Supposons que l'analyseur OCR fournisse 100 versions possibles de la chaîne de caractères correspondant au numéro de facture. Avec une méthode classique basée sur la similarité exacte, il serait nécessaire de réaliser un million de calculs de similarité pour comparer chaque version fournie par l'OCR avec les 10 000 références présentes dans le dictionnaire. Par ailleurs, il est possible qu'aucune des 100 chaînes de caractères fournies par l’analyseur ne corresponde exactement à une référence dans le dictionnaire. Dans ce cas, la méthode classique échouerait à reconnaître une référence pourtant présente, entraînant des erreurs dans la gestion des factures. La technique proposée permet fréquemment de ne conserver qu’un nombre réduit de chaînes de caractères grâce au filtrage, par exemple 3 ou 4 parmi les 100 possibles fournies par l'analyseur OCR. Ainsi, dans l’exemple considéré, le nombre de mesures de similarité à effectuer est réduit proportionnellement, ce qui représente un gain notable en termes d’utilisation de ressources. Par ailleurs, la technique proposée permet de générer des chaînes dérivées d’une chaîne acquise par l’analyseur OCR. Des tests appliqués à la recherche de références dans une base de données ont permis d’aboutir à un taux de réussite de 98%, démontrant la robustesse de la technique proposée à des erreurs issues de l’analyseur OCR. Les présentes solutions techniques peuvent trouver à s’appliquer auprès d'un large éventail d'industries nécessitant un traitement précis et efficace des chaînes de caractères. Des exemples d’applications incluent de manière non limitative la vérification d’informations dans le secteur bancaire, le traitement de dossiers de patients et de résultats d'examens dans le domaine médical, la gestion des données de commande et de livraison dans le commerce électronique, ou encore la gestion de documents officiels dans l'administration publique. Ces solutions techniques peuvent également être intégrées dans des systèmes de gestion de contenu, des plateformes de service client, des applications de traitement de texte, des logiciels d'analyse de données, des interfaces de commande vocale, des systèmes de traduction automatique, etc. La présente divulgation ne se limite pas aux exemples décrits ci-avant, seulement à titre d’exemple, mais elle englobe toutes les variantes que pourra envisager l’homme de l’art dans le cadre de la protection recherchée. Procédé, au moins partiellement automatique, de traitement syntaxique d’une chaîne de caractères acquise par un dispositif électronique (4, 5), le procédé comprenant : un filtrage d'une pluralité de chaînes de caractères candidates obtenues à partir de ladite chaîne de caractères acquise en fonction d’une correspondance entre une expression régulière et au moins une des chaînes de caractères candidates. Procédé selon la revendication 1, comprenant en outre : une sélection, dans une base de données (1, 2), d’une entrée associée à la chaîne de caractères acquise, en fonction d’une similarité entre ladite entrée et une chaîne de caractères candidate issue du filtrage. Procédé selon l’une des revendications précédentes, dans lequel le filtrage tient compte d’un nombre de chaînes de caractères candidates obtenues. Procédé selon l’une des revendications précédentes, dans lequel le filtrage tient compte d’au moins une probabilité d'occurrence individuelle d’au moins un caractère d’au moins une des chaînes de caractères candidates. Procédé selon l’une des revendications 1 à 3, dans lequel le filtrage tient compte d’un score de probabilité global d’une des chaînes de caractères candidates, ledit score de probabilité globale tenant compte de probabilités d'occurrence individuelles d’au moins une partie des caractères de ladite chaîne. Procédé selon la revendication précédente, dans lequel la probabilité d’occurrence individuelle d’un caractère est fournie avec au moins une des chaînes de caractères candidate en tant que résultat d'analyse de la chaîne de caractères acquise par un analyseur (4, 5). Procédé selon la revendication 5, dans lequel la probabilité d’occurrence individuelle d’un caractère tient compte d’au moins une valeur d’erreur connue ou attendue entre le caractère et au moins un caractère de remplacement. Procédé selon l’une des revendications précédentes, dans lequel l’expression régulière est préalablement spécifiée ou est une extension d’une proposition d’expression régulière préalablement spécifiée. Procédé selon l’une des revendications précédentes, dans lequel la pluralité de chaînes de caractères candidates comprend au moins une première chaîne de caractères candidate et une deuxième chaîne de caractères candidate obtenue à partir d’un traitement de la première chaîne de caractères candidate. Module de traitement syntaxique (6) d’une chaîne de caractères acquise par un dispositif électronique (4, 5), configuré pour : filtrer une pluralité de chaînes de caractères candidates obtenues à partir de ladite chaîne de caractères acquise en fonction d’une correspondance entre une expression régulière et au moins une des chaînes de caractères candidates.