1. 자연어 처리란?
자연어(Natural Language) 란 우리가 일상생활에서 사용하는 언어를 말한다.
자연어 처리(Natural Language Processing, NLP) 란 이러한 자연어의 의미를 분석하여 컴퓨터가 처리할 수 있도록 하는 일을 말한다.
NLP는 다음과 같은 다양한 분야에서 사용된다.
- 음성 인식
- 내용 요약
- 번역
- 사용자의 감성 분석
- 텍스트 분류 (스팸 메일 분류, 뉴스 기사 카테고리 분류 등)
- 질의 응답 시스템
- 챗봇
한마디로 NLP는 기계에게 인간의 언어를 이해시키기 위한 분야라고 할 수 있다.
2. 머신 러닝 워크플로우
데이터를 수집하고 머신 러닝을 수행하는 과정은 크게 6단계로 나눌 수 있다.
(딥 러닝 또한 머신 러닝의 한 갈래이므로 딥 러닝 워크플로우도 같은 흐름으로 볼 수 있다.)

1) 수집 (Acquisition)
머신 러닝을 하려면 먼저 기계에 학습시킬 데이터가 필요하다.
자연어 처리에서는 이 자연어 데이터를 말뭉치 또는 코퍼스(corpus) 라고 부른다. 코퍼스란 조사나 연구 목적에 의해 특정 도메인으로부터 수집된 텍스트 집합을 의미한다.
- 파일 형식:
.txt,.csv,.xml등 다양 - 출처: 음성 데이터, 웹 크롤러로 수집한 데이터, 영화 리뷰 등 다양
2) 점검 및 탐색 (Inspection and Exploration)
데이터가 수집되었다면 이제 데이터를 점검하고 탐색하는 단계다. 데이터의 구조, 노이즈, 어떻게 정제해야 할지 등을 파악한다.
이 단계를 탐색적 데이터 분석(Exploratory Data Analysis, EDA) 단계라고도 부른다.
- 독립 변수, 종속 변수, 변수 유형, 데이터 타입 등을 점검
- 데이터의 특징과 내재하는 구조적 관계를 파악
- 이 과정에서 시각화와 간단한 통계 테스트를 진행하기도 함
3) 전처리 및 정제 (Preprocessing and Cleaning)
데이터에 대한 파악이 끝났다면, 워크플로우에서 가장 까다로운 작업 중 하나인 데이터 전처리 과정에 들어간다.
자연어 처리라면 다음과 같은 단계를 포함한다.
- 토큰화 (Tokenization)
- 정제 (Cleaning)
- 정규화 (Normalization)
- 불용어 제거 (Stopword Removal)
빠르고 정확한 전처리를 위해서는 사용하는 툴(파이썬 등)의 다양한 라이브러리에 대한 지식이 필요하다. 정말 까다로운 경우에는 전처리 과정에서 머신 러닝이 사용되기도 한다.
4) 모델링 및 훈련 (Modeling and Training)
전처리가 끝났다면 머신 러닝 코드를 작성하는 모델링 단계에 들어간다. 적절한 알고리즘을 선택해 모델링이 끝나면, 전처리된 데이터를 알고리즘에 넣어 기계를 학습(training) 시킨다.
학습이 제대로 되면 기계는 번역, 음성 인식, 텍스트 분류 등 우리가 원하는 작업을 수행할 수 있게 된다.
⚠️ 주의: 모든 데이터를 학습에 쓰면 안 된다!
데이터 일부는 테스트용으로 남겨두고 훈련용 데이터만 훈련에 사용해야 한다. 그래야 학습 후 테스트용 데이터로 성능을 측정할 수 있고, 과적합(overfitting) 을 막을 수 있다.
사실 최선은 두 가지가 아니라 세 가지로 나누는 것이다.

검증용 vs 테스트용의 차이
수능 시험에 비유하면 이해가 쉽다.
| 데이터 | 비유 | 역할 |
|---|---|---|
| 훈련용 (Train) | 학습지 | 기계를 학습시키는 데 사용 |
| 검증용 (Validation) | 모의고사 | 학습이 얼마나 됐는지 판단하고 성능을 개선하는 데 사용 |
| 테스트용 (Test) | 수능 시험 | 모델의 최종 성능을 수치화하여 평가 (채점 단계) |
검증용 데이터는 모델의 성능을 개선하는 데 쓰고, 테스트용 데이터는 개선이 아니라 평가에만 쓴다는 점이 핵심이다.
현업에서 최선은 검증용 데이터까지 사용하는 것이다.
5) 평가 (Evaluation)
학습이 완료되면 테스트용 데이터로 성능을 평가한다. 평가 방법은 기계가 예측한 값이 테스트용 데이터의 실제 정답과 얼마나 가까운지를 측정하는 것이다.
6) 배포 (Deployment)
평가 단계에서 성공적으로 훈련된 것으로 판단되면, 완성된 모델을 배포한다.
다만 배포 후 전체적인 피드백으로 인해 모델을 업데이트해야 하는 상황이 오면, 다시 수집 단계로 돌아갈 수 있다.
'개발' 카테고리의 다른 글
| [Drone] MAVLink - 드론과 지상이 통신하는 언어 (0) | 2026.07.14 |
|---|---|
| [Drone] FC와 Ardupilot/PX4 (0) | 2026.07.13 |