로그인|회원가입|고객센터
Top
검색버튼 메뉴버튼

SR4. 소셜 분석 방법론

극도로 복잡한 한국어 소셜 버즈 분석
필요 없는 데이터 잘 버리는 게 핵심

윤용찬 | 261호 (2018년 11월 Issue 2)
Article at a Glance
소셜 버즈 분석은 소셜 모니터링, 소셜 트렌드, 타깃 마이닝으로 크게 나눌 수 있는데 그 유용성과 정확한 분석력으로 최근 급격히 각광받고 있으나 복잡한 한국어의 구조와 어려운 텍스트 분석 난이도로 인해 여전히 해결해야 할 과제가 많은 분석 기법이다. 소셜 분석 정확도를 높이기 위해서는 정확한 수집 대상을 선정해야 하며 필요 없는 데이터를 효과적으로 버리는 작업도 필수적이다. 특히 한국어 소셜 버즈가 가진 특징과 한계를 정확히 파악하고 극복하려는 노력도 절실하다.


들어가며: 소셜 분석, ‘한국어 소셜 버즈’ 분석
많은 기업이 소셜 버즈 분석 1 을 비즈니스에 적용하고 있다. 분석 결과를 활용해 새로운 상품과 서비스를 기획, 개발하고, 신제품에 대한 소비자 반응을 모니터링하며, 타깃 소비자들의 숨겨진 니즈를 발굴하고 있다.

소셜 버즈 분석은 소셜 마이닝, 오피니언 마이닝, 소셜 트렌드 분석 등 다양한 이름으로 불리고 있으나 그 본질은 크게 다르지 않다. 분석 목적을 기준으로 크게 세 가지로 나눠본다면, 첫 번째는 특정 제품과 서비스에 대한 사람들의 반응, 요구사항을 확인하는 것이고(소셜 모니터링), 두 번째는 특정 주제에 대한 사람들의 생각을 파악하는 것이며(소셜 트렌드), 세 번째는 특정 집단의 생각과 의견을 파악하는 것이다(타깃 마이닝). 최근에는 ‘소셜 버즈’만을 분석하는 것이 아니라 여러 가지 데이터를 결합, 연계해 분석함으로써 다양한 관점의 분석 결과를 도출하고 있다. 예를 들면, 소셜 버즈 분석 결과와 카드사의 매출 데이터를 연계함으로써 특정 제품에 대한 타깃 고객을 도출해 ‘타깃 마케팅’을 진행하거나 인구통계 데이터와 결합해 특정 지역에 대한 유통전략을 새롭게 추진한다. 타깃 고객에 대한 서베이 결과 및 검색량 데이터와 결합해 새로운 브랜드 컨셉과 광고 전략을 도출하기도 한다.

이렇게 다양한 시도와 함께 성공 사례가 만들어지고 활용 범위가 넓어지고 있지만 ‘소셜 버즈 분석’은 아직도 발전 가능성이 크다고 볼 수 있다. 이는 ‘소셜 버즈 분석’의 기술적 기반이 ‘자연어 처리와 텍스트 분석’에 있으며, 한국어 텍스트 분석의 난도는 다른 어떤 언어보다도 높은 관계로 아직 극복하지 못한 부분이 많기 때문이다.

65-1


한국어 텍스트 분석이 어려운 이유는 한국어의 특성상 문법적으로 완벽하지 않은 문장도 그 의미를 충분히 파악할 수 있기 때문이다. 가령 “2일연짱야근중. 야근오나전 ㅠㅠ”라는 문장이 있다고 가정할 때 독자들 중 이 문장을 이해하지 못하는 사람은 많지 않을 것이다. 띄어쓰기를 제대로 하지 않아도, 오탈자가 있어도, 어순이 틀려도 의미 파악이 가능하다. 게다가 동형이의어가 많고, 맥락에 따라 의미가 똑같은 단어도 긍·부정은 전혀 다르게 해석되기 때문에 텍스트만 보고 의미와 의도를 정확하게 파악하기 어렵다. “동생에게 사과를 받았다”는 문장만으로는 실제로 받은 것이 무엇인지 알 수 없으며, ‘수상한 그녀’(영화 제목)로 ‘수상(受賞)한 그녀’(배우 심은경)가 있다.

SNS가 활성화할수록 이 난도는 훨씬 높아진다. 매일매일 다양한 유형의 신조어가 생겨나고, 어떤 단어는 원래 뜻과 전혀 다르게 사용되고, 심지어 자기들만의 새로운 문법을 만들어 사용하기도 한다. 따라서 소셜 버즈 분석에 앞서 한국어의, 아니, 정확히는 ‘한국어 소셜 버즈’의 특징을 정확히 이해해야 한다. 연기자 ‘김혜자’ 씨의 이름에 ‘가성비가 좋다’는 의미가 추가되고, ‘여포’는 더 이상 삼국지 속 등장인물만이 아니라 ‘절대강자’를 의미하는 신조어임을 모른다면 결코 제대로 된 분석을 할 수 없다.

소셜 분석 정확도를 높이는 방법
1. 정확한 수집 대상 선정
소셜 버즈 분석에 있어 주로 활용되는 데이터 출처는 ‘카페, 커뮤니티, 블로그, 트위터, 언론기사’다. 이 중 ‘블로그’와 ‘트위터’는 그 출처만으로 주제 영역을 명확하게 판단하기 어렵다. 그러나 카페와 커뮤니티의 경우 어느 카페, 어느 커뮤니티에서 발생한 버즈냐에 따라 주제 영역이 정해질 수 있고, 그 하위의 게시판까지 지정해 데이터를 수집한다면, 보다 정확하게 필요한 데이터를 수집할 수 있다. 그렇기 때문에 소셜 버즈 분석으로 인사이트를 얻고자 할 경우 무작위로 많은 양의 데이터를 수집하기보다 분석의 목적과 주제에 따라 수집 및 분석 대상 데이터를 한정 지어야 한다.

‘자동차’에 대한 분석을 한다면, 해당 주제에 가장 부합하는 데이터는 ‘보배드림’의 ‘국산차 게시판’이나 ‘수입차 게시판’에서 발생하는 데이터일 것이다. ‘자동차’라는 주제 내에서도 세부적으로 주제를 정한다면, 예를 들면 올해 새로 출시한 ‘싼타페 구매 소비자 반응 분석’을 주제로 한다면, ‘클럽 싼타페’와 ‘TM패밀리’라는 카페 내 ‘시승기’ 게시판의 데이터를 수집하는 것이 가장 정확할 것이다.

‘맘스홀릭베이비’ 카페는 현재 ‘생년이 1969년 ∼ 2000년인 여자 회원’만 가입할 수 있다. 그렇기 때문에 맘스홀릭베이비 카페에서 발생하는 버즈는 ‘20∼50세 여성’의 의견으로 추정할 수 있다. 작성 내용으로 본다면 임신, 출산, 육아, 교육 등에 대한 내용이 주를 이룰 것이다. 따라서 ‘여성의 라이프 스타일’을 분석하거나 임신, 출산, 육아 관련 제품을 분석할 경우에는 ‘맘스홀릭베이비’ 카페에서 데이터를 수집하는 것이 좋다.

만일 분석 대상이 ‘아기 기저귀’라면 ‘클럽 싼타페’나 ‘보배드림’의 데이터는 굳이 수집하지 않아도 된다.

2. 잘 수집하고 잘 버리기
분석의 목적과 주제를 고려해 데이터를 수집하더라도 그 속에는 분석에 불필요한, 소위 말하는 ‘가비지(garbage) 데이터’들이 많이 섞여 있다. 가장 대표적인 가비지 데이터의 유형은 ‘광고성 게시물’이다. 이 ‘광고성 게시물’을 제대로 걸러내지 않으면, 특히 긍·부정 같은 감성 분석에 있어 치명적인 오류를 발생시킨다. 광고의 특성상 당연히 특정 제품과 서비스에 대해 좋은 내용만 나올 것이고, 이러한 광고성 게시물을 포함해서 소비자 반응을 분석한다면 ‘우리 제품/서비스에 대한 소비자의 반응이 긍정적으로 나오고 있습니다’라고 잘못된 판단을 할 수 있다.

이러한 불필요한 데이터를 제거하는 데 효과적인 방법은 기계학습을 이용한 ‘스팸 필터링’이다. 불필요한 데이터에 대해 학습 데이터세트를 구축하고 분석 엔진에 학습시킨 후, 이를 적용해 ‘수집한 전체 데이터’에서 ‘분석 대상 데이터’를 자동으로 걸러내는 것이다.

광고 외에 또 많은 오류를 야기하는 것은 특정 단어를 무분별하게 사용하는 행태다. 2016년 상반기에 인터넷상에서 ‘조세호 놀이’가 폭발적인 인기를 끌며 유행했다. 그러자 ‘조세호’와 전혀 상관없는 게시물에도 ‘#조세호’라는 해시태그가 붙거나 게시물 내용 중에 뜬금없이 ‘조세호 씨 왜 안 오셨어요?’라는 문장이 나오는 소셜 버즈가 많이 발생했다. 그러다 보니 ‘자동차’ 관련 소셜 버즈를 분석해도, ‘화장품’ 관련 소셜 버즈를 분석해도 ‘분석 대상 데이터 내 가장 많이 등장하는 키워드’는 ‘조세호’가 돼 버린다. 이런 오류를 없애기 위해서는 데이터 분석 과정 중에 ‘조세호’ 키워드를 모두 제외하는 별도의 처리가 필요하다.

그러나 이러한 가비지 데이터 유형은 분석 주제나 분석 요구사항에 따라 달라지므로 우선 고려해야 할 것은 ‘분석의 주제와 목적’이 무엇인가 하는 점이다. 만약 분석의 목적이 ‘광고성 게시물에서 이야기하는 메시지’와 ‘소비자들이 인식하는 메시지’가 얼마나 일치하는가를 알아보기 위함이라면 ‘광고성 게시물’과 광고를 제외한 소셜 버즈를 구분해 분석하고 비교해야 한다. 앞서 예시로 든 ‘조세호’ 키워드는 분석 주제가 연예인에 대한 내용이라면 제외해서는 안 될 것이다. 분석에 앞서 어떤 유형의 데이터를 가비지 데이터로 처리해야 하는지, 어떤 키워드를 제외하고 분석해야 하는지 항상 확인해야 한다.

소셜 버즈를 분석하는 방법은 매우 다양하기 때문에 특정 방법이나 알고리즘이 가장 좋다거나, 맞다는 식으로 설명하기는 어렵다. 다만 다양한 현업 업무 담당자와 프로젝트를 수행해본 경험을 기반으로 볼 때, 가장 활용하기 좋은 방법은 ‘Classification’과 ‘Topic Modeling’ 방식이었다. 따라서 다음 절부터는 이 두 방식을 중심으로 소셜 버즈 분석에 대해 설명하고자 한다.

데이터를 탐색하는 방법
1. Classification
분석가가 정해 놓은 분류 체계와 분류 체계 내 카테고리별 ‘Pass’ Rule을 설정해 소셜 버즈를 나누는 방식을 ‘Rule Based Classification’이라 한다. 분석 대상 데이터가 카테고리의 Pass Rule에 부합하면 해당 카테고리에 카운트하고, 부합하지 않으면 카운트하지 않는 방식이며, 이 과정을 통해 비정형 데이터인 소셜 버즈는 정형 데이터로 변환된다.

‘Rule Based Classification’의 가장 큰 장점은 분석 대상 데이터를 상세하고 다양한 관점으로 나눌 수 있다는 점이다. 실제로 패션 브랜드 ‘질스튜어트스포츠’의 경우, 소셜 버즈 분석을 위해 브랜드 52개에 대해 제품 유형을 27개로 구분해 분석을 진행했는데 이때 분류 카테고리는 산술적으로 1404개가 된다. 물론 모든 브랜드가 27개 제품 유형을 다 가지고 있지는 않기 때문에 실제 분석 시, 카테고리 수는 이보다 적었지만 만일 여기에 의류/잡화의 Feature와 감성 분류까지 포함한다면 분류 카테고리는 1만 단위로 늘어날 수 있다. (표 1)

67-1


소셜 버즈를 Rule Based Classification 방식으로 분류한다면 카테고리별로 설정된 Rule에 따라 소셜 버즈를 분류하는데 이때 카테고리별 Pass Rule은 주로 해당 카테고리 관련 키워드의 유무를 기준으로 설정한다.

“질스튜어트스포츠 롱패딩입니다. 백화점에서 구경할 때 굉장히 예쁘다고 생각했던 제품입니다. 제가 자신하건대 이번 시즌 롱패딩 중 가장 디테일이 예쁜 제품이라고 자부합니다. 사이즈 같은 경우, 일반 패딩 치고, 살짝 작게 나온 것 같아요. 고급스러움은 데상트보다 떨어지지만 잔잔한 디테일은 질스튜가 괜찮은 것 같습니다. 가격이 혜자라 용서되지만 충전재가 오리인 건 좀… 그래도 충분히 따뜻할 듯하네요.” 2

위와 같은 소셜 버즈를 분류한다면 결과는 [표 2]와 같이 될 것이다.

68-1


‘질스튜어트스포츠’의 ‘롱패딩’에 대해 언급하며 ‘예쁘다’라는 키워드가 뒤이어 나오는데 이를 기반으로 ‘질스튜어트스포츠 - 롱패딩 - 디자인 - 긍정’으로 분류한다. 마지막 문장에서는 ‘가격’이 ‘혜자’라 용서된다는 내용과 ‘충전재’가 ‘오리’인 건 좀…이라는 내용이 나오는데 이러한 키워드들을 기반으로 1-4, 1-5 같은 분류 결과가 나오는 것이다.

이렇게 분류한 데이터는 브랜드, 제품 유형, Feature, 감성 단위로 다양하게 비교해 볼 수 있고, 소셜 버즈의 생성일을 기준으로 시계열 칼럼을 추가해서 분석한다면 총량만이 아니라 월, 분기, 반기, 연간 등 다양한 기간과 시점에 따른 데이터의 변화량과 변화율까지 비교해 분석할 수 있다. 이를 통해 분석가는 우리 제품과 경쟁 제품에 대한 소비자의 반응이 긍정인지, 부정인지, 시간의 흐름에 따라 어떻게 변했는지, 경쟁 브랜드 대비 우리 브랜드에서 많이 언급되는 feature는 무엇인지, 긍정의 비율이 높은 브랜드와 feature는 무엇인지 등 다양한 현상을 확인할 수 있고, 또 그에 대한 원문을 함께 보면서 그 이유를 찾아낼 수 있다. 이러한 분석을 일회성으로 끝내는 것이 아니라 3∼4년 이상 꾸준하게 결과 데이터를 쌓아나간다면 해당 주제 영역에 대해 다양한 방식으로, 더 깊이 있는 분석을 시도해 볼 수 있다.

하지만 Rule Based Classification 방식을 더 잘 활용하기 위해서는 두 가지를 극복해야 한다. 첫 번째는 이미 구성한 분류 체계 이외의 내용을 분석할 수 없다는 한계다. 분석가가 아무리 꼼꼼하게 확인해 분류 체계를 정한다 해도 누락되는 카테고리가 있을 수 있다. 이러한 이유 때문에 대부분의 경우, 분석 단위별로 ‘기타’라는 카테고리를 추가로 설정해 특정 카테고리로 분류되지 않는 데이터를 별도로 모으고, 해당 데이터를 재확인한다. 이를 통해 새로운 카테고리를 추가하거나 기존 카테고리에 대한 Rule을 수정해 누락된 데이터를 줄여나간다. 두 번째는 일정 수준 이상의 정확도를 확보하기 위한 시간 소요를 최소화해야 한다. 특히 감성 분석 정확도를 확보하는 것은 가장 어렵고 시간이 오래 걸린다.

앞서 제시한 ‘질스튜어트스포츠’의 소셜 버즈를 예로 본다면, ‘브랜드’나 ‘제품 유형’ ‘Feature’의 분석은 해당 키워드의 유무만으로 판정할 수 있지만 ‘감성’의 경우, 버즈 내 등장한 감성 키워드가 ‘어떤 키워드에 대한 감성’인지 판정하기 위해서는 기준이 되는 키워드 간의 띄어쓰기 거리나 키워드 등장 순서까지 고려해 Rule을 세팅해야 한다. 위 버즈에서 ‘사이즈 같은 경우, 일반 패딩 치고, 살짝 작게 나온 것 같아요’라는 문장은 ‘질스튜어트스포츠 롱패딩’이라는 단어와 약 20개 띄어쓰기만큼 거리가 떨어져 있다. 이러한 점을 고려해 Rule을 세팅해야 한다. 등장 순서를 잘못 고려할 경우 해당 문장의 바로 뒤에 따라 나오는 ‘고급스러움은 데상트보다 떨어지지만’이라는 문장의 영향을 받아 ‘데상트 - 롱패딩 - 사이즈/FIT - 부정’으로 분류될 수도 있다. 즉, 질스튜어트 패딩의 핏에 대한 부정적 언급이 데상트 브랜드 패딩에 대한 부정적 언급으로 잘못 분류될 수 있다는 얘기다.

또한 ‘예쁘다’ 같은 키워드는 그 의미에 ‘디자인, 외관’에 대한 Feature가 내포돼 있다. 따라서 디자인 관련 별도의 키워드가 함께 나오지 않더라도 ‘예쁘다’라는 키워드만으로 ‘디자인 - 긍정’으로 분류하도록 Rule을 설정해야 한다. 이 외에도 키워드가 분류의 중요 기준이 되다 보니 한국어의 특성과 소셜 버즈에 등장하는 다양한 유형의 키워드에 대한 이해가 선행돼야 하며 다양한 오류 케이스를 알고 이를 극복하기 위한 Rule을 고민해야 한다.

2. Topic Modeling
‘Topic Modeling’은 분석 대상인 소셜 버즈 내에 있는 모든 키워드를 통계적으로 처리해 키워드의 ‘분포’를 분석함으로써 의미적, 물리적으로 가까운 단어와 버즈를 묶어주고, 그를 통해 전체 분석 대상 버즈 내에 어떤 주제들이 나타나는지 확인하는 방식이다. ‘Classification’과 비교해보면 데이터를 처리하는 과정은 보다 쉬울 수 있지만 그 결과를 해석하는 것은 조금 더 까다롭다. 전체 분석 대상 버즈를 여러 개의 묶음으로 만들어내는 것은 비교적 쉽지만 해당 묶음이 어떤 주제인지를 정확히 알아내기 위해서는 분석가가 소셜 버즈를 눈으로 확인하는 작업이 반드시 필요하다.

실례로 ‘세상을 바꾸는 시간 15분(세바시)’에 대한 소셜 버즈를 Topic Modeling 방식으로 분석했을 때, ‘부정적인 단어’로 구성된 묶음이 지나치게 많이 나온 적이 있었다. 그러나 실제 소셜 버즈를 확인해 봤더니 ‘세바시’가 부정적인 것이 아니라 부정적인 감정과 상황을 ‘세바시’를 통해 해소한다는 내용과 사회적 문제와 현상을 ‘세바시’를 통해 이해하고 공감한다는, 즉 ‘세바시’ 입장에서는 매우 긍정적인 내용이었다. Topic Modeling을 통해 주제 영역을 찾아냄에 있어 그 구성하는 키워드를 표면적으로만 보는 것이 아니라 각 단어가 등장하는 맥락을 함께 알아야만 그 내용을 정확히 분석할 수 있다는 중요한 사례다. (그림 1)

70-1


한국어 소셜 버즈의 특징, 한계, 그리고 전망
1. 분석 정확도를 떨어트리는 한국어 소셜 버즈의 특징과 사례
소셜 버즈 분석 정확도가 낮은 여러 이유 중 대표적으로 꼽히는 게 ‘많은 동형이의어’다. ‘MLB’는 ‘Major League Baseball’의 약자인 동시에 ‘스포츠의류 브랜드’이기도 하다. 따라서 ‘MLB’라는 키워드 하나만으로는 해당 키워드가 포함된 소셜 버즈가 ‘미국 프로야구’ 관련 내용인지, ‘스포츠 의류’ 관련 내용인지 분류할 수 없다. 이를 정확히 분류하기 위해서는 몇 가지 추가적인 Rule을 적용해야 한다. 우선은 어느 출처에서 해당 소셜 버즈가 발생했는지 확인함으로써 분류할 수 있다. 만일 ‘MLB’라는 키워드가 포함된 버즈가 ‘클리앙’이라는 커뮤니티의 ‘야구당’ 소모임 게시판에서 발생했다면 이는 미국 프로야구를 의미하는 ‘MLB’일 가능성이 높고, ‘디젤매니아’ 카페에서 발생한 버즈라면 스포츠 의류 브랜드일 가능성이 더 높다. 또는 ‘MLB’ 키워드 주변에 어떤 단어가 함께 등장하는지 확인함으로써 더 정확하게 분류할 수 있다. ‘MLB’ 키워드 주변에 ‘선수’ ‘감독’ ‘경기’ 등의 단어가 함께 나오면 미국 프로야구로, ‘매장’ ‘구매하다’ ‘사이즈’ 등의 단어가 함께 나오면 의류 브랜드로 분류하는 것이다.

두 번째는 맥락에 따라 긍·부정 분류가 완전히 달라지는 단어들이 많다는 것이다. 대표적인 게 ‘빠르다’라는 키워드다. 이 키워드는 어떤 Feature에 대한 형용사인가에 따라 긍·부정 감성이 달라진다. 가령 ‘노트북의 부팅 속도가 빠르다’라고 한다면 이는 ‘성능’이라는 Feature에 대한 긍정이 될 수 있지만 ‘노트북의 배터리 소모가 빠르다’고 한다면 이는 ‘배터리’라는 Feature에 대한 부정적 반응으로 분류해야 한다. ‘가볍다’라는 키워드도 이러한 감성 분석을 어렵게 만드는 키워드다. ‘새로 산 노트북이 가볍다’고 한다면 이는 긍정의 의미지만 ‘새로 산 차가 가볍다’라고 한다면 이는 부정적인 의미로 해석될 수 있다. ‘오늘은 몸이 참 가볍다’와 ‘저 친구는 입이 참 가볍다’라는 문장에서도 똑같은 ‘가볍다’라는 키워드가 전혀 다른 긍·부정 감성을 갖게 된다. ‘저렴하다’라는 키워드는 통상 ‘가격’ Feature의 긍정으로 분류하지만 SNS상에서는 ‘저렴한 외모, 디자인이 저렴하다’라는 문장도 심심치 않게 쓰인다. 이때는 당연히 부정의 의미가 된다. 그래서 통상 제품과 서비스의 Feature에 대한 감성 분석을 할 경우에는 해당 단어 하나만으로 긍·부정을 판단하지 않고 앞뒤에 나오는 제품, 사람, Feature 키워드 등을 함께 고려해 긍·부정을 판단한다.

71-1


첫 번째와 두 번째 특징은 꼭 한국어가 아니어도 소셜 버즈 자체가 갖는 특징일 수 있지만 세 번째 특징부터는 한국어만의 특이한 점으로 봐도 무방하다. 영어에도 신조어가 많기는 하지만 우리나라 말처럼 한국어, 영어, 심지어 컴퓨터 용어 등이 다 뒤섞여 만들어지거나 그 어떤 연관성도 없이 아주 독립적인 맥락 하나에서 뜬금없는 신조어가 만들어지는 경우는 흔치 않기 때문이다. 우리가 알다시피 인터넷과 SNS상에서, 특히 한국의 인터넷과 SNS에서 신조어는 수시로 만들어진다. 그리고 신조어가 생성되는 패턴도 매우 다양하다. 대부분의 신조어는 특정 맥락하에 생성되므로 나름대로 생성 규칙이 있다. 예를 들어 ‘렬루’ 같은 경우, 영어 단어 ‘Real’과 한국어 조사 ‘루(로의 변형)’를 합성해 ‘정말로’라는 의미가 되고, ‘법블레스유’는 ‘법(法)’과 ‘God Bless you’를 합성해 ‘법이 너를 살렸다’라는 의미가 된다. 착시효과를 이용한 신조어도 있다. 모양이 비슷한 글자를 이용해 새로운 단어를 만들어 내는 것이다. ‘멍멍이 = 댕댕이’ ‘귀엽다 = 커엽다’ ‘대리님 = 머리님’ 등이 이에 속한다. 글자를 회전해 새로운 단어를 만들어내기도 하는데 ‘롬곡’을 180도 돌리면 ‘눈물’이 되고 ‘으아아아’를 왼쪽으로 90도 돌린 후, 세로로 읽으면 ‘호옹이’가 된다. 그리고 ‘으아아아’를 사용해야 할 상황에 ‘호옹이’라고 사용한다. 그러나 이러한 규칙에서 벗어나 생성되는 신조어의 경우, 그 의미파악은 더욱 어려워진다. 대표적인 키워드가 ‘표인봉’과 ‘현아’다. 스마트폰에 대한 정보를 주고받는 사이트에서 심심치 않게 등장하는 단어로 다음과 같은 형태로 사용되는데, ‘표인봉 좌표 부탁드려요’ ‘갤럭키 현아 15번 춤추고 왔어요’ 같은 문장은 어떻게 해석해야 할까?

우선 ‘표인봉’은 ‘페이백’과 글자의 초성이 같아 ‘페이백’의 대체어로 사용되고 있으며, 같은 방식으로 ‘현아’는 ‘현금 완납’의 대체어로 사용된다는 것을 알아야 한다. ‘좌표’는 온/오프라인상의 위치를 의미하며, ‘갤럭키’는 ‘갤럭시S7’ ‘15번 춤추고 왔어요’는 ‘15만 원에 샀다’는 것을 의미한다. 따라서 이를 해석하면 ‘표인봉 좌표 부탁드려요’는 “페이백 해주는 매장이나 판매처 알려주세요”고, ‘갤럭키 현아 15번 춤추고 왔어요’는 “갤럭시S7 현금 완납 조건으로 15만 원에 샀어요” 정도로 해석할 수 있다. 페이백이나 현금 완납 할인 등은 불법인 경우가 있어 위와 같이 암호와 같은 신조어를 만들어 사용하는 것이다. 이러한 신조어를 분석에 잘 반영하기 위해서는 분석에 앞서 분석 대상에 대한 확인과 사전 학습이 꼭 필요하고 지속적인 관리와 업데이트가 수반돼야 한다.

네 번째는 단어의 의미가 변질돼 사용되는 경우로, 이 역시 한국어 소셜 버즈 분석의 어려움을 만들어낸다. 최근 인터넷상에서 ‘고구마’라는 단어는 ‘답답한 상황’을 의미하고, ‘사이다’는 ‘속 시원한 상황’을 의미하며, 단호한 사람을 ‘단호박’이라 부르고, 당연하다는 말 대신 ‘당근’이라 표현한 지는 10년도 더 넘은 일이다. 만일 식품회사에서 식생활이나 식재료 등에 대한 분석을 한다면 이러한 상황을 반드시 고려하고 진행해야 한다. 자칫 잘못하면 위와 같이 다른 의미로 쓰이고 있는 단어로 인해 엉뚱한 분석 결과를 얻을 수 있다. 실제로 ‘클리앙’이라는 커뮤니티에서 ‘고구마’나 ‘단호박’이라는 단어가 포함된 게시물을 검색해서 확인해 보면 약 40%는 원래의 뜻이 아닌 ‘변질’된 의미로 쓰이고 있음을 알 수 있다.

마지막으로 ‘Rule Based Classification’ 방식의 활용이 불가능할 정도로 변화 가능한 한글의 특징이 분석을 어렵게 하는 요인이다. 한글이 표음문자라는 특징을 활용해 소리 나는 대로, 또는 말하고자 하는 단어와 비슷하게 발음되는 글자를 사용해 한국 사람만 알아보고 이해할 수 있도록 소셜 버즈를 작성한 경우다. 한때 이러한 특징을 이용해 에어비앤비 같은 사이트에서 사용 후기를 한국인만 알아볼 수 있도록 작성한 것들이 인터넷상에 많이 회자됐는데 이러한 유형의 소셜 버즈는 사실상 분석이 불가능하다. (그림 2)

72-1


이러한 어려움을 극복하고 조금이라도 분류 정확도를 높이기 위해 우선해야 하는 일은 사용자 사전(User Dictionary)과 유의어 사전(Synonym)을 꼼꼼하게 구성하는 것이다. 자연어 처리, 특히 한국어 자연어 처리의 효율을 높이기 위해서는 ‘형태소 분석기’의 사용이 필수적인데 형태소 분석기는 문장에서 어근과 조사/어미를 구분하고, 키워드를 의미형태소와 문법형태소로 나눠주는 역할을 한다. 그런데 이 과정에서 브랜드명 같은 고유명사나 신조어, ‘외계어’ 등은 기존의 사전(Dictionary)에 없는 단어가 대부분이므로 의미형태소로 나뉘지 않는다. 이에 사용자 사전에 신조어나 인터넷상에서 많이 사용되는 다양한 유의어를 반영해 해당 단어들이 의미형태소로 구분되고, 분석에 적용되도록 해야 한다.



또 한 가지 방법은 반복적인 샘플테스트를 통해 다양한 오류케이스를 찾아내서 분석 엔진과 사전을 꾸준하게 업데이트하는 것이다. 필자 역시 아직 텍스트 분석 경험이 많지 않던 시기에 샘플 테스트를 등한시했다가 큰 오류를 범한 적이 있다. 소비자 라이프 스타일을 파악하기 위해 소셜 버즈를 분석하는데 ‘졸음’에 대한 버즈량이 월등히 많았고, 다른 ‘수면’ 유형의 카테고리 대비 부정률이 훨씬 높게 나타나 그 원인을 찾아봤다. 그 이유는 다름이 아니라 ‘존나’라는 비속어가 ‘존나 → 존 나 → 졸다 나’로 나뉘어 ‘졸음’으로 분류되고 있었기 때문이었다. 게다가 ‘존나’라는 단어의 특성상 그 앞뒤에는 대부분 부정적인 단어들이(e.g 욕설 등) 함께 나타남으로써 ‘존나’라는 단어가 들어간 버즈는 대부분 ‘졸음 - 부정’으로 분류됐다. 이러한 경우, ‘존나’라는 단어를 사용자 사전에 ‘부사’로 등록하는 간단한 조치로 오류를 해결할 수 있다.

2. 머신러닝을 적용한 소셜 버즈 분석의 발전 가능성
한 사회에서 사용하는 언어는 시간의 흐름과 사회의 변화에 따라 함께 변화한다. 그렇기 때문에 오늘 새롭게 반영한 사용자 사전과 유의어 사전이 절대적이거나 영원불변의 것이 아니고, 소셜 버즈의 분류 체계와 함께 지속적으로 업데이트되고 관리돼야 한다.

또한 분석의 정확도 역시 아직 개선의 여지가 크다. 특히 소셜 버즈를 몇천 개 이상의 카테고리로 분류해야 하는 경우 일정 수준 이상의 정확도를 확보하기 위해서는 Rule Base 방식이나 지도학습 기반의 머신러닝을 뛰어넘는 새로운 방법을 찾아야 한다. 지도학습 방식으로 소셜 버즈를 분류하려면 분류 체계 내 카테고리별로 몇백 개에서 몇만 개까지의 학습세트를 만들어서 학습하는 절차를 거쳐야 하는데, 카테고리가 수백 개만 돼도 학습 세트를 만들고 주기적으로 업데이트하는 것은 사실상 불가능하다.

이를 극복하기 위해서 언어모델(Language Model)을 활용하는 방안이 있는데, 특정 영역을 분석하기 위한 머신러닝을 수행하는 것이 아니라 단계적으로 학습을 적용하는 것이다. 1단계에서는 위키피디아, 언론 기사, 세종말뭉치 같은 특정 영역이 아닌 일반적인 데이터를 통해 ‘한국어의 일반적인 문법’을 학습시키고, 2단계에서는 분석 주제 영역 관련 소셜 버즈를 학습시킨 후, 3단계에서 실제 분석 대상 데이터를 분석하는 방안이다. ‘Zero Shot Learning’ 3 의 개념을 적용한 것으로 이를 통해 기대할 수 있는 것은 시간 단축과 정확도 향상이다. ‘일반적인 문법’을 학습시킨 분석 엔진을 기반으로 하기 때문에 분석 대상 주제가 새롭게 제시돼도 해당 영역으로 빠르게 확장할 수 있고, 새로운 주제 영역으로 확장 시에도 학습 및 테스트 데이터를 훨씬 적게 사용하면서 비슷한 정확도를 구현할 수 있는 것이다. (그림 3)

73-1


‘word2vec 알고리즘 4 을 활용한 유사도 비교’ 방식도 하나의 대안이 될 수 있다. 언어 모델과 비슷하게 일반적인 데이터에서 등장하는 키워드를 벡터로 변환하고, 분석 대상 데이터의 키워드 역시 벡터로 변환해 그 유사도를 비교함으로써 정해진 카테고리에 따라 데이터를 분류하는 방식이다. word2vec 알고리즘을 실제 분석 주제에 적용해서 테스트해 본 결과, 대략 10∼15개 정도의 카테고리까지는 분류 정확도가 약 80%를 상회하는 것으로 나타났다. 앞으로 수백, 수천 개의 카테고리로 분류할 수 있어야 하고, 정확도도 85% 이상은 나와야 제대로 활용할 수 있겠지만 한국어에 대한 word2vec은 아직 그리 많이 연구되지 않았다는 점을 감안할 때 앞으로 발전 가능성은 높다고 볼 수 있다.

74-1


앞서 ‘한국 사람만 알아볼 수 있도록 작성’한 소셜 버즈는 사실상 분석이 불가능하다고 했지만 이러한 소셜 버즈들도 작성되는 사례가 많아짐에 따라 조금씩 분석의 가능성을 높이고 있다. 최근의 구글 번역기는 이러한 의도적 오타까지도 제대로 된 문장으로 변환해 의미를 파악한다. 이러한 패턴은 사실상 무한대에 가깝게 만들 수 있지만 최근의 머신러닝, 인공지능 기술의 발전 속도를 고려하면 정확도에 대한 정복이 불가능하지는 않을 것으로 예상하고 또 빠른 시일 내에 정복할 수 있기를 기대해 본다. (그림 4)



필자소개 윤용찬 데이터마케팅코리아 교육사업본부장 cold_dragon@datamarketing.co.kr
필자는 LG CNS에서 교육업무를 담당하다가 빅데이터 분석으로 업무를 전환한 후 LG그룹 주요 계열사를 비롯한 신한은행, 기아자동차, 이노션, 유한킴벌리, 부산시 등의 고객과 함께 소셜 버즈 분석을 수행했다. 성균관대에서 경영학을 전공했으며, 서울과학종합대학원 빅데이터MBA에서 소셜 버즈 분석에 대한 강의를 한 인연으로 동 대학원에 입학해 수료했다. 현재는 데이터마케팅코리아에서 ‘디지털 마케팅’과 ‘데이터 분석’을 접목한 교육 과정을 개발해 교육 사업을 진행하고 있다.
인기기사