ceejaytheanalyst commited on
Commit
acea3cc
·
verified ·
1 Parent(s): 6491141

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -18
app.py CHANGED
@@ -1,7 +1,6 @@
1
  import streamlit as st
2
  import torch
3
  from sentence_transformers import SentenceTransformer, util
4
- #from spellchecker import SpellChecker
5
  import pickle
6
  import re
7
 
@@ -27,19 +26,7 @@ def validate_input(input_string):
27
  else:
28
  return False
29
 
30
- # Define the function for mapping code
31
- def mapping_code(user_input, mode):
32
- if mode == "CPT_to_SBS":
33
- stored_embeddings_cpt = stored_embeddings
34
- stored_data_cpt = stored_data_cpt
35
- code_column = stored_data["CPT_CODE"]
36
- description_column = stored_data["FULL_DESCRIPTION"]
37
- elif mode == "SBS_to_CPT":
38
- stored_embeddings = stored_embeddings
39
- stored_data = stored_data_sbs
40
- code_column = stored_data["SBS_code"]
41
- description_column = stored_data["Description"]
42
-
43
  emb1 = model.encode(user_input.lower())
44
  similarities = []
45
  for sentence in stored_embeddings:
@@ -47,7 +34,7 @@ def mapping_code(user_input, mode):
47
  similarities.append(similarity)
48
 
49
  # Filter results with similarity scores above 0.70
50
- result = [(code, desc, sim) for (code, desc, sim) in zip(code_column, description_column, similarities)]
51
 
52
  # Sort results by similarity scores
53
  result.sort(key=lambda x: x[2], reverse=True)
@@ -65,9 +52,39 @@ def mapping_code(user_input, mode):
65
 
66
  return top_5_results
67
 
68
- # Streamlit frontend interface
69
- import streamlit as st
 
 
 
 
 
 
 
 
 
 
 
 
70
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  def main():
72
  st.title("CPT-SBS Code Mapping")
73
 
@@ -104,4 +121,3 @@ def main():
104
 
105
  if __name__ == "__main__":
106
  main()
107
-
 
1
  import streamlit as st
2
  import torch
3
  from sentence_transformers import SentenceTransformer, util
 
4
  import pickle
5
  import re
6
 
 
26
  else:
27
  return False
28
 
29
+ def cpt_code(user_input):
 
 
 
 
 
 
 
 
 
 
 
 
30
  emb1 = model.encode(user_input.lower())
31
  similarities = []
32
  for sentence in stored_embeddings:
 
34
  similarities.append(similarity)
35
 
36
  # Filter results with similarity scores above 0.70
37
+ result = [(code, desc, sim) for (code, desc, sim) in zip(stored_data["SBS_code"], stored_data["Description"], similarities)]
38
 
39
  # Sort results by similarity scores
40
  result.sort(key=lambda x: x[2], reverse=True)
 
52
 
53
  return top_5_results
54
 
55
+ def sbs_code(user_input):
56
+ emb1 = model.encode(user_input.lower())
57
+ similarities = []
58
+ for sentence in stored_embeddings_cpt:
59
+ similarity = util.cos_sim(sentence, emb1)
60
+ similarities.append(similarity)
61
+
62
+ # Filter results with similarity scores above 0.70
63
+ result = [(code, desc, sim) for (code, desc, sim) in zip(stored_data_cpt["CPT_CODE"], stored_data_cpt["FULL_DESCRIPTION"], similarities)]
64
+
65
+ # Sort results by similarity scores
66
+ result.sort(key=lambda x: x[2], reverse=True)
67
+
68
+ num_results = min(5, len(result))
69
 
70
+ # Return top 5 entries with 'code', 'description', and 'similarity_score'
71
+ top_5_results = []
72
+ if num_results > 0:
73
+ for i in range(num_results):
74
+ code, description, similarity_score = result[i]
75
+ top_5_results.append({"Code": code, "Description": description, "Similarity Score": similarity_score})
76
+ else:
77
+ top_5_results.append({"Code": "", "Description": "No match", "Similarity Score": 0.0})
78
+
79
+ return top_5_results
80
+
81
+ def mapping_code(user_input, mode):
82
+ if mode == "CPT_to_SBS":
83
+ return cpt_code(user_input)
84
+ elif mode == "SBS_to_CPT":
85
+ return sbs_code(user_input)
86
+
87
+ # Streamlit frontend interface
88
  def main():
89
  st.title("CPT-SBS Code Mapping")
90
 
 
121
 
122
  if __name__ == "__main__":
123
  main()