日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

id随机选择另一张表格的 sql_表格问答1:简介

發布時間:2023/12/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 id随机选择另一张表格的 sql_表格问答1:简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在公眾號的第一篇文章中我們介紹了一個厲害的開放域問答系統 REALM,它可以根據自然語言問題從知識庫中找到相關文章并從文章中找到問題的答案。REALM 這種直接從文章中獲取答案的設定在問答領域稱為非結構化文檔問答,接下來我們將用幾篇文章介紹一下與之相對應的結構化文檔問答中的一個重要分支表格問答。

什么是表格問答

表格大家都不陌生,誰電腦里沒幾個excel文件呢。它其實是一種信息密度很高的文檔類型,與文章相比,更加適合作為電商、查詢等場景的知識源。用表格來提供信息不僅方便業務端梳理知識,而且結構化的數據給算法端進行信息聚合、比較甚至推理提供了更肥沃的土壤。

下圖是 MSRA在2018 年底發的一篇文章[1]的插圖,里面對表格相關 NLP 問題有一個比較完整的呈現。其中涉及了檢索、語義解析、生成和對話等多個方向。

MSRA博文插圖。本文的重點是其中的Semantic Parsing部分,即將自然語言問題轉化為結構化查詢語句,并在數據庫中運行后得出結果。

如圖所示,表格問答就是針對一個自然語言問題,根據表格內容給出答案。

表格問答主要涉及的是圖中檢索語義解析兩個模塊。檢索模塊在文檔問答里也有,文檔問答的檢索模塊是為了找到和問題相關的文檔,而表格問答里檢索模塊的目標則是找到和問題相關的表格。這個模塊只有在涉及大量表格(例如搜索引擎)的時候才會用到。

語義解析是和文檔問答中差別比較大的部分。在文檔問答中是使用一個 reader 模型來處理檢索到的文檔(context),而表格問答的側重點則是處理問題(query)。語義解析模型的目標是結合表格信息將問題(如圖中的Which city hosted Summer Olympic in 2008?)轉化成一個機器可理解和執行的規范語義表示,對二維表而言這種表示通常就是 SQL 語句(如圖中的SELECT City FROM SummerOlympic WHERE Year="2008")。有了 SQL 語句就可以執行得到針對問題的答案(如圖中的Beijing)。

在不需要表格檢索的場景中,表格問答就簡化成了一個自然語言轉 SQL(nl2sql)問題,我們后面的介紹也主要聚焦在 nl2sql 這個問題上。

NL2SQL 數據集

我認為語義解析算是 NLP 界“最初的夢想”了,籠統地說就是要建立起非結構化自然語言和結構化機器語言間的橋梁。NL2SQL 由于其實用性漸漸成為了語義解析領域一個重要的方向,近幾年也誕生了很多有代表性的 nl2sql 數據集。

英語世界兩個著名的數據集是WikiSQL[2]和Spider[3];去年國內的追一科技在天池平臺上舉辦過一次中文 nl2sql 挑戰賽[4],為中文 NLP 世界貢獻了一個高質量的數據集。

WikiSQL 相對比較簡單,也比較典型,我們從它開始講起。宏觀上數據集分為兩個部分:問題和表格數據。

下面是一個問題的例子,每條數據包含三個主要字段。

{
"phase":1,
"question":"who is the manufacturer for the order year 1998?",
"sql":{
"conds":[
[
0,
0,
"1998"
]
],
"sel":1,
"agg":0
},
"table_id":"1-10007452-3"
}
  • question是自然語言問題
  • table_id是與這個這個問題相關的表格編號
  • sql字段是標簽數據。這個數據集進一步把 SQL 語句結構化(簡化),分成了conds,sel,agg三個部分。
    • sel是查詢目標列,其值是表格中對應列的序號
    • agg的值是聚合操作的編號,可能出現的聚合操作有['', 'MAX', 'MIN', 'COUNT', 'SUM', 'AVG']共 6 種。
    • conds是篩選條件,可以有多個。每個條件用一個三元組(column_index, operator_index, condition)表示,可能的operator_index共有['=', '>', '四種,condition是操作的目標值,這是不能用分類解決的目標。

可以看出 WikiSQL 里的自然語言查詢語句并不會太難,而且由于將SQL語句做了進一步的結構化,多數目標可以建模成分類問題進行解決。

WikiSQL 是針對單表場景的數據集,每一個問題只會對應一張表格。表格數據大概長下面這個樣子,其中id與問題中的table_id對應,header是表頭(列名),types是每一列的數據類型,rows則是每一行數據。

{
"id":"1-1000181-1",
"header":[
"State/territory",
"Text/background colour",
"Format",
"Current slogan",
"Current series",
"Notes"
],
"types":[
"text",
"text",
"text",
"text",
"text",
"text"
],
"rows":[
[
"Australian Capital Territory",
"blue/white",
"Yaa\u00b7nna",
"ACT \u00b7 CELEBRATION OF A CENTURY 2013",
"YIL\u00b700A",
"Slogan screenprinted on plate"
],
[
"New South Wales",
"black/yellow",
"aa\u00b7nn\u00b7aa",
"NEW SOUTH WALES",
"BX\u00b799\u00b7HI",
"No slogan on current series"
]
]
}

Spider 數據集比 WikiSQL 困難,它需要構造的 SQL 語句更加復雜,而且有的問題需要做多張表的聚合。下圖是 Spider 數據集里一些不同難度查詢語句的例子,WikiSQL 基本上處在其中的 easy 水平。

Spider數據集樣例

最后那個Extra Hard的例子真是看得我頭皮發麻,我感覺我自己都寫不出相應的SQL語句,真是太難了。

中文 NL2SQL 數據集的形式幾乎和 WikiSQL 一模一樣,但難度高出不少。它更加接近業務場景一些,主要體現在表格內容非常豐富、自然語言問題的表達也更加多樣。這兩點從當時比賽冠軍的答辯 ppt[5]里就可見一二。要取得好成績需要做很多文本規范化的工作。

中文NL2SQL挑戰賽冠軍隊伍采用的預處理策略??梢钥闯鰯祿写嬖谥形臄底?、年份縮寫、同義詞等棘手的問題。

性能評價

NL2SQL 一般有兩種評價方式,一種是直接比較生成的 SQL 與標簽的差別,另一種是比較生成的 SQL 執行結果與標簽 SQL 執行結果的差別。在 WikiSQL 中這兩個指標分別稱為 logical form accuracy 和 execution accuracy。由于不同的 SQL 語句可能產生相同的結果,所以用后一種評價方式的得分一般高于前一種。

Spider 原來的評價指標比較接近于 logical form acc,今年剛開放了 execution acc 賽道。由于難度有差異,目前模型在各數據集上的水平也有一些差別。WikiSQL 目前排行榜上第一名的執行準確率已經達到 92%,邏輯形式準確率也達到了 86.5%,而 Spider 由于難度更大,SOTA 成績只有 61.9%。

WikiSQL排行榜上目前的前五名

以上就是今天的全部內容,相信你已經對 NL2SQL 問題有了一個比較直觀的了解。后面會有兩篇關于表格問答算法和落地產品的文章,下一期將會先介紹來自微軟的兩個相繼在 WikiSQL 獲得 SOTA 成績的模型 HydraNet 和 X-SQL,不要錯過哦。

參考資料

[1]

你已經是個成熟的表格了,該學會自然語言處理了: https://www.msra.cn/zh-cn/news/features/table-intelligence

[2]

WikiSQL數據集: https://github.com/salesforce/WikiSQL

[3]

Spider數據集: https://yale-lily.github.io/spider

[4]

中文NL2SQL挑戰賽: https://tianchi.aliyun.com/competition/entrance/231716/introduction?spm=5176.12281957.1004.7.38b02448CvVgo8

[5]

中文NL2SQL挑戰賽冠軍方案: https://github.com/nudtnlp/tianchi-nl2sql-top1/blob/master/%E5%A4%A9%E6%B1%A0NL2SQL%E5%86%A0%E5%86%9B%E6%96%B9%E6%A1%88.pdf

推薦閱讀

AINLP年度閱讀收藏清單

數學之美中盛贊的 Michael Collins 教授,他的NLP課程要不要收藏?

自動作詩機&藏頭詩生成器:五言、七言、絕句、律詩全了

From Word Embeddings To Document Distances 閱讀筆記

模型壓縮實踐系列之——bert-of-theseus,一個非常親民的bert壓縮方法

這門斯坦福大學自然語言處理經典入門課,我放到B站了

可解釋性論文閱讀筆記1-Tree Regularization

征稿啟示 | 稿費+GPU算力+星球嘉賓一個都不少

關于AINLP

AINLP 是一個有趣有AI的自然語言處理社區,專注于 AI、NLP、機器學習、深度學習、推薦算法等相關技術的分享,主題包括文本摘要、智能問答、聊天機器人、機器翻譯、自動生成、知識圖譜、預訓練模型、推薦系統、計算廣告、招聘信息、求職經驗分享等,歡迎關注!加技術交流群請添加AINLPer(id:ainlper),備注工作/研究方向+加群目的。

總結

以上是生活随笔為你收集整理的id随机选择另一张表格的 sql_表格问答1:简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。