토큰화 (Tokenization)
쉽게 풀면
요리를 하기 전에 재료를 알맞은 크기로 손질하듯, 컴퓨터가 문장을 이해하려면 먼저 문장을 다룰 수 있는 작은 조각으로 잘라야 합니다. 이 작업이 바로 토큰화입니다. 가장 단순하게는 띄어쓰기 단위로 자를 수 있지만, "먹었습니다"처럼 조사와 어미가 붙는 한국어나 처음 보는 신조어를 다루려면 더 정교한 방법이 필요합니다. 그래서 요즘 언어 모델은 단어보다 더 작은 "부분단어(subword)" 단위로 텍스트를 쪼개, 흔한 단어는 통째로 하나의 토큰으로 두고 낯선 단어는 아는 조각들의 조합으로 표현합니다.
왜 중요한가
토큰화는 자연어처리 파이프라인의 가장 첫 단계로, 이후의 임베딩과 모델 학습 전체가 어떤 단위로 텍스트를 쪼갰는지에 따라 크게 영향을 받기 때문에 논문에서 세심하게 다루어집니다. 어휘 사전의 크기, 모델이 처리해야 하는 시퀀스 길이, 희귀 단어나 다국어 처리 능력이 모두 토큰화 방식 선택과 직결되어 있어, 대형 언어모델을 다루는 최근 연구에서는 토큰화 전략 자체가 성능과 비용을 좌우하는 설계 변수로 취급됩니다. 특히 한국어처럼 조사·어미가 붙는 교착어의 경우 토큰화 품질이 모델 성능에 미치는 영향이 더욱 두드러집니다.
어떤 절차인가
토큰화는 텍스트를 모델이 다루는 단위(토큰)로 나누고, 각 토큰을 어휘 사전의 번호로 바꾸는 전처리 단계입니다. 단위를 어떻게 잡느냐에 따라 방법이 갈립니다. 서브워드 방식 가운데 바이트 쌍 인코딩(BPE)은 원래 1994년 필립 게이지가 설명한 데이터 압축 알고리즘이며, 언어 모델용으로 바꾼 변형은 가장 자주 이웃하는 토큰 쌍을 새 토큰으로 합치는 일을 정해 둔 어휘 크기에 이를 때까지 반복합니다.
- 모든 단어를 글자 단위로 쪼개 놓고 시작합니다.
- 이웃한 두 토큰의 쌍이 말뭉치에서 몇 번 나오는지 셉니다.
- 가장 자주 나오는 쌍을 하나의 새 토큰으로 합칩니다(합친 규칙을 기록).
- 어휘가 목표 크기가 될 때까지 2~3을 반복합니다.
- 새 문장은 기록한 규칙을 순서대로 적용해 나눕니다.
아래는 계산으로 확인한 작은 예입니다(가상의 말뭉치: low 5번, lower 2번, newest 6번, widest 3번).
| 단계 | 합친 쌍(빈도) | 합친 뒤 모습 |
|---|---|---|
| 시작 | — | l o w / l o w e r / n e w e s t / w i d e s t |
| 1 | e + s (9) | n e w es t / w i d es t |
| 2 | es + t (9) | n e w est / w i d est |
| 3 | l + o (7) | lo w / lo w e r |
| 4 | lo + w (7) | low / low e r |
| 5 | e + w (6) | n ew est |
말뭉치에 없던 단어 “lowest”는 같은 규칙을 순서대로 적용하면 “low + est” 두 조각이 됩니다. 처음 보는 단어도 아는 조각의 조합으로 표현되는 것이 서브워드 방식의 요점입니다. 빈도가 같은 쌍이 여럿일 때 무엇을 먼저 합칠지는 구현마다 정하는 규칙이 달라서, 위 표는 사전순으로 고른 한 예입니다.
언제 쓰고 무엇을 얻나
같은 ‘토큰화’라도 두 갈래의 쓰임이 있습니다.
| 쓰임 | 목적 | 전형적인 모습 |
|---|---|---|
| 모델 입력용 | 모델이 다룰 어휘를 정하고 모르는 단어도 처리 | 서브워드 토크나이저(BPE, 유니그램 언어모델, SentencePiece 등) |
| 텍스트 분석용 | 단어 빈도·토픽 분석을 위한 전처리 | 토큰화 → 명사 등 품사 추출 → 불용어 제거 → 동의어 통일 |
모델 입력용 방법의 특징은 대표 논문에서 확인됩니다.
- Sennrich 등(2016)은 신경 기계번역이 고정 어휘를 쓰지만 번역은 열린 어휘 문제라는 점에서 출발해, 희귀어·미등록어를 서브워드 단위의 열로 부호화하는 방법을 제안했습니다. 문자 n-gram 모델과 BPE 기반 분절을 비교했고, 서브워드 모델이 사전으로 대체하는(back-off dictionary) 기준선보다 낫다고 보고했습니다.
- Kudo(2018)는 같은 어휘로도 한 문장을 여러 방식으로 나눌 수 있다는 점에 주목해, 학습 중에 여러 분절을 확률적으로 뽑아 쓰는 서브워드 정규화와 유니그램 언어모델 기반의 새 분절 알고리즘을 제안했습니다.
- Kudo와 Richardson(2018)의 SentencePiece는 입력이 미리 단어로 나뉘어 있다고 가정하는 기존 도구와 달리 원문 문장에서 직접 서브워드 모델을 학습하는 언어 독립적 도구입니다.
텍스트 분석용 사례는 한국 연구에서 흔합니다. 여성체육학·노인체육·체육측정평가 분야 연구동향 분석에서 제목이나 초록을 토큰화해 명사만 추출하고 불용어를 제거한 뒤 토픽모델링을 했다는 서술이 반복됩니다.
논문에는 이렇게 적는다
토큰화 방식은 결과를 바꾸므로 재현에 필요한 정보를 적습니다.
- 토크나이저의 종류와 구현(BPE, SentencePiece 유니그램, 형태소 분석기 등)과 버전
- 어휘 크기, 특수 토큰, 최대 입력 길이
- 토크나이저를 학습한 말뭉치와 전처리(정규화, 소문자화 여부)
- 텍스트 분석이라면 어떤 품사를 남겼는지, 불용어 목록의 출처
예시 문장(가상의 예): “입력 문장은 어휘 크기 32,000의 BPE 토크나이저로 서브워드 단위로 나누었고, 최대 길이 128 토큰을 넘는 문장은 잘라 냈다.”
논문에서는 이렇게 쓰입니다
실제 논문에서
국내 학술지 논문에서 이 용어가 쓰인 문장을 그대로 옮겼습니다. 제목·학술지·연도와 원문 링크를 함께 적었습니다.
“수집된 자료는 토픽모델 링을 분석하기 위해 토큰화를 통해 명사단어를 추출하고, Stopwords를 사용해 불필요한 단어를 제거하였으 며, 동일한 의미의 단어들은 하나의 공통단어로 변환하는 등의 텍스트 전처리 과정을 수행하였다.”
토픽모델링을 통한 여성체육학 분야의 연구동향 분석: 한국여성체육학회지를 중심으로, 한국여성체육학회지, 2022 · KCI 한국학술지인용색인 · 원문 보기 ↗
“분석 첫 단계로 Tokenization을 통해 명사단어만을 추출하였고, Stopwords를 실시하여 특별한 의미를 갖지 않는 불필요한 단어를 제거하였다.”
토픽모델링을 적용한 한국체육측정평가학회지 연구동향 분석, 한국체육측정평가학회지, 2017 · KCI 한국학술지인용색인 · 원문 보기 ↗
“이를 위하여 초록 내의 모든 단어를 토큰화하고 표제어추출을 한 뒤, 명사와 형용사에 해당하는 단어만 추출하였다.”
계량적 모델을 통한 지리학 연구의 최신동향 및 토픽 분석, 대한지리학회지, 2020 · KCI 한국학술지인용색인 · 원문 보기 ↗
예시 문장
아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.
이 문장은 "모델에 넣기 전에, 문장을 자주 등장하는 부분단어 조각들로 나누는 BPE 방식을 이용해 처리했다"는 뜻입니다.
언어 특성에 맞춘 토큰화 방식이 자연어처리 하위 과제의 성능에 영향을 준다는 예문이다.
토큰화 개념이 언어 텍스트뿐 아니라 생물정보학의 서열 데이터 처리에도 응용됨을 보여주는 문장이다.
조금 더 깊게 보면
대표적인 서브워드 토큰화 방식으로는 BPE 외에도 WordPiece, SentencePiece, Unigram 언어모델 방식 등이 있으며, 각각 자주 등장하는 문자 조합을 병합하거나 확률적으로 최적의 분절을 찾는 방식에서 세부적인 차이가 있습니다. 토큰화 결과로 만들어진 어휘 사전의 크기는 모델의 임베딩 층 크기와 계산 비용에 직접 영향을 미치기 때문에, 논문에서는 흔히 어휘 사전 크기와 시퀀스 압축률(토큰당 평균 문자 수) 사이의 절충을 함께 보고합니다.
주의할 점
토큰화는 단순히 띄어쓰기로 단어를 나누는 것과 같다고 오해하기 쉽지만, 실제로는 언어와 목적에 따라 문자·부분단어·단어 등 단위가 달라지며, 어떤 토큰화 방식을 쓰느냐에 따라 어휘 사전의 크기와 모델 성능이 크게 달라집니다. 이렇게 만들어진 토큰들은 이후 임베딩 과정을 거쳐 숫자 벡터로 변환되어야 신경망이 계산할 수 있습니다.
헷갈리기 쉬운 용어
토큰화의 앞뒤에서 같이 나오는 용어입니다.
| 용어 | 한 줄 설명 | 토큰화와의 관계 |
|---|---|---|
| 바이트 페어 인코딩 | 자주 붙어 나오는 글자 쌍을 합쳐 서브워드로 쪼개는 방법 | 토큰화의 한 방법입니다. |
| 임베딩 | 데이터를 숫자 벡터로 바꾼 표현 | 토큰화가 낸 토큰을 벡터로 바꾸는 다음 단계입니다. |
| 자연어처리 | 컴퓨터가 사람의 언어를 이해하고 생성하도록 다루는 분야 | 토큰화는 그 파이프라인의 첫 단계입니다. |
| 대규모 언어 모델 | 대량의 텍스트로 학습한 언어 모델 | 토크나이저가 어휘와 입력 길이를 정해 모델의 입력 단위가 됩니다. |
참고 문헌
- Sennrich, R., Haddow, B., & Birch, A. (2016). Neural machine translation of rare words with subword units. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 1715–1725.
- Kudo, T. (2018). Subword regularization: Improving neural network translation models with multiple subword candidates. Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 66–75.
- Kudo, T., & Richardson, J. (2018). SentencePiece: A simple and language independent subword tokenizer and detokenizer for neural text processing. Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations, 66–71.
- Jurafsky, D., & Martin, J. H. (2008). Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition (2nd ed.). Pearson Prentice Hall.
표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.