From b64b7e7a5c7a65e3e4c7bd1e82543d0a43bd6fbe Mon Sep 17 00:00:00 2001 From: Guilherme Kruger Date: Sun, 29 Oct 2023 23:10:17 +0100 Subject: [PATCH] Saving embeddings as array for easier loading --- src/backend/api/matching_algorithm.py | 8 +++++++- src/backend/api/tokenization_n_embedding.py | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/backend/api/matching_algorithm.py b/src/backend/api/matching_algorithm.py index 788186e..2216747 100644 --- a/src/backend/api/matching_algorithm.py +++ b/src/backend/api/matching_algorithm.py @@ -1,3 +1,4 @@ +import json from typing import List import torch from sklearn.metrics.pairwise import cosine_similarity @@ -22,11 +23,16 @@ def get_free_text_match( float: a number from -1 to 1 indicating cosine similarity """ + + if (candidate_embeddings) == None or (job_embeddings) == None: return 0 - if type(candidate_embeddings) == str or type(job_embeddings) == str: + if candidate_embeddings == "" or type(job_embeddings) == "": return 0 + + candidate_embeddings = json.loads(candidate_embeddings) + job_embeddings = json.loads(job_embeddings) return cosine_similarity(candidate_embeddings, job_embeddings)[0][0] diff --git a/src/backend/api/tokenization_n_embedding.py b/src/backend/api/tokenization_n_embedding.py index 1de1941..8181488 100644 --- a/src/backend/api/tokenization_n_embedding.py +++ b/src/backend/api/tokenization_n_embedding.py @@ -1,3 +1,4 @@ +import json import torch from typing import List from transformers import AutoTokenizer, AutoModel @@ -43,7 +44,7 @@ def generate_embeddings(text: str, model_name: str=MODEL_NAME) -> List[List]: with torch.no_grad(): text_outputs = model(**text_tokens) text_embeddings = text_outputs.last_hidden_state.mean(dim=1) - return text_embeddings + return json.dumps(text_embeddings.tolist()) if __name__=="__main__": s = ""