Spaces:
Runtime error
Runtime error
File size: 2,541 Bytes
6fe6caf |
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 72 |
__author__ = "Baishali Dutta"
__copyright__ = "Copyright (C) 2021 Baishali Dutta"
__license__ = "Apache License 2.0"
__version__ = "0.1"
# -------------------------------------------------------------------------
# Import Libraries
# -------------------------------------------------------------------------
import pickle
import gradio as gr
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing.sequence import pad_sequences
from data_cleaning import clean_text
# -------------------------------------------------------------------------
# Load Existing Model and Tokenizer
# -------------------------------------------------------------------------
# load the trained model
rnn_model = load_model("comments_toxicity.h5")
# load the tokenizer
with open("tokenizer.pickle", 'rb') as handle:
tokenizer = pickle.load(handle)
# -------------------------------------------------------------------------
# Main Application
# -------------------------------------------------------------------------
def make_prediction(input_comment):
"""
Predicts the toxicity of the specified comment
:param input_comment: the comment to be verified
"""
input_comment = clean_text(input_comment)
input_comment = input_comment.split(" ")
sequences = tokenizer.texts_to_sequences(input_comment)
sequences = [[item for sublist in sequences for item in sublist]]
padded_data = pad_sequences(sequences, maxlen=100)
result = rnn_model.predict(padded_data, len(padded_data), verbose=1)
return \
{
"Toxic": str(result[0][0]),
"Very Toxic": str(result[0][1]),
"Obscene": str(result[0][2]),
"Threat": str(result[0][3]),
"Insult": str(result[0][4]),
"Hate": str(result[0][5]),
"Neutral": str(result[0][6])
}
comment = gr.inputs.Textbox(lines=17, placeholder="Enter your comment here")
title = "Comments Toxicity Detection"
description = "This application uses a Bidirectional Long Short-Term Memory (LSTM) Recurrent Neural Network (RNN) " \
"model to predict the inappropriateness of a comment"
gr.Interface(fn=make_prediction,
inputs=comment,
outputs="label",
title=title,
description=description,
article="http://raw.githubusercontent.com/baishalidutta/Comments-Toxicity-Detection/gradio/README.md") \
.launch(share=True)
|