# 配置信息

例如:

APPID: xxxxxxxxxxxxxxx

TOKEN: xxxxxxxxxxxxxxx

EncodingAESKey: xxxxxxxxxxxxxxx

# 接口信息

从文本中识别阿拉伯数字、中文数字,以及时间和日期推断

# 数字日期时间识别接口(只签名不加密):

https://chatbot.weixin.qq.com/openapi/nlp/ner/TOKEN

接口类型:

POST请求

# 参数说明:

字段 类型 默认值 描述
query string 使用JWT签名后的数据

query签名说明:

字段 类型 默认值 描述
uid string 自动生成的随机标识 用户标识的唯一ID,比如:openid
data Object {q: "输入文本"}

使用JSON Web TokenHS256 算法对参数进行encode, 放入到query参数中

比如参数为

{
  uid: "xjlsj33lasfaf", //能标识用户的唯一用户id,可以是openid
  data: {
    q: "帮我订两张后天上午的火车票"
  }
}

使用 jwt 和 EncodingAESKey 对数据对象进行encode得到加密字符串

const signedData = jwths256.encode(EncodingAESKey, {
      uid: "xjlsj33lasfaf", //能标识用户的唯一用户id,可以是openid
      data: {
        q: "帮我订两张后天上午的火车票"
      }
    }
)

# 调用开放平台语义接口

curl -XPOST -d "query=signedData" https://chatbot.weixin.qq.com/openapi/nlp/ner/TOKEN

https://www.jsonwebtoken.io/

Tips: 在 jsonwebtoken.io 网站上可以参考如下步骤手动生成signedData 手动生成signedData示例

# 返回结果


[
  {
    "type": "number",
    "span": [
      3,
      4
    ],
    "text": "两",
    "norm": "2"
  },
  {
    "type": "datetime_interval",
    "span": [
      5,
      9
    ],
    "text": "后天上午",
    "norm": "2019-10-30 08:00:00~2019-10-30 11:59:59"
  }
]

实体类型 说明
number 阿拉伯数字和中文数字表达式的识别和推断,例如 -5、1.3%、一百八十六点一
datetime 支持时间识别和时间推断,例如 今天下午3点半、2小时后、上上周五

# 日期时间(datetime)

日期时间结果包含4种不同类型,说明如下

# 1. datetime_point(具体时间点)

如: 设置今天下午三点半的闹钟

{"type": "datetime_point", "span": [2, 9], "text": "今天下午三点半", "norm": "2019-08-19 15:30:00"}

norm字段说明:

  • 日期时间格式为Y-m-d H:M:S ,例如 1900-01-01 00:00:00
  • 如果只有时间,没有日期,则默认日期为当天
  • 如果只有日期,没有具体时间点,则默认时间为 00:00:00

# 2. datetime_interval(时间区间)

如: 上午8点到9点

{"type": "datetime_interval", "span": [0, 7], "text": "上午8点到9点", "norm": "2019-08-19 08:00:00~2019-08-19 09:00:00"}
  • norm字段为字符串,包含两个具体时间点,通过 ~ 连接,格式同 datetime_point(具体时间点)

# 3. datetime_duration(一段时间)

如: 3分15秒

{"type": "datetime_duration", "range": [0, 5], "text": "3分15秒", "norm": {"second": 15, "minute": 3}}
  • norm字段为json,可能包含字段为 second, minute, hour, week, day, month, year

# 4. datetime_repeat(周期时间点)

如: 每年9月30号

{"type": "datetime_repeat", "range": [0, 7], "text": "每天下午三点半", "norm": {"hour": 15, "minute": 30, "repeat": "every_day"}}

norm字段为json,说明:

  • 必然包含字段为 repeat ,表示周期类型,取值为 every_n, every_day, every_month, every_year, every_n_day, every_n_month, every_n_year
  • 可能包含字段为 second, minute, hour, day, month, year