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/&/&amp;/g;
			$a2=~s/&/&amp;/g;
			$a3=~s/&/&amp;/g;
			$a4=~s/&/&amp;/g;
			$a5=~s/&/&amp;/g;
			$a6=~s/&/&amp;/g;
			$a7=~s/&/&amp;/g;
			$a8=~s/&/&amp;/g;
			$a9=~s/&/&amp;/g;
			$a10=~s/&/&amp;/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);