brunch

You can make anything
by writing

C.S.Lewis

by normal B Mar 05. 2023

텍스트 데이터 시각화(RStudio)

CX(Customer Experience) Specialist를 향해서

텍스트 데이터를 시각화하는 방법으로는 잘 알려져 있는 워드 클라우드(word cloud)가 있다. 워드 클라우드는 방대한 양의 텍스트 데이터에서 많이 언급된 단어를 크게 표현해 핵심 단어를 시각적으로 돋보이게 하는 방법이다. 이전글 원하는 페이지에서 데이터 수집하기(RStudio)에서 2020년에 리디에서 진행한 '올해 읽은 최고의 책' 댓글 이벤트를 분석해 봤다. 이번에는 결괏값을 가지고 워드 클라우드를 만들어 보도록 하겠다.


워드 클라우드

만드는 방법 하나


워드 클라우드 만드는 방법은 2가지가 있는데 우선 첫 번째는 wordcloud 패키지를 이용하는 방법이다.


> install.packages("wordcloud")
> install.packages("RColorBrewer")
> library(wordcloud)
> library(RColorBrewer)


필요한 패키지를 설치해 준다. brewer.pal.info를 입력하면 워드 클라우드를 만들 때 사용할 수 있는 팔레트의 목록을 볼 수 있다.



display.brewer.all(n=10, exact.n = F)를 입력하면 색상표를 볼 수 있다.



마음에 드는 팔레트를 골랐으면 워드 클라우드를 만들어 보자.


> wordcloud1 <- wordcloud(words = table$all.comments,
                                                    freq = table$Freq,
                                                    min.freq = 20,  #빈도 20번 이상
                                                    max.words = 200,  #워드 클라우드에 표시할 최대 단어 200개
                                                    random.order = F,  #빈도수가 높을수록 중앙에 배치
                                                    random.color = F,  #빈도수로 색상 지정
                                                    scale = c(2, 0.3),  #빈도수가 높은 단어의 크기, 빈도수가 낮은 단어의 크기
                                                    colors = brewer.pal(9, "Set1"),  #색상 설정(Set1 팔레트에서 9개의 색상 사용)
                                                    family = "AppleGothic") #폰트 지정


아래와 같이 워드 클라우드가 생성됐다. wordcloud 패키지의 경우 설정할 수 있는 파라미터가 한정되어 있다. 조금 더 다양한 형태로 시각화를 원한다면 wordcloud2 패키지를 사용하는 것이 좋다.



워드 클라우드

만드는 방법 둘


워드 클라우드 만드는 방법 두 번째는 wordcloud2 패키지를 이용하는 방법이다. wordcloud2 패키지를 사용할 때는 워드 클라우드를 만들 데이터를 뽑아줘야 한다.


> install.packages("wordcloud2")
> library(wordcloud2)

> freq_20 <- table %>%
+ filter(Freq >= 20)  #table 데이터에서 빈도수(Freq)가 20번 이상인 데이터만 추출

>  wordcloud2(freq_20)   #freq_20 데이터를 워드 클라우드로 만들기


이렇게만 해도 아래와 같은 결과물을 얻을 수 있다.


하지만 wordcloud2 패키지는 wordcloud 보다 다양한 파라미터를 사용해서 시각화를 할 수 있다는 장점이 있기 때문에 wordcloud2에 사용할 수 있는 파라미터를 알고 있으면 좋다.


> wordcloud2(data = freq_20,
                           size = 1,  #폰트 사이즈 (default : 1)
                           minSize = 0.5,  #서브 타이틀 사이즈 (default : 0)
                           gridSize = 1,  #단어 사이 간격 (default : 0)
                           fontFamily = "AppleGothic",  #폰트 지정
                           fontWeight = "bold",  #볼드체 여부 (e.g. normal / bold / 600) (default : bold)
                           color = "white",  #글자 색상 지정 (e.g. random-dark / random-light / 벡터 컬러) (default : random-dark)
                           rotateRatio = 0,  #단어 회전 확률 (default : 0.4)
                           backgroundColor = "black" #배경색 지정
                           shape = "star") #워드 클라우드 형태 지정 (e.g. circle / cardioid / diamond / triangle-forward / triangle / pentagon / star)


이렇게 별모양 같지 않은 별모양 워드 클라우드가 나왔다.


워드 클라우드

만들기를 마치며


이전글에서부터 데이터 수집/전처리/시각화까지 진행해 봤는데, 사실 비정형 데이터를 분석하고 시각화하는 일은 이렇게 간단하지 않다. 대부분 형태소 분석 및 불용어 처리 등의 복잡한 데이터 전처리 과정을 거쳐야 한다. 그럼에도 불구하고 그런 과정을 통해 비정형 데이터를 분석하는 이유는 고객 경험 개선이라는 목표를 이루기 위해서는 고객과 관련된 모든 데이터가 필요하고, CX팀은 데이터를 바탕으로 고객에게 더 좋은 경험을 제공해 줘야 하기 때문이다.

매거진의 이전글 원하는 페이지에서 데이터 수집하기(RStudio)

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari