Запрос Natural Language to SQL


13

Я работал над разработкой системы «Преобразование естественного языка в SQL-запрос».

Я прочитал ответы на подобные вопросы, но не смог получить информацию, которую искал.

Ниже приведена блок-схема для такой системы, которую я получил от алгоритма преобразования естественного языка в запросы SQL для реляционных баз данных Гаримы Сингха, Аруна Соланки

блок-схема

Я понял до части шага пометки речи. Но как мне подойти к остальным шагам.

  1. Нужно ли обучать все возможные запросы SQL?
  2. Или, когда часть речевого тегирования сделана, мне нужно поиграть со словами и сформировать SQL-запрос?

Редактировать: я успешно реализовал переход от шага «пользовательский запрос» к «Часть речевого тегирования».

Спасибо.


2
В Nibi.ai (я один из основателей) мы создаем движок NLP to SQL, который вы можете использовать в качестве API. Мы запускаем в ближайшее время. Дайте мне знать, если вы хотите получить демо.
Иегуда Коган

В качестве альтернативы вы можете попросить человека пройти курс SQL ...
Marmite Bomber

Ответы:


17

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

Учебники:

Как общаться с вашей базой данных

доклады:

Dataset:

Большой аннотированный корпус семантического анализа для разработки интерфейсов на естественном языке.

Код Github:

  1. seq2sql
  2. SQLNET

Кроме того, есть коммерческие решения, такие как nlsql


2
+1, за хороший ответ, но еще не просмотрел ссылки
Toros91

@ Фади Бакура Спасибо. Позвольте мне перейти по ссылкам.
Deepguy

4

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

Это элементарно, но отвечает на ваш вопрос.


Спасибо @ killerT2333. Я только что посмотрел. Но это немного сбивает с толку. Есть ли другой простой документ?
Deepguy

1
Это самый простой из известных мне - это довольно сложная задача, которую вы просите, поэтому нет простого ответа на ваш вопрос. В документации по nltk они проведут вас через теорию на высоком уровне, а также на низком уровне с большим количеством примеров кода. Более обширный, чем это, вам, вероятно, нужно искать github или исследовательские работы.
PyRsquared

Я пройду это еще раз. И обновлю вас здесь.
Deepguy

2

Чтобы дополнить ответ Фади, ниже приведены другие полезные статьи о методах NL to SQL. Основное отличие этих методов заключается в том, что они поддерживают запросы, на которые нужно отвечать более чем одной таблицей (соединяя разные таблицы), однако документ Salesforce (и их набор данных) ориентирован на запросы к одной таблице за раз.

Обе эти статьи используют набор данных GeoQuery здесь .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.