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.
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.
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)}
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")
/docs).# 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
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.