1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án generating code of programming languages for automatic software development

18 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Generating Code of Programming Languages for Automatic Software Development
Tác giả Nguyễn Khánh, Nguyễn Hoàng Ngọc Hải
Người hướng dẫn PTS. Huỳnh Tuấn Anh
Trường học Trường Đại Học Công Nghệ Thông Tin, Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Khoa Công Nghệ Phần Mềm
Thể loại Đồ án
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 18
Dung lượng 362,15 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Một trong những điểm thu hút chính của cơ sở dữ liệu quan hệ là người dùng có thể sử dụng ngôn ngữ khai báo để mô tả truy vấn họ muốn thực hiện thay vì viết một tập hợp các lời gọi hàm,

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

ĐỒ ÁN 1

GENERATING CODE OF PROGRAMMING LANGUAGES FOR AUTOMATIC SOFTWARE DEVELOPMENT

GV hướng dẫn: Huỳnh Tuấn Anh

SV thực hiện: 20521449 - Nguyễn Khánh

20521280 - Nguyễn Hoàng Ngọc Hải

Thành phố Hồ Chí Minh, tháng 7 năm 2023

Trang 2

Lời cảm ơn

Lời đầu tiên, nhóm xin gửi lời cảm ơn chân thành nhất đến Thầy Huỳnh Tuấn Anh, giảng viên đã hướng dẫn nhóm trong bộ môn Đồ án 1 Trong quá trình học tập

và thực hiện đồ án, nhóm đã nhận được sự quan tâm giúp đỡ, hướng dẫn tận tình, tâm huyết của Thầy Quá trình thực hiện Đồ án 1 là một quá trình đầy thử thách, đòi hỏi phải dành nhiều thời gian, công sức để nghiên cứu, tìm tòi và xây dựng Vì thế, đây cũng là cơ hội và động lực để nhóm rèn luyện, hoàn thiện bản thân bằng những

kĩ năng tích lũy được trong suốt quá trình thực hiện môn học, từ đấy tiếp thu được nhiều kinh nghiệm quý báu cho con đường phát triển sau này

Với sự phát triển của sức mạnh phần cứng và các thuật toán tối ưu mới, ứng dụng của Artificial Intelligence trong những năm gần đây đang được áp dụng vào rất nhiều lĩnh vực và môi trường khác nhau, và cũng kéo theo đó là nhiều vấn đề mới phức tạp hơn cần được giải quyết Đề tài của nhóm trong việc chuyển đổi ngôn ngữ giao tiếp thông dụng sang ngôn ngữ lập trình cũng đã xuất hiện ở rất nhiều hình dạng, kiểu dáng khác nhau và được nghiên cứu rất chuyên sâu trong nhiều khía cạnh Nhóm rất mong bài báo cáo sẽ giúp Thầy và người đọc có một cái nhìn tổng quan về hướng đi của đề tài, cũng như thể hiện được các kiến thức liên quan đến việc giải quyết bài toán

Do vốn kiến thức lĩnh vực vẫn còn nhiều hạn chế và khả năng tiếp thu còn giới hạn,

đồ án của nhóm không tránh khỏi có những thiếu sót và nhầm lẫn Nhóm rất mong nhận được những góp ý, chỉnh sửa đến từ Thầy để đồ án của nhóm được hoàn thiện hơn

Lời cuối cùng, nhóm xin chân thành cảm ơn Thầy và xin kính chúc Thầy nhiều sức khỏe, hạnh phúc và thành công trên con đường sự nghiệp giảng dạy

Nguyễn Khánh Nguyễn Hoàng Ngọc Hải

Trang 3

Mục lục

2.1 Giải thích bài toán 4

2.2 Bộ dữ liệu huấn luyện (Dataset) 4

2.3 Các nghiên cứu liên quan 5

3 Phương hướng tiếp cận 7 3.1 Tổng quát phương hướng 7

3.2 Thiết kế dữ liệu đầu vào 7

3.3 Biểu diễn câu lệnh SQL và các công việc thành phần 8

3.4 Xếp hạng các cột thành phần 9

3.5 Huấn luyện mô hình và suy luận kết quả 10

3.6 Execution-guided decoding (Giải mã có định hướng thực thi) 11

4 Thử nghiệm & Đánh giá 14 4.1 Thử nghiệm 14

Trang 4

1 Mở đầu

Một lượng cực kỳ lớn thông tin ngày nay được lưu trữ trong các cơ sở dữ liệu quan hệ (SQL databases) Những cơ sở dữ liệu này là nền tảng tối quan trọng của các hệ thống như thông tin y tế, dân cư, thị trường tài chính, thương mại điện tử, dịch vụ trực tuyến, Một trong những điểm thu hút chính của cơ sở dữ liệu quan

hệ là người dùng có thể sử dụng ngôn ngữ khai báo để mô tả truy vấn họ muốn thực hiện thay vì viết một tập hợp các lời gọi hàm, khi đấy chi tiết cách thực hiện câu lệnh truy vấn được tóm tắt trong chi tiết thiết kế của hệ thống cơ sở dữ liệu đó, tránh phải sửa đổi source code của ứng dụng khi có thay đổi trong tổ chức cơ sở dữ liệu

Tuy nhiên, bất chấp sự gia tăng nhanh chóng về mức độ phổ biến của cơ sở dữ liệu quan hệ, khả năng truy xuất thông tin từ các cơ sở dữ liệu này vẫn còn hạn chế Điều này một phần là do người dùng cần hiểu các ngôn ngữ truy vấn có cấu trúc phức tạp

và nhiều thành phần, và việc thành thạo các truy vấn SQL mạnh mẽ cũng được xem

là khó khăn

Khái niệm về việc tương tác với cơ sở dữ liệu thông qua ngôn ngữ tự nhiên của con người đã là một mục tiêu được nhắm tới từ lâu dài, với tên gọi chung là “Natural Language Interface to Databases” (NLIDBs) hoặc “NL-to-SQL” hoặc “Text-to-SQL” [Androutsopoulos et al., 1995] Mục tiêu chính ở đây là giải bài toán Xử lý ngôn ngữ tự nhiên (Natural Language Processing – NLP) nhằm phân tích ngữ nghĩa (semantic parsing): biến đổi một mô tả truy vấn dưới dạng ngôn ngữ tự nhiên trở thành một câu lệnh SQL mà máy tính có thể xử lý được Trong những năm gần đây, với sự phát triển của các mô hình học sâu (deep learning) mới, các nghiên cứu về vấn

đề này có xu hướng nghiêng về tiếp cận bài toán bằng các mô hình có sẵn

Mục tiêu chính của đồ án sẽ nằm ở việc giải thích các khía cạnh của bài toán Text-to-SQL, cùng với đó là áp dụng các phương pháp tận dụng sức mạnh của các mô hình ngôn ngữ (language model) đã được huấn luyện sẵn để giải quyết bài toán Source code1 và các thông số của mô hình huấn luyện được public trên Github, đi cùng với các thử nghiệm và thông số kết quả được thực hiện trên bộ dữ liệu WikiSQL, một bộ

dữ liệu bao gồm hơn 80000 mô tả ngôn ngữ tự nhiên và câu lệnh SQL tương ứng

1 https://github.com/khanhnguyen02311/HydraNet-WikiSQL-modified

Trang 5

2 Tổng quan

2.1 Giải thích bài toán

Thông thường, một câu truy vấn SQL sẽ bao gồm các thành phần chính:

• Aggregation operator (hàm tổng hợp): để truy xuất thông tin tổng quan từ các hàng được chọn bởi câu truy vấn Aggregation operator có thể để trống nếu câu truy vấn không yêu cầu thông tin tổng quan của hàng

• SELECT-clause (cột được chọn): xác định các cột được chọn để truy xuất dữ liệu

• FROM-clause (bảng được chọn): xác định bảng dữ liệu (table) để truy xuất

• WHERE-clause (điều kiện): xác định các điều kiện để lọc dữ liệu

Ngoài ra còn có nhiều loại clause không bắt buộc sử dụng trong một câu truy vấn (GROUP BY, ORDER BY, HAVING, LIMIT, ) Những clause này thường được sử dụng cho các yêu cầu truy vấn nâng cao hơn

Trong phạm vi của bài toán hiện tại, đầu vào của bài toán sẽ là dữ liệu của table cần truy xuất dữ liệu và yêu cầu truy xuất bằng ngôn ngữ tự nhiên, đầu ra sẽ là câu lệnh SQL tương ứng để sử dụng trên table đó để cho ra kết quả đúng như yêu cầu 2.2 Bộ dữ liệu huấn luyện (Dataset)

WikiSQL là một bộ dữ liệu tổng hợp bao gồm 80654 mô tả ngôn ngữ tự nhiên

& câu truy vấn SQL tương ứng trên 24241 table schema Các thành phần được phân chia ngẫu nhiên thành 56355, 8421 và 15878 phần tử tương ứng cho bộ train, dev và test Mỗi phần tử dữ liệu trong dataset bao gồm một table schema, một câu truy vấn SQL và một câu hỏi ngôn ngữ tự nhiên tương ứng với câu lệnh SQL đó Mỗi câu lệnh SQL có một và chỉ một SELECT-clause đi cùng với Aggregation operator tương ứng,

và có từ 0 tới 4 WHERE-clause Hình 1 biểu diễn một phần tử trong bộ dataset với các thành phần đã nêu trên

Các câu truy vấn có độ dài đa dạng được trải dài trên nhiều table schema, từ đó đặt ra thách thức cho model trong việc đáp ứng trên nhiều câu truy vấn và nhiều loại table khác nhau Kích cỡ lớn của bộ dataset hỗ trợ tốt việc áp dụng các kỹ thuật sử dụng mạng neural học sâu cho bài toán và thu hút nhiều sự quan tâm đối với bài toán

Hình 1: Một phần tử ví dụ trong WikiSQL

Trang 6

2.3 Các nghiên cứu liên quan

Trong các nghiên cứu trước đó, nhiều phương pháp đã được đưa ra đối với bài toán này, trong đó có thể phân loại thành ba hướng đi chính:

• Phiên dịch sequence-to-sequence (Seq2seq):

Các mô hình tiêu biểu: Seq2SQL của [Zhong et al., 2017], Coarse-to-Fine của [Dong and Lapata, 2018], SeaD của [Xu et al., 2023]

Các phương pháp đi đầu cho bài toán này thường được dựa theo cấu trúc này Một

mô hình Seq2seq là một mô hình đưa vào một chuỗi các phần tử (từ vựng, chữ cái, .) và xuất ra một chuỗi các phần tử khác Mô hình Seq2seq bao gồm 2 thành phần chính: encoder (bộ mã hóa) và decoder (bộ phiên dịch) Encoder có vai trò trích xuất các thông tin chính trong chuỗi dữ liệu đầu vào và chuyển đổi nó dưới dạng các vector

ẩn và gửi tới decoder, từ đó decoder tiếp thu và trả về chuỗi dữ liệu đầu ra tương ứng Khó khăn:

Các phương pháp sử dụng Seq2seq thường không đạt hiệu quả cao do thứ tự của các WHERE-clause không có ảnh hưởng trong câu lệnh SQL, nhưng có ảnh hưởng đối với các Seq2seq model, và việc huấn luyện để sắp xếp thứ tự trong model thường khá khó khăn Các nghiên cứu sử dụng Seq2seq cũng có một vài phương pháp phụ để giảm thiểu độ phức tạp của vấn đề trên như áp dụng Reinforcement Learning (RL) nhưng độ cải thiện không cao Nhưng các mô hình mới ra mắt gần đây như SeaD của [Xu et al., 2023] với việc áp dụng model hiệu quả và áp dụng các phương pháp giảm nhiễu đã cải thiện đáng kể độ chính xác của kết quả dự đoán

• Chia task nhỏ cho từng phần trong câu lệnh SQL:

Các mô hình tiêu biểu: TypeSQL của [Yu et al., 2018], HydraNet của [Lyu et al., 2020] Hướng giải quyết này tách việc dự đoán toàn bộ câu truy vấn trở thành dự đoán từng thành phần trong câu truy vấn như SELECT-column, SELECT-aggregation, WHERE-column, WHERE-value, , mỗi thành phần sẽ được xác định bởi một model con, giúp giảm tỷ lệ câu lệnh kết quả bị lỗi cú pháp

Khó khăn:

Việc tiếp cận này giúp tránh được vấn đề ảnh hưởng thứ tự của các Seq2seq model, nhưng nó lại làm yếu đi mối quan hệ giữa các thành phần như mối liên kết giữa SELECT-column và WHERE-column, giữa các WHERE-clause với nhau, Cùng với đó, các bài báo cũ về hướng này thường sử dụng các bộ không gian vector từ vựng (word embedding/word representation) có sẵn đã được huấn luyện trước (pre-train) như GloVe, vốn vẫn mắc những vấn đề của một model Word2vec như thiếu vector cho các từ mới gặp lần đầu (Out-of-Vocabulary) và khó học các từ hiếm gặp

• Áp dụng và tối ưu các pre-trained language model:

Các mô hình tiêu biểu: SQLova của [Hwang et al., 2019], IE-SQL của [Ma et al., 2020], SeaD của [Xu et al., 2023]

Trang 7

Các nghiên cứu gần đây nhất thường xuyên sử dụng các language model huấn luyện sẵn như BERT [Devlin et al., 2019] và BART [Lewis et al., 2019], những model đạt kết quả rất tốt với rất nhiều bài toán NLP khác

Thông thường, việc giải quyết công việc sẽ được xây dựng dựa trên các language model có sẵn này, sau đó được tinh chỉnh (fine-tune) với dữ liệu liên quan tới các bài toán / công việc đấy Thế nhưng việc thiết kế cấu trúc của công việc để có thể ăn khớp với các language model và tối đa hóa sức mạnh của model không phải là một vấn đề đơn giản

Các nghiên cứu của [Hwang et al., 2019] và [Ma et al., 2020] đều thiết kế dữ liệu đầu vào cho lớp encoder bằng cách nối tất cả các cột trong table và câu hỏi NL lại với nhau; điều này giúp mô hình học được mối liên kết giữa SELECT-column và WHERE-column, cũng như mối liên kết giữa các WHERE-column trong từng điều kiện WHERE

Khó khăn:

Phương pháp này yêu cầu phải giải mã thành các column vector riêng cho từng cột thành phần, và các nghiên cứu trên phải áp dụng pooling (giảm chiều) hoặc sử dụng các layer LSTM để tạo các vector đấy, làm tăng độ phức tạp của mô hình Hướng thiết

kế của decoder ở đây thường giống phương pháp chia task nhỏ cho từng phần trong câu lệnh SQL có nói tới bên trên Như ở thiết kể tổng quan của [Hwang et al., 2019] trong Hình 2, từng công việc thành phần trong bài toán cần phải được đưa qua một model nhỏ hơn để phân tích và đưa ra dự đoán, từ đó tăng khối lượng công việc và kích cỡ mô hình

Hình 2: Cấu trúc tổng quan của mô hình SQLova [Hwang et al., 2019]

Trang 8

3 Phương hướng tiếp cận

3.1 Tổng quát phương hướng

Nhóm áp dụng cấu trúc mô hình HydraNet được đề xuất bởi [Lyu et al., 2020], một mô hình có kết quả rất tốt trên bộ dữ liệu WikiSQL với các điểm mạnh của việc tối ưu hợp lý và tận dụng sức mạnh của các language model hiện đại

Đối với phương pháp này, mô hình đi theo hướng chia task nhỏ cho từng thành phần, nhưng không tách thành nhiều model con cho từng thành phần riêng biệt, mà tối ưu hóa trên một model lớn như BERT/RoBERTa Các model kể trên sử dụng contextualized word representations2, giúp loại bỏ các bất cập cố hữu của Word2vec Đối với đầu vào của encoder, nhóm nối câu hỏi NL và một column cần thiết trong table lại và đưa vào BERT/RoBERTa model Sau đấy nhóm tách ra làm nhiều task ở bước decoding: xếp hạng SELECT & WHERE column, trích xuất điều kiện, và trích xuất khoảng giá trị của điều kiện Ở đây decoder không trả về câu lệnh SQL nên nhóm

áp dụng thêm các luật đơn giản để sắp xếp vị trí của các thành phần và tạo câu lệnh hoàn chỉnh

Phương pháp này có hai điểm lợi chính:

• Đầu vào của bài toán (một câu hỏi và một bộ column) rất khớp với thiết kế của BERT/RoBERTa trong huấn luyện bài toán Question Answer Pair, từ đấy sức mạnh của model trong bài toán này được sử dụng một cách tối ưu

• Bởi vì phương pháp chỉ mã hóa một column, vector [CLS] trong đầu ra của BERT/RoBERTa sẽ bao gồm tất cả thông tin của câu hỏi và column tương ứng,

nó cũng chính là “column vector” mà decoder cần, vì vậy ta không cần áp dụng thêm giảm chiều hay các layer phức tạp khác, từ đấy đơn giản hóa được model cho bài toán

Trong các phần sau, nhóm sẽ biểu diễn bài toán Text-to-SQL như một bài toán

đa công việc có thể giải quyết bằng việc áp dụng các pre-trained Transformer model Nhóm sẽ mô tả thiết kế dữ liệu đầu vào cho mô hình, phương pháp biến đổi các câu lệnh SQL thành thiết kế này, và các công việc huấn luyện để trích xuất được câu lệnh SQL

3.2 Thiết kế dữ liệu đầu vào

Với mỗi câu hỏi q và các cột của table tương ứng c1, c2, , ck, nhóm tạo một cặp câu đầu vào cho mỗi cột như sau: (Concat(ϕci, tci, ci), q), với Concat(·) là phép ghép các chuỗi: ϕc i là kiểu dữ liệu của cột ci ("string", "real", ), tc là tên của table đang xét và với chính cột ci đó thành một chuỗi hoàn chỉnh

Các cặp chuỗi dữ liệu sau đó được tokenize (phân tách thành chuỗi các token mà

mô hình hiểu được) và được encode để tạo thành đầu vào cho các Transformer model

Ví dụ, với mô hình BERT/RoBERTa là mô hình chính, chuỗi token đầu vào sẽ là:

2 https://towardsdatascience.com/deep-contextualized-word-representations-a-new-approach-to-word-embeddings-66e0f520654d

Trang 9

[CLS], x1, x2, , xm, [SEP ], y1, y2, , yn, [SEP ] với x1, x2, , xm là chuỗi token của các cặp chuỗi dữ liệu lúc trước vừa ghép,

y1, y2, , yn là chuỗi token của câu hỏi q, [CLS] và [SEP ] là các token đặc biệt của BERT model lần lượt để tổng hợp nội dung đầu vào và làm mốc phân chia các phần 3.3 Biểu diễn câu lệnh SQL và các công việc thành phần Trong bài toán này, chúng ta xem như một câu lệnh SQL không có cấu trúc lồng (nested structure), và có dạng cơ bản sau:

” sql ”: {

” select ” : [ ( agg1 , col1 ) , ( agg2 , col2 ) , ]

” from ” : [ table1 , table2 , ]

” where ” : [ ( wherecol1 , op1 , value1 ) , ( wherecol2 , op2 , value2 ) , ] }

Chúng ta chia các thành phần trong câu lệnh SQL trên thành hai loại:

1 Các thành phần có liên hệ với column cụ thể: aggregation operator, FROM-table, WHERE-value (khoảng giá trị của điều kiện),

2 Các thành phần toàn cục không có liên hệ với column cụ thể: số lượng phần tử SELECT (SELECT_num), số lượng phần tử điều kiện WHERE (WHERE_num)

Đối với các thành phần loại 1, với mỗi cặp column-question (ci, q), kết quả dự đoán của các thành phần có thể được xét như một sentence pair classification (bài toán phân lớp từ cặp chuỗi) hoặc question answering task (bài toán hỏi đáp) Cụ thể hơn, nhóm biểu diễn chuỗi output embedding của mô hình như sau:

h[CLS], hci

1, , hci

m, h[SEP ], hq1, , hqn, h[SEP ] , với hi là embedding vector của từng input token đưa vào mô hình

Ở đây việc phân lớp cho từng thành phần để dự đoán có thể xét đơn giản bằng một Softmax function cho từng thành phần, với số lượng giá trị hợp lệ của từng thành phần (số lượng phương án hợp lệ) được cung cấp sẵn Việc tính giá trị Softmax có sử dụng tích vô hướng với token [CLS], là token tổng hợp tất cả thông tin của output sau khi dự đoán Cụ thể:

1 Với mỗi aggregation operator aj, xét tỉ lệ lựa chọn:

P (aj|ci, q) = sof tmax(Wagg[j, :] · h[CLS]) Trong quá trình huấn luyện, mô hình mask out (vô hiệu) các cột không liên quan tới SELECT-clause

Trang 10

2 Với mỗi condition operator oj (điều kiện WHERE), xét tỉ lệ lựa chọn:

P (oj|ci, q) = sof tmax(Wop[j, :] · h[CLS]) Trong quá trình huấn luyện, mô hình mask out các cột không liên quan tới WHERE-clause

3 Với mỗi khoảng giá trị đầu và cuối của điều kiện, xét tỉ lệ lựa chọn:

P (yj = start|ci, q) = sof tmax(Wstart· hqj)

P (yj = end|ci, q) = sof tmax(Wend· hqj) Trong quá trình huấn luyện, giá trị đầu cuối của các cột không liên quan tới WHERE-clause sẽ được gán thành 0

Đối với các thành phần loại 2, ta xét tỉ lệ chọn thành phần z dưới dạng:

P (z|q) = P (z|ci, q)P (ci|q)

Ta phát biểu P (z|q) dưới dạng sentence pair classification, và P (ci|q) là độ tương đồng giữa column ci và câu hỏi q Cụ thể:

1 Đối với SELECT_num ns, xét tỉ lệ P (ns|q) =P

c iP (ns|ci, q)P (ci|q)

2 Đối với WHERE_num nw, xét tỉ lệ P (nw|q) =P

c iP (nw|ci, q)P (ci|q) Phương thức tính toán độ tương đồng của các column P (ci|q) sẽ được trình bày ở phần tiếp theo

3.4 Xếp hạng các cột thành phần

Ở đây nhóm thiết kế bài toán Text-to-SQL như một bài toán xếp hạng các lựa chọn thành phần trong mỗi column, dựa vào điểm xếp hạng của từng thành phần để chọn

ra câu lệnh SQL hoàn chỉnh

Với mỗi câu hỏi q, nhóm xét Sq là một bộ các cột nằm trong SELECT-clause, và

Wq là một bộ các cột nằm trong WHERE-clause, ta có Rq = Sq∪ Wq là một bộ các cột nằm trong câu lệnh SQL (các cột có liên quan trong câu lệnh) Cuối cùng, nhóm xét bộ các column thành phần Cq = {c1, c2, , ck} Hiển nhiên ta có: Rq⊆ Cq

Đối với bài toán, ta có 3 công việc xếp hạng:

1 SELECT-rank: Xếp hạng các column ci ∈ Cq dựa vào việc SELECT-clause của câu hỏi q có chứa ci hay không, hay nói cách khác ci ∈ Sq

2 WHERE-rank: Xếp hạng các column ci ∈ Cq dựa vào việc WHERE-clause của câu hỏi q có chứa ci hay không, hay nói cách khác ci ∈ Wq

3 Relevance-rank (xếp hạng độ liên quan): Xếp hạng các column ci ∈ Cq dựa vào việc câu lệnh SQL của câu hỏi q có chứa ci hay không, hay nói cách khác ci ∈ Rq

Ngày đăng: 04/09/2023, 20:28

HÌNH ẢNH LIÊN QUAN

Hình 1: Một phần tử ví dụ trong WikiSQL - Đồ án generating code of programming languages for automatic software development
Hình 1 Một phần tử ví dụ trong WikiSQL (Trang 5)
Hình 2: Cấu trúc tổng quan của mô hình SQLova [Hwang et al., 2019] - Đồ án generating code of programming languages for automatic software development
Hình 2 Cấu trúc tổng quan của mô hình SQLova [Hwang et al., 2019] (Trang 7)
Bảng 2 biểu diễn độ chính xác (accuracy) của mô hình của nhóm trên bộ dữ liệu WikiSQL so với các phương pháp khác, sử dụng phương pháp đánh giá đi kèm của WikiSQL đối với logical form (tỉ lệ khớp hoàn toàn giữa câu lệnh nhãn và câu lệnh - Đồ án generating code of programming languages for automatic software development
Bảng 2 biểu diễn độ chính xác (accuracy) của mô hình của nhóm trên bộ dữ liệu WikiSQL so với các phương pháp khác, sử dụng phương pháp đánh giá đi kèm của WikiSQL đối với logical form (tỉ lệ khớp hoàn toàn giữa câu lệnh nhãn và câu lệnh (Trang 15)
Bảng 1: Các thông số áp dụng cho HydraNet - Đồ án generating code of programming languages for automatic software development
Bảng 1 Các thông số áp dụng cho HydraNet (Trang 15)
Bảng 3: Accuracy của các mô hình tốt gần đây với từng thành phần trên tập test - Đồ án generating code of programming languages for automatic software development
Bảng 3 Accuracy của các mô hình tốt gần đây với từng thành phần trên tập test (Trang 16)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w