File size: 1,805 Bytes
210cc8e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
---
language: tr
license: mit
base_model: boun-tabilab/TabiBERT
pipeline_tag: text-classification
tags:
- turkish
- text-quality
- data-filtering
- modernbert
- regression
metrics:
- pearsonr
- spearmanr
---

# web_quality_classifier

Türkçe web metinleri için **yazım/biçim kalitesi** regresyon sınıflandırıcısı (0–5 skoru).
Metnin **yazım kalitesini** ölçer — konusu/eğitimsel değeri değil: noktalama, tekrar, boilerplate (menü/çerez/nav/link), akıcılık.

- **Base:** [boun-tabilab/TabiBERT](https://huggingface.co/boun-tabilab/TabiBERT) (Türkçe ModernBERT, 8192 ctx) + regression head
- **Eğitim verisi:** 100k dedup'lı Türkçe web dokümanı, `Qwen3.5-9B` LLM-judge ile 0–5 rubric'iyle etiketlendi (few-shot). 90k train / 10k val.
- **Validation (10k):** Pearson **0.875**, Spearman **0.867**, MSE 0.351, MAE 0.452, ±1 doğruluk **%98.3**
- Not: FineWeb-Edu tarzı "eğitimsel değer" sınıflandırıcılarına **diktir (orthogonal)** — farklı, tamamlayıcı bir kalite ekseni ölçer.

## Kullanım
```python
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification

tok = AutoTokenizer.from_pretrained("ff112/web_quality_classifier")
model = AutoModelForSequenceClassification.from_pretrained(
    "ff112/web_quality_classifier", reference_compile=False).eval()

text = "Değerlendirilecek Türkçe metin..."
enc = tok(text, truncation=True, max_length=1024, return_tensors="pt")
with torch.no_grad():
    score = model(**enc).logits.squeeze(-1).item()   # 0-5 arası yazım kalite skoru
print(round(max(0, min(5, score)), 2))
```

## Skor rehberi
`5` temiz/akıcı · `4` küçük kusur · `3` okunur ama belirgin sorun · `2` düşük (tekrar/boilerplate/bozuk noktalama) · `1` çok bozuk · `0` çöp/boş/sadece boilerplate.