|
import gradio as gr |
|
from gradio.components import Text |
|
import joblib |
|
import clean |
|
import nltk |
|
nltk.download('wordnet') |
|
import numpy as np |
|
import language_detection |
|
print("all imports worked") |
|
|
|
model = joblib.load('model_joblib.pkl') |
|
print("model load ") |
|
tf = joblib.load('tf_joblib.pkl') |
|
print("tfidf load ") |
|
|
|
|
|
def predict_abusive_lang(text): |
|
print("original text ", text) |
|
|
|
lang = language_detection.en_hi_detection(text) |
|
print("language detected ", lang) |
|
|
|
if lang=='eng': |
|
cleaned_text = clean.text_cleaning(text) |
|
print("cleaned text ", text) |
|
text = tf.transform([cleaned_text]) |
|
print("tfidf transformation ", text) |
|
prediction = model.predict(text) |
|
print("prediction ", prediction) |
|
if len(prediction)!=0 and prediction[0]==0: |
|
return ["NA", cleaned_text] |
|
elif len(prediction)!=0 and prediction[0]==1: |
|
return ["AB",cleaned_text] |
|
else : |
|
return ["Please write something in the comment box..","No cleaned text"] |
|
elif lang=='hi': |
|
print("using hugging face api") |
|
return ["Hindi Text abusive part coming soon.....","No cleaned text"] |
|
else : |
|
return ["UN","No cleaned text"] |
|
|
|
|
|
|
|
|
|
|
|
|
|
output_interfaces = [ |
|
gr.outputs.Textbox(label="Result"), |
|
gr.outputs.Textbox(label="Cleaned text") |
|
] |
|
app = gr.Interface(predict_abusive_lang, inputs='text', outputs=output_interfaces, title="Abuse Classifier", description="Enter a sentence and the model will predict whether it is abusive or not.") |
|
|
|
app.launch() |