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.
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
NLTK
Natural Language Toolkit. Librería educativa perfecta para aprender los conceptos básicos (tokenización, parsing) del procesamiento del lenguaje.
AprendizajespaCy
La herramienta más usada en producción. Rápida y precisa en reconocimiento de entidades, etiquetado POS y análisis de dependencias.
ProducciónPandas
Herramienta esencial para manipular datos tabulares: filtrar, limpiar, transformar y analizar grandes volúmenes de datos lingüísticos.
DatosNumPy
La base matemática del PLN. Operaciones eficientes con vectores y matrices que representan el lenguaje en forma numérica.
CálculoHugging Face
Hub de modelos Transformers preentrenados. Acceso a miles de modelos listos para fine-tuning y datasets para PLN.
Estado del arteDatos 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 PLNCorpus 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 corpusMatemá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".
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.
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", "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(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.
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).
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.
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.
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→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
Inicializa un repositorio Git en tu proyecto
Marca archivos para incluir en el próximo commit (staging)
Guarda una instantánea con un mensaje descriptivo
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.