Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Chatbots clásicos, Unidad 4 — Chatbots basados en patrones, 4.1 — Pattern matching ·

Expresiones regulares

Expresiones regulares

Introducción

Las expresiones regulares son un componente esencial en la creación de chatbots clásicos basados en reglas y patrones. Permiten buscar, extraer o manipular partes específicas del texto que los usuarios introducen al sistema. Estas herramientas son fundamentales para implementar funcionalidades precisas y eficientes sin recurrir a modelos generativos.

Explicación principal

Las expresiones regulares (o regex) permiten definir patrones de búsqueda complejos en texto. En el contexto de los chatbots clásicos, estas herramientas se utilizan para analizar la entrada del usuario y determinar qué acción o respuesta generar a continuación. Aquí te presentamos cómo usar expresiones regulares en chatbots basados en reglas.

Ejemplo básico

Supongamos que queremos crear un chatbot que identifique si el usuario solicita información sobre un producto específico. Podemos definir una expresión regular para buscar la palabra "producto" seguida de cualquier cosa:

Producto\s+\w+

En este caso, Producto es literalmente la palabra "Producto", \s+ busca uno o más espacios en blanco y \w+ busca una o más letras o números.

Bloque de código

A continuación se presenta un ejemplo sencillo usando Python con el módulo re:

import re

def detect_product_query(message):
    pattern = r'Producto\s+\w+'
    match = re.search(pattern, message)
    
    if match:
        return f"Se ha detectado una consulta sobre producto: {match.group(0)}"
    else:
        return "No se encontraron consultas sobre productos"

# Prueba del chatbot
print(detect_product_query("Quiero información sobre el Producto 12345"))

Errores típicos / trampas

Trampa 1: Ignorar la distinción entre mayúsculas y minúsculas

Las expresiones regulares no son case-sensitive por defecto. Si quieres que sean lo suficientemente precisas, debes usar re.IGNORECASE o [A-Z] para capturar mayúsculas:

Producto\s+[a-zA-Z0-9]+

Trampa 2: Falta de delimitadores

Las expresiones regulares requieren delimitadores. Si omites estos, no funcionarán como esperas:

pattern = r'Producto\s+\w+'  # Corrección necesaria

Trampa 3: Ignorar espacios en blanco innecesarios

Asegúrate de incluir espacios en blanco apropiadamente en tus patrones. Falta de espacios puede hacer que la expresión regular no funcione:

Producto\s+\w+           # Correcto
# Producto\sw+             # Incorrecto

Checklist accionable

  1. Definir claramente los patrones: Asegúrate de entender completamente qué texto deseas buscar.
  2. Usar delimitadores adecuados: Incluye ^ al principio y $ al final para indicar el inicio y fin del texto, respectivamente.
  3. Añadir espacios en blanco según sea necesario: Mantén un equilibrio entre precisión y flexibilidad.
  4. Probar tu expresión regular: Utiliza herramientas online para probar diferentes patrones antes de implementarlos.
  5. Usa la función re.search() o re.match(): Verifica si se encuentra un match en la cadena.

Cierre: Siguientes pasos

  • Aprender más sobre expresiones regulares: Explora recursos como el sitio web de regex101 para profundizar en su uso.
  • Implementar expresiones regulares en tu chatbot: Utiliza las expresiones regulares definidas para mejorar la funcionalidad del chatbot.
  • Monitorear y optimizar: Continúa mejorando y ajustando tus patrones basados en los datos de uso real.

Siguiendo estos consejos, podrás implementar eficazmente expresiones regulares en tu chatbot clásico y mejorar significativamente su capacidad para interpretar la entrada del usuario.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).