데이터 출처 : www.kaggle.com/shivamb/netflix-shows
Netflix Movies and TV Shows
Movies and TV Shows listings on Netflix
www.kaggle.com
ipynb file : github.com/sangHa0411/DataScience/blob/main/Netflix_Analysis.ipynb
sangHa0411/DataScience
Contribute to sangHa0411/DataScience development by creating an account on GitHub.
github.com
Part1 에서는 Netflix 데이터에 대한 분석을 마쳤습니다.
이번 프로젝트의 최종 목표는 Deep Learning의 Word Embedding 을 이용해서 각 콘텐츠들의 연관 콘텐츠들을 파악 및 추천하는 방법을 공부하는 것입니다.
이번 Part2 에서는 이를 위해서 데이터 전처리 방법을 정리하고자 합니다.
먼저 데이터 전처리 하기 위한 keras의 라이브러리 함수를 불러옵니다.
텍스트 데이터를 처리하기 위해서 정규표현식을 이용할 계획입니다.
먼저 텍스트 데이터를 모두 소문자로 변경하고나서 여기서 알파벳이외의 문자는 모두 삭제하는 순서로 텍스트 데이터를 전처리합니다.
그리고 여기서 i , the, a 등등의 자주 사용되고 분석에서는 필요없는 단어들을 제외하고 유효 단어만을 파악해서 리스트에 저장합니다.
이러한 단어 리스트로 이루어진 리스트를 저희는 가지게 됩니다.
저희는 Deep Learning을 이용해서 무언가를 예측하고자 하는 것이 아니라 기존의 있는 것들을 이용해서 Deep Learning을 학습시키고자 하는 것이 목표이기 때문에 모든 데이터를 토크나이저에 입력합니다.
이제 저희는 Text를 정수 인코딩할 수 있습니다.
이제부터 저희는 장르, 유형 , 시청등급 , 제작 일자 등등을 모두 정수로 인코딩하기 위해서 여러 Dictionary를 만들고자 합니다.
각 콘텐츠들의 해당 속성을 돌면서 0 ~ 속성의 클래스 갯수 -1 로 인코딩하는 구조입니다,
맨 아래에는 시청 등급에 대한 정수 인코딩 Dictionary를 예시로 출력한 결과입니다.
여기서 주의할 점은 하나의 콘텐츠가 2개 이상의 장르를 가질 수 도 있습니다. 따라서 저희는 장르는 정수로 인코딩하는 것이 아니라 벡터로 변환할 것입니다.
장르의 총 갯수는 42개 입니다. 여기서 각 장르 별로 0 ~41 까지의 인덱스가 있을 텐데 이를 Dictionary에 저장합니다.
이제 장르에 대한 정보를 벡터로 변환할 때 길이가 42인 벡터에서 해당 장르가 있으면 1 없으면 0으로 만들 계획입니다.
아래의 함수가 각 콘텐츠의 장르 정보를 벡터로 변환하는 함수입니다.
해당 장르가 있으면 1. 없으면 0으로 설정하고나서 벡터를 길이가 42인 벡터를 반환합니다.
이제 앞서 만든 토크나이저를 이용해서 텍스트를 통해서 만든 단어 리스트를 정수 인코딩할 것입니다. 그리고 여기서 최장 길이를 파아해서 Padding 과정을 거침으로써 길이를 동일하게 할 계획입니다.
이제 저희는 하나의 콘테츠를 완전한 벡터로 만들 수 있습니다.
과정이 상당히 길고 복잡해보입니다. 완전한 코드는 github 위에서 확인하실 수 있습니다.
이제 저희는 Deep Learning 에서 특히 Word Embedding Layee를 학습시켜서 이용하고자 합니다.
앞선 과정을 통해서 Deep Learning을 학습시키기 위한 데이터를 갖추었지만 Label을 설정하지 않았습니다.
그렇다고 해서 모든 label을 1로 설정해서 Deep Learning 모델을 학습시키면 모델의 훈련이 제대로 되지 않습니다.
따라서 저희는 기존의 데이터를 True Data라 해서 1로 label로 설정하고
False 데이터를 임의로 만들어서 0이라 label로 설정함으로써 이 들을 이용해서 Deep Learning Model을 학습시키고자 합니다.
이 과정에 대해서는 Part3 에서 자세히 다루도록 하겠습니다.
참고 자료 : towardsdatascience.com/building-a-recommendation-system-using-neural-network-embeddings-1ef92e5c80c9
Building a Recommendation System Using Neural Network Embeddings
How to use deep learning and Wikipedia to create a book recommendation system
towardsdatascience.com
'Deep Learning' 카테고리의 다른 글
Deep Learning - LSTM을 이용해서 날씨 예측하기 (2) | 2020.10.07 |
---|---|
Deep Learning - Netflix 연관 컨텐츠 파악하기 Part3 (0) | 2020.10.06 |
Deep Learning - Netflix 연관 컨텐츠 파악하기 Part1 (0) | 2020.10.06 |
Deep Learning - 트위터 감정 분석하기 Part2 (0) | 2020.10.06 |
Deep Learning - 메이크업 노메이크업 구별하기 Part3 (0) | 2020.10.06 |