[Python-es] regex

lasizoillo lasizoillo en gmail.com
Jue Ene 27 23:24:02 CET 2011


El día 27 de enero de 2011 22:14, chakalinux <chakalinux en gmail.com> escribió:
> Tan mal me explico ? a ver. quería buscar una cadena teniendo en cuenta unos
> patrones, los patrones pueden variar su orden (a, b, c OR b, c, a OR c, b ,a
> [...]) peor ya lo he resuelto.
>
> Es un programa para el irc que conecta a una base de datos sqlite3 y
> responde según la pregunta, por ejemplo:
>
> pepito: Que es ubuntu?
> bot: pepito, http://es.wikipedia.org/wiki/Ubuntu
>
> La respuesta del bot es automática, en este caso los patrones son: "que es
> ubuntu", si el usuario pepito hubiera preguntado:
>
> pepito: ubuntu ... y eso que es ?
>

linux_boy: creo que ubuntu es la mejor distro para empezar
bot: linux_boy, http://es.wikipedia.org/wiki/Ubuntu

linux_boy: tiovivo, con ubuntu no pasaría
tiovivo: eso que es?
linux_boy: tiovivo, mira en http://es.wikipedia.org/wiki/Ubuntu

El algoritmo que propones va a fallar con falsos positivos (primer
ejemplo) y falsos negativos (segundo ejemplo). La gran ventaja es que
es muy simple. Si te interesa el tema del procesamiento del lenguaje
natural puedes echarle un vistazo al libro del nltk:
http://www.nltk.org/book

Para implementar tu algoritmo yo usaría sets. Es facil con ellas ver
si un conjunto de palabras (ubuntu, que, es) está contenido en el
conjunto de palabras del mensaje de IRC.

Saludos:

Javi


Más información sobre la lista de distribución Python-es