文档章节

AIML实现智能聊天机器人

北极心
 北极心
发布于 2017/06/02 15:57
字数 813
阅读 538
收藏 2
点赞 0
评论 0

最近在做个智能聊天机器人『我知道大家肯定要说对接图灵,小黄鸡啊,但是有时候我们需要根据自己的业务和专业领域内的一些东西做智能聊天,那这里又有人说了,用他们的添加词库啊,那我想说的对应自己业务相关的一些动态数据你咋添加.......自行补脑吧,如果您有啥高见欢迎反馈』,经过google baidu的一番搜索发现了一个aiml的智能聊天机器人,当然也在国内找到了一些教程,都写的非常好^_^

首先给大家提供一些资源的下载地址

首先是AIML网址:http://www.alicebot.org/

以及相关下载地址和文档:

http://www.alicebot.org/downloads/programs.html

http://www.geocities.ws/phelio/chatterbean/

另外附上chatterbean的源码 http://pan.baidu.com/s/1o7QwsFS,下载后解压在Sources目录里面

Sources目录里面的源码可直接加入你自己工程,就两个依赖jar  bsh.jar  junit.jar

maven pom如下

        <dependency>
		    <groupId>bsh</groupId>
		    <artifactId>bsh</artifactId>
		    <version>2.0b4</version>
		</dependency>
		<dependency>
		    <groupId>junit</groupId>
		    <artifactId>junit</artifactId>
		    <version>4.12</version>
		</dependency>

加入源码和配置好jar后你会发现有个类JavascriptInterpreter报错,原因是

import netscape.javascript.JSObject 这个引入找不到,这里有两种解决方法

第一种是直接干掉这个类,对,你没看错就是干掉JavascriptInterpreter这个类

干掉这个类之后你会发现ChatterBean这个类报错那么解决方法就是注释掉

//private final Interpreter javascript = new JavascriptInterpreter(this);  66行

//context.property("javascript.interpreter", javascript);   154行

然后就一切正常咯

最后工程就是这样的。

第二种是你去找对应的jar加入,话说是jdk里面,我是第一种方案,所以就没管了

 

到此我们的准备工作已经完成了

然后开始我们的编码了

一共两个类

public class AliceBotMother {

	private ByteArrayOutputStream gossip;

	public void setUp() {
		gossip = new ByteArrayOutputStream();
	}

	public String gossip() {
		return gossip.toString();
	}

	public AliceBot newInstance() throws Exception {
		Searcher searcher = new Searcher();
		AliceBotParser parser = new AliceBotParser();
		
		System.out.println(ClassLoader.getSystemResource("Bots/Alice/").getPath());
		
		AliceBot bot = parser.parse(
				new FileInputStream(ClassLoader.getSystemResource("Bots/context.xml").getPath()), 
				new FileInputStream(ClassLoader.getSystemResource("Bots/splitters.xml").getPath()),
				new FileInputStream(ClassLoader.getSystemResource("Bots/substitutions.xml").getPath()), 
				searcher.search(ClassLoader.getSystemResource("Bots/Alice/").getPath(), "/*.aiml"));
		
		Context context = bot.getContext();
		context.outputStream(gossip);
		return bot;
	}
}

需要注意的就是这些文件的路径

我这就是这么摆放的,仅供参考。

这些文件在http://pan.baidu.com/s/1o7QwsFS 这个里面下载后都有 您可以下载后瞄一下

第二个类,这个类就是我们的测试类咯,可以说是异常的简单

public class Test {
	public static void main(String[] args) throws Exception {
		AliceBotMother mother = new AliceBotMother();
		mother.setUp();
		AliceBot bot = mother.newInstance();

        //这里你可以自己搞个循环然后输入
		String reMsg = "推荐";
		//reMsg = AnalyzerHelp.spaceStr(reMsg);这里分词大家就自己折腾吧我使用的是lucene
		//System.out.println("分词结果:" + reMsg);
		String result = bot.respond(reMsg);
		System.out.println("AI:" + result); 
	}
}

 

哈哈,看看效果吧

 

没太多时间排版,凑合看下吧。。。。。

这里只是个简单的例子后续的自己业务一些相关动态数据包括一些标签扩展(标签类只需扩展TemplateElement即可)感兴趣的同学可以研究一下。

 

容我吟诗一首:

写字楼里写字间,写字间里程序员。

程序人员写程序,又拿程序换酒钱。

 

欢迎讨论交流哈,我邮箱:lwcloud@vip.qq.com

 

© 著作权归作者所有

共有 人打赏支持
北极心
粉丝 35
博文 39
码字总数 16464
作品 0
深圳
后端工程师
AI人工智能-Python实现人机对话

【前言】   AI   在人工智能进展的如火如荼的今天,我们如果不尝试去接触新鲜事物,马上就要被世界淘汰啦~   本文拟使用Python开发语言实现类似于WIndows平台的“小娜”,或者是IOS下的...

柒小栈主 ⋅ 2017/07/27 ⋅ 0

使用Python创建AI比你想象的轻松

您可能对AI领域,主要开发阶段,成就,结果和产品使用感兴趣。有数百个免费源和教程描述使用Python的AI。但是,没有必要浪费你的时间看他们。这里是一个详细的指南,你需要知道在使用Python构...

Lunaqi ⋅ 2017/07/27 ⋅ 0

关于机器人【小香蕉】

代码分享 http://git.oschina.net/for-1988/osc-robot 说明 关于这两天osc上出现的自动回复机器人【小香蕉】是我提供给大家娱乐的一个东西,这就和Simsimi差不多的东西,有的人觉得比较好玩,...

ForEleven ⋅ 2013/08/02 ⋅ 53

微软沈向洋等人长文:从Eliza到小冰,社交对话机器人的机遇和挑战

  选自arXiv   机器之心编译   机器之心编辑部      近日,微软全球执行副总裁沈向洋、微软研究院首席研究员何晓东、微软(亚洲)互联网工程院副院长李迪(小冰项目负责人)共同提...

机器之心 ⋅ 01/11 ⋅ 0

使用图灵机器人快速开发智能聊天机器人

聊天机器人现在已经成为一个流行的话题,无论微信公共帐号,还是qq聊天机器人,可以智能交互聊天的机器人帐号越来越多,相信很多开发人员也想自己实现这样一个好玩的智能聊天机器人。 下面就...

maolv11 ⋅ 2014/06/17 ⋅ 0

创建聊天机器人:无需编码顶尖工具和框架!

  【IT168 评论】2017年,我们看到了关于聊天机器人前所未有的大肆宣传,这要归功于微软的机器人“Tay”和Facebook将chatbot功能整合到Messenger中的决定。   使用人工智能和自然语言交流...

it168网站 ⋅ 2017/12/18 ⋅ 0

人机交互智能问答机器人的实现

人机交互智能问答机器人,这句话所包含的信息量和技术过于庞大,这里为大家进行拆分解释,并以图灵机器人平台为例,通俗的介绍其技术实现原理。 第一,人机交互。在计算机专业术语中,是指系...

maolv11 ⋅ 2014/08/12 ⋅ 0

520 | 机器人竟然对我表白了?!用Python假装自己有女朋友(附代码)

     授权转载自大数据分析和人工智能   作者:小马哥 爱数圈联合创始人   520这一天,也是网络情人节。就在今天,python聊天机器人竟然对我表白了,并且还自动地和微信里面的所有人...

大数据文摘 ⋅ 05/20 ⋅ 0

聊天机器人资料汇总

整理者:我爱机器学习 本文将持续更新,烦请留言告知遗漏的高质量资源 Awesome Chatbot 链接:https://github.com/shaohua/awesome-chatbot DEEP LEARNING FOR CHATBOTS 链接:DEEP LEARNING...

我爱机器学习 ⋅ 2016/11/01 ⋅ 0

微软推出 AI 开发免费电子书,手把手教你构建智能聊天机器人

雷锋网 AI 研习社按,日前,微软推出 AI 开发者免费电子书,教导大家利用微软 AI 平台开发智能聊天机器人。雷锋网看到,该电子书不长,核心内容共有四十多页,其中涵盖大量代码,相信对于 AI...

思颖 ⋅ 06/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从零开始搭建Risc-v Rocket环境---(1)

为了搭建Rocke环境,我买了一个2T的移动硬盘,安装的ubuntu-16.04 LTS版。没有java8,gcc是5.4.0 joe@joe-Inspiron-7460:~$ java -version程序 'java' 已包含在下列软件包中: * default-...

whoisliang ⋅ 22分钟前 ⋅ 0

大数据学习路线(自己制定的,从零开始学习大数据)

大数据已经火了很久了,一直想了解它学习它结果没时间,过年后终于有时间了,了解了一些资料,结合我自己的情况,初步整理了一个学习路线,有问题的希望大神指点。 学习路线 Linux(shell,高并...

董黎明 ⋅ 28分钟前 ⋅ 0

systemd编写服务

一、开机启动 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件。 如果你想让该软件开机启动,就执行下面的命令(以httpd.service为例)。 ...

勇敢的飞石 ⋅ 30分钟前 ⋅ 0

mysql 基本sql

CREATE TABLE `BBB_build_info` ( `community_id` varchar(50) NOT NULL COMMENT '小区ID', `layer` int(11) NOT NULL COMMENT '地址层数', `id` int(11) NOT NULL COMMENT '地址id', `full_......

zaolonglei ⋅ 39分钟前 ⋅ 0

安装chrome的vue插件

参看文档:https://www.cnblogs.com/yulingjia/p/7904138.html

xiaoge2016 ⋅ 42分钟前 ⋅ 0

用SQL命令查看Mysql数据库大小

要想知道每个数据库的大小的话,步骤如下: 1、进入information_schema 数据库(存放了其他的数据库的信息) use information_schema; 2、查询所有数据的大小: select concat(round(sum(da...

源哥L ⋅ 今天 ⋅ 0

两个小实验简单介绍@Scope("prototype")

实验一 首先有如下代码(其中@RestController的作用相当于@Controller+@Responsebody,可忽略) @RestController//@Scope("prototype")public class TestController { @RequestMap...

kalnkaya ⋅ 今天 ⋅ 0

php-fpm的pool&php-fpm慢执行日志&open_basedir&php-fpm进程管理

12.21 php-fpm的pool pool是PHP-fpm的资源池,如果多个站点共用一个pool,则可能造成资源池中的资源耗尽,最终访问网站时出现502。 为了解决上述问题,我们可以配置多个pool,不同的站点使用...

影夜Linux ⋅ 今天 ⋅ 0

微服务 WildFly Swarm 管理

Expose Application Metrics and Information 要公开关于我们的微服务的有用信息,我们需要做的就是将监视器模块添加到我们的pom.xml中: 这将使在管理和监视功能得到实现。从监控角度来看,...

woshixin ⋅ 今天 ⋅ 0

java连接 mongo伪集群部署遇到的坑

部署mongo伪集群 #创建mongo数据存放文件地址mkdir -p /usr/local/config1/datamkdir -p /usr/local/config2/data mkdir -p /usr/local/config3/data mkdir -p /usr/local/config1/l......

努力爬坑人 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部