视频教程 > NLI管理系统

上下文中slot的指代功能

olami     2017-09-08 14:18


以下是视频内容文字版:

大家好,欢迎使用欧拉蜜人工智能开放平台。这节课的内容是上下文中的 slot 指代功能。

一、slot 指代

指代(指代词)是一种常见的语言现象,并且被广泛的使用在中文自然语言中。

例如:

【他】唱过什么歌

【那个人】有多高

【那个地方】有什么好玩的

但是这些句子独立出现时语义并不明确,必须通过上下文理解来确认目的与消除歧义。

例如:

上文:【下周一】是几号?

下文:【那天】的天气

透过上下文对应,我们便能理解【那天】所指的就是【下周一】。NLI提供的三种slot类型ext,internal,datetime均可以实现指代功能。

二、slot 指代撰写规则

步骤 1:

在添加或编辑 ext 或 internal 类型的 slot 时,设置其 “引用类别”。

除了系统提供的引用类别菜单选项之外,开发者也可以自定义引用类别(直接输入)。

注:datetime 类型的 slot 不需要额外指定,系统默认设置它的引用类别为 “时间”。

步骤 2:

在需要使用指代处理功能的情况时,在承接上下文处理的 “下文” grammar 语法描述句中引用 slot ,并指定 slot modifier 为 last,例如:

它<{country@=last}>的国歌是什么

datetime 类型 slot 可以忽略 last modifier 描述,列如:

<time>是几号

三、slot 指代处理示例

3.1 设置上下文grammar

本文使用一些示例,对 slot 指代的处理方式做更进一步的探讨。

步骤 1:设置 slot

分别定义 ext 和 datetime 类型的 slot 如下:

slot 名称:country

slot 类型:ext

引用类别:地点

 

slot 名称:time

slot 类型:datetime

步骤 2:设置上文 grammar

定义名称分别为 “previous_context1”,“previous_context2” 的 grammar,作为上下文之中 “上文” 的语法,并引用步骤 1 所设置的 slot,示例分别如下:

previous_context1:<country>的首都

previous_context2:<time>是几号

步骤 3:设置下文 grammar

定义名称分别为 “refer_to_previous_1”,“refer_to_previous_2” 的 grammar,作为上下文之中 “下文” 的语法,并引用步骤 1 所设置的 slot 来使用指代功能,示例分别如下:

refer_to_previous_1:它<{country@=last}>的国歌是什么

refer_to_previous_2:<time>的天气

注:datetime 类型 slot 可以忽略 last modifier 描述。

3.2 示例说明

以例句语料 “中国的首都” 为例,可以匹配 previous_context1 的 grammar,此时 NLI系统保存slot 的值为“中国”,以及它的引用类别信息“地点”。

当您以“它的国歌是什么”作为第二句的例句语料输入时,则能匹配 refer_to_previous_1 的 grammar,此时,因为名称为 “country” 的 slot 指定了 last modifier,系统便能根据上文所保存的 slot 的引用类别信息,将下文语料中的“它”,对应至上文语料中的“中国”,完成指代的处理。

** datetime 类型的 slot 处理更简单**,例如上文语料“今天是几号” 被 previous_context2 匹配后,NLI系统保存slot的值“今天”,以及它的引用类别信息“时间” 。当第二句 “那天的天气” 被 refer_to_previous_2 的 grammar 匹配后,系统会自行判断出“那天”是时间指代词,并从上文中取出“今天”,无需开发者指定 last modifier。

注意事项:

1、指代功能无需限定在同一个 slot 或者同一个模块内,NLI 系统寻找指代内容的依据是 slot 的引用类别要一致。

2、指代功能依赖于上下文,若上文中没有引用类别信息的 slot,而直接使用指代,则无意义。 

3、若无指定 ext 或 internal 类型的 slot 的引用类别,则不会保存 slot 信息,且不支持指代功能。

4、datetime 类型的 slot 默认即支持指代,无需特别指定 last modifier,且能够支持例如 “今天”、“6月1号” 等普遍说法,也能支持 “那天”、“那年8月” 等指代说法。

四、NLI 系统模块中上下文匹配规则

在 NLI 系统中,容许开发者自定义模块或者导入系统模块,这些模块中若定义了上下文,在使用过程中,会因为模块间 grammar 的耦合,造成输出下文与预期不符,所以 NLI 系统在模块之间制定了匹配规则。

1、模块间优先级规则

在模块配置中,系统容许开发者自定义模块之间的优先级,设置的参数越小,代表的优先级越高(NLI 模块:1~100,IDS 模块:1001~10000)。

2、权重比对规则

NLI 系统在对输入的语料进行 grammar 匹配时,会优先选取匹配权重(weight)高的结果,详细计算规则请参阅:grammar 的匹配结果与权重关系。

3、全匹配规则

所谓的全匹配是指 grammar 能够完全匹配语料,当 grammar 中存在 ext 类型 slot 或者 any 规则 或者 skipper 规则 时,则不满足全匹配。

NLI 系统在上述三个规则之间的优先级关系如下:

全匹配 > 模块之间优先级 > 权重值

NLI系统对于开发者选中的所有模块中能匹配上语料的 grammar,优先挑选满足全匹配规则的grammar,再根据自定义的模块优先级进行筛选,最后根据 grammar 的匹配权重值来评判,如果上述流程走完依然不能确定唯一的grammar,此时系统会根据默认规则输出。

例如:

情况一:

模块1,优先级参数50,grammar1:我要吃(饭|菜)

模块2,优先级参数25,grammar2:我要<slot_ext>

 

情况二:

模块1,优先级参数50,grammar1:我要吃<any>

模块2,优先级参数25,grammar2:我要<slot_ext>

 

情况三:

模块1,优先级参数25,grammar1:我要吃<any>

模块2,优先级参数25,grammar2:我要<slot_ext>

根据“全匹配 > 模块之间优先级 > 权重值”的规则,当输入语料为“我要吃饭”时,情况一优先匹配 grammar 1,情况二优先匹配 grammar 2,情况三优先匹配grammar 1。


本节课到此结束,感谢您的观看。 

Copyright © 2017 威盛电子股份有限公司. All rights reserved   |   意见反馈