语句处理方法、装置及存储介质与流程

文档序号:22878279发布日期:2020-11-10 17:32阅读:94来源:国知局
语句处理方法、装置及存储介质与流程

本发明涉及自然语言处理技术,尤其涉及一种语句处理方法、装置及存储介质。



背景技术:

随着自然语言处理(naturallanguageprocessing,nlp)技术的快速发展,越来越多的设备(例如智能音箱和智能手机)上搭载了nlp技术。设备的nlp能力可以通过其对自然语句的响应结果进行评估,例如播放“播放我喜欢的电影”的自然语句,对响应结果设置各种评测项以评估终端的nlp能力。

但是,一个评测项仅能评测设备在一个领域的nlp能力,无法评测设备在不同的领域的nlp能力,设备的nlp能力需要结合其对音乐领域、问答领域、闲聊领域等不同领域(也即是维度)的评测项来进行评估。

但是,相关技术缺乏对语句集合中海量的语句进行准确分类的方案。



技术实现要素:

本发明实施例提供一种语句处理方法、装置及存储介质,能够准确地对语句集合中的语句进行维度的划分。

本发明实施例的技术方案是这样实现的:

本发明实施例提供一种语句处理方法,包括:

将语句集合中各个语句映射为语义空间中的节点;

遍历所述语义空间中任意的两个节点并连接为边,将各边连接的两个节点对应的语句之间的语义距离标记为各对应边的权重,以形成节点关系图;

将所述节点关系图中各个边的权重转换为对应边的一端节点转移到另一端节点的概率;

基于所述节点关系图中各个边对应的概率,生成用于表示在所述节点关系图中随机转移的至少两个随机序列;

将各个所述随机序列中节点对应的语句,划分至所述随机序列所对应维度的语句子集合中。

本发明实施例提供一种语句处理装置,包括:

映射单元,用于将语句集合中各个语句映射为语义空间中的节点;

构建单元,用于遍历所述语义空间中任意的两个节点并连接为边,将各边连接的两个节点对应的语句之间的语义距离标记为各对应边的权重,以形成节点关系图;

转换单元,用于将所述节点关系图中各个边的权重转换为对应边的一端节点转移到另一端节点的概率;

生成单元,用于基于所述节点关系图中各个边对应的概率,生成用于表示在所述节点关系图中随机转移的至少两个随机序列;

划分单元,用于将各个所述随机序列中节点对应的语句,划分至所述随机序列所对应维度的语句子集合中。

在上述方案中,所述装置还包括:第一距离确定单元,用于:

对所述语句集合中各个语句进行分词,得到所述各个语句所包括的词;

分别对所述各个语句所包括的词对应的词向量进行组合,得到所述各个语句一一对应的句子向量;

遍历任意的两个句子向量,以将所述两个句子向量之间的距离确定为对应语句之间的语义距离。

在上述方案中,所述装置还包括:第二距离确定单元,用于:

从所述语句集合的各个语句中提取特征向量;

分别对所述各个语句的特征向量进行降维,得到所述各个语句一一对应的句子向量;

遍历任意的两个句子向量,以将所述两个句子向量之间的距离确定为对应语句之间的语义距离。

在上述方案中,,所述装置还包括:稀疏单元,用于:

遍历所述语义空间中的节点,并将每次所遍历的节点作为参考节点,以执行以下处理:

将所述节点关系图中连接所述参考节点的边的权重相加,得到权重和;

遍历所述节点关系图中连接所述参考节点的边,并将所遍历的边的权重与所述权重和之间的比值,确定为所遍历的边的更新后的权重;

基于连接所述参考节点的边的更新后的权重,确定所述参考节点的参考权重;

删除所述节点关系图中更新后的权重大于所述参考节点的参考权重的边。

在上述方案中,所述稀疏单元,还用于:

确定连接所述参考节点的边的更新后的权重的权重均值;

将设定的因子与所述参考节点的权重均值进行乘法运算,得到所述参考节点的参考权重。

在上述方案中,所述装置还包括:切分单元,用于:

确定所述节点关系图中的分量,所述分量中任意两个节点能够通过边相互连通;

以所述分量为界限对所述节点关系图进行划分。

在上述方案中,所述转换单元,还用于:

遍历所述节点关系图中的边,以所述边的一端节点作为源节点,并以所述边的另一端节点作为目标节点,执行以下处理:

基于设定的函数,将所述边的权重转换为所述源节点与所述源节点的相邻节点之间的相似度;

基于所述源节点与所述相邻节点之间的相似度,对所述源节点与所述目标节点之间的相似度进行归一化,得到从所述源节点转移到所述目标节点的概率。

在上述方案中,所述生成单元,还用于:

将所述节点关系图中各个边对应的概率按照矩阵的形式排列,得到所述节点关系图的概率矩阵;

遍历所述概率矩阵中的行以执行以下处理:

在所述行中查找大于设定的概率阈值的目标元素,以及

在所述节点关系图中查找所述目标元素对应的边所连接的节点,基于所查找到的节点构造所述行的随机序列。

在上述方案中,所述装置还包括:收敛单元,用于:

迭代执行以下处理直至所述概率矩阵收敛:

对所述概率矩阵进行乘方运算得到扩展矩阵,将所述扩展矩阵中的每个元素进行乘方运算并除以所在行的元素之和,基于得到的运算结果更新相应元素的取值。

在上述方案中,所述装置还包括:采样单元,用于:

遍历至少两个维度的语句子集合以执行以下处理:

采样设定数量的语句,基于采样的语句构成所述维度的评测集;

输出至少两个维度的评测集的语句对应的语音,以获得语音交互程序的响应结果。

本发明实施例提供一种语句处理装置,包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的语句处理方法。

本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的语句处理方法。

本发明实施例具有以下有益效果:

将语句集合的分类过程转换为构建语义空间的节点关系图,并在节点关系图中基于概率随机转移形成不同的随机序列的过程,从而能够语句集合中在语义上存在联系的语句整合到同一个随机序列中,进而准确地对语句集合中的语句分类。

附图说明

图1是本发明实施例提供的语句处理系统架构的一个可选的结构示意图;

图2是本发明实施例提供的语句处理装置的一个可选的结构示意图;

图3是本发明实施例提供的语句处理方法的一个可选的流程示意图;

图4是本发明实施例提供的节点关系图的一个可选的示例图;

图5是本发明实施例提供的收敛的矩阵的一个可选的示例图;

图6是本发明实施例提供的相似度匹配模型的一个可选的架构示意图;

图7是本发明实施例提供的节点s1的一个可选的稀疏效果示意图;

图8是本发明实施例提供的强连通分量的一个可选示例图;

图9是本发明实施例提供的节点关系图的一个可选示例图;

图10是本发明实施例提供的k-means分类的一个可选过程释义图;

图11是本发明实施例提供的语句处理方法的一个可选的流程示意图;

图12是本发明实施例提供的节点关系图的一个可选示例图;

图13是本发明实施例提供的概率矩阵的一个可选示例图;

图14是本发明实施例提供的膨胀操作的一个可选示例图;

图15是本发明实施例提供的分类效果示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。

对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。

1)节点关系图,基于节点和节点之间的连接构成的图,节点之间的连接称为节点之间的边。节点可表征语句,节点和节点之间的边可表征语句之间的语义距离。基于节点关系图中的边是否具有方向,节点关系图可包括有向图和无向图。边的参数可包括权重、概率等表征节点之间的关系的信息。其中,边的概率表征节点之间可达的概率,即从边的一端节点转移到边的另一端节点的概率,节点关系图也可称为概率图。

2)无向图,边没有方向的节点关系图。无向图的边可称为无向边,无向边是连接的两个节点的无序对,无序对可通过圆括号表示,比如:无序对(a,b)和(b,a),表示同一条边,即节点a和节点b之间的边。

3)有向图,边具有方向的节点关系图。有向图的边可称为有向边,有向边是连接的两个节点的有序对,有序对可通过尖括号表示,比如:<a,b>表示节点a指向节点b的一条边,<b,a>表示节点b指向节点a的一条边;边<a,b>也可称为节点a指向节点b的出边,边<b,a>也可称为节点b指向节点a的出边。

4)完全图,每对不同的节点之间都连接有一条无向边的无向图。

5)语句集合,由多个语句构成的集合。其中,基于语句是否符合语句集合的某一种先验的整体分布,将语句集合中的语句分为长尾数据和非长尾数据,长尾数据为不符合语句集合的整体分布的语句,将语句集合中符合语句集合整体分布的语句即长尾数据以外的数据成为非长尾数据。长尾数据与非长尾数据之间的语义距离大于两个非长尾数据的之间的语义距离。

6)语句子集合,相同维度的语句构成的集合,即不同语句子集合中的语句的维度不同。比如:语句子集合1包括名字问答维度语句:小张的女儿叫什么名字、小王的老婆叫什么名字;语句子集合2包括年龄问答维度的语句:小张多少岁,小李多少岁,小明多少岁。

7)词向量(wordembedding),词(例如一个单词或一个短语)被映射到语义空间中时以实数来表示的向量,词向量可以采用相同的长度相同。

8)词频-逆文本频率指数(termfrequency–inversedocumentfrequency,tf-idf),用以评估一词对于一个文件集或一个语料库中的一份文件的重要程度。词的重要性随着在文件中出现的次数成正比增加,但同时会随着在语料库中出现的频率成反比下降。一个词在某一特定文件内为高频率词,以及该词在整个文件集合中为低文件频率,则产生出高权重的tf-idf。

本发明实施例可提供为语句处理方法、装置和存储介质。实际应用中,实现语句处理方法的语句处理装置中的各功能实体可以由设备(如终端设备、服务器或服务器集群)的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)协同实现。

相关技术中,对语句集合中的语句进行分类时,将各语句映射为向量空间中的节点,从向量空间中随机选取k个节点作为分类中心,根据各语句与不同分类中心之间的距离,将所述各节点划分到对应不同分类中心的集合;基于各集合中的节点与分类中心的距离,对分类中心的位置进行调整,并继续根据各语句与不同分类中心之间的距离,将所述各节点划分到对应不同分类中心的集合,直到各分类中心的位置不再变化,将语句集合分类为多个维度的簇即不同类别的语句子集合。

由于需要预先确定类别的数量k,如果k值与实际的类别的数量不同,在分类的开始就产生了误差,导致分类结果不准确。另外,长尾数据也很可能分到其他维度的语句子集合中,无法将长尾数据区分出来。

针对上述问题,本发明实施例将语句之间的语义距离转换为不同语句对应的不同节点间转移的概率,以体现节点之间进行转移的可能性,以此作为分类标准,即使对于语句集合中包括长尾数据与非长尾数据时,也能够将语句集合中的语句精确划分到对应维度的语句子集合。

下面说明实现本发明实施例的语句处理装置的示例性应用,本发明实施例提供的语句处理装置可以集成到各种形式的语句处理设备中,例如智能手机、平板电脑、笔记本电脑等各种类型的终端,也可以为服务器,下面示例性说明包括语句处理设备的语句处理系统的示例性应用。

参见图1,图1是本发明实施例提供的语句处理系统100的一个可选的架构示意图,终端400通过网络连接服务器200,网络可以是广域网或者局域网,又或者是二者的组合。

在服务器200作为语句处理设备的一个示例性应用中,服务器200中设置有语句集合201。服务器200将语句集合201中各个语句划分至对应维度的语句子集合202(示例性示出了语句子集合202-1、语句子集合202-2、语句子集合202-3);其中,语句子集合202-1、语句子集合202-2、语句子集合202-3分别为不同维度的语句子集合。

服务器200分别从语句子集合202-1、语句子集合202-2、语句子集合202-3中采样设定数量的语句,得到不同维度的评测集203-1、评测集203-2和评测集203-3。

比如:语句子集合202-1的维度为音乐,语句子集合202-1中的语句属于音乐领域;语句子集合202-2的维度为问答,语句子集合202-2中的语句属于问答领域;语句子集合202-3的维度为闲聊,语句子集合202-3中的语句属于闲聊领域。分别从语句子集合202-1、语句子集合202-2、语句子集合202-3中采样,得到音乐领域的评测集203-1、问答领域的评测集203-2和闲聊领域的评测集203-3。

服务器200将不同维度的评测集203-1、评测集203-2和评测集203-3输出至终端400。终端400中安装有基于nlp技术实现的语音交互程序401,可以是智能音箱、智能电视盒子、在线语音交互系统、智能语音助手或车载智能语音设备。终端400通过评测集203-1、评测集203-2和评测集203-3对语音交互程序401进行评测,语音交互程序401输出响应结果402,从而供用户对语音交互程序401进行评测。

终端400可直接将响应结果402呈现给用户,也可将响应结果402发送至服务器200,或将响应结果402发送至服务器200之外的终端或服务器(未示出),以进行语音交互程序401的评估。

在终端400作为语句处理设备的另一个示例性应用中,终端400中设置有语句集合,将语句集合中各个语句划分至对应维度的语句子集合。终端400分别从不同的语句子集合中采样设定数量的语句,得到不同维度的评测集。

终端400可以是智能音箱、智能电视盒子、在线语音交互系统、智能语音助手或车载智能语音设备,安装有基于nlp技术实现的语音交互程序。终端400输出不同维度的评测集的语句的语音,以获得语音交互程序输出响应结果,从而供用户对语音交互程序进行评测。终端400可直接将响应结果呈现给用户,也可将响应结果发送至服务器至其他终端,以进行语音交互程序的评估。

需要说明的是,本发明实施例提供的语句处理方法,适用于各种需要语句分类的场景中。比如,新闻分类:将每天发生的重要新闻文本进行分类,对同主题文档进行冗余消除、信息融合、文本生成等处理,生成一篇简明扼要的摘要文档。又比如,搜索引擎返回结果的分类:用户输入检索关键词,对基于检索关键词检索到的文档进行分类,并输出各个类别的简要描述,从而可以缩小检索的范围。再比如,对语音交互程序进行评测的评测项的分类:将语句集合中的语句进行聚合到不同维度的语句子集合,基于不同维度的语句子集合中的语句对语音交互程序进行评测,从而对语音交互程序进行全面的评测。

继续说明如图1所示的语句处理装置的结构,参见图2,图2是本发明实施例提供的语句处理装置20一个可选的结构示意图,根据图2示出的语句处理装置20的结构,可以预见语句处理装置20的其他的示例性结构,因此这里所描述的结构不应视为限制,例如可以省略下文所描述的部分组件,或者,增设下文所未记载的组件以适应某些应用的特殊需求。

图2所示的语句处理装置20包括:至少一个处理器210、存储器240、至少一个网络接口220和用户接口230。语句处理装置20中的各个组件通过总线系统250耦合在一起。可理解,总线系统250用于实现这些组件之间的连接通信。总线系统250除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统250。

用户接口230可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。

存储器240可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)。易失性存储器可以是随机存取存储器(ram,randomaccessmemory)。本发明实施例描述的存储器240旨在包括任意适合类型的存储器。

本发明实施例中的存储器240能够存储数据以支持语句处理装置20的操作。这些数据的示例包括:用于在语句处理装置20上操作的任何计算机程序,如操作系统和应用程序。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序。

作为本发明实施例提供的方法采用软硬件结合实施的示例,本发明实施例所提供的方法可以直接体现为由处理器210执行的软件模块组合,例如本本发明实施例提供的语句处理装置,语句处理装置的软件模块可以存储于存储器240,处理器210读取存储器240中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器210以及连接到总线250的其他组件)完成本发明实施例提供的语句处理方法。

作为示例,处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

将结合前述的实现本发明实施例的语句处理装置的示例性应用和实施,说明实现本发明实施例的语句处理方法。

参见图3,图3是本发明实施例提供的语句处理方法的一个可选的流程示意图,将结合图3示出的步骤进行说明。可以理解地,图3所示的语句处理方法可由各种语句处理设备实施,例如上所述的终端400或服务器200。

步骤s301,将语句集合中各个语句映射为语义空间中的节点。

比如:语句集合包括:语句1、语句2、语句3、语句4、语句5、语句6和语句7。将语句1、语句2、语句3、语句4、语句5、语句6和语句7一一对应地映射为图4所示的语义空间40中的节点:节点s1、节点s2、节点s3、节点s4、节点s5、节点s6和节点s7。

步骤s302,遍历所述语义空间中任意的两个节点并连接为边,将各边连接的两个节点对应的语句之间的语义距离标记为各对应边的权重,以形成节点关系图。

遍历所述语义空间中任意的两个节点,在所遍历的两个节点之间建立边,基于各个节点之间的边以及节点,构建一个节点关系图,且在节点关系图中,边的权重为边所连接的两个节点对应的语句之间的语义距离。步骤s302中构造的节点关系图可以称为完全图。

比如:如图4所示,在不同的节点之间的连接作为边,且节点i和节点j之间的边的权重为:dij。dij的值为节点i对应的语句与节点j对应的语句之间的语义距离,构建节点关系图410。

当语句集合中包括n(n为大于2的整数)个语句时,节点关系图中对应有n个节点,且每个节点与其他的n-1个节点之间分别以边连接,节点关系图中边的数量为:n*(n-1)/2。如图4所示,节点关系图410中的边的数量为:7*6/2=21。

语句集合中任两个语句之间的语义距离通过以下方式中的任一种方式确定:

方式一、对各语句进行分词,得到各语句所包括的词,基于各语句所包括的词的词向量,得到各语句的句子向量,基于不同语句的句子向量确定不同语句之间的语义距离。

在方式一中,可对语句中所有词的词向量进行组合,得到对应的句子向量,可将语句中所有词的词向量相加取平均,得到对应的句子向量,还可对语句中的每个词的词向量按照tf-idf进行打分,然后进行加权平均,得到对应的句子向量。方式二、将不同的语句作为相似度匹配模型的输入,在相似度匹配模型中,对不同的语句进行特征提取,并基于所述提取的特征向量确定不同语句之间的语义距离。相似度匹配模型可为:基于卷积神经网络(convolutionalneuralnetwork,cnn)的深度网络语义模型(deepstructuredsemanticmodels,dssm)(也称为cnn-dssm)、基于匹配矩阵的matchpyramid、以及基于bert(bidirectionalencoderrepresentationsfromtransformers)等神经网络模型。

步骤s303,将所述节点关系图中各个边的权重转换为对应边的一端节点转移到另一端节点的概率。

遍历步骤s302中确定的节点关系图中的各个边,对各个边的权重进行计算,确定各个边的一端节点转移到另一端节点的概率。在转换过程中,分别以各个节点与各个节点所有的相邻节点之间的边的权重,对各个节点的每一个边的权重进行归一化,将各边分解为不同方向的两个出边,并得到各出边的始点转移到终点的概率。

需要说明的是,一个边对应两个节点:节点u和节点v,在将边的权重转换为概率的过程中,边的权重转换为两个方向的概率:节点u转移到节点v的概率,节点v转移到节点u的概率。将边(u,v)分解为节点u指向节点v的出边<u,v>和节点v指向节点u的出边<v,u>。此时,将无向边转换为有向边,将属于无向图的完全图转换为有向图。对于出边<u,v>,节点u为起点,节点v为终点。对于出边<v,u>,节点v为起点,节点u为终点。

比如:对于图4所示的节点关系图410,对于节点s1与节点s2之间的边(s1,s2),通过节点s1与所有相邻节点:节点s2、节点s3、节点s4、节点s5、节点s6和节点s7之间的边分别为:(s1,s2)、(s1,s3)、(s1,s4)、(s1,s5)、(s1,s6)以及(s1,s7),对于边,通过(s1,s2)、(s1,s3)、(s1,s4)、(s1,s5)、(s1,s6)以及(s1,s7)分别对应的权重的和对(s1,s2)的权重进行归一化,得到节点s1转移到节点s2的概率,即从节点s1指向节点s2的出边<s1,s2>对应的概率;通过节点s2与所有相邻节点:节点s1、节点s3、节点s4、节点s5、节点s6和节点s7之间的边(s1,s2)、(s2,s3)、(s2,s4)、(s2s5)、(s2,s6)以及(s2,s7)的权重对(s1,s2)的权重进行归一化,得到节点s2转移到节点s1的概率,即从节点s2指向节点s1的出边<s2,s1>对应的概率。

需要说明的是,在本发明实施例中,各边的一端节点转移到对应的另一端节点的概率与其他节点相互转移的概率之间时相互独立的。以图4所示的节点关系图410为例,节点s1转移到节点s2的概率与任一节点转移到节点s1的概率或节点2转移到其他节点的概率无关。

这里,将节点关系图中各边的权重转换为有向边的起点转移到终点的概率,此时,节点关系图也可称概率图。

步骤s304,基于所述节点关系图中各个边对应的概率,生成用于表示在所述节点关系图中随机转移的至少两个随机序列。

基于步骤s303确定各边的一端节点转移至另一端节点的概率后,基于节点之间相互转移的概率,确定节点关系图中的随机序列。随机序列为在关系节点关系图中进行随机转移时的路径所经过的节点构成的序列。

在一些实施例中,步骤s304可以这样执行:

将所述节点关系图中各个边对应的概率按照矩阵的形式排列,得到所述节点关系图的概率矩阵;遍历所述概率矩阵中的行以执行以下处理:在所述行中查找大于设定的概率阈值的目标元素,以及在所述节点关系图中查找所述目标元素对应的边所连接的节点,基于所查找到的节点构造所述行的随机序列。

基于节点关系图中的各个边中,出边的起点和终点以及起点转移到终点的概率,将节点关系图中所有边对应的概率按照矩阵的方式排列,得到节点关系图的概率矩阵。其中,在概率矩阵为n*n维的矩阵中,第i行第j列的元素表征节点i转移到节点j的概率。

遍历概率矩阵中每一行的元素,在各个行中查找大于设定的概率阈值的目标元素,目标元素在节点关系图中对应的边构成的路径即在节点关系图中进行随机转移时的路径。其中,一个行中大于设定的概率阈值的目标元素构成的路径为一个随机序列。概率阈值α的大小可根据实际需求进行设置,比如:0、0.001、0.2等。

比如:图4所示的节点关系图对应的率概率矩阵为:

其中,第i行第j列的元素为节点si转移至节点sj的概率,遍历该概率矩阵的每一行的元素,当概率阈值α=0.25时,第一行的目标元素为0.25、0.35,第二行的目标元素包括0.5,第三行的目标元素包括0.4,第四行的目标元素包括0.5,第五行的目标元素包括0.25、0.35,第六行的目标元素包括0.38、0.35,第七行的目标元素包括0.4,确定各行的目标元素对应的边所连接的节点,可确定:节点s1、节点s5和节点s6为一个随机序列,节点s,2和节点s4为一个随机序列,节点s3和节点s7为一个随机序列。

在实际应用中,当第i行第j列的元素表征节点j转移到节点i的概率时,遍历概率矩阵中每一列的元素,在各个列中查找大于设定的概率阈值的目标元素,目标元素在节点关系图中对应的边构成的路径即在节点关系图中进行随机转移时的路径。

为了清楚地描述本发明,在下文中,以第i行第j列的元素表征节点i转移到节点j的概率为例对概率矩阵进行说明。

在一些实施例中,所述确定所述概率矩阵的各个行中大于设定的概率阈值的元素之前,所述方法还包括:

迭代执行以下处理直至所述概率矩阵收敛:

对所述概率矩阵进行乘方运算得到扩展矩阵,将所述扩展矩阵中的每个元素进行乘方运算并除以所在行的元素之和,基于得到的运算结果更新相应元素的取值。

这里,对概率矩阵进行乘方运算,也就是将概率矩阵作为底数,进行s次幂运算,运算结果称为扩展矩阵。s为乘方运算的次数,s>1。

比如:当概率矩阵p为对概率矩阵乘方运算后,得到的扩展矩阵为对概率矩阵进行乘方运算的次数可根据实际需求设置。

对概率矩阵进行乘方运算使得在节点关系图中进行随机游走的流连通不同的区域。

对扩展矩阵中的每个元素进行乘方运算,并基于乘方运算的结果除以所在行的元素之和,得到更新的概率矩阵。乘方运算的次数为r,r>1。

比如,扩展矩阵为乘方次数r为2,进行乘方运算后,并除以所在行的元素之和后,对概率矩阵中的元素的值进行更新,得到的更新后的概率矩阵为:

又比如:当扩展矩阵的某一行的元素为[1/201/31/6],乘方次数r为2,进行乘方运算后,并除以所在行的元素之和后,更新后的元素为[9/140414114]。

这里,当节点关系图中的节点包括12个节点,且收敛的概率矩阵如图5所示时,遍历收敛后的概率矩阵的各个行,在各个行中查找大于设定的概率阈值0的目标元素,则第一行中大于0的元素包括:第1列的1、第6列的1、第7列的1,第10列的1,则节点1至节点6、节点7和节点10之间的边构成第一行对应的随机序列,节点1、节点6、节点7和节点10为第1行对应的随机序列,以此类推,节点2、节点3和节点5为第5行对应的随机序列,节点4、节点8、节点9、节点11和节点12为第9行或第11行对应的随机序列,将12个节点包括的随机序列包括{1,6,7,10}、{2,3,5}和{4,8,9,11,12}。

步骤s305,将各个所述随机序列中节点对应的语句,划分至所述随机序列所对应维度的语句子集合中。

根据步骤s304中确定的随机序对语句集合中的语句进行不同维度的划分。

例如:对应图5所示的收敛的概率矩阵中的随机序列,节点1、节点6、节点7和节点10为一个随机序列,节点2、节点3和节点5为一个随机序列,节点4、节点8、节点9、节点11和节点12为一个随机序列。则节点1、节点6、节点7和节点10分别对应的语句构成一个维度的语句子集合,节点2、节点3和节点5分别对应的语句构成一个维度的语句子集合,节点4、节点8、节点9、节点11和节点12分别对应的语句构成一个维度的语句子集合。

在本发明实施例中,不需要预先确定类别即维度的数量,并且将语句之间的语义距离转换为不同语句对应的不同节点间转移的概率,以体现节点之间相互转移的节点之间进行转移的可能性,以此作为分类的衡量标准,能够将长尾数据与非长尾数据进行区分,从而将语句集合中的语句精确划分到对应维度的语句子集合。

在一些实施例中,在步骤s302之前,可通过以下方式确定语句集合中各语句的语义距离:

对所述语句集合中各个语句进行分词,得到所述各个语句所包括的词;分别对所述各个语句所包括的词对应的词向量进行组合,得到所述各个语句一一对应的句子向量;遍历任意的两个句子向量,以将所述两个句子向量之间的距离确定为对应语句之间的语义距离。

这里,遍历所述语句集合中的每个语句以执行以下处理:将所述语句所包括的词对应的词向量进行组合,得到所述语句对应的句子向量。

对各语句进行分词,得到各语句所包括的词,基于各语句所包括的词的词向量,可对语句中所有词的词向量本身进行组合,得到对应的句子向量,也可将语句中所有词的词向量相加取平均,得到对应的句子向量,还可对语句中的每个词的词向量按照tf-idf进行打分,然后进行加权平均,得到对应的句子向量。

当对语句中的每个词的词向量按照tf-idf进行打分,然后进行加权平均,得到对应的句子向量时,句子向量sentembedding的计算公式可为公式(1):

其中,wordembeddingi是第i个词的词向量,tfi是第i个词的tf-idf,wordcnt是句子的词数,0<i≤wordcnt。

在确定出各个语句的句子向量后,遍历所述语句集合中的任意两个语句以执行以下处理:将所述任意两个语句的句子向量之间的距离,确定为所述任意两个语句之间的语义距离。

这里,根据所述语义空间中任意两个节点对应的语句的句子向量计算该任意两个语句之间的语义距离。比如:对于第i语句和第j语句,1≤i≤n,1≤j≤n,n为语句集合中语句的数量,根据第i语句的句子向量和第j语句的句子向量,得到第i语句和第j语句之间的语义距离。

这里,可采通过欧式距离、余弦距离等语义距离算法来计算两个句子向量之间的语义距离。本发明实施例中,对计算语义距离的语义距离算法不进行任何的限定。

这里,通过欧式距离计算语句m和语句n之间的语义距离dmn时,计算公式为公式(2),

其中,xmj表示语句m的句子向量的第j维元素,xnj表示语句n的句子向量的第j维元素,j为句子向量的总维度。语句m、语句n为语句集合中任一语句,语句m和语句n为不同的语句。

在一些实施例中,在步骤s302之前,本发明实施例提供的语句处理方法还包括:

从所述语句集合的各个语句中提取特征向量;分别对所述各个语句的特征向量进行降维,得到所述各个语句一一对应的句子向量;遍历任意的两个句子向量,以将所述两个句子向量之间的距离确定为对应语句之间的语义距离。

这里,遍历所述语句集合中的任意两个语句以执行以下处理:将所述任意两个语句输入相似度匹配模型中,通过相似度匹配模型分别提取所述任意两个语句的特征向量,并基于所提取的两个特征向量确定所述任意两个语句之间的语义距离。

将不同的语句作为相似度匹配模型的输入,在相似度匹配模型中,对不同的语句进行特征提取,并基于所述提取的特征向量确定不同语句之间的语义距离。

作为一个示例,相似度匹配模型的结构可如图6所示,包括输入层601、表示层602和匹配层603,且表示层602包括:卷积层、池化层和全连接层。

当将不同的语句x和y输入相似度匹配模型时,各层的处理如下:

输入层601对输入的语句进行分析,基于输入的语句所包括的词,得到各语句的词序列。

表示层602的卷积层对输入层601输出的词序列进行卷积,提取各语句的词序列在进行卷积的滑动窗口下的上下文特征。

表示层602的池化层对从语句中所提取的滑动窗口下的上下文特征进行池化,得到语句的全局上下文特征。

表示层602的全连接层对语句的全局上下文特征进行降维,得到句子向量。例如,句子向量可为128维度。

匹配层603确定不同语句x和y的句子向量之间的语义距离604。其中,语义距离604可基于两个句子向量(例如:128维)的余弦距离来表示。

在一些实施例中,步骤s303中将将所述节点关系图中各个边的权重转换为出边对应的概率可以执行为:

遍历所述节点关系图中的边,以所述边的一端节点作为源节点,并以所述边的另一端节点作为目标节点,执行以下处理:

基于设定的函数,将所述边的权重转换为所述源节点与所述源节点的相邻节点之间的相似度;基于所述源节点与所述相邻节点之间的相似度,对所述源节点与所述目标节点之间的相似度进行归一化,得到从所述源节点转移到所述目标节点的概率。

遍历步骤s302中确定的节点关系图中的每个边,对每个边的权重进行计算,确定每个边的源节点转移到目标节点的概率。

这里,源节点与目标节点是相对的,对于一个边,当一端节点为源节点,则另一端节点为目标节点,则一个边所对应的节点可分解为两个方向的源节点指向目标节点的出边。其中,对于一个出边,源节点为该出边的起点,目标节点为该出边的终点。

对于任一方向的出边,基于设定的函数,将该出边的源节点与源节点的所有相邻节点之间的边的权重转换为源节点与相邻节点之间的相似度;通过源节点与所有相邻节点之间的相似度对源节点与目标节点之间的相似度进行归一化。

通过设定的函数,使得两个节点之间的边的权重与两个节点之间的相似度负相关。当两个节点之间的权重大,即两个节点对应的两个语句之间的语义距离大时,两个节点之间的相似度小。当两个节点之间的权重小,即两个节点对应的两个语句之间的语义距离小时,两个节点之间的相似度大。

设定的函数可以边的权重为变量,将转换因子与变量相乘。其中,转换因子可为-1、-0.5、-2等负数。

通过源节点与所有相邻节点之间的相似度,对源节点与目标节点之间的相似度进行归一化时,基于源节点与所有相邻节点之间的相似度,将源节点与目标节点之间的相似度映射到(0,1)区间内的数值,将该数值称为源节点转移到目标节点的概率,且源节点与所有相邻节点之间的概率之和为1。

源节点转移到目标节点的概率的计算公式可为公式(3):

其中,yi为源节点与目标节点之间的相似度,yj为源节点与第j个相邻节点之间的相似度。pi为源节点转移至目标节点的概率。此时,进行归一化的方法为计算源节点与目标节点之间的相似度与源节点与所有相邻节点之间的相似度之和的比值,将所计算的比值作为源节点转移到目标节点的概率。

源节点转移到目标节点的概率的计算公式也可为公式(4):

公式(4)也可称为softmax函数,此时,通过softmax函数来计算源节点转移到目标节点的概率。

在实际应用中,如果语句之间的相似度之间的区分度不明显,通过公式(3)计算的概率可能大多数是集中在基于相邻节点的均值(比如:2个相邻节点,均值为0.5,又比如:5个相邻节点,均值为0.2)附近,不会出现一个是0.1一个是0.8这种具有区分性的概率,通过公式(4)所示的softmax函数来计算源节点转移到目标节点的概率,能够使得源节点转移到不同目标节点的概率具有区分性。

比如:当一个节点包括两个相邻节点,且与两个相邻节点之间的相似度分别为:1和2时,基于公式(3)得到的概率分别为:0.3333333333333333和0.6666666666666666;基于公式(4)得到的概率分别为:0.26894142和0.73105858。

又比如:当一个节点包括两个相邻节点,且与两个相邻节点之间的相似度分别为:10和20时,基于公式(3)得到的概率分别为:0.3333333333333333和0.6666666666666666;基于公式(4)得到的概率分别为:0.0000453978687和0.999954602。

因此,通过softmax函数来计算源节点转移到目标节点的概率,能够使得源节点转移到不同目标节点的概率具有区分性。

在一些实施例中,在步骤s303之前,还可以对节点关系图进行稀疏处理,对节点关系图进行稀疏处理包括以下步骤:

遍历所述语义空间中的节点,并将每次所遍历的节点作为参考节点,以执行以下处理:

将所述节点关系图中连接所述参考节点的边的权重相加,得到权重和;遍历所述节点关系图中连接所述参考节点的边,并将所遍历的边的权重与所述权重和之间的比值,确定为所遍历的边的更新后的权重,即相应的作为从所述参考节点指向相邻节点的出边时的权重;基于连接所述参考节点的边的更新后的权重,确定所述参考节点的参考权重;删除所述节点关系图中更新后的权重大于所述参考节点的参考权重的边。

这里,遍历节点关系图中的每一个节点,分别以节点关系图中的每一个节点为参考节点,以参考节点与相邻节点之间的边的权重,计算每一个参考节点指向相邻节点时的出边的更新后的权重,即相应的作为从所述参考节点指向相邻节点的出边时的权重,并基于更新后的权重对该节点的出边进行删除,删除权重大于参考节点的参考权重的出边,保留权重小于或等于参考节点的参考权重的出边。

对于每一参考节点,遍历节点关系图中连接参考节点与相邻节点的边,对参考节点与相邻节点之间的边的权重相加,得到该参考节点的权重和即l1范数,将参考节点与各个相邻节点之间的边的权重除以权重和,得到边的方向为参考节点指向各个相邻节点时的更新后的权重,即参考节点指向各个相邻节点的出边时的权重。

以图4所示的节点关系图410为例,对于节点s1与节点s2之间的边(s1,s2),当以节点s1为参考节点时,计算节点s1与所有相邻节点:节点s2、节点s3、节点s4、节点s5、节点s6和节点s7之间的边(s1,s2)、(s1,s3)、(s1,s4)、(s1,s5)、(s1,s6)以及(s1,s7)的权重之和,得到节点s1对应的权重和,将边(s1,s2)的权重和节点s1对应的权重和的比值作为边(s1,s2)的方向为节点s1指向节点s2的方向的更新后的权重,即节点s1指向节点s2的出边<s1,s2>时的权重。当以节点s2为参考节点时,计算节点s2与所有相邻节点:节点s1、节点s3、节点s4、节点s5、节点s6和节点s7之间的边(s1,s2)、(s2,s3)、(s2,s4)、(s2s5)、(s2,s6)以及(s2,s7)的权重之和,得到节点s2对应的权重和,将边(s1,s2)的权重和节点s2对应的权重和的比值作为边(s1,s2)的方向为节点s2指向节点s1的方向的更新后的权重,即节点s2指向节点s1的出边<s2,s1>时的权重。

当确定参考节点的各出边的权重时,将各出边的权重和参考节点的参考权重进行比较,当出边的权重的大于参考节点的参考权重时,将该出边删除。比如:当参考节点为图4所示的节点关系图401中的节点s1时,节点s1指向相邻节点的出边的权重分别为z12、z13、z14、z15、z16、z17,节点s1的参考权重为β1,其中,z12>β1、z13<β1、z14>y1、z15<β1、z16<β1、z17<β1,则将节点s1指向节点s2的出边<s1,s2>删除,将节点s1指向节点s4的出边<s1,s4>删除,对于节点1而言,删除出边<s1,s2>和<s1,s4>后,指向其他节点的出边如图7所示,仅为节点s1分别指向节点s3、节点s5、节点s6和节点s7的出边<s1,s3>、<s1,s5>、<s1,s6>和<s1,s7>。

在本发明实施例中,各节点的参考权重可相同,也可不同。本发明实施例各节点的参考权重可根据各节点所连接的出边的权重确定。在实际应用中,各节点的参考权重也可根据实际需求进行设置。

需要说明的是,当节点关系图为完全图时,通过节点的稀疏化处理,将节点关系图转化为有向图,且将部分出边删除。

在一些实施例中,所述基于连接所述参考节点的边的更新后的权重,确定所述参考节点的参考权重,包括:

确定连接所述参考节点的边的更新后的权重的权重均值;通过设定的因子与所述参考节点的权重均值进行乘法运算,得到所述参考节点的参考权重。

可通过公式(5)计算各节点的参考权重β:

其中,sparsefactor即因子为0至1之间的正数,比如:0.5、1等。这里,因子也可称为稀疏因子,为控制节点关系图的稀疏化程度的超参数。

需要说明的是,在本发明实施例中,当对节点关系图进行稀疏处理后,基于稀疏化的节点关系图执行步骤s303,根据设定的函数将边的权重转换为从所述边的一端节点转移到所述边的另一端节点的概率。此时,各边的权重可为各边的更新后的权重。

在本发明实施例中,通过对节点关系图进行稀疏处理,将节点关系图中权重较大的出边删除,将权重大即语义距离大的节点之间的边断开,仅保留权重较小的出边,在减少了计算复杂度,提高了语句处理的效率,并基于断开的边包括长尾数据与非长尾数据之间的边,断开长尾数据与非长尾数据之间的连接关系,提高分类的精度。

在一些实施例中,对节点关系图进行稀疏处理后,还可以执行以下步骤对稀疏后的节点关系图进行切分:

确定所述节点关系图中的分量,所述分量中任意两个节点能够通过边相互连通;以所述分量为界限对所述节点关系图进行划分。

这里,在稀疏处理后的节点关系图中,如果两个节点互相可达,则称这两个节点强连通,如果分量g中任意两点互相可达,则称分量g是强连通图即强连通分量,即分量包括至少2个节点,任意两个节点能够通过边相互连通。

这里,确定节点关系图中的强连通分量可以采用各种算法,例如:korasaju算法,下面示例性说明。首先,遍历节点关系图,算出每个节点的结点时间f[u]。其次,遍历节点关系图的转置图,选择遍历的起点时,按照结点的结束时间从大到小进行,且遍历的同时,对结点做分类标记,每找到一个新的起点,分类标记值就加1。再次,确定标记值相同的结点,基于标记值相同的结点构成一个强连通分量。

作为示例,节点之间的可达在节点关系图中表现为通过有向边能够连通。如图8所示,{1,2,3,4}是一个强连通分量,{5}、{6}分别是另外两个强连通分量。其中,节点2可达至节点3的路径为:节点2-节点4-节点1-节点3。

在本发明实施例中,当将节点关系图基于分量的界限进行划分时,能够将节点关系图切分为多个子图,相应地通过步骤s302至s305对划分后的节点关系图切分后的子图中执行,将每个子图中所划分的语句子集合进行整合,得到节点关系图对应的语句集合所划分的语句子集合。

本发明实施例通过将节点关系图划分为子图,能够减小随机转移的范围,实现语句集合的快速分类。

在一些实施例中,在步骤s304将语句集合中的语句划分成不同维度的多个语句子集合后,还可以:

遍历至少两个维度的语句子集合以执行以下处理:采样设定数量的语句,基于采样的语句构成各个维度的评测集;

输出至少两个维度的评测集的语句的语音,以获得语音交互程序的响应结果。

这里,通过s301至s305将语句集合分类为不同维度的语句子集合后,对不同维度的语句子集合进行遍历,分别从不同维度的语句子集合中进行相同数据的语句的采样,将采样得到的语句作为评测集中的评测项,从而构成评测集。

在一示例中,当服务器生成评测集后,可将评测集中的语句输出至终端,终端将评测集中的语句输出至语音交互程序,以供评测人员对语音交互程序的响应结果进行评测。

在又一示例中,当终端生成评测集后,可将评测集中的语句输出至语音交互程序,以供评测人员对语音交互程序的响应结果进行评测。

本发明实施例从不同维度的语句子集合中采样得到相同数量的语句作为评测集中的评测项,也就是说,各个维度的评测集均衡分布,并不存在向某一维度的倾斜,从而通过本发明实施例提供的语句处理方法得到的评测集对语音交互程序进行评测时,能够针对不同终端上的语音交互程序进行全面评测,提高语音交互程序的评测结果的准确性。

下面,通过以下三种采样方式,将说明本发明实施例提供的语句处理方法在采样场景中的示例性应用。其中,在采样场景中,在一个样本集(对应语句集合)中进行评测集的采样。其中,通过相关技术中的采样方式一、采样方式二和本发明实施例提供的采样方式三的比较,以说明本发明实施例提供的语句处理方法能够获得不同维度的评测集,且各个维度的评测均衡分布,从而对语音交互程序进行全面评测,提高语音交互程序的评测结果的准确性。

采样方式一

从样本集中随机抽取评测样本,得到评测集。

这种方式可以让评测样本具有随机性。但是如果样本集倾斜于某一类别的数据,那随机抽取的评测集也将会倾斜于这一类别的数据,这样构建的评测集就忽略了长尾数据。

比如:样本集映射至语义空间中的节点关系图如图9所示,不同的节点表示不同的样本,且不同节点之间的边对应的数据表示边的两端节点对应的样本之间的语义距离。其中,[0,2,3]属于音乐领域,[7,8,9]属于故事领域,[4,5,1]属于问答领域,[6]属于闲聊领域。随机抽取的评测集可为评测集a:[0,7,8,5,6]。这里,在随机抽取过程中,样本之间的语义距离对抽取结果并未产生任何影响。

在产品a的音乐领域和故事领域表现好的先验条件下,产品a可能通过了[0,7,8,6]。在产品b的问答领域和音乐领域表现好的先验条件下,产品b可能通过了[0,5,6]。从而得到评测结果:产品a的正确率是0.8,产品b的正确率为0.6,产品a的正确率优于产品b的正确率。实际上,按照每个领域同样重要程度来评价,产品a和产品b的正确率是一样的。因此,随机抽取的方式会导致评测结果不够公平,缺失了样本整体的均衡。

采样方式二

k-means聚类采用将语义距离相近的样本聚合为簇的方式进行分类,将类别相同的样本划分至同一簇。

k-means聚类的过程包括:

将样本集中的样本映射至特征空间,映射为如图10中的阶段(a)所示的点的分布,其中,不同的点对应不同的样本。

先定义需要聚类的k个簇,即k个维度,然后在样本集的所有样本中随机筛选k个样本对应的点作为中心点,如图10中的阶段(b)中的c1和c2。

计算所有样本对应的点与k个中心点的距离来确定每个样本属于哪个中心点对应的簇。在图10中的阶段(c)中,基于所有样本对应的点与中心点c1和c2之间的距离,将所有样本对应的点划分为两个集合,分别为空心点构成的集合与实心点构成的集合。

根据各簇中的样本进行各中心点(c1和c2)的调整,调整结果如图10中的阶段(d)所示。

循环执行图10中的阶段(c)和阶段(d)的操作,直到各中心点(c1和c2)位置不变,如图10中的阶段(e)和阶段(f)所示,阶段(e)中c1、c2的位置与阶段(f)中c1、c2的位置相同。此时,将不同集合中的点对应的样本划分至一个类别对应的簇。

需说明的是,在图10中以k为2为例对聚类过程进行说明,实际应用中k的值不限定。

在采样方式2中,需要预先确定类别的数量k,如果k值与实际的类别的数量不同,在聚类的开始就产生了误差,导致聚类结果不准确,长尾数据也很可能分到其他类别对应的簇中,无法将长尾数据区分出来。

采样方式三

为解决上述采样方式一、采样方式二中存在的需要先确定类别数量且无法将长尾数据区分出来的问题,基于本发明实施例提出采样方式三,基于本发明实施例提供的语句处理方法进行采样,充分考虑样本的信息,不需要类别的数量,同时能够区分长尾数据。

参见图11,图11是本发明实施例提供的语句处理方法的一个可选的流程示意图,将结合图11示出的步骤进行说明。

步骤s1101,确定样本集中各样本之间的语义距离,将每个样本作为节点,将样本之间的距离作为对应节点之间的边的权重,组成一个完全图。

步骤s1102,对完全图中边的权重做l1正则化,将完全图稀疏,得到稀疏后的图。

步骤s1103,确定稀疏后的图中任意边对应的两个节点之间的转移概率。

对稀疏后的图中的每个节点与所有相邻节点之间的边的权重取负,基于softmax函数确定各边对应的两个节点之间的转移概率。

两个节点之间的转移概率为一端节点转移到另一端节点的概率。

步骤s1104,快速分类。

如图11所示,步骤s1104的执行包括:

步骤s1141,对稀疏后的图进行切分。

步骤s1142,基于稀疏后的图中各节点之间的转移概率确定概率矩阵,对概率矩阵的元素进行更新,直到概率矩阵的分布状态稳定不变。

这里,循环执行以下操作,直到概率矩阵的分布状态稳定不变:

对概率矩阵进行扩展(expansion)操作;对扩展操作后的概率矩阵进行膨胀(inflation)操作;当膨胀操作后的概率矩阵的分布状态稳定不变,则退出。

步骤s1143,基于分布状态稳定的概率矩阵,确定分类后的簇。

在步骤s1101中,将各样本的文本进行分词,比如,样本为“小明身高是多少”,分词后得到的词包括:小明、身高、是、以及多少。

确定每个词的tf-idf,以每个词的tf-idf为权重,对所有词的词向量(wordembedding,)加权平均,获得句子向量(sentenceembedding)。其中,句子向量sentembedding的计算公式可为公式(1):

根据各样本的句子向量计算两个样本之间的语义距离,其中,样本m和样本n之间的语义距离dmn的计算公式为公式(2),

其中,xmj表示样本m的句子向量的第j维元素,xnj表示样本n的句子向量的第j维元素,j为句子向量的总维度。样本m、样本n为样本集中任一样本,且样本m和样本n为不同的样本。

以每个样本映射为语义空间中的节点,在不同的节点之间构建边,从而构建完全图,且将样本之间的语义距离作为对应节点之间的边的权重。此时,各个节点之间的边为无向边。

在步骤s1102中,根据步骤s1101构建的完全图对所有节点做正则化。

针对每个节点,对节点的所有边的权重求l1范数,再将所有该节点的边的权重除以该节点的l1范数,得到各边更新后的权重,即该节点至相邻节点的出边的权重。

l1范数为各边的权重的绝对值之和,计算公式可为公式(6):

其中,dms为节点m的第s个边的权重,与节点m连接的边共有s个。

这里,通过节点的正则化,将完全图转化为有向图。

根据所有边的更新后的权重,删除更新后的权重大于参考权重β的边,将有向图稀疏化。其中,参考权重β的计算公式为公式(5):

其中,sparse_factor即稀疏因子为0至1之间的正数,比如:0.5、1等。

通过节点的正则化,可以使得每个节点的出边的权重之和等于1,同时在后面处理过程中,可以避免某些边的权重过大导致分类效果下降。比如:节点a对应的边包括5个边,各边的权重是[1,2,0,5,3]。节点b对应的边包括5个边,各边的权重是[100,200,100,100]。通过正则化后,节点a对应的5个出边的权重为[1/11,2/11,0,5/11,3/11]。节点b对应的5个出边的权重是[1/5,2/5,1/5,1/5]。这里,节点b对应的几个边的权重相对于节点a对应的边的权重很大,但是节点b对应的样本为同一类别,如果不进行正则化就进行分类操作,根据稀疏化原则很可能直接把权重较大的边比如100对应的出边删除。

在步骤s1103中,将稀疏后的有向图转化成概率图。

对稀疏化后的有向图中的每个节点对应的出边的权重取负,并以取负后的权重作为softmax函数的参数,计算各出边的转移概率。出边的转移概率能够反映出边的起点选择终点进行转移的可能性。

两个样本之间的语义距离越小,样本的相似性即相似度越大,因此,通过转移因子对边的权重进行调整得到边对应的两个样本的相似性,转换因子可以为-1、-0.5、-0.2等负数。当对出边的权重取负时,转换因子为-1。

这里,通过softmax函数能够使得该节点到所有相邻节点的转移概率之和为1,保证了转移概率的可行性。softmax函数如公式(4):

其中,pi为一节点的第i个出边的转移概率,yi为第i个出边的权重取负后的相似度。

在步骤s1104中,对步骤s1103得到的概率图进行马尔科夫聚类。

如果某些样本属于一个类别的簇,那么这些样本对应的节点之间的连接相对于这些节点与其他节点的连接就会更多,不同维度的节点之间连接数很少,如图12所示,节点1至节点5为一个簇,节点6至节点8为一个簇。如果从节点关系图中某一个点开始随机的进行访问,随着访问次数增多,更有可能在这一个簇之间进行访问。因此,通过概率图中的随机游走能够对概率图中的节点进行聚类。

在步骤s1141中,通过步骤s1102的稀疏化操作之后,对整个概率图求强连通分量。其中,强连通分量中,每两个节点都强连通即相互可达。通过确定节点关系图中的强连通分量,将一个强连通分量的界限对节点关系图进行切分,从而将一个概率图切割成多个小的概率图(即子图)。此时,可以对每一个小的概率图进行马尔科夫聚类。

这里,将概率图切分成多个小的概率图,对每一个小的概率图进行马尔科夫聚类,能够有效减少聚类的时间。当一个10万节点的图,将会产生一个大小为10万*10万的概率矩阵,矩阵乘法会很耗时,矩阵乘法的时间复杂度最快是o(n2.3728639)。而当将概率图切分成多个小的概率图时,每个概率图所产生的概率矩阵的会相应减小,从而减小时间复杂度,10万语句的语句集合可在3分钟以内完成聚类,减少了聚类时间,提高聚类效率。

在步骤s1142中,将步骤s1141切分后的各概率图中各边的转移概率转换为各概率图的转移矩阵,矩阵的元素表示节点之间转移的转移概率。如图13所示,节点1到达节点2的转移概率为0.25,节点1到达节点3的转移概率为0.33,依次类推。其中,每列的元素之和为1。

以图13所示的概率矩阵为初始矩阵进行随机游走,在t0秒节点1走到节点2的概率为0.5,走到节点3的概率是0.3,节点4的概率是0.2。这里,当初始矩阵与初始矩阵进行二次乘方后得到的矩阵为t1秒时各节点走到其他节点的概率。在t1秒,基于二次乘方后得到的矩阵中的概率进行随机游走。其中,t1秒时,从节点1回到节点1的概率q'11为:

q`11=q11*q11+q12*q21+q13*q31+q14*q41+q15*q51......;

其中,q11为t0秒时从节点1转移到节点1的概率,q12为t0秒时从节点1转移到节点2的概率,以此类推。

可见,随机游走中,下一秒节点1走到节点1的概率,为上一秒节点1所有可能的求和。因此,整个节点关系图中,所有节点的在下一秒的概率可抽象为矩阵乘法,s次转换即为求概率矩阵的s次幂,在节点关系图中进行了s-1次转移。这里,可将概率矩阵的s次幂的操作称为expansion操作,经过s次幂运算后,得到的矩阵称为扩展矩阵。

在得到扩展矩阵后,对扩展矩阵进行inflation操作。

inflation操作为对扩展矩阵每一行的元素进行乘方运算,并除以所在行的元素之和,更新的概率矩阵гrm的计算公式为公式(7):

其中,mpq为扩展矩阵m的第p行第q列的元素,r为乘方的次数。

这里,对扩展矩阵进行inflation操作,将大概率和小概率之间的比值进行了r次幂的放大,从而增大当前大概率,减小当前小概率,放大元素之间的差距。这里,大概率和小概率的比值为γ且γ大于1,对扩展矩阵进行inflation操作,将大概率和小概率的比值调整为γr,因此,扩大了大概率和小概率的比值。比如:行向量中的两个元素分别为0.6和0.3,0.6为大概率,0.3为小概率,大概率和小概率之间的比值为2,对两个元素分别进行2次乘方后分别为0.36和0.09,并除以所在行的元素之和0.45,得到的两个元素分别为:0.8和0.2,则将大概率和小概率的比值放大为0.8/0.2=4倍,以此类推,当r为3时,将大概率和小概率的比值放大为9倍。

反复执行expansion操作和inflation操作,直到概率矩阵的分布状态稳定即概率矩阵不变,确定概率矩阵收敛。

在步骤s1143中,通过遍历每一行,通过每一行中所有不为0的值得到样本与哪些样本是一类,得到相应行对应的一个簇。

这里,收敛的概率矩阵为样本直接的相似概率图,如果元素的值不为0表示样本之间是一个簇。

需要说明的是,当概率矩阵中,一列元素表征一个节点转移到其他各元素的转移概率时,inflation操作为对扩展矩阵每一列的元素进行乘方运算,并除以所在列的元素之和。如图14所示,对列向量a中的每个元素进行二次乘方运算后得到a2,并通过除以所在列的的元素之和得到г2a。其中,在图14所示的inflation操作过程中,r为2。步骤s1143中,在通过遍历每一列,通过每一列中所有不为0的值得到样本与哪些样本是一类,得到相应列对应的一个簇。

在本发明实施例中,将样本集合划分为多个簇后,通过均值采样的方式,从不同的簇中进行采样,得到一个相对更均衡的评测集。

下面,通过样本集b对本发明实施例提供的语句处理方法的分类效果进行说明。其中,样本集b包括16个语句,分别为:

q1:汪一的女儿叫什么名字;

q2:刘二的女孩叫什么名字;

q3:张三的生日是哪一天;

q4:邓四的老婆叫什么名字;

q5:冯五哪年出生的;

q6:冯五是哪一年出生的;

q7:冯五的女儿叫什么;

q8:赵六几岁;

q9:张七多少岁;

q10:刘八几岁;

q11:李九的老婆几岁;

q12:陈十一的老公几岁;

q13:安十二的女儿多少岁;

q14:江十三是干什么的;

q15:李十四是干什么的;

q16:他是干什么的李十四。

采用本发明实施例提供的语句处理算法得到的分类效果如图15所示,q1、q2、q4和q7为一个簇,q3、q5和q6为一个簇,q8、q9和q10为一个簇,q11、q12和q13为一个簇,q1,4、q15和q16为一个簇。

通过本发明实施例提供的语句处理方法,解决了k-means分类需要预先确定类别数k的问题,同时解决了无法对长尾数据进行的问题。

基于本发明实施例提供的语句处理方法,能应用到包括智能音箱、智能电视盒子、在线语音交互系统、智能语音助手、车载智能语音设备等多中语音交互应用所在终端设备中,通过构建一个合理并高质量的评测集对这些终端的语音交互应用进行评测,同时牵引自身终端的优化和改进。

在典型的应用场景如智能音箱中,本发明实施例构建的评测集发现了智能音箱在问答方面的不足,更深入的发现是在地理问答维度上nlp能力不好,在人物问答维度上的nlp能力好。从而能够牵引智能音箱在地理问答上面做深入的优化。

本发明实施例提供的语句处理方法,能够实现快速分类,并能够发现了大量有价值的重复发问语句,并发现对话系统中语义理解的坏案例(badcase)。

下面说明软件模块的示例性结构,在一些实施例中,如图2所示,语句处理装置240中的软件模块可以包括:

映射单元2410,用于将语句集合中各个语句映射为语义空间中的节点;

构建单元2420,用于遍历所述语义空间中任意的两个节点并连接为边,将各边连接的两个节点对应的语句之间的语义距离标记为各对应边的权重,以形成节点关系图;

转换单元2430,用于将所述点关系图中各个边的权重转换为对应边的一端节点转移到另一端节点的概率;

生成单元2440,用于基于所述节点关系图中各个边对应的概率,生成用于表示在所述节点关系图中随机转移的至少两个随机序列;

划分单元2450,用于将各个所述随机序列中节点对应的语句,划分至所述随机序列所对应维度的语句子集合中。

在一些实施例中,语句处理装置还包括:第一距离确定单元,用于:

对所述语句集合中各个语句进行分词,得到所述各个语句所包括的词;

分别对所述各个语句所包括的词对应的词向量进行组合,得到所述各个语句一一对应的句子向量;

遍历任意的两个句子向量,以将所述两个句子向量之间的距离确定为对应语句之间的语义距离。

在一些实施例中,语句处理装置还包括:第二距离确定单元,用于:

从所述语句集合的各个语句中提取特征向量;

分别对所述各个语句的特征向量进行降维,得到所述各个语句一一对应的句子向量;

遍历任意的两个句子向量,以将所述两个句子向量之间的距离确定为对应语句之间的语义距离。

在一些实施例中,语句处理装置还包括:稀疏单元,用于:

遍历所述语义空间中的节点,并将每次所遍历的节点作为参考节点,以执行以下处理:

将所述节点关系图中连接所述参考节点的边的权重相加,得到权重和;

遍历所述节点关系图中连接所述参考节点的边,并将所遍历的边的权重与所述权重和之间的比值,确定为所遍历的边的更新后的权重;

基于连接所述参考节点的边的更新后的权重,确定所述参考节点的参考权重;

删除所述节点关系图中更新后的权重大于所述参考节点的参考权重的边。

在一些实施例中,稀疏单元,还用于:

确定连接所述参考节点的边的更新后的权重的权重均值;

将设定的因子与所述参考节点的权重均值进行乘法运算,得到所述参考节点的参考权重。

在一些实施例中,语句处理装置还包括:切分单元,用于:

确定所述节点关系图中的分量,所述分量中任意两个节点能够通过边相互连通;

以所述分量为界限对所述节点关系图进行划分。

在一些实施例中,转换单元2430,还用于:

遍历所述节点关系图中的边,以所述边的一端节点作为源节点,并以所述边的另一端节点作为目标节点,执行以下处理:

基于设定的函数,将所述边的权重转换为所述源节点与所述源节点的相邻节点之间的相似度;

基于所述源节点与所述相邻节点之间的相似度,对所述源节点与所述目标节点之间的相似度进行归一化,得到从所述源节点转移到所述目标节点的概率。

在一些实施例中,生成单元2440,还用于:

将所述节点关系图中各个边对应的概率按照矩阵的形式排列,得到所述节点关系图的概率矩阵;

遍历所述概率矩阵中的行以执行以下处理:

在所述行中查找大于设定的概率阈值的目标元素,以及

在所述节点关系图中查找所述目标元素对应的边所连接的节点,基于对所查找到的节点构造所述行的随机序列。

在一些实施例中,语句处理装置还包括:收敛单元,用于:

迭代执行以下处理直至所述概率矩阵收敛:

对所述概率矩阵进行乘方运算得到扩展矩阵,将所述扩展矩阵中的每个元素进行乘方运算,并除以所在行的元素之和,基于得到的运算结果更新相应元素的取值。

在一些实施例中,语句处理装置还包括:采样单元,用于:

遍历至少两个维度的语句子集合以执行以下处理:采样设定数量的语句,基于采样的语句构成所述维度的评测集;

输出至少两个维度的评测集的语句对应的语音,以获得语音交互程序的响应结果。

作为本发明实施例提供的语句处理方法采用硬件实施的示例,本发明实施例所提供的语句处理方法可以直接采用硬件译码处理器形式的处理器210来执行完成,例如,被一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)、复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice)、现场可编程门阵列(fpga,field-programmablegatearray)或其他电子元件执行实现本发明实施例提供的语句处理方法。

本发明实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的语句处理方法,例如,如图3示出的语句处理方法。

在一些实施例中,存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。

在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hypertextmarkuplanguage)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。

作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

综上所述,通过本发明实施例,不需要预先确定集合的数量,并且将语句之间的语义距离转换为对应的节点之间的边对应的概率,增强了分类一个类别的衡量标准,能够解决无法对长尾数据进行的问题,并对语句集合对应的节点关系图进行稀疏,并基于稀疏后的节点关系图中的强连通分量的界限将节点关系图切分为子图,确定各子图所包括的随机序列,能够提高分类的效率,实现快速分类。

以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

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