Hello It's good to be back ^_^

파이썬 머신러닝 스터디 8주차 (ch08 텍스트 분석) 본문

Study/파이썬 머신러닝

파이썬 머신러닝 스터디 8주차 (ch08 텍스트 분석)

HongYeon 2024. 5. 23. 00:57

교재: 파이썬 머신러닝 완벽 가이드

공부한 페이지: pp. 488-

실습한 내용: https://github.com/HongYeonLee/Pylot_MachineLearningStudy

 

GitHub - HongYeonLee/Pylot_MachineLearningStudy

Contribute to HongYeonLee/Pylot_MachineLearningStudy development by creating an account on GitHub.

github.com


 

목차

 

01. 텍스트 분석 이해

 

02. 텍스트 사전 준비 작업 (텍스트 전처리) - 텍스트 정규화

 

03. Bag of Words - BOW

 

04. 텍스트 분류 실습 - 20 뉴스그룹 분류

 

05. 감성 분석

 

06. 토픽 모델링 (Topic Modeling) - 20 뉴스그룹

 

07. 문서 군집화 소개와 실습 (Opinion Review 데이터 세트)

 

08. 문서 유사도

 

09. 한글 텍스트 처리 - 네이버 영화 평점 감성 분석

 

10. 텍스트 분석 실습 - 캐글 Mercari Price Suggestion Challenge

 


 


NLP (National Language Processing)

  • 머신이 인간의 언어를 이해하는 데 중점을 둔 것
  • 기계 번역, 질의응답 분야에서 사용

 

텍스트 분석 (Text Analytics)

  • 비정형 텍스트에서 의미 있는 정보를 추출하는 것에 중점을 둔 것
  • 롤 기반 시스템 분야에서 사용

 

텍스트 분석의 분류

종류 사용 예시 학습 방법
텍스트 분류 (Text Classification) 신문기사 카테고리 판별, 스팸메일 검출 지도 학습
감성 분석 (Sentiment Analysis) SNS 감정 분석, 리뷰 분석 지도 학습 & 비지도 학습
텍스트 요약 (Summarization) 토픽 모델링 (Topic Modeling)  
텍스트 군집화 (Clustering) 비슷한 유형의 문서에 군집화 수행 비지도 학습
유사도 측정 문사들간의 유사도 측정  

 

 


 

 

01 텍스트 분석 이해

 

텍스트 분석

  • 비정형 데이터인 텍스트를 분석하는 것
  • 텍스트에 머신러닝을 적용하기 위해서는 비정형 데이터를 어떻게 피처 형태로 추출하고, 추출된 피처에 의미 있는 값을 부여하는지 중요하다

 

텍스트 변환

  • 텍스트를 word 기반의 다수의 피처로 추출하고 이 피처에 단어 빈도수와 같은 숫자 값을 부여하면 벡터값으로 변환할 수 있다
  • 이를 피처 벡터화 (Feature Vectorization) 또는 피처 추출 (Feature Extraction)이라고 한다

 

피처 벡터화의 종류

  • BOW (Bag of Words) - Count 기반과 TF-IDF 기반 벡터화가 있다
  • Word2Vec

 

텍스트 분석 수행 과정

 

01. 텍스트 전처리

  • 클렌징, 대/소문자 변경, 특수문자 삭제, 단어 토큰화 작업, 의미 없는 단어 (Stop word) 제거, 어근 추출(Stemming/Lemmatization)등의 작업 수행

02. 피처 벡터화/추출

  • 가공된 텍스트에서 피처 추출 후 벡터 값 할당 (BOW와 Word2Vec 이용)

03. ML 모델 수립 및 학습/예측/평가

 

 

파이썬 라이브러리

NLTK (Natural Language Toolkit for Phytho) - 파이썬의 가장 대표적인 NLP 패키지, 수행 속도에서 아쉬운 능력
Gensim - 토픽 모델링 분야에서 많이 활용, Word2Vec 구현
SpaCY - 뛰어난 성능 수행으로 최근 가장 주목 받는 NLP 패키지

 

 


 

 

02 텍스트 사전 준비 작업 (텍스트 전처리) - 텍스트 정규화

 

 

텍스트 정규화

  • 텍스트를 머신러닝 알고리즘이나 NLP 애플리케이션에 입력 데이터로 사용하기 위해 클린젱, 정제, 토큰화, 어근화 등의 텍스트 데이터 사전 작업을 수행하는 것을 의미함

 

텍스트 정규화의 분류

  • 클렌징 (Cleansing)
  • 토큰화 (Tokenization)
  • 필터링/스톱 워드 제거/철자 수정
  • Stemming
  • Lemmatization

 

클렌징

불필요한 문자, 기호 등을 사전에 제거하는 작업을 의미한다. ex) HTML, XML 태그나 특정 기호 등

 

텍스트 토큰화

문서에서 문장을 분리하는 문장 토큰화

문장에서 단어를 분리하는 단어 토큰화

NLTK 패키지가 토큰화에 대한 다양한 API 제공

 

문장 토큰화

마침표(.), 개행문자(\n) 등을 따라 문장을 분리하는 것이 일반적