Sto cercando un modo per creare una funzione in python in cui passi una stringa e restituisca se è scritta correttamente. Non voglio controllare un dizionario. Invece, voglio che controlli i suggerimenti di ortografia di Google. In questo modo, i nomi delle celebrità e altri nomi propri verranno conteggiati correttamente.come implementare il correttore ortografico di python usando google "volevi dire?"
Ecco dove sono finora. Funziona la maggior parte del tempo, ma mette a disagio alcuni nomi di celebrità. Ad esempio, cose come "cee lo green" o "posner" vengono contrassegnate come errate.
import httplib
import xml.dom.minidom
data = """
<spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1">
<text> %s </text>
</spellrequest>
"""
def spellCheck(word_to_spell):
con = httplib.HTTPSConnection("www.google.com")
con.request("POST", "/tbproxy/spell?lang=en", data % word_to_spell)
response = con.getresponse()
dom = xml.dom.minidom.parseString(response.read())
dom_data = dom.getElementsByTagName('spellresult')[0]
if dom_data.childNodes:
for child_node in dom_data.childNodes:
result = child_node.firstChild.data.split()
for word in result:
if word_to_spell.upper() == word.upper():
return True;
return False;
else:
return True;
Attenzione: [5.3 L'utente accetta di non accedere (o tentare di accedere) a nessuno dei Servizi con qualsiasi mezzo diverso dall'interfaccia fornita da Google, a meno che non sia stato specificamente autorizzato a farlo in un accordo separato con Google. L'utente accetta espressamente di non accedere (o tentare di accedere) a nessuno dei Servizi tramite qualsiasi mezzo automatizzato (incluso l'uso di script o web crawler) e garantisce di rispettare le istruzioni riportate in qualsiasi file robots.txt presente sui Servizi. .] (http://www.google.com/accounts/TOS) – sarnold
Non sembra che iterate correttamente su 'result'. – eumiro
https://bitbucket.org/mchaput/whoosh/wiki/Home – Surya