# Feature Design and Entity Resolution

## 목표
이종 소스의 noisy mentions를 종목 단위 overlay feature로 안정적으로 변환한다.

## Entity Resolution 원칙
### symbol matching 단계
1. direct ticker token match
2. company canonical name match
3. approved alias match
4. fuzzy match (낮은 신뢰도, manual review 후보)

### 금지 규칙
- 1글자/2글자 일반 단어 ticker를 무조건 매칭하지 않는다.
- 맥락 없는 company substring match 금지.
- YouTube 제목에 `AI`, `App`, `ON`, `IT` 같은 일반 토큰을 티커로 해석하지 않는다.

## reference tables
- `symbol_master`
- `company_aliases`
- `youtube_channel_registry`
- `wiki_page_map`
- `theme_topic_map`

## Feature group 정의
### A. Headline Burst
- 최근 6h/24h 헤드라인 수
- publisher breadth
- deduped article count
- positive/negative heuristic headline count

### B. YouTube Influence
- weighted views by channel weight
- unique channels mentioning symbol
- upload velocity
- comments-per-view ratio
- mention freshness decay

### C. Wiki Attention
- 1d/3d/7d pageview changes
- rolling z-score
- percentile rank vs last 90d

### D. Theme Heat
- mapped theme trend value
- acceleration
- saturation regime

### E. Crowding
- short volume anomaly
- recent crowding persistence

## Normalization
- 모든 source-local metric은 source별 robust z-score로 정규화
- winsorization 적용 (1% / 99%)
- sparse source는 missing 그대로 두고 source confidence penalty 적용

## Time windows
- 6h burst: event propagation detection
- 24h burst: overnight attention
- 3d persistence: continuation support
- 7d trend: theme regime only

## Leakage 방지
- entry decision 시점 이후 수집 데이터 사용 금지
- snapshot time 명시
- re-run 시 동일 cutoff 적용

## 출력 예시 필드
- symbol
- as_of_ts
- headline_burst_z
- youtube_influence_z
- wiki_attention_z
- theme_heat_z
- crowding_stress_z
- overlay_score
- overlay_confidence
- source_presence_mask
