首页> 中国专利> 一种实现开放式语义交互服务的方法及系统

一种实现开放式语义交互服务的方法及系统

摘要

本发明实施例公开了一种实现开放式语义交互服务的方法及系统。本发明有效地解决了现有技术存在的配置复杂、使用不便、理解不够精准等问题,从而允许宿主应用的开发者在其应用中灵活自主地为用户提供更丰富、更精准的语义交互功能。包括为开发者提供语义接口配置工具,允许开发者定义并维护语义事件,定义与语义事件关联的自然语言表达形成语义接口;提供语言知识共享支持,根据已知的自然语言表达识别等价表达以自动扩充语义接口;根据语义接口自动生成语义规则,并据以对用户提供的自然语言表达进行语义分析,根据用户的意图及要求触发语义事件;执行相应的语义事件响应代码,从而实现操控、查询、自动问答、上下文交互和按需计算等语义交互功能。

著录项

  • 公开/公告号CN105354180A

    专利类型发明专利

  • 公开/公告日2016-02-24

    原文格式PDF

  • 申请/专利权人 欧阳江;

    申请/专利号CN201510535595.5

  • 发明设计人 欧阳江;

    申请日2015-08-26

  • 分类号G06F17/27(20060101);

  • 代理机构44232 深圳市隆天联鼎知识产权代理有限公司;

  • 代理人万振雄;刘耿

  • 地址 510630 广东省广州市天河区华景北路84号706房

  • 入库时间 2023-12-18 14:21:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-30

    专利权的转移 IPC(主分类):G06F17/27 登记生效日:20190411 变更前: 变更后: 申请日:20150826

    专利申请权、专利权的转移

  • 2019-01-04

    授权

    授权

  • 2016-03-23

    实质审查的生效 IPC(主分类):G06F17/27 申请日:20150826

    实质审查的生效

  • 2016-02-24

    公开

    公开

说明书

技术领域

本发明涉及基于语义理解的智能化人机交互技术,尤其涉及一种实现开 放式的语义交互服务的方法及系统。

背景技术

随着智能终端的进一步普及,普通用户对基于语义理解的智能化人机交 互的需求逐渐被释放出来。

目前主要有两种方案实现基于语义理解的智能化人机交互,第一种方案 是通过类似语音助手的应用来整合各种信息资源、应用资源,为普通用户提 供语义交互服务,这种方案的问题在于:1)需要集成数量巨大的信息资源、 应用资源,形成实现复杂的语义理解环境,在具体实现过程中将带来成本陷 阱和技术困难;2)信息资源、应用资源的拥有者出于自身利益考虑,对于 是否整合到语音助手后端也心存顾虑。

第二种方案是提供一个面向第三方应用开发者的语义服务平台,从而令 第三方应用可以借助这个平台在自己的应用中植入为终端用户提供语义交 互体验的能力。第二种方案可以使宿主应用保持完全的自主性,因而拥有广 阔的前景。但现有的技术存在以下问题:1)配置复杂、繁琐:需要开发者 掌握复杂的语言知识、脚本知识,也没有为开发者提供强有力的自动化、智 能化的语言知识共享支持,导致配置过程繁琐,令开发者望而生畏。2)接 口封闭、使用不便、门槛过高:开发者需要依赖语义交互服务提供者预定义 的功能,导致双方耦合过紧:对开发者来说,不能随时按照自己的需求扩充 语义交互功能,失去了灵活自主性。对语义交互服务的提供者来说,又需要 过多地涉入具体领域的细节,形成不必要的成本负担;3)不能很好地支持 带上下文的交互,或者虽能部分支持但暴露太多细节给开发者,导致开发者 必须面对复杂的配置过程;4)理解不够精准、功能单一:采用面向模板的, 而不是面向语义的分析技术,只能支持简单的语句,不能支持复杂语句;只 能支持单向的操控类任务,不能很好地支持带返回数据的查询类要求,自然 也就无法支持按需计算;5)也没有实现语义标准化,因此不利于开发者提 供语义交互功能。所谓语义标准化是指语义分析引擎应该为形式不同、含义 相同的自然语言表达返回相同的结果;

这些问题严重制约了开发者在自己的应用中植入语义交互服务。

发明内容

本发明实施例的目的在于提出一种实现开放式语义交互服务的方法及 系统,以有效解决现有技术存在的配置复杂、接口封闭、使用门槛过高、交 互能力不足、理解不够精准等问题。其主要特点有:1)提供简单易用的开 放的配置工具,允许开发者根据自己的需要自行定义语义事件,并允许开发 者根据语义事件提供相应的自然语言表达,从而有效地解决了语义标准化的 问题;2)通过语言知识共享支持技术自动识别与开发者提供的自然语言表 达语义等价的其他表达,进而自动扩充语义接口,达到举一反三的效果,不 仅能极大地减轻开发者的配置工作负担,而且能更好地适应用户的不同表达 习惯与风格;3)在此基础上,由系统自动形成语义接口、语义规则,使开 发者无需面对复杂的语言知识和繁杂的脚本;4)在语义分析过程中,创 造性地将语义事件参数实现为语义角色,此举不仅实现了自然语言表达与语 义事件的无缝耦合,还可几乎无限地扩充语义计算能力;5)对于复杂的自 然语言表达,将触发若干个(而不是一个)查询类语义事件,并在这些语义 事件的基础上实现按需计算,从而精准地实现对复杂表达的理解。

为达此目的,本发明实施例采用以下技术方案:

一种实现开放式语义交互服务的方法,所述方法包括:

根据自动生成的语义规则对宿主应用的用户以自然语言表达的问句或 指令进行语义分析或自动问答分析,触发一个或一组语义事件;

根据触发的语义事件进行按需计算,执行符合用户的意图及要求的任务, 并为所述用户呈现相关结果;

其中,所述宿主应用是指集成语义交互服务的第三方应用。

优选地,所述根据自动生成的语义规则对宿主应用的用户以自然语言表 达的问句或指令进行语义分析或自动问答分析,触发一个或一组语义事件之 前,还包括:

预先定义语义事件和语义接口;

根据预先定义的语义事件和语义接口自动生成语义规则。

优选地,所述预先定义语义事件包括:

预先定义语义事件的名称和语义事件参数;

所述方法还包括:

定义语义事件参数的名称、输入输出类型、参数值类型和集合特征。

优选地,所述语义事件包括系统预定义事件、开发者自定义事件;

所述系统预定义事件包括上下文操作类事件、交互类事件和自动问答类 事件;

其中,所述上下文操作类事件由语义分析引擎处理,用于根据用户提供 的自然语言表达的语义对会话区进行操作;

所述交互类事件由语义驱动组件处理,用于跟终端用户进行交互;

所述自动问答类事件由语义驱动组件处理,用于实现自动问答类交互;

所述开发者自定义事件包括查询类事件、操控类事件。

优选地,所述定义语义接口包括:

输入与所述语义事件的语义相符的自然语言表达,并根据自然语言表达 定义语义槽,所述语义接口由所述语义槽组成。

优选地,所述自然语言表达是指所述用户输入的问句或指令,所述语义 槽是指所述自然语言表达中的实体和特定语义事件参数间的绑定关系,所述 语义事件参数相当于传统语言学上所称之语义角色。

优选地,所述自然语言表达中的实体是指自然语言表达中的某个片段及 其所属的本体节点;所述本体节点是指本体层次结构中的某个概念节点。

优选地,所述自动生成的语义规则,包括:

自动生成内部语义结构,并建立内部语义结构与特定语义事件之间的映 射关系形成的语义规则,所述语义规则用于理解自然语言表达,并据以触发 相应的语义事件;

其中,所述内部语义结构包括自然语言表达的形式化特征,以及基于这 些形式化特征所蕴含的概念化特征,所述概念化特征包括语义槽特征以及语 义槽之间的相互关系特征。

优选地,所述根据自动生成的语义规则对宿主应用的用户以自然语言表 达的问句或指令进行语义分析或自动问答分析,触发一个或一组语义事件之 前,还包括:

为自动问答事件添加自动问答索引;

所述为自动问答事件添加自动问答索引,包括:

若当前语义接口关联的语义事件是一个自动问答类事件,则自动将相关 的自然语言表达以及对应的答案添加到自动问答索引中。

优选地,所述对宿主应用的用户以自然语言表达的问句或指令进行自动 问答分析,触发一个或一组语义事件之前,还包括:

在宿主应用中添加语义事件响应代码;

所述在宿主应用中添加语义事件响应代码,包括:

为调用特定功能或服务而定义的针对特定语义事件的响应代码,所述语 义事件响应代码中还包括适配代码,适配代码用于将语义事件中的输入参数 转换成特定的接口可以接受的形式。

优选地,所述根据自动生成的语义规则对宿主应用的用户以自然语言表 达的问句或指令进行语义分析,包括:

根据所述语义规则完成对自然语言表达的理解,并完成缺省恢复、倒装 恢复、等价识别、歧义消解、指代消解等,以获得正确的用户的意图和要求, 并触发符合一个或一组特定的语义事件。

优选地,所述自动问答分析,包括:

根据所述用户输入的自然语言表达,从自动问答索引中查找相关度超过 阀值的问答项;

若查找到相关度超过阈值的问答项,则根据所述问答项触发生成一个自 动问答类语义事件。

优选地,所述根据触发的语义事件进行按需计算,包括:

根据语义事件之间的输入输出关系将多个语义事件耦合起来,形成一个 偏序有向拓扑,拓扑中的节点对应一个语义事件。遍历所述有向拓扑,完成 对其中所有节点的计算,获取符合用户意图和要求的结果。

一种实现开放式语义交互服务的系统,所述系统包括:

语义分析引擎,用于根据自动生成的语义规则对宿主应用的用户以自然 语言表达的问句或指令进行语义分析,触发一个或一组语义事件,这些事件 包括上下文操作类事件、交互类事件、操控类事件和查询类事件等;

自动问答引擎,用于对宿主应用的用户以自然语言表达的问句或指令进 行自动问答分析,如果存在相关度达到阀值的答案,则触发自动问答类事件;

按需计算引擎,用于根据语义分析引擎触发的查询类事件进行按需计算;

语义驱动组件,驻留于宿主应用,用于向语义分析引擎、自动问答引擎 转发用户的自然语言表达,负责为宿主应用的用户呈现查询类事件的计算结 果,响应交互类事件、自动问答类事件,并向宿主应用转发操控类事件。

优选地,所述系统还包括:

语义接口配置模块,用于定义语义事件和语义接口;

训练模块,用于利用已知的语言知识自动识别与已知表达语义等价的其 他表达,并据以扩充语义接口;用于根据语义接口生成语义规则;若是自动 问答类,则提取自然语言表达和答案的特征,添加到文本特征索引中。

优选地,所述语义接口配置用于第三方应用开发者定义并管理语义接口, 以及管理本体和自定义语义事件。

优选地,所述训练模块用于根据语义接口形成语义规则,所述训练模块 还包括为使用自动问答类事件的语义接口添加自动问答索引。

优选地,所述语义分析引擎,用于:

根据语义规则对来自用户的自然语言表达进行处理,并根据处理结果触 发语义事件;

如果触发的是上下文操作类事件,则由语义分析引擎直接处理;

如果触发的是交互类事件、操控类事件,则转由语义驱动组件进一步处 理。

如果触发的是查询类事件,则转由按需计算引擎进一步处理。

优选地,所述自动问答引擎用于从自动问答库中查找与用户输入的自然 语言表达相关度超过阀值的问答项,若存在超过阈值的问答项,则触发自动 问答类事件。

优选地,所述按需计算引擎用于实现按需计算,还包括对语义分析引擎 和自动问答引擎触发的语义事件进行仲裁,决定是响应语义分析引擎触发的 事件,还是响应自动问答引擎触发的事件。

优选地,所述语义驱动组件用于提供一个语义驱动界面,以便接受终端 用户的自然语言表达,转发给语义分析引擎和自动问答引擎;

还用于接受按需计算引擎返回的结果,将其呈现给终端用户;

还用于响应交互类事件,发起与终端用户的交互,要求终端用户提供补 充或做出澄清,并将交互内容转发给语义分析引擎以便进一步处理。

还用于响应自动问答类事件,将答案呈现给终端用户。

还用于根据操控类事件调用相应的语义事件响应代码,从而转由宿主应 用处理操控类事件。

本发明实施例根据自动生成的语义规则对宿主应用的用户以自然语言 表达的问句或指令进行语义分析或自动问答分析,触发一个或一组语义事 件;根据触发的语义事件调用相应的响应代码,执行符合用户意图及要求的 任务,并为用户呈现相关结果,从而实现操控、查询、自动问答、上下文交 互和按需计算等语义交互功能;还为开发者提供简单易懂、好用易用的语义 接口配置工具,允许用户独立自主地定义语义事件、并扩充语义接口。有效 地解决了现有技术存在的配置复杂、接口封闭、使用门槛过高、交互能力不 足、理解不够精准等问题,从而帮助众多的开发者以低成本、低门槛的方式 更加灵活自主地在自己的应用中集成更丰富、更精准的语义交互功能。

附图说明

图1是本发明实施例实现开放式语义交互服务的方法第一实施例的流程 示意图;

图2是本发明实施例实现开放式语义交互服务的方法第二实施例的流程 示意图;

图3是本发明实施例实现开放式语义交互服务的方法第三实施例的流程 示意图;

图4是本发明实施例实现开放式语义交互服务的方法第四实施例的流程 示意图;

图5是本发明实施例实现开放式语义交互服务的系统的功能模块示意 图;

图6是本发明实施例实现开放式语义交互服务的系统的功能模块示意 图;

图7是本发明实施例实现开放式语义交互服务的系统的功能模块示意 图;

图8是本发明实施例第三方应用开发者在其应用中嵌入语义驱动组件的 原理示意图;

图9是本发明实施例终端用户的自然语言表达触发一个操控类事件的原 理示意图;

图10是本发明实施例与终端用户进行交互再触操控类事件的原理示意 图;

图11是本发明实施例执行按需计算的原理示意图;

图12是本发明实施例触发自动问答类事件的原理示意图;

图13是本发明实施例触发自动问答类事件的原理示意图。

具体实施方式

下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解 的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明 实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本 发明实施例相关的部分而非全部结构。

实施例一

参考图1,图1是本发明实施例实现开放式语义交互服务的方法第一实 施例的流程示意图。

在实施例一中,所述实现开放式语义交互服务的方法包括:

步骤101,根据自动生成的语义规则对宿主应用的用户以自然语言表达 的问句或指令进行语义分析或自动问答分析,触发一个或一组语义事件;

其中,所述自然语言表达是指所述用户输入的问句或指令,所述语义槽 是指所述自然语言表达中的实体和特定语义事件参数间的绑定关系,所述语 义事件参数相当于传统语言学上所称之语义角色。

所述自然语言表达中的实体是指自然语言表达中的某个片段及其所属 的本体节点;所述本体节点是指本体层次结构中的某个概念节点。

具体的,自然语言表达中的实体可以是显式实体,也可以是隐含实体。 所谓显式实体是指,该实体对应自然语言表达中的某个特定片段。所谓隐含 实体是指,该实体并不对应自然语言表达中的某个特定片段,而是作为当前 自然语言表达的整体含义存在的。相应地,显式语义槽是指存在与之对应的 显式实体的语义槽,简称显式槽。隐含语义槽是指存在与之对应的隐含实体 的语义槽,简称隐含槽,亦可称为缺省槽。缺省槽的情况很常见,例如“我 肚子饿了”,其隐含的含义是“附近有哪些饭馆”,在定义自动问答类语义接 口时,也需要用到隐含实体和隐含语义槽。

优选地,所述自动生成的语义规则,包括:

自动生成内部语义结构,并建立内部语义结构与特定语义事件之间的映 射关系形成的语义规则,所述语义规则用于理解自然语言表达,并据以触发 相应的语义事件;

其中,所述内部语义结构包括自然语言表达的形式化特征,以及基于这 些形式化特征所蕴含的概念化特征,所述概念化特征包括语义槽特征以及语 义槽之间的相互关系特征。

具体的,语义事件相当于应用程序中特定的功能接口或者服务接口。语 义事件名称相当于接口名称,语义事件参数类似于功能接口或服务接口的参 数,通过语义槽可以从自然语言表达中获取语义事件的参数。

在定义语义事件时,还需要定义语义事件参数的名称、输入输出类型、 参数值类型和集合特征等。参数名称可以参考与之相应的功能接口或服务接 口中的参数命名,也可以根据参数间的相互关系来命名,这意味着参数名称 也可起到语义角色的作用。输入输出类型用来描述参数是作为语义事件的输 入参数,还是输出参数。参数类型是指参数值的类型,典型的参数值类型如 整型、浮点、字符串、时间、百分比等,如果参数值类型是时间,需要附加 定义时间格式,例如"%yy-%mm-%dd";如果参数值类型是浮点数,还需要 指出其精度;如果是整型或浮点型,还需附加可接受的单位列表。集合特征 用于定义参数值是标量、矢量还是表格。如果是参数值类型是表格,还需要 指定数据集的构成,诸如第一个字段叫什么名字,什么类型,第二个字段叫 什么名字,是什么类型等。例如一个查询操作,其输入参数都是标量的,而 输出参数则通常是表格型的,根据输出参数的集合特征,系统就可以正确地 对输出结果进行必要的处理。

在定义语义接口时,还可以为构成语义槽的语义事件参数指定一个常量 值。例如,在定义自动问答时,需要将自动问答事件的content参数设定为 代表问题答案的文本,该文本典型地为嵌入可执行脚本的一个xml文本。

优选地,所述根据自动生成的语义规则对宿主应用的用户以自然语言表 达的问句或指令进行语义分析,包括:

根据所述语义规则完成对自然语言表达的理解,并完成缺省恢复、倒装 恢复、等价识别、歧义消解、指代消解等,以获得正确的用户的意图和要求, 并触发符合一个或一组特定的语义事件。

优选地,所述自动问答分析,包括:

根据所述用户输入的自然语言表达,从自动问答索引中查找相关度超过 阀值的问答项;

若查找到相关度超过阈值的问答项,则根据所述问答项触发生成一个自 动问答类语义事件。

步骤102,根据触发的语义事件进行按需计算,执行符合用户的意图及 要求的任务,并向用户返回最终结果。

优选地,所述根据触发的语义事件进行按需计算,包括:

根据语义事件之间的输入输出关系将一个或多个查询类事件耦合起来, 形成一个偏序有向拓扑,遍历所述有向拓扑,完成对其中所有节点的计算, 获取符合用户意图和要求的结果。

本发明实施例根据自动生成的语义规则对宿主应用的用户以自然语言 表达的问句或指令进行语义分析或自动问答分析,触发一个或一组语义事 件;根据触发的语义事件调用相应的响应代码,执行符合用户意图及要求的 任务,并为用户呈现相关结果,从而实现操控、查询、自动问答、上下文交 互和按需计算等语义交互功能;还为开发者提供简单易懂、好用易用的语义 接口配置工具,允许用户独立自主地定义语义事件、并扩充语义接口。有效 地解决了现有技术存在的配置复杂、接口封闭、使用门槛过高、交互能力不 足、理解不够精准等问题,从而帮助众多的开发者以低成本、低门槛的方式 更加灵活自主地在自己的应用中集成更丰富、更精准的语义交互功能。

实施例二

参考图2,图2是本发明实施例实现开放式语义交互服务的方法第二实 施例的流程示意图。

在实施例一的基础上,所述根据自动生成的语义规则对宿主应用的用户 以自然语言表达的问句或指令进行语义分析或自动问答分析,触发一个或一 组语义事件之前,还包括:

步骤103,预先定义语义事件和语义接口;

优选地,所述预先定义语义事件包括:

预先定义语义事件的名称和语义事件参数;

所述方法还包括:

定义语义事件参数的名称、输入输出类型、参数值类型和集合特征。

优选地,所述定义语义接口包括:

输入与所述语义事件的语义相符的自然语言表达,并根据自然语言表达 定义语义槽,所述语义接口由所述语义槽组成。

其中,语义接口是由语义槽构成的,用于描述每个自然语言表达与对应 的语义事件的映射绑定关系。为了定义语义槽,需要指定特定自然语言表达 中的某个片段,然后定义这个片段所属的本体节点,从而形成实体,然后定 义与实体对应的语义事件参数,由此就形成了语义槽。也就是说,语义槽反 映了特定自然语言表达中的某个片段、这个片段所属的本体节点、以及与之 对应的语义事件参数三者的绑定关系。语义事件参数就相当于传统语言学中 所称的语义角色。

步骤104,根据预先定义的语义事件和语义接口自动生成语义规则。

优选地,利用已知的语言知识自动识别与已知表达语义等价的其他表 达,并据以扩充语义接口。

优选地,所述语义事件包括系统预定义事件、开发者自定义事件,所述 系统预定义事件包括上下文操作类事件、交互类事件和自动问答类事件;

其中,所述上下文操作类事件由语义分析引擎处理,用于根据用户提供 的自然语言表达的语义对会话区进行操作;

所述交互类事件由语义驱动组件处理,用于跟用户进行交互;

所述自动问答类事件由语义驱动组件处理,用于实现自动问答类交互;

所述开发者自定义事件包括操控类事件、查询类事件。

实施例三

参考图3,图3是本发明实施例实现开放式语义交互服务的方法第三实 施例的流程示意图。

在实施例一的基础上,所述根据自动生成的语义规则对宿主应用的用户 以自然语言表达的问句或指令进行语义分析或自动问答分析,触发一个或一 组语义事件之前,还包括:

步骤105,为自动问答事件添加自动问答索引;

所述为自动问答事件添加自动问答索引,包括:

若当前语义接口关联的语义事件是一个自动问答类事件,则自动将相关 的自然语言表达以及对应的答案添加到自动问答索引中。

具体的,在完成语义接口的定义之后,开发者还需要在自己的应用(即 宿主应用)中嵌入开放式语义交互服务,从而在自己的应用中为终端用户提 供语义交互体验。在本实施方式中,开发者需要先从网站下载语义驱动组件; 然后再下载语义事件响应代码框架;然后利用现有的应用功能接口或服务接 口实现语义事件响应代码;最后将语义驱动组件、语义事件响应代码与宿主 应用代码重新联合编译,经过测试后就可以正式发布嵌入语义驱动组件的应 用。

实施例四

参考图4,图4是本发明实施例实现开放式语义交互服务的方法第四实 施例的流程示意图。

在实施例一的基础上,所述根据自动生成的语义规则对宿主应用的用户 以自然语言表达的问句或指令进行语义分析或自动问答分析,触发一个或一 组语义事件之前,还包括:

步骤106,在宿主应用中添加语义事件响应代码;

所述在宿主应用中添加语义事件响应代码,包括:

为调用特定功能或服务而定义的针对特定语义事件的响应代码,所述语 义事件响应代码中还包括适配代码,适配代码用于将语义事件中的输入参数 转换成特定的接口可以接受的形式。

实施例五

参考图5,图5是本发明实施例实现开放式语义交互服务的系统的功能 模块示意图。

在实施例五中,所述系统包括:

语义分析引擎501,用于根据自动生成的语义规则对宿主应用的用户以 自然语言表达的问句或指令进行语义分析,触发一个或一组语义事件;

优选地,所述语义分析引擎501,用于:

根据语义规则对来自用户的自然语言表达进行处理,并根据处理结果触 发语义事件;

如果触发的是上下文操作类事件,则由语义分析引擎直接响应;

如果触发的是交互类事件、操控类事件,则转由语义驱动组件处理

如果是查询类事件,则由所述按需计算引擎处理,按需计算的结果转由 语义驱动组建显示。

其中,所述自然语言表达是指所述用户输入的问句或指令,所述语义槽 是指所述自然语言表达中的实体和特定语义事件参数间的绑定关系,所述语 义事件参数相当于传统语言学上所称之语义角色。

所述自然语言表达中的实体是指自然语言表达中的某个片段及其所属 的本体节点;所述本体节点是指本体层次结构中的某个概念节点。

具体的,自然语言表达中的实体可以是显式实体,也可以是隐含实体。 所谓显式实体是指,该实体对应自然语言表达中的某个特定片段。所谓隐含 实体是指,该实体并不对应自然语言表达中的某个特定片段,而是作为当前 自然语言表达的整体含义存在的。相应地,显式语义槽是指存在与之对应的 显式实体的语义槽,简称显式槽。隐含语义槽是指存在与之对应的隐含实体 的语义槽,简称隐含槽,亦可称为缺省槽。缺省槽的情况很常见,例如“我 肚子饿了”,其隐含的含义是“附近有哪些饭馆”,在定义自动问答类语义接 口时,也需要用到隐含实体和隐含语义槽。

具体的,语义事件相当于应用程序中的一个终端用户可使用的特定的功 能接口或者服务接口。语义事件名称相当于接口名称,语义事件参数类似于 功能接口或服务接口的参数,通过语义槽可以从自然语言表达中获取语义事 件的参数。

在定义语义事件时,还需要定义语义事件参数的名称、输入输出类型、 参数值类型和集合特征等。参数名称可以参考与之相应的功能接口或服务接 口中的参数命名,也可以根据参数间的相互关系来命名,这意味着参数名称 也可起到语义角色的作用。输入输出类型用来描述参数是作为语义事件的输 入参数,还是输出参数。参数类型是指参数值的类型,典型的参数值类型如 整型、浮点、字符串、时间、百分比等,如果参数值类型是时间,需要附加 定义时间格式,例如"%yy-%mm-%dd";如果参数值类型是浮点数,还需要 指出其精度;如果是整型或浮点型,还需附加可接受的单位列表。集合特征 用于定义参数值是标量、矢量还是表格。如果是参数值类型是表格,还需要 指定数据集的构成,诸如第一个字段叫什么名字,什么类型,第二个字段叫 什么名字,是什么类型等。例如一个查询操作,其输入参数都是标量的,而 输出参数则通常是表格型的,根据输出参数的集合特征,系统就可以正确地 对输出结果进行必要的处理。

在定义语义接口时,还可以为构成语义槽的语义事件参数指定一个常量 值。例如,在定义自动问答时,需要将自动问答事件的content参数设定为 代表问题答案的文本,该文本典型地为带嵌入代码的一个xml文本。

自动问答引擎502,用于根据自动生成的语义规则对宿主应用的用户以 自然语言表达的问句或指令进行自动问答分析,从自动问答库中找出相关度 最高的答案;

优选地,所述自动问答引擎502,用于从自动问答库中查找与用户输入 的自然语言表达相关度超过阀值的问答项,若存在超过阈值的问答项,则触 发自动问答类事件。

按需计算引擎503,用于根据触发的语义事件进行按需计算;

语义驱动组件504,用于执行符合用户的意图及要求的的任务,并向用 户返回最终结果。

本发明实施例根据自动生成的语义规则对宿主应用的用户以自然语言 表达的问句或指令进行语义分析或自动问答分析,触发一个或一组语义事 件;根据触发的语义事件调用相应的响应代码,执行符合用户意图及要求的 任务,并为用户呈现相关结果,从而实现操控、查询、自动问答、上下文交 互和按需计算等语义交互功能;还为开发者提供简单易懂、好用易用的语义 接口配置工具,允许用户独立自主地定义语义事件、并扩充语义接口。有效 地解决了现有技术存在的配置复杂、接口封闭、使用门槛过高、交互能力不 足、理解不够精准等问题,从而帮助众多的开发者以低成本、低门槛的方式 更加灵活自主地在自己的应用中集成更丰富、更精准的语义交互功能。

实施例六

参考图6,图6是本发明实施例实现开放式语义交互服务的系统的功能 模块示意图。

在实施例五的基础上,所述系统还包括:

语义接口配置模块505,用于定义语义事件和语义接口;

其中,所述语义接口配置模块505用于宿主应用开发者定义并管理语义 接口,以及管理本体和自定义语义事件。

训练模块506,用于利用已知的语言知识自动识别与已知表达语义等价 的其他表达,并据以扩充语义接口;用于根据语义接口生成语义规则;若是 自动问答类,则提取自然语言表达和答案的特征,添加到自动问答索引中。

其中,所述训练模块506用于根据语义接口形成语义规则,所述训练模 块506还包括为使用自动问答类事件的语义接口添加自动问答索引。

具体的,在完成语义接口的定义之后,开发者还需要在自己的应用(即 宿主应用)中嵌入语义驱动组件504,以便在自己的应用中直接为终端用户 提供语义交互体验。在本实施方式中,开发者需要先从网站下载语义驱动组 件;然后再下载语义事件响应代码框架;然后利用现有的应用功能接口或服 务接口实现语义事件响应代码;最后将语义驱动组件、语义事件响应代码与 宿主应用代码重新联合编译,经过测试后就可以正式发布嵌入语义驱动组件 的应用。

所述语义驱动组件用于提供一个语义驱动界面,以便接受终端用户的自 然语言表达,转发给语义分析引擎和自动问答引擎;

还用于接受按需计算引擎返回的结果,将其呈现给终端用户;

还用于响应交互类事件,发起与终端用户的交互,要求终端用户提供补 充或做出澄清,并将交互内容转发给语义分析引擎以便进一步处理。

还用于响应自动问答类事件,将答案呈现给终端用户。

还用于根据操控类事件调用相应的语义事件响应代码,从而转由宿主应 用处理操控类事件。

实施例七

参考图7,图7是本发明实施例实现开放式语义交互服务的系统的功能 模块示意图。

在图7中,为了在自己的应用中为终端用户提供语义交互服务,开发者 需要首先利用语义接口配置模块701定义语义接口。在本实施方式中,开发 者首先要进入网站700上的语义接口配置界面,选定或创建语义事件;然后 分别定义若干个终端用户可能使用的与所选定的语义事件语义相符的自然 语言表达;还需要对每个自然语言表达定义语义槽,形成语义接口;最后提 交语义接口,由训练模块703根据提交的语义接口生成对应的语义规则。

语义接口是由语义槽构成的,用于描述每个自然语言表达与对应的语义 事件的映射绑定关系。为了定义语义槽,需要指定自然语言表达中的某个片 段,然后定义这个片段所属的本体节点,从而形成实体,然后定义与实体对 应的语义事件参数,就可以得到语义槽了。也就是说,语义槽包括自然语言 表达中的某个片段、这个片段所属的本体节点、以及对之对应的语义参数三 者的绑定关系。

自然语言表达中的实体可以是显式实体,也可以是隐含实体。所谓显式 实体是指,该实体对应自然语言表达中的某个特定片段。所谓隐含实体是指, 该实体并不对应自然语言表达中的某个特定片段,而是作为当前自然语言表 达的整体含义存在的。相应地,显式语义槽是指存在与之对应的显式实体的 语义槽,简称显式槽。隐含语义槽是指存在与之对应的隐含实体的语义槽, 简称隐含槽,亦可称为缺省槽。缺省槽的情况很常见,例如“我肚子饿了”, 其隐含的含义是“附近有哪些饭馆”,在定义自动问答类语义接口时,也需 要用到隐含实体和隐含语义槽。

语义事件相当于应用程序中的一个终端用户可使用的特定的功能接口 或者服务接口。语义事件名称相当于接口名称,语义事件参数类似于功能接 口或服务接口的参数,通过语义槽可以从自然语言表达中获取语义事件的参 数。

在定义语义事件时,还需要定义语义事件参数的名称、输入输出类型、 参数值类型和集合特征等。参数名称可以参考与之相应的功能接口或服务接 口中的参数命名,也可以根据参数间的相互关系来命名,这意味着参数名称 也可起到语义角色的作用。输入输出类型用来描述参数是作为语义事件的输 入参数,还是输出参数。参数类型是指参数值的类型,典型的参数值类型如 整型、浮点、字符串、时间、百分比等,如果参数值类型是时间,需要附加 定义时间格式,例如"%yy-%mm-%dd";如果参数值类型是浮点数,还需要 指出其精度;如果是整型或浮点型,还需附加可接受的单位列表。集合特征 用于定义参数值是标量、矢量还是表格。如果是参数值类型是表格,还需要 指定数据集的构成,诸如第一个字段叫什么名字,什么类型,第二个字段叫 什么名字,是什么类型等。例如一个查询操作,其输入参数都是标量的,而 输出参数则通常是表格型的,根据输出参数的集合特征,系统就可以正确地 对输出结果进行必要的处理。

在定义语义接口时,还可以为构成语义槽的语义事件参数指定一个常量 值。例如,在定义自动问答时,需要将自动问答事件的content参数设定为 代表问题答案的文本,该文本典型地为嵌入可执行脚本的一个xml文本。

图8是本发明实施例第三方应用开发者在其应用中嵌入语义驱动组件的 原理示意图。在完成语义接口的定义之后,开发者还需要在自己的应用(即 宿主应用)中嵌入语义驱动组件,以便自己的应用中直接为终端用户提供语 义交互体验。在本实施方式中,开发者需要先从网站700下载语义驱动组件; 然后再下载语义事件响应代码框架;然后利用现有的应用功能接口或服务接 口实现语义事件响应代码;最后将语义驱动组件、语义事件响应代码与宿主 应用代码重新联合编译,经过测试后就可以正式发布嵌入语义驱动组件的应 用。

图9是本发明实施例终端用户的自然语言表达触发一个操控类事件的原 理示意图。在本实施方式中,首先用户从宿主应用中转到语义驱动组件710 提供的语义驱动界面,通过语音或键盘输入“有没有认知心理学方面的图 书”;然后语义驱动组710将这个自然语言表达通过网关709转发给语义分 析引擎707和自动问答引擎706;语义分析引擎707根据语义规则库704中 的语义规则触发一个操控类事件,形如“的语义规则触发一个操控类事件, 形如“驱动认知心理学")心,转发给按需计算引擎708;自动问答引擎706 如果发现相关度超过阀值的问答项,也触发一个自动问答类事件,形如“果 发现相关度超过阀值的问答项,也触发一个自动问答类事,该事件也将被转 发给按需计算引擎708;按需计算引擎708收到以上两个事件后,经过仲裁, 决定响应语义分析引擎触发的操控类事件;因为只有一个事件,所以按需计 算引擎708直接将该事件通过网关709转发给嵌入在第三方应用中的语义驱 动组件710;语义驱动组件710收到事件“到事件“组件三方应用中的语义 驱动响应语义认知心理学")心后,调用对应的语义事件响应代码711,在本 实施方式中,执行结果是打开关于“认知心理学”图书列表界面。

在实际运行过程中,如果用户输入的是复杂表达,则会触发多个查询类 事件,这些事件将由按需计算引擎根据其输入输出耦合关系生成按需计算拓 扑,并完成对这个拓扑结构的遍历计算之后,才会将最终结果转发给语义驱 动组件710,由该组件呈现给终端用户。

作为一种实施方式,如果按需计算拓扑中某个节点对应的语义事件是一 个带输出参数的操控类事件,则在计算这个节点时,按需计算引擎708还会 通知语义驱动组件710通过语义事件响应代码711激活相应的界面会话过 程,引导终端用户提供相关信息,并且以这个信息为该事件的输出,然后据 以继续完成后续的按需计算。

由按需计算引擎处理的语义事件,必须事先在按需计算引擎中注册,以 便按需计算引擎能够调用正确的语义事件响应代码。

图10是本发明实施例与终端用户进行交互再触操控类事件的原理示意 图。在本实施方式中,用户通过语义驱动组件710提供的语义驱动界面输入 “买入200股A股中国人寿”;然后语义驱动组件710将这个自然语言表达 通过网关709转发给语义分析引擎707;语义分析引擎707利用语义规则库 704分析这个输入之后,触发一个要求用户补充输入买入价位的交互类事件, 转发给按需计算引擎708;因为这是一个交互类事件,因此按需计算引擎708 直接将该事件通过网关709转发给语义驱动组件710,语义驱动组件710将 直接响应这个事件,在语义驱动界面上显示“请输入买入价位”;用户输入 买入价位“用户元”后,语义驱动组件710将用户输入通过网关709再提交 给语义分析引擎707;语义分析引擎707根据上下文和语义规则库704触发 一个操控类事件“发一个操控类事件“库输入买入价位“中国人寿",market="A 股",price="39元",num="200股"),这个事件经由按需计算引擎708、网关 709,最后由语义驱动组件710通过语义事件响应代码711来响应。

这样的机制使得是否需要与终端用户交互的机制完全由系统来决定,不 需要开发者进行额外的设置。

图11是本发明实施例执行按需计算的原理示意图。在本实施方式中, 用户通过语义驱动组件710提供的语义驱动界面输入“小盘绩优股”;语义 分析引擎707收到语义驱动组件710通过网关709转发的请求后,利用语义 规则库704完成分析,在生成如图8所示的语义结构的基础上,触发两个查 询类事件。这两个事件分别为:

stock_query(output:股票,

stockType=”小盘”,

stockList:股票)

stock_query(output:股票,

stockType=”绩优”,

stockList:股票)

其中,"output:股票"表示这是一个输出参数,内容是关于股票的。按需 计算引擎708根据这个语义结构和这个语义结构触发的两个查询类事件生成 如图9所示的按需计算拓扑。遍历这个拓扑完成所有的计算,就可以得到最 终的结果:符合“小盘股中的绩优股”的含义的结果。在许多其他技术中, 会采用“既是小盘股又是绩优股”的方式来解释并输出结果。显然本发明采 取的计算方式结果更加准确,也更符合逻辑。推而广之,在一般情况下,采 用按需计算架构,其结果比单纯基于模板的方式都要更加精准,并且更能够 在智能化的基础上自动地充分地发挥已有计算资源的价值以适应用户的不 同需求,这也是本发明的一个亮点。

最后按需计算引擎708将最终结果通过网关709转发给语义驱动组件 710,在语义驱动界面上呈现给终端用户。

图12是本发明实施例触发自动问答类事件的原理示意图。本发明的系 统的一个实施方式中执行按需计算的原理示意图。在本实施方式中,用户通 过语义驱动组件710提供的语义驱动界面输入“有哪些类型的图书”;这个 自然语言表达通过网关转发给语义分析引擎707和自动问答引擎706,在本 例中,语义分析引擎707没有触发任何事件,而自动问答引擎706则因为输 入的自然语言表达“有哪些类型的图书”与预先定义的问答项相关度超过阀 值而触发了一个自动问答事件,形如“预先定义的问答项相关度超过阀值而 触发了一个文艺、经管励志、音像、教育、科技、儿童、电子书……、经管, 这个事件经由按需计算引擎708、网关709转送到语义驱动组件710,语义 驱动组件710首先调用对应“先调用对应“组件计算引擎的事件响应程序对 content内容进行扫描处理,然后在语义驱动界面上显示扫描处理后的内容。

为了给自动问答类应用提供更加丰富灵活的界面控制效果,本发明的系 统允许在自动问答类事件的content参数值中嵌入上下文函数、链接,乃至 脚本等,所以需要先对content参数值进行扫描处理,然后才能予以显示。 此外,扫描处理的另一个重要目的是为了适配不同类型的终端屏幕。

应当理解,虽然本说明书只是描述了几个典型实施形式,但本领域技术 人员应将说明书作为一个整体,各实施例中的技术方案也可以适当组合形成 本领域技术人员可以理解的其他实施方式。

以上结合具体实施例描述了本发明实施例的技术原理。这些描述只是为 了解释本发明实施例的原理,而不能以任何方式解释为对本发明实施例保护 范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动 即可联想到本发明实施例的其它具体实施方式,这些方式都将落入本发明实 施例的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号