Python/데이터 분석
[Python] Text Analytics 개념
빵으니
2020. 7. 21. 17:51
텍스트 분석(Text Analytics, TA)
NLP 와 텍스트 분석(TA)
- NLP : 머신이 인간의 언어를 이해하고 해석하는 데 중점
- TA : 텍스트 마이닝(Text Mining)이라고 불리우며 비정형 텍스트에서 의미있는 정보를 추출 하는데 중점
- 머신러닝 기술에 힘입어 크게 발전
NLP
- 언어를 해석하기 위한 기계 번역
- 자동으로 질문을 해석하고 답을 해주는 질의응답 시스템
- NLP는 텍스트 분석을 향상하게 하는 기반 기술
텍스트 분류(Text Classification) - 지도 학습
- Text Categroization 이라고도 함
- 문서가 특정 분류 또는 카테고리에 속하는 것을 예측 하는 기법 통칭
- 예) 특정 기사가 정치/사회/문화/기타 어떤 카테고리에 속하는지 자동 분류
- 예) 스팸 메일 여부 자동 분류
감성 분석(Sentiment Anlysis) - 지도/비지도 학습
- 텍스트에 나타나는 감정/판단/믿음/의견/기분 등의 주관적인 요소를 분석하는 기법의 총칭
- 소셜미디어 감정 분석, 영화나 제품에 대한 긍정 또는 리뷰, 여론조사 의견 분석 등의 다양한 영역에서 활용
- TA 분야에서 가장 활발하게 사용되고 있음
텍스트 요약(Summarization)
- 텍스트 내에서 중요한 주제나 중심 사상을 추출하는 기법
- 대표적으로 '토픽 모델링(Topic Modeling)'이 있음
텍스트 군집화(Clustering) - 비지도 학습
- 비슷한 유형의 문서에 대해 군집화 수행하는 기법
- 유사도 측정 역시 문서들간의 유사도를 측정해 비슷한 문서들끼리 모을 수 있는 방법
텍스트 분석의 이해
- 텍스트 분석은 비정형 데이터인 텍스트를 분석 하는 것
- 비정형 텍스트 데이터를 어떻게 피처 형태로 추출하고 의미있는 값 부여가 핵심
- 텍스트를 word 기반의 다수 피처를 추출, 빈도수 부여 => 피처 벡터화(피처 추출)
- 피처 벡터화 방식 : BOW(Bag of Words), Word2Vec
- 텍스트를 벡터값을 가지는 피처로 변환하는 것이 머신러닝 모델 적용의 중요 요소
텍스트 분석 수행 프로세스
- 텍스트 사전 준비 작업(텍스트 전처리)
- 피처 벡터화 / 추출
- ML 모델 수립 및 학습/예측/평가
[ 파이썬 기반 NLP, 텍스트 분석 패키지 ]
NLTK(Natural Language Toolkit for Python)
- 파이썬의 가장 대표적인 NLP 패키지
- 방대한 데이터 세트와 서브 모듈
- NLP의 거의 모든 영역 커버
Gensim
- 토픽 모델링 분야 패키지
- Word2Vec 구현등 다양한 신기능 제공
- SpaCy 와 함께 가장 많이 사용되는 NLP 패키지
SpaCy
- 뛰어난 수행 성능으로 최근 가장 주목을 받는 NLP 패키지
텍스트 사전 준비 작업(텍스트 전처리) - 텍스트 정규화
텍스트 정규화
- 텍스트를 머신러닝 알고리즘이나 NLP 애플리케이션에 입력 데이터로 사용하기 위해 클렌징, 정제, 토큰화, 어근화 등의 사적전 작업을 수행하는 것
클렌징
- 텍스트 분석에 방해가 되는 불필요한 문제, 기호등 사전에 제거
- HTML, XML 등에서 태그나 특정 기호 제거
텍스트 토큰화
- 문장을 문서에서 분리하는 문장 토큰화
- 문장에서 단어를 분리하는 단어 토큰화
문장 토큰화
- punkt : 마침표, 개행 문자등의 데이터 세트