File size: 3,523 Bytes
36b054b
2a72ef1
 
c8166ff
522c77c
abfcab6
564fde3
3c76263
ed55fef
c68f7bf
564fde3
886f866
4c50283
886f866
ed55fef
b9f45bd
 
90b519b
 
abfcab6
db19c65
 
4c50283
90b519b
f362d95
4c50283
 
f362d95
 
 
4c50283
 
 
 
 
 
 
 
f362d95
4c50283
f362d95
 
4c50283
 
 
 
 
 
 
f362d95
4c50283
3aa7fc9
4c50283
 
 
 
3aa7fc9
f362d95
 
4c50283
 
3aa7fc9
f362d95
4c50283
 
 
 
 
 
 
 
 
 
 
 
 
886f866
3aa7fc9
4c50283
db19c65
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
71
72
73
74
75
76
77
78
79
80
import gradio as gr
from churn_analysis import predict
from translator import text_translator_ui
from sentiment import create_sentiment_tab
from financial_analyst import create_financial_tab
from personal_info_identifier import create_personal_info_tab

with gr.Blocks() as app:
    with gr.Tab("Translation"):
        text_translator_ui()

    with gr.Tab("Sentiment Analysis"):
        create_sentiment_tab()

    with gr.Tab("Text Summarization"):
        create_financial_tab()

    with gr.Tab("Personal Info Identifier"):
        create_personal_info_tab()

    with gr.Tab("Churn Analysis"):
        gr.Markdown("Customer Churn Prediction")

        
        with gr.Row():
            gr.Markdown("This app predicts the likelihood of a customer to leave or stay with the company.")

        with gr.Row():
            with gr.Column():
                input_interface_column_1 = [
                    gr.Radio(['Yes', 'No'], label="Are you a Seniorcitizen?"),
                    gr.Radio(['Yes', 'No'], label='Do you have Partner?'),
                    gr.Radio(['No', 'Yes'], label='Do you have any Dependents?'),
                    gr.Slider(label='Enter length of Tenure in Months', minimum=1, maximum=73, step=1),
                    gr.Radio(['DSL', 'Fiber optic', 'No Internet'], label='What is your Internet Service?'),
                    gr.Radio(['No', 'Yes'], label='Do you have Online Security?'),
                    gr.Radio(['No', 'Yes'], label='Do you have Online Backup?'),
                    gr.Radio(['No', 'Yes'], label='Do you have Device Protection?')
                ]

            with gr.Column():
                input_interface_column_2 = [
                    gr.Radio(['No', 'Yes'], label='Do you have Tech Support?'),
                    gr.Radio(['No', 'Yes'], label='Do you have Streaming TV?'),
                    gr.Radio(['No', 'Yes'], label='Do you have Streaming Movies?'),
                    gr.Radio(['Month-to-month', 'One year', 'Two year'], label='What is your Contract Type?'),
                    gr.Radio(['Yes', 'No'], label='Do you prefer Paperless Billing?'),
                    gr.Radio(['Electronic check', 'Mailed check', 'Bank transfer (automatic)', 'Credit card (automatic)'], label='Which PaymentMethod do you prefer?'),
                    gr.Slider(label="Enter monthly charges", minimum=18.40, maximum=118.65)
                ]


        input_interface = []
        input_interface.extend(input_interface_column_1)
        input_interface.extend(input_interface_column_2)


        with gr.Row():
            predict_btn = gr.Button('Predict')
            output_interface = gr.Label(label="Churn Prediction Result")


        with gr.Accordion("Open for information on inputs", open=False):
            gr.Markdown("""
            **Input Descriptions:**
            - SeniorCitizen: Whether a customer is a senior citizen or not
            - Partner: Whether the customer has a partner or not
            - Dependents: Whether the customer has dependents
            - Tenure: Number of months the customer has stayed
            - InternetService, OnlineSecurity, OnlineBackup, DeviceProtection
            - TechSupport, StreamingTV, StreamingMovies
            - Contract: Type of contract (Month-to-month, One year, Two year)
            - PaperlessBilling
            - PaymentMethod
            - MonthlyCharges
            """)


        predict_btn.click(fn=predict, inputs=input_interface, outputs=output_interface)
app.launch(share=True)