2个版本
0.1.1 | 2021年5月23日 |
---|---|
0.1.0 | 2020年4月21日 |
#735 in 文本处理
用于vayu
56KB
933 行
Event Parser
Rust的日期、时间和事件解析库
Event Parser包含一个日期和时间自然语言解析库,以及一个事件解析库,还有一个演示如何利用这些crate的简单命令行工具的客户端。这些库使用Rust编写,基于chrono
和regex
crate构建,以提供更广泛的自然语言语句覆盖。
日期时间解析器: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)));
有关更多示例和用法,请参阅文档。
Event Parser: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 伊萨克·李和亚历克斯·格雷姆斯
依赖关系
~4.5–6MB
~104K SLoC