import enchant
import wx
from enchant.checker import SpellChecker
from enchant.checker.wxSpellCheckerDialog import wxSpellCheckerDialog
from enchant.checker.CmdLineChecker import CmdLineChecker
a = "Ceci est un text avec beuacuop d'ereurs et pas snychro"
chkr = enchant.checker.SpellChecker("fr_FR")
chkr.set_text(a)
cmdln = CmdLineChecker()
cmdln.set_checker(chkr)
b = cmdln.run()
c = chkr.get_text() # returns corrected text
print c
如何c
从0
手动cmdlinechecker
手动返回更正后的文字?
程序应该运行包含未修正文本的字符串,更正它,并将其保存在变量中以导出到MySQL数据库。
答案 0 :(得分:7)
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 ;(
答案 1 :(得分:1)
实际上我不熟悉python和你描述的库,但正确的文本方法是使用字典方法。换句话说,这意味着你检查一个单词是否包含在法语词典(或法语单词列表)中,如果是这样,单词是正确的,否则使用词典中的单词。
答案 2 :(得分:0)
就我的目的而言,你在这里提供的自动化水平风险太大 - 这些词语将包括专有名词 - 所以我对系统进行了更多的检查。
我在此过程的后期附加了文件写入的更正。
认为这对其他人有帮助,因为文档对我来说还不够......
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())