#格式 #解析器 #通用 #句子 #标记 #conllu #co-nll-u

bin+lib rs-conllu

通用依赖项目 CoNLL-U 格式的解析器

2 个不稳定版本

0.2.0 2024年7月29日
0.1.0 2023年4月22日

#854 in 解析器实现

Download history 136/week @ 2024-07-27 5/week @ 2024-08-03

141 每月下载量

MIT/Apache

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