자연어 처리란?
자연어 처리(Natural Language Processing, NLP)는 컴퓨터가 사람이 사용하는 언어를 이해하고, 분석하며, 필요한 정보를 추출하거나 새로운 문장을 생성할 수 있도록 하는 인공지능 기술입니다.
쉽게 말하면, 사람이 사용하는 언어를 컴퓨터가 이해하고 처리할 수 있는 형태로 변환하여 다양한 작업을 수행하도록 만드는 기술입니다.
전체 흐름 (Overall Flow)
대부분의 자연어 처리(NLP) 시스템은 다음과 같은 공통된 처리 과정을 거칩니다.
입력 텍스트 → 모델 → 결과
먼저 사람이 문장을 입력하면 AI 모델이 그 문장의 의미를 이해하고 분석합니다. 그런 다음 학습한 내용을 바탕으로 가장 적절한 결과를 출력합니다.
생성되는 결과는 수행하는 작업에 따라 달라집니다. 예를 들어 감성 분석에서는 긍정 또는 부정과 같은 분류 결과를 출력하고, 개체명 인식에서는 문장 속 단어마다 이름, 장소, 날짜와 같은 태그를 부여합니다. 또한 번역이나 문장 생성과 같은 작업에서는 새로운 문장을 만들어 출력합니다.
자연어 처리의 주요 작업
자연어 처리는 목적에 따라 여러 가지 작업(Task)으로 나눌 수 있습니다. 각 작업은 입력된 문장을 분석하는 방식과 생성하는 결과가 서로 다릅니다.
아래 탭을 선택하여 각 작업의 입력과 출력이 어떻게 구성되는지 예제를 통해 살펴보겠습니다.
분류 (Classification)
(Input Text)
(Model)
(Single Class)
분류는 하나의 답을 선택하는 작업입니다
모델은 문장이나 문서 전체를 읽은 뒤, 미리 정해 둔 후보 가운데 가장 알맞은 하나의 클래스를 선택합니다.
- 입력 전체에 대해 결과가 하나만 생성됩니다.
- 감성 분석, 스팸 판별, 의도 탐지, 언어 판별 등에 사용됩니다.
- 모델은 각 후보의 가능성을 계산한 뒤 가장 높은 값을 선택합니다.
조금 더 자세히 알아보기
모델 내부에서는 클래스 이름을 그대로 처리하지 않고 숫자로 바꾸어 사용합니다. 예를 들어 긍정=0, 부정=1, 중립=2처럼 각 클래스에 번호를 부여할 수 있습니다.
실제 출력은 단순한 번호 하나가 아니라 각 클래스의 점수나 확률일 수 있으며, 그중 가장 높은 값을 최종 결과로 선택합니다.
다중 분류 (Multi-Classification)
(Input Text)
(Model)
(Multiple Classes)
다중 분류는 여러 위치에 답을 붙이는 작업입니다
문장 전체에 하나의 답을 붙이는 것이 아니라, 문장을 구성하는 각 단어 또는 각 위치마다 개별 결과를 예측합니다.
- 입력 문장 안에서 여러 개의 결과가 동시에 생성됩니다.
- 품사 태깅과 개체명 인식처럼 단어별 분석이 필요한 작업에 사용됩니다.
- 출력의 개수는 보통 입력 토큰의 개수와 관련됩니다.
조금 더 자세히 알아보기
일반 분류가 문장 전체의 성격을 판단한다면, 이 작업은 문장 내부의 각 요소가 어떤 역할을 하는지 구분합니다. 따라서 한 문장에서도 사람, 장소, 기관 등 여러 종류의 결과가 함께 나올 수 있습니다.
다만 여기에서 말하는 다중 분류는 하나의 문장에 여러 주제 라벨을 동시에 붙이는 다중 레이블 분류와는 다릅니다. 이 절에서는 단어 또는 위치별 분류를 설명합니다.
생성 (Generation)
(Input Text)
(Model)
(Output Text)
생성은 새로운 텍스트를 만들어 내는 작업입니다
정해진 클래스 가운데 하나를 고르는 대신, 입력 내용을 바탕으로 새로운 단어를 차례대로 예측하여 문장을 만듭니다.
- 출력 길이가 미리 고정되어 있지 않을 수 있습니다.
- 번역, 요약, 질의응답, 문장 완성, 챗봇 응답 등에 사용됩니다.
- 앞에서 생성한 단어가 다음 단어의 예측에 다시 영향을 줍니다.
조금 더 자세히 알아보기
LLM은 보통 현재까지 주어진 토큰을 바탕으로 다음 토큰의 확률을 계산합니다. 하나를 선택해 문장 뒤에 붙이고, 같은 과정을 반복하면서 긴 문장을 완성합니다.
이 때문에 같은 입력이라도 선택 방식이나 설정에 따라 표현이 조금씩 달라질 수 있으며, 정답 후보 중 하나를 고르는 분류보다 출력의 자유도가 높습니다.
작업 유형 체험 (Interactive Example)
현재 선택한 분류 작업에 맞는 예시입니다. 예시를 선택한 뒤 실행 버튼을 눌러 출력 형태를 확인해 보세요.
문장 전체를 분석하여 하나의 클래스를 선택합니다.
자연어 처리 작업의 비교
| 작업 유형 | 입력 | 출력 | 대표 예시 |
|---|---|---|---|
| 분류 (Classification) | 문장 또는 문서 | 하나의 클래스 | 긍정/부정, 언어 종류, 사용자 의도 |
| 다중 분류 (Multi-Classification) | 문장 또는 토큰 시퀀스 | 여러 위치별 클래스 | 품사, 사람·장소·기관 태그 |
| 생성 (Generation) | 문장, 질문, 문서 | 새로운 텍스트 | 번역, 요약, 질의응답 |
학습 내용 정리
이번 장에서는 자연어 처리(NLP)의 기본 개념과 대표적인 작업 유형을 살펴보았습니다. 자연어 처리 시스템은 입력된 문장을 분석한 후, 작업의 목적에 맞는 결과를 생성합니다.
- 분류(Classification)는 문장 전체에 대해 하나의 결과를 예측하는 작업입니다.
- 다중 분류(Multi-Classification)는 문장의 각 단어나 위치마다 결과를 예측하는 작업입니다.
- 생성(Generation)은 새로운 단어나 문장을 만들어 내는 작업입니다.
앞으로 배우게 될 Transformer와 LLM은 이러한 다양한 자연어 처리 작업을 수행하는 핵심 기술이며, 특히 LLM은 하나의 모델로 분류, 분석, 번역, 요약, 질의응답, 문장 생성 등 여러 작업을 수행할 수 있습니다.