Saltar al contenido
Fundamentos

Fundamentos técnicos

Herramientas, habilidades técnicas y el ecosistema necesario para trabajar en lingüística computacional.

Informática y lógica de programación

Python y el ecosistema de herramientas fundamentales para trabajar en PLN.

💻
Habilidades técnicas

Programación y ecosistema

Python es el lenguaje estándar en IA y PLN. Dominar su ecosistema es fundamental para cualquier profesional.

🐍

¿Por qué Python?

Python es el lenguaje de programación más utilizado en inteligencia artificial y procesamiento del lenguaje natural. No es casualidad: su sintaxis clara lo hace accesible para personas sin formación técnica, mientras que su enorme ecosistema de librerías especializadas permite construir aplicaciones profesionales.

Sintaxis legible

Se lee casi como inglés, ideal para principiantes.

Comunidad enorme

Millones de desarrolladores comparten soluciones.

Librerías especializadas

Herramientas listas para PLN, ML y ciencia de datos.

Estándar de la industria

La mayoría de proyectos de IA usan Python.

Pensamiento algorítmico

Más allá de saber programar, necesitas desarrollar la capacidad de convertir problemas lingüísticos en instrucciones paso a paso. Por ejemplo, convertir el problema "analizar la estructura de un párrafo" en pasos concretos que un ordenador pueda seguir.

Automatización

Diseñar procesos que lean y transformen millones de textos tomando decisiones lógicas ("¿es un verbo? guárdalo; si no, ignóralo").

Estructuración

Organizar datos en memoria: cuándo una oración es una secuencia ordenada y cuándo un vocabulario funciona mejor como sistema de consulta rápida.

Manipulación de Texto

Descomponer, limpiar y normalizar texto "crudo", transformando palabras humanas en inputs limpios para algoritmos.

Librerías esenciales

📦
Formatos de datos

Datos estructurados

JSON, XML y YAML: los formatos que empaquetan texto para que las máquinas lo procesen.

¿Por qué son importantes para PLN?

En PLN trabajas constantemente con datos estructurados: APIs devuelven resultados en JSON, corpus lingüísticos usan XML para anotar sintaxis y semántica, datasets de Hugging Face se configuran con YAML. Saber leer, escribir y transformar estos formatos es fundamental para cargar datos, consumir servicios externos y configurar experimentos.

JSON (JavaScript Object Notation) es el formato más extendido en la web moderna. Es ligero, legible y se usa en prácticamente todas las APIs de PLN. Cuando consultas un modelo de Hugging Face, cuando guardas resultados de un experimento o cuando estructuras datasets, estás trabajando con JSON. Un tweet, por ejemplo, se representa como un objeto JSON con campos como "id", "usuario", "texto" y "hashtags".

XML (Extensible Markup Language) es el formato tradicional de corpus académicos y textos anotados. Aunque más verboso que JSON, permite representar estructuras jerárquicas complejas. Corpus como el Penn Treebank o proyectos de humanidades digitales usan XML para etiquetar sintaxis, metadatos y relaciones entre elementos textuales.

YAML (YAML Ain't Markup Language) es el formato favorito para archivos de configuración en machine learning. Su sintaxis basada en sangría (similar a Python) lo hace muy legible. Cuando defines hiperparámetros de entrenamiento (número de epochs, learning rate, batch size) o configuras pipelines de datos, usas YAML.

📚 Profundiza en JSON/XML para PLN

Si quieres ver cómo se usan estos formatos en herramientas reales de ingeniería lingüística, visita la sección de:

Frameworks y librerías de PLN
📊
Materia prima

Corpus y datasets

Los modelos son tan buenos como los datos con los que se entrenan. Los corpus son la materia prima esencial del PLN.

¿Qué es un corpus y por qué es fundamental?

Un corpus (plural: corpora) es una colección de textos compilados sistemáticamente para estudiar el lenguaje. Puede ser tan simple como miles de tweets recopilados, o tan complejo como un corpus anotado manualmente con etiquetas sintácticas y semánticas. Sin datos de calidad, los modelos no pueden aprender: un corpus sesgado producirá un modelo sesgado, datos ruidosos darán predicciones imprecisas.

Gestionar corpus implica: recopilar textos relevantes (scraping, APIs, transcripciones), limpiar ruido (HTML, duplicados, errores), anotar lingüísticamente (POS tags, entidades, sentimiento), y versionar cambios para reproducibilidad. Los corpus pueden ser crudos (solo texto plano, útiles para pre-entrenamiento) o anotados (con etiquetas lingüísticas añadidas por humanos o modelos). La calidad de la anotación determina la calidad del modelo: guías claras, múltiples anotadores y medidas de acuerdo inter-anotador son fundamentales para garantizar datos confiables.

🚀 Profundiza en gestión de datos

La creación y curación de corpus es una competencia profesional clave. Aprende más en:

Gestión de datos y curación de corpus
🔢
Fundamentos

Matemáticas clave

Intuición matemática para entender qué pasa "bajo el capó" de los modelos. No necesitas ser matemático, pero sí entender estos conceptos fundamentales.

Álgebra lineal

Los ordenadores no entienden palabras directamente: las convierten en números. Todo el PLN moderno usa matemáticas de vectores y matrices para representar el significado del lenguaje. Sin álgebra lineal, no hay embeddings, ni atención, ni Transformers.

Vectores (Embeddings)

Cada palabra se representa como una lista de números (un vector en espacio multidimensional). Palabras con significados parecidos tienen vectores similares. Esto permite operaciones como "rey - hombre + mujer ≈ reina".

"rey" → [0.5, -0.2, 0.9, 0.1, ...] (768 dimensiones)

Ejemplo: BERT representa cada palabra con un vector de 768 números.

🎬 Visualización: Espacio vectorial de embeddings

Observa cómo las palabras con significados similares se agrupan en el espacio vectorial, y cómo las operaciones algebraicas capturan relaciones semánticas.

Matrices (transformaciones y embeddings)

Las matrices son tablas de números que transforman vectores. Fundamental en PLN: cuando un modelo convierte IDs de palabras en vectores (proceso llamado lookup de embedding), usa una matriz de embedding donde cada fila es el vector de una palabra del vocabulario.

Embedding Matrix: [30000 palabras × 768 dimensiones]
palabra_id=4521 → fila 4521 → vector [0.2, -0.5, 0.8, ...]

Los Transformers usan matrices masivas (Weight Matrices) para proyectar vectores en diferentes subespacios (Query, Key, Value) y calcular atención.

Producto punto (similitud semántica)

Operación clave para medir similitud entre dos vectores. Cuanto mayor el producto punto, más parecidos son los vectores. Se usa en búsqueda semántica, recuperación de información (RAG) y en el mecanismo de atención de Transformers.

similitud("gato", "felino") = 0.85 (alta)
similitud("gato", "piedra") = 0.02 (baja)

Dimensionalidad y proyecciones

Los embeddings suelen tener cientos de dimensiones (768 en BERT, 1536 en GPT-3). Para visualizarlos, usamos técnicas de reducción de dimensionalidad (PCA, t-SNE) que proyectan vectores de alta dimensión a 2D/3D conservando relaciones semánticas.

Probabilidad

Los modelos de lenguaje son modelos probabilísticos: predicen qué palabra es más probable dada una secuencia de contexto. Todo se basa en calcular y manipular probabilidades.

Probabilidad condicionada

La base de la generación de texto: P(palabra | contexto). ¿Qué tan probable es que la próxima palabra sea "mañana" si el contexto es "hasta"?

P(mañana | hasta) ≈ 0.75 (muy probable)
P(elefante | hasta) ≈ 0.0001 (casi imposible)

Distribuciones de probabilidad

Cómo se reparten las probabilidades en el espacio. La Ley de Zipf describe que en lenguaje natural pocas palabras son muy frecuentes ("el", "de") y muchas palabras son raras ("nefelibata").

Los LLMs generan texto muestreando de una distribución de probabilidad sobre todo el vocabulario.

Teorema de Bayes

Fundamental en clasificadores probabilísticos (Naive Bayes para spam detection) y para entender inferencia bayesiana: actualizar creencias dada nueva evidencia.

Estadística descriptiva

Antes de entrenar modelos complejos, necesitas entender tus datos. La estadística descriptiva te da herramientas para resumir y caracterizar corpus de texto: longitudes de documentos, frecuencias de palabras, variabilidad.

Media (promedio)

Suma todos los valores y divide entre el total. Útil para saber la longitud media de documentos en tu corpus.

Documentos: [10, 50, 100, 200] palabras
Media = (10+50+100+200)/4 = 90 palabras

Mediana (valor central)

El valor que queda en el medio cuando ordenas los datos. Más robusta que la media ante valores extremos (outliers).

Ordenados: [10, 50, 100, 200]
Mediana = 75 palabras (entre 50 y 100)

Moda (más frecuente)

El valor que más se repite. En PLN, la moda de palabras revela qué términos dominan tu corpus.

Palabras: ["el", "de", "el", "la", "el"]
Moda = "el" (aparece 3 veces)

Desviación estándar

Mide cuánto varían los datos respecto a la media. Alta desviación = datos muy dispersos. Crítico para detectar outliers y normalizar.

Si σ = 10, el 68% de documentos está
entre (media-10) y (media+10) palabras

Ejemplo práctico: Si tu corpus tiene media=100 palabras/doc pero desviación=200, significa que tienes documentos MUY variados (algunos de 10 palabras, otros de 500). Esto puede requerir normalización o filtrado antes de entrenar.

Estocasticidad en LLMs

Los modelos no son deterministas; "tiran dados" para elegir la siguiente palabra. Parámetros comoTemperaturecontrolan cómo manipulamos esa distribución de probabilidad.

📚 Profundiza en estadística para PLN

Si quieres dominar los fundamentos matemáticos del PLN (distribuciones, inferencia bayesiana, modelos probabilísticos), consulta el libro clásico:

📖Foundations of Statistical Natural Language Processing
🛠️
Herramientas

Entorno profesional

Herramientas para trabajar fuera de cuadernos de estudio y colaborar en equipos reales.

💻

Terminal / Línea de comandos

La terminal (también llamada shell, bash o línea de comandos) es la interfaz de texto para controlar tu ordenador sin ratón ni ventanas. ¿Por qué es importante para PLN? Porque casi todos los servidores, clusters de computación (GPUs en la nube) y entornos de producción funcionan en Linux mediante terminal. Necesitas saber navegar carpetas, ejecutar scripts de Python, instalar dependencias y monitorizar procesos largos de entrenamiento.

Comandos esenciales:

$ cd mi-proyecto/        # Cambiar de directorio
$ ls -la                  # Listar archivos (incluso ocultos)
$ python train.py --help  # Ejecutar script con argumentos
$ nvidia-smi              # Ver uso de GPUs
$ htop                    # Monitorizar CPU/RAM
$ tail -f logs.txt        # Ver logs en tiempo real

💡 Consejo: Dominar la terminal te hace 10x más eficiente. Tareas que tomarían minutos con interfaz gráfica se hacen en segundos con comandos.

📦

Entornos virtuales (venv, conda)

Un entorno virtual es como una "burbuja aislada" donde instalas versiones específicas de Python y librerías sin afectar tu sistema global. ¿Por qué son fundamentales? Porque diferentes proyectos requieren diferentes versiones de librerías (un proyecto puede usar spaCy 3.0, otro spaCy 3.7). Sin entornos virtuales, todo se mezcla y acabas con conflictos de dependencias.

venv (nativo Python)

python -m venv mi_entorno
source mi_entorno/bin/activate
pip install transformers

conda (Anaconda)

conda create -n nlp python=3.10
conda activate nlp
conda install pytorch

💡 Buena práctica: SIEMPRE crea un entorno virtual nuevo para cada proyecto. Guarda las dependencias en requirements.txt para reproducibilidad.

🔀

Git y GitHub

Git es un sistema de control de versiones: guarda "instantáneas" de tu código en cada momento, permitiendo volver atrás si rompes algo. GitHub es una plataforma online donde alojas repositorios Git y colaboras con otros. ¿Por qué son imprescindibles? Porque el 100% de proyectos profesionales de PLN usan Git. Sin Git, no puedes contribuir a código open source, colaborar en equipo ni mostrar tu portfolio.

Flujo básico de Git

git init

Inicializa un repositorio Git en tu proyecto

git add archivo.py

Marca archivos para incluir en el próximo commit (staging)

git commit -m "descripción de cambios"

Guarda una instantánea con un mensaje descriptivo

git push origin main

Sube tus cambios al repositorio remoto (GitHub)

Conceptos clave de Git

Branches (ramas)

Crear versiones paralelas del código para experimentar sin romper la versión principal (main). Ej: git checkout -b nueva-feature

Pull Requests (PR)

Proponer cambios para que otros los revisen antes de fusionarlos. Esencial para colaboración en equipo.

Merge conflicts

Cuando dos personas editan la misma línea de código. Git te obliga a resolver manualmente el conflicto.

.gitignore

Archivo que lista qué NO subir a Git (modelos pesados, datos privados, credenciales, entornos virtuales).

GitHub es tu portfolio: Los reclutadores revisan tu perfil de GitHub para ver qué proyectos has hecho, cómo escribes código y si contribuyes a open source. Mantén un perfil activo con README claros y commits regulares.

Explora las herramientas disponibles

Desde regex y NLTK hasta Hugging Face Transformers.