Commit
·
d82e758
1
Parent(s):
395f217
Added Расстояние от МКАД
Browse files
service_dops_api/dops_classifier.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
from service_dops_api.dops_config import ServiceDopsConfig
|
2 |
-
|
3 |
class DopsClassifier:
|
4 |
|
5 |
def __init__(self,config: ServiceDopsConfig):
|
@@ -27,4 +27,11 @@ class DopsClassifier:
|
|
27 |
for dop in all_dops:
|
28 |
temp_dop = self.run_regular_search(text,dop)
|
29 |
result_list.append(self.convert_search_to_human(temp_dop,dop))
|
30 |
-
return result_list
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
from service_dops_api.dops_config import ServiceDopsConfig
|
2 |
+
import pandas as pd
|
3 |
class DopsClassifier:
|
4 |
|
5 |
def __init__(self,config: ServiceDopsConfig):
|
|
|
27 |
for dop in all_dops:
|
28 |
temp_dop = self.run_regular_search(text,dop)
|
29 |
result_list.append(self.convert_search_to_human(temp_dop,dop))
|
30 |
+
return result_list
|
31 |
+
def run_all_dops_1_0(self,text):
|
32 |
+
all_dops = self.config.option_patterns_dict.keys()
|
33 |
+
dops = {}
|
34 |
+
for dop in all_dops:
|
35 |
+
temp_dop = self.run_regular_search(text,dop)
|
36 |
+
dops = {**dops,**temp_dop}
|
37 |
+
return pd.json_normalize(dops)
|
service_dops_api/dops_config.py
CHANGED
@@ -6,7 +6,8 @@ class ServiceDopsConfig:
|
|
6 |
dops_default_values:dict = field(default_factory=lambda:{'Место оказания услуги':'в клинике',
|
7 |
'Учёная степень':'неизвестно',
|
8 |
'Возрастная категория':'взрослый',
|
9 |
-
'Вид приёма':'первичный'
|
|
|
10 |
service_location_options:dict = field(default_factory=lambda:{'на дому':re.compile(r'\b(дом|на\s*дому)\b', re.IGNORECASE),
|
11 |
'дистанционно':re.compile(r'\b(дистанционн|телемед)\S*\b', re.IGNORECASE)})
|
12 |
academic_degree_options:dict = field(default_factory=lambda:{'кандидат медицинских наук(кмн)':re.compile(r'\bк(\.|андидата|андидат)?\s*м(\.|едицинских)?\s*н(\.|аук)?\b', re.IGNORECASE),
|
@@ -16,11 +17,17 @@ class ServiceDopsConfig:
|
|
16 |
age_options:dict = field(default_factory=lambda:{'детский':re.compile(r'\b(детск|педиатр|детей)\S*\b', re.IGNORECASE)})
|
17 |
|
18 |
reception_type_options:dict = field(default_factory=lambda:{'повторный':re.compile(r'\b(повтор|по\s*результат)\S*\b', re.IGNORECASE)})
|
|
|
|
|
|
|
|
|
|
|
19 |
option_patterns_dict: dict = None
|
20 |
|
21 |
def __post_init__(self):
|
22 |
self.option_patterns_dict = {'Место оказания услуги': dict(self.service_location_options),
|
23 |
'Учёная степень': dict(self.academic_degree_options),
|
24 |
'Возрастная категория': dict(self.age_options),
|
25 |
-
'Вид приёма': dict(self.reception_type_options)
|
|
|
26 |
|
|
|
6 |
dops_default_values:dict = field(default_factory=lambda:{'Место оказания услуги':'в клинике',
|
7 |
'Учёная степень':'неизвестно',
|
8 |
'Возрастная категория':'взрослый',
|
9 |
+
'Вид приёма':'первичный',
|
10 |
+
'Расстояние в км от М(КАД)':'неизвестно'})
|
11 |
service_location_options:dict = field(default_factory=lambda:{'на дому':re.compile(r'\b(дом|на\s*дому)\b', re.IGNORECASE),
|
12 |
'дистанционно':re.compile(r'\b(дистанционн|телемед)\S*\b', re.IGNORECASE)})
|
13 |
academic_degree_options:dict = field(default_factory=lambda:{'кандидат медицинских наук(кмн)':re.compile(r'\bк(\.|андидата|андидат)?\s*м(\.|едицинских)?\s*н(\.|аук)?\b', re.IGNORECASE),
|
|
|
17 |
age_options:dict = field(default_factory=lambda:{'детский':re.compile(r'\b(детск|педиатр|детей)\S*\b', re.IGNORECASE)})
|
18 |
|
19 |
reception_type_options:dict = field(default_factory=lambda:{'повторный':re.compile(r'\b(повтор|по\s*результат)\S*\b', re.IGNORECASE)})
|
20 |
+
distance_km_options = field(default_factory=lambda:{'5 км':re.compile(r'\b(5)\s*км\b', re.IGNORECASE),
|
21 |
+
'15 км':re.compile(r'\b(15)\s*км\b', re.IGNORECASE),
|
22 |
+
'30 км':re.compile(r'\b(30)\s*км\b', re.IGNORECASE),
|
23 |
+
'50 км':re.compile(r'\b(50)\s*км\b', re.IGNORECASE),
|
24 |
+
'в пределах М(КАД)':re.compile(r'в пределах М\(КАД\)(?!\s*\d+\s*км)')})
|
25 |
option_patterns_dict: dict = None
|
26 |
|
27 |
def __post_init__(self):
|
28 |
self.option_patterns_dict = {'Место оказания услуги': dict(self.service_location_options),
|
29 |
'Учёная степень': dict(self.academic_degree_options),
|
30 |
'Возрастная категория': dict(self.age_options),
|
31 |
+
'Вид приёма': dict(self.reception_type_options),
|
32 |
+
'Расстояние в км от М(КАД)':dict(self.distance_km_options)}
|
33 |
|