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

Luận văn thạc sĩ Công nghệ thông tin: Tìm kiếm thông minh trên cơ sở tri thức về kỹ thuật lập trình máy tính cho ngành công nghệ thông tin

106 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Tìm Kiếm Thông Minh Trên Cơ Sở Tri Thức Về Kỹ Thuật Lập Trình Máy Tính Cho Ngành Công Nghệ Thông Tin
Tác giả Võ Hoàng Thái
Người hướng dẫn PGS.TS. Đỗ Văn Nhơn
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Luận văn thạc sĩ
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 106
Dung lượng 42,66 MB

Nội dung

DANH MUC HỈNH ẢNHHình 1 Mô tả mối quan hệ về khái niệm mảng một chiễu...Hình 2 Cau trúc truy van SQL đơn giản Hình 3 Quy trình xây dung ontology về kỹ thuật lập trình Hinh 4 Mô hình lưu

Trang 1

ĐẠI HỌC QUOC GIA TP.HÒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

CHO NGANH CONG NGHE THONG TIN

LUAN VAN THAC SY

NGANH CONG NGHE THONG TIN

Mã số: 8480201

TP HO CHÍ MINH NAM, 2021

Trang 2

ĐẠI HỌC QUOC GIA TP.HÒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

CHO NGANH CONG NGHE THONG TIN

LUAN VAN THAC SY

NGANH CONG NGHE THONG TIN

Mã số: 8480201

NGƯỜI HƯỚNG DAN:

PGS.TS Đỗ Văn Nhơn

TP HÒ CHÍ MINH NĂM, 2021

Trang 3

LỜI CẢM ƠNLời đầu tiên xin gửi lời cảm ơn chân thành đến PGS TS Đỗ Văn Nhơn đã hỗtrợ tận tình và hướng dẫn, giúp đỡ trong thời gian thực hiện luận văn.

Xin gửi lời cảm ơn đến ba mẹ, động viên tôi trên bước đường học tập cũng như

trong cuộc sống Xin gửi lời chân thành biết ơn thật nhiều dưới sự tận tình giảng day

và sự giúp đỡ của tat cả thầy cô tại trường Đại học Công Nghệ Thông Tin Tat cả cáckiến thức thay cô đã truyền đạt là hành trang vô giá dé tôi học tập, làm việc và nghiên

cứu, cũng như trong quá trình hoàn thiện nhân cách của mình.

Tp Hồ Chí Minh, ngày 30 tháng 06 năm 2021

Học viên

Võ Hoàng Thái

Trang 4

LỜI NÓI ĐẦU

Đối với bắt kỳ sinh viên học công nghệ thông tin thì tên hai môn học: nhập mônlập trình và cầu trúc dit liệu không còn xa lạ gì nữa? nhưng kiến thức từ hai môn họcnày làm nên tảng cho các môn học khác Muốn tìm kiếm kiến thức nào về hai môn họcnày thì chưa có? Về tổ chức giảng dạy cũng chưa có thống nhất, nhưng đều xoayquanh những khái niệm cơ bản về máy tính, lệnh, cấu trúc kiều khiển, thuật toán, sắp

xếp Nếu một sinh viên muốn tìm kiếm bất kỳ một khái niệm hay thông tin về kiến

thức thuộc hai môn trên thì chưa có, phải xem lại tài liệu hay sách về phần kiến thước

đó Chưa hỗ trợ kịp thời và nhanh nhất có thê cho sinh viên Xuất phát từ những yêucầu nêu trên, cần xây dựng một hệ thống tìm kiếm thông minh trên cơ sở tri thức vềnhập môn lập trình, cấu trúc đữ liệu và giải thuật Gọi tắt là kỹ thuật lập trình cho sinh

viên công nghệ thông tin.

Trang 5

LOI NÓI ĐÀU

CHUONG I: GIỚI THIỆU DE TÀI

2.1.2 Tri Thức về cấu trúc dự liệu và gi:

2.2 Phân tích yêu cau

CHUONG 3: THIET KE CƠ SỞ TRI THỨC VÀ XỬ LÝ CÂU TRUY VÁN 213.1 Thuyết kế cơ sơ tri thức về kỹ thuât lập trình

3.1.1 Mô hình cơ sở kỹ thuật lập trình(semantic programming techniques base — SPTB)

3.1.1.1 Mô hình cơ sở dit liệu vê kỹ thuât lập trình (DB)

3.1.1.2 Mô hình cơ sở tri thức của kỹ thuật lập trinh(PT_ONTO)

3.2 Thuyết kế Module suy luận câu truy vai

3.2.1 Xử lý câu truy vấn

3.2.2 Cú pháp từng loại câu truy vãi

CHƯƠNG 4: CÀI ĐẶT - THỬ NGHIỆM

4.1 Công nghệ áp dun;

4.2 Giao diện ứng dụng

4.2.1 Giao diện truy vân kiên thức

4.2.2 Giao

4.2.3 Giao diện truy vấn kiến thức về so sánh

truy vấn kiến thức về KN/DN và các quan hệ đi kèm

4.3 Dữ liệu truy vấn

4.4.1 Kết quả tìm theo khái niệm/ định nghĩ:

4.4.2 Kết quả tìm truy thức theo khái niệm và các tác vu

4.4.3 Kết quả tìm truy thức so sánh

4.4.4 Kết quả tìm kiếm truy thức liệt kê

Trang 6

CHƯƠNG 5: KET LUẬN

5.1 Kết quả đạt được

5.2 Hạn chế và Hướng phát triểnTÀI LIỆU THAM KHẢO

Trang 7

DANH MUC HỈNH ẢNHHình 1 Mô tả mối quan hệ về khái niệm mảng một chiễu

Hình 2 Cau trúc truy van SQL đơn giản

Hình 3 Quy trình xây dung ontology về kỹ thuật lập trình

Hinh 4 Mô hình lưu trữ tổng quát về kỹ thuật lập trình

Hình 5 Mô hình ontology về kỹ thuật lập trình

Hình 6 Quan hệ phân cấp trên lớp

Hình 7 Mô hình xây dựng đồ thị keyphrase biéu diễn về kỹ thuật lập trình

Hình 8 Mô hình cơ sơ dữ liệu (DB)

Hình 9 Mô hình cơ sở tri thức PT_ONTO lưu trên SQL server.

Hình 10 Mô hình tông quát xử lý tìm kiếm trên cơ sở tri thức về kỹ thuật lập trình 29Hình 11 Đồ thì biểu diễn câu truy vấn

Hình 12 Bảng kết quả phan trăm trả về của từng dang câu hỏi

Trang 8

DANH MỤC KÝ HIỆU VÀ CHỮ VIET TAT

Ký hiệu Diễn giải Tiếng Việt

KN/DN Khái niệm/ Dinh Nghĩa Khái niệm/ Định Nghĩa

QH Quan Hệ Quan Hệ

SS So Sanh So Sanh

DB Database (Co sơ dữ liệu

Trang 9

CHUONG 1: GIỚI THIEU DE TÀI

1.1 Tổng quan về đề tài

Hiện với sự phát triển không ngừng của công nghệ thông tin, bên cạnh đó côngnghệ web cũng có những thay đổi dé phù hợp và đáp ứng nhu cau hiện tại Công nghệ'Web đầu tiên (1.0) chỉ là những trang HTML thủ công, sau đo một bước mới cho máytính thực hiện các trang HTML động Hiện nay thế hệ web thứ 3 (3.0)- Web ngữnghia( Sematic Web) mạng lưới các thông tin được liên kết sao cho chúng có thé được

xử lý dễ dàng bởi máy tính Thông tin được tìm kiếm nhanh chóng và chính xác hơn,

dữ liệu được liên kết động

Bênh cạnh đó, kiến thức về môn học chưa được tổ chức thống nhất, mỗi nơi có mộtcách tô chức giảng dạy khác nhau, đặc biệt đối với sinh viên đại học ngành công nghệthông tin thì môn học nhập trình và cấu trúc dữ liệu và giải thuật gọi chung là kỹ thuậtlập trình thì không một sinh viên nào biết, nhưng cách tổ chức của trường, mỗi giảngviên lại khác nhau Việc tô chức dữ liệu chưa được tập trung và thống nhất

Ngoài ra nội dung về khái niệm/ định nghĩa có rất nhiều trên internet, bắc buộc sinh

viên phải lọc và phân biệt cái nào đúng và chính xác, nhưng không phải sinh viên nào

cũng biết và tìm ra, tốn nhiều thời gian cho việc tìm kiếm, dễ dẫn đến việc chán nản.Đặc biệt với một số sinh viên mắt kiến thức cơ bản, phân biệt cái nào đúng cái nào sai,

có đúng là nội dung mình cần tìm

Cộng thêm với sự đa dạng về từ ngữ trong tiếng việt, với một nội dung kiến thức cần

tìm nhưng với mỗi người lại có một cách hỏi, văn phong khác nhau, đôi khi với cáchhỏi khác nhau dẫn đến kết quả tìm kiếm khác nhau gây ảnh khó khăn trong việc học

tập, cũng cố kiến thức, tốn nhiều thời gian cho việc tìm kiếm Ví dụ với cụm từ “Cấutrúc dữ liệu và giải thuật” có định nghĩa là kết hợp và áp dụng một hoặc nhiều cầu

trúc dữ liệu nào đó vào một hoặc nhiều thuật toán nào đó để có được đầu ra mong

muốn một cách tối ưu và tốt nhất khi dữ liệu có số lượng cực lớn Ta lại có tiếp haiđịnh nghĩa Thứ nhất “Cấu trúc dữ I : cách lập trình đề lưu trữ dữ liệu đề dữ liệu

có thể được sử dụng một cách hiệu quả Thứ hai “Thuật toán”: thủ tục từng bước, xácđịnh một tập hợp các lệnh được thực hiện theo một thứ tự nhất định để có được đầu ra

mong muốn

Đặc biệt, hiện tại để hỗ trợ kịp thời và nhanh cho sinh viên, sinh viên mắt kiến

Trang 10

thức căn bản tìm kiếm lại một kiến thức về kỹ thuật lập trình một các có hệ thống Cácứng dụng hiện tại hỗ trợ tra cứu thông tin theo chương mục: Liệt kê các chương mụctheo cầu trúc cây như trong các giáo trình, hay tra cứu theo chỉ mục: Liệt kê các từ

khóa theo thứ tự alphabet hoặc tra cứu theo từ khóa (terms) Hiện tại có nhiều website

để sinh viên có thể tìm kiếm, tra cứa thông tin về nhập môn lập trình, cấu trúc dit liệu

và dit liệu nhưng chủ yếu là tra cứu theo chương mục, nội dung được liệt kê theochương mục cây như trong các giáo trình, từ đó có thể xem tóm tắt nội dung củachương mục như nội dung chính, các ví dụ đơn giản, những từ khóa liên quan Bằngcách nhập một hoặc một số từ khóa vào trong ô tìm kiếm Nhược điểm là cùng một nội

dung nhưng với từ khoá khác nhau sẽ được liệt kê ra, số lượng chỉ mục rất nhiều, gâykhó khăn cho người dùng, có hai cách tra cứu thường dùng:

> Cách 1: Khi gõ một từ khóa cần tìm vào hệ thống sẽ gợi ý danh sách các từ

khóa có liên quan đến từ khóa mới gõ vào, ví dụ: trên web site có thanh tìmkiếm thông tin, người dùng gõ vào ô tìm kiếm từ khóa “mảng”, bên dưới ô tìmkiếm sẽ hiển thị danh sách các từ khoá liên quan nếu hệ thống có thông tin như:

“mang 1 chiều”, "mảng 2 chiều”, "mảng một chiều là”, "mảng là gì” Người dùng chọn vào một trong những từ khoá được gợi ý dé tìm kiếm thôngtin Nhược điểm là chỉ cho phép giới hạn số lượng từ nhập vào, danh sách các

từ được hiển thị theo mức độ trùng khớp với từ (các từ) theo từ , không baogồm hết tất cả trường hợp

VÀ đối tượng trong javascript chu

Trang 11

được bao gồm các nội dung các từ khoá khác.

Chưa hỗ trợ người dùng việc tìm kiếm dựa trên ngữ nghĩa việc tìm kiếm, chưa đáp ứng

một số câu hỏi phức tập và nội dung trả về chưa phù hợp với mục đích tìm kiếm ban

đầu Tất cả các tìm kiếm trên chủ yếu dựa trên các keyword đã được cấu hình dưới cơ

sở dữ liệu, chỉ hỗ trợ tìm theo các keyword có sẵn, chưa hỗ trợ tìm kiếm theo ngữnghĩa, cùng một kiến thức nhưng với câu tìm kiếm khác ngữ nghĩa là hệ thống sẽkhông tìm kiếm được thông tin Bên cạnh đó, tất cả các tri thức điều được xem là kháiniệm hay định nghĩa, nhưng chưa có hệ thống nào phân biệt là tìm kiếm theo kháiniệm, định nghĩa, các quan hệ, tác vụ, bài toán liên quan đến kiến thức tìm kiếm

Tir những lý do trên để phục vụ vào nhu cầu học tập về kỹ thuật lập trình cho sinhviên xoay quanh kiến thức kỹ thuật lập trình một cách nhanh nhát, thống nhất về cách

tổ chức Luận văn đề xuất dé tài xây dựng hệ thống tìm kiếm thông minh trên miền trithức về nhập môn lập trình, cầu dữ liệu và thuật toán, với mục tiêu xây dựng ứng dụnggiúp sinh viên có thê truy cập dễ dàng, nhanh chóng, kiến thức được mô tả chỉ tiết,trực quan, dé hiéu, dễ tiếp thu, nhằm hỗ trợ cho giáo viên, sinh viên trong công tác dạy

và học Bên cạnh đó, chưa có yếu tô gọi là thông minh dé giải quyết nhu cầu tìm kiếmcủa sinh viên, thông minh ở đây là dựa vào ngữ nghĩa câu truy vấn dé trả về kết quả.Tìm kiếm theo ngữ là một cách tốt hơn dé cung cấp cho người dùng thông tin họ cần,đảm bảo kết quả thu được có liên quan đến thông tin cần tìm hơn là dựa trên khả năng

hiểu được nghĩa cảu từ (cụm từ) đang được tìm kiếm Yếu tố suy luận như con người

vào dé giải quyết bài toán, chẳng hạn khi hình vào một khuân mặt con người thì ta cóthé suy luận ra tâm trạng người đó đang vui hay buồn, v.v Luận án sẽ áp dụng tinhthông minh là tìm kiếm theo ngữ nghĩa tìm kiếm trong việc tìm kiếm kiến thức lậptrình dé hỗ trợ sinh viên, tìm kiếm thông minh ở đây không đôi hỏi quá cao về áp dụngtrí tuệ nhân tạo (AI), nhưng có thê dựa trên ngữ nghĩa câu hỏi để suy luận ra câu trả lời

phù hợp Chăng hạn cho biết các thuật toán tìm kiếm trên day? Với ứng dụng hiện tại

thì sẽ không hỗ trợ được câu trả lời chính xác cho câu hỏi trên, vì không có yếu tố suyluận hay xử lý câu hỏi để tìm theo ngữ nghĩa mà chỉ chủ yếu theo từ khóa hay chuỗi

ký tự.

1.2 Mục tiêu, phạm vi đề tài

Trang 12

1.2.1 Mục Tiêu

Mong muốn mang lại sự hỗ trợ kịp thời và nhanh chống cho sinh viên trongviệc học tập và cũng có kiến thức, tìm hiểu về kiến thức kỹ thuật lập trình Giúp đỡcho những sinh viên bị mất kiến thức cơ bản củng cố lại kiến thức bị mat dễ đàng vàhiệu quả, minh hoạt các hoạt động cấu trúc điều khiển và các thuật giải để sinh viên

nắm vũng Xuất phát từ những bắt cập trên luận văn tập trung vào:

> Thu thập tri thức về nhập môn lập trình, cấu trúc dữ liệu và giải thuật, sau đóphân loại tri thức, xác định các quan hệ, tác vụ, bài tập liên quan đến kiến thức

> Xây dựng mô hình cơ sở tri thức lưu trữ phù hợp về kiến thức kỹ thuật lập trìnhđáp ứng như cầu tìm kiếm của sinh viên Dựa trên môn hình cơ sở tài liệu cónghĩa [1], đưa ra mô hình tổ chức và quản lý về kỹ thuật lập trình

Thu thập câu hỏi liên quan đến kiến thức về hai môn nhập môn lập trình, cấu

Vv

trúc đữ liệu và giải thuật gọi chung là kỹ thuật lập trình Danh mục câu hỏi hon

250 câu hỏi được thu thập từ chuyên gia và lấy khảo xát từ sinh viên đang hoctại trường, sau đó chọn lọc và kiểm lại từ chuyên gia

> Tiến hành phân loại các câu hỏi thành các dạng khác nhau để xây dựng cácthuật giải phù hợp Xây dựng cấu trúc và ngôn ngữ quy định riêng cho từngloại Luận văn không tập trung vào xử lý ngôn ngữ tự nhiên, mà đưa ra quy ướcngôn ngữ truy vấn phủ hợp từng loại câu hỏi

> Thiết kế các thuật toán phù hợp với các loại câu hỏi được liệt kê phía trên Đốivới mỗi dang câu hỏi, cần xác định giá trị đầu vào (input) cửa câu hỏi là gi, giátrị đầu ra (output) là gì phù hợp với từng loại

> Thiết kế giao diện truy vấn thông tin đơn giản, dễ hiểu với từng cách hỏi, giaodiện phù hợp với kết quả trả về Với cách mỗi cách hỏi thì giao diện nhập đầu

vào khác nhau.

Hiện tại với “Nghiên cứu các giải pháp thiết kế và xây dựng phân hệ quản lý tài

nguyên học tập cho hệ thống E-Learning”[I] đã xây dựng được ontology cụ thé vềlĩnh vực tin học, đồ thị keyphrase về câu truy van mức độ tổng quát, chưa biểu diễn cụthể từng môn học, quan hệ hay tính chất giữa các khái niệm Luận văn tổ chức lưu trữ

cơ sở dữ liệu, cơ sở tri thức về nhập môn lập trình, cấu trúc dữ liệu và giải thuật lên

trên máy tính, xác định các khái niệm/ định nghĩa liên quan đến hai môn học, xác

Trang 13

định và phân loại tri thức phù hợp với từng loại khái niệm Khi ta nói đến mảng một

chiều, thì đầu tiên ta có khái niệm về mảng một chiều, tiếp theo là khái niệm khởi tạo,

khai báo, nhập, xuất mảng một chiều Tất cả các khái niệm điều là tri thức nhưng có

mối liên hệ với nhau, ta thay rằng các khái niệm về khởi tạo, khai báo, nhập xuất mảnh

một chiều đều là tác vụ liên quan đến mảng một chiều

Khái niệm (TH thức)

Hình 1 mô tả mỗi quan hệ vẻ khái niệm mảng một chiều.

- Phân loại câu hỏi thành các dạng thường gặp, dựa trên tập câu hỏi thu thập,tiến hành xác định và phân loại câu hỏi thành các dạng khác nhau, mỗi dạng đưa rangôn ngữ quy ước riêng cho ứng dụng, từng đạng câu hỏi sẽ quy ước cách nhập vào,thuật giải và đầu ra phù hợp với từng dạng Không tập trung vào vấn đề giải quyếtngôn ngữ tự nhiên Xét ví dụ cho câu hỏi về mảng một chiều, có các cách hỏi khác

nhau như: Mang một chiều là gi?, Mang một chiéu?, Thế nào là mảng một chiều?,

Mang | chiều? Khái niệm mảng một chiều?, Định nghĩa mảng một chiều? Như thé nào

là mảng một chiều? Tất cả điều cùng một mục đích để trả lời khái niệm “mảng mộtchiều” Bên cạch đó, một cách hỏi khác vừa muốn biết khái niệm/ định nghĩa về một

kiến thức cụ thể và kèm theo một tác vụ hay quan hệ kèm theo, ta xem xét câu hỏi sau:

“Thế nào là mảng một chiều và cách khai báo?” Với cách hỏi này thì vừa muốn

biết KN/DN, mà còn thêm kiến thức về cách khai báo về mảng một chiều Hiện tạiluận văn tập trung và giải quyết bốn dang câu hỏi thường gặp dé giúp sinh viện tìm vàhọc tập hay ôn tập lại kiến thức về kỹ thuật lập trình một cách hiểu quả nhất

+ Dạng 1: câu hỏi tìm theo khái niệm/ định nghĩa Đối với dạng câu hỏi này

giải quyết nhanh cho sinh viên tìm nhanh về kiến thức mong muốn, thay vì cách tìmthử công theo chương, hay cây mục, chăng hạng với câu hỏi “Cây nhị phân là gì?sinh viên cân phân biệt câu hỏi nó năm ở môn học nào? Chương nào trong môn học.

Trang 14

+ Dạng 2: câu hỏi về khái niệm/ định nghĩa và các quan hệ đi kèm Dạng 2

là dạng mở rộng của dạng 1, không dừng ở việc trả lời cho kiến thức cần tìm và cònkèm theo bat kỳ quan hệ hay tac vụ liên quan đến tri thức cần tìm Chang hạn câu hỏisau: “Khái niệm mảng một chiều và cách khai báo?” Với câu hỏi này thì gồm hai

câu hỏi nhỏ ở dạng 1, câu thứ nhất là “Khái niệm mảng một chiều?”, câu thứ hai là

“Khái niệm khai báo mảng một chiều?” Dạng câu hỏi này bao hàm khái niệm về

một kiến thức nào đó về kỹ thuật lập trình và các quan hệ tác vụ hay quan hệ đi kèm

+ Dạng 3: câu hỏi so sánh Không dừng lại ở việc tìm kiếm các tri thức về kỹ

thuật lập trình, mà còn so sánh các đặc tính giữa hai tri thức, những điểm giống nhau,

khác nhau, ưu điểm, nhược điểm Giúp sinh viên nắm một cách tổng quát nhất về trithức Đối với dạng 2 thì chỉ tìm kiếm theo 1 khái niệm, rồi xem xét các quan hệt haytác vụ liên quan, còn đó với dạng 3 thì xét hai khai niệm hoàn toàn khác khau Xét ví

dụ về câu hỏi “So sánh ngăn xếp và hàng đợi” Với câu hỏi trên cần cung cấp thông

tin về hai khái niệm là ngăn xếp và hàng đợi, ngoài ra còn phải thể hiện sự so sánh

giữa hai khái niệm, thông tin so sánh là bảng liệt kê các thông tin giữa hai khái niệm,

một bên là liệt kê tri thức thứ nhất, một bên liệt kê tri thức còn lại

+ Dạng 4: câu hỏi liệt kê Dạng câu 4 không chỉ trả về tri thức cần tìm kiếm,

mà còn thể hiện hết các khái niệm liên quan về nội dung tìm kiếm, nói đơn giản làvòng lặp các câu trả lời dạng 1 Xem xét câu hỏi sau “Liệt kê các thành phần máytính?” Với câu hỏi này thì dạng 1 sẽ không trả lời đầy đủ hết các thông tin về nộidung câu hỏi, chỉ cho biết được khái niệm về máy tính, còn dang 2 và 3 thì không phùhợp với câu trên, bắt buộc phải xây dựng thuật giải tìm ra hết các phần về máy tính,

sao đó quay về dạng câu 1 đề thé hiện lên cho sinh viên nắm hết

- Quy ước ngôn ngữ truy vấn riêng phù hợp với từng dạng câu hỏi, mỗi câu hỏicần xác định thuộc vào dang câu hỏi nào trên 4 dạng trên, sau đó xác định keyphrase

chính trong mỗi câu hỏi Nhưng chúng ta điều biết về ngôn ngữ truy vấnSQL(Structured Query Language), chuan tương tác với các cơ sở dit liệu quan hệ, dé

có thể tìm kiếm được nội dung nào đó, bạn phải viết theo cấu trúc quy định mà ngônngữ SQL đưa ra, như Hình 2, cho ta thấy để có thê tìm kiếm được thông tin thì phảituân thủ theo quy tắt của ngôn ngữ như phải có từ khóa “Seleet”,”From”,°Where”

SELECT cotumn1, column2,

FROM tabLe_name WHERE condition;

Hình 2 Cau trúc truy vẫn SOL đơn giảm

Trang 15

Luận văn quy ước với mỗi dạng câu hỏi thì đầu vào và đầu ra là hoàn toàn khác nhau

đề có thé giải quyết và trả về nội dung phù hợp với câu hỏi, chăng hạn với dạng câuhỏi thì yêu cầu đầu vào là khái niệm cần tìm.

- Xây dựng thuật giải phù hợp dé giải quyết như cầu tìm kiếm và truy vấn kiếnthức Mỗi dạng câu hỏi khác nhau thì yêu cầu đầu vào, cú pháp nhập, đưa ra kết quảtrả về theo từng dang, phù hợp với mục dich đặc ra câu hỏi cũng khác nhau nhằm giúpsinh viên học tập tốt nhất

Minh họa động cơ chế hoạt động, xử lý của các cấu trúc điều khiển, và các

thuật toán Nhằm mang lại kết quả tốt nhất trong quá trình học tập và dé dàng tiếp thu

kiến thức, hiểu rõ quá trình thực hiện, chỉ tiết từng bước hoạt động của các thuật giải.1.2.2 Phạm vi đề tài

Nhằm phục vụ chủ yếu cho sinh viên ngành công nghệ thông tin nắm vữngkiến thức về kỹ thuật lập trình gồm hai môn học: nhập môn lập trình, cấu trúc dữ liệu

và thuật giải Đặc biệt là sinh viên mắt căn bản có thé dé dành tìm hiểu và cũng có lại

kiến thức một cách hiệu quả Đề tài tập trung chủ yếu vào việc giải quyết tìm kiếm trên

cơ sở tri thức về kỹ thuật lập trình, phân loại câu hỏi thường gặp thành các dạng khácnhau, đưa ra ngôn ngữ quy ước cho từng dang câu hỏi, không đi sâu vào van dé giảiquyết ngôn ngữ tự nhiên về các câu hỏi truy van

Xây dựng cơ sở dữ liệu và cơ sở tri thức lưu trữ lên máy tính, thu thập tri thức

và phân loại tri thức về nhập môn lập trình, cấu trúc dữ liệu và giải thuật theo từng loạinhư khái niệm/ định nghĩa, quan hệ, tác vụ, khác, phù hợp với từ tri thức.

Nội dung kiến thức được tổ chức và xây dựng từ đề cương môn học của Đạihọc quốc gia hồ chí minh - Trường đại học công nghệ thông tin thành phố hồ chí

minh:

- IT001 - NHẬP MÔN LAP TRÌNH

- IT003 - CẤU TRÚC DU LIỆU VÀ GIẢI THUẬT

1.3 Nghiên cứu liên quan

[1] Nghiên cứu các giải pháp thiết kế và xây dựng phân hệ quan lý tàinguyên học tập cho hệ thống E-Learning

Nhóm tác giả: VanNhon Do, ThanhThuong T Huynh, and TruongAn

PhamNguyen

Tom tắt: Nghiên cứu xây dựng một giải pháp bao gồm các mô hình, van dé,

thuật giải kỹ thuật và quy trình đề tổ chúc một kho tài nguyên học tập lĩnh vực

Trang 16

công nghệ thông tin theo ngữ nghĩa Trong bài báo này, nhóm tác giả đã xây

dựng hệ thống quản lý tài nguyên học tập lĩnh vực công nghệ thông tin trongphạm vi của một trường đại học với hai nhóm chức năng chính: tô chức quản lýlưu trữ và tìm kiếm Mô hình cơ sở tài liệu có nghĩa (Semantic Document

Base_SDB) trong đó tích hợp các thành phần: mô hình ontology mô tả tri thứccủa tin học, mô hình lưu trữ theo hệ hồng thư mục có qui chuẩn, mô hình cáclớp cơ sở dit liệu của kho tài liệu, mô hình lớp semantic- quản lý ngữ nghĩa.

Cách thức tô chức cơ sở về các tài liệu theo mô hình SDB trên máy tính Xâydựng các đồ thị keyphrase biéu diễn tài liệu, câu truy vấn, bên cạnh đó nhómtác giả còn tính độ đo tương đồng ngữ nghĩa giữa các keyphrase, so khớp đồ thị

keyphrase Do độ liên quan ngữ nghĩa giữa tài liệu va câu truy van

Kết quả: Kết quả thực nghiệm cho thấy hệ thống xây dựng ontology cụ thể về

lĩnh vực tin học, đồ thị keyphrase biêu diễn tài liệu, câu truy vấn, tính độ tương

đồng ngữ nghĩa giữa các keyphrase, so khớp đồ thị keyphrase Do độ liên quanngữ nghĩa giữa tài liệu và các câu truy van, bài toán tìm kiếm theo ngữ nghĩa.1.4 Tóm tắt kết quả dữ kiến và bố cục luận văn

Ngôn ngữ truy vấn và kỹ thuật xử lý câu truy vấn Hệ thống không tập trungvào giải quyết ngôn ngữ tự nhiêu của người dùng nhập vào câu truy vấn, đưa rangôn ngữ quy ước dé người dùng chỉ cần nhập vào nội dung tìm kiếm Sau đó

xây dụng giải thuật dé xử lý câu truy vấn đưa ra kết quả cho người dùng

Cuối cùng ứng dụng hỗ trợ tìm kiếm thông tin về nhập môn lập trình, cấu trúc

dữ liệu và thuật toán hiểu giúp cho sinh viên tiếp thu, hiểu kiến thức một cách

dé dàng và nhanh chóng Ngoài ra còn có các minh họa động về các cấu trúcđiều khiển và các thuật toán

1.4.2 Bồ cục luận văn

> Chương 1: Giới thiệu đề tài Cung cấp thông tin tong quan, mục tiêu, phạm vi

về đề tài

Trang 17

Chương 3: Thiết kế cơ sở tri thức và bộ suy luận Từ những yêu cầu thực tế,

trình bày về cách thiết kế mô hình tổ chức cơ sở dữ liệu về kỹ thuật lập trình, cơ

sở tri thức và xử lý câu truy vấn cho ứng dụng

Chương 4: Cài đặt - Thử nghiệm Trình bài các công nghệ áp dụng, thể hiệngiao điện tông quan, từng loại câu truy vấn , nguồn dữ liệu truy van và kết quả

đạt được.

Chương 5: Kết luận Trình bày kết quả đạt được và hạn chế, đưa ra hướng

phát triển

Trang 18

CHƯƠNG 2: THU THẬP TRI THỨC VÀ PHÂN TÍCH YÊU CẦU

2.1 Thu nhập tri thức

2.1.1 Tri Thức về nhập môn lập trình

Dựa trên đề cương môn học nhập môn lập trinh(Introduction to Programming)cung cấp các kiến thức và kỹ năng căn bản và nền tảng nhất về máy tính và lập trình

cho tắt cả sinh viên các ngành Công nghệ thông tin Nội dung môn học bao gồm các

kiến thức cơ bản về máy tính, chương trình máy tính, thuật toán, các kỹ thuật lập trình

cơ bản Ngoài ra, môn học cung cấp các kiến thức về ngôn ngữ lập trình C++ và các

kỹ năng liên quan khi sử dụng ngôn ngữ lập trình C++ dé viết các chương trình trênmáy tính Dữ liệu thu thập từng chương sẽ được mô tả thành bảng gồm có: yếu tố trithức, nội dung, keypharse gốc, keypharse liên quan, phân loại được thé hiện ở phụ lụcthức về kỹ thuật lập trình, nội dụng tổng quát các chương về nhập môn lập trình [10].như sau:

- Chương 1 Giới thiệu tong quan về máy tính và lập trình: Thu thập tri thứckhái niệm về máy tính, cấu trúc tổng quan và các thiết bị ngoại vi, các khái niệm co

bản về lập trình, các ngôn ngữ lập trình, các hệ đếm trên máy tính, chuyền đổi giữa các

hệ đếm, công nghệ lập trình hiện đại và triển vọng tương lai,

- Chương 2: Giới thiệu về thuật toán: Tri thức về vấn đề/bài toán, khái niệm

thuật toán, sự cần thiết và các tiêu chuẩn, cũng như các cách biéu diện thuật toán

- Chương 3 Các kiêu đữ liệu cơ sở và phép toán trong C++: chương trình làgi?, khái niệm về biến và hằng, các kiểu dữ liệu cơ sở, khái niệm biểu thức, tri thức vềcâu lệnh gan và biểu thức gan

- Chương 4: Các cấu trúc điều khiển: Tri thức câu lệnh và khối lệnh trong lập

trình, phạm vi hoạt động của biến, cấu trúc rẽ nhánh if, if-else, switch-case, cấu trúc

lặp for,while, do while,

- Chương 5: Hàm và tham số của ham: Tri thức về hàm, phân biệt ham trong

toán học va trong lập trình, tri thức về lợi ích và cấu trúc viết hàm, các loại đệ quy,cũng như cách viết, nguyên tắc hoạt động của hàm đệ quy, ưu khuyết điểm của

phương pháp đệ quy,

- Chương 6: Mang: thu nhập kiến thức về mảng trong lập trình, lợi ich của việc

Trang 19

sử dụng mảng các yếu tố để xác định mảng, các tác vụ trên mảng, thu thập kiến thức

về khai báo, khởi tạo, nhập xuất chuỗi,

- Chương 7: Cấu trúc: thu thập tri thức về khai báo, khởi tạo và sử dụng biếncấu trúc, cấu trúc phức hợp, vấn đề liên quan khác: Phép gán, truyền cấu trúc cho hàm,kích thước của cấu tric,

- Chương 8: Con trỏ: Thu thập tri thức về khai vai trò, tầm quan trọng, Vai trò,

tam quan trọng của con trỏ,

- Chương 9: Lập trình với tập tin: Tri thức thu thập về tập tin dang văn bản, quitrình chung và cơ chế đọc ghi dữ liệu, một số thao tác trên tập tin van bản,

2.1.2 Tri Thức về cấu trúc dự liệu và giải thuật

Tương tự như tri thúc về cầu trúc dữ liệu và giải thuật cũng được mô tả ở bảnphụ lục tri thức về kỹ thuật lập trình, nội dung từng chương về cấu trúc dữ liệu và giảithuật như sau[ 1 1].

- Chương 1-2 : Tổng quan về giải thuật và cấu trúc dữ liệu: cấu trúc dữ liệu làgì? Tri thức về kiểu dữ liệu trừ tượng, về thuật toán, biểu diễn thuật toán và độ phứctạp, phân tích, phân lớp thuật toán, Tìm kiếm và sắp xép: tri thức thu thập được ở

chương này là các giải thuật tìm kiếm nội, bài toán tim kiếm

- Chương 3: Cấu trúc dữ liệu động: kiến thức có được ở chương này bao gồm

kiểu dit liệu con trỏ, danh sách liên kết, các hình thức tô chức danh sách, cấu trúc dữ

liệu dạng danh sách liên kết khac,

- Chương 4: Ngăn xếp, hàng đợi: tri thức được thu thập ở chương này về ngăn

xếp, hàng đợi, ví dụ ngăn xếp, hàng đợi,

- Chương 5: Cấu trúc cây: thu thập các kiến thức về cấu trúc, tinh chat cây, cây

nhị phân, cây tổng quát, cây nhị phân tìm kiếm,

- Chương 6: Bảng băm: các kiến thức thu thập được như bảng băm là gì,

phương pháp băm, phân tích bảng băm, giải quyết đụng độ

2.2 Khái niệm về cơ sở tri thức

Theo Nikoletta Bika [4], cơ sở tri thức là một thư viện trực tuyến, nơi thông tin

về một chủ đề được thu thập, sắp xếp và dé dàng truy cập Được thiết kế đề cung cấpcâu trả lời nhanh chóng cho người sử dụng khi họ cần đến chúng Cơ sở tri thức bao

Trang 20

gồm các tài liệu, các hướng dẫn, các câu hỏi thường gặp, v.v.

Còn theo Mathew Patterson[5], cơ sở tri thức là một bộ sưu tập thông tin có tổ

chức, được quản lý về một lĩnh vực chủ đề cụ thê - một cách làm cho thông tin đó dễ

tiếp cận và sử dụng hơn Cơ sở tri thức là một công cụ tự phục vụ, cung cấp cho kháchhàng để họ tự tìm câu trả lời mà không cần yêu cầu và chờ đợi của người khác

Từ hai định nghĩa trên ta thấy rằng cơ sở tri thức có đặc điểm chính là một hệthống phục vụ thông tin trực tuyến, cung cấp thông tin chỉ tiết về một lĩnh vực nào đó

cụ thé và trả lời các câu hỏi phổ biến

Kiến thức trong cơ sở tri thức có thể có được từ nhiều nguồn, những nhà

chuyên gia thuộc lĩnh vực liên quan sẽ bô sung và mở rộng nội dung Với mục tiên xây

dựng cơ sở tri thức về kỹ thuật lập trình nhằm kết hợp con người với công nghệ thôngtin dé tạo lập, quản lý, chia sẻ và sử dụng tri thức Giúp phần lớp sinh viên gặp lỗ hỗng

về kiến thức hai môn học tại trường là nhập môn lập trình, cấu trúc dữ liệu vả giải

thuật Bên cach đó, cơ sở tri thức còn được trình bày dưới dang văn bản, hình ảnh,video, âm thanh, hay bất kỳ định dạng phương tiện nào khác Nên có thể cung cấpthông tin cho người dung một cách tiếp thu hiệu quả nhất

Đặc biệt là với phần mềm cơ sở tri thức cụ thể, chẳng hạn trong luận văn là về

kỹ thuật lập trình thì người sử dụng có thể được cung cấp đúng thông tin, nhanh hơn

Mà một trong những mô hình biểu diễn một lĩnh vực và được sử dụng để suy luận vềcác đối tượng trong lĩnh cu thé và mối quan hệ giữa chúng là Ontology sẽ được trìnhbài ở mục 2.3.

2.3 Ontology

2.3.1 Giới tl lệu chung vỀ ontology

Một trong những định nghĩa phổ biến về ontology, R Arp và cộng sự [2]:Ontology là một sản phẩm trình diễn do con người tạo ra, với thành phần đặc thù làmột bảng phân loại biểu diễn tường minh một tổ hợp nào đó của các kiểu, các lớp

được định nghĩa và một sô quan hệ giữa chúng Chang han Ontology ứng dụng (application ontology) được tạo ra nhằm mục đích thực hiện một số bài toán hoặc ứng

dụng cụ thẻ

Ontology cung cấp một bộ từ vựng chung bao gồm các khái niệm, các thuộc

Trang 21

tính quan trọng và các định nghĩa về các khái niệm và các thuộc tính, cung cấp cácràng buộc Các ontology được sử dụng như là một biéu mẫu trình bai tri thức về thếgiới hay một phần của nó Các thành phần trong ontology gồm:

- Cá Thẻ (Individuals): La các thành phan cơ bản, nền tang của một ontology,bao gồm các đối tượng cụ thể (con người, động vat, ) căng như các cá thể trừu tượng

- Lớp(Classes): Là các nhóm, tập hợp các đối tượng trừa tượng Các ontologybiến đổi tùy thuộc vào cấu trúc và nội dung, một lớp có thé chứa các lớp con, lớp tông

quát chứa tat cả mọi thứ, cũng có thé chỉ chứa những cal thé riêng lẻ

- Thuộc tính(Properties): các đối tượng trong ontology có thề được mô tả thôngqua việc khai báo các thuộc tính Mỗi thuộc tính đều có tên và giá trị Được sử dụng đểlưu trữ các thông tin mà đối tượng có thể có

- Mối quan hệ(Relation): Mô tả mối liên hệ giữa các đối tượng trong ontology

Một mối quan hệ là một thuộc tính có giá trị là một đối tượng nào đó.

2.3.2 Các bước xây dựng ontology

Năm lý do ma Natalya F.Noy [3] dưa ra đê xây dựng một ontology như sau:

Thứ nhất: việc chia sẽ sự “hiểu” về các cầu trúc thông tin giữa con người và các phần

mềm là mục tiêu lớn nhất trong sự phát triển của ontology Ví dụ, nhiều website chứa

đựng các thông tin hay dịch vụ về tin học, các website này chia sẽ trên cơ sở sử dụng

các thuật ngữ của cùng mồ ontology thì máy tính có thẻ trích chọn và tích hợp thông

tin, trả lời cho các truy vấn người dùng hay làm input cho một ứng dụng khác

Thứ hai: xây dung ontology cho phép khả năng sử dụng lại các tri thức miễn

"Thứ ba: cho phép khả năng sử dụng lại các tri thức miền

Thứ tư: việc xây dựng ontology cho phép tách biệt tri thức miền với tri thức thi hành

Thứ năm: phân tích tri thức miễn là hoàn toàn có thể thi hành được khi đã biết đượccác định nghĩa của các khái niệm trong ontology được xây dựng.

Natalya F.Noy [3] đã chỉ ra 7 bước chính dé xây dung ontology, bao gồm:

Bước 1: Xác định miền cần xây dựng ontology và phạm vi của việc xây dựng

ontology

Bước 2: Ra soát, phân tích các ontology đã được xây dựng có liên quan đến miền cần

Trang 22

xây dựng ontology, qua đó xem xét việc tái sử dụng và tích hợp các ontology đã có.

Bước 3: Phân tích, trích xuất từ các nguồn đữ liệu, qua đó xác định được các khái

niệm, thuật ngữ quan trọng của ontology cần xây dựng

Bước 4: Xác định các khái niệm và cây phân cấp các khái niệm của ontology cần xâydựng.

Bước 5: Định nghĩa các thuộc tính của các khái niệm.

Bước 6: Định nghĩa miền giá trị của các thuộc tính của các khái niệm

Bước 7: Tạo các thể hiện của các khái niệm và quan hệ giữa các thể hiện của các khái

Bước 2: Làm giàu ontology, thông kê trên tập tri thức thu thập với kết quả tìm kiếmtrên Internet, nếu chưa có thì bổ sung vào đề làm tăng số lương ontology về kỹ thuậtlập trình.

Bước 3: Rút chích keyphrase và mối quan từ Bước 2 Xây dựng ontology từ dữ liệu

đó, mô hình cụ thể để xây dựng và lưu trữ là PT_ONTO sẽ được trình bài cụ thể ởchương 3.

Bước 4: Chuẩn hóa Ontology Dưới sự giám sát của chuyên gia, các ontology lần lượtđược xây dựng và lưu vào hệ thống

Trang 23

Thu nhập Thống kê tập Rút ra các Giám xác

Ontology từ kiến thức với keyphrase và của chuyên

nhiều nguồn kết quả tìm quan hệ từ gia

trên internet tập tri thức

Tiến hành thu Kiểm tra tập tri Xây dựng Chuan hóa

thập dữ liệu kỹ thức với kết quả ontology từ tập ontology

thuật lập trình tìm kiếm trên kiến thức và

và tích hợp internet, làm giàu các quan hệ

- Phần 2: Việt hóa ontology, nếu ton tại các ontology có khái niệm bằng tiếng anh, thìcần chuyền sang tiếng Việt

- Phần 3: Cụ thể Ontology Kỹ thuật lập trình Với ontology từ phần 1 và phần 2 chỉ

bao gồm các khái niệm và chưa đủ bao quát cho tri thức về kỹ thuật lập trình Cần phải

nâng cáp ontology dự theo mô hình [1] theo ba bước cơ bản sau:

> Bước 1: Bồ sung các khái niệm nhằm hiệu tăng lượng chi kiến thức kỹ thuật lậptrình một cách đầy đủ

> Bước 2: Bổ sung các quan hệ giữa các khái niệm, bồ sung các lớp, phân lớp các

khái niệm.

> Bước 3: Bồ sung các thể hiện các khái niệm và các thể hiện của các quan hệgiữa các khái niệm.

2.3.3 Mô hình Ontology Kỹ thuật lập trình

Mô hình tổng quát về kỹ thuật lập trình gồm có hai phần chính, một là mô hình

cơ sở đữ liệu (DB) lưu thông tin về kỹ thuật lập trình, hai là mô hình cơ sở tri thức

Trang 24

Mô hình cơ sở kỹ thuật lap

trình (semantic programming techniques

base - SPTB)

Mô hình t thie kỹ thuật lập trình

Mô hình cơ sở dữ liệu Bi

Lưu tre kiến thức tông quát về Mô hình Ontology cho các

„ wn Ty thuật lập tr keyphrase in lớp.kỹ thuật lập trình ypi lược pl lớp.

Hình 4 Mô hình lưu trữ tổng quát về kỹ thuật lập trình

Phần tổ chức lưu trữ mô hình cơ sở dữ liệu DB sẽ được trình bài cụ thể ở chương 3, ởđây tập chu chủ yêu vào mô hình Ontology cho các keyphrase được phân lớp vè kỹ

thuật lập trình( PT_ONTO), mô hình gồm 5 thành phần: K, C, Rxx Rxc.Rcc.

Trong đó thành phần K(Keyphrase), tập hợp các keyphrase về kỹ thuật lập trình.Thanh phan chính dé hình thành các khái niệm của ontology, một đơn vị ngôn ngữ họccấu trúc như một từ, một từ kép, làm yếu tố đơn vị để mô tả tri thức Keyphare đơn

được cấu tạo bằng một đơn vị từ vựng đơn, ví dụ: “Hằng”,”Biến” Keyphare tổ hợp lànhiều đơn vị từ vựng đơn kết hợp Keyphrase là tổng hợp của cả keyphrase đơn và tổ

hợp Ký hiệu C (tập hợp các lớp keyphrase), mỗi lớp là tập hợp các keyphrase có liênquan với nhau theo một tính chất hay ngữ nghĩa Sự phân lớp trong keyphrase được

phân thành nhiều cấp theo mức độ cụ thể cảu khái niệm tăng dần Một keyphrase có

thé thuộc nhiều lớp khác nhau Vi dụ, lớp cấu trúc dit liệu sẽ gồm các keyphrase như

Trang 25

ngăn xếp, hàng đợi, danh sách, cây, sắp xép,

Ký hiệu Rkx(tập hop quan hệ trên keyphrase) Có 3 nhóm quan hệ thường được sửdụng là quan hệ tương đương, phân cấp và không cấp Chẳng hạng trong nhóm quan

hệ tương đương có 3 mối liên hệ thường dùng như thứ nhất: Keyphrase A đồng nghĩavới B( quan hệ ngữ nghĩa Synonym), thứ 2:Keyphrase A là cách viết tắt của B (quan

hệ Acronym), thứ 3:Keyphrase A gần nghĩa với B (quan hệ ngữ nghĩa Near synonym)Nhóm quan hệ phân cấp có hai quan hệ phổ biến: thứ nhất: Keyphrase A là mộtphần/công đoạn của B( quan hệ ngữ nghĩa là “A part of”), thứ 2: Keyphrase A là mộtdang của B( quan hệ ngữ nghĩa “A kind of”) Hiện tại luận văn mới xét tới hai nhómtrên, chưa xét đến nhóm quan hệ nhóm không phân cấp

Ký hiệu Rxc(tap hợp quan hệ giữa keyphrase và lớp) Một keyphrase có thé chứa tronglớp này, cũng có thé chứa trong lớp kia, hiện tại luận văn chỉ mới xét 1 mối quan hệ

“thuộc về (mại).

Ký hiệu Rec( tập quan hệ giữa lớp và lớp) Hiện tại luận văn tập trung xét hai mốiquan hệ là quan hệ phân cấp, và quan hệ có liên quan Chẳng hạng với mối quan hệliên quan ta có, lớp “Ngôn ngữ lập trình” liên quan với “Phương pháp lập trình” Vớiquan hệ phân cấp trên lớp, ta có lớp chính là “Lập trình” chứa các lớp con là “Ngôn

ngữ lập trình” và “Phương pháp lập trình”, trên lớp “Phương pháp lập trình” lại chứa

các lớp con như “Lập trình hướng đối tượng”, “Lập trình Logic”, “Lap trình chức

năng”.

Lập trình

Phương pháp lập trình Ngôn ngữ lập trình

Lập trình chức năng Lập trình hướng đổi tượng| | Lập trình Logic

Hình 6 Quan hệ phân cấp trên lớp

Sau khi đã có chỉ tiết về thành phần của mô hình PT_ONTO, tiến hành chuyển khai

mô hình đó thành đối tượng cụ thé đề lưu trữ vào máy tính, mà chỉ tiết cụ thể về các

đối tượng, mối quan hệ sẽ được chuyển thành các bảng cụ thể lưu vào cơ sở dữ liệu

Trang 26

SQL server, cụ thể ở chương 3.

2.4 Tìm kiếm thông minh (Tìm kiếm theo ngữ nghĩa)

Tìm kiếm thông minh về kỹ thuật lập trình ở đây hơn các tìm kiếm thông

thường như từ khóa hay chuỗi ký tự được truyền vào là dựa trên ngữ nghĩa câu hỏi đểtìm ra câu trả lời, dé giải quyết bài toán tìm kiếm theo ngữ nghĩa vừa nêu, dựa trên

cách giải quyết vấn đề bài toán về tìm kiếm ngữ nghĩa của tài liệu[1], áp dụng vào bài

toán tìm kiếm ngữ nghĩa về kỹ thuật lập trình cần giải quyết một số van dé như sau:

- Cần xây dựng dé thị keyphrase biểu diễn ngữ nghĩa Với mỗi keyphrase thu được,

biểu dién(ndi dung) thành đồ thì keyphrase tương ứng

Trích xuất thông Rit trích keyphrase

Tài liệu về kỹ thuật fin đặc trưng

Danh sách

keyphrase

VY

Dùng ontologu suy Dùng ontologu suy

diễn các moi quan hệ|“L———— ]diễn các moi quan hé|

File Semantics ngữ nghĩa trên tap |^,————] ngữ nghĩa trên tập

Keyphrase Keyphrase

Hình 7 Mô hình xây dựng dé thi keyphrase biểu diễn vẻ kỹ thuật lập trình

Các đồ thị keyphrase biểu diễn tài liệu được lưu lại theo định dang plaintext có cấu

trúc dựa trên một sô từ khóa và qui ước vé cú pháp đơn giản [1].

Trang 27

{ "keyphrase":

["Dinh danh Keyphrase 1"."Dinh danh Keyphrase 2"."Định danh Keyphrase

3","Định danh Keyphrase 4"."Định danh Keyphrase 5" ]

- Tính độ tương quan ngữ nghĩa giữa keyphrase và câu truy vấn Với mục tiêu là tìm

độ đo sự tương đồng( giông nhau) về ngữ nghĩa giữa các đỉnh keyphrase và giữa cácđỉnh quan hệ có trong hai đồ thị Tồn tại một phép chiếu bộ phận từ dé thị keyphrase Htới đồ thị keyphrase G nếu và chỉ nếu tồn tại một phép chiếu H’, một đồ thi keyphrasecon của H, tới G Mô hình lượng giá cho phép chiếu bộ phận chỉ phụ thược vào tậpđỉnh của H’ và được định nghĩa như phép chiếu Độ tương quan ngữ nghĩa giữa hai đồ thị.

Rel(H,G)=Max{v„(I) | II là phép chiếu bộ phận từ H tới G}

Trong đó: Một phép từ đồ thị keyphrase H=(KH,RH,EH) tới đồ thị keyphrase G=

(KG,RG,EG) là một cặp có thứ tự II=(f, g) của 2 ánh xạ f: RH->RG, g: KH-KG thỏa điều kiện: Don ánh, phép chiếu bảo toàn “quan hệ kề” giữa các đỉnh va ¡cung r c RH, B

ứ, f(r)) #0, k c KH, a(k, g(k)) Z0 Một mô hình lượng giá cho phép chiếu có trọng số

Trang 28

[P|

idf (k) =log|————k———

1+|{d e D,k ed}|

Phan ánh mức độ quan trọng của keyphrase dựa vào vị trí xuất hiện của keyphrase(ip:

importance of Position)[9] Với w;: trọng số phản ánh độ quan trọng của phan nội dung

thứ ¡ trong cấu trúc tài liệu, n, là số lần xuất hiện của keyphrase k trong phần nội dungtương ứng với ràng buộc: w; € [0,1], 3)w¡=l.

» Win,

ip(k,d) = aya

i 7

Cho k, k € K, định nghĩa một quan hệ hai ngôi P trên K, gọi là quan hệ “tồn tại một

dẫn xuất từ k đến k` như sau P(k, k) khi và chỉ khi k=k’ hoặc tồn tại S= (s), ,s,) là daycác số nguyên c [1,t] (với t=lRkl sao cho: k ry) ky, ky to kạ, ,Kn- Tạp k Néu không có

bat ky lién két ngữ nghĩa nào giữa k va k’: a(k, k)=0 if notP(k, k), nguge lai nếu tồn

tại quan hệ từ k và k: a(k, k)= Max(V(k rg ky, ky rạ kạ, Kạ fon K)}

Trang 29

CHUONG 3: THIẾT KE CƠ SO TRI THỨC VA XỬ LÝ CÂU TRUY VAN

3.1 Thuyết kế cơ sơ tri thức về kỹ thuật lập trình

3.1.1 Mô hình cơ sở kỹ thuật lập trình (semantic programming techniques base —

SPTB)

Như đã trình bày ở chương 2, phần mô hình ontology về kỹ thuật lập trình Mô

hình cơ sở kỹ thuật lập trình có nghĩa gồm mô hình cơ sở dữ liệu về kỹ thuật lập

trình(DB-Database), mô hình cơ sở tri thức mô của kỹ thuật lập trình(PT_ONTO) Với

mô hình trừ tượng PT_ONTO gồm 5 thành phan keyphrase, Lớp, quan hệ giữa

keyphrase va keyphrase, quan hệ giữa lớp và lớp, quan hệ giữa keyphrase và lớp Tiến

hành chuyên đôi thành các đối tượng cụ thê là các bảng, có các hàng cột, khóa chính

để lưu trữ lên máy tính và công cụ dé lưu trữ va quan lý dữ liệu là SQL Server Chỉ tiết

cụ thể về các thành phần trong DB và PT_ONTO được mô tả ở các mục phía dưới

3.1.1.1 Mô hình cơ sở dữ liệu về kỹ thuật lập trình (DB)

- Mô hình cơ sở dữ liệu lưu trữ thông tin về nhập môn lập trình gồm các thực thể như

sau:

+ Kiến thức( Knowledge): lưu trữ thông tin về tri thức về kỹ thuật lập trình,

gồm các thuộc tính về mã kiến thức (Knowledgeld) nhằm xác định cụ thể mỗikiến thức với nhau không có sự trùng lặp Mỗi mã kiến thức sẽ có định danh tên

phù hợp(KnowledgeName) để xác định kiến thức, sau đó để mô tả cụ thể về

tên gọi trên thì cần thuộc tính mô tả (Description), với mỗi kiến thức trên cần cóthuộc tính dé nói lên mối quan hệ một kiến thức thì có từ từ khoá nào mô tả lênkiến thức đó (RelatedkeywordId)

+ Loại kiến thức (KnowledgeType): nhằm mục đích phân biệt kiến thức thuộc

vào loại KN/DN hay quan hệ, tác vu gồm hai thuộc tính là mã loại kiến thức

(KnowledgeTypeld), xác định loại kiến thức, với mỗi mã loại kiến thức thì có

được gán một tên phù hợp (KnowleTypeName).

+ Môn học (Subject): tri thức được lưu trữ thì được trích ra từ môn học nhập

môn lập trình, cấu trúc dữ liệu và giải thuật gồm hai thuộc tính là mã môn học

(SubjectId), phân biệt các môn học với nhau, mỗi mã môn học sẽ có tên

(SubjectName) gọi khác nhau.

+ Các từ khóa liên quan(RelatedKeywords): mỗi kiến thức sẽ có các từ khoáliên quan, ví dụ kiến thứ về cấu trúc dữ liệu(data structure) thì các từ khoá liên

Trang 30

quan như: stack, queue, hash table, sorting, gồm các thuộc tính là mã các từkhoá liên quan (Relatedkeywordld), nhằm phân biệt các từ kháo liên quan với

nhau trong hệ thống, mỗi mã sẽ được gắn tên tiếng việt(RelatedkeywordVie)

và tên tiếng anh (RelatiedkeywordEng) riêng biệt

+ Mối quan hệ từ khóa có liên quan (RelatedKeywordRelation): nhằm gắn kếtthông tin giữa kiến thức và các từ khoá liên quan với nhau, thực thể gồm haithuộc tính là mã kiến thức (Knowledgeld) và mã các từ khoá liên

quan(RelatedkeywordId).

+ Méi quan hệ giữa kiến thức và môn học (KnowledgeSubjectRelation): thể

hiện chỉ tiết kiến thức thuộc vào môn học gồm hai thuộc tính là mã kiến thức(Knowledgeld) và mã môn học (SubjectId).

+Mối quan hệ giữa kiến thức và loại kiến thức(KnowledgeKnowledgeTypeRelation) : tất cả kiến thức điều là khái niệm định

nghĩa, nhưng kiến thức có thé là có mối quan hệ với kiến thức khác hay cũng có

thể là một tác vụ nào đó của kiến thức kia, gồm hai thuộc tính mã kiến thức(Knowledgeld) va mã loại kiến thức (KnowledgeTypeld)

- Tổ chức cơ sở dữ liệu DB gồm ệ

+ Bảng Kiến thức (Knowledge): có khoá chính là Knowledgeld, và các thuộc tính :KnowledgeName, Relatedkeywordld, Description, Subjectld, KnowledgeTypeld,

KnowledgeTypeld | INT

được mô tả chi tiét ở bảng sau:

STT | Tên Thuộc tính Kiêu dữ liệu Khoá Cho Khoá

Trang 31

STT | Tên Thuộc tính Kiểu dữ liệu Khoá Cho Khoá

+ Bảng Cac từ khoá liên quan: có khoá chính là Relatedkeywordld và thuộc tính tên

tiếng việt và tên tiếng anh

STT | Tên Thuộc tính Kiêu dữ liệu Khoá | Cho Khoá

+ Bang quan hệ giữa kiến thức va từ khoá: gồm có hai thuộc tính là mã kiến thức lay

từ bảng Kiến thức (Knowledge) và mã loại kiến thức từ bảng Loại kiến

Trang 32

STT | Tên Thuộc tính Kiểu dữ liệu Khoá | Cho Khoá

+ Bảng Quan hệ giữa kiến thức và môn học: gồm hai thuộc tính là mã kiến thức lấy từ

bảng Kiến thức (Knowledge) và mã môn học từ bảng môn hoc(Subject)

STT | Tên Thuộc tính Kiéu dữ liệu | Khoá Cho phép | Khoá

chính NULL ngoai

1 Knowledgeld INT

2 Subjectld INT

+ Bảng Quan hệ giữa kiên thức va loại kiên thức: gôm hai thuộc tinh là mã kiên thức

lấy từ bảng Kiến thức (Knowledge) và mã môn học từ bảng loại kiến thức

Trang 33

3.1.1.2 Mô hình cơ sở tri thức của kỹ thuật lập trinh(PT_ONTO)

Tổ chức lưu trữ PT_ONTO (K,C, Rẹc, Rec, Rxk)

+ Bảng Từ khóa (Keyphrase): có khoá chính là Keyphraseld và thuộc tính mô tả từ khóa, danh sách các từ khóa liên quan.

STT | Tên Thuộc tính Kiêu dữ liệu Khoá | Cho Khoá

+ Bang quan hệ lớp va từ khoá: gôm có hai thuộc tinh là mã lớp từ khoá lây từ bang

Lớp từ khóa (KeyPhraseClass) và mã từ khóa lấy từ bảng Từ khóa(Keyphrase)

STT | Tên Thuộc tính Kiêu dữ liệu Khoá Cho Khoá

chính phép ngoại

NULL

1 KeyPhraseClassId INT

2 Keyphraseld INT

+ Bảng Lớp Từ khóa: có khoá chính là KeyPhraseClassId và thuộc tinh tên lớp.

STT | Tên Thuộc tính Kiéu dữ liệu Khoá | Cho Khoá

chính | phép ngoại

NULL

1 KeyPhraseClassId INT x

2 KeyPhraseClassName | NVARCHAR(1000)

+ Bảng Lop Quan Hệ(ClassRelation): có khoá chính là ClassRelationId và thuộc tính

mã lớp con và mã quan hệ giữa lớp và lớp.

STT | Tên Thuộc tính Kiêu dữ | Khoá Cho Khoá

liệu chính phép ngoại

NULL

1 ClassRelationId INT x

Trang 34

+ Bang các Quan hệ từ khoa(KeyPhraseRelationship): có khoá chính là

KeyphraseRelationshipId và thuộc tính tên quan hệ và mô tả chỉ tiết

STT | Tên Thuộc tính Kiêu dữ liệu K_ | Cho Kho

ho | phép |á

a NUL | ngoa

ch |L i in

+ Bảng Mối Quan hệ từ khoá và khoá (KeyPhraseKeyPhraseRelation): có mã mối

quan hệ từ khoá và từ khoá là Sourceld , hai thuộc tính là mã quan hệ từ khoá lấy từbảng Quan hệ từ khóa (KeyphraseRelationship) và mã từ khóa lấy từ bảng từ khóa

(Keyphrase).

Trang 35

STT | Tên Thuộc tính Kiêu dữ liệu Kh | Cho Kho

oá |phép |á chí |NUL |ngo

Hình 9 Mô hình cơ sở tri thức PT_ONTO lưu trên SQL server

3.1.2 Kết quả xây dung ontology cho kiến thức về kỹ thuật lập trình

Sau khi đã xây dựng môn hình cơ sở tri thức PT_ONTO trên cơ sở dữ liệt

p trình baoserver Tiến hành xây dựng bộ từ điển khái niệm thuật ngữ về kỹ thuật

gồm 506 khái niệm, 30 lớp các khái niệm, 3.579 mối quan hệ giữa khái niệm và kháiniệm.

Bên cạnh đó với tập hon 250 câu hỏi được thé hiện ở phần phụ lục câu hỏi truy van lànhững câu hỏi và câu trả lời kèm theo do chuyên gia cung cấp, cũng như thư thập trực

tiếp từ ý kiến của sinh viện học tại trường đại học công nghệ thông tin sau đó được rút

trích và đánh giá lại câu trả lời từ chuyên gia để đảm bảo với nội dung câu trả lời phù

hợp với nội dung câu hỏi.

3.2 Thuyết kế Module xử lý câu truy vấn

3.2.1 Xử lý câu truy vẫn

Trang 36

Sau khi tổ chức lưu trữ kiến thức vào cơ sở dữ liệu PT_ONTO, tiến hành chuyềnhóa thành các đồ thị keyphrase lưu trữ thành các file semantic Tương tự đối với câutruy van cũng phải rút trích keyphrase đặc trưng theo từng câu hỏi ra, sau đó tiễn hành

tính độ tưng quan ngữ nghĩa để xem keyphare nào trong hệ thống có độ tương quan

cao nhất, sao đó truy xuất thông tin, trả lại kết quả ra giao diện Mô hình xử lý tổng

quát như sau:

Trang 37

Xử lý tri thức.

3ï liêu về kế thud Tổ chức tr thức ấu diễn ngữ

Tài liệu về kỹ thuật E—=Db E—> Biểu diễn ngữ Rt trinh thông tin|

_ Xử ý „ Biểu diễn câu Sokhóp EY) Truyxuấtthông

câu truy van truy van tin

Hình 10 Mô hình tổng quát xử lý tìm kiếm trên cơ sở tri thức vẻ kỹ thuật lập trình.

Trên hình 10, phần xử lý câu truy vấn sẽ được chia thành quy ước ngôn ngữ đầu vào,

sẽ được trình bày ở mục 3.2.2 Phần biểu diễn câu truy vấn sẽ phân tách nội dung tìm

Trang 38

kiếm, rút trích ra các từ, cụm từ( keyphrase) để so khớp với các keyphrase trongPT_ONTO, dò tìm các quan hệ ngữ nghĩa kèm theo, xây dựng đồ thị keyphrase biểudiễn câu truy vấn, sau đó xây dựng đồ thị biểu diễn câu truy vấn, chỉ tiết mô tả ở hình

10.

Câu truy vẫn Phân tách phần nội ——``Ï Phân tích và rút trích

dung muốn tìm kiếm [—v⁄} ra các từ, cụm từ

Hình 11 Đỗ thì biểu diễn câu truy vẫn

3.2.2 Cú pháp từng loại câu truy vẫn

- Cú pháp câu truy vấn khái niệm hoặc định nghĩa

%Define”,”knowledge”?

Nhập vào khái niệm hoặc định nghĩ cần tìm về kiến thức, giữa khái niệm hoặcđịnh nghĩa và kiến thức nối với nhau qua dấu “,” và kết thức đâu bằng dấu “?”.Luu ýkhông nhập khoản trắng, sử dụng tiếng việt không dấu

Ví dụ: Khái niệm mảng một chiều? > Define,mangmotchieu?

> mô tả quy trình sử lý, minh hoạt động thuật giải, viết thành thuật giải

- Câu truy vấn khái niệm và các quan hệ đi kèm

Trang 39

- Câu truy vấn so sánh

“Compare”,“knowledgel”,”knowledge2”?

Nhập vào kiến thức thứ nhất, nhập kiến thức hai, kết thúc bằng dau “2”

Vi dụ: Sự khác nhau giữa Stack và Queue? > “Compare”,*stack”,”queue”?

- Câu hỏi truy vấn đạng liệt kê

“Listed”,”knowledge”?

Nhập vào nội dung cần tìm kiếm, giữa khái niệm hoặc định nghĩa và kiến thứcnối với nhau qua dau “,” và kết thức đâu bằng dấu “?”

Ví dụ: Các thành phần của một hệ thống máy tính gồm những thành phầnnào? Listed,thanhphanmaytinh?

Trang 40

CHƯƠNG 4: CÀI ĐẶT - THU NGHIỆM

ứng dụng kỹ thuật lập trình AJAX Với AJAX, một trình duyệt, tạm gọi máy khác sẽ

liên lạc với máy chủ web và gửi yêu cầu để nhận được dữ liệu, Sau quá trình sử lý, tạo

ra sự thay đồi trang web, mà không cần phản tai lại toàn bộ trang web đó,

Công cụng lập trình là Microsoft Visual Studio Community 2015 Hỗ trợ việc

lập trình nhiều ngôn ngữ khách nhau từ C/C++,C#, cho đến F# Với phiên bản visualstudio 2015 có hỗ trợ code trên ngôn ngữ Python Khả năng gỡ réi( Debug) vô cùnghiệu quả và dé dang qua việc chạy câu lệnh và quan sát thay đổi của chương trình quacác biến, cách vận hành của mã Ngoài ra với giao diện dé dàng, gần gửi với người

dùng mới bat đầu thông qua việc kéo thả Cho đến người dùng chuyên nghiệp xây

dựng chuyên nghiệp Đặc biệt công cụ còn hỗ trợ phát triển ứng dụng desktop trênWindows Form hay Universal App Các ứng dụng mobile IOS và Android Xamarin.

Ứng dụng Web Form, ASP.NET MVCS

Ứng dụng được xây trên :

+ Máy tính ASUS K55A, chạy hệ điều hành windows 10 Pro

+Processor :Intel(R) Core i5-3210M CPU @ 2.50GHz

+RAM :8GB

+System: 64 bit

4.2 Giao diện ứng dụng

Hiện tại dé đáp nhu cầu tìm kiếm kiến thức về kỹ thuật lập trình với 4 dang câu hỏi

truy vấn khác nhau : KN/DN, loại câu hỏi khái niệm và các tác vụ, loại câu hỏi về sosánh, câu hỏi liệt kê Mỗi cau hỏi sẽ có yêu cầu đầu vào, kết quả thể hiện khác nhau

phù hợp với nội dung câu hỏi Giao diện tổng quan gồm 2 phan chính:

> Phan thứ nhat(input): yêu cầu đầu vào gồm các thông tin về loại câu truy vấn và

Ngày đăng: 08/11/2024, 17:35

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

TÀI LIỆU LIÊN QUAN