Views
No views yet
dbmdz/bert-base-turkish-cased temel modelinden türetilmiştir ve Türkçe dilindeki metinlerde olumlu, olumsuz veya nötr duygu kategorilerine ait etiketleri tahmin edebilmektedir.transformers kütüphanesini kullanarak yükleyebilir ve metinlerdeki duygu analizini gerçekleştirebilirsiniz.1from transformers import AutoModelForSequenceClassification, AutoTokenizer
2import torch
3
4# modelin ve tokenizerın yüklenmesi
5model_name = "ebrukilic/bert-absa-tr-2"
6tokenizer = AutoTokenizer.from_pretrained(model_name)
7model = AutoModelForSequenceClassification.from_pretrained(model_name)
8
9# cuda
10device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
11model.to(device)
12model.eval()1# test etmek için örnek
2text = "Ürün çok güzel ama kolları kısa ve çok dar"
3aspect = "Beden"
4
5inputs = tokenizer(aspect, text, truncation=True, padding='max_length', max_length=128, return_tensors="pt").to(device)
6
7# model ile tahmin yapılması:
8with torch.no_grad():
9 outputs = model(**inputs)
10
11logits = outputs.logits
12predicted_class_id = torch.argmax(logits, dim=-1).item()
13
14# Tahmin edilen etiketin açıklaması
15id_to_label = {0: "negatif", 1: "nötr", 2: "pozitif"}
16predicted_label = id_to_label[predicted_class_id]
17print(f"Tahmin edilen etiket: {predicted_label}")negatif, nötr ve pozitif olarak tanımlanmıştır. Veri kümesi eğitim ve test olmak üzere toplamda 11,470 örnekten oluşmaktadır.1from transformers import Trainer, TrainingArguments, AdamW
2
3training_args = TrainingArguments(
4 output_dir='./results', # modelin kaydedildiği yer
5 per_device_train_batch_size=32,
6 per_device_eval_batch_size=32,
7 num_train_epochs=4, # ilkinde 3'tü -> ebrukilic/bert-finetune-araproje
8 evaluation_strategy="steps",
9 eval_steps=50,
10 save_strategy="steps",
11 save_steps=50,
12 load_best_model_at_end=True,
13 fp16=True,
14 weight_decay=0.01,
15 logging_dir='./logs',
16 logging_steps=10,
17)
18
19optimizer = AdamW(
20 params=model.parameters(), # modelin parametreleri
21 lr=3e-5, # öğrenme hızı -> ilkinde 2e-5 idi, bu model için 3e-5 olarak değiştirildi
22 eps=1e-8 # epsilon değeri
23){'negatif': 0, 'nötr': 1, 'pozitif': 2}| Label | Precision | Recall | F1-score | Support |
|---|---|---|---|---|
| negatif | 0.93 | 0.82 | 0.87 | 1719 |
| nötr | 0.55 | 0.64 | 0.59 | 653 |
| pozitif | 0.87 | 0.92 | 0.89 | 1639 |
| macro avg | 0.78 | 0.79 | 0.79 | 4011 |
| weighted avg | 0.84 | 0.83 | 0.83 | 4011 |
| Label | Precision | Recall | F1-score | Support |
|---|---|---|---|---|
| negatif | 0.78 | 0.63 | 0.70 | 1719 |
| nötr | 0.27 | 0.38 | 0.32 | 653 |
| pozitif | 0.74 | 0.77 | 0.75 | 1639 |
| macro avg | 0.60 | 0.59 | 0.59 | 4011 |
| weighted avg | 0.68 | 0.65 | 0.66 | 4011 |