728x90
반응형
SMALL
단어 단위 토큰화(Word - based Tokenization) 이란 ?
단위 단위 토큰화는 문장을 공백(whitespace) 또는 구분자 기준으로 나누어 각각의 단어를 하나의 토큰으로 처리하는 방식이다.
가장 직관적이고 이해하기 쉬운 토큰화 방법으로, 자연어 처리의 초기 단계에서 널리 사용되었다.
예시 :
I love an apple.
-> ["I", "love", "an", "apple', "."]
작동 방식 : 단어 사전 (Vocabulary) 만들기
우리가 가진 데이터셋에 등장하는 모든 고유한 단어들을 모아 단어 사전을 구축하게 된다.
- 수집 : 전체 텍스트에서 중복을 제거한 단어 리스트를 만든다.
- 인덱싱 : 각 단어에 고유한 숫자(ID) 를 부여한다.
- 변환 : 이제 모델에 문장을 넣을 때, 단어들을 사전의 인덱스 숫자로 전달한다.
장점 : 직관성과 단순성
- 이해하기 쉬움 : 사람이 글을 읽는 방식과 가장 유사하여 데이터 전처리 과정을 직관적으로 파악할 수 있다.
- 의미 보존 : 단어 자체가 하나의 토큰이 되므로, 토큰 하나하나가 독립적으로 명확한 의미를 가진다.
한계점
- OOV ( out - of - Vocabulary) 문제
사전에 등록되지 않은 단어가 나타나면 모델은 이를 "알수 없음 ()"으로 처리한다. - 단어수 폭발 (Vocabulary Explosion)
모든 단어를 개별 토큰으로 관리해야 하기 때문에 어휘 수가 기하급수적으로 증가한다. - 형태 변화 대응 어려움
단어의 형태가 조금만 바뀌어도 다른 토큰으로 인식된다.
예 :
run / runs/ running -> 모두 다른 토큰
언제 사용하면 좋을 까 ?
- 간단한 텍스트 처리
- 전통적인 NLP 모델
- 빠른 프로토타입 제작
파이썬 코드
# 아주 간단한 형태
text = "I love deep learning and learning is fun."
words = text.lower().replace(".", "").split()
# 중복 제거 후 사전(Vocabulary) 구축
vocab = {word: i for i, word in enumerate(set(words))}
print(f"생성된 단어 사전: {vocab}")
요약
단어 단위 토크화는 직관적이지만 유연성이 부족합니다. 이 문제를 해결하기 위해 등장한 것이 바로 글자 단위(Character-based)와 현재 가장 널리 쓰이는 서브워드(Subword) 방식입니다.
제미나이, 챗지피티 등을 이용 하여 작성
728x90
반응형
'LLM' 카테고리의 다른 글
| 6. WordPiece (0) | 2026.04.14 |
|---|---|
| 5. BPE (Byte Pair Encoding) (0) | 2026.04.13 |
| 4. 토크나이즈 - 서브워드 단위 토큰화(subword based tokenization) (0) | 2026.04.10 |
| 3. 토크나이즈 - 문자 단위 토큰화(Character - based Tokenization) (0) | 2026.04.09 |
| 1. 토큰화(Tokenizer) 이해하기 (0) | 2026.04.07 |