2015-06-24 5 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 कैसे मिलता है cmdlinechecker से मैन्युअल रूप से 0 का उपयोग किए बिना सुधारा पाठ वापस जाने के लिए के लिए?कैसे पाठ को सही और सही पाठ स्वचालित रूप से वापस 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

मैं देखता हूं कि आपने वहां क्या किया। आपका दायरा सटीक सही और समझने योग्य पाठ होना है, इसलिए आपके पास मैन्युअल जांच है, जिसमें पीईएनचेंट में एक इनबिल्ड फ़ंक्शन है जिसे सीएमडीलाइन चेकर कहा जाता है, जिसे आप इसे देखना चाहते हैं। मेरे कार्यक्रम का उद्देश्य मूल पाठ को आयात करना है, लेकिन इसे छोड़कर इसे छोड़ दें, पृष्ठभूमि में "एरोर" "फालीर" "porblem" जैसे महत्वपूर्ण महत्वपूर्ण शब्द सही ढंग से स्वचालित रूप से और सही टेक्स्ट से कीवर्ड आधारित क्रियाओं के माध्यम से ट्रिगर करें। इस मामले के लिए err.suggest [0] में 98,87% की शुद्धता है, भले ही सही पाठ वास्तव में मनुष्यों के लिए कोई समझ नहीं लेता है –

+0

हाँ, मैं cmdlinchecker का उपयोग कर रहा था जब मैंने पहली बार चीजों को सेट किया लेकिन महसूस किया कि यह बातचीत करने के लिए अजीब था । शायद यह "बस मुझे" था ... –

संबंधित मुद्दे