# nlp2cron
---
<div >
<img src='https://shields.io/badge/version-2.0.BETA-green.svg'>
<img src='https://shields.io/badge/dependencies-tensorflow-blue.svg'>
<img src='https://shields.io/badge/author-Chang Zhang-dbab09.svg'>
<h4>Nlp2cron是一个将自然语言转换为cron表达式的工具包,可用于对话机器人的定时任务以及平常开发中的cron表达式识别</h4>
</div>
#### 在线体验
> 注:训练样本局限,本人一行一行瞎编的,无法全部覆盖,目前仅支持时分秒的控制,暂不支持复杂的识别
[本大爷去试试](http://nlp2cron.langpy.cn/)
[在线幻灯片演示介绍](http://www.texspire.cn/view/f9424e8a921344e6a89c9e43358ab0c4)
#### 使用教程
> 注:v1.1版本请移步[v1.1](README-v1.1.md)
##### 1. 引入依赖
```
<dependency>
<groupId>cn.langpy</groupId>
<artifactId>nlp2cron</artifactId>
<version>2.0.BETA</version>
</dependency>
```
##### 2. 模型配置
[下载](https://gitee.com/huoyo/nlp2cron/releases)对应的发行版本的模型,并解压到任意目录,然后在代码种配置模型路径,如:
```java
CrondModel.init("d:/model");
```
##### 3. 使用
假设解压后的目录为
```
├─D
│ └─model
│ └─variables
│ └─saved_model.pb
```
> 注:目前仅支持时分秒的控制
```java
public static void main(String[] args) {
/*模型初始化,初始化需要时间,可提前进行初始化*/
CrondModel.init("d:/model");
String test1 = "明早八点";
String test2 = "每天晚上7点开始";
String test3 = "每15分钟一次";
String test4 = "每2小时一次";
String test5 = "每天晚上7点开始";
String test6 = "每天早上7点开始";
String test7 = "上午一点执行";
String test8 = "明天早上8点";
String cron1 = CrondUtil.toCron(test1);
String cron2 = CrondUtil.toCron(test2);
String cron3 = CrondUtil.toCron(test3);
String cron4 = CrondUtil.toCron(test4);
String cron5 = CrondUtil.toCron(test5);
String cron6 = CrondUtil.toCron(test6);
String cron7 = CrondUtil.toCron(test7);
String cron8 = CrondUtil.toDate(test8);
String cron9 = CrondUtil.toDateTime(test8);
String cron10 = CrondUtil.toTime(test8);
/*使用完关闭 如果在web中需要重复使用则不需要关闭*/
CrondModel.close();
//明早八点 转为cron表达式:0 0 8 3 1 ? 2021
//每天晚上7点开始 转为cron表达式:0 0 19 * * ? *
//每15分钟一次 转为cron表达式:0 0/15 * * * ? *
//每2小时一次 转为cron表达式:0 0 0/2 * * ? *
//每天晚上7点开始 转为cron表达式:0 0 19 * * ? *
//每天早上7点开始 转为cron表达式:0 0 7 * * ? *
//上午一点执行 转为cron表达式:0 0 1 * * ? *
//明天早上八点 转为date表达式:2021-01-03
//明天早上八点 转为datetime表达式:2021-01-03 08:00:00
//明天早上八点 转为time表达式:08:00:00
}
```
#### 原理
实现原理为一个简易版本的seq2seq模型,对应的模型架构图如下:
> 1.直接使用全局向量编码进行预测
>
> 2.解码阶段假设状态h中已经包含了输出信息,所以不再使用上一个词的输出作为下一个词预测数输入(还有一个原因是我偷懒,然后我发现这样效果也不错,hia hia hia!)
>
> 3.为了简化模型,加快收敛,解码和编码统一使用GRU

#### 版本说明
> V1.0:初始版本
> V2.0.BETA:基于tf2.0版本,优化模型大小与性能

云哲-吉吉2021
- 粉丝: 4305
最新资源
- 技术转移机构如何借助AI+数智应用应对市场竞争加剧与服务能力不足的挑战?.docx
- 技术转移机构如何通过AI+数智应用实现业务增长与客户价值提升?.docx
- 技术转移机构在AI+数智应用转型中面临挑战,如何借助AI+数智应用方案突破瓶颈?.docx
- 科技服务合作伙伴如何借助AI+数智应用帮助提升产品差异化竞争力?.docx
- 科技服务机构如何借力AI+数智应用提升品牌价值和客户信任度?.docx
- 科技服务产品同质化严重,如何借助AI+数智应用打造差异化竞争力?.docx
- 科技服务机构如何借助AI+数智应用低成本构建智能化服务体系?.docx
- 科技服务机构如何借助AI+数智应用低成本拓展业务增量?.docx
- 科技服务机构如何借助AI+数智应用高效满足企业多元化需求?.docx
- 科技服务机构如何借助AI+数智应用工具高效支持企业技术创新?.docx
- 科技服务机构如何借助AI+数智应用结合企业共性需求,打造高附加值解决方案?.docx
- 科技服务机构如何借助AI+数智应用工具提升品牌价值并拓展客户群体?.docx
- 科技服务机构如何借助AI+数智应用快速响应企业的临时创新需求?.docx
- 科技服务机构如何借助AI+数智应用手段丰富服务内容、延伸服务链?.docx
- 科技服务机构如何借助AI+数智应用提升产品差异化竞争力?.docx
- 科技服务机构如何借助AI+数智应用提升竞争力?.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


