基于强化学习的关键词抽取方法与流程

文档序号:16088197发布日期:2018-11-27 22:41阅读:219来源:国知局
本申请涉及自然语言处理
技术领域
,尤其是一种基于强化学习的关键词抽取方法。
背景技术
:随着互联网企业的用户增多,人工客服由于繁忙不能及时回复用户问题导致用户对企业印象降低,因此智能机器人应运而生。相关技术中,智能机器人的工作方法为:首先是对用户高频、意图明确的热门问题进行分析,抽象成若干类标准问句(FrequentlyAskedQuestions,简称FAQ),对每一个FAQ由专业的业务人员标记好标准答案,然后针对未来用户的问题,采用技术手段分析该问题是否能够匹配到任何一个已有的FAQ,若成功匹配则将预先标记好的答案返回给用户从而,达到高效地解决用户疑问的效果。但上述智能客服机器人主要为单轮问答,即用户提出一个问题,由智能客服机器人返回给用户一个回答,并终止该问答。而当用户基于上一问答语境继续提问时,由于智能客服机器人无法准备把握上下文内容对话语境,因此常常答非所问,使得用户满意度大大降低,相关技术中,为使智能客服机器人结合上下文情境,在对话中为下文提供额外帮助理解的内容,采用编码-解码的方式,即将上文中整句话进行编码,并在下文的对话中进行解码拼接在下文问句内,作为下文的额外输入。但这种方式无法显式的保存上文对话信息,且将经过编码的上文内容直接拼接到下文中,不仅不能有效提取关键词信息,还会造成数据冗余,不利于在下文对话内容中进行明确的指代消解,对下文问答的辅助作用较小,因此,亟需一种新型的可保障多轮对话持续有效进行的技术方案来解决这一问题。技术实现要素:为至少在一定程度上克服相关技术中存在的问题,本申请提供一种基于强化学习的关键词抽取方法,包括:将多组对话数据组成的语料库进行预处理;将所述语料库中第n组对话建立一个关键词记忆槽Gn,所述关键词记忆槽Gn用于记录第n组对话的多个历史关键词的词向量;将关键词记忆槽Gn进行初始化得到关键词记忆槽GL;利用强化学习模型对关键词记忆槽GL进行多轮更新得到关键词记忆槽G'L,所述关键词记忆槽G'L中包括从第n组对话中抽取的多个关键词的词向量。进一步的,所述将多组对话数据组成的语料库进行预处理,包括:建立词向量与关键词词语对应关系表,依照所述词向量与关键词词语对应关系表对所述语料库中所有对话的问句和答句进行向量转化,第n组对话中第i个问句进行向量转化得到Si,与第i个问句对应的标准答句进行向量转化得到Yi。更进一步的,所述对所述语料库中所有对话的问句和答句进行向量转化,包括:使用Word2Vec工具将所述语料库中所有对话的问句和与问句对应的标准答句转化为向量形式。进一步的,所述将关键词记忆槽Gn进行初始化,包括:对关键词记忆槽Gn进行长度初始化和向量初始化,所述长度初始化包括将所述关键词记忆槽Gn的长度设置为L,所述向量初始化包括将所述关键词记忆槽Gn中向量设置为0,得到关键词记忆槽GL=[0,0,...,0]。进一步的,所述利用强化学习模型对关键词记忆槽GL进行多轮更新得到关键词记忆槽G'L,包括:从句首到句尾依次扫描第n组对话中当前问句Si中的每个词,并以当前扫描词Ci和所述第n组对话的当前关键词记忆槽GL的拼接向量作为状态s,即s=[Ci,GL];将状态s作为输入带入强化学习模型中,得到输出动作a,所述动作a为取值范围在[0,L]的正整数;将状态转移概率P(s'|s,a)设置为1,以使状态s每次执行动作a后都能发生状态迁移得到新状态s’;根据动作a的值判断当前扫描词是否为关键词;计算奖励函数R(s,a);根据奖励函数R(s,a)值确定下一次训练时动作a的输出值;将强化学习训练次数设置为M次,即所述利用强化学习模型对关键词记忆槽GL进行M轮更新得到关键词记忆槽G'L,所述关键词记忆槽G'L中包括动作a的输出值。进一步的,所述根据动作a的值判断当前扫描词是否为关键词,包括:若动作a为0,则当前扫描词Ci不为关键词,否则,将当前扫描词Ci视为关键词,并更新关键词记忆槽GL。更进一步的,所述将当前扫描词Ci视为关键词,并更新关键词记忆槽GL,包括:将当前扫描词Ci存储到关键词记忆槽GL的第k个位置上,所述k为动作a输出的的值。进一步的,所述计算奖励函数R(s,a),包括:若当前扫描词Ci是句尾词,则将当前问句Si与第n组对话的当前关键词记忆槽GL进行向量拼接得到[Ci,GL];根据所述向量[Ci,GL]输出预测回答向量Pi;计算预测回答向量Pi和标准答句Yi的平方误差的负数作为奖励函数R(s,a),即R(s,a)=-(Pi-Yi)2;若当前扫描词Ci不是句尾词,奖励函数R(s,a)为0。更进一步的,所述根据所述向量[Si,GL]输出预测回答向量Pi,包括:将所述向量[Ci,GL]输入神经网络模型,根据所述神经网络模型输出预测回答向量Pi。进一步的,所述方法还包括:将更新后关键词记忆槽G'L中词向量进行反预处理操作得到关键词词语,所述反预处理操作包括:依据词向量与关键词词语的对应关系表提取词向量对应的关键词词;或者,将所述关键词记忆槽G'L中的关键词词向量拼接到所述第n组对话的下一问句中,补充所述下一问句中缺失的关键词信息。本申请的实施例提供的技术方案可以包括以下有益效果:通过将所述语料库中第n组对话建立一个关键词记忆槽Gn,将关键词记忆槽Gn初始化后得到关键词记忆槽GL,利用强化学习模型将关键词记忆槽GL进行多轮更新得到关键词记忆槽G'L,所述关键词记忆槽G'L中包括第n组对话中抽取出关键词词向量,将关键词词向量拼接到所述第n组对话的下一问句中,补充所述下一问句中缺失的关键词信息,从而有效提高了下文的标准问答回复准确率,并且可保障多轮对话持续有效进行。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。图1是本申请一个实施例提供的基于强化学习的关键词抽取方法的流程图。图2是本申请另一个实施例提供的基于强化学习的关键词抽取方法的流程图。具体实施方式下面结合附图和实施例对本发明进行详细的描述。图1是本申请一个实施例提供的基于强化学习的关键词抽取方法的流程图。如图1所示,本实施例的方法包括:S11:将多组对话数据组成的语料库进行预处理。所述语料库由多组高频标准问答FAQ的对话数据组成,将所述语料库作为强化学习的交互环境。所述将多组对话数据组成的语料库进行预处理,包括:建立词向量与关键词词语对应关系表,依照所述词向量与关键词词语对应关系表对所述语料库中所有对话的问句和答句进行向量转化,第n组对话中第i个问句进行向量转化得到Si,与第i个问句对应的标准答句进行向量转化得到Yi。所述对语料库中所有对话的问句和答句进行向量转化,包括:使用Word2Vec工具将所述语料库中所有对话的问句和标准答句转化为向量形式。所述Word2Vec是Google开源的一款用于词向量计算的工具。S12:将所述语料库中第n组对话建立一个关键词记忆槽Gn,所述关键词记忆槽Gn用于记录第n组对话的多个历史关键词的词向量。S13:将关键词记忆槽Gn进行初始化得到关键词记忆槽GL。所述将关键词记忆槽Gn进行初始化,包括:对关键词记忆槽Gn进行长度初始化和向量初始化,所述长度初始化包括将所述关键词记忆槽Gn的长度设置为L,所述向量初始化包括将所述关键词记忆槽Gn中向量设置为0,得到关键词记忆槽GL=[0,0,...,0],例如L=5,则GL=[0,0,0,0,0]。S14:利用强化学习模型对关键词记忆槽GL进行多轮更新得到关键词记忆槽G'L,所述关键词记忆槽G'L中包括从第n组对话中抽取的多个关键词的词向量。从句首到句尾依次扫描第n组对话中当前问句Si中的每个词,并以当前扫描词Ci和所述第n组对话的当前关键词记忆槽GL的拼接向量作为状态s,即s=[Ci,GL];将状态s作为输入带入强化学习模型中,得到输出动作a,所述动作a为取值范围在[0,L]的正整数;将状态转移概率P(s'|s,a)设置为1,以使状态s每次执行动作a后都能发生状态迁移得到新状态s’;根据动作a的值判断当前扫描词是否为关键词;计算奖励函数R(s,a);根据奖励函数R(s,a)值确定下一次训练时动作a的输出值;将强化学习训练次数设置为M次,即所述利用强化学习模型对关键词记忆槽GL进行M轮更新得到关键词记忆槽G'L,所述关键词记忆槽G'L中包括动作a的输出值。所述根据动作a的值判断当前扫描词是否为关键词,包括:若动作a为0,则当前扫描词Ci不为关键词,否则,将当前扫描词Ci视为关键词,并更新关键词记忆槽GL。所述将当前扫描词Ci视为关键词,并更新关键词记忆槽GL,包括:将当前扫描词Ci存储到关键词记忆槽GL的第k个位置上,所述k为动作a输出的的值。将更新后关键词记忆槽G'L中词向量进行反预处理操作得到关键词词语,所述反预处理操作包括:依据词向量与关键词词语的对应关系表提取词向量对应的关键词词;将更新后记忆槽G'L中词向量进行所述反预处理操作得到关键词词语,方便技术人员直观查看抽取的关键词,技术人员可以根据关键词词语验证和改进强化学习模型。或者,将所述关键词记忆槽G'L中的关键词词向量拼接到所述第n组对话的下一问句中,补充所述下一问句中缺失的关键词信息。所述记忆槽G'L中存储了所述语料库中第n组对话的关键词,在用户提出新的问题后,所述方法将所述记忆槽G'L中关键词附加在新的问题后一起带入神经网络模型,从而输出新问题的准确答句。例如,用户提问1为“我想预定酒店,该如何操作?”,提问2为“如何收费?”,所述方法首先将每个问题进行预处理操作,例如提问1为“我想预定酒店,如何操作?”经过预处理后得到向量S1=[1,2,3,4,5,6,7],词向量与关键词词语的对应关系表如表1所示。表1问句关键词词语问句关键词向量我1想2预定3酒店4该5如何6操作7提问2“如何收费?”转换为向量为S2=[6,8]。在强化学习模型训练集中将给出S1的标准答句Y1,S2的标准答句Y2,Y1、Y2具体内容不再赘述。为提问1和提问2这组对话建立一个关键词记忆槽Gn,所述关键词记忆槽Gn用于记录提问1的关键词;将关键词记忆槽Gn进行初始化得到GL,设定L=5,则GL初始化为[0,0,0,0,0];利用强化学习模型将关键词记忆槽GL更新为关键词记忆槽G'L,所述关键词记忆槽G'L中为从第n组对话中抽取的关键词的词向量。从句首到句尾依次扫描对话中当前问句S1中的每个词,并以当前扫描词例如为“我”,转化为词向量后为[1]和所述对话的当前关键词记忆槽GL的拼接向量作为状态s,即s=[1,0,0,0,0,0];将状态s作为输入带入强化学习模型中,得到输出动作a,所述动作a为取值范围在[0,5]的正整数,若a=0,则当前扫描词“我”不是关键词;若a≠0,则当前扫描词“我”是关键词,并将当前扫描词“我”存储到关键词记忆槽GL的第k个位置上,所述k为动作a输出的的值,例如为k=5,则更新为关键词记忆槽G'L=[0,0,0,0,1];因为当前扫描词“我”不是句尾词,奖励函数R(s,a)为0,继续扫描下一词“想”,因为状态转移概率P(s'|s,a)为1,则得到新状态s’=[2,0,0,0,0,1],由新状态s’得到的新动作a’,若a’=3,当前关键词记忆槽更新为[0,0,2,0,1];依次扫描提问1句的所有词语,直到当前扫描词为句尾词“操作”,计算奖励函数R(s,a),根据奖励函数R(s,a)不断修正动作a的输出。重复上述过程M次后,设定M=100,使得最终输出关键词记忆槽G'L=[6,4,1,2,3]结果为将关键词“酒店”带入提问2中,通过神经网络模型后输出预测答句与训练集中标注答句Y2误差最小,以保障多轮对话持续有效进行。可以理解的是,所述方法对使用场景与具体对话内容无严格限制,以及对强化学习模型的训练过程和参数范围无严格限制以及对预测回答的计算方法包括但不限于神经网络模型。本实施例中,通过将所述语料库中第n组对话建立一个关键词记忆槽Gn,将关键词记忆槽Gn初始化后得到关键词记忆槽GL,利用强化学习模型将关键词记忆槽GL进行多轮更新得到关键词记忆槽G'L,所述关键词记忆槽G'L中包括第n组对话中抽取出关键词词向量,有效提高了下文的标准问答回复准确率,并且可保障多轮对话持续有效进行,并且,显式抽取上文关键词并拼接到下文内容中,可使技术人员直观看到关键词内容,便于对算法和模型进行调整,以输出最准确的关键词。图2是本申请另一个实施例提供的基于强化学习的关键词抽取方法的流程图。如图2所示,本实施例在上一实施例基础上,所述计算奖励函数R(s,a)的方法包括:S21:判断当前扫描词Ci是否为句尾词,若不是句尾词进入步骤S22;若是句尾词进入S23;S22:若当前扫描词Ci不是句尾词,奖励函数R(s,a)为0;S23:若当前扫描词Ci是句尾词,则将当前问句Si与第n组对话的当前关键词记忆槽GL进行向量拼接得到[Ci,GL];S24:根据所述向量[Ci,GL]输出预测回答向量Pi;将所述向量[Ci,GL]输入神经网络模型,根据所述神经网络模型输出预测回答向量Pi。所述神经网络模型为现有技术,例如为申请公布号为CN107562792A《一种基于深度学习的问答匹配方法》中公布的卷积神经网络模型。S25:计算预测回答向量Pi和标准答句Yi的平方误差的负数作为奖励函数R(s,a),即R(s,a)=-(Pi-Yi)2。奖励函数R(s,a)值越大,说明输出的动作越满足状态的要求,即输出的关键词向量越准确,在下一次训练中,动作a会趋向于奖励函数R(s,a)值大的方向输出,通过奖励函数R(s,a)的作用,可以使强化学习模型筛选出满足上下文语境要求的关键词,从而提高客服机器人回复准确率。本实施例中,通过对强化学习模型中参数的选取与调整,不断寻求最准确的关键词与下文进行结合以得到最准确答句,从而提高客服机器人智能性。可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属
技术领域
的技术人员所理解。应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。本
技术领域
的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。需要说明的是,本发明不局限于上述最佳实施方式,本领域技术人员在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是具有与本申请相同或相近似的技术方案,均落在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1