So PyEnchant allows you to define a personal word list of correctly spelled words in addition to a language dictionary:
d2 = enchant.DictWithPWL("en_US","mywords.txt")
However, the resulting d2
checker is of class Dict
, which can only be used to check a single word, e.g.:
>>> d.check("Hello")
True
The SpellChecker
class allows spellchecking of a block of text. However, I can't seem to find out how to specify a personal word list as with Dict
. Is this not a supported feature? I'd like to spellcheck a block of text against en_US plus my personal word list. Any ideas?
The first argument of the SpellChecker initializer can be both the name of a language or an enchant dictionary:
from enchant import DictWithPWL
from enchant.checker import SpellChecker
my_dict = DictWithPWL("en_US", "mywords.txt")
my_checker = SpellChecker(my_dict)
my_checker.set_text("This is sme sample txt with erors.")
for error in my_checker:
print "ERROR:", error.word
The documentation isn't clear about this, but the code is available :)
来源:https://stackoverflow.com/questions/22898355/pyenchant-spellchecking-block-of-text-with-a-personal-word-list