replacePronTrs.pl
1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/perl
use strict;
# récupère les prononciations dans les balises Event
# Exemples :
#<Event desc="2 millions 5" type="pronounce" extent="begin"/>
#2,5 millions
#<Event desc="2 millions 5" type="pronounce" extent="end"/>
#
# ça fait 2 dimanches qu'on est levés à 7h
#<Event desc="7 heures" type="pronounce" extent="previous"/>
#
#<Event desc="JDD point FR" type="pronounce" extent="next"/>
#jdd.fr, ça c'est important,
my @lines=();
while(<>) {
chomp;
push(@lines,$_);
}
for(my $i = 0;$i < scalar(@lines);$i++) {
# le plus simple : previous et next
if($lines[$i] =~ /\<Event desc=\"(.*)\" type=\"pronounce\" extent=\"next\"\/\>/) {
my @tabLineTmp = split(' ',$lines[$i+1]);
($tabLineTmp[0]) = ($lines[$i] =~ /\<Event desc=\"(.*)\" type=\"pronounce\" extent=\"next\"\/\>/);
$lines[$i+1] = join(" ",@tabLineTmp);
}
elsif($lines[$i] =~ /\<Event desc=\"(.*)\" type=\"pronounce\" extent=\"previous\"\/\>/) {
my @tabLineTmp = split(' ',$lines[$i-1]);
if (scalar(@tabLineTmp) > 0) {
($tabLineTmp[scalar(@tabLineTmp)-1]) = ($lines[$i] =~ /\<Event desc=\"(.*)\" type=\"pronounce\" extent=\"previous\"\/\>/);
$lines[$i-1] = join(" ",@tabLineTmp);
}
}
# Plus compliqué le cas du begin / end : on suppose qu'ils sont pas assez "vicieux" pour mettre plusieurs lignes...
# donc en fait, on va faire comme si c'était un next mais sur toute la phrase suivante
elsif($lines[$i] =~ /\<Event desc=\"(.*)\" type=\"pronounce\" extent=\"begin\"\/\>/) {
($lines[$i+1]) = ($lines[$i] =~ /\<Event desc=\"(.*)\" type=\"pronounce\" extent=\"begin\"\/\>/);
}
}
# on réaffiche le tout modifié
foreach(@lines) {
print "$_\n";
}