智能对话 | 使用 Java实现 智能对话机器人

人工智能

目前人工智能与深度学习顺应了互联网时代潮流,人机对话已经成为目前人工智能领域中非常热门的处理技术。其中基于深度学习的人机对话交换系统(智能机器人)是人工智能最有潜力的领域,甚至被称作人工智能的皇冠。相对于传统的页面简单交互,人机对话系统更能读懂你的内心世界与想法。

机器人人机对话系统主要涉及深度学习、机器学习、特征过程、自然语言处理等核心知识。

技术领域

在此,先推荐一下学习的主要技术领域:

数学

矩阵计算主要研究单个矩阵或多个矩阵相互作用时的一些性质。机器学习的各种模型都大量涉及矩阵相关性质,比如PCA其实是在计算特征向量,MF其实是在模拟SVD计算奇异值向量。人工智能领域的很多工具都是以矩阵语言来编程的,比如主流的深度学习框架,如Tensorflow、PyTorch等无一例外。

概率统计是机器学习的基础。常用的几个概率统计概念:随机变量、离散随机变量、连续随机变量、概率密度/分布(二项式分布、多项式分布、高斯分布、指指数族分布)、条件概率密度/分布、先验密度/分布、后验密度/分布、最大似然估计、最大后验估计。

最优化方法被广泛用于机器学习模型的训练。机器学习中常见的几个最优化概念:凸/非凸函数、梯度下降、随机梯度下降、原始对偶问题。

机器学习与深度学习

周志华的西瓜书《机器学习》

自然语言处理

《统计自然语言处理基础》、王斌老师翻译的中文版《信息检索导论》

使用Java实现智能对话机器人

需求:使用Java实现智能对话机器人

技术点 & 开发工具: Myeclipse、JDK1.8、HTTPS、JSON、jsp、图灵

开发步骤:

1:首先注册图灵开发者账号,并创建机器人,如下图

2:创建机器人之后,获取机器人APIKEY值

3:新建一个maven project,如下图:

4:导入解析json格式的jar包

<dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20180130</version>
</dependency>

5:添加如下测试代码:

public class TalkUtil {//机器人对应的APIkey--图灵平台获取public static final String API_KEY = "922a7bfffcd9463fbafa58d88d64d988";public static final String API_URL = "http://www.tuling123.com/openapi/api";/*** @param msg 需要发送的消息* @return*/private String setParameter(String msg) {try {return API_URL + "?key=" + API_KEY + "&info=" + URLEncoder.encode(msg, "utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}return null;}/*** 拿到消息回复的内容* @param json 请求接口得到的JSON* @return text的部分*/private String getString(String json){try {JSONObject object = new JSONObject(json);return object.getString("text");} catch (JSONException e) {e.printStackTrace();}return null;}/*** 提供对外公开的方法用于最终拿到机器人回复的消息* @param msg 传入你需要发送的信息* @return 机器人对你的回复*/public String getMessage(String msg){return getString(getHTML(setParameter(msg)));}private String getHTML(String url) {StringBuffer buffer = new StringBuffer();BufferedReader bufferedReader = null;try {URL u = new URL(url);HttpURLConnection connection = (HttpURLConnection) u.openConnection();bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));String line = "";while ((line = bufferedReader.readLine()) != null) {buffer.append(line);}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally {try {bufferedReader.close();} catch (IOException e) {e.printStackTrace();}}return buffer.toString();}public static void main(String[] args) {TalkUtil util = new TalkUtil();Scanner scanner = new Scanner(System.in);//控制台输入while (scanner.hasNext()){//直接输出机器人的回复System.err.println("Ta 对你说 ----> " + util.getMessage(scanner.nextLine()));}}}

6:控制台测试结果,进行智能聊天对话:

有兴趣的大佬,可以添加前端聊天窗口页面,进行聊天

原文发布于微信公众号 - 码神联盟(lkchatspace)

原文发表时间:2018-08-18

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/72632.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何用Java实现智能对话机器人

如何用Java实现智能对话机器人 前言 这个时代人工智能如此火爆&#xff0c;身为圈内人我们应该多少对他有些了解&#xff0c;为了靠他近一些今天我们动手用Java实现一个智能聊天机器人&#xff0c;当然此处我们需要依赖图灵机器人的Api 点我进入图灵机器人官网注册帐号 这篇博…

智能对话机器人开发实战案例剖析(2)

一、前言 本文是《智能对话机器人开发实战案例剖析》系列的第2篇&#xff1a;智能对话机器人分类标准&#xff0c;旨在对智能对话系统的进行一个系统性的介绍。相关内容已同步录制成视频课程&#xff0c;发布在网易云课堂。 二、正文 2.1 分类标准 2.2 闲聊型智能问答机器人…

智能对话机器人实战开发(1)- 体系结构和分类

一、前言 人工智能时代&#xff0c;以智能对话机器人为最核心的技术应用方向之一&#xff0c;实现人机之间通过自然语言的沟通和交流&#xff0c;是智能人机对话机器人的核心目标之一。尤其是Google Assistant 语音助手近期的卓越表现&#xff0c;如何开发智能对话机器人系统&…

智能对话机器人开发实战案例剖析(3)

一、前言 本文是《智能对话机器人开发实战案例剖析》系列的第3篇&#xff1a;智能对话机器人典型案例&#xff0c;旨在对智能对话系统的进行一个系统性的介绍。相关内容已同步录制成视频课程&#xff0c;发布在CSDN学院。 二、正文 2.1 国内外主要智能音箱产品 2.2 智能音箱…

数据可视化工具是什么

智能手机的普及&#xff0c;互联网使用的增长&#xff0c;机器学习的快速发展&#xff0c;以及云计算技术和物联网的不断采用&#xff0c;都在推动全球数据可视化市场。此外&#xff0c;对智能工厂的日益倾向&#xff0c;以及视觉分析、信息可视化和科学可视化在小型和大型组织…

如何进行数据可视化图表设计?

如何进行数据可视化图表设计&#xff1f; 对数据人来说&#xff0c;数据可视化是分析理解数据&#xff0c;并最终呈现数据的必修课。本文从以下几个点来说明&#xff0c;如何进行数据可视化图表设计。1、数据背后的故事2、充分理解数据3、多种图表类型设计指南 1数据背后的故…

优秀的数据可视化,原来是这样做的!

大数据时代&#xff0c;数据驱动决策。处理不好庞大、复杂的数据&#xff0c;其价值将大打折扣。 可以想象一本没有图片的教科书。没有图表、图形或是带有箭头和标签的插图或流程图&#xff0c;那么这门学科将变得更加难以理解。人类天生就是视觉动物&#xff0c;而视觉效果对于…

数据可视化是什么,数据可视化怎么做最好?

数据可视化都有一个共同的目的&#xff0c;那就是准确而高效、精简而全面地传递信息和知识。可视化能将不可见的数据现象转化为可见的图形符号&#xff0c;能将错综复杂、看起来没法解释和关联的数据&#xff0c;建立起联系和关联&#xff0c;发现规律和特征&#xff0c;获得更…

如何完美实现数据可视化?

为什么要可视化数据? 在工作中&#xff0c;无论你在哪个场景&#xff0c;你都会接触到数据&#xff0c;需要表达出来。数据可视化的作用是通过结合图表和数据来更好地传达业务信息。目前&#xff0c;大多数公司正在逐步从传统的流程管理过渡到基于数据的管理。数据可视化可以…

为什么会看到IP地址相同的两台电脑?附查询自己公网IP的方法

为什么会看到IP地址相同的两台电脑&#xff1f; 我们会询问这个问题的原因是因为我们经常看到在两个不同的地方可以配置相同的类似于192.168.xxx.xxx的IP地址&#xff0c;或者在实验室机房里可以随意配置类似于192.168.xxx.xxx的IP地址&#xff0c;这时我们就会产生疑问了&…

今天排查一个网关IP冲突的问题

问题概述&#xff1a;近几天&#xff0c;无线wifi发现总是出现随机断网&#xff0c;ping包外网发现不定时的丢包十几个&#xff0c;后排查是不是DNS出现了问题&#xff0c;经查外线不通时ping网关也能通&#xff0c;其实这是一种假像&#xff0c;当我打开网关的web地址时&#…

同一个ip,不同端口号,session失效

背景 我有两个工程projectA、projectB&#xff0c;projectA放在TomcatA中&#xff0c;projectB放在TomcatB中&#xff0c;TomcatA、TomcatB在一台server上。 工程都映射的根路径&#xff0c;不用project名字就可以访问&#xff0c;如下 http://ip1:7777/ http://ip1:8080/ …

chatgpt赋能python:Python如何取出表格中的两列数据

Python 如何取出表格中的两列数据 在数据处理过程中&#xff0c;我们常常需要从表格中提取某些特定的数据。Python提供了许多方便的库来处理和操作数据&#xff0c;其中pandas库是一个非常常用的库。在本文中&#xff0c;我们将会介绍如何使用pandas库来取出表格中的两列数据。…

chatgpt赋能python:Python如何创建表格

Python如何创建表格 在数据处理和数据可视化中&#xff0c;表格是常见的一种数据展示方式。而Python作为一种非常强大的编程语言&#xff0c;自然也可以用来创建各种各样的表格。接下来&#xff0c;我们就来介绍一下Python如何创建表格。 Python创建表格的库 Python创建表格…

chatgpt赋能python:Python操作表格的全面指南

Python操作表格的全面指南 表格是一种非常实用的数据展示方式&#xff0c;程序员在处理数据以及展示数据时也经常使用表格。Python提供了多个强大的库操作表格&#xff0c;本文将为你介绍一些常见的Python操作表格的方式——包括读取、写入、处理和操作。 读取表格 Python提…

chatgpt赋能python:Python做表格的优势及应用

Python做表格的优势及应用 在数据处理与可视化的领域&#xff0c;表格是最常见的形式之一&#xff0c;也是经常被用来展示数据的有效方式。Python作为一种流行的编程语言&#xff0c;在数据处理方面有着强大的功能&#xff0c;同时也提供了许多生成表格的库与工具。本文将会介…

【Unity 导出 WebGL 通过Linux宝塔的 Nginx 连接数据库】使用 UnityWebRequest 与 WebAPI (php服务) 执行mysql命令

【Unity 导出 WebGL 通过Linux宝塔的 Nginx 连接数据库】使用 UnityWebRequest 与 WebAPI {php服务} 执行mysql命令 前言方案一&#xff0c;MySql.Data.MySqlClient前置准备数据库部分代码部分结论 方案二&#xff1a;创建中间php服务&#xff0c;通过UnityWebRequest调用&…

小白的GPT入门指南 - 技巧篇

前言 要想用好ChatGPT, 还是有一些技巧可以让我们是事半功倍的, 下面就列出常见的一些技巧和工具 翻译 ChatGPT母语是英语, 所以最符合逻辑的自然是英语提问, 当遇到英语能力不足的咱们, 一款优秀的翻译软件就显得格外重要 这里推荐deepl, 翻译会比某道翻译更加精准. Promp…

包学习(一款安卓端小学到高中全部课程精讲APP)

简介 【包学习】是一款拥有小学至高中九个学年的全套学习资料的APP&#xff0c;名校名师重点、难点精讲 软件简单介绍 软件分为首页、必刷课、动态教辅、在学、我的五大模块。 进入软件会让你选择对应的年级&#xff0c;小编这里就以高三年级课程给大家截图演示&#xff0…

学堂在线课程字幕下载

事情起因 学堂在线 工程伦理课程 在线学习,没有课件, 考试的时候可能会不方便,做一解决此类问题 字幕下载 合成为Txt 文件或者word 文件以供学习使用 事情经过 首先想到的是自己写一个爬虫 怕区相应的字幕, 发现是文本形式存储和, 很好做, 但是涉及到登录的cookie信息, 暂时…