1 분 소요

텍스트 분석

텍스트 분석 이해

NLP와 텍스트 분석

  • NLP(Natural Language Processing)
    • 인간의 언어를 이해하고 해석하는데 더 중점을 두고 기술이 발전해 옴
    • NLP 기술의 발전으로 텍스트 분석도 더욱 정교하게 발전
  • 텍스트 분석
    • 텍스트 분석은 머신러닝, 언어 이해, 통계 등을 활용해 모델을 수립하고 정보를 추출해 비즈니스 일텔리전스(Business Intelligence)나 예측 분석 등의 분석 작업을 주로 수행

텍스트 분석 주요 영역

  • 텍스트 분류(Text Classification):
    문서가 특정 분류 또는 카테고리에 속하는 것을 예측하는 기법을 통칭한다.
    예를 들어 특정 신문 기사 내용이 연예/정치/사회/문화 중 어떤 카테고리에 속하는지 자동으로 분류하거나 스팸 메일 검출 같은 프로그램이 이에 속한다.
    지도학습을 적용한다.
  • 감성 분석(Sentiment Analysis):
    텍스트에서 나타나는 감정/판단/믿음/의견/기분 등의 주관적인 요소를 분석하는 기법을 통칭한다.
    소셜 미디어 감정 분석, 영화나 제품에 대한 긍정 또는 리뷰, 여론조사 의견 분석 등의 다양한 영역에서 활용된다.
    지도학습 방법뿐만 아니라 비지도학습을 이용해 적용할 수 있다.
  • 텍스트 요약(Summarization):
    텍스트 내에서 중요한 주제나 중심 사상을 추출하는 기법을 말한다.
    대표적으로 토픽 모델링(Topic Modeling)이 있다.
  • 텍스트 군집화와 유사도 측정:
    비슷한 유형의 문서에 대해 군집화를 수행하는 기법을 말한다.
    텍스트 분류를 비지도학습으로 수행하는 방법의 일환으로 사용될 수 있다. 유사도 측정 역시 문서들 간의 유사도를 측정해 비슷한 문서끼리 모을 수 있는 방법이다.

텍스트 분석 수행 프로세스

Text 문서 -> Feature Vectorization -> ML 학습/예측/평가

  1. 텍스트 사전 준비작업(텍스트 전처리): 텍스트를 피처로 만들기 전에 미리 클렌징, 대/소문자 변경, 특수문자 삭제 등의 클렌징 작업, 단어(word) 등의 토큰화 작업, 의미 없는 단어(Stop word) 제거 작업, 어근 추출(Stemming/Lemmatization) 등의 텍스트 정규화 작업을 수행한느 것을 통칭한다.
  2. 피처 벡터화/추출: 사전 준비 작업으로 가공된 텍스트에서 피처를 추출하고 여기에 벡터 값을 할당한다.
    대표적인 방법은 BOW와 Word2Vec이 있으며, BOW는 대표적으로 Count 기반과 TF-IDF 기반 벡터화가 있다.
  3. ML 모델 수립 및 학습/예측/평가: 피처 벡터화된 데이터 세트에 ML 모델을 적용해 학습/예측 및 평가를 수행한다.

파이써너 기반의 NLP, 텍스트 분석 패키지

  • NLTK(National Language Toolkit for Python): 파이썬의 가장 대표적인 NLP 패키지이다.
    방대한 데이터 세트와 서브 모듈을 가지고 있으며 NLP의 거의 모드 영역을 커버하고 있다.
    많은 NLP 패키지가 NLTK의 영향을 받아 작성되고 있다.
    수행 속도 측면에서 아쉬운 부분이 있어서 실제 대량의 데이터 기반에서 제대로 활용되지 못하고 있다.

  • Gensim: 토픽 모델링 분야에서 가장 두각을 나타내는 패키지이다.
    오래전부터 토픽 모델링을 쉽게 구현할 수 있는 기능을 제공해 왔으며, Word2Vec 구현 등의 다양한 신기능도 제공한다.
    SpaCy와 함께 가장 많이 사용되는 NLP 패키지이다.

  • SpaCy: 뛰어난 수행 성능으로 최근 가장 주목을 받는 NLP 패키지이다.
    많은 NLP 애플리케이션에서 SpaCy를 사용하는 사례가 늘고 있다.