hfst-ospell:基于HFST优化格式的拼写检查库与命令行测试工具

这是一个基于HFST优化查找格式的拼写检查库,包含命令行拼写检查器的演示实现,可集成到外部程序,依赖libxml++2和libarchive,适用于实际应用开发。【此简介由AI生成】

分支1Tags1

Hfst-ospell 库及简易命令行测试工具

这是一个基于 hfst 优化查找格式的最小化拼写检查库,并附带了一个命令行拼写检查器的演示实现。该库采用 Apache 2.0 版本许可证授权,其他许可证可从赫尔辛基大学获取。

构建状态

依赖项

  • libxml++2
  • libarchive

Debian 依赖包

  • libxml++2-dev
  • libarchive-dev

使用方法

在外部程序中使用:

#include <ospell.h>

编译项目时添加:

$(pkg-config --cflags hfstospell)

链接时添加:

$(pkg-config --libs hfstospell)

编程示例

库位于命名空间 hfst_ospell 中。将(带权重的!)Transducer 指针传递给 Speller 构造函数,例如:

FILE * error_source = fopen(error_filename, "r");
FILE * lexicon_file = fopen(lexicon_filename, "r");
hfst_ospell::Transducer * error;
hfst_ospell::Transducer * lexicon;
try {
    error = new hfst_ospell::Transducer(error_source);
    lexicon = new hfst_ospell::Transducer(lexicon_file);
} catch (hfst_ospell::TransducerParsingException& e) {
    /* 处理 transducer 文件问题,通常是文件类型完全不符——头部没有用于检查的魔数 */
}
hfst_ospell::Speller * speller;
try {
    speller = new hfst_ospell::Speller(error, lexicon);
} catch (hfst_ospell::AlphabetTranslationException& e) {
    /* 处理两个字母表之间的转换问题 */
}

使用以下函数进行交互:

// 如果行内容在词典中找到,返回 true
bool hfst_ospell::Speller::check(char * line);

// CorrectionQueue 是一个按权重排序的优先队列
hfst_ospell::CorrectionQueue hfst_ospell::Speller::correct(char * line);

具体用法示例可参考 main.cc

命令行工具

Main.cc 提供了一个演示工具,其帮助信息如下:

用法:hfst-ospell [选项] 错误源 词典  
    在标准输入上运行错误源和词典的组合,并输出修正结果  

选项:  
  -h, --help                  显示此帮助信息  
  -V, --version               显示版本信息  
  -v, --verbose               详细输出  
  -q, --quiet                 不显示详细信息(默认)  
  -s, --silent                同 quiet  

报告问题至 hfst-bugs@ling.helsinki.fi  

实际应用

基于 HFST 的拼写检查器可通过 voikko 应用于实际场景。Voikko 可进一步与 enchant、libreoffice 及 firefox 等工具集成使用。

项目介绍

这是一个基于HFST优化查找格式的拼写检查库,包含命令行拼写检查器的演示实现,可集成到外部程序,依赖libxml++2和libarchive,适用于实际应用开发。【此简介由AI生成】

定制我的领域