[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