Ir al contenido principal

[NPL][Ejercicio 1]: Expresiones Regulares

  Escribe expresiones regulares para los siguientes lenguajes:

  1. el conjunto de todas las cadenas alfabéticas;
  2. el conjunto de todas las cadenas alfabéticas en minúscula que terminan en una b;
  3. el conjunto de todas las cadenas del alfabeto a,b tal que cada a está inmediatamente precedida y seguida por una b.

Solución:

  1. [A-Za-z]+
  2. [a-z]*b
  3. *b(ab)*

 Escribir expresiones regulares para los siguientes lenguajes:

  1. el conjunto de todas las cadenas que tienen dos palabras consecutivas repetidas (por ejemplo, “Humbert Humbert” y “the the”, pero no “the bug” o “the big bug”);
  2. todas las cadenas que comienzan al principio de la línea con un número entero y que terminan al final de la línea con una palabra;
  3. todas las cadenas que tienen tanto la palabra “grotto” como la palabra “raven” en ellas (pero no, por ejemplo, palabras como “grottos” que simplemente contienen la palabra “grotto”);
  4. escribir un patrón que coloque la primera palabra de una oración en inglés en un registro. Tratar con la puntuación.

Solución:

  1. (\b\w+\b)\s+\1
    1. Explicación:
      1. (: Inicio del grupo de captura.
      2. \b: Coincide con el límite de una palabra.
      3. \w+: Coincide con uno o más caracteres alfanuméricos.
      4. \b: Coincide con el límite de una palabra.
      5. ): Fin del grupo de captura.
      6. \s+: Coincide con uno o más espacios en blanco.
      7. \1: Coincide con el mismo texto que se encuentra en el primer grupo de captura.
  2. ^\d+\s.*\b(\w+)$
    1. Explicación:
      1. ^: Coincide con el inicio de la línea.
      2. \d+: Coincide con uno o más dígitos.
      3. \s: Coincide con un espacio en blanco.
      4. .*: Coincide con cualquier carácter cero o más veces.
      5. \b: Coincide con el límite de una palabra.
      6. (\w+): Coincide con una o más letras, números o guiones bajos. Este es el grupo de captura que se utilizará para extraer la palabra al final de la cadena de texto.
      7. $: Coincide con el final de la línea.
  3. \b(?=\wgrotto)(?=\wraven)\w+
    1. Explicación:
      1. \b: Coincide con el límite de una palabra.
      2. (?=\wgrotto): Es una búsqueda positiva hacia adelante que coincide con cualquier palabra que comience con “grotto”.
      3. (?=\wraven): Es otra búsqueda positiva hacia adelante que coincide con cualquier palabra que comience con “raven”.
      4. \w+: Coincide con una o más letras, números o guiones bajos. Este es el grupo de captura que se  utilizará para extraer la palabra que contiene tanto “grotto” como “raven”.
  4. ([A-Za-z]+)[A-Za-z]*
    1. Explicación:
      1. (: Inicio del grupo de captura.
      2. [A-Za-z]+: Coincide con una o más letras mayúsculas o minúsculas.
      3. ): Fin del grupo de captura.
      4. [A-Za-z]*: Coincide con cero o más letras mayúsculas o minúsculas. Este es el grupo de captura que se utilizará para capturar los caracteres adicionales después de la primera palabra.
      5. $: Coincide con el final de la línea.

Comentarios

Entradas populares de este blog

[CIVILIZACION][MODELOS] La Civilización Hiper-Avanzada y la Escala Kardashev

La Civilización Hiper-Avanzada y la Escala Kardashev ¿Qué es la Escala Kardashev? La Escala Kardashev es un marco propuesto en 1964 por el astrofísico Nikolai Kardashev para clasificar civilizaciones según su capacidad de aprovechar energía: Tipo I: Aprovecha toda la energía disponible en su planeta (~10¹⁶ watts). Nosotros estamos en ~0,72 según Carl Sagan. Tipo II: Captura toda la energía de su estrella (por ejemplo, con una esfera de Dyson). ~10²⁶ watts. Tipo III: Controla la energía de toda su galaxia (~10³⁶ watts). Carl Sagan propuso una fórmula para grados intermedios: K = [log10(Potencia en watts) - 6] / 10 La humanidad (~1,74 × 10¹³ watts) = ~0,72 en esta escala. ¿Cómo se podría acelerar la transición a Tipo II o III si obviamos la ética? Si ignoramos la moral, la estrategia sería pragmática y extrema: Centralización extrema del poder: Unificación bajo un mando único global tecnocrático. Explotación total de recursos: Minería planetaria masiva, co...

[Validación Cruzada] [Machine Learning] [Evaluación de Modelos] [Ciencia de Datos] [R Programming] [Resampling] Validación Cruzada: Concepto y Técnicas Principales

Validación Cruzada: Concepto y Técnicas Principales Validación Cruzada: Concepto y Técnicas Principales La validación cruzada es un conjunto de técnicas utilizadas para evaluar la capacidad de generalización de un modelo de machine learning. Su objetivo principal es determinar cómo de bien puede el modelo desempeñarse con datos no vistos, proporcionando una evaluación más robusta y fiable en comparación con dividir los datos en un simple conjunto de entrenamiento y prueba. Principales Técnicas de Validación Cruzada 1. K-Fold Cross Validation (Validación Cruzada K-Fold) El conjunto de datos se divide en \(k\) particiones o "pliegues" de igual tamaño. El modelo se entrena \(k\) veces: en cada iteración, un pliegue diferente se utiliza como conjunto de prueba y los \(k-1\) pliegues restantes como conjunto de entrenamiento. La métrica final (por ejemplo, precisión, F1, etc.) se c...

Encontré 42 GB de modelos de IA fosilizados en mi PC: una puesta al día honesta sobre IA local, conceptos y entornos Python en 2026

Hace tiempo que no tocaba nada de IA en mi PC, y al echar un ojo descubrí varios programas que no recordaba para qué eran y, sobre todo, modelos de hace año y medio acumulando polvo en el disco. Lo que empezó como una limpieza acabó siendo una puesta al día completa: Ollama, conceptos fundamentales, mapa del ecosistema, comparativas, y un setup de Python desde cero. Lo dejo aquí ordenado por si a alguien le sirve. 1. El punto de partida: 42 GB de modelos zombi Lo primero que encontré fue Ollama corriendo en segundo plano (ese icono pequeño en la barra de tareas que llevaba meses sin tocar). Un ollama list reveló cinco modelos descargados hacía 18 meses, ocupando casi 42 GB: llama-3-8B-programming-questions — 16 GB SuperNova-Medius-Q8_0 — 15 GB uncensored_wizard_7b — 4.1 GB llama3.2 — 2 GB llama3.1 — 4.7 GB En el mundo de la IA, 18 meses son una eternidad. Han salido Llama 3.3 y 4, Qwen 2.5 y 3, DeepSeek-V3 y R1, Gemma 3 y 4, gpt-oss... cualquiera de los nu...