Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1132 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Comparaison de variables avec un pdf OCRisés

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comparaison de variables avec un pdf OCRisés

n°2300382
pioutar
Posté le 09-05-2017 à 07:49:14  profilanswer
 

Bonjour !
 
Je cherche de l’aide pour le problème suivant :  
 
J’ai une base de données avec notamment ‘nom’ et ‘prénom’ (env 7000 lignes). J’ai plein de document pdf ocrisés (assez bonne fidélité, à la louche performance de la reconnaissance aux alentours de 95% peut-être un peu moins pour les noms propres, qui m’intéressent en l’occurence). Je souhaite pour chaque document (entre 1 et 5 pages a4) trouver si un nom ET prénom apparait une fois ou plus dans le document avec un score de certitude (genre : Alain ET Durand apparaissent chacun 7x dans le document, aucun autre couple nom/prenom n’y est détecté —> score de 100%).
J’ai déjà vaguement des idées avec l’utilisation de similar_text() et levenshtein(). D'instinct j'enlèverais les caractères spéciaux des mots ocrisés, les mettrais dans un tableau et en comparerais chaque cellule avec les nom/prénoms de la base et générerai un tableau de variable avec nomBase, prenomBase, score. Mais je sens que c'est pas très élégant, un peu bourrin et que le diable va se cacher dans des détails auxquels je n'ai pas encore pensé.
 
Est-ce que quelqu’un aurait une idée de la direction à prendre ? Y a-t-il quelque chose d’existant ?
 
Merci d’avance, la bonne journée !
 

mood
Publicité
Posté le 09-05-2017 à 07:49:14  profilanswer
 

n°2300410
torwood3
Posté le 09-05-2017 à 14:45:11  profilanswer
 

Salut,
 
C'est sympa comme problématique. Ça s'approche pas mal du domaine de Named-entity recognition. Je prends comme hypothèse que ton texte est en français.
Concernant ta solution:  
 - Je suis perplexe concernant les métriques que tu souhaites utiliser. Tu iras bien plus vite en regardant la similarité totale des caractères (==) au lieu de calculer une distance syntaxique.
 - Il faut nettoyer le textes un maximum si tu veux comparer ta liste et les documents. Donc bags of words sur les "le, de, ..." (à voir si tu as des noms "de la haute maison" ...) et nettoyage des verbes (Wolf ? le wordnet français).
 - Pour la comparaison, ca me semble un bon cas d'usage du Map Reduce d'hadoop #forfun
 - J'ai pas pigé le score de certitude ? C'est savoir à combien de pourcentage tu es sur d'avoir un Alain Durand plutôt qu'un Alain Dupond à chaque fois que tu trouves un alain dans un texte ?
 
Tu as des besoins de perf ? de temps max ? d'une solution reproductible ?  
 
Je suis curieux de savoir l'usage :) tiens moi au courant.
Tor


Message édité par torwood3 le 09-05-2017 à 15:01:14

---------------
"La valeur d'un homme tient dans sa capacité à donner et non dans sa capacité à recevoir." Albert Einstein / "Dans la nature, tout a toujours une raison. Si tu comprends cette raison, tu n'as plus besoin de l'expérience." Léonard De Vinci
n°2300469
rufo
Pas me confondre avec Lycos!
Posté le 10-05-2017 à 22:38:38  profilanswer
 

levenshtein(), c'est pas idiot d'utiliser ça pour être tolérant aux erreurs dues à l'OCR. En effet, avec une comparaison stricte, il risque de passer à côté de noms/prénoms présents dans sa BD et ses PDF mais parce qu'il y aura une lettre mal reconnues, la comparaison matchera pas. Au passage, Mysql dispose de la fonction MATCH AGAINST pour faire de la comparaison de textes.
 
Une idée en passant : pour détecter les erreurs de lettres mal reconnues, pourquoi pas pré-traiter les PDF et voir li la probabilité d'occurrence d'une lettre après une autre est conforme aux stats. En effet, dans une langue, la proba d'apparition d'une lettre après la lettre précédente ou les 2 lettres précédentes est très caractéristique. Ca vaut aussi pour les noms.
 
La BD en fr dispos sur lexique.org pourra peut-être t'aider ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2300500
gilou
Modérateur
Modzilla
Posté le 11-05-2017 à 13:48:52  profilanswer
 

rufo a écrit :

En effet, dans une langue, la proba d'apparition d'une lettre après la lettre précédente ou les 2 lettres précédentes est très caractéristique. Ca vaut aussi pour les noms.

Tu voudrais nous laisser croire que Rajaonarimampianina-łęśźćźyński pourrait poser problème?  [:ddr555]  
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2300507
rufo
Pas me confondre avec Lycos!
Posté le 11-05-2017 à 14:30:34  profilanswer
 

On va espérer qu'il n'a pas trop de longs étrangers...
Bien entendu, les propositions de correction seront mises dans une liste qu'il validera avant que les corrections soient effectives.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Comparaison de variables avec un pdf OCRisés

 

Sujets relatifs
Modifier les variablesCréation d'un Procédure pour la comparaison de deux tables
peut on execut du javascript pas a pas en espionnant les variables?Explication des variables dans un boucle
comparaison de deux tableaux[REGLÉ] Fonction php avec variables : débutant
comparaison string perlUtilisation de variables avec VLookup
TWS PB variables dépendantesPlusieurs variables ou un tableau? (Performances)
Plus de sujets relatifs à : Comparaison de variables avec un pdf OCRisés


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR