一种聊天代理系统及方法
【技术领域】
[0001]本申请涉及社交网络及电子通信,尤其涉及一种模拟特定用户的属性和说话特点,与其它用户进行个性化聊天的聊天代理系统及方法。
【背景技术】
[0002]随着社交网络和其他类型的电子通信的流行,用户之间通过网络进行实时聊天已非常普及。在这样的背景下,各种各样的聊天机器人也应运而生。
[0003]较为初级的聊天机器人通过对对方聊天内容进行语义分析和理解,检索数据库获得相应回答。理论上说,只要堆砌足够大的数据库,在回答问题方面都能做到较为相近的正确率。
[0004]然而,回答正确只是较为初级的目标,聊天机器人的设计者及使用者都希望聊天机器人能够显示出像真人一样的智能。目前,大部分聊天机器人无论表现出的“智能”水平的高低,都是作为网络中的一个一般的“虚拟人”来与用户聊天,而不能模拟某个特定用户,与其他用户进行聊天。
【发明内容】
[0005]本申请提供了一种聊天代理系统及方法,可以模拟特定用户的属性和说话特点,与其它用户进行个性化聊天。
[0006]本申请实施例提供的一种聊天代理系统,该聊天代理系统包括:聊天代理模块、人物属性数据库和对话语句数据库;
[0007]所述人物属性数据库用于记录第一用户以及与第一用户对话的第二用户的属性信息;
[0008]所述对话语句数据库用于记录对话的回复内容,以及从对话内容中学习得到的对话问答信息;
[0009]所述聊天代理模块用于根据来自第二用户的聊天内容,查询人物属性数据库以及对话语句数据库,根据第一用户和第二用户的人物属性以及第一用户与第二用户的关系类另IJ,筛选符合第一用户的语言风格、背景知识与记忆的候选回复内容,并将筛选出的候选回复内容发送给第二用户;以及根据第二用户的聊天内容对对话语句数据库进行更新。
[0010]可选地,所述关系类别包括亲密度,亲密度分为熟悉、一般、陌生;对不同的对话者的关系类别,分别设置默认的信息披露模式;所述回复内容中,对于“熟悉”类型默认披露的信息最多,对于“陌生”类型默认披露的信息最少。
[0011]可选地,当聊天代理模块在代理聊天过程中无法检索到合适的回复内容时,主动中断聊天代理,将相关提示信息发送给第一用户;聊天代理模块记录第一用户的人工回复内容,并根据人工回复内容更新对话语句数据库。
[0012]可选地,所述聊天代理模块进一步包括:用户交互模块、自然语言处理模块、查询匹配答案模块和知识学习模块;
[0013]第一用户和第二用户通过用户交互模块与系统进行交互,自然语言处理模块用于对接收到的各个数据进行预处理,然后再经过知识学习模块学习得到知识写入人物属性数据库或对话语句数据库,或者经过查询匹配答案模块查询第一用户的人物属性数据库和对话语句数据库获得最终的回复消息。
[0014]可选地,新用户通过用户交互模块提供特定信息注册,聊天代理系统通过用户交互模块返回给用户注册成功的反馈;老用户通过用户交互模块提供账号和密码登录聊天代理系统,聊天代理系统通过用户交互模块返回给用户代理成功的反馈;登陆成功后,用户通过用户交互模块录入学习资料,聊天代理系统将用户录入的学习资料经过自然语言处理模块和知识学习模块学习成功后,通过用户交互模块返回给用户学习成功的反馈。
[0015]可选地,自然语言处理模块通过信息来源和类型的判断,将数据的来源和类型做出标记分出三类:作为学习资料的用户输入文本、作为学习资料的历史聊天记录和来自第二用户的话语;将来自第二用户的话语进行句型和话题的判定,并抽取出句子主干;对用户输入文本做分句、分词和主干提取;用户输入文本以及历史聊天记录的处理结果发送到知识学习模块,来自对话者的话语的处理结果发送到查询匹配答案模块;
[0016]查询匹配答案模块接收来自自然语言处理模块的对话语句的处理结果,在公共话语数据库或对话语句数据库中匹配出若干候选答案,通过对话者属性、对话语境等判别标准的衡量,选择出一个最优答案作为代理对话反馈给用户交互模块;
[0017]知识学习模块用于接收经过自然语言处理模块处理的用户输入文本以及历史聊天记录的处理结果,通过实体关系抽取、文本摘要操作,提取出第一用户和第二用户的相关属性写入人物属性数据库;摘取出的句子和小型段落写入对话语句数据库;自然语言处理模块对聊天记录的处理结果会追加到原始记录数据库;知识学习模块还用于将更新后的原始记录数据库新建或追加到对话语句数据库,通过文本相似度、聚类整合和去重手段,将对话语句数据库整合成某一模式问题的不同关系类型在不同语境下的不同回复;学习的过程结束后都要给用户交互模块返回学习成功的信息。
[0018]可选地,所述聊天代理系统进一步包括数据库维护模块,用于提供维护操作接口,实现人工或自动方式对公共数据库的更新或扩充,以及对对话语句数据库和/或人物属性数据库进行修改;所述人工修改的优先级大于自动修改。
[0019]本申请实施例还提供了一种聊天代理方法,包括如下步骤:
[0020]A、建立人物属性数据库和对话语句数据库;
[0021]B、第一用户选择第二用户作为对话者,并启用聊天代理系统;
[0022]C、聊天代理系统根据来自第二用户的聊天内容,查询人物属性数据库以及对话语句数据库,根据第一用户和第二用户的人物属性以及第一用户与第二用户的关系类别,筛选符合第一用户的语言风格、背景知识与记忆的候选回复内容;
[0023]D、判断是否中断聊天代理,若是,结束本流程,转入非代理聊天模式或者结束聊天,否则,继续执行步骤E ;
[0024]E、聊天代理系统将筛选出的候选回复内容发送给第二用户;
[0025]F、根据当前的聊天内容,判断是否需要对对话语句数据库进行更新,若是,则更新对话语句数据库;然后返回步骤C。
[0026]可选地,步骤D包括:当聊天代理模块在代理聊天过程中无法检索到合适的回复内容时,中断聊天代理,将相关提示信息发送给第一用户;聊天代理模块记录第一用户的人工回复内容,并根据人工回复内容更新对话语句数据库。
[0027]可选地,该方法进一步包括:采用基于规则的方法和机器学习的方法建立人物属性数据库;
[0028]所述基于规则的方法,是基于触发词、基于词典和规则匹配相结合的方法,利用触发词来缩小抽取范围,再综合词典的查找和规则的匹配实现的人物属性抽取工作;触发词是指对某一属性抽取起到定位、识别的作用,并能够激活抽取任务的词;
[0029]所述机器学习的方法先利用一部分数据作为训练数据学习得到模型,再对待抽取数据进行预测和分类实现属性抽取;对于不同的属性利用不同的方法进行抽取;
[0030]出生、死亡相关的属性利用规则进行抽取,工作经历、学习经历、家庭关系等属性使用机器学习的方法实现抽取。
[0031]从以上技术方案可以看出,通过设置人物属性数据库和对话语句数据库,根据不同对话者可以给出不同的符合被代理人的身份以及人物关系的对话内容,使得聊天对方获得与被代理人本人聊天近似的体验。
【附图说明】
[0032]图1为本申请实施例提供的聊天代理的进行聊天的基本实现流程示意图;
[0033]图2为本申请的一个实施例提供的聊天代理系统的基本框架示意图;
[0034]图3为本申请实施例提供的聊天代理模块的结构示意图;
[0035]图4为本申请的一个实施例给出的用户交互模块301的内部结构示意图;
[0036]图5为本申请的另一个实施例给出的自然语言处理模块302的内部结构示意图;
[0037]图6.为本申请的另一个实施例给出的查询匹配答案模块303的内部结构示意图;
[0038]图7为本申请的另一个实施例给出的知识学习模块304的内部结构示意图。
[0039]图8为本申请实施例提供的人物属性抽取原理示意图;
[0040]图9为本申请的一个实施例提供的聊天代理进行对话的流程示意图;
[0041]图10为本申请的一个实施例提供的对话语句数据库的生成过程示意图。
【具体实施方式】
[0042]本申请提供的聊天代理系统及方法,其目的是模拟某个特定用户(以下称为用户A)的属性和说话特点与其他用户进行聊天,使其他用户获得近似与用户A本人聊天的体验。由于用户A与不同用户的关系不同,其说话方式也会存在差异(例如,与同事说话和与父母说话,其说话方式一般会存在差异),为了更为真实地模拟用户A,聊天代理的聊天内容应当随着聊天对象的不同也会做出调整。
[0043]为使本申请技术方案的技术原理、特点以及技术效果更加清楚,以下结合具体实施例对本申请技术方案进行详细阐述。
[0044]本申请实施例提供的聊天代理的进行聊天的基本实现流程如图1所示,包括:
[0045]步骤101:建立人物属性数据库和对话语句数据库。
[0046]其中,人物属性数据库用于记录用户A的