본문 바로가기

자연어 처리(NLP)/전처리(Pre-processing)5

Tokenizer : 기본적인 토큰화(Tokenization) 방법 0. Introduction기본적으로 언어를 입력받는 모델은 바로 텍스트(원시 문자열)를 입력받지 못합니다. 이는 시계열 데이터와 같이 숫자로 이루어진 데이터가 아니기 때문입니다. 따라서 우리는 모델에 텍스트를 입력하기 위해 원시 문자열을 숫자의 형태로 바꿔 줄 필요가 있습니다. 이때 원시 문자열을 숫자로 바꾸는 과정을 '임베딩(Embedding) 혹은 토큰화(Tokenization)' 이라고 합니다.(가끔은 인코딩(encoding)이라고 부르는 분들도 있습니다) 이번 포스트에서는 가장 기본적인 형태의 토큰화 방법에 대해 정리하고자 합니다. 1. 문자 토큰화(Character-based tokenization)가장 간단한 토큰화 방법은 각 문자를 1,2,3 과 같이 숫자로 바꿔서 모델에 입력하는 방법입니.. 2024. 9. 26.
WordPiece Tokenizer 이해 및 정리 1. 워드피스(WordPiece) Tokenizer란? 워드피스(WordPiece) Tokenizer는 Subword Tokenization의 일종으로써 주어진 텍스트를 하위단어(subword)로 쪼개는 방식입니다. 하나의 단어는 접두사 혹은 접미사가 붙어서 여러 형태로 변화할 수 있기 때문에 기존에 단어를 그대로 토큰화하는 방법보다는 유연하게 Out of Vocabulary(모델이 처음 보는 단어를 마주한 경우)에 대처할 수 있습니다. Subword tokenizer에는 여러 종류가 있지만, 이번 포스트에서는 BERT에서 사전학습에 사용한 것으로 유명한 WordPiece tokenizer에 대해 정리해보고자 합니다. 2. BPE Tokenizer와의 차이점? Wordpiece tokenizer의 토크화.. 2023. 12. 18.
Byte Pair Encoding(BPE) tokenizer 정리 1. SubWord Tokenizer 일반적으로 토큰화(Tokenizer)는 의미를 가진 토큰(단어 등)으로 쪼개서 토큰을 만드는 작업을 말합니다. 토큰화의 목적은 텍스트를 모델이 이해할 수 있는 데이터로 만들어주는 것입니다. 텍스트를 토큰화하는 방법은 크게 3가지로 분류할 수 있습니다. 1. 단어 기반 토큰화(Word-based tokenization) 공백을 기준으로 토큰화하는 방법('나는 밥을 먹었다' -> '나는', '밥을', '먹었다') 매우 간단한 아이디어지만, 훈련에 사용하지 않은 새로운 단어에 대해 대처가 어려운 단점이 존재한다.(Out of Vocabulary) 2. 문자 기반 토큰화(Character-based tokenization) 텍스트의 구성요소인 문자 단위로 토큰화하는 방법('.. 2023. 12. 11.
Khaiii 형태소 분석기 설치 및 사용방법 1. 개요 Khaiii 형태소 분석기는 카카오에서 공개한 형태소 분석기입니다. 기존 Konlpy에서 제공하는 형태소 분석기의 공통적인 특징은 사전과 규칙기반(명사/형용사 등등)으로 형태소를 분석해 주는 반면, khaiii는 데이터 기반 알고리즘을 이용해서 분석하였다고 합니다. 사용한 데이터의 양은 85만 문장과 천만 어절의 코퍼스를 이용하였습니다. khaiii가 데이터를 가지고 형태소 분석기를 만들 때 사용한 기계학습 알고리즘은 CNN(Convolution Neural Network)입니다. 대규모 언어 모델을 학습하기 위해서는 엄청난 양의 문장을 전처리 해야 하기 때문에 속도가 빠른 CNN을 사용한 것으로 보입니다. Khaiii는 어떤 단어의 주변단어의 갯수(Window size)와 임베딩 차원(Emb.. 2023. 11. 15.
Tokenizer : 한국어 형태소 분석기의 종류와 사용 방법 1. 형태소 분석기의 필요성 한국어는 영어와는 다르게 토큰화(Tokenization)가 어렵습니다. 그 이유는 한국어에는 '조사', '어미' 등이 있기 때문입니다. 예를 들어, '사과' 라는 단어에 대해 조사가 붙는다고 하면 '사과가', '사과는', '사과를', '사과와' 등처럼 붙게 됩니다. 모두 '사과'를 지칭하는 말이지만, 단순히 띄어쓰기 기준(어절)으로 모두 다른 단어로 취급하게 됩니다. 또한, 띄어쓰기 기준으로 토큰화를 진행하게 된다면 띄어쓰기가 잘 되어있지 않은 문장에 대해 제대로 된 토큰화를 수행할 수 없다는 단점이 있습니다. 예를 들면, 다음과 같이 띄어쓰기 기준으로 토큰화를 한다고 하였을 때, 띄어쓰기가 제대로 되어있지 않은 문장에 대해서는 토큰화가 이루어지지 않습니다. '나는 사과를 좋.. 2022. 7. 26.