본문 바로가기
Data-driven Methodology/DS (Data Science)

[Data Science] Text Data (2)

by goatlab 2022. 9. 29.
728x90
반응형
SMALL

한국어 텍스트 데이터의 특성

 

영어 텍스트의 경우, 띄어 쓰기를 기준으로 토큰화하면 단어가 비교적 깔끔하게 분리되어 나오기 때문에 전처리의 결과가 대부분 좋다. 그러나 한국어 텍스트의 경우, 띄어 쓰기로 구분되는 “어절”이 반드시 “단어”와 일치하지가 않는다. 이는 “교착어”로써의 특성 때문으로, 한국어는 영어와 달리 조사가 존재하고, 이러한 조사가 띄어 쓰기 없이 붙어 있게 되어 이를 전부 분리해 주는 전처리 과정이 필요하다. 즉, 한국어 전처리와 토큰화의 핵심은 조사를 잘 분리하여 토큰화하는 것으로, 이를 위해서는 형태소 (morpheme), 특히 자립 형태소를 잘 추출할 수 있어야한다. 또 하나의 어려운 점은 한국어의 경우 영어에 비해 띄어 쓰기가 잘 지켜지지 않는 경향이 존재한다. 이는 한국어의 경우 띄어 쓰기가 잘 지켜지지 않더라도 의미가 잘 전달 되기 때문이라는 의견이 있다.

 

그 대안으로 Python 라이브러리에 내장된 “형태소 분석기”를 잘 활용하여 전처리 수행한다. 영어 텍스트의 경우, 어간 추출 등에서 형태소가 활용되지만 한국어 텍스트는 좀 더 일찍 형태소 개념을 활용하여 전처리를 진행한다. Okt, 꼬꼬마, 한나눔, 코모란 등 다양한 형태소 분석기가 존재하고, 성능이나 속도에 따라 다소 차이가 있다.

 

Bag of Words

 

국소 표현 (local representation) 접근의 대표적인 방식이다. 문서 내에 들어있는 단어를 하나의 가방 (bag)에 전부 집어 넣는 방식이다. 단어의 출현 빈도 (frequency)에 주목하는 방식으로, 단어의 순서나 맥락을 반영하지 못한다. 한계로는 단어의 맥락적 의미가 중요하거나, 한 문서 내에 여러 주제나 의견이 들어 있을 경우 문서 내의 유의미한 의미를 제대로 포착하지 못할 수 있다.

 

Document-Term Matrix (DTM)

 

 

Bag of words는 단어의 빈도수 기반이므로 각 문서 (행)와 각 단어 (열)로 이루어진 행렬로써 표현 가능하다. 각 문서를 단어 기반으로 수치화하여 비교할 수 있는 가장 간단한 텍스트 마이닝 중 하나이다. 불용어 등을 제거하여 좀 더 단순한 행렬로도 표현 가능하다.

 

TF-IDF (Term Frequency-Inverse Document Frequency)

 

단어의 빈도 + 역문서 빈도를 이용하여 문서 내 특정 단어의 중요도를 구하는 작업 등에사용한다. 문서 집합 내 핵심어 추출이나 문서간 유사도를 계산하는데 응용가능하다. 문서 내에 등장하는 모든 단어에 대해 빈도를 표시하는 것이 비효율적이라면, 중요한 단어에 대해 가중치를 줄 수 있다. 역문서 빈도 (Inverse documen tfrequency)는 특정 단어 w가 등장한 문서의 수에 반비례 하는 값이다. 원리로는 불용어 (the, it, as 등)는 거의 모든 문서에 자주 등장하게 된다. 즉, 일부 문서에만 등장하는 일종의 “희귀 단어”들이 의미 파악에 중요하고, 거의 모든 문서에 등장하는 단어들은 중요성이 떨어질 것이라고 가정하여 단어의 중요도 가중치를 조정하는 방법이다.

 

https://towardsdatascience.com/tf-idf-term-frequency-and-inverse-dense-frequency-techniques-472bf1ba311b

문서 d, 단어 w, 문서의 총 개수가 n일 때


  • tf(d, w) : 특정 문서 d에서 특정 단어 w가 등장하는 횟수이다. DTM 등을 통해 쉽게 구할 수 있다.
  • df(w) : 특정 단어 w가 등장하는 문서의 수이다. DTM 등을 통해 쉽게 구할 수 있다.
  • idf(d, w, n) : df(w)에 반비례하는 수이다. 즉, 역문서 빈도 (Inverse documen tfrequency)
  • TF-IDF : tfidf(d, w, n) = tf(d, w) × idf(d, w, n) : 특정 문서에서 단어 빈도가 높을수록, 그리고 단어가 등장하는 문서가 적을수록 값이 커진다.

 

감성 분석 (Sentiment Analysis)

 

텍스트에 들어 있는 작성자의 의견이나 평가 등 주관적인 정보를 추출한다. 예를 들어, 소비자 리뷰에 담긴 정보를 비교적 단순하게 추출하고 싶을 때 유용하게 사용될 수 있다. 해당 문서가 긍정 (positive)인지 부정 (negative)인지 판단하는 것이 대부분이다 (상황에 따라 중립 (neutral)을 반영하는 경우도 있음).

 

  • Dictionary-based Method
    기존에 구축되어 있던 감성 사전을 이용한 분석이다. 한계로는 단어의 맥락적 의미를 애초에 반영하지 못한다. 그리고 전혀 다른 주제나 분야일 경우, 단어의 의미가 아예 다르게 사용될 수 있다.
  • Machine Learning-based Method
    연구자의 데이터를 이용하여 감성 사전을 직접 구축 가능하다. Logistic classification부터 deep learning까지 다양한 모형 활용 가능하다.

 

LDA Topic Model

 

잠재 디리클레 할당 모형 (Latent Dirichlet Allocation, LDA)는 특정 문서가 여러 토픽의 혼합으로 구성되어 있다고 가정한다. 문서의 집합을 구성하는 토픽의 잠재 구조를 추정하는 모형이다. 단어 빈도기반의 bagofwords를 가정하되, 베이지안 확률 모형을 기반으로하여 잠재 토픽의 구조를 추정한다.

 

사람이 글을 쓸 때 어떤 과정을 거쳐 글을 쓰는지 고려해야 한다. 첫 째, 글로 옮기고자 하는 주제 (topic)를 선정한다. 그 다음, 주제와 관련이 있는 단어 (word)들 결정한다. 마지막으로, 해당 단어들의 조합으로서 하나의 문서 (document)가 탄생한다. LDA는 이 과정을 역순으로 따라 올라가는 방식으로 잠재된 주제를 추출한다. 특정 문서 내 단어의 동시 출현 정보를 학습한다. 자주 함께 출현하는 단어들은 특정 주제와 밀접한 연관이 있을 것으로 간주한다. 잠재 토픽을 추출하고 토픽과 단어의 확률 분포를 계산한다.

 

장점 단점
  • 베이지안 확률 모형을 활용하기 때문에 확률 정보를 이용하여 텍스트 마이닝 문제를 해결한다.
  • 문서의 집합을 구성하는 토픽의 수와 토픽별 의미를 추론할 수 있다.
  • 각 문서가 어떤 토픽으로 어떻게 구성되어 있는지 확률적으로 표현할 수 있다.
  • Bag of words기반이기 때문에 단어의 맥락적 의미를 충분히 반영할 수 없다.
  • 토픽별 의미는 키워드를 바탕으로 연구자 등이 직접 해석해야한다.

 

주요 가정은 다음과 같다.

 

  1. 하나의 문서 (텍스트)는 여러 가지의 주제가 공존하는 혼합체 (mixture)다. 즉, 각 문서는 토픽의 확률 분포로 표현할 수 있다.
  2. 주제마다 고유한 단어의 분포를 가지고 있다. 즉, 토픽의 추출과 문서의 토픽별 할당은 단어의 분포에 의해 결정된다.
  3. 문서 (텍스트)의 단어 분포는 각 토픽의 비율과 토픽별 단어의 분포에 따라 결정된다. 즉, 토픽의 분포와 단어의 분포를 종합적으로 고려하여 추정하는 모형을 사용해야 한다.

 

728x90
반응형
LIST