人机对话笔记
Kevin&Swift
每天进步一点点.记录生活的一部分
展开
-
口语对话管理综述
口语对话管理综述作者:王菁华对话系统的基本流程1 语音识别(将用户输入的声音转化成文本)命令行输入时可不用(ASR)2自然语言分析(NLU) 对ASR输出的文本进行分析,建立语义表示。3对话管理 核心部分,根据NLU分析出的用户语义控制整个对话的进行4后台数据库 进行查询数据5自然语言生成 将文本结构合成声音(NLG) 核心部分:从NLU服务器接收分析出来的...原创 2018-11-26 09:02:46 · 542 阅读 · 0 评论 -
pydial相关论文初步整理
semi用户话语解析部分:1.基于知识共享的大规模多域信念跟踪 Large-scale Multi-Domain Belief Tracking with Knowledge Sharing(2018)链接:https://arxiv.org/abs/1807.065172.联合学习特色提取器的封建对话管理Feudal Dialogue Management with Jointly ...原创 2018-12-24 10:01:10 · 688 阅读 · 0 评论 -
添加自己的训练政策模型
pydial的主要目标便是提供一个通用的语言统计对话模型,开发者可以方便的向其中添加集成和测试自己的模型.pydial位主要模块都设计了明确定义的通用接口,为了了解这个,我们首先来看一下pydial的整体框架.如上所示,多域功能的对话模型主要使用主题跟踪器来进行实现,主题跟踪器来识别用户输入的主题,可以保证切换,从上一个对话领域切换到用户当前想要的对话领域,由上图可以看出,主题追踪器在整个对话...原创 2018-12-18 10:28:17 · 302 阅读 · 0 评论 -
python相关语法基础
python有办法将任意值转化为字符串,将它传入repr()函数或者str函数函数str()用于将值转为适合于人阅读的形式,而repr转为供解释器读的形式。repr()函数得到的字符串通常可以用来重新获得该对象,repr()的输入对python比较友好。通常情况下obj==eval(repr(obj))这个等式是成立的。obj = "i love python";print(obj...原创 2018-12-11 20:48:12 · 116 阅读 · 0 评论 -
nlu对话解析模块
SLU用于理解用户输入信息,将用户的语义拆成槽值对.例如如下所示:产生用户的意图,槽和对应的槽值.产生插槽和插槽值主要有两个解决方法。第一个涉及创建语法规则列表来解析用户的话语第二种方法依赖于统计训练模型,我们训练分类器根据训练数据直接标记话语。传统方法可以根据正则表达式来匹配用户的输入,随后可以达到解析用户话语的目的.也可以用传统的机器学习方法.例如通过svm的方法进行用...原创 2018-12-17 20:48:07 · 1196 阅读 · 0 评论 -
pydial训练政策policy module
人机对话的过程可以看做是多轮对话的过程,在传统方式中,我们可以通过手写规则,来依据用户的输入来决定系统的输出是什么.pydial提供了强化学习的环境..可以测试你自身的训练政策或者加载在你自己的系统中加载训练政策.手写规则:if global_summary['GLOBAL_BYCONSTRAINTS'] > 0.5 and global_summary['GLOBAL_COU...原创 2018-12-17 20:32:57 · 388 阅读 · 0 评论 -
NLG语言生成
在经过了(NLU)用户语言分析和对话模型生成(policy module)后,产生了相应的槽值对,例如所以,重要的是,是根据槽值对,产生相应的系统回答话语,来反馈给用户,我们可以将上述系统产生的动作产生如下的输出。所以,关键的步骤便是如何根据槽值对来产生对应的语言。第一种也是根据传统的模板的方法,利用正则表达式,系统决策是从本体库中查询用户相对应的所需数据,例如根据i wa...原创 2018-12-20 21:37:26 · 2142 阅读 · 1 评论 -
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128) 解决
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128) 解决办法在调试程序的时候,发现了存在如下错误,1、原因因为默认情况下,Python采用的是ascii编码方式2.解决方法1)第一种:这里我们将Python的默认编码方式修改为utf-8...原创 2018-12-20 16:53:47 · 2718 阅读 · 0 评论 -
pydial启动流程
通过加载配置文件进行启动,进入整个项目的根文件,pydial.py文件,加载的是这个文件中的chat_command的根文件,其中调用了整个项目的initialise(configId, configfile, seed, "chat", trainerrorrate=trainerrorrate)来进行预加载的初始化,在初始化的函数中,从整个配置文件中读取出,当前是否是单个领域,领域是...原创 2018-12-20 10:55:54 · 393 阅读 · 0 评论 -
pydial代码框架介绍
pydial是一个人机对话管理系统 现只支持英文版,目标改成中文支持.该对话系统是基于某个领域进行人机对话的系统,例如,在饭店,餐饮等领域进行对话.1.policy module(训练政策模型)人机对话可看成人与机器一个个轮回对话的过程.在传统的方法中我们可以手动进行编码规则,对用户的话语做出判断,随后决定回复哪一句,这样的问题是手工编写强度太大.另一种是基于统计规则的模型. py...原创 2018-11-27 11:48:22 · 1368 阅读 · 7 评论 -
人机对话资料
强化学习相关笔记:https://blog.csdn.net/aliceyangxi1987/article/details/73327378人机对话资料多轮对话之对话管理:Dialog Managementhttp://www.sohu.com/a/216827677_500659填槽与多轮对话https://coffee.pmcaff.com/article/971...原创 2018-11-26 09:06:16 · 932 阅读 · 0 评论 -
semo/template中文件个人理解
该文档中主要包含了2个部分:第一部分为定义对话系统回复的一系列规则。你可以使用$A,$B,$C来表示槽的键,而使用$V,$X等来表示槽的值。当然也可以使用 “|” 来定义相同的对话动作。第二部分包含了一系列酒店和定位。个人认为是系统回复信息的分类,根据不同的状态,填入相应的槽值对进行回馈。通过该area_goodformeal_str匹配,获取相应动作的对象后,根据槽值对再...原创 2018-12-24 11:07:15 · 512 阅读 · 0 评论