CP3. NLU vs NLP vs NLG
0. 들어가기에 앞서 – 챗봇에 대한 개념 정리
1) 봇(BOT) 카테고리
봇 : 네트워크에서 작동하는 자동화 프로그램
챗봇 : 인간의 언어를 사용해 커뮤니케이션하는 봇
AI assistant(인공지능 비서) : 사용자를 위해 다양한 업무나 서비스 수행하는 로봇
2) 인공지능 : 기술
AI : 컴퓨터가 인간의 ‘인지’ 능력을 모방할 수 있게 하는 것
머신러닝(Machine Learning) : 배우게 하는 별도의 프로그래밍 없이도 학습하는 것
인공신경망(Neural Network) : 인간의 신경망(뉴런)에서 영감을 얻은 통계학적 학습 알고리즘. 시냅스의 결합으로 네트워크를 형성한 인공 뉴런이 학습을 통해 시냅스의 결합 세기를 변화시켜 문제 해결 능력을 가지는 모델
딥러닝(Deep Learning) : 인공신경망의 발전된 버전, 수많은 데이터 속에서 패턴을 발견해 인간이 사물을 구분하듯 컴퓨터가 데이터를 나눔
**
자연어 처리부분(NLP, NLU, NLG)는 인공지능의 한 분야지만, 다른 딥러닝이나 머신러닝과 포함관계라고 보기는 힘들다. 자연어 처리를 잘 하기 위해서 머신러닝을 활용할 수 있으나, 머신러닝을 도입하지 않아도 자연어 처리를 할 수 있다.
**
1. NLP (Natural Language Processing)
자연어 처리, 인터렉션을 자연어로 할 수 있도록 처리함
쉽게 설명하자면, 인간의 언어를 컴퓨터에게 가르치는 과정, ‘아이에게 언어를 가르치는 과정’ 이라고 생각하면 편할 듯 함. 인간의 언어를 컴퓨터와 같은 기계가 모사할 수 있도록 연구하고 이를 구현하는 인공지능 주요 분야 중 하나
우선, 문장을 품사별로 구별하게 하는 것을 시작으로 점차 더 나아가 사용자의 말을 이해하고 사용자가 원하는 대답을 내놓는 방식가지 나아가는 것이 중요
1) 형태소 분석
형태소란 언어의 가장 작은, 의미있는 단위.대상의 어절을 최소의 의미 단위인 형태소로 분석하는 것을 의미. 정보 검색 엔진에서 한국어의 색인어 추출에 많이 사용한다.
2) 어간(stem) : 접사(affix)가 붙어있는 단어 부분
3) 품사부착
형태소 분석을 통해 나온 결과 중 가장 적합한 형태의 품사를 부탁하는 것. 태거 라는 모듈이 이 기능을 수행. 문맥에 적합한 하나의 분석 결과를 선택하는 모듈, 은닉 마르코프 모델(HMM)이 주로 사용 .텍스트에서 의미있는 정보를 분석, 추출하고 이해하는 일련의 기술 집합
2. NLU (Natural Language Understanding) – NLP의 첫번째 주요 컴포넌트
기계에 사람이 평소 쓰는 자연어스러운 표현 그대로 제공해도 기계가 알아들을 수 있도록 하기 위함 텍스트 또는 음성 형식에 관계없이 NL의 의미를 설명하는 데 도움이 되며, 이를 통해, 우리는 영어, 프랑스어, 스페인어, 힌디어, 또는 다른 인간 언어를 분석할 수 있다. 즉, 언어를 읽고 통역하는 과정이다.
NLU는 단어, 구, 문장과 같이 언어구조에 대한 이해를 다루는 데 더 초점을 맞추며, 구문 뿐만 아니라 의미에도 중점을 둔다. 사람들은 서로의 질문과 답변의 문맥과 관련성을 이해할 수 있지만, 머신은 상황과 화자의 의도를 이해할 수 있는 능력이 없다. 그러기 때문에 NLU를 위해서는 구문 및 의미와 관련된 다양한 타입의 모호성도 해결하는 것이 중요하다.
NLU에 인간의 이해를 쉽게 만들어주기 위한 기계의 해석이 들어간 것으로 보면 쉬움. 예를 들어 날씨가 추운지 더운지를 물어보았을 때, 그냥 수치만을 띄워주는 것보다는 수치에 대한 정보가 저장되어 있는 데이터베이스에서 정보를 추출하여 더운지 추운지를 판하여 인간이 이해하기 쉬운 형태로 한번 더 해석해서 사용자에게 알려주는 것
대표적인 기능으로는 문장의 의도 분류, 서로 다른 언어 간 번역 문장 생성, 자연어 질문에 대한 답변 추출 등이 존재.
3. NLG (Natural Language Generation) – NLP의 두번째 주요 컴포넌트
머신이 NL을 출력으로 생성하는 프로세스를 정의가 되며, NL을 합리적인 방식으로 어떻게 생성할지를 머신에게 가르치려는 영역이다.
자연어를 만들어내기 위해서는 사전에 축적되어 있는 조각난 정보들을 모아 사람의 말로 만들어주는 과정 필요하며, 사용자의 물음에 대한 답변을 자연스러운 문장으로 만드는 과정에 들어가는 기술이다. 즉, 듣고 이해만 하는 과정에서 더 나아가 축적되어 있는 단어들을 조합해서 직접 사용자가 이해하기 쉬운 문장으로 출력하는 것
즉, 시스템 계산의 결과를 사람의 언어로 표현하는 기술. 자연어 생성은 다양한 NLP 어플리케이션에서 사용되고 있음. 한 예시로 대화 시스템에서는 사람이 한 말을 인식하고, 이에 대한 시스템 결과를 자연어 문장으로 생성하는 데 사용.
아래, 심플한 영어 정의를 소개하겠음
NLG platform is a computer process that can generate natural language text and speech from pre-defined data such as Amazon Alexa, google AI-assistant
PS. 자료를 참고하는데 도움을 주신 많은 블로거님들께 감사드립니다!
-------------------------------------------------------------------------------------------------------------
** NLP메뉴얼 참고url1 **
https://ko.wikipedia.org/wiki/%EC%9E%90%EC%97%B0%EC%96%B4_%EC%B2%98%EB%A6%AC
** NLP 관련 서적 참고 **
파이썬 자연어 처리의 이론과 실제 – 잘라지 트하나키 지음/이승준 옮김
** 챗봇 관련 개념 정리 url2 **
https://brunch.co.kr/@gentlepie/15
** NLU 관련 개념 참고 url2 **
** NLG 관련 개념 참고 url3 **
** NLG 관련 개념 참고 url4 **
https://www.raconteur.net/technology/technology-that-gives-machines-a-voice
-------------------------------------------------------------------------------------------------------------
'데이터 엔지니어링 프로젝트 및 인강 > 2. RASA chatbot Project' 카테고리의 다른 글
RASA 오픈소스 를 통해 간단한 챗봇 구축하고 훈련하기 01 (0) | 2020.03.04 |
---|---|
화장품 챗봇 설계 - 프로젝트 챗봇 시나리오 설계 (0) | 2020.02.17 |
챗봇에 대한 간단한 개념 등 정리 - 프로젝트 전 사전 스터디4 (0) | 2020.02.14 |
jupyter notebook 사용 (0) | 2020.02.13 |
Anaconda 사용법 - 회사 프로젝트 전 사전 스터디1 (0) | 2020.02.13 |