domingo, 16 de septiembre de 2012

Buscando erros nun texto [python][Twitcode VII]

Todo o mundo comete erros o escribir, pero buscalos é abondo fácil, baste con usar isto:
def fails(src, dic):
    d = set(re.findall("\w+", dic))
    return [w for w in re.findall("\w+", src) if not w.lower() in d]
(20 + 35 + 68 = 123)

Usa a libraría das expresións regulares `re` para separar por verbas e un diccionario de referencia para face-las comprobacións, por exemplo:

>>> import re
>>> fails("A libraría estándar de python inclúe un módulo para manexar peticións HTTP, podemos usala para ver a url de resultado de un deses acurtadores que nunca sabemos onde irán levar, so tempos que importar a libraría `urllib` e facer isto:",
  open("/usr/share/dict/galician").read())
['python', 'incl', 'HTTP', 'usala', 'url', 'acurtadores', 'urllib']
>>>

E non ten moita máis miga, como curiosidade e reflexión se tedes un rato libre igual vos interesa un artigo que fala de que programar xa non é o que era e que agora ata o que tiña algo de complexidade como era un corrector é trivial (na lingua de Shakespeare), traduzo máis ou menos o final:
Avanza ata hoxe. Un programa que carga /usr/share/dict/words nunha tabla hash son 3-5 liñas de Perl o Python, dependendo de como o queiras poñer. Buscar unha palabra no diccionario nunha tabla hash é unha expresión trivial, unha incluida coa linguaxe. E xa está. Claro, podes atopar formas para reducir o tempo de carga ou a pegada de memoria, pero iso xa non é algo necesario. A implementación básica é tan descerebradamente trivial que pode ser un exercicio para o lector dun dos primeiros capitulos de calqueira tutorial de Python.

Iso é progreso.

Canta razón leva :)

No hay comentarios:

Publicar un comentario