全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网

属性值类型

更新时间:2017-06-07 13:26:11

除了基本数据类型,如string,int,double之外,我们还定义了如下数据类型:

基本复合类型(BASIC)
日期时间(DATETIME)
地点(GEO_INFO)
数字(NUMBER)

此外,属性值都定义为数组形式,以支持多值的情况,下面具体描述我们定义的数据类型。

基本复合类型(BASIC)

基本复合类型是属性值中使用最多的一个类型,它包含raw和norm两个字段,raw代表用户query中的原始表述,norm表示归一化之后的标准表述。例如:电视频道领域中的tv_channel这个slot,如果用户说的是cctv1,则表示如下:

            "tv_channel":[
                {
                    "norm":"中央一套",
                    "raw":"cctv1"
                }
            ]

日期时间(DATETIME)

日期时间类型定义了一种结构,可以描述时间点和时间段两种类型,根据type字段的取值不同,type我们定义了5种类型,less,greater,equal,around,interval。

如下表:
type类型 时间点/时间区间 说明
less 时间区间 某个时间点之前
greater 时间区间 某个时间点之后
equal 时间点 某个时间点
around 时间区间 某个时间点左右
interval 时间区间 两个时间点之间

时间(DATETIME)的协议表示:

如下表:
字段名称 字段类型 字段说明
type string 上表中定义的5种取值
raw string query中的原始描述
norm array 归一化后的时间描述
error_code string 0正常, 1超长范围错误, 2未知错误
relative_mode string 1相对时间, 0绝对时间
注:norm是一个数组,其中的每个元素都是一个日期时间,
格式为:yyyy-mm-dd hh:mm:ss

在时间段的表述中,有早上,下午等时间段表述。我们定义这些时间段的始末时间为:

如下表:
时间段表述 开始 结束 时间点
早晨,早上,清晨 06:00 08:00 07:00
上午 08:00 12:00 10:00
中午、晌午 11:00 13:00 12:00
下午、午后 12:00 18:00 15:00
晚上,傍晚 18:00 24:00 21:00
凌晨 00:00 05:00 03:00
半夜、深夜、午夜 23:00 01:00 00:00

示例: query: 明天上午九点

      "time":[
                {
                    "error_code":"0",
                    "norm":[
                        "2015-12-02 09:00:00"
                    ],
                    "raw":"明天上午九点",
                    "relative_mode":"0",
                    "type":"equal"
                }
            ]

query: 明天上午八点之前

     "time":[
                {
                    "error_code":"0",
                    "norm":[
                        "2015-12-02 08:00:00"
                    ],
                    "raw":"明天上午八点之前",
                    "relative_mode":"0",
                    "type":"less"
                }
            ]

query: 明天下午五点之后

"time":[
                {
                    "error_code":"0",
                    "norm":[
                        "2015-12-02 17:00:00"
                    ],
                    "raw":"明天下午五点之后",
                    "relative_mode":"0",
                    "type":"greater"
                }
            ]

query:明天上午七点左右

 "time":[
                {
                    "error_code":"0",
                    "norm":[
                        "2015-12-02 07:00:00"
                    ],
                    "raw":"明天上午七点左右",
                    "relative_mode":"0",
                    "type":"around"
                }
            ]

query:明天上午

"time":[
                {
                    "error_code":"0",
                    "norm":[
                        "2015-12-02 08:00:00",
                        "2015-12-02 12:00:00"
                    ],
                    "raw":"明天上午",
                    "relative_mode":"0",
                    "type":"interval"
                }
            ]

地点(GEO_INFO)

GEO_INFO定义了一个表示地点的数据结构,地点协议的描述:

如下表:
字段名称 字段类型 字段说明
level_1 BASIC 国家
level_2 BASIC
level_3 BASIC
level_4 BASIC 区县
level_5 BASIC 乡镇村
location array POI点
备注:location中的shape表示该location是一个点还是一条线,tag表示该location具体的语义标签。

例如query:中国浙江省杭州市余杭区文三路附近的ktv,其中的地点geo结构为:

"geo":[
                {
                    "level_1":{
                        "norm":"中国",
                        "raw":"中国"
                    },
                    "level_2":{
                        "norm":"浙江省",
                        "raw":"浙江省"
                    },
                    "level_3":{
                        "norm":"杭州市",
                        "raw":"杭州市"
                    },
                    "level_4":{
                        "norm":"余杭区",
                        "raw":"余杭区"
                    },
                    "level_5":{
                        "norm":"",
                        "raw":""
                    },
                    "location":[
                        {
                            "norm":"文三路",
                            "raw":"文三路",
                            "shape":"line",
                            "tag":[
                                "道路"
                            ]
                        }
                    ]
                }
            ]

数字(NUMBER)

数字用途也很广泛,例如价格,折扣,距离等属性都可以用数字这个结构来表示。 数字的协议定义:

如下表:
字段名称 字段类型 字段说明
type string 取值范围同DATETIME的type
raw string query中的原始描述
norm array 归一化后的数字描述

示例: query: 1000元左右

"price":[
                {
                    "norm":[
                        1000
                    ],
                    "raw":"1000元左右",
                    "type":"around"
                }
            ]

query: 1000到2000元

"price":[
                {
                    "norm":[
                        1000,
                        2000
                    ],
                    "raw":"1000到2000元",
                    "type":"interval"
                }
            ]

query: 500米以内

"radius":[
                {
                    "norm":[
                        500
                    ],
                    "raw":"500米以内",
                    "type":"less"
                }
            ]
本文导读目录