5
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

如何在不使用手动 fromc的情况下返回更正后的文本?0cmdlinechecker

该程序应该遍历包含未更正文本的字符串,更正它,并将其保存在一个变量中以导出到 MySQL DB。

4

3 回答 3

8
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 小时才弄清楚 ;(

于 2015-06-26T09:43:46.440 回答
1

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

于 2015-06-25T07:28:00.777 回答
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())
于 2015-07-02T03:23:33.640 回答