NLP, 자연어 처리 란 무엇인가?
Natural Language Processing을 의미하는 NLP(자연어 처리)는 자연어 텍스트 혹은 음성으로 데이터를 상호 연결하는 것으로, 언어 입력(language in)이라고 말하기도 합니다.
즉, NLP는 인간의 언어를 해석 및 조작하고 이해하는 능력을 컴퓨터에 부여하는 머신러닝 기술입니다. 0과 1로만 이루어진 인공지능의 세계에 ‘자연어’라는 개념을 학습시키는 셈이죠. NLP는 컴퓨터 과학, 인공지능, 언어학 영역의 교집합입니다.
간단하게 말하자면 컴퓨터와 사람의 언어 사이의 상호작용에 관해 연구하는 분야입니다. 컴퓨터가 이용자와의 대화 속에서 의도를 찾아내고 다양한 형태의 데이터로부터 정확한 정보를 제공하는 것을 목적으로 합니다. 이를 통해 특히 ChatGPT와 같은 챗봇이 눈부신 성과를 거둘 수 있었습니다.
NLP, 자연어 처리 의 원리
NLP 알고리즘은 컴퓨터가 인간의 언어를 입력 받아 이해 및 분석하고, 최적의 결과를 찾아내는 과정을 반복합니다. 예를 들어 비정형 데이터 형식으로 들어오는 음성이나 텍스트 데이터의 입력값을 처리하는 챗봇의 기본적인 방식을 표현하면 아래와 같습니다.
쉽게 말하자면 비정형 데이터 형식으로 들어온 음성이나 텍스트 데이터의 입력값을 분석하고, 이를 토대로 결과를 출력하는 것입니다. 여기서 NLP 알고리즘이 해당 대화를 분석하는 과정을 ‘자연어 이해’라고 합니다. 다음으로 분석 과정을 거친 후 결과를 도출하는 것은 ‘자연어 생성(NLG)’이라고 설명할 수 있습니다.
NLP의 텍스트 전처리 과정
컴퓨터가 비정형 텍스트를 인식하기 위해서는 몇 가지 전처리 과정이 필요합니다. 이는 NLP 알고리즘의 정확도 향상을 위해 매우 중요한 일입니다.

1. 토큰화(Tokenization)
- 문장 혹은 말뭉치(Corpus)에서 최소 의미 단위인 토큰으로 분할
- 컴퓨터가 인식하도록 하는 방법
- 영문은 일반적으로 띄어쓰기 기준으로, 한글은 주로 단어 안의 형태소를 기준으로 나눔
2. 품사 태깅(POS Tagging, Part of speech tagging)
- 형태소의 품사를 태깅
3. 표제어 추출 (Lemmatization)
- 단어들로부터 표제어(사전어)를 찾는 기법
4. 어간 추출 (Stemming)
- 단어에서 접두사 및 접미사를 제거하여 어간을 획득
5. 불용어(Stop Word) 처리
- 조사, 접미사 등 실제 의미 분석에 거의 기여하지 않는 단어를 처리
NLP, Natural Language Processing 와 딥 러닝
NLP는 언어학과 인공지능을 모두 활용하는 분야로, 1950년대 디지털 컴퓨터가 발명된 직후부터 NLP에 대한 연구가 시작되었습니다. NLP 연구에 뛰어난 진척을 보인 것은 머신러닝이 발전한 직후부터였습니다.

순환 신경망(RNN), 컨볼루션 신경망(CNN) 등의 모델은 딥 러닝 기술을 활용하여 인간의 언어를 처리하고 이해합니다. 딥 러닝을 통해 NLP 모델은 텍스트 데이터의 복잡한 패턴이나 계층 구조, 표현을 학습합니다. 이를 이용해 언어 이해, 생성, 번역 및 감정 분석과 같은 작업을 수행할 수 있는 것이죠.
NLP 모델은 복잡한 언어 구조와 의미론적 관계를 캡쳐할 수 있는 딥 러닝 아키텍처의 확장성과 표현력을 활용하고 있습니다. 딥 러닝과 NLP 기술을 결합함으로써 자연어 처리는 상당한 발전을 이룰 수 있었습니다. 이를 토대로 아래에서 후술할 다양한 응용 프로그램의 가능성을 열었죠.
👉 인간의 말을 알아듣는 AI 챗봇에 대해서
NLP Use Cases & 한국형 챗봇 사례
일상 속의 자연어 처리
일상 생활 속에서도 NLP 기술이 사용되고 있습니다.

이메일 필터
- 스팸 메시지임을 암시하는 특정 단어나 구절을 찾아내는 스팸 필터
- Gmail은 이메일의 콘텐츠에 따라 세 가지 분류 (기본, 소셜, 프로모션)
스마트 어시스턴트
- Apple의 Siri, Amazon의 Alexa, Samsung의 빅스비
- 질문을 알아듣고, 상황과 관련된 응답을 생성
- 사용자에 관해 더 많은 것을 알게 되면 더욱 개개인에 맞춘 상호작용이 가능해짐
검색 엔진 최적화
- 사용자의 의도를 기반으로 검색 결과를 도출
- 정확한 검색어보다는 사용자의 검색 의도를 인식
- NLP를 통해 모호한 질의를 분석하여 관련성 있는 개체와 연결
텍스트 자동 완성
- 사용자의 의도를 예측하여 단어를 완성하거나 관련 단어를 제시
- 사용할수록 사용자의 특이한 언어 습관에 맞춰지는 특징
번역
- NLP를 사용한 온라인 번역기는 언어를 더 정확하게 번역하고, 문법 오류를 최소화
- 다른 언어에서 모국어로 번역할 때, 번역기에 입력한 텍스트를 어떤 언어인지 인식할 수 있음
SaaS와 NLP
AI와 머신러닝을 활용하면 SaaS 솔루션의 성능과 기능, 보안을 강화할 수 있습니다. SaaS는 클라우드 기반 솔루션을 위한 인프라와 모델을 제공하고, AI는 데이터 분석, 예측 및 작업 자동화 기능을 제공합니다. 특히 챗봇은 SaaS 고객 서비스에 많은 이점을 제공하는 비즈니스 모델입니다. 인바운드 쿼리에 대한 빠르고 일관된 응답을 제공할 수 있다는 특징이 있죠.
가장 널리 사용되는 NLP 툴은 NLTK, Gensim, Stanford NLP, SpaCy, OpenNLP 등이 있습니다. 이런 모델을 활용하면 SaaS 플랫폼 안에 NLP 기능을 통합할 수 있습니다. 예를 들어, SpaCy는 사전 훈련을 받아 텍스트 데이터 분석에 사용할 수 있는 모델입니다. SpaCy가 텍스트를 토큰화하여 개체를 생성하면, 처리 파이프라인 안에서 여러 단계를 거쳐 처리됩니다. 데이터 분석 과정을 거쳐, Visual Builder 구성 요소를 사용하면 NLP 분석 결과를 표시하는 SaaS 플랫폼을 구축할 수 있습니다.
도입, 적용 사례
그 외에도 NLP는 광범위한 비즈니스 프로세스 중에서도 이메일이나 설문조사 등 대량의 비정형 텍스트를 포함하는 프로세스를 단순화하고 자동화하는 역할을 합니다. 기업은 NLP를 통해 대규모의 데이터를 잘 분석하고 활용하여 올바른 결정을 내릴 수 있습니다.
- 대용량 문서 처리, 분석 및 보관
- 고객 피드백 또는 콜센터 녹음 분석 (Speech recognition)
- 자동화된 고객 서비스를 위한 챗봇 실행
- 누가, 무엇을, 언제, 어디서 - 정형화된 질문에 응답
- 텍스트 분류 및 추출 (Text classification)
버라이존의 BSA(Business Service Assurance) 그룹은 자연어 처리와 딥 러닝을 사용하여 고객 요청 댓글을 자동화하고 있습니다. 이들은 매월 10만 건 이상의 요청을 받는데, 자동화 툴을 개발하기 전까지는 개별적으로 모든 요청을 읽고 조치를 취해야만 했습니다. 하지만 버라이존의 IT 그룹인 GTS가 AIEDWSA(AI-Enabled Digital Worker for Service Assurance)는 수리 티켓을 읽고 판독할 수 있을 뿐만 아니라, 기존 티켓 상태에 대한 보고나 진행 상황 추적 등의 기능도 구축했습니다.

Spiky는 영업 통화, 교육 및 코칭 세션을 개선하기 위해 인공지능 기반 분석 도구를 개발하는 미국의 스타트업입니다. Spiky의 자동화된 코칭 플랫폼은 회의 비디오 녹화를 사용해서 참여 지표를 생성합니다. 비디오 콘텐츠 속에서 컨텍스트 및 행동 기반 분석을 생성하고, 음성 및 비언어적 소스에서 다양한 커뮤니케이션 및 콘텐츠 관련 메트릭을 제공하죠. 이러한 방식으로 플랫폼은 영업 팀의 성과 고객 참여 기술을 향상하는 것을 목표로 합니다. 이런 종류의 감정 분석 모델은 NLP 모델이 사람의 ‘의도’를 잘 읽어낼 수 있을 때, 지금보다 더 고도의 성능을 발휘할 수 있을 것입니다.
한편, 의료는 인류의 건강과 직결되는 문제이므로 정확성과 효율성이 중시되는 분야입니다. 기존에 환자는 전자 건강 기록(EHR)을 통해 의사에게 자신의 상태를 전했습니다. 그런데 이 과정에서 누락되거나 증상의 정도가 제대로 전달되지 않는 문제가 있었습니다. 이에 펜실베니아의 Well Span Health는 환자와 의사 사이의 상호작용을 지시하는 음성 기반 도구를 구축했습니다. 환자는 모국어로 상호 작용할 수 있는 의료 포털을 얻을 수 있는 것이죠. 이를 통해 의사는 환자의 정확한 상태를 전달 받아 인적 오류의 가능성을 줄일 수 있으며, 환자는 자신의 건강 상태를 이해하기 쉬워졌죠.
거대 언어 모델, LLM 과 NLP
거대 언어 모델(LLM)이란, 파라미터의 수가 Billion 단위인 자연어 처리가 가능한 generative ai 모델을 의미합니다. GPT-3.5 아키텍처를 기반으로 하는 ChatGPT와 같은 챗봇은 NLP 기술 발전의 산물입니다. ChatGPT는 일관되고 문맥적으로 관련 있는 텍스트를 생성하여 인상적이고 창의적인 스토리텔링과 개인화된 응답을 제공합니다.
방대한 양의 데이터에 대한 광범위한 학습을 선행한 결과입니다. 이를 통해 언어의 복잡한 패턴, 구문 구조 및 의미 관계를 캡쳐해왔죠. NLP 기술이 발전함에 따라, 광범위한 학습 데이터에 대해서도 ‘의도’를 찾아낼 수 있다는 점이 눈에 띕니다. 이는 아래에서 서술할 한국형 챗봇 성공에도 중요한 체크포인트가 되었습니다.
한국형 챗봇

2021년 네이버가 공개한 초거대 AI 하이퍼클로바는 2,040억 개의 매개 변수를 가지고 있습니다. 이 모델은 GPT-3보다 한국어 데이터를 6,500배 이상 학습했다고 하죠. 게다가 한국어 비중이 97%인 데이터를 학습하여 세계에서 가장 큰 한국어 거대 언어 모델을 구축했습니다.
또한 카카오가 제작한 KoGPT API는 이용자가 입력한 한국어를 사전적, 문맥적으로 이해하고 이용자 의도에 적합한 문장을 생성합니다. 맥락과 의도에 따라 문장을 만드는 기능 덕분에, 상품 소개글이나 감정 분석 등으로 활용할 수 있습니다.
하지만 한국어 NLP 사례가 모두 성공적이었던 것은 아닙니다. ‘나의 첫 AI 친구’라는 컨셉으로 시작한 이루다는 결국 2021년 1월, 논란 끝에 서비스 중단을 선포한 뒤 말뭉치 데이터베이스는 폐기되었죠. 이루다는 말뭉치 데이터에서 대화의 키워드와 관련성이 있는 문장을 골라 채팅창에 올리는 방식이었습니다. 따라서 앞뒤 맥락에 맞지 않는 대화가 상당히 많아, 의도 파악의 능력을 갖춘 NLP 챗봇이라 보기에는 어려웠습니다.
게다가 사용자의 악의적인 어뷰징에 대응할 준비가 거의 되어있지 않은 상황이었습니다. 이루다는 1억 개의 말뭉치 데이터를 통해 학습했지만, 그 안에서 개인정보나 민감한 대화 내용까지 미처 다 가공하지 못했던 것이죠.
자연어 처리, NLP 한계와 극복 방법
한계
이루다가 실패했을 때, 모델 성능의 문제는 차치하더라도 학습한 말뭉치 데이터를 정제하는 과정이 미흡했다는 지적이 많습니다.
왜 한국어 말뭉치 데이터 정제 과정이 까다로울까요? NLP 알고리즘을 수행하기 위해서는 반드시 텍스트 전처리 과정이 필요합니다. 이 중 토큰화는 문장 및 말뭉치에서 최소 의미 단위인 토큰으로 분할하는 과정입니다. 한글은 주로 단어 안의 형태소를 기준으로 나눕니다. 이 과정에서 타 언어 대비 Token이 많이 소비됩니다. 따라서 비용 및 리소스에서 영어보다 다소 불리한 위치에 있습니다.
Token은 오랫동안 한국형 거대 언어 모델 개발의 장벽이 되어왔습니다. 수많은 이루다들이 도전했지만 이를 극복하지 못했었죠. 그럼에도 불구하고, 구글에서 서비스 출시한 Bard는 한국어를 1차로 서비스하면서 상황이 달라지고 있습니다.
한계를 극복하는 방법
데이터헌트에서도 한국어 NLP 사업에 참여한 적이 있습니다. O2O 가사 서비스앱 대리주부는 서비스 공급 품질의 평준화를 위해 사용자 의도가 표현된 자연어 데이터를 활용하는 방법을 추진했죠.

데이터헌트는 먼저 고객 리뷰 데이터와 예약 요청 사항, 상담톡 내역, 가사도우미의 소개말이나 인사말 등의 텍스트 데이터를 정제하는 작업을 시작했습니다. 다만 방대한 양의 자연어 데이터 특성상, 의도 파악에 불필요한 내용이나 오타가 다수 포함될 가능성이 있었습니다.
따라서 맞춤법 API 전처리 및 데이터 가공 과정을 거쳐, 사용자의 요청에 대한 레이블을 수정하는 작업을 진행했습니다. 레이블 분석을 통해 유저 성향을 도출하는 것으로 공급자와 사용자의 핏을 맞출 수 있었죠. 방대한 자연어 데이터 속에서 사용자의 의도를 찾아내는 작업을 선행한 것이 성공의 중요한 발판이었습니다.
NLP의 완성도는 학습한 데이터의 품질에 따라 달라집니다. 고객 서비스를 위한 챗봇이 주요 비즈니스로 주목 받는 시점에서, 잘 만들어진 한국형 챗봇은 시장에서 단숨에 우위를 점할 수 있는 돌파구가 될 지도 모릅니다.
데이터헌트의 노하우
“한국말은 끝까지 들어야 한다”는 속담이 있습니다. 이는 일반적으로, 한국어의 진짜 의도는 말 끝에 존재하기 때문입니다. 이러한 맥락을 잘 활용하고 이해하기 위해서는 Text 데이터 가공 시 NER, Text analysis의 정확도가 중요합니다. 대리주부의 챗봇과 매칭 성능을 향상시키기 위해 데이터헌트가 NER(Named Entity Recognition:개체명 인식)을 수행한 이유도 이와 같습니다.
즉, 데이터헌트는 NLP의 핵심을 의도와 맥락 분석에 있다고 생각합니다. 따라서 모든 작업을 AI로 완결하는 것이 아니라 사람의 손을 한 번 더 거치는 멀티모달 형식을 취합니다. AI를 통해 데이터 세트나 말뭉치 속에 의도와 맥락을 파악한 뒤, 전문 인력의 Tagging 작업을 통해 완결성을 갖추고 정확도를 향상합니다. 데이터헌트가 이렇게 HITL(Human In the loop) 방식을 고집하는 이유는 오직 정확도 향상에 초점을 두고 있기 때문입니다.
데이터헌트는 NLP 모델의 성능 향상 면에서 다양한 경험을 보유하고 있습니다. 또한 실무 인력들의 Case study를 토대로 끊임없이 연구를 진행하고 있죠. 데이터헌트의 올바른 신념과 고집은 정확도가 생명인 데이터 가공 작업에서 가장 빛을 발합니다.
요약
- NLP 란, 컴퓨터와 사람의 언어 사이의 상호작용에 관해 연구하는 분야입니다.
- 컴퓨터가 비정형 텍스트를 인식하기 위해서는 토큰화, 품사 태깅, 표제어 추출, 어간 추출, 불용어 처리 등의 과정을 거칩니다. 다만, 한국어는 타 언어 대비 Token이 많이 소모되어 불리한 위치에 있습니다.
- NLP 모델이 자연어를 더 잘 이해하고 정확한 응답을 생성하기 위해서는 학습한 데이터의 품질이 중요합니다. 이를 위해 텍스트 데이터 가공 시 NER, Text analysis 등의 기술을 활용할 수 있습니다.