File size: 2,450 Bytes
92d8d31
 
2735196
 
9e9d71e
 
 
 
2735196
9e9d71e
 
 
 
 
 
2735196
9e9d71e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2735196
92d8d31
8347edb
2735196
92d8d31
 
2735196
 
 
 
 
 
 
 
 
 
 
 
 
92d8d31
e4cde66
92d8d31
 
 
e4cde66
92d8d31
 
e4cde66
2735196
92d8d31
e4cde66
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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()