§ 瀏覽學位論文書目資料
  
系統識別號 U0002-2607202114050900
DOI 10.6846/TKU.2021.00711
論文名稱(中文) 基於自然語言轉換SQL之資料庫語音查詢機器人
論文名稱(英文) Translating Voice Message to SQL based on Nature Language Processing
第三語言論文名稱
校院名稱 淡江大學
系所名稱(中文) 資訊工程學系碩士班
系所名稱(英文) Department of Computer Science and Information Engineering
外國學位學校名稱
外國學位學院名稱
外國學位研究所名稱
學年度 109
學期 2
出版年 110
研究生(中文) 徐志奇
研究生(英文) Chih-Chi Hsu
學號 608410337
學位類別 碩士
語言別 繁體中文
第二語言別
口試日期 2021-07-16
論文頁數 54頁
口試委員 指導教授 - 張志勇
共同指導教授 - 郭經華
委員 - 張志勇
委員 - 廖文華
委員 - 游國忠
關鍵字(中) 人工智慧
BERT
Seq2Seq
SQL資料庫
同義詞
同音字
關鍵字(英) Artificial Intelligence
BERT
Seq2Seq
SQL Data Base
Synonyms
Homophones
第三語言關鍵字
學科別分類
中文摘要
隨著資料庫的資料日益增加,資料的複雜度也逐漸提升,以過往的查詢方式,過去的查詢是手動的點選網頁方式,需要倚賴使用者對問題的了解程度,而且需要自行篩選條件,才能得知答案,不但浪費時間,也增加操作的複雜度。
    因此,利用人工智慧的技術,提供一個直覺化和方便性的查詢方式,讓使用者省時方便得到想要的查詢結果,便成為很重要的研究議題。
本論文採用自然語言處理(Natural Language Processing, NLP)的技術,利用深度神經網路建立模型,將自然語言轉換成對應的資料庫SQL語法。讓使用者輸入時,只要以語音來隨意輸入詢問的語句,我們深度學習的模型便能將語音轉成文字,再將文字轉換成資料庫相對應的「欄位」、「關係」與「值」的查詢欄位,最後轉換成SQL的語法,查詢到使用者需要的正確結果。
英文摘要
In the past query methods, the user's understanding of the question needs to be relied on, and the user needs to filter the conditions to get the answer. In the past, queries were manually clicked on web pages, which not only wasted time, but also increased the complexity of operations. Therefore, the use of artificial intelligence technology to provide an intuitive and convenient query method so that users can save time and easily obtain the desired query results has become a very important research topic. This thesis adopts Natural Language Processing (NLP) technology and uses deep neural networks to build models, and convert natural language into corresponding database SQL syntax. When allowing users to use, as long as they use voice to say the query sentence at will, our deep learning model can convert the voice into text, and then transfer the text into the query fields of the corresponding "field", "relation" and "value" in the database, and finally convert it into SQL Therefore, the query results can be directed presented for the user’s query.
第三語言摘要
論文目次
目錄
目錄	IV
圖目錄	VI
表目錄	VIII
第一章、簡介	1
第二章、相關研究	4
第三章、背景知識	7
3.1、Google Cloud語音轉文字(Speech-to-Text)	7
3.2、網路爬蟲	8
3.3、Jieba	10
3.4、模糊比對演算法	11
3.5、BERT	12
3.6、Seq2Seq	15
3.7、Flask	17
3.8、同音異字庫、同義字字庫	19
第四章、系統架構	20
4.1、目標	20
4.2、問題與挑戰	20
4.3、系統架構-訓練期	24
4.4、系統架構-使用期	40
第五章、實驗分析	49
5.1、實驗環境	49
5.2、數據集	49
5.3、模型測試	49
第六章、結論	53
參考文獻	54

圖目錄
圖1、在Google Cloud語音轉文字(Speech-to-Text)官方網站上進行測試	8
圖2、Google Cloud語音轉文字(Speech-to-Text)語音辨識中	8
圖3、中華民國內政部網站的常見問答頁面	9
圖4、檢視並觀察問題在網頁中的元素、標籤及規則性	9
圖5、jieba斷詞api	10
圖6、jieba三種斷詞模式的輸出結果	11
圖7、BERT是Transformer中的雙向Encode部分	12
圖8、BERT的訓練步驟	12
圖9、Masked Language Model預測被遮住的字詞	13
圖10、Next Sentence Prediction 訓練句子之間的關聯性	14
圖11、Seq2Seq在語言翻譯的應用	16
圖12、Python將查詢後的資料整理成JSON字串,並傳送至Flask架設的網頁	17
圖13、Flask接收到來自Python的JSON字串	17
圖14、Flask將JSON字串處理後,並顯示在網頁上	18
圖15、同音異字庫轉換方式	19
圖16、同義字字庫轉換方式	19
圖17、使用者透過自然語言進行查詢	20
圖18、基於自然語言轉SQL之系統架構(訓練期)	23
圖19、基於自然語言轉SQL之系統架構(使用期)	24
圖20、系統架構-訓練期的步驟一-建立資料庫	25
圖21、將分類好的xlsx資料表建立成資料庫中的資料表	25
圖22、系統架構-使用期步驟二-新增斷詞詞庫	26
圖23、將資料表中的欄位名稱提取,並新增至斷詞詞庫	26
圖24、未新增資料表欄位相關字詞,無法斷出完整的關鍵字	27
圖25、系統架構-訓練期步驟三-建立同音異字庫	27
圖26、系統架構-訓練期步驟四-設計同音異字庫比對演算法	28
圖27、將同音異字轉換為正確的字	28
圖28、系統架構-訓練期步驟五-設計模糊演算法	29
圖29、模糊比對演算法的字詞轉換流程	29
圖30、系統架構-訓練期步驟六-大量產生資料表分類器訓練資料	30
圖31、系統架構-訓練期步驟七-訓練資料表分類器	30
圖32、將問題輸入至資料表分類器進行訓練	30
圖33、系統架構-訓練期步驟八-產生Seq2Seq訓練資料	31
圖34、轉換後的Seq2Seq訓練資料	31
圖35、系統架構-訓練期步驟九-訓練Seq2Seq欄位預測模型	33
圖36、訓練Seq2Seq模型架構	33
圖37、將Seq2Seq訓練資料建立成Token字典	33
圖38、建立Token字典的程式碼	34
圖39、Token字典	34
圖40、定義訓練資料的向量空間與初始化Encoder、Decoder輸入大小與	34
圖41、將轉換成Token字典的Seq2Seq訓練資料進行編碼	35
圖42、建構Seq2Seq模型的程式碼	37
圖43、Decoder輸出每個decoder_outputs	37
圖44、建構好的Seq2Seq欄位預測模型	38
圖45、SQL語法轉換器	38
圖46、SQL轉換的結果	38
圖47、輸出查詢結果	38
圖48、將查詢後的答案顯示在網頁上	39
圖49、系統架構-使用期步驟一-語音轉文字	40
圖50、使用者透過語音輸入問題,並將語音轉換成文字	40
圖51、系統架構-使用期步驟二-斷詞斷句	41
圖52、將問題進行斷詞斷句示意圖	41
圖53、將問題進行斷詞斷句後的結果	41
圖54、系統架構-使用期步驟3-轉換同音字	42
圖55、使用同音異字庫進行同音字轉換	42
圖56、系統架構-使用期步驟四-處理同義詞與簡稱詞	43
圖57、使用模糊演算法處理同義字	43
圖58、系統架構-使用期步驟五-使用資料表分類器找出對應問題的資料表	44
圖59、找出對應的資料表與對應資料表的Seq2Seq模型	44
圖60、系統架構-使用期步驟六-找出對應資料表中的模型	45
圖61、Seq2Seq欄位預測模型程式碼	46
圖62、找出對應的模型,並進行關鍵字的欄位預測	46
圖63、系統架構-使用期步驟7-結合SQL語法	47
圖64、結合SQL語法	47
圖65、系統架構-使用期步驟八-輸出SQL查詢結果	48
圖66、執行SQL查詢、顯示在網頁上	48
圖67、seq2seq欄位預測模型-人口婚姻狀況的精確率(Precision)	51
圖68、seq2seq欄位預測模型-人口婚姻狀況的查全率(Recall)	51
圖69、自然語言轉SQL之資料庫查詢聊天機器人的測試結果	52

表目錄
表1、相關研究比較表	6
表2、jieba實體辨識標籤表	11
表3、混淆矩陣表	50
參考文獻
[1]Victor Zhong, Caiming Xiong, Richard Socher, "SEQ2SQL: GENERATING STRUCTURED QUERIES FROM NATURAL LANGUAGE USING REINFORCEMENT LEARNING," arXiv:1709.00103, 2017
[2]Jianqiang Ma, Zeyu Yan, Shuai Pang, Yang Zhang, Jianping Shen, "Mention Extraction and Linking for SQL Query Generation," arXiv:2012.10074v1 [cs.CL] 18 Dec 2020
[3]Bryan McCann, Nitish Shirish Keskar, Caiming Xiong, Richard Socher," The Natural Language Decathlon: Multitask Learning as Question Answering,"arXiv:1806.08730v1 [cs.CL] 20 Jun 2018
[4]Wei-Yun Ma, Keh-Jiann Chen," Design of CKIP Chinese Word Segmentation System," IJALP, Vol. 14, No. 3, pp. 235–249, May 2004
[5]Jacob Devlin Ming-Wei Chang Kenton Lee Kristina Toutanova," BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding," arXiv:1810.04805v2 [cs.CL] 24 May 2019
[6]Ilya Sutskever, Oriol Vinyals, Quoc V. Le, " Sequence to Sequence Learning with Neural Networks," arXiv:1409.3215v3 [cs.CL]
[7]Kyunghyun Cho, Bart van Merrienboer, Caglar Gulcehre, Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk, Yoshua Bengio," Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation," arXiv:1406.1078v3 [cs.CL] 3 Sep 2014
[8]Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin, " Attention Is All You Need," arXiv:1706.03762v5 [cs.CL] 6 Dec 2017
論文全文使用權限
校內
校內紙本論文立即公開
同意電子論文全文授權校園內公開
校內電子論文立即公開
校外
同意授權
校外電子論文立即公開

如有問題,歡迎洽詢!
圖書館數位資訊組 (02)2621-5656 轉 2487 或 來信