Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,9 +1,8 @@
|
|
1 |
import pandas as pd
|
2 |
import streamlit as st
|
3 |
import numpy as np
|
4 |
-
from scipy.spatial.distance import hamming
|
5 |
|
6 |
-
#
|
7 |
vacancy = 'vacancy_new_new.xlsx'
|
8 |
resume = 'resume_new_new.xlsx'
|
9 |
file_nkz = 'label_NKZ.xlsx'
|
@@ -59,39 +58,36 @@ if st.button("Найти совпадения"):
|
|
59 |
if new_name and selected_skills:
|
60 |
# Определение DataFrame для поиска совпадений
|
61 |
df_to_search = df_vacancy if file_option == "Вакансия" else df_resume
|
62 |
-
skills_ids = df_skills[df_skills['skills'].isin(selected_skills)]['id'].values
|
63 |
-
|
64 |
-
# Преобразование в array для поиска
|
65 |
-
selected_skills_array = np.array(skills_ids, dtype=int)
|
66 |
|
67 |
-
# Поиск совпадений по
|
68 |
matching_results = []
|
69 |
for index, row in df_to_search.iterrows():
|
70 |
if 'arr' in row and isinstance(row['arr'], str):
|
71 |
-
arr_values =
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
})
|
80 |
|
81 |
-
# Вывод
|
82 |
-
st.write("Результаты
|
83 |
if matching_results:
|
84 |
for result in matching_results:
|
85 |
st.markdown(
|
86 |
f"""
|
87 |
<div style="border: 1px solid #ddd; padding: 10px; border-radius: 5px; margin-bottom: 10px;">
|
88 |
<h4 style="margin: 0;">{result['Name']}</h4>
|
89 |
-
<p><strong
|
|
|
90 |
</div>
|
91 |
""",
|
92 |
unsafe_allow_html=True
|
93 |
)
|
94 |
else:
|
95 |
-
st.write("Нет
|
96 |
else:
|
97 |
st.error("Пожалуйста, введите имя и выберите навыки для сравнения.")
|
|
|
1 |
import pandas as pd
|
2 |
import streamlit as st
|
3 |
import numpy as np
|
|
|
4 |
|
5 |
+
# Загрузка данных из Excel файлов
|
6 |
vacancy = 'vacancy_new_new.xlsx'
|
7 |
resume = 'resume_new_new.xlsx'
|
8 |
file_nkz = 'label_NKZ.xlsx'
|
|
|
58 |
if new_name and selected_skills:
|
59 |
# Определение DataFrame для поиска совпадений
|
60 |
df_to_search = df_vacancy if file_option == "Вакансия" else df_resume
|
61 |
+
skills_ids = set(df_skills[df_skills['skills'].isin(selected_skills)]['id'].values)
|
|
|
|
|
|
|
62 |
|
63 |
+
# Поиск совпадений по пересечению
|
64 |
matching_results = []
|
65 |
for index, row in df_to_search.iterrows():
|
66 |
if 'arr' in row and isinstance(row['arr'], str):
|
67 |
+
arr_values = set(map(int, row['arr'].split(',')))
|
68 |
+
intersection = skills_ids.intersection(arr_values)
|
69 |
+
if len(intersection) > 0:
|
70 |
+
matching_results.append({
|
71 |
+
'Name': row['name'],
|
72 |
+
'Matching Skills Count': len(intersection),
|
73 |
+
'Matching Skills': intersection
|
74 |
+
})
|
|
|
75 |
|
76 |
+
# Вывод результатов
|
77 |
+
st.write("Результаты по найденным совпадениям:")
|
78 |
if matching_results:
|
79 |
for result in matching_results:
|
80 |
st.markdown(
|
81 |
f"""
|
82 |
<div style="border: 1px solid #ddd; padding: 10px; border-radius: 5px; margin-bottom: 10px;">
|
83 |
<h4 style="margin: 0;">{result['Name']}</h4>
|
84 |
+
<p><strong>Количество совпадающих навыков:</strong> {result['Matching Skills Count']}</p>
|
85 |
+
<p><strong>Совпадающие навыки:</strong> {', '.join(map(str, result['Matching Skills']))}</p>
|
86 |
</div>
|
87 |
""",
|
88 |
unsafe_allow_html=True
|
89 |
)
|
90 |
else:
|
91 |
+
st.write("Нет совпадений.")
|
92 |
else:
|
93 |
st.error("Пожалуйста, введите имя и выберите навыки для сравнения.")
|