2015-06-24 2 views
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 

Как получить c вернуть исправленный текст без использования 0 вручную из cmdlinechecker?Как исправить текст и автоматически вернуть исправленный текст с PyEnchant

Программа должна проходить через строку, содержащую нескорректированный текст, исправлять его и сохранять в переменной для экспорта в базу данных MySQL.

ответ

6
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 

Работы точно так же, как я собирался заставить его работать. Добавить фильтры и исправляет все небольшие текстовые автоматически позволяет выполнять поиск по ключевым словам и т.д. ...

Взял меня 13hrs, чтобы выяснить, (

+0

Спасибо, ваш ответ мне помог. Наряду с этим я также обнаружил, что в одной и той же библиотеке есть функция store_replacement (mis, cor), где хранится замещающее слово для пропущенного слова: Но я не могу реализовать его должным образом иначе, это также может быть возможное решение. – user3050590

1

На самом деле я не знаком с питоном и библиотеками, которые вы описываете, но общий подход к правильному тексту использует подход с использованием словаря. Это означает, другими словами, что вы проверяете, включено ли слово во французский словарь (или список французских слов), и если это так, это слово верно, иначе используйте слово из словаря.

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

Я вижу, что вы там делали. Ваша цель состоит в том, чтобы иметь точный скорректированный и понятный текст, поэтому у вас есть ручная проверка, что в PyEnchant есть встроенная функция, которая называется CmdLineChecker, вы можете взглянуть на нее. Цель моей программы - импортировать исходный текст, но оставить его как есть, правильно исправить критические слова, такие как «eror» «faliur» «porblem», в фоновом режиме, автоматически и инициировать посредством действий на основе ключевых слов из исправленного текста. Ошибка err.suggest [0] в этом случае имеет точность 98,87%, хотя исправленный текст действительно не имеет смысла для людей. –

+0

Да, я использовал cmdlinchecker, когда я впервые задал вопросы, но чувствовал, что было неловко взаимодействовать с , возможно, это было «только я» ... –

 Смежные вопросы

  • Нет связанных вопросов^_^