An open API service indexing awesome lists of open source software.

https://github.com/hediyeorhan/textclassificationandsearching


https://github.com/hediyeorhan/textclassificationandsearching

nlp nlp-machine-learning python python3 text-classification wikipedia-search

Last synced: 7 months ago
JSON representation

Awesome Lists containing this project

README

          

# TextClassificationAndSearching

1) Projenin Geliştirilme Aşamaları

Projenin geliştirilmesinde ilk olarak girilen metinleri konularına göre sınıflandıracak yapay zekâ modelinin eğitimi için bir veri seti araştırılması yapılmıştır. Projede Kaggle [1] sitesindeki 7 farklı kategoriden ('Dünya', 'Ekonomi', 'Kültür - Tarih', 'Sağlık', 'Siyaset', 'Spor', 'Teknoloji') oluşan veri seti kullanılmıştır. Yapay zekâ modelinin eğitimi için ücretsiz GPU desteği sağlayan Google Colaboratory ortamı tercih edilmiştir. Veri setinde gerekli ön işlemeler yapılmıştır. Veri, noktalama işaretleri, sayılardan ve bağlaçlardan arındırılmıştır. Model eğitimi için “Logistic Regression” algoritması tercih edilmiştir. Veri seti boyutu çok büyük olmadığından dolayı yaklaşık olarak %83 doğruluk elde edilebilmiştir.
Eğitim tamamlandıktan sonra kaydedilen model dosyası kullanıcıdan alınan metinler üzerinde sınıflandırma yapılarak test edilmiştir. Metin içerisindeki en çok frekansa sahip kelimeler alt başlıklar olarak kabul edilmiştir. Elde edilen bu alt başlıklar ile Wikipedia sitesinde araştırma yapılmıştır ve kullanıcıya bilgi verilmiştir. Wikipedia sitesinde araştırma yapılmasının sebebi Google’da bulunan web sitelerinin yapılarının birbirinden farklı olmasıdır. Farklı yapılardaki sitelerden verileri çekmek için verinin bulunduğu etiketleri değiştirmek gerekmektedir. Bu nedenle tek bir site üzerinden araştırma sonuçlarının alınmasına karar verilmiştir. Son olarak elde edilen tüm bilgiler Microsoft SQL Server veri tabanında tablolara kayıt edilmiştir.

2) Projede Elde Edilen Çıktılar

Kullanıcıya sunulan menü ekranı Şekil 1’de görülmektedir.


Şekil 1: Kullanıcıya sunulan menü ekranı


Şekil 1: Kullanıcıya sunulan menü ekranı


Girilen metnin konusu Şekil 2, Şekil 3, Şekil 4 ve Şekil 5’te görüldüğü gibi tahmin edilmektedir.


Şekil 2: Girilen metnin konusunun belirlenmesi


Şekil 2: Girilen metnin konusunun belirlenmesi



Şekil 3: Girilen metnin konusunun belirlenmesi


Şekil 3: Girilen metnin konusunun belirlenmesi



Şekil 4: Girilen metnin konusunun belirlenmesi


Şekil 4: Girilen metnin konusunun belirlenmesi



Şekil 5: Girilen metnin konusunun belirlenmesi


Şekil 5: Girilen metnin konusunun belirlenmesi


Şekil 6’da metinlerin alt başlıkları belirlenerek bunlar ile ilgili Wikipedia sitesinde yapılan arama sonuçlarının elde edilmesi görülmektedir. Burada ‘Ebru Sanatı’ ile ilgili girilen bir metnin ve ‘Tarih’ ile ilgili girilen bir metnin alt başlıkları belirlenerek ‘Ebru Tarihi’ ile ilgili bir araştırma yapılmıştır.


Şekil 6: Alt başlıklara göre arama yapılması


Şekil 6: Alt başlıklara göre arama yapılması


Şekil 7’de metinlerin alt başlıkları belirlenerek bunlar ile ilgili Wikipedia sitesinde yapılan arama sonuçlarının elde edilmesi görülmektedir.


Şekil 7: Alt başlıklara göre arama yapılması


Şekil 7: Alt başlıklara göre arama yapılması


Şekil 8’ de metinlerin sınıflarının kayıt edildiği veri tabanı tablosu, Şekil 9’da arama sonuçlarının kayıt edildiği veri tabanı tablosu görülmektedir.


Şekil 8: Metinlerin sınıflarının ve alt başlıklarının bulunduğu veri tabanı tablosu


Şekil 8: Metinlerin sınıflarının ve alt başlıklarının bulunduğu veri tabanı tablosu



Şekil 9: Arama sonuçlarının bulunduğu veri tabanı tablosu


Şekil 9: Arama sonuçlarının bulunduğu veri tabanı tablosu


KAYNAKÇA


[1] Kaggle Veri Seti. Available: https://www.kaggle.com/code/erdal002/turkish-text-classification/input