자연어는 ‘처리’(processing) 한다고 합니다.
왜냐하면, 자연어를 그대로 이해하는 것이 아니라 컴퓨터가 이해할 수 있는 단어로 바꿔주어야 하기 때문입니다. 이 과정을 바로 임베딩(embedding) 이라고 합니다.
임베딩을 포함한 전체 과정을 크게보면
1)입력(여기서는 자연어) → 2)모델(함수) → 3)출력(확률, 특정 범주일 확률을 반환한다.) |
이렇게 이어지게 됩니다.
그림으로 나타내면 다음과 같습니다.
- 입력 단계의 task에 따라서 달라지게 됩니다. 예를 들어 감성분석의 경우에는 label을 달아주어야 합니다. (긍or부)
- 모델에서는 출력과 정답을 비교해서 업데이트 합니다. 이 전체 과정을 train 과정이라고 합니다. 모델은 원하는 모델로 사용하면 됩니다.(딥러닝 모델이 가장 인기가 많고, 대부분 BERT 혹은 GPT를 사용합니다.)
- 확률로써 반환하면, 후처리를 통해서 자연어 형태로 출력해주면 됩니다.
모델 순서는
- 전처리 preprocessing 한 후에 (여기서는 KoNLPy, Soynlp, Sentencepiece 등을 활용한다.)
- 임베딩 embedding 을 합니다.
- 그리고 후처리로 fine-tuning 을 진행합니다. (앞서 임베딩에서 정보를 가지고 있기 때문에(pre-trained) 이를 전이학습이라고 합니다.)
자연어 처리 기본 개념
말뭉치(corpus), 가령 네이버 영화 리뷰와 위키백과 자료 등을 종합해서 말뭉치(각각은 컬렉션이라고 명명)라고 합니다. 말뭉치는 특정한 목적을 가지고 수집한 표본입니다.(그렇기에 일부만 대변합니다.)
문장(Sentence) : 데이터의 기본 단위 입니다. 생각 및 감정 표현 시 최소 독립 단위이며, ‘.’, ‘!’, ‘?’ 기준으로 나눕니다.
문서(Document) : 문장의 집합. (참조 : 보통 문서를 단락(paragraph)의 집합이라고 하는데, 여기서는 구분하지 않는다.) ‘\n’을 기준으로 나눕니다.
토큰(token) : 가장 작은 단위 입니다. 문장은 여러개의 토큰으로 구성된다. 토큰은 단어(word), 형태소(morpheme), 서브워드(subword)로도 불립니다.
토크나이즈(tokenize) : 토큰을 어떻게 나눌 것 인가를 뜻합니다. 여러 방법으로 나눌 수 있는데, 형태소 분석 (morphological analysis)이나 띄어쓰기로 나눌 수 있다.
(참고: 형태소 분석과 토크나이즈, 토큰화를 같은 것으로 여기서는 여기지만, 한국어의 경우 토큰화와 품사 판별이 밀집한 관계를 가집니다. 그래서 형태소 분석을 토큰화 + 품사 판별 느낌이라고 이해해도 됩니다.)
어휘 집합(vocabulary) : 중복을 제거한 토큰의 집합입니다.
미등록 단어(unknown word) : 어휘 집합에 없는 미등록 단어를 지칭합니다.
다음에는 한국어를 어떻게 전처리를 해서, 임베딩을 진행을 할지 살펴보도록 하겠습니다!

자연어 기초 포스팅 참고자료
- 이기창, <한국어 임베딩>, 에이콘출판주식회사, 2019
- 이기창, <BERT와 GPT로 배우는 자연어처리>, 이지스퍼블리싱, 2021