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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 | #/usr/bin/perl
#--------------------------------------------------------------------------------------------
# --- BAO 3 --- Conversion Talismane en XML -------------------------------------------------
#--------------------------------------------------------------------------------------------
# Entrée:
# -- Un texte étiqueté et lemmatisé par Talismane en format TXT.
# Sortie: Le programme construit en sortie:
# -- Le même fichier formaté en XML.
# Mode de lancement:
# perl5.28.1.exe talismane2xml_v2_edited.pl FICHIER_TALISMANE.txt
#--------------------------------------------------------------------------------------------
my $first=0;
my $firstSentence=0;
open(INPUT,"<:encoding(utf-8)",$ARGV[0]);
open(OUTPUT,">:encoding(utf-8)","TALISMANE-2XML.xml");
print OUTPUT "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
print OUTPUT "\n<basetalismane>\n";
my $type="";
while (my $ligne=<INPUT>) {
next if ($ligne=~/^$/);
if ($ligne =~/^\#\# (chemin) : \"(.+)\"$/) {
#$type=$1;
my $file=$2;
chomp($file);
$file=~s/ +$//;
if ($first != 0) {
print OUTPUT "\t</file>\n"
}
else {
$first++;
}
print OUTPUT "\t<file name=\"$file\">\n";
}
if ($ligne=~/^([^\t]*) ([^\t]*) ([^\t]*) ([^\t]*) ([^\t]*) ([^\t]*) ([^\t]*) ([^\t]*) ([^\t]*) ([^\t]*)$/) {
my $a1=$1;
my $a2=$2;
my $a3=$3;
my $a4=$4;
my $a5=$5;
my $a6=$6;
my $a7=$7;
my $a8=$8;
my $a9=$9;
my $a10=$10;
chomp($a1);chomp($a2);chomp($a3);chomp($a4);chomp($a5);chomp($a6);chomp($a7);chomp($a8);chomp($a9);chomp($a10);
if ($a2=~/debuttitre/) {
print OUTPUT "\t\t<titre>\n";
$firstSentence=0;
}
elsif ($a2=~/fintitre/) {
print OUTPUT "\t\t</titre>\n";
}
elsif ($a2=~/debutdescription/) {
print OUTPUT "\t\t<description>\n";
$firstSentence=0;
}
elsif ($a2=~/findescription/) {
print OUTPUT "\t\t</description>\n";
}
else {
$a1=~s/&/&/g;
$a2=~s/&/&/g;
$a3=~s/&/&/g;
$a4=~s/&/&/g;
$a5=~s/&/&/g;
$a6=~s/&/&/g;
$a7=~s/&/&/g;
$a8=~s/&/&/g;
$a9=~s/&/&/g;
$a10=~s/&/&/g;
if ($a1 == 1) {
if ($firstSentence != 0) {
}
else {
$firstSentence++;
}
}
print OUTPUT "\t\t\t<item>\n\t\t\t\t<a>$a1</a>\n\t\t\t\t<a>$a2</a>\n\t\t\t\t<a>$a3</a>\n\t\t\t\t<a>$a4</a>\n\t\t\t\t<a>$a5</a>\n\t\t\t\t<a>$a6</a>\n\t\t\t\t<a>$a7</a>\n\t\t\t\t<a>$a8</a>\n\t\t\t\t<a>$a9</a>\n\t\t\t\t<a>$a10</a>\n\t\t\t</item>\n";
}
}
}
close(INPUT);
print OUTPUT "\t</file>\n";
print OUTPUT "</basetalismane>\n";
close(OUTPUT);
|