# Recherche de patrons syntaxiques dans le corpus.
# On utilisera ici la version étiquetée du corpus Prématurés 96 (p96.tag).
# On tentera de mettre au jour des structures syntaxiques récurrentes dans le corpus autour de formes pôles. 
	###  Vous choisirez cinq formes graphiques différentes. Vous construirez ensuite un programme perl qui prend en entrée le fichier catégorisé et un nombre donné. Ce nombre définira la longueur de la fenêtre de mots que vous souhaitez extraire autour de la forme pôle.
	###  Vous appliquerez ce programme sur votre fichier catégorisé.

	
#!usr/bin/perl/
open (FILEIN, "p96.tag");
open (FILEOUT, ">etape4.html");

# c'est l'utilisateur qui tape combien il veut de mots avant l'occurrence recherchée
print "Combien souhaitez-vous de mots avant l'occurrence ?";
my $gauche = <STDIN>;
chomp $gauche;

# c'est l'utilisateur qui tape combien il veut de mots après l'occurrence recherchée
print "Combien souhaitez-vous de mots après l'occurrence ?";
my $droite = <STDIN>;
chomp $droite;

# On commence à établir la forme du fichier au format HTML en sortie
print FILEOUT "<HTML>\n <HEAD><TITLE>Etude de structures syntaxiques</TITLE></HEAD>\n";
print FILEOUT "<BODY>\n <TABLE border=1>\n";

@listemots=("bébé", "soins", "calme", "réactif", "tonique"); 	# ici on définit la liste de mots qui nous intéresse

print FILEOUT "<TR><TD align=\"center\">CONTEXTE GAUCHE DE L'OCCURRENCE</TD><TD align=\"center\">OCCURRENCE</TD><TD align=\"center\">CONTEXTE DROIT DE L'OCCURRENCE</TD></TR>";

while ($ligne=<FILEIN>)
{
chomp($ligne);
for ($ligne =~ /$listemots[$i]\/[A-Z]+/g)
	{
	print FILEOUT "<TR>";
	print FILEOUT "<TD>";
	my $avant = $`;	# $` recupère le contexte gauche
	my $apres = $';	# $' recupère le contexte droit
	# il faut maintenant compter les mots du contexte gauche
	@contgauche = split(/ /, $avant);
	$nbgauche = $#contgauche-$gauche+1;
	if ($nbgauche>=0)
		{
		$nb = $nbgauche;
		while ($nb<$#contgauche+1)
			{
			print FILEOUT "$contgauche[$nb] ";
			$nb=$nb+1;
			}
		}
	else
		{
		print FILEOUT "$`";
		}
	print FILEOUT "</TD>";
	# il faut maintenant récupérer la forme d l'occurrence
	print FILEOUT "<TD><b>$&</b></TD>";	# $& permet de récupérer l'occurrence
	# il faut maintenant compter les mots du contexte droit
	print FILEOUT "<TD>";
	@contdroit = split(/ /, $apres);
	$nbdroite = $#contdroit-$droite+1;
	if ($nbdroite>=0)
		{
		$nbre = $nbdroite;
		while ($nbre<$#contdroit+1)
			{
			print FILEOUT "$contdroit[$nbre] ";
			$nbre=$nbre+1;
			}
		}
	else
		{
		print FILEOUT "$'";
		}
	print FILEOUT "</TD></TR>";
	}
}
print FILEOUT "</TABLE>\n </BODY>\n </HTML>\n";
close FILEOUT;
close FILEIN;
