一种用于聊天机器人的数据处理方法及装置与流程

文档序号:15766491发布日期:2018-10-26 20:07阅读:215来源:国知局
本发明涉及大数据
技术领域
:,尤其涉及一种用于聊天机器人的数据处理方法及装置。
背景技术
::在互联网领域,聊天机器人已被大量使用,用于实现一些较为简单的人工问答。在实际应用中,提供聊天服务的机器人,一般都是基于检索的模型。基于检索的模型的聊天机器人虽然准确度较高,可控性较大,但是只能从现有知识库中检索答案,因此能给出的答案有限。用户在使用这类聊天机器人时,经常会遇到所提问题无法被回答,机器人只能反馈默认答复的情况,这就导致了聊天机器人的应用范围优先,抢购、促销等很多高刷新率的业务类型无法有效应用。技术实现要素:本发明的实施例提供一种用于聊天机器人的数据处理方法及装置,能够扩大聊天机器人的应用范围。为达到上述目的,本发明的实施例采用如下技术方案:从对话的历史数据中提取语句,并剔除所提取语句中的标点和表情字符,其中,所提取语句包括至少一个问答对,问答对包括了至少一个问题和与所述至少一个问题对应的答案;根据预设的黑名单,过滤所述所提取语句中的字符,所述黑名单中记录了至少1个字符;对所述所提取语句进行切词处理,并将切词处理所得的字符中出现频率低于阈值的,转换为预设字符;利用切词处理后的语句作为训练集,训练深度学习模型。本实施例中采用对话的历史数据作为训练集,并且对历史数据中提取的语句进行了大幅度的清理,包括提取高质量的问答对,去掉句子中不相关内容,去掉过长和过短的句子,用专有的切词工具进行切词等等。处理好的高质量问答对可以输入深度学习模型进行学习。而对话的历史数据则可以来源于不同业务类型的电商客服,从而实现了针对不同业务类型的电商客服,有区别得设置针对性的深度学习模型,提高生成型的深度学习模型应用在不同业务类型的聊天机器人的训练效果,使得聊天机器人的回答方式不再拘泥于知识库,扩大聊天机器人的应用范围。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本发明实施例提供的系统架构示意图;图2为本发明实施例提供的方法流程示意图;图3为本发明实施例提供的具体实例示意图;图4、图5为本发明实施例提供的装置结构示意图。具体实施方式为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本
技术领域
:技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本
技术领域
:技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。本实施例中的方法流程,具体可以在一种如图1所示的系统上执行,该系统包括:前端服务器、后台服务器和数据库。其中,前端服务器主要用于:具体用于接收用户设备发送的词组、语句和特殊符号(比如表情符号、颜文字等)等文本信息,在实际应用中,用户设备发送的搜索词主要由用户通过用户设备的输入设备比如:键盘、触摸屏、鼠标等输入用户设备;并向发布搜索工具的操作界面,以便于用户设备通过操作界面输入搜索词。后台服务器主要用于:对语句进行处理并训练深度学习模型,具体流程至少包括但不限于:从对话的历史数据中提取语句,并剔除所提取语句中的标点和表情字符;根据预设的黑名单,过滤所述所提取语句中的字符;对所述所提取语句进行切词处理,并将切词处理所得的字符中出现频率低于阈值的,转换为预设字符;利用切词处理后的语句作为训练集,训练深度学习模型。本实施例中所揭示的前端服务器以及后台服务器,具体可以是服务器、工作站、超级计算机等设备,或者是由多个服务器组成的一种用于数据处理的服务器集群系统。需要说明的是,在实际应用中,前端服务器和后台服务器通常可以集成在同一个服务器集群中,即通过同一个服务器集群同时承担前端服务器和后台服务器的功能,并用于执行本实施例所提供的流程。数据库主要用于:用于存储存储产品信息、电子商务平台、在线购物平台等在日常运行中生成的每日高频搜索词、用户的聊天记录等可以记录为对话的历史数据,本实施例中的对话可以理解为具备特定含义的字符串,这些字符串包括了汉字、数字、英文或者其他语言的字符组成的词组,也可以包括表情符、颜文字等特殊字符。本实施例中所揭示的数据库,具体可以是一种redis数据库或者其他类型的分布式数据库、关系型数据库等,具体可以是包括存储设备的数据服务器以及与数据服务器相连的存储设备,或者是由多个数据服务器和存储服务器组成的一种用于数据库的服务器集群系统。本实施例中所揭示的用户设备具体可以实做成单独一台装置,或整合于各种不同的媒体数据播放装置中,诸如机顶盒、移动电话、平板电脑(tabletpersonalcomputer)、膝上型电脑(laptopcomputer)、多媒体播放器、数字摄影机、个人数字助理(personaldigitalassistant,简称pda)、移动上网装置(mobileinternetdevice,mid)。本发明实施例提供一种用于聊天机器人的数据处理方法,如图2所示,包括:s1、从对话的历史数据中提取语句,并剔除所提取语句中的标点和表情字符。用户设备与前端服务器进行数据交互,具体到业务层面可以是用户通过用户设备输入对话框一些提问语句;之后,前端服务器上部署的聊天机器人,或者与客服人员通过自己的工作终端经由前端服务器与用户进行对话,并向对话框输入回答语句。前端服务器上可以运行各类业务系统,比如电子商务平台、在线购物平台等。业务系统在日常运行中生成的每日高频搜索词、用户的聊天记录等可以记录为对话的历史数据,对话的历史数据通常可以记录为指定时间内连续的问答语句。本实施例中的语句可以理解为具备特定含义的字符串,这些字符串包括了汉字、数字、英文或者其他语言的字符组成的词组,也可以包括表情符、颜文字等特殊字符。其中,所提取语句包括至少一个问答对,问答对包括了至少一个问题和与所述至少一个问题对应的答案。例如:在问答对可以是一定的时间范围内连续的问答对话,如示例1所示的:q:[多大毫安的];a:[亲稍等呢宝宝这边帮您看看奥]q:[我要是手机有问题可以去哪维修呢];a:[亲您可以联系我们在线客服帮您联系售后的哦]q:[什么时候能发货呢需要等多久];a:[亲您的详细地址省市区乡镇发我下小妹帮你快速的核实一下]q:[我用信用卡分期的话以后有钱的话可以一次性付清吗];a:[可以的呢]q:[订单会取消吗];a:[不会的]q:[我已经下单了但是我明天才付款可以吗];a:[您的订单号我帮您转接核实下好吗]q:[请问现在拍下什么时候可以到];a:[亲您的详细地址省市区乡镇发我下小妹帮你快速的核实一下]q:[可以送个贴膜吗];a:[亲这个没有的呢]q:[什么时候有货];a:[亲您的详细地址省市区乡镇发我下小妹帮你快速的核实一下]q:[收到有问题可以换吗];a:[可以的呢]q:[我可以直接在门店付款吗];a:[可以的呢]q:[有发票没有];a:[有的呢]q:[裸机是不是随便什么号码都能用呢];a:[是的]q:[移动购机送话费的和之前手机话费套餐有冲突吗];a:[亲您看中的是哪款宝贝呀可以提供一下商品链接吗谢谢]q:[这个价格和双十一是一样的吗];a:[亲这个是我们的活动哦]q:[在吗];a:[在的]q:[电信自动联通都能用吗];a:[是的呢]q:[怎么便宜这么多啊];a:[亲这个是unk的呢]q:[这种的可以去自提吗];a:[可以的]q:[请问煲机怎么煲];a:[亲您看中的是哪款宝贝呀可以提供一下商品链接吗谢谢]在示例1中,q表示用户输入的问题语句,a表示回答语句。本实施例中,标点可以理解为常用的标点字符,比如,。;‘’等。表情字符可以理解为各运营商提供的专用的表情符号,比如emoji。本实施例中,后太服务器过滤掉所有去掉标点和emoji后为空的消息。在切词之前过滤掉了emoji,排除了这些字符对句子中心语义的影响。具体的,表情符号词典,比如:emoji词典,也是用户设备上运行的聊天软件(聊天平台提供的用户侧的app)的运营商整理的,不同的聊天平台适用不同的表情符号词典。s2、根据预设的黑名单,过滤所述所提取语句中的字符。其中,所述黑名单中记录了至少1个字符。预设的黑名单中记录的字符可以实时更新,并且可以由人工干预的方式增减字符。所述黑名单中记录的字符通常是与对话无关的信息,比如脏话、无效的宣传用语、乱码等。s3、对所述所提取语句进行切词处理,并将切词处理所得的字符中出现频率低于阈值的,转换为预设字符。其中,本实施例可以采用目前常用的文字处理手段进行切词处理,并对字符中出现频率低于阈值的字符进行替换。例如:先过滤掉所有去掉标点和emoji后为空的消息;并基于自定义的黑名单过滤掉整条的消息;还基于自定义的黑名单过滤掉一条消息中无用的部分;之后过滤掉过短的消息。s4、利用切词处理后的语句作为训练集,训练深度学习模型。其中,深度学习模型主要可以采用cnn(卷积神经网络)、rnn(循环神经网络)两类。本实施例中以rnn为例,神经元采用了lstm(longshort-termmemory,长短期记忆网络)的优化。另一种和lstm相似的神经元叫gru(gatedrecurrentunit,是lstm的一个变体),相对来说参数更少更简洁一点,主要可以应用于参数较少的应用场景。目前,在实际应用中,提供聊天服务的,一般都是基于检索的模型,虽然准确度较高,可控性较大,但是能给出的答案有限(只能从现有知识库中检索),所以一些模型以前从未遇到过的问题,知识库中未必存在一个较合理的答案,利用生成型模型可以产生一些新的知识库中不存在的答案,也是潜在的更合理的答案。即,基于检索的模型回答是提前定义的,使用规则引擎、正则匹配或者深度学习训练好的分类器从知识库中挑选一个最佳的回复。而基于生成的模型不依赖于提前定义的回答,但是在训练的过程中,需要大量的语料,语料包含了context和response。当下流行使用lstm和rnn训练生成的模型,这种方法最早用来完成机器翻译的任务。在开放语境下,用户可以和聊天机器人聊任何话题。在封闭语境下,只能聊机器人设定的主题。由于一些模型以前从未遇到过的问题,知识库中未必存在一个较合理的答案,利用生成型模型可以产生一些新的知识库中不存在的答案,也是潜在的更合理的答案。本实施例的方案主要应用于生成型的深度学习模型,目的在于进一步提高深度学习模型的准确性。开放领域和封闭领域这两个主要从话题层面进行区分。在开放语境下,用户可以和聊天机器人聊任何话题。在封闭语境下,只能聊机器人设定的主题。本实施例中提到的深度学习模型,主要用于客服,所以属于封闭领域。具体的,针对不同业务类型的电商客服,可以有区别得设置针对性的深度学习模型,从而提高不同业务类型的聊天机器人的训练效果。又由于中文自然语言处理对切词的额外要求,所以难度更大,本实施例中,通过自定义的词典,可以大幅提高切词准确性,从而进一步提高深度学习模型的准确性。自定义的词典中的内容,具体可以包括:品牌、地名、敏感词等等如果不进行自定义会容易产生切词错误的词组,且很多切词错误都是发现后在自定义的词典中更新了相关词汇之后予以更正的。本实施例中采用对话的历史数据作为训练集,并且对历史数据中提取的语句进行了大幅度的清理,包括提取高质量的问答对,去掉句子中不相关内容,去掉过长和过短的句子,用专有的切词工具进行切词等等。处理好的高质量问答对可以输入深度学习模型进行学习。而对话的历史数据则可以来源于不同业务类型的电商客服,从而实现了针对不同业务类型的电商客服,有区别得设置针对性的深度学习模型,提高生成型的深度学习模型应用在不同业务类型的聊天机器人的训练效果,使得聊天机器人的回答方式不再拘泥于知识库,扩大聊天机器人的应用范围。在本实施例中,步骤s1在从对话的历史数据中提取语句之后,还包括:根据所述黑名单过滤所提取语句。其中,可以基于自定义的黑名单过滤掉整条的消息,也可以基于自定义的黑名单过滤掉一条消息中无用的字符。例如:所采集的历史数据刚好在过年时段,所以第一次回复经常出现模板化的过年问候。又例如:“店家您好,小二有事不在,请您稍后再联系。”等模板化的语句也是无用回复。在本实施例中,步骤s3在在将切词处理所得的字符中出现频率低于阈值的转换为预设字符之后,在切词后通过特殊的符号代替词语,比如:将出现频率很低的地名统一转化为同一种符号,将其他频率很低的词统一用unk符号(意思是“未知”)代替,将词语个数不定的句子统一转换为符号个数相同的句子,长度不足的用补位符号(pad符号)填充,并去掉过长的句子。具体还包括:统计各语句的字符数量。将字符数量低于语句长度下限的语句,通过补位符号(pad符号)填充。并将字符数量高于语句长度上限的语句剔除。比如:先读取自定义词典(包括地名,emoji,品牌,专有名词等等等等),将出现频率很低(即小于阈值)的地名统一转化为同一种符号,将其他频率很低(即小于阈值)的词统一用unk等符号(即一种预设字符,unk意思是“未知”)代替;之后将词语个数不定的句子统一转换为符号个数相同的句子,长度不足的用补位符号(pad符号)填充,并去掉过长的句子。在本实施例中,步骤s3在对所述所提取语句进行切词处理之后,还包括:识别表示地理信息的字符。按照所述表示地理信息的字符所表示的地理位置,选择对应所述地理位置的标识字符,并通过对应所述地理位置的标识字符替换所述表示地理信息的字符。由于在本实施例中会通过符号代替词语,比如:先读取自定义词典(包括地名,emoji,品牌,专有名词等等),将出现频率很低(即小于阈值)的地名统一转化为同一种符号,将其他频率很低(即小于阈值)的词统一用unk等符号(即一种预设字符,unk意思是“未知”)代替。因此,可以在后台服务器存储地名词典,把频率很低的地名统一替换成了特殊符号,表示地理信息的字符包括但不限于:国家名、省名、乡镇区县名、小物件无法送达区等。从而避免了一些出现频率比较低的地名被替代成了unk(“未知”)符号,某种程度上保持了语义的完整性。其中,对应所述地理位置的标识字符具体可以使地名的缩写,比如“阿联酋”的标识字符为ae、“中国”的标识字符为cn,省名、乡镇区县名等可以采用各国的标准缩写,比如:“江苏”的标识字符为“苏”、“su”等,南京的标识字符为“苏a”、“sua”等。进一步的,本实施例中还包括:在训练深度学习模型之前,从所述训练集的语句中,提取问答对的问题,并将所提取的问题倒装。其中,可以采用基于google开发的tensorflow工具包中的sequence-to-sequence深度学习模型进行的训练:该模型最早适用于把文本从一种语言翻译成另一种,而且在传统基础rnn模型的基础上加入了lstm做了优化,lstm的单元可以选择性的记忆前面重要的信息并并忽略掉不相关的信息,如图3所示的,在数据预处理阶段把每组问答对的问题部分倒装,这样可以把重要信息挪到离encoder的最终隐藏状态更近的位置,可以提高模型的准确性。当获取用户当前输入的问题时,在预设的知识库中进行答案匹配,并获取各个答案的匹配分数;当得分最高的匹配分数低于临界值时,通过所训练得深度学习模型获取答案并返回给所述用户。其中,可以在匹配知识库答案时设置一个临界值,在知识库中最高的匹配分数低于临界值时,在某种程度上说明知识库中不存在合适的答案,然后就转向生成型模型,希望生成模型能够产生一个更合理的答案。我觉得这种方案的应用场景像您之前说的那样,更适用于一些针对性不强的闲聊,当客户问出一个知识库中没有答案的闲聊问题时,可以尝试用生成模型解决。例如:问:最近有什么好看的电影呢?答(知识库匹配):您好,为您推荐如下几种家庭影院投影仪:xxxxxxx(知识库中找不到合适的答案)答(生成模型):小二最近比较忙,没有时间看电影呢本实施例中采用对话的历史数据作为训练集,并且对历史数据中提取的语句进行了大幅度的清理,包括提取高质量的问答对,去掉句子中不相关内容,去掉过长和过短的句子,用专有的切词工具进行切词等等。处理好的高质量问答对可以输入tensorflow工具包中的sequence-to-sequence深度学习模型进行学习,从而得到我们自己的生成型模型,用于辅助现有的检索型模型。其中,google开发的tensorflow工具包中的sequence-to-sequence深度学习模型最早适用于把文本从一种语言翻译成另一种,而且在传统基础rnn模型的基础上加入了lstm做了优化。sequence-to-sequence深度学习模型起先只应用于文本翻译,后来应用在英文聊天机器人时也并不存在因为需要切词但是切词不准确而造成的训练集数据质量很低的问题。本实施例在对话的历史数据预处理上应用的规则能够极大的提高训练集数据的质量,从而保证了生成模型训练的质量。具体通过把对话额历史数据作为训练集,并对历史数据中提取的语句进行了大幅度的清理,包括提取高质量的问答对,去掉句子中不相关内容,去掉过长和过短的句子,用专有的切词工具进行切词等等。处理好的高质量问答对输入tensorflow工具包中的sequence-to-sequence模型进行学习,从而得到我们自己的生成型模型,用于辅助现有的检索型模型。本实施例是对基于sequence-to-sequence深度学习模型的生成型中文客服聊天机器人的一种改造。针对不同业务类型可以人工定义的合适的规则,来提取高质量的问答对作为训练集,可以提高训练出的模型的质量。且训练模型时设置了一套独有的参数,从而使模型达到比较好的效果。本发明实施例还提供一种用于聊天机器人的数据处理装置,该装置具体可应用在如图1所示的后台服务器上,如图4所示的,该装置包括:提取模块,用于从对话的历史数据中提取语句,并剔除所提取语句中的标点和表情字符,其中,所提取语句包括至少一个问答对,问答对包括了至少一个问题和与所述至少一个问题对应的答案;筛选模块,用于根据预设的黑名单,过滤所述所提取语句中的字符,所述黑名单中记录了至少1个字符;处理模块,用于对所述所提取语句进行切词处理,并将切词处理所得的字符中出现频率低于阈值的,转换为预设字符;训练模块,用于利用切词处理后的语句作为训练集,训练深度学习模型。进一步的,所述筛选模块,还用于在从对话的历史数据中提取语句之后,根据所述黑名单过滤所提取语句;所述处理模块,还用于在对所述所提取语句进行切词处理之后,识别表示地理信息的字符;按照所述表示地理信息的字符所表示的地理位置,选择对应所述地理位置的标识字符,并通过对应所述地理位置的标识字符替换所述表示地理信息的字符。所述筛选模块,还用于在将切词处理所得的字符中出现频率低于阈值的转换为预设字符之后,统计各语句的字符数量;并将字符数量低于语句长度下限的语句,通过补位符号(pad符号)填充;之后将字符数量高于语句长度上限的语句剔除。所述训练模块,具体用于在训练深度学习模型之前,从所述训练集的语句中,提取问答对的问题,并将所提取的问题倒装;进一步的,如图5所示的,所述装置还包括:反馈模块,用于获取当前输入用户设备的问题,在预设的知识库中进行答案匹配,并获取各个答案的匹配分数;当得分最高的匹配分数低于临界值时,通过所训练得深度学习模型获取答案并返回给所述用户设备。目前,在实际应用中,提供聊天服务的,一般都是基于检索的模型,虽然准确度较高,可控性较大,但是能给出的答案有限(只能从现有知识库中检索),所以一些模型以前从未遇到过的问题,知识库中未必存在一个较合理的答案,利用生成型模型可以产生一些新的知识库中不存在的答案,也是潜在的更合理的答案。即,基于检索的模型回答是提前定义的,使用规则引擎、正则匹配或者深度学习训练好的分类器从知识库中挑选一个最佳的回复。而基于生成的模型不依赖于提前定义的回答,但是在训练的过程中,需要大量的语料,语料包含了context和response。当下流行使用lstm和rnn训练生成的模型,这种方法最早用来完成机器翻译的任务。在开放语境下,用户可以和聊天机器人聊任何话题。在封闭语境下,只能聊机器人设定的主题。由于一些模型以前从未遇到过的问题,知识库中未必存在一个较合理的答案,利用生成型模型可以产生一些新的知识库中不存在的答案,也是潜在的更合理的答案。本实施例的方案主要应用于生成型的深度学习模型,目的在于进一步提高深度学习模型的准确性。开放领域和封闭领域这两个主要从话题层面进行区分。在开放语境下,用户可以和聊天机器人聊任何话题。在封闭语境下,只能聊机器人设定的主题。本实施例中提到的深度学习模型,主要用于客服,所以属于封闭领域。具体的,针对不同业务类型的电商客服,可以有区别得设置针对性的深度学习模型,从而提高不同业务类型的聊天机器人的训练效果。又由于中文自然语言处理对切词的额外要求,所以难度更大,本实施例中,通过自定义的词典,可以大幅提高切词准确性,从而进一步提高深度学习模型的准确性。本实施例中采用对话的历史数据作为训练集,并且对历史数据中提取的语句进行了大幅度的清理,包括提取高质量的问答对,去掉句子中不相关内容,去掉过长和过短的句子,用专有的切词工具进行切词等等。处理好的高质量问答对可以输入深度学习模型进行学习。而对话的历史数据则可以来源于不同业务类型的电商客服,从而实现了针对不同业务类型的电商客服,有区别得设置针对性的深度学习模型,提高生成型的深度学习模型应用在不同业务类型的聊天机器人的训练效果,使得聊天机器人的回答方式不再拘泥于知识库,扩大聊天机器人的应用范围。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1