reshmasuresh/mlmodel
0
1import streamlit as st2import numpy as np3from PIL import Image4from tensorflow.keras.models import load_model5from tensorflow.keras.datasets import imdb6from tensorflow.keras.preprocessing.sequence import pad_sequences7import pickle8 9# Load word index for Sentiment Classification10word_to_index = imdb.get_word_index()11 12# Function to perform sentiment classification13def sentiment_classification(new_review_text, model):14 max_review_length = 50015 new_review_tokens = [word_to_index.get(word, 0) for word in new_review_text.split()]16 new_review_tokens = pad_sequences([new_review_tokens], maxlen=max_review_length)17 prediction = model.predict(new_review_tokens)18 if type(prediction) == list:19 prediction = prediction[0]20 return "Positive" if prediction > 0.5 else "Negative"21 22# Function to perform tumor detection23def tumor_detection(img, model):24 img = Image.open(img)25 img=img.resize((128,128))26 img=np.array(img)27 input_img = np.expand_dims(img, axis=0)28 res = model.predict(input_img)29 return "Tumor Detected" if res else "No Tumor"30 31# Streamlit App32st.title("Multimodel Prediction")33 34# Choose between tasks35task = st.radio("Select Task", ("Sentiment Classification", "Tumor Detection"))36 37if task == "Sentiment Classification":38 # Input box for new review39 new_review_text = st.text_area("Enter a New Review:", value="")40 if st.button("Submit") and not new_review_text.strip():41 st.warning("Please enter a review.")42 43 if new_review_text.strip():44 st.subheader("Choose Model for Sentiment Classification")45 model_option = st.selectbox("Select Model", ("Perceptron", "Backpropagation", "DNN", "RNN", "LSTM"))46 47 # Load models dynamically based on the selected option48 if model_option == "Perceptron":49 with open('perceptron.pkl', 'rb') as file:50 model = pickle.load(file)51 elif model_option == "Backpropagation":52 with open('Backprop.pkl', 'rb') as file:53 model = pickle.load(file)54 elif model_option == "DNN":55 model = load_model('DNN_model.keras')56 elif model_option == "RNN":57 model = load_model('RN.keras')58 elif model_option == "LSTM":59 model = load_model('imdb_model.h5')60 61 if st.button("Classify Sentiment"):62 result = sentiment_classification(new_review_text, model)63 st.subheader("Sentiment Classification Result")64 st.write(f"**{result}**")65 66elif task == "Tumor Detection":67 st.subheader("Tumor Detection")68 uploaded_file = st.file_uploader("Choose a tumor image...", type=["jpg", "jpeg", "png"])69 70 if uploaded_file is not None:71 # Load the tumor detection model72 model = load_model('tumor_model.h5')73 st.image(uploaded_file, caption="Uploaded Image.", use_column_width=False, width=200)74 st.write("")75 76 if st.button("Detect Tumor"):77 result = tumor_detection(uploaded_file, model)78 st.subheader("Tumor Detection Result")79 st.write(f"**{result}**")80 