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 :

Digramme dans un texte


Sujet :

Python

  1. #1
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : Suisse

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2018
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Digramme dans un texte
    Bonjour à tous,
    Je suis un grand débutant et je souhaiterais faire un code qui me renvoie tous les digrammes d'un texte et leurs occurrences. J'arrive à trouver l’occurrence d'une lettre mais pour un digramme je ne vois pas du tout par où commencer. Si une âme charitable passe par là pour me donner une piste je vous en serais très reconnaissant. Et ce qui est étrange c'est qu'en cherchant digramme dans les différents moteurs de recherche je ne trouve absolument rien.
    Merci beaucoup d'avance.

  2. #2
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Il faudrait probablement commencer par écrire la liste des digrammes. Puis ensuite présenté un bout de code que vous avez tenter. Expliquer ce que vous attendez avoir en sortie.

  3. #3
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : Suisse

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2018
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    merci pour la réponse, ça y'est pour la première partie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    i=0
    texte ="IOXIYNBMIAWBCNKGDNBYLERLVAKLUKNHNBYRKBDWKCNCKDQNHIBONLXNKGANERAKANBYEANLCNOKILRBLUKIODWHEAIYCRMRBYRFNDWHHNBYIOLVAKORINBYLIQRKYCRBLONDINOHWAYERANIOLRCNLOKBNLXKHNKLNLHRILRKARLCKLWOKBRKYANLENDYRDONMNBRIYCNORAANYNA"
    while i< len(texte):
        grpe= (texte[i:i+2])
        print (grpe, end= " ")
        i=i+1
    en faisant ça j'obtiens (enfin) mes digrammes... mais je ne vois pas comment récupérer le résultat et en compter les occurrences...
    la console me répond IO OX XI IY YN NB BM MI IA AW WB BC CN NK KG GD DN NB BY YL LE ER RL LV VA AK KL LU UK KN NH HN NB BY YR RK KB BD DW WK KC CN NC CK KD DQ QN NH HI IB BO ON NL LX XN NK KG GA AN NE ER RA AK KA AN NB BY YE EA AN NL LC CN NO OK KI IL LR RB BL LU UK KI IO OD DW WH HE EA AI IY YC CR RM MR RB BY YR RF FN ND DW WH HH HN NB BY YI IO OL LV VA AK KO OR RI IN NB BY YL LI IQ QR RK KY YC CR RB BL LO ON ND DI IN NO OH HW WA AY YE ER RA AN NI IO OL LR RC CN NL LO OK KB BN NL LX XK KH HN NK KL LN NL LH HR RI IL LR RK KA AR RL LC CK KL LW WO OK KB BR RK KY YA AN NL LE EN ND DY YR RD DO ON NM MN NB BR RI IY YC CN NO OR RA AA AN NY YN NA A
    y'a plus qu'à les compter... mais comment...?
    merci d'avance

  4. #4
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : Suisse

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2018
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    et en lui demandant de compter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    i=0
    texte ="IOXIYNBMIAWBCNKGDNBYLERLVAKLUKNHNBYRKBDWKCNCKDQNHIBONLXNKGANERAKANBYEANLCNOKILRBLUKIODWHEAIYCRMRBYRFNDWHHNBYIOLVAKORINBYLIQRKYCRBLONDINOHWAYERANIOLRCNLOKBNLXKHNKLNLHRILRKARLCKLWOKBRKYANLENDYRDONMNBRIYCNORAANYNA"
    while i< len(texte):
        grpe= (texte[i:i+2])
        i=i+1
    for grpe in texte:
        nombre = texte.count(grpe)
        print(grpe + " apparait " + str(nombre))
    ïl me compte les lettres et pas les groupes de lettres...

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Au lieu de printer les digrammes place-les dans une liste.
    Ensuite tu comptes tes occurrences dans cette liste en plaçant les résultats dans un dictionnaire par exemple.

    Pour les compter tu as la méthode count() de la liste ou bien tu utilises une boucle.
    par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    dig_list = ["IO", "OX", "XI", etc......]
    digrammes = {}
     
    for i in dig_list:
        val = digrammes.get(i, 0) + 1
        digrammes[i] = val
     
    print(digrammes)

  6. #6
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    pour la méthode astucieuse on peut tirer parti d'une regex bien sentie et de collections.Counter() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> import re
    >>> from collections import Counter
    >>> s = 'IOXIYNBMIAWBCNKGDNBYLERLVAKLUKNHNBYRKBDWKCNCKDQNHIBONLXNKGANERAKANBYEANLCNOKILRBLUKIODWHEAIYCRMRBYRFNDWHHNBYIOLVAKORINBYLIQRKYCRBLONDINOHWAYERANIOLRCNLOKBNLXKHNKLNLHRILRKARLCKLWOKBRKYANLENDYRDONMNBRIYCNORAANYNA'
    >>> z = re.findall(r'(?=(..))', s)    # les digrammes de la chaine (on capture *dans* le lookahead)
    >>> dict(Counter(z))                  # le comptage via Counter()
    {'IO': 4, 'OX': 1, 'XI': 1, 'IY': 3, 'YN': 2, 'NB': 7, 'BM': 1, 'MI': 1, 'IA': 1, 'AW': 1, 'WB': 1, 'BC': 1, 'CN': 5, 'NK': 3, 'KG': 2, 'GD': 1, 'DN': 1, 'BY': 6, 'YL': 2, 'LE': 2, 'ER': 3, 'RL': 2, 'LV': 2, 'VA': 2, 'AK': 3, 'KL': 3, 'LU': 2, 'UK': 2, 'KN': 1, 'NH': 2, 'HN': 3, 'YR': 3, 'RK': 4, 'KB': 3, 'BD': 1, 'DW': 3, 'WK': 1, 'KC': 1, 'NC': 1, 'CK': 2, 'KD': 1, 'DQ': 1, 'QN': 1, 'HI': 1, 'IB': 1, 'BO': 1, 'ON': 3, 'NL': 6, 'LX': 2, 'XN': 1, 'GA': 1, 'AN': 6, 'NE': 1, 'RA': 3, 'KA': 2, 'YE': 2, 'EA': 2, 'LC': 2, 'NO': 3, 'OK': 3, 'KI': 2, 'IL': 2, 'LR': 3, 'RB': 3, 'BL': 2, 'OD': 1, 'WH': 2, 'HE': 1, 'AI': 1, 'YC': 3, 'CR': 2, 'RM': 1, 'MR': 1, 'RF': 1, 'FN': 1, 'ND': 3, 'HH': 1, 'YI': 1, 'OL': 2, 'KO': 1, 'OR': 2, 'RI': 3, 'IN': 2, 'LI': 1, 'IQ': 1, 'QR': 1, 'KY': 2, 'LO': 2, 'DI': 1, 'OH': 1, 'HW': 1, 'WA': 1, 'AY': 1, 'NI': 1, 'RC': 1, 'BN': 1, 'XK': 1, 'KH': 1, 'LN': 1, 'LH': 1, 'HR': 1, 'AR': 1, 'LW': 1, 'WO': 1, 'BR': 2, 'YA': 1, 'EN': 1, 'DY': 1, 'RD': 1, 'DO': 1, 'NM': 1, 'MN': 1, 'AA': 1, 'NY': 1, 'NA': 1}

  7. #7
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Décembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : Suisse

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2018
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup ça a résolu mon problème! Je reviendrai certainement avec d'autres bêtes questions après avoir fait qques tutoriaux. En attendant une belle journée a tous !

Discussions similaires

  1. Utilisation de replace dans champs text
    Par cdelamarre dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 01/12/2004, 17h26
  2. [ Vector Fichier ] Vector dans fichier texte
    Par geegee dans le forum Langage
    Réponses: 5
    Dernier message: 21/05/2004, 13h56
  3. Insertion dans fichier texte + rapide que TStringList ?
    Par benj63 dans le forum C++Builder
    Réponses: 8
    Dernier message: 26/02/2004, 11h34
  4. Que privilégier : %like% dans champs texte, ou plain text ?
    Par Dimitri01 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/01/2004, 11h45

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