Adapters
Turkish
testchatbot / README.md
yusiqo's picture
Update README.md
82beef6 verified
---
license: mit
datasets:
- onurkoc83/reviews-turkce-text-generation
language:
- tr
library_name: adapter-transformers
---
# Transformer Modeli ile Türkçe Chatbot
Bu depo, Transformer modeli kullanılarak oluşturulmuş bir Türkçe sohbet botunun kodunu içerir. Sohbet robotu, Türkçe konuşmalardan oluşan bir veri kümesi üzerinde eğitilmiştir ve kullanıcı girdilerine yanıtlar üretebilir.
## Dosyalar
* **model.py:** Kodlayıcı, kod çözücü ve dikkat mekanizmaları dahil olmak üzere Transformer model mimarisini tanımlar.
* **dataset.py:** Konuşma veri kümesinin yüklenmesi, ön işlenmesi ve tokenize edilmesi için fonksiyonlar içerir.
* **chatbot.py:** Yanıt oluşturma ve kullanıcı geri bildirimi toplama dahil olmak üzere etkileşimli sohbet işlevselliğini yönetir.
* **data/lines.txt:** Eğitim için kullanılan ham metin satırlarını depolar.
* **data/conversations.txt:** Eğitim için kullanılan konuşma çiftlerini içerir.
## Kullanım
1. **Depoyu klonlayın:**
```shell
git clone https://github.com/EmirhanOzl/transformer-turkish-chatbot.git
```
2. **Gerekli bağımlılıkları yükleyin:**
```shell
pip install -r requirements.txt
```
3. **Modeli eğitin:**
```shell
python training.py
```
4. **Chatbotu çalıştırın:**
```shell
python chatbot.py
```
## Eğitim Verileri
Chatbot, `data/` dizininde depolanan Türkçe konuşmalardan oluşan bir veri kümesi üzerinde eğitilmiştir. Sağlanan veri setini kullanabilir veya kendi veri setinizi oluşturabilirsiniz. Veri kümesi aşağıdaki formatta olmalıdır:
Veri kümesi iki dosyadan oluşmaktadır:
* **lines.txt:** Bu dosya eğitim için kullanılan ham metin satırlarını içerir. Her satır aşağıdaki formattadır:
```
[LINE_ID] +++$+++ [USER_ID] +++$+++ [MOVIE_ID] +++$+++ [CHARACTER_NAME] +++$+++ [TEXT]
```
* `LINE_ID` hattın kimliğidir.
* `USER_ID` hattı konuşan kullanıcının kimliğidir.
* `MOVIE_ID` konuşmanın hakkında olduğu filmin kimliğidir (isteğe bağlı).
* `CHARACTER_NAME` satırı söyleyen karakterin adıdır (isteğe bağlı).
* `TEXT` satırın metnidir.
* **conversations.txt:** Bu dosya eğitim için kullanılan konuşma çiftlerini içerir. Her satır aşağıdaki formattadır:
```
[USER_ID] +++$+++ [BOT_ID] +++$+++ [MOVIE_ID] +++$+++ [CONVERSATION]
```
* `USER_ID` kullanıcının kimliğidir.
* `BOT_ID` sohbet robotunun kimliğidir.
* `MOVIE_ID` konuşmanın hakkında olduğu filmin kimliğidir (isteğe bağlı).
* `CONVERSATION`, virgülle ayrılmış, konuşma dönüşlerini temsil eden satır kimliklerinin bir listesidir.
Sağlanan veri kümesini kullanabilir veya aynı formatta kendi veri kümenizi oluşturabilirsiniz.
**Not:** `MOVIE_ID` ve `CHARACTER_NAME` alanları isteğe bağlıdır ve yerine default birşey yazılabilir.
## Örnek çıktı
Aşağıda listelenen hiperparametreler kullanılarak aşağıdaki sonuçlar elde edilmiştir:
```python
self.save_model = "model.h5"
self.max_samples = 25000
self.max_length = 60
self.batch_size = 128
self.num_layers = 3
self.num_units = 512
self.d_model = 256
self.num_heads = 8
self.dropout = 0.1
self.activation = "relu"
self.epochs = 100
```
Training Results:
```
Epoch 100/100
24/24 [==============================] - 192s 8s/step - loss: 0.0145 - accuracy: 0.3174
```
Örnek çıktı:
**User:** Merhaba nasılsın?
**Bot:** Merhaba! Ben iyiyim, teşekkür ederim. Sana nasıl yardımcı olabilirim bugün?
**User:** Sence de gökyüzü çok güzel değil mi?
**Bot:** O zaman hemen başlayalım, bu filmi izlemek için daha fazla beklemek istemiyorum.
**User:** Sanırım uzaklara gideceğim.
**Bot:** Nereye gitmek istersin?
**User:** Nereye gitmek istersin?
**Bot:** Belki de dünya dışına. Sence dünya dışını görebilir miyiz?
**User:** Belki de dünya dışına. Sence dünya dışını görebilir miyiz?
**Bot:** Belki bir gün teknoloji bize bu imkanı sunar, kim bilir?
**User:** Belki bir gün teknoloji bize bu imkanı sunar, kim bilir?
**Bot:** Ne zaman istersen yardımcı olmaktan mutluluk duyarım. Yaratıcı bir süreç geçirmeni dilerim!
Not: Sohbet robotunun yanıtları, kullanılan eğitim verilerine ve hiperparametrelerine bağlı olarak değişebilir.