comparaison de deux tableaux

comparaison de deux tableaux - Perl - Programmation

Marsh Posté le 26-02-2017 à 18:40:22    

Bonsoir à tous,
le but est de comparer deux tableaux, et extraire du tab1 les élements qui n'existent pas dans tab2, voici le code, mais il y a une erreur quelque part !!! Merci de m'aider à voir c'est quoi le problème  :pt1cable:  

Code :
  1. my @tab_sans_SW;
  2.  
  3. my $FichierResulat = '/home/lenovo/Bureau/MesTravaux/LeskAlgo/OriginalLeskResult';
  4. open( my $FhResultat, '>:utf8', $FichierResulat );
  5.  
  6. open(my $fh1, "<:utf8", '/home/lenovo/Bureau/MesTravaux/LeskAlgo/DemoLesk/StopWordsList.txt') or die "Failed to open file: $!\n";
  7. #Parser la liste des mots vides
  8. my @tabStopWords = <$fh1>;
  9. my @tab_contexte;
  10.  
  11. my $n=3; #taille de la fenetre contextuelle cad on va prendre juste n mot avant et après le mot ambigu
  12. #pour un mot ambigu se trouvant dans un contexte donné
  13.  
  14. open(my $fh2, "<:utf8", '/home/lenovo/Bureau/MesTravaux/LeskAlgo/text1.txt') or die "Failed to open file: $!\n";
  15.  
  16. while(<$fh2> ){
  17.  
  18. #next if m/^$/;
  19. next if /^$/;
  20. my $context= $_;
  21. @tab_contexte = split(/ /, $context);
  22. }
  23.  
  24.  
  25.  
  26. #my @tab1=qw/ a b c /;tab_contexte
  27. #my @tab2=qw/ a d c e /;tabStopWords
  28.  
  29.  
  30.  my %temp;
  31.  @temp{@tabStopWords} = 0..$#tabStopWords;
  32.  
  33.  for my $val (@tab_contexte) {
  34.    if( exists $temp{$val} ) {
  35.      print "$val est présent dans tab1 à la position $temp{$val}.\n";
  36.    } else {
  37.      print "$val n'est pas dans tab1.\n"; push @tab_sans_SW, $val;
  38.    }
  39.  }
  40.  
  41.  
  42. foreach my $words (@tab_sans_SW) {print $FhResultat "$words\n";}

Reply

Marsh Posté le 26-02-2017 à 18:40:22   

Reply

Marsh Posté le 26-02-2017 à 21:30:24    

J'ai pas cherche a comprendre ce que vous faites, parce qu'il y a une erreur manifeste, cette ligne ci:
@tab_contexte = split(/ /, $context);
A vous de réfléchir et comprendre pourquoi (la ligne n'est pas fausse a la base, mais vu son contexte d'emploi la rend fausse).
 
A+,


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

Marsh Posté le 26-02-2017 à 21:58:34    

[quotemsg=2296867,2,19304]J'ai pas cherche a comprendre ce que vous faites, parce qu'il y a une erreur manifeste, cette ligne ci:
@tab_contexte = split(/ /, $context);
A vous de réfléchir et comprendre pourquoi (la ligne n'est pas fausse a la base, mais vu son contexte d'emploi la rend fausse).
 
j'ai pas connu pourquoi la ligne n'est pas juste , merci de m'aider  

Reply

Marsh Posté le 27-02-2017 à 17:30:12    

Ben reflechissez a ce que fait cette ligne quand on est dans une boucle.
 
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