1. 程式人生 > 實用技巧 >最強翻譯?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"));

}
}