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

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

CC BY
196
28
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБРАБОТКА ЕСТЕСТВЕННОГО ЯЗЫКА / БАЗА ДАННЫХ / ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ / ПОИСК ИНФОРМАЦИИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Болябкин М.В., Овчинников Ф.В., Башмуров Н.А.

В современном мире хранение и поиск информации играют важную роль. Системы баз данных играют ключевую роль в новой коммерческой системе хранения информации. При попытке получения доступа к данным из базы человек, не обладающий знаниями SQL, может оказаться в затруднительно положении. Это представляет собой существенное ограничение в такой стране, как Россия, поскольку даже сегодня подавляющее большинство населения не обладает техническими знаниями о том, как работать с системами баз данных. В таком случае, обработка естественного языка предполагает значительную работу. Это часть искусственного интеллекта, которая используется для поиска информации, машинного перевода и анализа языка. В этой статье предлагается система, которая позволяет пользователю запрашивать базу данных на языке совместимого режима с помощью удобного графического пользовательского интерфейса, в результате которого пользователь получает требуемые данные.

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

AN INTELLIGENT SYSTEM FOR CONVERTING NATURAL LANGUAGE QUERIES INTO SQL AND EXECUTING THEM

In the modern world, information storage and retrieval play an important role. Database systems play a key role in the new commercial information storage system. When trying to access data from the database, a person who does not have knowledge of SQL may find himself in a difficult position. This is a significant limitation in a country like Russia, because even today the vast majority of the population does not have technical knowledge about how to work with database systems. In this case, natural language processing involves considerable work. It is a part of artificial intelligence that is used for information retrieval, machine translation and language analysis. This article proposes a system that allows the user to query the database in a compatible mode language using a convenient graphical user interface, as a result of which the user receives the required data.

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

ИНТЕЛЛЕКТУАЛЬНАЯ СИСТЕМА ДЛЯ ПРЕОБРАЗОВАНИЯ ЗАПРОСОВ НА ЕСТЕСТВЕННОМ ЯЗЫКЕ В SQL И ИХ ВЫПОЛНЕНИЯ

М.В. Болябкин1, магистрант Ф.В. Овчинников1, студент Н.А. Башмуров2, студент

1Московский технический университет связи и информатики 2Нижегородский государственный университет им. Н.И. Лобачевского 1(Россия, г. Москва) 2(Россия, г. Нижний Новгород)

DOI:10.24412/2500-1000-2021-12-1-134-138

Аннотация. В современном мире хранение и поиск информации играют важную роль. Системы баз данных играют ключевую роль в новой коммерческой системе хранения информации. При попытке получения доступа к данным из базы человек, не обладающий знаниями SQL, может оказаться в затруднительно положении. Это представляет собой существенное ограничение в такой стране, как Россия, поскольку даже сегодня подавляющее большинство населения не обладает техническими знаниями о том, как работать с системами баз данных. В таком случае, обработка естественного языка предполагает значительную работу. Это часть искусственного интеллекта, которая используется для поиска информации, машинного перевода и анализа языка. В этой статье предлагается система, которая позволяет пользователю запрашивать базу данных на языке совместимого режима с помощью удобного графического пользовательского интерфейса, в результате которого пользователь получает требуемые данные.

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

Традиционно каждый чувствует себя более комфортно на том языке, на котором он говорит, пишет и понимает. Официальным языком России является русский. Сейчас большинство людей в России говорят на русском, но они не знакомы с таким техническим языком, как SQL, с помощью которого программист или пользователь может взаимодействовать с системой баз данных.[1] Обработка естественного языка обеспечивает платформу, с помощью которой не только программист, но и каждый пользователь может общаться с системой, не обладая знаниями технического языка. Чтобы извлечь данные из системы управления базами данных, такой как MS access, пользователь Oracle должен владеть языком структурированных запросов. Чтобы понять это, рассмотрим базу данных библиотечных книг. Предположим, пользователь хочет получить доступ к информации о книгах определенного автора. Для получения такого рода информации в oracle пользователю необходимо

выполнить запрос select * из библиотеки, где имя_автора="xyz"; Здесь начинается роль интеллектуальной системы. Интеллектуальная система разработана для того, чтобы люди могли взаимодействовать с базой данных, используя простые инструкции на русском языке. Используя эту систему вместо запоминания всех команд, пользователь может запросить необходимые данные, используя простое заявление на русском языке, например: "дайте мне название книг, автором которых является xyz". Планируется создать рабочий слой, который распознает базовые предложения клиента как информацию и преобразует их в стандартные вопросы SQL для извлечения информации из наборов данных, зависящих от информационной базы. Такого рода сотрудничество часто бывает ценным для людей, которые не являются экспертами в области информатики, но при этом заинтересованы в поиске информации. Они могут быть начальниками, экспертами, подчиненными или же людьми, нуж-

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

семантически и строит SQL-запрос для базы данных. Функциональность основана на семантике и правилах, которые могут быть изменены системным администратором. Система состоит из двух модулей: системы обучения и системы построения запросов.

Рисунок 1. Архитектура системы

Задействованные модули идут в следующем порядке:

1. Запрос на естественном языке (Natural Language Query): Предполагается, что пользователь вводит данные на естественном языке, т.е. русский. Ввод может быть любым, чтобы получить желаемые результаты от системы. Ввод осуществляется пользователем в текстовое поле. Формат ввода содержит некоторые правила удобства или формат, которым должен следовать пользователь, указанный на странице инструкций.

2. Токенизация (Tokenisation): Этап предварительной обработки - это токени-зация. В этой части системного ввода текст запроса преобразуется в токены unigram. После генерации токенов он передается в качестве входных данных для даль-

нейшей обработки. Эти токены хранятся для целей анализа.

3. Синтаксический анализ и семантическая проверка (Parsing and Semantic Check): Процесс токенизации предоставляет токены для анализа.

Токены анализируются аналогично лексическому анализу при разработке компилятора. Здесь токены проверяются на семантику оператора. Лишние и ничего не значащие слова отбрасываются. Остальные лексемы подбираются в соответствии с семантическими правилами и грамматикой.

4. Построение запроса (Query Building): Этот модуль фокусируется на построении запроса в соответствии с выводами анализатора и базы правил. Выражения оцениваются, выбираются таблицы и анализи-

руются предложения. Позже выполняются соответствующие преобразования для формирования SQL-запроса.

5. Журнал ошибок (Error Log): Журнал ошибок хранит записи обо всех неудачных попытках, предпринятых на экране пользовательского интерфейса. Входные предложения хранятся в текстовом файле, так что любой технический пользователь может обновить словарь данных, помогая пользователям успешно получать доступ к данным в будущем.

6. Обновление с помощью SQL (Updating through SQL): Технические пользователи или администратор могут войти в систему, чтобы просмотреть неудачные попытки, предпринятые пользователями, которые были сохранены в текстовом файле. С их помощью они могут обновить словарь данных. Это поможет модифицировать систему и уменьшить количество неудачных попыток.

7. Сопоставление запросов (Query Mapping): Созданный запрос затем сопоставляется для указанного типа операции и сопоставляется с существующей базой запросов или доменом. Затем сопоставленный запрос запускается через СУБД, и выходные данные отображаются в виде таблиц или удобочитаемого формата.

8. База данных (Database): Формально база данных относится к набору связанных данных и способу их структурирования или организации.

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

10. Экран входа в систему (Login Screen): Для доступа к данным требуется подключение к базе данных. На экране входа в систему запрашиваются имена пользователей, имя базы данных и пароль, поскольку данные сами по себе являются конфиденциальными. Неудачная попытка приводит к закрытию приложения.

11. Проверка слов и удаление лишних слов (Word Check and excess word

remover): Он проверяет все слова в пользовательском запросе по словарю данных на предмет его существования. Он удаляет лишние слова из строки запроса.

Методология

На первом этапе пользователь должен ввести запрос в виде простого предложения на русском языке, например: «какая зарплата у Ивана?». Затем предложение разбивается на лексемы типа «какая», «зарплата», «у», «Ивана». Удаление стоп-слов выполнено. Каждый токен анализируется на составляющие, и каждому токе-ну присваиваются теги, такие как существительное, прилагательное, наречие и т.д. Перед этим удаляются падежные окончания и также проводится синтаксический анализ для проверки грамматических ошибок. Словарь с ограниченным объемом данных также используется для хранения всех связанных слов о системе. После этого каждое отдельное слово сопоставляется с соответствующими объектами в базе данных, а значения отдельных слов объединяются друг с другом и определяют значение простого запроса на русском языке. Пример: Значение запроса: Зарплата сотрудника с именем Иван. Переводчик изменит данное русское предложение с помощью SQL-запроса, и результат того же самого отобразится.

Алгоритм

Алгоритм построения запроса:

1) Принять Строку

2) Токенизация строки

3)Синтаксический анализ строки слева направо в первый раз

4) Сопоставление токенов для:

А) Ключевых слов

Б) Названий таблиц

C) Конеца заявления

5) Для каждого ключевого слова добавляется пустая строка "s"

6) Синтаксический анализ во второй раз слева направо,

А) Поиск атрибутов

Б) Операторы соединения или "."

7) Обновление строки "s" в соответствии с шагом 6.

8) Запуск запроса по базе данных.

Алгоритм обновления словаря:

1) Вход в учетную запись администратора

2) Проверка файла журнала ошибок

3) Выбор операции из:

а) Вставить б) Изменить в) Удалить, в таблице "Словарь"

4) Выход из системы

Результат и заключение Для тестирования системы мы использовали набор данных студента и сотрудника. Используется набор вопросов из 30 запросов. Коэффициентами производительности, которые мы использовали, являются TP (Истинно положительный), FP (Ложноположительный), TN (Истинно отрицательный), Ложноотрицательный ^^ и отзыв.

Таблица 1. Матрица запросов

Предсказанная истина Предсказанная ложь

Фактическая истина FN=3 TP=42

Фактическая ложь TN=3 FP=2

Основываясь на формулах, мы рассчитали Отзыв, Правильность, Точность, Частоту ошибок:

Отзыв= TP/TP+TN = 88% Правильность=TP+TN/(Всего без сбоев) = 83,3%

Точность =TP/ (TP+FP) = 91% Частота ошибок= FP+FN/(Общее количество запросов) = 16,6%

Были протестированы все возможные комбинации простых запросов. Система работает для простых агрегированных операций. Для сложных запросов, вложенных запросов система нуждается в обновлении. Эта предлагаемая система может быть дополнительно расширена и использована в различных сферах взаимодействия с БД.

Библиографический список

1. Когаловский М.Р. Энциклопедия технологий баз данных. - М.: Финансы и статистика, 2005. - 800 с. - ISBN 5-279-02276-4

2. Бейнон-Дэвис П. Системы баз данных. - 3-е изд. - Бейсингсток, Великобритания: Пэлгрейв, 2004. - 312 с. - ISBN 1-4039-1348-Х

3. Дейт К. Дж. Системы баз данных. - 8-е изд. : Пер. с англ. - М.: Издательский дом «Вильямс», 2005. - 1328 с.: ил. - Парал. тит. англ. - ISBN 5-8459-0788-8 (рус.)

4. Джеймс Р. Грофф, Пол Н. Вайнберг, Эндрю Дж. Оппель. SQL: полное руководство, 3-е издание = SQL: The Complete Reference, Third Edition. - М.: «Вильямс», 2014. - 960 с. -ISBN 978-5-8459-1654-9.

5. Chamberlin, Donald D. Early history of SQL // IEEE Annals of the History of Computing 34.4 (2012): 78-82.

AN INTELLIGENT SYSTEM FOR CONVERTING NATURAL LANGUAGE QUERIES

INTO SQL AND EXECUTING THEM

M.V. Bolyabkin1, Graduate Student F.V. Ovchinnikov1, Student N.A. Bashmurov2, Student

1Moscow Technical University of Communications and Informatics 2Nizhny Novgorod State University named after N.I. Lobachevsky 1(Russia, Moscow) 2(Russia, Nizhny Novgorod)

Abstract. In the modern world, information storage and retrieval play an important role. Database systems play a key role in the new commercial information storage system. When trying to access data from the database, a person who does not have knowledge of SQL may find himself in a difficult position. This is a significant limitation in a country like Russia, because even today the vast majority of the population does not have technical knowledge about how to work with database systems. In this case, natural language processing involves considerable work. It is a part of artificial intelligence that is used for information retrieval, machine translation and language analysis. This article proposes a system that allows the user to query the database in a compatible mode language using a convenient graphical user interface, as a result of which the user receives the required data.

Keywords: natural language processing, database, artificial intelligence, information retrieval.

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