본문 바로가기

코딩(coding)/자연어처리(NLP)

[자연어 기초1] 자연어 처리(NLP)의 기본 과정 - 기본 개념

자연어는 ‘처리’(processing) 한다고 합니다. 

 

왜냐하면, 자연어를 그대로 이해하는 것이 아니라 컴퓨터가 이해할 수 있는 단어로 바꿔주어야 하기 때문입니다. 이 과정을 바로 임베딩(embedding) 이라고 합니다.

 

임베딩을 포함한 전체 과정을 크게보면

1)입력(여기서는 자연어) → 2)모델(함수) → 3)출력(확률, 특정 범주일 확률을 반환한다.)

 

이렇게 이어지게 됩니다.

 

그림으로 나타내면 다음과 같습니다.

순서대로 입력, 모델, 출력이며 - 노랑색은 별도의 레이어를 쌓아서 자연어 형태로 출력합니다.

 

  1. 입력 단계의 task에 따라서 달라지게 됩니다. 예를 들어 감성분석의 경우에는 label을 달아주어야 합니다. (긍or부)
  2. 모델에서는 출력과 정답을 비교해서 업데이트 합니다. 이 전체 과정을 train 과정이라고 합니다. 모델은 원하는 모델로 사용하면 됩니다.(딥러닝 모델이 가장 인기가 많고, 대부분 BERT 혹은 GPT를 사용합니다.)
  3. 확률로써 반환하면, 후처리를 통해서 자연어 형태로 출력해주면 됩니다.

모델 순서는

  1. 전처리 preprocessing 한 후에 (여기서는 KoNLPy, Soynlp, Sentencepiece 등을 활용한다.)
  2. 임베딩 embedding 을 합니다.
  3. 그리고 후처리로 fine-tuning 을 진행합니다. (앞서 임베딩에서 정보를 가지고 있기 때문에(pre-trained) 이를 전이학습이라고 합니다.)

자연어 처리 기본 개념

말뭉치(corpus), 가령 네이버 영화 리뷰와 위키백과 자료 등을 종합해서 말뭉치(각각은 컬렉션이라고 명명)라고 합니다. 말뭉치는 특정한 목적을 가지고 수집한 표본입니다.(그렇기에 일부만 대변합니다.)

 

문장(Sentence) : 데이터의 기본 단위 입니다. 생각 및 감정 표현 시 최소 독립 단위이며, ‘.’, ‘!’, ‘?’ 기준으로 나눕니다.

문서(Document) : 문장의 집합. (참조 : 보통 문서를 단락(paragraph)의 집합이라고 하는데, 여기서는 구분하지 않는다.) ‘\n’을 기준으로 나눕니다.

 

토큰(token) : 가장 작은 단위 입니다. 문장은 여러개의 토큰으로 구성된다. 토큰은 단어(word), 형태소(morpheme), 서브워드(subword)로도 불립니다.

토크나이즈(tokenize) : 토큰을 어떻게 나눌 것 인가를 뜻합니다. 여러 방법으로 나눌 수 있는데, 형태소 분석 (morphological analysis)이나 띄어쓰기로 나눌 수 있다.

(참고: 형태소 분석과 토크나이즈, 토큰화를 같은 것으로 여기서는 여기지만, 한국어의 경우 토큰화와 품사 판별이 밀집한 관계를 가집니다. 그래서 형태소 분석을 토큰화 + 품사 판별 느낌이라고 이해해도 됩니다.)

어휘 집합(vocabulary) : 중복을 제거한 토큰의 집합입니다.

미등록 단어(unknown word) : 어휘 집합에 없는 미등록 단어를 지칭합니다.

 

다음에는 한국어를 어떻게 전처리를 해서, 임베딩을 진행을 할지 살펴보도록 하겠습니다!

 

자연어 기초 포스팅 참고자료

- 이기창, <한국어 임베딩>, 에이콘출판주식회사, 2019

- 이기창, <BERT와 GPT로 배우는 자연어처리>, 이지스퍼블리싱, 2021