如何使用 PyEnchant 自动更正文本和 return 更正后的文本

How to correct text and return the corrected text automatically with PyEnchant

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

如何在不从 cmdlinechecker 手动使用 0 的情况下将更正后的文本从 c 变为 return?

程序应 运行 遍历包含未更正文本的字符串,更正它,并将其保存在变量中以导出到 MySQL 数据库中。

实际上我不熟悉 python 和您描述的库,但纠正文本的一般方法是使用字典方法。换句话说,这意味着您检查某个单词是否包含在法语词典(或法语单词列表)中,如果是,则该单词是正确的,否则使用词典中的单词。

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

完全符合我的预期。添加过滤器并自动更正所有小文本,使您能够执行关键字搜索等...

我花了 13 个小时才弄明白 ;(

就我的目的而言,您在此处提供的自动化级别风险太大——这些词将包含专有名词——所以我对系统进行了更多检查。

我将在稍后的过程中附加文件写入的更正。

认为这对其他人有帮助,因为文档对我来说还不够...

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())