검색창 열기
R&Dism> 슬기로운 기술 생활
우리말을 컴퓨터 언어로 번역하는 일,
‘자연어 처리’
김형자 과학 칼럼니스트

세상에는 두 종류의 언어가 있습니다. 하나는 의사소통을 위해 인간이 일상적으로 쓰는 언어인 자연어이고, 또 하나는 인간이 컴퓨터를 편하게 조작하기 위해 만들어낸 프로그래밍 언어인 인공어입니다.
요즘 폭발적으로 사용되는 인공지능AI의 핵심 기능 중 하나가 ‘자연어 처리’ 기술입니다. 자연어 처리는 어떤 원리로, 어떤 분야에, 어떻게 쓰이는지 알아보겠습니다.

컴퓨터가 사람 언어를 이해하게 하는 기술
지금 우리의 삶은 인공지능AI과 접목해 있습니다. 특히 생성형 AI인 챗GPT 기술이 대중화되면서 챗GPT를 활용한 기업들이 크게 주목받고 있습니다. 챗GPT는 대표적인 대화형 AI로, 사람의 언어인 자연어 처리NLP, Natural Language Processing 기술을 통해 사람이 질문하면 그 내용을 이해하고 자동으로 답을 제공합니다.

NLP는 인간의 언어를 올바르게 이해하고 해석하는 능력을 가질 수 있도록 컴퓨터에 부여하는 머신러닝(기계학습) 기술을 말합니다. 즉 우리가 일상생활에서 사용하는 언어가 자연어이고, 이러한 자연어의 의미를 분석해서 컴퓨터가 처리할 수 있도록 만들어주는 역할이 바로 NLP입니다. 인류가 어떤 계기로 언어를 쓰기 시작했는지는 명확하지 않지만, 그 언어가 자연적으로 발생했다고 해서 자연어라고 부릅니다. 우리가 알고 있는 거의 모든 언어, 이를테면 한국어·영어·독일어·프랑스어 등이 자연어 범주에 속합니다.

이와 반대로 ‘프로그래밍 언어’는 인공어입니다. 컴퓨터에서 코딩에 사용하는 언어가 바로 그것입니다. 컴퓨터 언어도 자연어와 유사한 부분이 많지만, 여전히 컴퓨터가 이해할 수 없는 방식으로 명령어를 입력해야 하는 한계가 있습니다.

NLP는 자연어 이해, 자연어 분석, 자연어 생성, 오타 검열 등의 기술이 적용됩니다. ‘자연어 이해’는 컴퓨터가 주어진 입력에 따라 인간처럼 언어의 문맥적 의미를 파악하도록 훈련하는 것입니다. 사용자의 감정과 의도를 해석하는 것이죠. 이는 키워드나 기본 패턴을 식별하는 것보다 훨씬 더 복잡합니다.

‘자연어 분석’은 문법에 따라 자연어를 쪼개는 것입니다. 크게 ‘형태소’, ‘구문’, ‘문장’의 과정을 거칩니다. 먼저 우리는 언어를 배울 때 하나의 문장을 명사와 동사, 형용사 같은 품사들로 분해하며 이해하는데, 이 과정이 ‘형태소 분석’입니다. 정확하게 말하면 분해할 때 품사에만 국한하지 않고, 언어에서 의미를 갖는 최소 단위(형태소)까지 분해하는 것입니다. 예를 들어 ‘빵을 먹는 아이’라는 문장이 입력되면 명사(빵), 조사(을), 동사(먹), 어미(는), 명사(아이)로 아주 작은 단위까지 분리합니다.

‘구문 분석’은 조각난 단어들 간의 관계를 찾는 과정입니다. 산산조각 난 단어들 중에서 어디서 어디까지가 주어이고 술어인지, 명사구이고 동사구인지, 단어들 간의 관계를 분석해 문장의 구조를 찾아내는 것입니다. 가령 ‘Time flies like an arrow’라는 문장을 구문 분석할 경우 flies를 명사 또는 동사로 분석하는지, like를 동사 또는 전치사로 분석하는지에 따라 분석 결과가 확연히 달라집니다.

‘문장 분석’은 문장의 뜻을 파악하는 작업입니다. 문법적으로는 맞지만 의미가 잘못된 문장을 파악하는 것입니다. 마지막으로 ‘자연어 생성’은 동영상이나 표의 내용 등을 사람이 이해할 수 있는 자연어로 변환하는 것입니다. 사람이야 아주 오랜 경험을 통해 이러한 규칙을 습득하고 자연스럽게 분석했다지만, 컴퓨터는 언제부터 이런 능력이 가능해졌을까요?
딥러닝이 더 자연스러운 NLP 만들어내
NLP는 생각보다 오랜 역사를 지녔습니다. 지금으로부터 약 80년 전인 1946년, 미국 과학자 워런 웨이버Warren Weaver가 제2차 세계대전 때 적군의 암호문을 번역해 정보를 알아내기 위한 용도로 기계번역MT, Machine Translation이라는 기술을 개발했습니다.

1950년대에는 기계번역이 암호문 분석뿐 아니라 언어 번역에도 확장돼 연구되기 시작했고, 1970년부터는 자연어 생성에 관한 연구가 진행됐습니다. 하지만 당시에는 사람이 구체적인 문법 규칙을 하나하나 입력하면 기계가 그것을 따라 하는 수준에 불과했습니다.

그러다 1990년 이후 대용량의 대화 데이터를 이용한 통계적 자연어 기법이 발전했습니다. 대화 데이터로부터 통계적 규칙을 찾아내고, 이를 기계가 받아들이는 것입니다. 사람의 언어를 컴퓨터가 이해하게 하는 연구는 이처럼 오래전부터 해왔지만, 모든 AI 분야가 그렇듯 하드웨어 성능의 제한, 정제된 데이터 부족 등 여러 이유로 연구에 많은 어려움을 겪었습니다.

그런데 최근 기계학습의 등장으로 NLP 기술이 빠르게 발전했습니다. 기계학습이 고도화되면서 컴퓨터가 더 많은 양의 데이터를 학습해 점차 규칙을 정교하게 파악하게 된 것입니다. 기계학습은 주어진 데이터로 자연어에 필요한 규칙 또는 알고리즘을 만들어내는 기술입니다. 알고리즘은 시스템 동작을 위한 규칙이나 공정도로 정의할 수 있습니다. 따라서 NLP 알고리즘은 컴퓨터가 인간의 언어를 입력받아 이를 이해하고 분석해 최적의 결과값을 찾아내는 과정을 반복하는 프로그램인 셈입니다.

기계학습을 통한 언어 데이터 분석은 NLP 성능의 핵심입니다. 수많은 알고리즘 중 기계학습을 실현할 수 있는 하나가 딥러닝Deep Learning 알고리즘입니다. 인공신경망 학습을 진행할 때 레이어Layer(층)를 많이 쌓아 학습하면 딥Deep한 형태가 됩니다.

거대 언어 모델LLM인 챗GPT도 NLP 딥러닝을 기반으로 만들어진 챗봇입니다. 그래서 인간과 대화가 가능합니다. 챗GPT는 빅데이터로 ‘깊이 있게 학습(딥러닝)’해 인간의 언어를 이해하고 문장 능력을 스스로 키웁니다. 컴퓨터에게 사람처럼 텍스트를 이해시키는 것이 아닌, 글자 언어Written Language에 대한 통계적 구조를 만들어 처리하는 것입니다.
s6_1_1.jpg
기계번역 기술을 개발한 미국 과학자 워런 웨이버.
s6_1_2.jpg
대표적인 LLM인 챗GPT도 NLP 딥러닝을 기반으로 만들어진 챗봇이다.
메타학습이 어휘 구성 능력 높여
그럼 현재 NLP 수준은 어디까지 와 있는 것일까요? 최근 미국 뉴욕대 심리학과 브렌든 레이크Brenden Lake 교수와 스페인 폼페우파브라대 언어학과 마르코 바로니Marco Baroni 교수 연구팀은 챗GPT를 뛰어넘은 사고능력을 AI에 구현했습니다. 메타학습Meta-learning을 통해 인간처럼 체계적으로 사고할 수 있는 인공신경망을 개발한 것입니다.

메타학습은 인간의 사고방식을 모방한 학습법으로, 데이터를 학습하는 알고리즘을 스스로 개선하도록 훈련하는 기술입니다. 한 단어를 주고 이 단어를 체계적으로 사용하도록 제시해 학습하는 법을 학습합니다. AI가 새로 학습한 단어를 기존에 배운 다른 어휘와 접목하고, 이를 통해 새로운 맥락으로 지식을 확장하는 것입니다.

예를 들어 ‘먹다’라는 단어를 학습하면, ‘밥을 먹다’라는 상황을 제시하고 ‘식탁에서 밥을 먹다’라고 차례로 문장을 만들면서 단어의 의미를 이해합니다. ‘줄넘기하다skip’라는 단어를 새로 학습하면 기존에 알고 있던 ‘두 번 뛰다jump twice’와 결합해 ‘두 번 줄넘기하다skip twice’라는 문장의 의미를 이해합니다. 또 ‘발끝으로 걷다’라는 단어를 새로 배운 후 ‘발끝으로 뒷걸음쳐 교통 콘 주변을 돈다’라는 새로운 단어 조합을 도출해내는 식입니다.
s6_1_3.jpg
AI는 계속 변하는 단어 과제들을 통해 여러 방식으로 단어를 조합해
인간처럼 응용력을 갖게 되었다.
이는 AI가 문장에서 다음에 나올 단어의 확률을 구해 단어・문장・문단에 적용한 패턴들을 인식하면서 스스로 사고하는 능력에 한 걸음 더 다가서는 것입니다. 따라서 컴퓨터 프로그래밍을 말하는 코딩과 NLP는 동일한 개념이 아닙니다.

매번 다른 단어가 등장하는 이런 방식으로 훈련 과정을 반복해 데이터를 쌓아나가기 때문에 AI의 어휘 구성 능력은 빠르게 향상됩니다. 이렇게 새로운 단어를 학습할 때 인간처럼 기존 개념과 결합해 사고하는 것을 ‘체계적 일반화Systematic Generalization’라고 합니다. 체계적 일반화는 쉽게 말해 ‘응용력’을 의미합니다. 분리되어 있는 개념을 조합해 새로운 것을 학습하는 기법입니다. 계속 변하는 단어 과제들을 통해 여러 방식으로 단어를 조합해내 마침내 인간처럼 응용력을 갖게 된 것입니다.
언어의 다의성, 비정형 데이터 등이 NLP 어렵게 만들어
s6_1_4.jpg
그러나 컴퓨터에 NLP 기술을 적용하는 것은 생각보다 어렵습니다. 인간이 소통하는 언어에는 단어 자체의 의미 말고도 상황과 맥락이 존재해 복잡하기 때문입니다. 맥락・감정・상황에 따라 같은 단어를 다르게 사용하고, 다양한 상황 속에서 문장이 전혀 다른 의미로 해석되기도 합니다. 예를 들어 ‘사과’라는 단어는 과일의 이름일 수도 있고, 자기 잘못을 인정하고 용서를 비는 의미일 수도 있습니다. “지금 밥이 입에 들어가니?”라고 말했다면, 밥이 정말로 입에 들어가고 있는지 묻는 것은 아니겠죠?

이처럼 단순히 단어만으로는 컴퓨터가 상황과 맥락을 판단하기 어렵습니다. 따라서 NLP 시스템은 문맥을 파악하고 해석하는 능력이 필수적입니다. 사람들은 어순이 바뀌거나 문법적으로 정확하지 않은 문장일지라도 의사소통이 가능하지만 컴퓨터는 그렇지 않습니다. 이러한 언어의 다의성이 NLP를 어렵게 만듭니다.

또 인터넷과 SNSSocial Network Service의 보급으로 비표준적 언어나 비정형 데이터를 사용하는 것도 NLP를 어렵게 하는 데 한몫합니다. 전문가들은 빅데이터 중 90%가량이 구조화되지 않은 비정형 데이터라고 말합니다. 음성 녹음 파일, 줄임말, 이모티콘, 신조어 등은 비정형 데이터의 형태입니다. 이는 전통적인 언어 규칙을 따르지 않기 때문에 딥러닝 기술을 활용해 복잡한 상황 속 인간의 언어 처리 방식을 흉내 내도록 데이터를 학습시키고 있는 것입니다. 하지만 여전히 자연어 자체를 컴퓨터가 정확하게 이해하고 있지는 않은 상황입니다.
다양한 분야에서 활용되는 NLP
그렇다면 NLP 기술은 어떻게 쓰이고 있을까요? NLP는 다양한 분야에서 응용되고 있습니다. 오늘날 NLP 기술이 가장 일반적으로 사용되는 것은 집이나 스마트폰에 있는 스마트 비서입니다. AI를 사용한 자연어 기반의 음성인식 스피커가 그것으로, 사용자의 음성과 명령어를 이해한 후 실시간으로 답합니다. 이는 키오스크처럼 버튼을 눌러 작업을 명령하는 방식에서 벗어나 기계와 인간이 직접 대화하게 만듭니다.

맞춤법 검사도 NLP를 활용한 것입니다. 사용자가 ‘아래한글HWP’ 같은 프로그램에 문장을 입력하면 사전에 있는 올바른 단어와 대조하여 어떤 단어가 잘못되었는지, 올바른 단어 사용법은 무엇인지 등을 제안해 수정해줍니다.

기계번역 또한 NLP의 사례입니다. 구글 번역, 네이버의 파파고, 카카오의 i 등 다양한 번역 서비스가 등장하면서 실시간으로 번역을 실행할 수 있게 되었습니다. 아직 완벽하진 않지만 자연스러운 번역 기술은 계속해서 발전할 전망입니다.

인간의 감정 분석, 텍스트 분류 작업(스팸 메일 분류, 뉴스 기사 카테고리 분류), 자동 Q&A 시스템, 챗봇과 같은 서비스에도 NLP가 사용되고 있습니다. 텍스트 요약은 상대적으로 큰 원문을 핵심 내용만 간추려서 상대적으로 작은 요약문으로 변환하는 것을 말합니다. 글을 읽고 이해하는 시간을 단축해준다는 점에서 여러 분야에 필요한 기술입니다. 

NLP는 의료 분야에서도 활발하게 쓰이고 있습니다. 건강 데이터는 보통 텍스트 형식인 의사 노트, 임상시험 보고서, 환자 의료 기록이 대부분입니다. NLP는 종이 의료 기록을 디지털화하는 과정을 가속화할 뿐 아니라 디지털화된 건강 기록을 통해 빠르게 질병의 인식과 진단을 할 수 있고, 다른 의사와도 환자의 기록을 빠르게 공유할 수 있습니다.

NLP 기술은 이렇게 쓰임새를 계속 확장하며 우리의 삶에 많은 변화를 가져올 것입니다. 미래에는 인간과 컴퓨터 간의 자연스러운 대화로 인간의 숨은 의도까지 파악해 때로는 친구처럼, 때로는 가족처럼 함께 울고 웃으며 지내지 않을까요.
s6_1_5.jpg
구글 번역, 네이버의 파파고 등 기계번역은 NLP의 또 다른 사례다.
s6_1_6.jpg
김형자 과학 칼럼니스트
청소년 과학 잡지 <Newton> 편집장을 지냈으며, 현재 과학 칼럼니스트와 저술가로 활동 중이다.
저서로는 <구멍에서 발견한 과학>, <먹는 과학책> 등이 있다.
 이번 호 PDF 다운로드