Comment écrire votre propre translittérateur

Diplômée du centre CS en 2018, Daria Rodionova , parle de translittération: ce que c'est, quelles sont les approches de la translittération, comment créer votre propre translittérateur et comment améliorer le modèle.

La translittération est une traduction graphique d'un mot d'un alphabet à un autre, à condition que nous ayons un tableau de correspondance des signes d'un système à l'autre. En effet, qu'est-ce que la translittération ne rappelle pas un traducteur simplifié? Ici, les langues sont des alphabets et le nombre possible de règles de traduction est simplifié en quatre règles importantes:

  • Un à un: B → B, R → P, P → P
  • Un à plusieurs: Y → PREMIER
  • Plusieurs à un: SCH → U, CH → H, YU → U
  • Plusieurs à plusieurs: dépend du contexte, par exemple IE -> IE

Jusqu'à récemment, tout Runet était écrit en latin. Ensuite, tous les appareils n'avaient pas de disposition cyrillique disponible, mais ASCII était au premier plan - alors que les encodages ne pouvaient toujours pas traiter le cyrillique. En conséquence, au lieu d'un message en russe, le destinataire a reçu l'abracadabra.

Il y a 15 ans, lorsque l'alphabet cyrillique est devenu disponible sur les téléphones portables, les SMS en latin ont continué à être reçus des opérateurs mobiles. Je ne cacherai pas que j'ai déchiffré ces messages avec plaisir :) Et maintenant, les gens correspondent souvent en lettres latines dans les forums ou dans les bavardoirs, car il n'y a pas de clavier russe à portée de main.

Pourquoi la translittération automatique est nécessaire


Ils parlent généralement de la translittération directe des mots russes dans l'alphabet latin. Lorsque vous devez traduire des noms géographiques ou des noms de documents étrangers, des articles scientifiques.

La translittération inverse est la conversion d'un mot en latin en un mot en cyrillique. Il est nécessaire dans de nombreux domaines, donc dans chacun d'eux, au fil du temps, une norme est apparue. Et maintenant, il existe plusieurs normes à la fois, selon lesquelles les mots sont translittérés de manière ambiguë.

Nous entendons souvent parler dans les nouvelles de traductions et de translittérations ridicules de noms géographiques. Par exemple, la combinaison des lettres «sch» peut être la séquence «MF» ou la lettre «», comme dans le mot Schyot. Même sur les forums, il existe différentes vues sur la façon d'écrire la lettre "" "en lettres latines. Vous y trouverez également l'ambiguïté de la combinaison «ch». Il semblerait que ce soit toujours "H"! Non, c'est aussi un «X» à la fin des mots: généralement les lettres «I / S» le précèdent. Et comment allez-vous traduire «YE» du latin? En "E" ou en "S"? Plus de détails peuvent être trouvés dans l'article «Translit sans règles» .

Description théorique du translittérateur


Il s'agit d'un transducteur à états finis, composé de nœuds, dont chacun peut traiter le symbole d'entrée et produire une sortie. Si nous donnons une définition formelle, alors le transducteur se compose de 6 composants (Q, Σ, Γ, I, F, δ), où:

Q - de nombreux États
Σ - saisir l'alphabet
Γ - sortie alphabet
I est un sous-ensemble des états initiaux de Q
F est un sous-ensemble d'états finaux de Q
δ est la transition de Q ⨉ (Σ ⋃ {e}) à Q ⨉ (Γ ⋃ {e})

Dans le cas général, l'ensemble Q représente plusieurs états. Nous écrivons certains en un en raison du nombre de lettres dans l'alphabet:

  • début, état 1 ou remplacement d'un caractère par un autre,
  • état 2 ou remplacement de plusieurs caractères par un,
  • état 3 ou remplacement d'un caractère par plusieurs,
  • état 4 ou remplacement d'un groupe de caractères par un autre groupe de caractères, fin.

Rappelez-vous combien de règles de traduction nous avons définies au début de l'article? :) Comme Σ, l'alphabet latin et une seule citation sont utilisés pour désigner un signe doux, et l'ensemble Γ contient l'alphabet cible - l'alphabet cyrillique. L'ensemble des états initial et final se compose de caractères alphabétiques ou de combinaisons de caractères alphabétiques, car cela peut se produire lors du codage des lettres H, W, U, Y, Y.

Pour le moment, le transducteur a été utilisé dans certains problèmes de PNL, y compris dans l'analyse morphologique des mots:
image

Voici un autre exemple d'un transducteur simple pour un traducteur. Ce dernier schéma est le mieux adapté à la conception de translittération. Une différence: dans chaque état q, nous ne traitons pas un mot, mais son symbole.
image

En savoir plus sur les transducteurs

Eh bien, nous allons essayer de construire un translittérateur tel qu'il puisse analyser les données d'entrée de différents GOST et convertir différentes orthographes en un seul alphabet cyrillique. En d'autres termes, nous concevrons la logique de transition du transducteur.

Approches de base de la translittération


Il existe plusieurs approches pour construire un translittérateur, dont deux sont basées sur le ML et basées sur des règles.

ML - tout modèle probabiliste seq-à-seq (Markov comme base). Il est basé sur le principe de Viterbi, lorsque nous segmentons simultanément le mot latin et recherchons la séquence la plus probable d'états latents ou de combinaisons cyrilliques.

Les états sont un nombre fini de combinaisons cyrilliques. Observations ou séquence d'entrée - combinaisons latines, transitions - entre combinaisons latines et cyrillique, émissions (probabilités d'observation après transition vers un nouvel état) - la probabilité de la combinaison latine dans une combinaison cyrillique.

En outre, le modèle ML de translittération peut être défini comme un problème de traduction automatique. Ainsi, par exemple, vous pouvez former un modèle de transcription de mots dans une langue. Vous devez d'abord compiler un tableau de correspondance des sons aux lettres, puis vous entraîner sur les exemples de probabilité de traduire des lettres en sons.

Maintenant, nous ne considérerons pas le modèle ML, car il n'y a aucun ensemble de données représentatif avec des options de translittération à portée de main. La collecte de données est une tâche distincte. Revenons à la translittération et concentrons-nous sur l' approche basée sur les règles . Pour ce faire, nous avons besoin d'un dictionnaire (bouée de sauvetage pour tout linguiste), d'une table de compatibilité des lettres et d'une table de translittération des phonèmes.

Comment ça marche?


Le processus de translittération le plus simple comprend trois étapes:

  • Nous suivons la séquence, qui doit être traduite en russe.
  • Nous recherchons une combinaison de sons dans le tableau de translittération des phonèmes.
  • Si des phonèmes sont trouvés, alors nous translittérons la combinaison actuelle et corrige l'incompatibilité des lettres en utilisant des expressions régulières.

La sous-séquence peut avoir une interprétation ambiguë en caractères russes. C'est là que la ramification des règles commence. Les principaux pièges de la troisième étape:

1. Traduction sonore CH. Au début d'un mot, il peut être Ch, X et K. À la fin d'un mot, il y a aussi deux options: Ch, X. L'heuristique la plus simple utilisée dans l'implémentation actuelle est la présence du phonème I / S avant le son CH. Vous pouvez vous demander, pourquoi sommes-nous sûrs qu'avant la lettre O, il est possible de convertir CHR en XP, et avant Et en KR? Il s'agit de trouver des mots commençant par la République tchèque dans les dictionnaires actuels de la langue russe. À ce jour, personne n'a trouvé de mots russes avec le début du ChRO / CRI.

2. Apprendre à reconnaître le signe solide de séparation. Dans ce cas, nous collectons les préfixes possibles dans une expression régulière, vérifions le caractère suivant, qui devrait être une voyelle iotée en translittération (EYUYA). Si tout va bien, alors nous mettons un signe solide devant la voyelle. Il y a aussi des analyses erronées, comme avec le mot "canular", qui devrait en fait être démantelé comme "canular".

3. Où nous traduisons les sons iotés en E / E / Y / Y, et où - nous partons comme un couple de voyelles. Nous savons que les voyelles iotées vont après les préfixes après un signe solide de division, dans l'étape précédente, nous avons reconnu la dernière. Donc, notre lettre actuelle est la même voyelle. Nous obtenons également une voyelle iotée au début d'un mot. Bien sûr, ici, cela ne peut se passer d’une analyse erronée: IONY → JONES au lieu de JONA. Mais une telle analyse peut être réduite. Nous utilisons à nouveau le dictionnaire, dans lequel nous voyons que dans le mot qui commence par IO, les lettres TAD suivent généralement. Ajoutez cette observation à nos règles.

4. Où EST, et où OH? Ici, une heuristique simple est également appliquée, où un son de consonne est vérifié avant la séquence de caractères souhaitée. Si c'est GDZHKTSCHShSCH, alors nous obtenons la fin OI, sinon nous prenons la combinaison OY de la table de traduction.

Comment améliorer ce modèle


  • Considérez comment reconnaître un signe doux dans les mots.
  • Connectez un dictionnaire électronique d'orthographe réel sur lequel sont basées les heuristiques. Cela aiderait à garder une trace de la pertinence de nos règles et, éventuellement, à introduire un concept tel que le «poids des règles». Nous passerions donc lentement au modèle ML.
  • À utiliser dans le cadre du correcteur orthographique. Bien sûr, ce n'est plus la tâche de la translittération, mais l'orthographe aiderait à obtenir un résultat plus significatif :)

Détails d'auto-apprentissage de la translittération

Je serai heureux de répondre aux questions dans les commentaires et de réfléchir aux améliorations du translittérateur :)

Source: https://habr.com/ru/post/fr479542/


All Articles