自然言語からSQLクエリ


12

私は「自然言語をSQLクエリに変換する」システムの開発に取り組んでいます。

同様の質問の回答を読みましたが、探していた情報を入手できませんでした。

以下は、Garima Singh、Arun SolankiによるリレーショナルデータベースのSQLクエリに自然言語を変換するアルゴリズムから取得したこのようなシステムのフローチャートです。

フローチャート

私は品詞タグ付けステップまで理解しました。しかし、私は残りのステップにどのようにアプローチしますか。

  1. 可能なすべてのSQLクエリをトレーニングする必要がありますか?
  2. または、品詞のタグ付けが完了したら、単語をいじってSQLクエリを作成する必要がありますか?

編集:「ユーザークエリ」から「品詞タグ付け」までのステップを正常に実装しました。

ありがとうございました。


2
Nibi.ai(私は創設者の1人です)では、APIとして使用できるNLP to SQLエンジンを構築しています。間もなくリリースされます。デモをご希望の場合はお知らせください。
イェフダコーガン

別の方法として、SQLコースの受講を人間に依頼することもできます...
Marmite Bomber、

回答:


15

前に述べたこの大きなパイプラインを事前に指定しないように、エンドツーエンドの学習で別の視点から問題に取り組む場合、重要なのは、文とそれに対応するSQLの間のマッピングだけです。クエリ。

チュートリアル:

データベースと通信する方法

論文:

データセット:

自然言語インターフェースを開発するための注釈付きの大きな意味解析コーパス。

Githubコード:

  1. seq2sql
  2. SQLNet

また、nlsqlのような商用ソリューションもあります


2
+1、よく答えたが、まだリンクを通過していない
Toros91

@ファディバコウラありがとうございます。リンクをたどってみましょう。
deepguy

4

NLTKには、Pythonのnltkパッケージを使用して人間の言語をSQLクエリに変換するために必要なすべての手順が記載された優れたガイドがあります。

それは初歩的ですが、あなたの質問に答えます。


ありがとう@ killerT2333。見ただけです。しかし、それはちょっと混乱しています。他に簡単なドキュメントはありますか?
deepguy

1
それは私が知っている最も単純なものです-それはあなたが求めていることは非常に複雑なタスクなので、あなたの質問に対する単純な答えはありません。nltkのドキュメントでは、高レベルの理論と、多数のコード例を使用した低レベルの理論について説明しています。それよりも広範な場合は、おそらくgithubや研究論文を検索する必要があります。
PyRsquared 2018年

それをもう一度繰り返します。そして、ここであなたを更新します。
deepguy

2

Fadiの答えを補足するために、以下はNL to SQLメソッドに関するその他の有用な論文です。これらのメソッドの主な違いは、複数のテーブル(異なるテーブルを結合)を使用して回答する必要があるクエリをサポートすることですが、Salesforceペーパー(およびそのデータセット)は、一度に1つのテーブルのクエリに焦点を当てています。

これらのペーパーはどちらも、ここで利用可能なGeoQueryデータセットを使用しています

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.