Bonjour,
je dispose d'un corpus anglais et français proposant des lignes (src), soit source, en alternance avec des lignes (trg), soit cible. Le problème est que parfois 2 (ou plus) phrases (src) se suivent pour une seule correspondance (trg), ou, à l'inverse: 2 (ou plus) phrases (trg) se suivent pour une seule phrase (src)
Exemple:
25 (src)="s8.1"> If the spin box defines numerical values , you can
also define a measurement unit , e.g. , 1 cm or 5 mm , 12 pt or 2 " .
26 (trg)="s8.1"> Lorsque vous saisissez une valeur numérique , vous
pouvez aussi spécifier une unité de mesure , par ex .
27 (trg)="s8.2"> 1 cm , 5 mm , 12 pt ou 2 " ( pour 2 pouces ) .
28 (src)="s9.1"> Convert
29 (trg)="s9.1"> Convertir.
Je souhaite donc regrouper les (src) et les (trg) qui se suivent afin de disposer d'un corpus correctement aligné.
Au pire, j'ai un script à renouveler plusieurs fois:
my $file = $ARGV[0];
my $nextline;
open(IN, "< $file") || die "Couldn't open file!";
while(<IN>){
if($_=~m/^\(trg\)="s[0-9]+\.[0-9]+">/){
$nextline=<IN>;
if($nextline=~m/^\(trg\)="s[0-9]+\.[0-9]+">/){
$nextline=~s/\(trg\)="s[0-9]+\.[0-9]+">//;
$_=~s/\n//;
print $_;
print $nextline;
}
else{
print $_;
print $nextline;
}
}
else{
print $_;
}
}
close(IN);
Mais comme je débute, je n'arrive pas à écrire un script awk qui me permettrait de fusionner ces lignes en une seule fois. D'autant que je dois réunir 1000 couples de phrases, et je me vois mal valider mon script 1000 fois au pire des cas... ;-)
Merci beaucoup pour votre aide!
