Besoin d'aide pour script PERL

Bonsoir,

J'ai écrit un script PERL pour extraire des syntagmes nominaux, et je n'arrive pas à voir ce qui ne va pas. Lorsque je l'éxecute, il m'affiche le texte, mais pas les syntagmes.

Voici mon programme :

use strict;

my $ligne;
my $forme;
my $cat;
my $lemme;
my $i;
my @tab;
my @cate;
my $elt;
my $recherche;

open (G, 'C:\Users\Wimi\Desktop\Récursivité\Perl\7 avril\fichiertagge3.txt')||die " erreur ouverture du fichier F";

$i=0;
while ($ligne=<G>)
{ warn " \n";# affiche l'etat du traitement au fur et a mesure qu'il traite les lignes
chomp ($ligne);
($forme, $cat, $lemme) = split (/\t/, $ligne);
@tab[$i]=$forme;
@cate[$i]=$cat;
$i= $i+1;
# print "$tab[$i] $cate[$i] $lemme \n";
}

foreach $elt(@cate)
{
if ($cate[$i] eq 'NOM' && $cate[$i+1]eq'PRE' && $cate[$i+2]eq'NOM')
{
$i= $i+1;
print " $tab[$i] $tab[$i+1] $tab[$i+2]\n";
}
}

close (G); # FERMER LE FICHIER TRDRE.TAG

3 réponses

  1. Modérateur
    Salut,

    Peux tu donner un exemple concret?
    Ce que ton fichier contient et ce que tu veux obtenir.
    1. Merci !
      Mon fichier d'entrée est de ce type :

      L DET le
      angine NOM angine
      est VER être
      une DET un
      infection NOM infection
      aiguë ADJ aigu
      des PRE des
      amygdales NOM amygdale
      et COJ et
      du PRE du
      pharynx NOM pharynx
      . PONC-point .
      En PRE en
      France NOM France
      , PONC-virgule ,
      le DET le
      traitement NOM traitement
      antibiotique ADJ antibiotique
      est VER être
      pratiquement ADV pratiquement
      systématique ADJ systématique
      afin d' COJ afin de
      éviter VER éviter
      les DET le
      complications NOM complication
      des PRE des
      angines NOM angine
      à PRE à PrepO
      streptocoque NOM streptocoque
      béta-hémolytique ADJ béta-hémolytique
      . PONC-point .
      Les DET le
      formes NOM forme
      cliniques ADJ clinique
      n' ADV ne
      ont VER avoir
      rien ADV rien
      de PRE de
      spécifique ADJ spécifique
      . PONC-point .
      Les DET le
      plus ADV plus
      fréquentes ADJ fréquent
      sont VER être
      les DET le
      angines NOM angine
      erythémateuses ADJ erythémateuses
      ou COJ ou
      érythémato-pultacées ADJ érythémato-pultacées
      . PONC-point .
      Il PRO il
      existe VER exister
      d'autresDET d'autres
      formes NOM forme
      qu' PRO que
      il PRO il
      faut VER faillir
      savoir VER savoir
      reconnaître VER reconnaître
      comme PRE comme
      la DET le
      mononucléose NOM mononucléose
      infectieuse ADJ infectieux
      , PONC-virgule ,
      la DET le
      dyphtérie NOM dyphtérie

      Il est donc censé détecter toutes les séquences NOM PRE NOM, mais ça ne m'affiche pas les bonnes infos :s
      1. Modérateur
        Salut,

        Ok, pour le fichier d'entrée, mais je ne comprends pas ce que tu veux dire par séquences NOM PRE NOM

        Peux-tu donner un exemple de ce que tu veux obtenir comme résultat? Merci.