最近在做个智能聊天机器人『我知道大家肯定要说对接图灵,小黄鸡啊,但是有时候我们需要根据自己的业务和专业领域内的一些东西做智能聊天,那这里又有人说了,用他们的添加词库啊,那我想说的对应自己业务相关的一些动态数据你咋添加.......自行补脑吧,如果您有啥高见欢迎反馈』,经过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如下

bsh

bsh

2.0b4

junit

junit

4.12

加入源码和配置好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

aiml java_AIML实现智能聊天机器人相关推荐

  1. Python基于AIML智能聊天机器人实战(4)- 机器人自学习能力集成

    一.前言 本文是<Python基于AIML智能聊天机器人实战>第四篇:AIML自学习能力集成: AIML是智能对话机器人具有里程碑意义的开源项目,曾斩获多项国际大奖,是基于检索技术的闲聊式 ...

  2. Python基于AIML智能聊天机器人实战视频教程-张子良-专题视频课程

    Python基于AIML智能聊天机器人实战视频教程-244人已学习 课程介绍         Python基于AIML的智能聊天机器人开发实战课程,包括典型案例.基础理论.功能拓展.源码框架解读四个方 ...

  3. 机器人编程python代码_自己动手开发智能聊天机器人完全指南(附python完整源码)...

    一.前言 人工智能时代,开发一款自己的智能问答机器人,一方面提升自己的AI能力,另一方面作为转型AI的实战练习.在此把学习过程记录下来,算是自己的笔记. 二.正文 2.1 下载pyaiml 下载pya ...

  4. 聊天机器人mysql数据_自己动手开发智能聊天机器人完全指南(附完整源码)

    一.前言 本文是<自己动手开发智能聊天机器人完全指南(附完整源码)>的第二篇,也是21天实战人工智能系列<知识图谱完全项目案例剖析>里面的知识图谱应用的案例.前文中实现了一个最 ...

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

    日前,微软推出 AI 开发者免费电子书,教导大家利用微软 AI 平台开发智能聊天机器人.该电子书不长,核心内容共有四十多页,其中涵盖大量代码,相信对于 AI 初学者来说,这将是一本很有用的实战教程. ...

  6. 好想学python机器人_【Python成长之路】从零学GUI -- 制作智能聊天机器人

    [写在前面] 鹏哥:最近老惹小燕同学不开心,结果都没人陪我聊天了.哎,好无聊呀! 肥宅男:女朋友什么的最无聊了,还没我的图灵机器人好玩. 鹏哥:图灵?好巧,和我部门同名. [效果如下] [实现过程] ...

  7. python微信集成_Python微信公众号后台开发005:集成智能聊天机器人​

    ​给公众号集成一个智能聊天机器人 一.前述 ChatterBot是一个基于机器学习的聊天机器人引擎,构建在python上,主要特点是可以自可以从已有的对话中进行学(jiyi)习(pipei). 二.具 ...

  8. 【Python成长之路】从零学GUI -- 制作智能聊天机器人

    [写在前面] 鹏哥:最近老惹小燕同学不开心,结果都没人陪我聊天了.哎,好无聊呀! 肥宅男:女朋友什么的最无聊了,还没我的图灵机器人好玩. 鹏哥:图灵?好巧,和我部门同名. [效果如下] [实现过程] ...

  9. JAVASCRIPT实现基于文本的自动智能聊天机器人

    原创作者:一粒马豆&冰豆小李 首先让我们来看看这样一种语言现象: 研表究明,汉字序顺并不定一影阅响读. Aoccdrnig to a rscheearch at an Elingsh uine ...

  10. 微软Skype智能聊天机器人现登陆Mac平台和网页版

    在微软Build 2016大会上公布的Skype智能聊天机器人现在正式登陆Mac平台和网页版Skype服务.包括Murphy.Summarize.Bing Images.Bing News.Bing ...

最新文章

  1. 虚拟机下Ubuntu没有GUI图形界面,解决方法
  2. Centos-7.4_安装_Redis_4.0.8
  3. java 从控制台读取_转载 java从控制台读取输入的方法
  4. 113_Power Pivot 销售订单之重复购买率及购买间隔天数相关
  5. yarn:hadoop YarnChild OutOfMemoryError Java heap space || GC Overhead limit
  6. Cloudflare泄露客户数据,IT部门可从中吸取什么教训?
  7. CRUD搬砖两三年了,怎么阅读Spring源码?
  8. 51单片机实现简单计算器
  9. iso27001标准动态
  10. 计算大数阶乘--VB Script 版
  11. 太阳系八大行星直径、质量、与太阳距离参数
  12. java实现断点续播_vue-video-player 断点续播的实现
  13. 如何写论文的report(一)
  14. 【Windows】hiberfil.sys相关操作
  15. 提交代码遇到的问题remote: Support for password authentication was removed on August 13, 2021.
  16. ARM与Intel芯片性能不严谨比较
  17. 同一个电脑安装多个jdk版本
  18. 每日一词20190316——GIS矢量数据和栅格数据对比
  19. Google C++编程风格
  20. 数据库的增删改查加遍历

热门文章

  1. js实现身份证验证功能
  2. 下载离线地图地形数据库(3D离线地图开发)
  3. Win10安装乌班图18双系统
  4. Docker容器解决没有Vim命令
  5. abaqus算出来的转角单位是什么_abaqus单位等等
  6. c 语言游戏代码大全,给我提供个小游戏的C 语言代码
  7. Java开源框架集(全)
  8. android常用代码合集,Android开发常用经典代码段集锦
  9. CAD中 OLE不能旋转_工作常备的天正CAD技巧都在这里啦(附教程)
  10. 使用模块优化工资计算器