Myanmar is momenteel het enige land ter wereld met een aanzienlijke online aanwezigheid dat niet is gestandaardiseerd op Unicode, de internationale standaard voor tekstcodering. In plaats daarvan is Zawgyi het dominante lettertype dat wordt gebruikt om Birmese karakters te coderen. Dit gebrek aan één standaard heeft geleid tot technische problemen voor veel bedrijven die mobiele apps en diensten aanbieden in Myanmar. Het maakt communicatie op digitale platforms moeilijk, omdat inhoud die in Unicode is geschreven, er voor Zawgyi-gebruikers vervormd uitziet en vice versa. Dit is een probleem voor apps als Facebook en Messenger, omdat berichten, berichten en opmerkingen die in de ene codering zijn geschreven, niet leesbaar zijn in een andere. Het gebrek aan standaardisering rond Unicode maakt automatisering en proactieve detectie van schendende inhoud moeilijker, het kan de accountbeveiliging verzwakken, het maakt het melden van potentieel schadelijke inhoud op Facebook minder efficiënt, en het betekent minder ondersteuning voor andere talen in Myanmar dan het Birmaans.

Om de overgang van Myanmar naar Unicode te ondersteunen, hebben we vorig jaar Zawgyi verwijderd als interfacetaaloptie voor nieuwe Facebook-gebruikers. Vervolgens hebben we ervoor gezorgd dat onze classificeerders voor haatzaaiende en andere beleidsovertredende inhoud niet over Zawgyi-inhoud zouden struikelen en zijn we begonnen met het integreren van lettertypeconverters om de inhoudservaring op Unicode-apparaten te verbeteren. Om het land te helpen bij de overgang naar Unicode, kondigen we vandaag aan dat we lettertypeconverters hebben geïmplementeerd in Facebook en Messenger. Omdat we weten dat deze overgang tijd zal kosten, zal onze Zawgyi-naar-Unicode-converter mensen die overstappen naar Unicode in staat blijven stellen berichten, berichten en opmerkingen te lezen, zelfs als hun vrienden en familie hun apparaten nog niet hebben omgeschakeld. In dit bericht lees je meer over de technische uitdagingen die komen kijken bij het integreren van deze converters, zoals hoe we Zawgyi-tekst onderscheiden van Unicode, hoe we kunnen zien of een apparaat Zawgyi of Unicode gebruikt, en hoe we kunnen converteren tussen de twee, evenals enkele lessen die we onderweg hebben geleerd.

Facebook-post zonder Unicode-conversie (links) en met conversie (rechts).
Facebook-post zonder conversie (links) en met conversie (rechts).

Waarom Unicode?

Unicode is ontworpen als een wereldwijd systeem, zodat iedereen ter wereld zijn eigen taal kan gebruiken op zijn of haar apparaat. Maar de meeste apparaten in Myanmar gebruiken nog steeds Zawgyi, dat niet compatibel is met Unicode. Dat betekent dat de mensen die deze apparaten gebruiken nu te maken krijgen met compatibiliteitsproblemen tussen platforms, besturingssystemen en programmeertalen. Om hun publiek beter te bereiken, plaatsen producenten van inhoud in Myanmar vaak berichten in zowel Zawgyi als Unicode in een enkele post, om nog maar te zwijgen van het Engels of andere talen. Zawgyi-codering gebruikt meerdere codepunten voor karakters en gecombineerde weergaven; vereist tweemaal zoveel codepunten om slechts een subset van het schrift weer te geven; en klinker-codepunten kunnen voor of na een medeklinker verschijnen (zodat CAT of CTA hetzelfde leest), wat leidt tot zoek- en vergelijkingsproblemen, zelfs binnen een enkel document. Dit maakt elke vorm van communicatie tussen systemen tot een enorme uitdaging.

Facebook ondersteunt Unicode omdat het ondersteuning en een consistente standaard biedt voor elke taal. Met name in Myanmar steunen we de overgang naar Unicode omdat:

  • Hiermee kunnen mensen in Myanmar onze apps en diensten in andere talen dan het Birmaans gebruiken. Zawgyi ondersteunt alleen het invoeren van Birmese tekst, terwijl Unicode het mogelijk maakt om minderheidstalen die in Myanmar worden gesproken, zoals Shan en Mon, in te voeren.
  • Het biedt een genormaliseerde vorm voor talen in Myanmar, wat ons helpt de mensen te beschermen die onze apps gebruiken door beleidsovertredende inhoud op te sporen en de prestaties van zoekprogramma’s aanzienlijk te verbeteren.
  • Het maakt het efficiënter voor ons om meldingen van potentieel schadelijke inhoud op Facebook te beoordelen, en inhoudsbeoordelaars zullen in staat zijn om problemen te beoordelen zonder te hoeven weten hoe de inhoud is gecodeerd.

Een drieledige aanpak

Toen we voor het eerst begonnen te kijken naar Myanmar-codering, was onze topprioriteit ervoor te zorgen dat onze systemen die schadelijke inhoud detecteren, zoals haatzaaien, niet over Zawgyi struikelden. We hebben onze doelen daarvoor in deze blogpost uitgelegd. Dezelfde uitdagingen (zoals meerdere codepunten en gecombineerde renderings) die het moeilijk maken voor systemen om te communiceren met behulp van Zawgyi, maken het ook moeilijk om onze classifiers en AI-systemen te trainen om effectief beleidsovertredende inhoud te detecteren.

Gelukkig zijn we niet het enige bedrijf dat aan dit probleem werkt, en we waren in staat om Google’s open source myanmar-tools bibliotheek te gebruiken om onze oplossing te implementeren. De myanmar-tools bibliotheek was een grote upgrade, in termen van nauwkeurigheid van detectie en conversie, ten opzichte van de regex-gebaseerde bibliotheek die we tot dan toe gebruikten. Ongeveer een jaar geleden integreerden we de detectie en conversie van lettertypes om alle inhoud om te zetten in Unicode voordat het door onze classificeerders ging. De implementatie van autoconversie voor al onze producten was geen eenvoudige taak. Elk van de vereisten voor de autoconversie – detectie van de inhoudscodering, detectie van de apparaatcodering en conversie – had zijn eigen uitdagingen.

Detectie van de inhoudscodering

Om autoconversie uit te voeren, moeten we eerst de inhoudscodering kennen, dat wil zeggen, de codering die werd gebruikt toen de tekst voor het eerst werd ingevoerd. Helaas gebruiken Zawgyi en Unicode dezelfde reeks code-punten om karakters in het Burmees en andere talen weer te geven. Daarom kunnen we niet zeggen of een lijst van codepunten die een tekenreeks voorstelt, moet worden weergegeven met Zawgyi of Unicode. Ook is niet elke reeks van codepunten zinvol in beide coderingen. Met een model dat is getraind op tekst die in Zawgyi en Unicode is gemaakt, kunnen we beoordelen hoe waarschijnlijk het is dat een gegeven tekenreeks met een Zawgyi- of een Unicode-toetsenbord is gemaakt.

Met een model dat is getraind op tekst die in Zawgyi en Unicode is gemaakt, kunnen we beoordelen hoe waarschijnlijk het is dat een gegeven tekenreeks met een Zawgyi- of een Unicode-toetsenbord is gemaakt.

Onze detectie is gebaseerd op de aanpak van de myanmar-tools-bibliotheek. We trainen een machine learning (ML)-model op openbare Facebook-inhoudsvoorbeelden waarvan we de inhoudscodering al kennen. Dit model houdt voor elk voorbeeld bij hoe waarschijnlijk het is dat een reeks codepunten voorkomt in Unicode versus in Zawgyi. Later, bij het bepalen van de inhoudscodering van iemands inhoud, kijken we naar de voorspelling van het model voor de vraag of die reeks codepunten eerder in Unicode of in Zawgyi is ingevoerd – en we gebruiken dat resultaat als de inhoudscodering.

Detectie van apparaatcodering

Volgende, we moeten weten welke codering werd gebruikt door iemands telefoon (dat wil zeggen, de apparaatcodering) om te begrijpen of we een conversie van de lettertypecodering moeten uitvoeren. Om dit te doen, kunnen we gebruik maken van het feit dat in de ene codering, het combineren van verschillende codepunten tekstfragmenten zal combineren tot een enkel karakter, terwijl in de andere codering die twee codepunten afzonderlijke karakters kunnen vertegenwoordigen. Als we een tekenreeks op het apparaat maken en de breedte van die tekenreeks controleren, kunnen we zien welke lettercodering het apparaat gebruikt om de tekenreeks weer te geven. Als we deze informatie hebben, kunnen we de server in toekomstige webverzoeken vertellen dat het apparaat Zawgyi of Unicode gebruikt en ervoor zorgen dat de inhoud die wordt opgehaald overeenkomt. In Myanmar bepaalt onze client-side logica of het apparaat in kwestie Zawgyi of Unicode gebruikt en zendt die codering als onderdeel van het locale veld in het webverzoek (bijv. mijn_Qaag_MM).

Conversie

Naar aanleiding hiervan controleert de server of hij Birmaanse inhoud laadt. Als de encoding van de inhoud en die van het apparaat niet overeenkomen, moet de inhoud worden geconverteerd naar een formaat dat het apparaat van de lezer goed weergeeft. Bijvoorbeeld, als een bericht is ingevoerd met een Unicode inhoudscodering, maar het wordt gelezen op een Zawgyi gecodeerd apparaat, dan converteren we de tekst van het bericht naar Zawgyi voordat we het renderen op het Zawgyi apparaat.

Het is belangrijk om dit model te trainen op Facebook-inhoud in plaats van op andere publiek toegankelijke inhoud op het web. Mensen schrijven anders op Facebook dan op een webpagina of in een wetenschappelijk artikel: Facebook posts en berichten zijn over het algemeen korter en minder formeel, en ze bevatten afkortingen, jargon, en typefouten. We willen dat onze voorspellingen zo nauwkeurig mogelijk zijn voor de inhoud die mensen delen en lezen op onze apps.

Integreren van autoconversie op Facebook-schaal

De volgende uitdaging was om deze conversie te integreren in de verschillende soorten inhoud die mensen kunnen maken op onze apps. Zawgyi tekst is ingevoerd voor statusupdates, maar ook voor gebruikersnamen, opmerkingen, video-ondertitels, privéberichten en meer. Het uitvoeren van onze detectie en conversie elke keer dat iemand een bepaald type content ophaalt zou onbetaalbaar zijn in termen van de benodigde tijd en middelen. Er is geen enkele pijplijn waar alle mogelijke Facebook-inhoud doorheen gaat, wat het moeilijk maakt om Zawgyi-inhoud overal te vangen waar iemand het zou kunnen invoeren. Bovendien wordt niet elk webverzoek gedaan vanaf het apparaat van een persoon. Wanneer meldingen en berichten bijvoorbeeld naar apparaten worden geduwd, kunnen we de logica voor apparaatcodering niet uitvoeren. Ook zijn berichten en opmerkingen vaak erg kort, wat de nauwkeurigheid van de detectie verlaagt.

De lettertype-omzetter is nu volledig geïmplementeerd op Facebook en Messenger. Deze tools zullen een groot verschil maken voor de miljoenen mensen in Myanmar die onze apps gebruiken om te communiceren met vrienden en familie. Om de mensen in Myanmar te blijven ondersteunen bij deze overgang naar Unicode, onderzoeken we of we onze autoconversietools kunnen uitbreiden naar meer producten uit de Facebook-productfamilie en of we de kwaliteit van onze automatische detectie en conversie kunnen verbeteren. We zijn ook van plan om te blijven bijdragen aan de open source myanmar-tools bibliotheek om anderen te helpen tools te bouwen om deze overgang te ondersteunen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.