import enchant
import wx
from enchant.checker import SpellChecker
from enchant.checker.wxSpellCheckerDialog import wxSpellCheckerDialog
from enchant.checker.CmdLineC
For my purposes, the level of automation you provided here was too risky -- the words were going to include proper nouns -- so I built a bit more of a check into the system.
I'm appending the corrections for a file-write later in the process.
Thought this would be helpful for others as the documentation wasn't quite sufficient for me...
for data_field in fields:
checker.set_text(str(data_field))
for err in checker:
print err.word
print err.suggest()
correct = raw_input("provide 0-index int of correct word or i to ignore, e to edit ")
if correct == 'i':
pass
elif correct == 'e':
suggest = raw_input("")
err.replace(suggest)
else:
correct = int(correct)
suggest = err.suggest()[correct]
err.replace(suggest)
corrected_text.append(checker.get_text())
Actually I am not familiar with python and the libraries you describe but the general approach to correct text is using a dictionary approach. This means in other words, that you check if a word is included in a French dictionary (or a list of French words) and if it is the case, the word is correct, otherwise use the word from the dictionary.
a = "Ceci est un text avec beuacuop d'ereurs et pas snychro"
chkr = enchant.checker.SpellChecker("fr_FR")
chkr.set_text(a)
for err in chkr:
print err.word
sug = err.suggest()[0]
err.replace(sug)
c = chkr.get_text()#returns corrected text
print c
Works exactly as I was intending to have it work. Add Filters and corrects all small text automatically enabling you to perform keyword searches etc...
Took me 13hrs to figure out ;(