# nlp2cron
[别拦我,我要支持作者](https://afdian.net/a/huoyo)
---
<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?staticnavmenu=true)
#### 使用教程
> 注: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版本,优化模型大小与性能
没有合适的资源?快使用搜索试试~ 我知道了~
自然语言转换为cron表达式的工具包
共50个文件
sample:14个
java:10个
head:4个
需积分: 5 1 下载量 15 浏览量
2024-03-17
15:30:17
上传
评论
收藏 113.71MB ZIP 举报
温馨提示
Nlp2cron是一个将自然语言转换为cron表达式的工具包,可用于对话机器人的定时任务以及平常开发中的cron表达式识别
资源推荐
资源详情
资源评论
收起资源包目录
nlp2cron.zip (50个子文件)
nlp2cron
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 1KB
NumUtil.java 3KB
factory
CrondFactory.java 353B
core
CrondInteface.java 223B
CrondModel.java 3KB
CrondConfig.java 2KB
TimeType.java 105B
ResultType.java 116B
test
Main.java 2KB
CrondUtil.java 746B
LICENSE 11KB
README-v1.1.md 2KB
.git
index 3KB
HEAD 23B
refs
heads
master 41B
tags
remotes
origin
HEAD 32B
objects
pack
pack-f41e849ae067d48a30976bfbc8439d692c7729c0.rev 1KB
pack-f41e849ae067d48a30976bfbc8439d692c7729c0.pack 111.34MB
pack-f41e849ae067d48a30976bfbc8439d692c7729c0.idx 10KB
info
description 73B
packed-refs 362B
info
exclude 240B
logs
HEAD 179B
refs
heads
master 179B
remotes
origin
HEAD 179B
hooks
post-update.sample 189B
sendemail-validate.sample 2KB
prepare-commit-msg.sample 1KB
commit-msg.sample 896B
pre-receive.sample 544B
update.sample 4KB
pre-commit.sample 2KB
pre-rebase.sample 5KB
applypatch-msg.sample 478B
fsmonitor-watchman.sample 5KB
push-to-checkout.sample 3KB
pre-applypatch.sample 424B
pre-push.sample 1KB
pre-merge-commit.sample 416B
config 299B
.gitignore 9B
README.md 4KB
共 50 条
- 1
资源评论
智光工作室
- 粉丝: 835
- 资源: 245
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Javascript的P03150114 BisLstm_water水产量预测设计源码
- Ai变声工具:实时语音变换器Supertone Shift 可将实时变化直播说话声音
- 基于Python的Struts2全漏洞扫描利用工具设计源码
- 基于Javascript的React Native Helloword设计源码
- 基于Vue的药品管理后台设计源码
- 基于Javascript的涛涛帮忙医院测评设计源码
- 基于Java的Office文档转换为PDF服务设计源码
- 基于Java的Stanford cs143 Classroom Object Oriented Language解释器设计源码
- 基于CSS的电子产品网页设计源码
- 基于Kotlin的自定义ViewGroup试卷试题功能设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功