High-quality pretrained tokenizers for the Tatar language
This repository contains 4 specialized tokenizers for Tatar, trained on a cleaned 103M-token corpus using different algorithms. These tokenizers significantly outperform generic multilingual tokenizers and are optimized for Tatar NLP tasks and language model training.
TatarTokenizers - Tatar Subword Tokenizers
High-quality pretrained tokenizers for the Tatar language
This repository contains 4 specialized tokenizers for Tatar, trained on a cleaned 103M-token corpus using different algorithms. These tokenizers significantly outperform generic multilingual tokenizers and are optimized for Tatar NLP tasks and language model training.
1# Check vocabulary size2vocab_size = tokenizer.vocab_size
3print(f"Vocabulary size: {vocab_size}")45# Get special tokens6special_tokens = tokenizer.special_tokens_map
7print("Special tokens:", special_tokens)89# Check token for specific word10token_id = tokenizer.convert_tokens_to_ids("татарча")11print(f"'татарча' token ID: {token_id}")
Different Tokenizers Comparison
python
1from transformers import AutoTokenizer, T5Tokenizer
23defcompare_tokenizers(text):4"""Compare different tokenizers on the same text"""56 tokenizers ={7"BPE": AutoTokenizer.from_pretrained("arabovs-ai-lab/TatarTokenizers", subfolder="bpe"),8"WordPiece": AutoTokenizer.from_pretrained("arabovs-ai-lab/TatarTokenizers", subfolder="wordpiece"),9"Unigram": AutoTokenizer.from_pretrained("arabovs-ai-lab/TatarTokenizers", subfolder="unigram"),10"SentencePiece": T5Tokenizer.from_pretrained("arabovs-ai-lab/TatarTokenizers", subfolder="sentencepiece")11}1213print(f"Text: {text}")14print("="*50)1516for name, tok in tokenizers.items():17 tokens = tok.tokenize(text)18 ids = tok.encode(text)19print(f"{name:12} | Tokens: {len(tokens):2d} | IDs: {ids}")20print(f"{'':12} | {tokens}")2122# Test with different texts23test_texts =[24"Татар теле морфологик бай тел.",25"Безнең модельләр яхшы эшли.",26"Синтетик телләрдә токенизация катлаулырак."27]2829for text in test_texts:30 compare_tokenizers(text)31print("\n")
Advanced Features
python
1# Save and load local copy2tokenizer.save_pretrained("./my-tatar-tokenizer")3loaded_tokenizer = AutoTokenizer.from_pretrained("./my-tatar-tokenizer")45# Add new tokens6new_tokens =["GPT","Transformer","BERT"]7tokenizer.add_tokens(new_tokens)8print(f"Added {len(new_tokens)} new tokens")910# Text generation preparation11prompt ="Татарстанда "12inputs = tokenizer(prompt, return_tensors="pt")13print("Generation inputs:", inputs)
Language Model Training Ready
python
1from transformers import AutoTokenizer, DataCollatorForLanguageModeling
23tokenizer = AutoTokenizer.from_pretrained(4"arabovs-ai-lab/TatarTokenizers",5 subfolder="unigram"# Recommended for LLM training6)78# Data collator for masked language modeling9data_collator = DataCollatorForLanguageModeling(10 tokenizer=tokenizer,11 mlm=False,# Set to True for BERT-style training12 return_tensors="pt"13)1415# Example training batch16batch = data_collator([{"input_ids":[0,1,2,3,4]}]*8)17print("Training batch ready:", batch.keys())