Spaces:
Runtime error
Runtime error
import gradio as gr | |
import nltk | |
from sklearn.feature_extraction.text import CountVectorizer | |
from sklearn.feature_extraction.text import TfidfVectorizer | |
import joblib | |
from nltk.stem.porter import PorterStemmer | |
from nltk.corpus import stopwords | |
import re | |
nltk.download('stopwords') | |
# import warnings | |
# from sklearn.exceptions import InconsistentVersionWarning | |
# warnings.filterwarnings("ignore", category=InconsistentVersionWarning) | |
ps = PorterStemmer() | |
def preprocess_for_bow_and_tfidf(text): | |
corpus = [] | |
text = re.sub('[^a-zA-Z0-9$£€¥%]',' ',text) | |
text = text.lower() | |
text = text.split() | |
text = [ps.stem(t) for t in text if t not in stopwords.words('english')] | |
corpus.append(' '.join(text)) | |
return corpus | |
vectorizer = joblib.load('./vectorizer.pkl') | |
nb_classifier = joblib.load('./nb_classifier.pkl') | |
tfidf_vectorizer = joblib.load('./tfidf_vectorizer.pkl') | |
random_forest = joblib.load('./random_forest.pkl') | |
def classify(text,choice): | |
corpus=[text] | |
if(choice == 1): | |
corpus = preprocess_for_bow_and_tfidf(text) | |
features = vectorizer.transform(corpus).toarray() | |
prediction = nb_classifier.predict(features) | |
elif(choice == 2): | |
corpus = preprocess_for_bow_and_tfidf(text) | |
features = tfidf_vectorizer.transform(corpus).toarray() | |
prediction = random_forest.predict(features) | |
if(prediction == 1): | |
return "Fake News" | |
else: | |
return "Not Fake News" | |
GUI = gr.Interface( | |
inputs = ['text', gr.Radio( choices = [("Naive Bayes",1) , ("Random Forest",2) ] , value = 1 , label = "Model") ], | |
outputs = ['text'], | |
fn = classify, | |
title = "Fake News Detection System" | |
) | |
GUI.launch(debug = True) |