我最近安装了pyspellchecker
,但它似乎无法正常工作。我该如何修复?
from spellchecker import SpellChecker
spell = SpellChecker()
spell.correction('hapenning')
# 'happenning' -> that's ok
spell.correction('helo')
# 'helo' -> not ok
spell.known(['adress'])
# {'adress'} -> not ok
以下是我的版本:
Python 3.8.10
pyspellchecker
Name: pyspellchecker
Version: 0.6.3
Summary: Pure python spell checker based on work by Peter Norvig
Home-page: https://github.com/barrust/pyspellchecker
Author: Tyler Barrus
Author-email: barrust@gmail.com
License: MIT
Location: /home/edmz/.local/lib/python3.8/site-packages
Requires:
Required-by:
1条答案
按热度按时间c3frrgcw1#
我将假设您为这些拼写错误的单词寻找的正确答案:
将是:
但你会得到:
这是因为
spell.correction(word)
* 返回拼写错误的单词 * 的最可能结果如果我们改变
distance' variable to
1.'我们会得到:如果查看
pyspellchecker
的代码,您会发现它在使用spell.correction
时调用此函数我们可以直接调用这个函数。
所产生的单词列表有243种变体:
这些单词中的绝大多数在《英语词典》中都找不到。
如果我们不再使用函数
spell.correction(word)
,而是使用函数spell.candidates(word)
,您可以看到spell.edit_distance_1(word)
生成的所有有效字因此,对于您的输入单词
helo
,有12个可能的候选项。让我们记住,spell.correction(word)
* 返回拼写错误单词 * 的最可能结果。这是基于文章How to Write a Spelling Corrector中讨论的Probability Theory
。pyspellchecker
是基于本文设计的。我希望我的回答能让您了解为什么
helo
变成了help
而不是hello
。