📌 NLP
- NLP(Natural Language Processing, 자연어 처리)는 컴퓨터가 자연어를 이해하고 해석하여 처리할 수 있도록 하는 것이다.
- 텍스트 분류, 감성 분석, 기계 번역 등에서 활용
1. 텍스트 전처리 (Text preprocessing)
1-1. 토큰화 (Tokenization)
- 주어진 코퍼스(corpus)에서 토큰(token)이라 불리는 단위로 나누는 작업이다.
- 단어 토큰화(Word tokenization) : 토큰의 기준을 단어로 하는 경우
- 문장 토큰화(Sentence Tokenization) : 코퍼스 내에서 문장 단위로 구분하는 작업
1-2. 불용어 (Stopword)
- 유의미한 단어 토큰만을 선별하기 위해서 큰 의미가 없는 단어 토큰을 제거하는 작업
- 예를 들면, 조사, 접미사 같이 자주 등장하지만 분석을 하는 것에 있어서는 큰 도움이 되지 않는 단어들을 불용어라고 한다.
1-3. 패딩 (Padding)
- 여러 문장의 길이를 임의로 동일하게 맞춰주는 작업
- 기계는 길이가 전부 동일한 문서들에 대해서는 하나의 행렬로 보고, 한꺼번에 묶어서 처리할 수 있기 때문에 패딩이 필요하다.
1-4. 임베딩 (Embedding)
- 자연어를 기계가 알아들을 수 있게 수치화(벡터화)하는 과정
- 단어나 문장 각각을 벡터로 변환해 벡터 공간(Vector space)으로 끼워넣는다는 의미에서 임베딩이라고 한다.
⭐️ 자연어 처리의 성능은 '임베딩 성능'이다라는 말처럼, 자연어를 벡터로 바꾼 수치가 단어의 특징이나 유사성 등을 제대로 반영하지 못하면 무용지물이 된다. 즉, 임베딩이 전처리의 핵심!
2. 언어모델 (Language Model)
📌 언어 모델은 문장이 얼마나 자연스러운지 확률적으로 계산함으로써 문장 내 특정 위치에 출현하기 적합한 단어를 확률적으로 예측하는 모델이다. 즉, 문장 내 앞서 등장한 단어를 기반으로 뒤에 어떤 단어가 등장해야 문장이 자연스러운지 판단하는 도구이다.
2-1. RNN (Recurrent Neural Network, 순환 신경망)
- 입력과 출력을 시퀀스 단위로 처리하는 시퀀스(Sequence) 모델.
- 순서가 존재하는 데이터에서 다음 데이터를 예측한다.
- 뒤에 오는 데이터가 이전 데이터에 의존적이다.
- 학습 특성 상 단기 메모리를 가지고 학습하므로 기울기 소실(Vanishing Gradients) 문제가 발생한다는 단점이 있다.
2-2. LSTM (Long Short Term Memory)
- RNN의 장기 의존성 문제를 해결하기 위해 나온 모델
- LSTM은 단기 메모리와 장기 메모리를 나눠 학습 후, 두 메모리를 병합해 이벤트 확률을 예측한다. 그래서 과거의 정보를 훨씬 잘 반영한다는 장점이 있다.
2-3. Pre-trained Model
📌사전훈련(pre-trained)이란 처음부터 데이터를 가지고 학습을 하는 것이 아니라, 방대한 학습 데이터를 가지고 사용하는 방법이다.
- 사전훈련된 언어모델에는 BERT, GPT-3, ELMO 등이 있다.
- 일반적인 머신러닝 모델 학습 과정
- 분류를 원하는 데이터 -> LSTM, CNN 등의 머신러닝 모델 -> 분류
- BERT를 사용한 모델링 과정
- 관련 대량 코퍼스 -> BERT -> 분류를 원하는 데이터 -> LSTM, CNN 등의 머신러닝 모델 -> 분류