csmoon1010의 SW 블로그

자연어 처리 - 딥 러닝을 이용한 자연어 처리 입문 공부하기(2) 본문

데이터&인공지능/자연어처리

자연어 처리 - 딥 러닝을 이용한 자연어 처리 입문 공부하기(2)

csmoon1010 2020. 2. 9. 17:44

01. 자연어 처리(natural language processing)란?

필요한 라이브러리들의 설치를 마치고 이번엔 판다스 프로파일링과 머신 러닝 워크플로우에 대하여 배워본다.

내용은 위키독스를 기반으로 한다.

wikidocs.net/book/2155

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

1. 판다스 프로파일링(Pandas-Profiling)

판다스 프로파일링은 머신러닝을 하기 전 데이터의 성격을 알아보는 과정 즉, 데이터 내 값의 분포, 변수 간의 관계, 결측값(Null)의 존재 유무 등을 판단하는 EDA(Exploratory Data Analysis, 탐색적 데이터 분석)의 일종이다.

판다스 프로파일링은 이 역할을 .profile_report()라는 명령어로 쉽게 처리할 수 있다.

(1) 설치

pip install -U pandas-profiling	

(2) 실습파일 불러오기

https://www.kaggle.com/uciml/sms-spam-collection-dataset에서 spam.csv를 다운로드 받아서 read_csv해준다.

import pandas as pd
import pandas_profiling
data = pd.read_csv('spam.csv 파일의 경로',encoding='latin1')

(3) 리포트 생성하기

pandas_profiling을 통해 데이터를 프로파일링한 리포트를 생성하여 HTML파일로 저장 혹은 주피터 노트북으로 확인한다.

pr=data.profile_report() //pr : 프로파일링 결과리포트
pr.to_file('파일경로') //html파일로 리포트 저장

(4) 리포트 살펴보기(http://localhost:8888/view/pr_report.html)

주피터 노트북을 켜서 리포트 내용을 살펴본다.

- Warnings : 결측값의 개수(Missing cells), 결측값들의 위치열(Warnings를 통해), 중복되는 행, 중복값의 비율 등등을 확인할 수 있다.

- Variables : 모든 특성 변수들에 대한 결측값, 중복이 없는 unique values들의 통계치를 보여준다.

- Toggle deatails : value들의 빈도값, 구성(최대/최소/평균 길이, 값의 자료형 구성)을 보여준다.

 

2. 머신 러닝 워크플로우(Machine Learning Workflow)

(1) 수집 : 기계에 학습 시켜야 할 데이터를 수집한다. NLP에서는 수집한 자연어 처리를 '말뭉치', '코퍼스'라고 부른다. 이 데이터들의 파일 형식과 출처는 아주 다양하다.

(2) 점검 및 탐색 : 탐색적 데이터 분석(EDA) 단계로 데이터의 구조, 타입, 특징, 구조적 관계 등을 하는 단계이다. 앞의 pandas profiling도 이 과정의 일종이다.

(3) 전처리 및 정제 : 데이터에 대한 전처리 과정으로 NLP에서는 토큰화, 정제, 정규화, 불용어 제거 등이 포함된다. 이를 위해 앞서 살펴보았던 라이브러리나 머신 러닝 과정이 이용된다.

(4) 모델링 및 훈련 : 적절한 머신러닝 알고리즘을 선택하여 모델링하고 (3)에서 전처리된 데이터 중 훈련용 데이터를 기계에 학습시킨다. 훈련이 완료되면 기계가 테스트용 데이터를 가지고 태스크(기계 번역, 음성인식, 텍스트 분류 등)를 수행한다. 이 때 적절한 훈련용, 검증용(현재 모델의 성능 판단하여 성능 개선), 테스트용(모델의 최종 성능 평가) 데이터로의 분리가 모델 성능에 중요한 영향을 미친다.

(5) 평가(Evaluation) : 테스트용 데이터로 모델의 성능을 평가하는 과정이다.

(6) 배포(Deployment) : 완성된 모델을 배포하고 피드백과정을 통해 모델을 수정하는 단계이다.

 

Comments