brunch

You can make anything
by writing

C.S.Lewis

by 알바트로스 Jan 27. 2024

확률과 통계로 언어를 표현하는 인공지능

통계기반 자연어처리(Statistical NLP)

지난시간에는 무려 50년 전에 만들어진 인류 최초의 챗봇 ELIZA에 대해 살펴보았습니다. ELIZA는 규칙기반 자연어처리와 패턴매칭(pattern matching) 그리고 치환(substitution)으로 만들어진 꽤나 그럴듯한 챗봇입니다. 하지만 ELIZA의 근간이 되었던 규칙기반 자연어처리는 사람의 개입이 절대적으로 필요하고 표현할 수 있는 문장의 종류에 한계가 있다는 치명적인 한계점을 가지고 있었지요.


출처 : Medium


이러한 한계점을 보완하기 위해 1980년대에는 통계학에 기반한 자연어처리 기술이 연구되어 본격적으로 활용되기 시작합니다. 통계 기반 자연어처리 기술은 주로 말뭉치(corpus)라는 자연언어 연구를 위해 특정한 목적을 가지고 언어의 표본을 추출한 데이터 집합을 활용하여 자연어를 처리하고 생성합니다. 기존의 규칙기반 자연어처리와는 다르게 통계기반 방법론에서는 규칙을 사람이 직접 만드는 대신, 머신러닝 알고리즘을 통해 대량의 데이터로부터 언어의 패턴을 학습하는 방식입니다.

출처 : analytics vidhya


통계기반 자연어처리에서는 많은 양의 텍스트 데이터를 분석하여 단어나 구문이 나타날 확률을 계산하며, 이를 기반으로 문장이나 단어의 의미를 추론합니다. 예를 들어, “나는 오늘 ___를 먹었다”라는 문장에서 빈 칸에 들어갈 단어의 확률을 예측하는 식입니다. 만약 '피자'와 '공부' 중 어떤 단어가 빈칸에 들어갈지 추론한다면, '피자'가 '공부'보다 빈칸에 들어갈 확률이 높다고 판단하겠죠.



조건부 확률의 text 적용(출처 : wikidocs)


이처럼 통계적인 접근을 통해 언어의 문맥을 파악하고 이해하는게 통계적 자연어처리 기법의 핵심입니다. 통계학 이론을 자연어처리에 활용하면서 보다 효율적으로 정확하게 자연어처리가 가능해졌습니다. 이러한 통계적 자연어처리 방식을 이해하기 위해서는 중고등학교 수학시간에 배웠던 '조건부 확률'에 대한 개념을 이해하고 텍스트 데이터에 적용할 알아야 합니다. 즉 'A라는 단어가 나왔을 때 B라는 단어가 나올 확률'을 계산할 수 있어야 한다는 것이죠.

n-gram 계산 (출처 : wikidocs)


이런 방식을 활용한 모델의 대표적인 예로는 'n-gram'이라는 모델이 있습니다. n-gram 은 문장 내 연속된 n개의 단어를 하나의 항목으로 취급하여 문장을 이해하고 생성하는 방법입니다. 예를 들어 "오늘 점심에 동료들과 피자를 먹으러 갔다"라는 문장에서 2-gram을 추출하면 "오늘 점심에", "점심에 동료들과", "동료들과 피자를", "피자를 먹으러", "먹으러 갔다" 등의 구문을 얻을 수 있습니다. 이런 방식으로 추출한 n-gram들을 활용하여 문장의 구조를 학습하고 새로운 문장을 생성할 수 있는 것이죠.


통계 기반 자연어처리의 한계점


통계기반 자연어처리는 규칙기반 자연어처리의 한계를 어느정도 해결해 주었지만, 여전히 완벽하지는 않습니다. 바로 다음시간에 살펴볼 희소성 문제(Sparsity) 때문입니다. 데이터 희소성 문제를 간단히 말하면 단어나 문장이 길어지고 데이터의 양이 증가했을 때 통계기반 자연어처리만으로는 해결이 어렵다는 단점입니다. 이러한 문제점을 혜성처럼 나타난 새로운 기술이 해결해 냅니다. 바로 다음 시간에 살펴볼 딥러닝 기반 자연어처리입니다.

이전 21화 인류 최초의 챗봇 ELIZA
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari