最强翻译?Facebook AI可以直接翻译100种语言-1

 

最强翻译?Facebook AI可以直接翻译100种语言-1

近日,Facebook 宣称已经开发出一种人工智能翻译系统,能够在 100 种语言之间进行精确翻译,而不需要像许多现有 AI 翻译那样先翻译成英语在翻译成目标语言。

 

在学术机构用来自动评估机器翻译质量的 100 分制中,该人工智能的表现比同类翻译系统高出 10 分。该模型的翻译也由人类进行了翻译评估,其准确率约为 90%。

 

Facebook 的研究人员在网上收集了 100 种语言的 75 亿对句子,然后对翻译 AI 进行训练。当然,并非所有语言的句子对数量都相同。Facebook 智能翻译项目负责人安吉拉・范 (Angela Fan) 说:“全球有很多地区使用两种语言,而且其中并不包括英语。我真正感兴趣的是,我们不需要再用英语作为‘中间人’。” 

 

该翻译 AI 的训练方法关注的是那些通常需要相互切换的语言,然后根据地理和文化相似性将语言分为 14 个不同的集合。这确保了对更常用的交流进行高质量的翻译,并更准确地训练模型。

 

对于一些语言对来说,新翻译系统比现有的翻译质量有了显著提高。例如,将西班牙语翻译成葡萄牙语的难度特别大,因为西班牙语是世界上使用人数第二多的官方语言,这意味着研究人员可以获得大量的训练数据。英语和白俄罗斯语之间的翻译质量也比现有系统有所提高,因为白俄罗斯语和俄语有相似之处,AI 通过翻译俄语进行了训练。

 

目前该系统还没有在社交网站上使用,但 Facebook 计划很快将其投入使用。Facebook 希望借助它来处理人们每天使用 160 多种语言撰写的帖子时产生的 200 亿份翻译任务。未来,Facebook 还将解决其他语言上的翻译难题,Fan 说,“特别是那些我们没有很多数据的语言,比如东南亚和非洲的语言。”

 

爱尔兰都柏林圣三一大学 ADAPT 中心的 Sheila Castilho 说,这项工作 “打破了以英语为中心的翻译模式,并试图建立更多样化的多语言翻译模式,让人耳目一新。” 但 Castilho 表示,人类只评估考察了一小部分翻译实例,这是否是对人工智能表现的准确判断尚未可知。

 

她还担心,这项评估是由双语志愿者完成的,而不是专业的翻译人员。她说:“非专业人士缺乏翻译知识,因此可能不会注意到一个翻译比另一个翻译更好的细微差别。”

 

她在 ADAPT 中心的同事 Andy Way 认为,Facebook 并没有和最先进的翻译系统进行公平的比较。他说:“他们声称新系统比‘以英语为中心’的翻译模式有了很大的进步,这种说法有点空洞,因为大多数时候,人们已经不这么做了”。然而 Facebook 不同意这种说法,称通过英语翻译仍然是普遍现象。

 

道翰天琼CiGril机器人API

道翰天琼CiGril认知智能机器人API用户需要按步骤获取基本信息:

  1. 在平台注册账号
  2. 登录平台,进入后台管理页面,创建应用,然后查看应用,查看应用相关信息。
  3. 在应用信息页面,找到appid,appkey秘钥等信息,然后写接口代码接入机器人应用。

开始接入

请求地址:http://www.weilaitec.com/cigirlrobot.cgr

请求方式:post

请求参数:

参数

类型

默认值

描述

userid  

String  

平台注册账号

appid  

String  

平台创建的应用id

key  

String  

平台应用生成的秘钥

msg  

String  

""

用户端消息内容

 

接口连接示例:http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552

注意事项:参数名称都要小写,五个参数不能遗漏,参数名称都要写对,且各个参数的值不能为空字符串。否则无法请求成功。userid,appid,key三个参数要到平台注册登录创建应用之后,然后查看应用详情就可以看到。userid就是平台注册账号。

示例代码JAVA:


import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class apitest {

    /**
     * Get请求,获得返回数据
     * @param urlStr
     * @return
     */
    private static String opUrl(String urlStr)
    {        
        URL url = null;
        HttpURLConnection conn = null;
        InputStream is = null;
        ByteArrayOutputStream baos = null;
        try
        {
            url = new URL(urlStr);
            conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(5 * 10000);
            conn.setConnectTimeout(5 * 10000);
            conn.setRequestMethod("POST");
            if (conn.getResponseCode() == 200)
            {
                is = conn.getInputStream();
                baos = new ByteArrayOutputStream();
                int len = -1;
                byte[] buf = new byte[128];

                while ((len = is.read(buf)) != -1)
                {
                    baos.write(buf, 0, len);
                }
                baos.flush();
                String result = baos.toString();
                return result;
            } else
            {
                throw new Exception("服务器连接错误!");
            }

        } catch (Exception e)
        {
            e.printStackTrace();
        } finally
        {
            try
            {
                if (is != null)
                    is.close();
            } catch (IOException e)
            {
                e.printStackTrace();
            }

            try
            {
                if (baos != null)
                    baos.close();
            } catch (IOException e)
            {
                e.printStackTrace();
            }
            conn.disconnect();
        }
        return "";
    }
    
    
    public static void main(String args []){        
            //msg参数就是传输过去的对话内容。            
            System.out.println(opUrl("http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552"));
            
    }
}