[이해하기] 컴퓨터가 텍스트를 인식하는 방법&음성합성 알아보기
파파고 번역기 체험하기
네이버 번역기 파파고를 사용해본 적이 있나요?
파파고는 여러 나라의 언어를 다른 언어로 번역해 주는 번역 프로그램입니다. 스마트폰 앱으로도 제작되어 있어 편리하게 사용할 수 도 있습니다. 파파고는 현재 15가지 언어를 번역할 수 있고 웹사이트 페이지 번역도 가능합니다. 그리고 필요할 때는 번역한 내용을 음성으로 나타내주는 기능도 있습니다. 그렇다면 컴퓨터는 어떻게 텍스트의 의미를 인식하고 다른 언어로 번역할 수 있을까요? 또 번역한 내용을 어떻게 음성으로 나타낼 수 있을까요?
이번 주제에서는 컴퓨터가 텍스트를 처리하는 방법을 배우고 자연어 처리가 무엇인지 배우도록 하겠습니다. 또, 텍스트를 소리로 표현할 수 있게 해주는 음성 합성에 대해 알아봅니다. 아울러, 엔트리의 번역 기능과 읽어 주기 기능을 이용하여 나만의 번역기를 만들어보겠습니다. 마지막으로 다른 나라 언어로 번역해 주는 인공지능 기술과 음성 합성 인공지능 기술이 가져올 수 있는 사회적 영향에 대해 서로 이야기해 보겠습니다.
|
컴퓨터는 텍스트를 어떻게 인식할까요?
1-1. 토큰화
토큰(Token)은 텍스트 데이터에서 의미를 가지는 최소한의 덩어리를 말합니다. 그리고 텍스트 데이터를 토큰 단위로 나누는 과정을 토큰화라고 합니다. 단어 단위로 토큰을 나누는 것을 ‘단어 토큰화’라고 하고 문장 단위로 토큰을 나누는 것을 ‘문장 토큰화’라고 합니다. 토큰은 처리하는 목적에 따라 달라질 수 있습니다.
토큰화를 할 때는 언어의 특성을 고려해야 합니다. 특히 우리나라 말의 경우 ‘은, 는, 이, 가’와 같은 조사가 있고 영어보다 띄어쓰기가 잘 지켜지지 않는다는 특징이 있기 때문에 이와 같은 특성을 고려해 토큰화하는 것이 중요합니다.
나는 인공지능이 좋다.’라는 예시문을 토큰화하면 ‘나’, ‘는’, ‘인공지능’, ‘이’, ‘좋다’의 토큰으로 나눌 수 있습니다. 여기서는 조사도 구분하여 토큰으로 나눈 것을 확인할 수 있습니다.
1-2. 임베딩
토큰화가 끝나면 이제 임베딩의 단계를 거칩니다. 임베딩이란 하나의 단어를 숫자로 바꾸는 과정으로 여기서는 토큰화된 단어들을 컴퓨터가 이해할 수 있는 숫자로 변환시키는 과정을 말합니다. 우리는 그동안 컴퓨터가 이미지 데이터와 소리 데이터를 컴퓨터가 이해할 수 있는 숫자 0과 1로 바꾸는 과정에 대해 배웠습니다. 텍스트 데이터도 이와 마찬가지로 0과 1로 바꾸는 과정이 필요합니다. 임베딩하는 방법은 다양한데 이번 시간에는 그 중 하나인 원 핫 인코딩에 대해 알아보도록 하겠습니다.
먼저 처리하는 텍스트의 토큰을 모읍니다. 이렇게 모인 토큰의 집합을 ‘단어 사전’이라고 표현합니다. 단어 사전의 토큰들은 서로 중복이 되지 않게 구성되고 단어 사전의 크기는 사전에 들어 있는 토큰의 개수입니다. 예시문의 단어 사전에는 ‘나’, ‘는’, ‘인공지능’, ‘이’, ‘좋다’가 들어있습니다. 따라서 이 단어 사전의 크기는 5입니다.
이제 단어 사전에 있는 토큰에 고유한 숫자를 부여합니다. 이때의 숫자는 0부터 시작합니다. 처리할 텍스트 데이터가 양이 많은 경우 자주 사용하는 단어의 빈도수를 고려해 숫자를 부여하기도 합니다.
숫자를 정한 후 이제 해당하는 위치에 숫자 1을 입력합니다. 그리고 나머지 부분은 0을 입력합니다. 예시문의 ‘인공지능’ 토큰은 이제 (0,0,1,0,0) 이라는 숫자로 변경된 것을 확인할 수 있습니다.
원 핫 인코딩은 사용하기 매우 쉽다는 장점이 있지만 토큰의 개수가 많아지면 변경된 숫자의 길이가 매우 길어지는 문제가 생기는 단점도 있습니다. 예를 들어 단어 사전에 있는 토큰의 수가 100개일 때를 생각해 본다면 0 과 1이 총 100개나 되는 엄청 긴 숫자로 변형될 것입니다.
2. 이미지에서 특징 추출(Feature Extraction)하기
<보기>
희석이는 햄버거를 너무 좋아해서 매일 햄버거를 먹습니다.
Q. 보기의 문장을 토큰화해보세요.
Q. 토큰들을 모아 단어 사전을 만들어보세요.
Q. 원 핫 인코딩으로 토큰들을 숫자로 바꾸어보세요.
2. 자연어 처리
텍스트 데이터를 숫자로 바꾸었다고 해서 컴퓨터가 이 데이터가 어떤 내용을 담고 있는지 인식하지는 못합니다. 그저 컴퓨터가 알아볼 수 있는 형태로 텍스트를 바꾼 것이고 여기까지는 인공지능의 영역이 아닙니다. 컴퓨터가 텍스트를 인식한다는 것은 텍스트 속에서 특징(feature)을 추출하고 그것을 분석해서 그 텍스트가 어떤 의미인지 인식할 수 있어야 합니다.
텍스트 데이터에서 특징을 추출하는 것은 매우 어려운 일입니다. ‘약이 쓰다’와 ‘글을 쓰다’ 두 문장을 보면 공통적으로 ‘쓰다’라는 단어를 사용하고 있습니다. 하지만 그 의미는 다르게 사용되고 있습니다. 우리는 문맥이나 상황을 고려해 이 텍스트가 어떤 의미를 담고 있는지 쉽게 알 수 있습니다. 하지만 컴퓨터가 이런 것들을 모두 특징들을 고려하는 것은 매우 힘든 일입니다. 최근의 인공지능 기술(딥러닝)이 발전하면서 인공지능은 이러한 텍스트 데이터에서 특징을 스스로 찾아내고 조합하여 분석해 텍스트 데이터를 인식할 수 있게 되었습니다.
이렇게 컴퓨터가 인간의 언어를 인식하고 목적에 맞게 처리할 수 있도록 하는 것을 자연어 처리(Natural Language Processing, NLP)라고 합니다. 자연어 처리는 인공지능의 한 분야로 여기서 자연어는 우리가 일상생활에서 말하고 듣고 읽고 쓰기를 하는 언어를 말합니다. 따라서 자연어 처리를 이해하기 위해서는 인공지능에 대한 이해뿐만 아니라 언어에 대한 이해도 가지고 있어야 합니다.
자연어 처리에는 다양한 분야가 있습니다. 먼저 텍스트를 인식하여 이 텍스트가 긍정적인 내용인지 부정적인 내용인지 분류해내는 것을 감정 분석이라고 합니다. 이러한 감정 분석은 고객들의 리뷰를 관리하는 데 자주 사용됩니다. 또한, 자연어 처리는 문서를 자동으로 요약해주는 데 사용되기도 하고, 오류를 자동으로 수정해 주는 데에도 사용됩니다. 컴퓨터를 이용해서 한 언어에서 다른 언어로 바꾸는 번역도 자연어 처리의 한 분야입니다.
음성 합성이란 무엇일까요?
2. 음성 합성 체험하기
음성 합성 기술을 이용해 만들어진 네이버의 클로바 더빙을 체험해봅시다.
클로바 더빙 체험하기 : https://clovadubbing.naver.com
학습한 내용을 정리해봅시다.
Q. 컴퓨터는 텍스트를 어떻게 인식할까요?
텍스트를 ( ________ ), ( ________ )의 숫자 형태로 처리한 뒤, 데이터에서 ( ________ )을 추출하여 어떤 텍스트인지 인식합니다.
Q. 컴퓨터가 인간의 언어를 인식하고 목적에 맞게 처리할 수 있도록 하는 것을 ( ___________ )라고 합니다.
Q. 컴퓨터가 인간의 언어를 인식하고 목적에 맞게 처리할 수 있도록 하는 것을 ( ___________ )라고 합니다.