자연어 처리 알아보기
학습 목표
이 유닛을 완료하면 다음을 수행할 수 있습니다.
- 자연어 처리에 대해 설명할 수 있습니다.
- 자연어 처리의 일상적인 용도를 파악할 수 있습니다.
- 1950년대를 시작으로 자연어 처리가 발전해 온 과정을 설명할 수 있습니다.
- 자연어 처리, 자연어 이해, 자연어 생성의 차이를 구분할 수 있습니다.
시작하기 전에
이 뱃지에는 인공 지능 기초 및 생성형 AI 기초 뱃지에 자세히 설명된 신경망 및 딥러닝과 같은 용어가 포함되어 있습니다. 해당 뱃지를 먼저 획득하는 것이 좋습니다.
자연어 처리란 무엇일까요?
자연어 처리는 컴퓨터 과학과 언어학을 결합하여 컴퓨터가 인간에게 의미 있고 유용한 방식으로 인간의 언어를 이해하고 해석하며 생성할 수 있는 능력을 제공하는 인공 지능(AI) 분야 중 하나입니다.
NLP를 사용하면 컴퓨터가 문장의 의미 이해, 텍스트의 중요한 세부 사항 인식, 언어 번역, 질문에 대한 답변, 텍스트 요약, 사람의 반응과 유사한 응답 생성 등의 유용한 작업을 수행할 수 있습니다.
NLP 기술은 이미 우리의 일상에 매우 보편적으로 활용되고 있습니다. 따라서, 대부분의 경우 우리는 인식할 수도 없을 정도로 자연스럽게 자연어 처리 기술과 상호 작용하고 자연어 처리 기술의 도움을 받곤 합니다. 예를 들어, 이메일이나 문서 작성 앱에서 다음에 사용할 단어 또는 문구를 자동으로 제안하는 경우가 있습니다. Siri와 같은 가상 어시스턴트에게 화요일에 화분에 물을 주어야 한다는 사실을 알려 달라고 요청할 수도 있습니다. 또는 딸의 과학 과제를 도와주기 위해 Alexa에게 최근 칠레에서 발생한 대지진에 대한 세부 정보를 알려달라고 요청할 수도 있습니다.
NLP 기술은 회사 고객 서비스에 문의할 때 사용하는 챗봇에도, 다른 나라에서 음식을 주문할 때 사용하는 번역 앱에도 사용됩니다. 스팸 탐지, 즐겨 보는 온라인 뉴스 설정 등 다양한 서비스에 NLP가 활용되고 있습니다.
NLP의 간략한 역사
NLP는 새로운 기술이 아니라는 점을 짚고 넘어갈 필요가 있습니다. 사실 NLP의 뿌리는 1950년대에 연구자들이 처음으로 컴퓨터를 사용하여 인간 언어를 이해하고 생성하기 시작했던 때로 거슬러 올라갑니다. NLP에 공헌한 최초의 주목할 만한 연구를 꼽자면 튜링 테스트가 있습니다. 이 테스트는 앨런 튜링이 고안한 것으로, 기계가 질문에 대해 인간과 구별할 수 없는 수준으로 대답을 할 수 있는지를 측정하는 실험입니다. 이 실험이 있은 지 얼마 후에 최초의 기계 번역 시스템이 개발되었습니다. 이 시스템은 문장 및 구문을 기반으로 하는 언어 번역 실험이었는데, 사전에 정의된 구문 또는 문장과 같이 매우 한정적인 언어 패턴에 의존했기 때문에 큰 진전을 이루지 못했습니다.
1960년대에 이르러 연구자들은 사용자가 컴퓨터에게 작업을 완료하도록 하거나 대화를 요청할 수 있는 규칙 기반 시스템을 실험했습니다.
1970년대와 80년대에는 언어 규칙, 규칙 기반 추론, 분야별 지식을 활용하여 명령 실행 및 질병 진단과 같은 작업을 수행하는 보다 정교한 지식 기반 접근 방식이 등장했습니다.
1990년대와 2000년대 초반에는 NLP에 통계적 접근 방식(데이터 기반 학습)이 널리 사용되면서 음성 인식, 기계 번역 및 기계 알고리즘의 발전을 이끌었습니다. 1993년 월드 와이드 웹(World Wide Web)의 도입으로 방대한 양의 텍스트 기반 데이터를 NLP 연구에 손쉽게 활용할 수 있게 되었습니다.
2009년경부터는 신경망과 딥러닝이 NLP 연구 개발의 주축이 되었습니다. 최근에 도입된 ChatGPT를 비롯하여 번역 및 자연어 생성 분야에서 NLP가 차지하는 영역이 크게 개선되었으며 계속해서 빠르게 발전하고 있습니다.
'자연스러운' 언어, 인간의 언어
그렇다면 자연어란 무엇일까요? 자연어란 인간이 단어와 문장을 사용하여 상호 소통하는 수단을 말합니다. 자연어는 우리가 읽고, 쓰고, 들으며 소통할 때 사용하는 언어입니다. 자연어는 우리가 정보를 전달하고, 생각을 표현하고, 질문하고, 이야기를 나누고, 서로 소통하는 방식입니다. 다양한 언어에 대한 NLP 모델이 개발되고 있지만, 이 모듈에서는 영어의 자연어 처리 모델을 집중적으로 다룹니다.
인공 지능 기초 뱃지를 완료했다면 비정형 데이터와 정형 데이터에 대해 배웠을 것입니다. 이 두 가지는 NLP에서도 중요한 용어입니다. 인간이 실제로 소통하는 수단인 자연어는 비정형 데이터로, 인간은 일반적으로 이 비정형 데이터에서 의미를 도출할 수 있는 반면 해당 데이터는 컴퓨터가 이해하기에 적합한 세부 정보를 담고 있지는 않습니다. 입양 가능한 보호소의 반려견에 대한 비정형 데이터를 담고 있는 예시를 살펴보겠습니다.
탈라는 공원 산책과 장거리 하이킹을 좋아하는 5살의 중성화된 약 30kg의 암컷 허스키입니다. 탈라는 어린 아이들에게 매우 온순하게 행동하고 고양이와도 잘 지냅니다. 파란 눈동자를 가진 사랑 덩어리는 회색과 흰색으로 이루어진 털색을 가지고 있으며 주기적으로 빗질을 해 주어야 합니다. You can schedule a time to meet Tala by calling the Troutdale shelter.
컴퓨터가 자연어의 의미를 이해하려면 이러한 정보가 스프레드시트 또는 데이터베이스에서 볼 수 있는 것과 유사하게 잘 정의되고 체계적으로 정리되어 있어야 합니다. 이를 정형 데이터라고 합니다. 정형 데이터에 포함된 정보와 데이터 형식은 궁극적으로 필요한 최종 애플리케이션에서 사용하는 알고리즘에 따라 결정됩니다. 예를 들어 번역 앱용 데이터는 챗봇용 데이터와 다른 구조로 되어 있습니다. 위 단락의 데이터는 반려견과 잠재적 입양자를 매칭해 주는 앱의 구조화된 데이터로 다음과 같이 나타낼 수 있습니다.
- 이름: 탈라
- 나이: 5살
- 중성화 여부: O
- 성별: 암컷
- 품종: 허스키
- 무게: 약 30kg
- 색상: 회색과 흰색
- 눈 색깔: 파란색
- 아이들과 잘 어울림: 예
- 고양이와 잘 어울림: 예
- 좋아하는 활동: 공원, 하이킹
- 위치: 트라우트데일
자연어 이해 및 자연어 생성
오늘날의 NLP는 자연어 이해(NLU)와 자연어 생성(NLG)이라는 두 가지 하위 분야로 발전했습니다. 비정형 데이터가 정형 데이터로 처리되는 것을 자연어 이해(NLU)라고 합니다. NLU는 다양한 기술을 사용하여 문어나 구어를 해석하고 그 의미와 맥락을 이해합니다. 이러한 기법은 다음 유닛에서 자세히 알아보겠습니다.
역방향, 즉 구조화된 데이터에서 구조화되지 않은 데이터로 처리되는 것을 자연어 생성(NLG)이라고 합니다. NLG는 컴퓨터가 인간과 유사한 언어를 생성할 수 있게 해주는 기술입니다. NLG에는 구조화된 데이터 또는 정보를 의미 있고 상황에 적합한 자연스러운 텍스트나 음성으로 변환하는 알고리즘과 모델의 개발이 포함되어 있습니다. 또한 문자열 정렬을 위한 Python 함수 생성과 같이 프로그래밍 언어로 코드를 생성하는 작업도 포함합니다.
과거에는 NLU 및 NLG 작업에서 구문 분석 트리와 같은 명시적인 언어 구조적 표현을 활용했습니다. NLU와 NLG는 오늘날에도 여전히 NLP에 중요한 역할을 하지만, 우리가 소통하는 데 사용하는 대부분의 앱, 도구, 가상 어시스턴트는 딥러닝이나 신경망을 사용하여 엔드투엔드 작업을 수행하도록 발전했습니다. 예를 들어, 신경망 기계 번역 시스템은 중간 구조를 명시적으로 만들지 않고도 중국어 문장을 바로 영어로 번역할 수 있습니다. 신경망은 패턴, 단어, 구문을 인식하여 언어 처리를 훨씬 더 빠른 속도로 문맥에 따라 정확하게 처리합니다.
다음 유닛에서는 컴퓨터가 인간의 말을 이해하고 그에 따라 반응할 수 있도록 하는 자연어 방법론 및 기술을 자세히 살펴봅니다.