是否有适用于Python的自动更正/自动完成库?

时间:2017-05-15 16:07:15

标签: python nlp chatbot

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

3 个答案:

答案 0 :(得分:3)

我猜你正在为像Slack这样的东西进行整合。使用自动更正功能可能非常危险,因为您可以"纠正"从中立状态到破坏状态的东西。 将您的输入设置为简单且描述性的样式会更安全。你也可以实现一个"你的意思是"功能有一些简单的字符计数,可以让用户看到他们搞砸了,然后提供正确输入正确的关键短语的选项。

输入:

derete file1.jpg

使用现有关键字设置检查可能的关键字位置0 ...添加/删除/删除

0/6匹配添加

2/6匹配删除

对已知关键字进行5/6匹配'删除',选择'删除'作为建议

输出:

您的意思是delete file1.jpg吗?

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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

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

import jamspell

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

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

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