Sprint 1 Analysis

텍스트 검색 케이스 분석

자연어 검색은 text encoder cosine, text index, keyword/alias matching을 함께 사용한다. 이 문서는 Sprint 1에서 흔들린 query와 현재 처리 기준을 정리한다.

핵심 결론

Resolved

검색 오염 제거

MMCA 설명에 들어간 "경복궁 옆" 같은 위치 정보가 경복궁 query를 오염시켜 catalog에서 제거했다.

Known Limit

한국어 query 분리 한계

MobileCLIP2-S4 text space는 한국어 표현에서 클래스 간 점수 폭이 좁다. keyword/alias가 안전장치다.

UI Policy

Top-3 선택형 유지

의미가 넓은 query는 단일 정답보다 Top-3 후보와 상세 페이지 선택 흐름으로 처리한다.

주요 Query

Query 기대 관찰/위험 현재 처리
art gallery, 미술관 MMCA Seoul 영어 query는 안정적. 한국어는 keyword 보정이 중요. catalog alias와 keyword로 MMCA 계열을 보강.
경복궁, gyeongbokgung 광화문 또는 경복궁 근정문·근정전 MMCA 위치 설명이 섞이면 검색 오염 발생. 위치 설명 제거. 광화문/근정문은 Top-2 안에서 함께 보여줄 수 있음.
한복 입고 사진 찍는 곳 궁궐 계열 한국어 사진 표현이 picture/art 계열로 기울 수 있음. Sprint 2에서 한국어 caption과 user query 보강. 현재는 ambiguous 후보 선택형으로 처리.
돌담 있는 공원 낙산공원 성곽/돌담/공원 표현이 넓어 광화문·청계천 등과 약하게 경쟁 가능. 낙산공원 alias, city wall, stone wall, night view 표현을 유지.
근정문, 근정전 경복궁 근정문·근정전 현 class가 gate/hall/courtyard를 넓게 포함해 점수 확신도가 낮을 수 있음. Sprint 2에서 parent/sub-landmark 또는 multi-prototype 설계 검토.

Flutter 앱 전환 기준

웹 클라이언트나 서버 API는 쓰지 않는다. 텍스트 검색은 Flutter 내부에서 OnDeviceTextEncoder, TextIndexSearcher, KeywordMatcher, ConfidencePolicy가 같은 DTO를 반환하는 구조로 옮긴다.