Update app.py
Browse files
app.py
CHANGED
@@ -11,24 +11,18 @@ import numpy as np
|
|
11 |
model = SentenceTransformer('all-MiniLM-L6-v2')
|
12 |
sentence_embed = pd.read_csv('Reference_file.csv')
|
13 |
|
14 |
-
|
15 |
-
|
16 |
-
# Function to compute cosine similarity
|
17 |
-
def cosine_similarity(v1, v2):
|
18 |
-
"""Compute cosine similarity between two vectors."""
|
19 |
-
return np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2))
|
20 |
|
21 |
-
#
|
22 |
def mapping_code(user_input):
|
23 |
-
emb1 = model.encode(user_input)
|
24 |
similarities = []
|
25 |
-
for
|
26 |
-
|
27 |
-
similarity = cosine_similarity(sentence_emb, emb1)
|
28 |
similarities.append(similarity)
|
29 |
|
30 |
# Combine similarity scores with 'code' and 'description'
|
31 |
-
result = list(zip(
|
32 |
|
33 |
# Sort results by similarity scores
|
34 |
result.sort(key=lambda x: x[2], reverse=True)
|
@@ -40,7 +34,6 @@ def mapping_code(user_input):
|
|
40 |
top_5_results.append({"Code": code, "Description": description, "Similarity Score": similarity_score})
|
41 |
return top_5_results
|
42 |
|
43 |
-
|
44 |
# Streamlit frontend interface
|
45 |
def main():
|
46 |
st.title("CPT Description Mapping")
|
@@ -62,4 +55,4 @@ def main():
|
|
62 |
st.write(f"{i}. Code: {result['Code']}, Description: {result['Description']}, Similarity Score: {result['Similarity Score']:.4f}")
|
63 |
|
64 |
if __name__ == "__main__":
|
65 |
-
main()
|
|
|
11 |
model = SentenceTransformer('all-MiniLM-L6-v2')
|
12 |
sentence_embed = pd.read_csv('Reference_file.csv')
|
13 |
|
14 |
+
import streamlit as st
|
|
|
|
|
|
|
|
|
|
|
15 |
|
16 |
+
# Define the function for mapping code
|
17 |
def mapping_code(user_input):
|
18 |
+
emb1 = model.encode(user_input.lower())
|
19 |
similarities = []
|
20 |
+
for sentence_embed in sentences['embeds']:
|
21 |
+
similarity = util.cos_sim(sentence_embed, emb1)
|
|
|
22 |
similarities.append(similarity)
|
23 |
|
24 |
# Combine similarity scores with 'code' and 'description'
|
25 |
+
result = list(zip(sentences['SBS Code'], sentences['Long Description'], similarities))
|
26 |
|
27 |
# Sort results by similarity scores
|
28 |
result.sort(key=lambda x: x[2], reverse=True)
|
|
|
34 |
top_5_results.append({"Code": code, "Description": description, "Similarity Score": similarity_score})
|
35 |
return top_5_results
|
36 |
|
|
|
37 |
# Streamlit frontend interface
|
38 |
def main():
|
39 |
st.title("CPT Description Mapping")
|
|
|
55 |
st.write(f"{i}. Code: {result['Code']}, Description: {result['Description']}, Similarity Score: {result['Similarity Score']:.4f}")
|
56 |
|
57 |
if __name__ == "__main__":
|
58 |
+
main()
|