from simpletransformers.classification import ClassificationModel import gradio as gr import pandas as pd import numpy as np import nltk from nltk.corpus import stopwords import re import string # NLTK kütüphanesini kullanarak türkçe dilindeki etkisiz kelimeleri (stopwords) indiriyoruz. nltk.download('stopwords') # İndirilen etkisiz kelimeleri "stop_words_list" değişkenine atıyoruz. stop_words_list = stopwords.words('turkish') # Veri setindeki "text" sütunu altındaki hatalı alanları temizlemek için bir dizi oluşturduk. false_text = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] def preprocess_text(text): # Küçük harflere çevirme text = text.lower() # Satır sonu karakterlerini kaldırma import re text = re.sub(r'\n', ' ', text) # Rakamları kaldırma text = re.sub(r'\d', '', text) # Noktalama işaretlerini kaldırma import string text = text.translate(str.maketrans("", "", string.punctuation)) # Stop-words'leri kaldırma words = text.split() words = [word for word in words if not word in stop_words_list] # Veri setindeki hatalı verilerin kaldırılması words = [word for word in words if not word in false_text] # Tekrarlanan karakterlerin kaldırılması words = [re.sub(r'(.)\1{1,}', r'\1\1', word) for word in words] # Tekrarlanan boşlukların kaldırılması words = [word.strip() for word in words if len(word.strip()) > 1] text = " ".join(words) return text def predict(text): model_path = "bert_model" model = ClassificationModel('bert', model_path, use_cuda=False) prediction, _ = model.predict([text]) return result_predict(prediction[0]) def result_predict(num): if num == 4: return 'OTHER' elif num == 1: return 'RACIST' elif num == 0: return 'INSULT' elif num == 3: return 'PROFANITY' elif num == 2: return 'SEXIST' # Gradio arayüzünü oluştur iface = gr.Interface( fn=predict, # Kullanıcıdan alınan metni modelinize ileten fonksiyon inputs=gr.Textbox(), # Kullanıcıdan metin girişi alın outputs=gr.Textbox(), # Model çıktısını görüntülemek için metin kutusu live=True, title='Yorum Tespiti', css='''span{text-transform: uppercase} p{text-align: center}''' ) # Gradio arayüzünü başlat iface.launch()