Gulzd's picture
Update app.py
9e9d71e
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()