import streamlit as st from sklearn.feature_extraction.text import CountVectorizer from textblob import TextBlob from nltk.stem import PorterStemmer from tensorflow.keras.models import load_model import numpy as np import nltk nltk.download("punkt") model=load_model("model.h5") pr=PorterStemmer() def lemmafn(text): words=TextBlob(text).words return [pr.stem(word) for word in words] vect=CountVectorizer(ngram_range=(1,4),max_features=100000,analyzer=lemmafn) st.title("Predicting Emotion of Text") text=st.text_area("Your text") if text is not None: text=text.lower() text=text.replace("[^\w\s]","") text=text.replace("\n","") text=text.replace("\d+","") text=vect.fit_transform([text]) if st.button("Predict"): prediction=model.predict(text) class_names=["Joy","Love","Anger","Sadness","Fear","Surprise"] emotion=class_names[np.argmax(prediction)] st.write(emotion)