simtree-pt.pl
#!/usr/bin/perl use locale; #caracteres accentues #On lance: perl simtree-pt.pl #Fichiers utilisés: potentiel-pt-liste.txt et potentiel-fr-liste.txt obtenus après mozillatable2txt.pl, il s'agit d'une liste de mots-composés à nettoyer. print "Bienvenu(e) à l'étiqueteur syntaxique simtree \n qui permet de simuler treetagger, \n dont les entrées sont éditables, \n dont le choix du vocabulaire est limité\n, et qui n'utilise pas la probabilité -- vraiment rustique!\n"; print "Ce fichier prend en entrée des segments répétés, des phrases courtes ou des phrases longues mais sans balises.\n"; print "En tout cas choississez un texte qui ne contient que les phrases que vous allez analyser linguistiquement.\n"; print "Nom du fichier de travail, de preference un .txt au format UNIX: \n"; my $file01=<STDIN>; chomp($file01); my $file02=$file01."-token.txt"; #Première étape la tokenisation et le remplacement des retours charriot par le point-virgule open(FILEIN01, $file01); open(FILEOUT01, ">$file02"); my $DUMPFULL01=""; while(my $recup01=<FILEIN01>) { #1.Transformation $recup01=~s/^\n//g;#supprime tous les sauts de ligne $recup01=~s/ \n/\n/g;#supprime l'espace qui précède le retour à la de ligne $recup01=~s/\n/\n;\n/g;#remplace toutes les fins de ligne par un point-virgule $recup01=~s/\s/\n/g;#remplace chaque espace par un saut de ligne $recup01=~s/^\n/\n/g;#supprime tous les sauts de ligne répétés #2. Memorisation dans DUMPFULL $DUMPFULL01.=$recup01; } #3.Sortie print FILEOUT01 $DUMPFULL01; print "Attendez s'il vous plaît !"; #Deuxième étape: la proposition du vocabulaire que vous allez étiqueter correspondant au texte qui ne contient que les phrases qui vous intéressent. $file04=$file02."-lexique-simtree.txt"; open(FILEIN02, $file02); open(FILEOUT02, ">$file04"); system "#!/bin/bash sort -u $file02 > $file04"; close(FILEIN02); close(FILEOUT02); #Troisième étape: l'étiquetage du fichier my $file05=$file01."-3.txt"; open(FILEIN03, $file02); open(FILEOUT03, ">$file05"); my $DUMPFULL03=""; while(my $recup03=<FILEIN03>) { #1.Vocable catégorie lemme /^**Vocable**\n/**Vocable**\tN\t**Lemme**\n/ #La catégorie à défaut est celle du morceau de mot dans laquelle simtree-pt.pl reconnaît un mot d'où un ordre alphabétique s'impose #Xpath cherche les sous mots, et donc c'est une lettre de l'alphabet par catégorie #Si vous voulez ignorer la casse (accepter les majuscules) utilisez gi plutôt que g. #Catégories proposées: T=PUNCT D N A P V R=ADV J=CONJ G=SIGLE M=PRON...inventez #Langue = Portugais # $recup03=~s/^;\n/;\tT\t;\n/g; # $recup03=~s/^a\n/a\tD\to\n/g; $recup03=~s/^acção\n/acção\tN\tação\n/g; $recup03=~s/^além\n/além\tR\talém\n/g; $recup03=~s/^ao\n/a\tP\ta\no\tD\to\n/g; $recup03=~s/^as\n/as\tD\ta\n/g; $recup03=~s/^através\n/através\tP\tatravés\n/g; $recup03=~s/^ação\n/ação\tN\tação\n/g; # $recup03=~s/^bombas\n/bombas\tN\tbomba\n/g; # $recup03=~s/^canais\n/canais\tN\tcanal\n/g; $recup03=~s/^cardíaco\n/cardíaco\tA\tcardíaco\n/g; $recup03=~s/^cargas\n/cargas\tN\tcarga\n/g; $recup03=~s/^celular\n/celular\tA\tcelular\n/g; $recup03=~s/^citoplasmática\n/citoplasmática\tA\tcitoplasmático\n/g; $recup03=~s/^começa\n/começa\tV\tcomeçar\n/g; $recup03=~s/^como\n/como\tR\tcomo\n/g; $recup03=~s/^concentração\n/concentração\tN\tconcentração\n/g; $recup03=~s/^concentrações\n/concentrações\tN\tconcentração\n/g; $recup03=~s/^conductância\n/conductância\tN\tcondutância\n/g; $recup03=~s/^condutância\n/condutância\tN\condutância\n/g; $recup03=~s/^condução\n/condução\tN\tcondução\n/g; $recup03=~s/^crítico\n/crítico\tA\tcrítico\n/g; $recup03=~s/^célula\n/célula\tN\tcélula\n/g; $recup03=~s/^células\n/células\tN\tcélula\n/g; # $recup03=~s/^da\n/de\tP\tde\na\tD\to\n/g; $recup03=~s/^das\n/de\tP\tde\nas\tD\to\n/g; $recup03=~s/^de\n/de\tP\tde\n/g; $recup03=~s/^dentro\n/dentro\tP\tdentro\n/g; # $recup03=~s/^despolarização\n/despolarização\tN\tdespolarização\n/g; $recup03=~s/^dessa\n/de\tP\tde\nessa\tD\tesse\n/g; $recup03=~s/^diferença\n/diferença\tN\tdiferença\n/g; $recup03=~s/^difusão\n/difusão\tN\tdifusão\n/g; $recup03=~s/^dentro\n/dentro\tP\tdentro\n/g; $recup03=~s/^diminuído\n/diminuído\tA\tdiminuído\n/g; $recup03=~s/^do\n/de\tP\tde\no\tD\to\n/g; $recup03=~s/^dois\n/dois\tA\tdois\n/g; $recup03=~s/^de\n/de\tP\tde\n/g; $recup03=~s/^dos\n/de\tP\tde\nos\tD\to\n/g; $recup03=~s/^durante\n/durante\tR\tdurante\n/g; # $recup03=~s/^e\n/e\tJ\te\n/g; $recup03=~s/^eles\n/eles\tM\tele\n/g; $recup03=~s/^eletrogênicas\n/eletrogênicas\tA\teletrogênico\n/g; $recup03=~s/^eletroquímico\n/eletroquímico\tA\teletroquímico\n/g; $recup03=~s/^eletrotônico\n/eletrotônico\tA\teletrotônico\n/g; $recup03=~s/^elevado\n/elevado\tA\televado\n/g; $recup03=~s/^elétrico\n/elétrico\tA\telétrico\n/g; $recup03=~s/^elétricos\n/elétricos\tA\telétrico\n/g; $recup03=~s/^em\n/em\tP\tem\n/g; $recup03=~s/^entre\n/entre\tP\tentre\n/g; $recup03=~s/^equilíbrio\n/equilíbrio\tA\tequilíbrio\n/g; $recup03=~s/^espontânea\n/espontânea\tA\tespontâneo\n/g; $recup03=~s/^essa\n/essa\tD\tesse\n/g; $recup03=~s/^excitatório\n/excitatório\tA\texcitatório\n/g; $recup03=~s/^existente\n/existente\tA\texistente\n/g; $recup03=~s/^eíon\n/íon\tN\tíon\n/g; # $recup03=~s/^final\n/final\tA\tfinal\n/g; # $recup03=~s/^gerado\n/gerado\tA\tgerado\n/g; $recup03=~s/^geral\n/geral\tA\tgeral\n/g; $recup03=~s/^graduado\n/graduado\tA\tgraduado\n/g; $recup03=~s/^graduados\n/graduados\tA\tgraduado\n/g; # $recup03=~s/^hiperpolarização\n/hiperpolarização\tN\thiperpolarização\n/g; # $recup03=~s/^impulso\n/impulso\tN\timpulso\n/g; $recup03=~s/^impulsos\n/impulsos\tN\timpulso\n/g; $recup03=~s/^influxo\n/influxo\tN\tinfluxo\n/g; $recup03=~s/^inibitório\n/inibitório\tA\tinibitório\n/g; $recup03=~s/^inicial\n/inicial\tA\tinicial\n/g; $recup03=~s/^interior\n/interior\tN\tinterior\n/g; $recup03=~s/^inversão\n/inversão\tN\tinversão\n/g; # $recup03=~s/^k\+\n/k\+\tN\tk\+\n/g; # $recup03=~s/^lados\n/lados\tN\tlado\n/g; $recup03=~s/^limiar\n/limiar\tA\tlimiar\n/g; $recup03=~s/^local\n/local\tA\tlocal\n/g; $recup03=~s/^líquido\n/líquido\tA\tlíquido\n/g; # $recup03=~s/^mais\n/mais\tR\tmais\n/g; $recup03=~s/^membrana\n/membrana\tN\tmembrana\n/g; $recup03=~s/^mitocondrial\n/mitocondrial\tA\tmitocondrial\n/g; $recup03=~s/^motor\n/motor\tA\tmotor\n/g; $recup03=~s/^motora\n/motora\tA\tmotor\n/g; # $recup03=~s/^na\n/em\tP\tem\na\tD\to\n/g; $recup03=~s/^na\+\n/na\+\tN\tna\+\n/g; $recup03=~s/^nas\n/em\tP\tem\nas\tD\to\n/g; $recup03=~s/^negativo\n/negativo\tA\tnegativo\n/g; $recup03=~s/^nerst\n/nerst\tN\tnerst\n/g; $recup03=~s/^nervos\n/nervo\tN\tnervo\n/g; $recup03=~s/^nervosa\n/nervosa\tA\tnervoso\n/g; $recup03=~s/^nervoso\n/nervoso\tA\tnervoso\n/g; $recup03=~s/^nervosos\n/nervosos\tA\tnervoso\n/g; $recup03=~s/^neurônio\n/neurônio\tN\tneurônio\n/g; $recup03=~s/^no\n/em\tP\tem\no\tD\to\n/g; $recup03=~s/^nos\n/em\tP\tem\nos\tD\to\n/g; $recup03=~s/^numa\n/em\tP\tem\numa\tD\tum\n/g; $recup03=~s/^não\n/não\tR\tnão\n/g; # $recup03=~s/^o\n/o\tD\to\n/g; $recup03=~s/^os\n/os\tD\to\n/g; $recup03=~s/^ou\n/ou\tJ\tou\n/g; $recup03=~s/^outro\n/um\tD\tum\noutro\tM\toutro\n/g; # $recup03=~s/^para\n/para\tP\tpara\n/g; $recup03=~s/^passivo\n/passivo\tA\tpassivo\n/g; $recup03=~s/^placa\n/placa\tN\tplaca\n/g; $recup03=~s/^plasmática\n/plasmática\tA\tplasmática\n/g; $recup03=~s/^por\n/por\tP\tpor\n/g; $recup03=~s/^positivo\n/positivo\tA\tpositivo\n/g; $recup03=~s/^potenciais\n/potenciais\tN\tpotencial\n/g; $recup03=~s/^potencial\n/potencial\tN\tpotencial\n/g; $recup03=~s/^potássio\n/potássio\tN\tpotássio\n/g; $recup03=~s/^processo\n/processo\tN\tprocesso\n/g; $recup03=~s/^pós\n/pós\tP\tpós\n/g; # $recup03=~s/^químico\n/químico\tA\tquímico\n/g; $recup03=~s/^químicos\n/químicos\tA\tquímico\n/g; # $recup03=~s/^repouso\n/repouso\tN\trepouso\n/g; $recup03=~s/^repolarização\n/repolarização\tN\trepolarização\n/g; # $recup03=~s/^saltatória\n/saltatória\tA\tsaltatória\n/g; $recup03=~s/^sinaptica\n/sinaptica\tA\tsinaptico\n/g; $recup03=~s/^sináptico\n/sináptico\tA\tsináptico\n/g; $recup03=~s/^sódio\n/sódio\tN\tsódio\n/g; # $recup03=~s/^transmembrana\n/transmembrana\tN\ttransmembrana\n/g; $recup03=~s/^transmembranar\n/transmembranar\tA\ttransmembranar\n/g; # $recup03=~s/^um\n/um\tD\tum\n/g; $recup03=~s/^uma\n/uma\tD\tum\n/g; # $recup03=~s/^voltagem\n/voltagem\tN\tvoltagem\n/g; # $recup03=~s/^à\n/a\tP\ta\na\tD\to\n/g; $recup03=~s/^íon\n/íon\tN\tíon\n/g; $recup03=~s/^íons\n/íons\tN\tíon\n/g;#2. Memorisation dans DUMPFULL $DUMPFULL03.=$recup03; } #3.Sortie print FILEOUT03 $DUMPFULL03; close(FILEIN03); close(FILEOUT03); #Quatrième étape: renommage des fichiers en sortie print "\nAttendez renommage de toutes vos extensions...\n"; system "#!/bin/bash rename .txt-token.txt -token.txt *\.txt-token.txt; rename .txt-3.txt -3.txt *\.txt-3.txt; rename .txt-token.txt-lexique-simtree.txt -lexique-simtree.txt *\.txt-token.txt-lexique-simtree.txt; rename .TXT-token.txt -token.txt *\.TXT-token.txt; rename .TXT-3.txt -3.txt *\.TXT-3.txt; rename .TXT-token.txt-lexique-simtree.txt -lexique-simtree.txt *\.TXT-token.txt-lexique-simtree.txt; ls > tous-vos-fichiers\.txt; grep token.txt tous-vos-fichiers\.txt > nom-de-fichier\.txt; grep 3.txt tous-vos-fichiers\.txt >> nom-de-fichier\.txt; grep lexique-simtree.txt tous-vos-fichiers\.txt >> nom-de-fichier\.txt;"; print "\nVous avez trois nouveaux fichiers créés dans cette liste: \n"; system "#!/bin/bash cat nom-de-fichier\.txt;"; #Cinquième étape treetagger2xml.pl print "\n Si vous voulez diminuer le nombre d'entrées à étiqueter vérifiez votre fichier\.txt\.\n Si vous voulez étiqueter des entrées allez sur fichier-lexique-simtree\.txt\. \n Si vous voulez corriger un bug allez sur fichier-token\.txt ou sur votre fichier \.xml, je pense que les erreurs sont dues à la mémoire de l'ordinateur. \n Si votre fichier en sortie est vide c'est soit parce que ce n'est pas un point \.txt \n soit parce que vous avez mal tapé son nom\. \n Maintenant lancez perl treetagger2xml.pl <fichier-3\.txt> sur votre fichier étiqueté.\n Rem: treetagger2xml\.pl vient avec treetagger\. ";