alsatext - pour (essayer de) traduire du français vers l'alsacien


Présentation de l'idée

Comment pourrait-on réaliser un traducteur du français vers l'alsacien ?
Ce sont deux langues qui fonctionnent différemment... Une idée serait de décomposer le texte à traduire en contenu brut, décrivant sa structure et les mots contenus (quel sujet, quel verbe, quels compléments).

Pour commencer, il faut comprendre le texte en français qui a été saisi. Grâce au projet Lexique.org, on a un dictionnaire français qui permet de reconnaître chaque mot. Ensuite, une recherche grossière de syntaxes courantes en français tente de détecter la signification du texte (c’est la partie la plus difficile et la moins réussie pour l’instant).
Eventuellement, il y a quelques expressions toutes faites, typiques du français, qui se disent autrement en alsacien. Il faut les repérer et les transformer en une tournure alsacienne. Ensuite, il faut remplacer les mots français par les mots alsaciens correspondants.

On obtient alors un contenu brut, avec une structure et des mots en alsacien.

A l'aide d'un dictionnaire alsacien, on retrouve pour chaque mot alsacien ses propriétés : Une appli de traduction permet de rechercher rapidement un mot dans ce dictionnaire.

A l'aide des règles de grammaire et de syntaxe de l'alsacien, on trouve les déclinaisons et les conjugaisons qui s'appliquent.

Vers la fin, il faut encore enjoliver le texte pour répondre à des usages de contractions et d'euphonie.

Le résultat est un texte en alsacien, si tout s'est bien passé.

Exemple



Vous êtes un robot un humain

Décomposition du texte français

Détail du traitement :
remplace les mots composés - par la transformation transfo_mots_comp_xml.xsl
- donnant pour résultat :

découpe en phrases - par la transformation transfo_phrases_xml.xsl
- donnant pour résultat :

découpe en mots - par la transformation transfo_mots_xml.xsl
- donnant pour résultat :

tronçons de mots autour des apostrophes - par la transformation transfo_apos_xml.xsl
- donnant pour résultat :

liste des mots - par la transformation transfo_liste_mots_text.xsl
- donnant pour résultat :

recherche des informations sur les mots français - par la transformation transfo_lexique_xml(temp_57c5843b943cd).xsl
- donnant pour résultat :

recherche des erreurs - par la transformation transfo_erreur_xml.xsl
- donnant pour résultat :

choix suite aux erreurs - par la transformation transfo_choix_xml.xsl
- donnant pour résultat :

structure, cgram - par la transformation transfo_struct_cgram_xml.xsl
- donnant pour résultat :

structure, noeud courant et suivant - par la transformation transfo_struct_next_xml.xsl
- donnant pour résultat :

structure : cgram retenu, si choix unique - par la transformation transfo_struct_retenu_xml.xsl
- donnant pour résultat :

structure : indices trouvés à partir des motifs possibles - par la transformation transfo_struct_indice_xml.xsl
- donnant pour résultat :

tableau graphique - par la transformation transfo_struct_tableau_html.xsl
- donnant pour résultat :
fr retenu indice types des lemmes du mot précédent lemmes du mot courant types des lemmes du mot suivant erreur
le ART_def (->NOM)

ART_def - lemme=le (nombre=s) - freqlivres=18310.950
PRO_per - lemme=le (nombre=s) - freqlivres=2424.190
NOM
chat NOM NOM (->ADJ)

ART_def
PRO_per
NOM - lemme=chat (nombre=s) - freqlivres=59.260
ADJ
NOM
blanc NOM (->VER)

ADJ (->VER)

NOM
ADJ - lemme=blanc (nombre=s) - freqlivres=152.030
NOM - lemme=blanc (nombre=s) - freqlivres=59.730
AUX
VER
a AUX (->VER)

ADJ
NOM
AUX - lemme=avoir (infover=ind:pre:3s;) - freqlivres=2926.690
VER - lemme=avoir (infover=ind:pre:3s;) - freqlivres=1669.390
VER
dormi VER VER (->ADV)

AUX
VER
VER - lemme=dormir (infover=par:pas;) (nombre=s) - freqlivres=26.490
ADV
aujourd[apos]hui ADV VER
ADV - lemme=aujourd[apos]hui - freqlivres=158.240
ADV
tranquillement ADV ADV
ADV - lemme=tranquillement - freqlivres=26.820
PRE
sur PRE PRE (->ADJ_pos)

ADV
PRE - lemme=sur - freqlivres=5320.470
ADJ_pos
PRO_pos
notre ADJ_pos (->NOM)

PRE
ADJ_pos - lemme=notre (nombre=s) - freqlivres=680.680
PRO_pos - lemme=notre (nombre=s) - freqlivres=0.000
VER
NOM
lit ADJ_pos
PRO_pos
VER - lemme=lire (infover=ind:pre:3s;) - freqlivres=24.860
NOM - lemme=lit (nombre=s) - freqlivres=315.740
je PRO_per PRO_per (->VER)

PRO_per - lemme=je (nombre=s) - freqlivres=10862.770
VER
veux VER VER (->ADV)

PRO_per
VER - lemme=vouloir (infover=ind:pre:1s;ind:pre:2s;) - freqlivres=377.970
ADV
maintenant ADV VER
ADV - lemme=maintenant - freqlivres=496.760
ADJ_num
ART_ind
PRO_ind
une ART_ind (->NOM)

ADV
ADJ_num - lemme=une - freqlivres=42.640
ART_ind - lemme=une (nombre=s) - freqlivres=9587.970
PRO_ind - lemme=une (nombre=s) - freqlivres=199.930
NOM
bière NOM NOM (->ADJ)

ADJ_num
ART_ind
PRO_ind
NOM - lemme=bière (nombre=s) - freqlivres=35.340
ADJ
NOM
fraîche NOM
ADJ - lemme=frais (nombre=s) - freqlivres=42.910
NOM - lemme=frais (nombre=s) - freqlivres=3.580

déduction à partir du voisin précédent - par la transformation transfo_struct_voisin_prec_xml.xsl
- donnant pour résultat :

déduction à partir du voisin suivant - par la transformation transfo_struct_voisin_suiv_xml.xsl
- donnant pour résultat :

tableau graphique des déductions à partir du voisin - par la transformation transfo_struct_voisin_tabl_html.xsl
- donnant pour résultat :
fr retenu indice types des lemmes du mot précédent lemmes du mot courant types des lemmes du mot suivant erreur
le ART_def (->OKNOM)

ART_def - lemme=le (nombre=s) - freqlivres=18310.950
PRO_per - lemme=le (nombre=s) - freqlivres=2424.190
NOM
chat NOM NOM (->ADJ)

ART_def
PRO_per
NOM - lemme=chat (nombre=s) - freqlivres=59.260
ADJ
NOM
blanc NOM (->VER)

ADJ (->VER)

NOM
ADJ - lemme=blanc (nombre=s) - freqlivres=152.030
NOM - lemme=blanc (nombre=s) - freqlivres=59.730
AUX
VER
a AUX (->OKVER)

ADJ
NOM
AUX - lemme=avoir (infover=ind:pre:3s;) - freqlivres=2926.690
VER - lemme=avoir (infover=ind:pre:3s;) - freqlivres=1669.390
VER
dormi VER VER (->ADV)

AUX
VER
VER - lemme=dormir (infover=par:pas;) (nombre=s) - freqlivres=26.490
ADV
aujourd[apos]hui ADV VER
ADV - lemme=aujourd[apos]hui - freqlivres=158.240
ADV
tranquillement ADV ADV
ADV - lemme=tranquillement - freqlivres=26.820
PRE
sur PRE PRE (->ADJ_pos)

ADV
PRE - lemme=sur - freqlivres=5320.470
ADJ_pos
PRO_pos
notre ADJ_pos (->NOM)

PRE
ADJ_pos - lemme=notre (nombre=s) - freqlivres=680.680
PRO_pos - lemme=notre (nombre=s) - freqlivres=0.000
VER
NOM
lit ADJ_pos
PRO_pos
VER - lemme=lire (infover=ind:pre:3s;) - freqlivres=24.860
NOM - lemme=lit (nombre=s) - freqlivres=315.740
je PRO_per PRO_per (->VER)

PRO_per - lemme=je (nombre=s) - freqlivres=10862.770
VER
veux VER VER (->ADV)

PRO_per
VER - lemme=vouloir (infover=ind:pre:1s;ind:pre:2s;) - freqlivres=377.970
ADV
maintenant ADV VER
ADV - lemme=maintenant - freqlivres=496.760
ADJ_num
ART_ind
PRO_ind
une ART_ind (->OKNOM)

ADV
ADJ_num - lemme=une - freqlivres=42.640
ART_ind - lemme=une (nombre=s) - freqlivres=9587.970
PRO_ind - lemme=une (nombre=s) - freqlivres=199.930
NOM
bière NOM NOM (->ADJ)

ADJ_num
ART_ind
PRO_ind
NOM - lemme=bière (nombre=s) - freqlivres=35.340
ADJ
NOM
fraîche NOM
ADJ - lemme=frais (nombre=s) - freqlivres=42.910
NOM - lemme=frais (nombre=s) - freqlivres=3.580

compte les indices et signale si 1 - par la transformation transfo_struct_indice_compte_xml.xsl
- donnant pour résultat :

déduction à partir du voisin précédent - par la transformation transfo_struct_voisin_prec2_xml.xsl
- donnant pour résultat :

déduction à partir du voisin suivant - par la transformation transfo_struct_voisin_suiv2_xml.xsl
- donnant pour résultat :

déduction à partir du voisin, le reste - par la transformation transfo_struct_voisin_reste_xml.xsl
- donnant pour résultat :

structure : tableau graphique suite aux recherches voisin2 et reste - par la transformation transfo_struct_voisin2_tabl_html.xsl
- donnant pour résultat :
fr retenu indice types des lemmes du mot précédent lemmes du mot courant types des lemmes du mot suivant erreur
le ART_def ART_def (->OKNOM)

ART_def - lemme=le (nombre=s) - freqlivres=18310.950
PRO_per - lemme=le (nombre=s) - freqlivres=2424.190
NOM
chat NOM NOM (->ADJ)

ART_def
PRO_per
NOM - lemme=chat (nombre=s) - freqlivres=59.260
ADJ
NOM
blanc ADJ NOM (->VER)

ADJ (->VER)

NOM
ADJ - lemme=blanc (nombre=s) - freqlivres=152.030
NOM - lemme=blanc (nombre=s) - freqlivres=59.730
AUX
VER
a AUX AUX (->OKVER)

ADJ
NOM
AUX - lemme=avoir (infover=ind:pre:3s;) - freqlivres=2926.690
VER - lemme=avoir (infover=ind:pre:3s;) - freqlivres=1669.390
VER
dormi VER VER (->ADV)

AUX
VER
VER - lemme=dormir (infover=par:pas;) (nombre=s) - freqlivres=26.490
ADV
aujourd[apos]hui ADV VER
ADV - lemme=aujourd[apos]hui - freqlivres=158.240
ADV
tranquillement ADV ADV
ADV - lemme=tranquillement - freqlivres=26.820
PRE
sur PRE PRE (->ADJ_pos)

ADV
PRE - lemme=sur - freqlivres=5320.470
ADJ_pos
PRO_pos
notre ADJ_pos ADJ_pos (->NOM)

PRE
ADJ_pos - lemme=notre (nombre=s) - freqlivres=680.680
PRO_pos - lemme=notre (nombre=s) - freqlivres=0.000
VER
NOM
lit NOM ADJ_pos
PRO_pos
VER - lemme=lire (infover=ind:pre:3s;) - freqlivres=24.860
NOM - lemme=lit (nombre=s) - freqlivres=315.740
je PRO_per PRO_per (->VER)

PRO_per - lemme=je (nombre=s) - freqlivres=10862.770
VER
veux VER VER (->ADV)

PRO_per
VER - lemme=vouloir (infover=ind:pre:1s;ind:pre:2s;) - freqlivres=377.970
ADV
maintenant ADV VER
ADV - lemme=maintenant - freqlivres=496.760
ADJ_num
ART_ind
PRO_ind
une ART_ind ART_ind (->OKNOM)

ADV
ADJ_num - lemme=une - freqlivres=42.640
ART_ind - lemme=une (nombre=s) - freqlivres=9587.970
PRO_ind - lemme=une (nombre=s) - freqlivres=199.930
NOM
bière NOM NOM (->ADJ)

ADJ_num
ART_ind
PRO_ind
NOM - lemme=bière (nombre=s) - freqlivres=35.340
ADJ
NOM
fraîche ADJ NOM
ADJ - lemme=frais (nombre=s) - freqlivres=42.910
NOM - lemme=frais (nombre=s) - freqlivres=3.580

structure simplifiée - par la transformation transfo_struct_simpl_xml.xsl
- donnant pour résultat :

structure : formulaire permettant de préciser les natures grammaticales - par la transformation transfo_struct_form_verif_xml.xsl
- donnant pour résultat :

Formulaire présentant la structure du texte en français (modifiable) struct_xforms(temp_57c5843b943cd).xml


éclatement des infover - par la transformation transfo_infover_xml.xsl
- donnant pour résultat :

structure : ruptures sur certaines catégories grammaticales - par la transformation transfo_struct_ruptures_xml.xsl
- donnant pour résultat :

structure : regroupement sous un même composant supérieur des éléments situés entre deux ruptures - par la transformation transfo_struct_regroup_xml.xsl
- donnant pour résultat :

ajoute informations en vue du découpage en propositions - par la transformation transfo_info_prop_xml.xsl
- donnant pour résultat :

ruptures pour les propositions - par la transformation transfo_prop_ruptures_xml.xsl
- donnant pour résultat :

découpage en propositions - par la transformation transfo_prop_decoupe_xml.xsl
- donnant pour résultat :

recherche de la nature des composants (sujet, complément...) - par la transformation transfo_struct_nature_xml.xsl
- donnant pour résultat :

mise en forme du contenu des composants (sujet, complément...) - par la transformation transfo_struct_contenu_xml.xsl
- donnant pour résultat :

choix du bon infover - par la transformation transfo_choix_infover_xml.xsl
- donnant pour résultat :

formatage pour obtenir comme résultat le parsing du texte en français - par la transformation transfo_parse_fr_xml.xsl
- donnant pour résultat :

Résultat : structure XML décrivant le détail du texte en français

Passage de la structure XML pour le français à la structure XML pour l'alsacien
Détail du traitement :
mise en forme du contenu des composants selon la terminologie alsatext (entite, art_dem...) - par la transformation transfo_struct_contenu_als_xml.xsl
- donnant pour résultat :

réaorganisation des verbes - par la transformation transfo_reorg_verbe_xml.xsl
- donnant pour résultat :

expressions françaises toutes faites - par la transformation transfo_terminologie_fr_als_xml.xsl
- donnant pour résultat :



Détail du traitement :
contenu traduit du français vers le dialecte alsacien - par la transformation transfo_dict_fr_als_xml.xsl
- donnant pour résultat :

mots français introuvables - par la transformation transfo_erreurs_mots_fr_text.xsl
- donnant pour résultat :

structure du contenu, présentée de manière graphique - par la transformation transfo_graph_html.xsl
- donnant pour résultat :
src:Le chat blanc a dormi aujourd'hui tranquillement sur notre lit. Je veux maintenant une bière fraîche.
phrase:
prop: - type:princ
sujet:
entite:
gr_nom: - nbr:s
articl: - type:def
adj_qual:wiss
wort: - als:wiss
nom:Kàtz
wort: - als:Kàtz
verb:schlofa - mode:indic - temps:passe - pers:
wort: - als:schlofa
compl: - type:temps
adverb:hìtt
wort: - als:hìtt
compl:
adverb:gmiatlig
wort: - als:gmiatlig
compl: - type:lieu
prep:uf
wort: - als:uf
entite:
gr_nom: - nbr:s
articl: - type:poss_art - nbr:p - pers:1
nom:Bett
wort: - als:Bett
phrase:
prop: - type:princ
sujet:
entite:
pron_pers:ìch - nbr:s - pers:1
wort: - als:ìch
verb:wälla - mode:indic - temps:pres - pers:1s
wort: - als:wälla
compl: - type:temps
adverb:jetz
wort: - als:jetz
compl: - type:od
entite:
gr_nom: - nbr:s
articl: - type:indef
adj_qual:frìsch
wort: - als:frìsch
nom:Biar
wort: - als:Biar

contenu XML purgé des éléments vides et indenté - par la transformation transfo_purge_vide_xml.xsl
- donnant pour résultat :

contenu XML enrichi avec les propriétés du dictionnaire alsacien - par la transformation transfo_dict_xml.xsl
- donnant pour résultat :

recherche des diminutifs des mots - par la transformation transfo_min_xml.xsl
- donnant pour résultat :

recherche des informations sur les verbes irréguliers - par la transformation transfo_verb_xml.xsl