# 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>
#### 在线体验
> 注:训练样本局限,本人一行一行瞎编的,无法全部覆盖,目前仅支持时分秒的控制,暂不支持复杂的识别
> 注:目前仅支持时分秒的控制
#### 使用教程
> 注: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
![输入图片说明](src/main/resources/model_idea.png)
#### 版本说明
> V1.0:初始版本
> V2.0.BETA:基于tf2.0版本,优化模型大小与性能
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Nlp2cron是一款功能强大的工具包,专门用于将自然语言转换为cron表达式。这个工具包不仅可以帮助对话机器人实现定时任务功能,还可以在日常开发中用于识别和生成cron表达式。通过Nlp2cron,用户可以简单快捷地输入自然语言描述的时间要求,例如“每周三下午3点执行”或“每个月最后一天凌晨4点执行”,然后工具包会自动将这些描述转换成标准的cron表达式,方便用户直接用于定时任务的设置。对于开发人员来说,Nlp2cron是一个非常实用的工具,可以大大简化他们在编写定时任务相关代码时对时间表达式的处理。无需手动编写复杂的cron表达式,只需使用自然语言描述时间要求,就可以快速生成对应的cron表达式,提高开发效率。另外,Nlp2cron还支持多种语言的自然语言描述,使其适用于不同地区和语言环境下的开发需求。无论是中文、英文还是其他语言,用户都可以轻松地使用Nlp2cron来转换时间描述为cron表达式。总之,Nlp2cron的强大功能和易用性使其成为一个理想的工具包,可以帮助用户实现定时任务功能,提升开发效率,同时也为对话机器人和其他应用程序的定时任务管理表达式识别,提供便利,提高效率
资源推荐
资源详情
资源评论
收起资源包目录
Nlp2cron自然语言转换cron表达式的工具包用于对话机器人的定时任务等.zip (22个子文件)
nlp2cron-master
nlp2cron-master
pom.xml 5KB
src
main
resources
model_idea.png 93KB
input.json 5KB
output.json 2KB
model
keras_metadata.pb 22KB
saved_model.pb 1.77MB
variables
variables.index 3KB
variables.data-00000-of-00001 2.25MB
java
cn
langpy
nlp2cron
handler
CrondHandler.java 1011B
NumUtil.java 3KB
factory
CrondFactory.java 340B
core
CrondInteface.java 214B
CrondModel.java 3KB
CrondConfig.java 2KB
TimeType.java 97B
ResultType.java 107B
test
Main.java 2KB
CrondUtil.java 715B
LICENSE 11KB
README-v1.1.md 2KB
.gitignore 8B
README.md 4KB
共 22 条
- 1
资源评论
传奇开心果编程
- 粉丝: 8443
- 资源: 335
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功