1. 자연어 처리 (NLP, Natural Language Processing) 이란?
ㅇ 컴퓨터가 인간의 자연어를 이해하고 해석하며 생성하는 기술
2. 자연어 처리 용어
ㅇ 자연어 (Natural Language) : 사람이 일상적으로 사용하는 언어.
ㅇ 자연어 처리 (NLP) : 인간의 언어를 컴퓨터가 이해하고 처리하게 하는 기술
ㅇ 토큰화 (Tokenization) : 문장을 단어 또는 형태소 단위로 나누는 과정
ㅇ 형태소 (Morpheme) : 의미를 가지는 가장 작은 언어 단위
ㅇ 어간 추출 (Stemming) : 단어의 어미나 접사를 제거해 기본형을 찾는 기법
ㅇ 표제어 추출 (Lemmatization) : 단어를 사전 형태(표제어)로 변환하는 과정
ㅇ 품사 태깅 (POS Tagging) : 각 단어에 품사 정보를 부여하는 작업.
ㅇ 불용어 (Stopword) : 분석에서 의미가 적은 단어 (`은`,`는`,`이`,`가` 등)
ㅇ 어휘집 (Vocabulary) : 모델이 인식할 수 있는 단어들의 집합
ㅇ 코퍼스 (Corpus) : 언어 분석을 위한 대규모 텍스트 데이터 모음
ㅇ 시소러스 (Thesaurus) : 유의어 사전
- WordNet 등에 수많은 단어 동의어와 계층구조 등이 수작업으로 정의되어 있음
3. 자연어 처리 모델
ㅇ 자연어 처리 모델
- 입력(자연어)이 특정 범주일 확률을 반환하는 함수
. 입력(자연어) 특성과 작업 목적(감성 분석 등)에 따라 최적이라고 판단되는 것을 선택
ㅇ 전통적인 NLP 모델
- 규칙 기반 NLP (Rule-based NLP)
. 언어학적 규칙을 사람이 직접 설계
. 형태소 규칙, 문법 규칙, 패턴 매칭 등
. 例) 정규표현식, 문법 트리 규칙, 전문가 시스템 등
. 단점 : 확장성 낮음, 언어 변화에 취약
- 통계적 / 확률적 NLP 모델
. 언어를 확률 과정으로 모델링
. 관측 변수와 은닉 상태의 관계 정의
. 비교적 수학적으로 해석 가능
. 대표 모델 : Hidden Markov Models (HMM), n-gram Language Model 등
- 전통적 기계학습 기반 NLP 모델
. 특징을 사람이 설계하는 방식
. 대표 모델 : Naive Bayes, Logistic Regression, Support Vector Machine (SVM) 등
ㅇ 딥러닝 기반 NLP 모델
- 신경망 기반 표현 학습
. 대표 모델 : Word Embedding, Word2Vec, GloVe, FastText 등
- 순환/합성 신경망 기반
. 대표 모델 : RNN, LSTM, GRU 등
. 장점 : 순서 정보 반영
. 한계: 장거리 의존성, 병렬 처리 어려움
- Transformer 기반 모델 (현재 주류)
. Self-Attention
. 병렬 처리 가능
. 장거리 문맥 학습에 강함
. 대표 모델 : Transformer 구조 (BERT, GPT)
. BERT (Bidirectional Encoder Representations from Transformers)
.. 양방향 문맥 인코딩, 이해(분류·질문응답) 중심
.. GPT (Generative Pre-trained Transformer)
.. 단방향(자기회귀) 생성 모델
.. 확률적 다음 토큰 예측
- 딥러닝 NLP의 특징
. 대규모 데이터 기반 사전학습 (Pre-training)
. 미세조정 (Fine-tuning)
. 명시적 규칙·사전 불필요
. 의미 관계를 분산 표현으로 내재화
4. 자연어 처리 응용
ㅇ 검색 엔진 : 방대한 문서 집합에서 관련성을 계산해 가장 적합한 결과를 순위화해 반환
ㅇ 문장 분류 (텍스트 분류) : 문서를 주제나 감정 등으로 분류
ㅇ 개체명 인식 : 사람, 장소 등 고유명사 식별
ㅇ 기계 번역 : 한 언어의 텍스트를 다른 언어로 번역
ㅇ 문서 요약 : 긴 텍스트에서 중요한 정보를 추출하여 짧은 요약을 생성
ㅇ 질문 응답 (QA) : 주어진 질문에 대해 관련된 정보를 텍스트에서 추출하여 답변
ㅇ 감정 분석 : 텍스트에서 감정(긍정/중립/부정)을 분석
ㅇ 대화형 AI (Chatbots) : 사용자의 질문에 대해 자연스러운 대화를 이어감
5. 자연어 정보 검색 및 접근
ㅇ 사용자가 원하는 정보를 효율적으로 탐색하기 위함
- 검색 (Search), 정렬 (Ranking), 검색어 사전 구축 (Query Construction), 색인 (Indexing),
교정, 추천 등