Spaces:
Sleeping
Sleeping
Download app.py from Boorla/IMDB_project: direct link, hf CLI and curl.
- Browser
- Download file 1.9 kB
-
https://huggingface.co/spaces/Boorla/IMDB_project/resolve/main/app.py
- Command line
-
hf download hf://spaces/Boorla/IMDB_project/app.py
-
curl -L -o app.py https://huggingface.co/spaces/Boorla/IMDB_project/resolve/main/app.py
1.9 kB
| import streamlit as st | |
| import pandas as pd | |
| import re | |
| from sklearn.feature_extraction.text import CountVectorizer | |
| from sklearn.model_selection import train_test_split | |
| from sklearn.naive_bayes import GaussianNB | |
| from sklearn.ensemble import RandomForestClassifier | |
| from sklearn.metrics import accuracy_score | |
| from sklearn.preprocessing import LabelEncoder | |
| df = pd.read_csv("IMDB Dataset.csv") | |
| st.title(":red[IMDB Sentiment Prediction]") | |
| st.subheader(":blue[Original DataFrame]") | |
| df = df[:5001] | |
| st.dataframe(df) | |
| # Data Cleaning | |
| def clean_text(text): | |
| text = re.sub(r'<.*?>', '', text) | |
| text = re.sub(r'[^a-zA-Z\s]', '', text) | |
| text = text.lower().strip() | |
| return text | |
| df["review"] = df["review"].apply(clean_text) | |
| st.subheader(":blue[Cleaned DataFrame]") | |
| st.dataframe(df) | |
| st.header(":blue[Accuracy of model]") | |
| vectorizer = CountVectorizer(stop_words="english") | |
| X = vectorizer.fit_transform(df["review"]).toarray() | |
| df1 = pd.DataFrame(data=X,columns=vectorizer.get_feature_names_out()) | |
| label_encoder = LabelEncoder() | |
| y = label_encoder.fit_transform(df["sentiment"]) | |
| X_train, X_test, y_train, y_test = train_test_split(df1, y, test_size=0.2, random_state=42) | |
| model_2 = RandomForestClassifier() | |
| model_2.fit(X_train,y_train) | |
| y_pred = model_2.predict(X_test) | |
| accuracy_2 = accuracy_score(y_test,y_pred) | |
| st.write(accuracy_2) | |
| text_input = st.text_area("Write the movie review:") | |
| if st.button("Predict"): | |
| if text_input is not None: | |
| transformed_text = vectorizer.transform([text_input]).toarray() | |
| af1 = pd.DataFrame(data=transformed_text,columns=vectorizer.get_feature_names_out()) | |
| prediction = model_2.predict(af1) | |
| st.write("Prediction:",prediction[0]) | |
| if prediction[0] == 1: | |
| st.write("Positive Review!") | |
| st.balloons() | |
| else: | |
| st.write("Negative Review!") | |
| st.snow() |