File size: 2,200 Bytes
9e7c6f6
 
 
 
 
 
b890c93
9e7c6f6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import pickle
import re
import nltk

nltk.download('punkt')
nltk.download('stopwords')

model = pickle.load(open('model.pkl','rb'))
tfidf = pickle.load(open('tfidf.pkl','rb'))

def clean_resume(resume_text):
        cleanText = re.sub('http\S+\s', " ", txt)
        cleanText = re.sub('RT|cc', ' ', cleanText)
        cleanText = re.sub("#\S+\s", ' ', cleanText)
        cleanText = re.sub('@\S+\s', ' ', cleanText)
        cleanText = re.sub('[%s]' % re.escape("""!#$%&'()*+-,":/\;<=>?_[]^{}~`"""), ' ', cleanText)
        cleanText = re.sub(r'[^\x00-\x7f]', " ", cleanText)
        return cleanText

def main():
    st.title("Resume Screening Application")
    uploaded_file = st.file_uploader("Upload Resume Here",type=['txt','pdf'])
    if uploaded_file is not None:
        try:
            resume_bytes = uploaded_file.read()
            resume_text = resume_bytes.decode('utf-8')
        except:
            resume_text = resume_bytes.decode('latin-1')

        cleaned_resume = clean_resume(resume_text)
        input_features  = tfidf.transform([cleaned_resume])
        prediction_id = model.predict(input_features)[0]
        st.write(prediction_id)

        category_mapping = {
            15: "Java Developer",
            23: "Testing",
            8: "DevOps Engineer",
            20: "Python Developer",
            24: "Web Designing",
            12: "HR",
            13: "Hadoop",
            3: "Blockchain",
            10: "ETL Developer",
            18: "Operations Manager",
            6: "Data Science",
            22: "Sales",
            16: "Mechanical Engineer",
            1: "Arts",
            7: "Database",
            11: "Electrical Engineering",
            14: "Health and fitness",
            19: "PMO",
            4: "Business Analyst",
            9: "DotNet Developer",
            2: "Automation Testing",
            17: "Network Security Engineer",
            21: "SAP Developer",
            5: "Civil Engineer",
            0: "Advocate",
        }

        category_name = category_mapping.get(prediction_id,'Unknown')
        st.write("THE PREDICTED CATEGORY IS: ",category_name)

if __name__ == '__main__':
    main()