자연어처리(Natural Language Processing)
자연어?
일상 생활에서 사용하는 언어
자연어처리?
자연어의 의미를 분석하여 컴퓨터가 처리할 수 있도록 하는 일
자연어 처리는 음성 인식, 내용 요약, 번역, 사용자의 감성 분석, 텍스트 분류 작업(스팸 메일 분류, 뉴스 기사 카테고리 분류), 질의 응답 시스템, 챗봇과 같은 곳에서 사용되는 분야
최근 딥 러닝이 주목을 받으면서, 인공지능이 IT 분야에서 중요 키워드로 떠오름. 자연어 처리는 기계에게 인간의 언어를 이해시킨다는 점에서 인공지능에 있어서 가장 중요한 연구 분야이면서도, 아직도 정복되어야 할 산이 많은 분야
언어 모델(Language Model)
언어 모델(Languagel Model)이란 단어 시퀀스(문장)에 확률을 할당하는 모델을 말한다.
단어 시퀀스에 확률을 할당하게 하기 위해서 가장 보편적으로 사용되는 방법은 언어 모델이 이전 단어들이 주어졌을 때 다음 단어를 예측하도록 하는 것
언어 모델을 만드는 방법은 크게는 통계를 이용한 방법과 인공 신경망을 이용한 방법으로 구분
최근에는 통계를 이용한 방법보다는 인공 신경망을 이용한 방법이 더 좋은 성능을 보여주고 있다.
통계적 언어 모델(Statistical Language Model)
조건부 확률에 기반하여 문장의 확률(카운트 기반)을 계산.
- 예시)
카운트를 기반으로 하기 때문에 충분한 데이터를 관측하지 못하여 언어를 정확히 모델링하지 못하는 문제가 발생 이를 희소 문제(sparsity problem)라고 한다.
N-gram 언어 모델?
확률론적 언어 모형(Probabilistic Language Model)으로 통계적 언어 모델의 일종.
문장의 확률은 각 단어들이 이전 단어가 주어졌을 때 다음 단어로 등장할 확률의 곱으로 구성
\(P(w_1,w_2,w_3,w_4,w_5,...w_n)={n}∏_{n=1}P(w_n|w_1,...,w_{n−1})\)
모든 단어를 고려하지 않고 일부 단어만 고려하는 접근 방법.
- 예시)
문장이 길어질수록 데이터에서 문장이 존재 하지 않을 수 있다. 하지만 위와 같이 단어들을 줄이면 카운트 할 가능성을 높일 수 있다.
이 때 임의의 단어 개수를 정하기 위한 기준을 위해 사용하는 것이 n-gram이다. (n-gram은 n개의 연속적인 단어 나열을 의미)
n이 1일 때는 유니그램(unigram), 2일 때는 바이그램(bigram), 3일 때는 트라이그램(trigram)이라고 명명하고 n이 4 이상일 때는 N-gram으로 표기
예시) 하루 종일 비가 내리고 해는 뜨지 않았다.
유니그램(unigram) : 하루, 종일, 비가, 내리고, 해는, 뜨지, 않았다.
바이그램(bigram) : 하루 종일, 종일 비가, 내리고 해는, 해는 뜨지, 뜨지 않았다.
트라이그램(trigram) : 하루 종일 비가, 종일 비가 내리고, 비가 내리고 해는, 해는 뜨지 않았다.
4-grams : 하루 종일 비가 내리고, 종일 비가 내리고 해는, 비가 내리고 해는 뜨지, 내리고 해는 뜨지 않았다.
n-gram을 통한 언어 모델에서는 다음에 나올 단어의 예측은 오직 n-1개의 단어에만 의존
- 예시)
4-gram의 예를 들면,
하루 종일 비가 내리고 해는 뜨지 ?
\(P(않았다|내리고 해는 뜨지) = 0.06\)
\(P(만|내리고 해는 뜨지) = 0.02\)
확률적으로
"않았다"
를 선택.문장에 존재하는 앞에 나온 단어를 모두 보는 것보다 일부 단어만을 보는 것으로 현실적으로 코퍼스에서 카운트 할 수 있는 확률을 높일 수는 있었지만, n-gram 언어 모델도 여전히 n-gram에 대한 희소 문제가 존재
앞에서 몇 개의 단어를 볼지 n을 정하는 것은 trade-off가 존재.
n을 작게 선택하면 훈련 말뭉치(코퍼스)에서 카운트는 잘 되겠지만 근사의 정확도는 현실의 확률분포와 멀어짐. 앞서 언급한 trade-off 문제로 인해 정확도를 높이려면 n은 최대 5를 넘게 잡아서는 안 된다고 권장.
'Data analysis' 카테고리의 다른 글
토픽모델링(Topic Modeling)-잠재 디리클레 할당(Latent Dirichlet Allocation, LDA)(1) (0) | 2020.09.24 |
---|---|
토픽모델링(Topic Modeling)-잠재의미분석(Latent Semantic Analysis, LSA) (0) | 2020.08.19 |
KNN(K-Nearest Neighbor), 최근접 이웃법(1) (0) | 2020.07.28 |
Bayesian Network (0) | 2020.05.26 |