2016-06-09 80 views
0

我正在嘗試將英語語句轉換爲SQL查詢。
例如去年創造了多少產品?如何解決英語句子動詞的語義問題

這應該得到轉化爲
select count(*) from products where manufacturing date between 1/1/2015 and 31/12/2015

我無法理解如何映射「創建」我的表爲「生產日期」的屬性動詞。我正在使用斯坦福核心nlp套件來解析我的陳述。我也在使用帶有JWI框架的wordnet分類法。

我試圖通過定義簡單規則將動詞映射到屬性。但它不是一個非常通用的方法,因爲我不能提前知道所有的動詞。有沒有更好的方法來實現這一目標?

我希望在這方面提供任何幫助。

+1

您可能想看看Semper(https://github.com/percyliang/sempre) - 一般來說,語義分析正試圖解決這些類型的問題。 –

+0

我確實看過了我發現我的需求非常整齊的semper。我正在編寫Java代碼以開始。但是,除了Linux命令行界面外,我無法找到任何代碼或任何入口點。我想在使用Java的Windows上開發它。任何指針? –

回答

0

我知道這將需要更換工具,但我會推薦Mycroft AI檢查Adapt

這是一個非常直接的意圖解析器,它將用戶輸入轉換爲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查詢。