精华内容
下载资源
问答
  • 小学英语对话教学步骤和方1.pdf
  • 教育资料
  • 五个步骤构建深度学习的课堂教学——以“角色对话”一课为例.pdf
  • 在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...
  • 不论是实时的视频连麦教学,还是在线白板,对于开发者来讲,都有一定的开发难度。所以本文作者将利用第三方的 SDK 来快速实现一个简单的在线教室。 随着技术和基础设施的进一步演进,线下的教育、会议已有很大比重...

    作者 maverick、buhe,欢迎在 RTC 开发者社区与他们直接交流

    不论是实时的视频连麦教学,还是在线白板,对于开发者来讲,都有一定的开发难度。所以本文作者将利用第三方的 SDK 来快速实现一个简单的在线教室。

    随着技术和基础设施的进一步演进,线下的教育、会议已有很大比重演进为线上的教育和会议,突破了空间的桎梏。需求的多样性爆发增长和场景的进一步拓宽也对技术产生了非常大的挑战,有别于传统视频会议的方案,现有方案更多考虑兼容性、平台多样性、移动化等,在产品的链路上也变的愈加丰富,从实时到录制、在到后期的信息检索和分析。在绝大部分在线教育、视频会议场景中,实时音视频互动与白板都是必备功能,然而实时音视频互动与白板都是需要很长时间和较高研发门槛才能实现的,尤其是实时场景下的内容记录和后续的回放更是颇有挑战。

    本系列的第一篇文章,笔者分享了在 Web 浏览器端,结合声网Agora SDK 的实时音视频互动能力与 White SDK 的在线白板能力,来实现一个简单但实用的在线教室。

    现在市场上的在线教室

     

    ff.png

     

     

    市面上所有的知名在线教育公司的教室都是由 RTC、白板、实时消息三部分组成。

    • 实时音视频:远程上课、师生互动的基石。
    • 白板:老师上课、讲解要点的重要载体。
    • 实时消息:师生信息交流的平台。

    从功能角度来看,就是 RTC + 白板 + 实时消息。从底层技术来看,就是实时信令+实时音视频。

    快速实现一个实用的在线教室

    整个开发流程分为两个部分。首先是引入音视频 SDK 并实现 Web 浏览器端 Demo。然后,我们在此基础上引入白板 SDK,实现在线教室中的白板功能。

    一、引入音视频 SDK

    音视频方案选择声网作为本次的技术方案,先从 www.agora.io/cn/download… 下载声网最新的 SDK 备用。

     

    ee.png

     

     

     

    1.我们选择【视频通话/视频直播 SDK】的 Web 版本进行下载,本教程写作时最新版本是 v2.6.0 版本。下载下来进行解压,其中有这样一些文件:

    ├── AgoraRTCSDK-2.6.0.js
    ├── assets
    │   ├── mute48.png
    │   └── sound48.png
    ├── index.html
    └── vendor
       ├── bootstrap.min.css
       └── jquery.js
    
    2 directories, 6 files
    复制代码

    2.其中 AgoraRTCSDK-2.6.0.js 是 SDK 主体文件,附带还有一个简单的 Demo 工程,我们可以用 Chrome 浏览器打开 index.html 文件,浏览器显示如下页面

     

    dd.png

     

     

    3.需要一个声网的 AppId 才可以进行下一步试验,去 dashboard.agora.io/cn/signup/ 注册一个项目然后创建一个测试项目,就可以获取到这个 AppId 了。

    4.去官网注册好之后,我们回到这个页面,复制 AppId 到这个输入框内,首先点击 Join 按钮,加入该 AppId 指定的测试项目的某个 channel ,channel 默认是 1000 ,这里我们使用默认值。

    5.点击后会提示是否可以使用麦克风和摄像头权限,这是为了保护用户的隐私,这里我们点击【允许】。我们发现本地摄像头的内容显示在了屏幕的右侧。

    另外再打开一个浏览器窗口,重复 4 ~ 5 步骤,比较有趣的事情就发生了,我们在两个浏览器窗口上分别看到了两个视频画面,其实一个是本地画面,一个远端的画面。我们可以想象成一对一教学的场景,老师和学生可以互相看到对方的脸听到对方的声音。

    二、引入白板 SDK

    白板方案选择 White SDK 作为本次的技术方案,文档中心:developer.herewhite.com/#/

    1.我们用 CDN 引入的方式引入白板 SDK 的 JavaScript 文件和 css 文件。在当前的 index.html 文件的 head 标签中加入

    <title>Agora Web Sample</title>
    <!-- 新加入代码开始 -->
    <link rel="stylesheet" href="https://sdk.herewhite.com/white-web-sdk/2.0.0-beta.3.css">
    <script src="https://sdk.herewhite.com/white-web-sdk/2.0.0-beta.3.js"></script>
    <!-- 新加入代码结束 -->
    复制代码

    2.加入一个特定的白板需要 uuid 和 token 两个参数,我们在 <body> 标签中放置两个 input 用于输入这两个参数,加入一个按钮用于加入房间,在原有的 button 下面加入如下代码:

    <button id="unpublish" class="btn btn-primary" onclick="unpublish()">Unpublish</button>
    <!-- 新加入代码开始 -->
    Room UUID: <input id="room_uuid" type="text" size="32"></input>
    Room Token: <input id="room_token" type="text" size="32"></input>
    <button id="join_room" class="btn btn-primary" onclick="join_room()">Join Whiteborad</button>
    <!-- 新加入代码结束 -->
    复制代码

    3.在原有 javascript 代码中加入 join_room 函数,逻辑也是比较简单的:

    1. 创建 WhiteWebSdk 对象
    2. 调用 joinRoom 方法加入某个特定的白板,这个白板由前面两个 input 框中的参数确定,uuid 为全局确定一个白板,token 则是加入这个白板的必备验证信息,当调用成功结束后得到 room 对象,room 对象持有对白板操作的一系列 API ,这里把他 room 绑定在 id 为 whiteboard 的 div 上。
    function join_room() {
      document.getElementById("join_room").disabled = true;
      var whiteWebSdk = new WhiteWebSdk();
      whiteWebSdk.joinRoom({
        uuid: room_uuid.value,
        roomToken: room_token.value,
      }).then(function(room) {
        room.bindHtmlElement(document.getElementById('whiteboard'));
      });
    }
    复制代码
    1. 我们在 body 中加入一个 <div> 用来容纳白板吧,白板成功加入后就会显示在这个 400px 宽、300px 高的 <div> 中了。
    <body>
    <!-- 新加入代码开始 -->
    <div id="whiteboard" style="width: 400px; height: 300px;"></div>
    <!-- 新加入代码结束 -->
    复制代码

    5.步骤 3 中的 uuid 和 room token 是从哪里来的呢?首先请前往 console.herewhite.com 注册一个开发者账户,你就获取到一个 sdk token ,通过 sdk token 就可以调用 REST API 创建一个房间了。我们在 javascript 文件的开头加上如下代码。

    1. 通过 REST API  cloudcapiv4.herewhite.com/room 创建一个房间,返回值就是熟悉的 uuid 和 room token 了
    2. 我们把他们赋给前面的两个 input 框,方便查看和记录。
    <script language="javascript">
    // 新加入代码开始
    var sdkToken = 'WHITEcGFydG5lcl9pZD1DYzlFNTJhTVFhUU5TYmlHNWJjbkpmVThTNGlNVXlJVUNwdFAmc2lnPTE3Y2ZiYzg0ZGM5N2FkNDAxZmY1MTM0ODMxYTdhZTE2ZGQ3MTdmZjI6YWRtaW5JZD00JnJvbGU9bWluaSZleHBpcmVfdGltZT0xNTY2MDQwNjk4JmFrPUNjOUU1MmFNUWFRTlNiaUc1YmNuSmZVOFM0aU1VeUlVQ3B0UCZjcmVhdGVfdGltZT0xNTM0NDgzNzQ2Jm5vbmNlPTE1MzQ0ODM3NDYzMzYwMA';
    
    var url = 'https://cloudcapiv4.herewhite.com/room?token=' + sdkToken;
    var requestInit = {
      method: 'POST',
      headers: {
        "content-type": "application/json",
      },
      body: JSON.stringify({
        name: '我的第一个 White 房间',
        limit: 100, // 房间人数限制
      }),
    };
    
    fetch(url, requestInit)
      .then(function (response) {
        return response.json();
      })
      .then(function (json) {
        room_uuid.value = json.msg.room.uuid;
        room_token.value = json.msg.roomToken;
        console.log("room uuid", json.msg.room.uuid, json.msg.roomToken);
      })
    //  新加入代码结束
    复制代码

    6.重新用浏览器打开 index.html ,上半部分的空白则是白板的部分,我们点击【Join Whiteborad】按钮,成功加入白板后就可以使用鼠标在白板上进行涂写了。

    三、Demo 效果

    1.加入前

     

    cc.png

     


     

    2.加入后

     

    bb.png

     

     

     

    3、体验互动课堂

    1.我们打开浏览器的另一个窗口,将上一窗口中的 room uuid 和 room token 复制并覆盖新窗口中的值,点击新窗口中的【Join Whiteborad】按钮,则两个窗口加入到同一块白板中,任何一个窗口的涂写都瞬间在另一个窗口中显现。

    2.我们看看最终的效果吧,相信在调整了样式之后,基于 Agora 和 Netless 强大的云端能力,这样的在线教室已经具有产品就绪的能力。

     

    aa.png

     

     

    最后,我们已经将该 Demo 的完整代码上传至 Github,欢迎大家 fork 和修改,实现出你独特业务场景的产品:

    github.com/netless-io/…

    本系列的下一期我们将带来实时在线教室的录制和回放分享,敬请期待。

     

    展开全文
  • 原文链接 作者丨戴音培、虞晖华、蒋溢轩、唐呈光、李永彬、孙健 单位丨阿里巴巴-达摩院-小蜜Conversational AI团队,康奈尔大学...第一代对话系统主要是基于规则的对话系统,例如 1966 年 MIT 开发的 ELIZA 系统 [2] 是

    原文链接

    作者丨戴音培、虞晖华、蒋溢轩、唐呈光、李永彬、孙健
    单位丨阿里巴巴-达摩院-小蜜Conversational AI团队,康奈尔大学

    1. 对话管理模型背景

    从人工智能研究的初期开始,人们就致力于开发高度智能化的人机对话系统。艾伦·图灵(Alan Turing)在 1950 年提出图灵测试 [1],认为如果人类无法区分和他对话交谈的是机器还是人类,那么就可以说机器通过了图灵测试,拥有高度的智能。

    第一代对话系统主要是基于规则的对话系统,例如 1966 年 MIT 开发的 ELIZA 系统 [2] 是一个利用模版匹配方法的心理医疗聊天机器人,再如 1970 年代开始流行的基于流程图的对话系统,采用有限状态自动机模型建模对话流中的状态转移。它们的优点是内部逻辑透明,易于分析调试,但是高度依赖专家的人工干预,灵活性和可拓展性很差。

    随着大数据技术的兴起,出现了基于统计学方法的数据驱动的第二代对话系统(以下简称统计对话系统)。在这个阶段,增强(强化)学习也开始被广泛研究运用,其中最具代表性的是剑桥大学 Steve Young 教授于 2005 年提出的基于部分可见马尔可夫决策过程(Partially Observable Markov Decision Process , POMDP)的统计对话系统 [3]。该系统在鲁棒性上显著地优于基于规则的对话系统,它通过对观测到的语音识别结果进行贝叶斯推断,维护每轮对话状态,再根据对话状态进行对话策略的选择,从而生成自然语言回复。

    POMDP-based 对话系统采用了增强学习的框架,通过不断和用户模拟器或者真实用户进行交互试错,得到奖励得分来优化对话策略。统计对话系统是一个模块化系统,它避免了对专家的高度依赖,但是缺点是模型难以维护,可拓展性也比较受限。

    近些年,伴随着深度学习在图像、语音及文本领域的重大突破,出现了以运用深度学习为主要方法的第三代对话系统,该系统依然延续了统计对话系统的框架,但各个模块都采用了神经网络模型。

    由于神经网络模型表征能力强,语言分类(理解)或生成的能力大幅提高,因此一个重要的变化趋势是自然语言理解的模型从之前的产生(生成)式模型(如贝叶斯网络)演变成为深度鉴别(判别)式模型(如 CNN、DNN、RNN)[5],对话状态的获取不再是利用贝叶斯后验判决得到,而是直接计算最大条件概率。在对话策略的优化上大家也开始采用深度增强(强化)学习模型 [6]。

    另一方面,由于端到端序列到序列技术在机器翻译任务上的成功,使得设计端到端对话系统成为可能,Facebook 研究者提出了基于记忆网络的任务对话系统 [4],为研究第三代对话系统中的端到端任务导向型对话系统提出了新的方向。总的来说,第三代对话系统效果优于第二代系统,但是需要大量带标注数据才能进行有效训练,因此提升模型的跨领域的迁移拓展能力成为热门的研究方向。

    常见的对话系统可分为三类:聊天型,任务导向型和问答型。聊天型对话的目标是要产生有趣且富有信息量的自然回复使得人机对话可以持续进行下去 [7]。问答型对话多指一问一答,用户提出一个问题,系统通过对问题进行解析和知识库查找以返回正确答案 [8]。任务导向型对话(以下简称任务型对话)则是指由任务驱动的多轮对话,机器需要通过理解、主动询问、澄清等方式来确定用户的目标,调用相应的 API 查询后,返回正确结果,完成用户需求。

    通常,任务型对话可以被理解为一个序列决策过程,机器需要在对话过程中,通过理解用户语句更新维护内部的对话状态,再根据当前的对话状态选择下一步的最优动作(例如确认需求,询问限制条件,提供结果等等),从而完成任务。

    任务型对话系统从结构上可分成两类,一类是 pipeline 系统,采用模块化结构 [5](如图 1),一般包括四个关键模块:

    • 自然语言理解(Natural Language Understanding, NLU)
      对用户的文本输入进行识别解析,得到槽值和意图等计算机可理解的语义标签。
    • 对话状态跟踪(Dialog State Tracking, DST)
      根据对话历史,维护当前对话状态,对话状态是对整个对话历史的累积语义表示,一般就是槽值对(slot-value pairs)。
    • 对话策略(Dialogue Policy)
      根据当前对话状态输出下一步系统动作。一般对话状态跟踪模块和对话策略模块统称为对话管理模块(Dialogue manager, DM)。
    • 自然语言生成(Natural Language Generation, NLG)
      将系统动作转换成自然语言输出。

    这种模块化的系统结构的可解释性强,易于落地,大部分业界的实用性任务型对话系统都采用的此结构。但是其缺点是不够灵活,各个模块之间相对独立,难以联合调优,适应变化的应用场景。并且由于模块之间的误差会层层累积,单一模块的升级也可能需要整个系统一起调整。

    在这里插入图片描述
    任务型对话系统的另一种实现是端到端系统,也是近年来学界比较热门的方向 [9][10][11](如图 2),这类结构希望训练一个从用户端自然语言输入到机器端自然语言输出的整体映射关系,具有灵活性强、可拓展性高的特点,减少了设计过程中的人工成本,打破了传统模块之间的隔离。然而,端到端模型对数据的数量和质量要求很高,并且对于填槽、API 调用等过程的建模不够明确,现阶段业界应用效果有限,仍处在探索中。
    在这里插入图片描述
    随着用户对产品体验的要求逐渐提高,实际对话场景更加复杂,对话管理模块也需要更多的改进和创新。传统的对话管理模型通常是建立在一个明确的话术体系内(即先查找再问询最后结束),一般会预定义好系统动作空间、用户意图空间和对话本体,但是实际中用户的行为变化难测,系统的应答能力十分有限,这就会导致传统对话系统可拓性差的问题(难以处理预定义之外的情况)。

    另外,在很多的真实业界场景,存在大量的冷启动问题,缺少足量的标注对话数据,数据的清洗标注成本代价高昂。而在模型训练上,基于深度增强(强化)学习的对话管理模型一般都需要大量的数据,大部分论文的实验都表明,训练好一个对话模型通常需要几百个完整的对话 session,这样低下的训练效率阻碍了实际中对话系统的快速开发和迭代。

    综上,针对传统对话管理模型的诸多局限,近几年学界和业界的研究者们都开始将焦点放在如何加强对话管理模型的实用性上,具体来说有三大问题

    • 可拓展性差
    • 标注数据少
    • 训练效率低

    我们将按照这三个方向,为大家介绍近期最新的研究成果。

    2. 对话管理模型研究前沿介绍

    2.1 对话管理模型痛点一:可拓展性差

    如前文所述,对话管理器由两部分组成:对话状态跟踪器(DST)和对话策略(dialog policy)。

    传统的 DST 研究中,最具代表的是剑桥大学的学者们在 2017 年提出的神经信度跟踪模型(neural belief tracker, NBT)[12],利用神经网络来解决单领域复杂对话的对话状态跟踪问题。NBT 通过表征学习(representation learning)来编码上轮系统动作、本轮用户语句和候选槽值对,在高维空间中计算语义的相似性,从而检测出本轮用户提到的槽值。因此 NBT 可以不依赖于人工构建语义词典,只需借助槽值对的词向量表示就能识别出训练集未见但语义上相似的槽值,实现槽值的可拓展。

    后续地,剑桥学者们对 NBT 进一步改进 [13] [44],将输入的槽值对改成领域-槽-值三元组,每轮识别的结果采用模型学习而非人工规则的方法进行累积,所有数据采用同一个模型训练,从而实现不同领域间的知识共享,模型的总参数也不随领域数目的增加而增加。

    在传统的 Dialogue Policy 研究领域中,最具代表性的是剑桥学者们 [6] [14] 提出的基于 ACER 方法的策略优化。通过结合 Experience replay 技巧,作者分别尝试了 trust region actor-critic 模型和 episodic natural actor-critic 模型,验证了 AC 系列的深度增强(强化)学习算法在样本利用效率、算法收敛性和对话成功率上都达到了当时最好的表现。

    然而传统的对话管理模型在可拓展性方面仍需改进,具体在三个方面:1)如何处理变化的用户意图,2)如何变化的槽位和槽值,3)如何处理变化的系统动作。

    变化的用户意图

    在实际应用场景中,时常会出现由于用户意图未被考虑到,使得对话系统给出不合理回答的情况。如图 3 所示的例子,用户的“confirm”意图未被考虑,这时就需要加入新的话术来帮助系统处理这样的情况。
    在这里插入图片描述
    一旦出现训练集未见的新用户意图时,传统模型由于输出的是表示旧意图类别的固定 one-hot 向量,若要包含新的意图类别,向量就需要进行改变,对应的新模型也需要进行完全的重训练,这种情况会降低模型的可维护性和可拓展性。

    论文 [15] 提出了一种“老师-学生”的学习框架来缓解这一问题,他们将旧模型和针对新用户意图的逻辑规则作为“老师”,新模型作为“学生”,构成一个“老师-学生”训练架构。

    该架构使用了知识蒸馏技术,具体做法是:对于旧的意图集合,旧模型的概率输出直接指导训练新模型;对于新增的意图,对应的逻辑规则作为新的标注数据来训练新模型。这样就使得在新模型不再需要与环境进行新的交互重新训练了。论文在 DSTC2 数据集上进行实验,首先选择故意去掉 confirm 这个意图,然后再将它作为新意图加入对话本体中,依次验证新模型是否具有很好的适应能力。

    图 4 是实验结果,论文新模型(即 Extended System)、直接在包含所有意图的数据训练的模型(即 Contrast System)和旧模型进行比较,实验证明新模型对新意图的识别正确率在不同噪声情况下都不错的扩展识别新意图的能力。
    在这里插入图片描述
    当然这种架构仍然需要对系统进行一定的训练,[16] 提出一种语义相似性匹配的模型 CDSSM 能够在不依赖于标注数据以及模型重新训练的前提下,解决用户意图拓展的问题。

    CDSSM 先利用训练集数据中用户意图的自然描述直接学习出一个意图向量(intent embedding)的编码器,将任意意图的描述嵌入到一个高维语义空间中,这样在测试时模型可以直接根据新意图的自然描述生成对应的意图向量,进而再做意图识别。

    在后面的内容我们可以看到,有很多提高可拓展性的模型均采用了类似的思想,将标签从模型的输出端移到输入端,利用神经网络对标签(标签命名本身或者标签的自然描述)进行语义编码得到某种语义向量再进行语义相似性的匹配。

    [43] 则给出了另外一种思路,它通过人机协同的方式,将人工客服的角色引入到系统线上运行的阶段来解决训练集未见的用户意图的问题。模型利用一个额外的神经判决器根据当前模型提取出来的对话状态向量来判断是否请求人工,如果请求则将当前对话分发给线上人工客服来回答,如果不请求则由模型自身进行预测。

    由于通过数据学习出的判决器有能力对当前对话是否包含新意图作一定的判断,同时人工的回复默认是正确的,这种人机协同的方式十分巧妙地解决了线上测试出现未见用户行为的问题,并可以保持比较高对话准确率。

    变化的槽位和槽值
    在多领域或复杂领域的对话状态跟踪问题中,如何处理槽位与槽值的变化一直是一个难题。对于有的槽位而言,槽值可能是不可枚举的(这里的不可枚举指的是槽值没有限制,或可取值过多),例如,时间、地点和人名,甚至槽值集合是动态变化的,例如航班、电影院上映的电影。在传统的对话状态跟踪问题中,通常默认槽位和槽值的集合固定不变,这样就大大降低了系统的可拓展性。

    针对槽值不可枚举的问题,谷歌研究者 [17] 提出了一个候选集(candidate set)的思路。对每个槽位,都维护一个有总量上限的候选集,它包含了对话截止目前最多个可能的槽值,并赋于每个槽值一个分数以表示用户在当前对话中对该槽值的偏好程度。

    系统先利用双向 RNN 模型找出本轮用户语句包含的中某个槽位的槽值,再将它和候选集中已有的槽值进行重新打分排序,这样每轮的 DST 就只需在一个有限的槽值集合上进行判决,从而解决不可枚举槽值的跟踪问题。针对未见槽值的跟踪问题,一般可以采用序列标注的模型 [18],或者选择神经信度跟踪器 [12] 这样的语义相似匹配模型。

    以上是槽值不固定的情况,如果对话本体中槽位也变化呢?论文 [19] 采用了槽位描述编码器(slot description encoder),对任何槽(已见的、未见的)的自然语言描述进行编码,得到表示该槽的语义向量,和用户语句一起作为输入送入 Bi-LSTM 模型中,采用序列标注的方式输出识别到的槽值,见图 5。
    在这里插入图片描述
    该论文做了一个可接受的假设,即任何槽的自然语言描述是很容易得到的,因此设计了一个在多个领域具有普适性的概念标注器(Concept Tagger)结构,槽描述编码器的实现是简单的词向量之和。实验表明,该模型能迅速适应新的槽位,相较于传统方法,该方法的可拓展性有很大的提升。

    随着近几年序列到序列技术的发展,直接利用端到端神经网络模型将 DST 的结果作为一个序列生成出来也是一个很热门的方向,常见的技巧如注意力机制(attention mechanism)、拷贝机制(copy mechanism)均可以用来提高生成效果。

    在著名的多领域对话 MultiWOZ 数据集上,来自港科大的 Pascale Fung 教授团队利用了拷贝网络,显著提高了不可枚举槽的识别精度 [20]。他们提出的 TRADE 模型如图 6 所示,每次检测槽值时,模型会将领域和槽位的不同结合进行语义编码作为 RNN 解码器的初始位置输入,解码器通过拷贝网络,直接将对应的槽值生成出来。
    在这里插入图片描述
    通过生成的方式,无论是不可枚举的槽值,还是变化的槽位的槽值,都能使用同一个模型完成,这可以做到领域间槽值信息的共享,也大大地提高了模型的泛化能力。

    最近一个明显的趋势是将多领域 DST 看作一个机器阅读理解的任务,将 TRADE 这种生成式模型改进成鉴别(判别)式模型 [45] [47]。不可枚举槽的追踪利用类似 SQuAD 的机器阅读理解任务 [46],从对话历史和提问中找到对应的 text span 作为槽值,而可枚举槽的追踪则转化成一个多项选择的机器阅读理解任务,从候选值中选择正确的值作为预测出的槽值。通过结合 ELMO、BERT 等深度上下文词表示,这些新提出的模型最终在 MultiWOZ 数据集上取得目前最好结果。

    变化的系统动作

    可拓展性问题的最后一个方面在于系统动作空间难以预定义。如图 7 所示,在设计一个电子产品推荐系统时,也许一开始并不会考虑到用户会问到如何升级产品操作系统这样的问题,但现实的情况是你无法限定用户只问系统能解决的问题。如果系统动作空间事先框定,在用户提出新问题时就会导致一连串的答非所问,导致极差的用户体验。
    在这里插入图片描述
    对此,我们需要考虑的是,如何设计更好的对话策略网络,使得系统能够快速的扩展新的动作。首先的尝试来自微软 [21],他们试图通过改变经典的 DQN 结构来实现系统在不受限动作空间上的增强学习。

    论文的对话任务是一个文字游戏闯关任务,每轮的动作是一句话,动作数目不定,选择不同的动作故事情节就会有不同的发展。作者提出了新的模型 Deep Reinforcement Relevance Network (DRRN),通过语义相似性匹配的方式将当前的对话状态和各个可选的系统动作一一匹配得到 Q 函数。

    具体来看:某轮对话时,每个长度不定的动作文本会经过神经网络编码得到固定长度的系统动作向量,故事背景文本经过另一个神经网络也得到固定长度的的对话状态向量,两个向量通过交互函数(如点积)生成最后的 Q 值。图 8 是论文设计模型结构。实验表明,在“Saving John”和“Machine of Death”两个文字游戏上 DRRN 比传统 DQN(使用 padding 技巧)的表现更加优异。
    在这里插入图片描述
    论文 [22] 则希望从对话系统整体的角度来解决这个问题,作者提出了增量学习对话系统(Incremental Dialogue System, IDS),如图 9 所示。
    在这里插入图片描述
    首先系统通过 Dialogue Embedding 模块对对话历史编码得到上下文向量,再利用一个基于 VAE 的 Uncertainty Estimation 模块根据上下文向量对当前系统能否给出正确回答进行一个置信度的评估。

    类似于主动学习的方式,若置信度高于阈值,则由对话管理器对当前所有可选动作一一打分,经过 softmax 函数预测出概率分布,若置信度低于阈值,则请求标注人员对本轮的回复进行标注(选择正确回复或创建新的回复),得到了新数据并入数据池里一起在线更新模型。

    通过这种人类教学(human-teaching)的方式,IDS 系统不仅解决了不受限动作空间的学习问题,还可以快速地收集高质量的数据,十分贴近实际生产应用。

    2.2 对话管理模型痛点二:标注数据少

    随着对话系统应用领域的多样化,对数据的需求也更加多样化,若想训好一个任务型对话系统,通常都需要尽可能多的该领域的数据,但一般来说,想要获取高质量的有标注数据的成本很高。为此学者们进行了各种研究尝试,主要可分为三种思路:1)用机器自动标注数据,降低数据标注的成本;2)对话结构挖掘,尽可能高效利用无标注数据;3)加强数据采集策略,高效获取优质的数据。

    机器自动标注

    由于人工标注数据的代价大、效率低,学者们希望通过机器辅助人工来标注数据,方法大致可分为两大类:有监督方法和无监督方法。论文 [23] 提出一种架构 auto-dialabel,用层次聚类的无监督学习方法将对话数据中的意图和槽位自动分组,从而实现对话数据的自动标注(类别的具体标签需要人工来定)。

    该方法是基于一个假设:相同意图的表达可能会共享相似的背景特征。模型提取的初始特征包括词向量、POS 标注、名词词簇和 LDA 四种特征。各个特征经由自编码器转成相同维度的向量后进行拼接,再采用 RBF(radial bias function)函数计算类间距离进行动态的层次聚类。距离最近的类将会自动合并,直到类间距离大于预设的阈值停止。模型框架如图 10 所示。
    在这里插入图片描述
    论文 [24] 则采用有监督聚类的方法来实现机器标注。作者将每条对话数据看作是一个个图节点,将聚类的过程看作是找出最小生成森林的过程。模型首先采用 SVM 在问答数据集上有监督训练出节点和节点之间的距离得分模型,再结合结构化模型和最小子树生成算法来将对话数据对应的类别信息作为隐变量推断出来,从而输出最佳的聚类结构表示用户意图类别。

    对话结构挖掘

    由于训练对话系统的高质量带标注数据稀缺,如何充分地挖掘无标注对话数据中隐含的对话结构或信息也成为了当今的研究热点之一,隐含的对话结构或信息在一定程度上有助于对话策略的设计和对话模型的训练。

    论文 [25] 提出了一种用变分循环神经网络(variational RNN, VRNN)的无监督方法自动学习对话数据中的隐藏结构。作者给出两种模型来获取对话中的动态信息:Discrete-VRNN 和 Direct-Discrete-VRNN。

    如图 11 所示, x t x_t xt是第 t 轮对话, h t h_t ht表示对话历史隐变量, z t z_t zt表示对话结构隐变量(一维 one-hot 离散变量)。两种模型的差别在于:对于 D-VRNN,隐变量 z t z_t zt取决于 h t − 1 h_{t-1} ht1;而对于 DD-VRNN,隐变量 z t z_t zt取决于 z t − 1 z_{t-1} zt1。VRNN 通过最大整个对话的似然值,利用 VAE 的一些常用技巧,估计出隐变量的后验概率分布。
    在这里插入图片描述
    论文实验表明 VRNN 要优于传统的 HMM 的方法,同时将对话结构的信息加入到奖励函数中,也有助于增强学习模型更快地收敛。图 12 是经过 D-VRNN 挖掘出的餐馆领域的隐变量转移概率的可视化图。
    在这里插入图片描述
    CMU 学者 [26] 也尝试利用 VAE 的方法,将系统动作作为隐变量推断出来直接用于对话策略的选择,这样就能减轻预定义系统动作不够全面带来的问题。

    如图 13 所示,为了简便起见,论文采用端到端的对话系统框架,基线模型是字级别的增强学习模型(即对话动作是词表中的词),通过 encoder 将对话历史编码,再利用 decoder 解码生成对话回复,奖励函数直接通过比对生成的对话回复语句和真实对话回复语句得到。
    在这里插入图片描述
    作者提出的隐动作模型和基线模型的区别是 encoder 到 decoder 之间多了离散隐变量的后验推理,对话动作由离散隐变量表示,没有任何人为的干预定义。最终实验证明,基于隐动作的端到端增强学习模型在语句生成的多样性和任务完成率上均超过了基线模型。

    数据采集策略

    最近,谷歌研究者们提出了一种快速收集对话数据的方法 [27](见图 14):首先利用两个基于规则的模拟器交互生成对话的 outline,即用语义标签表示的对话流骨架;然后利用模板将语义标签转写为自然语言对话;最后利用众包对自然语句进行改写,使得对话数据的语言表达更加丰富多样。这种反向收集数据方法不仅收集效率高,而且数据标注完整、可用性强,避免了收集领域数据的成本花费和大量的人工处理。
    在这里插入图片描述
    上述方法属于机器-机器(machine-to-machine, M2M)的数据收集策略:先生成覆盖面广的对话数据语义标签,再众包生成大量对话语料。其缺点在于,生成的对话相对局限,不能涵盖真实场景的所有可能性,并且效果依赖于模拟器的好坏。

    学界还有另外两种常用于对话系统数据收集的方法:人-机对话(human-to-machine, H2M)和人-人对话(human-to-human, H2H)。H2H 方法要求用户(由众包人员扮演)和客服(由另一众包人员扮演)进行多轮对话,用户负责基于某些指定的对话目标(例如买机票)提需求,客服负责标注对话标签和创建对话回复。这种模式被称为 Wizard-of-Oz 框架,对话研究的诸多数据集如 WOZ [5], MultiWOZ [28] 均采用此方式收集。

    H2H 方法可以得到最贴近实际业务场景的对话数据,但是需要为了不同的任务需要设计不一样的互动界面,而且需要耗费大量人力清理错误的标注,成本相当昂贵。H2M 的数据收集策略则是让用户和训练到一定程度的机器直接进行对话在线收集数据,并且利用增强学习不断改进对话管理模型,著名的 DSTC2&3 数据集就是通过这种方法收集得到。

    H2M 方法的效果总体比较依赖于对话管理模型的初始效果,并且在线收集的数据噪声较大,清理成本也会较高,影响模型优化的效率。

    2.3 对话管理模型痛点三:训练效率低

    随着深度增强学习在游戏围棋领域的大获成功,该方法在任务导向型对话领域也有广泛应用。例如论文 [6] 的 ACER 对话管理方法,使用了 model-free 深度增强学习,通过结合 Experience Replay、信度域约束、预训练等技巧,大大提高了增强学习算法在任务型对话领域的训练效率和稳定性。

    然而,简单地套用增强学习算法并不能满足对话系统的实际应用。这主要是因为对话领域不像游戏围棋那样有清晰的规则、奖励函数,动作空间简单明确,还有完美的环境模拟器可以生成数以亿计的高质量交互数据。

    对话任务中,一般包括了多样变化的槽位槽值和动作意图,这使得对话系统的动作空间急剧增大且难以预定义。传统扁平的增强学习(flat reinforcement learning)方法由于对所有的系统动作进行 one-hot 编码,会存在维度灾难,因此不再适用于处理动作空间非常大的复杂对话问题,为此学者们进行了诸多研究尝试,包括 model-free RL、model-based RL 和 human-in-the-loop 三个方向。

    Model-free 增强学习–分层增强学习

    分层增强学习(Hierarchical Reinforcement Learning, HRL)基于“分而治之”的理念,将复杂任务分解成多个子任务(sub-task),解决了传统扁平的增强学习的维度灾难。

    论文 [29] 首次将分层增强学习(HRL)应用到任务导向型对话领域,作者利用专家知识把复杂的对话任务在时序维度上拆分成多个子任务,例如一个复杂的旅行问题可以分解为订机票、订酒店、租车等子问题。根据这个拆分,他们设计了两个层次的对话策略网络,一个层次负责选择和安排所有的子任务,另一个层次负责具体子任务的执行。

    他们提出的对话管理模型(如图 15 所示)包括:1)顶层策略(top-level policy),用于根据对话状态选择子任务;2)底层策略(low-level policy),用于完成子任务的具体的某个对话动作;3)全局对话状态追踪,记录整体对话状态。
    在这里插入图片描述
    整个对话任务完成之后,顶层策略会收到外部奖励(external reward)。除此以外,模型还新增了内部评定模块(internal critic),用于根据对话状态估计子任务完成的可能性(子任务的填槽程度),底层策略会根据子任务完成程度收到内部评定模块的一个内部奖励(intrinsic reward)。

    面对复杂的对话问题,传统的增强学习的每一步决策都在选择基本系统动作,比如询问槽值或者确认约束,而分层增强学习的先通过顶层策略选择一大类基本动作的集合,再通过底层策略选择当前集合的基本动作,流程如图 16 所示。
    在这里插入图片描述
    这种对动作空间的层次划分,能够考虑到不同子任务之间的时序约束关系,有助于完成复合对话任务(composite task)。并且论文通过加入内部奖励的方式,有效缓解了奖励稀疏的问题,加快了增强学习的训练,也在一定程度上避免了对话在不同子任务之间频繁切换,提高了动作预测准确率。

    当然动作的分层设计比较依赖专家知识,需要通过专家来确定子任务的种类,近期相应地出现了一些对话子任务自动发现的工作 [30] [31],通过无监督的方法,对整个对话历史的对话状态序列进行自动切分,从而避免人工构建对话子任务结构。

    Model-free 增强学习–封疆增强学习

    封疆增强学习(Feudal Reinforcement Learning, FRL)是另一种适用于大维度问题的增强学习方法。分层增强学习是把对话策略按照时间维度上的不同任务阶段划分成子策略,从而降低策略学习的复杂度;而封疆增强学习(FRL)是在空间维度上把策略进行划分,限制子策略负责的动作范围,划分了“管辖疆域”,从而降低子策略的复杂度。

    封疆增强学习(FRL)不划分子任务,而是应用了状态空间的抽象化函数,从对话状态中提取有用的特征。这种抽象化有利于封疆增强学习(FRL)在大型问题中的应用以及在不同领域之间的迁移,具有较强的扩展性。

    剑桥学者们首次将封疆增强学习 [32] 运用到任务导向对话系统领域,将动作空间按照是否和槽位相关来进行划分,这样只利用了动作空间的自然结构而不需要额外的专家知识。

    他们提出了如图 17 所示的封疆策略结构,该结构的决策过程分两步:1)决定下一步动作是否需要槽位作为参数;2)根据第一步的决策,以及对应的不同槽位采用不同的底层策略选择下一步动作。
    在这里插入图片描述
    总的来说,分层增强学习(HRL)与封疆增强学习(HRL)都是将高维度的复杂动作空间进行不同方式的拆分,以解决传统 RL 动作空间维度大导致训练效率低的问题。分层增强学习(HRL)对任务的分割合理,比较符合人类的理解,但是需要专家知识来拆分子任务。封疆增强学习(FRL)对复杂问题的拆分则直接考虑其动作本身的逻辑结构,不考虑不同子任务之间的相互约束。

    Model-based 增强学习

    以上讨论的属于无模型(model-free)增强学习,它是通过和环境交互试错得到大量弱监督数据,再去训练一个价值网络或者策略网络,而不关心环境本身。与之相对的是基于模型的(model-based)增强学习,它的学习过程如图 18。
    在这里插入图片描述
    其特点是对环境直接进行建模,利用和环境交互得到的数据学习出一个状态和奖励的概率转移函数,即环境模型,然后系统可以和环境模型交互产生更多的训练数据,因此 model-based 增强学习一般比 model-free 增强学习的训练效率要高,尤其是在和环境交互代价昂贵的场景。但其效果取决于环境建模的好坏。

    采用 model-based 增强学习来提高训练效率是最近研究热点,微软首先将经典的 Deep Dyna-Q(DDQ)算法应用到对话中 [33]。

    如图 19c 所示,DDQ 训练开始之前,先利用少量已有的对话数据对策略模型和环境模型(world model)进行预训练,之后 DDQ 的训练不断循环三个步骤:1)直接增强学习 — 通过和真实用户在线对话交互,更新策略模型并且储存对话数据;2)训练环境模型 — 利用收集到的真实对话数据更新环境模型;3)规划(planning)— 利用和环境模型交互得到的对话数据来训练策略模型。
    在这里插入图片描述
    其中环境模型(如图 20)是一个神经网络,对环境的状态转换和奖励进行概率建模,输入是当前对话状态以及系统动作,输出是下一轮用户动作、环境奖励和对话终止变量。环境模型使得 DDQ 降低了在线增强学习(如图 19a)对人机交互数据量的需求,也避免了和用户模拟器交互(如图 19b)质量不高的问题。
    在这里插入图片描述
    环境模型与对话领域中的用户模拟器比较相似,它们都可以用于模拟真实用户的动作并和系统的对话管理模块交互。但两者不同之处在于用户模拟器本质是系统的外部环境,用于模拟真实用户,环境模型是系统的一部分,属于系统内部模型。

    在 DDQ 的工作基础上,微软研究者们做了更多的扩展:为了提高环境模型产生的对话数据的真实性,他们提出 [34] 采用对抗训练的思想提高对话数据的生成质量;针对何时使用和真实环境交互的数据,何时使用和环境模型交互的数据,论文 [35] 探讨了可行方案;为了将真人交互也纳入进来,论文 [36] 给出了一个统一的对话框架。这种人类教学(human-teaching)的思想也是目前业界构建对话管理模型的关注热点,我们在下小节给出更多阐述。

    Human-in-the-loop

    我们希望能充分引入人的知识经验来生成高质量数据,提高模型训练效率。Human-in-the-loop 增强学习 [37] 就是一种将人类引入机器人训练过程的方法,通过设计好的人机交互方式,人类可以高效地指导训练增强学习模型。为了进一步提升任务导向对话系统的训练效率,针对对话问题的特性设计有效的 human-in-the-loop 方式成为了研究人员新的探索方向。
    在这里插入图片描述
    谷歌研究者提出了一种人类教学和增强学习结合的复合学习方法 [37](如图 21),在有监督预训练和在线增强学习之间增加一个人类教学阶段,让人介入进来打标签,避免了有监督预训练导致的 covariate shift 问题 [42]。

    亚马逊研究者也提出一种类似的人类教学框架 [37]:每轮对话中,系统都推荐 4 条回复供客服专家选择;然后客服专家决定是选择 4 条回复中的一条,还是另外编辑新的回复;最后由客服专家把选择好或者编辑好的回复发给用户。利用这种方式,开发人员可以快速地更新对话系统能力,适合落地。

    以上是系统被动地接受人对数据进行标注,但是好的系统也应该学会主动提问、寻求人的帮助。论文 [40] 提出了陪伴式学习(companion learning)的架构(如图 22),在传统的增强学习框架中加入老师的角色(即人),老师可以纠正对话系统(即学生)的回复(图左侧开关),也能以内部 reward 的形式对学生的回复进行评价(图右侧开关)。

    对于主动学习的实现,作者提出了对话决策确信度(decision certainty)的概念,通过 dropout 技巧对学生策略网络进行多次采样,得到可取动作的最大概率近似估计,再通过计算该最大概率的若干对话轮次的滑动平均值作为学生策略网络的决策确信度。确信度若低于目标值,则根据确信度与目标值的差距,决定老师是否参与进来纠正错误和提供奖励函数,确信度高于目标值,则停止向老师学习,系统自行进行判决

    在这里插入图片描述
    主动学习的关键在于估计出对话系统对自身决策的确信度,除了上述对策略网络进行 dropout 的方法,还有以隐变量为条件变量,计算策略网络分布 Jensen-Shannon 散度的方法 [22]、根据当前系统对话成功率做判断的方法 [36]。

    3. 小蜜Conversational AI团队的对话管理框架

    为了保证稳定性和可解释性,目前业界对话管理模块多采用基于规则的方法。阿里巴巴-达摩院-小蜜 Conversational AI 团队在去年就开始尝试对话管理模型化的工作,并进行了深入地探索。在真实的对话系统建设中,我们需要解决两个问题:1)如何获得特定场景的大量对话数据;2)怎么利用算法充分发挥数据的价值?

    对于整个模型化的框架设计,目前我们规划成四步走的路线(如图 23 所示):
    在这里插入图片描述
    第一步,先利用小蜜 Conversational AI 团队自主研发的对话工厂(dialog studio)快速构建一个基于规则对话流的对话引擎(称为TaskFlow),同时用类似的对话流去构建一个用户模拟器。在构建好用户模拟器和对话引擎之后,两者采用 M2M 方式持续交互沉淀出大量的对话数据。

    第二步,有了一定量的对话数据后,我们再利用有监督学习训练一个神经网络,构建和规则对话引擎能力基本相当的对话管理模型,实现对话管理的初步模型化。模型的设计采用语义相似匹配和端到端生成两种方法结合来实现可拓展性,对于动作空间较大的对话任务采用 HRL 进行动作划分。

    第三步,有了初步的对话管理模型,在开发阶段,我们让系统和改进的用户模拟器或人工智能训练师进行交互,通过 off-policy ACER 增强学习算法让系统的对话能力持续地增强。

    第四步,人机对话体验达到初步实用之后,就可以上线运行,引入人的因素,收集用户真实交互数据,同时通过一些 UI 设计方便地引入用户的反馈,持续不断地更新强化模型。沉淀出大量人机对话数据也会进一步进行做数据分析和挖掘,用于客户洞察。

    目前,我们打造的基于增强学习的对话管理模型,在订会议室这种中等复杂规模的对话任务上,和用户模拟器交互的对话完成率可达 80%,如图 24 所示。
    在这里插入图片描述

    4. 总结

    本综述围绕对话管理(Dialog Management, DM)模型的最新前沿研究做了一个详细的介绍,针对传统对话管理的痛点划分了三个大的方向:1)可拓展性差;2)标注数据少;3)训练效率低。

    在可拓展性方面,我们介绍了处理变化的用户意图、对话本体、系统动作空间的常用方法,主要有语义相似匹配方法、知识蒸馏方法和序列生成方法;对于标注数据稀缺问题,我们介绍了机器自动标注、对话结构有效挖掘和数据高效收集策略三部分内容;而针对传统 DM 中 RL 模型训练效率低下的问题,学界有尝试引入 HRL、FRL 等方法对动作空间进行层次划分,也有利用 model-based RL 对环境进行建模提高训练效率,将 human-in-the-loop 引入对话系统训练框架亦是当下十分活跃的研究方向。

    最后我们对阿里巴巴-达摩院-小蜜 Conversational AI 团队目前在 DM 模型化的进展做了一个比较详细的汇报介绍,希望本综述能为大家的对话管理研究提供一些启发和思考。

    5. 参考文献

    [1]. TURING A M. I.—COMPUTING MACHINERY AND INTELLIGENCE[J]. Mind, 1950, 59(236): 433-460.
    [2]. Weizenbaum J. ELIZA—a computer program for the study of natural language communication between man and machine[J]. Communications of the ACM, 1966, 9(1): 36-45.
    [3]. Young S, Gašić M, Thomson B, et al. Pomdp-based statistical spoken dialog systems: A review[J]. Proceedings of the IEEE, 2013, 101(5): 1160-1179.
    [4]. Bordes A, Boureau Y L, Weston J. Learning end-to-end goal-oriented dialog[J]. arXiv preprint arXiv:1605.07683, 2016.
    [5]. Wen T H, Vandyke D, Mrksic N, et al. A network-based end-to-end trainable task-oriented dialogue system[J]. arXiv preprint arXiv:1604.04562, 2016.
    [6]. Su P H, Budzianowski P, Ultes S, et al. Sample-efficient actor-critic reinforcement learning with supervised data for dialogue management[J]. arXiv preprint arXiv:1707.00130, 2017.
    [7]. Serban I V, Sordoni A, Lowe R, et al. A hierarchical latent variable encoder-decoder model for generating dialogues[C]//Thirty-First AAAI Conference on Artificial Intelligence. 2017.
    [8]. Berant J, Chou A, Frostig R, et al. Semantic parsing on freebase from question-answer pairs[C]//Proceedings of the 2013 Conference on Empirical Methods in Natural Language Processing. 2013: 1533-1544.
    [9]. Dhingra B, Li L, Li X, et al. Towards end-to-end reinforcement learning of dialogue agents for information access[J]. arXiv preprint arXiv:1609.00777, 2016.
    [10]. Lei W, Jin X, Kan M Y, et al. Sequicity: Simplifying task-oriented dialogue systems with single sequence-to-sequence architectures[C]//Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2018: 1437-1447.
    [11]. Madotto A, Wu C S, Fung P. Mem2seq: Effectively incorporating knowledge bases into end-to-end task-oriented dialog systems[J]. arXiv preprint arXiv:1804.08217, 2018.
    [12]. Mrkšić N, Séaghdha D O, Wen T H, et al. Neural belief tracker: Data-driven dialogue state tracking[J]. arXiv preprint arXiv:1606.03777, 2016.
    [13]. Ramadan O, Budzianowski P, Gašić M. Large-scale multi-domain belief tracking with knowledge sharing[J]. arXiv preprint arXiv:1807.06517, 2018.
    [14]. Weisz G, Budzianowski P, Su P H, et al. Sample efficient deep reinforcement learning for dialogue systems with large action spaces[J]. IEEE/ACM Transactions on Audio, Speech and Language Processing (TASLP), 2018, 26(11): 2083-2097.
    [15]. Wang W, Zhang J, Zhang H, et al. A Teacher-Student Framework for Maintainable Dialog Manager[C]//Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. 2018: 3803-3812.
    [16]. Yun-Nung Chen, Dilek Hakkani-Tur, and Xiaodong He, “Zero-Shot Learning of Intent Embeddings for Expansion by Convolutional Deep Structured Semantic Models,” in Proceedings of The 41st IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP 2016), Shanghai, China, March 20-25, 2016. IEEE.
    [17]. Rastogi A, Hakkani-Tür D, Heck L. Scalable multi-domain dialogue state tracking[C]//2017 IEEE Automatic Speech Recognition and Understanding Workshop (ASRU). IEEE, 2017: 561-568.
    [18]. Mesnil G, He X, Deng L, et al. Investigation of recurrent-neural-network architectures and learning methods for spoken language understanding[C]//Interspeech. 2013: 3771-3775.
    [19]. Bapna A, Tur G, Hakkani-Tur D, et al. Towards zero-shot frame semantic parsing for domain scaling[J]. arXiv preprint arXiv:1707.02363, 2017.
    [20]. Wu C S, Madotto A, Hosseini-Asl E, et al. Transferable Multi-Domain State Generator for Task-Oriented Dialogue Systems[J]. arXiv preprint arXiv:1905.08743, 2019.
    [21]. He J, Chen J, He X, et al. Deep reinforcement learning with a natural language action space[J]. arXiv preprint arXiv:1511.04636, 2015.
    [22]. Wang W, Zhang J, Li Q, et al. Incremental Learning from Scratch for Task-Oriented Dialogue Systems[J]. arXiv preprint arXiv:1906.04991, 2019.
    [23]. Shi C, Chen Q, Sha L, et al. Auto-Dialabel: Labeling Dialogue Data with Unsupervised Learning[C]//Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. 2018: 684-689.
    [24]. Haponchyk I, Uva A, Yu S, et al. Supervised clustering of questions into intents for dialog system applications[C]//Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. 2018: 2310-2321.
    [25]. Shi W, Zhao T, Yu Z. Unsupervised Dialog Structure Learning[J]. arXiv preprint arXiv:1904.03736, 2019.
    [26]. Zhao T, Xie K, Eskenazi M. Rethinking action spaces for reinforcement learning in end-to-end dialog agents with latent variable models[J]. arXiv preprint arXiv:1902.08858, 2019.
    [27]. Shah P, Hakkani-Tur D, Liu B, et al. Bootstrapping a neural conversational agent with dialogue self-play, crowdsourcing and on-line reinforcement learning[C]//Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 3 (Industry Papers). 2018: 41-51.
    [28]. Budzianowski P, Wen T H, Tseng B H, et al. Multiwoz-a large-scale multi-domain wizard-of-oz dataset for task-oriented dialogue modelling[J]. arXiv preprint arXiv:1810.00278, 2018.
    [29]. Peng B, Li X, Li L, et al. Composite task-completion dialogue policy learning via hierarchical deep reinforcement learning[J]. arXiv preprint arXiv:1704.03084, 2017.
    [30]. Kristianto G Y, Zhang H, Tong B, et al. Autonomous Sub-domain Modeling for Dialogue Policy with Hierarchical Deep Reinforcement Learning[C]//Proceedings of the 2018 EMNLP Workshop SCAI: The 2nd International Workshop on Search-Oriented Conversational AI. 2018: 9-16.
    [31]. Tang D, Li X, Gao J, et al. Subgoal discovery for hierarchical dialogue policy learning[J]. arXiv preprint arXiv:1804.07855, 2018.
    [32]. Casanueva I, Budzianowski P, Su P H, et al. Feudal reinforcement learning for dialogue management in large domains[J]. arXiv preprint arXiv:1803.03232, 2018.
    [33]. Peng B, Li X, Gao J, et al. Deep dyna-q: Integrating planning for task-completion dialogue policy learning[J]. ACL 2018.
    [34]. Su S Y, Li X, Gao J, et al. Discriminative deep dyna-q: Robust planning for dialogue policy learning.EMNLP, 2018.
    [35]. Wu Y, Li X, Liu J, et al. Switch-based active deep dyna-q: Efficient adaptive planning for task-completion dialogue policy learning.AAAI, 2019.
    [36]. Zhang Z, Li X, Gao J, et al. Budgeted Policy Learning for Task-Oriented Dialogue Systems. ACL, 2019.
    [37]. Abel D, Salvatier J, Stuhlmüller A, et al. Agent-agnostic human-in-the-loop reinforcement learning[J]. arXiv preprint arXiv:1701.04079, 2017.
    [38]. Liu B, Tur G, Hakkani-Tur D, et al. Dialogue learning with human teaching and feedback in end-to-end trainable task-oriented dialogue systems[J]. arXiv preprint arXiv:1804.06512, 2018.
    [39]. Lu Y, Srivastava M, Kramer J, et al. Goal-Oriented End-to-End Conversational Models with Profile Features in a Real-World Setting[C]//Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 2 (Industry Papers). 2019: 48-55.
    [40]. Chen L, Zhou X, Chang C, et al. Agent-aware dropout dqn for safe and efficient on-line dialogue policy learning[C]//Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing. 2017: 2454-2464.
    [41]. Gao J, Galley M, Li L. Neural approaches to conversational AI[J]. Foundations and Trends® in Information Retrieval, 2019, 13(2-3): 127-298.
    [42]. Ross S, Gordon G, Bagnell D. A reduction of imitation learning and structured prediction to no-regret online learning[C]//Proceedings of the fourteenth international conference on artificial intelligence and statistics. 2011: 627-635.
    [43]. Rajendran J, Ganhotra J, Polymenakos L C. Learning End-to-End Goal-Oriented Dialog with Maximal User Task Success and Minimal Human Agent Use[J]. Transactions of the Association for Computational Linguistics, 2019, 7: 375-386.
    [44]. Mrkšić N, Vulić I. Fully Statistical Neural Belief Tracking[C]//Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers). 2018: 108-113.
    [45]. Zhou L, Small K. Multi-domain Dialogue State Tracking as Dynamic Knowledge Graph Enhanced Question Answering[J]. arXiv preprint arXiv:1911.06192, 2019.
    [46]. Rajpurkar P, Jia R, Liang P. Know What You Don’t Know: Unanswerable Questions for SQuAD[J]. arXiv preprint arXiv:1806.03822, 2018.
    [47]. Zhang J G, Hashimoto K, Wu C S, et al. Find or Classify? Dual Strategy for Slot-Value Predictions on Multi-Domain Dialog State Tracking[J]. arXiv preprint arXiv:1910.03544, 2019.

    展开全文
  • nlp步骤

    2020-04-24 14:34:37
    对话系统 智能问答与对话系统 基于检索的对话系统 基于生成式的对话管理 意图识别与有限状态机 基于任务式的对话系统 基于增强学习的对话系统 多轮对话的挑战 文本摘要 Abstractive vs Extractive 基于模板的文本...

    NLP领域的现状以及AI工程师面临的严峻挑战

    在过去几年时间里,NLP领域取得了飞速的发展,这也推动了NLP在产业中的持续落地,以及行业对相关人才的需求。 虽然,NLP的崛起滞后CV多年,但目前的势头还是势不可挡。 

    但这里我们要面对的现实是,行业上90%以上的NLP工程师是“不合格的”。在过去几个月时间里,我们其实也面试过数百名已经在从事NLP的工程师,但明显发现绝大部分对技术深度和宽度的理解是比较薄弱的,大多还是只停留在调用现有工具比如BERT、XLNet等阶段。 

    我们一直坚信AI人才的最大壁垒是创造力,能够持续为变化的业务带来更多的价值。但创造的前提一定是对一个领域的深度理解和广度认知,以及不断对一个事物的追问比如不断问自己为什么。

    为什么在这个问题上使用Adam,而不是GD或者Adagrad?  对于特定的业务场景,我应该如何把领域知识考虑进去, 用先验,还是用限制条件? 对于拼车场景,设计了一套优化目标,但好像是离散优化问题,应该如何解决? 对于二分类,我应该选择交叉熵还是Hinge Loss?BERT模型太大了,而且效果发现不那么好比如next sentence prediction, 能不能改一改? 为什么CRF要不HMM在不少NLP问题上效果更好? 文本生成效果不太好,如何改造Beam Search让效果更好呢?训练主题模型效率太慢了,如果改造吉布斯采样在分布式环境下运行呢? 数据样本里的标签中有一些依赖关系,能不能把这些信息也加入到目标函数里呢?

    另外,有必要保持对前沿技术的敏感性,但事实上,很多人还是由于各种原因很难做到这一点。基于上述的目的,贪心学院一直坚持跑在技术的最前线,帮助大家不断地成长。

    为什么选择贪心学院的高端NLP?

    首先,全网不可能找得到另外一门系统性的训练营具备如此的深度和广度,这里包括国外的课程,所以从内容的角度来讲是非常稀缺的内容。

    其次,即便网络上的资源非常多,学习是需要成本的,而且越有深度的内容越难找到好的学习资源。如果一门课程帮助你清晰地梳理知识体系,而且把有深度的知识点脉络讲清楚,这就是节省最大的成本。

    另外,作为一家专注在AI领域的教育科技公司,教研团队的实力在同行业可以算是非常顶尖的,这里不乏顶会的最佳论文作者、ALBERT的作者等。

    最后,我们这一期的NLP高阶训练营(第七期)在原有的基础上做了大量的升级,融合了更多前沿的内容,而且在部分内容上加深了难度。

    那谁适合学习NLP高端课程呢?

    • 已经在从事AI工作,但想持续在技术深度和广度上提升自己,塑造自己的壁垒

    • 目前在学校从事相关的研究,但想深入下去,或者为发表顶会文章打下基础

    • 对AI有一定的基础,而且很好的工程能力、想之后从事NLP相关的工作

    • 之后想申请国内外AI博士/硕士

    01课程大纲

    第一部分 机器学习与优化理论基础

    学习目标:掌握必要的凸优化理论,使得在建模过程中可以灵活修改目标函数,从而满足业务中的个性化建模需求。

    另外,在本阶段也帮助学员回顾核心的机器学习算法。

     

    凸优化基础

    1. 判定凸集,以及凸函数

    2. 线性规划与二次规划

    3. 拉格朗日与对偶函数

    4. Strong Duality与KKT条件

    5. Non-convex优化问题

    6. NP-Hard问题与松弛化处理

    7. Discrete Optimization

    8. GD, SGD, Adam, Adagrad

    9. L-BFGS, ADMM

     

    机器学习基础

    1. 生成模型与判别模型

    2. 最大似然与最大后验估计

    3. 模型的过拟合

    4. 各类不同的正则(L1, L2, L0)

    5. 各类启发式算法(遗传算法、贝叶斯优化等)

    6. 随机森林与XGBoost

    7. SVM与Dual SVM

    8. Kernel Trick与设计核函数

     

    本阶段所涉及到的案例/作业

    1. 利用WMD计算文本之间的相似度

    2. 利用Sparse QP设计资产组合策略

    3. 利用随机规划(SP)来解决库存优化

    4. 利用线性规划解决运输问题

    5. 利用松弛化解决整数问题

     

     

    第二部分  语言模型与序列标注

     

    学习目标:掌握语言模型与条件随机场(CRF),所涉及到的内容包括无向图模型、维特比算法、Partition Function, Label Bias,EM等所有核心细节。

     

    文本处理技术与语言模型

    1. 最大匹配算法与Jieba技术剖析

    2. SkipGram与负采样

    3. CBOW, Glove, MF

    4. Noisy Channel Model

    5. N-Gram模型与各类平滑技术

    6. NNLM

     

    序列模型与条件随机场

    1. EM算法与GMM

    2. 有向图与无向图

    3. 条件独立、D-separation

    4. HMM模型、Viterbi以及参数估计

    5. MEMM与Label Bias问题

    6. Log-Linear模型与逻辑回归

    7. Linear-CRF与参数估计

     

    本阶段所涉及到的案例/作业

    1. 拼写纠错系统的搭建

    2. 智能问答系统的搭建

    3. Linear-CRF的从零实现

    4. 基于CRF, LSTM-CRF的NER识别

     

     

     第三部分  预训练模型

     

    学习目标:掌握BERT, XLNet等最新的预训练技术,能够熟练应用在自身的业务中。由于这部分的内容迭代更新速度快,所以具体内容安排会有所变化。

     

    递归神经网络与注意力机制

    1. 分布式表示的优点

    2. RNN与梯度问题

    3. LSTM, GRU与BI-LSTM

    4. Seq2Seq与注意力机制

    5. Beam Search

    6. BI-LSTM-CRF模型

     

    ELMo与Transformer

    1. 上下文有关词向量的学习

    2. NLU中的层次表示

    3. Deep BI-LSTM与ELMo

    4. Bottleneck问题与长依赖问题

    5. Self-Attention, Multi-head Attention

    6. Transformer与Transformer-XL

     

    BERT与ALBERT

    1. Autoencoder与DAE

    2. MLM语言模型

    3. BERT模型

    4. BERT-BiLSTM-CRF

    5. ALBERT模型

    6. GPT2模型

     

    XLNet与其他预训练模型

    1. AR语言模型

    2. Permutation语言模型

    3. Two-Stream Attention

    4. XLNet模型

    5. Roberta

    6. Q-Bert, VI-Bert

    7. 其他模型(TBD)

     

    本阶段所涉及到的案例/作业

    1. 基于Seq2Seq+注意力机制的机器翻译系统

    2. 基于Transformer的机器翻译系

    3. 基于BERT-BiLSTM-CRF的NER识别

    4. XLNet的从零实现

     

     

    第四部分  信息抽取与图神经网络

     

    学习目标:掌握信息抽取、知识图谱、知识推理相关的内容。在这个领域需要掌握的内容,在这一阶段基本都会涉及到。

     

    信息抽取与知识图谱

    1. NE的抽取与识别

    2. 基于规则的关系抽取技术

    3. 基于无监督、半监督的关系抽取

    4. 实体统一、实体消歧、指代消解

    5. 知识图谱、实体与关系

    6. 知识图谱中的推理

     

    知识浅入与图神经网络

    1. TransE,NTN,Node2Vec模型

    2. SDNE模型

    3. 带属性的网络嵌入

    4. Graph Neural Network

    5. CNN与Graph CNN

    6. Dynamic Graph的处理

    7. BERT与KG的结合

     

     本阶段所涉及到的案例/作业

    1. 基于非结构化数据搭建知识图谱

    2. 基于知识图谱的大数据风控

    3. 基于医疗知识图谱的诊断

    4. 基于GNN的Combinatorial优化

    5. 基于信息抽取与DL的NL2SQL

     

     

    第五部分  对话系统与文本摘要

     

    学习目标:掌握常用的、以及前沿的对话系统和文本摘要相关的技术。目前相关技术的应用越来越普遍,本阶段内容基本覆盖所有必要的内容。

     

    对话系统

    1. 智能问答与对话系统

    2. 基于检索的对话系统

    3. 基于生成式的对话管理

    4. 意图识别与有限状态机

    5. 基于任务式的对话系统

    6. 基于增强学习的对话系统

    7. 多轮对话的挑战

     

    文本摘要

    1. Abstractive vs Extractive

    2. 基于模板的文本摘要生成

    3. 基于Seq2Seq的文本摘要生成

    4. ROUGE与Blue

    5. Hierarhical Attention

    6. Pointer-Generator Network

    7. Beam Search的改造

    8. Levenshtein Transformer

    9. MASS

     

    本阶段所涉及到的案例/作业

    1. 基于任务导向的订票管理

    2. 基于Pointer-Generation Network的文本生成

    3. 基于增强学习的对话系统剖析

     

     

    第六部分  模型压缩与其他前沿主题

     

    学习目标:掌握前沿的模型压缩技术,贝叶斯以及深度学习可视化等技术。

     

    模型压缩

    1. 嵌入式设备中的模型压缩

    2. 基于Sparsity的模型压缩

    3. 基于矩阵分解的模型压缩

    4. 基于蒸馏方法的模型压缩

    5. BERT、Transformer的压缩

     

    贝叶斯模型

    1. MLE、MAP、Bayesian模型区别

    2. Dropout与Bayesian Approximation

    3. PGM与主题模型

    4. 吉布斯采样、变分法

    5. SGDL与SVI

    6. 分布式吉布斯采样

     

    可视化与低资源学习

    1. 深度学习中的可视化技术

    2. RNN、LSTM的可视化

    3. Layer-wise Relevance Propagation

    4. Cross-Domain语言学习

    5. Transfer Learning

    6. One-shot Learning

     

    本阶段所涉及到的案例/作业

    1. 利用Laywer-wise RP可视化端到端的机器翻译系统

    2. 基于吉布斯采样的N-Gram LDA模型实现

    3. 基于Bayesian-LSTM的命名实体识别

    为AI从业者/研究生/研究员专门定制

    全网唯一《NLP自然语言处理高阶训练营》

    对课程有意向的同学

    添加课程顾问小姐姐微信

    报名、课程咨询

    ????????????

    02部分项目作业

    课程设计紧密围绕学术界最新进展以及工业界的需求,涵盖了所有核心知识点,并且结合了大量实战项目,培养学员的动手能力,解决问题能力。

    问答系统

    从零开始搭建一个完整的问答系统。给定一个语料库(问题和答案对),对于用户的输入需要返回最适合的答案。涉及到的模块:

    1. 对于用户的输入需要做拼写纠错,这部分会用到语言模型

    2. 之后对输入做文本的预处理,过滤等操作。

    3. 把文本转换成向量形式,这里需要用到tf-idf, word2vec等相关的技术。

    4. 针对于语料库,为了提升效率需要创建倒排表。

    5. 基于相似度的计算来获得最优的答案。

    情感分析系统

    基于给定数据,来搭建一个完整的情感分析系统。项目涉及到的模块:

    1. 数据的预处理

    2. 特征工程,这部分是本项目的核心。

    3. 监督学习模型的选择与调参。调参的过程需要尝试不同的优化策略。

    知识图谱系统

    利用非结构化数据来搭建知识图谱。项目涉及到的模块:

    1. 从非结构化数据中抽取实体,以及词典库的构建

    2. 关系的抽取(指定的关系)

    3. 实体统一以及实体消歧。

    4. 知识图谱的构建以及查询

    对话系统中的NLU

    基于给定的对话数据来构建NLU识别部分,并结果用于聊天机器人中。 项目涉及到的模块:

    1. 文本特征的提取

    2. 搭建CRF模型来识别关键词

    3. 搭建LSTM-CRF模型来识别关键词。

    机器翻译系统

    基于给定数据,来搭建一个完整的情感分析系统。项目涉及到的模块:

    1. 数据的预处理

    2. 特征工程,这部分是本项目的核心。

    3. 监督学习模型的选择与调参。调参的过程需要尝试不同的优化策略。

    任务导向型聊天机器人

    搭建一个完整的聊天机器人,用来服务搜索餐厅。项目涉及到的模块:

    1. 文本预处理

    2. 意图识别和关键信息抽取

    3. 对于每一个意图设计对话管理状态机

    4. 设计上下文处理的方法

    5. 对话生成模块

    6. 处理一些常见的boundary case。

    03直播授课,现场推导演示

    区别于劣质的PPT讲解,导师全程现场推导,让你在学习中有清晰的思路,深刻的理解算法模型背后推导的每个细节。更重要的是可以清晰地看到各种模型之间的关系!帮助你打通六脉!

    ▲源自:CRF与Log-Linear模型讲解

    ▲源自:CRF与Log-Linear模型讲解

    ▲源自:Convex Optimization 讲解

    ▲源自:Convergence Analysis 讲解

    不管你在学习过程中遇到多少阻碍,你都可以通过以下4种方式解决:

    1、直接在线问导师;

    2、记录到共享文档中,每日固定时间的直播答疑;

    3、学习社群中全职助教,随时提问答疑

    4、共同的问题在Review Session里面做讲解

    注:每次答疑,班主任都会进行记录,以便学员实时查阅。

    04每周课程安排

    采用直播的授课方式,一周4-5次的直播教学, 包括2次的main lectures, 1-2次的discussion session (讲解某一个实战、必备基础、案例或者技术上的延伸), 1次的paper reading session (每周会assign一篇必备论文,并且直播解读)。教学模式上也参考了美国顶级院校的教学体系。以下为其中一周的课程安排,供参考。 

    每周一次的Review Session, 老师提前一周给出几个备选主题,由学生进行投票选择最心仪的主题,每周三次。

    05你的必备挑战

    1.编写一些技术类文章

    通过在知乎上发表相关技术文章进行自我成果检验,同时也是一种思想碰撞的方式,导师会对发表的每一篇文章写一个详细的评语。万一不小心成为一个大V了呢?虽然写文章的过程万分痛苦,学习群里半夜哀嚎遍野,但看一看抓着头发写出来的文章结果还是非常喜人的!看着自己收获的点赞数,大家都默默地感谢起导师们的无情!

    这种满满的成就感,让大家一篇接一篇写了下去!

    个个都立刻变身成了知乎大牛~

    2.Project项目 & 日常作业

    除了文章,算法工程师的立命根本--项目代码,导师更是不会放过的。每次在Gitlab上布置的作业,导师们都会带领助教团队会予以详细的批改和反馈。并逼着你不断的优化!

     

    展开全文
  • 心理辅导平台设计

    千次阅读 2017-12-04 10:22:57
    测试的步骤 3.用户测试 4.第三方程序员测试 八、参考文献 ##一、团队介绍 队名 :何弃疗 成员 : *** *** *** *** 作品名 :心窝APP 作品icon : 姓名 分工 *** 总体构思、...

    声明:作者对本文档保留所有权利。

    原题目:
    软件工程课程设计
       ——心理学指导软件
    学生学院   机电工程学院       
    专业班级   ******      
    团队名称   “何弃疗”         
    队员姓名   *** *** *** ***
    2014年12月16日    
    

    文章目录

    一、团队介绍	
    二、软件介绍	
    三、可行性分析	
        1.引言	
        2.可行性研究的前提
        3.所建议技术可行性分析	
        4.所建议系统经济可行性分析	
        5.社会因素可行性分析	
        6.项目风险管理:	
        7.结论意见	
    四、需求分析	
        1.功能需求	
        2.性能需求	
        3.界面要求	
        4.出错处理需求	
        5.接口需求	
        6.其他需求	
    五、 总体设计	
        1.设想供选择的方案	
        2.选取合理地方案	
        3.最佳方案	
        4.程序流程图	
        5.层次图	
        6.数据流图	
    六、详细设计	
        1.各个模块功能描述	
    七、测试验收方案	
        1.测试目的
        2.测试的步骤
        3.用户测试
        4.第三方程序员测试
    八、参考文献
    

    ##一、团队介绍
    队名:何弃疗
    成员*** *** *** ***
    作品名:心窝APP
    作品icon

    心窝APP

    姓名分工
    ***总体构思、文档汇总、详细设计
    ***PPT设计、可行性分析、UI界面设计、图标设计
    ***需求分析、测试验收方案、总体设计
    ***程序介绍、总体设计

    ##二、软件介绍
    软件结构简介:改程序分为5个版块,以智能聊天版块为主,其他版块都是辅助和延伸。

    软件开发的意义:开发该软件是为了增加中国人对心理咨询和心理治疗的了解,改善心理学在中国发展缓慢、不成熟的现状,让中国的心理咨询市场透明化,让心理咨询从业人员拥有更多的发展空间,消除不良从业人员对心理咨询市场的影响,改善心理咨询市场两极分化、发展好的从业人员工资很高、发展不好的收入很低的缺点,也让心理疾病患者能及时治疗,不要因为不了解心理咨询和心理治疗和讳疾忌医的心态而影响正常生活。

    功能定位:基于Android端的以心理指导智能聊天系统为主心理学的交流平台。

    用户定位:需要心理指导的普通用户、心理学专业用户、企业、学校心理指导中心等。

    ##三、可行性分析
    ####1 引言
    1.1 编写目的:
    心理咨询是以维护人的心理健康状态为目标和内容的一项工作,这项工作要求借助于一种特殊的人际关系,运用心理学的理论知识和方法,通过言语、文字及其他信息传递方式,就咨询对象的心理方面存在的问题,提供帮助、启发和指导的过程。我国目前正处在社会转型期,当一些人面临前所未有的就业、婚姻、子女、养老等生存压力时,他们的无助和挫折,往往都可能成为一触即发的“引子”。由于应激事件增多,相关的抑郁和焦虑等情绪反应可能形成长期的适应不良或诱发精神障碍:受流行文化影响的不当节食减肥,导致神经性厌食和贪食后也会诱发多种心理疾病。

    与美国相比,我国心理咨询业起步晚得多。早在20世纪30年代,我国曾出现心理诊所,但由于历史原因,心理学及心理咨询在相当长的时间内在我国未得到发展。80年代中期以后,心理咨询在我国一些大城市的高等院校率先进行,受到了广大青年学生和部分教职工的欢迎。面向社会各阶层的正视心理咨询和心理治疗机构也开始设立。随着社会发展、生活节奏加快、矛盾冲突增加,人们对增进心理健康产生了越来越强烈的需求,心理咨询在我国形成需求市场,心理咨询业有了相当程度的发展。

    中商情报网发布的《2010-2015年中国心理咨询业调研及发展前景预测报告》主要依据国家统计局、卫生部、大中城市心理咨询行业协会以及心理咨询相关组织发布的权威数据、资料,分析了国内外心理咨询业发展现状,重点分析了中国心理咨询发展历程及心理咨询市场需求和心理咨询群体特征,然后报告针对目前国内心理咨询业存在的问题提出了发展对策,并重点分析了国内知名度较高的心理咨询机构及网站,最后针对未来几年我国心理咨询业发展潜力及趋势进行了预测。它是业内企业、相关投资公司及政府部门准确把握行业发展趋势,洞悉心理咨询行业竞争格局,规避经营和投资风险的重要依据,对制定正确竞争和投资战略决策具有重要的参考价值。

    因此,本app主要让用户通过这个平台来指导用户通过自我调适解决心理困惑,并建议有心理疾病的用户进行专业的心理咨询。同时通过推送心理有关方面的知识内容让用户了解心理学,在这个平台能实现普通用户与心理学专业用户或企业之间互相的的交流。

    1.2 项目背景:
    (1) 项目的任务提出者和开发者:*** *** *** ***
    (2) 用户:普通用户、心理学专业用户和企业用户。
    (3) 实现单位:校园或者私人心理中心、各企业。

    ####2 可行性研究的前提
    2.1 要求
    (1)软件要求功能:

    用户功能
    普通用户心理疏导、释放压力、心理测试、心理咨询中介
    心理学专业用户和企业用户收集心理学数据、调研、学校心理中心针对学生心理状态监控、辅助咨询、企业了解员工的心理状态、人力资源管理

    (2)性能:
    方便快捷地解决用户的心理问题,便于心理学专业用户和企业用户与用户之间的相互交流。
    (3)系统的输入
    用户者的注册账号(手机,qq邮箱等)和密码
    (4)系统的输出
    用户者得到身份验证,进入app
    (5)安全和保密要求
    系统对于用户的验证方式为他的账号和密码,用户可使用手机号或者qq邮箱等方式注册自己的私人账号。
    (6)开发目标
    系统的开发目标应考虑如下因素:
    a)人力与设备费用的相对减少;
    b)处理速度的提高;
    c)控制精度的提高;
    d)资源利用率的改进
    (7)具备条件
    项目开发中所具备的条件、假定和所受到的限制,如:
    a所建议系统运行寿命的最小值,系统运行寿命的最小值应达三年;
    b进行系统方案选择比较的时间,系统方案选择比较的时间为一个月;
    c可利用的资源和信息:可参考已有的社交软件系统。

    (8)开发基本计划:

    工作集内容时间
    准备工作社会调查,进行学生,社会人士,心理机构中心和企业有关这款app的建议调查,收集数据并总结。1个月
    开发系统源代码及源码测试找计算机人才或者自我培训,并进行内测阶段1个月
    第一阶段完成基本功能:针对焦虑情绪的智能聊天系统、心理状态量表3个月
    第二阶段针对普通用户的功能扩充:界面优化、数据库联网、注册账号、发动态、官方账号发布心理学活动或讲座信息、心理学文章和视频3个月
    第三阶段心理学专业人群和企业用户功能扩充:心理量表、心理测试、调研数据收集、辅助咨询过程(推广)3个月
    第四阶段拓展数据库、增加情绪种类,根据用户反馈改进。3个月

    **2.2、可行性研究方法:** 可行性研究采用的方法如下: (1)客户调查: (2)专家咨询:与学校心理机构中心协商,并申请赞助。 (3)市场相关产品、同类产品调查:

    2.3、评价尺度:
    系统进行评价时所使用的主要尺度为各项功能的优先次序、开发时间的长短及使用的难易程度和用户的交互性。

    2.4、对现有系统的分析
    当我们心情不好或者有心理问题时候,我们一般自己苦闷在心中或者去找身边的朋友聊天,但是这样做并不能有针对性并且有效地解决我们的心理问题,有一些隐私因为在其他人面前无法说出来,然而这款app却能实现这样的隐私保护功能,另外还可以解决自己心理上的疾病或问题,以及对自己进行调查检测,通过专业心理用户与普通用户的线上交流,简易方便地解决了自己的问题。

    ####3、所用技术可行性分析
    参考现有的心理学智能聊天网页——ASP
    实时数据库搜索功能
    参考大型电商网站的智能客服
    查找中文的分词技术论文
    查找心理学情绪关键词和中文词汇的对应的论文
    采用专业的心理学量表
    采用现有的数据库结构设计

    ####4、所建议系统经济可行性分析
    4.1成本支出:
    数据库(阿里云)的使用费用
    人力资本
    硬件成本
    场地费用
    宣传、推广成本
    后期维护成本

    各开发阶段需要使用的人力费用表

    任务人力(%)费用(元)
    可行性研究5200
    需求分析设计10400
    设计251000
    编码和单元测试20800
    综合测试401600
    总计1004000

    **4.2效益** (1)一次性收益:学校及企业软件的使用费用、学校创新培训项目申请资金、加入创业孵化基地。 (2)经常性收益:心理中介收费、调研数据收费、辅助咨询过程收费、定制企业数据库。 (3)不可定量收益:广告,赞助,活动等。

    4.3投资回收周期
    该设备是一次性投资,当产品卖出的时候,已经实现盈利,而且在往后的硬件维护过程中能持续收益。

    ####5、社会因素可行性分析
    法律可行性:该新系统自主研制开发,拥有自主知识产权。该系统的开发将不会侵犯任何个人、集体、国家的利益,也不会违反国家的政策与法律。

    社会推广可行性:心理咨询服务的普及与高速发展,使得相关配套服务系统的完善变得十分必要。而本系统将大大解决用户的心理咨询问题,使得用户的身心健康,符合发展的需求,在中大型城市中将得到推广。

    使用可行性:该系统仅仅需要一个手机就可以间接地了解到心理方面内容,极大的方便用户与心理平台交流,而移动通信端的普及将极大的增加该系统的使用可行性。

    ####6、项目风险管理:
    本次开发过程中存在的风险及规避方法如下表:

    风险类型存在风险规避方法
    进度风险由于时间紧张导致项目最后无法按期完成。充分考虑各种潜在因素,适当留有余地;任务分解要详细,便于考核;在执行过程中,应该强调项目按照进度执行的重要项,再考虑任何问题时,都要经保持进度作为先决条件;同时,合理利用赶工期及快速跟进等方法,充分利用资源。如果出现必须延期的情况,组长需及时同银行相关负责人沟通,并申请延期时间。
    ||系统没有足够的测试时间|	持续地监控,项目进度控制随着项目的进行而不断进行的,保证每个环节都有足够的时间。|
    

    |技术风险 |开发软件结构体系存在问题,使完成的软件产品未能实现项目预定目标 |选用正版软件开发|
    ||对开发软件的掌握不够深入,造成开发出的产品性能以及质量低劣。 |提前制定好两周的学习计划,各组员要对开发工具C++,css,photoshop及flash进行快速的学习。尽快掌握其中的要点。同时在软件的设计上尽可能降低难度使项目最后能成功完成。|
    |质量风险 |质量不符合用户要求| 经常和用户交流工作成果、品牌管理采用符合要求的开发流程、认真组织对产出物的检查和评审、计划和组织严格的独立测试等。|
    |工具风险 |软件项目开发和实施过程,所必须用到的管理工具、开发工具、测试工具未能及时到位 |在项目的启动阶段就落实好各项工具的来源或可能的替代工具,在这些工具需要使用之前跟踪并落实工具的到位事宜。在进行项目开发之前先设计和搭建出系统的基础架构并进行性能测试,确保架构符合性能指标后再进行后续工作。|
    |人力资源风险| 组员成员因意外无法参加设计| 事先同用户商量解决办法|


    ####7、结论意见
    本款App需要运营部,开发部,和行政部门,需要大量的数据调查和调研,尤其需要技术人员和推广人员,以及外联部进行与商家,心理咨询中心和企业的宣传。

    ##四、需求分析
    ####1.功能需求
    该软件首先面向大多数普通用户,普通用户可以通过该软件的量表大概了解自己当时的情绪。当用户有情绪问题时,可以通过软件中的智能心理指导窗口模块与可爱的玩偶“小熊”进行聊天,同时“小熊”会根据对话做出一系列相应的动作来愉悦用户,在一定程度达到用户减少压力、疏导心情的目的。用户还可以通过软件中的心理鸡汤模块搜索到有关心理学的书籍、电影、视频以及最新的心理知识更新,满足对心理学感兴趣的用户学习心理学的目的。用户通过注册账号后,拥有匿名或者不匿名发布动态到动态圈、交友、建群群聊、关注公众号,查看到自己所想要搜查的问题的建议并可将其收藏。如若用户感觉到自己真的有心理上的“疾病”,可以在软件的专家预约模块中预约心理学专家医生,查看其预约时间和个人简介。

    该软件同时面向学校,企业等机构,这些机构可以运用该软件为学生或员工做心理测试,达到辅助咨询的作用,知晓其近期的心理状况,同时在实际生活中做出相应的对策。同时,学校、企业、单位可将在该软件中注册公众号,发布自己的活动动态。企业可以将该软件运用于到人力资源部门。

    功能需求概述图:

    普通用户功能需求

    专业用户功能需求

    ####2.性能需求
    (1)数据精确度
    输入数据:用户填写的账号、密码,个人信息、量表、用户在心理指导窗口的陈述、用户做出的心理测试以及用户的动态
    输出数据:查询结果
    (2)时间特性
    软件运行在Andriod平台上,相应时间取决于数据库操作的相应时间,因不同机器,不同数据库而异。页面的转换和结果的查询应尽量要求在0.5秒-1秒内响应。
    (3)主存容量
    由于该软件功能齐全,集合度较高,主存容量大概为30M.
    (4)磁盘容量
    智能心理指导系统需要储存大量的数据,且用户在对话中的答案会随时被记录进数据库,要求储存数据库的磁盘容量要较大,在此暂定为500G。
    (5)安全性
    无论是普通用户还是学校企业等用户,每个账号是独一无二的,且自己设有密码,安保问题和绑定邮箱和绑定手机,进一步增加用户的安全性。

    ####3.界面要求
    (1)用户界面要求实用
    A.完成同一功能的或任务的的元素放在集中位置,减少移动距离
    B.常用功能支持快捷键
    C.按功能将界面划分区域块,并要有功能说明或标题
    D.界面上首先应输入的和重要信息应当靠前,位置也应放在界面上较醒目的位置
    E.同一界面上的控件数最好不要超过10个,多于10个时可以考虑使用分页界面显示。
    F.用户查看顺序总体从上到下,同时行间从左到右的方式。
    G.选项数相同时多用选项框而不用下拉列表框。
    H.界面空间较小时使用下拉框而不用选项框。
    I.选项数较少时使用选项框,相反使用下拉列表框。
    J.使用通用性词眼。
    K.长时间的操作应提供进度指示和取消功能。
    L.对于一些常用的输入,软件应具有记忆功能,以避免用户重复输入相同的内容。
    M.所有的提示要清晰易懂,避免让用户去记大量无用的东西

    (2)用户界面要求规范
    A.常用功能要有命令快捷方式
    B.界面中的图标能直观的代表要完成的操作。
    C.状态条要能显示用户切实需要的信息,常用的有:目前的操作、系统 状态、用户位置、用户信息、提示信息、错误信息等,如果某一操作需要的时间较长,还应该显示进度条和进程提示。
    D.滚动条的长度要根据显示信息的长度或宽度能及时变换,以利于用户了解显示信息的位置和百分比。
    E.使用操作系统提供的控件,不要改变其功能,避免将用户弄糊涂。

    (3)用户界面要求合理
    A.父窗体或主窗体的中心位置应该在对角线焦点附近。
    B.子窗体位置应该在主窗体的左上角或正中。
    C.多个子窗体弹出时应该依次向右下方偏移,以显示窗体出标题为宜。
    D.重要的命令按钮与使用较频繁的按钮要放在界面上注目的位置。
    E. 错误使用容易引起界面退出或关闭的按钮不应该放在易点位置。横排开头或最后与竖排最.后为易点位置。
    G.与正在进行的操作无关的按钮应该加以屏蔽(Windows中用灰色显示,没法使用该按钮)。
    H.对可能造成数据无法恢复的操作必须提供确认信息,给用户放弃选择的机会。
    I.非法的输入或操作应有足够的提示说明。
    J.提示、警告、或错误说明应该清楚、明了、恰当。
    K…窗体及控件大小合适,避免剩余控件过大或信息显示不全。

    (4)用户界面要求美观
    A.长宽接近黄金点比例,切忌长宽比例失调、或宽度超过长度。
    B.布局要合理,不宜过于密集,也不能过于空旷,合理的利用空间。
    C.按钮大小基本相近,忌用太长的名称,免得占用过多的界面位置。
    D.按钮的大小要与界面的大小和空间要协调。
    E.避免空旷的界面上放置很大的按钮。
    F.放置完控件后界面不应有很大的空缺位置。
    G.字体的大小要与界面的大小比例协调,
    H.前景与背景色搭配合理协调,反差不宜太大,最好少用深色,如大红、大绿等。常用色考虑使用界面色调。
    I.如果使用其他颜色,主色要柔和,具有亲和力与磁力,坚决杜绝刺目的颜色。
    J.界面风格要保持一致,字的大小、颜色、字体要相同,除非是需要艺术处理或有特殊要求的地方。
    K.如果窗体支持最小化和最大化或放大时,窗体上的控件也要随着窗体而缩放;切忌只放大窗体而忽略控件的缩放。
    L.对于含有按钮的界面一般不应该支持缩放
    M.通常父窗体支持缩放时,子窗体没有必要缩放。
    N.如果能给用户提供自定义界面风格则更好,由用户自己选择颜色、字体等。

    (5)用户界面展示

    用户界面展示

    ####4.出错处理需求
    1)对运行过程中出现问题而引起错误的地方有提示,让用户明白错误出处,避免形成无限期的等待,例如用户查询不到自己想查的内容,软件即显示“您所查的内容尚且无法得到,请问是否继续”。
    2)之后,我们后台将会将用户所查的内容收集,放进数据库,以便用户下次查找的时候可以找到所需内容。
    3)每隔一段时间测试软件,减少软件的出错。

    ####5.接口需求
    1)用户接口
    使用Java编程语言类库的抽象窗口工具箱AWT(Abstract Windowing Toolkit)。
    2)硬件接口
    在输入方面,对于键盘、鼠标的输入,可用Java语言输入/输出,对输入进行处理,也可以运用USB接口进行数据的输入。
    在输出方面,运用USB接口进行输出数据。
    3)软件接口
    A.服务器程序可使用Java 提供的对SQL Server的接口,进行对数据库的所有访问。
    B.服务器程序上可使用SQL Server的对数据库的备分命令,以做到对数据的保存。
    C.在网络软件接口方面,使用一种无差错的传输协议,采用滑动窗口方式对数据进行网络 传输及接收。
    D.制作手机界面的软件Photoshop
    E.编程源代码的软件Java
    ####6.其他需求
    为了保证系统的安全性需要在网络的传输过程中对数据进行加密。

    ##五、总体设计
    ####1.设想供选择的方案
    1.1 心理疏导版块
    心理聊天窗口:
    当用户有问题时,用户通过心理聊天窗口语音或者手写输入自己的心理状态,系统通过玩偶小熊的形象及时将信息、建议反馈给用户,同时小熊会根据对话做出一系列的表情与动作。好似用户与心理学专家面对面聊天谈心。若此时,用户输入的信息没有存在于数据库中,数据库会收集用户的信息,同时给用户做出提示。
    心理引导窗口:
    当用户有问题时 ,用户通过心理引导窗口选择相对于自己当时的情绪名词,系统通过玩偶小熊的形象根据用户做出的选择用一些情景场景引导用户或者推荐用户去浏览一些相关的书籍,同时小熊会根据对话做出一系列的表情与动作。当用户确实存在很大的心理“疾病”时,系统会提醒用户去看心理医生。若此时,用户输入的信息没有存在于数据库中,数据库会收集用户的信息,同时给用户做出提示。

    1.2 心灵鸡汤版块
    收集与心理学相关的心理学书籍、电影、视频、文章以及与生活有关的小tips,将他们分类放在界面。同时,在界面的最顶部设有搜索框,用户可以自己搜索想要的知识,满足用户的需要。该版块会隔一段时间更新,确保用户得到最新的心理学知识。可以吸引一些著名的专家为用户推荐好的作品。

    1.3 个人主页版块
    用户通过注册账号,输进账号和密码之后可以进入个人主页界面。在个人主页版块中,用户可以看到自己的呢称、性别、头像以及更换头像、相册、 设置、近期自己发布或者收藏的动态,已添加的好友和关注的公众号,自己所建立的群和加入的群。同时,在这一版块中增加心理测试和心理知识问答游戏。当用户心理测试或者进行心理知识问答后,结果会被数据库采集并增加进数据库。

    1.4 心理专家医生版块
    在线咨询模块:
    当用户确实觉得自己有很大的心理问题时,需要心理医生的咨询。用户可以进入心理专家医生在线咨询模块与其进行语音聊天、文字聊天或者视频聊天,同时心理医生在线收取一定的费用。
    在线预约模块:
    当用户确实觉得自己有很大的心理问题时,需要心理医生的咨询。用户可以进入心理专家医生在线预约模块与医生进行预约,查看医生的简介和预约时间。用户也可以在搜索框中搜索想找到的心理学专家,预约后与医生进行线下的交流,不在线收费。

    ####2.选取合理地方案
    2.1 选取心理引导窗口
    由于心理聊天窗口需要智能化,好似人与人在面对面地聊天,场景设想较多,造成数据库较为庞大,前期由于经费不足,无法收集到十分丰富的信息和购买巨大的数据库,因此不理想。
    心理引导窗口由于具有固定的模式, 数据库较小,较为理想。

    2.2 心灵鸡汤版块
    由于前期关注度不高,专家入驻该软件的人数较少,故减去专家推荐这一功能,改为系统今日推荐这一功能,其他功能保留。

    2.3 个人主页版块
    个人主页版块收集了较多的信息,造成界面较为复杂,故将与个人信息较少联系的功能独立出来,将心理测试与心理知识问答游戏功能分别独立出来作为心理测试版块和心理知识问答版块。

    2.4 心理医生专家版块
    在线咨询可能由于网速,流量、延时等问题造成交流不能有效进行,且在线付费存在风险,用户问题得不到解决,因此不理想。改由在线预约可以使用户与心理医生面对面交流,问题可以得到有效的解决,故选择该方案。

    ####3.最佳方案
    3.1 心理引导窗口
    用户通过心理引导窗口选择相对于自己当时的情绪名词,系统通过玩偶小熊的形象根据用户做出的选择用一些情景场景引导用户或者推荐用户去浏览一些相关的书籍,同时小熊会根据对话做出一系列的表情与动作。当用户确实存在很大的心理“疾病”时,系统会提醒用户去看心理医生。若此时,用户输入的信息没有存在于数据库中,数据库会收集用户的信息,同时给用户做出提示。

    3.2 心灵鸡汤
    收集与心理学相关的心理学书籍、电影、视频、文章以及与生活有关的小tips,将他们分类放在界面。同时,在界面的最顶部设有搜索框,用户可以自己搜索想要的知识,满足用户的需要。该版块会隔一段时间更新,确保用户得到最新的心理学知识。

    3.3 个人主页
    用户通过注册账号,输进账号和密码之后可以进入个人主页界面。在个人主页版块中,用户可以看到自己的呢称、性别、头像以及更换头像、相册、 设置、近期自己发布或者收藏的动态,已添加的好友和关注的公众号,自己所建立的群和加入的群。

    3.4 心理测试
    通过心理测试,用户可以大概了解自己当前的情绪,系统将用户的数据录入数据库。

    3.5 心理知识问答
    通过心理知识问答,用户可以了解自己对心理学知识的了解程度,一定程度上了解当前的情绪,系统同时将用户的数据录入数据库。

    3.6 心理专家信息查询
    当用户确实觉得自己有很大的心理问题时,需要心理医生的咨询。用户可以进入心理专家医生在线预约模块与医生进行预约,查看医生的简介和预约时间。用户也可以在搜索框中搜索想找到的心理学专家,预约后与医生进行线下的交流,不在线收费。

    ####4.程序流程图

    程序流程图

    ####5.层次图

    层次图

    ####6.数据流图

    数据流图

    ##六、详细设计

    ####1.各个模块功能描述:
    1.1 社交版块
    这一版块主要由用户及其关注用户的信息组成。用户个人信息主要有:个人动态、以往的心理测试结果、每一次与智能聊天系统聊天的主题和情绪状态,关注用户的信息主要有动态和关注用户的个人介绍。
    关注的用户由普通用户、包括软件官方账号、心理学专业账号和企业账号在内的公众用户、用户群等组成。大致用户组成关系如表所示:

    用户类别用户组成信息
    个人用户自身个人动态、以往心理测试结果、每一次与智能聊天系统聊天的主题和情绪状态
    关注用户其他普通用户、公众用户(官方账号、心理学专业账号、企业账号)、用户群普通用户动态、公众号消息、群聊动态(以发帖和评论形式,用户点击后可以直接参与)

    1.2 心理测试及版块
    这一版块的功能是为用户提供心理测试和心理量表,用户注册后第一次登陆时需要做一系列关于性格和情绪的量表,以供智能聊天系统在衡量用户的情绪状态时参考,在这之后用户可以通过进入心理测试版块选择不同的量表来测试自己相关的心理参数,每一次做完量表之后,系统都会给出一个参考结果,并自动进入智能聊天系统进行相关的讲解。

    1.3 心理知识问答版块
    这一版块的功能是心理知识问答,该功能可以通过给出经典的心理实验与生活经验相违背的问题,让用户在回答问题的过程中了解到有趣又有用的心理学知识。

    1.4 “心灵鸡汤”版块
    该版块主要是通过为用户推送心理学的相关知识、文章和视频来达到让用户了解心理学和学习心理学的目的,推送的资料主要以外部链接为主,按照不同的主题来分类,让用户能够有针对性地找到自己想了解的资料,指导自我的心理调适以及解决生活中的难题、走出思维误区,拥抱美好的生活。

    1.5 专家查询功能版块
    该版块通过与各大心理咨询机构和医院联系以及心理学专业人员的申请和官方认证,获取心理学咨询领域从业人员的资料。让用户在遇到心理问题,并且通过该软件的指导不能良好的自我调适时,能够获取相关的信息,了解到每个专家的长处,并搜索到最近的心理咨询地点,获得最及时的心理咨询。在咨询后,用户还可以评价该版块内有记录到的心理咨询从业人员,为其他有需要的用户提供参考。

    该版块可以推广心理学在中国的了解,改善心理学在中国发展缓慢、不成熟的现状,让心理咨询市场在中国透明化,让心理咨询从业人员拥有更多的发展空间,消除不良从业人员对心理咨询市场的影响,消除心理咨询市场两极分化、好的工资很高、发展不好的收入很低的缺点,也让心理疾病患者能及时治疗,不要因为不了解心理咨询和心理治疗而影响正常生活。

    1.6 心理指导智能聊天版块
    该版块能够为用户提供以心理指导主题的智能聊天。用户可以用自然语言描述自己的状况和问题,智能聊天系统会接收和处理整个用户输入语句、根据中文分词原理准确地理解用户的意思;然后在数据库中搜索相关的心理学关键词,对关键词进行语句包装,后返回与用户输入的内容直接相关的一句话,引导用户进行心理指导。
    该版块主要有以下几个模块组成:
    1.6.1 解释模块
    功能:
    可以分解用户输入的语句,输出关键词,触发搜索功能
    搜索模块搜索数据库最后一层后输出相应的关键词或引导语,可以把从数据库得到的关键词或者引导语包装成一句话,输出到用户界面,并且能够根据量表结果和语句识别到的用户情绪进行有加权的表情变换。

    性能:
    注重对用户一度的理解准确性,输出更符合用户问题的结果指导语句,牺牲一定的搜索效率,但由于该聊天版块只针对心理学问题的引导,数据库较小,所以基本上对效率的影响很小。

    为了有效识别用户的聊天意图,用户进入聊天界面之后,系统会要求用户做心理量表或者选取要咨询的主题关键词或者根据引导问题做一段自我陈述,然后系统对用户状态做出评估,给出参考结果。

    为了结果的准确性,在用户注册账号的时候需要做性格等量表,在每次开始聊天的时候,系统会对用户的情绪倾向自动做出预测。

    1.6.2 运行流程:
    功能一:分词
    1.识别句子中的标点符号,引号(“ ” ‘ ’)、括号〔( ) [ ] { } 〕、书名号(《 》〈 〉) 内的内容作为特别内容处理,逗号(,)、句号(。)、顿号(、)、分号(;)和冒号(:)以及连续的逗号(,,,)、句号(。。。)和其他的标点符号都当做句子的分词标志;感叹号(!)作为加强情绪的标志,问号(?)作为问句的标志,连续的感叹号(!!……)和问号(??……)作为加强语气的表达和疑问标志等等。

    2.把常用的词语成分中数量比较少的成分,如:介词、连词和助词等单独列出来作为切分句子的标志,并且按照逻辑规则把切分后的句子排序成简单句顺序。

    3.把剩下的字段中的字按顺序逐字和数据库中的词语匹配,并切分成关键词。匹配规则:按顺序优先匹配歇后语、诗词、成语、三字词、两字词语,遇到未能匹配的情况自动跳过一个单字,继续匹配字段中剩下的字,并把跳过的单字反馈到数据库待完善匹配规则,最后输出所有匹配好的关键词到搜索模块。

    分词

    功能二:生成输出语
    根据数据库输出语层返回的关键词,依据中文的语法规则输出符合人性化的语句,并且根据用户账户中记录的用户性格和临时聊天记录识别用户情绪进行加权,生成卡通人物形象的表情变换方案,辅助心理指导的情景构建。

    一般来说,在咨询的前半段的表情变换主要以共情为主,与随着用户的情绪变化,卡通人物会生成相应的忧伤、焦虑的表情;后半段以鼓励为主,根据用户的状态生成正向的情绪的表情,相应的表情参考积极心理学现有的研究成果。识别心理指导是否进入后半段的标志是用户的问题与迷惑减少,负面情绪指数开始稳定或者减少。

    生成输出语

    1.6.3 搜索模块
    功能:
    1.在数据库的用户语库层搜索关键词的词性以及相应的近义词和情绪类别以及情绪强度

    2.根据词性把关键词及其近义词分类为用户问题关键词和情景关键词,存入不同的内存区

    3.在数据库的心理学主题层次中分别搜索每个近义词的对应主题,选出相关度最高的心理学主题

    4.情景关键词的每个近义词在数据库的心理学关键词层搜索对应的心理学关键词,结合心理学主题和用户的性格进行加权运算,最后得出相关度最高的5个关键词

    5.在输出语层搜索相关度最高的关键词的对应输出语,输出到解释模块进行语句包装,并输出其它4个关键词到用户界面候选

    运行流程:

    搜索模块

    1.6.4 数据库:
    心理指导智能聊天系统的数据库分为四层,每一层存储不同的词汇,有用户语层、心理学主题层、心理学关键词层和输出语层。
    存储四个层次的数据内容,并且在搜索模块每次搜索过后都能返回相应的关键词。
    用户语层采用网状结构,每一个关键词都与其近义词关联,当搜索触发一个关键词时即触发下一级的所有关联的近义词,每一个词汇有词性、情绪类别、情绪强度、场景类别等属性。
    心理学主题层和心理学关键词层采用关系结构,每一个词汇对应几个用户语层的关键词,有情绪种类和应用场景等属性。
    输出语层采用关系结构,每一个词汇对应几个心理学关键词层的关键词,每一个词汇有对应的心理学主题。

    智能聊天系统数据库结构
    用户语层
    心理学主题层
    心理学关键词层
    输出语层

    用户语层数据表

    字段名词性情绪类别情绪强度场景类别描述
    关键词1名词抑郁5人际关次关键词
    近义词1名词焦虑3工作学业相关的近义词1及其相关属性
    近义词2名词忧伤2人生规划相关的近义词2及其相关属性

    心理学主题层数据表

    心理学主题情绪种类应用场景描述
    主题情绪种类1应用场景1心理学主题及其相关属性
    相近主题1情绪种类2应用场景2相近主题1及其相关属性

    心理学关键词层数据表

    心理学关键词情绪种类应用场景描述
    关键词情绪种类1应用场景1心理学关键词及其相关属性
    相近关键词1情绪种类2应用场景2相近关键词1及其相关属性

    输出语层数据表

    输出语对应心理学主题应用场景描述
    关键词主题1应用场景1输出语及其相关属性
    相近关键词1主题2应用场景2相近输出语1及其相关属性

    1.7 总数据库
    该软件总数据库分别根据6个版块分为6个子数据库,每个子数据库互相独立,不同版块可以互相调用其他版块的数据,例如:社交版块在查询自己的心理测试和量表结果时,会调用心理测试版块和心理量表版块的数据库数据;智能聊天系统版块在心理指导过程中会应用户要求调用社交版块的相关动态信息等其他版块的数据库数据。

    社交版块数据库:
    用户信息表

    字段名说明描述
    Yhxx不空 主键用户账号
    Lljl不空用户昵称
    Gmjl不空用户公开的动态

    个人关注列表

    字段名说明描述
    Yhxx不空 主键用户1
    Lljl不空用户2
    Gmjl不空用户3

    动态列表

    字段名说明描述
    Yhxx不空 主键用户
    Lljl不空动态主题
    Gmjl不空动态内容

    心理测试版块:
    心理测试、量表

    字段名说明描述
    Yhxx不空 主键题目1
    Lljl不空题目2
    Gmjl不空结果

    心理知识问答版块:
    心理题目

    字段名说明描述
    Yhxx不空 主键题目1
    Lljl不空答案
    Gmjl不空相关心理知识

    “心灵鸡汤”版块:
    心理学知识、文章、视频

    字段名说明描述
    Yhxx不空 主键主题
    Lljl不空题目
    Gmjl不空链接

    专家信息查询版块:
    专家信息

    字段名说明描述
    Yhxx不空 主键姓名
    Lljl不空介绍
    Gmjl不空联系方式

    ##七、测试验收方案

    ####1.测试目的
    软件测试的目的是使我们通过对软件错误的原因和分布进行归纳,来发现并排除当前软件产品的缺陷,对在需求和设计过程中存在的问题查缺补漏,从而确保软件产品的质量。
    1)确定现有项目的信息和应测试的软件构件。
    2)列出推荐的测试需求(高级需求)。
    3)推荐可采用的测试策略,并对这些策略加以说明。
    4)确定所需的资源,并对测试的工作量进行估计。
    5)列出测试项目的可交付元素。
    ####2.测试的步骤
    1)明确需要测试的模块和功能
    2)根据不同的被测试模块选择相应的测试方法
    3)设计相应的测试用例
    4)开始测试
    5)对测试进行总结,做出相应修改
    ####3.用户测试
    3.1 登录模块测试
    功能模块:登录或者注册的人员(包括普通用户、学校企业等单位)
    功能特性:具有身份权限的登录
    测试目的:验证是否能正确判断登录

    步骤操作描述数据期望结果实际结果
    1在登录中输入用户名和密码,输入错误的用户名或密码在用户名中输入11,密码输入123出现“账号或密码不存在,请重新输入”同期望结果
    2在登录中输入用户名和密码,输入错误的用户名或密码在用户名中输入Ruanjian,密码输入123成功进入个人界面同期望结果

    3.2 用户个人主页模块测试
    功能模块:登录或者注册的人员(包括普通用户、学校企业等单位)
    功能特性:进行个人信息完善,密码修改,查看通讯录,动态发布,建群群聊,进行心理测试、玩心理小游戏
    测试目的:验证是否能完成以上的功能

    步骤操作描述数据期望结果实际结果
    1在个人信息界面点击“编辑”输入个人头像,名称,性别,个性签名出现“您输入的的内容已存在或非法,请重新输入”同期望结果
    2在个人信息界面点击“编辑”输入个人头像,名称,性别,个性签名界面刷新后,可以看到用户的个人信息完全照着用户的填写同期望结果
    3在密码修改区的“旧密码”填写之前的密码,在“新密码”和“确认密码”填写改动的密码输入字母、数字出现“您的密码为纯数字或者纯字母,安全性过低,请重新填写字母和数字结合的密码”同期望结果
    4在密码修改区的“旧密码”填写之前的密码,在“新密码”和“确认密码”填写改动的密码输入字母、数字界面刷新后出现“您的密码已修改成功,请重新登录”,并出现登录界面同期望结果
    5在通讯录查看好友,关注的公众号并添加好友,关注公众号输入好友或者公众号的名称或者号码界面出现“您所输入的内容有误,请重新输入”同期望结果
    6在通讯录查看好友,关注的公众号并添加好友,关注公众号输入好友或者公众号的名称或者号码在通讯录中可以看到新加的好友或者公众号同期望结果
    7在动态圈发布动态输入自己的动态在动态圈中可以看到自己和朋友的动态同期望结果
    8搜索群号加入进去或者自己创建群输入群号或者点击“建群”按钮界面出现“您所查找的群不在,请重新查找”或者“您没有权利建群”同期望结果
    9搜索群号加入进去或者自己创建群输入群号或者点击“建群”按钮在通讯录中可以找到所加的群以及自己创建的群同期望结果
    10点击“心理测试”按钮在心理测试中选择每一个选项当完成时出现“你已完成测试,谢谢您的配合”并出现“您当前的情绪指数为XXXX”同期望结果
    11点击“心理游戏”按钮照着游戏的顺序开始游戏游戏运行顺畅同期望结果

    **3.3 心理指导窗口模块测试** 功能模块:登录或者注册的的普通用户 功能特性:与用户聊天,指导用户梳理心理情绪 测试目的:验证用户的输入是否能得到及时的反馈
    步骤操作描述数据期望结果实际结果
    1用户输入自己的一些情况,比如近期的生活、学习、心理状况用户的陈述数据库数据不足以满足用户的情况,界面出现“您当前的问题系统无法为您提出建议”同期望结果
    2用户输入自己的一些情况,比如近期的生活、学习、心理状况用户的陈述界面上的玩偶“小熊”会随着对话做出相应的表情和动作,对话一直持续,直到用户结束对话同期望结果

    **3.4 心灵鸡汤模块测试** 功能模块:登录或者注册的的普通用户 功能特性:为用户提供心理学书籍、电影、视频以及最新心理学知识的更新 测试目的:测试用户是否能够搜到所要查到的心理学知识
    步骤操作描述数据期望结果实际结果
    1用户点击已有的心理学知识分类或者在搜索栏中搜索自己想找的心理学知识搜索栏中数据已有的心理学知识可以打开并观看,搜索时界面出现“您所搜索的不存在,请重新搜索”同期望结果
    2用户点击已有的心理学知识分类或者在搜索栏中搜索自己想找的心理学知识搜索栏中数据已有的心理学知识可以打开并观看,搜索时界面出现转换到搜索到的内容界面同期望结果

    **3.5 心理预约模块测试** 功能模块:登录或者注册的的普通用户 功能特性:查询到心理医生的简介或者预约时间,并可预约 测试目的:验证上述的功能
    步骤操作描述数据期望结果实际结果
    1用户点击“我要预约”或者在搜索栏搜索医生的姓名搜索栏中的数据可以查询界面已有医生的简介和预约时间,搜索时界面出现“您所搜索的内容不在,请重新搜索”同期望结果
    2用户点击“我要预约”或者在搜索栏搜索医生的姓名搜索栏中的数据可以查询界面已有医生的简介和预约时间,搜索时界面出现“您所搜索的内容不在,请重新搜索”同期望结果

    ####4.第三方程序员测试 该过程使编辑该软件的程序员不参与测试阶段,由第三方的程序员按照程序内部的逻辑测试过程,检测程序中的主要执行通路是否都能按预定要求正确工作。第三方程序员通过逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖)或者控制结构测试(基本路径测试、条件测试、循环测试)对软件内部进行测试。

    测试应长期进行,以便发现其中的错误并及时改正、调试。

    ##八、参考文献
    1.戴开宇;张申生;王淼 分布式虚拟环境中的聊天机器人的研究[期刊论文]-计算机工程与应用 2002(07)
    2.易顺明;胡振宇 中文聊天机器人原型系统的设计 2007
    3.李鹏 中文分词在聊天机器人中的应用研究 2009
    4.宁长英 智能聊天机器人的关键技术研究 2011
    5.樊丽华 心理咨询专家系统的研究与实现 2008
    6.冯德虎 基于ALICE的研究生招生咨询智能聊天机器人研究与实现 2013
    7.穆肃 网络智能聊天系统的原理及其教学应用 2003
    8.施询之;孙宁远;李骋罡 基于微博信息库和文本分词的人机对话模型设计 2013
    9.邓志鸿;唐世渭;张铭;杨冬青;陈捷 Ontology 研究综述 2002
    10.郭文琪;温馨;王鹏;张利军;陈群;李战 Ropeway:基于语义相关的XML关键字搜索引擎 2010
    11.王竖堡 垂直搜索引擎若干关键技术的研究 2007
    12.张艳贺 基于本体的主义搜索研究与实现 2012
    13.侯越先;张鹏;于瑞国 基于内容相关性挖掘的反馈式搜索引擎框架 2008

    展开全文
  • 作者丨戴音培、虞晖华、蒋溢轩、唐呈光、李永彬、孙健单位丨阿里巴巴-达摩院-小蜜Conversational AI团队,康奈尔大学对话管理模型背景从人工智能研究的初期开始,人们就致力于开发...
  • 简介: 从人工智能研究的初期开始,人们就致力于开发高度智能化的人机对话系统。对话管理模型研究最新进展源于前沿的深度的研究。 作者: 戴音培1、虞晖华2、蒋溢轩2、唐呈光1、李永彬1、孙健1 单位: 阿里巴巴-...
  • 简介:从人工智能研究的初期开始,人们就致力于开发高度智能化的人机对话系统。对话管理模型研究最新进展源于前沿的深度的研究…… 作者: 戴音培1、虞晖华2、蒋溢轩2、唐呈光1、李永彬1、孙健1 单位: 阿里巴巴-...
  • 对话管理模型背景 从人工智能研究的初期开始,人们就致力于开发高度智能化的人机对话系统。艾伦·图灵(Alan Turing)在1950年提出图灵测试[1],认为如果人类无法区分和他对话交谈的是机器还是人类,那么就可以说...
  • 1 “对话系统”和“对话AI”在科学文献中经常互换使用。差异反映了不同的传统。前一个术语更为笼统,因为对话系统可能纯粹基于规则,而不是基于人工智能。 2 我们未涉及的会话AI的一个重要主题是口语理解(SLU)。...
  • 卡门(Carmen)和乔恩(Jon)与罗​​布·派克(Rob Pike)和罗伯特·格里塞梅尔(Robert Griesemer)(Go的创造者)讨论了它的起源,增长,影响力和未来。这是一部史诗般的剧集,深入探讨了Go语言的历史和细节,...
  • 为探索如何进行语音教学,笔者就音标教学,字母组合教学,音节教学,句群教学四个语音方向搜集了教学案例,进行了策略研究,并制定了语音教学的措施。实施分为三个阶段进行。完成后对学生的语音状况进...
  • 再声明下,生成对话框类主要包括新建对话框类、添加控件变量和控件的消息处理函数等。        因为给大家的例程Addition是基于对话框的程序,所以程序自动创建了对话框模板IDD_...
  • 设计性思维及步骤
  • 《小学数学“核心问题”教学模式研究》开题报告 延安市新区第一小学 一、课题研究意义和价值 随着时代的发展,教育在经济竞争和社会发展中所起的作用愈显重要。为全面推进素质教育,培养具有创新精神和实践能力的...
  • 最近项目需要语音上下文对话,找了几家都没有找到可以定制个性化上下文场景对话的技术,一般都是固定场景的对话,刚好,百度近期推出了UNIT技术,感觉刚好可以实现功能,可能需求与UNIT技术功能不是十分匹配,但是...
  • 访谈的对话、实地观察的笔记、archival data(档案数据), 这些都是数据,只不过是定性的数据。 什么研究不是实证性研究呢?没有数据的,不依托现实中验证的证据的。比如理论构建的研究、文献综述型文章等。没有收集...
  • 如何使学习的科学、教育技术和人才培养方案三者有机结合,特别是向教育技术赋予科学的指导思想和教学实践,将成为高校教学信息化改革的“难点”。 严峻的疫情防控形势对高校教学提出了挑战,我们不能只停留在在线...
  • VSS使用步骤

    2019-10-07 06:46:15
    VSS使用步骤 在软件工程的领域里,有一块叫做 SCM(Software Configuration Management),有人管它叫「软件建构管理」。SCM 的传统定义是原始码的版本管理,后来则逐渐演进扩大,还包含了软件开发的一些...
  • 教学之痛!被理念绑架的数学作者:李祎(福建师范大学数学与信息学)>>>>数学新课改已推进十几个年头,然而在当下的数学教学实践中,仍经常发现不少因理念而出现的问题....
  • 用动画人物形象替代教师、学生角色,也能模拟真实教学场景,设置教学互动内容。这么多好处啊!动画制作应该很麻烦吧?在过去,动画制作是一项费心费力的事情,你首先必须有一个脚本,然后根据脚本进行背景、人物、...
  • 物联网络连万物教学设计The complexity of our interactions and relationships with objects and interfaces can be divided in four different layers at which they occur, with different values of engagement ...
  • Android游戏开发设计步骤 如今搭载Android操作系统的手机数量比iPhone多得多。据悉,Android设备平均每天激活40万台。但iOS对开发商来说依旧是个更加有利可图、更受欢迎的平台。原因是:Android无需花钱买应用;...
  • 知识点:由标准问题、相似问和回复答案三部分组成的信息集合 在有语料时,搭建一个完整问答知识库,从而实现问答对话有5个步骤:清洗语料、创建知识库分类、挖掘知识点、完善知识库和问答测试。 结语 开放的对话...
  • 《小学语文教学论》作业 一、单项选择题 1.“大课程——小教学观”认为( )。 课程不仅包含教学活动,还包含丰富的内容,课程是内容与过程的统一 B. 课程与教学具有各自相对独立的实践活动内容与指涉对象 C. 课程...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,167
精华内容 866
关键字:

对话教学的步骤