Eğtilmiş modeli kullanmanın iki yolu var. Birincisi FastText in komut satırı çalıştırılabilir programını kullanarak. İkinci yolu FastText i python kütüphanesi olarak yükleyerek.
İlkinden başlıyalım. FastText programının kullanım parametrelerine bakalım
Bu seçeneklerden tahmin için "predict" yada "predict-prob" sçeneğini kullanabiliriz. aralarındaki fark ikincisinde tahmin ile birlikte tahin kesinlik ihtimalinide veriyor. Tahmin yapılmasını istediğiniz metinleri her biri bir satır olacak şekilde bir metin dosyasına kaydetmemiz gerekmekdedir. Her tahmin için geçici bir metin dosyası yazdırıp FastText programıyla çalıştırmamız gerekiyor. Bu işlem için bir fonksiyon yazdık
Kullanım için test için hazırladığımız dosyayı yüklüyoruz. Burdaki gerçek sonuçları da ayırıp sorgumuz yapıyoruz sonuçlarıda gerçek sonuçlarla karşılaştırmak için sckit-learn kütüphanesinin , confusion_matrix, classification_report fonksiyonlarını kullanıyoruz.
confusion_matrix : Karşılaştırma matrisi tahmin edilen ile gerçek değerelri karşılaştırmanıza yarar matrisin bir ekseni gerçek değerler diğer ekseni tahmin edilen değerleri gösterir.
her satır gerçek değerleri gösterir her sutunda tahminleri gösteriyor. Eğer modelimiz %100 başarılı olsaydı satır ve sutun indeksi aynı olan yerlerde her sını için örnek sayısı olan 5 bin dğerini göremiz gerekirdi. Örnek vermek gerekirse ilk sınıfımız olan Şirket sınıfındaki 5 bin örnekden 4767 tanesi Doğru tahmin edilmiş. 39 tanesi 2. sınıf olan Eğitim kurumu olarak Yanlış tahmin edilmiş.
Bir güzelliğide bir birine karıştırılan sınıfların kolaylıkla görülebilmesidir.
classification_report : fonksiyonu ise sınıf bazında recall: duyarlılık , precision: kesinlik ve bu ikisinin karışımı bir ölçüt olan f1 skorlarını hesaplayıp listler. Adıyla müsemma Sınıflandırıcı raporu düzenler
İkinci metodumuz FastText python pakedini yüklemek. Tahmin edebilecğiniz gibi
pip install fasttext
şeklinde yapıyorsunuz.
import fasttext
model = fasttext.load_model('models/dbpedia_1.bin')
ile yüklüyoruz
tahmin için sorgu listemizi bir yere kaydetmemize gerek yok artık direk çağırıyoruz
model.predict(qlist)sonuçları yine ilk örneğimizdeki gibi hesaplattırıyoruz. Aşağı yukarı aynı sonuçlara ulaşıyoruz. Toplamda 98.3 lük başarı değerine ulaşıyor modelimiz. Eğitim aşamasına geri dönüp değişik parametre ayarlarıyla daha iyi sonuçlara ulaşmaya çalışabilirsiniz. Yada ilk aşamaya dönüp Veri kümesi üzerinde değişik ön işlemeler yapıp sonuçlar üzerindeki etkisini gözlemleyebilirisiz . gerisi size kalmış
FastText hakındaki bu seri yazımızı bitiriyoruz. Üç yazı boyunca yaptıklarımızı github hesabımızdan paylaşıyoruz. Kimbilir belki taş üstüne taş koyan çıkar.
Bu yazımızdaki kullanım ile ilgili kodlar, "example" dizininde "evaluation_with_executable" ve "evaluation_with_python_binding" isimli ipython dosyalar olarak bulunuyor.
Veri kümesini FastText 'in kullandığı şekle çeviren kod yine "example" dizininde "prepare_data" isminde
FastTextGUI nin kodlarına ise gui dizinin içinde ulaşabilirsiniz
Projenin github adressi ;
https://github.com/birolkuyumcu/fasttext_guiHer türlü görüş ve önerilerinizi bekleriz.