- Varlık Çıkartma: Metinden özel şirket isimlerini ve hizmet isimlerini tanır.
- Duygu Analizi: Her varlık için olumlu, olumsuz veya nötr duygu sonuçları sağlar.
MODEL DOSYALARI İÇİN AŞAĞIDAKİ LİNKİ KULLANABİLİRSİNİZ
- Python 3.7 veya üstü
- FastAPI
- Uvicorn
- Stanza
- Transformers
- PyTorch
- Pydantic
- Logging
- Regular expressions (re)
-
Kütüphanelerin Kurulumu:
pip install fastapi uvicorn stanza transformers torch pydantic
Bu API, kullanıcıdan gelen metni işleyerek varlıkları (şirket isimleri, hizmetler vb.) ve duygu analizi sonuçlarını döndürür. API, duygu analizi ve varlık çıkarımı için FastAPI tabanlı bir hizmet sağlar. Hugging Face'ten distilbert-base-uncased-finetuned-sst-2-english
modelini duygu analizi için ve Stanza'dan Türkçe modelini varlık çıkarımı için kullanır.
distilbert-base-uncased-finetuned-sst-2-english
modeli, Stanford Sentiment Treebank (SST-2) veri kümesinde ince ayar yapılmış, BERT'in damıtılmış bir versiyonudur. Bu model, tam BERT modeline kıyasla daha az parametre ve daha hızlı çıkarım süreleri ile duygu analizi görevlerinde son teknoloji performans sağlar.
Model hakkında daha fazla bilgi için Hugging Face model sayfasını ziyaret edin.
Varlık çıkarımı fonksiyonu, dilbilimsel analiz için doğru ve verimli araçlar koleksiyonu olan Stanza'dan Türkçe modelini kullanır. Stanza kütüphanesi birçok dili destekler ve adlandırılmış varlık tanıma (NER) gibi çeşitli NLP görevleri için sağlam modeller sağlar.
Stanza kütüphanesi hakkında daha fazla bilgi için Stanza GitHub deposunu ziyaret edin.
-
Depoyu klonlayın:
git clone https://github.com/your-username/sentiment-entity-extraction-api.git cd sentiment-entity-extraction-api
-
Gerekli paketleri yükleyin:
pip install -r requirements.txt
-
Stanza Türkçe modelini indirin ve başlatın:
import stanza stanza.download('tr')
-
Eğitilmiş BERT model dosyasının (
finetuned_BERT.pth
) uygun dizinde (content/drive/My Drive/
) olduğundan emin olun.
FastAPI uygulamasını çalıştırmak için aşağıdaki komutu yürütün:
uvicorn main:app --reload
Bu, sunucuyu http://127.0.0.1:7000 adresinde başlatacaktır.
Demo
POST /predict/
Giriş metninin duygu analizini yapar ve varlıkları tanımlar.
İstek Gövdesi
text (string): Analiz edilecek metin.
Örnek:
{
"text": "Fiber 100mb SuperOnline kullanıcısıyım yaklaşık 2 haftadır @Twitch @Kick_Turkey gibi canlı yayın platformlarında 360p yayın izlerken donmalar yaşıyoruz. Başka hiç bir operatörler bu sorunu yaşamazken ben parasını verip alamadığım hizmeti neden ödeyeyim ? @Turkcell"
}
Yanıt:
entity_list (list): Tanımlanan varlıkların listesi.
results (list): Her varlık için duygu analizi sonuçları listesi.
{
"entity_list": ["Turkcell", "Twitch", "Kick_Turkey"],
"results": [
{
"entity": "Turkcell",
"sentiment": "Negatif"
},
{
"entity": "Twitch",
"sentiment": "Nötr"
},
{
"entity": "Kick_Turkey",
"sentiment": "Nötr"
}
]
}