[NLP] 자연어 처리

egy·2022년 8월 23일
3

NLP

목록 보기
1/2
post-thumbnail

📌 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 등의 머신러닝 모델 -> 분류

0개의 댓글