Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import pickle | |
| from nltk.stem.porter import PorterStemmer | |
| import numpy as np | |
| from sklearn.feature_extraction.text import CountVectorizer | |
| from sklearn.preprocessing import LabelEncoder | |
| from sklearn.naive_bayes import MultinomialNB | |
| from sklearn.model_selection import train_test_split | |
| data = (pickle.load(open("dataframe.pkl", "rb"))) | |
| features_dict = pickle.load(open("features_dict.pkl", "rb")) | |
| le = LabelEncoder() | |
| cv = CountVectorizer(max_features=5000) | |
| clf=MultinomialNB() | |
| def vectorize(dataframe): | |
| X = cv.fit_transform(dataframe.review).toarray() | |
| data.sentiment=le.fit_transform(dataframe.sentiment) | |
| y=data.iloc[:,-1].values | |
| return X, y | |
| def stemming(text, stemmer=PorterStemmer()): | |
| stem_word=[] | |
| for i in text.split(): | |
| stem_word.append(stemmer.stem(i)) | |
| return stem_word | |
| #store the text in BoW(bag of words) | |
| def vectorBuild(val): | |
| a=np.zeros(5000) | |
| for i in range(len(val)): | |
| if val[i] in features_dict: | |
| a[features_dict[val[i]]] += 1 | |
| a = a.reshape(1, -1) | |
| return a | |
| def modelFunction(X, y, a): | |
| train_X, test_X, train_y, test_y = train_test_split(X, y, test_size=0.2, random_state=42, stratify=data.sentiment) | |
| clf.fit(train_X, train_y) | |
| pred = clf.predict(a) | |
| return pred | |
| st.title("Sentiment Analysis Prediction") | |
| container = st.container() | |
| container.write("You need to press enter everytime, empty textbox will show \'Positve Sentiment\'") | |
| container.write() | |
| selected_text = container.text_input("Enter the text that you want to test") | |
| container.write("Processing...") | |
| # selected_text = input("Enter the text that you want to test: ") | |
| a = stemming(selected_text) | |
| a = vectorBuild(a) | |
| X, y = vectorize(data) | |
| model = modelFunction(X, y, a) | |
| if model[0] == 1: | |
| container.write("Positive Sentiment") | |
| # print("Positive") | |
| elif model[0] == 0: | |
| container.write("Negative Sentiment") | |
| # print("Negative") |