Spaces:
Running
Running
import gradio as gr | |
from sentence_transformers import SentenceTransformer, util | |
model = SentenceTransformer('paraphrase-MiniLM-L6-v2') | |
def match_resume(resume, job1, job2, job3): | |
# Calculate similarity | |
resume_embedding = model.encode(resume, convert_to_tensor=True) | |
# Encode each job description using a loop | |
job_embeddings = [] | |
for job in [job1, job2, job3]: | |
job_embeddings.append(model.encode(job, convert_to_tensor=True)) | |
# Calculate the similarities using a loop | |
similarities = [] | |
for job_emb in job_embeddings: | |
similarity = util.pytorch_cos_sim(resume_embedding, job_emb).item() * 100 | |
similarities.append(similarity) | |
best_job_index = 1 | |
best_match = similarities[0] | |
for i in range(1, len(similarities)): | |
if similarities[i] > best_match: | |
best_match = similarities[i] | |
best_job_index = i + 1 | |
results = [] | |
for i, sim in enumerate(similarities): | |
results.append(f"Job {i+1}: {sim:.2f}% match") | |
results.append(f"Best Match: Job {best_job_index} with {best_match:.2f}%") | |
return "\n".join(results) | |
# Gradio interface | |
interface = gr.Interface(fn=match_resume, | |
inputs=["text", "text", "text", "text"], | |
outputs="text", | |
examples=[ | |
["Experienced software developer skilled in Python and AI.", | |
"Looking for a Python developer with experience in AI and ML.", | |
"Seeking a data scientist with expertise in deep learning.", | |
"Hiring a web developer proficient in JavaScript and React."], | |
["Marketing specialist with a focus on digital campaigns.", | |
"Seeking a social media expert to manage brand presence.", | |
"Hiring a digital marketer with experience in SEO and PPC.", | |
"Looking for a content writer to create engaging blog posts."] | |
] | |
) | |
interface.launch() |