c-norm-3.pl
#!/usr/bin/perl use locale; #caracteres accentues #On lance comme cela: perl c-norm-3.pl #On obtient: file-c3.txt print "Bienvenu(e) au programme qui permet que de \n normaliser les étiquettes se référant à \n la catégorie grammaticale de Cordial vers \n celles de TreeTagger (aka type) \n"; print "Nom du fichier de travail, de preference un .cnr au format UNIX: \n"; my $file=<STDIN>; chomp($file); open(FILEIN, $file); open(FILEOUT, ">$file.cnorm3"); my $DUMPFULL=""; while(my $recup=<FILEIN>) { #1. transcodage ##Vous pouvez compléter les catégories, je n'ai pris que celles du corpus ####Les catégories grammaticales#### $recup=~s/\\r//g; $recup=~s/NCMS/NOM/g; $recup=~s/NCFS/NOM/g; $recup=~s/NCMP/NOM/g; $recup=~s/NCFP/NOM/g; $recup=~s/NCMIN/NOM/g; # dates (NUM), tout ce qui est temporel: janvier, octobre, cours et résidus: pays, Gaulois, Prix, tête-à-tête $recup=~s/NCSIG/NOM/g; $recup=~s/NCI/NOM/g; $recup=~s/NCPIG/NOM/g; $recup=~s/NPMS/NAM/g; $recup=~s/NPFS/NAM/g; $recup=~s/NPI/NAM/g; $recup=~s/NPSIG/NAM/g; $recup=~s/NPMIN/NAM/g; $recup=~s/VINDP3S/VER/g; $recup=~s/VINDP3P/VER:pres/g; $recup=~s/VPARPRES/VER:ppre/g; $recup=~s/VPARPMS/VER:pper/g; $recup=~s/VPARPFS/VER:pper/g; $recup=~s/VPARPMP/VER:pper/g; $recup=~s/VPARPFP/VER:pper/g; $recup=~s/VINDI3S/VER:impf/g; $recup=~s/VINDI3P/VER:impf/g; $recup=~s/VINDF3S/VER:futu/g; $recup=~s/VINDF3P/VER:futu/g; $recup=~s/VINF/VER:infi/g; $recup=~s/VCONP3S/VER:cond/g; $recup=~s/PREP/PRP/g; $recup=~s/DETDMS/DET:ART/g; $recup=~s/DETDFS/DET:ART/g; $recup=~s/DETIFS/DET:ART/g; $recup=~s/DETDPIG/DET:ART/g; $recup=~s/DETIMS/DET:ART/g; $recup=~s/DETPOSS/DET:POS/g; $recup=~s/DETDEM/DET/g; #Problème, ce et cette sont dans PRO:DEM et pas dans DET sous TreeTagger, mais je les met à défaut dans DET $recup=~s/ADJMS/ADJ/g; $recup=~s/ADJFS/ADJ/g; $recup=~s/ADJFP/ADJ/g; $recup=~s/ADJMP/ADJ/g; $recup=~s/ADJSIG/ADJ/g; $recup=~s/ADJPIG/ADJ/g; $recup=~s/ADJNUM/ADJ/g; #C'est NUM dans TreeTagger mais il est dans les ADJ sous Cordial $recup=~s/ADJORD/ADJ/g; #Or dans TreeTagger c'est dans les NUM $recup=~s/ADJIND/ADJ/g; #Or dans TreeTagger c'est dans PRO:IND $recup=~s/ADJMIN/ADJ/g; $recup=~s/ADJINV/ADJ/g; $recup=~s/PCTFORTE/SENT/g; $recup=~s/PCTFAIB/PUN/g; $recup=~s/COO/KON/g; $recup=~s/SUB/KON/g; #Conjonction KON ou pronom PRO:REL, or comme il y a quand, je mets KON $recup=~s/ADV/ADV/g; $recup=~s/PPER3S/PRO:PER/g; $recup=~s/PPER3P/PRO:PER/g; $recup=~s/PRI/PRO:REL/g; $recup=~s/PIMS/PRO:IND/g; #Parce que dans TreeTagger c'est dans PRO:IND#2. Memorisation dans DUMPFULL $DUMPFULL.=$recup; } #3. Remplacement des entites print FILEOUT $DUMPFULL; #---------------------------------------------- close(FILEIN); close(FILEOUT);
system "#!/bin/bash rename c\.cnr\.cnorm3 c3\.txt *\.cnr\.cnorm3; ls > tous-vos-fichiers\.txt; grep c3\.txt tous-vos-fichiers\.txt > nom-de-fichier\.txt;"; print "\nLe nouveau fichier créé se trouve dans cette liste: \n"; system "#!/bin/bash cat nom-de-fichier\.txt;";