Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Transformer
- Self-attention
- 현대자동차
- ODQA
- Ai
- AI 경진대회
- nlp
- RNN
- GPT
- pyTorch
- matplotlib
- 딥러닝
- dataset
- 데이터 시각화
- 기아
- Attention
- word2vec
- 데이터 구축
- N2N
- mrc
- Data Viz
- 2023 현대차·기아 CTO AI 경진대회
- Optimization
- AI Math
- Bert
- N21
- passage retrieval
- KLUE
- seaborn
- Bart
Archives
- Today
- Total
쉬엄쉬엄블로그
(NLP 기초대회) Tokenization 본문
728x90
이 색깔은 주석이라 무시하셔도 됩니다.
Tokenization
Tokenization
What is Tokenization?
신경망의 경우 입력은 항상 ‘숫자’로 입력된다.
사람의 언어를 ‘숫자’로 바꾸려면 크게 2가지 문제를 풀어야 한다.
- 어떤 단위로 쪼갤 것인가?
- 어떤 숫자로 바꿀 것인가?
Text를 숫자로 변환하려는 시도
Bag of Words

https://web.stanford.edu/~jurafsky/slp3/4.pdf - 단어가 나타난 횟수를 세어 text를 숫자로 변환
- 벡터의 차원수는 어휘 개수가 됨
TF-IDF (Term Frequency-Inverse Document Frequency)

- 단어의 빈도와 역 문서 빈도를 사용하여 DTM내의 각 단어들마다 중요한 정도를 가중치 변환
Word2Vec
- 단어 벡터 간 유의미한 유사도를 반영할 수 있도록 단어의 의미를 수치화
How do we do it?
- Text를 숫자로 바꾸는 방법에는 2가지 문제를 해결해야 한다.
- text를 어떤 단위(token)로 나눌 것인가? → Tokenization
- 문장 혹은 문서들을 일정한 의미 덩어리로 쪼개는(어휘들의 조합으로 만드는) 것을 Tokenization이라고 함
- token을 어떤 숫자로 바꿀 것인가? → Embedding
- 신경망 기반 AI는 크게 보면 그냥 숫자들을 곱하기, 더하기로 묶어 놓은 것
- 특별한 숫자를 부여해주는 것을 Embedding 이라고 함
- text를 어떤 단위(token)로 나눌 것인가? → Tokenization
Tokenization Methods
다양한 단위를 고려해볼 수 있음
- Character-based Tokenization
- Word-based Tokenization
- Subword-based Tokenization
Examples

https://www.dbpia.co.kr/journal/articleDetail? nodeId=NODE07434412&language=ko_KR&hasTopBanner=false Character-based Tokenziation

- Character 단위로 token화 하는 방법
- 상대적으로 긴 length가 만들어지므로 많은 메모리 및 계산량이 필요
- 하지만 개발자 입장에서는 깔끔하고 쉬움
Word-based Tokenization

- Text를 delimeter 단위로 token화 하는 가장 흔한 방법.
- 주로 쓰이는 delimeter는 space (띄어쓰기)
- 언어에 따라 (특히 한국어) 띄어쓰기가 효율적이지 않은 경우도 많음
- Text를 delimeter 단위로 token화 하는 가장 흔한 방법.
Subowrd-based Tokenization

- 문장 혹은 단어를 통계적으로 의미있는 단위로 묶거나 분할해서 처리
- tokenization이 2개의 sub 어휘([token, ization])로 나눠짐
Subword | BPE
Byte Pair Encoding(BPE)
어휘를 묶어 나가는 알고리즘 중 하나




여기서 OOV인 lowest가 등장한다면?
- low와 est로 인코딩
- 즉, 더 작은 단위로 내려가면서 문자수준으로 결국 tokenization됨
Tokenization Tools
- KoNLPy(한국어)
- 다양한 형태소 분석, 태깅 라이브러리를 가진 한국어 정보처리 파이썬 패키지 KoNLPy
- SentencePiece(English and others)
- Google이 공개한 Tokenization 도구
- BPE, unigram 방식 등 다양한 subword units를 지원함
- Huggingface - Tokenizers
- Huggingface의 Tokenizers의 경우 기배포된 다양한 언어모델들의 tokenization방법과 어휘사전 등을 지원함
- KoNLPy(한국어)
출처: 부스트캠프 AI Tech 4기(NAVER Connect Foundation)
'부스트캠프 AI Tech 4기' 카테고리의 다른 글
| (NLP 기초대회) Huggingface (0) | 2023.07.20 |
|---|---|
| (NLP 기초대회) Transformer (0) | 2023.07.19 |
| (NLP 기초대회) NL Data 관리 및 처리 툴 소개 (0) | 2023.07.17 |
| (NLP 기초대회) PyTorch Lightning 이론 (2) | 2023.07.15 |
| (Data Viz) 인터랙티브 시각화 (0) | 2023.07.13 |
Comments