首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 IBM Watson API 分析淘宝用户评论(4)使用 Language Translator API 翻译评论

使用 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 格式的字符串。
返回列表