잘난 척을 위한 한 줄 요약
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은 결국 텍스트의 ‘연결 습관’을 보는 방법이다.
참고 자료
- Wikipedia, N-gram
https://en.wikipedia.org/wiki/N-gram - Stanford NLP / Speech and Language Processing 자료
https://web.stanford.edu/~jurafsky/slp3/ - scikit-learn, CountVectorizer
https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html - scikit-learn, TfidfVectorizer
https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html
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
참고 영상
- N-gram explained
https://www.youtube.com/results?search_query=N-gram+explained - N-gram language model
https://www.youtube.com/results?search_query=N-gram+language+model - N-Gram 설명
https://www.youtube.com/results?search_query=N-Gram+%EC%84%A4%EB%AA%85
- YouTube
www.youtube.com
- YouTube
www.youtube.com
- YouTube
www.youtube.com
'개념 잡동사니' 카테고리의 다른 글
| 어텐션 메커니즘(attention mechanism) (0) | 2026.04.21 |
|---|---|
| 워드 임베딩(word embedding) (0) | 2026.04.20 |
| TF-IDF(Term Frequency, Inverse Document Frequency) (0) | 2026.04.18 |
| 보완자본(AT1, Additional Tier 1 capital) (1) | 2026.04.17 |
| 신종자본증권 (1) | 2026.04.16 |