一种机器阅读理解的方法、电子设备及可读存储介质
技术领域
本发明实施例涉及自然语言处理领域,特别涉及一种机器阅读理解的方法、电子设备及可读存储介质。
背景技术
机器阅读是自然语言处理中最为热门和棘手的问题之一,机器阅读通常是给定一个问题,以及待阅读文本,该文本包含该问题的答案,机器通过阅读文本后,给出问题对应的答案。
随着近年来几个高质量数据集的发布,以神经网络为基础的模型在机器阅读上的表现越来越好,甚至在一些数据集上超过了人类。一个高效的机器阅读模型可以在以语义理解为基础的众多领域得到广泛应用,如对话机器人,问答***和搜索引擎等。
发明人发现相关技术中至少存在如下问题:目前的机器阅读通常是基于一个问题和一个对应的文档进行机器阅读,但是实际应用中,由于确定的文档并不一定准确,则基于一个文档查找到的答案,可能并不是该问题的正确答案,这导致目前的机器阅读得到的答案的正确率低,降低了机器阅读理解的应用。
发明内容
本发明实施方式的目的在于提供一种机器阅读理解的方法、电子设备及可读存储介质,能够准确确定出问题的答案,提高机器阅读理解预测答***性。
为解决上述技术问题,本发明的实施方式提供了一种机器阅读理解的方法,包括:根据待回答的问题以及包含问题对应的第一候选答案的各候选文档,确定各候选文档各自对应的第一候选答案集合;分别从每个第一候选答案集合中选取重要程度满足第一筛选条件的第一候选答案,作为第二候选答案,第一候选答案的重要程度是基于第一候选答案的第一特征信息确定;汇集从每个第一候选集合中选取的第二候选答案组成第二候选答案集合;从第二候选集合中选取重要程度满足第二筛选条件的第二候选答案作为问题的目标答案,第二候选答案的重要程度是基于第二候选答案的第二特征信息确定,其中,第二特征信息包含的特征多于所述第一特征信息包含的特征。
本发明的实施方式还提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的机器阅读理解的方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的机器阅读理解的方法。
本发明实施方式相对于现有技术而言,先根据重要程度,从每个第一候选答案集合中筛选出满足第一筛选条件的第一候选答案,并将选取的第一候选答案作为第二候选答案,汇集所有的第二候选答案组成第二候选答案集合,经过第一次的筛选,剔除了不可能的第一候选答案,从而缩小了后续确定目标答案的范围;并对第二候选答案集合中的第二候选答案的重要程度进行再次筛选,确定目标答案,由于第二候选答案的重要程度是基于第二特征信息确定的,而第二特征信息的特征多于第一特征信息,更多的特征更符合实际应用,使得基于第二特征信息确定的重要程度更加准确,进而根据第二候选答案的重要程度确定的目标答案更加准确;另外,本实施方式获取多个候选文档,增加了候选文档的数目,可以减小因提供错误文档导致最终确定的目标答案错误的概率。
另外,第一筛选条件为第一候选答案集合中在重要程度的降序排列中的前K个第一候选答案,K为大于0的整数;分别从每个第一候选答案集合中选取重要程度满足第一筛选条件的第一候选答案,作为第二候选答案,具体包括:针对每个第一候选答案集合进行如下处理:根据第一候选答案集合中每个第一候选答案的第一特征信息,确定每个第一候选答案的重要程度;按照每个第一候选答案的重要程度,进行重要程度的降序排列;选取在重要程度的降序排列中的前K个第一候选答案作为K个第二候选答案。针对每个第一候选答案集合进行筛选,选取每个第一候选答案集合中重要程度排列在前K个的第一候选答案,由于重要程度越高,表明对应的第一候选答案是目标答案的概率越高,因而选取前K个第一候选答案,可以有效缩小后续确定目标答案的范围。
另外,根据第一候选答案集合中每个第一候选答案的第一特征信息,确定每个第一候选答案的重要程度,具体包括:根据每个第一候选答案的第一特征信息,构建每个第一候选答案的第一特征向量;将每个第一候选答案的第一特征向量输入预设的第一排序模型,获得第一候选集合中的每个第一候选答案的重要程度,第一排序模型是根据答案样本的第一特征向量以及每个答案样本的重要程度训练获得。利用第一排序模型可以快速且准确地确定出每个第一候选答案的重要程度。
另外,第二筛选条件为重要程度最大的第二候选答案;从第二候选集合中选取重要程度满足第二筛选条件的第二候选答案作为问题的目标答案,具体包括:根据每个第二候选答案的第二特征信息,构建第二候选答案的第二特征向量;将每个第二候选答案的第二特征向量输入预设的第二排序模型,获得每个第二候选答案的重要程度,第二排序模型是根据答案样本的第二特征向量以及每个答案样本的重要程度训练获得;按照每个第二候选答案的重要程度,选取最大重要程度的第二候选答案作为目标答案。利用预先训练好的第二排序模型,可以快速确定出每个第二候选答案的重要程度,另外由于重要程度越高表明该第二候选答案为目标答案的概率越大,而第二特征信息包含的特征多于第一特征信息包含的特征,使得确定出的每个第二候选答案的重要程度更加准确,从而提高了确定的目标答***率。
另外,根据待回答的问题以及包含问题对应的第一候选答案的各候选文档,确定各候选文档各自对应的第一候选答案集合,具体包括:对每个候选文档进行如下处理,获得每个候选文档对应的第一候选答案集合:将问题和候选文档输入预设的阅读理解模型,获得候选文档对应的第一候选答案集合,阅读理解模型是根据问题样本、提供答案样本的文档以及答案样本训练获得。通过阅读理解模型可以快速确定出每个候选文档对应的第一候选答案集合。
另外,在确定各候选文档各自对应的第一候选答案集合之前,机器阅读理解的方法还包括:分别计算问题与检索库中各文档之间的相似度;根据计算的每个相似度进行相似度的降序排列,选取排列中前N个相似度所对应的文档作为候选文档,N为大于1的整数。通过计算相似度从检索库中筛选出候选文档,可以快速缩小第一候选答案所在文档的范围,减少获取候选文档的时间。
另外,第一候选答案的第一特征信息包括:第一候选答案在所属候选文档的开始位置对应的第一概率值、第一候选答案在所属候选文档的结束位置对应的第二概率值以及第一候选答案在所属候选文档对应的第三概率值;第二候选答案的第二特征信息包括:第二候选答案在所在候选文档的开始位置对应的第四概率值、第二候选答案在所属候选文档的结束位置对应的第五概率值以及第二候选答案在所属候选文档对应的第六概率值、第二候选答案的字符长度、第二候选答案所属候选文档与问题之间的相似度以及第二候选答案与问题之间的编辑距离。
另外,第二候选答案所属候选文档与问题之间的相似度为第二候选答案所属候选文档与问题之间的余弦相似度。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式提供的一种机器阅读理解的方法的具体流程图;
图2是根据本发明第一实施方式提供的从每个第一候选答案集合中选取第二候选答案的一种具体实现示意图;
图3是根据本发明第二实施方式提供的一种机器阅读理解的方法的具体流程图;
图4是根据本发明第三实施方式提供的一种电子设备的具体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
发明人发现目前通常是基于一个问题以及一个包含该问题对应答案的文档进行机器阅读理解,机器从该文档中确定出该问题对应的答案,但是在实际应用中,并不能确定出该问题对应的答案所属文档是哪一个,需要进行查询检索处理等,因而若检索到的文档错误,往往就会导致机器确定的答案错误,降低了机器阅读理解预测的答***率。
本发明的第一实施方式涉及一种机器阅读理解的方法。该机器阅读理解的方法应用于具有处理功能的设备上,例如,机器人,个人电脑,服务器等;利用该机器阅读理解的方法可以根据用户输入的问题,确定该问题的目标答案。该机器阅读理解的方法的具体流程如图1所示。
步骤101:根据待回答的问题以及包含问题对应的第一候选答案的各候选文档,确定各候选文档各自对应的第一候选答案集合。
具体的说,该待回答的问题可以由用户输入获得,根据该问题,可以在检索库中获取多个候选文档,获取候选文档的方式有多种,例如,可以提取问题中的关键词,然后可以在检索库中查找与该关键词匹配的多个文档,并将匹配的文档作为候选文档。由于不确定该问题的最终的目标答案所属文档是哪一个,且每个候选文档的主题并不全部相同,因而可以分别确定出每个候选文档各自对应的第一候选答案集合。
一个具体的实现中,确定一个候选文档对应的第一候选答案集合的过程如下:将问题和候选文档输入预设的阅读理解模型,获得候选文档对应的第一候选答案集合,阅读理解模型是根据问题样本、提供答案样本的文档以及答案样本训练获得。
具体的说,该阅读理解模型的训练集为问题样本、提供答案样本的文档以及答案样本;将问题样本以及文档作为初始阅读理解模型的输入数据,而将答案样本作为该初始阅读理解的模型的输出数据,利用深度学习的网络结构,不断调整该初始阅读理解模型的参数,直至该初始阅读理解模型收敛,得到阅读理解模型。
可以理解的是,该阅读理解模型根据输入的问题以及候选文档,可以获得该第一候选答案在对应文档中的初始位置信息,该第一候选答案在对应文档中的结束位置信息;并基于第一候选答案在对应文档中的初始位置信息以及该第一候选答案在对应文档中的结束位置信息,从该文档中截取出对应的第一候选答案,并输出截取获得的第一候选答案。
步骤102:分别从每个第一候选答案集合中选取重要程度满足第一筛选条件的第一候选答案,作为第二候选答案,第一候选答案的重要程度是基于第一候选答案的第一特征信息确定。
一个具体的实现中,该第一筛选条件为:第一候选答案集合中在重要程度的降序排列中的前K个第一候选答案,K为大于0的整数。
针对每个第一候选答案集合进行如图2所示的处理,每个第一候选答案集合经过如图2中的子步骤后,即可获得从该第一候选答案集合中选取得到的K个第二候选答案。
子步骤1021:根据第一候选答案集合中每个第一候选答案的第一特征信息,确定每个第一候选答案的重要程度。
具体的说,第一候选答案的第一特征信息包括:第一候选答案在所属候选文档的开始位置对应的第一概率值、第一候选答案在所属候选文档的结束位置对应的第二概率值以及第一候选答案在所属候选文档对应的第三概率值。通过阅读理解模型可获得的第一候选答案的第一特征信息。
一个具体的实现中,根据每个第一候选答案的第一特征信息,构建每个第一候选答案的第一特征向量;将每个第一候选答案的第一特征向量输入预设的第一排序模型,获得第一候选集合中的每个第一候选答案的重要程度,第一排序模型是根据答案样本的第一特征向量以及每个答案样本的重要程度训练获得。
具体的说,将第一候选答案的第一特征信息转换为该第一候选答案的第一特征向量,例如,第一候选答案表示为aij,下标i表示为第i个第一候选答案集合,下标j表示第j个第一候选答案,aij在所属候选文档的开始位置对应的第一概率值表示为:aij在所属候选文档的结束位置对应的第二概率值表示为:aij在所属候选文档对应的第三概率值表示为:那么该aij的第一特征向量表示为:
每个答案样本的重要程度可以利用标签表示,利用深度学习的方式,根据训练集进行训练,获得该第一排序模型,该第一排序模型可以采用极端梯度提升(ExtremeGradient Boosting简称“xgboost”)算法来实现。
子步骤1022:按照每个第一候选答案的重要程度,进行重要程度的降序排列。
子步骤1023:选取在重要程度的降序排列中的前K个第一候选答案作为K个第二候选答案。
具体的说,K可以根据需要进行设置,K可以为1,也可以2以及以上;例如,若K为1,则从该第一候选答案集合中选取排列的第一个候选答案作为第二候选答案。
步骤103:汇集从每个第一候选集合中选取的第二候选答案组成第二候选答案集合。
具体的说,从每个候选集合中选取了K个第二候选答案,汇集所有从每个候选集合中选取的第二候选答案,得到一个第二候选答案集合,即通过步骤102后,得到一个第二候选答案集合。
例如:有m个候选文档,以集合表示D={d1,d2,...,dm},一个候选文档di和问题Q输入阅读理解模型,获得该候选文档di的第一候选答案集合其中,第一候选答案aij的第一特征向量可表示为将该第一候选答案集合Ai输入该第一排序模型,得到每个第一候选答案的重要程度,按照每个第一候选答案的重要程度,进行重要程度的降序排列,假设第一筛选条件为在重要程度的降序排列中的前1个第一候选答案,那么可以得到满足第一筛选条件的第一候选答案ai,并将该第一候选答案ai作为第二候选答案,那么,汇集所有得到的第二候选答案,得到该第二候选答案集合A={a1,a2,...,am}。
步骤104:从第二候选集合中选取重要程度满足第二筛选条件的第二候选答案作为问题的目标答案,第二候选答案的重要程度是基于第二候选答案的第二特征信息确定,其中,第二特征信息包含的特征多于第一特征信息包含的特征。
具体的说,该第二特征信息包含的特征多于该第一特征信息包含的特征,该第二特征信息可以包括:第二候选答案在所在候选文档的开始位置对应的第四概率值、第二候选答案在所属候选文档的结束位置对应的第五概率值以及第二候选答案在所属候选文档对应的第六概率值、第二候选答案的字符长度;或者,该第二特征信息可以包括:第二候选答案在所在候选文档的开始位置对应的第四概率值、第二候选答案在所属候选文档的结束位置对应的第五概率值以及第二候选答案在所属候选文档对应的第六概率值、第二候选答案的字符长度、第二候选答案所属候选文档与问题之间的相似度。该第二候选答案的第二特征信息还可以包括:第二候选答案在所在候选文档的开始位置对应的第四概率值、第二候选答案在所属候选文档的结束位置对应的第五概率值以及第二候选答案在所属候选文档对应的第六概率值、第二候选答案的字符长度、第二候选答案所属候选文档与问题之间的相似度以及第二候选答案与问题之间的编辑距离。
其中,该第二候选答案所属候选文档与问题之间的相似度为第二候选答案所属候选文档与问题之间的余弦相似度。第二候选答案所属候选文档与问题之间的相似度Similarity计算可以先利用ber模型将第二候选答案所属文档以及问题所属文档编码为指定长度的向量,在计算两个向量之间的余弦距离,该Similarity可以由公式(1)以及公式(2)表示:
其中,Cemb和Qemb是两个d维向量,d的值可以根据实际应用中计算相似度的模型的隐藏层个数确定,例如,d可以为768,Cemb是第二候选答案所属文档的向量表示,具体为{c1,c2,...,cd},Qemb是问题所属文档的向量表示,具体为{q1,q2,...,qd}。
第二筛选条件可以是重要程度最大的第二候选答案;与步骤102类似,根据每个第二候选答案的第二特征信息,构建第二候选答案的第二特征向量;将每个第二候选答案的第二特征向量输入预设的第二排序模型,获得每个第二候选答案的重要程度,第二排序模型是根据答案样本的第二特征向量以及每个答案样本的重要程度训练获得;按照每个第二候选答案的重要程度以及第二筛选条件,选取最大重要程度的第二候选答案作为目标答案。
具体的说,第二候选答案集合A={a1,a2,...,am},那么一个第二候选答案ai的第二特征向量可以表示为Fai={startlogitsi,endlogitsi,probsi,ansleni,edi,Similarityi},其中,startlogitsi表示第四概率,endlogitsi表示第五概率,probsi表示第六概率,ansleni表示第二候选答案的字符长度,edi表示编辑距离,Similarityi表示第二候选答案所属候选文档与问题之间的相似度。其中,通过阅读理解模型可以直接获得第二候选答案的该第四概率、第五概率以及第六概率。
本发明实施方式相对于现有技术而言,先根据重要程度,从每个第一候选答案集合中筛选出满足第一筛选条件的第一候选答案,并将选取的第一候选答案作为第二候选答案,汇集所有的第二候选答案组成第二候选答案集合,经过第一次的筛选,剔除了不可能的第一候选答案,从而缩小了后续确定目标答案的范围;并对第二候选答案集合中的第二候选答案的重要程度进行再次筛选,确定目标答案,由于第二候选答案的重要程度是基于第二特征信息确定的,而第二特征信息的特征多于第一特征信息,更多的特征更符合实际应用,使得基于第二特征信息确定的重要程度更加准确,进而根据第二候选答案的重要程度确定的目标答案更加准确;另外,本实施方式获取多个候选文档,增加了候选文档的数目,可以减小因提供错误文档导致最终确定的目标答案错误的概率。
本发明的第二实施方式涉及一种机器阅读理解的方法。第二实施方式与第一实施方式大致相同,主要区别之处在于:在本发明第二实施方式中,在确定各候选文档各自对应的第一候选答案集合之前,获取各候选文档。该机器阅读理解的方法的具体流程如图3所示。
步骤201:分别计算问题与检索库中各文档之间的相似度。
具体的说,计算问题与文档之间的相似度可以利用二元独立模型的扩展BM25算法计算获得,该BM25算法可以如公式(3)所示:
Score(Q,d)表示该问题Q与文档d之间的相似得分,其中n表示问题Q中的词语数,qi表示第i个的词语,fi表示第i个词语在当前文档的频率,dl表示文档d的文档长度,avgdl表示整个检索库中文档的平均长度,而k1和b是可调参数,需要根据具体的语料设置最优取值。IDF(qi)表示该问题中第i个词语的逆文档频率,IDF(qi)计算公式如下:
其中,Nd表示检索库中的文档总数,n(qi)表示包含该问题中的词语的文档数。
步骤202:根据计算的每个相似度进行相似度的降序排列,选取排列中前N个相似度所对应的文档作为候选文档,N为大于1的整数。
步骤203:根据待回答的问题以及包含问题对应的第一候选答案的各候选文档,确定各候选文档各自对应的第一候选答案集合。
步骤204:分别从每个第一候选答案集合中选取重要程度满足第一筛选条件的第一候选答案,作为第二候选答案。
步骤205:汇集从每个第一候选集合中选取的第二候选答案组成第二候选答案集合。
步骤206:从第二候选集合中选取重要程度满足第二筛选条件的第二候选答案作为问题的目标答案。
需要说明的是,本实施方式中的步骤203至步骤206与第一实施方式中的步骤101至步骤104大致相同,此处将不再赘述。
本实施方式中提供的机器阅读理解的方法,通过计算相似度从检索库中筛选出候选文档,可以快速缩小第一候选答案所在文档的范围,减少获取候选文档的时间。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施方式涉及一种电子设备,该电子设备30的结构如图4所示,包括:至少一个处理器301;以及,与至少一个处理器301通信连接的存储器302;其中,存储器302存储有可被至少一个处理器301执行的指令,指令被至少一个处理器301执行,以使至少一个处理器301能够执行第一实施方式或第二实施方式的机器阅读理解的方法。
其中,存储器302和处理器301采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器301和存储器302的各种电路链接在一起。总线还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器301。
处理器301负责管理总线和通常的处理,还可以提供各种功能,包括定时,***接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明第三实施方式涉及一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行第一实施方式或第二实施方式的机器阅读理解的方法。
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。