Nuxeo Platformの拡張性と柔軟性を最大限に引き出すことができましたし、Google Cloud Machine Learning製品との統合は、このプラットフォームの真の強さを示す典型的な例と言っていいでしょう。

Nuxeoは最近、Google CloudのVision APIとの連動という既存の成果を利用して、Google CloudのNatural Language APIおよびTranslation APIとの連動に取り組みました。結果は大成功でした。Googleの機械学習を活用して、テキストから情報を導き出したり、サポートされている複数の言語(サポートされている言語は100以上)との間でテキスト(またはドキュメント全体)を翻訳することに関心がある人には、この連動が役立つことでしょう。Vision APIとの連動と同様、Google Cloudでは、翻訳サービスと自然言語サービスの両方の構築に使用されているREST API内のオペレーションが公開されます。もちろん、他のプロバイダを受け入れるためにこれらのサービスを拡張することは、プラットフォームと同様に拡張できるので可能です。

Google CloudのTranslation APIとの連動

Google CloudはJavaクライアントライブラリを提供しており、APIへのリクエストをより簡単に作成して応答を取得することができます。カスタムプロバイダでは、翻訳サービスを取得し、翻訳メソッドを呼び出してテキストを翻訳することができます。

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;
}

課題となっていた特定のユースケースは、他の言語のテキストを潜在的に含む文書を取り込むことでした。ソース言語を検出してテキストを他の言語に翻訳することは、非常に強力な仕組みになると思いました。翻訳テキストとともに文書をバージョン管理し保存すると同時に、実際にこうした翻訳を行うことができたので、結果として得られたサービスは非常に有用であることが実証されています。

自然言語処理

自然言語処理APIは、非常に興味深い方法でテキストを分析するために実行できるオペレーションを公開しています。人や場所、出来事のような特定の情報を抽出できるだけでなく、テキストの感情や意図も導き出すことができます。しかし、この統合を完了した後、これらの導出された結果を使用する方法がよく分かりませんでした。これは、自然言語処理がどのようにNuxeo Platformで役立つか、読者の考えを聞く絶好の機会になると思いました!

調査の質問:


Typeform実施