我需要python中的拼写检查器。 我看过以前的答案,它们似乎都已经过时或不适用:
Python spell checker using a trie这个问题是关于数据结构的。
Python Spell Checker这是一个拼写校正器,有两个字符串。
http://norvig.com/spell-correct.html经常被引用并且很有趣,但还是一个拼写校正器,尽管我可能会结合使用检查器,但准确性还不够好。
Spell Checker for Python使用不再被维护的pyenchant。
Python: check whether a word is spelled correctly还建议不要维护Pyenchant。
我需要的一些细节:
这里最好的方法是什么?是否有任何维护的库?我需要下载字典并进行核对吗?
答案 0 :(得分:1)
2个最近的Python库,均基于针对任务优化的Levenshtein最小编辑距离:
应该提到的是,上面的symspellpy链接是原始SymSpell C#实现its description is here的Python端口。原始的SymSpell Github存储库包括a dictionary with word frequencies。
Spello包含有关30K新闻和30K Wikipedia文章的基本预训练模型。但是最好在您的域中的自定义语料库上对其进行训练。
答案 1 :(得分:0)
如果您需要按单词进行简单检查,则只需要单词集(最好与您的术语相匹配),将其读入python set中,然后对每个单词进行成员资格检查即可。
一旦/如果您对此天真的实现有疑问,将深入研究具体问题。
答案 2 :(得分:0)
您可以在Python中使用专用的拼写检查库,称为enchant
要检查一个单词的拼写是否正确,即该单词是否存在于英语中,您要做的就是:
import enchant
d = enchant.Dict("en_US")
d.check("scienc")
这将给出输出:
False
关于这个库最好的部分是它建议单词的正确拼写。例如:
d.suggest("scienc")
将给出输出:
['science', 'scenic', 'sci enc', 'sci-enc', 'scientist']
此库中有更多功能。例如,在上面的示例代码中,我使用了美国英语语料库(“ en_US”)。您可以使用其他英语语料库,例如“ en_AU”代表澳大利亚英语,“ en_CA”,“ en_GB”代表加拿大和英国,仅举几例。还提供非英语支持,例如法语的“ fr_FR”!
对于高级用法,该库可用于根据自定义单词列表检查单词(如果您有一组专有名词,此功能将派上用场)。这只是一个列出要考虑的单词的文件,每行一个单词。以下示例为存储在“ my_custom_words.txt”中的个人单词列表创建Dict对象:
custom_d = enchant.request_pwl_dict("my_custom_words.txt")
要查看更多功能及其其他方面,请参阅: http://pyenchant.github.io/pyenchant/