Myanmar ist derzeit das einzige Land der Welt mit einer bedeutenden Online-Präsenz, das nicht auf Unicode, den internationalen Standard für die Textkodierung, umgestellt hat. Stattdessen ist die Zawgyi die vorherrschende Schriftart, die zur Kodierung der birmanischen Schriftzeichen verwendet wird. Das Fehlen eines einheitlichen Standards hat für viele Unternehmen, die in Myanmar mobile Anwendungen und Dienste anbieten, zu technischen Herausforderungen geführt. Die Kommunikation auf digitalen Plattformen wird dadurch erschwert, da in Unicode geschriebene Inhalte für Zawgyi-Nutzer verstümmelt erscheinen und umgekehrt. Dies ist ein Problem für Apps wie Facebook und Messenger, da Beiträge, Nachrichten und Kommentare, die in einer Kodierung geschrieben wurden, in einer anderen nicht lesbar sind. Die fehlende Standardisierung von Unicode erschwert die Automatisierung und proaktive Erkennung von verletzenden Inhalten, kann die Kontosicherheit schwächen, macht das Melden von potenziell schädlichen Inhalten auf Facebook weniger effizient und bedeutet weniger Unterstützung für Sprachen in Myanmar, die über Birmanisch hinausgehen.
Im letzten Jahr haben wir, um Myanmars Übergang zu Unicode zu unterstützen, Zawgyi als Sprachoption für neue Facebook-Nutzer entfernt. Anschließend haben wir dafür gesorgt, dass unsere Klassifizierer für Hassreden und andere Inhalte, die gegen die Richtlinien verstoßen, nicht über Zawgyi-Inhalte stolpern, und wir haben mit der Integration von Schriftkonvertern begonnen, um die Darstellung von Inhalten auf Unicode-Geräten zu verbessern. Um das Land bei der Umstellung auf Unicode zu unterstützen, geben wir heute bekannt, dass wir Schriftartkonverter in Facebook und Messenger implementiert haben. Da wir wissen, dass diese Umstellung einige Zeit in Anspruch nehmen wird, wird unser Zawgyi-zu-Unicode-Konverter es Menschen, die auf Unicode umstellen, weiterhin ermöglichen, Beiträge, Nachrichten und Kommentare zu lesen, auch wenn ihre Freunde und Familienmitglieder ihre Geräte noch nicht umgestellt haben. Dieser Beitrag beschreibt die technischen Herausforderungen, die mit der Integration dieser Konverter verbunden sind, einschließlich der Frage, wie wir Zawgyi-Text von Unicode unterscheiden, wie wir feststellen können, ob ein Gerät Zawgyi oder Unicode verwendet, und wie wir zwischen den beiden konvertieren können, sowie einige Lektionen, die wir dabei gelernt haben.
Warum Unicode?
Unicode wurde als globales System entwickelt, damit jeder auf der Welt seine eigene Sprache auf seinen Geräten verwenden kann. Aber die meisten Geräte in Myanmar verwenden immer noch Zawgyi, das mit Unicode nicht kompatibel ist. Das bedeutet, dass die Nutzer dieser Geräte nun mit Kompatibilitätsproblemen zwischen verschiedenen Plattformen, Betriebssystemen und Programmiersprachen zu kämpfen haben. Um ihr Publikum besser zu erreichen, posten die Produzenten von Inhalten in Myanmar oft sowohl in Zawgyi als auch in Unicode in einem einzigen Beitrag, ganz zu schweigen von Englisch oder anderen Sprachen. Bei der Zawgyi-Kodierung werden mehrere Codepunkte für Zeichen und kombinierte Darstellungen verwendet; es sind doppelt so viele Codepunkte erforderlich, um nur eine Teilmenge der Schrift darzustellen; und die Codepunkte für Vokale können vor oder nach einem Konsonanten stehen (so dass CAT oder CTA gleich gelesen wird), was zu Such- und Vergleichsproblemen führt, selbst innerhalb eines einzigen Dokuments. Dies macht jede Art von Kommunikation zwischen Systemen zu einer großen Herausforderung.
Facebook unterstützt Unicode, weil es Unterstützung und einen einheitlichen Standard für jede Sprache bietet. Insbesondere in Myanmar unterstützen wir den Übergang zu Unicode, weil:
- Es ermöglicht den Menschen in Myanmar, unsere Apps und Dienste in anderen Sprachen als Birmanisch zu nutzen. Zawgyi unterstützt nur die Eingabe von birmanischem Text, während Unicode die Eingabe von Minderheitensprachen, die in Myanmar gesprochen werden, wie Shan und Mon, ermöglicht.
- Es bietet eine normalisierte Form für Sprachen in Myanmar, was uns hilft, die Menschen zu schützen, die unsere Anwendungen nutzen, indem wir richtlinienwidrige Inhalte erkennen und die Leistung von Suchwerkzeugen erheblich verbessern.
- Es macht es für uns effizienter, Berichte über potenziell schädliche Inhalte auf Facebook zu überprüfen, und Inhaltsprüfer können Probleme überprüfen, ohne wissen zu müssen, wie der Inhalt kodiert wurde.
Ein dreigleisiger Ansatz
Als wir anfingen, uns mit der Myanmar-Kodierung zu befassen, war unsere oberste Priorität, sicherzustellen, dass unsere Systeme, die schädliche Inhalte wie Hassreden erkennen, nicht über Zawgyi stolpern. Wir haben unsere Ziele dafür in diesem Blogbeitrag erläutert. Die gleichen Herausforderungen (wie mehrere Codepunkte und kombinierte Renderings), die es Systemen erschweren, mit Zawgyi zu kommunizieren, erschweren auch das Training unserer Klassifizierer und KI-Systeme, um richtlinienwidrige Inhalte effektiv zu erkennen.
Glücklicherweise sind wir nicht das einzige Unternehmen, das an diesem Problem arbeitet, und wir konnten die Open-Source-Bibliothek myanmar-tools von Google für die Implementierung unserer Lösung nutzen. Die myanmar-tools-Bibliothek war im Hinblick auf die Erkennungs- und Konvertierungsgenauigkeit ein großer Fortschritt gegenüber der Regex-basierten Bibliothek, die wir bisher verwendet hatten. Vor etwa einem Jahr haben wir die Schrifterkennung und -konvertierung integriert, um alle Inhalte in Unicode zu konvertieren, bevor sie unsere Klassifikatoren durchlaufen. Die Implementierung der Autokonvertierung für alle unsere Produkte war keine einfache Aufgabe. Jede der Anforderungen für die automatische Konvertierung – Erkennung der Inhaltskodierung, Erkennung der Gerätekodierung und Konvertierung – hatte ihre eigenen Herausforderungen.
Erkennung der Inhaltskodierung
Um die automatische Konvertierung durchzuführen, müssen wir zunächst die Inhaltskodierung kennen, d. h. die Kodierung, die bei der ersten Eingabe des Textes verwendet wurde. Leider verwenden Zawgyi und Unicode denselben Bereich von Codepunkten, um Zeichen in Birmanisch und anderen Sprachen darzustellen. Aus diesem Grund können wir nicht sagen, ob eine Liste von Codepunkten, die eine Zeichenfolge darstellen, mit Zawgyi oder Unicode wiedergegeben werden sollte. Außerdem ist nicht jede Zeichenfolge in beiden Kodierungen sinnvoll. Mit einem Modell, das auf Text trainiert wurde, der in Zawgyi und Unicode erstellt wurde, können wir die Wahrscheinlichkeit abschätzen, dass eine bestimmte Zeichenkette mit einer Zawgyi- oder einer Unicode-Tastatur erstellt wurde.
Unsere Erkennung basiert auf dem Ansatz der myanmar-tools-Bibliothek. Wir trainieren ein Modell für maschinelles Lernen (ML) auf öffentlichen Facebook-Inhaltsproben, deren Kodierung wir bereits kennen. Dieses Modell verfolgt für jedes Beispiel, wie wahrscheinlich es ist, dass eine Reihe von Codepunkten in Unicode und in Zawgyi vorkommt. Wenn wir später die Inhaltskodierung des Inhalts einer Person bestimmen, schauen wir uns die Vorhersage des Modells an, ob diese Folge von Codepunkten eher in Unicode oder in Zawgyi eingegeben wurde – und wir verwenden dieses Ergebnis als Inhaltskodierung.
Erkennung der Gerätekodierung
Als Nächstes müssen wir wissen, welche Kodierung vom Telefon einer Person verwendet wurde (d. h. die Gerätekodierung), um zu verstehen, ob wir eine Konvertierung der Schriftkodierung durchführen müssen. Dazu können wir uns die Tatsache zunutze machen, dass in einer Kodierung die Kombination mehrerer Codepunkte Textfragmente zu einem einzigen Zeichen zusammenfasst, während in der anderen Kodierung diese beiden Codepunkte separate Zeichen darstellen können. Wenn wir eine Zeichenkette auf dem Gerät erstellen und die Breite dieser Zeichenkette überprüfen, können wir feststellen, welche Schriftkodierung das Gerät zur Darstellung der Zeichenkette verwendet. Sobald wir diese Informationen haben, können wir dem Server in zukünftigen Webanfragen mitteilen, dass das Gerät Zawgyi oder Unicode verwendet, und sicherstellen, dass alle abgerufenen Inhalte damit übereinstimmen. In Myanmar ermittelt unsere clientseitige Logik, ob das betreffende Gerät Zawgyi oder Unicode verwendet, und sendet diese Kodierung als Teil des Gebietsschema-Feldes in der Webanforderung (z. B. my_Qaag_MM).
Konvertierung
Als nächstes prüft der Server, ob er birmanische Inhalte lädt. Wenn die Kodierung des Inhalts und die Gerätekodierung nicht übereinstimmen, müssen wir den Inhalt in ein Format konvertieren, das das Gerät des Lesers korrekt wiedergibt. Wenn beispielsweise ein Beitrag mit einer Unicode-Inhaltskodierung eingegeben wurde, aber auf einem Gerät mit Zawgyi-Kodierung gelesen wird, konvertieren wir den Text des Beitrags in Zawgyi, bevor er auf dem Zawgyi-Gerät wiedergegeben wird.
Es ist wichtig, dieses Modell auf Facebook-Inhalten zu trainieren und nicht auf anderen öffentlich zugänglichen Inhalten im Web. Menschen schreiben auf Facebook anders als auf einer Webseite oder in einer wissenschaftlichen Arbeit: Facebook-Posts und -Nachrichten sind in der Regel kürzer und weniger formell, und sie enthalten Abkürzungen, Slang und Tippfehler. Wir möchten, dass unsere Vorhersagen für die Inhalte, die Menschen auf unseren Apps teilen und lesen, so genau wie möglich sind.
Integration der automatischen Konvertierung auf Facebook
Die nächste Herausforderung bestand darin, diese Konvertierung in die verschiedenen Arten von Inhalten zu integrieren, die Menschen auf unseren Apps erstellen können. Zawgyi-Text wurde sowohl für Status-Updates als auch für Benutzernamen, Kommentare, Videountertitel, private Nachrichten und mehr eingegeben. Unsere Erkennung und Konvertierung jedes Mal auszuführen, wenn jemand irgendeine Art von Inhalt abruft, wäre in Bezug auf die benötigte Zeit und die Ressourcen unerschwinglich. Es gibt keine einzige Pipeline, die alle möglichen Facebook-Inhalte durchläuft, was es schwierig macht, Zawgyi-Inhalte überall dort zu erfassen, wo jemand sie eingeben könnte. Außerdem wird nicht jede Webanforderung vom Gerät einer Person aus gestellt. Wenn zum Beispiel Benachrichtigungen und Nachrichten an Geräte gesendet werden, können wir die Logik für die Gerätekodierung nicht ausführen. Außerdem sind Nachrichten und Kommentare oft sehr kurz, was die Erkennungsgenauigkeit verringert.
Der Schriftartenkonverter ist jetzt vollständig in Facebook und Messenger implementiert. Diese Tools werden einen großen Unterschied für die Millionen von Menschen in Myanmar machen, die unsere Apps nutzen, um mit Freunden und Familie zu kommunizieren. Um die Menschen in Myanmar weiterhin bei der Umstellung auf Unicode zu unterstützen, prüfen wir die Ausweitung unserer automatischen Konvertierungstools auf weitere Produkte der Facebook-Familie sowie die Verbesserung der Qualität unserer automatischen Erkennung und Konvertierung. Wir beabsichtigen auch, weiterhin einen Beitrag zur Open-Source-Bibliothek myanmar-tools zu leisten, um anderen bei der Erstellung von Tools zur Unterstützung dieser Umstellung zu helfen.