자연어처리(NLP)는 크게 컴퓨터에게 자연어 텍스트 데이터를 효과적으로 이해시키기 위한 기술인 자연어이해(Natural Language Understanding, NLU) 와 문장을 자연스럽게 생성해내기 위한 기술인 자연어생성(Natural Language Generation, NLG)이라는 두가지 파트로 나뉩니다. 자연어이해(NLU)와 자연어생성(NLG)은 각 분야의 자연어처리 태스크에 단독적으로 활용되기도 하지만, 우리가 일상 생활에서 접하는 많은 인공지능을 활용한 기술에는 대부분 자연어이해와 자연어생성의 요소가 결합되어 있습니다.
1. 자연어이해(NLU)
인공지능 언어모델은 사용자의 말을 듣고 그 의도를 추론하여 사용자가 원하는 작업을 수행합니다. 예를들어 챗GPT에게 ‘시험 성적 올리기’에 대한 조언을 듣고 싶을 때, 우리는 챗GPT에게 ‘성적 올리는 법’, ‘좋은 성적을 거두려면?’, ‘시험 점수를 올리는 법’ 등 다양한 방법으로 질문할 수 있습니다.
이렇게 시험 성적을 올리고 싶다’라는 사용자의 한가지 의도를 여러가지 다른 언어로 표현할 수 있지만, 언어모델은 자연어이해(NLU)를 기술을 적용하여 사용자의 질문이 시험 성적을 올리는 방법에 관한 것임을 알아차리고 적절한 답변을 생성합니다. 이처럼 다양한 표현과 구조의 문장에 대해서 그 의미와 의도를 파악하는 것이 NLU의 주요 목적입니다.
NLU의 주요 태스크로는 다음과 같은 것들이 있습니다.
1.감정 분석(Sentiment Analysis): 문장 또는 문서에 포함된 감정이나 의견을 분류하는 태스크입니다. 예를 들어, 리뷰가 긍정적인지 부정적인지를 판단하는 것이 여기에 해당합니다.
2.개체명 인식(Named Entity Recognition, NER): 텍스트에서 특정 정보(이름, 위치, 날짜 등)를 인식하고 분류하는 태스크입니다.
3.의도 분류(Intent Classification): 사용자의 발화에서 의도를 파악하는 태스크로, 주로 챗봇이나 음성 인식 서비스에서 활용됩니다.
4.품사태깅(Part-of-Speech Tagging ,POS Tagging) : 명사와 형용사 등 단어의 품사를 분류하는 태스크입니다.
5.의미 추출(semantic extraction) : 문장에서 의미를 가지는 문장을 추출합니다.
6.구문분석(parsing) : 문장의 구조를 분석하고 관계를 파악합니다.
2. 자연어생성(NLG)
자연어생성(NLG)은 컴퓨터가 매끄럽고 자연스러운 문장을 생성해낼 수 있게 해주는 기술입니다. 예를들어 ‘시험 성적을 올리기 위한 방법으로는 다음과 같은 방법이 있습니다.’와 같이 질문에 대한 답을 보다 사람처럼 자연스럽게 생성해내기 위한 기술인 것입니다.
인공지능 언어모델이 보다 자연스러운 문장을 생성해내도록 도와주는 자연어생성 기술은 그동안 구현이 매우 힘든 것으로 알려 져왔는데, 이는 알고리즘의 한계와 학습 데이터의 부족으로 기존의 통계학 기반 언어모델 혹은 딥러닝 기반 언어모델로는 사람처럼 매끄러운 문장을 생성해내기가 어려웠기 때문입니다. 그러나 방대한 양의 사전학습 데이터를 활용한 초거대언어모델(LLM)의 등장으로 기존의 한계를 극복하고 챗GPT와 같이 사람처럼 말하는 자연어생성모델을 개발하는 것이 기능해졌습니다.
NLG의 주요 태스크로는 다음과 같은 것들이 있습니다.
1.텍스트 요약(Text Summarization): 긴 문서의 주요 내용을 짧게 요약하는 태스크입니다.
2.이미지 캡셔닝(Image Captioning): 이미지의 내용을 설명하는 문장을 생성하는 태스크입니다.
3.대화 생성(Dialogue Generation): 챗봇이나 대화형 AI를 위해 사용자의 질문이나 발화에 적절하게 반응하는 문장을 생성하는 태스크입니다.
4.텍스트 자동 완성(Text Autocomplete) : 자연어생성과 관련된 알고리즘은 다음에 올 단어를 예측하여 완성해주는 태스크입니다.
5.질의응답 생성 (question-answer generation) : 주어진 문장에 대하여 질문을 던졌을 때 이에 대한 답을 예측하여 답해주는 태스크입니다.
3. NLU와 NLG의 활용 예시
자연어처리가 활용되는 많은 기술에는 대부분 자연어이해와 자연어생성의 요소가 결합되어 있습니다. 예를 들어 우리가 일상생활에서 자주 사용하는 애플의 siri를 예로 들어봅시다. 우선 음성인식(voice recognition) 알고리즘은 사용자의 음성 데이터를 텍스트 데이터로 변환한 뒤에 siri에게 전달해 줍니다.
입력된 텍스트 데이터는 자연어이해(NLU) 알고리즘을 거쳐 siri의 핵심 언어모델 알고리즘으로 전달됩니다. 이 모든 과정을 거치고 나서야 siri는 비로소 사용자의 요청을 처리한 뒤에 그 내용을 이해합니다. 그 뒤에 siri는 자연어생성(NLG) 알고리즘을 통해 요청에 맞는 답변(텍스트 데이터)를 생성해 냅니다. Siri의 답변은 마지막으로 음성 데이터로 변환되어(Text-to-Speech, TTS) 음성으로 된 출력 값(output)으로 출력됩니다.