根据Translator API reference,识别代码下方的语言使用情况:
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?如何获得语言?
任何给出所有模型ID的链接都会受到赞赏,因为这有助于API的初始评估。另外,我在哪里可以找到目前支持的语言?
答案 0 :(得分:1)
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();
}
}
答案 1 :(得分:1)
简单地评论该行,因为我没有看到在方法中的任何地方使用的局部变量“ langs ”。
如果你需要它调用service.identify上的执行方法(“这是一个测试”),然后将它初始化为变量“ langs ”,如下所示:< / p>
列出langs = service.identify(“这是一个测试”)。execute();
答案 2 :(得分:0)