etadevosyan commited on
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