R + Textmining (텍스트마이닝)

R rtweet 트위터 (twitter) 로 좋아하는 연예인 텍스트 마이닝 (text mining) 하기 + 트윗 크롤링 (Crawling)

구렁이 알(Python/R) 2020. 2. 14. 17:22

 

출처 : Stonemusic Entertainment.Inc

 

 

우리나라에서는 다소 제한적으로 사용되어지지만, 좋아하는 연예인(특히, 아이돌)의 소식을 알고 싶거나 팬들끼리 소통할 때 트위터(twitter)는 아마도 오늘날 가장 많이 활용하는 SNS일겁니다.  서양권과 특히, 일본에서 가장 보편적으로 사용하는 SNS이기도 한 트위터는 그 특성(retweet)때문에 온라인 상에서 가장 많은 데이터를 생산하는 어플리케이션 중 하나라고 생각이 됩니다

 

이번 게시글에서는 트위터로 좋아하는 연예인을 게시글을 모으는 방법과 

이를 활용하여 시각화까지 해보도록 합시다

(이번글은 한글만 하겠습니다. 영어는 아직 다 코딩을 못했네요 중간에 막혀서...)

 

필요한 library는 아래와 같습니다

미처 언급하지 못한 library와 package는 그때그때 처리해주시길 바랍니다

 

 

  • library(base64enc)

  • library(KoNLP)

  • library(NIADic)

  • library(RmecabKo)

  • library(rtweet)

  • library(tidyverse)

  • library(igraph)

  • library(twitteR)

 

 

R은 트위터 관련 패키지가 대단히 잘 만들어져 있습니다

이를 활용하기 전에 필요한 것이 있습니다

바로 API key 입니다

 

 

 

 

1. 트위터 API key 받아오기

 

https://developer.twitter.com/en/apps에 접속하여 로그인합니다

 

 

https://developer.twitter.com/en/apps

 

developer.twitter.com

 

 

Create an app을 클릭합니다

저는 이미 API Key를 받은상태이기에 유저분들이 보시는 화면과 다를 수 있습니다

문제 없으니 걱정마시고 클릭합니다

 

 

 

아래와 같은 페이지가 나오면 

AppName

Applicaion Description

Website URL 

Tell us how this app will be used를 작성하고

 

Allow this application to be used to sign in with Twitter에서 동의부분을 체크한 후 

Create 버튼을 클릭합니다 

 

 

 

 

다음과 같은 페이지가 나오면 "Keys and tokens"로 갑니다

 

 

 

API key 그리고 API secret key를 확인할 수 있습니다

그리고 Generate 버튼을 누르면

 

 

 

Access token 그리고 access token secret를 확인할 수 있습니다

 

 

 

 

그럼 이를 R로 할당하여봅시다

R studio를 켭니다

아래 명령어를 실행합니다

api_key <- "할당값"

api_secret_key <- "할당값"

access_token <- "할당값"

access_token_secret <- "할당값"

options(httr_oauth_cache = TRUE)

setup_twitter_oauth(api_key,api_secret_key,access_token,access_token_secret)

 

이렇게 R로 트위터를 활용한 준비가 끝났습니다 그러면 게시글을 크롤링 해봅시다

 

 

 

 

2. R로 트위터 게시글 크롤링

 

#### 수집가능한 메타정보

getCurRateLimitInfo()      ## 어떠한 프레임으로 데이터를 크롤링하는지 알수 있습니다





#### 키워드 설정

keyword_ko <- enc2utf8("아이즈원")      ## 오늘은 한글 키워드만 모아서 시각화까지 해봅시다

keyword_ja <- enc2utf8("アイズワン")    ## 일본어 키워드 입니다

keyword_en1 <- enc2utf8("IZONE")        ## 영어 키워드 입니다
keyword_en2 <- enc2utf8("izone") 
keyword_en3 <- enc2utf8("IZ*ONE") 
keyword_en4 <- enc2utf8("iz*one")

 

 

 

 

#### 트위터 크롤링

izone_ko <- searchTwitter(keyword_kon=1000, lang="ko", since="2020-02-11", until="2020-02-12")

 

 

명령어를 살펴봅시다

 

  1. keyword_ko <- enc2utf8( )에 할당한 키워드

  2. n = 가져오는 게시글 개수

  3. lang = 언어 (국어 ="kr" / 영어 = "en" / 일본어 = "ja)

  4. since = 시작일

  5. until = 종료일

 

이를 유저들 편의에 따라 조정하여 명령어를 완성하고 실행합니다

 

 

 

 

#### df저장

izone_ko_df <- twListToDF(izone_ko)

데이터 프레임으로 저장합니다

 

 

 

 

#### 건수 확인

length(izone_ko)

 

불러온 게시글 갯수를 확인합니다

 

 

 

 

 

여기까지가 키워드가 들어간 게시글 원자료 Raw data 크롤링이 끝났습니다

 

 

다음페이지에서 시각화( bar chart / word cloud )를 알아봅시다