le nombre d'occurence de chaque mot

le nombre d'occurence de chaque mot - Perl - Programmation

Marsh Posté le 22-04-2013 à 14:32:35    

bonjour , je cherche un script en perl qui affiche le nombre d'occurence de chaque mot dans un fichier txt merci d'avance

Reply

Marsh Posté le 22-04-2013 à 14:32:35   

Reply

Marsh Posté le 22-04-2013 à 17:08:56    

Bonjour,
Le principe de base en est simple et documenté dans le code qui suit

Code :
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4.  
  5. my %words;
  6. while (<> ) { # donc on va passer le fichier sur STDIN avec cat ou autre
  7.  chop; # On vire le caractère de fin de ligne
  8.  tr /.,!?:/ /; # On remplace la ponctuation (en rajouter s'il en manque) par des espaces
  9.  foreach (split /\s+/, $_) { # on splitte la ligne sur les espaces
  10.     $words{$_}++;
  11.  }
  12. }
  13.  
  14. # Après, a vous de choisir les critères de tris vous convenant pour l'affichage
  15. # j'ai choisi ici d'abord le nombre d'occurences (ordre décroissant), puis la taille (ordre croissant), puis l'ordre alphabétique (ordre croissant)
  16. foreach (sort {$words{$b} <=> $words{$a}
  17.          or length($a) <=> length($b)
  18.            or $a cmp $b } (keys %words)) {
  19.  print "$_: $words{$_}\n";
  20. }


$words{$_}++;
Pour chaque mot (passé dans $_) trouvé par split, si il figure dans %words, on incrémente l'entrée correspondante, et sinon, on crée l'entrée et on met sa valeur à 1.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed