I've now made a vastly improved spellcorrector specifically tied into Django and it's models. It's the old class as before but hooked up to models so Django can take care of persisting the trained words. Again, I have to give tribute to Peter Norvig for his inspirational blog How to Write a Spelling Corrector which a large majority of my code is based in. At least in the tricky parts.
What's nice about this little app is that it's very easy to plug in and use. You just download it, put it on your PATH and include it in your
INSTALLED_APPS. Then from another app you do something like this:
from spellcorrector.views import Spellcorrector sc = Spellcorrector() sc.load() # nothing will happen the first time sc.train(u"peter") print sc.correct(u"petter") # will print peter sc.save() sc2 = Spellcorrector() sc2.load() print sc2.correct(u"petter") # will print peter
This is my first django-*** app I've wrapped up and released in github so I'm not even near certain that I've done it right.
I'll try to keep the project updated and more approachable but right now it works in one of my production sites so I'm confident the code is ok.