2016-06-09 10 views
0

Ich versuche englische Anweisungen in SQL-Abfragen zu transformieren.
z.B. Wie viele Produkte wurden letztes Jahr erstellt?So lösen Sie englische Satzverben semantisch

Dies sollte select count(*) from products where manufacturing date between 1/1/2015 and 31/12/2015

Ich bin nicht in der Lage zu
umgewandelt bekommen zu verstehen, wie das Verb „erstellt“ kartieren zu „Herstellungsdatum“ -Attribut in meinem Tisch. Ich benutze Stanford Core NLP-Suite, um meine Aussage zu analysieren. Ich verwende auch Wordnet Taxonomien mit JWI-Framework.

Ich habe versucht, die Verben den Attributen zuzuordnen, indem Sie einfache Regeln definieren. Aber es ist kein sehr allgemeiner Ansatz, da ich nicht alle Verben im Voraus kennen kann. Gibt es einen besseren Weg, dies zu erreichen?

Ich würde jede Hilfe in dieser Hinsicht zu schätzen wissen.

+1

Vielleicht möchten Sie sich Sempre ansehen (https://github.com/percyliang/sempre) - im Allgemeinen versucht das semantische Parsing genau diese Art von Problemen zu lösen. –

+0

Ich habe mir Sempre angeschaut, was ich sehr ordentlich für meine Bedürfnisse gefunden habe. Ich schreibe Java-Code, um loszulegen. Aber ich kann keinen Javadoc oder irgendeinen Einstiegspunkt für den Code finden, abgesehen von der Linux-Befehlszeilenschnittstelle. Ich möchte es unter Windows mit Java entwickeln. Irgendwelche Zeiger? –

Antwort

0

Ich weiß, dass dies einen Werkzeugwechsel erfordern würde, aber ich würde Adapt von Mycroft AI empfehlen.

Es ist ein sehr direkter Absichtsparser, der Benutzereingabe in eine json semantische Darstellung umwandelt.

Zum Beispiel:

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" 
} 

Es ist wie die Regeln sieht sind sehr einfach zu spezifizieren und erweitern, so würden Sie einfach Ihre Regeln erstellen müssen und dann haben, was Werkzeug, das Sie die JSON bearbeiten möchten und die SQL senden Abfrage.