Time-Normalization

Abstract:
谈谈我对Time-Normalization的理解

文献:
Sakoe H, Chiba S, Waibel A, et al. Dynamic programming algorithm optimization for spoken word recognition[J]. Readings in speech recognition, 1990, 159: 224.

1什么是time-normalization

通俗的来讲就是,讲时间的维度压缩到一个同一个标准之下,其实就是为了两个时间序列可以进行比较

2什么是DP

全称dynamic programming (DP) based time-normalization algorithm ,说白看就是,时间正则化的方法,也就是匹配算法,匹配好了 便是时间对应好了,也就是说和同一个标准对应上了

3如何求解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
综上:目标是找到一条路径 让D最小、

4关于问题约束

一些基本约束
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
注意:这里的r是一个全局的约束
还有一个最重要的 Slope constraint condition:
简言之,就是当垂直或者水平方向走了 m步 之后,就必须斜着走n步,否则不能在原来的方向上继续走
在这里插入图片描述
根据上述约束 得到两个例子P=1,第二个例子中还额外附加了一个不允许走直角的条件
在这里插入图片描述
其他的类型
在这里插入图片描述

5关于权重W

权重的方法,有很多,它们共同的特点就是,尽量减少垂直或者是水平的方向运动。此外 它们的和最好是一个常数
这里有一种对称的和一种非对称的权重 设计方式,可以参考
在这里插入图片描述
示意图都在下面
在这里插入图片描述

最终关于DP的表达式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其他的一些DP算法及实验结果

在这里插入图片描述

在这里插入图片描述

Time-NLP 中文语句中的时间语义识别 author:shinyke 本工具是由复旦NLP中的时间分析功能修改而来,做了很多细节和功能的优化,具体如下: 泛指时间的支持,如:早上、晚上、中午、傍晚等。 时间未来倾向。 如:在周五输入“周一早上开会”,则识别到下周一早上的时间;在下午17点输入:“9点送牛奶给隔壁的汉子”则识别到第二天上午9点。 多个时间的识别,及多个时间之间上下文关系处理。如:"下月1号下午3点至5点到图书馆还书",识别到开始时间为下月1号下午三点。同时,结束时间也继承上文时间,识别到下月1号下午5点。 可自定义基准时间:指定基准时间为“2016-05-20-09-00-00-00”,则一切分析以此时间为基准。 修复了各种各样的BUG。 简而言之,这是一个输入一句话,能识别出话里的时间的工具。╮(╯▽╰)╭ 示例代码: /**  *   * 测试类  *   * @author kexm  * @version 1.0  * @since 2016年5月4日  *   */ public class TimeAnalyseTest {     @Test     public void test(){         String path = TimeNormalizer.class.getResource("").getPath();         String classPath = path.substring(0, path.indexOf("/com/time"));         System.out.println(classPath "/TimeExp.m");         TimeNormalizer normalizer = new TimeNormalizer(classPath "/TimeExp.m");         normalizer.parse("Hi,all.下周一下午三点开会");// 抽取时间         TimeUnit[] unit = normalizer.getTimeUnit();         System.out.println("Hi,all.下周一下午三点开会");         System.out.println(DateUtil.formatDateDefault(unit[0].getTime())   "-"   unit[0].getIsAllDayTime());          normalizer.parse("早上六点起床");// 注意此处识别到6天在今天已经过去,自动识别为明早六点(未来倾向,可通过开关关闭:new TimeNormalizer(classPath "/TimeExp.m", false))         unit = normalizer.getTimeUnit();         System.out.println("早上六点起床");         System.out.println(DateUtil.formatDateDefault(unit[0].getTime())   "-"   unit[0].getIsAllDayTime());         normalizer.parse("周一开会");// 如果本周已经是周二,识别为下周周一。同理处理各级时间。(未来倾向)         unit = normalizer.getTimeUnit();         System.out.println("周一开会");         System.out.println(DateUtil.formatDateDefault(unit[0].getTime())   "-"   unit[0].getIsAllDayTime());         normalizer.parse("下下周一开会");//对于上/下的识别         unit = normalizer.getTimeUnit();         System.out.println("下下周一开会");         System.out.println(DateUtil.formatDateDefault(unit[0].getTime())   "-"   unit[0].getIsAllDayTime());  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值