티스토리 뷰
영화 추천 시스템 마지막편 입니다!
지난편에서 mjw2305라는 유저가 해당 장르에서 가장 비슷한 유저임을 알아봤고
이번 편에서는 크롤링과 감정 분석 등을 이용하여 해당 유저에 대해 집중적으로 탐색 해보도록 하겠습니다!
유저 리뷰 크롤링
유저 페이지 에서는 유저가 영화에 대해 남긴 리뷰들을 볼 수 있습니다.
그러나 평점은 유저의 자유에 따라 생략될 수도 있는 것이기 때문에 만약 이 평점이 없다면
직접 리뷰를 읽어보지 않는 한 이 유저가 영화에 대해 어떤 평가를 내렸는지 알 수 없다는 문제가 존재합니다.
이 유저는 대부분의 영화 리뷰 마지막 부분에 평점을 남겼고 저는 이 부분을 놓치지 않기로 했습니다!
감정 분석 모델을 통해 유저가 영화에 대해 긍정적인지 부정적인지 예측하고
마지막에 유저가 직접 남긴 평점과 비교해서 모델의 정확도를 검토해 보기로 하였습니다.
감정 분석
리뷰를 가져와서
사용할 훈련 데이터에 등록되지 않은 단어 및 오타를 제거 해줍니다.
이제 정규화 과정을 통해 특수 문자 등을 제거하고 문자들을 숫자로 tokenizing 해줘야 합니다.
제가 가져온 리뷰들에 해당 토큰화를 적용하고 어레이 리스트 형태로 가져옵니다.
이제 각 리뷰에 대하여 감정 분석을 적용하여 스코어가 0.5점 이상이면 긍정, 0.5 미만이면 부정으로 평가합니다.
모델의 정확도 검토를 위해 유저가 리뷰에 직접 남긴 평점을 직접 가져옵니다.(번거롭..)
마지막으로 감정분석 점수, 감정 평가, 실제 점수를 병합하여 데이터 프레임 형태로 보면!!
호평(6점 이상)인 영화에 대한 긍정 평가 정확도는 10/11
5점 이하인 영화에 대한 부정 평가 정확도는 3/4로 꽤 그럴듯한 정확도를 보여주었습니다!
(참고로 NaN값은 긍정,부정 평가 영화에 고루 섞여있어서 비교에서 제외하였습니다.)
2차 추천
그럼 이제 해당 유저가 어떤 장르의 영화에 어떤 평가를 내렸는지 한 눈에 보도록 할까요?
최종 데이터 프레임에서 영화 이름과 평가를 가져오고, 장르를 포함한 데이터 프레임과 병합해주면
이처럼 장르에 따라 보고싶은 영화가 있다면(유저랑 취향이 맞는다는 가정하에)
이 추천 표를 보고 어떤 영화를 볼지 신뢰성 있는 추천을 받을 수 있게 되겠습니다!
처음에 입력한 'Star Wars'와 비슷한 Science Fiction장르를 추천 받는다면 'Terminator Genisys'를 시청하면 되겠네요!
마치며
이렇게 취향이 비슷한 유저 탐색을 통한 심층적인 추천 시스템 분석이 끝났습니다! 재밌게 보셨나요?
유사도 분석과 감정 분석, 크롤링까지 강력한 무기들을 함께 사용하니깐 데이터가 충분하다는 가정하에
정말 설득력 있는 추천 시스템을 구현할 수 있는 것 같아요!
여러분들도 코드를 직접 실행해 보시고 비슷한 영화를 찾아보세요!
( 실제 점수는 유저가 작성한 리뷰 순서에 따라 달라질 수 있습니다! )
저는 그럼 다음에 또 흥미로운 주제로 찾아뵙도록 하겠습니다! ヾ(^▽^*)))
'Data Science > Individual' 카테고리의 다른 글
[Individual] 영화 추천 시스템! #4 - 비슷한 취향의 유저 찾기 (0) | 2020.05.18 |
---|---|
[Individual] 영화 추천 시스템! #3 - 1차 추천 (0) | 2020.05.18 |
[Individual] 영화 추천 시스템! #2 - 개요 (0) | 2020.05.08 |
[Individual] 영화 추천 시스템! #1 - 발단 (0) | 2020.05.08 |
[Individual] Arah의 롤 전적 분석 일기 完 - 승률 예측 알고리즘 모델링 & 평점 알리미 챗봇 만들기 (8) | 2020.01.24 |