정의가 없던 '감성 공간'과 '접근성'을 수치로 만들고, 의도 기반 추천 챗봇까지 연결한 프로젝트


숨은 명소를 발굴하려면 먼저 '접근성이 낮다'와 '분위기가 좋다'를 측정 가능한 값으로 정의해야 했습니다.
Haversine으로 구해 거리 감쇠를 적용했습니다.FSM 기반 태그 로직으로 규칙화해 주관적 표현을 재현 가능한 분류로 바꿨습니다.0.55×band + 0.25×kw + 0.10 + 0.05 + 0.05.접근성 하위 20%에 해당하는 152곳을 도출했고, /api/recommend 기반 추천 챗봇을 완성해 분석 결과가 서비스로 이어지는 형태까지 만들었습니다.
/api/recommend 구현왜 그 방법을 택했는지, 무엇을 택하지 않았는지 적었습니다.
프로젝트 목적이 숨은 명소 발굴이었기 때문입니다. 유명한 곳을 다시 추천하는 게 아니라 접근성이 낮아 덜 알려진 곳을 찾는 게 목표라, 접근성이 지배적이어야 논리가 맞습니다.
'느좋/핫플'을 감성 분석 모델로 판정하면 왜 그렇게 나왔는지 설명할 수 없습니다. 팀이 기준을 문서로 정의하고 200여 개 POI를 수작업으로 검토해 일관성을 확보했습니다.
관심 있는 항목만 펼쳐 보세요.
지역 홍보에서 '접근성이 낮은 공간'이나 '분위기 좋은 곳' 같은 표현은 계속 쓰이지만 정의가 없습니다. 정의가 없으니 근거도 없고, 결국 홍보가 담당자의 감에 의존하게 됩니다.
'느좋', '핫플'은 사람마다 다릅니다. 그대로 두면 추천 결과를 설명할 수 없습니다. 리뷰 키워드와 장소 속성을 조합한 태그 규칙을 FSM으로 정의하고 밴드 점수와 키워드 점수를 가중 합했습니다. 완벽하진 않지만 왜 이 장소가 추천됐는지 설명할 수 있게 됐습니다.
'연인이랑 갈 조용한 카페'처럼 대상과 장소 유형이 함께 오는 질의에서 FSM이 하나만 잡고 끝났습니다. 단일 Intent 가정이 문제였습니다. 다중 Intent 구조로 확장해 해결했습니다.









정의가 없는 대상을 다룰 때는 정의 자체가 산출물이 됩니다. 지표를 만들고 그 근거를 문서로 남기는 일이 모델링만큼 중요했습니다.