이번 학기에 수강하게 된 수업이.. 프로젝트 수업이다
나는 해당 프로젝트에서 그나마 경험을 해본
추천 시스템 코드를 구성하는 부분을 맡기러 했다.
이와 더불어 관심이 조금 있었던 백엔드 연결까지!
(*아니 이게 저번 프로젝트에서 처참하게 실패해서.... 모델만 덜렁 제출했던 기억이 새록새록...✨)

이 시리즈 글들은 아마? 프로젝트 발표까지 다 되면 올릴 것 같다..
깃허브에도 코드를 올릴 것 같은 데,
비공개해놨다가 공개로 전환하지 않을까 싶다..


영화 추천이 이뤄지는 개념은

텍스트 데이터 분석 결과 값인 감정 데이터를 불러오고
불러온 감정 데이터와 장르를 매칭시켜
(매칭되는 내용은 임의로)
매칭된 장르에 해당되는 영화들을 population/rating 에 따라 추천되도록 한다

이와 같다.


사실, 제작사에 따라 영화 느낌이 다르니까
그 부분도 추가 하고 싶었는 데,,,
이건 내가 개인적으로 추가해보는 걸로
플젝 기간동안 추가하기엔 데이터가 너무 적어서 애매하기에


일단 데이터는 kaggle 제공 TMDB 활용하는 것을 베이스로 한다.
kaggle_TMDB_Data
위의 링크에서 확인할 수 있다.

내가 맡은 부분이 영화 추천되는 로직을 구현하는 것이었는 데,
일단 간단히 파이썬으로 구현을 해봤다.

영화 추천 로직 코드 일부

def recommend_by_emotion(emotion, movies, num_recommendations=10):
    genres = emotion_genre_mapping(emotion)
    if not genres:
        return []
    
    # 장르 기반으로 영화 필터링
    genre_filtered_movies = movies[movies['genres'].apply(lambda x: any(genre in x for genre in genres))]
    
    # 평점이 평균 이상인 영화 필터링
    avg_vote = genre_filtered_movies['vote_average'].mean()
    high_rated_movies = genre_filtered_movies[genre_filtered_movies['vote_average'] >= avg_vote]
    
    # 높은 평점의 영화들 중에서 랜덤으로 num_recommendations개 선택
    recommended_movies = high_rated_movies.sample(n=num_recommendations, replace=False)
    
    return recommended_movies['title'].tolist()

사실 마음에 걸렸던 부분이 한 두 부분은 아닌데,
진행 중인 프로젝트에서 평점을 8.5 이상으로 제한을 두는 순간,,,,,
아무런 결과값이 나올 수 없다는 걸 확인하고
그냥,,, 장르 > 평균 이상의 평점 > 해당 조건 만족 시, random 으로 추출하는 방식을 활용했다.

아주 정확하게 보면,,
영화 추천이라기 보다는...
그냥 골라주기? 느낌이지만 그치만........

"추천"과 관련하여서는 개인적으로 진행 예정인 프로젝트에서 더 깊게 공부하고 해보는 것으로 넘겨본다...

진짜.. 이걸 추천 프로그램/시스템 이라 보기 너무 어려운 듯;;

이어서 azure functionapp 배포를 소개할 것이다

profile
Security | Cloud | AI

0개의 댓글