智能对话
人工智能
目前人工智能与深度学习顺应了互联网时代潮流,人机对话已经成为目前人工智能领域中非常热门的处理技术。其中基于深度学习的人机对话交换系统(智能机器人)是人工智能最有潜力的领域,甚至被称作人工智能的皇冠。相对于传统的页面简单交互,人机对话系统更能读懂你的内心世界与想法。
机器人人机对话系统主要涉及深度学习、机器学习、特征过程、自然语言处理等核心知识。
技术领域
在此,先推荐一下学习的主要技术领域:
数学
矩阵计算主要研究单个矩阵或多个矩阵相互作用时的一些性质。机器学习的各种模型都大量涉及矩阵相关性质,比如PCA其实是在计算特征向量,MF其实是在模拟SVD计算奇异值向量。人工智能领域的很多工具都是以矩阵语言来编程的,比如主流的深度学习框架,如Tensorflow、PyTorch等无一例外。
概率统计是机器学习的基础。常用的几个概率统计概念:随机变量、离散随机变量、连续随机变量、概率密度/分布(二项式分布、多项式分布、高斯分布、指指数族分布)、条件概率密度/分布、先验密度/分布、后验密度/分布、最大似然估计、最大后验估计。
最优化方法被广泛用于机器学习模型的训练。机器学习中常见的几个最优化概念:凸/非凸函数、梯度下降、随机梯度下降、原始对偶问题。
机器学习与深度学习
周志华的西瓜书《机器学习》
自然语言处理
《统计自然语言处理基础》、王斌老师翻译的中文版《信息检索导论》
使用Java实现智能对话机器人
需求:使用Java实现智能对话机器人
技术点&开发工具:Myeclipse、JDK1.8、HTTPS、JSON、jsp、图灵
开发步骤:
1:首先注册图灵开发者账号,并创建机器人,如下图
2:创建机器人之后,获取机器人APIKEY值
3:新建一个mavenproject,如下图:
4:导入解析json格式的jar包
org.jsonjson201801305:添加如下测试代码:
publicclassTalkUtil{//机器人对应的APIkey--图灵平台获取publicstaticfinalStringAPI_KEY="922a7bfffcd9463fbafa58d88d64d988";publicstaticfinalStringAPI_URL="http://www.tuling123.com/openapi/api";/***@parammsg需要发送的消息*@return*/privateStringsetParameter(Stringmsg){try{returnAPI_URL+"?key="+API_KEY+"&info="+URLEncoder.encode(msg,"utf-8");}catch(UnsupportedEncodingExceptione){e.printStackTrace();}returnnull;}/***拿到消息回复的内容*@paramjson请求接口得到的JSON*@returntext的部分*/privateStringgetString(Stringjson){try{JSONObjectobject=newJSONObject(json);returnobject.getString("text");}catch(JSONExceptione){e.printStackTrace();}returnnull;}/***提供对外公开的方法用于最终拿到机器人回复的消息*@parammsg传入你需要发送的信息*@return机器人对你的回复*/publicStringgetMessage(Stringmsg){returngetString(getHTML(setParameter(msg)));}privateStringgetHTML(Stringurl){StringBufferbuffer=newStringBuffer();BufferedReaderbufferedReader=null;try{URLu=newURL(url);HttpURLConnectionconnection=(HttpURLConnection)u.openConnection();bufferedReader=newBufferedReader(newInputStreamReader(connection.getInputStream()));Stringline="";while((line=bufferedReader.readLine())!=null){buffer.append(line);}}catch(MalformedURLExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}finally{try{bufferedReader.close();}catch(IOExceptione){e.printStackTrace();}}returnbuffer.toString();}publicstaticvoidmain(String[]args){TalkUtilutil=newTalkUtil();Scannerscanner=newScanner(System.in);//控制台输入while(scanner.hasNext()){//直接输出机器人的回复System.err.println("Ta对你说---->"+util.getMessage(scanner.nextLine()));}}}6:控制台测试结果,进行智能聊天对话:
有兴趣的大佬,可以添加前端聊天窗口页面,进行聊天
原文发布于微信公众号- 码神联盟(lkchatspace)
原文发表时间:2018-08-18