2021년 4월 12일 월요일

불용어 처리 / 비즈니스 불용어 사전 개발 Ver. 1

 


한글 비즈니스 불용어 전처리 

분석하고자 하는 텍스트 데이터 중 분석에 도움이 되지 않는 불필요한 텍스트불용어(Stopwords)들을 최대한 제거하는 과정은 데이터 분석의 정확성을 높이고, 분석 비용 (시간, 컴퓨팅 리소스등)을 줄이기 위해 매우 중요하다. 

하지만, 분석 목적에 따라 또 언어에 따라 불용어가 다르기 때문에, 생성AI등이 알아서 할 수 없는 영역의 작업으로 보통 불용어를 화일(불용어 사전)에 일일이 기록한 뒤, 프로그래밍으로 일일이 제거해야 한다. 

한국어 불용어 사전의 경우, 체계적인 기준에 따라 개발된 것이 현재 존재하지 않는다. 개인이 만든 불용어 사전이 일부 공개되어 있지만, 불용어 선정 기준을 제시하고 있지 않으며, 불용어 사전에 포함된 표현의 수가 대부분 매우 적으며, 불용어가 아닌 표현들이 다수 포함되어 있다. 현재, 한국어의 경우 표준 불용어 사전이 존재하지 않고 있는 상황인데, 기업/경영 관점에서 사용할 불용어 사전은 더더욱 존재하지 않는다. 때문에, 기업 관점에서 텍스트 분석을 하기 위해서 직접 비즈니스용 불용어 사전을 구축하게 되었는데, 아직은 많이 부족하나 비즈니스 불용어 사전을 공유하고자 한다. 불용어 사전은 한글의 경우, 제대로 참고할 사전이 부족하며 특히 경영 분석에 필요한 불용어사전은 더욱 부족하기에 부득이 아래와 같이 비즈니스 불용어 사전을 직접 개발하여, 공유하고 있다. 또한 불용어 처리 프로그램역시 제공하고 있으니 필요하다면 사용하시고 다른 분들에게도 많이 공유 바란다. 

기업 관점에서 텍스트 분석을 하는 분들 입장에서 텍스트 정제시 시간과 노력을 줄이는데 도움이 되기를 바란다. 본 시스템에서 제공하는 불용어 사전은 앞으로도 지속적으로 업데이트 및 개선 관리를 하기에, 시간이 갈 수록 유용할 것으로 기대된다. 

     1. 어떤 용어들이 불용어 사전에 포함되어야 하는가? 

본 불용어 사전은 불용어를 아래와 같이 크게 2가지 유형의 불용어로 구분하고, 이들을 포함하고 있다. 

  1) 무의미 불용어: 객관적으로 언어적 의미를 내포하고 있지 않은 텍스트 표현
   - 언어적 의미 없는 기호, 심볼 (예: 쉼표, 세미콜론 등)
      단, 감정 표현에 쓰인 기호, 심볼은 포함하지 않음. (예: ^^, ㅠㅠ 등)

  - 조사 (친구, 빵 등), 어미(아름답다), 

  - 중복된 공백(blank) 

 2) 유의미 불용어: 의미를 포함하고 있으나, 분석 목적과 분석 관점에 따라 필요한 정보를 담고 있지 않은 표현들. 

   - 경영 관점에서 일반적으로 어떤 의미/ 정보를 갖지 못하는 일반적인 용어: 안녕하세요 냅 네 

  - 의미가 중복되는 상당수의 부사: "매우 진짜"

  - 접미사: '듣고', '하다보니'와 같은 접미사. 
               반면에, '먹고싶다'와 같이 소비자 욕구를 반영한 '싶다'와 같은 표현은 제외)

  - 접속사: 추가로 의미를 전달하지 않는 대부분의 접속사 
            예) 그러므로, 결국.
            단, '그러나' '그런 반면'과 같이 내용의 반전을 의미하는 접속사는 불용어에 포함하지 않음.


현재 구축된 불용어 사전은 주로 무의미 불용어를 포함하고 있으나, 일반적으로 경영 분석 관점에서 정보를 담고 있지 않다고 판단되는 유의미 불용어도 포함하고 있다. 

 

     * 비즈니스 불용어 사전: 엑셀 보다는 구글스프레드시트 이대로 사용하시기 바랍니다. 엑셀로 옮기는 순간, 눈에 보이지 않는 blank 가 자동 삭제됩니다. 

      

   * 불용어 제거 방식

   단순히 불용어 사전에 있는 표현을 분석하고자 하는 말뭉치에서 제거하면 여러가지 예상치 못한 오류가 발생한다. 예를 들어 불용어가 아닌 표현 속에 불용어 표현이 포함되어 있는 경우 단어가 파편처럼 부서지고 공백이 생기는 현상이 있으며, 조사와 같이 한글자 불용어의 경우, 단순이 이 표현을 타겟 말뭉치에서 제거할 경우 매우 심각한 부작용을 보게 될 것이다. 
때문에, 불용어 제거는 다음과 같이 2차례에 걸쳐 체계적으로 진행하는 것이 바람직하다.

   1차 불용어 처리: 심볼과 틀수 기호 처리
   1) 우선, 1차로 무의미 불용어 중 심볼과 특수기호의 경우, 제거하지 않을 표현들을 특정 문자로 전환한다. 
   2) 이후 모든 특수기호 심볼을 일괄 제거한다. 

   2차 불용어 처리:
   3) 사전내 유의미 불용어를 단어수 내림 차순으로 정렬한다.
   4) 사전내 유의미 불용어 순서대로 타겟 말뭉치에 존재하는 것들을 제거한다. 

*주의: 불용어 처리 후, 제거하지 않은 특수 심볼과 기호의 경우 특정한 문자표현들이 타겟말뭉치에 그대로 남게된다. 이 부분을 굳이 특수 심볼과 기호로 변경하지 않는다 (문자로 남겨두는 것이 향후 분석에서 예상외의 프로그램상 문자 변환 오류를 줄일 수 있다)


https://jaihakchung.notion.site/exe-JLab_Words_Cleaner-exe-e5990856b8994996a04d5667fce52bb8?pvs=4
Share this post: