Пример IBM Watson Text Translator синтаксически неверен. Как автоматически определять язык

В соответствии со ссылкой Translator API, для определения языка используйте следующий код:

LanguageTranslator service = new LanguageTranslator();
service.setUsernameAndPassword("{username}","{password}");

List <IdentifiedLanguage> langs = service.identify("this is a test");
System.out.println(langs);

Но, как видно на скриншоте, это приводит к синтетической ошибке. Я исправил это, просто изменив одну строку:

ServiceCall<List<IdentifiedLanguage>> langs = service.identify("this is a test");

Было бы здорово, если бы документация могла быть обновлена. Ошибка ушла, но что теперь делать с этим ServiceCall? Как получить язык?

Также будет приветствоваться любая ссылка, дающая все идентификаторы модели, так как это помогает при первоначальной оценке API. Также, где я могу найти, какие языки поддерживаются в настоящее время?

3 ответа

Решение
  1. Просто прокомментируйте эту строку, так как я не вижу, чтобы где-то дальше в методе использовалась локальная переменная " langs ".

  2. В случае, если вам нужно сделать вызов для выполнения метода на service.identify("это тест"), а затем инициализировать его переменной " langs ", как показано ниже:

    Список langs = service.identify("это тест"). Execute();

service.identify("...") звонить нужно .execute(), не другого типа:

List<IdentifiedLanguage> langs = service.identify("this is a test").execute();

Затем он возвращает ожидаемый список IdentifiedLanguages. Вот полный пример, который регистрирует список, а затем выбирает из списка язык с самым высоким уровнем достоверности и регистрирует также:

package com.watson.example;

import java.util.Collections;
import com.ibm.watson.developer_cloud.language_translator.v2.LanguageTranslator;
import com.ibm.watson.developer_cloud.language_translator.v2.model.IdentifiedLanguage;

import java.util.Comparator;
import java.util.List;

public class ItentifyLanguage {
    public ItentifyLanguage() {
        LanguageTranslator service = new LanguageTranslator();
        service.setUsernameAndPassword("{username}","{password}");

        // identify returns a list of potential languages with confidence scores
        List<IdentifiedLanguage> langs = service.identify("this is a test").execute();
        System.out.println("language confidence scores:");
        System.out.println(langs);

        // this narrows the list down to a single language
        IdentifiedLanguage lang = Collections.max(langs, new Comparator<IdentifiedLanguage>() {
            public int compare (IdentifiedLanguage a, IdentifiedLanguage b) {
                return a.getConfidence().compareTo(b.getConfidence());
            }
        });

        System.out.println("Language " + lang.getLanguage() + " has the highest confidence score at " + lang.getConfidence());
    }


    public static void main(String[] args) {
        new ItentifyLanguage();
    }
}
  • На ваш вопрос о том, какие языки поддерживаются, см. Документ https://www.ibm.com/watson/developercloud/doc/language-translator/index.html.
  • Я уведомил команду разработчиков об ошибке синтаксиса.
  • Я ищу МСП, которое может ответить на ваши технические вопросы
Другие вопросы по тегам