개념 잡동사니

N-Gram

wikys 2026. 4. 19. 10:25

잘난 척을 위한 한 줄 요약

N-gram은 텍스트를 한 단어씩 따로 보지 않고, 연속해서 붙어 나오는 단어 묶음으로 보는 방식이라서 “단어 자체”보다 “단어의 연결 패턴”을 잡아내는 데 강하다.

 

N-Gram, 컴퓨터는 왜 단어 하나보다 ‘붙어 다니는 단어 묶음’을 더 중요하게 볼까

먼저, N-Gram이 뭔지부터

N-gram은 텍스트를 연속된 N개의 토큰 묶음으로 잘라 보는 방식이다.
여기서 토큰은 보통 단어일 때가 많지만, 문자 단위일 수도 있다.

 

즉, 핵심은 아주 단순하다.

  • 1개씩 보면 1-gram
  • 2개씩 붙여 보면 2-gram
  • 3개씩 붙여 보면 3-gram

 

예를 들어 문장이 이렇게 있다고 해보자.

“나는 오늘 커피를 마셨다”

이걸 단어 기준으로 보면,

1-gram

  • 나는
  • 오늘
  • 커피를
  • 마셨다

2-gram

  • 나는 오늘
  • 오늘 커피를
  • 커피를 마셨다

3-gram

  • 나는 오늘 커피를
  • 오늘 커피를 마셨다

즉, N-gram은 텍스트를 연속된 조각 묶음으로 보는 방법이다.

 


왜 굳이 이렇게 묶어서 볼까?

이유는 단어 하나만 보면 놓치는 정보가 많기 때문이다.

예를 들어 “금리”와 “인상”이라는 단어가 있다고 해보자.
이 두 단어를 따로 보면 그냥 개별 단어일 뿐이다.
그런데 “금리 인상” 이라는 2-gram으로 보면, 이건 하나의 의미 덩어리처럼 읽힌다.

 

즉, N-gram은 단어를 따로따로 보는 것보다 붙어 나오는 패턴을 더 잘 잡아낸다.

그래서 컴퓨터가 문서를 이해하거나, 검색하거나, 분류할 때 단어 자체뿐 아니라 단어 조합의 습관을 볼 수 있게 해 준다.

 


N은 왜 중요할까?

여기서 N은 그냥 숫자가 아니라,
얼마나 긴 묶음으로 볼지를 결정하는 기준이다.

 

1-gram

가장 단순하다. 단어 하나하나만 본다.

장점은 쉽고 빠르다.

단점은 문맥이 약하다.

예를 들어 “인공지능”과 “모델”은 볼 수 있어도 “인공지능 모델” 이라는 하나의 표현은 못 잡는다.

 

2-gram

연속된 두 단어를 본다. 문맥이 조금 더 살아난다.

예를 들어

  • 머신 러닝
  • 딥 러닝
  • 금리 인상
  • 자연어 처리

같은 표현을 한 묶음처럼 볼 수 있다.

 

3-gram 이상

문맥은 더 풍부해진다.
예를 들어

  • 오늘 날씨 좋다
  • 생성형 AI 모델
  • 한국은행 기준 금리

같은 더 긴 패턴을 잡을 수 있다.

하지만 너무 길어질수록 문제가 생긴다.
같은 조합이 다시 나올 가능성이 줄어들고, 데이터가 희소해진다.

 

즉,

  • N이 작으면 단순하고 넓게 본다
  • N이 크면 문맥은 좋아지지만 데이터가 듬성듬성해진다

 


어디에 많이 쓰일까?

N-gram은 생각보다 정말 여러 곳에 쓰인다.

 

1. 언어 모델의 기초

옛날 통계적 언어모델에서는 다음 단어를 예측할 때 N-gram 기반 확률을 많이 썼다.

예를 들어 “나는 밥을” 다음에 “먹었다”가 올 확률이 높다는 식으로, 이전 단어 몇 개를 보고 다음 단어를 예측하는 구조다.

즉, N-gram은 언어를 확률적으로 다루는 가장 기본적인 방법 중 하나였다.

 

2. 텍스트 분류

문서가 어떤 주제인지 분류할 때도 유용하다.
단어 하나만 보는 것보다

  • “주가 상승”
  • “금리 인상”
  • “정책 발표”

같은 2-gram, 3-gram이 더 주제를 잘 드러내는 경우가 많다.

 

3. 검색과 키워드 처리

검색어가 “딥러닝 모델”일 때 단순히 “딥러닝”, “모델”을 따로 보는 것보다 이 둘이 붙어 있는 표현을 같이 보는 게 더 정확할 수 있다.

 

4. 맞춤법·자동완성·오타 탐지

문자 단위 N-gram도 자주 쓰인다.
예를 들어 “apple”을 문자 3-gram으로 보면

  • app
  • ppl
  • ple

같이 쪼갤 수 있다.

이런 방식은 오타가 있어도 어느 정도 비슷한 패턴을 잡는 데 도움이 된다.

 


단어 N-gram과 문자 N-gram은 뭐가 다를까?

이것도 꽤 중요하다.

 

단어 N-gram

단어를 기준으로 묶는다.

예:

  • 인공지능 모델
  • 자연어 처리 기술

장점은 의미 단위를 잘 반영한다.
단점은 띄어쓰기, 형태 변화, 희귀 단어에 민감할 수 있다.

 

문자 N-gram

문자를 기준으로 묶는다.

예:

  • 자 연 어
  • 자연어
  • 연어처

문자 단위로 조금씩 겹치게 잘라 본다.

장점은 오타, 형태 변화, 짧은 텍스트 처리에 강할 수 있다.
단점은 사람이 보기에 의미가 덜 직관적이다.

 

즉,

  • 의미 중심이면 단어 N-gram
  • 패턴 유사성 중심이면 문자 N-gram

처럼 이해하면 된다.

 


Bag of Words랑은 뭐가 다를까?

이건 TF-IDF랑 같이 볼 때 자주 나온다.

 

Bag of Words

단어가 문서에 몇 번 나왔는지만 본다.
순서 정보는 거의 없다.

예를 들어

  • “나는 너를 사랑해”
  • “너를 나는 사랑해”

이 두 문장은 Bag of Words로 보면 거의 비슷하게 처리될 수 있다.

 

N-Gram

연속된 순서를 본다.
즉, 단어가 어떤 순서로 붙어 있는지가 반영된다.

그래서 N-gram은 Bag of Words보다 문맥과 표현 패턴을 조금 더 살릴 수 있다.

 

쉽게 말하면,

  • Bag of Words: 단어 목록
  • N-Gram: 단어 연결 조각

이다.

 


N-Gram의 장점은 뭘까?

1. 구현이 쉽다

아이디어가 단순해서 이해하고 적용하기 쉽다.

 

2. 표현 단위를 더 풍부하게 만든다

단어 하나만 볼 때보다
자주 함께 등장하는 표현을 잘 잡는다.

 

3. 고전적인 방법이지만 여전히 유용하다

딥러닝 이전 시대의 기술 같아 보여도, 작은 데이터셋이나 간단한 문제에서는 여전히 꽤 쓸 만하다.

특히 검색, 분류, 키워드 분석, 자동완성 같은 곳에서는 지금도 충분히 실용적이다.

 


한계도 있다

물론 N-gram도 만능은 아니다.

 

1. N이 커질수록 희소해진다

예를 들어 5-gram, 6-gram처럼 길게 가면 같은 표현이 반복될 가능성이 확 줄어든다.

즉, 특징 수는 많아지는데 실제로 자주 등장하지 않아서 데이터가 듬성듬성해진다.

 

2. 긴 문맥은 잘 못 본다

N-gram은 연속된 짧은 조각만 본다.
그래서 문장 전체 의미나 긴 거리의 관계는 잘 못 잡는다.

예를 들어 문장 앞과 뒤가 연결되는 깊은 의미는 N-gram만으로는 한계가 있다.

 

3. 의미를 이해하는 건 아니다

“자동차”와 “차량”이 비슷한 말이라는 걸 N-gram은 스스로 이해하지 못한다.
그냥 같이 등장했는지, 붙어 나왔는지 정도만 본다.

 

즉, N-gram은 문맥 패턴에는 강하지만 의미 이해에는 약하다.

 


이 개념을 볼 때 같이 체크하면 좋은 것

N-gram을 볼 때는 아래를 같이 보면 좋다.

 

어떤 단위로 자르는가

단어 기준인지, 문자 기준인지에 따라 성격이 달라진다.

 

몇 gram까지 쓰는가

1-gram만 쓸지, 2-gram과 3-gram도 같이 쓸지에 따라 모델 성격이 많이 달라진다.

 

희소성 문제를 어떻게 다루는가

N-gram이 많아질수록 특징 수가 폭발하기 쉽다.
그래서 TF-IDF, 빈도 제한, 차원 축소 같은 방법과 같이 쓰는 경우가 많다.

 


결국 핵심은 이것이다

N-gram은 텍스트를 연속된 N개의 단위 묶음으로 보는 방식이다.
이 방법의 핵심 가치는 단어를 따로따로 보는 게 아니라, 붙어 나오는 패턴을 잡을 수 있다는 데 있다.

 

즉, 컴퓨터에게 N-gram은 이렇게 말해 주는 방식이라고 보면 된다.

“단어 하나만 보지 말고, 같이 붙어 다니는 표현도 같이 봐.”

 

아주 짧게 정리하면 이렇게 기억하면 된다.

1-gram은 단어 하나, 2-gram은 두 단어 묶음, 3-gram은 세 단어 묶음이고, N-gram은 결국 텍스트의 ‘연결 습관’을 보는 방법이다.

 


참고 자료

 

Speech and Language Processing

Speech and Language Processing (3rd ed. draft) Dan Jurafsky and James H. Martin Here's our Jan 6, 2026 release! This release has is mainly a cleanup and bug-fixing release, with some updated figures for the transformer in various chapters. The August relea

web.stanford.edu

 

CountVectorizer

Gallery examples: Topic extraction with Non-negative Matrix Factorization and Latent Dirichlet Allocation Semi-supervised Classification on a Text Dataset FeatureHasher and DictVectorizer Comparison

scikit-learn.org

 

TfidfVectorizer

Gallery examples: Topic extraction with Non-negative Matrix Factorization and Latent Dirichlet Allocation Biclustering documents with the Spectral Co-clustering algorithm Column Transformer with He...

scikit-learn.org

 


참고 영상

 

- YouTube

 

www.youtube.com

 

- YouTube

 

www.youtube.com

 

- YouTube

 

www.youtube.com

 

반응형