Bonjour,
Alors voilà j'ai un fichier txt et j'aimerai compter les occurrences d'un mot particulier. J'ai créé (avec l'aide de mon professeur) ce programme qui permet de compter toutes les occurrences dans le txt mais j'aimerai inclure un mots en particulier et je n'y arrive pas. Voici mon code actuel:
Voilà, j'espère que quelqu'un pourra m'aider!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 #!/usr/bin/perl use strict; use warnings; use utf8; binmode(STDOUT,':utf8'); # utf8 pour la sortie standard # lecture de la stop-list my %stop = (); open(IN,'stop.txt'); binmode(IN,':utf8'); while (my $mot = <IN>) { chop $mot; $stop{$mot} = 1; } close(IN); # parcours du corpus open(IN,'Gatsby.txt'); binmode(IN,':utf8'); # tableau associatif pour stocker les mots my %compteurs = (); while (my $ligne = <IN>) { chop $ligne; # on enlève le passage à la ligne if ($ligne =~ /^[^{]/) { my $ligne = "\L$ligne"; # sauvetage des expressions $ligne =~ s/mise en place/miseXenXplace/g; $ligne =~ s/gestion de projets?/gestionXdeXprojet/g; my @mots = split(/[\W\d]+/,$ligne); foreach my $mot (@mots) { if (($mot ne '') && (!exists($stop{$mot}))){ # on crée une case étiquetée par le $mot # et au contenu quelconque # sans cette ligne le tableau reste vide # $compteurs{$mot} = 1; if (exists($compteurs{$mot})) { $compteurs{$mot} = $compteurs{$mot}+1; } else { $compteurs{$mot} = 1; } } } } } # affichage du vocabulaire par ordre alphabétique #use locale; #foreach my $mot (sort keys %compteurs) { # print "$mot\n"; #} # affichage mots et compteurs foreach my $mot (sort { $compteurs{$a} <=> $compteurs{$b} } keys %compteurs) { #if (!exists($stop{$mot})) { print $compteurs{$mot}; $mot =~ s/X/ /g; print " $mot\n"; #} }![]()
Partager