본문 바로가기

전체 글

(8)
[데이터 분석]네이버 웹툰 콘텐츠 기반 필터링 with python 12/16, 01/04 작성 중 ... ... Python을 이용하여 웹툰 안의 캐릭터 대사와 같은 작품 안의 텍스트 정보를 이용하여 작품 간의 유사도를 구해봤습니다. 이미지 크롤링, OCR, text mining, TF-IDF, 그리고 Cosine similarity 에 관한 개념을 아시면 어렵지 않습니다. 네이버 웹툰에서 인기 있는 20개 작품에서 각각 20개의 회차(1 ~ 20 화) 를 가지고 진행했습니다. 숫자가 높을 수록 유사도가 높은 작품입니다. 예를 들어 가비지타임(농구)과 빅맨(농구)이 0.3으로 작품들 중 가장 유사하며 현실 퀘스트와 quest(원래 제목:퀘스트지상주의)가 0.26으로 두번 째로 유사합니다. 반면 장씨세가(무협)와 뷰티풀 군바리(여성 군 생활)는 0.012 유사도가 가장 ..
TFT 롤토체스 데이터 분석 #3 ... 22/12/14 #2에 이어서... (* #2가 너무 오래전이라 시즌 7의 롤체 데이터를 다시 받아서 사용했다.) 우선 이전에 csv로 저장했기 때문에 csv형태로 다시 불러줬다. lc_ch = pd.read_csv('ch_match_record_2211xx.csv', index_col=[0]) lc_ch = temp_ch.reset_index() lc_ch.head(5) 각 행은 각 매치에 대한 정보를 가지고 있다. 즉, 하나의 행에 여덟명의 플레이어 게임 기록이 들어가 있는 것이다. 여기서 우선 "info.particpants" 열을 들여다 보고자 한다. part = temp_ch['info.participants'] part 1000개의 매치 데이터에서 particiapant(참여자)의 js..
[데이터 분석]네이버 웹툰 데이터 시각화 with Tableau 시각화는 데이터 분석에서 중요한 요소중 하나다. 숫자나 텍스트로 이루어진 정보만으로는 사람들에게 데이터가 가진 의미를 전달하는 것은 쉽지 않다. 이때, 데이터를 한눈에 볼 수 있는 차트, 그래프 등 시각화를 통한 정보 전달은 그 의미를 효과적으로 전달할 수 있는 수단이다. 파이썬이나 R에는 시각화를 돕기 위한 다양한 패키지가 있다. 그러나 태블로(Tableau)를 이용하면 더 쉽고 빠르게 시각화를 할 수 있으며 인터랙티브 한 대시보드도 만들어 볼 수 있다. 이번에는 태블로를 이용한 시각화를 해본다. [사용 데이터] 현재 네이버 웹툰은 영어, 프랑스어, 인도네시아어, 중국어, 태국어, 스페인어, 독일어 등 다양한 언어로 번역되며 서비스 중이다. 영어, 스페인어, 프랑스어, 태국어, 중국어(번체/대만)로 번..
회귀 분석(Regression Analysis) 예전에 배웠지만 자주 사용하질 않으니 까먹는 내용들이 많다. 블로그에 조금이라도 정리하는 게 도움이 될 것이라 생각하여 올려본다. 아래 내용은 위키북스의 데이터 애널리틱스를 상당 부분 참고하였다. 회귀 분석은 통계학 기반으로 예측에 자주 사용되는 기법이다. 회귀 분석은 둘 또는 그 이상의 변수 간의 관계를 표현하는 식을 구함으로써 어떤 하난의 변수를 다른 한 개 또는 그 이상의 변수를 사용해 설명하고 예측하는 기법이다. $$ y = \beta _{0} + \beta _{1}x_{1} + \beta _{2}x_{2} + ...+ \beta _{p}x_{p}+\varepsilon $$ [1] 회귀 분석은 위 [1] 식에서 $\beta$ 값들을 추청해내는 것이며 $\beta$의 개수가 p+1개이다. 일반적인 ..
[데이터 분석] 네이버 웹툰 데이터 크롤링 with python "11/03 수정 중" 데이터 분석 그리고 크롤링(정확하게 말하면 크롤링이라고 하기는 힘들지만) 연습을 하기 위해 어떤 데이터를 대상으로 분석을 해볼까 고민하고 있었다. 예전에 웹툰 이미지로 실습을 해봤던 경험도 있기에 웹툰에 대한 웹 크롤링과 데이터 분석을 해보고자 했다. 우선 구체적으로 분석에 대한 계획이 없었기에 네이버웹툰에서 연재 중인 작품들에 대한 기본적인 작품명, 작가, 평점에 대한 데이터를 수집하고자 했다. [환경] Python(3.9)을 사용하였으며 가상환경에서 bs4(BeautifulSoup)과 request 라이브러리를 사용했다. 우선 현재 연재중인 작품들의 작품, 제목, 평점, 연재 요일을 가져오기로 정했고 네이버 웹툰에 접속하여 페이지가 어떤 식으로 구성되어있는지 살펴봤다. 처음 네..
z 보호되어 있는 글입니다.
TFT / 롤체 / 롤토체스 데이터 분석 #1 나는 TFT의 상위 플레이어가 사용한 시너지, 증강체, 아이템, 캐릭터, 등수 등의 데이터로 분석 연습을 하고자 한다. 데이터 분석을 하기 위해서는 데이터가 있어야 하니 우선 TFT 매치 데이터를 수집해보자. 지금부터 Python과 Riot API를 이용해 TFT(롤토체스)의 데이터를 모아볼 것이다. LOL-TFT의 데이터를 얻을 수 있는 다양한 경로가 있다. TFT 데이터 분석을 해보자 마음 먹고 제일 처음 찾은 것은 Kaggle의 어느 유저가 공유한 데이터였는데, 예전 시즌의 데이터라 그런지 흥미가 생기지 않았다. 가장 최근의 패치가 적용된 경기 데이터를 어디서 얻을 수 있을까 알아보던중 Riot에서도 API를 이용해 데이터를 받을 수 있다는 사실을 발견했다. 방법도 생각보다 간단하다. LOL을 하는..
TFT 롤토체스 데이터 분석 #2 #1에 이어서... 5. matchid 가져오기 puuid를 이용해 matchid를 가져온다. 인수 n은 경기 개수를 나타낸다. 한 개의 puuid마다 20개의 matchid를 받아오고 싶으면 n=20으로 하면 된다. 요청에 대해 에러를 보낼 때도 있는데, 그냥 예외처리시켰다. 에러들 종류는 Riot Developer Portal에서 확인 가능하다. puuid 변수에 있는 소환사가 플레이했던 경기들의 경기ID(matchid)를 가져오는데, 플레이들이 서로 같은 경기에 참여했던 적이 있을 경우, 중복된 경기id가 있을 수 있기 때문에 list(set())으로 중복을 제거했다. 코드를 실행하면 시간이 좀 걸린다. def get_matchid(puuid, key, n, region='asia'): matchi..