Python 是否有任何 auto-correct/auto-complete 库?

Are there any auto-correct/auto-complete libraries for Python?

我正在制作一个聊天机器人,希望用户能够正确拼写,让后端的一切变得更容易。那里有自动更正 and/or 自动完成库吗?

我猜您正在为 Slack 之类的东西进行集成。使用自动更正功能可能非常危险,因为您可能 "correct" 从中立状态到破坏性状态。 将您的输入设置为简单但具有描述性的样式会安全得多。您还可以通过一些简单的字符计数实现 "did you mean" 功能,让用户看到他们搞砸了,然后提供正确输入正确关键短语的选项。

输入:

derete file1.jpg

检查现有关键字集可能的关键字位置 0...add/remove/delete

0/6 匹配添加

2/6 匹配删除

5/6 匹配已知关键字 'delete',选择 'delete' 作为建议

输出:

你是说 delete file1.jpg 吗?

我认为这样会更安全,编码起来也不会太痛苦。只要有一个函数可以遍历每个字符并在字符匹配时递增计数器。它远非完美,但如果您想手动制作它,那将是朝着正确方向迈出的一步。

gman 在另一个答案中所说的是个好主意,有时尝试强制自动更正可能 "correct" 正确的单词适合上下文但不在自动更正数据库中并将它们替换为正确的词在上下文中没有意义。

一个python自动完成库:https://github.com/phatpiglet/autocorrect

另请参阅:https://github.com/mattalcock/blog/blob/master/2012/12/5/python-spell-checker.rst

尝试 jamspell - 它对自动拼写更正非常有效(考虑上下文):

import jamspell

corrector = jamspell.TSpellCorrector()
corrector.LoadLangModel('en.bin')

corrector.FixFragment('Some sentnec with error')
# u'Some sentence with error'

但是它有时会打断正确的单词(根据他们的文档,不到 1% 的情况)