Introducción al Procesamiento de Lenguaje Natural

S1: ¿Qué es NLP? Historia (Del Test de Turing a ChatGPT)

Prof. Francisco Suárez

Universidad Católica Boliviana

2026-03-17

Agenda de Hoy

Primera Parte

  1. 🎯 Bienvenida y Reglas del Juego
  2. 📊 Sistema de Evaluación
  3. 🤖 Política de uso de IA

Segunda Parte

  1. 🧠 ¿Qué es NLP?
  2. 📜 Historia y Evolución
  3. 💡 Aplicaciones Modernas

Bloque 1: Bienvenida y Reglas del Juego

Bienvenidos al Curso

NLP y Análisis Semántico

“El lenguaje es el vestido del pensamiento.” — Samuel Johnson

Este curso les llevará en un viaje desde los fundamentos del procesamiento de texto hasta los modelos de lenguaje más avanzados como ChatGPT y Claude.

Objetivo General

Desarrollar competencias teóricas y prácticas en el análisis computacional del lenguaje humano.

¿Qué Aprenderemos?

Fundamentos

  • Expresiones regulares
  • Tokenización y preprocesamiento
  • Modelos de lenguaje clásicos
  • Word Embeddings

Avanzado

  • Redes Neuronales Recurrentes
  • Arquitectura Transformer
  • BERT, GPT y LLMs
  • RAG y Aplicaciones

Sistema de Evaluación

Distribución de la Evaluación
Componente Peso Descripción
Examen 30% Evaluación teórica (Semanas 1-10)
Proyecto Grupal 30% Aplicación NLP completa
Ejercicios (Tareas) 20% 4 tareas prácticas de programación
Quizzes 10% Evaluaciones cortas bi-semanales
Participación 10% Asistencia y contribución en clase

Política de Inteligencia Artificial 🤖

Uso Permitido de LLMs

Se permite el uso de herramientas de IA (ChatGPT, Claude, Copilot, etc.) bajo las siguientes condiciones:

  1. Transparencia: Siempre declarar qué herramienta se utilizó
  2. Enlace compartido: Incluir el link de la conversación cuando sea posible
  3. Comprensión: Poder explicar y defender el código generado

⚠️ En Tareas y Exámenes

  • NO pedir la respuesta directa a un problema
  • consultar sobre pasos específicos de un procedimiento ya establecido
  • aclarar dudas conceptuales o de sintaxis

Ejemplos de Prompts: Permitidos vs. No Permitidos

❌ No Permitido

"Resuelve este ejercicio de TF-IDF 
para estos documentos: ..."

"Dame el código para clasificar 
sentimientos con BERT"

"¿Cuál es la respuesta a la 
pregunta 3 del examen?"

Pedir soluciones completas o respuestas directas

✅ Permitido

"¿Cómo se calcula el IDF de 
un término?"

"Tengo este error en PyTorch, 
¿qué significa?"

"Explícame la diferencia entre 
precision y recall"

Consultar conceptos, sintaxis o pasos específicos

Regla de Oro

Si el LLM hace tu trabajo, está mal. Si te ayuda a entender para que tú hagas el trabajo, está bien.

Bloque 2: ¿Qué es NLP?

Definición de NLP

El Procesamiento de Lenguaje Natural (NLP) es un campo interdisciplinario que se encuentra en la intersección de:

  • 💻 Ciencias de la Computación
  • 🧠 Inteligencia Artificial
  • 📖 Lingüística
Code
graph TD
    A[Ciencias de la<br>Computación] --> D[NLP]
    B[Inteligencia<br>Artificial] --> D
    C[Lingüística] --> D
    style D fill:#0077b6,stroke:#023e8a,color:#fff

graph TD
    A[Ciencias de la<br>Computación] --> D[NLP]
    B[Inteligencia<br>Artificial] --> D
    C[Lingüística] --> D
    style D fill:#0077b6,stroke:#023e8a,color:#fff

El Problema Fundamental

Comunicación Humana 🗣️

  • Ambigüedad inherente
  • Contexto implícito
  • Ironía y sarcasmo
  • Variaciones culturales
  • Errores gramaticales

“Vi al hombre con el telescopio” — ¿Quién lo tiene?

Comunicación de Máquinas 🖥️

  • Binario: 0 y 1
  • Instrucciones precisas
  • Sin ambigüedad
  • Determinístico
01001000 01101111 01101100 01100001

= “Hola” en ASCII

El Desafío

¿Cómo enseñamos a una máquina a entender el lenguaje humano con toda su complejidad?

Demostración: Tu Primer Código NLP

Veamos cómo una computadora “ve” una oración:

# Dividir una frase en palabras (tokenización básica)
oracion = "El procesamiento de lenguaje natural es fascinante"

# Método simple: split()
palabras = oracion.split()

print(f"Oración original: '{oracion}'")
print(f"Número de palabras: {len(palabras)}")
print(f"Lista de tokens: {palabras}")

# Ver cada palabra con su posición
for i, palabra in enumerate(palabras):
    print(f"  Token {i}: '{palabra}' (longitud: {len(palabra)})")
Oración original: 'El procesamiento de lenguaje natural es fascinante'
Número de palabras: 7
Lista de tokens: ['El', 'procesamiento', 'de', 'lenguaje', 'natural', 'es', 'fascinante']
  Token 0: 'El' (longitud: 2)
  Token 1: 'procesamiento' (longitud: 13)
  Token 2: 'de' (longitud: 2)
  Token 3: 'lenguaje' (longitud: 8)
  Token 4: 'natural' (longitud: 7)
  Token 5: 'es' (longitud: 2)
  Token 6: 'fascinante' (longitud: 10)

El Pipeline de NLP

Code
flowchart LR
    A[📥 Recolección<br>de Datos] --> B[🧹 Limpieza y<br>Preprocesamiento]
    B --> C[🔤 Tokenización]
    C --> D[📊 Extracción de<br>Características]
    D --> E[🤖 Modelado]
    E --> F[📈 Evaluación]
    F --> G[🚀 Despliegue]
    
    style A fill:#caf0f8,color:#000
    style B fill:#ade8f4,color:#000
    style C fill:#90e0ef,color:#000
    style D fill:#48cae4,color:#000
    style E fill:#00b4d8,color:#fff
    style F fill:#0096c7,color:#fff
    style G fill:#0077b6,color:#fff

flowchart LR
    A[📥 Recolección<br>de Datos] --> B[🧹 Limpieza y<br>Preprocesamiento]
    B --> C[🔤 Tokenización]
    C --> D[📊 Extracción de<br>Características]
    D --> E[🤖 Modelado]
    E --> F[📈 Evaluación]
    F --> G[🚀 Despliegue]
    
    style A fill:#caf0f8,color:#000
    style B fill:#ade8f4,color:#000
    style C fill:#90e0ef,color:#000
    style D fill:#48cae4,color:#000
    style E fill:#00b4d8,color:#fff
    style F fill:#0096c7,color:#fff
    style G fill:#0077b6,color:#fff

Preprocesamiento

  • Eliminación de ruido
  • Normalización
  • Tokenización
  • Lematización

Modelado

  • Representación vectorial
  • Entrenamiento
  • Inferencia
  • Fine-tuning

Bloque 3: Historia y Evolución

Línea del Tiempo del NLP

Code
timeline
    title Evolución del Procesamiento de Lenguaje Natural
    1950 : Test de Turing
         : "¿Pueden pensar las máquinas?"
    1954 : Experimento Georgetown-IBM
         : Primera traducción automática
    1966 : ELIZA
         : Primer chatbot
    1970s : Invierno de la IA
          : Desilusión y recortes
    1980s : Modelos Estadísticos
          : N-grams y probabilidad
    2013 : Word2Vec
         : Representaciones densas
    2017 : Transformer
         : "Attention is All You Need"
    2018 : BERT
         : Bidireccional
    2022 : ChatGPT
         : IA Generativa masiva

timeline
    title Evolución del Procesamiento de Lenguaje Natural
    1950 : Test de Turing
         : "¿Pueden pensar las máquinas?"
    1954 : Experimento Georgetown-IBM
         : Primera traducción automática
    1966 : ELIZA
         : Primer chatbot
    1970s : Invierno de la IA
          : Desilusión y recortes
    1980s : Modelos Estadísticos
          : N-grams y probabilidad
    2013 : Word2Vec
         : Representaciones densas
    2017 : Transformer
         : "Attention is All You Need"
    2018 : BERT
         : Bidireccional
    2022 : ChatGPT
         : IA Generativa masiva

1950: El Test de Turing 🎭

Alan Turing propuso en su artículo “Computing Machinery and Intelligence”:

“¿Pueden pensar las máquinas?”

. . .

El Juego de la Imitación:

  1. Un interrogador humano (C)
  2. Un humano (B)
  3. Una máquina (A)

Si C no puede distinguir entre A y B, la máquina “piensa”.

Code
graph TD
    C[🧑 Interrogador<br>C] -->|Preguntas| A[🤖 Máquina<br>A]
    C -->|Preguntas| B[👤 Humano<br>B]
    A -->|Respuestas| C
    B -->|Respuestas| C
    style C fill:#ffd166
    style A fill:#ef476f
    style B fill:#06d6a0

graph TD
    C[🧑 Interrogador<br>C] -->|Preguntas| A[🤖 Máquina<br>A]
    C -->|Preguntas| B[👤 Humano<br>B]
    A -->|Respuestas| C
    B -->|Respuestas| C
    style C fill:#ffd166
    style A fill:#ef476f
    style B fill:#06d6a0

1954: Experimento Georgetown-IBM 🌐

El primer sistema de traducción automática público:

  • Traducción del ruso al inglés
  • Solo 250 palabras de vocabulario
  • 6 reglas gramaticales
  • 60 oraciones traducidas

. . .

Predicción optimista: > “En 3 a 5 años, la traducción automática será un problema resuelto”

. . .

Spoiler

Tardamos más de 60 años en lograr traducciones de calidad con Neural MT.

Ejemplo traducido:

🇷🇺 “Мы передаём мысли посредством речи”

⬇️

🇺🇸 “We transmit thoughts by means of speech”

1966: ELIZA - El Primer Chatbot 💬

Creado por Joseph Weizenbaum en el MIT:

Características:

  • Simulaba un psicoterapeuta
  • Usaba pattern matching
  • Transformaba declaraciones en preguntas
  • Sin comprensión real

Ejemplo de conversación:

Usuario: Estoy muy triste hoy
ELIZA: ¿Por qué estás triste?

Usuario: Mi madre me critica
ELIZA: Cuéntame más sobre tu madre

Usuario: Ella nunca está satisfecha
ELIZA: ¿Quién más en tu familia 
       no está satisfecho?

Efecto ELIZA

Muchos usuarios creían que ELIZA realmente los “entendía”, demostrando nuestra tendencia a antropomorfizar las máquinas.

1970s: El Invierno de la IA ❄️

El Informe ALPAC (1966) concluyó:

“La traducción automática es más lenta, menos precisa y dos veces más costosa que la traducción humana”

. . .

Consecuencias:

  • 📉 Recortes masivos de financiamiento
  • 🚫 Cancelación de proyectos
  • 😔 Desilusión generalizada
  • 🔬 Investigación limitada por décadas

Limitaciones identificadas:

  1. Ambigüedad del lenguaje
  2. Conocimiento del mundo
  3. Capacidad computacional
  4. Datos insuficientes

1980s-2000s: Revolución Estadística 📊

El cambio de paradigma: De reglas a probabilidades

Enfoque basado en reglas:

SI palabra = "banco" Y 
   contexto = "dinero"
ENTONCES significado = "institución financiera"

Problema: ¿Cuántas reglas necesitamos?

Enfoque estadístico: \[P(\text{significado}|\text{contexto})\]

Aprender de datos en lugar de programar reglas.

  • N-gramas
  • Modelos de Markov
  • Naive Bayes

Cita Famosa

“Every time I fire a linguist, the performance of the speech recognizer goes up”
— Fred Jelinek, IBM (1985)

2013-2017: La Era de los Embeddings 🎯

Word2Vec (Mikolov et al., 2013) revolucionó la representación de palabras:

Antes: One-hot encoding

rey   = [1,0,0,0,0,...]
reina = [0,1,0,0,0,...]

No captura relaciones semánticas

Después: Dense vectors

rey   = [0.2, 0.8, -0.1, ...]
reina = [0.3, 0.7, -0.2, ...]

Palabras similares → vectores cercanos

La famosa analogía:

\[\vec{rey} - \vec{hombre} + \vec{mujer} \approx \vec{reina}\]

2017: Attention is All You Need 🔥

El paper que cambió todo: Transformer (Vaswani et al., 2017)

Innovaciones clave:

  1. Self-Attention: Cada palabra atiende a todas las demás
  2. Paralelización: Entrenamiento más eficiente que RNNs
  3. Escalabilidad: Mejor rendimiento con más datos

. . .

El mecanismo de atención: \[\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V\]

Code
graph TB
    subgraph Transformer
        A[Input] --> B[Encoder]
        B --> C[**Attention**]
        C --> D[Decoder]
        D --> E[Output]
    end
    style A fill:#ffffff,stroke:#333,stroke-width:2px,color:#000
    style B fill:#e3f2fd,stroke:#333,stroke-width:2px,color:#000
    style C fill:#ffcdd2,stroke:#d32f2f,stroke-width:4px,color:#000
    style D fill:#e3f2fd,stroke:#333,stroke-width:2px,color:#000
    style E fill:#ffffff,stroke:#333,stroke-width:2px,color:#000
    style Transformer fill:#ffffff,stroke:#333,color:#000
    linkStyle default stroke:#333,stroke-width:2px

graph TB
    subgraph Transformer
        A[Input] --> B[Encoder]
        B --> C[**Attention**]
        C --> D[Decoder]
        D --> E[Output]
    end
    style A fill:#ffffff,stroke:#333,stroke-width:2px,color:#000
    style B fill:#e3f2fd,stroke:#333,stroke-width:2px,color:#000
    style C fill:#ffcdd2,stroke:#d32f2f,stroke-width:4px,color:#000
    style D fill:#e3f2fd,stroke:#333,stroke-width:2px,color:#000
    style E fill:#ffffff,stroke:#333,stroke-width:2px,color:#000
    style Transformer fill:#ffffff,stroke:#333,color:#000
    linkStyle default stroke:#333,stroke-width:2px

2018-2022: BERT y GPT 🚀

BERT (Google, 2018)

Bidirectional Encoder Representations from Transformers

  • Bidireccional
  • Masked Language Model
  • Fine-tuning para tareas
  • Excelente para comprensión

GPT (OpenAI, 2018-2023)

Generative Pre-trained Transformer

  • Unidireccional (izq→der)
  • Causal Language Model
  • Few-shot learning
  • Excelente para generación

ChatGPT (Nov 2022)

GPT-3.5 + RLHF = La IA que llegó a 100 millones de usuarios en 2 meses.

Del Test de Turing a ChatGPT

Code
graph LR
    A[1950<br>Test de Turing<br>🤔 Filosofía] --> B[1960s<br>Reglas<br>📝 Simbólico]
    B --> C[1980s<br>Estadístico<br>📊 Probabilidad]
    C --> D[2013<br>Embeddings<br>🎯 Representación]
    D --> E[2017<br>Transformers<br>⚡ Atención]
    E --> F[2022<br>ChatGPT<br>🚀 AGI?]
    
    style A fill:#ffd166
    style B fill:#f4a261
    style C fill:#e76f51
    style D fill:#2a9d8f
    style E fill:#264653
    style F fill:#e63946

graph LR
    A[1950<br>Test de Turing<br>🤔 Filosofía] --> B[1960s<br>Reglas<br>📝 Simbólico]
    B --> C[1980s<br>Estadístico<br>📊 Probabilidad]
    C --> D[2013<br>Embeddings<br>🎯 Representación]
    D --> E[2017<br>Transformers<br>⚡ Atención]
    E --> F[2022<br>ChatGPT<br>🚀 AGI?]
    
    style A fill:#ffd166
    style B fill:#f4a261
    style C fill:#e76f51
    style D fill:#2a9d8f
    style E fill:#264653
    style F fill:#e63946

Bloque 4: Aplicaciones de NLP

Top 10 Aplicaciones de NLP

  1. 💬 Chatbots y Asistentes Virtuales
    • Siri, Alexa, Google Assistant
  2. 🌐 Traducción Automática
    • Google Translate, DeepL
  3. 😊 Análisis de Sentimiento
    • Monitoreo de redes sociales
  4. 🎤 Reconocimiento de Voz
    • Transcripción, dictado
  5. 📝 Generación de Texto
    • Escritura asistida, resúmenes
  1. 🔍 Búsqueda Semántica
    • Motores de búsqueda inteligentes
  2. 🏷️ Extracción de Información
    • NER, relaciones
  3. Question Answering
    • RAG, sistemas de soporte
  4. 📧 Filtrado de Spam
    • Clasificación de correos
  5. 🏥 NLP Biomédico
    • Análisis de literatura científica

¿Por qué NLP Ahora?

📊 Datos

  • Explosión de texto digital
  • Redes sociales
  • Digitalización de documentos

⚡ Cómputo

  • GPUs asequibles
  • Cloud computing
  • Entrenamiento distribuido

🧠 Algoritmos

  • Transformers
  • Transfer learning
  • Modelos pre-entrenados
Code
import matplotlib.pyplot as plt

años = [2018, 2019, 2020, 2021, 2022, 2023, 2024]
parametros = [0.1, 1.5, 175, 530, 540, 1000, 1800]  # En miles de millones

plt.figure(figsize=(10, 4))
plt.plot(años, parametros, marker='o', linewidth=2, markersize=8, color='#0077b6')
plt.fill_between(años, parametros, alpha=0.3, color='#00b4d8')
plt.xlabel('Año', fontsize=12)
plt.ylabel('Parámetros (miles de millones)', fontsize=12)
plt.title('Crecimiento del tamaño de modelos de lenguaje', fontsize=14)
plt.yscale('log')
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()

Resumen y Próximos Pasos

Lo que Aprendimos Hoy ✅

  1. Reglas del curso: Evaluación, política de IA, expectativas
  2. NLP = Ciencias de la Computación + IA + Lingüística
  3. Historia: Del Test de Turing (1950) a ChatGPT (2022)
  4. Evolución: Reglas → Estadística → Deep Learning → Transformers
  5. Aplicaciones: Traducción, chatbots, análisis de sentimiento…

Para la Próxima Clase 📚

Lectura:

  • Capítulo 1: Speech and Language Processing (Jurafsky & Martin)
  • Artículo: “Attention is All You Need” (opcional)

Preparación:

  • Instalar Python 3.10+
  • Crear entorno virtual
  • Instalar: nltk, spacy
pip install nltk spacy
python -m spacy download es_core_news_sm

Próxima Sesión: Expresiones Regulares 🔧

“Algunas personas, cuando se enfrentan a un problema, piensan: ‘Ya sé, usaré expresiones regulares.’ Ahora tienen dos problemas.”
— Jamie Zawinski

S2: Regular Expressions - La Navaja Suiza del NLP

Aprenderemos a buscar, extraer y manipular patrones de texto de forma eficiente.

¿Preguntas? 🙋

¡Gracias!

📧 fsuarez@ucb.edu.bo

🔗 Materiales: github.com/fjsuarez/ucb-nlp