Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -4,10 +4,8 @@ import gradio as gr
|
|
4 |
from transformers import pipeline
|
5 |
from collections import Counter
|
6 |
|
7 |
-
# Load
|
8 |
ner_pipeline = pipeline("ner", model="dslim/bert-base-NER", tokenizer="dslim/bert-base-NER", aggregation_strategy="simple")
|
9 |
-
|
10 |
-
# Load NEW job classifier with human-readable labels
|
11 |
text_classifier = pipeline("text-classification", model="tkuye/job-description-classifier")
|
12 |
|
13 |
def clean_resume_text(text):
|
@@ -60,15 +58,14 @@ def process_resumes(files):
|
|
60 |
entities = ner_pipeline(cleaned_text)
|
61 |
classification = classify_resume_ner(entities)
|
62 |
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
return all_results
|
73 |
|
74 |
def classify_resumes_with_model(files):
|
@@ -80,7 +77,7 @@ def classify_resumes_with_model(files):
|
|
80 |
predictions[file_name] = {"error": error}
|
81 |
continue
|
82 |
cleaned_text = clean_resume_text(resume_text)
|
83 |
-
result = text_classifier(cleaned_text[:512])
|
84 |
predictions[file_name] = {
|
85 |
"Predicted Job Category": result[0]['label'],
|
86 |
"Confidence Score": round(result[0]['score'], 4)
|
|
|
4 |
from transformers import pipeline
|
5 |
from collections import Counter
|
6 |
|
7 |
+
# Load pipelines
|
8 |
ner_pipeline = pipeline("ner", model="dslim/bert-base-NER", tokenizer="dslim/bert-base-NER", aggregation_strategy="simple")
|
|
|
|
|
9 |
text_classifier = pipeline("text-classification", model="tkuye/job-description-classifier")
|
10 |
|
11 |
def clean_resume_text(text):
|
|
|
58 |
entities = ner_pipeline(cleaned_text)
|
59 |
classification = classify_resume_ner(entities)
|
60 |
|
61 |
+
all_results[file_name] = {
|
62 |
+
"Persons": list({e["word"] for e in entities if e["entity_group"] == "PER"}),
|
63 |
+
"Organizations": list({e["word"] for e in entities if e["entity_group"] == "ORG"}),
|
64 |
+
"Locations": list({e["word"] for e in entities if e["entity_group"] == "LOC"}),
|
65 |
+
"Other Entities": list({e["word"] for e in entities if e["entity_group"] not in ["PER", "ORG", "LOC"]}),
|
66 |
+
"Cleaned_Text": cleaned_text,
|
67 |
+
"Classification (NER)": classification
|
68 |
+
}
|
|
|
69 |
return all_results
|
70 |
|
71 |
def classify_resumes_with_model(files):
|
|
|
77 |
predictions[file_name] = {"error": error}
|
78 |
continue
|
79 |
cleaned_text = clean_resume_text(resume_text)
|
80 |
+
result = text_classifier(cleaned_text[:512]) # Truncate long resumes
|
81 |
predictions[file_name] = {
|
82 |
"Predicted Job Category": result[0]['label'],
|
83 |
"Confidence Score": round(result[0]['score'], 4)
|