Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -7,20 +7,19 @@ from sentence_transformers import SentenceTransformer
|
|
| 7 |
import gradio as gr
|
| 8 |
#%%
|
| 9 |
etalon = pd.read_csv("etalon_prod.csv")
|
| 10 |
-
df = pd.read_csv("
|
| 11 |
-
df = df[df['is_match'] == 1]
|
| 12 |
|
| 13 |
-
model = SentenceTransformer('sentence-transformers/
|
| 14 |
|
| 15 |
|
| 16 |
unique_complaints = df['Жалобы'].values.tolist()
|
| 17 |
|
| 18 |
with open("embeddings.npy", 'rb') as f:
|
| 19 |
-
|
| 20 |
|
| 21 |
def get_recommend(user_input,
|
| 22 |
top_k_spec = 3,
|
| 23 |
-
top_k_services =
|
| 24 |
treshold = 0.8):
|
| 25 |
|
| 26 |
cols_for_top_k = ["Специальность врача",
|
|
@@ -28,7 +27,7 @@ def get_recommend(user_input,
|
|
| 28 |
|
| 29 |
usr_embeddings = model.encode(user_input)
|
| 30 |
|
| 31 |
-
cos_similarity = cos_sim(usr_embeddings,
|
| 32 |
sorted_idx = cos_similarity[0].argsort()[::-1]
|
| 33 |
cos_similarity.sort()
|
| 34 |
|
|
@@ -42,6 +41,7 @@ def get_recommend(user_input,
|
|
| 42 |
for col in cols_for_top_k:
|
| 43 |
result[col] = sorted_df[col].value_counts()[:top_k_spec].index.tolist()
|
| 44 |
result['Жалобы'] = sorted_df['Жалобы'].value_counts()[:top_k_services].index.tolist()
|
|
|
|
| 45 |
|
| 46 |
lst = []
|
| 47 |
categories = ['Инструментальная диагностика', 'Лабораторная диагностика']
|
|
@@ -56,7 +56,7 @@ def get_recommend(user_input,
|
|
| 56 |
gradio_app = gr.Interface(
|
| 57 |
get_recommend,
|
| 58 |
inputs='text',
|
| 59 |
-
outputs=gr.JSON(label='
|
| 60 |
# title="Предсказание топ-10 наиболее схожих услуг",
|
| 61 |
description="Введите услугу:"
|
| 62 |
)
|
|
|
|
| 7 |
import gradio as gr
|
| 8 |
#%%
|
| 9 |
etalon = pd.read_csv("etalon_prod.csv")
|
| 10 |
+
df = pd.read_csv("preprocessed_complaints.csv")
|
|
|
|
| 11 |
|
| 12 |
+
model = SentenceTransformer('sentence-transformers/multi-qa-distilbert-cos-v1')
|
| 13 |
|
| 14 |
|
| 15 |
unique_complaints = df['Жалобы'].values.tolist()
|
| 16 |
|
| 17 |
with open("embeddings.npy", 'rb') as f:
|
| 18 |
+
embeddings = np.load(f)
|
| 19 |
|
| 20 |
def get_recommend(user_input,
|
| 21 |
top_k_spec = 3,
|
| 22 |
+
top_k_services = 5,
|
| 23 |
treshold = 0.8):
|
| 24 |
|
| 25 |
cols_for_top_k = ["Специальность врача",
|
|
|
|
| 27 |
|
| 28 |
usr_embeddings = model.encode(user_input)
|
| 29 |
|
| 30 |
+
cos_similarity = cos_sim(usr_embeddings, embeddings).detach().numpy()
|
| 31 |
sorted_idx = cos_similarity[0].argsort()[::-1]
|
| 32 |
cos_similarity.sort()
|
| 33 |
|
|
|
|
| 41 |
for col in cols_for_top_k:
|
| 42 |
result[col] = sorted_df[col].value_counts()[:top_k_spec].index.tolist()
|
| 43 |
result['Жалобы'] = sorted_df['Жалобы'].value_counts()[:top_k_services].index.tolist()
|
| 44 |
+
result['Диагноз МКБ'] = sorted_df['Диагноз МКБ'].value_counts()[:top_k_services].index.tolist()
|
| 45 |
|
| 46 |
lst = []
|
| 47 |
categories = ['Инструментальная диагностика', 'Лабораторная диагностика']
|
|
|
|
| 56 |
gradio_app = gr.Interface(
|
| 57 |
get_recommend,
|
| 58 |
inputs='text',
|
| 59 |
+
outputs=gr.JSON(label='Рекомендации: '),
|
| 60 |
# title="Предсказание топ-10 наиболее схожих услуг",
|
| 61 |
description="Введите услугу:"
|
| 62 |
)
|