Skip to content
/ nlp2cron Public

Translate text into cron.将自然语言转换为cron表达式的工具包,可用于对话机器人的定时任务以及平常开发中的cron表达式识别

License

Notifications You must be signed in to change notification settings

huoyo/nlp2cron

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nlp2cron

别拦我,我要支持作者


Nlp2cron是一个将自然语言转换为cron表达式的工具包,可用于对话机器人的定时任务以及平常开发中的cron表达式识别

在线体验

注:训练样本局限,本人一行一行瞎编的,无法全部覆盖,目前仅支持时分秒的控制,暂不支持复杂的识别 注:目前仅支持时分秒的控制

本大爷去试试

在线幻灯片演示介绍

使用教程

注:v1.1版本请移步v1.1

1. 引入依赖
 <dependency>
    <groupId>cn.langpy</groupId>
    <artifactId>nlp2cron</artifactId>
    <version>2.0.BETA</version>
  </dependency>
2. 模型配置

下载对应的发行版本的模型,并解压到任意目录,然后在代码种配置模型路径,如:

CrondModel.init("d:/model");
3. 使用

假设解压后的目录为

├─D
│  └─model
│         └─variables
│         └─saved_model.pb
 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版本,优化模型大小与性能

About

Translate text into cron.将自然语言转换为cron表达式的工具包,可用于对话机器人的定时任务以及平常开发中的cron表达式识别

Resources

License

Stars

Watchers

Forks

Packages

No packages published