brunch

You can make anything
by writing

- C.S.Lewis -

by 호달 Oct 26. 2020

리뷰에서 인사이트를 찾으려면?

- 워드클라우드를 활용한 리뷰 데이터 분석 -

어느 정도 상품을 정량적으로 분석할 수 있어지면서, 새로운 고민이 생겼다. 매출 및 상품정보를 기반으로 진행한 정량화는 고객이 앞단에서 느끼는 결과물이기 때문이다. '앞단에서 느끼는 결과물'이라는 의미는 고객이 상품을 접하기 전의 생각이 투영된 결과라는 뜻이다. 즉 앞단에서 얻은 결과 데이터를 통해선 구매까지 일으키는 방법을 개선할 수 있지만, 전체적인 상품 만족도를 파악하거나 개선하긴 어렵다. 그렇다면 고객들이 구매 이후 뒷단에서 느끼는 내용은 어떻게 보면 좋을까? 이를 확인하기 위해, 구매 만족도 설문 혹은 각 상품에 남기는 구매 후기를 보는 등 할 수 있는 다양한 액션이 있다. 나는 다양한 액션 중에서 리뷰를 통해 인사이트를 얻어보는 노력을 해보았다.


험난한 리뷰 데이터 전처리


리뷰 데이터(.csv) 캡처 내용

리뷰는 하나씩 읽어보면서 긍정적인 내용, 부정적인 내용을 명확히 파악할 수 있는 장점이 있지만, 이 내용들이 얼마나 다수의 의견인지를 알기 어렵다. 일반적으로 수치화할 수 있는 로그성 데이터와 다르게 문장으로 구성되어 정량적으로 보기 어렵기 때문이다. 문장은 하나의 단어로 끝나는 게 아닌 뒤에 어떤 수식어가 있는지, 조사는 어떤 게 붙었는지 등에 따라 의미하는 바가 완전히 달라진다. '귀걸이가 예쁘다'와 '귀걸이는 예쁜데'가 의미하는 바는 완전히 다른 것처럼 말이다. 또한 많은 리뷰들은 국어사전처럼 정확한 표준어로 작성되지 않고, 신조어나 줄임말 등 사람들이 편의에 의해 변형해서 사용하는 언어들로 작성된다. '마음'과 '맘'은 단어의 형태가 다르지만, 같은 의미를 가진다. 또한 '맘'은 앞뒤로 수식어가 없다면 영어 'Mom'을 한국어로 표현하는 것과 혼동될 수 있다. 위와 같은 이유들로 정성적 데이터는 분석 방향에 따라 최적화하기 위한 전처리 작업이 필요하다. 나의 경우 긍정적 의미와 부정적 의미를 최대한 해치지 않기 위한 방향으로 초점을 맞춰서 분석을 설계했다.


들어가기 전


전체 리뷰는 대행사에서 따로 수집하고 있었으며, 전체 Raw를 .csv 파일 형태로 제공받아 사용했다. 리뷰를 가공하고 활용하기 위한 언어로 Python을 사용했다. 또한 최근 이슈를 확인하기 위한 목적이 있어 2020년에 달린 리뷰만 가지고 분석하였다.


형태소 단위로 나눠보기!


리뷰 데이터 형태소(명사) 추출 실행 과정
리뷰 데이터 형태소(명사) 단어 빈도수 실행 과정

각 형태소를 나누는 작업은 Python 라이브러리 KoNLPy(코엔앨파이)를 사용하여 진행했다. 먼저 위 이미지와 같이 전체 리뷰에서 명사만 추출하는 작업을 진행하고, 확인해보니 아쉬움이 있었다. 정량화하기 쉽도록 각 단어들을 나누었지만, 정확한 문맥을 파악하기 어려웠다. '귀찌'라는 단어가 형태소 단위로 쪼개지면 '귀'와 '찌'로 분리되면서 실제로 의미하는 단어와 거리가 멀어지는 등의 이슈도 있었다. 즉 전반적으로 조사나 수식어의 부재로 인한 정확한 문맥을 파악하기 어렵고, 각 단어의 의미가 퇴색되는 등의 이슈가 생겼다. 이러한 이슈를 해결하기 위한 방법으로 N-gram 추출방식이 있으나, 리뷰 데이터를 최적화하는 과정(요소를 나누는 기준, 띄어쓰기 유무, 조사를 활용하는 방법 등)에서 공수가 많이 들어 우선은 보류하였다.


워드클라우드 사용하기!
워드클라우드 예시

워드클라우드를 구성하는 작업은 Python 라이브러리 WordCloud를 사용하였다. 워드클라우드를 간략히 설명하자면, 입력값(텍스트)에서 사용된 단어들의 빈도수를 측정하고 각 빈도수에 맞게 해당 단어의 크기를 시각화하여 표현하는 방법이다. 위 그림과 같이 각 단어의 빈도수에 맞게 크기를 다르게 보여주며 단어의 노출 정도를 파악하기 쉽도록 표현해준다. 워드클라우드는 영어에 최적화되어 띄어쓰기를 기본으로 단어를 구분한다. 한글 텍스트를 워드클라우드로 시각화한다면, 영어에 비해서 난잡하게 표현될 것 같았지만 조사를 살려주는 등, 문맥을 최대한 해치지 않을 것으로 판단되어 진행했다. 

나름 성공적이었던 워드클라우드!


워드클라우드_2020년 전체 리뷰

20년도 전체 리뷰 내용을 워드클라우드로 표현한 결과는 위 이미지와 같다. 전반적으로 긍정적인 단어가 많았다. 가장 크게 쓰인 단어들을 먼저 살펴보면 '너무', '예뻐요', '진짜', '정말'을 볼 수 있다. 특히 '너무', '진짜', '정말'과 같은 수식어는 강조성 수식어로 긍정적인 단어('예쁘다', '이쁘다', '예뻐요', '맘에들어요', '마음에들어요', '만족합니다' 등)와 함께 사용되었을 때 더 긍정적인 반응이라는 것을 유추할 수 있다. 여기서 짚고 넘어가야 할 부분은 이곳의 경우 '베스트 리뷰상'과 같은 리뷰를 달도록 유도하는 혜택이 있다는 것이다. 혜택을 받기 위해 리뷰를 다는 유저는 선정되기 위해서 긍정적인 방향으로 편향된 리뷰를 쓸 가능성이 높다. 따라서 더 정확한 내용을 파악하기 위해 리뷰와 함께 달 수 있는 별점을 기준으로 나누어 워드클라우드를 만들어보았다.

워드클라우드_2020년 긍정(별점 4~5점) 리뷰

별점이 높은(4~5점) 리뷰만 필터링하여 워드클라우드로 표현한 내용은 위 이미지와 같다. 전체 리뷰 대상으로 워드클라우드를 만든 것과 비교하면, '예뻐요'라는 단어는 크기의 변화가 없으나 '진짜', '정말', '너무'등 강조성 수식어의 크기가 작아진 것을 볼 수 있다. 이 현상을 해석하면, 강조성 수식어가 긍정적인 내용에만 사용된 것이 아닌 부정적인 내용에도 꽤 사용되었다는 것을 알 수 있다.

워드클라우드_2020년 부정(별점 1~2점) 리뷰

별점이 낮은(1~2점) 리뷰만 필터링하여 워드클라우드로 표현한 내용은 위 이미지와 같다. 위의 이미지에서도 보이는 바와 같이 부정적인 리뷰에도 '너무', '정말'등 강조성 수식어가 크게 표현된 것을 볼 수 있다. 더 흥미로운 내용은 '침이'라는 단어이다. '침이'라는 단어만 보았을 땐 정확히 어떤 것을 의미하는지 불명확하지만, '줄이', '마감이', '끊어져서', '약해요', '휘어져서'등의 내용들과 함께 유추하면, 상품의 특정 부분에 불만스러운 부분이 있다는 것을 알 수 있다. 특히 '침이'라는 단어가 크게 표현된 것은 귀걸이의 침에 대한 불만이 상당히 많이 차지하는 것을 알 수 있다. 다른 단어들도 확인해보면, '예쁜데', '했는데', '샀는데', '근데', '그런데'등 '~한데'의 형태를 볼 수 있다. '~한데'는 앞에 언급한 내용과 반대되는 내용을 이야기할 때 주로 사용되는 형태이다. 즉 부정적인 리뷰지만, 강력한 부정이 아닌 아쉬운 부분을 언급하는 형태로 리뷰가 달린 것을 알 수 있다.




정성적 데이터는 최대한 보기 쉽도록 최적화하여 참고하는 정도이지, 정확한 정량화는 없는 것 같다(아직은?). 그러다 보니 인사이트를 찾아내는 사람의 상상력이 어느 정도 가미될 수밖에 없으며, 사람에 따라 다르게 해석할 수 있음을 인지해야 한다. 마무리하자면, 리뷰를 워드클라우드로 표현하여 살펴보니 고객 다수의 의견이 어떤 부분에 집중하여 목소리를 내고 있었는지 알 수 있었다. 긍정적인 내용은 우리가 앞으로 잘할 수 있는 부분을 놓치지 말라는 의미로, 부정적인 내용은 빠르게 개선하여 더 나아갈 수 있는 의미로 생각하며 나아가면 좋을 것 같다.

매거진의 이전글 데이터 친화적인 조직이 되려면?

매거진 선택

키워드 선택 0 / 3 0

댓글여부

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

카카오계정으로 간편하게 가입하고
좋은 글과 작가를 만나보세요

카카오계정으로 시작하기
페이스북·트위터로 가입했다면