2016-06-09 12 views
0

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

Это должно трансформироваться в
select count(*) from products where manufacturing date between 1/1/2015 and 31/12/2015

Я не могу понять, как отобразить глагол «созданный» с «дата изготовления» атрибут в моей таблице. Я использую набор nlp для ядра Stanford для анализа моего заявления. Я также использую таксономии wordnet с системой JWI.

Я попытался сопоставить глаголы с атрибутами, указав простые правила. Но это не очень общий подход, так как я не могу заранее знать все глаголы. Есть ли лучший способ достичь этого?

Буду признателен за любую помощь в этом отношении.

+1

Вы можете захотеть взглянуть на Semper (https://github.com/percyliang/sempre) - в целом, семантический разбор пытается решить именно эти проблемы. –

+0

Я посмотрел на семпер, который я нашел очень аккуратным для своих нужд. Я пишу Java-код для начала работы. Но я не могу найти javadoc или любую точку входа для кода, кроме интерфейса командной строки Linux. Я хочу развить его на Windows с помощью Java. Любые указатели? –

ответ

0

Я знаю, что для этого потребуется смена инструмента, но я бы рекомендовал проверить 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 запрос.