语义技能创建方法及装置与流程

文档序号:15686892发布日期:2018-10-16 21:09阅读:124来源:国知局

本发明实施例涉及自然语言领域,更具体地,涉及一种语义技能创建方法及装置。



背景技术:

随着移动智能终端和信息网络技术的发展,人们在越来越多的场景中使用语音交互应用。例如,以智能音箱作为入口,通过语音交互的方式使用天气/股票/音乐/交通状况/闹钟/提醒等语音交互应用。其中,每种语音交互应用又称为一种语义技能。又例如,以车载车机为入口,语音交互使用lbs/导航/电台/音乐等语义技能。基于上述需求,业界也出现越来越多的对话式人工智能开放平台,以为技能开发者提供一个可以开发语义技能的平台。

在相关技术中,通常是由技能开发者通过对话式人工智能开放平台以编写代码的方式来创建语义技能。由于语义技能的对话业务逻辑通常比较复杂,且编写代码的过程本身比较复杂,从而导致创建语义技能的学习门槛较高,创建过程较为繁琐。另外,由于编写代码本身容易出错,后期需要通过维护代码以维护语义技能,从而导致维护成本也比较高。



技术实现要素:

为了解决上述问题,本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的语义技能创建方法及装置。

根据本发明实施例的第一方面,提供一种语义技能创建方法,该方法包括:

获取技能状态组件,基于业务执行逻辑对技能状态组件进行组合,得到技能状态流程图;

基于技能状态流程图,创建具有业务执行逻辑的语义技能。

本发明实施例提供的方法,通过获取技能状态组件,基于业务执行逻辑对技能状态组件进行组合,得到技能状态流程图。基于技能状态流程图,创建具有业务执行逻辑的语义技能。由于技能开发者只需对技能状态组件进行组合,即可得到语义技能,从而降低了创建语义技能的学习门槛。与此同时,简化了语义技能的创建过程,提高了语义技能的创建效率。另外,由于只需对技能状态组件进行简单组合,而不需要编写代码,后期只需对技能状态组件的组合关系进行调整,从而后期维护成本较低。

根据本发明实施例第二方面,提供了一种语义技能创建装置,该装置包括:

组合模块,用于获取技能状态组件,基于业务执行逻辑对技能状态组件进行组合,得到技能状态流程图;

创建模块,用于基于技能状态流程图,创建具有业务执行逻辑的语义技能。

根据本发明实施例的第三方面,提供了一种语义技能创建设备,包括:

至少一个处理器;以及

与处理器通信连接的至少一个存储器,其中:

存储器存储有可被处理器执行的程序指令,处理器调用程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的语义技能创建方法。

根据本发明实施例的第四方面,提供了一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的语义技能创建方法。

应当理解的是,以上的一般描述和后文的细节描述是示例性和解释性的,并不能限制本发明实施例。

附图说明

图1为本发明实施例的一种语义技能创建方法的流程示意图;

图2为本发明实施例的一种技能状态组件库的效果示意图;

图3为本发明实施例的一种技能状态流程图的效果示意图;

图4为本发明实施例的一种语义技能创建装置的结构示意图;

图5为本发明实施例的一种语义技能创建设备的结构示意图。

具体实施方式

下面结合附图和实施例,对本发明实施例的具体实施方式作进一步详细描述。以下实施例用于说明本发明实施例,但不用来限制本发明实施例的范围。

目前对话式人工智能开放平台为技能开发者提供了大量具有不同功能的语义技能,但是该平台提供的语义技能虽然是经过深度优化定制的,但是存在两方面问题:1、提供的语义技能通常是有限的,无法满足技能开发者个性化的技能需求,如打车、外卖送餐等;2、技能开发者在使用语义技能时也时常存在无法进行功能拓展,如该系统提供了具有查询天气功能的语义技能,技能开发者在使用过程中,发现该语义技能所能够支持的语音指令比较有限,导致不能满足功能拓展的需求。因此,基于上述问题,就需要通过对话式人工智能开放平台自定义新的语义技能,或者针对对话式人工智能开放平台所提供的语义技能进行功能拓展。

语义技能通常包含意图、说法语料和语义槽等元素。其中,意图是指用户说话的目的,即用户想要表达什么、想做什么。说法语料是为了表达一个意图且可以自然语言作为载体,一个意图通常可由多种说法语料进行表达。语义槽为携带有特定信息的分词在说法语料中的位置。以“今天北京天气怎么样”作为说法语料为例,该说法语料表达的意图为查询天气。该说法语料中分词“今天”及“北京”分别携带有特定信息日期及地点,分词“今天”及“北京”在说法语料中所处的位置即为语义槽。

由上述内容可知,对话式人工智能开放平台可提供自定义新的语义技能的功能。为了便于理解,以创建具有打车功能的语义技能为例,技能开发者通过对话式人工智能开放平台自定义新的语义技能的过程如下:

步骤1:为语义技能添加意图,如reserve(预约),并为该意图添加若干说法语料以用于表达。说法语料可为如下示例:帮我约一辆车、帮我预约一辆{datetime}从{fromlocation}到{tolocaiton}的出租车、约一辆到{tolocation}的车。其中,{}对应的位置即为说法语料中的语义槽。

步骤2:设计填槽对话,如在用于表达reserve意图的说法语料中存在三个语义槽:{datetime}(出发时间)、{fromlocation}(出发地点)及{tolocaiton}(到达地点)。对于reserve意图来说,由于这三个语义槽缺一不可,对于缺乏任意一个语义槽的说法语料,该说法语料均不能有效地表达reserve意图。因此,这三个语义槽均是必要的。进一步地,为了便于技能开发者完善说法语料中语义槽所填充的信息,还可为每个语义槽分别设置相关的提示语。例如,针对语义槽{datetime},可设置提示语如下:“请问您希望什么时候出发?”。针对语义槽{fromlocation},可设置提示语如下:“请问您从哪儿出发?”。后续使用语义技能的用户可根据提示语的引导进行语音交互。相应地,系统可基于与用户的交互填充语义槽,以完善交互信息。

步骤3:为语义槽设置实体。其中,实体为语义槽所对应的可选信息集合,也可称之为词典。对话式人工智能开放平台通常会提供一些开放的实体,以语义槽为{city}为例,该语义槽对应的实体可以为“北京”、“上海”等不同城市。与此同时,技能开发者也可以自定义实体,并可同时设置自定义的实体与语义槽之间的对应关系。

通过上述三个步骤,即可完成通过对话式人工智能开放平台自定义语义技能。由于上述三个步骤主要需要通过编写代码实现,而编写代码的过程本身比较复杂,从而导致创建语义技能的学习门槛较高,创建过程较为繁琐。另外,由于编写代码本身容易出错,后期需要通过维护代码以维护语义技能,从而导致维护成本也比较高。针对上述情形,本发明实施例提供一种语义技能创建方法。参见图1,该方法包括:

101、获取技能状态组件,基于业务执行逻辑对技能状态组件进行组合,得到技能状态流程图。为了使语义技能的创建过程更为直观,在执行步骤101之前,还可预先创建技能状态组件库,技能状态组件库中包含多个技能状态组件。相应地,本步骤在获取技能状态组件时,可根据需求从技能状态组件库中选取技能状态组件。其中,技能状态组件可为一系列的图形界面元素,每一技能状态组件用于表示语义技能的业务执行逻辑中的各种状态。在获取到技能状态组件后,可在可视化界面中对技能状态组件进行组合,以得到技能状态流程图。具体地,技能开发者可通过输入设备以拖拽的方式在可视化界面中组合技能状态组件,以得到技能状态流程图,本发明实施例对此不作具体限定。

102、基于技能状态流程图,创建具有业务执行逻辑的语义技能。

具体地,可先将技能状态流程图转化为配置文件。其中,配置文件的格式可以为json配置文件,本发明实施例对此不作具体限定。再读取该配置文件并将其转化为业务执行逻辑代码,并可将业务执行逻辑代码存储至云端数据库,以作为语义技能的业务执行逻辑代码。对配置文件进行编译,以构建语义技能交互模型。后续用户在使用语义技能时,可通过语义技能交互模型加载业务执行逻辑代码,以执行不同的业务逻辑。具体地,业务逻辑可包含语音识别、语义理解、交互状态迁移以及信源查询、第三方业务调用等,本发明实施例对此不作具体限定。

本发明实施例的方法,通过获取技能状态组件,基于业务执行逻辑对技能状态组件进行组合,得到技能状态流程图。基于技能状态流程图,创建具有业务执行逻辑的语义技能。由于技能开发者只需对技能状态组件进行组合,即可得到语义技能,从而降低了创建语义技能的学习门槛。与此同时,简化了语义技能的创建过程,提高了语义技能的创建效率。另外,由于只需对技能状态组件进行简单组合,而不需要编写代码,后期只需对技能状态组件的组合关系进行调整,从而后期维护成本较低。

由于业务执行逻辑中通常包含多个交互环节,每一交互环节对应一个中间执行结果(也即中间状态),不同中间状态在迁移时,通常会有触发条件(也即状态迁移条件),为了更形象地表示业务执行逻辑,基于上述实施例的内容,作为一种可选实施例,本发明实施例提供了一种技能状态组件的类型划分方式。具体地,技能状态组件包括状态节点组件、状态迁移组件、状态属性组件及状态迁移条件组件;状态节点组件用于指示业务执行逻辑中的状态节点,状态迁移组件用于连接不同状态节点并指示不同状态节点之间的迁移关系,状态属性组件用于设置场景交互信息,状态迁移条件组件用于指示不同状态节点之间进行迁移时所需的触发条件。

其中,按照业务执行逻辑中状态节点的先后顺序,状态节点可以进一步包括开始状态节点、中间状态节点和结束状态节点。状态属性组件用于设置状态节点之后的下一个交互环节所需的场景交互信息。其中,场景交互信息可以包括状态节点之后的下一个交互环节中所需使用到的数据处理模型、该下一个交互环节的执行次数、信源链接或第三方业务的调用链接,本发明实施例对此不作具体限定。

具有迁移关系的状态节点组件可以通过状态迁移组件相互连接。例如,状态节点组件a通过两个状态迁移组件分别与状态节点组件b1和b2连接。a在进行状态迁移时,状态迁移条件组件能够指示从状态节点组件a迁移至状态节点组件b1和b2时的触发条件。状态迁移条件组件中设置的触发条件可以包括:是否满足条件表达式、是否满足设定意图、和/或是否发出提示语。例如,条件表达式可为“city!=null”,指示“没有该城市”。是否满足设定意图具体地是指:技能开发者可预先定义设定意图,在语义交互时,若判断为该设定意图,则触发状态迁移。对于判断过程,技能开发者可对设定意图设置说法语料,然后将这些说法语料训练成语义理解组件,在交互时,通过该语义理解组件,将说法语料理解为其对应的意图,若该意图为设定意图,则触发状态迁移。是否发出提示语具体是指:技能开发者可对下一个与用户的交互环节设置相应的提示语,该提示语用于引导用户按照业务执行逻辑的方向进行交互,在进入下一交互环节之前,会对用户给出语音或者文字的提示语。

上述技能状态组件的形状可参见图2,其中,“状态”对应状态节点组件,“状态迁移”对应状态迁移组件,“状态迁移条件”对应状态迁移条件组件,“状态属性”对应状态属性组件。状态迁移组件的形状可以为有向线条,状态节点组件、状态属性组件及状态迁移条件可设置为方框。上述各类技能状态组件可设置为不同形状和/或不同颜色,以对各类技能状态组件进行区分,本发明实施例对此不作具体限定。

本发明实施例提供的方法,利用状态节点组件指示业务执行逻辑中的状态节点,利用状态迁移组件连接不同状态节点并指示不同状态节点之间的迁移关系,利用状态属性组件设置场景交互信息,利用状态迁移条件组件指示不同状态节点之间进行迁移时所需的触发条件。采用上述技能状态组件能够形象地表示业务执行逻辑,方便技能开发者通过各类组件的组合得到技能状态流程图,提高技能开发者创建语义技能的效率。

基于上述实施例的内容,作为一种可选实施例,状态属性组件包括语音识别模型及语义理解组件;语音识别模型用于识别语音数据,获取语音识别结果,语音数据是采集使用语义技能的用户的发言所得到的,语义理解组件用于对语音识别结果进行语义理解。具体地,上述场景交互信息中包括的数据处理模型可包括语音识别模型及语义理解组件,基于语音识别模型和语义理解组件能够对语义交互过程中采集到的语音数据进行语义理解,以根据语义理解结果执行相应的业务处理逻辑。

语义技能通常具有特定的业务场景,例如针对询问交通状况的语义技能,其业务场景通常为车辆等交通工具中,而针对闹钟提醒的语义技能,业务场景通常为室内。由于不同的语音识别模型和语义理解组件对于不同业务场景下的语音识别和语义理解的效果是不同的,从而应当针对业务场景的不同,选择合适的语音识别模型和语义理解组件。

基于上述原理及上述实施例的内容,作为一种可选实施例,语音识别模型和语义理解组件的类型由业务场景确定;语义理解组件为语义理解模型、语义理解技能、正则表达式或通配符。具体地,业务场景可包括多种,例如远场、近场、车载和儿童等,因此,状态节点在不同的业务场景下可调用不同类型的语音识别模型,提高语音识别的准确率。当语义理解组件为语义理解模型时,按照业务场景划分,语义理解模型可以设置为通用模型、音乐理解模型和车载理解模型。

本发明实施例提供的方法,根据应用场景选择合适类型的语音识别模型和语义理解组件,由于语音识别模型和语义理解组件在不同的业务场景下均具有较高的语音识别及语义理解的准确率,从而可提高语义技能的业务执行效率和实现成功率。

当用户使用语义技能时,语音识别模型和语义理解组件可能不能得到正确的结果,导致不满足当前状态节点的迁移条件;因此,基于上述实施例的内容,作为一种可选实施例,状态属性组件还包括重复次数(repeattime),用于在语义交互的过程中,若不满足当前状态节点的状态迁移条件,则提醒用户进行重试,直到重复提醒的次数达到设定的重复次数或满足状态迁移条件。本发明实施例提供的方法,通过在状态属性组件中设置重复次数,在不满足状态迁移条件时提醒用户进行重试,降低因语音数据识别错误等其他因素导致状态迁移条件判断失败,从而提高了状态迁移时的容错率。

语义交互过程中,语义技能可能需要获取额外的信源数据或第三方业务数据。例如,用户想要了解所在城市当前的天气情况时,语义技能需要通过访问网络获取当前的天气情况,以传达给用户。因此,基于上述原理及上述实施例的内容,作为一种可选实施例,状态属性组件还包括信源链接或第三方业务的调用链接,用于在语义交互过程中根据用户意图获取信源数据或第三方业务数据。

需要说明的是,上述所有可选实施例,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

基于上述实施例的内容,作为一种可选实施例,对于具有打车功能的语义技能,基于该语义技能的业务执行逻辑对技能状态组件进行组合后,得到的技能状态流程图参见图3。其中,state0至state6均为状态节点组件,state0定义为idle状态节点,即为开始状态节点,state1至state5为中间状态节点组件,state6为结束状态组件。基于图3,迁移过程如下:

state0到state1的状态迁移条件为intent=reserve(预约出租车),reserve的说法语料utterances为“我要打个车,我要预约出租车…”。当用户说出说法语料中的任意一句说法语料时,通过预先训练的语义理解组件将该说法语料理解为reserve意图,此时进入state1。

进入state1后,提示用户:“请问您想几点出发”,用户可在下一轮对话中说出出发时间,如:“明天下午三点出发”。此时,通过语音识别模型及语义理解组件,获得datetime、from及to等槽位;之后,根据槽位判断是否满足state1到state2状态迁移条件datetime!=null&&from=null&&to==null,并在判断满足状态迁移条件后,将当前的状态节点迁移至state2。

进入state2后,根据state2中设置的prompt(提示语)再次向用户发出提示语:“请问您的出发地和目的地是哪里”。用户可进行下一轮对话,说出:“我要从a地到b地”。此轮对话过后,根据槽位判断满足state2到state3的状态迁移条件后,将当前的状态节点迁移至state3。

进入state3后,在state3中访问第三方打车软件服务的链接,请求预定出租车,并根据设置的提示语对用户提示:“正在为您预约出租车”。当预定请求返回后,可第三方打车软件服务根据返回的预定结果,判断是否预约成功,从而将当前的状态节点迁移至state4或者state5。

若未预约成功,则迁移至state4,并提示用户重试;若预约成功,则迁移至state5,并将预约结果中的车牌号和司机电话号码组成提示语,提示用户。最后,当前的状态节点迁移至state6,对话结束。

在得到技能状态流程图后,将技能状态流程图转化为json配置文件,配置文件的代码如下所示:

上述json配置文件的代码中,version表示语义技能的版本号,type:skill表示当前为一个语义技能,nodes表示技能状态流程图中的状态节点。其中,每一个状态节点具有name和properties属性,分别表示状态节点名和状态属性。状态属性中的type表示该状态属性的类型,如asr(语音识别模型)和func(处理云函数)等。arcs表示状态流程图中的状态迁移组件,状态迁移组件可为有向弧,其中name属性为有向弧的名称,也表示了该有向弧连接了哪两个状态节点,properties属性为有向弧的属性。有向弧可具有多个属性,如condition(是否满足条件表达式)、prompt(是否发出提示语)和intent(是否满足设定意图)等;条件表达式可为numbergreaterthan和stringequals等。

然后,读取该json配置文件,将配置文件的内容转换为业务执行逻辑代码,并将业务执行逻辑代码保存于云端,业务执行逻辑代码示例如下:

通过生成上述业务执行逻辑代码,可针对每个必选槽给出相应的提示语(prompt)。最后,将该json配置文件数据编译构建为语义交互技能模型。用户在使用语义技能时,可通过语义技能交互模型加载业务执行逻辑代码,以执行不同的业务逻辑。

基于上述实施例的内容,本发明实施例提供了一种语义技能创建装置,该语义技能创建装置用于执行上述方法实施例中的语义技能创建方法。参见图4,该装置包括:

组合模块401,用于获取技能状态组件,基于业务执行逻辑对技能状态组件进行组合,得到技能状态流程图;

创建模块402,用于基于技能状态流程图,创建具有业务执行逻辑的语义技能。

作为一种可选实施例,技能状态组件包括状态节点组件、状态迁移组件、状态属性组件及状态迁移条件组件;状态节点组件用于指示业务执行逻辑中的状态节点,状态迁移组件用于连接不同状态节点并指示不同状态节点之间的迁移关系,状态属性组件用于设置场景交互信息,状态迁移条件组件用于指示不同状态节点之间进行迁移时所需的触发条件。

作为一种可选实施例,状态属性组件包括语音识别模型及语义理解组件;语音识别模型用于识别语音数据,获取语音识别结果,语音数据是采集使用语义技能的用户的发言所得到的,语义理解组件用于对语音识别结果进行语义理解。

作为一种可选实施例,语音识别模型和语义理解组件的类型由业务场景所确定;语义理解组件为语义理解模型、语义理解技能、正则表达式或通配符。

本发明实施例的装置,通过获取技能状态组件,基于业务执行逻辑对技能状态组件进行组合,得到技能状态流程图。基于技能状态流程图,创建具有业务执行逻辑的语义技能。由于技能开发者只需对技能状态组件进行组合,即可得到语义技能,从而降低了创建语义技能的学习门槛。与此同时,简化了语义技能的创建过程,提高了语义技能的创建效率。另外,由于只需对技能状态组件进行简单组合,而不需要编写代码,后期只需对技能状态组件的组合关系进行调整,从而后期维护成本较低。

其次,利用状态节点组件指示业务执行逻辑中的状态节点,利用状态迁移组件连接不同状态节点并指示不同状态节点之间的迁移关系,利用状态属性组件设置场景交互信息,利用状态迁移条件组件指示不同状态节点之间进行迁移时所需的触发条件。采用上述技能状态组件能够形象地表示业务执行逻辑,方便技能开发者通过各类组件的组合得到技能状态流程图,提高技能开发者创建语义技能的效率。

最后,根据应用场景选择合适类型的语音识别模型和语义理解理解,由于语音识别模型和语义理解组件在不同的业务场景下具有较高的语音识别及语义理解的准确率,从而提高语义技能的业务执行效率和实现成功率。

本发明实施例提供了一种语义技能创建设备,如图5所示,该设备包括:处理器(processor)501、存储器(memory)502和总线503;

其中,处理器501及存储器502分别通过总线503完成相互间的通信;处理器501用于调用存储器302中的程序指令,以执行上述实施例所提供的语义技能创建方法,例如包括:获取技能状态组件,基于业务执行逻辑对技能状态组件进行组合,得到技能状态流程图;基于技能状态流程图,创建具有业务执行逻辑的语义技能。

本发明实施例还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行对应实施例所提供的语义技能创建方法,例如包括:获取技能状态组件,基于业务执行逻辑对技能状态组件进行组合,得到技能状态流程图;基于技能状态流程图,创建具有业务执行逻辑的语义技能。

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

以上所描述的语义技能创建设备等实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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