본문 바로가기
자연어처리/개념 정리

Tokenization 전처리 간단 개념 정리 2

by 아인슈페너먹고싶다 2022. 9. 10.

앞서 정리했던 Pre-tokenization 후

 

이제 Tokenization을 진행한다. 

 

 

Tokenization은 text를 임의로 지정한 단위(token)로 나누는 작업이다. 

 


 

Tokenizer는 크게 3가지 유형으로 분류할 수 있는데

 

1) Word based Tokenizer : 단어를 단위로 나누는 토크나이저

 

예를들어, The devil is is the details 이라는 문장은

 

The, devil, is, in, the, details로 나눌 수 있다. 

 

Word based Tokenizer는 Out-Of-Vocabulary (OOV), 신조어를 unknown으로 처리하는 등의 문제가 있다.

 

 

 

 

2) Character based Tokenizer : 영어를 기준으로 했을 때에는 알파벳 하나씩, 

 

한국어로는 초성, 중성, 종성 혹은 음절 단위로 나누는 토크나이저

 

예를들어, The devil is in the details

 

T, h, e, d, e, v, i, l, i, s, i, n, t, h, e, d, e, t, a, i, l, s로 나눌 수 있다.

 

Character based Tokenizer는 아무래도 길이가 긴 sequence로 이루어져 있기에 

 

vanishing gradient가 발생하기 쉽고 또한 low performance를 보인다는 단점이 있다.

 

(input sequence가 200이 넘어가면 현저하게 성능이 줄어든다고 알려져있다)

 

 

 

3) Subword based Tokenizer : Word based와 Character based의 사이인 Tokenizer이다.

 

예를들어, The devil is in the details

 

The, de, vil, is, in, the, de, tail, s로 나눌 수 있다.

 

Subword based는 상대적으로 Shorter sequence이며 Higher performance이며 

 

OOV에 자유롭다는 장점이 있다.

 

 

 


 

 

 

여러가지 Subword base 알고리즘이 있는데

 

제일 대표적으로 GPT등에 사용되는 Byte-pair Encoding (BPE)가 있다.

 

또 BERT에 활용되는 WordPiece, Unigram 등이 있다.

 

BPE 수업 자료는 다음과 같다. 

 

 

출처 : 구름 AI 자연어처리 과정

 

출처 : 구름 AI 자연어처리 과정

 

 

 

 

수업에서 강조했던 것은

 

최근 머신러닝 모델의 성능은 좋지만 data-centric AI와 같이

 

Andrew_Ng가 강조하는 것처럼 코드나 알고리즘보다 데이터 개선이 더 중요하다는 내용이었다.

 

댓글