一种基于状态机的语义解析方法及装置、设备与流程

文档序号:12719586阅读:369来源:国知局
一种基于状态机的语义解析方法及装置、设备与流程

本发明涉及语音解析技术,尤其涉及一种基于状态机的语义解析方法及装置、设备。



背景技术:

语音助手是一款智能型的终端应用,通过智能对话与即时问答的智能交互,实现帮忙用户解决问题,其主要是帮忙用户解决生活类问题,其中苹果手机中siri开创智能语音助手的先河。语音助手是一种语音控制应用程序(App,Application;简称应用),通过终端上的声音采集硬件采集用户发出的语音,然后通过语音识别技术对语音进行识别,再对识别出的语音进行语义判断,然后在前台迅速做出回应;还可以通过麦克风与用户进行语音聊天,或者通从用户的命令,帮助用户操控智能终端。从以上可以看出,语音助手是一类可以通过语音交互来实现替代全部或部分,用户在终端如手机上的查询与操作的应用程序。用户通过此类语音应用,可以大大提高在不同场景下操作手机的便利性。其中,语音识别技术是将语音信号转换为计算机可识别的文字符号,解决让机器听懂人说话问题的技术。

目前,语音平台中通常包括多个语义解析器,这是因为在语音平台的数据生成过程中,每一个语义解析器大都是为某个业务定制的,而且由于每一业务所涉及的业务数据规模、字段都存在很大的差异,因此,语音平台为每一项业务都搭建一个语义解析器。当需要增加一种新的语音业务时,语音平台还需要为该业务搭建一个语义解析器,可见,现有的语音平台对于新的业务无法进行快速扩展;因此,对于信息服务提供商而言,一般各个业务部门就有几个对应于该业务部分的语音解析器,可见,现有的语音平台虽然将各个业务的语音业务放置在一起,但是并没有做到实际意义上的整合。



技术实现要素:

有鉴于此,本发明实施例为解决现有技术中存在的至少一个问题而提供一种基于状态机的语义解析方法及装置、设备,能够增强语音平台的可扩展性。

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

第一方面,本发明实施例提供一种基于状态机的语义解析方法,所述方法包括:

确定语音产品的功能;

根据所述语音产品的功能确定所述语音产品在语义解析中的步骤集合,所述步骤集合中至少包括两个以上的步骤;

为所述步骤集合中的每一步骤确定对应的状态机的节点;

根据确定的节点形成节点集合;

将所述节点集合形成所述语音产品的状态机。

第二方面,本发明实施例提供一种基于状态机的语义解析方法,所述方法还包括:

获取语音产品的待解析语句;

将所述待解析语句输入预设的状态机的第一个节点;

从所述状态机的最后一个节点获取输出结果;

将所述输出结果输出。

第三方面,本发明实施例提供一种基于状态机的语义解析装置,所述装置包括第一确定单元、第二确定单元、第三确定单元、第一形成单元和第二形成单元,其中:

所述第一确定单元,用于确定语音产品的功能;

所述第二确定单元,用于根据所述语音产品的功能确定所述语音产品在语义解析中的步骤集合,所述步骤集合中至少包括两个以上的步骤;

所述第三确定单元,用于为所述步骤集合中的每一步骤确定对应的状态机的节点,

所述第一形成单元,用于根据确定的节点形成节点集合;

所述第二形成单元,用于将所述节点集合形成所述语音产品的状态机。

第四方面,本发明实施例提供一种基于状态机的语义解析装置,所述装置还包括第三获取单元、输入单元、第四获取单元和输出单元,其中:

所述第三获取单元,用于获取语音产品的待解析语句;

所述输入单元,用于将所述待解析语句输入预设的状态机的第一个节点;

所述第四获取单元,用于从所述状态机的最后一个节点获取输出结果;

所述输出单元,用于将所述输出结果输出。

第五方面,本发明实施例提供一种计算设备,包括:存储器、处理器和用于存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时用于实现上述第一方面或第二方面的基于状态机的语义解析方法。

本发明实施例提供一种基于状态机的语义解析方法及装置、设备,其中,确定语音产品的功能;根据所述语音产品的功能确定所述语音产品在语义解析中的步骤集合,所述步骤集合中至少包括两个以上的步骤;为所述步骤集合中的每一步骤确定对应的状态机的节点;根据确定的节点形成节点集合;将所述节点集合形成所述语音产品的状态机;如此,能够增强语音平台的可扩展性。

附图说明

图1为本发明实施例基于状态机的语义解析方法在实现时的流程示意图;

图2为相关技术中电梯门的有限状态机的状态图;

图3为本实施例中状态机配置的状态图;

图4为本发明实施例语义解析的流程示意图;

图5为本发明实施例语义解析的流程示意图;

图6为本发明实施例基于状态机的语义解析方法的实现流程示意图;

图7为本发明实施例基于状态机的语义解析装置的组成结构示意图;

图8为本发明实施例基于状态机的语义解析装置的组成结构示意图;

图9为本发明实施例的网络架构示意图;

图10为本发明实施例电子设备的组成结构示意图。

具体实施方式

现以甲公司作为信息服务提供商为例,来说明背景技术中所记载的技术问题。该甲公司开设有浏览器业务和视频业务,其中这两项业务都需要进行语义解析,因为都嵌入有语音助手,以帮助那些不喜欢进行文字输入或者不具有写能力的用户。这样,用户可以在该甲公司视频业务的web页面上搜索自己感兴趣的电影,在浏览器业务的web页面上搜索自己感兴趣的关键词。由于开展视频业务和开展浏览器业务都需要用到语音解析器,因此,该甲公司将这两项业务整合在一个语音平台上;但是由于视频业务的业务数据规模、字段与浏览器业务的业务数据规模、字段都存在很大的差异,因此,在语音平台中分别为每一业务搭建一个语义解析器。当甲公司要开展一项音乐业务(如QQ音乐)时,该甲公司还需要为该音乐业务搭建一个适用于音乐业务的语义解析器,以便用户可以在即时通讯(QQ)上搜索自己感兴趣的音乐。由此可见,现有的语音平台虽然将各个业务放置在一起,但是并没有做到实际意义上的整合。

此外,后台服务在进行语义解析的过程中,具体的解析算法有非常多,比如传统的正则模板、深度学习等。同时,进行产品化时,不同的产品会需要不同的场景及对应的服务。比如对于音箱,只需解析音乐、天气、提醒等有限场景;而微桌面的语音助手,打电话、发短信则是必备场景。不同的语音产品的前置适配、后置兜底要求也不一样,比如浏览器语音助手,在不能提供解析语义时,跳转搜索是合理选择,而手表语音助手则不适合现这样的逻辑。面对解析过程中如此多的变数,如果将所有逻辑写在代码中,在新接入算法或者新接入产品时,将不得不进行重新编码,非常不灵活。

为了使得资源得到更加合理的利用,本发明以下实施例中提出一种将有限状态机应用于语义解析方法,其中,将语义解析流程中所有可能的步骤都抽象为状态机中的一个节点。即可方便开发人员添加、删除某一步骤,也可在每一种产品接入时,对各个步骤进行随意定制化,生成适应业务的语义解析模型;这样,算法研究人员可灵活更新解析算法,语音产品接入时可灵活定制解析流程。由以上可以看出,采用本发明实施例提供的技术方案,将对现有的语音平台进行改进,不但使得资源能够得到更合理的利用,而且能够在有新业务接入时,为该新业务搭建一个语义解析器不再艰难。

为了更好地理解本发明实施例,本发明实施例提供以下名词的解释:

语音助手:根据用户的语音输入,为用户提供相应服务的软件。

语音平台,本实施例中的语音平台是对现有语音平台的改进,能够为多个产品提供语义解析服务。

场景:一句话所属的范围;比如我要听音乐,为音乐场景;再如来一个笑话,为笑话场景。

语义解析:将一句话解析为计算机可以识别的场景、意图和参数。例如我要听冰雨,场景为音乐场景,意图为听,参数为冰雨。

微桌面:智能平台部一款桌面产品。

有限状态机:有限状态机(Finite-State Machine,FSM,简称状态机),是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。

命名实体(NER),如冰雨等。

下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。

在介绍本发明的各实施例之前,先介绍一下状态机的相关知识,FSM是由有限的状态和相互之间的转移构成的,在任何时候只能处于给定数目的状态中的一个。当接收到一个输入事件时,状态机产生一个输出,同时可能伴随状态的转移。有限状态机包括以下一些构成要素:

状态(state):行为模型的基本组成部分,反映了系统中某个对象所处的阶段和活动情况;

转移(transition):对象从一个状态转移到另一个状态的过程;

条件(transition condition):引起对象状态转化的事件及条件;

动作(action):在状态转移时,对象所采取的行动。

本发明实施例提供的基于状态机的语义解析方法在实现时的流程参见图1所示,例如用户对语音产品(即音响或音乐客户端)中说“我要听冰雨”,后台(安装有客户端的终端或客户端的服务器)的工作流程,包括:检测用户说出的“我要听冰雨”这句话,根据语句来源分配状态机,将语句输入分配的状态机,获取状态机的输出结果,向用户返回输出结果。从以上可以看出,后台工作完全由不同的状态机控制。

图2展示一个电梯门的有限状态机的状态图,如图2所示,该图中包括两个状态:状态1为打开的,状态2为关闭的。其中,对于状态1来说,进入状态1的动作为开门,对于状态2来说,进入状态2的动作为关门;状态1与状态2之间的转移条件为打开或关闭。

下面详细介绍如何将FSM模型应用于语义解析过程,本发明实施例的语义解析状态机实现流程如下:

首先,为状态机的状态、转移、条件、动作设计统一接口。

例如,采用统一的格式并且相互之间可以识别的语言。

其次,将语义解析中的所有的步骤,继承于统一接口,封装为状态机中的节点。

最后,将所有的节点连接起来成为状态图,最后包含所有语义解析步骤的状态机跑起来。

一般来说,语音解析过程包括以下步骤:

步骤S1,预处理过程;

一般来说,用户输入的语句,终端经过语音识别会将语音识别为待处理文字(即待解析语句);判断待解析语句是否需要进一步解析,如果待解析语句需要进一步解析,那么需要进入步骤S2,即通过语义解析算法对待解析语句进行解析;如果待解析语句不需要进一步解析,那么进入步骤S3,调用垂直服务。

步骤S2,通过语义解析算法对待解析语句进行解析;

如果解析成功,进入步骤S3,即调用垂直服务;如果解析不成功,则进入步骤S4,即调用通用回答(Frequently Asked Questions,FAQ)。

步骤S3,调用垂直服务;

这里,如果调用垂直服务不正确,则重新进入步骤S2;如果调用垂直服务失败,则进入步骤S3,重新调用垂直服务。如果调用成功,则流程结束(进入结束状态)。

步骤S4,调用通用回答(FAQ);

这里,例如,音乐软件在寻找一首歌曲的时候,没有找到结果,那么就会返回通用回答,例如发出语音“没找到歌曲”。再如用户发出的待解析语句无法识别,那么可能也会向用户返回通用回答,例如发出语音“无法识别”。向用户返回通用回答之后,则流程结束(即进入结束状态)。

步骤S5,对待解析语句进行本地搜索;

这里,对于有些语音产品来说,还需要进行搜索服务,那么步骤S5,则从步骤S4进入步骤S5,并不需要任何条件;进行本地搜索之后,则流程结束(进入结束状态)。

步骤S6,流程结束。

以上述的6个步骤为例进行说明,以上的每一步骤都对应图3中的一个状态,例如步骤S1至步骤S6分别对应于状态31至状态36,其中步骤S1至步骤S6之间的关联关系分别对应于状态31至状态36之间的状态转移条件,例如步骤S1与步骤S2之间的关联关系为:判断待解析语句是否需要进一步解析,如果待解析语句需要进一步解析,那么需要进入步骤S2;而状态31与状态32之间的状态转移条件为:需要解析条件。再如步骤S1与步骤S3之间的关联关系为:判断待解析语句是否需要进一步解析,如果待解析语句不需要进一步解析,那么需要进入步骤S3;而状态31与状态33之间的状态转移条件为:解析成功。

在本发明的其他实施例中,图4为本发明实施例语义解析的流程示意图,如图4所示,该语义解析流程还可以包括以下步骤:

步骤S401,预处理;

这里,参见上述实施例中的步骤S1。

步骤S402,调用语义解析算法进行语义解析;

这里,语义解析算法包括深度学习算法、多场景解析模板、NER+词汇模板、正则模板。

步骤S403,语义消歧;

步骤S404,适配逻辑;

步骤S405,搜索垂直场景;

这里,垂直场景包括去除电话场景、去除短信场景、音乐场景、笑话场景、吃饭场景、点菜场景、购买场景、做饭场景、烹饪场景等。

步骤S406,兜底操作,其中,兜底操作一般包括FAQ、百科搜索、跳转搜索页面、开放域搜索。

在步骤S403中,很多词语都有很多意思或语义,而在具体的语境中,词语有某种特定的意思。而独立于上下文来考虑词语意思,语义一般都会出现语义歧义。消除歧义的任务就是确定一个多义词在一个特定的语境中使用哪一种语义;通过考虑词汇使用的上下文完全可以确定其具体的语义。

比较简单的方法是从一部词典中给出某个词汇的定义确定该词汇具有的语义。但对于大部分词汇来说,语义和用法并不是简简单单能够根据词典中的定义来列出,词典中列出的语义之间有一些是可以清晰分辨的内容,但大部分内容都是不确定的,并且是混合在一起的。而更难的一点是,词典中每个词汇只能列出一定数量的语义,而该词汇在实际的语境中定义的语义不一定能够从词典中的语义中找出。而且一个词还具有不同的词性,确定一个词的具体词性属于标注的任务,这里暂不涉及,但需要知道同一个词的不同词性的确定能够有效的消除词汇歧义。下面来介绍从三种消歧方法。1、有监督消歧——基于标注训练集的消歧。2、基于词典的消歧——建立在词典资源上。3、无监督消歧——未标注文本将应用到训练里。

一个产品并不需要图4中的所有步骤,语义解析只用选合适的,兜底操作则1至2个即可。以浏览器语音助手为例,浏览器语音助手的流程步骤为图4的一个子集,见图5所示,该浏览器语音解析流程包括:

步骤S501,预处理;

步骤S502,调用语义解析算法进行语义解析;

这里,语义解析算法包括深度学习算法、多场景解析模板、NER+词汇模板。

步骤S503,语义消歧义;

步骤S504,适配逻辑;

步骤S505,搜索垂直场景;

这里,垂直场景包括去除电话场景、去除短信场景。

步骤S506,兜底操作,其中,兜底操作一般包括百科搜索、跳转搜索页面。

基于前述的实施例,本发明的实施例提供一种基于状态机的语义解析方法,应用于第一计算设备,该方法所实现的功能可以通过第一计算设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该第一计算设备至少包括处理器和存储介质。

图6为本发明实施例基于状态机的语义解析方法的实现流程示意图,如图6所示,该方法包括:

步骤S601,确定语音产品的功能;

这里,对于音箱来说,语音产品的功能为根据用户的语音指令进行搜索歌曲,并播放歌曲;对于空调来说,语音产品的功能为根据用户的语音指令控制空调的温度、湿度、持续时间等工作参数,并按照确定的工作参数进行工作;对于浏览器语音助手来说,根据用户的语音指令进行搜索,并返回结果;对于语音聊天助手来说,根据用户的语音进行对话。

步骤S602,根据所述语音产品的功能确定所述语音产品在语义解析中的步骤集合,所述步骤集合中至少包括两个以上的步骤;

步骤S603,为所述步骤集合中的每一步骤确定对应的状态机的节点;

步骤S604,根据确定的节点形成节点集合;

步骤S605,将所述节点集合形成所述语音产品的状态机。

在实施的过程中,本发明实施例中的功能或步骤可以采用配置文件来表示,例如:将<machine></machine>作为一个状态机的定义,<state></state>下的内容为状态名及状态对应的动作,其中,动作由统一接口的类实现。<transmition></transmition>下为转移定义。定义格式为迁移=当前状态|条件|下一个状态。

相关技术中,接入任何一款新产品,需要进行重新编码,应用本实施例提供的技术方案后,只需根据产品需求定制不同的解析流程即可,简单灵活高效。对不用的解析流程作解释,举例来说,在浏览器语音助手中说,人物A(例如李小鹏)是谁,用户看到的动作是,跳转搜索页面,利用浏览器搜索人物A这个关键词。而在微桌面中,则直接吐出人物A的百科信息。

需要说明的是,第一计算设备形成状态机后,可以将状态机运行在第一计算设备上;或者将状态机输出给第二计算设备,然后第二计算设备运行该状态机。基于此,无论是第一计算设备或第二计算设备运行状态机,该方法还包括:

步骤S606,获取语音产品的待解析语句;

步骤S607,将所述待解析语句输入预设的状态机的第一个节点;

步骤S608,从所述状态机的最后一个节点获取输出结果;

步骤S609,将所述输出结果输出。

下面提供几种实现步骤S605,“将所述节点集合形成所述语音产品的状态机”的方式:

方式一:首先,步骤S603,“为所述步骤集合中的每一步骤确定对应的状态机的节点”包括:在所述步骤集合中,根据每一步骤与其他步骤之间的连接关系确定每一步骤对应节点到其他步骤对应节点之间的转移条件;对应地,步骤S605包括:按照所述转移条件将所述节点集合形成所述语音产品的状态机。

方式二,所述将所述节点集合形成所述语音产品的状态机,包括:根据所述步骤集合中每两个步骤之间的连接关系确定各每两个步骤对应的节点之间的连接关系;根据所述节点集合中各节点之间的连接关系形成所述语音产品的状态机。

这里,每两个步骤是指步骤集合所有可能的步骤组合,假设步骤集合包括步骤a、b、c和d,那么每两个步骤包括步骤a与步骤b、步骤a与步骤c、步骤a与步骤d、步骤b与步骤c、步骤b与步骤d、步骤c与步骤d。

这里,每两个步骤之间的连接关系(关联关系)参见上述的步骤S1与步骤S2,例如步骤S1与步骤S2之间的关联关系为:判断待解析语句是否需要进一步解析,如果待解析语句需要进一步解析,那么需要进入步骤S2;而状态31与状态32之间的状态转移条件为:需要解析条件。再如步骤S1与步骤S3之间的关联关系为:判断待解析语句是否需要进一步解析,如果待解析语句不需要进一步解析,那么需要进入步骤S3;而状态31与状态33之间的状态转移条件为:解析成功。

方式三:所述将所述节点集合形成所述语音产品的状态机,包括:获取每一步骤对应的节点的标识;根据每一步骤对应的节点的标识按照预设的状态图形成所述语音产品的状态机。

在上述的方式三中,包括形成预设的状态图的过程,该形成预设的状态图包括:

步骤SA1,确定语义解析中的步骤全集,所述步骤全集至少包括两个以上的步骤,所述步骤集合为所述步骤全集的子集;

这里,步骤全集和步骤集合可能包括相同数量的步骤,但是步骤全集可能比步骤集合的步骤多,其中子集表示步骤全集所包括的步骤与步骤集合所包括的步骤的数量相同。

步骤SA2,为所述步骤全集中的每一步骤封装为状态机的节点;

步骤SA3,根据所述步骤全集中每两个步骤之间的连接关系确定各每两个步骤对应的节点之间的连接关系;

步骤SA4,根据各节点之间的连接关系,形成状态图。

这里,步骤A2,所述为所述步骤集合中的每一步骤确定对应的状态机的节点,包括:获取步骤与节点之间的关联信息;根据所述关联信息确定为所述步骤集合中的每一步骤确定对应的状态机的节点。

这里,关联信息用于表征步骤与节点之间的对应关系,在实施的过程中,可以采用对应关系列表来实现,根据步骤的标识查询对应关系列表,得到对应的节点。

在本发明的其他实施例中,为了保证步骤与节点(状态机的状态)之间的对应关系,本发明实施例还包括判断步骤与节点之间的匹配对应关系,即本实施例中该方法还包括:

步骤SB1,获取第一连接关系,所述第一连接关系为所述步骤集合中第一步骤与所述步骤集合中除所述第一步骤外其他步骤之间的连接关系;

步骤SB2,获取第二连接关系,所述第二连接关系为所述步骤集合中第一步骤对应的节点与所述状态机中除所述第一步骤外其他步骤对应的节点之间的连接关系;

步骤SB3,如果所述第一连接关系与所述第二连接关系匹配,将所述第一步骤对应的节点确定为所述节点集合中一个节点;

这里,判断所述第一连接关系与所述第二连接关系是否匹配,得到判断结果;如果所述判断结果表明所述第一连接关系与所述第二连接关系,将所述节点确定为所述节点集合中一个节点;如果所述第一连接关系与所述第二连接关系,重新为所述步骤确定将所述节点确定为所述节点集合中一个节点;

步骤SB4,如果所述第一连接关系与所述第二连接关系不匹配,重新为所述第一步骤确定节点。

基于前述的实施例,本发明实施例提供一种基于状态机的语义解析装置,该装置所包括的各单元,以及各单元所包括各模块,都可以通过第一计算设备中的处理器来实现,在实现的过程中,处理器所实现的功能当然也可通过具体的逻辑电路实现;在具体实施例的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。

在实现的过程中,第一计算设备以采用各种具有信息处理能力的电子设备来实现,例如电子设备可以为智能手机、笔记本电脑、台式计算机、服务器集群等来实现。

图7为本发明实施例基于状态机的语义解析装置的组成结构示意图,如图7所示,所述装置700包括第一确定单元701、第二确定单元702、第三确定单元703、第一形成单元704和第二形成单元705,其中:

所述第一确定单元701,用于确定语音产品的功能;

所述第二确定单元702,用于根据所述语音产品的功能确定所述语音产品在语义解析中的步骤集合,所述步骤集合中至少包括两个以上的步骤;

所述第三确定单元703,用于为所述步骤集合中的每一步骤确定对应的状态机的节点,

所述第一形成单元704,用于根据确定的节点形成节点集合;

所述第二形成单元705,用于将所述节点集合形成所述语音产品的状态机。

下面提供两种实现第二形成单元705的方式:

方式一:所述第二形成单元包括第一确定模块和第一形成模块,其中:所述第一确定模块,用于根据所述步骤集合中每两个步骤之间的连接关系确定各每两个步骤对应的节点之间的连接关系;所述第一形成模块,用于根据所述节点集合中各节点之间的连接关系形成所述语音产品的状态机。

方式二,所述第二形成单元包括获取模块和第二形成模块,其中:所述获取模块,用于获取每一步骤对应的节点的标识;所述第二形成模块,用于根据每一步骤对应的节点的标识按照预设的状态图形成所述语音产品的状态机。

在本发明的其他实施例中,方式二中,所述装置还包括用于形成预设的状态图的第三形成单元,所述第三形成单元包括第二确定模块、封装模块、第三确定模块和第三形成模块,其中:

所述第二确定模块,用于确定语义解析中的步骤全集,所述步骤全集至少包括两个以上的步骤,所述步骤集合为所述步骤全集的子集;

所述封装模块,用于为所述步骤全集中的每一步骤封装为状态机的节点;

所述第二确定模块,用于根据所述步骤全集中每两个步骤之间的连接关系确定各每两个步骤对应的节点之间的连接关系;

所述第三形成模块,用于根据各节点之间的连接关系,形成状态图。

在本发明的其他实施例中,方式二中的第二确定模块进一步包括获取子模块和确定子模块,其中:

所述获取子模块,用于获取步骤与节点之间的关联信息;

所述确定子模块,用于根据所述关联信息确定为所述步骤集合中的每一步骤确定对应的状态机的节点。

在本发明的其他实施例中,所述装置还包括第一获取单元、第二获取单元、匹配单元和不匹配单元,其中:

所述第一获取单元,用于获取第一连接关系,所述第一连接关系为所述步骤集合中第一步骤与所述步骤集合中除所述第一步骤外其他步骤之间的连接关系;

所述第二获取单元,用于获取第二连接关系,所述第二连接关系为所述步骤集合中第一步骤对应的节点与所述状态机中除所述第一步骤外其他步骤对应的节点之间的连接关系;

所述匹配单元,用于如果所述第一连接关系与所述第二连接关系匹配,将所述第一步骤对应的节点确定为所述节点集合中一个节点;

所述不匹配单元,用于如果所述第一连接关系与所述第二连接关系不匹配,重新为所述第一步骤确定节点。

这里,所述装置还包括判断单元,用于判断所述第一连接关系与所述第二连接关系是否匹配,得到判断结果;如果所述判断结果表明所述第一连接关系与所述第二连接关系,将所述节点确定为所述节点集合中一个节点;如果所述第一连接关系与所述第二连接关系,重新为所述步骤确定将所述节点确定为所述节点集合中一个节点。

这里需要指出的是:以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解,为节约篇幅,因此不再赘述。

基于前述的实施例,本发明实施例提供一种基于状态机的语义解析装置,该装置所包括的各单元,以及各单元所包括各模块,都可以通过第二计算设备中的处理器来实现,在实现的过程中,处理器所实现的功能当然也可通过具体的逻辑电路实现;在具体实施例的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。

在实现的过程中,第二计算设备以采用各种具有信息处理能力的电子设备来实现,例如电子设备可以为智能手机、笔记本电脑、台式计算机、服务器集群等来实现。

图8为本发明实施例基于状态机的语义解析装置的组成结构示意图,如图8所示,所述装置800还包括第三获取单元801、输入单元802、第三获取单元803和输出单元804,其中:

所述第三获取单元801,用于获取语音产品的待解析语句;

所述输入单元802,用于将所述待解析语句输入预设的状态机的第一个节点;

所述第四获取单元803,用于从所述状态机的最后一个节点获取输出结果;

所述输出单元804,用于将所述输出结果输出。

在本发明的其他实施例中,所述装置包括第一确定单元、第二确定单元、第三确定单元、第一形成单元和第二形成单元,其中:

所述第一确定单元,用于确定语音产品的功能;

所述第二确定单元,用于根据所述语音产品的功能确定所述语音产品在语义解析中的步骤集合,所述步骤集合中至少包括两个以上的步骤;

所述第三确定单元,用于为所述步骤集合中的每一步骤确定对应的状态机的节点,

所述第一形成单元,用于根据确定的节点形成节点集合;

所述第二形成单元,用于将所述节点集合形成所述语音产品的状态机。

这里需要指出的是:以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解,为节约篇幅,因此不再赘述。

在本发明的其他实施例中,前述实施例中的第一计算设备为了形成状态机,第一计算设备形成的状态机可以运行在第一计算设备上,也可以作为一个功能模块运行在第二计算设备上,第二计算设备可以为语音产品的服务器也可以为语音产品的终端,换句话说,第一计算设备形成的状态机可以输出给语音产品的服务器也可以输出给语音产品的终端,基于这种理解,本发明的实施例再提供一种基于状态机的语义解析系统,该系统有多种实现模式,其中:

第一种模式:如图9的A图所示,第一种模式的系统900包括第一计算设备901、第二计算设备902和终端903,其中:

第一计算设备901用于形成状态机(如前述的方法或图8所示的实施例),然后将形成的状态机输出给第二计算设备902;

终端903上安装有语音产品的客户端(例如手机语音助手如、浏览器语音助手),用户在终端上打开客户端,然后用户说出一句话,客户端检测用户所说的话(待解析语句),然后客户端将待解析语句发送给第二计算设备902;

第二计算设备902作为终端903的服务器,第二计算设备902上运行有第一设备901输出的状态机,第二计算设备还用于接收终端903输出的待解析语句,然后将待解析语句输入运行在第二计算设备上的状态机,然后获取从状态机上输出的输出结果,并将输出结果返回给终端,最后终端将输出结果输出给用户。

第二种模式:如图9的B图所示,第二种模式的系统900包括第一计算设备901和第二计算设备902,其中:

第一计算设备901用于形成状态机(如前述的方法或图8所示的实施例),然后将形成的状态机输出给第二计算设备902;

第二计算设备902作为终端,第二计算设备902上安装有语音产品的客户端(例如手机语音助手如苹果公司的siri、浏览器语音助手),用户在终端上打开客户端,然后用户说出一句话,客户端检测用户所说的话(待解析语句),然后客户端将待解析语句发送给运行在第二计算设备902上的状态机;状态机运行后,将输出结果发送给客户端,然后客户端获取从状态机上输出的输出结果,最后客户端将输出结果输出给用户。在实现的过程中,状态机可以独立于客户端,也可以作为客户端的一部分,当状态机作为客户端的一部分时,客户端包括检测装置和状态机,其中检测装置用于检测用户所说的话(待解析语句),然后检测装置将待解析语句发送给运行在第二计算设备902上的状态机。

需要说明的是,本发明实施例中,如果以软件功能模块的形式实现上述的基于状态机的语义解析方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。

相应地,本发明实施例再提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时用于执行本发明实施例中基于状态机的语义解析方法。

相应地,本发明实施例再提供一种计算设备,包括:存储器、处理器和用于存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时用于实现本发明各实施例中的基于状态机的语义解析方法。

这里需要指出的是:以上计算设备实施例项的描述,与上述方法描述是类似的,具有同方法实施例相同的有益效果。对于本发明计算设备实施例中未披露的技术细节,本领域的技术人员请参照本发明方法实施例的描述而理解。

在实现的过程中,第一计算设备、第二计算设备、终端都可以通过电子设备来实现,图10为本发明实施例电子设备的组成结构示意图,如图10所示,该计算设备1000可以包括:至少一个处理器1001、至少一个通信总线1002、用户接口1003、至少一个外部通信接口1004和至少一个的存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏和键盘。外部通信接口1004可选的可以包括标准的有线接口和无线接口。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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