Spaces:
Sleeping
Sleeping
import gradio as gr | |
import pandas as pd | |
import nltk | |
import pickle | |
import tensorflow as tf | |
from tensorflow.keras.preprocessing.text import Tokenizer | |
from tensorflow.keras.preprocessing.sequence import pad_sequences | |
from tensorflow.keras.models import load_model | |
def cleaning_text(stop_words, tokenizer, title, text): | |
text = title + text | |
text.lower().replace('[^A-Za-z0-9\s]', '') | |
text = " ".join([word for word in text.split() if word not in stop_words]) | |
df_text = pd.DataFrame({'new': text}, index=[0]) | |
sequence = tokenizer.texts_to_sequences(df_text['new']) | |
print(len(sequence)) | |
padded_sequence = pad_sequences(sequence, maxlen=600, padding='post', truncating='post') | |
return padded_sequence | |
nltk.download('stopwords') | |
from nltk.corpus import stopwords | |
stop_words = stopwords.words('english') | |
# load Tokenizer | |
with open('tokenizer.pkl', 'rb') as f: | |
tokenizer = pickle.load(f) | |
# load model | |
model_lstm = load_model('model_lstm_1.0.h5') | |
def detecter(title, text, stop_words, tokenizer, model): | |
seq = cleaning_text(stop_words, tokenizer, title=title, text=text) | |
pred = model.predict(seq)[0, 0] | |
if pred > 0.5: | |
return "True!" | |
elif pred <= 0.5: | |
return "False!" | |
else: | |
return "Please try again." | |
title = gr.Textbox(label="Input the news title") | |
text = gr.Textbox(label="Input the news full content") | |
stop_words = stop_words | |
tokenizer = tokenizer | |
model = model_lstm | |
imf = gr.Interface(fn=lambda input1, input2: detecter(input1, input2, stop_words, tokenizer, model), inputs=[title, text], outputs="text") | |
if __name__ == "__main__": | |
imf.launch(share=True) |