A method for extracting data from semis-tructured documents
Linguistic method to solve the problem of data extraction from weakly structured documents is developed, approved, and described in detail in the paper. Sample data were taken from thesis catalogue of Vernadsky National Library of Ukraine. The sequence of all stages is described: document collection...
Збережено в:
Дата: | 2020 |
---|---|
Автори: | , |
Формат: | Стаття |
Мова: | rus |
Опубліковано: |
Інститут програмних систем НАН України
2020
|
Теми: | |
Онлайн доступ: | https://pp.isofts.kiev.ua/index.php/ojs1/article/view/388 |
Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
Назва журналу: | Problems in programming |
Репозитарії
Problems in programmingid |
pp_isofts_kiev_ua-article-388 |
---|---|
record_format |
ojs |
resource_txt_mv |
ppisoftskievua/35/ec5985a766b0869a308126d871d48835.pdf |
spelling |
pp_isofts_kiev_ua-article-3882020-12-02T14:52:38Z A method for extracting data from semis-tructured documents Об одном методе извлечения данных из слабоструктурированных документов Про один метод витягу даних з слабоструктурованих документів Kudim, K.A. Proskudina, G.Yu. weakly structured documents; information extraction; linguistic analyzer; syntactic analyzer; morphological analysis; context-free grammar UDC 004.82 слабоструктурированные документы; извлечение информации; лингвистический анализатор; синтаксический анализатор; морфологический анализ; контекстно-свободная грамматика УДК 004.82 слабоструктуровані документи, витяг інформації, лінгвістичний аналізатор; синтаксичний аналізатор; морфологічний аналіз; контекстно-вільна граматика УДК 004.82 Linguistic method to solve the problem of data extraction from weakly structured documents is developed, approved, and described in detail in the paper. Sample data were taken from thesis catalogue of Vernadsky National Library of Ukraine. The sequence of all stages is described: document collection choice; document preparation; writing grammar rules for data extraction from text; writing rules for morphology verification; creation of interpretations or bindings rules to data; analysis of parsing results. Linguistic method of data extraction showed many advantages in comparison to the method of data extraction with regular expressions described earlier.Problems in programming 2020; 1: 25-32 В работе разработан, подробно описан и практически опробован лингвистический метод решения задачи извлечения данных на примере извлечения данных о персоналиях из слабоструктурированных документов, представленных в общедоступном каталоге авторефератов диссертаций Национальной библиотеки Украины им. В.И. Вернадского. Описана вся последовательность шагов: выбор коллекции документов; подготовка документов; написание правил грамматики для извлечения данных из текста; написание правил проверки морфологии; создание интерпретаций или привязок правил к данным; анализ результатов разбора. Лингвистический метод извлечения выявил ряд преимуществ по сравнению с описанным ранее методом извлечения данных с помощью регулярных выражений.Problems in programming 2020; 1: 25-32 В роботі розроблений, докладно описаний і практично випробуваний лінгвістичний метод вирішення задачі витягу даних на прикладі витягу даних про персоналії з слабоструктурованих документів, представлених в загальнодоступному каталозі авторефератів дисертацій Національної бібліотеки України ім. В.І. Вернадського. Описана вся послідовність кроків: вибір колекції документів; підготовка документів; написання правил граматики для отримання даних з тексту; написання правил перевірки морфології; створення інтерпретацій або прив'язок правил до даних; аналіз результатів розбору. Лінгвістичний метод витягу даних виявив ряд переваг в порівнянні з описаним раніше методом отримання даних за допомогою регулярних виразів.Problems in programming 2020; 1: 25-32 Інститут програмних систем НАН України 2020-02-28 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/388 10.15407/pp2020.01.025 PROBLEMS IN PROGRAMMING; No 1 (2020); 25-32 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 1 (2020); 25-32 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 1 (2020); 25-32 1727-4907 10.15407/pp2020.01 rus https://pp.isofts.kiev.ua/index.php/ojs1/article/view/388/393 Copyright (c) 2020 PROBLEMS IN PROGRAMMING |
institution |
Problems in programming |
baseUrl_str |
https://pp.isofts.kiev.ua/index.php/ojs1/oai |
datestamp_date |
2020-12-02T14:52:38Z |
collection |
OJS |
language |
rus |
topic |
weakly structured documents information extraction linguistic analyzer syntactic analyzer morphological analysis context-free grammar UDC 004.82 |
spellingShingle |
weakly structured documents information extraction linguistic analyzer syntactic analyzer morphological analysis context-free grammar UDC 004.82 Kudim, K.A. Proskudina, G.Yu. A method for extracting data from semis-tructured documents |
topic_facet |
weakly structured documents information extraction linguistic analyzer syntactic analyzer morphological analysis context-free grammar UDC 004.82 слабоструктурированные документы извлечение информации лингвистический анализатор синтаксический анализатор морфологический анализ контекстно-свободная грамматика УДК 004.82 слабоструктуровані документи витяг інформації лінгвістичний аналізатор; синтаксичний аналізатор; морфологічний аналіз; контекстно-вільна граматика УДК 004.82 |
format |
Article |
author |
Kudim, K.A. Proskudina, G.Yu. |
author_facet |
Kudim, K.A. Proskudina, G.Yu. |
author_sort |
Kudim, K.A. |
title |
A method for extracting data from semis-tructured documents |
title_short |
A method for extracting data from semis-tructured documents |
title_full |
A method for extracting data from semis-tructured documents |
title_fullStr |
A method for extracting data from semis-tructured documents |
title_full_unstemmed |
A method for extracting data from semis-tructured documents |
title_sort |
method for extracting data from semis-tructured documents |
title_alt |
Об одном методе извлечения данных из слабоструктурированных документов Про один метод витягу даних з слабоструктурованих документів |
description |
Linguistic method to solve the problem of data extraction from weakly structured documents is developed, approved, and described in detail in the paper. Sample data were taken from thesis catalogue of Vernadsky National Library of Ukraine. The sequence of all stages is described: document collection choice; document preparation; writing grammar rules for data extraction from text; writing rules for morphology verification; creation of interpretations or bindings rules to data; analysis of parsing results. Linguistic method of data extraction showed many advantages in comparison to the method of data extraction with regular expressions described earlier.Problems in programming 2020; 1: 25-32 |
publisher |
Інститут програмних систем НАН України |
publishDate |
2020 |
url |
https://pp.isofts.kiev.ua/index.php/ojs1/article/view/388 |
work_keys_str_mv |
AT kudimka amethodforextractingdatafromsemistructureddocuments AT proskudinagyu amethodforextractingdatafromsemistructureddocuments AT kudimka obodnommetodeizvlečeniâdannyhizslabostrukturirovannyhdokumentov AT proskudinagyu obodnommetodeizvlečeniâdannyhizslabostrukturirovannyhdokumentov AT kudimka proodinmetodvitâgudanihzslabostrukturovanihdokumentív AT proskudinagyu proodinmetodvitâgudanihzslabostrukturovanihdokumentív AT kudimka methodforextractingdatafromsemistructureddocuments AT proskudinagyu methodforextractingdatafromsemistructureddocuments |
first_indexed |
2025-07-17T09:40:05Z |
last_indexed |
2025-07-17T09:40:05Z |
_version_ |
1838409044474200064 |
fulltext |
Моделі та засоби систем баз даних і знань
© К.А. Кудим, Г.Ю. Проскудина, 2020
ISSN 1727-4907. Проблеми програмування. 2020. № 1 25
УДК 004.82 https://doi.org/10.15407/pp2020.01.025
К.А. Кудим, Г.Ю. Проскудина
ОБ ОДНОМ МЕТОДЕ ИЗВЛЕЧЕНИЯ ДАННЫХ
ИЗ СЛАБОСТРУКТУРИРОВАННЫХ ДОКУМЕНТОВ
В работе разработан, подробно описан и практически опробован лингвистический метод решения зада-
чи извлечения данных на примере извлечения данных о персоналиях из слабоструктурированных до-
кументов, представленных в общедоступном каталоге авторефератов диссертаций Национальной биб-
лиотеки Украины им. В.И. Вернадского. Описана вся последовательность шагов: выбор коллекции до-
кументов; подготовка документов; написание правил грамматики для извлечения данных из текста;
написание правил проверки морфологии; создание интерпретаций или привязок правил к данным; ана-
лиз результатов разбора. Лингвистический метод извлечения выявил ряд преимуществ по сравнению с
описанным ранее методом извлечения данных с помощью регулярных выражений.
Ключевые слова: слабоструктурированные документы, извлечение информации, лингвистический ана-
лизатор, синтаксический анализатор, морфологический анализ, контекстно-свободная грамматика.
Введение
Ранее нами был описан метод
извлечения данных из слабоструктуриро-
ванных текстов с помощью регулярных
выражений [1]. В настоящей работе метод
усовершенствован заменой регулярных
выражений на полноценный синтаксиче-
ский анализатор. А также существенно
улучшен метод предварительной подго-
товки документов.
В работе разработан, подробно опи-
сан и практически апробирован лингви-
стический метод решения задачи извлече-
ния данных на примере извлечения данных
о персоналиях из авторефератов диссерта-
ций. Описана вся последовательность ша-
гов: выбор коллекции документов; подго-
товка документов; написание правил
грамматики для извлечения данных из тек-
ста; написание правил проверки морфоло-
гии; создание интерпретаций или привязок
правил к данным; анализ результатов раз-
бора. Лингвистический метод извлечения
выявил ряд преимуществ по сравнению с
описанным ранее методом извлечения
данных с помощью регулярных выраже-
ний.
1. Коллекция документов
Для разработки и тестирования ме-
тода необходимо прежде всего опреде-
литься с коллекцией документов. В каче-
стве типового документа было решено
остановиться на автореферате диссерта-
ции. Такой документ имеет ряд необходи-
мых признаков слабоструктурированного
документа. В частности, в документе со-
держится большое количество метаданных
о нём самом. Это не только имя автора и
название, а также организации, научные
руководители и оппоненты, тема диссер-
тации, научное звание и специальность.
В качестве тестовой коллекции ав-
торефератов диссертаций для исследова-
ния была выбрана коллекция полнотексто-
вых документов электронного каталога ав-
торефератов диссертаций Национальной
библиотеки Украины им. В.И. Вернадско-
го. В корпусе авторефератов диссертаций
представлено более чем 63000 документов.
Коллекция состоит из всех авторефератов
поданных в Украине за период 1998 – 2011
гг. Полные тексты авторефератов содер-
жатся в файлах преимущественно в фор-
матах RTF и DOC. Коллекция доступна
через навигацию по каталогу в виде ссы-
лок в метаописании каждого автореферата.
Для обработки на локальной машине была
создана программа-краулер, которая обхо-
дит электронный каталог используя нави-
гационные ссылки, и скачивает файлы со-
держащие полный текст. В результате вся
коллекция доступна для дальнейшей обра-
ботки в локальном каталоге.
2. Подготовка документа
Перед непосредственным извлече-
нием данных исходные файлы обрабатыва-
лись в два этапа.
https://doi.org/10.15407/pp2020.01.003
Моделі та засоби систем баз даних і знань
26
На первом шаге подготовки доку-
мента из файлов различных форматов из-
влекается текст. С помощью готовых ути-
лит операционной системы документы, та-
кие как DOC и RTF, легко преобразуются в
простой неструктурированный текстовый
формат TXT. Такой же подход можно об-
наружить в зрелых программных продуктах
для систем электронных библиотек EPrints
и DSpace, которые используют подобное
преобразование с помощью внешних про-
грамм для полнотекстовой индексации до-
кументов сложных для анализа форматов. В
настоящей работе использовалась утилита
textutil из операционной системы macOS.
Пример консольной команды для преобра-
зования файла показан на рис. 1.
textutil -convert txt file.doc
Рис. 1. Пример использования утилиты
textutil для преобразования формата
документа
На втором шаге подготовки доку-
ментов, для того, чтобы ускорить синтакси-
ческий анализ, работающий недостаточно
быстро для обработки целого документа,
извлекается только титульная страница ав-
тореферата. Такой подход оказался допу-
стимым, поскольку основная часть доку-
мента не содержит интересующих нас ме-
таданных об автореферате. Эта информа-
ция находится на титульной странице либо
на первых двух страницах автореферата.
Титульную страницу извлекали из уже пре-
образованного простого текстового файла.
Опытным путём было установлено, что 50
первых строк достаточно для извлечения
всей необходимой информации и для суще-
ственного сокращения времени дальнейшей
обработки. На рис. 2 показан пример ко-
манды для извлечения начальных строк из
текстового файла.
head -n 50 file.txt > head.txt
Рис. 2. Пример использования утилиты
head для усечения документа
На выходе после предварительной
подготовки документа получаем файл, со-
держащий 50 строк текста, о которых из-
вестно, что в них записана титульная стра-
ница автореферата диссертации (см. рис. 3).
Дальнейшая задача состоит в том, чтобы из
этого небольшого текстового файла извлечь
метаданные диссертации.
Рис. 3. Титульный лист автореферата до и после предварительной подготовки
Моделі та засоби систем баз даних і знань
27
Минимальный набор возможных полей ме-
таданных подлежащих извлечению:
автор,
тема,
научная степень.
раздел науки.
Дополнительные поля могут быть
следующие:
научный руководитель,
оппоненты,
организация,
и другие.
3. Извлечение данных
Ранее нами уже был описан метод
извлечения данных из слабоструктуриро-
ванных текстов с помощью регулярных
выражений [1]. В настоящей работе метод
усовершенствован заменой регулярных
выражений на полноценный синтаксиче-
ский анализатор.
Известные существующие системы
для лингвистического анализа произволь-
ных русскоязычных текстов от Yandex
1
и
Pullenti
2
представляют собой чёрные ящи-
ки с закрытым исходным кодом [2]. По
этой причине они сложны в настройке и
накладывают ограничения на программное
окружение.
Сравнительно недавно был разрабо-
тан лингвистический анализатор Yargy [3]
с открытым исходным кодом на языке
Python. Он позволяет выполнять синтакси-
ческий разбор текста на русском языке,
что критически важно для наших целей,
поскольку для английского языка суще-
ствует множество решений, перенастройка
которых на русский язык по сложности
сравнима с написанием собственного
лингвистического анализатора.
Анализатор Yargy изначально
настроен на русский и, частично, украин-
ский языки. Наша дополнительная задача
доработать Yargy таким образом, чтобы он
полноценно выполнял синтаксический
разбор текстов на украинском языке. Эта
задача упрощается тем, что в основе биб-
лиотеки Yargy есть встроенный морфоло-
гический модуль, который уже понимает,
1
https://yandex.ru/dev/tomita/
2
www.pullenti.ru
как русский, так и украинский язык. Бла-
годаря этому модулю анализ украино-
язычных текстов возможен «из коробки»,
однако одной лишь морфологии часто бы-
вает недостаточно. Иногда происходят
ошибки определения частей речи, иногда
неправильно выделяются части слова.
Например, мужское имя «Виктор» (рус.) и
«Віктор» (укр.). В русском языке библио-
тека правильно определяет слово целиком
как имя человека. В украинском языке вы-
деляется приставка «вік» и корень «тор»,
тем самым препятствуя правильной клас-
сификации слова и затрудняя правильный
анализ документа.
Рассмотрим библиотеку Yargy де-
тальнее. Реализована библиотека целиком
на языке Python, что позволяет запускать
её везде, где можно использовать интер-
претатор Python. На вход библиотека при-
нимает, во-первых, специально подготов-
ленную контекстно-свободную граммати-
ку, настроенную на определённый тип до-
кумента в зависимости от задачи, и, во-
вторых, собственно текст для анализа. На
выходе работы анализатора получаем граф
синтаксического разбора входного текста
по данной грамматике. Таким образом,
библиотека не содержит встроенную
грамматику, что делает анализатор очень
гибким и пригодным для разнообразных
типов задач. Доступны два режима работы
с входным текстом:
найти все совпадения с граммати-
кой в тексте, то есть все подстроки,
которые распознаются данной
грамматикой;
проверить, распознаётся ли весь за-
данный текст грамматикой.
Сама грамматика описывается так-
же на чистом Python, что удобно, посколь-
ку не требует установки различных сред и
изучения дополнительного внутреннего
языка. И хотя для описания грамматики
авторами Yargy был разработан специаль-
ный язык DSL (domain specific language),
он все же является подмножеством языка
Python.
Синтаксический разбор реализован
с помощью алгоритма Эрли [4]. Алгоритм
Моделі та засоби систем баз даних і знань
28
кубической сложности, позволяющий раз-
бирать произвольные тексты по контекст-
но-свободной грамматике, которая не тре-
бует приведения к нормальной первой
форме Хомского. Контекстно-свободная
грамматика, заданная на входе алгоритма,
может содержать неоднозначности, что не
будет препятствовать её разбору этим ал-
горитмом.
Дополнительным преимуществом
при использовании Yargy является воз-
можность добавить статистические анали-
заторы. Библиотеке на вход можно подать
размеченные тексты, в которых лингви-
стические признаки слов такие как род,
число, падеж, часть речи выписаны в по-
следовательности вероятностных правил,
что за чем следует и с какой вероятностью.
Далее если в новом анализируемом тексте
встречается незнакомое слово, которого
нет в словарях, то библиотека может, ос-
новываясь на лингвистических признаках
цепочки предыдущих слов, спрогнозиро-
вать род, падеж, число для незнакомого
слова. Результаты такого рода обучения
можно использовать как дополнительный
вход библиотеки Yargy. В рамках настоя-
щей работы статистический синтаксиче-
ский анализ подробно не рассматривается.
Кроме синтаксического разбора
библиотека Yargy позволяет размечать
каждое слово в соответствии с его морфо-
логией, то есть получать результаты мор-
фологического анализа. Приписывание
каждому слову род, число, падеж и часть
речи помогает более детально настраивать
дерево разбора. Используемый морфоло-
гический модуль pymorphy2 позволяет
привести форму слова к нормальному виду
(т. е. единственное число, именительный
падеж для имен существительных, инфи-
нитив для глаголов), что позволяет одно-
временно выполнять преобразования из-
влекаемых данных для сохранения сущно-
стей в удобной форме. Например, если
имя, фамилия и отчество человека встре-
тилось в тексте в родительном падеже, то в
базе данных они сохраняются в имени-
тельном падеже.
Модуль pymorphy2 основывает
морфологический анализ на размеченном
корпусе текстов русского языка
OpenCorpora
3
. Поэтому морфологический
анализ украинских слов не работает долж-
ным образом.
4. Грамматика
Для дальнейшей обработки подго-
товленных документов была построена
грамматика, распознающая титульный
лист автореферата диссертации.
Правила. На рис. 4 показан пример
написания правил в этой грамматике.
NAME = rule(
gram('NOUN')
)
PERSON = rule(
SURN,
NAME,
PATR
)
Рис. 4. Фрагмент правила грамматики для
извлечения имени из текста
В каждом автореферате диссерта-
ции присутствует автор. В приведенном
примере правила указана фамилия SURN,
имя NAME и отчество PATR. Именно в
таком порядке. Каждое из этих слов — имя
существительное. В грамматике указыва-
ется какой частью речи должно быть имя
автора. В приведенном фрагменте имя
NAME это имя существительное NOUN. В
целом данное правило гласит, что если
встречается подряд три существительных,
то это полное имя человека, в данном слу-
чае имя автора автореферата. Это имя
позднее будет извлечено для сохранения в
базе и связи его с другими извлечёнными
сущностями.
Также написаны отдельные правила
для фамилии и отчества, описывающие
дополнительные признаки для каждого ча-
сти имени. Правила охватывают всевоз-
можные сочетания для имён, но достаточ-
но узко, чтобы не захватывать лишние
данные. С помощью библиотеки синтакси-
ческого анализа Yargy построенная кон-
текстно-свободная грамматика, применя-
ющаяся к неструктурированному тексту
3
http://opencorpora.org/
Моделі та засоби систем баз даних і знань
29
для получения на выходе структурирован-
ных данных, как в рассмотренном примере
фамилию, имя и отчество автора. Если
правила написаны достаточно хорошо, то
эти данные определяются во входном до-
кументе. В противном случае мы получаем
либо ложное срабатывание, когда грамма-
тика либо её часть срабатывает не на тех
данных, которые предполагалось извлечь с
помощью этих правил, либо документ не
соответствует ни одному варианту струк-
туры документа, описанному грамматикой,
и тогда распознавания не происходит во-
обще.
Для выделения имени человека су-
ществуют уже написанные более сложные
правила. В частности, над рассматривае-
мой библиотекой Yargy
4
реализована ис-
пользующая её библиотека Natasha
5
, пред-
назначенная для извлечения имен, адресов,
организаций и некоторых других сущно-
стей. Наборы правил из Natasha можно
легко использовать в своих грамматиках
для Yargy [3]. Для нашего корпуса текста
грамматика распознавания русских имён
из Natasha была доработана, поскольку в
изначальном виде распознавание было
успешным лишь на малом количестве те-
стовых документов.
Последовательность обработки тек-
ста при синтаксическом анализе следую-
щая. Прежде всего весь текст разбивается
на токены. Эта часть алгоритма предельно
проста. Пробелы игнорируются, любая по-
следовательность букв или цифр считается
токеном, а также любой знак препинания
тоже считается токеном. Такой подход
позволяет писать правила, использующие
знаки препинания для распознавания. Так
можно распознавать специальные отфор-
матированные данные, такие как УДК или
даты.
Предикаты. В правилах можно ис-
пользовать предикаты. Правило, показан-
ное на рис. 4, использует предикат о том,
что слово является существительным. На
рис. 5 приводится правило для базового
распознавания предметной классификации
УДК.
4
https://github.com/natasha/yargy
5
https://github.com/natasha/natasha
Поле данных УДК представляет со-
бой само слово “УДК”, за которым следу-
ют цифры, точки, дефисы, двоеточия. В
приведённом правиле используется два
предиката eq и type для проверки полного
совпадения и для проверки совпадения ти-
па токена с целым числом либо со знаком
препинания. Правило действует таким об-
разом: сначала проверяется точное совпа-
дение со словом “УДК”, затем с помо-
щью логической связки or (логическое
“или”) проверяется совпадение по одному
из двух предикатов, что, либо тип токена
это число, либо тип токена – знак пунктуа-
ции. Также можно указать, что правило
является повторяемым, указав ключевое
слово repeatable() для части правила.
UDK = rule(
eq('УДК'),
or_(
type('INT'),
type('PUNCT')
).repeatable()
)
Рис. 5. Фрагмент правила, распознающего
предметную классификацию УДК
Морфология. Существует возмож-
ность проверять совпадения с любой фор-
мой проверяемого слова. Такая проверка,
например, для слов 'кандидат' и 'доктор'
осуществляется с помощью правила, пока-
занного на рис. 6. Здесь идет проверка
совпадения слов кандидата, кандидату,
кандидаты, доктора, доктору и др. Для
этого нужно либо выписать все словофор-
мы, либо написать правило о том, чтобы
находить совпадения в любом падеже,
числе и роде. Либо использовать библио-
течную функцию, упрощающую эту ру-
тинную морфологическую работу.
DEGREE = rule(morph pipeline([
'кандидат',
'доктор'
]))
Рис. 6. Правило проверки морфологии
слов 'кандидат' и 'доктор'
Моделі та засоби систем баз даних і знань
30
5. Интерпретация
После того как сделан разбор, и по-
лучено дерево синтаксического разбора
текста, возникает задача привязки узлов
дерева разбора к структурам данных. При
использовании библиотеки Yargy для этой
цели создаются объекты Python. Выше мы
рассматривали пример простой граммати-
ки для разбора полного имени человека.
Для этой грамматики можно использовать
объект Person на языке Python, показан на
рис. 7. После анализа объект будет конкре-
тизирован данными из результатов синтак-
сического разбора.
Привязка объекта к грамматике
осуществляется с помощью так называе-
мой интерпретации. К правилу грамматики
приписывается объект, с помощью которо-
го будет происходить интерпретация ре-
зультатов работы этого правила. На рис. 8
показана реализация интерпретации пра-
вила распознавания имени объектом
Person.
Person = fact(
'Person',
['surn', 'name', 'patr']
)
Рис. 7. Объект Person
PERSON = rule(
SURN,
NAME,
PATR
). interpretation(
Person
)
Рис. 8. Интерпретация правила или при-
вязка объекта к правилу
После составления дерева разбора,
когда парсер распознает соответствующий
текст, каждому интерпретируемому узлу
дерева будет сопоставлен объект и распо-
знанными текстовыми значениями будут
инициализированы поля этого объекта.
Каждое правило будет узлом либо листом
в дереве разбора. Составные правила, ко-
торые включают в себя другие правила,
будут узлом в дереве. Терминальные же
символы и предикаты будут листьями та-
кого дерева. Интерпретация узла будет
объектом, а интерпретация листа будет ат-
рибутом объекта. Например, значение
имени будет атрибутом объекта
Person.name.
6. Результаты разбора
На рис. 9 в формате JSON показан
полный результат разбора титульной стра-
ницы автореферата.
{
"author": {
"surn": "Зіневич",
"name": "Яна",
"patr": "Вікторівна"
},
"udk": "УДК 616.13-018.74-008.6:616.12-
008.331.1- 06:616.366-002-036.12",
"title": "ОСОБЛИВОСТІ ПОКАЗНИКІВ ЕН-
ДОГЕННОЇ ІНТОКСИКАЦІЇ, ГУМОРАЛЬ-
НИХ ТА СТРУКТУРНИХ ПОКАЗНИКІВ АР-
ТЕРІЙ У ХВОРИХ З ГІПЕРТОНІЧНОЮ
ХВОРОБОЮ ТА СУПУТНІМ ХРОНІЧНИМ
ХОЛЕЦИСТИТОМ",
"specnum": "14.01.02",
"specname": "внутрішні хвороби",
"degree": "кандидат",
"degreespec": "медичних наук",
"city": "Харків",
"year": "2011"
}
Рис. 9. Результат разбора титульной
страницы автореферата в формате JSON
Далее на рис. 10 показана часть
графа дерева разбора для Имени автора.
Объект автор диссертации – Thesis.author,
это персона Person, фамилия персоны
Person.surn – ЗАЛОЗНОВА, имя персоны
Person.narne – Юлія, отечество персоны
Person.patr – Станіславівна. Это дерево
разбора уже с привязанными объектами.
Рис. 10. Фрагмент дерева разбора
Моделі та засоби систем баз даних і знань
31
7. Дальнейшая работа
Сохранение и отображение дан-
ных. Следующая задача состоит в том,
чтобы сохранить извлечённые результаты
в базе данных для того, чтобы можно было
делать запросы и представлять извлечён-
ную информацию публично в удобочитае-
мом виде. Для хранения данных мы отдаём
предпочтение формату RDF, поскольку в
нём естественным образом поддерживает-
ся неограниченное количество атрибутов и
связей, можно обрабатывать автоматиче-
ски и есть возможность строить SPARQL-
запросы.
Улучшение разбора. Предстоит
существенно улучшить украинскую мор-
фологию, а также добавить словари имен.
Такие словари можно получить извлечени-
ем из названий статей Википедии, по-
скольку там уже есть большое количество
имён, фамилий и отчеств, причём формат
известен заранее. Извлечь их можно из со-
ответствующих страниц категорий Вики-
педии, где имена представлены списками
на одной странице. Благодаря тому, что
формат известен, можно разделить назва-
ние статьи на имя, фамилию и отчество, и
сохранить каждое поле в отдельный файл,
получая таким образом словари имён, фа-
милий и отчеств. Эти словари необходимы
для более точного распознавания имён.
Если слово найдено в словаре, то распо-
знавание такого слова в тексте становится
тривиальной задачей с большой вероятно-
стью успешного результата.
Выводы
В работе пошагово и на многочис-
ленных примерах описан метод извлече-
ния данных из слабоструктурированных
текстов корпуса авторефератов диссерта-
ций с помощью использования синтакси-
ческого анализатора Yargy.
В дальнейшем предстоит улучшить
украинскую морфологию и добавить сло-
вари. А также разработать схему хранения
извлеченных данных с тем, чтобы их мож-
но было бы публично использовать и
строить к ним различные запросы.
Работа выполняется в рамках темы
"Методы и средства создания интеллекту-
альных сервис-ориентированных инфор-
мационно-обеспечивающих систем в среде
семантического Веба".
Литература
1. Кудим К.А., Проскудина Г.Ю. Методы и
средства извлечения данных о персоналиях
из авторефератов диссертаций. Проблеми
програмування. 2019. № 2. С. 38–46.
2. Рубайло А.В., Косенко М.Ю. Программ-
ные средства извлечения информации
из текстов на естественном языке. Альма-
нах современной науки и образования.
№ 12 (114). 2016. С. 87–92.
http://scjournal.ru/articles/issn_1993-
5552_2016_12_23.pdf
3. Кукушкин А. Наташа – библиотека для из-
влечения структурированной информации
из текстов на русском языке.
https://habr.com/ru/post/349864/
4. Earley J. An efficient context-free parsing
algorithm, Communications of the
Association for Computing Machinery.
13:2:94-102. 1970.
References
1. Kudim K.A., Proskudina G.YU. (2019).
Methods and tools for extracting personal data
from theses abstracts Problems in
programming. [online – pp.isofts.kiev.ua]
(2). P. 38–46. (in Russian).
Available from: http://pp.isofts.kiev.ua/ojs1/
article/view/359 [Accessed 6/05/2019]. DOI:
https://doi.org/10.15407/pp2019.02.038
2. Rubailo A.V., Kosenko M.Y. Software tools
for information extraction from natural-
language texts. Almanac of modern science
and education. № 12 (114) 2016. P. 87–92.
(in Russian). http://scjournal.ru/articles/issn_
1993-5552_2016_12_23.pdf
3. Kukushkin A. Natasha – a library for
extracting structured information from texts
in Russian. (in Russian).
https://habr.com/ru/post/349864/
4. Earley J. An efficient context-free parsing
algorithm, Communications of the
Association for Computing Machinery,
13:2:94-102, 1970.
Получено 03.02.2020
Моделі та засоби систем баз даних і знань
32
Об авторах:
Кудим Кузьма Алексеевич,
младший научный сотрудник.
Количество научных публикаций в
украинских изданиях – 18.
Количество научных публикаций в
зарубежных изданиях – 2.
http://orcid.org/0000-0001-9483-5495,
Проскудина Галина Юрьевна,
научный сотрудник.
Количество научных публикаций в
украинских изданиях – 31.
Количество научных публикаций в
зарубежных изданиях – 15.
http://orcid.org/0000-0001-9094-1565.
Место работы авторов:
Институт программных систем
НАН Украины,
03187, Киев-187,
проспект Академика Глушкова, 40.
Тел.: (044) 526 6033.
E-mail: kuzmaka@gmail.com,
guproskudina@gmail.com
|