5个版本
0.5.5 | 2024年6月13日 |
---|---|
0.5.3 | 2023年12月13日 |
0.5.2 | 2023年10月30日 |
0.5.1 | 2023年10月30日 |
0.5.0 | 2023年10月30日 |
#775 in 文本处理
每月269次下载
315KB
4K SLoC
ZSpell
这是一个完全用Rust编写的拼写检查器项目,与古老的Hunspell字典格式保持兼容。它是完全本地的,不依赖于任何其他后端(Enchant、Hunspell、Aspell等)。该库的目标也是可以通过WASM使用。完全支持Unicode。
库方面有一个稳定的检查器,但建议API尚未最终确定。CLI是可用的,但尚未被视为稳定。有关更多信息,请参阅功能状态。
以下是一些有用的快速链接
- 存储库信息:https://crates.io/crates/zspell
- 存储库CLI文档(不完整):https://pluots.github.io/zspell/
- 存储库库文档:https://docs.rs/zspell/
- Python库页面:https://pypi.ac.cn/project/zspell/
- 存储库源代码: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存储库中。
通过WASM使用
库API应该直接可用。官方WASM绑定将在某个时候添加。
功能状态
功能 | 通过图书馆可用 | 通过命令行界面可用 | 跟踪问题 |
---|---|---|---|
基本的拼写检查功能 | ✓ | ✓ | |
禁止词处理 | ✓ | ✓ | #17 |
词干提取 | ✓ | ✓ | |
形态分析 | ✓ | ✓ | |
建议 | 工作中 | ✕ | #16 |
复合词处理 | ✕ | ✕ | |
全形态/音素处理 | 工作中 | ✕ | |
Python接口 | 测试版 | 不适用 | #18 |
预构建的WASM绑定 | ✕ | 不适用 | #19 |
性能
本存储库的目标是优先考虑最期望的使用,即大多数要检查的单词都是正确的。基于此概念进行的优化以及现代计算机现在能够在内存中存储整个编译的单词列表(约20 MiB),zspell
往往优于其他拼写检查器。
MSRV
本库依赖于Rust 1.65的功能,因此这是我们当前的最小支持版本。我们的CI验证了库和示例。
命令行界面和测试运行器需要更新的功能,并且不保持特定的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/
目录中。
依赖关系
~13–24MB
~373K SLoC