본문 바로가기

프로젝트

[성균융합원 R 코딩캠프] TwitchR

  • R을 활용한 데이터 분석 프로그램
  • 2020.01.13~2020.01.24
  • R 프로그래밍
  • 2019 동계 R 코딩캠프 우수상 수상 

 

TwitchR은 R을 활용하여 Twitch 생방송 채팅 로그 데이터를 분석하여 영상 하이라이트 구간을 추출하는 프로그램입니다.  

성균융합원 R 코딩캠프

 

성균관대학교 성균융합원

성균관대학교 성균융합원

icon.skku.edu

 

공지사항 게시판읽기 ( [ 대학혁신지원사업 ] 2020학년도 동계 온라인 데이터사이언스 부트캠프

데이터사이언스융합전공 SNS 공유 : 첨부파일 ( 2 ) 게시글 내용 성균관대학교 데이터사이언스융합전공에서는 학생들의 학문, 창의, 소프트웨어역량 강화를 위해, 아래와 같이 R 단기집중 교육을

www.skku.edu

  • R 프로그래밍 (2019) 
  • 위 링크는 2019년과 같은 내용지만 2020년 R 코딩 캠프 공지라는 점 참고 부탁드립니다.

TwitchR

게임 생방송 플랫폼인 Twitch에 생방송 채팅을 관리하는 프로그램인 Chatty이 있습니다.

이를 활용하여 생방송 전체 채팅 텍스트 데이터를 수집하고, 전체 채팅 텍스트에서 'ㅋㅋㅋㅋ'의 빈도가 높은 구간과 웃긴 상황에서 사용되는 구독자간 유행어를 분석하여 해당 단어의 빈도가 높은 구간을 탐색하였습니다.

그리고 분 단위 키워드의 개수를 시각화하여 값이 높은 부분의 전후 30초를 뽑아 해당 구간이 생방송 중 하이라이트 부분이었다고 판단하여 추출하여 영상을 편집했습니다.

해당 프로그램으로 러닝타임이 아주 긴 게임 생방송 하이라이트 구간을 추출을 자동화하였습니다. 


Twitch는 게임 생방송 플랫폼입니다. 게임 생방송은 대부분 5시간 이상 장시간 방송됩니다. 그렇기 때문에 가장 웃기거나 보고싶은 부분은 실제 방송 시간 대비 아주 작은 부분입니다.

따라서 녹화된 생방송 영상에서 하이라이트 구간을 추출하는 것이 TwitchR의 목표였습니다. 

 

시청자의 반응이 좋았던 하이라이트 구간에는 채팅창에 'ㅋㅋㅋㅋ'가 남발한다는 점에 주목하여 전체 채팅 로그에서 'ㅋㅋㅋㅋ'의 등장 빈도가 높은 구간과 시청자간 유행어를 분석하여 해당 단어의 빈도가 높은 구간을 추출하였습니다. 

채팅 로그 데이터는 Twitch의 채팅 관리 프로그램인 Chatty에서 다운받았습니다. 

  • 데이터 전처리

  • 텍스트 파일로 다운 받은 채팅 로그 데이터를 가져옵니다. 

 

  • 텍스트 데이터의 각 라인에서 시, 분, 초 데이터를 추출합니다.

 

  • 해당하는 시 단위 dataset에서 m에 저장된 데이터가 일치하는 데이터를 모아 ‘data시분변수를 모두 생성하여 분 단위 구간을 나누었습니다. data시분 데이터셋은 채팅 데이터의 h, m, numk를 변수로 가집니다.

 

  • 데이터 시각화를 위한 데이터 셋을 ‘k형태의 변수에 저장합니다. (:10-> k10)

 

  • ggplot으로 데이터를 시각화하여 선정한 키워드 빈도가 높은 구간을 추출하여 영상을 편집합니다

 

 


프로젝트 결과

2019 동계 코딩캠프 우수상을 수상했습니다. 


프로젝트 리뷰

  • 배운점

R 코딩 캠프를 하며 데이터 분석이 어떤 것인지, 이를 활용하기 위해 어떤 작업이 필요하고, 어떻게 활용할 수 있는지에 대해 배울 수 있었습니다. R 프로그래밍 실력보다는 데이터에서 의미를 찾고, 이를 통해 서비스를 개발할 수 있다는 점에 주목하여 데이터 분석에 큰 흥미를 느꼈습니다. 

  • 보완할 점

단기간 R과 R studio 사용법을 익혀 능숙하지 못했기 때문에 코드가 효율적이거나 정교하지 못합니다.

R을 조금 더 숙지한 상태였다면 더 효율적인 방식으로 데이터 전처리를 했을 것이라 생각합니다.


보다 자세한 내용은 아래 첨부한 포스터 및 발표 자료, 그리고 시연 자료를 확인해 주시길 바랍니다. 

2019_동계_R_코딩캠프_포스터.pdf
0.22MB
2019 동계 R_코딩캠프-3조(트위쳐).pdf
1.95MB
시연자료.R.r
0.03MB

긴 글 읽어주셔서 감사합니다 :)