Skip to content

mathewpolonsky/NLSQL

Repository files navigation

NLSQL

Переводчик с естественного языка на SQL – 1 место

Решение команды Deviаnts задачи NLSQL от Ростелекома в рамках Хакатона Цифровой прорыв.

Краткое описание кейса

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

Решения в datadriven-компаниях принимаются на основании проверки гипотез на данных. При этом большая часть таких гипотез не является сложными — такие проверки могут осуществлять сами участники команд со стороны бизнеса (selfservice), но они не всегда обладают знаниями языков программирования.

Участникам хакатона предлагается реализовать переводчик с «человеческого» языка на язык SQL.

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

Решение

Модель машинного обучения для перевода естественного языка на SQL. Может обрабатывать как простые, так и сложные запросы. Решение упростит работу людям, которые не умеют составлять запросы SQL. Интерфейс решения представлен в виде веб-приложения, а также в виде чат-бота.

Стек решения

Python, Transformers, T5, PyTorch, Django, telebot.

Уникальность

Высокая точность, возможность обрабатывать несколько таблиц, высокая скорость работы модели Text-To-Text, простой и интуитивный интерфейс.

Поддерживаемые операторы SQL

  • SELECT
    • one column
    • multiple columns
    • all columns
    • distinct select
    • aggregate functions
      • count-select
      • sum-select
      • avg-select
      • min-select
      • max-select
  • JOIN
  • WHERE
    • one condition
    • multiple conditions
    • operators
      • equal/not equal operator
      • greater-than/less-than operator
      • like operator
      • between operator
    • aggregate functions
      • sum in condition
      • avg in condition
      • min in condition
      • max in condition
  • ORDER BY
    • ASC
    • DESC
  • GROUP BY
  • detection of values

Файлы

  • Making Spider Dataset.ipynb - Преобразование датасета Spider для обучения T5
  • Training T5-Base on Spider.ipynb - Обучение T5-Base
  • Making Translated Spider Dataset.ipynb - Перевод датасета Spider для обучения моделей на русском
  • nlpQL/ - Сайт на Django
  • NQLbot/ - Telegram бот на Telebot

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published