LEE YOONJI
← 프로젝트 목록
도봉구 청년zip

지역 접근성 지수 · 추천 챗봇

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

⚡ 세 줄 요약
  1. '접근성이 낮다', '분위기가 좋다' 같은 말은 계속 쓰이는데 정의가 없어서 근거를 댈 수 없었습니다.
  2. 지하철·상권·유동인구를 질량으로 두는 Gravity Model로 접근성을 계산하고, 주관적 표현은 규칙으로 적어 재현 가능하게 만들었습니다.
  3. 접근성 하위 20%에 해당하는 152곳을 도출하고, 복합 의도에 대응하는 추천 챗봇까지 연결했습니다.
기간2025.03 – 2025.11
역할지표 설계 · 데이터 결합 · 추천 로직 · API
팀 · 소속팀 5명
스택Python, Flask, GeoPandas, Folium, Google Places API, OSM
152곳접근성 하위 20% 지역
200여 개수작업 검토한 POI
/api/recommend추천 API
기획분석모델검증배포
분석 결과를 추천 API와 챗봇 서비스로 연결
통합 접근성 지도 — 하위 20% 152곳 도출
통합 접근성 지도 — 하위 20% 152곳 도출
추천 챗봇 대화
추천 챗봇 대화

문제 🤔

숨은 명소를 발굴하려면 먼저 '접근성이 낮다'와 '분위기가 좋다'를 측정 가능한 값으로 정의해야 했습니다.

접근 🛠

결과 📈

접근성 하위 20%에 해당하는 152곳을 도출했고, /api/recommend 기반 추천 챗봇을 완성해 분석 결과가 서비스로 이어지는 형태까지 만들었습니다.

이 프로젝트에서 제가 한 것 ✍

팀 5명 중 데이터 분석과 AI 파트 담당
팀은 함께 3D 모델링, 프론트엔드, 백엔드를 맡았습니다.

금융 직무와의 연결 🎯

대안 데이터 · 고객 분석

기술 선택과 판단 근거 🧭

왜 그 방법을 택했는지, 무엇을 택하지 않았는지 적었습니다.

접근성 밴드에 가장 큰 비중(0.55)을 뒀다

프로젝트 목적이 숨은 명소 발굴이었기 때문입니다. 유명한 곳을 다시 추천하는 게 아니라 접근성이 낮아 덜 알려진 곳을 찾는 게 목표라, 접근성이 지배적이어야 논리가 맞습니다.

모델이 아니라 팀이 정의한 기준으로 라벨링했다

'느좋/핫플'을 감성 분석 모델로 판정하면 왜 그렇게 나왔는지 설명할 수 없습니다. 팀이 기준을 문서로 정의하고 200여 개 POI를 수작업으로 검토해 일관성을 확보했습니다.

더 자세히

관심 있는 항목만 펼쳐 보세요.

이 프로젝트가 시작된 배경

지역 홍보에서 '접근성이 낮은 공간'이나 '분위기 좋은 곳' 같은 표현은 계속 쓰이지만 정의가 없습니다. 정의가 없으니 근거도 없고, 결국 홍보가 담당자의 감에 의존하게 됩니다.

막혔던 지점과 해결 과정 2

주관적인 표현을 점수로 바꾸는 기준을 만들어야 했다

'느좋', '핫플'은 사람마다 다릅니다. 그대로 두면 추천 결과를 설명할 수 없습니다. 리뷰 키워드와 장소 속성을 조합한 태그 규칙을 FSM으로 정의하고 밴드 점수와 키워드 점수를 가중 합했습니다. 완벽하진 않지만 왜 이 장소가 추천됐는지 설명할 수 있게 됐습니다.

배운 것주관적 개념도 규칙으로 적어두면 최소한 재현되고 반박될 수 있다.

FSM으로는 복합 의도를 못 잡았다

'연인이랑 갈 조용한 카페'처럼 대상과 장소 유형이 함께 오는 질의에서 FSM이 하나만 잡고 끝났습니다. 단일 Intent 가정이 문제였습니다. 다중 Intent 구조로 확장해 해결했습니다.

배운 것규칙 기반은 입력이 단순하다는 가정 위에서만 동작한다.
데이터
Google Places API
장소 속성·리뷰 키워드
서울시 공공데이터
상권 · 유동인구 · 교통
OpenStreetMap
POI 및 보행 경로
수작업 검토
POI 200여 개를 직접 확인하고 매핑테이블 작성
화면 · 시각화 더 보기 9
전체 파이프라인 — 수집 → 지표화 → 스코어링 → 추천
전체 파이프라인 — 수집 → 지표화 → 스코어링 → 추천
지하철 접근성 — Gravity Model 적용
지하철 접근성 — Gravity Model 적용
주차장 접근성 — Haversine 거리 기반
주차장 접근성 — Haversine 거리 기반
상권 · 유동인구를 질량으로 사용
상권 · 유동인구를 질량으로 사용
접근성 하위 20% / 50% 구간 비교
접근성 하위 20% / 50% 구간 비교
챗봇 대화 흐름 설계
챗봇 대화 흐름 설계
AI 스코어링 엔진
AI 스코어링 엔진
액션 처리 로직
액션 처리 로직
복합 의도 질의에 대한 추천 결과
복합 의도 질의에 대한 추천 결과
이 결과가 틀렸을 수 있는 지점
  • 가중치(0.55/0.25/…)는 목적에 맞춰 논리적으로 배분한 값이고 데이터 기반 최적화는 하지 못했습니다.
  • 라벨 일치도를 통계적으로 검증하지 않고 수작업 검토와 매핑테이블로 일관성만 확보했습니다.
  • 20%/50% 기준은 단순 percentile 컷입니다.
회고

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