3个不稳定版本
0.2.0 | 2022年8月29日 |
---|---|
0.1.1 | 2021年5月23日 |
0.1.0 | 2020年4月21日 |
#163 在 编程语言 中
2,058 每月下载量
用于 4 crates
36KB
596 行
事件解析器
为Rust提供的自然语言日期、时间和事件解析库
事件解析器包含一个日期和时间自然语言解析库,以及一个事件解析库,还包括一个客户端,演示如何利用这些crates创建简单的命令行工具。这些库是用Rust编写的,基于chrono
和regex
crates构建,以提供更广泛的自然语言语句覆盖。
日期时间解析器:Rust NLP库
它旨在将非结构化文本解析为NaiveDate
和NaiveTime
格式。
- 日期时间解析器具有时区感知能力,但默认为UTC。
- 允许解析相对于当前日期/时间,或相对于自定义日期/时间。
用法
在您的Cargo.toml
中放入以下内容
[dependencies]
date_time_parser = "0.1.0"
然后在您的crate根目录下放入以下内容
extern crate date_time_parser;
示例:查找日期
此包的一般用途是将包含日期的英文自然语言传递给DateParser
结构进行解析。如果找到日期,它将表达式解析为NaiveDate
格式。
use date_time_parser::DateParser;
use chrono::NaiveDate;
let date = DateParser::parse("Lunch on June 5th");
assert_eq!(date, Some(NaiveDate::from_ymd(2020, 6, 5)));
有关更多示例和用法,请参阅文档。
事件解析器:Rust NLP库
旨在将非结构化文本解析为iCalendar Events
。
- 将文本解析为具有与本地时间相关的日期和时间的活动。
- 事件解析器默认为时区感知。
- 利用
date_time_parser
crate解析事件日期和时间。
用法
在您的Cargo.toml
中放入以下内容
[dependencies]
event_parser = "0.1.0"
然后在您的crate根目录下放入以下内容
extern crate event_parser;
示例:晚上7点的晚餐
将描述事件的英语自然语言传递给to_event
函数以解析表达式。它将表达式解析为iCalendar Events
格式。
如果适用,事件将有一个开始和结束时间,或者被分类为全天事件。此外,将为事件解析一个日期,如果没有找到日期,则默认为当天。如果提供了,事件还将有一个摘要(事件的名称)。
use event_parser::to_event;
use chrono::{Duration, Local};
use icalendar::{Component, Event};
let event = to_event("Dinner at 7");
let expected_event = Event::new()
.summary("Dinner")
.starts(Local::today().and_hms(19, 0, 0))
.ends(Local::today().and_hms(19, 0, 0) + Duration::hours(1))
.done();
assert!(equal(event, expected_event));
有关更多示例和使用方法,请参阅文档。
命令行工具
为了与event_parser
库进行交互,我们提供了一个命令行工具,可以轻松测试不同的输入。只需下载存储库,然后在项目根目录下运行cargo run
,然后输入一个自然英语事件,看看它是如何被解析的!
开发设置
安装Rust编程语言,然后克隆此存储库。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
git clone https://github.com/isaacrlee/event-parser.git
运行程序并轻松地与输入交互
cargo run
运行测试套件
cargo test --all
许可证
MIT许可证
在MIT许可证下分发。有关更多信息,请参阅LICENSE
。
版权所有(c)2020 伊萨克·李和亚历克斯·格赖姆斯
依赖关系
~3–4.5MB
~71K SLoC