본문 바로가기

PYTHON-BACK

# 24.10.30~2024.11.18_영화추천 사이트 제작 (진행중)

728x90

영화 추천 사이트 제작을 진행하고 있으며, 중간과정 소개를 하기 위해서 포스팅을 하게 됨

 

개발 중인 사이트 이름은 MOODIE CINEMA로 일기장을 작성할 수 있는 별도의 공간을 마련하여 일기장을 통해 감정분석을 진행, 이를 통해 검정 분석 기반의 영화추천을 진행하는 영화 추천 사이트 제작을 진행하고 있다.

 

팀원으로는 저번 쇼핑몰 구축 팀 프로젝트에 같이 진행했던

김향은 님

https://github.com/myangeun

 

myangeun - Overview

myangeun has 3 repositories available. Follow their code on GitHub.

github.com

 

이번에 새로 합류하게된 

이정민 님

https://github.com/LeeJeongMin0512

 

LeeJeongMin0512 - Overview

LeeJeongMin0512 has 4 repositories available. Follow their code on GitHub.

github.com

 

위 두분과 함께 3인 팀으로 개발을 진행하고 있다.

 

 

팀 로고는 아래와 같다.

생성형 AI로 만든 팀 로고

 

 

1차 ERD는 아래와 같다.

 

 

데이터 차트

데이터 차트

 

 

현재 2주정도 개발 진행중에 있는데 , 우선 초안으로 디자인 스케치를 진행했었고, 

 

메인 홈페이지 및 카테고리
카테고리 -> 카테고리 목록 페이지 이동

 

 

메인 홈페이지 -> 영화 상세 페이지

 

일기 모달 페이지 -> 일별 일기장 페이지
일기장 페이지 -> 일기장 상세 페이지

 

일기장 모달 페이지 -> 일기장 모달 쓰기 페이지

 

 

다음으로 기획안 내용을 정리해보겠습니다.

 

현대 사회에서 영화는 감정을 표현하고 치유하는 중요한 매체로 자리 잡고 있습니다. 감정과 상황에 따라 적절한 영화 추천을 통해 사용자의 심리적 만족감을 높일 수 있을 것이라 생각 되었고, 자연어 처리와 딥러닝의 발전으로 텍스트 기반 감정 분석이 가능해 졌으며, 이를 통해 맞춤형 추천 시스템을 구축할 수 있다고 생각해 이 프로젝트를 진행하게 되었습니다.

 

기존의 영화 추천 시스템은 개이의 취향이나 과거 시청 기록에 의존하지만, 이 프로젝트는 일기를 통해 사용자의 현재 감정을 분석하여 더욱 맞춤형 추천을 제공하고자 합니다.

추가로 리뷰 데이터를 활용해서 데이터분석 기반의 자료들을 함께 제공하여 사용자의 만족도를 높일 계획입니다.

 

처음 생각했던 개발 내용

사용자 관리: 로그인, 로그아웃, 회원가입 및 회원정보 수정, 소셜 로그인 기능

일기장 기능: 사용자가 자신의 감정을 기록하는 일기 작성, 수정, 삭제 기능

감정 분석: 일기 데이터를 트랜스포머 모델로 분석하여 슬픔, 공포, 분노, 평온, 기쁨으로 분류

영화 추천: 감정 분석 결과를 바탕으로 사용자의 기분에 맞는 영화 추천
기쁨 : SF, 코미디, 모험, 애니메이션, 로멘스, 음악, 판타지
평온 : 힐링, 애완, 다큐멘터리, 가족, 애니, 음악
분노 : 전쟁, 액션, 역사, 범죄, 서부
공포 : 미스터리, 스릴러, 전쟁, 판타지, 공포, SF
슬픔 : 드라마, 애니, 코미디, 음악

영화 리뷰: 영화에 대한 리뷰 작성, 수정, 삭제 기능

추천 시각화: 감정 분석 결과와 영화 평점 분포를 시각화하여 제공, 리뷰 데이터 이용 해서 영화 평점 분포, 긍정,부정 감정 비율, 장르별 평점 분포 등을 시각화하여 제공 예정

시스템의 기반은 DJango이고, DB는 sqlite3를 사용할 예정입니다. 사용자에게 제공할 API는 DRF를 기반으로 작업할 예정이고, 해당 API를 위한 문서화는 GitHub Actions과 함께 Swagger를 사용할 예정입니다.

Browser의 경우 HTML+CSS+JavaScript를 이용할 예정이고, Bootstrap도 일부 이용할 예정입니다.

감정 분석 : BERT 모델을 이용해 문장의 의미를 추출하고 GRU 를 통해 문장의 맥락 정보를 순서대로 처리해 BERT의 임베딩 벡터를 입력받아 GRU 레이어를 통해 정보를 압축하고 마지막에 Linear 레어어로 감정을 예측할 수 있는 값을 출력할 예정으로, tut6-model.pt 파일에서 학습된 모델의 가중치를 불러와 감정 예측이 가능한 상태로 만들 것 입니다.
추가로 BERT-LSTM 모델도 만들어서 GRU 모델과 비교를 통해 더 좋은 성능의 감정분석을 채택할 예정

감정분석 API의 경우 DRF API View를 사용할 예정이며 APIView의 post 메서드에서 JSON 데이터를 처리하고 JavaScript에서 fetch요청을 통해 JSON 형식으로 데이터를 전송할 예정입니다.

장기 계획으로는 BitNet Chatbot, 또는 llama를 이용해서 영화 관련 대화를 할 수 있는 챗봇을 추가할 예정입니다.

리뷰 : 리뷰 작성, 수정, 삭제, 목록 기능으로 개인 프로필 페이지에서 구현할 예정이며 영화에 대한 리뷰와 유저가 작성한 리뷰, 좋아요와 싫어요 버튼과 리뷰에 대한 분석 결과는 영화 상세 페이지에서 구현할 예정입니다. 
좋아요/싫어요 버튼 클릭 시 AJAX를 활용해 페이지를 리프레시 하지 않고 실시간으로 결과를 반영하도록 할 계획입니다. 외부 영화 리뷰 데이터를 저장하는 모델과 사용자가 작성한 리뷰를 저장하는 모델을 분석하여 그 결과를 각각 저장한 뒤 이를 표나 그림으로 사용자에게 보여줄 계획입니다

 

추가 계획 내용

스포티파이 api를 통한 감정 분석 결과에 맞는 ost 음악 추천

챗봇 도입을 통한 영화추천

...

 

영화 데이터의 경우 TMDB 에서 api를 이용해서 가져올 예정이고, 소셜 로그인의 경우 가장 유명한 3개 카카오, 네이버, 구글 을 구현할 예정이다.

 

https://www.themoviedb.org/?language=ko

 

The Movie Database (TMDB)

환영합니다 수백만 개의 영화, TV 프로그램 및 인물을 발견하세요. 지금 살펴보세요.

www.themoviedb.org

 

추가로 ost 추천의 경우에는 스포티파이 api를 이용할 예정이다.

 

https://developer.spotify.com/documentation/web-api

 

Web API | Spotify for Developers

Spotify Web API enables the creation of applications that can interact with Spotify's streaming service, such as retrieving content metadata, getting recommendations, creating and managing playlists, or controlling playback. This is where the magic begins!

developer.spotify.com

 

 

다음 포스팅에서는 개발중이 화면과 기술을 정리해서 올릴 예정으로, 현재 어느정도 개발이 진행되었지만 어느정도 정리가 필요할 것 같아서 다음 포스팅으로 넘기겠다.

728x90