Научная статья на тему 'РОБОТИЗАЦИЯ ОБРАБОТКИ ОБРАЩЕНИЙ ГРАЖДАН ПО ВОПРОСАМ СОЦИАЛЬНОГО И БЫТОВОГО ОБСЛУЖИВАНИЯ'

РОБОТИЗАЦИЯ ОБРАБОТКИ ОБРАЩЕНИЙ ГРАЖДАН ПО ВОПРОСАМ СОЦИАЛЬНОГО И БЫТОВОГО ОБСЛУЖИВАНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
200
29
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОНТОЛОГИЯ ЗАДАЧИ / ОБРАЩЕНИЯ ГРАЖДАН / ЗАЯВКА / ЖИЗНЕННЫЙ ЦИКЛ ЗАЯВКИ / ЗАЯВИТЕЛЬ / ИСПОЛНИТЕЛЬ ЗАЯВКИ / АУДИОЗАПИСЬ / ПРЕОБРАЗОВАНИЕ АУДИОЗАПИСИ В ТЕКСТ / РАСПОЗНАВАНИЕ РЕЧИ / ЛЕКСИЧЕСКИЙ ПАРСЕР / ВЫДЕЛЕНИЕ ФАКТОВ ИЗ ТЕКСТА / ГРАФОВАЯ БАЗА ДАННЫХ / ГРАФ ЗНАНИЙ / ПРАВИЛА ВЫВОДА / СМС / PROTéGé / GRAPHDB / PYTHON / YARGY-ПАРСЕР / ARDUINO / GPRS-МОДУЛЬ SIM900

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гончаров Артём Сергеевич, Гончарова Марина Алексеевна

В работе представлено решение по роботизации обработки обращений граждан, нуждающихся в помощи специалиста, в службу поддержки, по вопросам социального и бытового обслуживания. Полученная реализация позволяет упростить и ускорить обработку поступающих обращений. Объектом исследования является изучение возможности преобразования аудиозаписи обращения гражданина в текст с последующим автоматическим разбором и выделением ключевой информации. Онтология задачи включает классы: заявка, мастер, специальность, статус заявки, активность. Факты, распознанные лексическим парсером, представляются в форме триплетов и сохраняются в графовой базе данных. Метод исследования - моделирование работы системы на базе платформы Arduino с использованием языка программирования Python и GPRS-модуля. Обмен информацией между системой и исполнителем заявки осуществляется с использованием кодов подтверждений, содержащихся в генерируемых смс. Результатом работы является программно-аппаратное решение, реализующее поставленную задачу.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Гончаров Артём Сергеевич, Гончарова Марина Алексеевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ROBOTIZATION OF PROCESSING CITIZENS' APPEALS ON SOCIAL AND HOUSEHOLD SERVICES

The paper presents a solution for the robotization of processing requests from citizens who need the help of a specialist, to the support service, on issues of social and consumer services. The resulting implementation makes it possible to simplify and speed up the processing of incoming requests. The object of the research is to study the possibility of converting an audio recording of a citizen's appeal into text with subsequent automatic parsing and extracting of key information. The task ontology includes classes: request, master, specialty, request status, activity. The facts recognized by the lexical parser are presented in the form of triplets and stored in a graph database. The research method is modeling the operation of a system based on the Arduino platform using the Python programming language and a GPRS module. The exchange of information between the system and the executor of the request is carried out using the confirmation codes contained in the generated SMS. The result of the work is a software and hardware solution that implements the task.

Текст научной работы на тему «РОБОТИЗАЦИЯ ОБРАБОТКИ ОБРАЩЕНИЙ ГРАЖДАН ПО ВОПРОСАМ СОЦИАЛЬНОГО И БЫТОВОГО ОБСЛУЖИВАНИЯ»

УДК 007.51 + 004.891:896

РОБОТИЗАЦИЯ ОБРАБОТКИ ОБРАЩЕНИЙ ГРАЖДАН ПО ВОПРОСАМ СОЦИАЛЬНОГО И БЫТОВОГО ОБСЛУЖИВАНИЯ

Гончаров Артём Сергеевич, обучающийся 10 класса, Гончарова Марина Алексеевна, кандидат физико-математических наук,

учитель информатики и ИКТ;

МБОУ гимназия им. академика Н.Г. Басова, Воронеж, Российская Федерация

Аннотация: В работе представлено решение по роботизации обработки обращений граждан, нуждающихся в помощи специалиста, в службу поддержки, по вопросам социального и бытового обслуживания. Полученная реализация позволяет упростить и ускорить обработку поступающих обращений. Объектом исследования является изучение возможности преобразования аудиозаписи обращения гражданина в текст с последующим автоматическим разбором и выделением ключевой информации. Онтология задачи включает классы: заявка, мастер, специальность, статус заявки, активность. Факты, распознанные лексическим парсером, представляются в форме триплетов и сохраняются в графовой базе данных. Метод исследования - моделирование работы системы на базе платформы Arduino с использованием языка программирования Python и GPRS-модуля. Обмен информацией между системой и исполнителем заявки осуществляется с использованием кодов подтверждений, содержащихся в генерируемых смс. Результатом работы является программно-аппаратное решение, реализующее поставленную задачу.

Ключевые слова: онтология задачи; обращения граждан; заявка; жизненный цикл заявки; заявитель; исполнитель заявки; аудиозапись; преобразование аудиозаписи в текст; распознавание речи; лексический парсер; выделение фактов из текста; графовая база данных; граф знаний; правила вывода; смс; Protégé; GraphDB; Python; Yargy-пар-сер; Arduino; GPRS-модуль SIM900.

ROBOTIZATION OF PROCESSING CITIZENS' APPEALS ON SOCIAL

AND HOUSEHOLD SERVICES

Goncharov Artyom Sergeevich, 10th grade student, Goncharova Marina Alekseevna, Candidate of Physical and Mathematical Sciences,

computer science and ICT teacher; MBOU gymnasium them. Academician N.G. Basov at Voronezh State University, Voronezh,

Russia

Abstract: The paper presents a solution for the robotization of processing requests from citizens who need the help of a specialist, to the support service, on issues of social and consumer services. The resulting implementation makes it possible to simplify and speed up the processing of incoming requests. The object of the research is to study the possibility of converting an audio recording of a citizen's appeal into text with subsequent automatic parsing and extracting of key information. The task ontology includes classes: request, master, specialty, request status, activity. The facts recognized by the lexical parser are presented in the form of triplets and stored in a graph database. The research method is modeling the operation of a system based on the Arduino platform using the Python programming language and a GPRS module. The exchange of information between the system and the executor of the request is carried out using the confirmation codes contained in the generated

SMS. The result of the work is a software and hardware solution that implements the task. Keywords: task ontology; citizens ' appeals; request; life cycle of the request; applicant; executor of the request; audio recording; converting audio to text; speech recognition; lexical parser; extraction of facts from the text; graph database; knowledge graph; inferring rules; sms; Protégé; GraphDB; Python; Yargy parser; Arduino; GPRS module SIM900.

Для цитирования: Гончаров, А. С. Роботизация обработки обращений граждан по вопросам социального и бытового обслуживания / А. С. Гончаров, М. А. Гончарова. - Текст : электронный // Наука без границ. - 2021. - № 6 (58). - С. 40-52. - URL: https://nauka-bez-granic.ru/№-6-58-2021/5-58-2021/ For citation: Goncharov A.S., Goncharova M.A. Robotization of processing citizens' appeals on social and household services // Scince without borders, 2021, no. 6 (58), pp. 40-52.

Не секрет, что одинокие люди пожилого возраста и инвалиды нуждаются в помощи и содействии при выполнении различных задач, исходящих как из бытовых потребностей (например, ремонт водопроводного крана или электрической розетки), так и потребностей в медицинской и социальной помощи (например, приобретение и доставка продуктов питания и предметов первой необходимости).

Особенно острый характер данная проблема приобрела в условиях вынужденной самоизоляции, вызванных коронавирусом Со^^19. Социальные работники и волонтёры по всей стране организовали оперативные штабы добровольцев по оказанию социальной помощи одиноким пожилым людям и инвалидам. Однако первые месяцы вынужденной самоизоляции показали, что многие (особенно медицинские) кол-центры вовсе не готовы к шквалу звонков от заболевших и тех, кто себя к таким отнёс. Многочисленные случаи недозвонов на «горячие линии» массово отмечались в социальных сетях и ряде местных и региональных изданий. Указанные ситуации делают задачу интеллектуальной обработки входящих звонков и последующее за ней снижение нагрузки на диспетчеров важной и социально значимой задачей.

Основным способом удалённого об-

ращения к службам помощи является телефонная связь. Возможно, на текущий момент далеко не все пожилые люди пользуются смартфонами, но в своём большинстве располагают простым мобильным телефоном, с которого возможно сделать голосовой вызов и принять смс.

Основная идея представляемого решения заключается в возможности аудиозаписи обращения гражданина, нуждающегося в помощи, и последующем автоматическом разборе записи с выделением из неё ключевой информации: на данный момент это номер телефона заявителя, дата и время обращения (они определяются автоматически при поступлении звонка), адресная информация и профиль специалиста, который может помочь заявителю в решении его задачи (а это должен сообщить обратившийся при звонке). Информации, как мы видим, не очень много, но для первого этапа выполняемой работы её достаточно: уже станет известно, кто и где нуждается в помощи и какого вида помощь требуется - а, следовательно, будет возможность сформировать заявку, определить подходящих специалистов, получить от них подтверждение и назначить исполнителя заявки.

Действия по подбору специалистов и назначению исполнителя на заявку, уведомления заявителя и исполните-

ля выполняет программный робот. То есть, робот подменяет человека в части задач, обычно выполняемых диспетчером. Он же формирует смс с короткими кодами подтверждения действий и направляет их профильным специалистам. По этой причине задача ставится не столько в форме автоматизации процесса, сколько в форме его роботизации.

Но в части задач робот не может полностью подменить человека. Например, после назначения специалиста на задачу, ему необходимо созвониться

с заявителем для уточнения деталей - этот момент остаётся вне системы. Возможно, что по результату созвона исполнителя с заявителем окажется, что нужен специалист другого профиля - эта ситуация предусматривается в системе, но её реализация отложена на последующие этапы.

Здесь и далее под системой, если явно не сказано иное, понимаем программно-аппаратное решение, реализующее поставленную задачу.

Общая схема решения выглядит следующим образом (рис. 1).

I ^'и-. I. ПМ^У^П й »йш^

. Сгсфжисгмнншлн Г мивигеч^

О^МЯшнфлрнчишвнмг

О^Ч^-ширг £|Г и{ |||:.1||к|г.1н 4

гтатуве цддич'шы« |ыб01

Рисунок 1 - Общая схема решения по роботизации обращений граждан

в службу поддержки

На этом же рисунке показаны программные компоненты, задействованные при создании системы. О них будет рассказано позже.

Моделирование основных сущностей поставленной задачи выполняется на основе онтологического подхода [1].

Онтология в философии — «сущность бытия». Переосмысление философского понятия онтологии в инженерии дал Томас Грубер, предложивший для обмена знаниями между программными системами применять

«абстрактный, упрощенный взгляд на мир» в формальном виде, в виде описания понятий («спецификации концептуализации»), чтобы его понимали другие системы [2]. Результат такой спецификации Грубер назвал термином «онтология».

Слово «класс» при онтологическом моделировании является синонимом к слову «понятие», а различные аспекты понятия выражаются в виде свойств классов [3]. Говорят, что экземпляры классов со значениями свойств

наполняют онтологию содержанием, т. е., фактами, которые на самом простом уровне имеют форму так называемых «триплетов» (шаблонов «subject - predicate - object», что, например, в русском языке соответствует предложениям вида «субъект - глагол - дополнение»). Предикаты часто называют свойствами.

Данные такого вида удобно хранить и обрабатывать в базах данных специального вида - графовых [4]. В них данные представляются в виде графов, где вершинам соответствуют объекты, а рёбрам - отношения между ними.

Для работы с ними используется язык SPARQL, оперирующий шаблонами триплетов и шаблонами графов, заключенными в фигурные скобки [5]. Например, шаблон из двух триплетов { ?master :hasProfession ?prof . ?prof :ProfessionName "Электрик" } выведет всех мастеров, имеющих профессию «электрик».

Онтология, построенная для конкретной задачи, называется онтологией задачи.

В онтологию поставленной задачи введены следующие классы с присущими им свойствами (рис. 2).

Protégé

WebVÛWL

Рисунок 2 - Онтологическая модель задачи

• Request (Заявка) - сущность, соответствующая звонку и, вместе с тем, заявке (для упрощения задачи считается, что одному звонку соответствует одна заявка), со следующими свойствами:

o RequestDateTime - дата и время записи входящего телефонного звонка;

o RequestPhoneNo - номер абонента, с которого был вызов;

o RequestText - текст, в который была преобразована речь из аудиофайла; o RequestMasterText - название

специальности, выделенной из текста;

о RequestAddressText - адресная подстрока, выделенная из текста;

о hasStatus - ссылка на статус заявки (на один из пяти возможных);

о hasImplementer - ссылка на запись о мастере, назначенном в качестве исполнителя;

о ImplStartDateTime - дата и время начала исполнения заявки;

о ImplEndDateTime - дата и время завершения заявки (либо исполнения,

либо отмены);

o createdByActivity - ссылка на активность, в рамках которой данная заявка была сформирована. Свойство createdByActivity имеют все сущности, поскольку свойство наследуется от головного класса owl:Thing. Однако заполняется оно пока только для экземпляров класса Request.

• Master (Мастер) - сущность, соответствующая специалисту и имеющая следующий набор свойств:

o MasterName - ФИО мастера;

o MasterPhoneNo - номер телефона мастера;

o hasProfession - ссылка на специальность, которой обладает мастер (для упрощения задачи считается, что мастер имеет только одну специальность);

o CurrentBusyness - признак занятости специалиста. Может принимать значения true и false. Вычисляется посредством правил вывода (inferring rules), дополняющих базовую аксиоматику онтологии;

• Profession (Специальность) - сущность, представляющая специальность, которой может владеть мастер,

имеет следующие свойства:

o ProfessionName - название специальности;

o ofMaster - объектное свойство, обратное к hasProfession;

• RequestStatus (Статус заявок) -сущность, представляющая один из возможных статусов заявки, со свойствами:

o RequestStatusCode - код статуса;

o ofRequest - объектное свойство, обратное к hasStatus класса Request.

• Activity (Активность) - сущность, соответствующая техническому процессу, в рамках которого осуществляется генерация новых заявок, со свойствами:

o createdThing - объектное свойство, обратное к createdByActivity.

Онтологическая модель задачи построена с использованием платформы Protégé. Для её визуализации использован интернет-сервис «WebVOWL: Web-based Visualization of Ontologies» [ http://vowl.visualdataweb.org/webvowl. html].

Функционально система может быть представлена в виде следующих связанных блоков (рис. 3).

Рисунок 3 - Функциональные блоки решения

Исходными данными для системы являются файлы аудиозаписей (тр3 или шау), которые трансформируются в соответствующие им предложения. Далее происходит разбор текстов с выделением из них ключевых сущностей и генерацией программных команд для создания фактов в фактологической базе данных.

Программный робот (фоновый «слушающий» процесс) определяет

новые заявки в базе и обрабатывает их, также он контролирует сроки выполнения заявок и появление новых файлов аудиозаписей.

Для распознавания аудиозаписи используется библиотека speech_ recognition. Она содержит несколько разных методов распознавания. Наилучшим образом себя проявил recognize_google (использует Google Speech API) (рис. 4).

/ г

MPJ

WAV

iSFFmРЧ

Рисунок 4 - Использование Google Speech API

вертера ffmpeg происходит его конвертация в нужный формат. Примеры озвученных текстов и результатов их распознавания представлены на рис. 5.

Библиотека speech_recognition может обрабатывать файлы только в формате шау поэтому, если аудиозапись представлена в формате тр3, сначала с помощью программы-кон-

jv.ii4ile.lin - (

'Эддовствуйт*! Грошу ВЫ1В*ТЬ электргш на улицу Пуикннл сон 5 квартира 7.', ' Эйр^Остерто, ПрОшу №(Л|, электриков н> упицу Гмриявсми дон 3 квлртнрл Ш. 'Довеял Тр«4у4Т{Я МИПрИКИ ГабриЛОВСкуЙ уЛицу ДОч 1 кварТирЛ 19.',

гэдрлв1теу*т£! нужеч слесарь а педеулок Вите^кий ВОЯ 4.1

г ГТрошу вызвать й*>цй11рюЕодчика на улкцу Ьольиая Нйнехчар дон 1 квартира 2. 1 , гПро^у вызвать водопроводчика на улицу восьмое нарта дон, один квартира й. ' , 'Добр« утро, гоэоенте. пожалуйста, пекаря на прф^гект Революции к дону 11 - * л 'Здравствуете, вызовите ма уллцу Рчев-^кая доч $ сантехника.',

'з/цчествуйте- пролу мал» врлчэ по адрссу улица яэлыуновэ дом корпус 1 эта*

С ! a j J 3 О S 1»Ш «eiI9_«l]l I1767B. Ifi

jijiejij мен»

Th4 iOmirCi-d (tit: iipitcTB/iTi H.JHM iJ4<ip» t IWptyAOc Cxttfciuii Дач 4

£ ! M«\ryWhPKj |a_| И||1>}Ш! llJJiJIIU] !771S.«!

Meise »!iej774!

Yh« COni*rt*J tFXt; (IfW/ HlUTb »|L«TpriK4 HJ y.t^Uf ПуЛРШ ДОН & «ii^Tripj ?

Tlw converted tesctj Эдр*1стеуйт» яроиу Вызвать вр*ча по лр£*су yr-лч* Хепыучсш длм ио^ьпус 1 * г J . з

t: \«*\py^4chpro j \*id lo_i *»plei\ifl3 le)1S .-jj JiJJiU* iiWii »S-H^li

ТЩ <on«*n«l t«Ct; lCp*KT»y»Tt лрочу MOT* HHKipHKM ул*иу Г*(рнлфкк«и Им J [lipTlipi

t: lo_i »ц1е»\2вз ю з л jm 1 « 311 jei i. »t з

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

HU»

The convened Здравствуйте На улрцу дом V caHTexb**a

<: W\Py\frthPi-o] lo.j la SeT.WS«

idiiej« M1H7 «1W!K«

The converted Демь TpeiyiTCP ЭЛекТ<r ГаВфНЛОВС|С4Л >Лкцу Дйн 2 «Bi>T*pi le

С : \ne\iy\5t hPr о J1 i J i i о s ir n: ti \ Ji: 10 3« W17 li_ra?i>J7».» U i Ш71Э

Tin <snir*n+d tnt! npooy мип «допрое^дчик* к* улицу а Нарт» ¡¡Д* 1 KtiplippA ? С ! Mt\Py№hPre j Mud ln_I т1()Ш! l»3»_ei . H>9

iciieiij esieee «оннза?!

T t-fl conw^ttJ Uxt: npouy HIHTb " J улицу " »ДОН 1 tfjfiT*p^ 2

( : \п»'4 Py\Si "Ргр] \ Hd S • т-р] 111» Л a 1 . Mi

OäilBJ «вшщ»

Th« conv«rt«d Лобр« утро wiQflHTt «нлалу^ста иа проспект Ргвелзд** it Amy It

Рисунок 5 - Примеры текстов, которые сначала были озвучены, а затем распознаны с использованием Google Speech API

Для анализа предложений на русском языке могут использоваться разнообразные лексические парсеры (программные библиотеки, выделяющие данные с определёнными свойствами из текстовых массивов). Самые известные из них - Томита-парсер (разработка Yandex, [6]), DeepPavlov [7] и Yargy-парсер [8, 9]. Преимуществом последнего является то, что он реализован на Python и использует разработки набирающего популярность проекта Natasha. В библиотеке natasha есть правила для извлечения имён, адресов, дат, сумм денег, правила для названий организаций и географических объектов. Библиотека natasha решает многие задачи обработки естественного русского языка: сегментация на токены и предложения, морфологический и синтаксический анализ, лемматизация, извлечение именованных сущностей (NER, Named Entities Recognition). На дан-

ный момент Natasha составляет конкуренцию популярной разработке лаборатории нейронных систем и глубокого обучения МФТИ DeepPavlov BERT NER [10].

В представляемом решении Yargy-парсер и библиотека natasha используются для извлечения названия профессии (специальности) и адресной информации, которые могут содержаться в тексте, полученном на основе аудиозаписи обращения гражданина.

Вдохновение для реализации придала работа Кукушкина А. [11].

Ниже приведены фрагмент кода на Python с использованием библиотек yargy и natasha и примеры выделения фактов из текстов, предварительно полученных из аудиозаписей звонков: для каждого исходного предложения выделены факты о специальности нужного мастера и адрес заявителя (рис. 6).

39

91

Н 21 24

В »

17

23 »

JI

»

4rcm Lpyurinp inpart 11 ihM Mrkuj

fj-M y.irfy.pLpL1 Lines itkp-i rvJrjh pLpiílim'

■f'C" MW (ffjritr, or_p rule}

fj"M yjrgy í'yaf t intfTpr^tnt ion js intrrp

fres yinsy.íirttitrícjllwi i«pwt f«t, jin i ture

1rtm ivHiShj JdírExtriCtor- J<H)r5fiEKtriCtor, HfjrphUoíiU

■Jobi = Jft_fPOfÍH iüflH )■ • Jft Hit of ^rtf/ííilíYii (VfKObuHny) iflt ■ №('!•■■•'i !Ln,i«',]p)

JOB = píliní [ fct>s), intíJ-píí tat

Dot . njH. narmí] )

)

plriíl* = P«-!tr{a¡G) i ftr jflfci »opoti_v«jb = rtjrpm™ at>() * ftJ' ú«№fií \n}o

íxírjLtgr j Adlrr^Fxtrjctaríflnrphvarili)

■fer i in Unes;

Ifnc ■ í[!] f Fot fram zpecch

■ítihíi < pír-íír. f indi] 1 líh-J

■llthív = '■ui-L^I(iuích*i. kt7 = l*-bda _; .ipjii) spirvi = f_,ij)an -fisr _ 1(1 "Jltnííj íl™_Bjrfcup(linp, fpjni) If WllIlHI

faeti » 'of _ 1" «til»?]

If lcn(fj[itlj -|1 fmtí = f¿cta[ej printkH(fKtt, "tfont color-'rrd'xbí", "t/bx/fonO")

jMiTíf = fjili utchici .idrtr - rxtrj[tar(lLnr-)

Íjtií_j(Mr - (_,fitt,i¡_¡iM for _ ln ojidifri ijíí- ;

i ■ "

Fw j im flítl_liMi*:

n = "typt"] i¡ ■ Jf"«j]uffJ|

Здрлкт.i^-í if.»«h

IHIHÉ

ДрОрьА jet* трЛуются эгестрям fu "лиг .том лл - ..■ ] алрпсл 10

l.'tl'í" #4

Hui ГНРАЧННМ r Л0* 2, КМрТИр* Jí V

Sl-^MTk NjJjflp^tf^iJ ril iI^iSl'.DniíUl .Jtl-i-.l-.l I yPHqi Ё ДС«- 1. ЦИДН 2_^

nsíujv №>m Kí-yí'^HL) HJ fmrEmiivUnmw ÍÍ" ^ LWJIÍOÍí

yPKU# H|Utl)4H| CJC* lj *Р#рт|ф# 1

ДОЖУ» имаря *i rpwntVT Bfwnfl^m к ми,-11

notFV

rp-ZtrUT PiMPftiriil, AW 11 О

Рисунок 6 - Примеры извлечённых фактов: специальности и адресная информация

Одновременно с разбором текстов формируется список предложений на языке SPARQL. Первое предложение содержит код для создания экземпляра Activity, символизирующего

выполняемую операцию, а последующие предложения - заявкам: каждой заявке соответствует своё SPARQL предложение с начальными значениями свойств (рис. 7).

1 # Создание актиешти процесса генерации сущностей (Activity26210330100438)

2 PREFIX rdf; <http://WWH.W3.org/1999/02/22-rdf-Syritax-ns#>

3 PREFIX : <http://hww.cs-wsu-gлs..org/#ii-ont-o/test#>

4 PREFIX owl: <http://www.w3.org/2002/e7/owle>

5 insert {:Activity26210338190433 rdf:type Activity, owl:NamedIndividual) v;here {filter not exists ( : Activity.10210330100438 rdf:type :Acti.ity})

PREUX rdf: <http://w*w,w3.org7i999/02/22-rdf-syntax-ns*> prefix ; chttp-;//wvrrf.< s-ysu-gas.org/ex-onto/tost*> pdEFix QHI: insert (

: Request 262103 MUMWJNaS rdf:type ¡Request , owl :N*ied Individual ;

¡RequestPJioneNo 'SBiiiiMillB1 ; iRequeSlOateTime ;

¡RequestText "Здравствуйте прошу вызвать элелтриков «а улицу гавриловскоя дом 3 квартира ISO' :JtequëftAddr#£fTéxt 'улица Гаврилэд^ал, 3, (¡барткра 1W ;

¡ftequestHasterText 'электрик' i : с reatedByасt i v i t y :A<tivity2e2ie33ei0e438 .

г

3 - л S

ь

7 й 9 10 11 12 13 14

>

where (filter not exists {:Request2aai03Wl0W3S_8MS rdf;type ¡Request}}

Рисунок 7 - Примеры генерируемых SPARQL предложений

Далее предложения передаются тории графовой базы данных. После

веб-сервису REST API сервера базы выполнения результат можно видеть

данных GraphDB, который выполня- в GraphDB примерно в таком виде

ет их создание в указанном репози- (рис. 8).

Ф 1ФЩ1Г1 EspfeiÉ f..) SÎAB(H.

Visua! graph

И.ЧЧ

иОцня

0e

R eg u est20 2103 30100438 „Й925

Tit»

ШЦЦиШ

k

Далее предложения передаются тории графовой базы данных. После

веб-сервису REST API сервера базы выполнения результат можно видеть

данных GraphDB, который выполня- в GraphDB примерно в таком виде

ет их создание в указанном репози- (рис. 8).

Ф 1ФЩ1Г1 ^ EspfeiÉ

f..) SftUKH. ф

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Visua! graph

. «UCJOÎJi

иаквп

/ \N

»-KBO

»_52S3

R eg u est2Q 2103 30100438 „Й925

Tit»

ШЦЦиШ

\>

•ял i №uti « iTeyfl

уЛлцй ГйВрР.ЫйГъН. \Сы 3. иикрГДО ЮО

1«1 RMMHICWÎTÎPT* 20210335080429

Здрй*стау01ф npOtljy fcuMAlh MM ¡M ДО* НА yftffcq- Гырндоккм fiflv I riïi^'Hftj ИЗО

.■'-GraphDB

Рисунок 8 - Пример представления загруженных фактов в графовую БД

На странице Visual Graph отображаются созданные экземпляры классов и связи между ними в виде графа. Для выделенной вершины, соответствующей экземпляру, отображаются значения свойств. В нашем примере было создано 9 экземпляров класса Request и один экземпляр класса Activity, с которым связаны все заявки посредством свойства createdByActivity, поэтому граф содержит 10 вершин, связанных по типу «звезда». Для каждого экземпляра класса Request заполнены свойства RequestAddressText, RequestDateTime, RequestMasterText, RequestPhoneNo, RequestText.

После загрузки в базу заявкам присваивается первоначальный статус: «01_Сформирована».

Рисунок 9

Статусная схема соответствует потокам обмена сообщениями, ранее показанным на рис. 1.

В системе существует также другой фоновый процесс, который определяет заявки, на которые назначен исполнитель. Если с момента начала работы прошло некоторое время (например, сутки), то исполнителю отправляется смс с просьбой отправить код подтверждения, соответствующий исполнению заявки либо её отмене. По получении этого кода заявка переходит в один из финальных статусов: «04_Вы-

Далее программный робот (фоновый процесс, выполняющийся в системе), выявляет заявки с таким статусом и переводит их в статус «02_В_обра-ботке», на котором определяются требования заявки и свободные специалисты соответствующих специальностей, формирует и направляет им смс о новых заявках с кодами подтверждений. Специалист, первым отправивший код подтверждения, назначается исполнителем заявки, при этом заявка переходит в статус «03_Назначен_ мастер», а заявителю приходит смс о том, что его заявка принята и просьба ожидать звонка специалиста для уточнения деталей заявки.

Жизненный цикл заявки представлен следующей статусной схемой (рис. 9).

полнена» или «05_0тклонена».

Программная логика системы реализована средствами Python и Arduino, а также задействует набор команд GPRS-модуля (рис. 10).

Модуль на Python реализует следующие основные процессы:

- обнаружение новых аудиозаписей, их преобразование вплоть до создания новых фактов в графовой БД;

- обработка заявок в статусе 01_ Сформирована;

- обработка заявок в статусе 03_ Назначен_мастер;

- Статусная схема жизненного цикла заявки

- обработка входящих смс;

- формирование и отправка исходящих смс.

Модуль на Arduino посредством платы Arduino UNO осуществляет трансляцию AT-команд GPRS-модулю.

GPRS-модуль (SIM900) с активированной SIM-картой выполняет отправку и получение смс, взаимодействуя с платой Arduino UNO. Подробное описание AT-команд для SIM900 от компании SIMCom приведено в руководстве [12].

Müдуг ь на Pyl h □ п

Лит iMlJi ;

W Ч г JH J 1 П ИИЩЩГГЧРГГ

Ifri.b^' (ПРЩ>Р IUI - iipgü

1UL.I ш plus »ктчти- I - (J - P|W

» >W|№-: C.b-V rfArf tLV iftfl

I ^ftjJiiii: ■ itpAPT ■ <1 (IM HÜ 1+»pl

1пт4ут ■ 414^*ClrJ ÏTIMJ t it' I irtF-Ù

ir^dkn • 1-1ЧП lutiofj* ni bfi-J

ц ib f.1 г j 'i>;jt«>j i[vviEHKi|hAH i ^uiqiAli wnd иль I V^^HI вншцпфии :нс unpi 1*нш1 * пгг. ■ U-befVJHjb p 'Г,;-н',

iii<(u;iig.i«(K; nur

P i,u^rj|j H IHfl IH4H<H> KO.VnWT" W

|«<J ■ ("c IHI JiflLr" » IM4

1 » РЦЧМЛ) -étûf -tmi ■ S '-' M iKfHd^oh^Vf -twpiwt

HIlCIHDw

T hir^Kii i*ni V^lem.

Hiri um I m- ihi ЛГ1 swiaq uki i vis к. I -rr-r i Щ < -L_JT» ■..■■..t_i4

P p wuf:

P л г -угриr j ffuwiarj, ^л« hivh.hv:i|

Гито^щ J.T.IUÎ, lïi jwiip-.iTKPtrnEfnEip-

* »W -лг "ft « < : p w m_v«H wj

• am («с - hétr^ik^u ртйт Trtwv.!

тсфлСйпиьчмАсмсншмшмг^нуылнм

T " Г_Г t M i h M мм дни il чжГгр

ПИЦЦЧ|Р_а*ГТ1|1

ïï лл F С L_''j цинги Ii ? ■ h -л

pOfPLI UIIM il m]U#lfL|

p i" w ("fil*« ^+

Модул» н* Дч(и ino [0

<

.'.'■»WAdkilPliHlJlPUlwdlÜ MlwjrpLpiijJPa*

) (

riitrwi wiw-Kt-fenjJ

K: Vnji Rpri !+!■ JJ T.I'I^C-T^'jl i*iftïi.

I

Рисунок 10 - Взаимодействие программных и аппаратных компонентов системы

Для выполнения работы использовалось следующее программное и аппаратное обеспечение.

Protégé [https://protege.stanford.edu/] - свободный, открытый редактор он-тологий и фреймворк для построения баз знаний. Онтологии, построенные в Protégé, могут быть экспортированы во множество форматов, включая RDF (RDF Schema), OWL и XML Schema.

Основной программный код реализован на языке Python, для которого реализовано множество полезных библиотек:

• общесистемные: os, codecs,

datetime, time, IPython.display, random, regex, pyrecord;

• для работы с аудиоинформацией: speech_recognition, gtts, pygame, pyaudio;

• для анализа текстов: yargy, yargy. interpretation, yargy.pipelines, yargy. predicates, yargy.tokenizer, ipymarkup, natasha, pymorphy2;

• для работы с веб-сервисами (и графом знаний): requests, SPARQLWrapper;

• для работы с платой Arduino: serial.

Для преобразования аудио-файлов

из одного формата в другой используется программа-конвертер FFmpeg [https://www.ffmpeg.org/].

GraphDB Free [https://graphdb. ontotext.com/] - графовая база данных, предназначенная для хранилища триплетов и получения новых фактов на основании существующих (посредством правил вывода). GraphDB предоставляет RESTful services для чтения и изменения графа посредством языка SPARQL и SPARQL-Update.

Язык программирования Arduino

используется для взаимодействия системы с аппаратным модулем с платой GSM SIM900 для приёма и передачи смс.

Аппаратная часть реализованного решения (рис. 11) включает:

• плата Arduino UNO;

• модуль GSM/GPRS SIM900 с антенной;

• SIM-карта мобильного оператора;

• кабель питания, переходник, провода.

Рисунок 11 - Аппаратная часть реализованного решения

Разработанное программно-аппаратное решение позволяет ускорить обработку обращений граждан и снизить нагрузку на диспетчеров кол-центров и «горячих линий».

На данном этапе проектных работ система позволяет обработать обра-

щение, выделить ключевые данные и на их основании сформировать заявку, обеспечить жизненный цикл заявки. Обмен информацией между участниками процесса и системой осуществляется с помощью смс, генерируемых и обрабатываемых системой.

СПИСОК ЛИТЕРАТУРЫ

1. Принципы онтологического моделирования. - URL: https://trinidata.ru/tech_ principles.htm (дата обращения: 30.03.2021). - Текст: электронный.

2. Gruber T. R. Ontolingua: A mechanism to support portable ontologies. / Technical Report KSL 91-66. - Stanford University, Knowledge Systems Laboratory. 1992. - 61 p. - URL: https://citeseerx.ist.psu.edu/viewdoc/ download?doi=10.1.1.34.9819&rep=rep1&type=p df (дата обращения: 30.03.2021). - Режим доступа: Электронная библиотека и поис-

ковая машина по научным публикациям и препринтам CiteSeerX. Текст: электронный.

3. Горшков С. Введение в онтологическое моделирование. - Тринидата, 2016. - 166 с. -URL: https://trinidata.ru/files/SemanticIntro.pdf (дата обращения: 30.03.2021). - Текст: электронный.

4. GraphDB Free Documentation. Release 9.6.0. - Ontotext, 24 March 2021. - 547 p. - URL: https://graphdb.ontotext.eom/documentation/9.6/pdf/GraphDB-Free.pdf (дата обращения: 30.03.2021). - Текст: электронный.

5. В.А. Лапшин. Онтологии в информационных системах. Современный подход. -Москва, 2009. - 247 с. - URL: http://isdwiki.rsuh.ru/moodle/ pluginfile.php/128/course/ section/36/bookLapshin.pdf (дата обращения: 30.03.2021). - Текст: электронный.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

6. Томита-парсер: сайт. - Яндекс, 2021. - URL: https://yandex.ru/dev/tomita (дата обращения: 30.03.2021). - Текст: электронный.

7. DeepPavlov 3 года: обзор и итоги 2020 года: [блог МФТИ, дата публикации 01.03.2021] // Хабр: сайт. - URL: https://habr.com/ru/company/mipt/blog/544458 (дата обращения: 30.03.2021). - Текст: электронный.

8. Проект Natasha. Набор качественных открытых инструментов для обработки естественного русского языка (NLP): [блог Кукушкина А., дата публикации 24.08.2020] // Хабр: сайт. - URL: https://habr.com/ru/post/516098 (дата обращения: 30.03.2021). -Текст: электронный.

9. Yargy-парсер и библиотека Natasha. Извлечения структурированной информации из текстов на русском языке: [блог Кукушкина А., дата публикации 14.03.2018] // Хабр: сайт. - URL: https://habr.com/ru/post/349864 (дата обращения: 30.03.2021). -Текст: электронный.

10. Сравнение разных подходов к поиску именованных сущностей на примере: [блог проекта RedForester, дата публикации 13.02.2019] // https://redforester.com: сайт. -URL: http://redforester.com/2019/02/13/сравнение-подходов-к-ner-на-примере (дата обращения: 30.03.2021). - Текст: электронный.

11. Yargy парсер. Извлечение структурированной информации из текстов на русском языке: [канал Кукушкина А., дата публикации 31.10.2018] // Youtube: [видеохостинг]. - URL: https://youtu.be/NQxzx0qYgK8 (дата обращения: 30.03.2021).

12. SIM900 AT Commands Manual. Version 1.11. - Shanghai SIMCom Wireless Solutions Ltd, 01.12.2015. - 271 p. - URL: https://simcom.ee/documents/SIM900/SIM900_AT%20 Command%20Manual_V1.11.pdf (дата обращения: 30.03.2021). - Текст: электронный.

REFERENCES

1. Printsipy ontologicheskogo modelirovaniya [Principles of ontological modeling]. Available at: https://trinidata.ru/tech_principles.htm (accessed 30 March 2021)

2. Gruber TR Ontolingua: a mechanism for supporting portable ontologies. KSL Technical Report 91-66. Stanford University, Knowledge Systems Laboratory, 1992, 61 p. Available at: https://citeseerx.ist.psu.edu/viewdoc/download?doi= 10.1.1.34.9819&rep=rep1&type= pdf (accessed 30 March 2021)

3. Gorshkov S. Vvedeniye v ontologicheskoye modelirovaniye [Introduction to ontological modeling]. Trinidata, 2016, 166 p. Available at: https://trinidata.ru/files/SemanticIntro. pdf (accessed 30 March 2021)

4. GraphDB Free Documentation. Release 9.6.0. Ontotext, 24 March 2021, 547 p. Available at: https://graphdb.ontotext.com/documentation/9.6/pdf/GraphDB-Free.pdf (accessed 30 March 2021)

5. V.A. Lapshin. Ontologii v informatsionnykh sistemakh. Sovremennyy podkhod

[Ontologies in information systems. Modern approach]. Moscow, 2009, 247 p. Available at: http://isdwiki.rsuh.ru/moodle/pluginfile.php/ 128/course/section/36/bookLapshin. pdf (accessed 30 March 2021)

6. Tomita parser: site. Yandex, 2021. Available at: https://yandex.ru/dev/tomita (accessed 30 March 2021)

7. DeepPavlov 3 goda: obzor i itogi 2020 goda [DeepPavlov 3 years: overview and results of 2020]. Habr website, MIPT blog (published 01 March 2021). Available at: https://habr. com/ru/company/mipt/blog/544458 (accessed 30 March 2021)

8. Proyekt Natasha. Nabor kachestvennykh otkrytykh instrumentov dlya obrabotki yestestvennogo russkogo yazyka (NLP) [Project Natasha. A set of high-quality open-source tools for processing the natural Russian language (NLP)]. Habr website, A. Kukushkin's blog (published 24 August 2020). Available at: https://habr.com/ru/post/516098 (accessed 30 March 2021)

9. Yargy-parser i biblioteka Natasha. Izvlecheniya strukturirovannoy informatsii iz tekstov na russkom yazyke [Yargy parser and Natasha's library. Extracting structured information from texts in Russian] Habr website, A. Kukushkin's blog (published 14 March 2018). Available at: https://habr.com/ru/post/349864 (accessed 30 March 2021)

10. Sravneniye raznykh podkhodov k poisku imenovannykh sushchnostey na primere [Comparison of different approaches to the search for named entities by example]. RedForester website, RedForester project blog (published 13 February 2019). Available at: http://redforester.com/2019/02/13/ Comparison of Approaches to Ner by Example (accessed 30 March 2021)

11. Yargy parser. Izvlecheniye strukturirovannoy informatsii iz tekstov na russkom yazyke [Yargy parser. Extracting structured information from texts in Russian]. Youtube, A. Kukushkin's channel (published 31 October 2018). Available at: https://youtu.be/ NQxzx0qYgK8 (accessed 30 March 2021).

12. SIM900 AT Commands Manual. Version 1.11. Shanghai SIMCom Wireless Solutions Ltd, 01 December 2015, 271 p. Available at: https://simcom.ee/documents/SIM900/SIM900_ AT%20Command%20Manual_V1.11.pdf (accessed 30 March 2021)

Материал поступил в редакцию 01.06.2021 © Гончаров А.С., Гончарова М.А., 2021

i Надоели баннеры? Вы всегда можете отключить рекламу.