随着认知智能走进了人们的视野,知识图谱的重要性便日渐凸显。在今年的天然语言处理顶会 ACL 2020 上,天然语言知识图谱领域发生了巨大的革新。ACL 做为 NLP 领域的顶级学术会议,无疑可以很好地呈现该领域的研究风向。
本文做者Michael Galkin(计算机科学家,主要研究方向为知识图谱)从问答系统、知识图谱嵌入、天然语言生成、人工智能对话系统、信息提取等方面总结了 ACL 2020 上知识图谱最新工做。 AI 科技评论将这份总结编译以下:ACL 2020 彻底采起了在线会议的模式。想要举办这么庞大的在线活动,让来自多个时区的参会者共同参与其中,并展现超过 700 篇论文是十分困难的。不过在全部讲者、参会者、组织者的努力下,这届大会得以圆满进行。那么与 ACL 2019 相比,知识图谱和天然语言处理领域发生了大的变化吗?答案是确定的!咱们将今年该领域的进展归纳为:java
知识图谱展示了更好地揭示其它非结构化数据中的高阶相关性的能力。web
1算法
在该任务中,研究者们面向 SPARQL 的知识图谱或 SQL 数据库这样的结构化数据源提出了问题。在今年的 ACL 大会上,咱们能够看到愈来愈多考虑复杂(也被称为多跳)问题的工做。举例而言,Saxena 等人的论文「Improving Multi-hop Question Answering over Knowledge Graphs using Knowledge Base Embeddings」在研究复杂知识图谱问答任务时,将知识图谱嵌入与问题嵌入向量耦合在它们的 EmbedKGQA 系统中。_论文地址:https://www.aclweb.org/anthol...,做者经过一些算法(本文做者选用了论文「Complex Embeddings for Simple Link Prediction 」中提出的算法)对底层知识图谱进行嵌入,从而使每一个实体与关系与一个特定的向量相关联。在某些状况下,做者冻结这些向量,或者根据知识图谱的规模持续调优。其次,做者使用 RoBERTA 模型对输入进行编码(最后一层中为 [CLS] ),并通过 4 个全链接层处理,咱们但愿经过这种方式将问题投影到复杂的空间中。而关键的部分在于评分函数,其中做者采用知识图谱嵌入的框架,而且构建了一个(头实体,问题,候选实体)三元组。这里的评分函数与 ComplEx 算法使用的同样,头实体是问题的主实体,问题被当作三元组中的关系,候选实体要么是小型知识图谱中的所有实体,要么是头实体周围 2 跳之内的子图(当须要剪枝时)。这确实与典型的用于训练知识图谱嵌入的「1-N」评分机制相相似。经过计算并阈值化问题嵌入 h_q 和每一个关系嵌入 h_r 之间的点积(h_q,h_r),能够进一步对候选空间进行剪枝。在 MetaQA 和 WebQuestionsSP 上进行的实验中,做者探索了一种特定的场景:随机删除 50% 的边构造一个不完整的知识图谱,从而使系统必须学会推理出这些缺失的连接。在知识图谱完整的场景下,EmbedKGQA 与 PullNet 性能至关(在 3 跳问题上性能稍优),在 Hits@1 的绝对得分上比不使用额外的文本加强知识图谱的基线高出 10-40%。即便如此,研究 EmbedKGQA 如何处理须要聚合或具备多个具体实体的问题,仍是颇有趣的。数据库
· 认知智能是计算机科学的一个分支科学,是智能科学发展的高级阶段,它以人类认知体系为基础,以模仿人类核心能力为目标,以信息的理解、存储、应用为研究方向,以感知信息的深度理解和天然语言信息的深度理解为突破口,以跨学科理论体系为指导,从而造成的新一代理论、技术及应用系统的技术科学。 认知智能的核心研究范畴包括:1.宇宙、信息、大脑三者关系;2.人类大脑结构、功能、机制;3.哲学体系、文科体系、理科体系;4.认知融通、智慧融通、双脑(人脑和电脑)融通等核心体系。 认知智能四步走:1.认知宇宙世界。支撑理论体系有三体(宇宙、信息、大脑)论、易道论、存在论、本体论、认知论、融智学、HNC 等理论体系;2.清楚人脑结构、功能、机制。支撑学科有脑科学、心理学、逻辑学、情感学、生物学、化学等学科。3.清楚信息内涵规律规则。支撑学科有符号学、语言学、认知语言学、形式语言学等学科。4.系统落地能力。支撑学科有计算机科学、数学等学科。api
接口申请官网地址:www.citec.top 服务器
· 微信
接口地址(例子): 框架
· 函数
http://a239p06512.zicp.vip/We...="+apikey+"&msg="+msg+"&ip="+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("http://a239p06512.zicp.vip/Web/BuAppJava.bujqrex?apikey="+apikey+"&msg="+msg+"&ip="+ip));
·
}
·
}
·