Haber içerikleri için özelleşmiş metin özetleyici.
Açık kaynak kodlu
Sadedegel, Türkçe haber metinlerini makine öğrenmesi algoritmaları ile özetlemek için geliştirilmiş açık kaynak kodlu bir kütüphanedir. Extraction based özetleme tekniğini esas almaktadır.
Detay Görüntüle
Sadedegel kütüphanesinin son kullanıcılar tarafından da kullanılabilmesi için bir Chrome eklentisi geliştirdik. Böylece kullanıcılar, desteklenen haber sitelerindeki metinleri hızlıca özetleyebilirler. Detay Görüntüle
Veri seti eksiklikleri Türkçe NLP projelerini için bir engel
teşkil etmesin istiyoruz. Türkçe haber sitelerinden metin
toplayan açık kaynak kodlu aracımız ile kendi veri setinizi
oluşturabilir, yeni haber kaynakları ekleyerek gelişmesine
katkıda bulunabilirsiniz.
Detay Görüntüle
Sadedegel projesi kapsamında geliştirdiğimiz veri etiketleme aracını kullanarak, extraction based özetleme tekniği ile özetlenmiş veri setlerini hızlıca oluşturabilir ve makine öğrenmesi projelerinizde kullanabilirsiniz.
Detay Görüntüle
$ pip install sadedegel
Daha detaylı yönergelere github hesabımızdan ulaşabilirsiniz: GlobalMaksimum/sadedegel
Sadedegel kütüphanesinde bir çok akış Doc sınıfıyla başlar. Bir metin ile Doc objesini çağırdığınızda
gibi işlemler gerçekleşir.
from sadedegel.tokenize import Doc text = """ Kapıyı aç Veysel Efendi! Mahmut Hoca'nın emriyle Uganda Cumhurbaşkanı'nı karşılamaya gidiyoruz. """ d = Doc(text) print(d.sents) print() print(f"Cümle 1 - Rouge1: {d.sents[0].rouge1('recall')} (recall) {d.sents[0].rouge1('precision')} (precision)") print() print(f"Cümle 1 uzunluğu: {len(d.sents[0])} ") print(d.sents[0].tokens)
SadedeGel ile birlikte farklı formatlarda hazır veri kümeleri gelmektedir. Bunların bazıları ham veriler iken bazıları human-annotated veri kümeleridir.
from sadedegel.dataset import load_raw_corpus raw = load_raw_corpus() d = next(raw) d
SadedeGel extraction-based özetleyicilerin tamamı, temelde cümle skorlaması yapan kural veya ML tabanlı sınıflardır.
import numpy as np from sadedegel.tokenize import Doc from sadedegel.dataset import load_raw_corpus from sadedegel.summarize import Rouge1Summarizer raw = load_raw_corpus(return_iter=False) d = Doc(raw[0]) print(f"Metin içerisindeki toplam cümle sayısı {len(d.sents)}") print() scores = Rouge1Summarizer().predict(d.sents) print(scores) print() top3_index = np.argsort(scores)[::-1][:3] for sent in np.array(d.sents)[top3_index]: print(f'⇨ {sent}')