Sentilyzer, Türkçe metinlerde entity (varlık) bazlı duygu analizi (sentiment analysis) yapmayı sağlayan bir projedir. Bu proje, BERT tabanlı bir model ile çalışmakta ve çeşitli araçlar ile zenginleştirilmiş bir GUI (Grafik Kullanıcı Arayüzü) sunmaktadır. Ayrıca, FastAPI ile sağlanan bir API üzerinden Swagger UI kullanarak da test edilebilir.
Bu modül, metin işleme, duygu tahmini, entity tespiti gibi temel işlevleri içerir.
- SpaCy modelini kullanarak metinlerdeki entity'leri tanır.
- BERT modelini kullanarak metinlerin vektör temsillerini çıkarır.
- MLPClassifier modelini kullanarak entity'lerin context'lerini analiz ederek sentiment tahmini yapar.
Bu dosya, FastAPI framework'ü ile yazılmış bir API uygulamasıdır.
POST /predict
endpoint'i, bir metin girdisi alır ve bu metindeki entity'lerin bağlamını (context) analiz eder ve sentiment tahminlerini döner.- FastAPI ile entegre edilmiş Swagger UI aracılığıyla bu endpoint'leri doğrudan web tarayıcınızdan test edebilirsiniz.
- Arka planda,
utils.py
dosyasındaki fonksiyonları kullanarak sentiment analizini gerçekleştirir.
Bu dosya, bir veri kümesini kullanarak modeli eğitmek için kullanılan Python script'idir.
- Veriyi temizler, stop word'leri çıkarır ve özellik vektörleri çıkarır.
- MLPClassifier kullanarak sentiment sınıflandırma modeli eğitir ve bu modeli kaydeder.
Bu dosya, Tkinter kullanarak bir GUI uygulaması sunar.
- Kullanıcıdan JSON formatında bir metin alır, bunu işler ve sonuçları kullanıcıya gösterir.
Bu dosya, eğitim ve test sonuçlarını değerlendirmek için matplotlib kullanarak grafikler oluşturur.
Proje Python 3.8+ ile uyumludur. Aşağıdaki bağımlılıkları kurmanız gerekmektedir:
torch
transformers
spacy
joblib
scikit-learn
pandas
matplotlib
tkinter
nltk
fastapi
uvicorn
Tüm bağımlılıkları yüklemek için:
pip install -r requirements.txt