Пример 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 ответа
Просто прокомментируйте эту строку, так как я не вижу, чтобы где-то дальше в методе использовалась локальная переменная " langs ".
В случае, если вам нужно сделать вызов для выполнения метода на 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.
- Я уведомил команду разработчиков об ошибке синтаксиса.
- Я ищу МСП, которое может ответить на ваши технические вопросы