Как определить, имеют ли два запроса на естественном языке одинаковое значение? - PullRequest
0 голосов
/ 10 апреля 2019

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

Реорганизованный язык будет следовать следующим правилам:

что они хотят делать, напр."Find" "List" "Give" атрибуты, которые они хотят, чтобы мы получили ex.Атрибуты таблиц из сущностей схемы sql, с которыми они хотят, чтобы мы соответствовали

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

Итак, из большого количества предложений мне нужно найти, какое из них наиболее похоже на исходный запрос.

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

Спасибо за помощь, я создаю это для открытого исходного кода, поэтому любая помощь идет на благо

1 Ответ

0 голосов
/ 12 апреля 2019

Вы пробовали spaCy - метод сходства? Вы можете использовать конвейер spaCy для очень быстрого захвата объектов nlp для всех запросов. Затем вы будете делать что-то вроде nlp_original_query.similarity(nlp_other_query). Я имел большой успех, используя это, чтобы сравнить сходство запросов / ключевых слов.

...