Skip to content

omtekyav/Semantic-Book-Recommender-TR

Repository files navigation

Semantik Kitap Öneri Sistemi

image

Bu proje, kullanıcının doğal dilde yazdığı cümle veya paragrafların anlamsal bütünlüğünü anlayarak kitap önerileri sunan bir yapay zeka uygulamasıdır. Geleneksel anahtar kelime tabanlı arama motorlarının aksine, bu sistem metnin arkasındaki "anlamı" kavrayarak daha isabetli ve sezgisel sonuçlar üretir.

Proje, Türk Edebiyatı'nın temelini oluşturan 100 Temel Eser veri seti üzerinde geliştirilmiş ve bu eserler arasından öneriler yapmaktadır. image

✨ Özellikler

Anlamsal Arama: "İmkansız bir aşk ve savaşın gölgesinde kalan iki insan" gibi karmaşık ve soyut sorguları anlayarak en alakalı kitapları önerir. image

Kategoriye Göre Filtreleme: Arama sonuçlarını "Roman", "Tarih" gibi belirli kategorilere göre daraltma imkanı sunar. image

Duygu Tonuna Göre Filtreleme: Kullanıcının aradığı duygu durumuna ("hüzün", "neşe", "macera" vb.) göre kitapları sıralar. image

Etkileşimli Arayüz: Gradio ile geliştirilmiş, kullanıcı dostu ve modern bir web arayüzüne sahiptir. Kitap kapak görselleri ile zenginleştirilmiş bir sonuç ekranı sunar.

🛠️ Teknoloji Yığını ve Mimari

Bu projenin geliştirilmesinde aşağıdaki teknolojiler ve modeller kullanılmıştır:

Temel Altyapı

Backend ve Arayüz: Python, Gradio

Veri İşleme:

Pandas

Vektör Veritabanı:

ChromaDB - Oluşturulan anlamsal vektörlerin verimli bir şekilde saklanması ve hızlı benzerlik aramaları yapılması için kullanılmıştır.

Yapay Zeka ve NLP Modelleri

Embedding Modeli: BAAI/bge-m3 - Metinlerin anlamsal vektörlere dönüştürülmesi için kullanılmıştır. image

Duygu Analizi Modeli:

facebook/bart-large-mnli - "Zero-Shot Classification" yeteneği sayesinde, önceden belirlenmiş Türkçe duygu etiketlerine göre metinleri sınıflandırmak için kullanılmıştır. image

Dış Servisler

Veri Kaynağı: Google Books API - Kitap kapak görsellerini dinamik olarak çekmek için kullanılmıştır.

📦 Kurulum

Projeyi yerel makinenizde çalıştırmak için aşağıdaki adımları izleyin:

Proje reposunu klonlayın:

git clone https://github.com/kullanici-adiniz/proje-adiniz.git cd proje-adiniz

Sanal ortam (virtual environment) oluşturun ve aktif edin:

Windows için:

python -m venv venv .\venv\Scripts\activate

macOS/Linux için:

python3 -m venv venv source venv/bin/activate

Gerekli kütüphaneleri yükleyin:

pip install -r requirements.txt

▶️ Çalıştırma

Kurulum tamamlandıktan sonra, uygulamayı başlatmak için ana dizinde aşağıdaki komutu çalıştırın:

python app.py

Uygulama başlatıldığında, terminalde Running on local URL: http://127.0.0.1:7860 gibi bir adres göreceksiniz. Bu adresi kopyalayıp web tarayıcınıza yapıştırarak uygulamayı kullanmaya başlayabilirsiniz.

🎯 Karşılaşılan Zorluklar ve Gelecek Planları

Zorluklar

Deployment (Yayınlama):

Projenin Hugging Face Spaces üzerinde yayınlanması sırasında, chromadb ve bağımlı olduğu diğer kütüphaneler arasında versiyon çakışmaları yaşanmıştır. Bu zorluklara rağmen sonrasında başarılı bir şekilde deployment gerçekleştirilmiştir. image

Gelecek Planları

Docker ile Konteynerleştirme: Projeyi, tüm bağımlılıkları ile birlikte izole bir Docker konteynerine paketleyerek deployment sürecini daha kararlı hale getirmek.

Veri Setini Genişletme: Daha geniş bir Türkçe kitap veri seti oluşturarak modelin öneri kapsamını artırmak.

Model Fine-Tuning: bge-m3 modelini daha geniş bir Türkçe edebi metin korpusu üzerinde fine-tune ederek, öneri doğruluğunu daha da iyileştirmek.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published