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