İki sürümü karşılaştır¶
Aynı metnin iki hâlini ölçmek — düzenleme öncesi/sonrası, çeviri/asıl, taslak/son — kütüphanenin en doğrudan kullanımıdır. Karşılaştırma adildir çünkü aynı metin, aynı boru hattından iki kez geçer.
Yöntem¶
import turkish_linguistic_features as tlf
once = tlf.analyze(once_metin, lang="tr")
sonra = tlf.analyze(sonra_metin, lang="tr")
print(f"{'anahtar':22s} {'önce':>10} {'sonra':>10} {'fark':>10}")
for k in ("sent_len_mean", "word_len_mean", "syllable_mean", "atesman",
"cetinkaya_uzun", "ttr", "long_word_ratio"):
print(f"{k:22s} {once[k]:10.4f} {sonra[k]:10.4f} {sonra[k]-once[k]:+10.4f}")
Gerçek bir örnek¶
Akademik bir paragrafın ağır hâli ve sadeleştirilmiş hâli:
Çalışmanın amacı, Türkçe metinlerin okunabilirlik düzeylerinin belirlenmesinde kullanılan formüllerin karşılaştırmalı olarak değerlendirilmesi ve bu formüllerin birbirleriyle olan uyumluluk derecelerinin ortaya konulmasıdır. Bu bağlamda, alanyazında yer alan ve yaygın biçimde kullanılmakta olan üç farklı formül ele alınmıştır.
Bu çalışma Türkçe okunabilirlik formüllerini karşılaştırır. Amaç, formüllerin birbiriyle ne kadar uyuştuğunu göstermektir. Alanyazında yaygın olan üç formül ele alındı.
Çıktı:
anahtar önce sonra fark
sent_len_mean 18.0000 6.6667 -11.3333
word_len_mean 8.0278 7.2500 -0.7778
syllable_mean 3.3611 3.0500 -0.3111
atesman 16.8124 58.8913 +42.0789
cetinkaya_uzun 13.9998 33.0893 +19.0895
ttr 0.8889 1.0000 +0.1111
long_word_ratio 0.5278 0.4500 -0.0778
Okunuşu:
- Ortalama tümce uzunluğu 18 → 6,7 sözcük. Asıl değişiklik bu; iki uzun tümce üç kısa tümceye bölündü.
- Ateşman 16,8 → 58,9. Ateşman'ın bantlarına göre 16,8 "çok zor", 58,9 "orta". 42 puanlık sıçramanın çoğu tümce uzunluğundan geliyor, çünkü formülde sözcük/tümce terimi var.
- Hece ortalaması 3,36 → 3,05. "değerlendirilmesi" gibi uzun türetmeler gitti.
ttr0,89 → 1,00 ama bu anlamlı değil. İkinci metin kısaldığı için TTR yükseldi; üslup değişikliğinin değil uzunluğun sonucu.
Birden çok çifti karşılaştırmak¶
Elinizde çok sayıda çift varsa tablo hâline getirin:
import turkish_linguistic_features as tlf
satirlar = []
for ad, once_m, sonra_m in ciftler:
for etiket, metin in (("once", once_m), ("sonra", sonra_m)):
satirlar.append({"label": etiket, "source": ad, "segment_id": 0,
**tlf.analyze(metin, lang="tr")})
tlf.save_csv(satirlar, "oncesi-sonrasi.csv")
label sütunu once/sonra olduğu için CSV doğrudan eşleştirilmiş bir
analize girer.