본문 바로가기
Data analysis

N-gram

by 5bluewhale 2020. 8. 7.
자연어처리.utf8

자연어처리(Natural Language Processing)

자연어?

  • 일상 생활에서 사용하는 언어

자연어처리?

  • 자연어의 의미를 분석하여 컴퓨터가 처리할 수 있도록 하는 일

    • 자연어 처리는 음성 인식, 내용 요약, 번역, 사용자의 감성 분석, 텍스트 분류 작업(스팸 메일 분류, 뉴스 기사 카테고리 분류), 질의 응답 시스템, 챗봇과 같은 곳에서 사용되는 분야

    • 최근 딥 러닝이 주목을 받으면서, 인공지능이 IT 분야에서 중요 키워드로 떠오름. 자연어 처리는 기계에게 인간의 언어를 이해시킨다는 점에서 인공지능에 있어서 가장 중요한 연구 분야이면서도, 아직도 정복되어야 할 산이 많은 분야


언어 모델(Language Model)

  • 언어 모델(Languagel Model)이란 단어 시퀀스(문장)에 확률을 할당하는 모델을 말한다.

  • 단어 시퀀스에 확률을 할당하게 하기 위해서 가장 보편적으로 사용되는 방법은 언어 모델이 이전 단어들이 주어졌을 때 다음 단어를 예측하도록 하는 것

    • 언어 모델을 만드는 방법은 크게는 통계를 이용한 방법과 인공 신경망을 이용한 방법으로 구분

    • 최근에는 통계를 이용한 방법보다는 인공 신경망을 이용한 방법이 더 좋은 성능을 보여주고 있다.


통계적 언어 모델(Statistical Language Model)

  • 조건부 확률에 기반하여 문장의 확률(카운트 기반)을 계산.

    • 예시)
\(P(동물이다|강아지와 고양이는) ={count(강아지와 고양이는 동물이다)\over count(강아지와 고양이는)}\)

카운트를 기반으로 하기 때문에 충분한 데이터를 관측하지 못하여 언어를 정확히 모델링하지 못하는 문제가 발생 이를 희소 문제(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})\)

  • 모든 단어를 고려하지 않고 일부 단어만 고려하는 접근 방법.

    • 예시)
\(P(동물이다|강아지와고양이는) ≈ P(동물|고양이)\)
  • 문장이 길어질수록 데이터에서 문장이 존재 하지 않을 수 있다. 하지만 위와 같이 단어들을 줄이면 카운트 할 가능성을 높일 수 있다.

  • 이 때 임의의 단어 개수를 정하기 위한 기준을 위해 사용하는 것이 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(?|내리고 해는 뜨지) ={count(내리고 해는 뜨지 ?)\over count(해는 뜨지)}\)

\(P(않았다|내리고 해는 뜨지) = 0.06\)

\(P(만|내리고 해는 뜨지) = 0.02\)

  • 확률적으로 "않았다"를 선택.


  • 문장에 존재하는 앞에 나온 단어를 모두 보는 것보다 일부 단어만을 보는 것으로 현실적으로 코퍼스에서 카운트 할 수 있는 확률을 높일 수는 있었지만, n-gram 언어 모델도 여전히 n-gram에 대한 희소 문제가 존재

  • 앞에서 몇 개의 단어를 볼지 n을 정하는 것은 trade-off가 존재.

  • n을 작게 선택하면 훈련 말뭉치(코퍼스)에서 카운트는 잘 되겠지만 근사의 정확도는 현실의 확률분포와 멀어짐. 앞서 언급한 trade-off 문제로 인해 정확도를 높이려면 n은 최대 5를 넘게 잡아서는 안 된다고 권장.

728x90
반응형