Transformation vers corpusHM

Version 22 (Severine Gedzelman, 28/09/2017 14:15)

1 1 Severine Gedzelman
h1. Transformation vers un corpus parallèle (alignement HM)
2 1 Severine Gedzelman
3 2 Severine Gedzelman
Le document fourni par Uetani est un fichier word, organisé avec des tableaux à 3 colonnes :
4 7 Severine Gedzelman
** col 1 : nom du segment philologique (et notes diverses, dont certains acronymes sont à élucider pour moi)
5 7 Severine Gedzelman
** col 2 : version italienne
6 7 Severine Gedzelman
** col 3 : version française correspondante
7 2 Severine Gedzelman
8 2 Severine Gedzelman
L'enregistrement du .doc vers .odt est obligatoire chez moi, car je ne possède pas de logiciel Microsoft. Pour obtenir un corpus en XML-TEI, on a besoin de passer par deux scripts :
9 7 Severine Gedzelman
# le premier est fourni par le service "OXGarage":http://www.tei-c.org/oxgarage/ (transformateur en ligne pour la communauté TEI principalement) 
10 7 Severine Gedzelman
# le deuxième a été écrit en python par moi-même dont les détails sont après.
11 2 Severine Gedzelman
12 15 Severine Gedzelman
h2. 1) ODT vers XML-TEI
13 1 Severine Gedzelman
14 2 Severine Gedzelman
* Le document de départ : attachment:CorpusSANAZIFR_Uetani_2017.odt 
15 2 Severine Gedzelman
* Le document de sortie : attachment:CorpusSANAZIFR_Uetani_2017.xml
16 2 Severine Gedzelman
17 6 Severine Gedzelman
Les choix ont été les suivants sur "OxGarage":http://www.tei-c.org/oxgarage/ : OpenOffice texte (odt) en entrée, TEI P5 XML Document en sortie
18 2 Severine Gedzelman
19 22 Severine Gedzelman
!{width:70%}OXGarage_convertODT-2-TEI.png!
20 1 Severine Gedzelman
21 22 Severine Gedzelman
Dans ce fichier XML-TEI P5, les tableaux sont restitués (<table><row><cell></cell></row></table>), avec également les éléments de forme et les notes de bas de page (rend='justify, rend=‘bold italic’). 
22 22 Severine Gedzelman
23 22 Severine Gedzelman
Voici un exemple de la dernière ligne, <row>, du dernier tableau <table>
24 5 Severine Gedzelman
25 5 Severine Gedzelman
<pre><code> 
26 5 Severine Gedzelman
       <table rend="frame" xml:id="Tableau4">
27 5 Severine Gedzelman
                <row>
28 5 Severine Gedzelman
                    <cell>Ecloga II, vv. 1-12</cell>
29 5 Severine Gedzelman
                    <cell>....</cell>
30 5 Severine Gedzelman
                    <cell>....</cell>
31 5 Severine Gedzelman
               </row>
32 5 Severine Gedzelman
              ...
33 5 Severine Gedzelman
      </table>
34 5 Severine Gedzelman
      <table>
35 5 Severine Gedzelman
              ...
36 5 Severine Gedzelman
               <row>
37 5 Severine Gedzelman
                    <cell>A la Sampogna, 19-20</cell>
38 5 Severine Gedzelman
                    <cell rend="justify"><hi rend="bold italic">Benché</hi><hi rend="italic"> mi
39 5 Severine Gedzelman
                            pare esser certo che tal fatica a tenon fia necessaria, se tu tra le
40 5 Severine Gedzelman
                            selve, sí come io ti impongo, secretamente e senza pompe star ti vorrai.
41 5 Severine Gedzelman
                            Con ciò sia cosa che chi non sale, non teme di cadere ; e chi cade nel
42 5 Severine Gedzelman
                            piano, il che rare volte adiviene, con picciolo agiuto</hi><hi
43 5 Severine Gedzelman
                            rend="italic"><note xml:id="ftn529" place="foot" n="529">
44 5 Severine Gedzelman
                                <hi rend="italic">agiuto</hi> : aiuto (E).</note></hi><hi
45 5 Severine Gedzelman
                            rend="italic"> de la propria mano senza danno si rileva</hi><hi
46 5 Severine Gedzelman
                            rend="italic"><note xml:id="ftn530" place="foot" n="530"><hi
47 5 Severine Gedzelman
                                    rend="italic"> rileva</hi> : risolleva, rialza
48 5 Severine Gedzelman
                            (E).</note></hi><hi rend="italic">. Onde per cosa vera e indubitata
49 5 Severine Gedzelman
                            tener ti puoi che chi piú di nascoso e piú lontano da la moltitudine
50 5 Severine Gedzelman
                            vive, miglior vive ; e colui tra' mortali si può con piú verità chiamar
51 5 Severine Gedzelman
                            beato che, senza invidia de le altrui grandezze, </hi><hi
52 5 Severine Gedzelman
                            rend="bold italic">con modesto animo</hi><hi rend="italic"> de la sua
53 5 Severine Gedzelman
                            fortuna si contenta (p. 241).</hi></cell>
54 5 Severine Gedzelman
                    <cell rend="justify"><hi rend="bold">Nonobstant</hi> je pense estre aßeuré que
55 5 Severine Gedzelman
                        n'auras besoing de ce faire, si suyvant mon conseil, tu te veul tenir en ces
56 5 Severine Gedzelman
                        boys secretement, &amp; sans aucune pompe : Car qui ne saulte, n'a peur de
57 5 Severine Gedzelman
                        tumber : &amp; qui chet en la plaine (ce que n'advient gueres) se relieve
58 5 Severine Gedzelman
                        sans dommage, seulement avec un peu de secours de ses propres mains. Parquoy
59 5 Severine Gedzelman
                        tu peux tenir pour chose indubitable, que celuy peult vivre en plus grand
60 5 Severine Gedzelman
                        repos, qui est plus loingtain &amp; retiré de la multitude confuse. Et entre
61 5 Severine Gedzelman
                        les hommes se peult plus veritablement estimer bien heureux celuy qui sans
62 5 Severine Gedzelman
                        envie des grandeßes d'aultruy,<hi rend="bold">par </hi><hi
63 5 Severine Gedzelman
                            rend="bold italic">modestie</hi><hi rend="bold"> de courage</hi> se
64 5 Severine Gedzelman
                        contente de sa fortune (fol. 114 v°).</cell>
65 5 Severine Gedzelman
                </row>
66 5 Severine Gedzelman
     </table>
67 5 Severine Gedzelman
</code></pre>
68 5 Severine Gedzelman
69 15 Severine Gedzelman
h2. 2) XML-TEI vers XML-TEI-HM
70 2 Severine Gedzelman
71 9 Severine Gedzelman
72 1 Severine Gedzelman
Le script attachment:tei2teiHM.py permet de 
73 13 Severine Gedzelman
* récupérer l'ensemble des deux textes (source italien, cible français) :
74 1 Severine Gedzelman
** sans les notes (de bas de page)
75 3 Severine Gedzelman
** sans les indications graphiques (qui sont dans des balises <hi> avec attributs : italic, bold, ...)
76 13 Severine Gedzelman
* et de préparer la structure et les noms des divisions, et des segments contenus dans celles-ci. Par exemple les segments <seg> "Prosa_X_1", "Prosa_X_2", ... seront rassemblés sous une division <div> : "Prosa_X".
77 1 Severine Gedzelman
78 9 Severine Gedzelman
Pour plus d'info, voir le chapitre dédié à la [[structure philologique]], et les opérations de nettoyage effectuées jusqu'à présent.
79 9 Severine Gedzelman
80 12 Severine Gedzelman
h3. A propos de la ressource XML en entrée
81 12 Severine Gedzelman
82 11 Severine Gedzelman
Le document XML-TEI a été légèrement modifié à la main (attachment:)
83 11 Severine Gedzelman
# avec une substitution des "Egloga" en "Ecloga" (peut refaire la modification dans le sens inverse si besoin)
84 1 Severine Gedzelman
# avec remplacement des valeurs des attributs "xml:id" des tableaux afin de permettre la création de divisions philologiques plus méta comme "Prosa_X", dans lesquels s'inséreront automatiquement les segments philologiques "Prosa_X_1", "Prosa_X_2". L'attribut notait jusqu'à présent seulement l'incrémentation des tableaux  : "Tableau1", "Tableau2". Cela donne pour le premier tableau : *<table rend="frame" xml:id="Prologo I">*
85 11 Severine Gedzelman
86 12 Severine Gedzelman
Dans une réflexion semblable, faut-il préparer des <cell> avec les titres des segments, comme par exemple s'est trouvé par hasard le titre de "Ecloga XI". On pourra ainsi les traiter comme des titres en TEI avec la balise <head>.
87 9 Severine Gedzelman
88 10 Severine Gedzelman
<pre><code>
89 10 Severine Gedzelman
<table rend="frame" xml:id="Ecloga_XI">
90 10 Severine Gedzelman
                <row>
91 12 Severine Gedzelman
                    <cell>Ecloga XI, 0</cell> 
92 10 Severine Gedzelman
                    <cell rend="center">ERGASTO<hi rend="italic"> solo</hi></cell>
93 10 Severine Gedzelman
                    <cell>ERGASTO SEVL.</cell>
94 1 Severine Gedzelman
                </row>
95 1 Severine Gedzelman
</code></pre>
96 1 Severine Gedzelman
97 1 Severine Gedzelman
h3. A propos du script et de ses paramètres 
98 13 Severine Gedzelman
99 15 Severine Gedzelman
Le script génère des <teiHeader> pour les deux textes (it, fr) <TEI> et pour l'ensemble du corpus <teiCorpus>.  Chaque texte aura un identifiant pour Hypermachiavel avec une langue correspondante :
100 15 Severine Gedzelman
* Erspamer_1505 (i1) - it
101 15 Severine Gedzelman
* Martin_1544 (f1) - frm
102 13 Severine Gedzelman
103 14 Severine Gedzelman
+Remarque+ : Il faudra prévoir d'ajouter ces entêtes manuellement selon les indicatons de Uetani sur ces différentes éditions/productions. J'ai calqué pour l'instant à la structure de Hyperprince, pour les détails, voir le corpus.
104 1 Severine Gedzelman
105 12 Severine Gedzelman
Avant d'appeler le script python, il faut 
106 12 Severine Gedzelman
# vérifier l'installation de "python" sur la machine (à noter que tous les Mac ont une version par défaut, même chose pour le programme Java) 
107 12 Severine Gedzelman
# placer les ressources dans le même dossier : soit le fichier source de donnée .xml et le fichier script .py, 
108 12 Severine Gedzelman
# indiquer en deuxième paramètre du script, la chaîne correspondant au chemin du dossier où se trouve ces ressources
109 12 Severine Gedzelman
110 12 Severine Gedzelman
111 1 Severine Gedzelman
<pre><code>
112 9 Severine Gedzelman
$ python tei2teiHM.py CorpusSANAZIFR_Uetani_2017.xml ~/Documents/Travail_ENS/Projets/Exterieurs/CESR_Uetani/Transformations
113 9 Severine Gedzelman
</code></pre>
114 1 Severine Gedzelman
115 12 Severine Gedzelman
h3. A propos de la ressource générée
116 12 Severine Gedzelman
117 12 Severine Gedzelman
Le résultat avec le même extrait 'XML-TEI' donné plus haut : *A_la_Sampogna_19-20*
118 9 Severine Gedzelman
119 9 Severine Gedzelman
<pre><code>
120 11 Severine Gedzelman
 <seg n="15" type="Segment"  rend="A_la_Sampogna_19-20" xml:id="i1_Ch25-Seg15">
121 11 Severine Gedzelman
          Bench&#233; mi pare esser certo che tal fatica a tenon fia necessaria, se tu tra le selve, s&#237; 
122 11 Severine Gedzelman
          come io ti impongo, secretamente e senza pompe star ti vorrai. Con ci&#242; sia cosa 
123 11 Severine Gedzelman
          che chi non sale, non teme di cadere ; e chi cade nel piano, il che rare volte adiviene, 
124 11 Severine Gedzelman
          con picciolo agiuto de la propria mano senza danno si rileva. Onde per cosa vera e 
125 1 Severine Gedzelman
          indubitata tener ti puoi che chi pi&#250; di nascoso e pi&#250; lontano da la moltitudine vive, 
126 1 Severine Gedzelman
          miglior vive ; e colui tra' mortali si pu&#242; con pi&#250; verit&#224; chiamar beato che, 
127 1 Severine Gedzelman
          senza invidia de le altrui grandezze, con modesto animo de la sua fortuna si contenta (p. 241).
128 1 Severine Gedzelman
</seg>
129 1 Severine Gedzelman
</code></pre>
130 15 Severine Gedzelman
131 15 Severine Gedzelman
h2. 3) Importation dans Hypermachiavel
132 15 Severine Gedzelman
133 18 Severine Gedzelman
# Il faut ouvrir l'outil, voir la documentation officielle pour démarrer à "cette page":https://forge.cbp.ens-lyon.fr/redmine/projects/hypermachiavel/wiki/Comment_d%C3%A9marrer) 
134 18 Severine Gedzelman
# puis suivre "les étapes de la création d'un projet corpus":https://forge.cbp.ens-lyon.fr/redmine/projects/hypermachiavel/wiki/D%C3%A9marrer_un_nouveau_corpus_(XML-TEI).
135 19 Severine Gedzelman
# La tokenisation et lemmatisation sont ensuite déclenchées, le processus est plus ou moins long mais ne sera effectué qu'à cette étape de création. Par la suite, pour toute ré-ouverture de l'application et du projet, on pourra suive "cette page":https://forge.cbp.ens-lyon.fr/redmine/projects/hypermachiavel/wiki/Ouvrir_un_projet_existant
136 19 Severine Gedzelman
# Les textes sont alignés et on peut commencer à faire un travail de mise en équivalence entre des séquences (mot ou syntagme) source et cible. Exemple ci-dessous avec les mots "camere" (it) et "chambres" (fr)
137 15 Severine Gedzelman
138 1 Severine Gedzelman
!{width:80%}HM_HyperArcadia_AnnotateTranslationEquivalences.png!
139 19 Severine Gedzelman
140 20 Severine Gedzelman
h2. Exploration lexicale
141 1 Severine Gedzelman
142 20 Severine Gedzelman
On a également accès aux lexiques de chaque langue (un texte par langue dans le corpus de "HyperArcadia" pour le moment). 
143 20 Severine Gedzelman
144 20 Severine Gedzelman
Voici donc la liste du vocabulaire du texte français (édition de Martin 1544) :
145 20 Severine Gedzelman
146 21 Severine Gedzelman
!{width:70%}HM_HyperArcadia_ItalianLexicon_list.png!
147 20 Severine Gedzelman
148 21 Severine Gedzelman
Et la liaison avec le tableau de concordance sur la forme "aucuns" (affichage de toutes les occurrences de cette forme dans le texte français), après sélection de cet élément dans la liste et click sur l'icône : !Column.gif!
149 20 Severine Gedzelman
150 21 Severine Gedzelman
!{width:70%}HM_HyperArcadia_KWIC_example.png!
151 20 Severine Gedzelman
152 21 Severine Gedzelman
h2. Exploration