텍스트마이닝 기업 적용 사례 (다면진단 주관식 응답 분석) 2탄

작년에 대기업 그룹사 전체를 대상으로 진행했던 리더십 다면진단 주관식 응답 분석 프로젝트를 올해 한 번 더 진행했다. 한 번 더 하니 작년에 못 봤던 새로운 내용들이 많이 보였고, 느낀 점도 많아서 추가로 남겨본다.

사실 작년에 프로젝트를 하면서 또 이렇게 좋은 기회가 있을까 싶어서 올 여름에 이런 글을 남겨놨는데,

올해 또 의뢰(?)가 들어와서 한 번 더 진행하게 됐다. 감사한 일이다.


프로젝트 개요

전반적인 내용은 작년과 동일했다.

그룹 내 리더들을 대상으로 상사나 부하로부터 그 사람의 리더십에 대해 평가하도록 설문이 진행됐다. 여기에 주관식 응답도 포함해서 받았다.

총 2만 건이 넘는 주관식 응답 내용을 일일이 다 확인할 수 없으니, 대략 어떤 내용이 나왔는지 분류(classification)하는 게 목표였다. 예를 들면 “이 응답은 ‘업계 전문성’ 관련 내용이다, 이 내용은 ‘회의 문화 관련 내용’이다” 하는 식으로 자동으로 분류한 후, 집단별로(회사, 직군, 성별, 성과 등을 기준으로) 비교 분석 하는 것까지가 이 프로젝트 범위였다.

문항은 작년과 동일했다. (다른 문항도 있었는데, 어쨌든 정보 보호 차원에서 축소/각색했다.)

  1. A(평가 대상자)에게 앞으로 기대하는 점은 무엇인가요?
  2. A(평가 대상자)가 앞으로 줄여나가길 바라는 점이 있다면 무엇인가요?

다만, 올해에는 응답 방식이 좀 개선됐다. 만약 질문에 여러 내용을 응답하고 싶은 경우 최대 3개까지 나눠서 입력하도록 입력란을 설계했다. 그래서 작년에 꽤나 골치거리였던 문제, 하나의 응답에 여러 내용이 복합적으로 담기는 것을 어느정도 해결할 수 있었다. (내가 작년 보고서 작성할 때 마지막에 제언으로 담았던 내용이 반영돼서 기분 좋았다.)

분석 작전

올해 내가 세운 분석 작전(?)은 작년과 좀 달랐다.

작년엔 애초에 분류 기준이라는 게 없었기 때문에 군집화(Clustering)을 먼저 해서 비슷한 응답들을 묶어 놓고 그것들을 레이블링 하는 방식이었다. 예를 들면 “구성원과의 대화나 소통과 관련한 응답들을 모아 놓고, 이것들은 ‘구성원과의 소통’이라고 이름을 붙이자”라는 식이었다.

그러나 올해엔 이미 작년에 레이블링 해놓은 값이 있었기 때문에 이걸 학습시켜 분류기를 만들어 놓고, 올해 들어온 응답들을 분류기에 넣고 돌리는 작전이었다.

사실 작년 프로젝트 마무리 되는 시점에 미리 분류기 성능을 어느정도 확인해보았기 때문에 이게 가능할 거라는 믿음이 있었다.

그리고 실제로 잘 적용 됐다. 다행히.

올해 한 번 더 분석을 하면서 얻은 인사이트(?)라고 할 만한 것들 몇가지만 소개해봐야겠다.


분석을 통해 얻은 인사이트

1. 상사와 구성원(부하)의 관점은 완전히 다르다.

이건 사실 너무나 당연한 거지만…

상사는 그 사람이 좋은 리더인지 아닌지에 대해 관심을 두기보다는 얼마나 사업적인 성과를 낼 수 있는가에 대해 더 관심이 많았다. 반면, 부하직원(구성원)들은 당연히 그 사람이 나한테 좋은 상사인지, 나한테 잘 해주는 사람인지, 합리적으로 일을 시키는지, 나의 성장에 도움이 되는지에 대해 언급하는 내용이 많았다.

실제로 구성원(부하)들과 상사들의 응답에서 많이 등장한 내용이나 차별적인 어휘를 살펴보면 아래와 같았다.

문항 1. 앞으로 기대하는 점

문항 2. 앞으로 줄여나가길 바라는 점

역시 구성원들은 회의와 야근을 싫어한다. 비효율적인 업무 방식도 너무 싫지. (공감)

2. 구성원들은 리더의 긍정적 행동보다는 부정적 행동에 더 민감하게 반응한다.

부하 직원들은 리더가 뭐 잘 한다고 그렇게 막 좋아하거나 그러진 않는 것 같은데, 차라리 하지 말아야 할 행동을 하는 리더들은 정말 명백하게 싫어하는 것처럼 보인다.

이건 사실 객관식 진단 결과와 함께 비교해서 얻을 수 있는 발견이었다. 객관식 문항에서 높은 점수를 받은 리더들과 낮은 점수를 받은 리더들을 나눠서 구성원들의 응답만 비교해보니, ‘1. 앞으로 기대하는 점’ 문항에서는 크게 차이가 나지 않았는데, ‘2. 앞으로 줄여나가길 바라는 점’ 문항에서는 큰 차이가 나타났다.

객관식 문항에서 점수를 낮게 받은 리더들은 존중과 배려하지 않는, 독선적이고 독단적인, 명확하지 않다는 평(?)을 구성원들로부터 많이 받았다.

실제로 구성원들의 응답을 리더십 점수를 높게 받은 리더들에 대한 응답과 리더십 점수를 낮게 받은 리더들에 대한 응답으로 나누어서 살펴보면 많이 등장한 내용이나 차별적인 어휘들이 아래와 같았다.

문항 2. 앞으로 줄여나가길 바라는 점

리더십 점수 높게 받은 리더들한테는 “술, 담배 좀 줄이세요. 일 좀 적당히 하세요.”와 같은 내용이 꽤 많이 나온다.

3. 리더에 대한 구성원들의 기대는 위계적으로 나타난다.

객관식 문항을 통해 리더와 얼마나 많이 소통하는지, 리더가 얼마나 긍정적인 피드백(격려, 칭찬 등)을 제공하는지에 대한 응답을 수집했는데, 그걸 바탕으로 그룹을 나눠서 살펴보니 좀 신기한 현상이 나타났다.

‘1. 앞으로 기대하는 점’이라는 문항에 대한 구성원들의 응답을 보면…

전반적으로 구성원들은 리더와 원활하게 소통하길 기대한다는 걸 알 수 있다. 그런데 이런 소통이 충분히 이루어진다고 생각하는 구성원들의 응답에서는 격려와 칭찬 등 인정 받고자 하는 내용이 더 많이 등장하기 시작한다. 그리고 충분히 인정 받고 있는다고 생각하는 구성원들은 자신들을 코칭/멘토링 해주기를, 육성 및 개발 해주기를 기대하는 내용을 많이 언급하기 시작한다.

대략 이런 위계적 구조가 나타나는 것처럼 보여서 이런 개념도를 그려봤다.

리더에 대한 구성원들의 기대 (위계적 구조)

무슨 매슬로우 욕구 이론 같다는 생각도 들고…


그 외에 회사, 직군, 성별 등 다양한 기준으로 집단을 나눠서 응답 분포를 비교해보기도 했는데, 구체적인 내용은 여기에 다 제시할 수 없을 것 같다. (고객사 정보 보호 차원)


분석 과정에서 느낀 점

작년에 이어 올해에도 프로젝트를 진행하니 몇가지 느낀 게 있다.

1. 실제 분석보다 결과 정리하는 데 시간이 더 오래 걸린다.

분류기는 처음에 튜닝만 좀 해놓으면 (사실 텍스트는 어떻게 보면 전처리에 걸리는 시간이 거의 무한에 가깝기 때문에 끝이 없긴 하지만, 프로젝트 기한 내에 결과물을 내야 하기 때문에 타협하면 된다.) 결국 분석 결과를 정리해서 그 내용을 해석하고 인사이트를 도출하는 과정이 오래 걸린다.

여기서 일종의 한계를 느꼈다. 데이터 분석 프로젝트는 그 맥락이나 내용을 가장 잘 이해하고 있는 현업 입장에서 해석해야 종결이 되기 때문에 단순히 분석가로서 외주(?) 업무로 참여하다보면 확실히 해석에 제약이 있다. 그래서 분석가는 고객이 그 결과를 잘 해석할 수 있도록 결과를 표나 차트로 만들어서 전달해야 하는데 이게 너무 소모적인 작업이다.

나도 어쩌면 무식하게 피벗 테이블만 100번 이상 돌려서 나열한 셈이다. 차라리 Tableau, Power BI, 구글 데이터 스튜디오 같은 시각화 도구를 사용해서 대시보드로 만들어서 전달하는 게 낫지 않았을까 싶기도 하다. (구글 데이터 스튜디오는 생각보다 사용이 번거롭긴 하던데 다음번에 기회가 되면 제대로 써봐야겠다.)

아무튼 표만 잔뜩 만들어서 전달하는 건 답이 아니다. 너무 소모적이다. 이런 방식은 싫다.

2. 문서 분류는 나이브 베이즈가 짱이다.

문서 분류를 위해 doc2vec과 같은 다른 알고리즘(?)을 사용해봤는데, 결국 나이브베이즈가 짱이더라.

3. 차별어 분석이 의외로 쏠쏠하다.

‘차별어 분석’은 흔히 말하는 일종의 감성 분석이라고도 볼 수 있다. 문서 집단에 따라 발견될 확률이 높은(차별적인) 형태소를 추려내는 분석이다. 본 프로젝트에서는 KL 발산(Kullback-Leibler divergence)이라는 방법을 활용했다.

예를 들면 네이버 영화 리뷰에서 긍정 리뷰와 부정 리뷰를 나눠 놓고 차별어 분석을 수행하면 아래와 같은 결과가 나온다.

2개 집단 간의 어휘 패턴을 비교할 때 꽤 직관적인 결과가 나오는데, 어쨌든 올해 프로젝트에서 처음 적용해봤는데 꽤 결과가 괜찮았다. 앞으로 자주 써먹을만한 방법인 것 같다.

4. 요즘 텍스트 분석을 쉽게 할 수 있다는 건 다 거짓말이다.

사실 본 포스팅의 결론은 이거다.

요즘 텍스트 분석 누구나 할 수 있다는 얘기가 많은 것 같다. 그런데 이게 정말 쉬울진 모르겠다. 왜냐하면…

  • 한국어는 애초에 형태소 분석 과정부터 정확할 수가 없다. 띄어쓰기나 오탈자에 많은 영향을 받기도 하는 언어이고, 불규칙 용언의 활용이나 중의성 같은 걸 고려하면 오차(오류)는 무조건 존재한다.
  • 지금까지 공개된 형태소 분석기마다 성능, 특장점이 다르다. 난 주로 Komoran을 사용하는데, 이게 속도가 좀 느리더라도 체언, 명사를 잘 판별해주기 때문이다. 어쨌든 어떤 걸 활용할지도 분석가가 보고 판단해서 결정해야 하는 영역이다.
  • 텍스트의 속성과 분석의 목적에 따라 특정 품사만 잘 선택해서 분석에 활용해야 한다. 예를 들어 소설이나 시와 같은 문학 작품을 분석할 때와 회사에서 진행한 설문조사 응답을 분석하는 건 전혀 다를 수 있다는 얘기다. 왜냐하면 현재는 Bag-of-Words 모델을 바탕으로 접근하는 게 가장 현실적이고, 이 때 형태소/품사 단위에서 어떤 것들을 활용할지가 중요하기 때문이다. 결국 해당 언어와 그 문법에 대한 이해가 필수적이다.
  • 해당 도메인에 대한 지식과 이해가 필요하다. 위 내용과 결국 같은 맥락인데, 회사에서 작성하는 이메일과 친구에게 보내는 카톡 메시지는 전혀 다른 언어 사용 패턴이 나타날 거다. 이걸 같은 프레임에서 분석하면 엉뚱한 해석으로 흐를 수도 있다. 특정 용어 사용 빈도나 어휘 간의 관계를 살펴보기 위해서는 해당 도메인에 대해 잘 알고 있어야 한다.

아무튼 텍스트 분석이 겉으로는 다 비슷하고 쉬워보이지만 이런 사소한 선택과 의사결정은 모두 분석가의 역량에 의존하고 있는 거다.

형태소 빈도 카운트해서 워드 클라우드 그리는 것 정도야 쉬울지 모르지만, 그 방대한 텍스트를 실제로 의미 있는 형태로 가공해서 분석하는 건 생각보다 어려운 작업이다.

물론 요즘 예를 들면 KoALA와 같은 사이트에서는 나름 쉽게 텍스트 분석을 할 수 있도록 웹 서비스를 제공하고 있다. 아마 직접 코딩하지 않고도 분석할 수 있다는 게 이 서비스의 셀링 포인트가 아닐까 싶다.

그러나 이런 방식으로 분석을 하면 반드시 성에 차지 않을 수밖에 없다. NLP, 자연어처리는 여전히 완벽한 분석의 대상이 아니다.

그리고 텍스트 분석이 쉽다는 것과 코딩 없이 기초적인 분석을 할 수 있다는 건 엄연히 다른 얘기니까.


글이 길어졌는데 이쯤에서 마무리해야지.

아무튼 쉽지 않았던 프로젝트였는데 올해도 무사히 잘 마무리 되어서 다행이다.

다음엔 더 잘하고 싶다.

저에게 일을 맡겨주세요.

추천 글


“텍스트마이닝 기업 적용 사례 (다면진단 주관식 응답 분석) 2탄”의 3개의 댓글

  1. HR analytics에 관심있었는데 다면진단 응답분석 리뷰 잘 봤습니다.

    저 역시 비슷한 분석을 했었는데, 고민하신 부분이 많이 겹쳐서 흥미롭게 읽었습니다.

    분석을 진행하면서 궁금한게 있었는데,

    주관식의 경우 한사람이 여러개의 의견을 내는 경우가 있었습니다. 이부분은 어떻게 처리하셨는지가 궁금합니다. 사람별로 labeling을 하게되면 여러의견의 경우 충돌이 생길것 같아서요..(저같은 경우 A 의견이 “몇 명이다”가 아니라 “몇 건이다”로 처리하고 해석했습니다.)

    그리고 저같은 경우 N-gram language model을 이용해 network graph로 시각화를 했었는데 그 부분도 한번 생각해 보면 좋을것 같습니다.

    1. 흥미롭게 읽으셨다니 뿌듯하네요!

      한 주관식 응답이 여러 내용을 담고 있을 때 레이블링 방식으로 처리하면 한계가 있는 것 같아요. 그래서 아예 응답을 수집하는 과정에서 응답을 분리하는 접근을 했습니다…!

      그리고 저도 ngram이나 코사인 유사도, word2vec 등으로 네트워크를 그려보긴 했는데 개수를 조금만 추리면 너무 뻔한 연결만 나오고, 개수를 좀 늘리면 그림이 너무 복잡해져서 해석이 난해해지더라고요ㅜㅜ 그 그림을 저 스스로에게 설명하기도 어려워서 아예 클라이언트에게 전달하는 보고서에 포함시키질 못했습니다.

      괜찮은 결과를 얻어내실 수 있었다면 노하우를 공유해주세요 🙂

댓글 남기기