자연어 문장을 작은 단위인 토큰으로 분석하는 과정을 학습합니다.
토큰화: 문장을 토큰 시퀀스로 나누는 과정
토크나이저: 토큰화를 수행하는 프로그램
단어 단위 토큰화
- ex) 어제 카페 갔었어 -> 어제, 카페, 갔었어
- 어휘 집합의 크기가 매우 커질 수 있다
- 갔었어, 갔었는데요 같이 살짝만 바뀌어도 어휘 집합에 다 포함시켜야한다
문자 단위 토큰화
- ex) 어제 카페 갔었어 -> 어,제, 카,페, 갔,었,어
- 해당 언어의 모든 문자를 어휘 집합에 포함하므로 미등록 토큰 문제로부터 자유롭습니다
- 각 문자 토큰은 의미 있는 단위가 되기 어렵습니다
서브워드 단위 토큰화
- 단어와 문자 단위 토큰화의 중간에 있는 형태로 토큰화
- 대표적인 방법으로 바이트 페어 인코딩
바이트 페어 인코딩(BPE): 원래 정보를 압축하는 알고리즘, 최근에는 자연어 처리 모델이 쓰이는 토큰화 기법
- 데이터에 등장한 글자를 초기 사전으로 구성해 연속된 두 글자를 한 글자로 병합
BPE 활용한 토큰화 절차
1. 어휘집합구축: 자주 등장하는 문자열 병합하고, 어휘 집합에 추가
2. 토큰화: 토큰화 대상 문장의 각 어절에서 어휘 집합에 있는 서브워드가 포함되었을 때 해당 서브워드를 어절에서 분리합니다
BPE 어휘 집합 구축하기
토큰 | 빈도 |
h,u,g | 10 |
p,u,g | 5 |
p,u,n | 12 |
b,u,n | 4 |
h,u,g,s | 5 |
여기서 토큰을 2개씩 묶어서 나열한다
바이그램 쌍 | 빈도 |
b,u | 4 |
g,s | 5 |
h,u | 15 |
p,u | 17 |
u,g | 20 |
u,n | 16 |
가장 많이 등장한 바이그램 쌍은 u,g이다. 따라서 ug를 어휘 집합에 추가한다.
추가한 어휘 집합을 토대로 위의 과정을 반복한다.
이런식으로 사용자가 정한 크기가 될 때까지 이러한 과정을 반복해서 수행한다
반응형
'머신러닝' 카테고리의 다른 글
[머신러닝] 미리 학습된 언어 모델과 트랜스포머 (0) | 2023.02.17 |
---|---|
[머신러닝] 자연어 처리 유사도 분석 (0) | 2023.02.13 |
[머신러닝] 자연어 처리 개요 (0) | 2023.02.10 |
댓글