Powrót do strony głównej

Wieloagentowy system semantyki z ensemblem

System automatyzuje zbieranie i klasteryzację słów kluczowych z użyciem Bukvarix/XMLRiver, Fuzzy Dedup, NLP + SERP Veto. Wieloagentowy ensemble DeepSeek zapewnia 85% stabilności filtrowania. Pipeline przetwarza 3000 kluczy za 20–30 min.

Od skryptu do wieloagentowego systemu semantyki
Advertisement 728x90

System wieloagentowy do automatyzacji semantyki z głosowaniem zespołowym

Skrypt rozwiązuje problem automatycznego zbierania semantyki: wprowadzenie maski, pobranie częstotliwości, eksport do tabeli. Zastępuje rutynowy cykl Wordstat → Excel. Wykorzystuje dwa źródła danych: darmowe API Bukvarix do szerokiego zakresu słów kluczowych z synonimami (z opóźnieniem o kilka miesięcy) oraz płatne XMLRiver do czasu rzeczywistego przez proxy do Yandex XML (bez CAPTCHA).

XMLRiver obsługuje trzy rodzaje częstotliwości:

  • Podstawowa: remont mieszkań → 45 661
  • Dokładna: "remont mieszkań" → 12 340
  • Uściślona: [!remont !mieszkania] → 8 912

Zapytania przetwarzane równolegle na 10 wątkach z logiką ponownych prób. Heurystyka konkurencyjności oparta na wzorze: score = (liczba_słów * 1000) / (częstotliwość + 1). Wynik: 🟢 ŁATWO (>50), 🟡 ŚREDNIO (10–50), 🔴 TRUDNO (<10).

Google AdInline article slot

Optymalizowany pipeline przetwarzania kluczy

Przy ponad 3000 kluczach podejście bezpośrednie jest nieefektywne: powtarzające się zapytania SERP. Pipeline filtruje krok po kroku:

  • Zbieranie: Bukvarix lub XMLRiver → ~3000 kluczy.
  • Regex Shield: usuwanie śmieci (oferty pracy, Avito, fragmenty).
  • Fuzzy Dedup: lematyzacja pymorphy2 + rapidfuzz (token_sort_ratio ≥82%, grupowanie po pierwszym słowie) → ~1500–2000 unikalnych.
  • Zbieranie SERP: 10 wątków dla unikalnych kluczy.
  • Klasteryzacja: NLP + Veto SERP.
  • Intencja i metryki.

Progi 82% wybrano empirycznie: eliminuje 30–40% duplikatów (morfologia), nie łączy «remont mieszkania cena» i «remont mieszkania koszt».

Klasteryzacja z Veto SERP

SentenceTransformers (paraphrase-multilingual-MiniLM-L12-v2) do generowania embeddingów. Problem NLP: semantycznie bliskie klucze («remont mieszkań Moskwa» / «remont mieszkań Woroneż») nie konkurują.

Google AdInline article slot

Veto SERP: TOP-10 Yandex, przecięcie URL <2 → różne klastry:

overlap = len(urls_core.intersection(urls_cand))
if urls_core and urls_cand and overlap < 2:
    continue  # różne klastry

Tryby:

  • Tylko NLP: embeddingi, szybko.
  • Tylko SERP: według URL, dokładnie, wolno.
  • Hybrydowy: NLP + Veto, optymalnie.

Izolacja geograficzna: klucze z różnymi miastami nie są klasteryzowane.

Google AdInline article slot

Wieloagentowa filtryzacja AI z głosowaniem zespołowym

LLM (DeepSeek) klasyfikuje: suitable / irrelevant / minus / check. Problemy: niestabilność (38% stabilnych przy 3 przebiegach), brak kontekstu branży.

PlannerAgent

Generuje plan branżowy: few-shot, pułapki, filtr geograficzny.

Przykład:

  • SUITABLE: «remont mieszkania pod klucz moskwa».
  • IRRELEVANT: «praca remont mieszkań».

Optymalizacja tokenów

Numeracja ID: model zwraca tylko ID, nie tekst. Partia 20 kluczy: ~80 tokenów zamiast 400.

Głosowanie zespołowe

3 równoległe przebiegi (temperature=0), majority vote (progi 2/3). Remis → 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

Wynik: stabilność ~85%. Koszt: $0.3 za 3000 kluczy.

Tryb Paranoiczny: Whitelist (tokeny, nie substring) dla marek — pomijając AI.

Dodatkowe moduły

Moduł SERP: parsowanie organicznych wyników, powiązanych zapytań, reklam, odpowiedzi neuronowych.

Asystent AI: czat z pandas.query() nad DataFrame.

Co ważne

  • Pipeline zmniejsza liczbę zapytań SERP z 3000 do 1500 dzięki Fuzzy Dedup (rapidfuzz + pymorphy2).
  • Hybrydowa klasteryzacja łączy szybkość NLP z dokładnością Veto SERP.
  • Głosowanie 3x zwiększa stabilność filtrowania AI do 85%.
  • Oszczędność tokenów: numeracja ID + partie → $0.3 za pełen przebieg.
  • Czas przetwarzania: 20–30 minut zamiast 3–4 godzin ręcznie.

Stos: Python 3.11, DeepSeek API, XMLRiver, SentenceTransformers, rapidfuzz, pymorphy2, pandas, customtkinter.

— Editorial Team

Advertisement 728x90

Czytaj dalej