#!/usr/bin/perl -w
use warnings;
use diagnostics;
use strict;
use locale;
<<DOC;

prend en entree un fichier issu de treetagger (argument en position 0)
et un fichier de patrons morphosyntaxiques (argument en position 1); 
le programme extrait des suites de tokens correspondant 
aux patrons morpho-syntaxiques contenus dans le fichier de patrons

exemples d utilisation avec les fichiers d exemple fournis :

perl trouve_terme_mod.pl SORTIE-TREETAGGER.txt patrons-1.txt> fichier des termes

DOC


my @liste;
my @termes;
my @patrons;
my $chpatrons;
my $sptrc;
my $i=0;
#===================================
# Lecture des termes et des patrons
#===================================

open(FIC,$ARGV[0]);
while (<FIC>)
{
@liste=split('\t',$_);
$termes[$i]=$liste[0];
$patrons[$i]=$liste[1];
$i++;
}
$chpatrons=join(" ",@patrons);
 
#print "choisis un nom de fichier pour contenir les termes extraits\n";
$i=0;

close(FIC);
#===================================
# Lecture du fichier  des patrons
#===================================
open(FIC,$ARGV[1]);
open(FIC1,">res.txt");
while (defined($sptrc=<FIC>))
{
 $sptrc=~ s/\r//g;

 $sptrc=~ s/\n//g;

 cherche_patrons();

}

close(FIC);
close(FIC1);

#====================================

sub cherche_patrons

{
my $base=0;
my $ch=$chpatrons;

my $t;
my $ii=0;
my @chu;
my $d=nb_terme($sptrc);

my $s=0;


$chpatrons=~ s/$sptrc/1 $sptrc/g;
 
#print  $chpatrons;


my @nptron=split(' ',$chpatrons);

while ($ii< $#nptron)
{
if ($nptron[$ii] eq "1")
{

 $ch= join(" ", @termes[$ii-$s..$ii-$s+$d-1]);
 if ($ch !~/[^a-zA-Z0-9çàáèéùîïæœëêôÿŸÈÉÊÇÎÏâÂÙŒÛûúÚ_\-\s]/)
 {
    print $ch ."\n";
 }
$s++;
}
$ii++;
}


}



#===================================

sub nb_terme
{ my $chen=$_[0];

  my $nb=1;
  while ($chen=~ m/ /g) 
{ 
$nb++;
}
  return $nb;
}
  

