def test_find_agent_fond(self): txt = '''Одобрить предоставление безвозмездной финансовой помощи Фонду «Олимп» в размере 1500000 (один миллион пятьсот тысяч) рублей \ для создания и организации работы интернет-платформы «Олимп» по поддержке стартапов в сфере взаимопомощи. Время подведения итогов голосования – 18 часов 00 минут.''' r = re.compile(r_quoted_name, re.MULTILINE) x = r.search(n(txt)) self.assertEqual('Олимп', x['name']) r = re.compile(r_type_and_name, re.MULTILINE) x = r.search(n(txt)) self.assertEqual('Фонду', x['type']) self.assertEqual('Олимп', x['name']) r = re.compile(complete_re_str_org, re.MULTILINE) x = r.search(n(txt)) self.assertEqual('Фонду', x['type']) self.assertEqual('Олимп', x['name']) r = re.compile(complete_re_str, re.MULTILINE) x = r.search(n(txt)) self.assertEqual('Фонду', x['type']) self.assertEqual('Олимп', x['name']) r = complete_re x = r.search(n(txt)) self.assertEqual('Фонду', x['type']) self.assertEqual('Олимп', x['name']) tags: List[SemanticTag] = find_org_names(LegalDocument(txt).parse(), decay_confidence=False) self._validate_org(tags, 1, ('Фонду', 'Олимп', None))
def test_find_agent_fond_2(self): txt = ''' основании Устава, с одной стороны, и Фонд «Благо», именуемое в дальнейшем «Благополучатель», в лице председателя''' r = re.compile(r_quoted_name, re.MULTILINE) x = r.search(n(txt)) self.assertEqual('Благо', x['name']) r = re.compile(r_type_and_name, re.MULTILINE) x = r.search(n(txt)) self.assertEqual('Фонд', x['type']) self.assertEqual('Благо', x['name']) r = re.compile(complete_re_str_org, re.MULTILINE) x = r.search(n(txt)) self.assertEqual('Фонд', x['type']) self.assertEqual('Благо', x['name']) r = re.compile(complete_re_str, re.MULTILINE) x = r.search(n(txt)) self.assertEqual('Фонд', x['type']) self.assertEqual('Благо', x['name']) r = complete_re x = r.search(n(txt)) self.assertEqual('Фонд', x['type']) self.assertEqual('Благо', x['name']) tags: List[SemanticTag] = find_org_names(LegalDocument(txt).parse(), decay_confidence=False) self._validate_org(tags, 1, ('Фонд', 'Благо', 'Благополучатель'))
def _parse_contract(contract, row) -> ContractDocument: contract.agents_tags = find_org_names(contract) row[4:8] = [contract.tag_value('org.1.name'), contract.tag_value('org.1.alias'), contract.tag_value('org.2.name'), contract.tag_value('org.2.alias')] return contract
def test_org_dict_0_1(self): t0 = """Общество с ограниченной ответственностью «Газпромнефть-сахалин», в лице Генерального директора, Имя Имя Имя, действующего на основании Устава, именуемое в дальнейшем «Заказчик», и ЧАСТНОЕ""" \ + _suffix tags: [SemanticTag] = find_org_names(LegalDocument(t0).parse()) self._validate_org(tags, 1, ('Общество с ограниченной ответственностью', 'Газпромнефть-Сахалин', 'Заказчик'))
def test_org_dict_4_2(self): t = n( """Государственное автономное учреждение дополнительного профессионального образования Свердловской области «Армавирский учебно-технический центр», на основании Лицензии на право осуществления образовательной деятельности в лице директора Птицына Евгения Георгиевича, действующего на основании Устава, с одной стороны, """ ) tags: List[SemanticTag] = find_org_names(LegalDocument(t).parse()) self._validate_org(tags, 1, ('Государственное автономное учреждение', 'Армавирский учебно-технический центр', None))
def test_org_dict_3_1(self): t = n(""" Федеральное государственное бюджетное образовательное учреждение высшего образования «Государственный университет» (ФГБОУ ВО «ГУ»), именуемое в дальнейшем «Исполнитель», в лице ____________________ Сергеева """) tags: List[SemanticTag] = find_org_names(LegalDocument(t).parse()) self._validate_org(tags, 1, ( 'Федеральное государственное бюджетное образовательное учреждение высшего образования', 'Государственный университет', 'Исполнитель'))
def test_org_dict_2(self): t = n(""" ООО «Газпромнефть-Региональные продажи» в дальнейшем «БлаготворЮтель», с другой стороны """) tags: List[SemanticTag] = find_org_names(LegalDocument(t).parse()) self._validate_org( tags, 1, ('Общество с ограниченной ответственностью', 'Газпромнефть-Региональные продажи', 'БлаготворЮтель'))
def test_org_dict_4_1(self): t = n( """Автономная некоммерческая организация дополнительного профессионального образования «ООО», \ именуемое далее Исполнитель, в лице Директора Уткиной Е.В., действующей на основании Устава, с одной стороны,""" ) tags: List[SemanticTag] = find_org_names(LegalDocument(t).parse()) self._validate_org( tags, 1, ('Автономная некоммерческая организация', 'ООО', 'Исполнитель'))
def test_find_ip3(self): t = n(""" Сибирь , и ИП Лужин В. В., именуемый в дальнейшем « Исполнитель » , \ с другой стороны , именуемые в дальнейшем совместно « Стороны » , а по отдельности - « Сторона » , заключили настоящий договор о нижеследующем : """) tags: [SemanticTag] = find_org_names(LegalDocument(t).parse()) self._validate_org( tags, 1, ('Индивидуальный предприниматель', 'Лужин В. В.', 'Исполнитель'))
def test_org_dict_1(self): t = n( "ООО «Газпромнефть-Региональные продажи», в лице начальника управления по связям с общественностью " "Иванова Семена Евгеньевича, действующего на основании Доверенности в дальнейшем «Благотворитель», " "с другой стороны заключили настоящий Договор о нижеследующем: \n") tags: List[SemanticTag] = find_org_names(LegalDocument(t).parse()) self._validate_org( tags, 1, ('Общество с ограниченной ответственностью', 'Газпромнефть-Региональные продажи', 'Благотворитель'))
def test_org_dict_0(self): t1 = 'ЧАСТНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ " БИЗНЕС ШКОЛА - СЕМИНАРЫ", ' \ 'действующее на ' \ 'основании лицензии №_____от _______., именуемое в дальнейшем «Исполнитель», ' \ 'в лице ___________ Имя Имя Имя, ' \ 'действующего на основании Устава, и Имя Имя Имя, именуемая в дальнейшем «Слушатель», в дальнейшем совместно ' \ 'именуемые «Стороны», а по отдельности – «Сторона», заключили настоящий Договор об оказании образовательных ' \ 'услуг (далее – «Договор») о нижеследующем:' t1 = n(t1) # r = re.compile(r_types, re.MULTILINE) r = complete_re_ignore_case x = r.search(t1) print('===r_alias_prefix=', x['r_alias_prefix']) print('===r_quoted_name=', x['r_quoted_name']) print('===r_quoted_name_alias=', x['r_quoted_name_alias']) tags: List[SemanticTag] = find_org_names(LegalDocument(t1).parse()) self._validate_org(tags, 1, ( 'ЧАСТНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ', 'БИЗНЕС ШКОЛА-СЕМИНАРЫ', 'Исполнитель')) t = 'Общество с ограниченной ответственностью «Газпромнефть-сахалин», в лице Генерального директора, ' \ 'Имя Имя Имя, действующего на основании Устава, именуемое в дальнейшем «Заказчик», ' \ 'и ЧАСТНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ " БИЗНЕС ШКОЛА - СЕМИНАРЫ", действующее ' \ 'на основании лицензии №_____от _______., именуемое в дальнейшем «Исполнитель», в лице ___________ Имя Имя Имя, ' \ 'действующего на основании Устава, и Имя Имя Имя, именуемая в дальнейшем «Слушатель», в дальнейшем совместно ' \ 'именуемые «Стороны», а по отдельности – «Сторона», заключили ' \ 'настоящий Договор об оказании образовательных услуг (далее – «Договор») о нижеследующем:' tags: List[SemanticTag] = find_org_names(LegalDocument(t).parse()) self._validate_org(tags, 2, ('Общество с ограниченной ответственностью', 'Газпромнефть-Сахалин', 'Заказчик')) self._validate_org(tags, 1, ( 'ЧАСТНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ', 'БИЗНЕС ШКОЛА-СЕМИНАРЫ', 'Исполнитель'))
def test_find_agents_person(self): doc_text = """Общество с ограниченной ответственностью «Кишки Бога» (ООО «Кишки Бога»), именуемое в дальнейшем «Заказчик», \ в лице генерального директора Шприца Александра Устыныча, действующего на основании Устава, с одной \ стороны, и Базедов Болезнь Бледнович, являющийся гражданином Российской Федерации, действующий \ от собственного имени, именуемый в дальнейшем «Исполнитель», с другой стороны, совместно \ именуемые «Стороны», и каждая в отдельности «Сторона», заключили настоящий """ tags: List[SemanticTag] = find_org_names( LegalDocument(doc_text).parse()) self._validate_org(tags, 2, ('Общество с ограниченной ответственностью', 'Кишки Бога', 'Заказчик')) self._validate_org(tags, 1, (None, 'Базедов Болезнь Бледнович', 'Исполнитель'))
def test_find_agent_MPZ(self): txt = ''' 2016 год. Акционерное общество “Газпромнефть - МНПЗ” (АО “ГПН-МНПЗ”), именуемое в дальнейшем «Организацией» водопроводно-канализационного хозяйства''' txt = n(txt) x = re.compile(r_type_and_name, re.MULTILINE).search(n(txt)) self.assertEqual('Акционерное общество', x['type']) self.assertEqual('Газпромнефть - МНПЗ', x['name']) tags: List[SemanticTag] = find_org_names(LegalDocument(txt).parse()) self._validate_org( tags, 1, ('Акционерное общество', 'Газпромнефть-МНПЗ', 'Организацией'))
def test_org_dict_0_2(self): t0 = """, и Общество с ограниченной ответственностью «Частная охранная \ организация «СТАР» (ООО «ЧОО «СТАР») (Лицензия, серия ЧО № _________, регист\ рационный № ___ от ___________., на осуществление частной охранной деятельности, \ выдана ГУ МВД России по г. Санкт-Петербургу и Ленинградской области, предоставлена\ на срок до _________ года), именуемое в дальнейшем «Исполнитель», в лице _______________ Гончаров\ а Геннадия Федоровича, действующего на основании Устава, с другой стороны """ tags: [SemanticTag] = find_org_names(LegalDocument(t0).parse()) self._validate_org( tags, 1, ('Общество с ограниченной ответственностью', 'Частная охранная организация «СТАР»', 'Исполнитель'))
def test_org_dict(self): t = """ Муниципальное бюджетное учреждение города Москвы «Радуга» именуемый в дальнейшем «Благополучатель», в лице директора Соляной Марины Александровны, действующая на основании Устава, с одной стороны, и ООО «Газпромнефть-Региональные продажи» в лице начальника управления по связям с общественностью Иванова Семена Евгеньевича, действующего на основании Доверенности в дальнейшем «Благотворитель», с другой стороны заключили настоящий Договор о нижеследующем: """ + _suffix tags: List[SemanticTag] = find_org_names(LegalDocument(t).parse()) self._validate_org(tags, 2, ('Муниципальное бюджетное учреждение', 'Радуга', 'Благополучатель')) self._validate_org( tags, 1, ('Общество с ограниченной ответственностью', 'Газпромнефть-Региональные продажи', 'Благотворитель'))
def test_find_agents_chu(self): t = 'ДОГОВОР НА ОКАЗАНИЕ ОБРАЗОВАТЕЛЬНЫХ УСЛУГ № 1449\nГород Москва\t03.10.2016\nОбщество с ограниченной ' \ 'ответственностью «Радость-Радость», в лице Генерального директора, Александра Александра Александра, действу' \ 'ющего на основании Устава, именуемое ' \ 'в дальнейшем «Заказчик», и ЧАСТНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ " БИЗНЕС ШКОЛА - СЕМИНАРЫ", действующее ' \ 'на основании лицензии №_____от _______., именуемое в ' \ 'дальнейшем «Исполнитель», в лице ___________ Александры Александры Александры, ' \ 'действующего на основании Устава, и ' tags: List[SemanticTag] = find_org_names(ContractDocument(t).parse()) self._validate_org(tags, 2, ('Общество с ограниченной ответственностью', 'Радость-Радость', 'Заказчик')) self._validate_org(tags, 1, ( 'ЧАСТНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ', 'БИЗНЕС ШКОЛА-СЕМИНАРЫ', 'Исполнитель'))
def test_find_agents_1(self): doc_text = """Акционерное общество «Газпромнефть - мобильная карта» (АО «ГВК»), именуемое в \ дальнейшем «Благотворитель», в лице заместителя генерального директора по персоналу и \ организационному развитию Неизвестного И.И., действующего на основании на основании Доверенности № Д-17 от 29.01.2018г, \ с одной стороны, и Фонд поддержки социальных инициатив «Интерстеларные пущи», именуемый в дальнейшем «Благополучатель», \ в лице Генерального директора ____________________действующего на основании Устава, с другой стороны, \ именуемые совместно «Стороны», а по отдельности «Сторона», заключили настоящий Договор о нижеследующем: """ tags: List[SemanticTag] = find_org_names( LegalDocument(doc_text).parse()) self._validate_org(tags, 1, ('Акционерное общество', 'Газпромнефть-Мобильная карта', 'Благотворитель')) self._validate_org(tags, 2, ('Фонд поддержки социальных инициатив', 'Интерстеларные пущи', 'Благополучатель'))
def test_org_dict_3(self): t = n(""" Муниципальное бюджетное учреждение города Москвы «Радуга» именуемый в дальнейшем «Благополучатель», в лице директора Соляной Марины Александровны, действующая на основании Устава, с одной стороны, и ООО «Газпромнефть-Региональные продажи», аааааааа аааа в дальнейшем «Благотворитель», с другой стороны заключили настоящий Договор о нижеследующем: """) tags: [SemanticTag] = find_org_names(LegalDocument(t).parse(), decay_confidence=False) self._validate_org(tags, 2, ('Муниципальное бюджетное учреждение', 'Радуга', 'Благополучатель')) self._validate_org( tags, 1, ('Общество с ограниченной ответственностью', 'Газпромнефть-Региональные продажи', 'Благотворитель'))
def test_find_agent_no_comma(self): txt_full = 'Акционерное Общество «Газпромнефть – Терминал» именуемое в дальнейшем «Продавец», в лице генерального ' \ 'директора, действующего на основании Устава, с одной стороны, и ООО «Ромашка», именуемое в ' \ 'дальнейшем «Покупатель», в лице Петрова П.П., действующего на основании Устава, с другой стороны, совместно ' \ 'именуемые «Стороны», а по отдельности - «Сторона», заключили настоящий договор (далее по тексту – ' \ 'Договор) о нижеследующем:' doc = LegalDocument(txt_full).parse() print(doc.text) txt = txt_full[150:] r = re.compile(r_quoted_name, re.MULTILINE) normalized_txt = n(txt) x = r.search(normalized_txt) self.assertEqual('Ромашка', x['name']) r = re.compile(r_type_and_name, re.MULTILINE) x = r.search(normalized_txt) self.assertEqual('ООО', x['type']) self.assertEqual('Ромашка', x['name']) r = re.compile(complete_re_str_org, re.MULTILINE) x = r.search(normalized_txt) self.assertEqual('ООО', x['type']) self.assertEqual('Ромашка', x['name']) r = re.compile(complete_re_str, re.MULTILINE) x = r.search(normalized_txt) self.assertEqual('ООО', x['type']) self.assertEqual('Ромашка', x['name']) self.assertEqual('Покупатель', x['alias']) print('r_alias_prefix=', x['r_alias_prefix']) print('_alias_ext=', x['_alias_ext']) r = complete_re x = r.search(normalized_txt) self.assertEqual('ООО', x['type']) self.assertEqual('Ромашка', x['name']) tags: List[SemanticTag] = find_org_names(doc, decay_confidence=False) self._validate_org( tags, 1, ('Акционерное общество', 'Газпромнефть-Терминал', 'Продавец')) self._validate_org(tags, 2, ('Общество с ограниченной ответственностью', 'Ромашка', 'Покупатель'))
def test_find_agent_0(self): txt = ''' , и Общество с ограниченной ответственностью «Научно-производственная компания «НефтеБурГаз», в лице Генерального директора Рожкова Александра Владимировича, действующего на основании Устава, именуемое в дальнейшем «Подрядчик», ''' r = re.compile(r_type_and_name, re.MULTILINE) x = r.search(n(txt)) self.assertEqual('Общество с ограниченной ответственностью', x['type']) self.assertEqual('Научно-производственная компания «НефтеБурГаз', x['name']) tags: List[SemanticTag] = find_org_names(LegalDocument(txt).parse()) self._validate_org( tags, 1, ('Общество с ограниченной ответственностью', 'Научно-производственная компания «НефтеБурГаз»', 'Подрядчик'))
def test_find_agents_personz_2(self): t0 = """Общество с ограниченной ответственностью «Кишки Бога» (ООО «Кишки Бога»), именуемое в дальнейшем «Заказчик», \ в лице генерального директора Шприца Александра Устыныча, действующего на основании Устава, с одной \ стороны, и Базедов Недуг Бледнович, являющийся гражданином Российской Федерации, действующий \ от собственного имени, именуемый в дальнейшем «Исполнитель», с другой стороны, совместно \ именуемые «Стороны», и каждая в отдельности «Сторона», заключили настоящий """ # r = re.compile(complete_re_str, re.MULTILINE) # x = r.search(t0) # for t in x.groups(): # print(t) # self.assertEqual('Базедов Недуг Бледнович', x['human_name']) tags: List[SemanticTag] = find_org_names(LegalDocument(t0).parse()) self._validate_org(tags, 2, ('Общество с ограниченной ответственностью', 'Кишки Бога', 'Заказчик')) self._validate_org(tags, 1, (None, 'Базедов Недуг Бледнович', 'Исполнитель'))
def find_charter_org(charter: LegalDocument) -> [SemanticTag]: """ TODO: see also find_protocol_org :param charter: :return: """ ret = [] x: [SemanticTag] = find_org_names( charter[0:HyperParameters.protocol_caption_max_size_words], max_names=1) nm = SemanticTag.find_by_kind(x, 'org-1-name') if nm is not None: ret.append(nm) else: charter.warn(ParserWarnings.org_name_not_found) tp = SemanticTag.find_by_kind(x, 'org-1-type') if tp is not None: ret.append(tp) else: charter.warn(ParserWarnings.org_type_not_found) return ret
def test_find_agent_ao(self): txt = '''Акционерное Общество «Газпромнефть – Терминал» именуемое в дальнейшем «Продавец», \ в лице генерального директора, действующего на основании Устава, с одной стороны, и ООО «Ромашка»''' r = re.compile(r_quoted_name, re.MULTILINE) x = r.search(n(txt)) self.assertEqual('Газпромнефть – Терминал', x['name']) r = re.compile(r_type_and_name, re.MULTILINE) x = r.search(n(txt)) self.assertEqual('Акционерное Общество', x['type']) self.assertEqual('Газпромнефть – Терминал', x['name']) r = re.compile(complete_re_str_org, re.MULTILINE) x = r.search(n(txt)) self.assertEqual('Акционерное Общество', x['type']) self.assertEqual('Газпромнефть – Терминал', x['name']) r = re.compile(complete_re_str, re.MULTILINE) x = r.search(n(txt)) self.assertEqual('Акционерное Общество', x['type']) self.assertEqual('Газпромнефть – Терминал', x['name']) print('r_alias_prefix=', x['r_alias_prefix']) print('_alias_ext=', x['_alias_ext']) r = complete_re x = r.search(n(txt)) self.assertEqual('Акционерное Общество', x['type']) self.assertEqual('Газпромнефть – Терминал', x['name']) tags: List[SemanticTag] = find_org_names(LegalDocument(txt).parse(), decay_confidence=False) self._validate_org( tags, 1, ('Акционерное общество', 'Газпромнефть-Терминал', 'Продавец'))