OatNapat commited on
Commit
4873082
·
1 Parent(s): c693087

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -59
app.py CHANGED
@@ -1,66 +1,47 @@
1
- import joblib
2
  import pandas as pd
3
- import streamlit as st
4
 
5
- EDU_DICT = {'Preschool': 1,
6
- '1st-4th': 2,
7
- '5th-6th': 3,
8
- '7th-8th': 4,
9
- '9th': 5,
10
- '10th': 6,
11
- '11th': 7,
12
- '12th': 8,
13
- 'HS-grad': 9,
14
- 'Some-college': 10,
15
- 'Assoc-voc': 11,
16
- 'Assoc-acdm': 12,
17
- 'Bachelors': 13,
18
- 'Masters': 14,
19
- 'Prof-school': 15,
20
- 'Doctorate': 16
21
- }
22
 
23
- model = joblib.load('model.joblib')
24
- unique_values = joblib.load('unique_values.joblib')
25
-
26
- unique_class = unique_values["workclass"]
27
- unique_education = unique_values["education"]
28
- unique_marital_status = unique_values["marital.status"]
29
- unique_relationship = unique_values["relationship"]
30
- unique_occupation = unique_values["occupation"]
31
- unique_sex = unique_values["sex"]
32
- unique_race = unique_values["race"]
33
- unique_country = unique_values["native.country"]
34
 
35
- def main():
36
- st.title("Adult Income Analysis")
 
37
 
38
- with st.form("questionaire"):
39
- age = st.slider("Age", min_value=10, max_value=100)
40
- workclass = st.selectbox("Workclass", unique_class)
41
- education = st.selectbox("Education", unique_education)
42
- Marital_Status = st.selectbox("Marital Status", unique_marital_status)
43
- occupation = st.selectbox("Occupation", unique_occupation)
44
- relationship = st.selectbox("Relationship", unique_relationship)
45
- race = st.selectbox("Race", unique_race)
46
- sex = st.selectbox("Sex", unique_sex)
47
- hours_per_week = st.slider("Hours per week", min_value=1, max_value=100)
48
- native_country = st.selectbox("Country", unique_country)
49
 
50
- clicked = st.form_submit_button("Predict income")
51
- if clicked:
52
- result=model.predict(pd.DataFrame({"age": [age],
53
- "workclass": [workclass],
54
- "education": [EDU_DICT[education]],
55
- "marital.status": [Marital_Status],
56
- "occupation": [occupation],
57
- "relationship": [relationship],
58
- "race": [race],
59
- "sex": [sex],
60
- "hours.per.week": [hours_per_week],
61
- "native.country": [native_country]}))
62
- result = '>50K' if result[0] == 1 else '<=50K'
63
- st.success('The predicted income is {}'.format(result))
64
 
65
- if __name__=='__main__':
66
- main()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask, render_template, request, redirect, url_for, flash
2
  import pandas as pd
3
+ from transformers import AutoModelForSequenceClassification, AutoTokenizer
4
 
5
+ app = Flask(__name__)
6
+ app.secret_key = 'your_secret_key'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
+ # Load Hugging Face Transformers model and tokenizer
9
+ model_name = "distilbert-base-uncased"
10
+ model = AutoModelForSequenceClassification.from_pretrained(model_name)
11
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
 
 
 
 
 
 
 
12
 
13
+ @app.route('/')
14
+ def index():
15
+ return render_template('index.html')
16
 
17
+ @app.route('/upload', methods=['POST'])
18
+ def upload_file():
19
+ if 'file' not in request.files:
20
+ flash('No file part')
21
+ return redirect(request.url)
 
 
 
 
 
 
22
 
23
+ file = request.files['file']
 
 
 
 
 
 
 
 
 
 
 
 
 
24
 
25
+ if file.filename == '':
26
+ flash('No selected file')
27
+ return redirect(request.url)
28
+
29
+ if file:
30
+ try:
31
+ df = pd.read_csv(file)
32
+ # Your data cleaning logic here
33
+ # For example, let's perform sentiment analysis on a column 'text'
34
+ df['sentiment_score'] = df['text'].apply(lambda x: analyze_sentiment(x))
35
+ return df.to_html(classes='table table-bordered', escape=False)
36
+ except Exception as e:
37
+ flash(f'Error processing the file: {str(e)}')
38
+ return redirect(request.url)
39
+
40
+ def analyze_sentiment(text):
41
+ inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
42
+ output = model(**inputs)
43
+ score = output.logits.softmax(dim=1).tolist()[0]
44
+ return score
45
+
46
+ if __name__ == '__main__':
47
+ app.run(debug=True)