精华内容
下载资源
问答
  • 对话机器人是目前人工智能发展的一个主流方向, 智能多轮对话机器人案例剖析(附源码)包含三个完整案例,体验式教学; 一套开源框架,所学即所用;
  • 智能多轮对话机器人案例剖析(附源码) 三个完整案例,体验式教学; 一套开源框架,所学即所用;
    智能多轮对话机器人案例剖析(附源码)—269人已学习 
    课程介绍    
    201805041337592318.jpg
        智能多轮对话机器人案例剖析(附源码) 三个完整案例,体验式教学; 一套开源框架,所学即所用;
    课程收益
        掌握任务式,多轮对话机器人的原理
        学完就能够从事简单场景的多轮对话机器人的开发。
    讲师介绍
        张子良更多讲师课程
        数据产品讲师,人工智能探索者,15年一线IT研发经验,国内顶级互联网行业工作背景,社区达人,著有长篇连载《胖子哥的大数据之路》,《数据实践之美》和《运营前线》共同作者。
    课程大纲
      第1章:基础理论
        1.智能对话机器人概述  14:46
        2.多轮对话机器人完整案例演示  15:25
        3.多轮对话机器人开发环境安装部署  11:04
      第2章:实战案例
        1.实战案例一:智能声控机器人  12:04
        2.实战案例二:智能闹钟  10:56
        3.实战案例三:航空订票机器人  14:04
      第3章:源码剖析
        1.多轮对话机器人框架源码解析一  21:49
        2.多轮对话机器人框架源码解析二  10:54
      第4章:能力拓展
        1.航空订票机器人功能拓展  9:11
    大家可以点击【查看详情】查看我的课程
    展开全文
  • 开源对话机器人开发框架 CommuneChatbot <https://github.com/thirdgerb/chatbot> 发布 v0.1.0 版了。1. 项目介绍"Commune" 是 "亲切交谈" 的意思。CommuneChatbot 这个项目则是想通过 “对话” 的形式提供一...

    28e81a2d715ac2951b35de9db4651c46.png

    开源对话机器人开发框架 CommuneChatbot <https://github.com/thirdgerb/chatbot> 发布 v0.1.0 版了。

    1. 项目介绍

    "Commune" 是 "亲切交谈" 的意思。CommuneChatbot 这个项目则是想通过 “对话” 的形式提供一种人与机器的交互方式。在这个思路中,“对话”不是目的,而是“操作机器”的手段。

    简单来说,CommuneChatbot 是一个 :

    • 个人开源项目
    • 开发语言使用 PHP 7.2
    • 可对接语音、即时通讯、公众号、智能音箱等平台,搭建对话机器人
    • 最大特点是 多轮对话管理引擎, 用于解决 复杂多轮对话问题
    • 基于 Swoole + Hyperf 提供协程化的高性能服务端,提供工作站
    • 使用自然语言单元(Rasa,百度UNIT等)作为中间件,接入自然语言解析能力
    • 提供工程化 (模块/可配置/组件化) 的开发框架

    目标是能够像开发网站、触屏App一样开发复杂的对话式应用。

    项目相关的网址:

    • 项目网站:<https://communechatbot.com/>
    • 开发手册:<https://communechatbot.com/docs> (随时更新)
    • 主框架仓库:<https://github.com/thirdgerb/chatbot>
    • 工作站仓库:<https://github.com/thirdgerb/studio-hyperf>

    项目目前的Demo有:

    • 网页版 Demo : <https://communechatbot.com/>
    • 微信公众号 Demo : 搜索公众号 “CommuneChatbot”
    • 百度智能音箱 : 对音箱说 “打开三国群英传” 或 “打开方向迷宫”

    推荐文档:

    • 复杂多轮对话问题
    • 应用生命周期★
    • 多轮对话生命周期★
    • 快速教程★
    • 应用设想:对话式视频社交应用

    如有兴趣, 可以加入讨论 QQ 群: 907985715 ,或是参与项目 ISSUE :

    • CommuneChatbot Issue
    • StudioHyperf Issue

    2. 快速安装

    如果想要快速尝试这个项目,可以只安装主框架。先要检查依赖:

    • PHP >= 7.2
    • 基本 PHP 扩展
    • Intl 扩展(用于实现国际化)
    • Composer

    然后在命令行中安装:

    $ git clone https://github.com/thirdgerb/chatbot.git
    $ cd chatbot
    $ composer install
    

    如果 Composer 速度太慢, 建议使用 阿里云的Composer镜像 。 完成安装后,运行

    $ php demo/console.php
    

    查看Demo。更多内容请查看 快速教程, 或 搭建应用 。

    3. 开发样例

    使用 CommuneChatbot 项目开发多轮对话机器人,一个极简的例子是这样的:

    /**
     * 定义一个 Hello world 的上下文
     * @property string $name userName
     */
    class HelloWorldContext extends OOContext
    {
        // 上下文的介绍
        const DESCRIPTION = 'hello world!';
    
        // 对话单元 "start"
        public function __onStart(Stage $stage) : Navigator
        {
            return $stage->buildTalk()
    
                // 发送消息给用户
                ->info('hello world!!')
    
                // 进入 "askName" 对话单元
                ->goStage('askName')
        }
    
        // 对话单元 "askName"
        public function __onAskName(Stage $stage) : Navigator
        {
            return $stage->buildTalk()
    
                // 询问用户姓名
                ->askVerbal('How may I address you?')
    
                // 等待用户的消息
                ->hearing()
    
                // 接受到用户的消息, 符合答案的格式
                ->isAnswer(function(Answer $answer, Dialog $dialog) {
    
                    // 将答案赋值给上下文记忆
                    $this->name = $answer->toResult();
    
                    // 进入对话单元 "menu"
                    return $this->goStage('menu');
                })
    
                // 结束用 Hearing API 定义对话逻辑
                ->end();
        }
    
        // 对话单元 "menu"
        public function __onMenu(Stage $stage) : Navigator
        {
            // 用 "menu" 工具构建一个 对话单元组件
            $menu = new Menu(
                // 菜单向用户的提问
                'What can I help you?',
    
                // 给用户回答的建议
                [
                    // 进入 "play game" 的上下文
                    PlayGameContext::class,
    
                    // 进入 "order drink" 的上下文
                    OrderDrinkContext::class,
    
                    // 进入 "simple chat" 的上下文
                    SimpleChatContext::class,
                ]
            );
    
            return $stage
    
                // 当目标上下文结束后, 触发这个回调方法
                ->onFallback(function(Dialog $dialog) {
                    // 重复当前 Menu 对话
                    return $dialog->repeat();
                });
    
                // 加载 stage component
                ->component($menu);
        }
    }
    

    多轮对话上下文是完全可编程的,既可以通过代码来定义,也可以基于配置文件动态生成。

    4. 关于作者

    CommuneChatbot 项目由 ThirdGerb 基于个人兴趣设计并开发。

    作者是一名服务端工程师,对于对话交互形式的应用有很强的兴趣,但想要开发的应用往往卡在复杂多轮对话问题上,而找到的解决方案还不够理想,因此自己动手开发了这个项目。

    作者关于对话机器人的各种思考和观点,谨供参考。如果发现错谬之处,烦请批评指教,非常感谢!如有兴趣,可以加入讨论 QQ 群: 907985715

    展开全文
  • 人工智能--智能多轮对话机器人案例剖析(附源码) 数据产品讲师,人工智能探索...

    扫码下载「CSDN程序员学院APP」,1000+技术好课免费看

    APP订阅课程,领取优惠,最少立减5元 ↓↓↓

    订阅后:请点击此处观看视频课程

     

    视频教程-人工智能--智能多轮对话机器人案例剖析(附源码)-NLP

    学习有效期:永久观看

    学习时长:121分钟

    学习计划:3天

    难度:

     

    口碑讲师带队学习,让你的问题不过夜」

    讲师姓名:张子良

    研究员/技术专家/教授

    讲师介绍:数据产品讲师,人工智能探索者,15年一线IT研发经验,国内顶级互联网行业工作背景,社区达人,著有长篇连载《胖子哥的大数据之路》,《数据实践之美》和《运营前线》共同作者。

    ☛点击立即跟老师学习☚

     

    「你将学到什么?」

    对话机器人是目前人工智能发展的一个主流方向, 智能多轮对话机器人案例剖析(附源码)包含三个完整案例,体验式教学; 一套开源框架,所学即所用;

     

    「课程学习目录」

    第1章:基础理论
    1.智能对话机器人概述
    2.多轮对话机器人完整案例演示
    3.多轮对话机器人开发环境安装部署
    第2章:实战案例
    1.实战案例一:智能声控机器人
    2.实战案例二:智能闹钟
    3.实战案例三:航空订票机器人
    第3章:源码剖析
    1.多轮对话机器人框架源码解析一
    2.多轮对话机器人框架源码解析二
    第4章:能力拓展
    1.航空订票机器人功能拓展

     

    7项超值权益,保障学习质量」

    • 大咖讲解

    技术专家系统讲解传授编程思路与实战。

    • 答疑服务

    专属社群随时沟通与讲师答疑,扫清学习障碍,自学编程不再难。

    • 课程资料+课件

    超实用资料,覆盖核心知识,关键编程技能,方便练习巩固。(部分讲师考虑到版权问题,暂未上传附件,敬请谅解)

    • 常用开发实战

    企业常见开发实战案例,带你掌握Python在工作中的不同运用场景。

    • 大牛技术大会视频

    2019Python开发者大会视频免费观看,送你一个近距离感受互联网大佬的机会。

    • APP+PC随时随地学习

    满足不同场景,开发编程语言系统学习需求,不受空间、地域限制。

     

    「什么样的技术人适合学习?」

    • 想进入互联网技术行业,但是面对多门编程语言不知如何选择,0基础的你
    • 掌握开发、编程技术单一、冷门,迫切希望能够转型的你
    • 想进入大厂,但是编程经验不够丰富,没有竞争力,程序员找工作难。

     

    「悉心打造精品好课,3天学到大牛3年项目经验」

    【完善的技术体系】

    技术成长循序渐进,帮助用户轻松掌握

    掌握NLP知识,扎实编码能力

    【清晰的课程脉络】

    浓缩大牛多年经验,全方位构建出系统化的技术知识脉络,同时注重实战操作。

    【仿佛在大厂实习般的课程设计】

    课程内容全面提升技术能力,系统学习大厂技术方法论,可复用在日后工作中。

     

    「你可以收获什么?」

    掌握任务式,多轮对话机器人的原理

    学完就能够从事简单场景的多轮对话机器人的开发。

     

    展开全文
  • 导语:多轮对话聊天机器人,作为人工智能的典型应用场景,也是一项极具挑战的任务,不仅涉及多方面异构知识的表示、抽取、推理和应用,还涉及包括自然语言理解在内的其他人工智能核心...
        

    640?wx_fmt=gif



    导语:多轮对话聊天机器人,作为人工智能的典型应用场景,也是一项极具挑战的任务,不仅涉及多方面异构知识的表示、抽取、推理和应用,还涉及包括自然语言理解在内的其他人工智能核心技术的综合利用


    简介与相关技术调研

    目前,多轮对话聊天机器人已经产生了很多应用,有萌妹子小冰,有佛法大师贤二,也有应用在各行各业的智能客服。多轮对话聊天机器人,作为人工智能的典型应用场景,也是一项极具挑战的任务,不仅涉及多方面异构知识的表示、抽取、推理和应用(如语言知识、领域知识、常识知识等),还涉及包括自然语言理解在内的其他人工智能核心技术(如用户画像、对话管理等)的综合利用。

    640


    实现对话机器人常见的方法,可以从最简单的“关键字匹配”,到最前沿的深度学习“端到端生成”应答。分别应用到不同的场景:闲聊、任务(垂直领域)、问答(QA)。

    640

     

    设计一个聊天机器人

    要想机器能与人产生对话,那么第一步,就必须先“理解”人说话的内容,对于机器来说,“理解”就是把自然语言转成具有结构化的表达。机器解析结构化表达的内容,根据知识库(可能是QA对、可能是if-then规则、可能是业务流程等)获取相应的回答。


    如下图,一次对话,就是一个会话的接入,语义理解就是理解人说话的内容,应答引擎就是根据理解的内容做出的应答。

    640


    1、语义理解

    建立语言模型

    因为人类语言的本质是为了传递人与人之间的信息(意思)。那么,我们可以定义出N种意思分类(意思的种类越多,机器人的理解能力越强)。所以,一个语言模型就是一个多标签的数学模型,把自然语言转成具有结构化的表达。有以下三个步骤:

    1)文本预处理:切词、词向量、词义消解等(这里内容很大,不详细介绍)。

    2)样本准备:抽取一些经典的发言,在我们的myModel平台进行标注。

    640


    3)序列模型:多标签模型,如下图就是一种CNN与LSTM组合的神经网络方法。

    640


    尽管已经在一个垂直的领域,而且看似简单的三步,但是要做一个好的语义理解模型,是非常难的,例如一个小改动导致预测结果差异,可分两种:

    1)一种是句中的词语位置变了、辅助词变了,如:“这就是给我的回复?”与“你们就这么回复我?”。

    2)一种是增加一些无关核心内容的词,如:“但是我后面没开挂都被制裁”与“但是我后面没开挂都被制裁我就想不通了”。

    备注:增加更多有标注的样本量、基于大规模数据训练的模型(如BERT等)二次训练、神经网络增加attention、结合知识库等,都是一些优化的手段。

     

    语言模型在系统中的应用

    理解用户说话的意思,我们分为了三层:第一层,是理解当前聊天处于哪一个话题,有没有切换话题;第二层,是理解具体的内容,含有意图与实体;第三层,是理解当前发言的情感,跟踪用户的情绪变化。


    1) 话题模型(Topic模型)

    在我们系统中,它是一个分类模型,与后面的应答引擎是有对应的关系,根据不同的话题,进入不同的业务流程,所以模型的标签的业务的分类。


    2) 意图理解(Act-Slot模型、Value模型)

    A.   Act-Slot模型

    在我们系统中,它是一个多标签模型,相同一句话,不同的角度,有不同的理解。所以,模型的标签是意图与实体类型,如下图的“inform,QQ”。

    640

    例如,在具体的项目中,我们定义了:

    640

        

    B.    Value模型

    在我们系统中,获取到用户发言的Act-Slot之后,根据Act-Slot的意图,得到其相对应的实体值。总共设计了三种方法以获取不同类型的Value,方法如下:

    • 正则表达式:如抽取时间、等级等有一定格式的实体。

    • 词库对比:如安图恩等游戏专有词汇。

    • LSTM模型:当句式中不明显表达实体时,将通过模型分到6类中:

      • ENV:涉及到电脑环境相关信息。

      •  MAPID:涉及到地图相关信息。

      • ROLE:涉及到角色相关信息。

      • TEAM:涉及到组队相关信息。

      •  LOGIN:涉及到登录相关信息。

      • EQUIP:涉及到装备相关信息。


    备注:并非所有聊天机器人都这么设计,有些系统会把意图作为一个模型,实体与value作为一个模型。


    3) 情感模型

    在我们系统中,它是一个分类模型,把用户的发言分为了以下几种不同级别的情绪(标签):脏话、生气、平和、赞扬。

     

    2、应答引擎

    定义业务描述语言

    为了能快速接入各种服务,基于XML描述语言,定义了一套业务流程的描述语言。总共分为三层,最底层是基础流程控制单元,如分支if、循环while、顺序sequence、并行parallel;第二层,是每个话题都需要的通用组件,如询问QQ号、游戏名、情绪安抚等;最顶层是具体的业务应用服务,如装备找回流程、被盗处理流程等。

    640

       

    例子:获取QQ号与大区号流程。

    640

     

    业务流程控制引擎

    如下图所示,有Task1到Task5,共5个业务流程(业务应用),这些业务流程可以使用上述描述语言刻画出来。而下图中涉及到的为上述语言的解析过程。


    话题切换监听器:作为旁路分类模型,用于跟踪聊天话题的切换。以用户发言为输入,输出1、2、3、4、5,分别代表Task1,Task2 …. Task5。(用户每次输入,都会有一次判断,反映话题是否有变化与切换到哪一个Task)


    会话信息:表示在对话当抽取出来的上下文信息,局部信息表示在本Task可见,全局信息表示所有Task可见。


    状态:表示Task运行状态。而流程中断的位置,并非所有位置都可以中断,如下图标记红点的是可被中断(当运行到有标记红的地方,就会请求“话题切换监听器”,当前是否有话题变化)。

    •  挂起:表示当前流程暂停(如下图,P2表示Task1中的第二个点挂起)

    • 未激活:“-”表示该Task没有启动过。

    • 激活:Running表示正处于该Task的流程中。

    • 结束:Close表示该Task已结束。

     

    640

    备注:每一个红点的地方,都可能由于用户发言导致切换到另一个Task流程中。会话开始时,会根据“起始问题识别”,得到需要走哪一个Task,作为起始Task。在起始Task流程中,如果遇到红点的地方,并且话题切换监听到需要转到另外的Task,刚切换到新的Task流程,新流程走完后再回到切换话题的断点处,继续原流程一直走完。


    一个业务流程例子

    例子:假设有四个业务流程Task,每个流程都根据流程控制单元画出相应的流程图。

    • Task1为“处罚查询”流程。

    • Task2为“处罚申诉”流程。

    • Task3为“修改密码”流程。

    • Task4为“实名验证”流程。

    备注:每个Task都可以单独由“起始问题识别”触发,也可以如下例子嵌套对话。

    640

     

    TP小天

    对话是一种比网页或APP更自由的表达形式,用户有了主动表达诉求的空间,可以实现有别于网页或APP的一些特殊功能:用户安全教育、舆论监控、信息收集。


    根据上述的机器人设计方法,我们设计了TP小天,用户可以通过游戏安全中心公众号,咨询游戏安全相关的信息。如下图所示,已经接入了处罚查询、申诉、举报、帐号冻结等游戏安全功能与话题。

    640

     

    在实战中,一个可运营的聊天机器人,还会涉及到很多其它的内容,如何提升语义理解的丰富性、大样本推荐标注、FAQ应答、快速可配置修正、对话生成多样性、闲聊等等。


    640?wx_fmt=gif


    展开全文
  • 对话机器人 多轮对话While you can easily back up your text messages to your computer so that you don’t lose them, sometimes a text message conversation is so important that you also might need a paper...
  • 对话机器人 多轮对话“I don’t feel it’s my job to insulate my children from the world, but rather it’s to be the best custodian of their future selves I can be. Most of the time that means preparing...
  • 多轮对话对于目前的聊天机器人来说依然是一个难题。而指代消解是有希望帮助解决这个问题的一个...](https://blog.csdn.net/blmoistawinde/article/details/81782971)】来写一个“能多轮对话的问答对话机器人”demo吧。
  • 向AI转型的程序员都关注了这个号????????????机器学习AI算法工程 公众号:datayxChatbot_CN是一个基于第三代对话系统的多轮对话机器人项目,旨在于开发一个结...
  • 使两个机器人的相互对话生成语料,文本大小为1.03m,用于闲聊机器人的训练数据,使用 # 作为两个多轮对话之间的分隔符
  • 天气查询机器人:多轮对话示例程序
  • 【NLP】自己搭一个多轮对话聊天机器人(附实现源码)01 项目框架02 模型2.1 粗排2.1.1BM252.1.1 Bool检索2.2 精排意图识别03 API交互04 微信前端 本文的内容如下 本篇介绍一个检索类型的多轮问答系统/聊天机器人,...
  • 对话机器人综述

    万次阅读 多人点赞 2019-12-17 22:47:54
    综述 从应用的角度来说,对话机器人可以分为三个类别,分别是闲聊机器人,qa机器人以及任务型机器人。本系列主要介绍闲聊机器人。...一般来说问答机器人是不涉及多轮,主要是针对某一个领域的问答。构建一个问答...
  • 百度UNIT 机器人多轮对话技能创建以及API调用

    千次阅读 热门讨论 2019-03-01 11:10:13
    百度UNIT 机器人多轮对话技能创建以及API调用 基于百度UNIT2.0 版本,实现简单的多轮人机对话功能 创建机器人必备条件 确定有哪些技能 例如:查询天气、订票、讲故事等,以畅越冰激凌套餐营销话术为例 ...
  • 基于自然语言理解与机器学习的聊天机器人,支持多用户并发及自定义多轮对话
  • Chat - 基于自然语言理解与机器学习的聊天机器人,支持多用户并发及自定义多轮对话
  • 滴滴智能客服团队基于滴滴积累的海量交通出行场景数据,研发智能客服机器人(FAQ问答,多轮对话,智能反问,情感安抚等)、机器人平台、预测推荐(猜你想问,智能路由,IVR菜单预测等)、人工客服智能辅助(智能...
  • TaskBot:多轮对话,解决特定场景问题 ChatBot:多轮对话,不解决问题 QABot: 应对FAQ场景 典型场景:input:奥巴马是哪里人? bot:美国人 ;End 实现方式: 1、KBQA、KGQA。基于图谱的可以通过知识图谱推理答案。...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 179
精华内容 71
关键字:

多轮对话机器人