扩展问评价方法及装置与流程

文档序号:11177388阅读:1036来源:国知局
扩展问评价方法及装置与流程

本发明涉及人机交互技术领域,尤其涉及用于评价知识库中扩展问的扩展问质量的方法和装置。



背景技术:

人机交互是研究系统与用户之间的交互关系的科学。系统可以是各种各样的机器,也可以是计算机化的系统和软件。例如,通过人机交互可以实现各种人工智能系统,例如,智能客服系统、语音控制系统等等。人工智能语义识别是人机交互的基础,其能够对人类语言进行识别,以转换成机器能够理解的语言。

智能问答系统是人机交互的一种典型应用,其中当用户提出问题后,智能问答系统给出该问题的答案。为此,智能问答系统中有一套知识库,里面有大量的问题和与每个问题相对应的答案。智能问答系统首先需要识别用户所提出的问题,即从知识库中找到与该用户问题所对应的问题,然后找出与该问题相匹配的答案。

知识库中的基本知识点最原始和最简单的形式就是平时常用的faq,一般的形式是“问-答”对。在本发明中,“标准问”是用来表示某个知识点的文字,主要目标是表达清晰,便于维护。例如,“彩铃的资费”就是表达清晰的标准问描述。这里的“问”不应被狭义地理解为“询问”,而应广义地来理解一“输入”,该“输入”具有对应的“输出”。例如,对于用于控制系统的语义识别而言,用户的一个指令,例如“打开收音机”也应可以被理解为是一个“问”,此时对应的“答”可以是用于执行相应控制的控制程序的调用。

用户在向机器输入时,最理想的情况是使用标准问,则机器的智能语义识别系统马上能够理解用户的意思。然而,用户往往并非使用的是标准问,而是标准问的一些变形的形式。例如,若对于收音机的电台切换的标准问形式是“换一个电台”,那么用户可能使用的命令是“切换一个电台”,机器也需要能够识别用户表达的是同一个意思。

因此,对于智能语义识别而言,知识库里需要有标准问的扩展问,该扩展问与标准问表达形式有略微差异,但是表达相同的含义。在用户输入用户问句后,主要依靠扩展问来实现用户问句与标准问的匹配。

作为示例,可以将用户问句与知识库中所有标准问的所有扩展问执行语义相似度计算,找出与该用户问句具有最高语义相似度的扩展问,若该最高语义相似度高出系统所设的阈值,则该扩展问所对应的标准问被认为是与该用户问句相匹配的标准问,进而将该标准问所对应的知识点中的答案反馈给用户。另一方面,若计算出的该最高语义相似度低于系统所设的该阈值,则认为标准问匹配失败。此时,可向用户反馈语义识别失败,提示用户可再次输入。

由此,扩展问的质量至关重要。目前人工智能领域主要还是依靠人工整理扩展问的方式,因为整理的内容多,测试中一直存在效率和效果不能兼得的问题。即如果抽测的内容少,结果的随机性就大,如果抽测的内容多,则相当于测试人员重做知识库。

因此,一种高效地评价扩展问质量的方案是本领域所希望的。



技术实现要素:

以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。

根据本发明的一方面,提供了一种用于评价知识库中扩展问的扩展问质量的方法,该知识库包括多个标准问,每个标准问具有关联的多个扩展问,每个扩展问是相应标准问的相似问法,该方法包括:对各个标准问下的扩展问执行不预设聚类数量的聚类处理,以将每个标准问下的扩展问聚类为多个聚类;基于聚类的数目确定扩展问复杂度;以及将扩展问复杂度与复杂度对照表相对照以获得扩展问质量信息。

根据本发明的另一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该计算机程序时实现上述方法的步骤。

根据本发明的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。

根据本发明的另一方面,提供了一种用于评价知识库中扩展问的扩展问质量的装置,该知识库包括多个标准问,每个标准问具有关联的多个扩展问,每个扩展问是相应标准问的相似问法,该装置包括聚类模块,用于对各个标准问下的扩展问执行不预设聚类数量的聚类处理,以将每个标准问下的扩展问聚类为多个聚类;复杂度确定模块,用于基于聚类的数目确定扩展问复杂度;以及质量确定模块,将扩展问复杂度与复杂度对照表相对照以获得扩展问质量信息。

本发明中从另一个角度——扩展问的复杂程度,来判断知识库的质量。即在编辑不是刻意出错的前提下,通过自动检测扩展问的有效问法数量,来判断编辑的“有效工作量”,从而判断知识库的质量。在本发明中,对扩展问进行聚类处理,每一个聚类可以代表一种有效问法,因此,基于聚类的数目可以确定扩展问的复杂度,进而判断扩展问质量。以此方式,能够代替人工地对扩展问评估,极大地提高了评估效率。

附图说明

在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。

图1是示出了根据本发明的用于评价知识库中扩展问的扩展问质量的方法的流程图;

图2是示出了根据本发明的一方面的对各个标准问下的扩展问执行聚类处理的方法的流程图;

图3示出了根据本发明的具体实施例的用于对各个标准问下的扩展问执行聚类处理的方法的流程图;

图4是示出了根据本发明的用于评价知识库中扩展问的扩展问质量的装置的框图;以及

图5是示出了根据本发明的一方面的聚类模块的框图。

具体实施方式

以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。

实践中,扩展问的一个形式是普通问句形式的相似问句。扩展问的另一种形式是语义表达式。一个标准问可以由若干语义表达式来表征。采用语义表达式进行标准问匹配效果较好。

语义表达式主要由词和词类构成,其核心依赖于“词类”,词类简单的理解即为一组有共性的词,这些词在语义上可以相似也可以不相似,这些词也可以被标注为重要或不重要。词类是对一组相关词的汇总,词类由词类名和一组相关词所组成。词类名是在这组相关词中具有标签作用的词,即词类的代表。一个词类中至少包含一个词(即词类本身)。

语义表达式与用户问句关系与传统的模板匹配有了很大的不同,在传统模板匹配中,模板和用户问句只是匹配与未匹配的关系,而语义表达式与用户问句之间关系是通过量化的值(相似度)来表示,同时这个量化的值与相似问句和用户问句之间的相似度是可以互相比较的。

以下说明语义表达式的具体组成和符号的表示。为区分表达式中的词与词类,规定词类必须出现在方括号“[]”中,方括号中出现的词类一般为“狭义词类”,但是也可通过配置系统参数以支持“广义词类”。词类是按照词的语义进行划分的,把一组相关的词组织在一起形成一个树状结构的词类库,在这个树状结构中的任意一个非叶子结点都称作一个词类(广义词类),其中直接包含词的第一级词类称为狭义词类。

下面是一些简单表达式的示例:

[飞信][如何][开通]

[介绍][彩信][业务]

[飞信]的[登录][方法]

[来电提醒][如何][收费]

从人工测试扩展问质量的工作中,可以得出如下经验,如果扩展问都很相似,数量再多也没多大效果,一个熟练的编辑,可以迅速围绕一个标准问变化出字面上类似的扩展问,主要的难度在那些意思相近,但文字差距大的问法上,而这样的问法一旦被编辑发现,则可以迅速变化出文字相似的扩展问。

本发明中从另一个角度——扩展问的复杂程度,来判断知识库的质量。即在编辑不是刻意出错的前提下,通过自动检测扩展问的有效问法数量,来判断编辑的“有效工作量”,从而判断知识库的质量。具体而言,在本发明中,对扩展问进行聚类处理,每一个聚类可以代表一种有效问法,因此,基于聚类的数目可以确定扩展问的复杂度,进而判断扩展问质量。

图1是示出了根据本发明的用于评价知识库中扩展问的扩展问质量的方法100的流程图。如图1所示,方法200可包括如下步骤:

步骤110,对各个标准问下的扩展问执行不预设聚类数量的聚类处理,以将每个标准问下的扩展问聚类为多个聚类。

聚类处理可以采用任何已知的算法,例如birch算法、k-means算法、dbscan算法,此处执行的聚类算法均为不预设聚类数量的。例如:可以采用对k-means算法做如下改进得到不预设聚类数量的聚类结果。

获取语料数据,提取其中的问句信息;

对问句信息进行预处理和分词处理,得到问句信息的特征词;

获取特征词的词向量,并根据词向量构造问句信息的句向量;

根据相似度计算对问句信息进行聚类处理,聚类处理包括:分别获取第m个问句信息的句向量与已聚类的k个问句信息组的句向量平均值之间的最大相似度值,当最大相似度值大于预设值时,将第m个问句信息聚类到最大相似度值对应的问句信息组中;当最大相似度值小于预设值时,将第m个问句信息作为第k+1个问句信息组,k小于或等于m-1。

上述方法采用改进的k-means算法实现问句的聚类:改进的k-means算法避免了传统的k-means算法中k值选择难的问题。该算法是指对问句依次进行聚类;k值从1开始递增,并且在此过程中不断更新中心点来实现整个聚类。聚类处理具体包括:

对t个句向量qt进行聚类,其中t≥m,m≥2;其中,t个句向量为:q1,q2,…,qt。

初始k值、中心点pk-1、以及聚类问题集{k,[pk-1]},其中,k表示聚类的类别数,k的初始值为1,中心点pk-1的初始值为p0,p0=q1,q1表示第1个句向量,聚类问题集的初始值为{1,[q1]};

依次对剩下的qt进行聚类,计算当前句向量与每个聚类问题集的中心点的相似度,如果当前句向量与某个聚类问题集的中心点的相似度大于或等于预设值,则将当前句向量聚类到相应的聚类问题集中,保持k值不变,将相应的中心点更新为聚类问题集中所有句向量的向量平均值,相应的聚类问题集为{k,[句向量的向量平均值]};如果当前句向量与所有聚类问题集中的中心点的相似度均小于预设值,则令k=k+1,增加新的中心点,新的中心点的值为当前句向量,并增加新的聚类问题集{k,[当前句向量]}。

下面以对q2聚类进行举例说明:计算q2与q1的语义相似度i,若相似度i大于0.9(根据需求设定预设值),则认为q2和q1属于同一个类,此时k=1不变,p0更新为q1和q2的向量平均值,聚类的问题集为{1,[q1,q2]};若相似度i不满足要求,则q2和q1属于不同的类,此时k=2,p0=q1,p1=q2,聚类的问题集为{1,[q1]},{2,[q2]}。

采用上述方法依次对剩余其他问句进行聚类完成的同时可以得到k最终值。

也可以采用本发明所提出的一种聚类方案,如下文详细描述的。

步骤120,基于聚类的数目确定扩展问复杂度。

通过聚类处理,每个标准问的扩展问被分为了一定数目的聚类。聚类的数目可以被用作确定扩展问复杂度的依据。

在一实例中,统计所有标准问的聚类总数,以及计算聚类总数与标准问总数的比值以作为整体扩展问复杂度。在另一实例中,将每个标准问自身的聚类数目作为该标准问的个体扩展问复杂度。

步骤130,将扩展问复杂度与复杂度对照表相对照以获得扩展问质量信息。

复杂度对照表中记载了复杂度数值及相对应的扩展问质量指数以表示相应的扩展问质量信息。例如,复杂度对照表的复杂度数值包括多个区间,复杂度数值越大的区间指示越优良的扩展问质量信息。

在评价某一个标准问的个体扩展问质量的实例中,将各个标准问的个体扩展问复杂度与复杂度对照表相对照以获得每个标准问的个体扩展问质量信息。

在评价知识库中所有标准问的扩展问质量的实例中,将上述整体扩展问复杂度与复杂度对照表相对照以获得所有标准问的整体扩展问质量信息。

在上述聚类处理中,除了可以采用常规的birch算法、k-means算法、dbscan算法外,本发明也提出了一种新的聚类方式。

如前所述,聚类的目的是找出彼此之间具有相似性的扩展问,一个聚类可以表示问法相近的多个扩展问,这与语义表达式的作用类似。一个语义表达式可以视为多个问法的聚类。因此,可以基于扩展问建立新的语义表达式以作为聚类,即每个新生成的语义表达式作为原始扩展问的一个聚类。

在本发明中,通过比较多个扩展问的分词结果,取交集的方式,获取最短语义表达式;通过跑错,验证语义表达式的有效性,并以语义表达式的有效性,筛选继续生成加长语义表达式所用的普通相似问句,并淘汰无效的语义表达式;通过多次反复循环,获得最终的语义表达式。

图2是示出了对各个标准问下的扩展问执行聚类处理的方法200的流程图。如图2所示,方法200可包括如下步骤:

步骤210:数据获取步骤

在该步骤中,针对每个标准问获得与其多个扩展问相应的多个扩展问分词结果,其中每个扩展问分词结果由对应扩展问的各词类或各单词所属的词类组成。

如前所述,扩展问包括两种形式,一种是普通问句形式,一种是语义表达式形式。如果扩展问是普通问句形式,则数据获取步骤可包括两个部分,首先是对每个标准问的每个扩展问执行分词处理,如前所述,每个标准问具有与之相关联的多个扩展问,对每个扩展问执行分词处理。这里的分词处理可采用任何已知的分词算法来完成,对此不再赘述。

分词后,每个标准问的每个扩展问被分为多个单词,然后每个单词由该单词所属的词类替换。由此,标准问的每个扩展问对应有一个分词结果,由此每个标准问获得与其多个扩展问相应的多个扩展问分词结果。

如果扩展问本身就是语义表达式形式,则扩展问本身就是由词类和词组成,则分词本身就可以获得多个词类。

作为示例,一个标准问的6个扩展问的6个分词结果可以为:

[a][b][c][d][e][f][g]

[a][b][k][j][l][m]

[a][c][m][q]

[d][k][m][q]

[a][b][c][d]

[a][b][d]

其中的[a]、[b]、[c]、[d]、[e]、[f]、[g]、[h]、[j]、[k]都是分词结果中的词类。

步骤220:聚类创建步骤

在该步骤中,针对每个标准问,从该标准问的多个扩展问分词结果的交集中依据词组出现的频率选择词组以构成该标准问的至少一个聚类,每个词组由预定数目个词类组成。

在一实例中,针对每个标准问,从该标准问的多个扩展问分词结果的交集中选择出现频率最高的词组,将选出的词组作为该标准问的一个聚类,然后从该标准问的未包括该词组的扩展问分词结果的交集中选择出现频率最高的词组,将选出的词组继续作为该标准问的一个聚类,重复此过程直至该标准问下没有其余的扩展问分词结果或者剩余的扩展问分词结果之间没有达到该预定数目个词类的交集。

剩余的扩展问分词结果之间没有达到该预定数目个词类的交集,也就不再作为聚类的生成原料,这些扩展问分词结果对应的扩展问直接作为扩展问在后续使用。

上述组成词组的词类的预定数目可以大于等于1。即,词组也可以本身就是一个词类。

以上述标准问的6个扩展问的6个分词结果为例,假设组成每个词组的词类的预定数目为1,则该标准问的6个分词结果的交集中:[a]出现5次,[b]出现4次,[c]出现3次,[d]出现3次……

则词类[a]作为该标准问的聚类被保存。同时,未包括[a]的分词结果仅为[d][k][m][q]。由于仅剩余一个分词结果,也就不可能再存在交集,所以生成聚类的过程结束。

再假设该组成每个词组的词类的预定数目为2,则该标准问的6个分词结果的交集中,[a][b]出现频率最高,则将[a][b]作为该标准问的一个聚类。未包括[a][b]的两个分词结果为[a][c][m][q]和[d][k][m][q],它们之间的交集为[m][q],则[m][q]也被保存作为该标准问的聚类。即,在该预定数目为2的情况下,生成了两个聚类[a][b]、和[m][q]。

依照上述过程针对每个标准问生成聚类。较优地是,在该聚类创建步骤中,按照复杂度由低到高的顺序为各标准问创建聚类,在创建过程中,若为在后的标准问生成的聚类与在前的标准问的已生成聚类重复,则该重复的聚类不作为该在后的标准问的聚类保存。

假设针对前一个标准问创建的聚类包括[a][b],若在针对后续标准问生成的聚类也包括[a][b],则后续标准问的该聚类[a][b]不被保存。

实践中,复杂度基于标准问的字数,字数越少复杂度越低。字数相同时,带有“介绍”字样,或“介绍”同义词的标准问优先。

步骤230:检测步骤

在此步骤中,针对所有标准问的所有扩展问,执行标准问匹配处理,对于为每个标准问创建的每个聚类,判断该聚类是否被匹配至其标准问的至少一个扩展问,若是,则该聚类被标记为第一状态,例如状态true,否则被标记为第二状态,例如状态false。

实例中,针对每个扩展问,该执行标准问匹配处理包括将该扩展问与针对所有标准问生成的所有聚类执行语义相似度计算,并将该扩展问匹配至具有最高语义相似度且该最高语义相似度高于阈值的聚类。

此检测步骤是对上述初步建立的各标准问的聚类进行“跑错”的过程。此跑错的核心就是以每个标准问自身相关联的扩展问为测试样例来测试先前为该标准问创建的聚类是否可行,换言之,就是标准问的扩展问是否能够匹配至先前自动创建的聚类,进而由此匹配至该标准问。

如果标准问的至少一个扩展问能够匹配至先前为该标准问创建的一个聚类,则认为该聚类是可用的,该聚类可被标记为状态true。注意,针对某一标准问的某个扩展问的标准问匹配是在为所有标准问生成的所有聚类的范围内来执行的,即将该扩展问不仅与该标准问的所有聚类执行语义相似度计算,而且还与其他标准问的所有聚类执行语义相似度计算。由此,对于某个标准问的某个扩展问而言,该扩展问可能会被定位匹配至其他标准问的某个聚类,换言之,对于某个标准问的某个聚类而言,该聚类可能与其他标准问的扩展问相匹配。

如果一个标准问的先前创建的某一个聚类,该标准问的所有的扩展问都未能与该聚类相匹配,则即使有其他标准问的扩展问定位匹配至该聚类也,认为该聚类是无效的。所有被认为无效的聚类可被标记为状态false。

另一方面,在上述标准问匹配过程中,对于某个标准问的某个扩展问而言,若该扩展问被定位匹配至该标准问的任何一个聚类,则在一实例中可将这样的扩展问记为第四状态,例如状态false;否则若该扩展问未被定位匹配至该标准问的任何一个聚类,例如匹配失败(即未找到与之具有高于阈值语义相似度的聚类)或者被定位至其他标准问的某一个聚类(即与其他标准问的某一个聚类具有最大语义相似度,也称之为被其他标准问的该聚类“抢”),则将该扩展问记为第三状态,例如状态true。

步骤240:删除步骤

在此步骤中,删除所有状态为第二状态,例如状态false的聚类。

由此,为标准问所生成的聚类经删除后剩余的聚类即为该标准问的有效的聚类。

在一实施例中,在执行步骤240删除步骤之后,还包括步骤250:可再次针对所有标准问的所有扩展问,执行标准问匹配处理,然后若是有状态为第三状态的扩展问被匹配至与之相关联的标准问所属的聚类,则该扩展问的状态由第三状态改为第四状态。这是因为先前状态为false(即只会“抢”其他扩展问)的聚类被删除之后,有可能一些标记为第三状态(例如被“抢”)的扩展问有可能被触发到自己对应的标准问下。

较优地,可循环执行所述聚类创建步骤、所述检测步骤、和所述删除步骤预定次数,其中在聚类创建步骤中用于组成词组的词类的所述预定数目随着循环依次递增,且在后续循环中只有状态为true的扩展问参与聚类创建。

换言之,在下一次循环中,在执行聚类创建时,使用比上一次循环中加1的词类数目来构建聚类。例如,假设循环执行3次,在第一次循环中,构成聚类的词组由1个词类组成;则在第二次循环中,构成聚类的词组由2个词类组成,在第三次循环中,构成聚类的词组由3个词类组成。

而且,后续循环中只有状态为true的扩展问参与聚类创建。例如在第一次循环中,从一个标准问的多个扩展问分词结果的交集中依据词组出现的频率选择词组以构成该标准问的至少一个聚类。但是如前所述,在第一次循环中经过检测步骤之后,该标准问的一些扩展问的状态为true,另一些状态为false,则在第二次循环中,在执行聚类创建步骤时,仅使用状态为true的扩展问创建聚类。具体而言,从该标准问的状态为true的那些扩展问分词结果的交集中依据词组出现的频率选择词组以构成该标准问的聚类。

经过预订次数的这种循环,每次循环聚类的长度逐渐增加,为每个标准问创建出越来越准确、完善的聚类。图3示出了根据本发明的具体实施例的用于对各个标准问下的扩展问执行聚类处理的方法的流程图。

较佳地,如果以上述预订次数的循环为一个例程,可重复执行此例程若干次,后续每次例程中,只有状态为true的扩展问参与聚类创建。换言之,只有第一个例程的第一次循环中的聚类创建步骤是所有的扩展问参与聚类创建,在第一个例程的后续所有循环中以及在后续例程的所有循环中都是只有状态为true的扩展问参与聚类创建。

最后,标记为true的扩展问可被加到对应标准问的“普通问句形式的扩展问”参与标准问匹配过程中的相似度计算。

上述循环和例程的执行如下:

步骤220~步骤240循环

i=i+1

}

k=k+1

}

其中,m为聚类长度下限;n为聚类长度上限;i为循环索引;j为例程执行次数,k为例程索引。

示例:

3条标准问:

开通彩铃;取消彩铃;介绍彩铃,其对应的扩展问如下:

“开通彩铃”的扩展问

我想用彩铃

如何开通彩铃

如何启用彩铃

帮我开通彩铃

帮我启用彩铃

介绍一下如何开通彩铃

介绍彩铃的开通方法

“取消彩铃”的扩展问

如何取消彩铃

如何关闭彩铃

帮我取消彩铃

帮我关闭彩铃

介绍一下如何取消彩铃

介绍彩铃的取消方法

我不想用彩铃了

“介绍彩铃”的扩展问

彩铃是什么

帮我介绍一下彩铃

介绍一下彩铃

彩铃?

设m=1,n=3,j=2

循环开始,i从下限1开始执行。

执行步骤120,生成聚类时,设定生成长度1,每条标准问都会生成聚类[彩铃],因为执行时带有“介绍”的标准问优先,所以,只有“介绍彩铃”能够保存模板[彩铃],其他几条因为保存时出现冲突,都不能保存聚类。这里的冲突即是指先前以有其他标准问保存了[彩铃]作为其聚类,后续的标准问则不能再将已被保存为其他标准问的聚类保存作为自己的聚类。

执行步骤130,“介绍彩铃”中扩展问“彩铃?”能够匹配聚类“[彩铃]”,扩展问“彩铃?”由此标记为“false”,聚类“[彩铃]”标记为“true”。其他标准问下的扩展问都标记为“true”。

执行步骤140,没有聚类被删除,结果和上一步一样。另一方面,如果没有扩展问“彩铃?”,则执行这一步时,聚类“[彩铃]”会被删掉。

第二次循环,i加1变成2

执行步骤120,三个标准问分别生成聚类:

“[开通][彩铃]”、“[启用][彩铃]”

“[取消][彩铃]”、“[关闭][彩铃]”

“[介绍][彩铃]”;

执行步骤130,“开通彩铃”的扩展问“我想用彩铃”、“介绍一下如何开通彩铃”、“介绍彩铃的开通方法”没有匹配任何一个聚类,标记为“true”,其他扩展问标记为“false”,聚类“[开通][彩铃]”、“[启用][彩铃]”标记为“true”;

“取消彩铃”的扩展问“我不想用彩铃了”、“介绍一下如何取消彩铃”、“介绍彩铃的取消方法”没有匹配任何一个聚类,标记为“true”,其他扩展问标记为“false”,聚类“[取消][彩铃]”、“[关闭][彩铃]”标记为“true”;

“介绍彩铃”的扩展问“彩铃是什么”没有匹配任何一个聚类,标记为“true”,其他扩展问标记为“false”,聚类“[介绍][彩铃]”、“彩铃”标记为true。

执行步骤140,没有聚类被删除,结果和上一步一样。

第三次循环,i=3

执行120:“开通彩铃”新增聚类[介绍][开通][彩铃];

“取消彩铃”新增聚类[介绍][取消][彩铃];

“介绍彩铃”没有生成新模板。

执行步骤130:“我想用彩铃”、“我不想用彩铃了”、“彩铃是什么”3个扩展问皆未能匹配各自的任何一个聚类,因此状态还是“true”,其他扩展问都是“false”,所有聚类也都被各自标准问下的某一个或多个扩展问所匹配,所以状态都是“true”。

执行步骤140,没有聚类被删除,结果和上一步一样。

三次循环作为一个例程执行完毕后,执行下一个例程,直至j=2个例程执行完毕。最终,为这三个标准问分别生成了聚类如下:

“开通彩铃”的聚类:“[开通][彩铃]”、“[启用][彩铃]”、[介绍][开通][彩铃];

“取消彩铃”的聚类:“[取消][彩铃]”、“[关闭][彩铃]”、“[介绍][取消][彩铃]”;

“介绍彩铃”的聚类:“[介绍][彩铃]”、“[彩铃]”

另外,扩展问“我想用彩铃”、“我不想用彩铃了”、“彩铃是什么”3可作为各自标准问的普通扩展问使用。此时利用所有扩展问作为测试样例跑错的正确率达到100%。

尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。

图4是示出了根据本发明的用于评价知识库中扩展问的扩展问质量的装置400的框图。如图4所示,装置400可包括聚类模块410、复杂度确定模块420、以及质量确定模块430。

聚类模块410可用于对各个标准问下的扩展问执行不预设聚类数量的聚类处理,以将每个标准问下的扩展问聚类为多个聚类。聚类模块410可采用以下算法中的任一种来执行聚类处理:birch算法、k-means算法、dbscan算法,此处执行的聚类算法均为不预设聚类数量的。例如:可以采用对k-means算法做如下改进得到不预设聚类数量的聚类结果。

获取语料数据,提取其中的问句信息;

对问句信息进行预处理和分词处理,得到问句信息的特征词;

获取特征词的词向量,并根据词向量构造问句信息的句向量;

根据相似度计算对问句信息进行聚类处理,聚类处理包括:分别获取第m个问句信息的句向量与已聚类的k个问句信息组的句向量平均值之间的最大相似度值,当最大相似度值大于预设值时,将第m个问句信息聚类到最大相似度值对应的问句信息组中;当最大相似度值小于预设值时,将第m个问句信息作为第k+1个问句信息组,k小于或等于m-1。

上述方法采用改进的k-means算法实现问句的聚类:改进的k-means算法避免了传统的k-means算法中k值选择难的问题。该算法是指对问句依次进行聚类;k值从1开始递增,并且在此过程中不断更新中心点来实现整个聚类。聚类处理具体包括:

对t个句向量qt进行聚类,其中t≥m,m≥2;其中,t个句向量为:q1,q2,…,qt。

初始k值、中心点pk-1、以及聚类问题集{k,[pk-1]},其中,k表示聚类的类别数,k的初始值为1,中心点pk-1的初始值为p0,p0=q1,q1表示第1个句向量,聚类问题集的初始值为{1,[q1]};

依次对剩下的qt进行聚类,计算当前句向量与每个聚类问题集的中心点的相似度,如果当前句向量与某个聚类问题集的中心点的相似度大于或等于预设值,则将当前句向量聚类到相应的聚类问题集中,保持k值不变,将相应的中心点更新为聚类问题集中所有句向量的向量平均值,相应的聚类问题集为{k,[句向量的向量平均值]};如果当前句向量与所有聚类问题集中的中心点的相似度均小于预设值,则令k=k+1,增加新的中心点,新的中心点的值为当前句向量,并增加新的聚类问题集{k,[当前句向量]}。

下面以对q2聚类进行举例说明:计算q2与q1的语义相似度i,若相似度i大于0.9(根据需求设定预设值),则认为q2和q1属于同一个类,此时k=1不变,p0更新为q1和q2的向量平均值,聚类的问题集为{1,[q1,q2]};若相似度i不满足要求,则q2和q1属于不同的类,此时k=2,p0=q1,p1=q2,聚类的问题集为{1,[q1]},{2,[q2]}。

采用上述方法依次对剩余其他问句进行聚类完成的同时可以得到k最终值。

复杂度确定模块420可基于聚类的数目确定扩展问复杂度,质量确定模块430可将扩展问复杂度与复杂度对照表相对照以获得扩展问质量信息。

在一实例中,复杂度确定模块420可统计所有标准问的聚类总数并计算聚类总数与标准问总数的比值以作为整体扩展问复杂度,质量确定模块430可将整体扩展问复杂度与复杂度对照表相对照以获得所有标准问的整体扩展问质量信息。

在另一实例中,复杂度确定模块420可将每个标准问自身的聚类数目作为该标准问的个体扩展问复杂度,质量确定模块430可将每个标准问的个体扩展问复杂度与复杂度对照表相对照以获得每个标准问的个体扩展问质量信息。

复杂度对照表的复杂度数值可包括多个区间,复杂度数值越大的区间指示越优良的扩展问质量信息。

图5是示出了根据本发明的一方面的聚类模块500的框图。聚类模块500可包括数据获取模块510、聚类创建模块520、检测模块530、以及编辑模块540。

数据获取模块510可用于针对每个标准问获得与其多个扩展问相应的多个扩展问分词结果,其中每个扩展问分词结果由对应扩展问的各词类或各单词所属的词类组成。

聚类创建模块520可针对每个标准问,从该标准问的多个扩展问分词结果的交集中依据词组出现的频率选择词组以构成该标准问的至少一个聚类,每个词组由预定数目个词类组成。该预定数目可大于等于1。

作为实例,聚类创建模块520可针对每个标准问,从该标准问的多个扩展问分词结果的交集中选择出现频率最高的词组,将选出的词组作为该标准问的一个聚类,然后从该标准问的未包括该词组的扩展问分词结果的交集中选择出现频率最高的词组,将选出的词组继续作为该标准问的一个聚类,重复此过程直至该标准问下没有其余的扩展问分词结果或者剩余的扩展问分词结果之间没有达到所述预定数目个词类的交集。

剩余的扩展问分词结果之间没有达到所述预定数目个词类的交集,也就不再作为聚类的生成原料,这些扩展问分词结果对应的扩展问直接作为扩展问在后续使用。

作为示例,该复杂度可基于标准问的字数,字数越少复杂度越低。

较优地,聚类创建模块520可按照复杂度由低到高的顺序为各标准问创建聚类,在创建过程中,若为在后的标准问生成的聚类与在前的标准问的已生成聚类重复,则该重复的聚类不作为该在后的标准问的聚类保存。

检测模块530可针对所有标准问的所有扩展问,执行标准问匹配处理,对于为每个标准问创建的每个聚类,判断该聚类是否被匹配至其标准问的至少一个扩展问,若是,则该聚类被标记为第一状态,例如状态true,否则被标记为第二状态,例如状态false。

作为实例,检测模块530可包括语义相似度计算单元531,针对每个扩展问,语义相似度计算单元531可将该扩展问与针对所有标准问生成的所有聚类执行语义相似度计算,并将该扩展问匹配至具有最高语义相似度且该最高语义相似度高于阈值的聚类。

此检测步骤是对上述初步建立的各标准问的聚类进行“跑错”的过程。此跑错的核心就是以每个标准问自身相关联的扩展问为测试样例来测试先前为该标准问创建的聚类是否可行,换言之,就是标准问的扩展问是否能够匹配至先前自动创建的聚类,进而由此匹配至该标准问。

如果标准问的至少一个扩展问能够匹配至先前为该标准问创建的一个聚类,则认为该聚类是可用的,该聚类可被标记为状态true。注意,针对某一标准问的某个扩展问的标准问匹配是在为所有标准问生成的所有聚类的范围内来执行的,即将该扩展问不仅与该标准问的所有聚类执行语义相似度计算,而且还与其他标准问的所有聚类执行语义相似度计算。由此,对于某个标准问的某个扩展问而言,该扩展问可能会被定位匹配至其他标准问的某个聚类,换言之,对于某个标准问的某个聚类而言,该聚类可能与其他标准问的扩展问相匹配。

如果一个标准问的先前创建的某一个聚类,该标准问的所有的扩展问都未能与该聚类相匹配,则即使有其他标准问的扩展问定位匹配至该聚类也,认为该聚类是无效的。所有被认为无效的聚类可被标记为状态false。

最后,编辑模块540可删除所有状态为false的聚类。剩余的聚类即为获得的有效聚类。

进一步地,检测模块530还可包括状态标记单元532,用于在语义相似度计算单元531执行标准问匹配处理之后,对于每个标准问的每个扩展问,判断该扩展问是否被匹配至与之相关联的标准问所属的聚类,若是将该扩展问标记为第四状态,例如状态false,否则若该扩展问未被定位匹配至该标准问的任何一个聚类,例如匹配失败(即未找到与之具有高于阈值语义相似度的聚类)或者被定位至其他标准问的某一个聚类(即与其他标准问的某一个聚类具有最大语义相似度,也称之为被其他标准问的该聚类“抢”),将该扩展问标记为第三状态,例如状态true。

在此实例中,聚类创建模块520、检测模块530、和编辑模块540依次循环执行所述聚类创建、所述检测、和所述删除的步骤预定次数,其中,聚类创建模块530用来组成所述词组的词类的所述预定数目随着循环依次递增,换言之,在下一次循环中,在执行聚类创建时,使用比上一次循环中加1的词类数目来构建聚类。例如,假设循环执行3次,在第一次循环中,构成聚类的词组由1个词类组成;则在第二次循环中,构成聚类的词组由2个词类组成,在第三次循环中,构成聚类的词组由3个词类组成。且在后续循环中只有状态为true的扩展问被所述聚类创建模块用来参与聚类创建。

经过预订次数的这种循环,每次循环聚类的长度逐渐增加,为每个标准问创建出越来越准确、完善的聚类。

在每个循环周期中,在编辑模块540执行删除的步骤之后,检测模块530可立即再次针对所有标准问的所有扩展问,执行标准问匹配处理,然后若是有状态为第三状态的扩展问被匹配至与之相关联的标准问所属的聚类,则其状态被状态标记单元532由第三状态改为第四状态。这是因为先前状态为false(即只会“抢”其他扩展问)的聚类被删除之后,有可能一些标记为第三状态(例如被“抢”)的扩展问有可能被触发到自己对应的标准问下。

在一进一步的实例中,以该预定次数的循环为一个例程,聚类创建模块520、检测模块530、和编辑模块540重复执行所述例程若干次,后续每次例程中,只有状态为true的扩展问参与聚类创建。

本发明还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行所述计算机程序时实现上述方法中的步骤。

本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。

其中,计算机设备、计算机可读存储介质以及用于评价知识库中扩展问的扩展问质量的装置的具体实现方式和技术效果均可参见上述用于评价知识库中扩展问的扩展问质量的方法的实施例,在此不再赘述。

根据本发明的方案,通过对标准问的扩展问进行聚类,以聚类的数目作为扩展问的复杂度依据,并由此来评价扩展问质量。以此方式,能够代替人工地对扩展问评估,极大地提高了评估效率。

本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。

结合本文所公开的实施例描述的各种解说性逻辑模块、和电路可用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如dsp与微处理器的组合、多个微处理器、与dsp核心协作的一个或多个微处理器、或任何其他此类配置。

结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动盘、cd-rom、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在asic中。asic可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。

在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、dsl、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(cd)、激光碟、光碟、数字多用碟(dvd)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。

提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1