从零开始,开发一款聊天机器人

作者/分享人:李烨
现就职于微软(Microsoft),曾在易安信(EMC)和太阳微系统(Sun Microsystems)任软件工程师。先后参与聊天机器人、大数据分析平台等项目的开发。微信公众号:yuesiyuedu

聊天机器人:一种能和人类对话的计算机程序,你不用进行命令行或者图形界面的操作,只需要和它说人话就好了,它不但听得懂,还能回答。为什么机器能够听懂人类的自然语言呢?简单来说,因为背后有多种机器学习模型,分析理解用户输入的自然语言,并根据开发者设定的某种查询机制在预置的知识库中获取相应答案,再将查询结果构造成人类语言回复给用户。

听起来很高大上的一种计算机程序啊,什么机器学习(Machine Learning)啊,自然语言理解啊(Natural Language Understanding)都没有学过的人,也能开发自己的聊天机器人吗?当然可以!

本场 Chat 就是向没有 AI 知识背景和开发经历的用户介绍利用现有工具和方法,开发自己的聊天机器人的方法。并提供开源实例。只需要最基本能的编程技巧,能收发 Http Request/Response,就具备开发条件啦!

实录提要:

  • 如何让这个机器人进行无监督的学习,让它越服务越智能?
  • LUIS 能否本地化部署或者在不联网的情况下使用?
  • 这个和图灵机器人之类的 API 的区别是什么?有没有本地的 NLP 类库可调用?
  • 现在的聊天机器人主要是基于监督学习的方法,还是强化学习?
  • 非面相任务的问答,上下文用什么样的方法解决?小冰是怎样解决上下文问题的?
  • 请问不同领域的聊天机器人就只是知识库的不同吗?有没有技术上的差异?
  • LUIS 的输出格式是什么?能举个例子吗?
  • 如果比较好奇意图提取和实体抽取,是否有什么开源项目推荐研究?
已有364人预订
预订达标
文章出炉
交流日期
     
07月25日
08月08日
08月15日 20:30
查看文章评论/提问
波叽波叽啵😮一口盐汽水喷死你
一篇使用别人API的文章,也能出来卖?Gitchat的质量也就这样了。
李烨: 本文中提到的调用api包括语言理解模块和知识库。其中知识库用的是是数据库。您所说的调用api指的应该不是数据库吧?我已经另开了一个chat,专门讲如何从代码级别实现语言理解模块,LU可以不用调别人的API,自己实现是有可能的,欢迎报名。
李烨: http://gitbook.cn/m/mazi/activity/59951ffe247bc7740ddd0fe8?giftToken=3e1c6ef0-8307-11e7-ac5b-db0660836634&sut=45028d40831011e7ac5bdb0660836634&from=timeline&isappinstalled=0 欢迎对于用别人的api感到不满,想自己实现语言理解功能的同学报名。
Wang Gang
写的真好,谢谢!希望能增加一些扩展阅读链接,链接到其他实现方式、各种方式的比较和评测。再次谢谢!
一步
这聊天机器人每次问问题,都相当于一个新的问题。如果我一个问题问了10遍,那么它就会回答10遍。我的问题是如何让这个机器人进行无监督的学习的,让它越服务越智能
李烨: 无监督学习是一类模型的统称。在开发机器人过程中通过聚类等方法分析log属于对无监督学习的应用。你想想中的把一个chatbot扔在那里它自己越变越好的技术目前不存在。reinforcement learning和dual learning有一定的自动化演进能力。不过解释任何一个都够一篇文章了。
XP
写的挺好,适合小白
unclexiao
目前有个微信机器人的开源项目很火:Wechaty(https://github.com/Chatie/wechaty),使用了只需要下载后部署,再简单配置一下即可。 除了聊天还能做很多事情(点歌、保存记录),那么这个Wechaty项目,底层原理和李老师文章里表述的是一样的么?
bazyli
麻烦问一下luis 能否本地化部署?或者在不联网的情况下使用?
李烨: 目前luis仅支持在线。我的另一个chat讲了如何通过自己训练模型进行意图识别和实体提取。
unclexiao
如果非得拿个开源库来解决问题,可否多给几个典型的让大家选择呢,比如我不用国外的服务可以怎样,百度和阿里都提供了AI服务,相比之下有何优势和劣势呢? 如果我不用关系型数据库可否用文档型/对象型数据库?
李烨: 这个问题实录中回答了
木木木木
请问如何处理一些上下文的问题。例如问天气,用户回答了城市,可能过了几轮对话,用户又要问个跟城市实体有关的问题,如何避免不再问一次你在哪个城市。
李烨: 文章里有介绍。你可以“城市”作为上下文指定实体存储起来,没有新的城市名输入之前,一直保留原城市名。
灌汤包
现在天猫上是不是很多客服都用的机器人?比如我前两天咨询一个型号的热水器,他总是回复我安装环境,我换一种问法问,他也回复我相同的内容,换个问题问就说 不清楚 或者 不知道 感觉用户体验很差,还不如不回复。
李烨: 这是一个非常常见的问题。当“人工智能”太多的时候直接用来代替人工怎主要起的是反作用。提高AI本身是一方面,如何应用是另一方面。在一个不高的质量下,提供人工辅助或者半人工,比全代替人工更可取
zilean
代码怎么运行呢,提示没有web.config?
李烨: web.config都是个人的key。你可以用visual studio生成一个,添上自己的key。
你可能还喜欢
Service Mesh 在华为公有云的实践
田晓亮
利用 OpenCV 和 Caffe,根据大合影构造“平均脸”
李烨
从零开始,搭建 AI 音箱 Alexa 语音服务
Mike
Web 安全恩仇录:再谈逻辑漏洞
肖志华
TensorFlow 分布式原理与应用实践
刘光聪
编程和数学基础不佳如何入门人工智能?
赵宁|Neal
微信扫描登录