File size: 2,335 Bytes
047a1eb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import streamlit as st
import pandas as pd
import pickle

# Load the pre-trained model
with open('model_svr.pkl', 'rb') as file_1:
    model_svr = pickle.load(file_1)

def run():
    # Create title
    st.title('IMDb Movie Score Prediction')

    # Create subheader
    st.subheader('Calculate IMDb Score of Movies')
  
    # Create a form for input
    with st.form('form_movie_prediction'):
        # Text inputs
        name = st.text_input('Movie Name: ', value = '')
        director = st.text_input('Director: ', value = '')
        writer = st.text_input('Writer: ', value = '')
        star = st.text_input('Star: ', value = '')
        country = st.text_input('Country: ', value = '')
        company = st.text_input('Production Company: ', value ='')
        released = st.text_input('Date Released: ', value = '')
        
        # Number inputs
        year = st.number_input('Release Year: ', value=2022, min_value=1900, max_value=2100)
        budget = st.number_input('Budget ($): ', value=500000000, min_value=0)
        gross = st.number_input('Gross Revenue ($): ', value=958000000, min_value=0)
        runtime = st.number_input('Runtime (minutes): ', value=189, min_value=1)
        votes = st.number_input('Votes: ', value=500000, min_value=0)

        # Categorical inputs
        rating = st.selectbox('Rating: ', ('G', 'PG', 'PG-13', 'R', 'NC-17'), index=3)
        genre = st.selectbox('Genre: ', ('Action', 'Adventure', 'Comedy', 'Drama', 'History', 'Sci-Fi', 'Thriller'), index=4)

        # Submit button
        submitted = st.form_submit_button('Predict IMDb Score')

    # Prepare the data for prediction
    data_inf = {
        'name': name,
        'rating': rating,
        'genre': genre,
        'year': year,
        'released': released,
        'votes': votes,
        'director': director,
        'writer': writer,
        'star': star,
        'country': country,
        'budget': budget,
        'gross': gross,
        'company': company,
        'runtime': runtime
    }

    data_inf = pd.DataFrame([data_inf])
    st.dataframe(data_inf)

    if submitted:
        # Predict IMDb score for Oppenheimer using the SVR model
        prediction = model_svr.predict(data_inf)

        st.write('## Predicted IMDb Score: ', str(round(prediction[0], 2)))


if __name__ == '__main__':
    run()