Most read

Automation Data Platform Energy Financial Retail Analytics
Real-time trading dashboard as a competitive advantage
Back to overview

Online Magazin

Qualitative Übersetzungen mit Azure Translator Service

Das Übersetzen eines Dokuments kann viel Arbeit machen, vor allem, weil die Struktur eines Dokuments meist nicht automatisch übernommen wird, sondern nach der Übersetzung manuell wieder eingefügt werden muss. Azure Translator Service hilft dabei, und in diesem Hack erkläre ich wie.

 

von Thomas Hafermalz

Azure implementiert KI auf viele nützliche Arten. Ein Beispiel ist die Azure Cognitive Services Familie. Sie vereint Dienste wie Sprachübersetzung und Sprechererkennung, Sentiment Analysis und vieles mehr. Das vielleicht am weitesten verbreitete Feature ist der Azure Translator Service: Er bietet Übersetzungen in über 100 Sprachen und Dialekten sowie die Möglichkeit, mit domänenspezifischer Terminologie zu arbeiten und verzichtet darauf, Texte während der Übersetzung zu speichern.

Was besonders vorteilhaft ist: Die Struktur des Originaldokuments bleibt während des Übersetzungsprozesses erhalten. Und: man kann mehrere Dokumente auf einmal übersetzen.

Der Service übersetzt

  • Office-Dokumente (Excel, Outlook, Word, PowerPoint),
  • PDF-Dateien,
  • HTML,

und viele weitere Dokumenttypen.

Noob Hack

Den Übersetzer bringen wir in drei Schritten zum Laufen:


1. Erstelle einen Übersetzerdienst.

Zunächst muss man einen Übersetzerdienst erstellen, der nicht Teil der Cognitive Services Resource ist.
Dabei ist es wichtig, die S1-Ebene zu wählen, um Dokumente übersetzen zu können, und sich den Namen zu notieren, den man gewählt hat. Wenn man <mycustomendpoint> durch diesen Namen ersetzt, kann man den erforderlichen benutzerdefinierten Endpunkt für die Übersetzung einrichten (https://<mycustomendpoint>.cognitiveservices.azure.com/translator/text/batch/v1.0-preview.1).




 

Tipp: Notiere den Schlüssel für das Abonnement.


2. Erstelle ein Speicherkonto.

Als zweites müssen wir ein Speicherkonto (GP 2) mit zwei Blob-Containern einrichten – einen für die Ausgangsdateien und einen für die übersetzten Zieldateien.

Für den Zugriff auf die Dateien erstellt man zwei Shared Access Signatures (SASs):

- Eine für den Quellcontainer (benötigt Lese- und Auflistungsberechtigungen)

- Eine weitere für den Zielcontainer (benötigt Schreib- und Auflistungsberechtigungen)


Notiere die generierten Signaturen.


 


 

3. Erstelle eine ClientApp für den HTTP-Post.

In einem dritten Schritt muss eine ClientApp für den HTTP-Post erstellt werden, über die der Übersetzungsauftrag gestartet wird. In diesem Fall verwende ich eine .Net Core Console App. Wähle Postman oder dein bevorzugtes Tool.

Nun muss man den richtigen (benutzerdefinierten) Endpunkt, den Abonnementschlüssel und die beiden SASs im JSON-String einrichten. Das Beispiel wird vom Deutschen ins Englische übersetzt.

Wenn wir das Programm starten, wird jedes Dokument aus dem Quell-Blob-Container übersetzt und im Ziel-Blob-Container gespeichert.


Programm.cs:

static readonly string route = "/batches";
private static readonly string endpoint = "https://(custom)endpoint.cognitiveservices.azure.com/translator/text/batch/v1.0-preview.1";
private static readonly string subscriptionKey = "key1";

static readonly string json = ("{\"inputs\": [{\"source\": {\"sourceUrl\": \"SAS-source\",\"storageSource\": \"AzureBlob\",\"language\": \"de\" }, \"targets\": [{\"targetUrl\": \"SAS-target\",\"storageSource\": \"AzureBlob\",\"category\": \"general\",\"language\": \"en\"}]}]}");

static async Task Main(string[] args)
{
using HttpClient client = new HttpClient();
using HttpRequestMessage request = new HttpRequestMessage();
{

StringContent content = new StringContent(json, Encoding.UTF8, "application/json");

request.Method = HttpMethod.Post;
request.RequestUri = new Uri(endpoint + route);
request.Headers.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
request.Content = content;

HttpResponseMessage response = await client.SendAsync(request);
string result = response.Content.ReadAsStringAsync().Result;
if (response.IsSuccessStatusCode)
{
Console.WriteLine($"Status code: {response.StatusCode}");
Console.WriteLine();
Console.WriteLine($"Response Headers:");
Console.WriteLine(response.Headers);
}
else
Console.Write("Error");

}

}

Pro Hack

Der Microsoft Translator verwendet neuronale maschinelle Übersetzung (NMÜ), die für die Übersetzung den Kontext ganzer Sätze heranzieht. Das sorgt für eine höhere Qualität der übersetzten Texte.


Um diese höhere Qualität zu erreichen, kann man den Microsoft Translator trainieren: Dafür verwendet man zuvor übersetzte Dokumente, z. B. mit domänenspezifischer Terminologie und Stil, um ein Übersetzungssystem aufzubauen. Auf der Grundlage desselben Inhalts in zwei oder mehr Sprachen gleicht der Custom Translator automatisch Sätze in verschiedenen Dokumenten ab.


Trainiere den Übersetzer in drei Schritten, um bessere Übersetzungen zu erhalten:


1. Wähle das Projekt aus, für das du ein Modell erstellen möchtest.


2. Wähle manuell die Dokumente aus, die du für das Training verwenden willst.

Auf der projektspezifischen Registerkarte «Daten» kann man Trainings-, Optimierungs- und Testdokumente auswählen und alle relevanten Informationen zu den Dokumenten einsehen:

- Name des Dokuments

- Kopplung: Zeigt an, ob es sich um ein doppel- oder einsprachiges Dokument handelt. (Hinweis: Einsprachige Dokumente können noch nicht für das Training verwendet werden).

- Dokumenttyp: Entweder Trainieren, Optimieren, Testen oder Wörterbuch.
Tipp: Wenn Sie Dokumente des Dokumenttyps "Training" für das Training auswählen, müssen mindestens 10.000 parallele Sätze vorhanden sein. Dies gilt jedoch nicht für andere Dokumenttypen, z.B. "Wörterbuch"-Dokumente.

- Sprachpaar: Zeigt Ausgangs- und Zielsprache an.

- Ausgangssätze: Zeigt die Anzahl der Sätze an, die aus der Quelldatei extrahiert wurden.

- Zielsätze: Zeigt die Anzahl der Sätze an, die aus der Zieldatei extrahiert wurden.


Quelle: Microsoft



3. Erstelle dein Modell (und starte das Training).

Klicke auf die Schaltfläche "Modell erstellen". Gib dann deinem Modell einen Namen und wählen entweder "Sofort trainieren", um sofort mit dem Training zu beginnen, oder "Als Entwurf speichern", um die Modell-Metadaten zu erstellen, aber noch nicht mit dem Training zu beginnen. Klicke dann erneut auf "Modell erstellen".



Quelle: Microsoft



Gut zu wissen:
Den Status des Trainings kann man auf der Registerkarte "Modelle" überprüfen. Der "Bleu Score" zeigt an, wie sehr das für das Training ausgewählte Dokumentenpaar die Übersetzungsqualität verbessert.



Quelle: Microsoft


Viel Spass beim Hacken!

Deine Ansprechperson

NACH DER LEKTÜRE ETWAS FÜR DAS OHR? WIR HABEN SPANNENDE PODCASTS & LUSTIGE PRANK-CALLS FÜR DICH!

Cat!apult
Cat!apult Podcast
IoT AI

A more human robot
Chantal is calling
Chantal Is Calling
IoT Data Platform

... Martin Schreiber
Cat!apult
Cat!apult Podcast
Food

Planted Meat