Skip to content
BotServBotServ
OllamaAnálisis de datosClasificaciónExtracciónInformes

Análisis de datos con Ollama

Ollama para análisis de textos, tablas y logs. Resúmenes, clasificación, extracción e informes.

S

schutzgeist

4 min read
Análisis de datos con Ollama

Análisis de datos con Ollama

Qué cubre este artículo sobre análisis de datos con Ollama

  • Qué tareas de análisis puede asumir Ollama.
  • Cómo evaluar textos, tablas y registros.
  • Cómo obtener salidas estructuradas.
  • Ejemplos de clasificación, extracción e informes.
  • Consejos para calidad, rendimiento y protección de datos.

Introducción: Análisis de datos con Ollama

Los modelos de lenguaje no solo generan texto, sino que también lo analizan. Ollama es especialmente adecuado para esto porque los datos permanecen locales y el contenido sensible no necesita enviarse a servicios externos. Correos electrónicos, tickets de soporte, archivos de registro, contratos o descripciones de productos se pueden clasificar, resumir o convertir en datos estructurados de forma automática.

Este artículo muestra qué tareas de análisis de datos puede realizar Ollama y cómo implementarlas en la práctica.

Términos clave

  • Clasificación: asignación de un texto a una categoría.
  • Extracción: filtrado de información específica.
  • Resumen: compresión de un texto.
  • Análisis de sentimiento: detección del tono emocional.
  • Structured Output: salida en un formato definido.
  • Prompt Template: estructura de entrada recurrente.
  • Named Entity Recognition: reconocimiento de nombres, lugares o términos.
  • Batch: procesamiento de varios elementos simultáneamente.

Casos de uso

  • Ordenar correos o tickets por categoría.
  • Evaluar comentarios de clientes por sentimiento.
  • Buscar contratos por palabras clave.
  • Verificar registros de error en patrones.
  • Estructurar descripciones de productos.
  • Resumir documentos.
  • Extraer entidades como personas o empresas.
  • Derivar tablas a partir de textos.

Clasificación

Un prompt simple para categorización:

import requests

def classify(text, model="llama3.1"):
    url = "http://localhost:11434/api/generate"
    prompt = f"""Klassifiziere den folgenden Text als eine der Kategorien:
    - Technisch
    - Finanziell
    - Persönlich
    - Spam

    Text: {text}

    Antwort nur mit der Kategorie."""

    response = requests.post(url, json={
        "model": model,
        "prompt": prompt,
        "stream": False
    })
    return response.json()["response"].strip()

print(classify("Meine Rechnung ist falsch."))

Resumen

def summarize(text, model="llama3.1"):
    prompt = f"Fasse den folgenden Text in drei Sätzen zusammen:\n\n{text}"
    response = requests.post(
        "http://localhost:11434/api/generate",
        json={"model": model, "prompt": prompt, "stream": False}
    )
    return response.json()["response"]

Extracción

def extract_entities(text, model="llama3.1"):
    prompt = f"""Extrahiere aus dem folgenden Text die Personennamen, Orte und Organisationen.
    Gib die Antwort als JSON zurück:

    {{"persons": [], "locations": [], "organizations": []}}

    Text: {text}"""

    response = requests.post(
        "http://localhost:11434/api/generate",
        json={"model": model, "prompt": prompt, "stream": False}
    )
    return response.json()["response"]

Análisis de tablas

Ollama también puede evaluar tablas en formato CSV o Markdown:

def analyze_table(table_text, model="llama3.1"):
    prompt = f"""Analysiere die folgende Tabelle und nenne die drei wichtigsten Erkenntnisse:

    {table_text}"""

    response = requests.post(
        "http://localhost:11434/api/generate",
        json={"model": model, "prompt": prompt, "stream": False}
    )
    return response.json()["response"]

Análisis de registros

def analyze_log(log_text, model="llama3.1"):
    prompt = f"""Analysiere die folgenden Logeinträge und nenne die häufigsten Fehlertypen:

    {log_text}"""

    response = requests.post(
        "http://localhost:11434/api/generate",
        json={"model": model, "prompt": prompt, "stream": False}
    )
    return response.json()["response"]

Salidas estructuradas

Para obtener resultados estructurados se requiere un formato claro:

Gib die Antwort ausschliesslich als JSON zurück:

{
  "category": "Technisch",
  "confidence": 0.9,
  "keywords": ["Netzwerk", "Fehler"]
}

Sin embargo, los modelos no siempre devuelven JSON válido. Por eso las salidas deben validarse.

Procesamiento por lotes

import json

texts = ["Text eins", "Text zwei", "Text drei"]

results = []
for text in texts:
    result = classify(text)
    results.append({"text": text, "category": result})

with open("ergebnisse.json", "w") as f:
    json.dump(results, f, indent=2, ensure_ascii=False)

Consejos

  • Define las categorías de forma clara y mutuamente excluyente.
  • Incluye ejemplos en el prompt cuando sea necesario.
  • Mantén la temperatura baja para una clasificación consistente.
  • Analiza y valida las salidas.
  • Utiliza modelos con buena comprensión textual.
  • Para documentos largos, fragmenta primero.
  • Mantén los datos sensibles locales, no los envíes a servicios externos.

Trampas comunes

  • Salidas inconsistentes: el modelo devuelve a veces JSON, a veces texto libre.
  • Demasiadas categorías: el modelo rechaza categorías incorrectas.
  • Documentos largos: la ventana de contexto es insuficiente.
  • Formato incorrecto: el análisis falla.
  • El modelo alucina: extrae datos que no existen.
  • Temperatura demasiado alta: resultados inestables.
  • Prompt muy genérico: la clasificación resulta imprecisa.

Enlaces y recursos adicionales

FAQ: Análisis de datos con Ollama

¿Puede Ollama entender tablas? Sí, especialmente cuando están en formato Markdown o CSV.

¿Es fiable la clasificación? Para categorías simples generalmente sí, para dominios complejos es mejor hacer pruebas.

¿Cuántos textos puedo analizar? Tantos como lo permitan el hardware y el tiempo disponible. El procesamiento por lotes es posible.

¿Necesito salida en JSON? No es obligatorio, pero facilita el procesamiento posterior.

¿Cuál es el mejor modelo para análisis? llama3.1, qwen2.5 o mistral son buenas opciones versátiles.

Fuentes y lecturas adicionales

Resumen: Análisis de datos con Ollama

Ollama es una herramienta eficaz para análisis de datos local. Los textos se pueden clasificar, resumir, evaluar y estructurar. Con prompts claros, scripts simples y procesamiento por lotes se pueden automatizar tareas de análisis recurrentes. Lo importante es definir categorías, validar salidas y elegir el modelo adecuado. Quien analiza datos localmente cumple con la protección de datos y puede evaluar contenido sensible sin riesgo.

Volver al blog
Share:

Entradas relacionadas