我在我的应用程序中使用 aspell 进行拼写检查(ac/c++ 应用程序),我想用它在自定义工作列表中找到最佳替代方案。我不想使用标准字典,因为我只想在我的单词列表中查找单词。我可以找到将单词添加到字典的方法(aspell_speller_add_to_personal 和 aspell_speller_add_to_session),但我不知道如何从一个空字典开始,然后我可以在运行时填充它。
有没有人这样做过,或者知道怎么做?或者,对于在单词列表中选择“最佳匹配”的算法有什么建议吗?
我大约三年前就这样做了。这是一种复杂的方式,包括从现有文件创建字典数据结构、删除它并使用 aspeller::Dictionary::add() 添加单词。这很艰难。
如果您不必使用 aspell,您可以尝试hunspell,它可能更容易定制,也可能不容易定制。
另请参阅Peter Norvig关于编写拼写校正器的伟大论文。