如何使用PyEnchant自动更正文本并返回更正后的文本

时间:2015-06-24 12:20:09

标签: python python-2.7 spell-checking 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

如何c0手动cmdlinechecker手动返回更正后的文字?

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

3 个答案:

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