자연어 처리(NLP: Natural Language Processing)란 컴퓨터가 인간의 언어를 인식하게 만드는 인공지능의 주요 분야 중 하나로, 정보 검색, 정보 추출, 음성 인식, 단어 분류, 구문 분석, 감정 분석, 자동 대화, 기계 번역 등에 사용된다.
전 세계에서 오랜 기간 관련 학문을 연구하고 있음에도 불구하고, 영화 속의 사람 같은 인공지능을 아직까지 완벽하게 개발하지 못했다는 것은 그만큼 사람 같은 컴퓨터를 만드는게 쉽지 않다는 것이다. 점점 사람과 소통할 수 있을 정도로 발전할 수는 있겠지만 사람이 될 수는 없다. 하지만 그에 가장 가깝게 다가갈 수 있도록 내 목적에 맞는 분야를 컴퓨터가 학습하고 그에 대한 옳은 결과를 얻는 것이 자연어 처리의 목적이다.
자연어 처리는 지금껏 많은 발전을 했다. 텍스트 데이터를 활용한 통계 기반 머신러닝에서, 최근엔 GPT나 BERT 같은 인공 신경망 기반의 모델들을 주로 사용하고 있다. 하지만 그럼에도 통계 기반 방법론 역시 자연어 처리에 대한 전체적인 시야를 갖는데 큰 도움이 될 것이다.
간략히 전반적인 자연어 처리 단계를 보자면 아래 정도로 정리해 볼 수 있다.
단계 1. 텍스트 데이터 수집
이 텍스트 데이터들은 말뭉치(코퍼스: Corpus, corpora) 라고도 한다. 컴퓨터에 학습을 시킬 원시 데이터라고 볼 수 있으며, 컴퓨터가 학습할 만큼 충분한 양을 준비해야 한다. 이미 많은 분야(Domain) 의 코퍼스가 공개되어 있고, 특정 분야의 경우 별도로 데이터를 수집해야 한다. 사회/경제 전반에 관한 학습을 시켜야 하는데, 연예/스포츠 코퍼스를 수집한다면 제대로 된 결과를 예상할 수 없을 것이다. 자연어 처리의 모든 과정에서 비용과 속도를 간과할 수 없다. 제대로 된 코퍼스를 준비하지 못한다면 갈수록 비용과 복잡도는 늘어날 수 밖에 없다.
단계 2. 코퍼스 분석
컴퓨터가 인식하기 쉽도록 코퍼스의 내용을 세세하게 분석해야 한다. 작은 의미 단위인 형태소(morphological) 분석, 품사들로 문장의 구조를 결정하는 구문(syntactic) 분석, 문법에 맞지만 올바른 단어 의미를 위한 의미(semantic) 분석, 문맥상 흐름을 이을 수 있는 화용(Pragmatic) 분석 등이 필요하다. 다시 말해, 문장 별로 구분하고, 원하는 작은 의미 단위로 자르고, 불용어 제거나 단어 원형 대체로 복잡성을 줄여, 정돈된 데이터를 만든다. 언어별 구조나 표현 등이 모두 다르기 때문에 코퍼스가 어떤 언어로 이루어져 있는지에 따라 처리 방법들도 다양하다.
단계 3. 단어의 수치화 및 모델링
코퍼스를 분석하여 정리된 데이터를 컴퓨터가 효율적으로 처리하기 위해 적절히 수치화 하여 모델링 하는 과정이다.
단계 4. 컴퓨터 학습, 테스트, 평가
모델링을 마친 데이터로 컴퓨터 학습을 시키고, 테스트를 거쳐 모델 비교 및 보완이 지속적으로 필요하다.
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.