본문 바로가기
🌿 Data Engineering/Data Analysis

[텍스트분석] 01.텍스트 분석 수행 프로세스

by 카프리썬_ 2021. 9. 4.
728x90
728x90

요즘 추천시스템이랑 텍스트분석쪽에 관심이 생겨서 책을 찾아보았다.

사실 이미 한번 프로젝트(?)로 수행했지만 훑어보고 간단하게 넘어간것 같아서..

다시한번 짚어보는 목적! 튼튼한 기본이 단단한 기초가 중요하니까! 

 

아래의 내용은 파이썬 머신러닝 완벽가이드의 책의 [8.텍스트분석] 읽고 정리한 내용입니다

 


NLP란?

National Language Processing 

머신이 인간의 언어를 이해하고 해석하는데 중점을 둔 기술로, 텍스트분석을 향상하게하는 기반기술.

NLP가 발전하면서 텍스트 분석도 정교하게 발전하는 중이다.

예를 들면,

텍스트를 구성하는 언어직인 룰이나 업무의 룰에 따라 분석하는 룰기반 시스템

->  머신러닝의 텍스트 데이터를 기반으로 모델을 학습하고 예측하는 기반으로 변경

 

텍스트분석이란?

머신러닝, 언어이해, 통계 등을 활용해 모델을 수립하고, 정보를 추출해 비즈니스 인텔리전스(BI)나 예측분석 작업 수행

  • 텍스트 분류 : 문서가 어떤 분류에 속하는지 예측하는 기법 (ex: 특정기사가 연예/정치/사회 중 어디에 속하는지 )
  • 감성분석 : 텍스트에서 나타는 감정/기준/의견 등 주관적인 요소를 분석하는 기법 (ex: 제품에 대한 긍/부정 리뷰)
  • 텍스트요약 : 텍스트 내에서 중요한 주제나 중심사상을 추출하는 기법 (ex: 토픽모델링)
  • 텍스트 군집화/유사도 측정 : 비슷한 유형의 문서에 대해서 군집화를 수행하는 기법 (ex: 유사한 문서끼리 그룹)

 

즉, 비정형데이터인 텍스트를 분석하는 것.

머신러닝 알고리즘은 숫자형 피쳐기반 데이터만 입력받을 수 있다.

-> 비정형 텍스트 데이터를 어떻게 피쳐형태로 추출하고, 추출된 피쳐에 의미있는 값을 부여하는가가 매우 중요하다!

예를 들어, 텍스트를 단어조합의 벡터값으로 표현해서 변환하는 작업 (피쳐 벡터화  또는 피쳐 추출작업)

 

텍스트 분석 수행 프로세스

1. 텍스트 사전준비 (텍스트 전처리) : 텍스트를 벡터로 만들기 전에 토큰화작업 등 Text Cleaning 작업

2. 피쳐 벡터화/추출 : 가공된 텍스트에서 피쳐를 추출하고, 여기에 벡터값을 할당하는 작업 

3. ML모델 수립 및 학습/예측/평가 : 피쳐 벡터화된 데이터세트에 ML모델을 적용해 학습/예측/평가 수행

텍스트 분석 패키지

  • NLTK : 파이썬의 가장 대표적인 NLP 패키지, 수행속도측면에서 아쉬움
  • Gensim : 토픽모델링분야에 두각을 나태는 패키지, 
  • SpaCy : 뛰어난 수행성능으로 최근 가장 주목을 받는 NLP패키지
  • Sklearn : 머신러닝 위주의 라이브러리
    NLP패키지에 특화되어 있진 않지만, 텍스트데이터를 피쳐화할 수 있어서 간단한 텍스트 분석시 사용가능
728x90
반응형