21个版本
0.5.5 | 2024年6月13日 |
---|---|
0.5.3 | 2023年12月13日 |
0.5.2 | 2023年10月30日 |
0.3.3 | 2023年1月1日 |
0.1.1 | 2022年7月25日 |
在 文本处理 中排名 108
每月下载 161 次
在 4 个Crate中(3个直接)中使用
285KB
3.5K SLoC
ZSpell
本项目是一个完全用Rust编写的拼写检查器,与古老的Hunspell词典格式保持兼容。它是完全原生的,不依赖于任何其他后端(Enchant,Hunspell,Aspell等)。该库的目标之一是可以通过WASM使用。内置完整的Unicode支持。
库方面有一个稳定的检查器,但建议API尚未最终确定。CLI可用,但尚未被认为是稳定的。有关可用信息的更多信息,请参阅功能状态。
以下是一些有用的快速链接
- Crate信息:https://crates.io/crates/zspell
- Crate CLI文档(不完整):https://pluots.github.io/zspell/
- Crate库文档:https://docs.rs/zspell/
- Python库页面:https://pypi.ac.cn/project/zspell/
- Crate源代码:https://github.com/pluots/zspell
接口
本项目向其拼写检查器暴露了多个接口,列在本节中。
命令行界面
只想从命令行使用此拼写检查器?请查看位于此处的书籍,以获取更深入的安装和使用说明:https://pluots.github.io/zspell/。
如果您不想继续阅读,最简单的方法是从这里下载预构建的二进制文件:https://github.com/pluots/zspell/releases。
Rust库接口
本项目还旨在创建一个完全功能的拼写检查库,以便于程序化使用。有关库方面的文档,请参阅此处 https://docs.rs/zspell/。这还包括大量设计方法讨论,供有兴趣的人士参考。
Python接口
此库有一个预构建轮子的Python包装器,可在以下位置获取: https://pypi.ac.cn/project/zspell/。其源代码位于 zspell-py crate。
通过WASM使用
该库API应能直接使用。官方WASM绑定将在某个时候添加。
功能状态
功能 | 通过库可用 | 通过CLI可用 | 跟踪问题 |
---|---|---|---|
基本的拼写检查功能 | ✓ | ✓ | |
禁止词汇处理 | ✓ | ✓ | #17 |
词干提取 | ✓ | ✓ | |
词形分析 | ✓ | ✓ | |
建议 | 进行中 | ✕ | #16 |
复合词处理 | ✕ | ✕ | |
全词形/音素处理 | 进行中 | ✕ | |
Python接口 | 测试版 | 不适用 | #18 |
预构建WASM绑定 | ✕ | 不适用 | #19 |
性能
本仓库的目标是优先考虑最预期的使用,即大多数要检查的单词都是正确的。基于此概念进行优化,并且现代计算机现在能够将整个编译的单词表存储在内存中(约20 MiB),zspell
往往优于其他拼写检查器。
MSRV
该库依赖于Rust 1.65的特性,因此这是我们的当前最低支持版本。我们的CI验证了库和示例。
CLI和测试运行器需要更新的特性,并且没有特定的MSRV。
测试套件
该项目在zspell/test-suite
(符号链接到test-suite
)中保持一个测试套件。每个文件都有一种简单的格式,结合了简单的词缀和词典文件。要添加测试,只需复制并编辑0-example.test
。
文件名如下
0-*
:不运行的元测试b-*
:基本功能测试h-*
:来自Hunspell测试套件的测试i000-*
:针对特定问题的测试
许可协议
有关许可信息,请参阅LICENSE文件。提供的许可允许专有使用和修改;话虽如此,我真诚地建议,如果您有改进,请提交拉取请求,帮助我们所有人 :)。
测试套件许可协议
一些测试是从Hunspell测试套件中获取的。Hunspell有多种许可协议,我们选择了MPL并在相关文件中包含SPDX通知。
词典数据许可协议
本仓库中提供的用于测试目的的词典已在许可下获取。这些文件已从以下来源获取:https://github.com/wooorm/dictionaries
这些词典在不同的许可协议下,与本项目不同。请参阅.license
文件,该文件位于dictionaries/
目录中。
依赖项
~5–17MB
~158K SLoC