brunch

You can make anything
by writing

C.S.Lewis

by 알바트로스 Jan 20. 2024

우리 일상속의 인공지능(2)

스마트어시스턴트와 텍스트 분석

사람들은 잘 모르는 대상에 대해 막연한 환상이나 두려움을 품기 쉽습니다. 아직 초기단계를 지나고 있는 인공지능이야 말로 아직 활용 가능성이 많이 열려있어 상상력을 발휘하기 좋은, 그러나 오해의 대상이 되기 쉬운 영역이라고 할 수 있을 것 같습니다.


지난 시간에는 자연어처리 기술이 우리 일상속에 활용된 대표적인 예시인 기계 번역텍스트 자동완성의 원리에 대해 알아보았습니다. 이번 시간에는 사람들의 상상력을 자극하며 SF영화에 자주 등장하는 단골 소재인 스마트 어시스턴트텍스트 분석의 원리를 파해쳐보도록 하겠습니다.


스마트 어시스턴트


스마트 어시스턴트야 말로 사람들의 상상력을 무한 자극하는 소재가 아닐까 싶습니다. 아마존(Amazon)의 Alexa가 스스로를 비웃으며 소름 끼치는 웃음소리를 내었다는 일화가 있는가 하면, 2011년 출시된 애플의 스마트 어시스턴트 siri는 영화 ‘Her’의 인공지능 비서의 모티브가 되기도 하였습니다.


그러나 작동원리를 이해하면 스마트 어시스턴트를 더이상 섬뜩하게 느끼지 않을 수 있습니다. 이 스마트 어시스턴트 역시 외국어 번역이나 텍스트 자동완성과 같이 텍스트 데이터라는 인풋 값을 받아 토큰화와 구문 분석 등의 자연어이해(NLU)를 거쳐 언어모델을 통과한 뒤, 자연어생성을 통해 필요한 작업을 수행하는 일련의 과정을 거친다는 점에서 크게 다르지 않기 때문입니다.



우선 스마트어시스턴트가 사용자의 명령을 인식하기 위해서는 음성형태로 입력 받은 데이터를 텍스트 데이터로 변환하는 작업이 필요한데, 이를 위해 음성인식(speech recognition) 혹은 STT(Speech-to-text) 기술이 적용됩니다. 초기 STT에는 음성 신호를 시간적으로 나열된 숨겨진 상태와 관측된 상태로 모델링하여 음성을 인식하는 HMM(Hidden Markov Model) 기술이 많이 사용되었지만, 최근에는 뛰어난 성능과 확장성을 가진 트랜스포머 아키텍처를 기반으로 한 음성 인식 모델이 많이 사용되고 있습니다.


음성 데이터를 텍스트화 한 뒤에는 외국어 번역기와 마찬가지로 토큰화, 구문 분석, 의도 파악, 개체명 인식 등 자연어이해의 다양한 기술을 적용하여 텍스트 데이터를 사용자의 질문이나 요청의 의미를 파악하는 과정을 거칩니다. 자연어이해(NLU) 과정을 거쳐 임베딩을 거쳐 벡터화된 사용자의 인풋 데이터는 사용자와의 대화 과정에서 이전 대화 기록과 현재 대화 상태를 유지하고 관리하는 대화관리(dialogue management)을 통해 사용자와 지속적인 대화를 유지하고, 문맥을 파악하여 보다 자연스럽고 일관된 응답을 유지합니다. 이 때 스마트 어시스턴트가 정보를 제공하기 위해 데이터베이스(DB)를 활용하는 경우, 자연어처리술을 사용하여 사용자의 질문과 데이터베이스의 내용을 매칭하고, 해당 정보를 추출할 수 있습니다.


마지막으로 스마트 어시스턴트는 자연어생성(NLG) 기술을 활용하여 사용자의 요청에 맞는 자연스러운 응답을 생성합니다. 자연어생성은 사전에 정의된 템플릿이나 딥러닝 기반의 언어 생성 모델을 사용하여 응답을 생성하는데, 여기서 자주 활용되는 모델이 트랜스포머의 디코더 부분을 담당하며 언어 생성에 특화된 GPT모델이 바로 GPT 모델입니다.


텍스트 분석


자연어처리는 비즈니스 방면에서도 많이 사용되고 있습니다. 텍스트 데이터 속에서 중요한 정보를 추출해내고 비즈니스에 활용하기 위한 다양한 자연어처리 테크닉들을 텍스트 분석이라고 합니다. 텍스트 분석을 통해 간단하게는 텍스트 속에서 날짜, 인물, 장소와 같은 핵심 정보를 추출해내거나 방대한 양의 문서를 주제별로 분류할 수 있고, 감정 분석을 통해 문장에 숨어있는 화자의 감정을 읽어내고 피드백의 재료로 삼을 수도 있습니다. 이러한 텍스트 분석은 비즈니스 분야에서 커다란 인사이트를 얻을 매우 유용한 수단입니다.


출처 : Medium


이 때 개체명 인식을 통해 문장에서 특정한 유형의 단어나 구를 식별하고 분류할 수 있습니다. 개체명 인식을 사용하면 문장속에서 인물, 장소, 날짜, 기관 등의 중요한 정보를 추출할 수 있습니다. 예를 들어 보험사의 고객 상담 데이터 속에 만료일, 보험사 정보, 보장 금액 등 주요 정보가 포함되어 있는 경우, 개채명 인식을 통해 해당 정보를 추출해내고 활용할 수 있습니다. 개체명 인식은 NLTK 등의 Python 오픈소스 Library를 통해 비교적 쉽게 구현해볼 수 있습니다.


이전 19화 우리 일상속의 인공지능(1)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari