자연어(Natural Language)란 사람이 일상적으로 사용하는 언어를 의미하며,
이를 컴퓨터가 이해하고 처리할 수 있도록 분석·생성하는 기술을 자연어 처리(NLP, Natural Language Processing)라고 한다.
(1) 자연어란?
자연어는 문법, 문맥, 뉘앙스 등을 포함하는 복잡한 의사소통 수단이다.
대표적인 자연어로는 한국어, 영어, 중국어, 프랑스어 등이 있다.
(2) 자연어 vs. 프로그래밍 언어
구분
자연어
프로그래밍 언어
사용 목적
인간 간의 의사소통
컴퓨터와의 상호작용
유형
문법적 유연성 있음(중의성, 생략, 은유 존재)
정확한 문법 규칙 필요(모호함 없음)
예제
한국어, 영어, 중국어
Python, Java, C++
(3) NLP(자연어 처리)란?
자연어 처리(NLP)는 사람의 언어(자연어)를 컴퓨터가 이해·분석하고, 나아가 사람처럼 언어를 생성할 수 있도록 하는 인공지능 기술이다.
자연어는 문맥에 따라 같은 단어도 다른 의미를 가지거나(중의성), 문법 규칙이 명확하지 않은 경우가 많아, 프로그래밍 언어처럼 있는 그대로 컴퓨터가 처리하기 어렵다.
NLP는 이러한 자연어를 토큰화 → 정규화/불용어 제거 → 품사 태깅 → 구문 분석 등의 단계적인 처리를 거쳐, 컴퓨터가 다룰 수 있는 형태(숫자, 벡터 등)로 변환한다.
출처: https://blog.stackademic.com/
(4) NLP의 처리 과정
NLP는 보통 다음과 같은 파이프라인(단계)을 거쳐 자연어를 분석한다. 각 단계는 이전 단계의 결과를 입력으로 받아 점점 더 높은 수준의 언어적 정보를 추출해 나간다.
텍스트 데이터를 분석하기 위해 문장을 단어, 형태소 등 더 작은 단위(토큰)로 나누는 과정이다.
예제:
문장: "나는 학교에 갑니다."
토큰화 결과: ["나", "는", "학교", "에", "가", "ᄇ니다"]
숫자로 변환: [1, 2, 3, 4, 5, 6]
토큰화된 결과는 이후 단계(품사 태깅, 임베딩 등)의 입력으로 사용되며, 컴퓨터는 문자 자체가 아니라 이렇게 숫자로 인덱싱된 토큰을 통해 문장을 처리한다.
4.2 불용어 제거 & 정규화
불용어 제거(Stopword Removal):
"은/는/이/가", "the", "a"처럼 분석에 큰 의미가 없는 조사·관사 등을 제거하여 데이터의 노이즈를 줄인다.
어간 추출(Stemming):
단어의 어미를 잘라내어 어간(원형에 가까운 형태)만 남기는 방법이다. 규칙 기반으로 빠르지만 결과가 실제 단어가 아닐 수 있다. (예: studies → studi)
표제어 추출(Lemmatization):
사전적 원형(표제어)으로 변환하는 방법으로, 품사 정보를 활용해 어간 추출보다 정확한 원형을 얻는다. (예: studies → study)
4.3 품사 태깅(POS Tagging)
품사 태깅(POS tagging, Part-Of-Speech tagging)은 문장을 구성하는 각 단어(토큰)에 명사, 동사, 형용사 등 품사의 범주 및 문법적 기능에 대한 태그를 붙이는 작업이다.
예제: "나는 / 학교에 / 갑니다" → 나는(대명사+조사), 학교에(명사+조사), 갑니다(동사)
품사 태깅 방법은 크게 두 가지로 나뉜다.
규칙 기반 품사 태깅:
언어학적 지식을 바탕으로 사람이 직접 만든 규칙들을 이용해 품사를 판별하는 방식이다.
통계/딥러닝 기반 품사 태깅:
말뭉치(corpus)를 학습 데이터로 사용하여, 확률 모델이나 신경망(RNN, Transformer 등)을 통해 품사를 예측하는 방식이다.
이때 말뭉치(corpus)란 컴퓨터가 읽고 처리할 수 있는 형태로 정리해 모아 놓은 대량의 텍스트 집합을 의미하며, 품사 태깅을 포함한 대부분의 NLP 모델 학습에 기초 자료로 사용된다.
4.4 구문 분석(Parsing) & 개체명 인식(NER)
구문 분석(Parsing):
품사 태깅이 완료된 문장을 대상으로, 단어들이 문장 내에서 맺는 문법적 관계(주어-서술어, 수식 관계 등)를 분석하여 계층적인 트리(구문 트리) 구조로 변환하는 작업이다. 품사 태깅보다 한 단계 더 나아가 문장 전체의 구조를 파악한다는 점에서 차이가 있다.
개체명 인식(NER, Named Entity Recognition):
문장에서 사람 이름, 지명, 날짜, 조직명 등 고유한 의미를 가지는 개체(entity)를 찾아내고 분류하는 작업이다.
(5) NLP의 활용
기계 번역: Google 번역, Papago
음성 인식 및 음성 비서: Siri, Google Assistant, Alexa와 같은 자연어 기반 인터페이스
챗봇 및 AI 비서: ChatGPT, 고객 응대용 자동화된 대화 시스템
감성 분석: SNS 및 리뷰 데이터의 긍정/부정/중립 분석
정보 검색: 검색 엔진의 키워드 분석 및 문서 랭킹
(6) 확인 문제
품사 태깅(POS tagging)에 대한 설명으로 옳지 않은 것은?
구문에 따라 주어진 문장에서 단어들의 역할을 파악하여 계층적인 트리 구조로 변환한다.
문장의 각 단어에 품사의 범주 및 문법적 기능에 대한 태그를 붙인다.
컴퓨터가 읽을 수 있는 형태로 텍스트를 모아놓은 말뭉치(corpus)를 사용한다.
규칙 기반 품사 태깅은 언어 정보를 이용하여 수작업으로 만든 규칙들을 사용한다.
정답 · 해설 보기
정답: ①
① (틀림)
문장을 단어들의 문법적 역할에 따라 계층적인 트리 구조로 변환하는 작업은 구문 분석(parsing/구문 트리 생성)에 해당한다. 품사 태깅(POS tagging)은 문장을 구성하는 각 단어에 품사(명사, 동사 등)와 문법적 기능에 대한 태그를 붙이는 작업으로, 계층적인 트리 구조를 만드는 것과는 다른 단계의 작업이다. 따라서 ①은 옳지 않다.
② (옳음)
문장의 각 단어에 품사 범주 및 문법 기능 태그를 붙인다는 것은 품사 태깅의 정확한 정의이다.
③ (옳음)
품사 태깅은 컴퓨터가 처리할 수 있게 정리된 텍스트 집합인 말뭉치(corpus)를 학습·참조 자료로 사용한다는 설명으로, 옳은 내용이다.
④ (옳음)
규칙 기반 품사 태깅은 언어학적 지식을 바탕으로 사람이 직접 만든 규칙들을 사용해 태깅한다는 설명으로, 옳은 내용이다.