|
import pandas as pd from datasets import Dataset |
|
|
|
Örnek veri oluşturma |
|
data = { 'text': [ 'Bu bir örnek metindir.', 'Türkçe doğal dil işleme projesi.', 'Veri bilimi ve makine öğrenmesi.', 'Python programlama dili.' ], 'label': [0, 1, 2, 3] } |
|
|
|
DataFrame'e dönüştürme |
|
df = pd.DataFrame(data) |
|
|
|
Hugging Face Dataset'e dönüştürme |
|
dataset = Dataset.from_pandas(df) import unicodedata |
|
|
|
Aksan kaldırma fonksiyonu |
|
def remove_accents(text): nfkd_form = unicodedata.normalize('NFKD', text) return ''.join([c for c in nfkd_form if not unicodedata.combining(c)]) |
|
|
|
Veri ön işleme fonksiyonu |
|
def preprocess_function(examples): examples['text'] = [remove_accents(text) for text in examples['text']] return examples |
|
|
|
Veri setine uygulama |
|
processed_dataset = dataset.map(preprocess_function) from transformers import AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer |
|
|
|
Model ve tokenizer yükleme |
|
model_name = "dbmdz/bert-base-turkish-cased" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=4) |
|
|
|
Veriyi tokenlaştırma |
|
def tokenize_function(examples): return tokenizer(examples['text'], padding="max_length", truncation=True) |
|
|
|
tokenized_datasets = processed_dataset.map(tokenize_function, batched=True) |
|
|
|
Model eğitimi için ayarlar |
|
training_args = TrainingArguments( output_dir="./results", evaluation_strategy="epoch", learning_rate=2e-5, per_device_train_batch_size=8, per_device_eval_batch_size=8, num_train_epochs=3, weight_decay=0.01, ) |
|
|
|
Trainer tanımlama |
|
trainer = Trainer( model=model, args=training_args, train_dataset=tokenized_datasets, eval_dataset=tokenized_datasets, ) |
|
|
|
Modeli eğitme |
|
trainer.train() |
|
|
|
Eğitim sürecini değerlendirme |
|
eval_results = trainer.evaluate() |
|
|
|
print(f"Değerlendirme Sonuçları: {eval_results}") |