Slot 是什么网课股票代码,slot 有哪五种类型?本节课将为网课股票代码你揭开谜底。
温馨提醒,视频要在wifi环境下观看哦。不方便看视频网课股票代码的童鞋,可以阅读下方文字版:
大家好,欢迎观看欧拉蜜人工智能开放平台系列教程。今天网课股票代码我们将为大家讲解slot的类型。
一、 slot 简介
1、 OSL 语法描述语言中的slot可理解为语义中的变量,用于传递、提取信息。
例:
语料:我想听周杰伦的歌。
Grammar:我想听<singer>的歌
在这条 grammar 中,<singer>是我们定义的一个 slot ,它可以匹配上以上语料,并提取歌手名“周杰伦”。
同样的,这条 grammar 还能够匹配以下语料:
我想听张学友的歌。
我想听王菲的歌。
……
这条 slot <singer> 能够提取语料当中歌手名的值,提取了这个重要信息,我们就知道接下来该为用户做些什么,比如播放周杰伦的歌,或播放张学友的歌。
2、 slot 的特性
(1) slot 具有 internal 、number 、float 、datetime 、ext 这5种类型。
(2) 可选择限制 slot 字符长度,即可被接受的最短字符数和最长字符数。
二、 slot 的命名规则
slot 名称必须以英文字母、数字、中文字符或下划线 _ 组成,但第一个字符不能是数字。
英文字母不区分大小写,但由于语义输出格式为小写,因此建议避免使用大写字母来替 slot 命名。
三、 slot 的类型
1、 internal
internal 类型的 slot 为自定义的字符串集合,通常用于描述可穷举的内容。例如:唐宋八大家,家用电器等。
使用方式:定义一个和 slot 同名的 rule,其所匹配到的词汇会直接赋值给这个 slot 。
例:
Slot:
<musictype>,类型internal
Rule:
<musictype>:摇滚|民族|流行|嘻哈
Grammar:
<grammar>:我喜欢<musictype>音乐
输入语料:我喜欢摇滚音乐
在这种情况下,<musictype> 这条 slot 就能够提取到“摇滚”这个音乐类型的值了。
2、 number
number 类型的 slot 能匹配各种整数的说法。
如“负三十五”、“贰佰”、“12345”、“一八五七” 分别提取“-35”、“200”、“12345”、“1857” 。
例:
Slot:
<股票代码>,类型number
Grammar:
<查股票代码>:<股票代码>是哪只股票的代码
输入语料:八三三零七三是哪只股票的代码
这时候,我们的 slot <股票代码>提取到的值即为“833073”。
3、 float
float 类型的 slot 能匹配各种浮点数和分数的说法,也可以匹配上整数。
如“五点八三”、“百分之85”、“20%” 等,分别提取“5.83”,“0.85”,“0.2”。
例:
Slot:
<风力大小>,类型float
Grammar:
<调节风力>:帮我把风力调到<风力大小>
输入语料:帮我把风力调到百分之十
那么,slot <风力大小>提取到的值即为“0.1”。
4、 datetime
datetime 类型的 slot 能匹配各种时间和日期的说法。
具有以下几种子类型:
? timepoint:匹配确切的时间点。 如“三点半”、“昨天下午”、“7月7日” 等。
? duration:匹配时间长度的说法。 如“25分钟”,“3天”,“1年”
? any:匹配任意时间说法。包括timepoint 和 duration 的集合,建议在使用无法确定需要使用的时间类型时使用。 如“每年春节”、“每天8点”等。
(1) timepoint →推荐值(time_recommend)
例:
语料:早上8点提醒我
<提醒我>:<time>[的时候]提醒我
在这个例子中,slot <time>提取到的值为“早上8点”,但是“早上”这个概念并不确定。
如,用户在7月7日所说的“早上8点”实际指的时间是7月7日早上8点,而7月8日所说的“早上8点”是指7月8日早上8点。虽然我们提取的信息完全相同(都是“早上8点”),但指代的时间却完全不同,该怎么解决这个问题呢?
欧拉蜜的解决方法是,除了提取描述时间的字符,我们还把这个时间用Json做了更标准化的描述。
对于具体时间点的 slot ,也就是 timepoint 类型的slot,欧拉蜜会给出一个推荐值(time_recommend)。
比如说“早上8点”这个值,欧拉蜜会自动将时间补全,默认为当天的早上8点网课股票代码;“中秋节”默认为今年中秋节;“8号”默认为今年当月8号。
我们将在Json数组里看到时间对应的具体时间起始点。
“早上8点”的 Json 描述如下:
"slot" : [{
"datetime" : {
"data" : {
"endtime" : 1490922000000.0,
"starttime" : 1490918400000.0
},
"type" : "time_recommend"
},
“name” : " time",
“ value ” : "今天8点"
}
]
如果今天是2017年7月8日,那么我们无论是输入“早上8点”,“7月8日早上8点”,还是“2017年7月8日早上8点”,我们在 Json 里看到的“endtime”及“starttime”都是一样的。
(2) duration,repeat → 给出语义的描述(time_semantic)
对于表示时间段,如“1小时”、“3天”这类 duration 时间,以及表示重复时间,如“每十天”、“每天6点”这类 repeat 时间,我们没有办法给出具体的时间点,那么 Json 会对这类时间做出一个语义描述。
例1:“三天”。我们将在 Json 中看到“day”:3 。
{
"datetime" :
{
"data" :
{
"sub_type" : "duration",
"time_struct" :
{
"Day" : 3
}
},
"type" : "time_semantic“
},
"name" : "testtime",
"value" : "三天“
}
例2:“每十天”。我们将在Json中看到具体时间结构(time_struct)。
"slot" : [{
"datetime" : {
"data" : {
"sub_type" : "repeat",
"time_struct" : {
"extend_info" : {},
"repeat_rule" : {
"IntervalUnit" : "Day",
"IntervalValue" : 10
}
}
},
"type" : "time_semantic"
},
"name" : "testtime",
"value" : "每十天"
}
]
5、ext
ext 类型的 slot 属于外部类型,其取值范围不是一个有限集合,无法预先定义其可能的内容,或者需要后续应用程序通过特殊方法验证其有效性,也就是一种无法穷举的任意组合。
例:
slot:
<name>,类型ext,minlenght:1, maxlength:4
grammar:
<call>:打电话给<name>
能够匹配上的语料:
打电话给小明
打电话给亲爱的
打电话给西门吹雪
……
不会匹配上的语料:
“打电话给移动查话费”
“打电话给女生聊什么”
“打电话给客户的开场白”
……
由于 ext slot 的内容没有限定,所以能够匹配上的范围很广,为了有效匹配语料,我们一般会对 ext slot 的字符进行限定。
上面的例子中,<name>这个 slot 主要用于提取人名,一个中文字为1个字符,那我们设定最小字符为1,最大字符为4,这样就不会匹配上无关语料了。
当然,除了定义字符的长短以外,开发者们还可以根据程序的需要来对提取的语料进行验证。
最后要提到的是,internal 和 external 这两种类型的 slot 可以设置“主类别”和“子类别”,通过这两个类别的设定可以实现上下文的引用功能。
具体的上下文引用功能,我们会在后面的课程中专门为大家讲解。
关于 slot 的介绍就到这里了,以上是这节课的全部内容,感谢您的观看。