用于问答系统的语义匹配方法、装置、设备及存储介质
技术领域
本公开涉及一种用于问答系统的语义匹配方法、用于问答系统的语义匹配装置、电子设备及可读存储介质。
背景技术
现有的问答系统在实现过程,通过是通过将用户的问题与问答库内容进行匹配而实现的。
问答库匹配时,会计算输入的一个问题(query)与问答库中所有的问题的相似度,然后给出那个得分最高的问题的答案,其是一个语义匹配的过程。
在语义匹配中,通常可能会设定一个阈值,当最高的那个问题的得分高于这个阈值的时候,则输出最高分问题的答案;小于时,则认为没有匹配到合适的问题,不提供答案。
这样就存在阈值选择的问题,如果阈值设置地很高,那么很少有 query能够匹配出答案;如果阈值设置地很低,很容易出现误召回的现象。如用户输入query问:“儒家的创始人是谁”,因为问答库中有一个问答对是“佛教的创始人是谁”---“释迦摩尼”,第三个字以后完全相似,并且儒家和佛教是比较相似的词,所以很容易误召回;另一个例子是“帮我搜一下北京到上海的火车”,和“帮我搜一下上海到北京的火车”,两个句子词完全一致,用户意图也相差不多,只是目的地和出发地对换,通过语义匹配不太能够分辨出来。这种query对于语义匹配来说语义是相似的,但从语义解析任务的角度来说却完全不同。
发明内容
为了解决上述技术问题中的至少一个,本公开提供了一种用于问答系统的语义匹配方法、用于问答系统的语义匹配装置、电子设备及可读存储介质。
根据本公开的一个方面,一种用于问答系统的语义匹配方法,包括:
识别输入至所述问答系统中的输入问题的主语词;
基于识别出的所述主语词,在问答对库中进行搜索,以筛选出问答对库中包含所述主语词的问答对;
基于筛选出的所述问答对,进行所述输入问题与得到所述问答对中的问答对问题之间的语义匹配;以及
判断所述问答对问题与所述输入问题的语义匹配结果是否大于或等于预定阈值,在大于或等于所述预定阈值的情况下,将所述问答对问题所对应的答案作为输入问题的答案。
根据本公开的至少一个实施方式,识别输入至所述问答系统中的输入问题的主语词时,基于字向量特征来识别所述主语词。
根据本公开的至少一个实施方式,识别输入至所述问答系统中的输入问题的主语词时,还包括:按照输入基于字向量特征的神经网络中的字顺序来为每个字顺序地标注下标,通过基于字向量特征的神经网络来预测主语词的起始下标和终止下标。
根据本公开的至少一个实施方式,当所述神经网络预测出所述主语词的起始下标及终止下标之后,遍历所述输入问题,得到所述主语词。
根据本公开的至少一个实施方式,在进行所述输入问题与所述问答对的集合中的问答对问题之间的语义匹配时,判断所述输入问题与所述问答对问题之间的语义相似度;以及
所述问答对问题与所述输入问题的语义匹配结果大于或等于预定阈值的情况为:所述问答对问题与所述输入问题的语义相似度大于或等于预定阈值的情况。
根据本公开的至少一个实施方式,进行所述输入问题与所述问答对的集合中的问答对问题之间的语义匹配之后,且在判断所述问答对问题与所述输入问题的语义匹配结果是否大于或等于预定阈值之前,还包括:选择语义匹配结果最高的问答对问题,
其中,在判断所述问答对问题与所述输入问题的语义匹配结果是否大于或等于预定阈值时,确定语义匹配结果最高的问答对问题与所述输入问题的语义匹配结果是否大于或等于预定阈值。
根据本公开的至少一个实施方式,基于筛选出的所述问答对形成问答对临时库,并且在所述问答对临时库中进行所述输入问题与得到所述问答对中的问答对问题之间的语义匹配。
根据本公开的另一方面,一种用于问答系统的语义匹配装置,包括:
识别模块,用于识别输入至所述问答系统中的输入问题的主语词;
筛选模块,基于识别出的所述主语词,在问答对库中进行搜索,以筛选出问答对库中包含所述主语词的问答对;
匹配模块,基于筛选出的所述问答对,进行所述输入问题与得到所述问答对中的问答对问题之间的语义匹配;以及
判断模块,判断所述问答对问题与所述输入问题的语义匹配结果是否大于或等于预定阈值,在大于或等于所述预定阈值的情况下,将所述问答对问题所对应的答案作为输入问题的答案。
根据本公开的再一方面,一种电子设备,包括:
存储器,所述存储器存储执行指令;以及
处理器,所述处理器执行所述存储器存储的执行指令,使得所述处理器执行如上所述的方法。
根据本公开的又一方面,一种计算机刻度存储介质,所述可读存储介质中存储有执行指令,所述执行指令被处理器执行时用于实现如上所述的方法。
附图说明
附图示出了本公开的示例性实施方式,并与其说明一起用于解释本公开的原理,其中包括了这些附图以提供对本公开的进一步理解,并且附图包括在本说明书中并构成本说明书的一部分。
图1是根据本公开一个实施方式的用于问答系统的语义匹配方法的流程图。
图2是根据本公开一个实施方式的用于问答系统的语义匹配方法中的主语识别处理方法的流程图。
图3是根据本公开一个实施方式的用于问答系统的语义匹配方法中的主语识别处理方法的神经网络的示意图。
图4是根据本公开一个实施方式的用于问答系统的语义匹配方法中的问答对筛选的流程图。
图5是根据本公开一个实施方式的用于问答系统的语义匹配装置的示意性框图。
图6是根据本公开一个实施方式的电子设备的示意性视图。
具体实施方式
下面结合附图和实施方式对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施方式仅用于解释相关内容,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施方式及实施方式中的特征可以相互组合。下面将参考附图并结合实施方式来详细说明本公开。
问答系统(question answer system,简称QA系统),是用来回答用户输入或提出的各种各样的问题。比如用户提问“中国的国土面积是多少”, QA系统回答“960万平方公里”;用户提问“中国有多少人口”,QA系统回答“13亿”。
问答对(question answer pair),是指已经存储好的问题和问答对。比如:美国总统是谁---美国总统是特朗普,日本首相是谁---日本首相是安倍晋三。
语义匹配(semantic matching),是指衡量两个句子在语义层面的相似度。
语义解析(semantic parsing),是指对句子,转换为机器可解析的语义表达。比如:“明天天气怎么样”,通过语义解析,根据这句话,用户的意图是问天气,其中问的时间是“明天”,地点没有说,可以采用默认地点,即用户所在城市作为默认地点;又如:“特朗普的妻子是谁”,解析出问题的主语是“特朗普”,想要问的属性是“妻子”,等等。
根据本公开的一个实施方式,提供了一种用于问答系统的语义匹配方法。
如图1所示,该用于问答系统的语义匹配方法可以包括:步骤S10,识别输入至问答系统中的输入问题的主语词;S20,筛选出问答对库中包含主语词的问答对;S30,进行输入问题与得到的问答对中的问答对问题之间的语义匹配;以及S40,判断问答对问题与输入问题的语义匹配结果是否大于或等于预定阈值。
在步骤S10中,识别输入至问答系统中的输入问题的主语词。
可选地,用户输入的问题进入问答系统后,经过分词、词性标注等预处理后,可以进入主语识别模块,来识别问题的主语。其中,主语识别模块可以通过基于字向量的神经网络来对问题进行处理,从而得到相应的主语词。
根据本公开的一个可选实施例,对于主语识别模块所进行的主语识别处理方法可以如图2所示。
在步骤S11中,获取问题中每个字对应的特征向量。在一种可选的实现方式中,可以基于one-hot编码获取问题中的每个字对应的特征向量。在本实施例中,根据one-hot编码对每个字进行编码以获取神经网络对应的字表。在一种可选的实现方式中,在神经网络的训练过程对,对首次输入的字基于one-hot按预定规则(例如首次输入神经网络的字的顺序) 进行编码以获取每个字的特征向量。例如,以问题“儒家创始人是谁”为例,“儒”是神经网络第一个读取的字,则“儒”的特征向量可以为01。而“家”是神经网络第二个读取的字,则“家”的特征向量可以为10,……。
步骤S12,通过神经网络对问题中每个字对应的特征向量进行处理以获取问题的上下文信息,从而根据问题的上下文信息获取问题中的每个字被标注为各标签的概率。其中,标签包括主语词标签和非主语词标签。容易理解,本实施例中的预定的神经网络具有对应的字表。
步骤S13,根据问题中的每个字被标注为各标签的概率标注语句中每个字的标签。
根据一个可选的实施例,可以使用BiLSTM+CRF神经网络模型来进行相应处理。
BiLSTM中的第一数据处理层可以用于获取问题中的上文信息,第二数据处理层可以用于获取问题中的下文信息,第三数据处理层可以用于根据第一数据处理层和第二数据处理层获取问题的上下文信息,进而根据上下午文信息获取问题中的每个字被标注为各标签的概率。CRF层在全局范围内根据问题中的每个字被标注为各标签的概率标注每个字的标签。可选地,基于预定的损失函数控制神经网络处理训练样本以训练该神经网络,从而获取上述预定的神经网络。其中,训练样本包括已经标注主语词标签的问题。在一种可选的实现方式中,通过训练样本的损失基于BP算法(Backpropagation algorithm,反向传播算法)修正神经网络的参数,以使得通过神经网络输出的上下文信息获取的问题中每个字标注实际标签的概率更大。BP算法是一种监督学习算法,主要由激励传播和权重更新两个环节反复循环迭代,直到模型对输入的响应达到预定的目标范围为止。可选地,采用L2正则化对损失函数进行调整。L2正则化可以对损失函数的一些参数进行限制,由此,可以防止过拟合,增大抗扰动能量,从而可以进一步问题主语识别的准确率。
图3是本公开实施例的神经网络的示意图。如图3所示,本实施例的神经网络中的BiLSTM包括第一数据处理层I、第二数据处理层R和第三数据处理层C。其中,第一数据处理层I包括多个第一数据处理节点 I1-I7,应理解,图3中第一数据处理层的第一数据处理节点的个数仅仅是示例性的。在本实施例中,第一数据处理节点I1-I7分别获取对应的字的特征向量。如图3所示,第一数据处理节点I1获取“儒”的特征向量,并根据“儒”的特征向量获取“儒”的语义信息i1。第一数据处理节点 I2获取“家”的特征向量,并根据“家”的特征向量获取“家”的语义信息,并且获取第一数据处理节点I1获取的“儒”语义信息i1。由此,第一数据处理节点I2获取了“家”的上文信息,并且,第一数据处理节点I2将“儒”和“家”的语义信息进行整合,并输出整合后的语义信息 i2至第一数据处理节点I3。其中,语义信息i2包括“儒”的语义信息、“家”的语义信息以及“儒”和“家”的关联信息。
第一数据处理节点I3获取“创”的特征向量,并根据“创”的特征向量获取“创”的语义信息,并且获取第一数据处理节点I2输出的语义信息i2。由此,第一数据处理节点I3获取了“创”的上文信息(也即语义信息i2),并且,第一数据处理节点I3将“儒”、“家”和“创”的语义信息进行整合,并输出整合后的语义信息i3至第一数据处理节点I4。其中,语义信息i3包括“儒”的语义信息、“家”的语义信息、“创”的语义信息以及“儒”、“家”和“创”的关联信息。
同理,第一数据处理节点I4根据“始”的特征向量获取“始”的语义信息,并获取第一数据处理节点I3输出的“始”的上文信息i3,并输出整合了“儒”、“家”、“创”、“始”的语义信息及它们的关联信息的语义信息i4至第一数据处理节点I4。第一数据处理节点I5根据“人”的特征向量获取“人”的语义信息,并获取第一数据处理节点I4输出的“人”的上文信息i4,并输出整合了“儒”、“家”、“创”、“始”、“人”的语义信息及它们的关联信息的语义信息i5至第一数据处理节点I6。第一数据处理节点I6根据“是”的特征向量获取“是”的语义信息,并获取第一数据处理节点I5输出的“是”的上文信息i5,并输出整合了“儒”、“家”、“创”、“始”、“人”、“是”的语义信息及它们的关联信息的语义信息i6 至第一数据处理节点I7。第一数据处理节点I7根据“谁”的特征向量获取“谁”的语义信息,并获取第一数据处理节点I6输出的“谁”的上文信息i6,并输出整合了“儒”、“家”、“创”、“始”、“人”、“是”、“谁”的语义信息及它们的关联信息的语义信息i7。
第二数据处理层R包括多个第二数据处理节点R1-R7,应理解,图2 中第二数据处理层的第二数据处理节点的个数仅仅是示例性的。在本实施例中,第二数据处理节点R1-R7分别获取对应的字的特征向量。如图 2所示,第二数据处理节点R7获取“谁”的特征向量,并根据“谁”的特征向量获取“谁”的语义信息r7。第二数据处理节点R6获取“是”的特征向量,并根据“是”的特征向量获取“是”的语义信息,并且获取第二数据处理节点R7获取的“谁”语义信息。由此,第二数据处理节点 R6获取了“是”的下文信息r7,并且,第二数据处理节点R6将“谁”和“是”的语义信息进行整合,并输出整合后的语义信息r6至第二数据处理节点R5。其中,语义信息r6包括“谁”的语义信息、“是”的语义信息以及“谁”和“是”的关联信息。
第二数据处理节点R5获取“人”的特征向量,并根据“人”的特征向量获取“人”的语义信息,并且获取第二数据处理节点R6输出的语义信息r6。由此,第二数据处理节点R5获取了“人”的下文信息(也即语义信息r6),并且,第二数据处理节点R5将“谁”、“是”和“人”的语义信息进行整合,并输出整合后的语义信息r5至第二数据处理节点R4。其中,语义信息r5包括“谁”、“是”、“人”的语义信息以及“谁”、“是”、“人”的关联信息。
同理,第二数据处理节点R4根据“始”的特征向量获取“始”的语义信息,并获取第二数据处理节点R5输出的“始”的下文信息r5,并输出整合了“谁”、“是”、“人”、“始”的语义信息及它们的关联信息的语义信息r4至第二数据处理节点R3。第二数据处理节点R3根据“创”的特征向量获取“创”的语义信息,并获取第二数据处理节点R4输出的“创”的下文信息r4,并输出整合了“谁”、“是”、“人”、“始”、“创”的语义信息及它们的关联信息的语义信息r3至第二数据处理节点R2。第二数据处理节点R2根据“家”的特征向量获取“家”的语义信息,并获取第二数据处理节点R3输出的“家”的下文信息r3,并输出整合了“谁”、“是”、“人”、“始”、“创”、“家”的语义信息及它们的关联信息的语义信息r2 至第二数据处理节点R1。第二数据处理节点R1根据“儒”的特征向量获取“儒”的语义信息,并获取第二数据处理节点R2输出的“儒”的下文信息r2,并输出整合了“谁”、“是”、“人”、“始”、“创”、“家”、“儒”的语义信息及它们的关联信息的语义信息r1。
第三数据处理层C包括多个第三数据处理节点C1-C7,应理解,图2 中第三数据处理层的第三数据处理节点的个数仅仅是示例性的。第三数据处理节点C1获取第一数据处理节点I1输出的语义信息i1和第二数据处理节点R1输出的语义信息r1获取问题“儒家创始人是谁的上下文信息。第三数据处理节点C2获取第一数据处理节点I2输出的语义信息i2 和第二数据处理节点R2输出的语义信息r2以获取问题“儒家创始人是谁”的上下文信息。同理,第三数据处理节点C3-C7分别获取问题“儒家创始人是谁”的上下文信息。进一步地,第三数据处理层C中的第三数据处理节点C1-C7根据问题“儒家创始人是谁”的上下文信息分别获取问题“儒家创始人是谁”中每个字被标注为各标签的概率。也就是说,第三数据处理节点C1根据其获取的问题“儒家创始人是谁”的上下文信息获取问题“儒家创始人是谁”中每个字被标注为各标签的概率。同理,第三数据处理节点C2-C7分别获取对应的问题“儒家创始人是谁”中每个字被标注为各标签的概率。
CRF层在全局范围内根据第三数据处理节点C1-C7分别获取的对应的问题“儒家创始人是谁”中每个字被标注为各标签的概率,标注问题“儒家创始人是谁”中每个字的标签。其中,CRF层根据全局范围内选取概率最高的标签对问题中的每个字进行标注。
在一种可选的实现方式中,其中,标签包括主语词标签p和非主语词标签n。
若第三数据处理层C根据问题“儒家创始人是谁”的上下文信息获取问题中的每个字被标注为主语词标签的最大概率分别为98%、97%、 96%、97%、99%、5%、7%。由此,“儒”、“家”、“创”、“始”、“人”被标注的标签均为主语词标签p,“是”、“谁”被标注的标签均为非主语词标签n。在另一种可选的实现方式中,主语词标签包括主语词的词首标签 B-p,主语词的词中标签M-p以及主语词的词尾标签E-p。由此,“儒”、“家”、“创”、“始”、“人”被标注的标签分别为词首标签B-p、词中标签 M-p和词尾标签E-p。
最后,可以根据被标注的主语词标签来得到输入问题的主语词。
作为进一步实施例,也可以对输入的问题中的每个字标注下标,以问题“儒家创始人是谁”为例,可以将“儒”的下标设置为“0”,“家”的下标设置为“1”,“创”的下标设置为“2”,“始”的下标设置为“3”,“人”的下标设置为“4”,“是”的下标设置为“5”,“谁”的下标设置为“6”。并且通过上述神经网络来预测主语的起始下标及终止下标,例如,可以根据最大概率来得到主语词的起始下标及终止下标,例如,“儒”被标注为主语词标签的最大概率为98%,“家”被标注为主语词标签的最大概率为97%,“创”被标注为主语词标签的最大概率为96%,“始”被标注为主语词标签的最大概率为97%,“人”被标注为主语词标签的最大概率为99%,此时可以得到主语词的起始下标为“0”,而终止下标为“4”。
得到主语词的起始下标与终止下标之后,遍历问题,这样得到相应的主语词。
在步骤S20中,筛选出问答对库中包含主语词的问答对。在本步骤中,可以在已有的问答对库中进行搜索,筛选出包含主语词的问答对。例如,通过步骤S10中的方式,得到主语词为“儒家创始人”,则在本步骤中,在已有的问答对库中,根据主语词“儒家创始人”来搜索得出问题和/或答案中包括“儒家创始人”的问答对。
如图4所示,步骤S20可以包括步骤S21:根据得到的主语词在问答对库中进行搜索;步骤S22:判断问答对中是否包含主语词;步骤S23:如果包含,则将问答对用于后续语义匹配;及步骤S24:如果不包含,则不将问答对用于后续语义匹配。
在步骤S21中,根据得到的主语词在问答对库中进行搜索。该问答对库可以是现有的问答对库,并且根据通常的搜索方式在该问答对库中进行搜索。
在步骤S22中,判断问答对中是否包含主语词,通过搜索比对来确定问题和/或答案中包含主语词的问答对。如果得到包含主语词的问答对则将该问答对用于后续的语义匹配(步骤S23),如果问答对中不包含主语词,则将其不用于后续的语义匹配(步骤S24)。这样,存在包含的情况下,可以得到一个或多个问答对,将该一个或多个问答对用于后续的语义匹配。如果不存在包含的情况下(没有一个问答对包含主语词),则可以采用现有技术的方式给出答案或者提示用户没有答案。在本公开中,为了后续步骤的描述,以已有问答对库中具有包含主语词的多个问答对作为示例。
在步骤S30中,进行输入问题与得到的问答对中的问答对问题之间的语义匹配。在该步骤中,可以首先将步骤S20中得到的包含主语词的多个问答对形成一个问答对集合,例如可以形成该多个问答对形成的临时库。基于该临时库来进行用户输入的问题与临时库中的问答对中的问题的语义匹配。
其中,语义匹配可以使用本领域中通常的完全匹配方式、基于 TF-IDF的模糊匹配方式、基于词向量的匹配方式、或基于编辑距离的匹配方式等现有的常规匹配方式。
在本公开中,语义匹配是通过计算用户输入的问题与临时库中的问答对中的问题的语义相似度来实现的。例如作为一个示例,可以通过计算字词之间的距离,再转换为相似度。而语义之间的距离,例如可以通过大量的语料库进行统计,这种方法主要将上下文信息的概率分布作为字词的语义相似度的参照依据,其利用大规模语料库,将字词的上下文信息作为语义相似度计算的参照依据。基于统计的定量分析方法能够对字词间的语义相似度进行比较精确和有效的度量。
在步骤S40中,判断问答对问题与输入问题的语义匹配结果是否大于或等于预定阈值,在大于或等于预定阈值的情况下,将问答对问题所对应的答案作为输入问题的答案。在该步骤中,问答对问题是指存在于上述问答对临时库中的问答对中的问题。另外,该预定阈值可以在训练过程中进行调整为得到,例如在预定阈值的选择过程中,通过多次尝试来选择效果最好的预定阈值来进行使用。
作为一个示例,可以将大于或等于预定阈值的多个问答对问题所对应的答案均作为匹配到的答案,并且可以通过后续整合将这些答案整体输出,例如,可以将多个答案整合到一个输出答案中来提供给用户。
作为一个示例,当仅存在一个大于或等于预定阈值的问答对问题的情况下,判断这个问答对问题与输入问题之间的语义相似度是否大于或等于预定阈值,在大于或等于的情况下,将这个问答对问题所对应的答案作为匹配答案来进行输出,从而提供给用户,在小于的情况下,则认为没有匹配答案。
作为一个优选示例,当存在两个或两个以上的大于或等于预定阈值的问答对问题的情况下,则在该两个或两个以上的问答对问题中选择语义相似度最高的那条问答对问题,判断这条问答对问题与输入问题的语义相似度是否大于或等于预定阈值,在大于或等于的情况下,将该条问答对问题所对应的答案作为匹配答案进行输出,从而提供给用户,在小于的情况下,则认为没有找到匹配答案。
根据本公开的方法,可以提升语义匹配的精确度,从而向用户提供更准确的答案。例如,输入问题为“儒家的创始人是谁”,在问答库中有一个问答对【“佛教创始人是谁”—“释迦摩尼”】,如果按照之前的方式,因为输入问题与问答对中的问题的相似度非常高,因此系统很容易在输入问题为“儒家创始人是谁”时,输出“释迦摩尼”的答案。但是根据本公开的方式,通过在语义匹配之前考虑了语义解析的结果,将会避免这种错误答案的输出。再例如,输入问题为“帮我搜一下北京到上海的火车”和“帮我搜一下上海到北京的火车”,两个句子词完全一致,用户意图也相差不多,只是目的地和出发地对换,通过语义匹配不太能够分辨出来,但是通过本公开的上述方法,在语义匹配之前考虑了语义解析的结果,从而会避免错误答案的输出。
根据本公开的另一实施方式,提供了一种用于问答系统的语义匹配装置。如图5所示,该语义匹配装置100可以包括识别模块101、筛选模块102、匹配模块103及判断模块104。
识别模块101,用于识别输入至问答系统中的输入问题的主语词。例如,用户输入的问题可以进入识别模块101,来识别问题的主语。其中,识别模块101可以通过基于字向量的神经网络来对问题进行处理,从而得到相应的主语词。在一个可选实施例中,还可以包括预处理模块,在该预处理模块中,用户输入的问题进入问答系统后,经过分词、词性标注等预处理后,再将处理后的数据提供给识别模块101。其中,在识别模块101中所进行的具体处理,可以参照上述方法实施方式中所描述的步骤及实现手段。其中,在该识别模块101中,采用的是基于字向量的神经网络,在一个优选实施方式中,可以通过神经网络预测主语词的起始下标与终止下标,然后再识别到主语词的起始下标及终止下标后,对用户的输入问题进行遍历操作来得到相应的主语词。其中具体方式在此不再赘述,可参照之上的描述。
在筛选模块102中,基于识别出的主语词,在问答对库中进行搜索,以筛选出问答对库中包含主语词的问答对。在此,可以在已有的问答对库中进行搜索,筛选出包含主语词的问答对。例如,通过识别模块101得到主语词为“儒家创始人”,则在筛选模块102中,在已有的问答对库中,根据主语词“儒家创始人”来搜索得出问题和/或答案中包括“儒家创始人”的问答对。
例如,在筛选模块102中可以包括:搜索模块,根据得到的主语词在问答对库中进行搜索;以及判断模块,判断问答对中是否包含主语词。根据判断模块的判断结果,如果包含,则将问答对用于后续语义匹配;如果不包含,则不将问答对用于后续语义匹配。
在搜索模块中,根据得到的主语词在问答对库中进行搜索。该问答对库可以是现有的问答对库,并且根据通常的搜索方式在该问答对库中进行搜索。
在判断模块中,判断问答对中是否包含主语词,通过搜索比对来确定问题和/或答案中包含主语词的问答对。如果得到包含主语词的问答对则将该问答对用于后续的语义匹配,如果问答对中不包含主语词,则将其不用于后续的语义匹配。这样,存在包含的情况下,可以得到一个或多个问答对,将该一个或多个问答对用于后续的语义匹配。如果不存在包含的情况下(没有一个问答对包含主语词),则可以采用现有技术的方式给出答案或者提示用户没有答案。在本公开中,为了后续的描述,以已有问答对库中具有包含主语词的多个问答对作为示例。
在匹配模块103中,进行输入问题与得到的问答对中的问答对问题之间的语义匹配。在匹配模块103中,可以首先将筛选模块102中得到的包含主语词的多个问答对形成一个问答对集合,例如可以形成该多个问答对形成的临时库。基于该临时库来进行用户输入的问题与临时库中的问答对中的问题的语义匹配。其中,语义匹配可以使用本领域中通常的完全匹配方式、基于TF-IDF的模糊匹配方式、基于词向量的匹配方式、或基于编辑距离的匹配方式等的现有常规匹配方式。
在判断模块104中,判断问答对问题与输入问题的语义匹配结果是否大于或等于预定阈值,在大于或等于预定阈值的情况下,将问答对问题所对应的答案作为输入问题的答案。在判断模块104中,问答对问题是指存在于上述问答对临时库中的问答对中的问题。另外,该预定阈值可以在训练过程中进行调整为得到,例如在预定阈值的选择过程中,通过多次尝试来选择效果最好的预定阈值来进行使用。
作为一个示例,可以将大于或等于预定阈值的多个问答对问题所对应的答案均作为匹配到的答案,并且可以通过后续整合将这些答案整体输出,例如,可以将多个答案整合到一个输出答案中来提供给用户。
作为一个示例,当仅存在一个大于或等于预定阈值的问答对问题的情况下,判断这个问答对问题与输入问题之间的语义相似度是否大于或等于预定阈值,在大于或等于的情况下,将这个问答对问题所对应的答案作为匹配答案来进行输出,从而提供给用户,在小于的情况下,则认为没有匹配答案。
作为一个优选示例,当存在两个或两个以上的大于或等于预定阈值的问答对问题的情况下,则在该两个或两个以上的问答对问题中选择语义相似度最高的那条问答对问题,判断这条问答对问题与输入问题的语义相似度是否大于或等于预定阈值,在大于或等于的情况下,将该条问答对问题所对应的答案作为匹配答案进行输出,从而提供给用户,在小于的情况下,则认为没有找到匹配答案。
需要注意的是,为了简洁起见虽未详细描述,但是在装置实施方式中未描述的具体方式可以参照方法实施方式中的具体描述。
本公开还提供一种电子设备,如图6所示,该设备包括:通信接口 1000、存储器2000和处理器3000。通信接口1000用于与外界设备进行通信,进行数据交互传输。存储器2000内存储有可在处理器3000上运行的计算机程序。处理器3000执行所述计算机程序时实现上述实施方式中方法。所述存储器2000和处理器3000的数量可以为一个或多个。
存储器2000可以包括高速RAM存储器,也可以还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
如果通信接口1000、存储器2000及处理器3000独立实现,则通信接口1000、存储器2000及处理器3000可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,PeripheralComponent)总线或扩展工业标准体系结构(EISA,Extended Industry StandardComponent)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口1000、存储器2000、及处理器3000集成在一块芯片上,则通信接口1000、存储器2000、及处理器 3000可以通过内部接口完成相互间的通信。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本公开的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本公开的实施方式所属技术领域的技术人员所理解。处理器执行上文所描述的各个方法和处理。例如,本公开中的方法实施方式可以被实现为软件程序,其被有形地包含于机器可读介质,例如存储器。在一些实施方式中,软件程序的部分或者全部可以经由存储器和/或通信接口而被载入和/或安装。当软件程序加载到存储器并由处理器执行时,可以执行上文描述的方法中的一个或多个步骤。备选地,在其他实施方式中,处理器可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上述方法之一。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,可以具体实现在任何可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
就本说明书而言,“可读存储介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在存储器中。
应当理解,本公开的各部分可以用硬件、软件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施方式方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种可读存储介质中,该程序在执行时,包括方法实施方式的步骤之一或其组合。
此外,在本公开各个实施方式中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施方式/方式”、“一些实施方式/方式”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施方式/方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施方式/方式或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施方式/方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施方式/方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施方式/方式或示例以及不同实施方式/方式或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
本领域的技术人员应当理解,上述实施方式仅仅是为了清楚地说明本公开,而并非是对本公开的范围进行限定。对于所属领域的技术人员而言,在上述公开的基础上还可以做出其它变化或变型,并且这些变化或变型仍处于本公开的范围内。
附图标记说明:
100 语义匹配装置
101 识别模块
102 筛选模块
103 匹配模块
104 判断模块
1000 通信接口
2000 存储器
3000 处理器。