홈으로 돌아가기

앙상블이 포함된 멀티에이전트 시맨틱 시스템

Bukvarix/XMLRiver, Fuzzy Dedup, NLP + SERP Veto를 사용하여 키워드 수집 및 클러스터링을 자동화하는 시스템. 멀티에이전트 DeepSeek 앙상블이 85% 필터링 안정성을 보장. 파이프라인이 20–30분 내 3000 키워드 처리.

스크립트에서 멀티에이전트 시맨틱 시스템으로
Advertisement 728x90

다중 에이전트 세마틱 코어 자동화: 앙상블 투표 기반 최적화

이 스크립트는 세마틱 데이터 수집을 자동화합니다: 마스크 입력 → 빈도 데이터 획득 → 테이블로 내보내기. 복잡한 워드스타트 → 엑셀 작업 흐름을 대체합니다. 두 가지 데이터 소스를 활용합니다: 무료인 부크바릭스 API(광범위한 동의어 커버리지, 월간 지연 있음)와 유료 XMLRiver(프록시를 통해 야후 XML에 접속, CAPTCHA 없음)를 사용해 실시간 데이터 확보.

XMLRiver는 세 가지 빈도 유형을 지원합니다:

  • 기본: 아파트 수리 → 45,661
  • 정확: "아파트 수리" → 12,340
  • 세부 조정: [!아파트 !수리] → 8,912

쿼리는 10개 스레드에서 병렬 실행되며 재시도 로직 포함. 경쟁력 히우리스틱 공식은 다음과 같습니다: 점수 = (단어 수 × 1000) / (빈도 + 1). 결과는 색상으로 구분됩니다:

Google AdInline article slot
  • 🟢 쉬움 (>50)
  • 🟡 보통 (10–50)
  • 🔴 어려움 (<10)

최적화된 키워드 처리 파이프라인

직접 접근 방식은 3,000개 이상의 키워드에서 실패합니다. 중복 SERP 쿼리 문제 발생. 파이프라인은 단계별 필터링을 수행합니다:

  • 수집: 부크바릭스 또는 XMLRiver → 약 3,000개 키워드.
  • 정규식 보호막: 불필요한 정보 제거 (구인 광고, 아비토 조각, 완성되지 않은 용어).
  • 퍼지 중복 제거: pymorphy2 형태소 분석 + rapidfuzz (token_sort_ratio ≥82%, 첫 번째 단어 기준 그룹화) → 약 1,500~2,000개 고유 키워드.
  • SERP 수집: 고유 키워드당 10개 스레드.
  • 클러스터링: NLP + SERP 거부 정책.
  • **의도 및 메트릭 분석.

82% 임계값은 경험적으로 조정되었습니다: 형태학적 중복 30~40% 제거 가능하지만, '아파트 수리 가격'과 '아파트 수리 비용'처럼 의미가 다른 표현은 혼합하지 않습니다.

SERP 거부 정책을 통한 클러스터링

SentenceTransformers (paraphrase-multilingual-MiniLM-L12-v2)가 임베딩 생성. NLP 도전 과제: 의미적으로 유사한 용어(예: "아파트 수리 모스크바" vs. "아파트 수리 보론체즈")는 경쟁하지 않음.

Google AdInline article slot

SERP 거부 정책: 상위 10개 야후 결과에서 겹치는 URL이 2개 미만이면 별도 클러스터로 간주:

overlap = len(urls_core.intersection(urls_cand))
if urls_core and urls_cand and overlap < 2:
    continue  # 별도 클러스터

모드:

  • NLP 전용: 빠르지만 임베딩 기반.
  • SERP 전용: 정확하나 느림, URL 기반.
  • 하이브리드: NLP + 거부 정책 — 최적 균형.

지역 격리: 서로 다른 도시의 키워드는 함께 클러스터링되지 않음.

Google AdInline article slot

다중 에이전트 AI 필터링: 앙상블 투표 기반

LLM(딥시크)이 적합/무관/감점/확인 필요로 분류. 도전 과제: 불안정성(3회 실행 시 38% 안정), 담론 특화 정보 부족.

플래너 에이전트

피팅샷 프롬프팅, 함정 탐지, 지역 필터링을 활용해 담론 특화 계획 생성.

예시:

  • 적합: "아파트 수리 완공형 모스크바"
  • 무관: "아파트 수리 구인"

토큰 최적화

ID 번호 부여: 모델은 텍스트가 아닌 ID만 반환. 20개 키워드 배치 → 약 80토큰 (이전 400토큰 대비).

앙상블 투표

세 번의 병렬 실행(온도=0), 다수결(임계값=2/3). 동률 시 심판 에이전트 개입.

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

결과: 안정성 ~85%. 비용: 3,000개 키워드당 $0.3.

경계 모드: 브랜드용 화이트리스트(서브스트링이 아닌 정확한 토큰 일치) → AI 전체 회피.

추가 모듈

SERP 모듈: 유기적 결과, 관련 검색어, 광고, 신경망 응답 파싱.

AI 어시스턴트: 데이터프레임 위에서 pandas.query()를 사용하는 챗 인터페이스.

핵심 요약

  • Fuzzy Dedup(빠른퓨즈 + pymorphy2)을 통해 SERP 요청 수를 3,000에서 1,500으로 감소.
  • 하이브리드 클러스터링은 NLP 속도와 SERP 거부 정책의 정확성을 결합.
  • 앙상블 투표(3회)로 AI 필터링 안정성 85%까지 향상.
  • 토큰 절약: ID 번호 부여 + 배치 처리 → 전체 실행당 $0.3.
  • 처리 시간: 20~30분 (수동 처리 3~4시간 대비).

기술 스택: Python 3.11, 딥시크 API, XMLRiver, SentenceTransformers, rapidfuzz, pymorphy2, pandas, customtkinter.

— Editorial Team

Advertisement 728x90

다음 읽기