# 数字日期时间识别

此接口,从插件 1.1.8 开始支持

实体识别,目前支持数字和 4 种时间类型实体,更多实体开发中

# 初始化

文档内插件版本号,仅做示例参考,插件最新版本,以此处为准

{
  "pages": [
    "pages/index/index"
  ],
  "plugins": {
    "chatbot": {
      "version": "1.2.23",
      "provider": "wx8c631f7e9f2465e1"
    }
  },
  "requiredBackgroundModes": [
    "audio"
  ],
  "sitemapLocation": "sitemap.json"
}
var plugin = requirePlugin("chatbot");

App({
	onLaunch: function () {
		plugin.init({
			appid: "P5Ot9PHJDechCYqDFAW1AiK6OtG3Ja", //小程序示例账户,仅供学习和参考
			openid: "", //用户的openid,非必填,建议传递该参数
			success: () => {}, //非必填
			fail: (error) => {}, //非必填
		});
	},
});

# 调用数字日期时间识别接口

const txt = "帮我订两张后天上午的火车票";

plugin.api.nlp("ner", { q: txt }).then((res) => {
	console.log("ner result : ", res);
});

# 数字日期时间识别结果

[
	{
		"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