Wie schreibe ich meinen eigenen Übersetzer?

Daria Rodionova , Absolventin des CS-Zentrums im Jahr 2018, spricht über Transliteration: Was ist das, was sind die Ansätze für Transliteration, wie erstellt man einen eigenen Transliterator und wie verbessert man das Modell?

Die Transliteration ist eine grafische Übersetzung eines Wortes von einem Alphabet in ein anderes, vorausgesetzt, wir haben eine Tabelle der Entsprechung der Zeichen eines Systems zu einem anderen. Was erinnert die Transliteration in der Tat nicht an einen vereinfachten Übersetzer? Hier sind Sprachen Alphabete und die mögliche Anzahl der Übersetzungsregeln wird auf vier wichtige vereinfacht:

  • Eins zu Eins: B → B, R → P, P → P
  • Eins-zu-viele: J → ZUERST
  • Viele-zu-eins: SCH → U, CH → H, YU → U
  • Viele-zu-viele: hängt vom Kontext ab, z. B. IE -> IE

Bis vor kurzem wurde alles Runet in Latein geschrieben. Damals verfügten nicht alle Geräte über ein kyrillisches Layout, aber ASCII stand an vorderster Front - während Kodierungen noch immer kein Kyrillisch verarbeiten konnten. Infolgedessen erhielt der Empfänger anstelle einer russischen Nachricht Abrakadabra.

Als vor 15 Jahren das kyrillische Alphabet auf Mobiltelefonen verfügbar wurde, gingen weiterhin lateinische SMS-Nachrichten von Mobilfunkbetreibern ein. Ich werde nicht verbergen, dass ich diese Nachrichten mit Vergnügen entschlüsselt habe :) Und jetzt korrespondieren die Leute oft in lateinischen Buchstaben in Foren oder Chatrooms, weil keine russische Tastatur zur Hand ist.

Warum automatische Transliteration benötigt wird


Meist geht es um die direkte Transliteration russischer Wörter in das lateinische Alphabet. Wenn Sie geografische Namen oder Namen für fremde Dokumente übersetzen müssen, wissenschaftliche Artikel.

Reverse Transliteration ist die Umwandlung eines lateinischen Wortes in ein kyrillisches Wort. Es wird in vielen Bereichen benötigt, so dass in jedem von ihnen im Laufe der Zeit ein Standard entstanden ist. Und so gibt es jetzt mehrere Standards auf einmal, nach denen Wörter mehrdeutig übersetzt werden.

Wir hören oft in den Nachrichten von lächerlichen Übersetzungen und Transliterationen von geografischen Namen. Beispielsweise kann die Kombination der Buchstaben "sch" die Sequenz "MF" oder der Buchstabe "" sein, wie im Wort "Schyot". Sogar in den Foren gibt es unterschiedliche Ansichten darüber, wie man den Buchstaben "" in lateinischen Buchstaben schreibt. Dort finden Sie auch die Mehrdeutigkeit der Kombination "ch". Es scheint, dass dies immer "H" ist! Nein, es ist auch ein "X" am Ende von Wörtern: In der Regel stehen die Buchstaben "I / S" davor. Und wie werden Sie "YE" aus dem Lateinischen übersetzen? In "E" oder in "S"? Weitere Details finden Sie im Artikel „Übersetzen ohne Regeln“ .

Theoretische Beschreibung des Übersetzers


Dies ist ein Wandler mit endlichen Zuständen, der aus Knoten besteht, von denen jeder das Eingangssymbol verarbeiten und einen Ausgang erzeugen kann. Wenn wir eine formale Definition geben, besteht der Wandler aus 6 Komponenten (Q, Σ, Γ, I, F, δ), wobei:

Q - viele Staaten
Σ - Alphabet eingeben
Γ - Ausgabealphabet
I ist eine Teilmenge der Anfangszustände von Q
F ist eine Teilmenge der Endzustände von Q
δ ist der Übergang von Q ⨉ (Σ Σ {e}) zu Q ⨉ (Γ Γ {e})

Im allgemeinen Fall repräsentiert die Menge Q mehrere Zustände. Wir schreiben einige in einem aufgrund der Anzahl der Buchstaben im Alphabet:

  • Start, Zustand 1 oder Ersetzen eines Zeichens durch ein anderes,
  • Zustand 2 oder Ersetzen mehrerer Zeichen mit einem,
  • Zustand 3 oder Ersetzen eines Zeichens durch mehrere,
  • Zustand 4 oder Ersetzen einer Zeichengruppe durch eine andere Zeichengruppe, Ende.

Erinnern Sie sich, wie viele Übersetzungsregeln wir am Anfang des Artikels definiert haben? :) Als Σ werden das lateinische Alphabet und ein einfaches Anführungszeichen verwendet, um ein weiches Zeichen zu kennzeichnen, und die Menge Γ enthält das Zielalphabet - das kyrillische Alphabet. Viele der Anfangs- und Endzustände bestehen aus alphabetischen Zeichen oder Kombinationen von alphabetischen Zeichen, da dies bei der Codierung der Buchstaben H, W, U, Y, Y auftreten kann.

Vorläufig wurde der Wandler bei einigen NLP-Problemen eingesetzt, einschließlich der morphologischen Analyse von Wörtern:
Bild

Hier ist ein weiteres Beispiel eines einfachen Wandlers für einen Übersetzer. Das letztere Schema ist am besten für das Transliterationsdesign geeignet. Ein Unterschied: In jedem Zustand q verarbeiten wir kein Wort, sondern dessen Symbol.
Bild

Mehr zu Schallköpfen

Nun, wir werden versuchen, einen solchen Transliterator zu erstellen, der Eingabedaten von verschiedenen GOSTs analysieren und verschiedene Schreibweisen in ein einziges kyrillisches Alphabet umwandeln kann. Mit anderen Worten, wir werden die Wandlerübergangslogik entwerfen.

Grundlegende Ansätze zur Transliteration


Es gibt verschiedene Ansätze zum Erstellen eines Transliterators, von denen zwei ML- und regelbasiert sind.

ML - jedes probabilistische seq-to-seq-Modell (Markov als Basis). Es basiert auf dem Viterbi-Prinzip, bei dem wir gleichzeitig das lateinische Wort segmentieren und nach der wahrscheinlichsten Folge latenter Zustände oder kyrillischer Kombinationen suchen.

Zustände sind eine endliche Anzahl von kyrillischen Kombinationen. Beobachtungen oder Eingabesequenzen - lateinische Kombinationen, Übergänge - zwischen lateinischen Kombinationen und kyrillischen Emissionen (Wahrscheinlichkeiten der Beobachtung nach dem Übergang in einen neuen Zustand) - die Wahrscheinlichkeit der lateinischen Kombination in einer kyrillischen Kombination.

Das ML-Modell der Transliteration kann auch als ein Problem der maschinellen Übersetzung definiert werden. So können Sie beispielsweise ein Modell für das Transkribieren von Wörtern in einer Sprache trainieren. Zuerst müssen Sie eine Tabelle erstellen, in der die Entsprechung von Lauten zu Buchstaben aufgeführt ist, und dann die Beispiele für die Wahrscheinlichkeit trainieren, dass Buchstaben in Lauten übersetzt werden.

Jetzt werden wir das ML-Modell nicht berücksichtigen, da es keinen repräsentativen Datensatz mit verfügbaren Transliterationsoptionen gibt. Die Datenerfassung ist eine separate Aufgabe. Kehren wir zur Transliteration zurück und konzentrieren uns auf den regelbasierten Ansatz . Dazu benötigen wir ein Wörterbuch (Lebensretter für jeden Linguisten), eine Buchstabenkompatibilitätstabelle und eine Tabelle zum Transliterieren von Phonemen.

Wie funktioniert es


Der einfachste Transliterationsprozess besteht aus drei Schritten:

  • Wir folgen der Sequenz, die ins Russische übersetzt werden muss.
  • Wir suchen nach einer Kombination von Lauten in der Transliterationstabelle von Phonemen.
  • Wenn Phoneme gefunden werden, transkribieren wir die aktuelle Kombination und korrigieren die Inkompatibilität von Buchstaben mit regulären Ausdrücken.

Die Folge kann in russischen Schriftzeichen mehrdeutig interpretiert werden. Hier beginnt die Verzweigung zu den Regeln. Die Hauptfallen des dritten Schritts:

1. Tonübersetzung CH. Am Anfang eines Wortes können es Ch, X und K sein. Am Ende eines Wortes gibt es auch zwei Optionen: Ch, X. Die einfachste Heuristik, die in der aktuellen Implementierung verwendet wird, ist das Vorhandensein des I / S-Phonems vor dem Klang CH. Sie fragen sich vielleicht, warum wir sicher sind, dass es vor dem Buchstaben O möglich ist, CHR nach XP und vor And nach KR zu konvertieren? In den aktuellen Wörterbüchern der russischen Sprache dreht sich alles darum, Wörter zu finden, die mit der Tschechischen Republik beginnen. Bis heute hat niemand russische Wörter mit dem Beginn des ChRO / CRI gefunden.

2. Lernen, das durchgezogene Trennungszeichen zu erkennen. In diesem Fall sammeln wir die möglichen Präfixe in einem regulären Ausdruck, überprüfen das nächste Zeichen, das ein iotierter Vokal in Transliteration (EYUYA) sein sollte. Wenn alles in Ordnung ist, setzen wir ein festes Zeichen vor den Vokal. Es gibt auch fehlerhafte Analysen, wie mit dem Wort "Hoax", die in der Tat als "Hoax" abgebaut werden sollten.

3. Wo wir die iotierten Klänge in E / E / Y / Y übersetzen und wo - lassen wir sie als ein paar Vokale. Wir wissen, dass iotierte Vokale Präfixen nach einem durchgehenden Trennzeichen folgen. Im vorherigen Schritt haben wir das letzte erkannt. Unser aktueller Buchstabe ist also der gleiche Vokal. Zu Beginn eines Wortes erhalten wir auch einen iotierten Vokal. Natürlich kann hier nicht auf eine fehlerhafte Analyse verzichtet werden: IONY → JONES anstelle von JONA. Eine solche Analyse kann jedoch reduziert werden. Wir benutzen wieder das Wörterbuch, in dem wir sehen, dass in dem Wort, das mit IO beginnt, normalerweise die Buchstaben TAD folgen. Fügen Sie diese Beobachtung zu unseren Regeln hinzu.

4. Wo IST und wo OH? Hier wird auch eine einfache Heuristik angewendet, bei der ein Konsonantenklang vor der gewünschten Zeichenfolge geprüft wird. Wenn es GDZHKTSCHShSCH ist, erhalten wir die Endung OI, ansonsten nehmen wir die Kombination OY aus der Übersetzungstabelle.

Wie man dieses Modell verbessert


  • Überlegen Sie, wie Sie ein weiches Zeichen in Worten erkennen.
  • Verbinden Sie ein aktuelles elektronisches Rechtschreibwörterbuch, auf dem die Heuristik basiert. Dies würde helfen, die Relevanz unserer Regeln im Auge zu behalten und möglicherweise ein solches Konzept als „Regelgewicht“ einzuführen. Also gingen wir langsam zum ML-Modell über.
  • Verwendung im Kontext der Rechtschreibprüfung. Natürlich ist dies nicht länger die Aufgabe der Transliteration, aber die Rechtschreibung würde helfen, ein aussagekräftigeres Ergebnis zu erzielen :)

Details zur Transliteration im Selbststudium

Gerne beantworte ich Fragen in den Kommentaren und denke über Verbesserungen des Übersetzers nach :)

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


All Articles