聊天机器人简要理解

聊天机器人

身边的同事或多或少都在聊ChatGPT,这又使得学生时代训练模型的恐惧感开始支配我。说起聊天机器人,我们先熟悉一下不同对话系统的概念。

一、对话系统分类

1、单轮对话

单轮与传统的问答系统相类似,是智能对话系统的初级应用。一般表现为一问一答的形式,用户提出问题或前发出请求,系统识别用户意图,做出回答或执行特定操作。单轮对话也强调自然语言理解,但一般不涉及上下文、指代、省略或隐藏信息,相对来说实现难度更低,产品的应用也更加成熟可靠。

2、多轮对话

多轮对话一般是任务驱动的多轮对话,用户是带着明确的目的的,如订餐,订票,叫车,寻找音乐、电影或某种商品等比较复杂的需求来,而这中间有很多限制条件,用户并不能一次将任务所需的关键信息一次性说完,说清楚,因此就要分多轮进行QA问答一方面,用户在对话过程中,可以不断修正和完善自己的需求;另一方面,当用户在陈述需求不够具体和明确时,机器人可以通过询问,澄清和确认来帮助用户寻找满意的结果,并且在任务的驱动下与用户完成日常的交互,以此不断完善对于用户需求的满足。因此,任务驱动的多轮对话不是一个简单的自然语言理解加信息检索的过程,而是一个决策过程,需要机器在对话过程中不断根据当前的状态决策下一步应该采取的最优动作(如:提供结果,询问特定限制条件,澄清或确认需求,等等)从而最有效的辅助用户完成信息或服务获取的任务。

3、模块化的对话系统

模块化对话系统
分模块串行处理对话任务,每一个模块负责特定的任务,并将结果传递给下一个模块,通常由NLU(Natural Language Understanding,自然语言理解)、DST(Dialogue State Tracking,对话状态追踪)、DPL(Dialogue Policy Learning,对话策略学习)、NLG(Natural Language Generation,自然语言生成)4个部分构成。在具体的实现上,可以针对任一模块采用基于规则的人工设计方式,或者基于数据驱动的模型方式。
NLU:将用户输入的自然语言语句映射为机器可读的结构化语义表述,这种结构化语义一般由两部分构成,分别是用户意图(user intention)和槽值(slot-value)。
DST:这一模块的目标是追踪用户需求并判断当前的对话状态。该模块以多轮对话历史、当前的用户动作为输入,通过总结和推理理解在上下文的环境下用户当前输入自然语言的具体含义。对于对话系统来说,这一模块有着重大意义,很多时候需要综合考虑用户的多轮输入才能让对话系统理解用户的真正需求。
DPL:也被称为对话策略优化(optimization),根据当前的对话状态,对话策略决定下一步执行什么系统动作。系统行动与用户意图类似,也由意图和槽位构成。
NLG:负责把对话策略模块选择的系统动作转化为自然语言,最终反馈给用户。

4、端到端的对话系统

考虑采用由输入直接到输出的端到端对话系统,忽略中间过程,采用数据驱动的模型实现。
目前,主流的任务对话系统实现为模块化方式,由于现有训练数据规模的限制,端到端的方式仍处于探索阶段。
对话流程如下图所示:
1)、首先接受用户消息,并将该消息送到Interpreter,可以理解为一个解析器,它会把用户的输入内容转变为一个字典,其中包括原始信息,意图,实体等等,其实就是Rasa的NLU模块所做的事情。
2)、接下来会把字典送给Tracker,这个是用来记录对话状态并跟踪对话进度的。
3)、Policy会接收到Tracker当前的状态,并根据这个状态选择一个合适的Action
4)、Action一方面会把信息发送给Tracker,让它记录下当前的状态,另一方面还会给用户发送信息。聊天机器人对话流程
这里简要聊一下NLU模块。
对于面向任务的对话系统来说,NLU的主要作用是对用户输入的句子或者语音识别的结果进行分析,提取用户的对话意图以及用户想要传递的真实意图。涉及的主要技术是意图识别和槽位填充,这两种技术分别对应用户动作的两项结构化参数,即意图和槽位。

二、意图识别

当用户输入“明天天气如何?、明天是晴天还是雨天?明天需要抹防晒霜吗?”聊天机器人只需要理解用户是想查询天气;当用户输入“如何包龙虾馅的饺子时”,聊天机器人要正确理解为“包饺子”而不是“包龙虾”才行…所以正确的识别用户意图是一个聊天机器人有无价值的重要基础。

意图识别的方法

1、规则模板方法

通过专家手工编写规则模板来识别意图。比如:
     买 .* 《地名》 .* 《地名》.* 机票 =》 买机票
模板构成: 字符串、词性、正则表达式。
通过匹配上述模板,即可识别出对应的意图。
缺点:
1)、人工编写工作量大,易冲突
2)、规则模板覆盖面较小,使用通配符可以解决一部分问题,但带来了匹配优先级的问题
3)、适用于垂直领域,在通用领域则无法推广
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

2、基于统计的方法

使用意图词典做词频统计,取词频最大的就是对应的意图
缺点:覆盖面比规则模板广,但容易误识别

3、基于语法的方法

先对句子做语法分析,找到中心动词及名词,再根据意图词典即可识别出意图来。如:
     我要买从深圳到上海的机票
1)、语法分析的结果
在这里插入图片描述
2)、再根据意图词典即可识别出“买机票”意图
在这里插入图片描述
缺点:使用语法分析使得准确度更高了,但增加了语法识别的难度。

4、基于机器学习的方法

1).数据标注
2).数据预处理
3).训练集拆分
4).特征提取
5).特征向量化
6).使用模型训练

5、基于深度学习方法

核心思想:把意图识别看成是文本分类任务。
1).语料标注
2).分词
3).搭建模型

三、槽位填充

槽位,即意图所带的参数。一个意图可能对应若干个槽位,例如询问公交车路线时,需要给出出发地、目的地、时间等必要参数。
槽的属性:
1)、可默认填写/不可默认填写;
2)、澄清话术(当槽不可默认填写且又没有填写的时候,就要进行澄清);
3)、平级槽或依赖槽(根据槽和槽之间是否独立,后续的槽是否依赖于前面的槽决定);
4)、多轮记忆状态(槽位没有填满则反复询问,直到填充完毕)。

要使一个面向任务的对话系统能正常工作,首先要设计意图和槽位。意图和槽位能够让系统知道该执行哪项特定任务,并且给出执行该任务时需要的参数类型。对于一个单一的任务,上述定义便可解决任务需求。其实在真实的业务环境下,一个面向任务的对话系统往往需要能够同时处理若干个任务。对于同一系统处理多种任务的复杂情况,一种优化的策略是定义更上层的领域,可以简单地将领域理解为意图的集合。定义领域并先进行领域识别的优点是可以约束领域知识范围,减少后续意图识别和槽位填充的搜索空间。此外,对于每一个领域进行更深入的理解,利用好任务及领域相关的特定知识和特征,往往能够显著地提升NLU模块的效果。

槽位填充的方法

1)、把槽位填充任务转变成关系抽取任务,用传统的信息抽取方法是实现槽值填充,按照具体实现方法不同,信息抽取方法又可以分为模式匹配的方法和基于分类器的方法;
2)、以问答系统为基础,通过槽值填充任务中定义的每一个等价问题集合的方式来完成槽值填充;
3)、基于规则的方法,直接依靠人工的方法为每一个槽位构建对应的模式库或者规则库,然后以这些模式或规则为标准从测试语料中检索出符合标准的实例来完成槽值填充任务。

意图识别实际上是一个分类任务,槽位填充实际是一种序列标注的问题。
为了更好地融合意图识别与槽位填充,提出了很多很好的模型来完成这项任务。
1)、利用双向的GRU+CRF作为意图与槽位的联合模型;
2)、利用语义分析树构造路径特征实现槽位填充与意图识别联合的模型;
3)、基于CNN+Tri-CRF的模型;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/37856.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何让ChatGPT学习销售过往文字稿,并自动分析话术的优缺点,然后修改?

该场景对应的关键词库(13个): 产品特点、服务优势、目标客户需求和痛点、行业与市场的趋势变化、竞争对手的优劣势、销售场景的特点和要求、销售环境、销售氛围、时间、地点、客户情感需求、心理转态、个性特点、解决方案 提问模板&#xf…

chatgpt赋能python:PythonIP匹配

Python IP匹配 随着互联网的不断发展,IP地址已成为人们最常使用的一种网络标识。在网络分析和开发中,经常会用到IP地址的相关操作,如IP地址的匹配。Python作为一种性能比较好的语言,也可以很好地完成IP地址的匹配工作。本文将介绍…

chatgpt赋能python:Python查看局域网内所有IP

Python查看局域网内所有IP Python是一种流行的编程语言,可用于网络编程和系统管理。Python程序可以访问本地网络并查找设备。如果您需要查找局域网中的所有IP地址,Python是一个非常方便的工具。在本文中,我们将介绍如何使用Python编写程序以…

chatgpt赋能Python-python_ip摄像头

Python IP摄像头介绍 IP摄像头技术的快速发展,使得越来越多的人开始使用IP摄像头来保护家庭、企业和公共场所的安全。Python语言的简洁、优雅和易于学习,使得它成为越来越多人选择的编程语言。在本文中,我们将介绍如何使用Python编程来控制I…

chatgpt赋能python:Python输入IP地址

Python 输入IP地址 在网络技术中,IP地址是每一个网络设备在互联网中的唯一身份标识。IP地址代表Internet协议(IP)网络中的一个设备,可以是计算机或其他设备。在Python中输入IP地址时,通常使用.来分隔数字,…

chatgpt赋能Python-python_ping_ip

Python Ping IP - 介绍 Python是一种高级编程语言,因其简单易学、代码可读性高和可扩展性强而备受青睐。Python可以用于各种不同的应用程序和项目,其中之一就是网络管理和监控。在这篇结合SEO的文章中,我们将探讨如何使用Python ping IP地址…

chatgpt赋能Python-python_ip地址转换

Python IP地址转换:原理、常用函数和示例 在网络编程中,IP地址是一个很重要的概念。Python提供了很多IP地址转换函数,这篇文章将讲解其原理、常用函数和示例。 IP地址转换原理 IP地址是由32位表示的二进制数,它是计算机在网络上…

chatgpt赋能Python-python_ip归属地

Python IP归属地查询 在网络安全领域,IP地址归属地查询是一项非常重要的任务。很多时候我们需要知道某个IP地址的归属地以解决一些安全问题。Python语言在这方面也发挥了巨大的作用,有各种成熟的IP地址归属地查询库。在本文中,我们将介绍如何…

北京突然宣布,元宇宙重大消息

北京青年报记者从2022全球数字经济大会新闻发布会上了解到,2022全球数字经济大会将于7月28日至30日在国家会议中心举行。本届大会将聚焦绿色创新发展、数字贸易、数据价值化、全球规则治理等热点议题;深度探讨互联网3.0、数据要素、开源、5G创新、数字安…

一种令人拍案叫绝的 ChatGPT 攻击手段!

公众号关注 “GitHubDaily” 设为 “星标”,每天带你逛 GitHub! 最近看到一个非常巧妙的 ChatGPT 攻击手段,跟大家分享一下,也算是做个提醒。 不论你是否懂技术,我都建议你了解一下这种攻击手段,有备无患。…

宝塔域名https配置

1.网站的配置文件 server {listen 80;listen 443 ssl http2;server_name txexam.whctcq.com;index index.php index.html index.htm default.php default.htm default.html;root /www/wwwroot/txexam.whctcq.com/dist;#SSL-START SSL相关配置,请勿删除或修改下一行带…

巴比特 | 元宇宙每日必读:上海发布元宇宙关键技术攻关行动方案,主攻沉浸式技术和Web3技术,AIGC、数字人等亦是关键词...

摘要:6 月 13 日,上海市科学技术委员会印发《上海市“元宇宙”关键技术攻关行动方案(2023—2025 年)》。该方案提出以沉浸式技术与Web3技术为两大主攻方向,以自主创新和开放协同为推进路径,着力提升“元宇宙…

2023 IJCAI YES 青年精英学术大会正式开幕:群贤毕至,开启为期三天的智慧盛宴

内容一览: 2019 年,艾伦人工智能研究所发布《中国在人工智能研究领域超越美国》研究报告。这份报告反映了中国人工智能领域从「数」到「质」的飞跃,这不仅得益于国家政策的推动,更因为众多国内高校的不懈探索。 当前,人…

基于RWKV-Runner大语言模型系统

RWKV Runner 旨在消除大语言模型的使用门槛,全自动处理AI对话,并且提供了OpenAI API兼容的接口。使用起来简单方便,但是还是比较吃机器,显存2G到32G都可以使用,根据自己的模型选择即可。 总结起来: 使用起来方便简单,上手容易。需要有电脑基础,很多地方还不是傻瓜化。需…

ChatGLM :千亿基座的对话模型启动内测,单卡版模型已全面开源

近日,由清华技术成果转化的公司智谱 AI 开源了 GLM 系列模型的新成员——中英双语对话模型 ChatGLM-6B,支持在单张消费级显卡上进行推理使用。这是继此前开源 GLM-130B 千亿基座模型之后,智谱 AI 再次推出大模型方向的研究成果。与此同时&…

chatgpt赋能python:Python平面图制作教程

Python平面图制作教程 Python是一种高级编程语言,也是数据科学和机器学习领域中使用最广泛的编程语言之一。在数据可视化中,Python语言具有优秀的表现力和灵活性,可以为用户展示各种数据可视化方案。这篇文章将重点介绍Python如何制作平面图…

ChatGPT 高效对话-学习使用提示语Prompts​

我们整理了一些可以帮助你学习如何使用ChatGPT的资源,包括吴恩达教授最新推出的官方ChatGPT提示词工程师课程的中文B站视频资源,一些插件、使用ChatGPT的标准范式等。 我们将这些所有的相关网址收录到 webhub123 ChatGPT 高效对话-学习使用提示语Promp…

谷歌文本转语音(gtts)批量转换

1. 测试环境2. 谷歌云平台注册3. gtts 使用 3.1. 基本介绍3.2. 准备工作3.3. 本地环境变量设置3.4. 安装python包 4. 测试 最近工作中要将文本转换成多国语音,试了下gtts,效果不错,来记录下 1. 测试环境 项目版本操作系统Ubuntu20.04python3…

AI 换脸冒充明星直播带货:仅需 3.5 万元,随意“换脸”

昨日央视财经曝光了一些直播间使用 AI 换脸技术,冒充明星进行直播带货的现象。据悉,这种 AI 换脸技术可以在几个小时内完成,只需花费 3.5 万元就可以购买一套实时换脸的模型,可以随意替换素材,AI 实时换脸,…

【干货】2023直播电商带货playbook:违禁行为及用词指南.pdf(附下载链接)

省时查报告-专业、及时、全面的行研报告库 省时查方案-专业、及时、全面的营销策划方案库 【免费下载】2023年4月份热门报告合集 万字干货:ChatGPT的工作原理 无需翻墙,ChatGPT直接使用 2023年创业(有创业想法)必读手册 ChatGPT调…