laurenramroop commited on
Commit
e2b426d
·
verified ·
1 Parent(s): 8c8e3c8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -36
app.py CHANGED
@@ -1,45 +1,20 @@
1
  import streamlit as st
2
- from transformers import pipeline
3
  from sentence_transformers import SentenceTransformer, util
4
- import docx2txt
5
- import PyPDF2
6
 
7
- @st.cache_resource
8
  def load_model():
9
- return SentenceTransformer('all-mpnet-base-v2')
10
 
11
  model = load_model()
12
 
13
- def extract_text_from_file(file):
14
- if file.type == "application/pdf":
15
- with open(file, "rb") as f:
16
- pdf_reader = PyPDF2.PdfReader(f)
17
- text = "".join([page.extract_text() for page in pdf_reader.pages])
18
- elif file.type == "application/vnd.openxmlformats-officedocument.wordprocessingml.document":
19
- text = docx2txt.process(file)
20
- else:
21
- return None
22
- return text
23
 
24
- st.title("Resume/Job Description Similarity Checker")
 
25
 
26
- job_description = st.text_area("Paste the job description here:")
27
- resume_file = st.file_uploader("Upload your resume (PDF or DOCX)", type=["pdf", "docx"])
28
-
29
- if job_description and resume_file:
30
- resume_text = extract_text_from_file(resume_file)
31
- if resume_text:
32
- job_description_embedding = model.encode(job_description)
33
- resume_embedding = model.encode(resume_text)
34
-
35
- similarity_score = util.cos_sim(job_description_embedding, resume_embedding).item() * 100
36
- st.write(f"**Similarity Score:** {similarity_score:.2f}%")
37
-
38
- if similarity_score > 80:
39
- st.success("Your resume seems to be a strong match for the job description!")
40
- elif similarity_score > 50:
41
- st.warning("Your resume shows some alignment, but consider enhancing it further to better reflect the job requirements.")
42
- else:
43
- st.error("Your resume might not align well with the job description. Consider revising it based on the listed requirements.")
44
- else:
45
- st.error("Unsupported file type. Please upload a PDF or DOCX file.")
 
1
  import streamlit as st
 
2
  from sentence_transformers import SentenceTransformer, util
 
 
3
 
4
+ @st.cache_resource # Cache the model for faster loading
5
  def load_model():
6
+ return SentenceTransformer('sentence-transformers/all-mpnet-base-v2')
7
 
8
  model = load_model()
9
 
10
+ st.title("Text Similarity Checker")
 
 
 
 
 
 
 
 
 
11
 
12
+ text1 = st.text_input("Enter the first text:")
13
+ text2 = st.text_input("Enter the second text:")
14
 
15
+ if text1 and text2:
16
+ # Calculate embeddings and similarity
17
+ embedding1 = model.encode(text1)
18
+ embedding2 = model.encode(text2)
19
+ similarity = util.cos_sim(embedding1, embedding2).item() * 100
20
+ st.write(f"**Similarity Score:** {similarity:.2f}%")