IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Inventaire de tous les mots avec un ? (script python)


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Par défaut Inventaire de tous les mots avec un ? (script python)
    Bonjour,
    j'ai récupéré un fichier .ged (généalogie) de plus 60Mo. Il semble qu'il y est une un pb d'encodage lors de l'exportation (source initiale perdue => nouvel export impossible). Je dois travailler en qu'actif sur le fichier que j'ai et dans lequel, les caractères accentués ont été remplacés par "?".

    via des rechercher/remplacer j'ai beaucoup amélioré les choses.
    Mais il reste de nombreux cas avec des occurrences moins nombreuses.

    Quelqu'un pourrait il me proposer svp un script python pour analyser ce fichier (source.ged) et faire un inventaire de tous les mots avec ?, l'enregistrer dans un corrections.txt
    (suis sous macOS et le fichier et en UTF-8)
    une fois que j'aurai cet inventaire, tous les mots trouvés depuis le début, jusqu'à la fin du source.ged > (corrections.txt), je ferai l'inventaire du nombre d'occurrences de tous les mots distincts.
    par tri décroissant, d'occurence, je procéderai au remplacement progressif avec les lettres correctes

    >En vous remerciant par avance
    Bien à vous

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 050
    Par défaut
    Hello,

    La présence de caractères '?' à la place de caractères accentués dans un fichier GEDCOM est un symptôme courant de problèmes liés à l'encodage des caractères. Comprendre la nature de ces problèmes est essentiel avant d'entreprendre une correction.

    Le standard GEDCOM prévoit une étiquette CHAR dans la section d'en-tête (HEAD) du fichier pour déclarer l'encodage des caractères utilisé (par exemple, 1 CHAR UTF-8 ou 1 CHAR ANSEL). Théoriquement, cela devrait permettre aux logiciels d'interpréter correctement le contenu.

    Voir la doc -> Character Encoding

    Après vous pouvez faire cette analyse en python (mais je ne vois pas votre code), ça ne pose aucune difficulté majeure, à part si on travaille avec les expressions régulières, ce qui peut être une bonne solution.

    Et peut-être aussi qu'on pourrait faire ça avec une simple ligne commande Unix ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -o '\b\w*\?\w*\b' source.ged > corrections.txt
    À adapter pour les mots avec traits d'union, apostrophe, ... voir utiliser aussi des outils comme sed et awk.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 817
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par fbaux Voir le message
    Quelqu'un pourrait il me proposer svp un script python pour analyser ce fichier (source.ged) et faire un inventaire de tous les mots avec ?, l'enregistrer dans un corrections.txt
    Approche naïve...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    with open("source.ged", "r") as f_in, open("corrections.txt", "w") as f_out:
    	for ligne in f_in:
    		for  mot in ligne.split(" "):
    			if len(mot) > 1 and "?" in mot: print(mot, file=f_out)		# len(mot) > 1 pour éviter de traiter les ponctuations solitaires
    	# for
    # with
    Un code de ce genre (il sépare chaque mot de la ligne sur l'espace puis identifie les mots contenant un "?") te donnera un point de départ.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. La liste de tous les mots français avec définition dans un fichier xml ou texte
    Par mahmoud35 dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 02/11/2020, 16h47
  2. [WD-2010] Macro pour rechercher tous les mots avec deux majuscules
    Par Loicdup dans le forum VBA Word
    Réponses: 0
    Dernier message: 24/05/2018, 22h17
  3. Réponses: 2
    Dernier message: 17/06/2012, 14h28
  4. Imprimer tous les fichiers avec un mot spécifié dans le nom
    Par cyber-kaiser dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/06/2007, 13h35
  5. Récupérer tous les champs avec un DISTINCT
    Par Le Mérovingien dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/11/2005, 23h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo