# Phase 15 — 왜 키워드만으론 실패하고, AI 구조+의미가 붙으니 성공하는가 ## 🎬 시나리오 **MDX03-1** "1. DX 시행을 위한 필수 요건" (기술·사람·자연 3요소) **정답**: Frame 13 (3열 구조 "필수조건" — 기술/사람/자연 카드) **오답으로 자주 잡히는 후보**: Frame 15 ("정책목표" — 성장·비용절감·안전 4개 카드) | 정답 | 오답(TF-IDF 1위) | |------|------------------| | ![13](../../data/figma_previews/13.png)
**Frame 13** — 필수조건 | ![15](../../data/figma_previews/15.png)
**Frame 15** — 정책목표 | 두 프레임 모두 **3~4열 카드 배치** + 건설·DX 관련 용어가 등장 → 단어만 보면 구분이 어려움. --- # Part 1. 기존 방식 — TF-IDF (키워드 표면만 본다) ### TF-IDF Top-3 결과 | 순위 | Frame | 점수 | 결과 | |------|-------|------|------| | 1위 | **15** | 57% | ✗ 오답(1위) | | 2위 | **13** | 39% | ⭐ 정답 | | 3위 | **20** | 25% | | ### 왜 Frame 15가 1위로 잘못 뽑혔나 — 공통 단어 분해 **MDX03-1 ↔ Frame 15 (정책목표) — 공통 단어 상위 8개** | 단어 | MDX TF-IDF | Frame 15 TF-IDF | 기여도 | |------|------------|-----------------|--------| | 지식 | 0.045 | 0.057 | 0.0026 | | 등에 | 0.034 | 0.043 | 0.0015 | | 능력 | 0.017 | 0.086 | 0.0015 | | 사용자 | 0.027 | 0.051 | 0.0014 | | 투자 | 0.036 | 0.031 | 0.0011 | | 경험 | 0.051 | 0.022 | 0.0011 | | 프로세스의 | 0.020 | 0.051 | 0.0010 | | DX | 0.054 | 0.017 | 0.0009 | **MDX03-1 ↔ Frame 13 (필수조건, 정답) — 공통 단어 상위 8개** | 단어 | MDX TF-IDF | Frame 13 TF-IDF | 기여도 | |------|------------|-----------------|--------| | 기술 | 0.050 | 0.052 | 0.0026 | | 역량 | 0.020 | 0.104 | 0.0021 | | 투자 | 0.036 | 0.042 | 0.0015 | | 여건 | 0.020 | 0.069 | 0.0014 | | 지식 | 0.045 | 0.026 | 0.0012 | | 지속적인 | 0.034 | 0.030 | 0.0010 | | 위한 | 0.034 | 0.029 | 0.0010 | | Process의 | 0.020 | 0.035 | 0.0007 | ### TF-IDF가 실패하는 이유 1. **단어 표면만 본다**: "요건"이라는 단어가 MDX(필수 **요건**)에도 있고 Frame 15(실행**요건**)에도 있음. 문맥·의미는 완전 다른데 TF-IDF는 그냥 같은 단어로 취급 2. **Frame 13의 핵심 단어 "필수조건"이 깨진다**: Kiwi 같은 형태소 분석기는 "필수조건"을 "필수" + "조건"으로 분해. MDX는 "필수 **요건**"을 쓰는데 Frame 13은 "필수**조건**". "요건" ↔ "조건"은 동의어인데 글자가 달라 매칭이 안 됨 3. **구조를 못 본다**: "이 MDX는 3요소 병렬 설명이고 Frame 13도 3열 병렬 카드"라는 구조 정보를 TF-IDF는 인지 불가. "몇 열", "어떤 패턴" 정보가 통째로 빠짐 → 결과: 표면 단어 겹침이 많은 Frame 15가 1위로, 진짜 같은 구조·의미인 Frame 13이 2위로 밀림 --- # Part 2. AI-Meta — AI가 구조와 의미를 개념 집합으로 정규화 ### AI가 사전에 뽑아둔 개념 집합 (metadata_db.yaml) **MDX03-1** (layout_hint: `3col-parallel`) ```yaml concepts: ['기술', '디지털', '사람', '역량', '자연', '여건', '투자', '지식', '혁신', '경험', '전문지식', '창의성'] ``` **Frame 13** (정답) ```yaml concepts: ['기술', '디지털', '사람', '역량', '자연', '여건', '지식', '투자', '필수조건'] ``` **Frame 15** (TF-IDF가 1위로 찍었던 오답) ```yaml concepts: ['정책', '목표', '실행', '요건', '성장', '비용절감', '안전', '고부가가치'] ``` ### AI-Meta Top-3 결과 | 순위 | Frame | 점수 | 결과 | |------|-------|------|------| | 1위 | **13** | 76.2% | ⭐ 정답 | | 2위 | **27** | 12.7% | | | 3위 | **04** | 4.8% | | ### 왜 Frame 13이 1위가 됐나 — 개념 교집합 **MDX03-1 ∩ Frame 13 (정답)** | 공통 개념 | Figma 출현 빈도 | IDF (희귀도) | |-----------|----------------|--------------| | **사람** | 1/32 | 3.47 | | **여건** | 1/32 | 3.47 | | **자연** | 1/32 | 3.47 | | **역량** | 1/32 | 3.47 | | **지식** | 1/32 | 3.47 | | **기술** | 2/32 | 2.77 | | **투자** | 2/32 | 2.77 | | **디지털** | 5/32 | 1.86 | **공통 8개 (IDF 합 = 24.73)** **MDX03-1 ∩ Frame 15 (오답)** **공통 개념 0개** — "요건" 같은 표면 단어는 TF-IDF 단계에서 걸리지만, AI는 "요건"이 Frame 15에서는 "정책 실행요건"을 의미하기에 MDX03-1의 "필수 요건" 개념과 다르게 추출함 ### AI-Meta가 성공하는 이유 1. **동의어 정규화**: AI가 MDX03-1 본문을 읽고 "필수 요건"을 직접 단어로 쓰지 않고, 그 내용인 `[기술, 사람, 자연, 여건, ...]`로 개념화. Frame 13도 같은 핵심 개념으로 태그. **표면 단어가 다르더라도 의미 일치** 2. **구조 힌트 포함**: `layout_hint: 3col-parallel`이라는 구조 태그가 있어 "3열 병렬 카드"끼리 매칭 선호 가능 (현재 구현은 concepts만 쓰지만 layout_hint도 활용 가능) 3. **희귀 개념 우대**: IDF로 "여건, 사람, 자연, 역량" 같은 이 MDX에만 특징적인 개념은 3.47이라는 큰 가중치. "디지털"처럼 많은 프레임에 나오는 일반어는 1.86으로 낮은 가중치 4. **근거가 투명**: 어떤 개념이 겹쳐서 몇 점이 됐는지 한눈에 확인 가능. Cross-encoder 같은 블랙박스와 달리 사람이 metadata_db를 직접 편집해서 튜닝 가능 --- # 최종 Before/After 비교 | | TF-IDF (키워드만) | AI-Meta (키워드+구조+의미) | |---|---|---| | 1위 선택 | Frame 15 ❌ | Frame 13 ⭐ | | 기준 | 단어 표면 겹침 | 개념 집합 일치 (구조 포함) | | 동의어 | 못 다룸 ("요건"↔"조건" 실패) | AI가 사전에 같은 개념으로 정규화 | | 구조 | 무시 | layout_hint로 명시적 태깅 | | 설명 가능성 | 공통 단어 나열 → 설명 제한적 | 개념 교집합 + IDF → 명확 | | 튜닝 | corpus 변경하면 IDF 전체 재계산 | metadata_db에 개념 추가/수정으로 조정 | | 비용 | AI 불필요, 가벼움 | 사전 AI 1회 호출 필요 (이후 저장된 데이터만 사용) | **결론**: 키워드 기반은 표면 단어 한계에 막힌다. AI가 구조·의미를 미리 개념 집합으로 정규화하는 순간, 동의어·구조 불일치 문제가 자연스럽게 해결된다.