编辑: 思念那么浓 | 2019-08-12 |
0 2014.7.3 目录
一、微信语义理解开放平台.1
1、概述.1
2、输入输出协议.1 2.1 语义应答协议.1 2.2 语义输入协议.2 2.3 示例说明.2
3、通用协议.3 3.1 时间相关协议(datetime)3 3.2 地点相关协议(location)5 3.3 数字相关协议(number)6
4、垂直服务协议.8 4.1 生活类.9 4.1.1 餐馆服务(restaurant)9 4.1.2 地图服务(map)11 4.1.3 周边服务(nearby)12 4.1.4 团购服务(coupon)14 4.2 旅行类.14 4.2.1 酒店服务(hotel)14 4.2.2 旅游服务(travel)15 4.2.3 航班服务(flight)16 4.2.4 火车服务(train)18 4.3 娱乐类.19 4.3.1 上映电影服务(movie)19 4.3.2 音乐服务(music)20 4.3.3 视频服务(video)20 4.3.4 小说服务(novel)21 4.4 工具类.22 4.4.1 天气服务(weather)22 4.4.2 股票服务(stock)23 4.4.3 提醒服务(remind)24 4.4.4 常用电话服务(telephone)25 4.5 知识类.26 4.5.1 菜谱服务(cookbook)26 4.5.2 百科服务(baike)26 4.5.3 资讯服务(news)27 4.6 其他类.28 4.6.1 电视节目预告(tv)28 4.6.2 通用指令(instruction)[beta]29 4.6.3 电视指令(tv_instruction)[beta]31 4.6.4 车载指令(car_instruction)[beta]33 4.6.5 应用服务(app)34 4.6.6 网址服务(website)35 4.6.7 网页搜索(search)35
5、示例说明.36
1
一、微信语义理解开放平台
1、概述 语义理解, 主要提供从用户自然语言输入到结构化解析的技术实现. 微信语义理解开放 平台是使用先进的自然语言处理技术给用户 (开发者和公众账号) 提供一站式的语义解析方 案. 微信语义理解开放平台覆盖了多个垂直领域的语义场景,接口调用(http 请求)简单方 便,用户无需掌握语义理解及相关技术,只需根据自己的产品特点,选择相应的服务即可搭 建一套智能语义服务.
2、输入输出协议 2.1 语义应答协议 字段名称 是否必须 字段类型 字段说明 errcode 是Int 用于标识用户请求后的状态 query 是String 用户的输入字符串 type 是String 服务的全局类别 id,详见
4 垂直服务协议定义 semantic 是Object 语义理解后的结构化标识,各个服务不同 result 否Array 部分类别的结果 answer 否String 部分类别的结果 html5 展示,目前不支持 text 否String 特殊回复说明 2.1.1 errcode 错误字段说明 errcode 错误字段说明
0 请求正常,有语义结果
7000000 请求正常,无语义结果
7000001 缺失请求参数
7000002 signature 参数无效
7000003 地理位置相关配置
1 无效
7000004 地理位置相关配置
2 无效
7000005 请求地理位置信息失败
7000006 地理位置结果解析失败
7000007 内部初始化失败
7000008 非法 appid(获取密钥失败)
7000009 请求语义服务失败
7000010 非法 post 请求
2 7000011 post 请求 json 字段无效
7000030 查询 query 太短
7000031 查询 query 太长
7000032 城市、经纬度信息缺失
7000033 query 请求语义处理失败
7000034 获取天气信息失败
7000035 获取股票信息失败
7000036 utf8 编码转换失败 2.2 语义输入协议 字段名称 是否必须 字段类型 字段说明 access_token 是String 根据 appid 和secret 获取到的 token,获取方法 请参考:获取 access_token 方法 query 是String 输入文本串 category 是String 需要使用的服务类别,多个用,隔开,不能为空 latitude 见说明 Float 纬度坐标, 与经度同时传入;
与城市二选一传入 longitude 见说明 Float 经度坐标, 与纬度同时传入;
与城市二选一传入 city 见说明 String 城市名称,与经纬度二选一传入 region 见说明 String 区域名称, 在城市存在的情况下可省;
与经纬度 二选一传入 appid 是String App id,开发者的唯一标识. uid 否String 用户唯一 id(并非开发者 id) ,用于区分该开发 者下不同用户, 如果为空, 则没法使用上下文理 解功能.appid 和uid 同时存在的情况下,才可 以使用上下文理解功能. 注: (1)单类别意图比较明确,识别的覆盖率比较大,所以如果只要使用特定某个类别, 建议将 category 只设置为该类别. (2)对于没有地理位置要求的类别(比如:电影,音乐 等)用户的 city 和region 可以随便指定,不会影响结果. 2.3 示例说明 示例请求: Post 形式,见示例说明. 示例应答: 语义应答格式采用 json 格式: { errcode :0, query : 查一下明天从北京到上海的南航机票 , type : flight , semantic :{
3 details :{ start_loc :{ type : LOC_CITY , city : 北京市 , city_simple : 北京 , loc_ori : 北京 }, end_loc : { type : LOC_CITY , city : 上海市 , city_simple : 上海 , loc_ori : 上海 }, start_date : { type : DT_ORI , date : 2014-03-05 , date_ori : 明天 }, airline : 中国南方航空公司 }, intent : SEARCH } }
3、通用协议 3.1 时间相关协议(datetime) 时间在语义理解里是很常用的一个字段,协议定义如下: 3.1.1 单时间的描述协议 datetime: 字段名称 是否必须 字段类型 字段说明 type 是String 大类型: DT_SINGLE . DT_SINGLE 又细分为两个类别:DT_ORI 和DT_INFER. DT_ORI 是字面时间,比如: 上午九点 ;
DT_INFER 是推理时间,比如: 提前
5 分钟 date 是String 格式:YYYY-MM-DD,默认是当天时间 date_ori 是String date 的原始字符串 time 是String
24 小时制,格式:HH:MM:SS,默认为 00:00:00
4 time_ori 是String Time 的原始字符串 示例:明天上午九点 datetime :{ type : DT_ORI , date : 2014-03-05 , date_ori : 明天 , time : 09:00:00 , time_ori : 上午九点 } 示例:5 小时后(当前时间推后
5 小时) datetime :{ type : DT_INFER , date : 2014-03-04 , date_ori : , time : 15:00:00 , time_ori :
5 小时后 } 3.1.2 时间段的描述协议 datetime: 字段名称 是否必须 字段类型 字段说明 type 是String 类型: DT_INTERVAL date 是String 格式:YYYY-MM-DD,默认是当天时间 date_ori 是String date 的原始字符串 time 是String
24 小时制,格式:HH:MM:SS time_ori 是String time 的原始字符串 end_date 是String 格式:YYYY-MM-DD,默认是当前时间 end_date_ori 是String date 的原始字符串 end_time 是String
24 小时制,格式:HH:MM:SS end_time_ori 是String Time 的原始字符串 示例:明天上午九点到后天下午三点 datetime :{ type : DT_INTERVAL , date : 2014-03-05 , date_ori : 明天 , time : 09:00:00 , time_ori : 上午九点 , end_date : 2014-03-06 , end_date_ori : 后天 , end_time : 15:00:00 , end_time_ori : 下午三点 } 3.1.3 重复时间的描述协议 datetime: 字段名称 是否必须 字段类型 字段说明
5 type 是String 类型: DT_REPEAT DT_ REPEAT 又细分为两个类别:DT_RORI 和DT_RINFER. DT_RORI 是字面时间,比如: 每天上午九 点 ;
DT_RINFER 是推理时间,比如: 工 作日除外 time 是String
24 小时制,格式:HH:MM:SS time_ori 是String time 的原始字符串 repeat 是String 重复标记:0000000 注:依次代表周日,周六,…,周一;
1 表 示该天要重复,0 表示不重复 repeat_ori 是String date 的原始字符串 示例:每周一三五早上
8 点 datetime :{ type : DT_REPEAT , time : 08:00:00 , time_ori : 早上八点 , repeat :
0010101 , repeat_ori : 每周一三五 , } 3.2 地点相关协议(location) 地点在语义理解里也是很常用的一个字段,协议定义如下: 字段名称 是否必须 字段类型 字段说明 type 是String 大类型: LOC LOC 又细分为如下类别:LOC_COUNTRY、 LOC_PROVINCE、LOC_CITY、LOC_TOWN、 LOC_POI、NORMAL_POI. country 否String 国家 province 否String 省全称,例如:广东省 province_simple 否String 省简称,例如:广东|粤city 否String 市全称,例如:北京市 city_simple 否String 市简称,例如:北京 town 否String 县区全称,例如:海淀区 town _simple 否String 县区简称,例如:海淀 poi 否String poi 详细地址 loc_ori 是String 原始地名串 注:LOC_POI 和NORMAL_POI 的区别:LOC_POI 是指地名除了国家、省、市、区县的详细地 址;
NORMAL_POI 是指地图上偏向机构的 poi 点,比如:饭馆、酒店、大厦等等 示例:北京市海淀区海淀南路
9 号楼 location :{ type : LOC_POI ,
6 province : 北京 , province_simple : 北京 , city : 北京市 , city_simple : 北京 , town : 海淀区 , town _simple : 海淀 , poi : 海淀南路
9 号楼 , loc_ori : 北京市海淀区海淀南路
9 号楼 } 示例:银科大厦 location :{ type : NORMAL_POI , poi : 银科大厦 , loc_ori : 银科大厦 } 示例:广东省越秀区 location :{ type : LOC_TOWN , province : 广东省 , province_simple : 广东|粤 , city : 广州市 , city_simple : 广州 , town : 越秀区 , town _simple : 越秀 , loc_ori : 广东省越秀区 } 3.3 数字相关协议(number) 数字有关的表示在语义理解里也是很常用的一个字段,协议定义如下: 字段名称 是否必须 字段类型 字段说明 type 是String 大类型: NUMBER NUMBER 又细分为如下类别: NUM_PRICE、 NUM_PADIUS 、 NUM_DISCOUNT 、 NUM_SEASON、 NUM_EPI、 NUM_CHAPTER. begin 是String 开始 end 是String 结束 说明:begin 或end,如果为 -1 表示无上限或者下限,如果为 -2 ,表示该字段无信息. NUM_PRICE:价格相关,例:200 元左右 NUM_RADIUS:距离相关,例:200 米以内 NUM_DISCOUNT:折扣相关,例:八折 NUM_SEASON:部,季相关,例:第一部
7 NUM_EPI:集相关,例:第一集 NUM_CHAPTER:章节相关,例:
第一章 示例:200 元左右 number :{ type : NUM_PRICE , begin :
100 , end :
300 } 示例:一百到两百元 number :{ type : NUM_PRICE , begin :
100 , end :
200 } 示例:200 元以下 number :{ type : NUM_PRICE , begin :
0 , end :
200 } 示例:200 元以上 number :{ type : NUM_PRICE , begin :
200 , end : -1 } 示例:200 米以内 number :{ type : NUM_RADIUS , begin :
0 , end :
200 } 示例:八折 number :{ type : NUM_DISCOUNT , begin : 0.8 , end : -2 } 示例:第二季 number :{ type : NUM_SEASON , begin :
2 , end : -2 }
8 示例:20140401 期 number :{ type : NUM_ SEASON , begin :
20140401 , end : -2 } 示例:第八集 number :{ type : NUM_EPI , begin :
8 , end : -2 } 示例:
第八节 number :{ type : NUM_CHAPTER , begin :
8 , end : -2 }
4、垂直服务协议 类别 服务类别 服务描述 服务说明 生活类 restaurant 餐馆 查询餐馆的服务,例如:中关村附 近的面馆 map 地图 查询地图服务,例如:从银科大厦 到天坛公园怎么走 nearby 周边 查询周边的服务,例如:我想去打 保龄球 coupon 优惠券/团购 查询优惠券/团购的服务, 例如: 附 近有什么优惠券 ;
如果查已有类别 的优惠券, 比如: 附近有什么酒店 优惠券 ,那么就会优先是酒店类. 旅行类 hotel 酒店 查询酒店服务,例如:查一下中关 村附近有没有七天酒店 travel 旅游 查询旅游服务,例如:故宫门票多 少钱 flight 航班 查询航班的服务,例如:明天从北 京到上海的机票 train 火车 查询火车服务,例如:查一下从北 京到西安的火车 娱乐类 movie 上映电影 查询上映电影的服务,例如:最近 有什么好看的电影
9 music 音乐 查询音乐的服务,例如:来点刘德 华的歌 video 视频 查询视频服务,例如:我想看甄 传novel 小说 查询小说的服务,例如:来点言情 小说看看 工具类 weather 天气 查询天气的服务,例如:明天北京 天气 stock 股票 查询股票的服务,例如:腾讯股价 多少了 remind 提醒 提醒服务,例如:提醒我明天上午 十点开会 telephone 常用电话 查询常用电话号码服务,例如:查 询一下招行信用卡的电话 知识类 cookbook 菜谱 查询菜谱服务,例如:宫保鸡丁怎 么做 baike 百科 查询百科服务,例如:查一下刘德 华的百科资料 news 资讯 查询新闻服务,例如:今天有什么 新闻 其他类 tv 电视节目预告 查询电视节目服务,例如:湖南台 今晚有什么节目 instruction 通用指令 通用指令服务,例如:把声音调高 一点 tv_instruction 电视指令 电视指令服务,例如:切换到中央 五台 car_instruction 车载指令 车载指令服务,例如:把空调设为
25 度app 应用 查询应用服务,例如:打开愤怒的 小鸟 website 网址 查询网址服务,例如:帮我打开腾 讯网 search 网页搜索 网页搜索服务,例如:百度一下意 大利对乌拉圭 … 其他定制服务 4.1 生活类 4.1.1 餐馆服务(restaurant) 语义表示(semantic) :
10 字段名称 是否必须 字段类型 字段说明 details location 否Object(location) 地点 name 否String 餐馆名称 category 否String 餐馆类型/菜系 special 否String 菜名 price 否Object(number) 价格(单位元) radius 否Object(number) 距离(单位米) coupon 否Int 优惠信息:
0 无 (默认) ,
1 优惠券,
2 团购 sort 否Int 排序类型:0 距离(默认) ,1 点评 高优先级,2 服务质量高优先级,
3 环境高优先级,4 价格高到低,5 价格低到高 intent SEARCH 普通查询 示例:附近有什么川菜馆 { errcode :0, query : 附近有什么川菜馆 , type : restaurant , semantic :{ details :{ category : 川菜 }, intent : SEARCH } } 示例:中关村有没有人均
100 元左右的火锅店 { errcode :0, query : 中关村有没有人均
100 元左右的火锅店 , type : restaurant , semantic :{ details :{ location :{ type : LOC_CITY , city : 北京市 , city_simple : 北京 , region : 中关村 , loc_ori : 北京 } category : 火锅 ,
11 price :{ type : NUM_PRICE , begin :
50 , end :
150 } }, intent : SEARCH } } 4.1.2 地图服务(map) 语义........