2 个不稳定版本
0.2.0 | 2024年7月29日 |
---|---|
0.1.0 | 2023年4月22日 |
#854 in 解析器实现
141 每月下载量
17KB
414 行
rs-conllu
该项目旨在为通用依赖项目的 CoNLL-U 格式提供解析器:[CoNLL-U 格式](https://universaldependencies.org/format.html)。
基本用法
解析 CoNLL-U 格式的文件,并迭代包含的句子。
let file = File::open("example.conllu").unwrap();
let doc = parse_file(file);
for sentence in doc {
for token in sentence.unwrap() {
println!("{}", token.form);
}
}
功能
- 已测试于版本 2.11 UD 树库
- 处理不同类型的标记 ID(单个、范围、从属)
限制
解析以“扁平”方式进行,不尊重标记之间的关系。
lib.rs
:
用于解析 CoNNL-U 格式的库。
基本用法
解析 CoNNL-U 格式的句子,并迭代包含的 Token
元素。示例取自 [CoNLL-U 格式描述](https://universaldependencies.org/format.html)。
use rs_conllu::{parse_sentence, TokenID};
let s = "# sent_id = 1
## text = They buy and sell books.
1 They they PRON PRP Case=Nom|Number=Plur 2 nsubj 2:nsubj|4:nsubj _
2 buy buy VERB VBP Number=Plur|Person=3|Tense=Pres 0 root 0:root _
3 and and CCONJ CC _ 4 cc 4:cc _
4 sell sell VERB VBP Number=Plur|Person=4|Tense=Pres 2 conj 0:root|2:conj _
6 books book NOUN NNS Number=Plur 2 obj 2:obj|4:obj SpaceAfter=No
7 . . PUNCT . _ 2 punct 2:punct _
";
let sentence = parse_sentence(s).unwrap();
let mut token_iter = sentence.into_iter();
assert_eq!(token_iter.next().unwrap().id, TokenID::Single(1));
assert_eq!(token_iter.next().unwrap().form, "buy".to_owned());
依赖
~1.3–9MB
~72K SLoC