kedimestan commited on
Commit
0b34e31
1 Parent(s): 986d6c8

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +0 -261
README.md CHANGED
@@ -47,70 +47,6 @@ Fatih Kürşat Cansu(Danışman)
47
 
48
  Mehmet Kağan Albayrak(Üye): https://github.com/TFLkedimestan
49
 
50
- ## Problem:
51
-
52
- Ele alınan problem, özellikle çocuk ve genç okurlar için uygun kitapların seçilmesi sürecindeki eğitimcilerin ve yetişkinlerin yaşadıkları belirsizliktir.
53
-
54
-
55
-
56
- Kitapların içerdiği dil, temalar ve uygunsuz öğeler, yaş gruplarına göre farklı etkiler yaratmaktadır.
57
-
58
-
59
-
60
- Bu bağlamda, öğretmenler, kütüphaneciler, ebeveynler ve okurlar için kitapların içeriklerinin değerlendirilmesi ve uygunluk derecelerinin belirlenmesi oldukça önem arz etmektedir
61
-
62
-
63
-
64
- ## Projenin Tanımı:
65
-
66
- Bu proje, kullanıcıların sisteme yükledikleri Türkçe kitapların PDF dosyalarını analiz ederek kitapların uygun yaş aralıklarını, içerilerinde kaç uygunsuz cümle ve kelime geçtiği vb. bilgileri belirlemeyi ve bunları kullanıcıya bildirmeyi amaçlayan bir uygulamadır.
67
-
68
-
69
-
70
- Bu projenin ana teması, kitapların içerdiği dil ve temaların uygunluğunu değerlendirerek okurların ve eğitimcilerin doğru seçimler yapmasını sağlamaktır. Elde edilen bulgular doğrultusunda proje bu amaca yüksek bir doğrulukla ulaşmaktadır.
71
-
72
-
73
-
74
- ## Projenin Sağladığı Çözüm ve Hedef Kitlesi
75
-
76
- Bu proje kitapların içeriğini analiz ederek kitaplar hakkında çeşitli bilgiler ve sonuçlar çıkartıp bunları kullanıcıya vermektedir. Bu sayede kullanıcı okuyacağı veya önereceği kitap hakkında derinlemesine bilgi sahibi olmaktadır. Uygulamanın verdiği yaş aralığı sayesinde uygun kitapları önerebilecek veya okuyabilecektir.
77
-
78
-
79
-
80
- Proje, kitap bulma ve önerme bakımında zorluk yaşayan kişilere yöneliktir.
81
-
82
-
83
-
84
- Bu projenin hedef kitlesi şunlardır:
85
-
86
-
87
-
88
- •Kültür ve Turizm Bakanlığına bağlı halk kütüphanelerinde çalışan kütüphaneciler,
89
-
90
-
91
-
92
- •Milli Eğitim Bakanlığına bağlı öğretmenler,
93
-
94
-
95
-
96
- •Eğitimciler,
97
-
98
-
99
-
100
- •Çocuklarına kitap önerecek olan ebeveynler,
101
-
102
-
103
-
104
- •Okurlar.
105
-
106
-
107
-
108
- ## Proje İş Akışı
109
-
110
-
111
-
112
- ![Projenin başarıyla tamamlanması için gereken görevlerin ve süreçler](https://github.com/Abra-Muhara/kitapmetre-2024AcikHackTDDI/blob/main/additionalImages/workflow.png)
113
-
114
 
115
 
116
  ## Projemizin Aşamaları:
@@ -192,81 +128,6 @@ Doğrulama Seti Veri Dağılımı
192
 
193
 
194
 
195
- ### Yaş Aralığı Modeli Veri Seti
196
-
197
- Bir diğer veri seti, kelime listesi ve bir önceki veri setiyle oluşturan model ile sıfırdan oluşturulmuştur.
198
-
199
-
200
-
201
- İçerisindeki veriler şunlardır:
202
-
203
-
204
-
205
- •Cümle, kelime ve hece sayısı;
206
-
207
-
208
-
209
- •Cümle başına ortalama kelime ve hece sayısı;
210
-
211
-
212
-
213
- •Ofansif cümle sayısı, oranı ve yüzdesi;
214
-
215
-
216
-
217
- •Ofansif kelime sayısı ve oranı;
218
-
219
-
220
-
221
- •Ofansif kelime sayısının ofansif olmayan kelime sayısına oranı;
222
-
223
-
224
-
225
- •Ortalama cümle ofansifliği;
226
-
227
-
228
-
229
- •FRES, COE ve Ateşman okunulabilirlik puanları;
230
-
231
-
232
-
233
- •Önerilen yaş aralığı.
234
-
235
-
236
-
237
- İçerisinde toplam 113 adet kitabın verisi bulunmaktadır.
238
-
239
-
240
-
241
- ![Veri Seti Yaş Aralığı Dağılımı](https://github.com/Abra-Muhara/kitapmetre-2024AcikHackTDDI/blob/main/additionalImages/yas_araligi_dagilim.png)
242
-
243
-
244
-
245
- Veri Seti Yaş Aralığı Dağılımı
246
-
247
-
248
-
249
-
250
- ![enter image description here](https://github.com/Abra-Muhara/kitapmetre-2024AcikHackTDDI/blob/main/additionalImages/yas_veri_ornek.png)
251
-
252
-
253
-
254
- Veri Setinden Bir Örnek
255
-
256
-
257
-
258
- ## Modellerin Oluşturulması
259
-
260
- ### Modellerin Linkleri
261
-
262
- Yaş Aralığı Sınıflandırma: https://huggingface.co/AbraMuhara/AgeClassificationTDDI2024
263
-
264
-
265
-
266
- Uygunsuz Cümle Sınıflandırma: https://huggingface.co/AbraMuhara/Fine-TunedBERTURKOfansifTespit
267
-
268
-
269
-
270
  ### Uygunsuzluk Modelleri
271
 
272
  Metinlerin uygunsuzluğunu ölçen model için çeşitli mimariler kullanılmıştır.
@@ -347,122 +208,6 @@ Bu modellerin doğrulukları aşağıdadır.
347
 
348
 
349
 
350
- ### Yaş Aralığı Modeli
351
-
352
- Yaş aralığı modeli için oluşturulmuş olan veri seti kullanılmıştır. Modeli oluşturmak için çeşitli makine öğrenmesi ve sinir ağı algoritmaları denenmiştir ve aralarında %95,65 ile en yüksek doğruluğa sahip olan Optuna ile optimize edilmiş CatBoost algoritması seçilmiştir. CatBoost, özellikle kategorik verileri otomatik olarak işleyebilmesi sayesinde veri ön işleme sürecini büyük ölçüde kolaylaştıran bir makine öğrenmesi algoritmasıdır. Optuna ise modellerin performansını artırmak için gereken hiperparametrelerin en iyi şekilde ayarlanmasını sağlar.
353
-
354
-
355
-
356
- ![Modelin Değerlendirmesi](https://github.com/Abra-Muhara/kitapmetre-2024AcikHackTDDI/blob/main/additionalImages/catboost-accuracy.jpg)
357
-
358
-
359
-
360
- ![Modelin Hiperparametreleri](https://github.com/Abra-Muhara/kitapmetre-2024AcikHackTDDI/blob/main/additionalImages/catboost-param.jpg)
361
-
362
-
363
-
364
- Ayrıca diğer makine öğrenmesi algoritmalarının yüzde kaç doğruluk verdiği aşağıdadır.
365
-
366
-
367
-
368
- ![Farklı Model Mimarilerinde Uygunsuzluk Modelinin Doğruluk Değerleri](https://github.com/Abra-Muhara/kitapmetre-2024AcikHackTDDI/blob/main/additionalImages/accuracies.png)
369
-
370
-
371
-
372
- ## Okunulabilirlik Puanları
373
-
374
- Okunulabilirlik puanları, yapılan araştırmalar sonucu bir metnin farklı dillerde okunulabilirlik endeksini ve farklı yaş aralıkları için okunulabilirlik düzeylerini tespit etmek için oluşturulmuş formüllerdir.
375
-
376
-
377
-
378
- Bunlardan en popüler olanları şunlardır:
379
-
380
-
381
-
382
- •COE (Çetinkaya Okunulabilirlik Endeksi):
383
-
384
-
385
-
386
- $118,823 -(25,987 ∗ASW )-(0,971 ∗AWS)$ (Çetinkaya, 2008)
387
-
388
-
389
-
390
- •Ateşman Puanı:
391
-
392
-
393
-
394
- $198,825 -40,175 ∗ASW -2,610 ∗AWS$ (Ateşman, 1997)
395
-
396
-
397
-
398
- •FRES (Flesch Okunulabilirlik Skoru):
399
-
400
-
401
-
402
- $206,835 -(AWS ∗1,015)+(ASW ∗8,46)$ (Flesch, 1948)
403
-
404
-
405
-
406
- *$AWS$ = Cümle başına ortalama kelime sayısı
407
-
408
-
409
-
410
- *$ASW$ = Kelime başına ortalama hece sayısı
411
-
412
- ## GUI
413
-
414
- customtkinter: Uygulamamıza modern bir görüntü katan özelleştirilmiş tkinter
415
-
416
-
417
-
418
- Uygulamamızın iki modu vardır: Gece ve Gündüz modu.
419
-
420
- Bu iki modun yaptığı arkaplan ve butonların rengini ayarlamasıdır.
421
-
422
- Uygulamamızın sağ alt köşesinde bulunan bilgilendirme butonu, kullanıcının uygulamayı nasıl kullanması gerektiğini ve yapımcısı olan Abra Muhara ekibindeki üyeleri gösterir.
423
-
424
- Uygulama ilk açıldığında ortadaki 'Dosya yükle' yazan butona basıldığında bilgisayarımızdan ölçmek istediğimiz kitabı (pdf'yi) seçmemiz istenir.
425
- ![Dosya yükleme merkezi](https://github.com/Abra-Muhara/kitapmetre-2024AcikHackTDDI/blob/main/additionalImages/dosya_yukle.jpg)
426
-
427
- ![Kitap Analizi](https://github.com/Abra-Muhara/kitapmetre-2024AcikHackTDDI/blob/main/additionalImages/kitap_analiz.jpg)
428
-
429
- Dosya seçildikten sonra kitabın gerekli bilgileri toplanır ve bir tablo haline getirilir.
430
-
431
- Tablo kullanıcıya sunulur ve önerilen yaş aralığı buna göre bildirilir.
432
-
433
- ## Proje Yol Haritası
434
-
435
- Projede oluşturulan modeller FastAPI, Hugging Face ve Github platformlarına yüklenmiştir. İlerleyen süreçte açık kaynak kodlu olan bu platformlar üzerinden kullanıcılar tarafından geliştirilebilir. Ayrıca proje halk kütüphanelerinde kullanıma sunulabilir.
436
-
437
-
438
-
439
- Projede geliştirilebilecek konular şunlardır:
440
-
441
-
442
-
443
- •Veri setinde kullanılan kitap sayısı artırılabilir ve daha yüksek doğruluk elde edilebilir.
444
-
445
-
446
-
447
- •Ofansif kelime listesindeki kelime sayısı artırılabilir ve daha yüksek doğruluk elde edilebilir.
448
-
449
-
450
-
451
- •Uygunsuzluğu ölçen model daha büyük NLP modelleri ile eğitilip daha tutarlı sonuçlar alınabilir.
452
-
453
-
454
-
455
- Veri setinde kullanılan kitap sayısının artırılabilmesi için kullanıcıların veri setinde kullanılabilmesi için kitap yükleyebileceği demo bir web sitesi oluşturulmuştur. Bu web sitesinden kullanıcılar farklı kitapları ve bu kitapların yaş aralıklarını yükleyerek veri setini büyütebilir ve daha yüksek doğruluk elde edilmesini sağlayabilir.
456
-
457
-
458
-
459
- Web sitesi linki:
460
-
461
- https://kitapmetre-veri-seti-araci.glitch.me
462
-
463
-
464
-
465
- ![KitapMetre Veri Seti Aracı](https://github.com/Abra-Muhara/kitapmetre-2024AcikHackTDDI/blob/main/additionalImages/veri-seti-arac.png)
466
 
467
  ## Fast-API
468
 
@@ -473,12 +218,6 @@ Projenin sonunda elde ettiğimiz modelin kullanıcıların daha kolay erişilmes
473
  2. Tabular verilerini elde ettiğiniz kitabınızın yaş aralığını bulmak isterseniz tek yapmanız gereken verilerinizi örnek veri setindeki sütunlar şeklinde sıralamanız ve (https://abramuhara-fast-api.hf.space/predict-age/) sayfasına parametreniz {'features': list[Float]}
474
  olacak şekilde göndermenizdir. Cevap olarak {"age_group": yazı şeklinde yaş kategorisi} gönderilecektir.
475
 
476
- ## Kurulum Rehberi
477
- Çalıştırmanız tek gereken kod:
478
- ```python
479
- pip install -r requirements.txt
480
- ```
481
- Sonrasında gui klasöründeki main.py dosyasını çalıştırın
482
 
483
  ## Kaynakçalar:
484
 
 
47
 
48
  Mehmet Kağan Albayrak(Üye): https://github.com/TFLkedimestan
49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
 
51
 
52
  ## Projemizin Aşamaları:
 
128
 
129
 
130
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
  ### Uygunsuzluk Modelleri
132
 
133
  Metinlerin uygunsuzluğunu ölçen model için çeşitli mimariler kullanılmıştır.
 
208
 
209
 
210
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
211
 
212
  ## Fast-API
213
 
 
218
  2. Tabular verilerini elde ettiğiniz kitabınızın yaş aralığını bulmak isterseniz tek yapmanız gereken verilerinizi örnek veri setindeki sütunlar şeklinde sıralamanız ve (https://abramuhara-fast-api.hf.space/predict-age/) sayfasına parametreniz {'features': list[Float]}
219
  olacak şekilde göndermenizdir. Cevap olarak {"age_group": yazı şeklinde yaş kategorisi} gönderilecektir.
220
 
 
 
 
 
 
 
221
 
222
  ## Kaynakçalar:
223