簡體   English   中英

自然語言處理數據庫查詢

[英]Natural Language Processing Database Querying

我需要為結構化數據庫開發自然語言查詢工具。 我嘗試了兩種方法。

  • 使用 Python nltk(Python 的自然語言工具包)使用
  • Javascript 和 JSON(用於數據源)

在第一種情況下,我做了一些 NLP 步驟來格式化自然查詢,方法是去除停用詞、詞干提取,最后使用特征語法映射來映射關鍵字。 這種方法適用於簡單的場景。

然后我轉向第二種方法。 在JSON中查找數據並獲取對應的列名和表名,然后構建sql查詢。 對於這個,我還實現了刪除停用詞,使用 javascript 進行詞干化。

這兩種技術都有局限性。我想實現語義搜索方法。

請任何人都可以建議我更好的方法來做到這一點..

NLIDB(數據庫的自然語言接口)的語義解析是一個非常進化的領域,有許多技術:基於規則的方法(涉及語法)或機器學習技術。 它們涵蓋了大范圍的查詢輸入,並提供比純 NL 處理或正則表達式方法更多的結果。

我喜歡的技術基於基於特征的上下文無關文法FCFG 首先,在在線提供的 NTLK 書籍中,查找字符串“sql0.fcfg”。 該代碼示例展示了如何通過功能“SEM”或 FCFG 的語義將 NL 短語結構查詢“中國位於哪些城市”映射到 SQL 查詢“SELECT City FROM city_table WHERE Country="china”。

我推薦卡溫頓的書

  • 面向 Prloog 程序員的 NLP (1994)
  • Prolog 深度編程 (1997)

他們會幫助你走很長的路。 這些 PDF 可從他的網站下載。

正如我所評論的,我認為您應該添加一些代碼,因為不是每個人都讀過這本書。

無論如何,我的結論是,是的,正如您所說,它有很多限制,實現更復雜查詢的唯一方法是編寫非常廣泛和完整的語法產品,這是一項非常艱巨的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM