#!/usr/bin/perl # Auteur : Serge Fleury use utf8; binmode STDOUT, ":utf8"; open(FILE, "<:encoding(UTF-8)", "$ARGV[0]"); #-------------------------------------------- # le patron cherché ici est du type NOM ADJ"; #-------------------------------------------- # UTILISATION : perl extract-patron-cordial.pl NOMFICHIER # Ex : perl extract-patron-cordial_SF.pl ../../DONNEES/resultat_cordial/rubrique-3210.cnr my @lignes=; close(FILE); my %dicopatron=(); while (my $ligne=shift(@lignes)) { # On vire la ligne courante en la stockant dans $ligne, donc on la "supprime" mais elle existe tjs dans $ligne chomp $ligne; my $sequence=""; my $longueur=0; if ( $ligne =~ /^([^\t]+)\t[^\t]+\tNC.*/) { my $forme=$1; $sequence.=$forme; $longueur=1; my $nextligne=$lignes[0]; # Comme on a viré la ligne, la ligne n+1 est en fait [0] if ( $nextligne =~ /^([^\t]+)\t[^\t]+\tADJ.*/) { my $forme=$1; $sequence.=" ".$forme; $longueur=2; } } if ($longueur == 2) { # print $sequence; $dicopatron{$sequence}++; # ou $dicopatron{$sequence}=$dicopatron{$sequence}+1; } } foreach my $patron (sort {$dicopatron{$b} <=> $dicopatron{$a}} (keys %dicopatron)) { print "$patron : $dicopatron{$patron}\n"; }