Boorla commited on
Commit
e0e4dd1
·
verified ·
1 Parent(s): a74c9bd

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +60 -60
app.py CHANGED
@@ -1,61 +1,61 @@
1
- import streamlit as st
2
- import pandas as pd
3
- import re
4
- from sklearn.feature_extraction.text import CountVectorizer
5
- from sklearn.model_selection import train_test_split
6
- from sklearn.naive_bayes import GaussianNB
7
- from sklearn.ensemble import RandomForestClassifier
8
- from sklearn.metrics import accuracy_score
9
- from sklearn.preprocessing import LabelEncoder
10
-
11
-
12
- df = pd.read_csv(r"C:\Users\pavilion\Desktop\Project_vs\IMDB Dataset.csv")
13
- st.write("### Load Dataset")
14
- df = df[:5001]
15
-
16
- # Data Cleaning
17
- def clean_text(text):
18
- text = re.sub(r'<.*?>', '', text)
19
- text = re.sub(r'[^a-zA-Z\s]', '', text)
20
- text = text.lower().strip()
21
- return text
22
-
23
- df["review"] = df["review"].apply(clean_text)
24
- st.write("### Cleaned Dataset")
25
-
26
- vectorizer = CountVectorizer(stop_words="english")
27
- X = vectorizer.fit_transform(df["review"]).toarray()
28
-
29
- df1 = pd.DataFrame(data=X,columns=vectorizer.get_feature_names_out())
30
-
31
- label_encoder = LabelEncoder()
32
- y = label_encoder.fit_transform(df["sentiment"])
33
- X_train, X_test, y_train, y_test = train_test_split(df1, y, test_size=0.2, random_state=42)
34
-
35
-
36
-
37
- model_2 = RandomForestClassifier()
38
- model_2.fit(X_train,y_train)
39
- y_pred = model_2.predict(X_test)
40
- accuracy_2 = accuracy_score(y_test,y_pred)
41
- st.write(accuracy_2)
42
-
43
-
44
-
45
- text_input = st.text_area("Write the movie review:")
46
-
47
- if st.button("Predict"):
48
- if text_input is not None:
49
- transformed_text = vectorizer.transform([text_input]).toarray()
50
- af1 = pd.DataFrame(data=transformed_text,columns=vectorizer.get_feature_names_out())
51
- prediction = model_2.predict(af1)
52
-
53
-
54
- st.write("Prediction:",prediction[0])
55
-
56
- if prediction[0] == 1:
57
- st.write("Positive Review!")
58
- st.balloons()
59
- else:
60
- st.write("Negative Review!")
61
  st.snow()
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import re
4
+ from sklearn.feature_extraction.text import CountVectorizer
5
+ from sklearn.model_selection import train_test_split
6
+ from sklearn.naive_bayes import GaussianNB
7
+ from sklearn.ensemble import RandomForestClassifier
8
+ from sklearn.metrics import accuracy_score
9
+ from sklearn.preprocessing import LabelEncoder
10
+
11
+
12
+ df = pd.read_csv("IMDB Dataset.csv")
13
+ st.title("Welcome to IMDB Movie Review Prediction")
14
+ df = df[:5001]
15
+
16
+ # Data Cleaning
17
+ def clean_text(text):
18
+ text = re.sub(r'<.*?>', '', text)
19
+ text = re.sub(r'[^a-zA-Z\s]', '', text)
20
+ text = text.lower().strip()
21
+ return text
22
+
23
+ df["review"] = df["review"].apply(clean_text)
24
+ st.header("Accuracy of model")
25
+
26
+ vectorizer = CountVectorizer(stop_words="english")
27
+ X = vectorizer.fit_transform(df["review"]).toarray()
28
+
29
+ df1 = pd.DataFrame(data=X,columns=vectorizer.get_feature_names_out())
30
+
31
+ label_encoder = LabelEncoder()
32
+ y = label_encoder.fit_transform(df["sentiment"])
33
+ X_train, X_test, y_train, y_test = train_test_split(df1, y, test_size=0.2, random_state=42)
34
+
35
+
36
+
37
+ model_2 = RandomForestClassifier()
38
+ model_2.fit(X_train,y_train)
39
+ y_pred = model_2.predict(X_test)
40
+ accuracy_2 = accuracy_score(y_test,y_pred)
41
+ st.write(accuracy_2)
42
+
43
+
44
+
45
+ text_input = st.text_area("Write the movie review:")
46
+
47
+ if st.button("Predict"):
48
+ if text_input is not None:
49
+ transformed_text = vectorizer.transform([text_input]).toarray()
50
+ af1 = pd.DataFrame(data=transformed_text,columns=vectorizer.get_feature_names_out())
51
+ prediction = model_2.predict(af1)
52
+
53
+
54
+ st.write("Prediction:",prediction[0])
55
+
56
+ if prediction[0] == 1:
57
+ st.write("Positive Review!")
58
+ st.balloons()
59
+ else:
60
+ st.write("Negative Review!")
61
  st.snow()