Vous êtes ici : Accueil / Forums & ML / Forums Python / Forum général Python / C'est possible en Python ?

C'est possible en Python ?

Remonter à Forum général Python
  • C'est possible en Python ?

    Envoyé par JM le 6 Mai 2006 à 18:40
    Bonjour

    C’est encore moi avec mes questions (j’espère ne pas abuser)

    Je me demandais.....

    Est-il possible d’écrire un script qui compte les mots qui reviennent le plus souvent dans un fichier .txt et indique le nombre d’occurrences ?

    Par « mot » j’entends une chaîne de caractères comprise entre 2 blancs bien sûr.

    Merci pour vos lumières

    -- Jérôme, débutant qui ne demande qu’à apprendre
    • Re: C'est possible en Python ?

      Envoyé par JM le 9 Mai 2006 à 19:02
      Merci pour ces précisions. Je n'en suis pas encoe aux dictionnaires. Pour tout dire j'apprends Python pour faire des opérations comme celle-ci sur des chaînes de caractères. Du moins dans un premier temps. Après on verra…
    • Re: C'est possible en Python ?

      Envoyé par jpcw2002 le 7 Mai 2006 à 06:42
      c'est quasiment l'intitulé de l'exemple du livre de Tarek. Tu trouveras le code ici :
      Site du livre
    • Re: C'est possible en Python ?

      Envoyé par JM le 8 Mai 2006 à 02:14
      Merci pour ta réponse. Je ne connaissais pas le site de Tarek
    • Re: C'est possible en Python ?

      Envoyé par LaurentPi le 9 Mai 2006 à 18:03
      Le programme de Tarek est un peu complexe ;)

      On peut écrire le programme qui affiche la liste des mots les plus fréquents d'un texte avec leur occurrence en 6 lignes.

      Le principe : on stocke les mots dans un dictionnaire ayant pour clé le mot et pour valeur le nombre d'occurrences. Une fois ce dictionnaire obtenu, il ne reste plus qu'à rechercher les mots les plus fréquents dans ce dernier.

      Pour construire le dictionnaire il faut partir de la liste des mots du texte, et il existe justement une méthode sur les chaînes de caractères qui fait la transformation en liste de mots : c'est split().
      >>> texte = "Ceci n'est pas un programme Python."
      >>> texte.split()
      ['Ceci', "n'est", 'pas', 'un', 'programme', 'Python.']


      Si on veut un séparateur plus sophistiqué il faut utiliser la méthode 'split' du module 're' ou remplacer tous les caractères indésirables par des espaces.

      Je vous suggère d'essayer de faire par vous-même ce programme une fois que vous aurez appris à utiliser les dictionnaires.

Rendu par Ploneboard