๐ Multilingual Tokenization Challenges
๐ฏ Common Challenges
1. No Word Boundaries (Chinese, Japanese, Thai)
Chinese: "ไฝ ๅฅฝไธ็" โ No spaces!
Solution: Character-level or SentencePiece
2. Right-to-Left Text (Arabic, Hebrew)
Arabic: "ู
ุฑุญุจุง" โ RTL direction
Solution: Bidirectional-aware tokenizers
3. Combining Characters (Indic Scripts)
Hindi: "เคจเคฎเคธเฅเคคเฅ" โ Complex character combinations
Solution: Unicode normalization (NFC)
๐ป Best Practices
import unicodedata
from transformers import AutoTokenizer
# 1. Always normalize Unicode
text = unicodedata.normalize('NFC', text)
# 2. Use multilingual tokenizers
tokenizer = AutoTokenizer.from_pretrained("xlm-roberta-base")
# 3. Test with real data
texts = ["Hello", "ไฝ ๅฅฝ", "ู
ุฑุญุจุง", "เคจเคฎเคธเฅเคคเฅ"]
for t in texts:
tokens = tokenizer.tokenize(t)
print(f"{t} โ {tokens}")
๐ Related Concepts
- 01.c SentencePiece - Language-agnostic solution
- 01.a BPE - BPE algorithm
- Vectorization - Next step
Next: 01 BUILD Tokenizer - Build your own tokenizer
