腾讯AI开放平台使用尝试:通过文本翻译API进行汉译英
发布日期:2021-06-30 20:20:03 浏览次数:2 分类:技术文章

本文共 3437 字,大约阅读时间需要 11 分钟。

这篇文章继续尝试使用腾讯AI开放平台提供的文本翻译API进行汉译英的示例说明。

目录


事前准备

实现需要申请申请账号,获得如下接入凭证:

  • AppID:应用ID
  • AppKey:应用密钥

目前免费账号可创建一百个应用,每个应用有不同的AppID和AppKey,详细操作可参看:


请求参数

文本翻译的功能目前是通过腾讯翻译君提供的,请求的参数信息如下所示:

在这里插入图片描述

返回格式

返回格式就简单的多,状态/翻译内容/翻译后内容,非常容易理解:

在这里插入图片描述


示例代码

腾讯官方给了一个简单的PHP的示例,这个例子中只需要修改AppID、AppKey以及翻译内容就可以进行功能验证了,这里将其稍整理整理为如下php文件,使用格式为:

使用格式:php translate_through_api.ph -u $APP_ID -p $APP_KEY -s “带翻译的内容”

  • 代码内容
liumiaocn:php liumiao$ cat translate_through_api.ph 
$value) {
if ($value !== '') {
$str .= $key . '=' . urlencode($value) . '&'; } } // 3. 拼接app_key $str .= 'app_key=' . $appkey; // 4. MD5运算+转换大写,得到请求签名 $sign = strtoupper(md5($str)); return $sign;}// doHttpPost :执行POST请求,并取回响应结果// 参数说明// - $url :接口请求地址// - $params:完整接口请求参数(特别注意:不同的接口,参数对一般不一样,请以具体接口要求为准)// 返回数据// - 返回false表示失败,否则表示API成功返回的HTTP BODY部分function doHttpPost($url, $params){
$curl = curl_init(); $response = false; do {
// 1. 设置HTTP URL (API地址) curl_setopt($curl, CURLOPT_URL, $url); // 2. 设置HTTP HEADER (表单POST) $head = array( 'Content-Type: application/x-www-form-urlencoded' ); curl_setopt($curl, CURLOPT_HTTPHEADER, $head); // 3. 设置HTTP BODY (URL键值对) $body = http_build_query($params); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $body); // 4. 调用API,获取响应结果 curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_NOBODY, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); $response = curl_exec($curl); if ($response === false) {
$response = false; break; } $code = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($code != 200) {
$response = false; break; } } while (0); curl_close($curl); return $response;}$options = "u:p:s:";$opts = getopt ( $options );// 设置请求数据$appid = $opts['u'];$appkey = $opts['p'];$transcontent = $opts['s'];$params = array( 'app_id' => "$appid", 'source' => 'zh', 'target' => 'en', 'text' => "$transcontent", 'time_stamp' => strval(time()), 'nonce_str' => strval(rand()), 'sign' => '',);$params['sign'] = getReqSign($params, $appkey);// 执行API调用$url = 'https://api.ai.qq.com/fcgi-bin/nlp/nlp_texttranslate';$response = doHttpPost($url, $params);echo $response;?>liumiaocn:php liumiao$

使用示例

现在所有东西都已就绪,让我们来期待一下,注意事前要做如下准备

  • export APP_ID=所使用的AppID值
  • export APP_KEY=所使用的AppKey值
  • 第一句翻译:你好,我是刘淼

    在这里插入图片描述
    有没有感觉像小时候背的英语课文。

  • 第二句翻译:你好,你这翻译的好像在打电话一样

    在这里插入图片描述
    虽然翻译的很快,但是这句翻译错了,被翻译成“你的翻译好像在打电话”,但是汉语确实太烦人了,可以理解

  • 第三句翻译:你好,很想认识一下你的翻译

    在这里插入图片描述
    翻译很好

  • 第四句翻译:算了,相见不如怀念

    在这里插入图片描述
    翻译的让人陷入了深深地沉思,翻译过来的内容怎么这么难理解呢,果然还是想认识一下风骨精奇的翻译君啊。算了,不玩了,后台说不定在说,你看,今天又来了一个没有见过世面的,自己玩的不亦乐乎。

常见问题

如果出现如下问题提示:

PHP Notice:  curl_setopt(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used instead in

对应方法可根据其提示的那样,将示例代码中的true设定为2即可,也可以设定为false进行关闭。

  • 设定代理服务器的方式:在代码中添加如下内容即可
curl_setopt($curl, CURLOPT_PROXY, "代理IP");curl_setopt($curl, CURLOPT_PROXYPORT, "代理端口");curl_setopt($curl, CURLOPT_PROXYUSERPWD, "代理用户:代理密码");

总结

使用起来非常方便,还好翻译的有点瑕疵,让使用者会觉得对NLP一点点小小的自豪感,但是很有可能很快这点自豪感就会被打击的一点都没有,这是必然的趋势。差点都忘了要总结的内容了,以为是总结人家翻译君翻译的内容呢,API整体使用起来非常流畅,如果不让我先申请个QQ可能就更好了。

参考内容

https://ai.qq.com/doc/nlptrans.shtml

转载地址:https://liumiaocn.blog.csdn.net/article/details/108381978 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Maven基础:错误对应:was cached in the local repository
下一篇:容器基础:PHP的官方Alpine镜像

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月12日 17时38分34秒