Spaces:
Sleeping
Sleeping
| import pickle | |
| import gradio as gr | |
| import numpy as np | |
| import pandas as pd | |
| import joblib | |
| from sklearn.model_selection import train_test_split | |
| from sklearn.feature_extraction.text import TfidfVectorizer | |
| from sklearn.preprocessing import LabelEncoder | |
| from sklearn.pipeline import Pipeline | |
| from sklearn.naive_bayes import MultinomialNB | |
| from sklearn.ensemble import RandomForestClassifier | |
| from sklearn.metrics import accuracy_score, classification_report | |
| import nltk | |
| from nltk.tokenize import word_tokenize | |
| from nltk.corpus import stopwords | |
| from nltk.stem import WordNetLemmatizer | |
| nltk.download('punkt') | |
| nltk.download('stopwords') | |
| nltk.download('wordnet') | |
| pipe2 = joblib.load("sentiment_analysis_model.joblib") | |
| def preprocess_nltk(text): | |
| lemmatizer = WordNetLemmatizer() | |
| tokens = word_tokenize(text.lower()) # Tokenization | |
| stop_words = set(stopwords.words("english")) | |
| filtered_tokens = [lemmatizer.lemmatize(token) for token in tokens if token.isalnum() and token not in stop_words] | |
| return " ".join(filtered_tokens) | |
| def prediction(text): | |
| text_processed=(preprocess_nltk(text)) | |
| ans=pipe2.predict([text_processed]) | |
| classes = ['Irrelevant', 'Natural', 'Negative', 'Positive'] | |
| predicted_label = ans[0] | |
| return(f"The above text is:{classes[predicted_label]}" ) | |
| pre = gr.Interface( | |
| fn=prediction, | |
| inputs=["text"], | |
| outputs=[gr.Textbox(label="Prediction", lines=3)], | |
| ) | |
| pre.launch() | |