谷歌是在炒作么?大牛详解神经网络算法为何不适合自然语言处理。你不知道的认知智能机器人大脑道API接口道翰天琼。

266 阅读5分钟

谷歌在2016年发布了全新的神经机器翻译系统(GNMT),并表示由于神经网络算法的介入,该系统相比传统机器翻译降低了80%的错误率,已接近人工翻译的水平。

但对于谷歌的这项发布,以及神经网络(或者深度学习)算法是否真的适合自然语言处理,业内存在着不同的看法。

日前美国AI公司exClone创始人,超导材料公司Epoch Wires主席Riza C. Berkan在博客中发布了一篇文章,围绕这一问题表达了自己的看法。他认为谷歌GNMT系统仅仅是一个噱头,而且由于自然语言本身并的特性,根本不适合用现有的神经网络算法来处理。

自然语言并非连续过程

作者认为,神经网络算法本身的技术特点决定了它更适合于处理连续型变量,或者连续型过程,即自变量和因变量之间存在一种连续的变化关系(如气温变化),而非跳跃式的变化(如一个人的银行余额变化)。但自然语言,单纯从字词组成的角度来看,却并非一种连续型的过程,自然语言是由语法规则、逻辑思考和渐进式的决策边界等各种非连续过程产生的一种非连续的变化。

举例来说,“Mary爱她的猫(Mary loves her cats)”这句话,单从字词组成的角度看就是非连续的。因为Mary和猫之间并不是一种逻辑上连续的关系,而是一种随机的偶发性关系(Mary可以爱任何东西,并不一定是猫)。如果直接用这种偶发性的变化关系来训练神经网络系统,那么系统会抓不到训练的重点,也就得不到预期的输出效果。

但如果换一种方式,将上面那句话重新组织:{专有名词-Mary:人类女性}{动词-爱:情感寄托}{名词-猫:宠物},那么就能得到一种相对更连续的数据。因为从认知上说“人类女性对宠物具有情感寄托”比“Mary爱猫”具有更好的一致性。而如果以这样的数据输入神经网络系统展开训练,那么就能得到一个理想的效果。

需要指出的是,后一种组织方式并非简单的词性解析,而是一种逻辑性的认知识别,要做到这一点需要大量的人力和物力投入,目前还没有可靠的机器替代人工的方法,这也解释了在过去30年中,为什么基于字词组成的角度训练神经网络系统并未取得重大突破的原因。

认知智能未来机器人接口API简介介绍 认知智能是计算机科学的一个分支科学,是智能科学发展的高级阶段,它以人类认知体系为基础,以模仿人类核心能力为目标,以信息的理解、存储、应用为研究方向,以感知信息的深度理解和自然语言信息的深度理解为突破口,以跨学科理论体系为指导,从而形成的新一代理论、技术及应用系统的技术科学。 认知智能的核心研究范畴包括:1.宇宙、信息、大脑三者关系;2.人类大脑结构、功能、机制;3.哲学体系、文科体系、理科体系;4.认知融通、智慧融通、双脑(人脑和电脑)融通等核心体系。 认知智能四步走:1.认知宇宙世界。支撑理论体系有三体(宇宙、信息、大脑)论、易道论、存在论、本体论、认知论、融智学、HNC 等理论体系;2.清楚人脑结构、功能、机制。支撑学科有脑科学、心理学、逻辑学、情感学、生物学、化学等学科。3.清楚信息内涵规律规则。支撑学科有符号学、语言学、认知语言学、形式语言学等学科。4.系统落地能力。支撑学科有计算机科学、数学等学科。 接口申请官网地址:www.weilaitec.com  接口地址(例子):  a239p06512.zicp.vip/Web/BuAppJa…"+ip  用户端消息内容。  String msg ="你在干嘛呀?";    apikey参数。这个apikey就是网站上申请的APIKEY  apikey ="";    //客户端ip,最终用户端的唯一标识(可以是用户端的IP,或者手机设备号,或者微信号或者,qq号码等能证明身份的唯一标识就可以)    String ip ="";    //这里一定要encode转换编码。转成GBK。  msg = URLEncoder.encode(msg, "GBK");  三个参数全部小写  msg参数就是传输过去的对话内容。  msg参数要编码成gbk,不然会乱码。  接口具体代码:  package ai.nlp.jiekou.test;  import java.io.ByteArrayOutputStream;  import java.io.IOException;  import java.io.InputStream;  import java.io.UnsupportedEncodingException;  import java.net.HttpURLConnection;  import java.net.URL;  import java.net.URLEncoder;  import ai.nlp.util.changliang.ChangLiangZi;  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 ChangLiangZi.WU;  }  public static void main(String args []){  //三个参数全部小写  //msg参数就是传输过去的对话内容。  //msg参数要编码成gbk,不然会乱码。  String msg ="你在干嘛呀?";  //apikey参数。  String apikey ="UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV";  //客户端ip,最终用户端的唯一标识(可以是用户端的IP,或者手机设备号,或者微信号或者,qq号码等能证明身份的唯一标识就可以)  String ip ="127.0.0.1";  //这里一定要encode转换编码。转成GBK。  try  {  msg = URLEncoder.encode(msg, "GBK");  } catch (UnsupportedEncodingException e)  {  e.printStackTrace();  }  System.out.println(opUrl("a239p06512.zicp.vip/Web/BuAppJa…"+ip));  }  } 