데이터 한 그릇

텍스트 분석(1) 본문

머신러닝/텍스트 분석

텍스트 분석(1)

장사이언스 2021. 9. 1. 15:30

 

  • 텍스트 분석
  • 텍스트 분석 이해

텍스트 분석

 

NLP 와 텍스트 분석은 머신러닝이 발전한 이후에 분리해서 구분하는게 큰 의미가 없다. 하지만 굳이 구분을 하자면 다음과 같다.

 

NLP 는 기계가 인간의 언어를 이해하고 해석하는데 중점을 두고 기술이 발전해왔다. 텍스트 분석은 비정형 데이터에서 의미있는 정보를 추출하는 것에 좀 더 중점을 두고 기술이 발전해왔다.

 

NLP 는 텍스트 분석 기술 진보의 동력이라고 할 수 있으며, 따라서 NLP 가 발전함에 따라 텍스트 분석 기술도 발전해왔다. 또한 머신러닝은 NLP 와 텍스트 분석 기술 발전의 동력이라고 할 수 있으며, 따라서 머신러닝이 발달함에 따라 NLP 기술과 텍스트 분석 기술이 발전해왔다.

 

우리가 다뤄볼 주제는 텍스트 분석이며 텍스트 분석의 영역은 크게 다음과 같다.

 

  1. 텍스트 분류
  2. 감정 분석
  3. 텍스트 요약
  4. 텍스트 군집화

 

1. 텍스트 분류 같은 경우에는, 어떤 문서가 어떤 특정 카테고리에 속하는지 예측하는 기법을 칭한다. 예를 들어서 어떤 뉴스 기사가 있을 때, 이 뉴스 기사가 연애/정치/사회/문화 중에 어떤 카테고리에 속하는지 예측하는 작업이 이에 속한다.

 

2. 감정 분석 같은 경우, 어떤 문서를 분석하여 그 문서를 작성한 사람의 주관적인 감정을 분석하는 기법이다. 예를 들어서 어떤 댓글을 분석하여 그 댓글을 작성한 사람의 감정을 분석하는 작업이 이에 속한다. (분노, 기쁨 등등)

 

3. 텍스트 요약 같은 경우, 어떤 문서의 주제나, 중심 사상을 추출하는 작업을 말한다.

 

4. 텍스트 군집화 같은 경우에는 비슷한 유형의 문서에 대해 군집화를 수행하는 기법을 말한다.

 


텍스트 분석 이해

 

  우리가 다뤄볼 주제는 "텍스트 분석" 이다.  텍스트 분석을 이해하기 위해서는 텍스트 분석의 프로세스를 이해할 필요가 있다. 텍스트 분석은 "비정형 데이터"를 분석하는 기법이다. 지금까지 머신러닝 알고리즘 같은 경우 범주 데이터와 문자형 데이터를 숫자형 데이터로 바꾼 후 데이터를 알고리즘에 적용시켰다. 텍스트 분석 같은 경우에도 이와 같은 절차를 거친다. 따라서 문서의 텍스트를 벡터값을 가지는 피처로 변환해야만 한다. 주로 텍스트를 WORD 기반의 다수의 피처로 추출하고, 이 피처에 단어 빈도수에 따른 숫자를 부여한다. 즉, 아래의 표와 같에 벡터화 시킨다.

 

피처1 피처2 피처N
3 4 7

 

이때 사용되는 방법이 두 가지 정도 존재한다. 바로 BOW, Word2vec 방식이다. 우리가 블로그에서 다룰 방식은 BOW 방식이다.

 

 

  전반적인 텍스트 분석의 프로세스는 텍스트를 벡터값을 가지는 피처로 변환시키는 작업이였다. 다음으로는 텍스트 분석의 세세한 프로세스를 살펴보도록 하자.

 

 

텍스트 분석 프로세스

 

머신러닝 분류 알고리즘이나 회귀 알고리즘도 데이터에 대한 preprocessing 작업을 거쳐서 진행했다. 머신러닝 기반의 텍스트 분석 작업도 마찬가지이다. 이때 작업 순서는 다음과 같다.

 

  1. 텍스트 사전 준비작업(텍스트 전처리)
  2. 피처 벡터화/추출
  3. ML 모델 수립 및 학습/예측/평가

 

1. 텍스트 사전 준비작업 같은 경우, 앞서 말한 텍스트를 피처로 만들기전에 해야 할 작업이다. 주로 대/소문자 변경, 특수문자 삭제 등의 클렌징 작업, 단어(WORD) 등의 토큰화, 의미 없는 단어(Stop word) 제거 작업, 어근 추출(Stemming/Lemmatization) 등이다. 

 

2. 피처 벡터화/추출 같은 경우에는 앞선 1단계 작업으로 준비된 데이터에서 피처를 추출하고 벡터값을 부여하는 작업을 말한다. 우리는 이 방식으로 bow 방식을 살펴볼 예정이다.

 

3. 마지막으로 2단계 작업으로 피처 벡터화된 데이터를 이용하여 머신러닝 알고리즘에 적용하는 단계이다. 여기서 학습/예측 및 평가를 진행한다. 이 단계는 분류나 회귀 모형의 머신러닝 단계와 유사하다.

 

 

이러한 각각의 단계 작업은 sklearn 패키지로도 가능하나, 세심한 작업이 불가능하다. 따라서 텍스트 분석에 사용되는 특정 패키지를 사용할 예정이다. 우리는 주로 gensim 과 spaCy 패키지를 이용한다.

 

Comments