2019년 6월 25일 화요일

자연어 처리 개요(Natural Language Processing, NLP)

* 본 내용은 (가제)'글로벌 기업과 한전의 인공지능 이야기. 들어볼래?' 책 작성 중 자연어 처리 개요에 대한 부분이다. 저작권자의 허락 없이 무단 복제를 금한다.

자연어처리 개요
일반 사람들에게 자연어 처리가 무엇일까요?’ 라고 물었을 때 자연어 처리가 무엇인지 알고 있거나 혹은 어떤 것인지 설명할 수 있는 사람이 얼마나 있을까. AI, IT, 데이터 과학 관련 분야에 일하지 않는 이상 자연어처리가 무엇인지 대부분 알지 못할 것이다. 그러나 챗봇, 인공지능 스피커, 네이버 검색을 아냐고 물어본다면 대부분의 사람은 알고 있다고 대답할 것이다. 자연어처리는 위에서 말한 어플리케이션의 기저 기술로서 우리 일상 생활 곳곳에서 활용되고 있으며 많은 연구소와 기업에서 이와 관련된 연구를 진행 중이다.

은행, 여행사 등에서 앱에서 실시하고 있는 챗봇 서비스도 자연어처리 기술을 기반으로 한다. 사용자가 입력하는 말을 컴퓨터가 이해하고 가장 적합한 답변을 찾아 주는 기술도 자연어 처리 기술이 사용된다.

Microsoft OS에는 자연스러운 음성을 인식 할 수있는 Cortana라는 서비스가 있다. 미리 알림을 설정하고, 앱을 열고, 이메일을 보내고, 게임을 하고, 항공편과 패키지를 추적하고, 날씨를 확인하는 등의 작업을 할 수 있는데 ,음성을 이해하고 응답하는데 자연어 처리 기술이 사용된다. SiriApple Inc.iOS, watchOS, macOS에서 사용되는 음성 지원 비서 서비스다. 음성 명령으로 많은 일을 할 수 있는데, 전화를 걸거나, 문자를 보내거나, 이메일을 보내고, 타이머를 설정하고, 사진을 찍고, 앱을 열고, 알람을 설정하고, 내비게이션을 사용할 수 있다. Siri 뿐만 아니라 요즘 인기가 많은 카카오 스피커, 네이버 스피커와 같은 인공지능 지능 스피커 또한 자연어처리가 핵심 기술로 사용되고 있다.

Google이 개발한 이메일 서비스 인 Gmail은 스팸 검색을 사용하여 일부 스팸 이메일을 걸러낸다. 여기서 사용되는 스팸 필터링 기술도 스팸 메일의 내용을 이해하고 특성을 파악하는 자연어처리 기술이 기반이 된다.

자연어란 인간이 사용하는 언어를 말한다. 자연어 처리는 인간의 언어를 처리(Processing)하는데 그 목적을 컴퓨터가 인간의 언어, 즉 자연어를 이해하고 분석 가능하도록 작업하는 것을 의미한다. ‘컴퓨터에게 인간의 언어를 어떻게 잘 이해시킬까가 자연어 처리 기술의 핵심이며, 컴퓨터에게 인간의 언어를 잘 이해시켜서 컴퓨터가 인간이 원하는 답을 정확히 얻는 것이 뛰어난 자연어 처리 기술이다. 챗봇, 검색 등 어플리케이션에 적합한 자연어처리 기술을 개발하고 사용한다면 뛰어난 성능의 챗봇, 검색 등 어플리케이션을 만들 수 있다.
컴퓨터가 인간의 언어를 이해하도록 한다' 말은 쉽지만, 그 과정은 생각만큼 쉽지 않다. 인간과 달리 컴퓨터는 모든 값을 01로만 입력 받고, 처리하고, 출력한다. 우리가 컴퓨터를 통해서 입력하는 텍스트는 모두 컴퓨터가 01로 변환하여 입력받고 처리한 뒤, 다시 변환하여 출력해준다. 텍스트 인코딩 방식 중 유니코드와 아스키 코드 방식이 인간의 언어를 컴퓨터가 이해할 수 있도록 01로 바꿔주는 대표적인 방법이다. 그렇다면 이와 같은 방법으로 자연어를 변환한 다음, 컴퓨터가 그 값을 비교하고 처리하여 검색 시스템을 만들 수 있을까?

유니코드 혹은 아스키 코드와 같은 기존의 방식을 통하여 01로 변환된 자연어는 문맥, 의미 유사성 등 자연어일 때의 어떠한 속성도 가지고 있지 않다. 예를 들어, ‘고양이’, ‘강아지’, ‘을 유니코드 방식으로 변환시킨 후 어떠한 방법으로도 세 가지 중에 다른 범주에 속하는 하나를 구분해 낼 수가 없다. 왜냐하면 유니코드로 변환된 고양이와 강아지 텍스트는 어떠한 유사성이 없기 때문이다. 따라서 텍스트를 기계가 이해할 수 있으면서 자연어의 특성(문맥, 의미 유사성)을 포함하는 방식으로 변환시킨 다면 훌륭한 성능을 자랑하는 어플리케이션을 만들 수 있는 기반이 될 것이다.

이런 질문의 답을 찾는 것이 워드 임베딩(Word Embedding) 분야다. 텍스트를 자연어처리를 위한 모델에 적용할 수 있게 언어적인 특성을 반영한 벡터로 수치화하는 것을 워드 임베딩이라 부른다워드 임베딩은 크게 카운드 기반과 예측 기반 크게 두가지로 구분이 가능하다. 카운트 기반 방식에서 예측 기반 방식으로 발전해 왔으며, 둘을 조합하여 사용하는 방식도 개발되어 사용 중이다.

댓글 없음:

댓글 쓰기