4 个版本 (破坏性)

0.4.0 2023 年 11 月 6 日
0.3.0 2020 年 10 月 8 日
0.2.0 2020 年 4 月 9 日
0.1.0 2019 年 10 月 11 日

#944 in 文本处理


用于 alpino-tokenize

Apache-2.0

48KB
428

alpino-tokenizer

这个 Rust 包提供了一种基于有限状态转换器的分词器。它主要用于使用 Alpino 分词器进行荷兰语处理,但从原则上讲,你可以加载任何语言的分词器。

Alpino 分词器的转换器可以 下载。我们将定期同步转换器,因为 Alpino 中的分词器更新。

你可以使用 alpino-tokenizer 包将分词器集成到你的 Rust 程序中。

为了方便,提供了一个 alpino-tokenize 命令行工具,用于在 shell 或 shell 脚本中对文本进行分词。

安装 alpino-tokenize 命令行工具

cargo

alpino-tokenize 工具可以使用 cargo 安装

$ cargo install alpino-tokenize

Nix

此存储库也是一个 Nix flake。如果你使用的 Nix 版本支持 flakes,你可以使用以下方式启动带有 alpino-tokenize 的 shell

$ nix shell github:danieldk/alpino-tokenizer

许可证

版权所有 2019-2020 Daniël de Kok

根据 Apache 许可证版本 2.0(“许可证”);除非遵守许可证规定,否则不得使用此文件。您可以在以下位置获得许可证副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证中具体规定许可和限制的条款,请参阅许可证。


lib.rs:

荷兰 Alpino 分词器包装器。

此包提供对荷兰 Alpino 分词器的包装。由于分词器本身通过 alpino-tokenizer-sys 包包含,因此可以无任何外部依赖使用此包。

这个crate公开了一个单函数tokenize,该函数接受一个字符串形式的段落,并返回一个包含句子和标记的Vec<Vec<String>>。例如

use std::fs::File;
use std::io::BufReader;

use alpino_tokenizer::{AlpinoTokenizer, Tokenizer};

let read = BufReader::new(File::open("testdata/toy.proto").unwrap());
let tokenizer = AlpinoTokenizer::from_buf_read(read).unwrap();

assert_eq!(
  tokenizer.tokenize("Groningen is een Hanzestad. Groningen heeft veel bezienswaardigheden.").unwrap(),
  vec![vec!["Groningen", "is", "een", "Hanzestad", "."],
       vec!["Groningen", "heeft", "veel", "bezienswaardigheden", "."]]);

依赖项

~3–5MB
~87K SLoC