[데이터 분석] 공연 리뷰 분석 웹 대시보드 만들기 - 1
배경
전체 미팅 중에 공연을 관람한 고객들의 반응을 분석해야한다는 의견이 있었어요.공연 매출에 대한 정량적인 데이터는 인터파크 티켓으로부터 전달받은 판매현황과 일정산을 통해 확인하고 있었어요.하지만, 공연 반응에 대한 정성적인 데이터는 인터파크 티켓에 접속하여 리뷰와 평점을 확인하고 있었어요.리뷰와 평점으로 확인하는 사항은 아래와 같아요.
- 리뷰를 길게 남긴 고객은 뭐라고 작성했을까?
- 리뷰를 여러번 남긴 고객은 뭐라고 작성했을까?
- 리뷰에 어떤 단어가 가장 많이 나왔을까?
- 비슷한 리뷰 내용은 어떤 게 있을까?
1, 2번은 공연에 대해 성의있게 리뷰를 남겨준 고마운 고객이에요. 성의있는 리뷰를 참고하여 고객들이 더 편하고 즐겁게 공연을 관람하기 위해 고도화 작업을 진행하게 돼요.
3번은 가장 많이 나온 단어를 사용하여 공연에 대한 마케팅 문구와 굿즈를 생성한다고 했어요. 고객들이 자주 사용하는 단어를 가지고 마케팅 문구에서는 친숙함과 굿즈에서는 니즈를 충족할 수 있어요.
4번은 3번과 다르게 맥락을 파악하여 고객들 집단마다 공연을 어떠한 감정으로 관람하고 있는지 확인할 수 있어요. 1, 2번과 비슷하게 비슷하게 작성된 리뷰 내용을 참고하여 공연에 대한 고도화 작업을 진행하게 돼요.
전략팀과 티켓팀에서 공연마다 리뷰를 확인을 하고 있었는데, 업무가 바쁘다보니 일일이 상세 페이지 접속해서 확인을 하는 것이 힘들어 고객 반응에 대한 정성적인 분석이 부족했어요. 그리고 공연이 1년에 10개 이상을 진행하다보니 일일이 들어가서 확인하는 것이 큰 공수였어요.
이러한 의견을 듣게 되었을 때, 공연에 대한 정성적인 분석이 되어 공연 현장에 반영이 된다면 우리 공연을 관람한 고객에게 불편한 경험은 제거하고 좋은 경험을 제공할 수 있겠다고 생각했어요. 그래서 제가 인터파크 티켓의 리뷰 분석기를 만들고 내부 네트워크에서 접속 가능한 웹 환경에서 대시보드를 만들어서 제공하겠다고 했어요. 그래서 저의 개인적인 프로젝트가 시작되었습니다.
리뷰 분석 웹 사이트에서 확인하고 싶은 데이터 인터뷰
리뷰 분석 웹 사이트를 사용하게 되는 분들에게 인터뷰를 어떤 데이터를 보고 싶은지 인터뷰를 진행했어요. 인터뷰를 진행한 결과 아래와 같은 데이터를 보고싶다고 했어요.
인터뷰 요구사항
- 리뷰를 길게 남긴 순으로 확인하고 싶어요.
- 리뷰를 여러번 남긴 고객과 내용을 확인하고 싶어요.
- 가장 많이 나온 단어를 내림차순으로 확인하고 싶어요.
- 가장 많이 나온 문장을 내림차순으로 확인하고 싶어요.
- 비슷한 리뷰들을 집단별로 확인하고 싶어요.
- 조회수가 높은 리뷰를 내림차순으로 확인하고 싶어요.
- 평점 3점 이하인 리뷰를 확인하고 싶어요.
인터뷰 중 공연 흥행을 위한 마케팅 전략으로 리뷰 이벤트를 진행한다는 얘기도 듣게 되었어요. 하지만, 리뷰 이벤트를 실행 했을 때 실질적으로 리뷰들이 증가하는지 감소하는지를 매일 들어가서 확인하지만 정확하게 확인하지 못하고 있다고 했어요. 그래서 이러한 문제를 해결할 수 있는 부분을 제안했어요.
제안내용
- 모든 공연의 공연별 리뷰 작성 추이를 그래프로 확인할 수 있어요.
- 모든 공연의 공연별 평균 평점 추이를 그래프로 확인할 수 있어요.
1번을 통해서 리뷰 이벤트를 진행하는 기간동안 리뷰수의 증가 혹은 감소에 대한 데이터를 확인할 수 있어요. 리뷰 이벤트를 진행하는 동안 리뷰 작성 수가 증가하면 마케팅 전략은 성공한 것이고 유지 혹은 감소한다면 다른 마케팅 전략을 실행해야한다는 것을 확인할 수 있어요.
2번은 리뷰 작성 추이 그래프를 만들면서 평점도 함께 만들어서 평점이 증가하거나 하락했을 때, 어떠한 이슈가 있었는지 확인을 하고 싶었어요.
구현 순서
먼저, 구현 요구사항은 아래와 같아요.
- 웹 사이트로 제공되면 좋겠어요.
- 인터파크 티켓에 접속하여 공연마다 모든 리뷰를 크롤링 했으면 좋겠어요.
- 매일 특정 시간에 크롤링한 데이터가 웹 사이트에서 업데이트 되면 좋겠어요.
- 단순한 리뷰 데이터를 출력하는 것이 아니라 분석을 했으면 좋겠어요.
- 회사 내부 네트워크망에서만 접속되면 돼요.
고민 끝에 아래처럼 진행하기로 했어요.
- django를 통해 구현하기로 했어요. django는 python기반의 framework이며, 프론트와 백엔드 모두 구현이 가능해요.
- chrome driver와 selenium을 사용해서 인터파크 티켓의 리뷰 데이터를 크롤링하기로 했어요.
- django의 crontab을 사용해서 매일 저녁 8시마다 모든 공연의 리뷰 데이터를 크롤링할 수 있도록 스케줄링 했어요.
- 분석을 위해 pandas를 사용해 데이터를 전처리하고 konlpy를 사용해서 형태소 분석을 하고 scikit-learn를 사용해서 머신러닝을 통한 분석을 사용하기로 했어요.
- django server를 할당되어 있는 내부 ip를 통해 서버를 가동시키기로 했어요.
시스템 구조도를 통해서 한번 표현해볼게요!