Как семантически разрешить английские глаголы предложений
Я пытаюсь преобразовать английские операторы в запросы SQL.
Например, сколько продуктов было создано в прошлом году?
Это должно быть преобразовано в select count(*) from products
where manufacturing date between 1/1/2015 and 31/12/2015
Я не могу понять, как сопоставить глагол "создан" с атрибутом "дата изготовления" в моей таблице. Я использую Stanford Core NLP Suite для анализа моего заявления. Я также использую таксономии Wordnet с каркасом JWI.
Я попытался сопоставить глаголы с атрибутами, определив простые правила. Но это не очень общий подход, так как я не могу знать все глаголы заранее. Есть ли лучший способ добиться этого?
Буду признателен за любую помощь в этом отношении.
1 ответ
Я знаю, что это потребует смены инструмента, но я бы рекомендовал проверить Adapt от Mycroft AI.
Это очень простой синтаксический анализатор намерений, который преобразует вводимые пользователем данные в семантическое представление json.
Например:
Input: "Put on my Joan Jett Pandora station."
JSON:
{
"confidence": 0.61,
"target": null,
"Artist": "joan jett",
"intent_type": "MusicIntent",
"MusicVerb": "put on",
"MusicKeyword": "pandora"
}
Похоже, что правила очень легко задавать и расширять, так что вам просто нужно создать свои правила, а затем иметь любой инструмент, который вы хотите обработать JSON и отправить запрос SQL.