DreamStream-1 commited on
Commit
b7f4f59
·
verified ·
1 Parent(s): 196d261

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -8
app.py CHANGED
@@ -6,9 +6,16 @@ import pandas as pd
6
  from sklearn.feature_extraction.text import TfidfVectorizer
7
  from sentence_transformers import SentenceTransformer
8
  import spacy
 
9
 
10
  # Load SpaCy model for Named Entity Recognition
11
- nlp = spacy.load("en_core_web_sm") # You can also use a larger model for better accuracy
 
 
 
 
 
 
12
  sentence_model = SentenceTransformer('all-MiniLM-L6-v2')
13
 
14
  def extract_text_from_txt(txt_file):
@@ -22,7 +29,7 @@ def extract_text_from_pdf(pdf_file):
22
  reader = PyPDF2.PdfReader(pdf_file)
23
  text = ''
24
  for page in reader.pages:
25
- text += page.extract_text()
26
  return text
27
 
28
  def extract_years_of_experience(resume_text):
@@ -50,6 +57,12 @@ def evaluate_with_tfidf(resumes, required_skills):
50
  similarities = (tfidf_matrix[-1] * tfidf_matrix[:-1].T).toarray().flatten()
51
  return similarities
52
 
 
 
 
 
 
 
53
  def analyze_resumes(resume_files, job_desc_file, required_skills, required_experience_years):
54
  """Analyzes resumes based on job description and required criteria."""
55
  # Read the job description
@@ -94,12 +107,6 @@ def analyze_resumes(resume_files, job_desc_file, required_skills, required_exper
94
 
95
  return results
96
 
97
- def cosine_similarity(a, b):
98
- """Calculate cosine similarity between two vectors."""
99
- a = a / np.linalg.norm(a)
100
- b = b / np.linalg.norm(b)
101
- return np.dot(a, b)
102
-
103
  # Gradio interface
104
  def build_app():
105
  with gr.Blocks() as app:
 
6
  from sklearn.feature_extraction.text import TfidfVectorizer
7
  from sentence_transformers import SentenceTransformer
8
  import spacy
9
+ import os
10
 
11
  # Load SpaCy model for Named Entity Recognition
12
+ try:
13
+ nlp = spacy.load("en_core_web_sm")
14
+ except OSError:
15
+ os.system("python -m spacy download en_core_web_sm")
16
+ nlp = spacy.load("en_core_web_sm")
17
+
18
+ # Load Sentence Transformer model
19
  sentence_model = SentenceTransformer('all-MiniLM-L6-v2')
20
 
21
  def extract_text_from_txt(txt_file):
 
29
  reader = PyPDF2.PdfReader(pdf_file)
30
  text = ''
31
  for page in reader.pages:
32
+ text += page.extract_text() or '' # Ensure we handle cases where extract_text() returns None
33
  return text
34
 
35
  def extract_years_of_experience(resume_text):
 
57
  similarities = (tfidf_matrix[-1] * tfidf_matrix[:-1].T).toarray().flatten()
58
  return similarities
59
 
60
+ def cosine_similarity(a, b):
61
+ """Calculate cosine similarity between two vectors."""
62
+ a = a / np.linalg.norm(a)
63
+ b = b / np.linalg.norm(b)
64
+ return np.dot(a, b)
65
+
66
  def analyze_resumes(resume_files, job_desc_file, required_skills, required_experience_years):
67
  """Analyzes resumes based on job description and required criteria."""
68
  # Read the job description
 
107
 
108
  return results
109
 
 
 
 
 
 
 
110
  # Gradio interface
111
  def build_app():
112
  with gr.Blocks() as app: