HeatNews 방법론
노출·신뢰도·반응 점수의 산출 공식과 데이터 처리 파이프라인
1. 데이터 수집
- 국내 주요 경제 매체 RSS 피드 5분 간격 풀링 (매일경제, 한국경제, 이데일리, 조선비즈, 연합뉴스 외)
- Yahoo Finance 시세 5분 간격 갱신 — KOSPI(^KS11), KOSDAQ(^KQ11), 종목별 1D/7D/30D 수익률
- 운영시간: 한국 시간(KST) 07:50 ~ 20:00 (장 외 시간에는 마지막 스냅샷 유지)
- 수집된 기사는 제목·본문·발행시각·매체 메타데이터를 보존하며 정규화 후 저장
2. 테마 노출(prominence) 점수
각 투자 테마의 뉴스 노출량은 단순 기사 수가 아니라 다음 공식으로 산출합니다:
prominence = articleCount × 1.0 + uniquePublishers × 0.35 + termHits × 0.15 − spamPenalty
각 항목 설명
articleCount— 해당 테마로 분류된 기사 수uniquePublishers— 서로 다른 매체에서 보도된 횟수. 단일 매체 도배 방지용 가중치termHits— 기사 제목·본문 내 테마 핵심 키워드 등장 빈도spamPenalty— 동일 매체에서 짧은 시간 안에 유사 기사가 반복될 때 감점
이렇게 설계함으로써 한 매체에서 같은 사건을 여러 번 다루어도 점수가 선형 증가하지 않고, 다양한 매체가 다루는 테마일수록 점수가 가산됩니다.
3. 종목 매칭 신뢰도(confidence)
한 종목이 특정 테마에 속한다는 신뢰도 점수:
confidence = min(0.2 + aliasHits × 0.26 + (aliasHit ? 0.42 : 0) + themeHits × 0.08, 0.98)
임계값과 매칭 유형
기본 표시 임계값은 confidence ≥ 0.58이며, 매칭 방식은 다음과 같이 구분됩니다:
| 유형 | 설명 | 대표 confidence |
|---|---|---|
| 명시 언급(entity) | 기사에서 종목명·티커가 직접 언급된 경우 | 0.62 ~ 0.98 |
| 하이브리드(hybrid) | 직접 언급 + 테마 키워드가 함께 일치 | 0.78 ~ 0.98 |
| 테마 유사(theme) | 테마 키워드만 일치 (직접 언급 없음) | 0.28 ~ 0.65 |
themeHits가 누적될수록 confidence는 0.98 상한에 부드럽게 수렴합니다. 한 종목이 같은 테마에 너무 약하게 연결된 채 노이즈로 잡히지 않도록 임계값 필터를 둡니다.
4. 반응(reaction) 점수
테마의 시장 반응 점수는 신뢰도로 가중평균한 상대수익률입니다:
reaction = Σ(confidence × relativeReturn) ÷ Σ(confidence) → [-15, 15] 클램프
각 항목 설명
relativeReturn = 종목 변동률 − 벤치마크 변동률(KOSPI 상장 → KOSPI 지수, KOSDAQ 상장 → KOSDAQ 지수)- 1D 화면은 당일 변동률, 7D는 5거래일, 30D는 약 21거래일 기준
- 외부 극단값(±15% 초과)은 클램프되어 색상 왜곡을 방지합니다
가중평균을 사용함으로써 신뢰도가 낮은 종목이 테마 전체 반응 점수를 크게 흔들지 않게 됩니다.
5. 중복 제거
제목을 정규화(소문자 변환 + 연속 공백 압축 + 특수문자 정리) 후 완전 일치하면 동일 기사로 처리합니다. 동일 사건을 여러 매체가 보도해도 단일 기사로 카운트되어 도배성 노출이 점수에 미치는 영향을 줄입니다.
발행 시각 차이가 크더라도 정규화 후 제목이 일치하면 단일로 묶이며, 첫 보도 기준 시각이 보존됩니다.
6. 색상·시각화
- 녹색 → 벤치마크 대비 강세, 빨강 → 약세, 중립색 → 변동 없음
- 색맹 접근성을 위해 ▲▼ 화살표 기호도 함께 표시
- 타일 크기는 노출 점수(prominence)에 비례, squarified treemap 알고리즘으로 배치
- 색상 스케일은 sqrt 함수를 적용해 ±5% 부근에서 채도가 포화됩니다 (단기 노이즈가 시각적으로 과도하게 부각되지 않도록)
7. 예시 계산 (full walkthrough)
가상의 "2차전지" 테마를 예로 들어 점수 산출 과정을 보여줍니다. (수치는 설명용 예시이며 실제 값과 다를 수 있습니다.)
- articleCount = 24 (2차전지 관련 기사 24개)
- uniquePublishers = 6 (서로 다른 매체 6곳)
- termHits = 41 (제목·본문 내 "2차전지", "양극재", "배터리" 등 키워드 41회 등장)
- spamPenalty = 2.0 (한 매체가 동일 기사를 3회 재게재 → 감점)
24 × 1.0 + 6 × 0.35 + 41 × 0.15 − 2.0 = 24 + 2.1 + 6.15 − 2.0 = 30.25
→ 2차전지 테마의 노출 점수는 30.25. 트리맵 타일의 크기를 결정합니다.
- aliasHits = 3 (기사 본문에서 "LG에너지솔루션" 또는 별칭 3회 등장)
- aliasHit = true (직접 언급 있음)
- themeHits = 5
confidence = min(0.2 + 3 × 0.26 + 0.42 + 5 × 0.08, 0.98) = min(0.2 + 0.78 + 0.42 + 0.40, 0.98) = min(1.80, 0.98) = 0.98
→ LG에너지솔루션의 매칭 신뢰도는 0.98 (상한). 임계값 0.58 이상이므로 표시 대상.
| 종목 | 변동률 | KOSPI 변동률 | relativeReturn | confidence |
|---|---|---|---|---|
| LG에너지솔루션 | +3.2% | +0.4% | +2.8 | 0.98 |
| 삼성SDI | +1.8% | +0.4% | +1.4 | 0.85 |
| 포스코퓨처엠 | -0.5% | +0.4% | -0.9 | 0.72 |
reaction = (0.98 × 2.8 + 0.85 × 1.4 + 0.72 × -0.9) ÷ (0.98 + 0.85 + 0.72)
= (2.744 + 1.19 − 0.648) ÷ 2.55
= 3.286 ÷ 2.55
≈ +1.29
→ 2차전지 테마의 반응 점수는 +1.29. 트리맵에서 옅은 녹색 타일로 표시됩니다.
8. 한계와 가정
- 분류 정확도 — 키워드/alias 기반 분류는 100% 정확하지 않습니다. 기사 맥락에 따라 오분류 가능성이 있습니다.
- 시세 지연 — Yahoo Finance API 특성상 실시간 호가가 아닌 15~20분 지연 시세입니다.
- 매체 편향 — 수집 대상이 국내 주요 경제 매체에 한정되어, 외신·블로그·SNS는 반영되지 않습니다.
- 장 외 시간 — KST 20:00 이후 자정까지 새로운 기사가 있어도 다음 영업일 07:50 이후 반영됩니다.
- 가중치 튜닝 — 위 공식의 계수(1.0, 0.35, 0.15, 0.26, 0.42, 0.08 등)는 수작업 샘플 검증에 기반하며 향후 데이터 누적에 따라 재조정될 수 있습니다.
9. 자주 묻는 질문 (FAQ)
Q. 노출 점수가 높다는 것은 무엇을 의미하나요?
해당 테마와 관련된 기사가 단순히 많을 뿐 아니라, 여러 매체에서 보도되고 테마 핵심 키워드가 자주 등장했음을 의미합니다. 같은 매체의 도배성 기사는 spamPenalty로 감점됩니다.
Q. 매칭 신뢰도 0.58 임계값은 어떻게 정해졌나요?
수작업으로 검증한 샘플에서 false positive 비율과 recall 사이의 균형점입니다. 0.58 이상은 명시 언급 또는 강한 테마 일치를 보장하며, 이보다 낮으면 노이즈가 빠르게 증가합니다.
Q. 반응 점수가 [-15, 15] 범위인 이유는?
단기 시세의 극단값을 잘라(clamp) 시각화 색상이 외곽값에 의해 왜곡되지 않도록 합니다. 색상은 ±5%에서 포화되도록 sqrt 스케일을 적용합니다.
Q. 중복 제거는 어떻게 작동하나요?
기사 제목을 소문자 변환 + 연속 공백 압축 + 특수문자 정리로 정규화한 뒤 완전 일치하면 동일 기사로 간주합니다. 동일 사건을 여러 매체가 보도해도 단일 기사로 카운트됩니다.
Q. 벤치마크는 어떻게 선택하나요?
각 종목의 상장 시장에 따라 KOSPI 상장이면 KOSPI(^KS11), KOSDAQ 상장이면 KOSDAQ(^KQ11)을 벤치마크로 사용합니다. 상대수익률은 종목 변동률 - 벤치마크 변동률입니다.
Q. 방법론은 향후 바뀔 수 있나요?
네. 분류 사전 확장, 가중치 튜닝, 새로운 점수 항목 추가 등 지속적으로 개선합니다. 주요 변경은 본 페이지에 반영되며, 이전 점수와의 호환성보다 정확성을 우선합니다.
관련 페이지
- HeatNews 소개 — 서비스 개요와 데이터 출처
- 주간 증시 리포트 — 매주 월요일 갱신되는 종합 분석
- 대시보드 (메인) — 실시간 트리맵 히트맵
⚠ 모든 데이터·점수·분석은 투자 참고 자료이며 투자 권유가 아닙니다. 매매 판단은 사용자 본인 책임이며, 본 서비스는 결과에 대한 책임을 지지 않습니다.