1. Введение
В последнее время при разработке информационных систем (ИС) различного назначения наметился переход на качественно новый уровень представления и обработки информации – семантический уровень, что позволит учитывать смысл (содержание) документов, извлекая из них важные для пользователя знания [1]. Появился целый класс систем, получивших название систем управления знаниями (Knowledge Management Systems – КMS). Каркасом таких систем является онтология, играющая основную роль в описании знаний о некоторой предметной области.
Методы и средства наполнения онтологий были и остаются самым слабым звеном в процессе проектирования систем управления знаниями. Большинство онтологий создаются вручную, что вызывает огромные сложности при разработке прикладных онтологий из-за чрезвычайно большого объёма обрабатываемой информации. Для пополнения таких онтологий разрабатываются формализмы и методы, позволяющие автоматизировать данный процесс. По тематике SOAT (Semi-automatic domain Ontology Acquisition Tool) выполнено значительное количество исследований и написано немало работ. Задача создания и пополнения онтологий на основе уже существующих знаний находится сегодня в фокусе внимания, что говорит одновременно и о ее актуальности, и о ее нерешенности в целом.
Автоматическое и полуавтоматическое пополнение онтологии является чрезвычайно актуальной задачей. При автоматическом и полуавтоматическом формировании онтологий нижних уровней следует использовать возможности получения знаний из открытых источников Интернет, а также выполнить подбор существующих междоменных онтологий и словарей при населении классов экземплярами [2].
В работе [3] были изучены подходы к созданию онтологий предметной области и предложен комбинированный способ ее формирования, основанный на повторном использовании уже существующих онтологий, которые охватывают широкий спектр как общих, так и междисциплинарных знаний и хорошо поддерживается благодаря усилиям открытого сообщества.
В системе управления информационными ресурсами научно-образовательных организаций (OKMS – organization's knowledge management system) существует своя cпецифика разрабатываемой онтологии. Во-первых, вопрос ручного заполнения разрабатываемой онтологии представляется крайне сложным и длительным. Во-вторых, для обеспечения языковой компетентности, достаточной для построения онтологии предметной области на базе автоматического разбора текстовых корпусов, OKMS сама должна обладать знаниями общими (языковыми) и специальными, (относящимися к данной ПО). Такая KMS должна, по сути, объединять в себе несколько онтологий: онтологию русского и английского языков и базовую онтологию ПО. Например, для благополучного функционирования разрабатываемой системы в условиях кафедры Автоматизированных систем управления ДонНТУ необходима терминологическая информация и на русском, и на английском языке, а также направленность на предметную область современных ИТ и программирования, а не только на основные языковые словари.
Важным принципом успешного функционирования ИС, построенных с помощью онтологического подхода, является качество онтологической модели, которое во многом определяется полнотой учета наиболее значимых концептов предметной области. Автоматические и полуавтоматические способы пополнения онтологий значительно повысят эффективность построения онтологий.
2. Постановка задачи
Одним из самых распространенных способов создания онтологий и ее пополнения является способ, базирующийся на использовании словарных концептов из электронных словарей, тезаурусов. В связи с этим, чрезвычайно важным становится подбор различных словарей, что и является основной целью исследований данной работы.
Проведем исследования по определению эффективности и целесообразности использования того или иного словаря для пополнения предметной онтологии системы управления информационными ресурсами научно-образовательных организаций.
Для исследований будем выполнять поиск слов по различным ключам в тестовых фрагментах текстов, наполненных множеством слов по тематике информационных технологий, программирования и вычислительной техники. Результаты поиска в дальнейшем будут использоваться для формирования расширенных поисковых запросы, для наполнения онтологий, для формирования списка ключевых слов и наиболее часто встречающихся слов, а также в других алгоритмах при функционировании ИС.
Для проверки эффективности работы того или иного словаря, проделаем следующие шаги:
- выполним поиск слов по ключу в текстах;
- рассчитаем показатели эффективности поиска;
- сравним результаты и подведем итоги.
При проверке эффективности работы словаря будут оцениваться следующие показатели:
- количество найденных слов;
- релевантность найденных слов;
- скорость поиска;
- кривые «полнота-точность»;
- наличие API.
Среди тестируемых словарей будут проанализированы следующие: WordNet, RussNet, Википедиа, Wiktionary.
Для точного фиксирования результатов оценки качества поисковой системы будем использовать следующие показатели [4]:
- полнота (recall, R) – доля релевантных документов в выборке, по отношению ко всем релевантным документам коллекции;
- точность (precision, P) – доля релевантных документов в выборке, по отношению ко всем документам в выборке;
- коэффициент F-мера (F) – усредненная величина, среднее гармоническое между полнотой и точностью;
- коэффициент ошибки (Е) – вероятность нахождения нерелевантного ресурса и определяется, как отношение числа найденных нерелевантных документов к общему числу нерелевантных документов в базе.
Для исследования эффективности поисковой системы с помощью нескольких запросов, для i-го запроса коэффициенты полноты Ri и точности Pi можно записать в следующем виде [5]:
где а – количество полученных в результате поиска релевантных документов;
b – количество полученных в результате поиска нерелевантных документов;
c – число релевантных документов в поисковом массиве, не выданных по запросу;
d – число нерелевантных документов, не выданных по запросу.
Для оценки часто используются и дополнительные оценки – коэффициент F и коэффициент ошибки E [5]:
Т. к. значения коэффициентов полноты и точности определяются однозначно для каждого из запросов пользователей, то это позволяет вычислить средние значения для фиксированных интервалов и построить кривую «полнота-точность», которая может использоваться для оценки качества. В идеальной поисковой системе коэффициенты полноты и точности равны единице. В реальных поисковых системах коэффициент полноты поиска должен достигать значений 0,7–0,9. Т. о., для определения эффективности использования разных словарей проведем вышеуказанные исследования.
3. Тестирование словаря WordNet
Наиболее часто встречается в работах исследователей по данному вопросу использование словаря WordNet, разработанного в Princeton University. Словарь содержит четыре семантические сети для описания существительных, глаголов, прилагательных и наречий. Единицей хранения в тезаурусе является синсет-набор синонимов, связанных между собой различными семантическими отношениями. Имеет возможность задавать предметную область. WordNet имеет API, но он способен работать лишь с английским языком. Одним из больших преимуществ является возможность быстрого поиска семантических отношений (прямые гипонимы, гиперонимы, синонимы и др.) и лексических отношений [6].
Результат выделения найденных слов в результате работы программного модуля со словарем WordNet приведен на рис. 1.
Ненайденные слова по ключам в этом фрагменте следующие: Nginx, PHP, MySQL, PostgreSQL, SQLite, SQL, MacOS, Android, Google, Kotlin, Apple, Swift, iOS Objective-C, SOLID, DHCP, IP, UDP.

При визуальной оценке качества поиска можем сделать вывод, что качество поиска неудовлетворительное для данного фрагмента текста. Чтобы количественно оценить параметры качества, сведем результаты поиска в табл. 1, а результаты расчетов в табл. 2.
| № | Ключ | WordNet | Всего слов в коллекции |
|---|---|---|---|
| 1 | operating system | Linux, Windows | Linux, Windows, Android, MacOS, iOS |
| 2 | computer languages, programming language | Java | PHP, SQL, Java, Kotlin, Swift, Objective-C |
| 3 | server | HTTP Apache, Nginx | Apache, Nginx |
| 4 | protocol | TCP, HTTP | DHCP, IP, TCP, HTTP, UDP |
| ... | ... | ... | ... |
| 20 | database | MySQL, PostgreSQL | MySQL, PostgreSQL, SQLite |
| № | a | c | b | d | R% | P% | F% | E% |
|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 0 | 3 | 0 | 100 | 40 | 100 | 60 |
| 2 | 1 | 0 | 5 | 0 | 100 | 17 | 100 | 83 |
| 3 | 0 | 1 | 2 | 3 | 0 | 0 | 40 | 50 |
| 4 | 6 | 2 | 3 | 2 | 75 | 66 | 60 | 38 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 20 | 2 | 0 | 1 | 0 | 100 | 67 | 100 | 33 |
| Average | 70 | 45 | 46 | 38 |
Среднее арифметическое время выполнения скрипта: 3,49756 секунд.
Кривая «полнота-точность» (рис. 2) также показывает, что для отдельных поисковых запросов были извлечены нерелевантные данные, что подтверждает нестабильность результатов поиска для некоторых предметных областей.

4. Анализ словаря RussNet
Поскольку наша задача состоит в том, чтобы обрабатывать и русскоязычные тексты, которые, тем не менее, содержат англоязычную терминологию по предметной области информационных технологий и вычислительной техники, нам нужно найти способы пополнения русскоязычной терминологией.
Аналогией WordNet для русского языка считается RussNet. Основной единицей также является синсет, но существует его отличие от английского словаря, которое состоит в наличии дополнительных семантических связей. Словарь RussNet является оригинальным ресурсом в том смысле, что он не переводится с Принстонского WordNet, а создается как отдельный ресурс [7].
Поскольку русскоязычных ресурсов мало, то данный словарь мы будем использовать в работе системы без подробного тестирования его работы.
5. Тестирование Википедии
С развитием семантических технологий WWW появляется новая приоритетная возможность использования технологий Semantic Web для пополнения онтологий. Одним из источников онтологического описания предметных областей является семантическая Википедия. Т. о., набирает популярность способ пополнения онтологии с использованием Википедии в качестве источника данных для извлечения знаний из систем.
Технология Wiki – современная интеллектуальная технология, позволяющая использовать модели знаний и выдавать поисковые запросы пользователям. MediaWiki является свободной программой и распространяется на условиях общественной лицензии GNU [8].
В Semantic MediaWiki [9] существует свой собственный встроенный инструмент для экспорта в RDF, позволяющий извлекать размеченную семантическую информацию из списка страниц [10].
При разработке программного модуля были использованы следующие программные компоненты (библиотеки):
- библиотека Python WikipediaBot Framework [11]. Она использует MediaWiki API (специальный интерфейс прикладного программирования) для взаимодействия с MediaWiki-системой для авторизации, получения данных и внесения изменений.
- библиотека RDFLib [12] сохраняет в файл на языке OWL.
Пример использования MediaWiki для поиска изображен на рис. 3. Сведем результаты поиска в табл. 3, а результаты расчетов в табл. 4.

| № | Ключ | MediaWiki API | Всего слов в коллекции |
|---|---|---|---|
| 1 | MySQL | MySQL, MySQL Workbench, MySQL Cluster, MySQL AB, LAMP (software bundle), SQL injection, MySQLi, MySQL Archive, List of Apache–MySQL–PHP packages, Michael Widenius | MySQL, MySQL Workbench, MySQL Cluster, MySQL AB, LAMP (software bundle), SQL injection, MySQLi, MySQL Archive, List of Apache–MySQL–PHP packages, Michael Widenius |
| 2 | SQL | SQL, Microsoft SQL Server, SQL injection, NoSQL, MySQL, History of Microsoft SQL Server, PostgreSQL, PL/SQL, Join (SQL), Transact-SQL | SQL, Microsoft SQL Server, SQL injection, NoSQL, MySQL, History of Microsoft SQL Server, PostgreSQL, PL/SQL, Join (SQL), Transact-SQL, Structured Query Language, ESQL, PL / SQL, Transact-SQL, T-SQL, QL, HSQLDB |
| ... | ... | ... | ... |
| 20 | сеть | Magnit, Heather Marsh, STS (TV channel), Chechnya, Russian LGBT Network, Moscow City Telephone Network, LGBT rights in Russia, Mado (food company), Kuzina (confectionery chain), Papa John's Pizza | net, mesh, grid, network, се тка, сетево й |
| № | a | c | b | d | R% | P% | F% | E% |
|---|---|---|---|---|---|---|---|---|
| 1 | 10 | 8 | 0 | 0 | 56 | 100 | 0 | 44 |
| 2 | 10 | 4 | 0 | 0 | 71 | 100 | 0 | 29 |
| 3 | 10 | 0 | 0 | 0 | 100 | 100 | 0 | 0 |
| 4 | 13 | 9 | 1 | 0 | 60 | 92 | 100 | 43 |
| 5 | 9 | 2 | 1 | 0 | 81 | 90 | 100 | 25 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 20 | 0 | 10 | 4 | 2 | 0 | 0 | 66 | 88 |
| Average | 59 | 81 | 67 | 44 |
На рис. 4 приведена кривая «полнота-точность» при использовании Wikipedia

Выполнив анализ результатов, видим, что показатели эффективности поиска лучше, чем были при использовании словаря WordNet, что подтверждает большую наполненность Wikipedia предметными данными, но тем не менее велика и выдача ошибочных данных.
Следует отметить, что провал наблюдается в основном для русскоязычных терминов. Для улучшения качества поиска был использован поиск по англоязычным терминам с последующим автоматическим переводом с помощью модуля Яндекс.Переводчик API [13].
Полученные результаты приведены на рис. 5. Другие примеры показали, что собственные названия, например, Siri, MacOS, как нам и требуется, не переводятся.

6. Тестирование словаря Wiktionary
Викисловарь Wiktionary [14] – это свободно пополняемый многофункциональный многоязычный онлайн словарь и тезаурус. Wiktionary, как и все проекты на движке MediaWiki имеет API, позволяющее эффективно искать необходимую информацию. Среди особых отличий стоит выделить многоязычность платформы и единый API для всех Wiki-проектов. Кроме этого, фонд Викимедиа регулярно публикует дампы каждого из своих проектов бесплатно. Эти дампы доступны в виде больших XML-файлов, которые можно импортировать в базу данных SQL с помощью специального программного обеспечения «MWDumper», что позволит локально использовать ресурс и значительно сократить время поиска по сравнению с Web версией.
Кроме словарных входов с толкованиями, семантическими отношениями и переводами, Wiktionary содержит словарные пометы. По сравнению с WordNet, наиболее близким аналогом среди электронных словарей, включающих словарные пометы и находящихся в открытом доступе, Wiktionary содержит около 370 помет против 170 WordNet [15]. Wiktionary превосходит WordNet по следующим параметрам: больший объем и более быстрее обновление материала (последнее особенно актуально); большее количество редакторов (сотни редакторов в Английском Викисловаре, десятки – в Русском Викисловаре).
Редакторами Викисловарей разработана система категорий словарных помет, призванная упорядочить и систематизировать словарные пометы [15]. Наиболее детально на данный момент в Английском Викисловаре проработаны категории помет предметных областей (topical на рис. 6).

Выделим в фрагменте все найденные слова по тематике. Wiktionary дал следующий результат (рис. 7).
Ненайденные слова: MySQL, PostgreSQL, SQLite, MacOS, iOS Objective-C.

Сведем результаты поиска в табл. 5, а результаты расчетов параметров его эффективности в табл. 6.
| № | Ключ | Wiktionary | Всего слов в коллекции |
|---|---|---|---|
| 1 | operating system | Linux, Windows, Android | Linux, Windows, Android, MacOS, iOS |
| 2 | computer languages, programming language | PHP, SQL, Java, Kotlin, Swift | PHP, SQL, Java, Kotlin, Swift, Objective-C |
| 3 | server | Apache, Nginx | Apache, Nginx |
| 4 | protocol | DHCP, IP, TCP, HTTP, UDP | DHCP, IP, TCP, HTTP, UDP |
| ... | ... | ... | ... |
| 20 | database | MySQL, PostgreSQL, SQLite | MySQL, PostgreSQL, SQLite, SQL Linux |
| № | a | c | b | d | R% | P% | F% | E% |
|---|---|---|---|---|---|---|---|---|
| 1 | 3 | 2 | 0 | 0 | 60 | 100 | 0 | 66 |
| 2 | 5 | 1 | 0 | 0 | 83 | 100 | 0 | 20 |
| 3 | 2 | 0 | 0 | 0 | 100 | 100 | 0 | 0 |
| 4 | 5 | 0 | 0 | 0 | 100 | 100 | 0 | 0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 20 | 3 | 0 | 1 | 0 | 75 | 25 | 100 | 33 |
| Average | 84 | 86 | 85 | 43 |
Кривая «полнота-точность» для словаря Wiktionary приведена на рис. 8

Среднее арифметическое время выполнения скрипта в среде Интернет: 23,458 секунд. Среднее арифметическое время выполнения скрипта при локально установленном словаре значительно уменьшается и составляет всего 2,8 секунды.
Судя по параметрам и форме кривой, результаты, возвращенные этим запросом, лучшего качества, чем предыдущие. Но тем не менее есть провалы по определенным терминам.
Выполним еще один запрос с уточнением предметной области поиска (табл. 7, 8)
Кривая «полнота-точность» для Wiktionary с уточнением предметной области приведена на рис 9.
| № | Ключ | WordNet | Всего слов в коллекции |
|---|---|---|---|
| 1 | SQL | SQL, Microsoft SQL Server, SQL injection, NoSQL, MySQL, History of Microsoft SQL Server, PostgreSQL, PL/SQL, Join (SQL), Transact-SQL | SQL, Microsoft SQL Server, SQL injection, NoSQL, MySQL, History of Microsoft SQL Server, PostgreSQL, PL/SQL, Join (SQL), Transact-SQL, Structured Query Language, ESQL, T-SQL, QL, HSQLDB |
| 2 | MySQL | MySQL, MySQL Workbench, MySQL Cluster, MySQL AB, LAMP (software bundle), SQL injection, MySQLi, MySQL Archive, List of Apache–MySQL–PHP packages, Michael Widenius | MySQL, MySQL Workbench, MySQL Cluster, MySQL AB, LAMP (software bundle), SQL injection, MySQLi, MySQL Archive, List of Apache–MySQL–PHP packages, Michael Widenius, MariaDB |
| ... | ... | ... | ... |
| 20 | сеть | net, mesh, grid, network, system, пу ты, се тка, сплете ние, сетевуха, се тка, сетево й, сеточный | net, mesh, grid, network, system, пу ты, се тка, сплете ние, сетевуха, се тка, сетево й, сеточный |
| № | a | c | b | d | R% | P% | F% | E% |
|---|---|---|---|---|---|---|---|---|
| 1 | 10 | 1 | 5 | 0 | 91 | 67 | 1 | 10 |
| 2 | 7 | 3 | 1 | 0 | 70 | 88 | 2 | 7 |
| 3 | 8 | 3 | 0 | 1 | 72 | 100 | 3 | 8 |
| 4 | 10 | 1 | 2 | 0 | 91 | 83 | 4 | 10 |
| 5 | 2 | 1 | 1 | 1 | 67 | 67 | 50 | 50 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 20 | 7 | 5 | 0 | 0 | 58 | 100 | 20 | 7 |
| Average | 82 | 92 | 87 | 31 |

Фрагмент программного модуля, содержащего описание некоторых рабочих классов, приведен на рис. 10.

Реализованный программный модуль использует следующие библиотеки:
- cURL – библиотека функций, которая позволяет взаимодействовать с множеством различных серверов по различным протоколам (http, https, ftp, gopher, telnet и др.) [16]
- PHPQuery – библиотека для парсинга, аналог jQuery на PHP [17];
- MediaWikiApi – веб-служба, обеспечивающая доступ к таким функциям Wiki, как аутентификация, операции над страницами и поиск по Wiki. [10];
- PHP Text Analysis – это библиотека для выполнения задач поиска информации (IR) и обработки естественного языка (NLP) с использованием языка PHP [18];
- phpMorphy – библиотека для морфологического анализа, реализованная на платформе PHP [19].
7. Выводы и направления дальнейших исследований
Исследования показали, что электронные словари-тезаурусы, такие, как WordNet и его русскоязычный аналог RussNet можно рассматривать как элементы для построения требуемой лингвистической онтологии.
Что касается использования словарей для пополнения предметной онтологии, то здесь преимущества имеют Wiki – ресурсы. Авторы проектов Wiki уделяют большое внимание доступности проекта на многих языках мира, в отличие от WordNet. Но если для реализации конкретной задачи необходимо проводить поиск и анализ специфичных тематических определений, то, как показали исследования, словарь Wiktionary лучше способен справиться с этой задачей. При сравнении кривых «полнота-точность» видим, что в случае использования словаря Wiktionary форма кривой «полнота-точность» более сглаженная и близкая к идеальной.
Т. о., при реализации разрабатываемой ИС следует использовать при пополнении онтологии терминами словарь Wiktionary, т. к. он обладает большей терминологической полнотой и точностью для заданной предметной области и в среднем возвращает большее количество релевантных результатов.
8. Литература
Статья поступила в редакцию 02.06.2020
Рекомендована к публикации профессором Павлышом В. Н.