CoolFace
Apppublic

Bindupriya/imdb

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
app.py67 linesDownload Raw Back to root
1import streamlit as st2import pandas as pd3import re4 5from sklearn.feature_extraction.text import CountVectorizer6from sklearn.model_selection import train_test_split7from sklearn.naive_bayes import GaussianNB8from sklearn.ensemble import RandomForestClassifier9from sklearn.metrics import accuracy_score10from sklearn.preprocessing import LabelEncoder11 12 13df = pd.read_csv(r"IMDB%20Dataset.csv")14st.title(":red[IMDB Sentiment Prediction]")15st.subheader(":blue[Original DataFrame]")16df = df[:5001]  17st.dataframe(df) 18 19# Data Cleaning20def clean_text(text):21    text = re.sub(r'<.*?>', '', text)  22    text = re.sub(r'[^a-zA-Z\s]', '', text)  23    text = text.lower().strip()  24    return text25 26df["review"] = df["review"].apply(clean_text)27st.subheader(":blue[Cleaned DataFrame]")28st.dataframe(df) 29 30st.header(":blue[Accuracy of model]") 31 32vectorizer = CountVectorizer(stop_words="english")33X = vectorizer.fit_transform(df["review"]).toarray()34 35df1 = pd.DataFrame(data=X,columns=vectorizer.get_feature_names_out())36 37label_encoder = LabelEncoder()38y = label_encoder.fit_transform(df["sentiment"])39X_train, X_test, y_train, y_test = train_test_split(df1, y, test_size=0.2, random_state=42)40 41 42 43model_2 = RandomForestClassifier()44model_2.fit(X_train,y_train)45y_pred = model_2.predict(X_test)46accuracy_2 = accuracy_score(y_test,y_pred)47st.write(accuracy_2)48 49 50 51text_input = st.text_area("Write the movie review:")52 53if st.button("Predict"):  54    if text_input is not None:  55        transformed_text = vectorizer.transform([text_input]).toarray()56        af1 = pd.DataFrame(data=transformed_text,columns=vectorizer.get_feature_names_out())57        prediction = model_2.predict(af1)58        59 60        st.write("Prediction:",prediction[0])61 62        if prediction[0] == 1:63            st.write("Positive Review!")64            st.balloons()  65        else:66            st.write("Negative Review!")67            st.snow()