앞서 정리했던 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 수업 자료는 다음과 같다.
수업에서 강조했던 것은
최근 머신러닝 모델의 성능은 좋지만 data-centric AI와 같이
Andrew_Ng가 강조하는 것처럼 코드나 알고리즘보다 데이터 개선이 더 중요하다는 내용이었다.
'자연어처리 > 개념 정리' 카테고리의 다른 글
Attention 간단 개념 정리 2 (0) | 2022.09.13 |
---|---|
Naive Bayes Classifier 간단 개념 정리 (0) | 2022.09.12 |
NLP Preprocessing(전처리) 간단 개념 정리 1 (0) | 2022.09.09 |
Attention 간단 개념 정리 (1) | 2022.09.08 |
Sequence to Sequence 간단 개념 정리 (2) | 2022.09.07 |
댓글