MISIÓN 1 · Lección 3

Desarrollo de Aplicaciones de Análisis de Texto

En esta lección aprenderemos cómo transformar un modelo de análisis de texto en una aplicación funcional que pueda ser consumida por usuarios o integrarse en otros sistemas.

Arquitectura de una aplicación NLP

  1. Entrada: texto ingresado manualmente, archivos o datos de una API.
  2. Pipeline NLP: preprocesamiento → vectorización → modelo de predicción.
  3. Salida: etiquetas de sentimiento, puntuaciones, visualizaciones o endpoints de API.

Ejemplo: microservicio con FastAPI

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    text: str

@app.post("/predict")
async def predict(item: Item):
    # Ejemplo: probabilidad fija
    proba = 0.87
    label = "positivo" if proba > 0.5 else "negativo"
    return {"label": label, "score": proba}

Con FastAPI podemos crear un servicio que reciba texto y devuelva la predicción del modelo.

Conectar un modelo real

from sklearn.pipeline import Pipeline
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression

# Entrenamiento del modelo
X = ["me encanta", "lo odio", "genial", "terrible"]
y = [1, 0, 1, 0]

pipe = Pipeline([
  ("tfidf", TfidfVectorizer()),
  ("clf", LogisticRegression(max_iter=1000))
])
pipe.fit(X, y)

# Endpoint con modelo real
@app.post("/predict_model")
async def predict_model(item: Item):
    label = pipe.predict([item.text])[0]
    proba = pipe.predict_proba([item.text])[0,1]
    return {"label": "positivo" if label == 1 else "negativo", "score": float(proba)}

Interfaz gráfica simple

Podemos usar Streamlit para crear una interfaz web rápida:

import streamlit as st

st.title("Análisis de Sentimientos")
texto = st.text_area("Escribe un texto:")

if st.button("Analizar"):
    resultado = pipe.predict([texto])[0]
    st.write("Resultado:", "Positivo" if resultado == 1 else "Negativo")

Persistencia y monitoreo

Buenas prácticas

Ejemplo de despliegue con Docker

# Dockerfile
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .

Luego ejecutar: docker build -t nlp-app . y docker run -p 8000:80 nlp-app

Aplicaciones reales

Reflexión final

Convertir modelos en aplicaciones es clave para crear valor real. Al integrar APIs, interfaces gráficas y monitoreo, aseguramos que el análisis de texto sea útil y escalable en entornos productivos.