1. 자연어 처리 개요

(1) 자연어 처리의 의미

**자연어(Natural Language)**란 우리가 일상에서 사용하고 있는 언어를 이야기합니다. 이런 자연어를 컴퓨터가 특정 업무를 처리하기 위해 인지하여 가공하는 작업을 **자연어 처리(NLP, Natural Language Processing)**라고 합니다.

자연어라는 단어를 처음 들었을 때는 제가 기존에 알고 지냈던 언어의 개념과 동떨어져 있다고 생각했습니다. 하지만 현재 제가 자연어 처리를 소개하는 글을 쓰는 자체도 자연어를 사용하고 있고, 언제 어디서나 누군가와 ‘자연’스럽게 소통할 수 있는 매개체가 자연어이기 때문에 그 의미를 빠르게 이해할 수 있었습니다.

(2) 자연어 처리 사례

자연어 처리가 적용된 프로그램은 생각보다 널리 알려져있습니다. 우선 ChatGPT가 자연어 처리 프로그램 중 가장 화두가 되고 있는 녀석이죠. 그리고 우리가 다른 언어를 번역해서 이해하고자 할 때 번역기(‘구글 번역’, ‘Papago’)를 사용합니다. 또한 일부 사물 인터넷이나 스마트폰에 탑재된 스마트 어시스턴트(’Siri’, ‘삼성 빅스비’, ‘아마존 알렉사’)가 있습니다. 자연어 처리 분야는 프로그램으로 출시되는 것 말고도 사람들의 데이터들을 다양한 방식으로 수집해서 더 나은 의사결정을 위한 정보 제공에 활용됩니다. 유튜브에서 여러분이 즐겨 보는 영상과 연관성이 높은 영상들을 추천 해주거나 네이버, 구글과 같은 포털 사이트에서 여러분이 찾고자 하는 정보, 찾아야 하는 정보들의 키워드를 핵심으로 검색 추천이나 관련 광고들을 띄워줍니다. 그밖에도 여러가지 사례가 수두룩합니다. 이 중에서 3가지 자연어 처리 사례들을 가지고 각 사례의 적용 기능을 나열해봤습니다. 참고로 유튜브의 ‘메타코드M’ 채널에 게시된 ‘딥러닝을 이용한 자연어처리 입문 7시간 완성’ 강의를 통해 정리한 것입니다.


2. 자연어 처리 전체 과정

자연어 처리 분야는 초기에는 통계 기반의 언어 모델을 활용해서 특정 업무에 맞게 처리하곤 했습니다. 그러나 일부 업무를 처리하는 프로그램에선 실제값과 다른 결과값이 도출되는 문제가 있었습니다. 그러자 하드웨어의 발전과 함께 딥러닝이 화두가 되면서 딥러닝 기반의 언어 모델이 등장했고 이는 더 높은 정확도로 결과를 출력할 수 있게 됐습니다. 저는 이 글을 시작으로 딥러닝 기반의 언어 모델을 중심으로 자연어 처리의 순차적인 과정을 설명하겠습니다.

<aside> ✅ 데이터셋 준비 ⇒ 데이터 전처리 ⇒ 모델 학습 ⇒ 모델 평가 ⇒ 예측(테스트)

</aside>

참고로 해당 과정은 머신러닝 전체의 공통 학습 과정입니다. 딥러닝 기법은 머신러닝의 부분집합이므로 머신러닝 과정을 따를 수밖에 없습니다.


3. 데이터셋 준비

모델을 학습시키기 위한 재료들이 필요합니다. 그 재료들은 바로 데이터입니다. 머신러닝 학습에선 방대한 데이터들이 있어야 더 높은 정확도를 가진 모델이 완성됩니다. 이 방대한 데이터를 데이터셋(Data Set), 혹은 말뭉치(Corpus)라고 부르죠. 한국어 자연어 처리를 위한 데이터셋 오픈소스들이 다양하게 개방되어 있습니다. 대표적으로 국립국어원에서 지원하는 ‘모두의 말뭉치’가 있습니다.