Bonjour à tous c'est encore moi, la novice en perl qui en apprend un peu plus chaque jour grâce à ce forum.
Aujourd'hui je cherche à faire un programme qui extrait tous les bigrammes d'un texte avec la fréquence de chaque.
output :
'le lapin' => 2
'lapin mange' => 1
...
J'ai déjà un bout de code mais j'ai encore un problème avec ces foutus variable ;-) le voici :
quand je l'execute il m'affiche : "use of uninitialized value $ligne in pattern match (m//) at ..."
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 #! /usr/bin/perl use warnings; use strict; my $fichier_corpus = 'input.txt'; my $fichier_fr = 'output.txt'; open my $fh_corpus, "<:utf8", $fichier_corpus or die "Impossible de lire $fichier_corpus\n"; open my $fh_fr , ">>:utf8", $fichier_fr or die "Impossible de lire $fichier_fr\n"; my %words; my $ligne = <$fh_corpus>; while (my $ligne =~ /(\w+ (\w+))/g) { ++$words{$1}; pos($ligne) = $-[2]; } for (sort { index($ligne,$a) <=> index($ligne,$b) } keys %words) { print {$fh_fr}"'$_' => $words{$_}\n"; }
Quelle modif dois-je apporter ?
Merci beaucoup d'avance de votre aide.
Partager