Am meisten begeistern mich die Erweiterbarkeit und Flexibilität der Nuxeo Platform und die Integration mit den Google-Cloud-Produkten für Maschinenlernen ist ein klassisches Beispiel dafür, wie leistungsstark die Plattform tatsächlich ist.

Vor kurzem stürzten wir uns in ein interessantes Projekt, in dessen Rahmen wir uns unsere eigene Arbeit zunutze machten, die wir bei der Integration mit der Vision-API von Google Cloud geleistet hatten. Wir waren erfolgreich und hoffen, dass unsere Ergebnisse hilfreich sind für Personen, die mithilfe der Maschinenlernfunktionen von Google Informationen aus Text gewinnen und/oder Texte (oder gar ganze Dokumente) aus und in zahlreiche unterstützte Sprachen zu übersetzen (derzeit sind über 100 Sprachen verfügbar). Wie auch bei der Integration der Vision-API werden Aktionen der Google Cloud in einer REST-API offengelegt, auf deren Basis auch die Dienste für Übersetzung und Sprachanalyse konstruiert wurden. Natürlich ist es möglich, diese Dienste auch auf andere Anbieter auszuweiten, da sie - wie der Großteil der Plattform - erweiterungsfähig sind.

Integration der Übersetzungs-API von Google Cloud

Praktischerweise wird von Google Cloud eine Java-Client-Bibliothek bereitgestellt, sodass wir Anfragen einfacher an die API senden und deren Antworten empfangen können. Mit unserem benutzerdefinierten Anbieter rufen wir den Übersetzungsdienst ab und können durch Aufruf der Übersetzungsfunktion Texte in andere Sprachen übertragen.

Translation com.google.cloud.translate.Translate.translate(String text, TranslateOption... options)
Translates the provided texts.

Example of translating a text:
Translation translation = translate.translate("Hola Mundo!");

Example of translating a text, specifying source and target  language:
Translation translation = translate.translate("Hola Mundo!", TranslateOption.sourceLanguage("es"), TranslateOption.targetLanguage("de"));

Parameters:
text the text to translate
options

Returns:
An object containing information on the language translation

Throws:
TranslateException - upon failure or if TranslateOption.model(String) is used by a non-whitelisted user

GoogleTranslationProvider:

protected Translate getTranslationServiceClient() throws IOException {
    if (translationServiceClient == null) {
        synchronized (this) {
            if (translationServiceClient == null) {
                try (InputStream is = new FileInputStream(new File(getCredentialFilePath()))) {     
                    final GoogleCredentials myCredentials = GoogleCredentials.fromStream(is);
        translationServiceClient = TranslateOptions.newBuilder().setCredentials(myCredentials).build().getService();
    } catch (IOException ioe) {
        throw new NuxeoException(ioe);
    }
            }
        }
    }
    return translationServiceClient;
}

@Override
public TranslationResponse translateText(String text, String sourceLanguage, String targetLanguage) throws IOException {
    Translate translationService = getTranslationServiceClient();
    Translation response = translationService.translate(text);
    GoogleTranslationResponse gtr = new GoogleTranslationResponse(response);
    return gtr;
}

In unserem speziellen Anwendungsfall sollten Dokumente verarbeitet werden, die potenziell Text in anderen Sprachen enthielten. Wir waren der Ansicht, dass es extrem hilfreich sein könnte, die Quellsprache zu identifizieren und den Text in andere Sprachen zu übersetzen. So entstand ein extrem nützlicher Dienst, mit dem wir die Übersetzung während der Versionierung vornehmen und dann einfach das übersetzte Dokument speichern konnten.

Maschinelle Sprachverarbeitung

Die Sprachverarbeitungs-API verfügt über andere Funktionen, mit deren Hilfe Texte auf interessante Art und Weise analysiert werden können. Es lassen sich nicht nur bestimmte Informationen wie Personen, Orte oder Veranstaltungen herausfiltern, sondern auch Absicht und Tonfall des Textes ableiten. Nach Abschluss dieser Integration sind wir uns jedoch nicht ganz sicher, wie wir deren Ergebnisse wirklich einsetzen können. Deswegen dachten wir uns, dass das die perfekte Gelegenheit wäre unsere Leser zu fragen, wie sie die maschinelle Sprachverarbeitung auf der Nuxeo Platform einsetzen würden.

Umfrage:


unterstützt von Typeform