使用 IBM Watson API 分析淘宝用户评论(4)使用 Language Translator API 翻译评论
- UID
- 1066743
|
使用 IBM Watson API 分析淘宝用户评论(4)使用 Language Translator API 翻译评论
使用 Language Translator API 翻译评论开通 Language Translator 服务后,可以从服务页面中得到版本,认证信息(用户名密码或者密钥)和云端调用地址三个远程调用参数信息,然后将这些调用参数集中配置到 IamOptions 对象中,如下清单 2 中代码所示:
清单 2. 配置远程调用信息1
2
3
4
5
6
7
8
9
10
11
| // API 版本,参考 API 手册
String version = "2018-05-01";
// 密钥,此处代码隐藏了实际的密钥值,应该填写你开通这个服务后分配的密钥
String api_key = "…………………………………" ;
// API 调用地址,系统分配
String end_point = "https://gateway-syd.watsonplatform.net/language-translator/api";
// 将参数集中放置到 IamOptions 对象中
IamOptions options = new IamOptions.Builder().apiKey(api_key).build();
|
接着,在代码清单 3 中,创建 Watson Language Translator 服务对象
清单 3. 配置 Watson Language Translator 服务1
2
3
4
5
| // 创建 Language Translator Service
LanguageTranslator languageTranslatorService = new LanguageTranslator(version, options);
// 设置 API 调用地址,填写系统分配给你的 end point
languageTranslatorService.setEndPoint(end_point);
|
创建一 LanguageTranslator 类型的 Service 对象,创建的时候要将 API 版本和上面的 IamOptions 对象实例作为对象创建参数,然后再给服务分配远程调用地址 end_point。接下来,就可以使用这个服务了。
注意,如果采用用户名密码登陆,则按照代码清单 4 中的方式配置:
清单 4. 调用翻译服务1
| LanguageTranslator languageTranslatorService=new LanguageTranslator ("{version}","{username}","{password}");
|
将保存到文件中的商品评论信息读出,作为 Watson Language Translator 服务的输入,如清单 5 所示:
清单 5. 读取评论内容1
2
3
4
5
6
7
8
| StringBuffer text= new StringBuffer("");
File commentfile = new File("/data/comments_demo.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
String tempString = null;
while ((tempString = reader.readLine()) != null) {
text.append(tempString);
}
reader.close();
|
从保存的某商品评论文件“商品编号.txt”中读取内容到一个 StringBuffer 对象中,作为接下来的翻译输入文字。接着设置 Language Translator 服务自身的参数和输入,调用服务返回结果。如清单 6 所示:
清单 6. 翻译结果返回1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| // 翻译选项:数据源类型、源语言与目标语言等
TranslateOptions translateOptions = new TranslateOptions.Builder()
.addText(text.toString())
.modelId("en-zh")
.build();
// 调用 Service 开始翻译并且得到结果对象 result
TranslationResult result = languageTranslatorService.translate(translateOptions).execute();
//翻译结果
TranslationResult result = languageTranslatorService.translate(translateOptions).execute();
String output = result.getTranslations().get(0).getTranslationOutput();
System.out.println("output: "+output);
// 将结果转化为 JSON 格式的字符串
System.out.println(result.toString());
|
对于翻译服务 API,要创建一个 TranslateOptions 对象作为服务的参数,在 TranslateOptions 对象实例 translateOptions 中,主要调用 2 个方法设置输入和语言参数:
- addText(text.toString()):输入要翻译的文本,这里是之前从文件中读取的内容。
- modelId("en-zh"):设置翻译的语种,这里是 en-zh,即英文翻译为中文。
然后,调用 LanguageTranslator 服务的 execute() 方法开始翻译并且得到返回结果,返回结果是一个 TranslationResult 类型的对象,从这个对象的 getTranslationOutput() 方法得到翻译结果文本。也可以通过 toString() 方法得到和用 REST 调用返回结果一样的 JSON 格式的字符串。 |
|
|
|
|
|