Volver al inicio

Sistema de semántica multiagente con ensemble

El sistema automatiza la recopilación y el clustering de palabras clave usando Bukvarix/XMLRiver, Fuzzy Dedup, NLP + SERP Veto. El ensemble multiagente DeepSeek asegura estabilidad de filtrado del 85%. Pipeline procesa 3000 palabras clave en 20–30 min.

Del script al sistema de semántica multiagente
Advertisement 728x90

Automatización Semántica Multiagente con Votación en Ensemble

Este script automatiza la recopilación de datos semánticos: introduce una máscara, obtiene datos de frecuencia y exporta a tabla. Reemplaza el tedioso flujo Wordstat → Excel. Utiliza dos fuentes de datos: la API gratuita Bukvarix para cobertura amplia de sinónimos (con retraso mensual) y XMLRiver pagado para datos en tiempo real mediante proxy a Yandex XML (sin CAPTCHA).

XMLRiver soporta tres tipos de frecuencia:

  • Básico: reparación de apartamento → 45.661
  • Exacto: "reparación de apartamento" → 12.340
  • Refinado: [!apartamento !reparación] → 8.912

Las consultas se ejecutan en paralelo en 10 hilos con lógica de reintento. El heurístico de competitividad usa la fórmula: puntuación = (palabras * 1000) / (frecuencia + 1). Los resultados se colorean:

Google AdInline article slot
  • 🟢 FÁCIL (>50)
  • 🟡 MEDIO (10–50)
  • 🔴 DIFÍCIL (<10)

Pipeline Optimizado de Procesamiento de Palabras Clave

Un enfoque directo falla con más de 3.000 palabras clave por duplicidad en consultas SERP. El pipeline filtra paso a paso:

  • Recopilación: Bukvarix o XMLRiver → ~3.000 palabras clave.
  • Escudo Regex: elimina ruido (ofertas laborales, fragmentos de Avito, términos incompletos).
  • Deduplicación Borrosa: lematización con pymorphy2 + rapidfuzz (token_sort_ratio ≥82%, agrupado por primera palabra) → ~1.500–2.000 únicos.
  • Recopilación SERP: 10 hilos por palabra clave única.
  • Agrupación: NLP + Veto SERP.
  • Intención y Métricas.

El umbral del 82% fue ajustado empíricamente: elimina entre 30–40% de duplicados (por morfología), sin fusionar frases distintas como "precio de reparación de apartamento" y "costo de reparación de apartamento".

Agrupación con Veto SERP

SentenceTransformers (paraphrase-multilingual-MiniLM-L12-v2) generan embeddings. Desafío NLP: términos semánticamente similares (ej. "reparación de apartamento Moscú" vs. "reparación de apartamento Voronezh") no compiten.

Google AdInline article slot

Veto SERP: si los TOP-10 resultados de Yandex tienen <2 URLs superpuestos, se tratan como clusters separados:

overlap = len(urls_core.intersection(urls_cand))
if urls_core and urls_cand and overlap < 2:
    continue  # clusters diferentes

Modos:

  • Solo NLP: rápido, basado en embeddings.
  • Solo SERP: preciso, lento, basado en URLs.
  • Híbrido: NLP + Veto — equilibrio óptimo.

Aislamiento geográfico: palabras clave de ciudades distintas no se agrupan juntas.

Google AdInline article slot

Filtrado AI Multiagente con Votación en Ensemble

LLM (DeepSeek) clasifica: adecuado / irrelevante / menos / revisar. Problemas: inestabilidad (38% estable en 3 ejecuciones), falta de contexto nicho.

PlannerAgent

Genera planes específicos para nichos usando few-shot prompting, detección de trampas y filtrado geográfico.

Ejemplo:

  • ADECUADO: "reparación de apartamento llave en mano Moscú"
  • IRRELEVANTE: "empleo reparación de apartamento"

Optimización de Tokens

Numeración de IDs: el modelo devuelve solo IDs, no texto. Tamaño de lote de 20 claves → ~80 tokens frente a ~400 anteriormente.

Votación en Ensemble

Tres ejecuciones paralelas (temperatura=0), voto mayoritario (umbral=2/3). Empate → ArbiterAgent.

def single_vote(_):
    response = ai_client.call(system_prompt, user_message, temperature=0)
    return ai_client.parse_json(response)

with ThreadPoolExecutor(max_workers=votes) as vote_pool:
    vote_results = list(vote_pool.map(single_vote, range(votes)))

counts = Counter(votes_for_keyword)
threshold = votes // 2 + 1

Resultado: estabilidad ~85%. Costo: $0.3 por 3.000 palabras clave.

Modo Paranoico: lista blanca (coincidencias exactas de tokens, no substrings) para marcas — evitando completamente al AI.

Módulos Adicionales

Módulo SERP: analiza resultados orgánicos, búsquedas relacionadas, anuncios y respuestas neuronales.

Asistente AI: interfaz de chat con pandas.query() sobre el dataframe.

Conclusiones Clave

  • El pipeline reduce las solicitudes SERP de 3.000 a 1.500 mediante Deduplicación Borrosa (rapidfuzz + pymorphy2).
  • La agrupación híbrida combina velocidad del NLP con precisión del Veto SERP.
  • La votación en ensemble (3x) aumenta la estabilidad del filtrado AI a 85%.
  • Ahorro de tokens: numeración de IDs + lotes → $0.3 por ejecución completa.
  • Tiempo de procesamiento: 20–30 minutos frente a 3–4 horas manualmente.

Pila Tecnológica: Python 3.11, DeepSeek API, XMLRiver, SentenceTransformers, rapidfuzz, pymorphy2, pandas, customtkinter.

— Editorial Team

Advertisement 728x90

Leer después