ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
TRẦN THÁI SƠN
NGHIÊN CỨU MỘT SỐ PHƯƠNG PHÁP TÌM KIẾM XẤP XỈ VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ LỰA CHỌN PHẢN BIỆN CHO TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC THÁI NGUYÊN
Chuyên ngành: Khoa học máy tính
Mã số: 8480101
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS. NGUYỄN ĐÌNH DŨNG
THÁI NGUYÊN, 2018
iii
MỤC LỤC LỜI CẢM ƠN ...................................................................................................... vi
LỜI CAM ĐOAN ................................................................................................ vii
DANH MỤC CÁC BẢNG ................................................................................. viii
DANH MỤC CÁC HÌNH VẼ .............................................................................. ix
LỜI MỞ ĐẦU ...................................................................................................... xi
CHƯƠNG 1. TỔNG QUAN ................................................................................. 1
1.1. Tổng quan về hệ thống hỗ trợ lựa chọn phản biện ................................... 1
1.1.1. Thuật toán Kalmukov ......................................................................... 2
1.1.2. Bài toán lựa chọn phản biện CMACRA ............................................... 6
1.1.3. Lựa chọn phản biện với thuật toán xấp xỉ 1/3 ...................................... 9
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT ................................................................... 11
2.1. Một số phương pháp so khớp mẫu trong tính toán độ gần tựa ngữ nghĩa 11
2.1.1. Thuật toán Brute Force ....................................................................... 11
2.1.2. Thuật toán Knuth-Morris-Pratt ........................................................... 12
2.2. Phương pháp quy hoạch động và ứng dụng trong lựa chọn phản biện .... 13
2.2.1. Phương pháp quy hoạch động ............................................................. 14
2.2.2. Thuật toán lựa chọn phản biện ............................................................ 16
2.3. Otomat hữu hạn mờ và ứng dụng trong lựa chọn phản biện bài báo ........ 20
2.3.1. Độ gần tựa ngữ nghĩa theo mô hình Otomat hữu hạn mờ .................. 20
2.3.2. Thuật toán lựa chọn phản biện ............................................................ 22
CHƯƠNG 3. XÂY DỰNG ỨNG DỤNG........................................................... 25
3.1. Phát biểu bài toán ...................................................................................... 25
3.2. Mô tả yêu cầu hệ thống ............................................................................. 25
3.3. Phân tích hệ thống ..................................................................................... 30
3.3.1. Xác định Actor và Use Case ............................................................... 30
3.3.2. Biểu đồ Use Case ................................................................................ 32
3.3.3. Biểu đồ lớp phân tích ......................................................................... 43
3.3.4. Biểu đồ trạng thái ............................................................................... 44
3.4. Thiết kế hệ thống ....................................................................................... 44
3.4.1. Biểu đồ tuần tự .................................................................................... 44
3.4.2. Biểu đồ lớp chi tiết .............................................................................. 53
iv
3.4.3. Các đối tượng cơ sở dữ liệu và các chức năng của chương trình ....... 54
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .......................................................... 71
TÀI LIỆU THAM KHẢO ................................................................................... 72
v
LỜI CẢM ƠN
Luận văn này được hoàn thành tại Trường Đại học Công nghệ Thông tin và
Truyền thông dưới sự hướng dẫn của TS. Nguyễn Đình Dũng. Tác giả xin bày tỏ lòng
biết ơn tới các thầy cô giáo thuộc Trường Đại học Công nghệ Thông tin và Truyền
thông đã tạo điều kiện và giúp đỡ tác giả trong quá trình học tập và làm luận văn tại
Trường, đặc biệt tác giả xin bày tỏ lòng biết ơn tới TS. Nguyễn Đình Dũng đã tận tình
hướng dẫn và cung cấp nhiều tài liệu cần thiết để tác giả có thể hoàn thành luận văn
đúng thời hạn.
Xin chân thành cảm ơn anh chị em học viên cao học và bạn bè đồng nghiệp đã
trao đổi, động viên và khích lệ tác giả trong quá trình học tập và làm luận văn tại
vi
Trường Đại học Công nghệ Thông tin và Truyền thông – Đại học Thái Nguyên.
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này do chính tôi thực hiện, dưới sự hướng dẫn khoa
học của TS. Nguyễn Đình Dũng, các kết quả lý thuyết được trình bày trong luận văn
là sự tổng hợp từ các kết quả đã được công bố và có trích dẫn đầy đủ, Chương trình
ứng dụng trong luận văn này được tác giả thực hiện là hoàn toàn trung thực, nếu sai tôi
hoàn toàn chịu trách nhiệm.
Thái Nguyên, tháng 4 năm 2018
Học viên cao học
vii
Trần Thái Sơn
DANH MỤC CÁC BẢNG
Bảng 1: Các từ khóa của phản biện (ReviewerKeyword).............................................17
Bảng 2. Khoảng cách chuyên môn (ExpertiseDistance)..............................................17
Bảng 3. Bảng RK minh họa thuật toán……………………............................................19
Bảng 4. Kết quả thực hiện thuật toán ………………..................................................19
Bảng 5. Xác định các tác nhân……………….............................................................30
Bảng 6. Xác định các use case ……………….............................................................32
Bảng 7. Scenario cho use case Đăng nhập ………………...........................................33
Bảng 8. Scenario cho use case Cập nhật lý lịch sơ lược ..............................................35
Bảng 9. Scenario cho use case Tổng hợp bài báo theo phản biện................................36
Bảng 10. Scenario cho use case Tổng hợp bài báo theo tác giả……...........................39
Bảng 11. Scenario cho use case Chọn bài báo phản biện.............................................42
Bảng 12. Bảng tblCriticism lưu các thông tin về phản biện.........................................55
Bảng 13. Bảng tblJournal lưu các thông tin về bài báo................................................56
Bảng 14. Bảng tblChuyensan lưu trữ danh mục các chuyên san..................................57
Bảng 15. Bảng tblCri_Journal_and_Book ………………...........................................57
Bảng 16. Bảng tblCri_ProcessOfWork ………............................................................57
Bảng 17. Bảng tblCri_ScientificResearch....................................................................57
Bảng 18. Bảng tblGender lưu thông tin danh mục giới tính.........................................57
Bảng 19. Bảng tblKeywordKHX..................................................................................58
Bảng 20. Bảng tblKeywordNLY..................................................................................58
Bảng 21. Bảng tblKeywordTNK………………..........................................................58
Bảng 22. Bảng tblManageRegist………………..........................................................58
Bảng 23. Bảng tblMenu lưu thông tin danh mục menu trang chủ................................58
Bảng 24. Bảng tblPermission lưu thông tin danh mục phân quyền trong hệ thống....59
Bảng 25. Bảng tblResultOfCriticism ………………………………………………...59
viii
Bảng 26. Bảng tblUser lưu thông tin người sử dụng hệ thống ....................................59
DANH MỤC CÁC HÌNH VẼ
Hình 1. Bước 1-Xác định ma trận độ tương tự.............................................................3
Hình 2. Bước 2 – Xây dựng mảng cấu trúc invlovedReviewers; Bước 3 – Xử lý
involvedReviewers và phân bài báo cho phản biện tại hàng đầu tiên của ma trận K;
Bước 4 – Kết thúc lựa chọn phản biện………...............................................................4
Hình 3. Nhóm Use case Quản trị hệ thống...................................................................32
Hình 4. Use case Đăng nhập.........................................................................................33
Hình 5. Nhóm Use case Quản lý phản biện..................................................................34
Hình 6. Phân rã Use case Cập nhật thông tin phản biện...............................................34
Hình 7. Phân rã Use case Tổng hợp bài báo theo phản biện........................................35
Hình 8. Use case Thống kê và tìm kiếm.......................................................................36
Hình 9. Nhóm Use case Cập nhật bài báo....................................................................37
Hình 10. Phân rã Use case Cập nhật bài báo khoa học tự nhiên..................................37
Hình 11. Phân rã Use case Cập nhật bài báo khoa học Xã hội và Nhân văn................38
Hình 12. Phân rã Use case Cập nhật bài báo Nông Lâm Ngư Y Sinh..........................38
Hình 13. Nhóm Use case Tổng hợp bài báo theo tác giả..............................................39
Hình 14. Use case Đổi mật khẩu...................................................................................40
Hình 15. Use case Đăng ký làm phản biện...................................................................40
Hình 16. Nhóm Use case Tìm kiếm phản biện.............................................................41
Hình 17. Phân rã Use case chọn bài báo phản biện......................................................41
Hình 18. Nhóm Use case Chỉ định phản biện...............................................................42
Hình 19. Biểu đồ lớp phân tích.....................................................................................43
Hình 20. Biểu đồ trạng thái lớp Journal........................................................................44
Hình 21. Biểu đồ tuần tự cho chức năng đăng nhập.....................................................44
Hình 22. Biểu đồ tuần tự cho chức năng tìm kiếm phản biện theo từng từ khóa.........45
Hình 23. Biểu đồ tuần tự cho chức năng tìm kiếm phản biện theo dãy từ khóa...........46
Hình 24. Biểu đồ tuần tự cho chức năng Chọn bài báo................................................47
Hình 25. Biểu đồ tuần tự cho chức năng Cập nhật lý lịch sơ lược...............................48
ix
Hình 26. Biểu đồ tuần tự cho chức năng Cập nhật từ khóa chuyên môn.....................49
Hình 27. Biểu đồ tuần tự cho chức năng đổi mật khẩu.................................................50
Hình 28. Biểu đồ tuần tự cho chức năng Thêm bài báo...............................................50
Hình 29. Biểu đồ tuần tự cho chức năng Chỉ định phản biện 1....................................51
Hình 30. Biểu đồ tuần tự cho chức năng Chỉ định phản biện 2....................................52
Hình 31. Biểu đồ lớp chi tiết.........................................................................................53
Hình 32. Sơ đồ thực thể liên kết...................................................................................59
Hình 33. Các chức năng hệ thống hỗ trợ lựa chọn phản biện.......................................60
Hình 34. Form Đăng nhập hệ thống.............................................................................61
Hình 35. Form Chức năng tìm kiếm phản biện............................................................61
Hình 36. Form Đăng nhập lại hệ thống........................................................................62
Hình 37. Form Đổi mật khẩu........................................................................................62
Hình 38. Form Chức năng cập nhật thành viên............................................................63
Hình 39. Form Chức năng quản lý đăng ký phản biện.................................................63
Hình 40. Form Xem thông tin đăng ký tham gia phản biện.........................................64
Hình 41. Form Cập nhật lý lịch của phản biện.............................................................64
Hình 42. Form Cập nhật quá trình đào tạo...................................................................65
Hình 43. Form Cập nhật quá trình công tác.................................................................65
Hình 44. Form Cập nhật đề tài nghiên cứu khoa học...................................................66
Hình 45. Form Cập nhật công trình khoa học đã công bố............................................66
Hình 46. Form Cập nhật các từ khóa chuyên môn.......................................................67
Hình 47. Form Tổng hợp bài báo theo phản biện.........................................................67
Hình 48. Form Cập nhật bài báo...................................................................................68
Hình 49. Form Thống kê bài báo theo các tiêu chí.......................................................68
Hình 50. Form Tổng hợp bài báo theo tác giả..............................................................69
x
Hình 51. Form Chức năng xem hồ sơ của phản biện....................................................69
LỜI MỞ ĐẦU
Trong thời đại ngày nay, cùng với các phương pháp về chế độ tài chính, chính
sách nhân sự, công nghệ thông tin (CNTT) được xác định là một trong các yếu tố quan
trọng của một tạp chí. Ứng dụng CNTT trong hoạt động tạp chí có thể hiểu
là việc nghiên cứu, phát triển, đầu tư đưa các công nghệ tiên tiến trong lĩnh vực CNTT
vào ứng dụng thực tiễn trong các công đoạn của quá trình hoạt động của tạp chí, từ
khâu nhận bài, phản biện, biên tập và xuất bản. Các hoạt động chủ yếu gồm thiết lập
một chiến lược tổng thể về phát triển CNTT, các quy chế, quy trình quản lý, xây dựng
hạ tầng phần cứng, đường truyền, cơ sở dữ liệu, phần mềm ứng dụng.
Hiện nay đã có một số tạp chí như Tạp chí Khoa học và Công nghệ Đại học Đà
Nẵng [26], Tạp chí Khoa học kỹ thuật Mỏ - Điạ chất [27]… đã có giải pháp ứng dụng
công nghệ thông tin và hệ thống tiện ích của Internet, tự động hóa một số bước trong
quy trình quản lý tạp chí. Nội dung chính của giải pháp là xây dựng hệ thống website
tự động hóa các khâu quản lý tạp chí như: quá trình nộp bài của tác giả, mời đọc phản
biện, theo dõi quá trình xử lý một công trình từ khi gửi đăng cho đến lúc bài được
nhận đăng vào các số của tập chí. Việc nghiên cứu xây dựng hệ thống phần mềm
website tạp chí khoa học đã từng bước hiện đại hóa quá trình quản lý trong thời kỳ hội
nhập quốc tế, tạo môi trường trao đổi giữa các nhà khoa học và tận dụng tối đa nguồn
tài liệu quý.
Để đạt được và giữ vững các tiêu chí cơ bản của một tạp chí khoa học quốc tế,
hiện nay một số các tạp chí quốc tế được xếp hạng bởi ISI ngoài việc đảm bảo phát
hành đều đặn, liên tục, đúng thời hạn theo kế hoạch thì tạp chí còn phải tuân thủ các
điều kiện chặt chẽ khác như quá trình biên tập, về nội dung bài, quá trình xét duyệt,
hình thức xét duyệt. Muốn vậy, việc tác nghiệp của những tạp chí này chủ yếu phải
thực hiện qua mạng, qua hệ thống phần mềm, vì qua hệ thống này các công ước biên
tập quốc tế được lưu giữ trong hệ thống cơ sở dữ liệu (nội dung bài báo, tác giả và tài
liệu tham khảo được trích dẫn), Ban biên tập là ban biên tập quốc tế gồm các nhà khoa
học tiêu biểu cho các hướng chính của tạp chí có thể trao đổi tác nghiệp một cách hiệu
quả; bài gửi đăng được tiếp nhận và xử lý theo đúng thông lệ quốc tế, được phản biện
xi
kín, độc lập và khách quan.
Nhằm nâng cao hiệu quả của việc tiếp nhận, chọn lọc và phản biện, hiện nay một
số hội nghị trong nước và quốc tế đã đăng ký sử dụng dịch vụ quản lý và tổ chức hội
nghị khoa học của phần mềm Easychair [28], đây là một phần mềm được đặt tại máy
chủ của Khoa Khoa học máy tính thuộc Đại học Manchester. Việc nộp báo cáo của các
thành viên đều nộp qua mạng tại trang đó. Quá trình lấy bài, nhận xét và cho kết quả
phản biện của các thành viên trong Ban chương trình đều thực hiện trực tuyến thông
qua phần mềm. Việc cho điểm bài báo được các phản biện thực hiện khách quan theo
các tiêu chí và kèm theo nhận xét. Trao đổi thông tin giữa tác giả bài báo và thành viên
trong Ban chương trình hay giữa các thành viên trong Ban chương trình đều thực hiện
bằng email thông qua sự quản lý của hệ thống Easychair. Đối với kết quả phản biện,
những tác giả có bài được chấp nhận sẽ nhận được bản nhận xét và yêu cầu chỉnh sửa,
bài đã chỉnh sửa cũng sẽ được gửi lại thông qua phần mềm và cuối cùng là hệ thống sẽ
tự động lập danh sách mục lục tác giả, bài được tuyển chọn phục vụ cho việc in ấn.
Tạp chí Khoa học và Công nghệ Đại học Thái Nguyên thành lập theo quyết định
số 1571/QĐ-BGD&ĐT ngày 31 tháng 3 năm 2006 của Bộ trưởng Bộ Giáo dục và Đào
tạo; Giấy phép hoạt động báo chí số 149/GP-BVHTT ngày 17 tháng 04 năm 2001 do
Bộ Văn hóa Thông tin cấp và Giấy phép sửa đổi, bổ sung số 1270/GP-BTTTT ngày 26
tháng 8 năm 2010 do Bộ Thông tin và Truyền thông cấp với mục đích công bố các
công trình nghiên cứu khoa học và công nghệ của cán bộ, sinh viên Đại học Thái
Nguyên, của các nhà khoa học trong và ngoài nước; các thông tin về những kết quả
nghiên cứu và hoạt động khoa học công nghệ nổi bật của các đơn vị thành viên thuộc
Đại học Thái Nguyên. Sau hơn 10 năm hoạt động, Tạp chí đã góp một phần không nhỏ
trong việc quảng bá, nâng cao vị thế của Đại học Thái Nguyên trong lĩnh vực hoạt
động khoa học công nghệ, số lượng bài gửi đăng ngày càng lớn, chất lượng bài ngày
càng đòi hỏi được nâng cao. Để tiệm cận với chuẩn quốc tế, Tạp chí Khoa học và
Công nghệ Đại học Thái Nguyên cần tập trung nâng cao chất lượng các chuyên san,
xử lý linh hoạt và cải tiến hơn nữa trong quy trình phản biện, biên tập; nâng cao điểm
số công trình của bài báo; quảng bá rộng rãi hơn nữa các công trình nghiên cứu của tác
giả trên mạng.
Đề tài luận văn ” Nghiên cứu một số phương pháp tìm kiếm xấp xỉ và xây
dựng ứng dụng hỗ trợ lựa chọn phản biện cho tạp chí khoa học và công nghệ Đại
xii
học Thái Nguyên” tập trung nghiên cứu và thực hiện 2 nội dung chính sau:
1. Nghiên cứu một số bài toán lựa chọn phản biện tự động cho Hội nghị khoa học
đã được công bố và một số thuật toán tìm kiếm xấp xỉ và ứng dụng giải bài toán hỗ trợ
lựa chọn phản biện cho Tạp chí Khoa học.
2. Xây dựng ứng dụng hỗ trợ lựa chọn phản biện bài báo cho Tạp chí Khoa học
và Công nghệ Đại học Thái Nguyên.
Các kết quả đạt được trong luận văn này là kết quả trong quá trình học tập và
nghiên cứu của tác giả tại Trường Đại học Công nghệ Thông tin và Truyền thông.
Ngoài phần mở đầu, kết luận và tài liệu tham khảo, nội dung luận văn được trình bày
thành 3 chương. Chương 1 trình bày các vấn đề tổng quan về hệ thống lựa chọn phản
biện cho Hội nghị, tạp chí. Chương 2 trình bày các thuật toán so khớp mẫu và một
phương pháp tìm kiếm xấp xỉ hỗ trợ lựa chọn phản biện. Chương 3 là các kết quả đạt
được trong quá trình phân tích và thiết kế hệ thống và xây dựng ứng dụng hỗ trợ lựa
xiii
chọn phản biện bài báo cho Tạp chí Khoa học và Công nghệ Đại học Thái Nguyên.
CHƯƠNG 1. TỔNG QUAN
1.1. Tổng quan về hệ thống hỗ trợ lựa chọn phản biện
Việc chọn ra người phản biện có cùng hướng nghiên cứu với nội dung bài báo từ
cơ sở dữ liệu các nhà khoa học đảm bảo tính chất khách quan, đúng vấn đề cần phản
biện là điều hết sức cần thiết đối với một tạp chí, hội nghị khoa học. Muốn vậy, việc
phân loại và chọn phản biện cần phải dựa vào nội dung bài báo, hay phần tóm tắt bài
báo hoặc các từ khóa cho mỗi bài báo… Điều này thực sự hết sức khó khăn cho việc
tìm kiếm phản biện trong cơ sở dữ liệu các nhà khoa học nếu thực hiện thủ công và
thay vào đó ta cần có thuật toán hữu hiệu cho việc lựa chọn phản biện. Bài toán lựa
chọn phản biện bài báo cho tạp chí hay hội nghị không phải là bái toán mới, hiện nay
đã có rất nhiều tác giả đã nghiên cứu tìm lời giải cho bài toán trên nhiều góc độ khác
nhau, với các cách tiếp cận khác nhau. Một số cách tiếp cận như: Phương pháp của
Chumki Basu và cộng sự đề xuất khi chọn tập bài báo phù hợp với phản biện có sử
dụng kết hợp các kỹ thuật thu thập thông tin và cơ sở dữ liệu bằng cách khai thác các
nguồn thông tin từ web [4]; phương pháp chỉ mục ngữ nghĩa ẩn [5]; phương pháp mô
hình hóa chủ đề xác suất [6], phương pháp quy hoạch nguyên tuyến tính lựa chọn tập
người phản biện cho tập bài báo có xét đến các điều kiện ràng buộc [7]; phương pháp
luồng chi phí tối thiểu [8] và cách tiếp cận mô hình lai ghép tri thức trong lựa chọn
phản biện, đánh giá thẩm định cho các dự án nghiên cứu [9]. Gần đây, Tayal, Saxena,
Sharma, Khanna và Gupta đưa ra một phương pháp mới giải bài toán lựa chọn phản
biện trong chính sách tài chính của chính phủ [10]; Li và Watanabe đưa ra phương
pháp tự động lựa chọn phản biện cho bài báo dựa trên mức độ chuyên môn của phản
biện [11]; Long, Wong, Peng, và Ye đã đưa ra thuật toán xấp xỉ 1/3 nhằm giải bài toán
cực đại hóa sự bao phủ chủ đề chuyên môn trong lựa chọn phản biện [12], theo cách
tiếp cận này mỗi bài báo sẽ được lựa chọn phản biện sao cho các chủ đề của bài báo sẽ
được phủ hoàn toàn (mức độ phủ là lớn nhất) bởi chuyên môn của các nhà phản biện
và thỏa mãn 3 điều kiện: (1) mỗi bài báo được phản biện bởi một hay nhiều phản biện
ở trong trạng thái “sẵn sàng”; (2) mỗi phản biện sẽ phản biện số lượng bài báo không
lớn hơn số lượng bài quy định; (3) Không có sự xung đột giữa người phản biện và tác
giả, điều này có nghĩa là không xảy ra trường hợp tác giả hoặc đồng tác giả lại đóng
1
vai trò là người tham gia phản biện. Sau đây chúng tôi trình bày chi tiết một số phương
pháp tìm lời giải cho bài toán lựa chọn phản biện.
1.1.1. Thuật toán Kalmukov
Thuật toán lựa chọn phản biện cho bài báo dựa trên từ khóa được thiết kế bởi
Yordan Kalmukov năm 2006 [19], theo cách tiếp cận này thì giữa bài báo và phản biện
có chung với nhau ít nhất một từ khóa thì bài báo sẽ được đưa vào phản biện; từ khóa
bài báo và từ khóa của phản biện sẽ được chọn trong tập từ khóa cho trước; mỗi người
phản biện sẽ có số lượng bài báo cần phản biện không được vượt quá giới hạn cho
phép. Ngoài ra, khi lựa chọn phản biện thuật toán phải đảm bảo tính phân phối đều về
số lượng bài báo được phân cho các phản biện và được xác định bởi (1).
Noppr= ceil((Nop * Norpp) / Nor); (1)
Noppr: Số lượng bài báo được phân cho một người phản biện;
Nop: Số lượng bài báo; Norpp: Số lượng người phản biện cho một bài báo;
Nor: Số người phản biện; ceil: Hàm làm tròn trên.
Thuật toán lựa chọn phản biện phù hợp nhất cho mỗi bài báo dựa trên độ tương
tự và được xác định như sau:
Ta ký hiệu SF(Pi,Rj) là hàm xác định độ tương tự của bài báo Pi với phản biện
Rj và được xác định bởi công thức (2)
(2)
KWPi: Tập các từ khóa của bài báo Pi; KWRj: Tập các từ khóa của phản biện Rj;
count(S): Số lượng phần tử trong tập S.
KU: là tập các từ khóa được xác định bởi hội nghị;
Như vậy, công thức (2) cho thấy là đại lượng chỉ ra mức độ
phù hợp của bài báo và phản biện và là đại lượng để xác định Pi có thể được phân cho
phản biện Rj hay không.
Để rõ hơn các khái niệm này, ta xét một ví dụ cụ thể như sau:
Trong một hội nghị khoa học, tập các từ khóa được xác định là KU = {A, B, C,
D, E, F, G, H, I}; một bài báo có các từ khóa là KWP = {A, C, F}; xét 2 phản biện lần
lượt có tập các từ khóa là KWR1 = {B, C, F, G}; KWR2 = {A, F}. Xét trực quan ta dễ
thấy khả năng chuyên môn phản biện của R1 và R2 cho bài báo P là tương đương nhau,
vì họ đều có cùng số lượng từ khóa thuộc vào KWP. Trong trường hợp này, để tìm 2
được phản biện phù hợp nhất ta phải sử dụng đến hàm xác định độ tương tự SF(Pi,Rj)
và ta có SF(P,R1) = 2/5 < SF(P,R2) = 2/3. Vậy, từ hàm tương tự ta thấy bài báo P sẽ
được phân cho phản biện R2 là phù hợp hơn. Xét về mặt ý nghĩa thì việc phân bài báo
P cho phản biện R2 sẽ tiết kiệm được tài nguyên khi quan tâm tới giới hạn tối đa số bài
báo cho mỗi phản biện, vì count(KWR1)> count(KWR2), nên khả năng phản biện cho
bài báo khác của R1 là lớn hơn R2, hơn nữa nếu có một bài báo kế tiếp là P1 có KWP1 =
{B, G } cũng cần được phản biện và giả thiết mỗi phản biện chỉ phản biện tối đa là 01
bài báo. Khi đó, nếu ta phân P cho phản biện R1 thì khi đó bài báo P1 sẽ không có
người phản biện mặc dù R1 có chung 2 từ khóa với P1 (vì R1 đã bận phản biện cho P).
Vậy P được phản biện bởi R2 là phù hợp nhất.
Ta gọi, PS và RS lần lượt là các bản ghi thông tin về bài báo và người phản
biện và có cấu trúc như sau:
Thuật toán lựa chọn phản biện gồm 4 bước chính như sau:
Bước 1: Xây dựng ma trận độ tương tự K.
Trong bước này, mỗi bài báo Pi sẽ được tính độ tương tự với tất cả các phản
biện Rj ta thu được K[i]={ SF(Pi,Rj)}. Sau đó sắp xếp K[i] theo thứ tự giảm dần của độ
tương tự khi đó phản biện phù hợp nhất sẽ nằm trên đầu danh sách.
Hình 1. Bước 1-Xác định ma trận độ tương tự
Chuyển sang các bước sau, thuật toán xử lý hàng đầu tiên của ma trận, đó là
3
hàng gợi ý chọn phản biện phù hợp nhất. Lưu đồ sau chỉ ra quá trình thực hiện thuật
toán:
Hình 2. Bước 2 – Xây dựng mảng cấu trúc invlovedReviewers; Bước 3 – Xử lý
involvedReviewers và phân bài báo cho phản biện tại hàng đầu tiên của ma trận
K; Bước 4 – Kết thúc lựa chọn phản biện.
Tại Bước 2, thuật toán xây dựng mảng cấu trúc involvedReviewers nhằm khắc
4
phục hạn chế đối với những phản biện có số lượng bài báo vượt quá giới hạn cho phép,
cấu trúc được xác định như sau:
involvedReviewers[‘revUsername’][index][k_pid];[SFactor]
revUsername: Username của phản biện;
Sfactor: Độ tương tự bài báo và phản biện
Ví dụ: ta có bảng K là
involvedReviewers[‘R1’][1][k_pid]=2; [SFactor]=0.54
Độ tương tự lưu trong involvedReviewers được xác định bao gồm hằng số C,
mục đích của đại lượng C là để xác định và đảm bảo rằng nếu giữa bài báo và phản
biện có chung nhau ít nhất một từ khóa thì bài báo sẽ được phân cho phản biện đó (đối
với phản biện phù hợp nhất và có số lượng bài báo không vượt quá số lượng bài báo
cho phép). Đại lượng C được chia làm 2 phần, C= C1+C2.
C1 được xác định như sau:
If (number of non-zero SFs == 0){
C1 = max; (4)
}
else if (number of non-zero SFs > 2*(revsPerPaper – numberOfRevs for Pi)){
C1 = 0; (5)
}
else{
; (6)
}
Trong đó, number of non-zero SFs là số lượng các đại lượng đo độ tương tự
khác không đối với bài báo Pi; revsPerPaper số người phản biện cho mỗi bài báo, số
lượng này được xác định bởi hội nghị, thường chọn là 2 hoặc 3; numberOfRevs for Pi
là số người phản biện hiện thời được làm phản biện cho bài báo Pi.
Nếu người phản biện tại hàng đầu tiên của K[i] là phản biện duy nhất trong
hàng thì phản biện này (R) sẽ được gán cho bài báo Pi mà không cần quan tâm đến độ 5
tương tự của R với các bài báo khác. Nếu không có phản biện nào phù hợp với Pi (độ
tương tự bằng 0 trong K[i]) thì C1=0.
Đại lượng C2 đảm bảo rằng bài báo được gán cho phản biện thứ 2 là phản biện
có mức độ phù hợp thứ 2, C2 được xác định như sau:
C2 = 2 * (SF of first-suitable reviewer for Pi – SF of second-suitable reviewer
for Pi)
SF of first-suitable reviewer for Pi: Độ tương tự của phản biện thứ nhất đối với
Pi; SF of second-suitable reviewer for Pi: Độ tương tự của phản biện thứ 2 đối với Pi.
Trong quá trình thực hiện tại bước 3, thuật toán xác định bài báo sẽ được gán
cho phản biện nào trong hàng đầu tiên của ma trận K. Có thể minh họa cho bước này
bằng một ví dụ sau:
Nếu các điều kiện ràng buộc giới hạn đặt ra là mỗi phản biện được phản biện tối
đa là 2 bài báo, mỗi bài báo sẽ được phản biện bởi 2 người phản biện thì sau khi thực
hiện bước 2 ta được kết quả là
Sắp xếp lại involvedReviewers[‘R1’] theo thứ tự giảm dần của độ tương tự ta
được involvedReviewers[‘R1’]={P2, P5, P4, P1}.
Vì số lượng tối đa cho mỗi phản biện là 2 bài báo, nên P2 và P5 sẽ được gán
cho R1, quá trình thực hiện tiếp tục tại bước này và các bước sau được mô tả chi tiết
trong Hình 2. Trong trường hợp số lượng bài báo tối đa cho mỗi phản biện là khác
nhau (phụ thuộc vào chuyên môn và các điều kiện của phản biện) và số lượng phản
biện gán cho mỗi bài báo là khác nhau cũng đã được Maryam Karimzadehgan,
ChengXiang Zhai [7] đề xuất và đưa ra thuật toán tìm lời giải cho bài toán này.
1.1.2. Bài toán lựa chọn phản biện CMACRA
Năm 2009, Maryam Karimzadehgan và ChengXiang Zhai [7] mở rộng bài toán
của Yordan Kalmukov và đề xuất 2 thuật toán giải bài toán CMACRA
(ConstrainedMulti-Aspect Committee Review Assignment) bao gồm thuật toán
6
Greedy và thuật toán quy hoạch nguyên tuyến tính.
Bài toán CMACRA đặt ra là lựa chọn phản biện cho tập các bài báo sao cho
thỏa mãn 4 điều kiện sau:
(1) Mỗi bài báo sẽ được phản biện bởi ít nhất một phản biện luôn trong trạng
thái “sẵn sàng”;
(2) Số lượng bài báo cho mỗi phản biện không vượt quá giới hạn cho phép;
(3) Mỗi phản biện được gán cho mỗi bài báo phải có chuyên môn phù hợp với
bài báo;
(4) Chuyên môn tổng hợp của các phản biện phải phủ đủ tốt cho toàn bộ các
chủ đề của bài báo đề cập.
Để giải quyết các vấn đề của bài toán đặt ra, CMACRA được mô hình hóa như
sau: Gọi P={p1, p2,…,pn} là tập các bài báo pi; R={r1, r2,…,rm} - tập các phản biện ri;
NR={NR1, NR2,…, NRm} – tập các giới hạn số lượng bài báo cho mỗi phản biện, NRi là
số lượng bài báo tối đa cho phản biện ri; NP={NP1, NP2,…, NPm} – tập các số lượng
phản biện sẽ được gán cho mỗi bài báo, NPi là số lượng phản biện được gán cho bài
báo Pi. Kết quả tính toán sẽ cho ra một ma trận M={Mi,j}nxm, trong đó Mij {0,1}
(Mi,j=1 nếu ri là phản biện cho bài báo pj).
Các điều kiện ràng buộc (1) và (2) có thể được mô tả như sau:
; (7)
. (8)
Để đảm bảo đủ số lượng phản biện để phản biện cho các chủ đề của tất cả các
bài báo thì cần phải đảm bảo điều kiện .
Giả sử trong một hội nghị có k chủ đề khác nhau, ta ký hiệu là
tập các chủ đề, là ký hiệu chủ đề thứ i (mỗi chủ đề có thể được đặc trưng như là một
từ khóa mà đặc trưng chuyên môn của phản biện hay chủ đề bài báo đề cập sẽ được
lựa chọn trong tập này). Gọi và lần lượt là 2 ma trận chỉ mức độ tương tự của
các chủ đề với nội dung bài báo và độ tương tự của các chủ đề với chuyên môn phản
biện; , là mức độ tương tự của chủ đề , với bài báo pi;
là mức độ tương tự của chủ đề với chuyên môn của phản biện ri; mức độ tương
7
tự , .
Thuật toán Greedy giải bài toán gán phản biện cho bài báo được thực hiện như
sau:
Bước 1: Sắp xếp các bài báo theo thứ tự giảm dần về số lượng chủ đề mà bài
báo đề cập (Số lượng từ khóa của bài báo).
Bước 2: Chọn phản biện có mức độ chuyên môn phù hợp nhất cho bài báo đứng
đầu danh sách (phản biện có chuyên môn phủ các chủ đề bài báo đề cập).
Bước 3: Kiểm tra các ràng buộc: giới hạn về số lượng bài báo cho phản biện,
giới hạn về số lượng phản biện cho mỗi bài báo. Nếu đạt được giới hạn về số lượng bài
báo cho phản biện thì loại bỏ phản biện ra khỏi danh sách, làm tương tự như vậy đối
với bài báo nếu đạt được giới hạn về số lượng phản biện cho mỗi bài báo.
Bước 4: Lặp lại bước 2 cho đến khi các phản biện được gán cho tất cả các bài
báo.
Thuật toán thứ 2 mà Maryam Karimzadehgan sử dụng để tìm lời giải cho bài
toán CMACRA là thuật toán quy hoạch tuyến tính nguyên. Để sử dụng thuật toán này,
bài toán CMACRA được mô hình hóa như sau:
Nếu coi ti,j là số lượng phản biện có chuyên môn phủ chủ đề của bài báo pi,
thì bài toán đặt ra là tìm ti,j sao cho
; (9)
; (10)
và thỏa mãn điều kiện
(11)
Vậy, từ (9), (10), (11) kết hợp với các điều kiện (7), (8) ta có thể phát biểu bài
toán CMACRA như sau:
Tìm tìm ti,j sao cho
8
và thỏa mãn các điều kiện
1.1.3. Lựa chọn phản biện với thuật toán xấp xỉ 1/3
Tiếp tục mở rộng các kết quả của Maryam Karimzadehgan, năm 2013, Cheng
Long và cộng sự [12] đã xét bài toán khi bổ sung các ràng buộc xung đột giữa tác giả
và phản biện (COI-conflict of interest) đồng thời đưa ra thuật toán xấp xỉ 1/3 giải bài
toán lựa chọn phản biện đảm bảo cực đại hóa phủ chủ đề. Các ràng buộc COI được xét
đến ở đây gồm một số dạng như: phản biện được lựa chọn và tác giả bài báo lại là
đồng tác giả cho một số bài báo; mối quan hệ đồng nghiệp; mối quan hệ là thầy trò,
tác giả bài báo là thầy hướng dẫn của người phản biện….Có thể nói bổ sung ràng buộc
COI đảm bảo cho quá trình lựa chọn phản biện thực sự có tính khách quan nhằm nâng
cao chất lượng phản biện cho hội nghị.
Bài toán mà Cheng Long đưa ra được gọi là bài toán MaxTC-PRA (Maximum
Topic Coverage Paper- Reviewer Assignment), bài toán đặt ra là lựa chọn phản biện
cho bài báo sao cho tổng số các chủ đề khác nhau của bài báo được phủ bởi chuyên
môn của các phản biện là cực đại và thảo mãn 3 điều kiện: Mỗi bài báo phải được
phản biện bởi phản biện; Mỗi phản biện phản biện không quá bài báo; thỏa mãn
ràng buộc COI giữa tác giả bài báo và phản biện được chọn. Bài toán MaxTC-PRA
được mô hình hóa như sau: Gọi P={p1, p2,…,pn} là tập các bài báo pi; R={r1, r2,…,rm} -
tập các phản biện ri; T={t1, t2,…,tk} - tập các chủ đề; mỗi bài báo pi được đặc trưng bởi
các chủ đề trong miền T, ký hiệu là T(pi); mỗi phản biện rj được đặc trưng bởi các chủ
đề trong miền T, ký hiệu là T(rj); M=(pi, rj) là một phép gán (lựa chọn) bài báo pi với
phản biện rj (rj phản biện cho bài báo pi, M.p=pi, M.r=rj); A P x R là tập tất cả các
là số lượng các phép gán, A(pi)={M: M A, M.p=pi}, A(rj)= {M: M A, M.r=rj};
chủ đề của bài báo pi. Như vậy Bài toán MaxTC-PRA được phát biểu như sau:
9
Tìm tập các phép gán A sao cho
(12)
(13)
(14)
, C là tập COI (15)
Các kết quả trong [10] đã chỉ ra rằng đây là bài toán NP khó, để giải bài toán
này Cheng Long sử dụng thuật toán Greedy xấp xỉ 1/3. Thuật toán được mô tả như
sau:
Thuật toán Greedy
Ø){
thỏa mãn các điều kiện ràng buộc)
;
Input: P={p1, p2,…,pn}; R={r1, r2,…,rm}; C Output: Nghiệm xấp xỉ của bài toán MaxTC-PRA A=Ø U=PxR-C While (U
Chọn M U sao cho if ( } Return A
KẾT LUẬN CHƯƠNG 1
Trong chương này, chúng tôi trình bày tổng quan về bài toán hỗ trợ lựa chọn
phản biện và các phương pháp giải quyết bài toán đã được công bố như Thuật toán
10
Kalmukov, Bài toán lựa chọn phản biện CMACRA, Thuật toán Greedy xấp xỉ 1/3.
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1. Một số phương pháp so khớp mẫu trong tính toán độ gần tựa ngữ nghĩa
Bài toán xác định độ gần ngữ nghĩa ngày càng được nhiều tác giả quan tâm và
có nhiều ứng dụng trong thực tế do sự tăng trưởng nhanh chóng của các hệ thống tìm
kiếm thông tin [20, 24, 25]. Các kết quả nghiên cứu thường tập trung vào các phương
pháp thống kê sử dụng độ đo dựa vào sự xuất hiện của từ, tần suất xuất hiện của từ [2,
21], độ đo Levenshtein tìm khoảng cách giữa hai từ [24]… hoặc các phương pháp dựa
trên quan hệ ngữ nghĩa giữa các từ. Phương pháp thống kê có ưu điểm tốc độ xử lý
nhanh đối với hệ thống dữ liệu lớn.Vì vậy, trong nội dung luận văn này chúng tôi tập
trung nghiên cứu phương pháp thống kê làm cơ sở lý thuyết cho việc xây dựng thuật
toán lựa chọn phản biện bài báo cho tạp chí.
Các nhà khoa học tham gia phản biện và các từ khóa chuyên môn được cập nhật
thường xuyên làm cho cơ sở dữ liệu ngày càng lớn.Vì vậy, nếu sử dụng nội dung bài
báo hay tóm tắt bài báo để làm dữ liệu tìm kiếm trong cơ sở dữ liệu phản biện sẽ phải
chấp nhận chi phí khá lớn về thời gian tính toán.Điều này hoàn toàn không khả thi mà
thay vào đó mỗi bài báo sẽ được đặc trưng bởi một số từ khóa, các từ khóa này sẽ
đóng vai trò là dữ liệu đầu vào cho thuật toán. Kết quả của thuật toán là danh sách các
phản biện được sắp xếp theo thứ tự ưu tiên về chuyên môn gần nhất với bài báo. Độ ưu
tiên gần nhất về chuyên môn với bài báo được hiểu là độ gần ngữ nghĩa giữa từ khóa
chuyên môn phản biện và từ khóa bài báo.Trong đó, độ gần ngữ nghĩa là đại lượng
dùng để phản ánh sự giống nhau về nội dung, ý nghĩa giữa hai hay nhiều đối tượng. Từ
khóa là tập hợp các từ đơn được sắp xếp như một từ ghép nhằm chỉ sự đặc trưng của
một đối tượng. Như vậy, bài toán tìm phản biện được quy về bài toán tính độ gần nghữ
nghĩa giữa các xâu ký tự. Bài toán xác định độ gần ngữ nghĩa được phát biểu như sau:
Cho xâu mẫu P=P0P1…Pm và xâu đích T=T0T1…Tn (m ≤ n) trên cùng một bảng chữ cái
A. Cần tìm độ gần ngữ nghĩa giữa xâu mẫu P và xâu đích T. Lời giải cho bài toán này
đã được nhiều tác giả nghiên cứu. Để rõ hơn, sau đây chúng tôi trình bày một số thuật
toán làm cơ sở lý thuyết cho ứng dụng, trong đó bao gồm các thuật toán đối sánh mẫu.
2.1.1. Thuật toán Brute Force
Đối sánh mẫu là một chủ đề quan trọng của lĩnh vực xử lý văn bản. Bài toán so
11
mẫu chính xác tổng quát được phát biểu là: Cho xâu mẫu P và xâu đích (văn bản) T
trên cùng bảng chữ cái A. Tìm một sự xuất hiện của P trong T. Thuật toán cơ bản nhất
tìm lời giải cho bài toán là thuật toán Brute Force [24] với độ phức tạp của thuật toán
là O(mn), tư tưởng của thuật toán là kiểm tra tất cả các vị trí trong T từ vị trí đầu tiên
đến vị trí thứ n-m, mỗi vị trí thứ i thuật toán thực hiện so sánh T[i,i+1,…,i+m-1] với
xâu mẫu P, nếu thấy thì trả về vị trí i, nếu không thấy thì tiếp tục dịch sang vị trí thứ
i+1. Nhược điểm của thuật toán này là kiểm tra tất cả các vị trí i (i=0,1,…,n-m) mà
không quan tâm tới khả năng xuất hiện xâu mẫu hay không ở mỗi vị trí. Giả mã của
int BFmatcher(int n, int m){ int i = 0, s = 0; int matched = 1; for(i = 0; i <= n-m+1; i++){ s = 0; matched = 1; while((matched) && (s <= m-1)){ if (T[i+s] != P[s+1]){ matched = 0; }else { s++; } } if(matched){ return i; } } return -1; // -1 is NONE }
thuật toán như sau:
Có thể thấy với mỗi vòng lặp, chúng ta mất tối đa mm phép so sánh để kiểm tra
xâu P có xuất hiện trong văn bản hay không. Do đó: Thời gian tìm xâu mẫu P trong
văn bản T của giải thuật là O(mn).
2.1.2. Thuật toán Knuth-Morris-Pratt
Khắc phục hạn chế của thuật toán Brute Force, Knuth, Donald E., James H.
Morris, Jr và Vaughan R. Pratt [22] đã đề xuất thuật toán tìm kiếm KMP có độ phức
tạp tuyến tính O(n+m), ý tưởng chính của thuật toán là tìm kiếm vị trí của xâu mẫu P
trong T, nếu tìm thấy vị trí sai thì chuyển sang vị trí tìm kiếm tiếp theo và quá trình tìm
kiếm sau này sẽ được tận dụng thông tin từ quá trình tìm kiếm trước để không phải
kiểm tra những vị trí mà chắc chắn là vị trí không xuất hiện xâu mẫu P. Thuật toán
12
KMP được mô tả như sau:
Input: P, T Output: Vị trí của mẫu P xuất hiện trong T Thuật toán 1 i=0; l=0; pos=l; matched=0 ; while(l + i<= n){ if(P[i] ==T[l + i]){ i:= i + 1; if(i==m){ matched=1;returnpos; } } else if(KMP[i] > -1){ i=KMP[i];l=l + i - KMP[i];pos=l; } else{ i= 0;l=l + 1;pos=l; } } Return {pos, matched}
Trong đó, matched là biến cho giá trị là 0 nếu không tìm thấy và giá trị là 1 nếu
tìm thấy P xuất hiện trong T; pos là vị trí xuất hiện của P trong T;KMPlà bảng đối sánh
một phần, với sự xuất hiện của KMP cho thấy thuật toán thực hiện với độ phức tạp là
O(n), mục đích của bảng là cho phép thuật toán so sánh mỗi ký tự của T không quá
một lần. Thuật toán xác định bảng KMP được mô tả như sau:
Input:P
Output: Bảng KMP
Thuật toán tạo bảng KMP
KMP[0]=-1;
KMP[3]= 0;
i=2;
j=0;
while(i
i=i + 1; j=j + 1;
}
else if (j> 0) j=KMP[j];
else{
KMP[i]= 0; i=i + 1;
}
}
Độ phức tạp của thuật toán xây dựng bảng KMP là O(m).
2.2. Phương pháp quy hoạch động và ứng dụng trong lựa chọn phản biện
Trong nhiều ứng dụng tìm kiếm thực tế, mẫu P hoặc chuỗi văn bản T xảy ra các
13
“lỗi” do các nguyên nhân khác nhau như sự thay đổi hình thái từ hay các lỗi chính tả
như thêm, bớt hay thay đổi ký tự trong từ thì đòi hỏi hệ thống tìm kiếm cần phải linh
hoạt và mềm dẻo hơn mà vẫn cho kết quả như mong muốn, và cụ thể là trong ứng
dụng tìm độ gần ngữ nghĩa giữa từ khóa bài báo và từ khóa người phản biện. Ví dụ:
nếu cho xâu mẫu P=”approximate searching” và văn bản T=”approximated
searching”, nếu sử dụng các thuật toán đối sánh chính xác thì dễ thấy P không xuất
hiện trong T. Nhưng thực tế có thể thấy giữa P và T có nội dung gần giống nhau do có
sai khác ký tự “d”. Chính vì vậy, lý thuyết so mẫu xấp xỉ ra đời cho phép tìm kiếm
những thông tin gần giống và mang lại kết quả mềm dẻo hơn. Bài toán so mẫu xấp xỉ
là sự mở rộng của bài toán so mẫu chính xác và đặt ra yêu cầu là tìm vị trí xuất hiện
của P trong T với số “lỗi” tối đa là e “lỗi”. Như vậy bài toán so mẫu xấp xỉ có thể được
quy về bài toán tìm khúc con chung dài nhất giữa hai xâu ký tự và lời giải được chấp
nhận nếu như độ dài của khúc con chung có độ lệch không quá e ký tự so với mẫu P.
Đã có nhiều phương pháp tìm xâu con chung dài nhất như phương pháp quy hoạch
động tìm khoảng cách Edit (hay còn goi là khoảng cách Levenshtein) [23] hoặc các
phương pháp đối sánh mẫu theo cách tiếp cận otomat hữu hạn mờ [1],... Các phương
pháp này còn được sử dụng khi xét sự tương đồng về mặt ngữ nghĩa khi thứ tự các từ
trong xâu được bảo toàn.
2.2.1. Phương pháp quy hoạch động
Khái niệm Khoảng cách Levenshtein (hay còn gọi là khoảng cách Edit) thể hiện
khoảng cách khác biệt giữa 2 chuỗi ký tự. Khoảng cách Levenshtein giữa chuỗi S và
chuỗi T là số bước ít nhất biến chuỗi S thành chuỗi T thông qua 3 phép biến đổi là:
Xoá 1 ký tự; thêm 1 ký tự; thay ký tự này bằng ký tự khác.
Khoảng cách này được đặt theo tên Vladimir Levenshtein, người đã đề ra khái
niệm này vào năm 1965. Nó được sử dụng trong việc tính toán sự giống và khác nhau
giữa 2 chuỗi, như chương trình kiểm tra lỗi chính tả của winword spellchecker. Ví dụ:
Khoảng cách Levenshtein giữa 2 chuỗi "kitten" và "sitting" là 3, vì phải dùng ít nhất 3
lần biến đổi.
kitten -> sitten (thay "k" bằng "s")
sitten -> sittin (thay "e" bằng "i")
14
sittin -> sitting (thêm ký tự "g")
Để tính toán Khoảng cách Edit, ta sử dụng thuật toán quy hoạch động, tính
toán trên mảng 2 chiều (n+1)*(m+1), với n, m là độ dài của chuỗi cần tính. Sau đây là
thuật toán quy hoạch động (S, T là chuỗi cần tính khoảng cách, n, m là độ dài của
chuỗi S, T):
Thuật toán quy hoạch động tìm khoảng cách Edit giữa hai xâu ký tự
Input: S, T
Output: Edit distance
int Edit_distance(S, T){
for (int i = 0; i <= m; i++)
d[i, 0] = i;
for (int j = 0; j <= n; j++)
d[0, j] = j;
for (int i = 0; i <= m; i++)
for (int j = 0; j <= n; j++)
{
if (S[i] == T[j])
cost = 0;
Else
cost = 1;
d[i + 1, j + 1] = Min(d[i, j + 1] + 1, d[i + 1, j] + 1, d[i, j] + cost);
}
return d[i,j];
}
Trong mục này, chúng tôi xây dựng thuật toán lựa chọn phản biện dựa trên
phương pháp quy hoạch động. Việc chọn ra người phản biện có cùng hướng nghiên
cứu với nội dung bài báo từ cơ sở dữ liệu các nhà khoa học đảm bảo tính chất khách
quan, đúng vấn đề cần phản biện là điều hết sức cần thiết đối với một tạp chí khoa học.
Muốn vậy, việc phân loại và chọn phản biện cần phải dựa vào nội dung bài báo, hay
phần tóm tắt bài báo hoặc các từ khóa cho mỗi bài báo. Trong trường hợp sử dụng nội
dung bài báo hay tóm tắt bài báo để làm dữ liệu tìm kiếm trong cơ sở dữ liệu phản biện
sẽ phải chấp nhận chi phí khá lớn về thời gian tính toán. Điều này hoàn toàn không
khả thi mà thay vào đó mỗi bài báo sẽ được đặc trưng bởi một số từ khóa, các từ khóa
này sẽ đóng vai trò là dữ liệu đầu vào cho thuật toán. Kết quả của thuật toán là danh
sách các phản biện được sắp xếp theo thứ tự ưu tiên về chuyên môn gần nhất với bài
báo. Độ ưu tiên gần nhất về chuyên môn với bài báo được hiểu là độ gần ngữ nghĩa
giữa từ khóa chuyên môn phản biện và từ khóa bài báo.Trong đó, độ gần ngữ nghĩa là
đại lượng dùng để phản ánh sự giống nhau về nội dung, ý nghĩa giữa hai hay nhiều đối
tượng. Từ khóa là tập hợp các từ đơn được sắp xếp như một từ ghép nhằm chỉ sự đặc
trưng của một đối tượng. Như vậy, bài toán tìm phản biện được quy về bài toán tính độ
15
gần nghữ nghĩa giữa các xâu ký tự.
2.2.2. Thuật toán lựa chọn phản biện
Bài toán lựa chọn phản biện cho bài báo (RAP) được mô hình hóa như sau: Mỗi
phản biện được đặc trưng bởi tập các từ khóa , (i = 1,2,…, M); bài
báo được đặc trưng bởi các từ khóa . Theo cách tiếp cận này, chúng tôi
đưa ra khoảng cách chuyên môn làm thước đo trong lựa chọn phản biện, khoảng cách
chuyên môn giữa phản biện được xác định là nếu phản biện có chung
với bài báo ít nhất một từ khóa, trong đó ci là số lượng từ khóa dùng chung giữa
và , Max là hằng số dương lớn tùy ý, thông thường chọn Max >> ci; d là một hằng
số dương và chọn sao cho 0
và thỏa mãn , ở đây Dk là miền ràng
buộc mà Rk phải thỏa mãn như: các ràng buộc về tính sẵn sàng hoặc là các điều kiện
về số lượng tối đa bài báo dành cho mỗi phản biện,….
Việc xác định các từ khóa dùng chung giữa phản biện và bài báo một cách
chính xác hay các từ khóa được định nghĩa từ trước thì ta có thể sử dụng các thuật toán
so khớp đã trình bày ở mục 1.2.1 và mục 1.2.2, trong trường hợp này đã có nhiều kết
quả được công bố như đã trình bày ở phần tổng quan (mục 1.1). Tuy nhiên, trong
trường hợp các từ khóa là không được định nghĩa trước trong cơ sở dữ liệu, các từ
khóa giữa phản biện và bài báo có thể giống nhau về nội dung nhưng lại khác nhau về
hình thái từ khi đó sử dụng thuật toán so khớp mẫu chính xác sẽ không mang lại hiệu
quả mà thay vào đó ta sẽ sử dụng các phương pháp tìm kiếm xấp xỉ.
Trước hết chúng tôi định nghĩa từ khóa được gọi là từ dùng chung giữa phản
biện và bài báo như sau: Với hằng số dương e cho trước, nếu khoảng cách Edit giữa từ
khóa bài báo Pk và từ khóa phản biện Rij không lớn hơn e thì từ khóa đó được gọi là từ
khóa chung giữa bài báo và phản biện Rij. Như vậy, bài toán đặt ra là tìm kiếm xấp xỉ
sự xuất hiện của một mẫu trong văn bản với sai số cho phép là e ký tự. Ví dụ cho từ
khóa bái báo là Matching và d = 0.5, các từ khóa phản biện được cho trong Bảng 1
Keyword
ReviewerID
1
2
1
3
Matching
Random sequence
Paper reviewer assignment
Machanics
16
2
1
Machining
Dynamic programming
Bảng 1: Các từ khóa của phản biện (ReviewerKeyword)
ReviewerID
1
2
3
Expertise distance
0.5
x
x
Thuật toán thực hiện 2 việc chính, việc thứ nhất là tính toán khoảng cách chuyên
Bảng 2: Khoảng cách chuyên môn (ExpertiseDistance)
môn và phần thứ 2 là thực hiện tìm kiếm, kết quả tìm kiếm là những phản biện có
khoảng cách chuyên môn nhỏ nhất và thỏa mãn các điều kiện ràng buộc của bài toán
đặt ra. Thuật toán được mô tả như sau:
Thuật toán tìm kiếm xấp xỉ
Input: P, R,e,d, Max, Sum=
Output: Return reviewer Rk that satifies (1)
struct ReviewerKeyword {
int ReviewerID;
char Keyword [Length];
};
struct ExpertiseDistance {
int ReviewerID;
double Distance;
};
struct ReviewerKeyword RK[Sum];
struct ExpertiseDistance ED[M];
int ApproximateSearching(P, R,e,d, Max){
for (int i = 1; i <= M; i++)
ED(i). Distance=Max;
for (int i = 1; i <= Sum; i++)
for (int j = 1; j <= n; j++){
= Edit_distance(Pj, RK(i). Keyword);
if ( <=e){
Finding k such that ED(k). ReviewerID is equal
RK(i). ReviewerID;
if (ED(k). Distance>d)
ED(k). Distance=d;
Else
ED(k). Distance= ED(k). Distance-1/Max
Break;
}
}
Finding k such that ED(k).Distance =min1≤i≤M{ED(i).Distance} and satisfying the
constraints in (1).
return ED(k).ReviewerID;
}
17
Trong trường hợp hình thái từ khóa của phản biện và từ khóa bài báo có sự thay
đổi nhưng có cùng ý nghĩa hay mô tả cùng một chủ đề, khi đó chúng tôi phân tách các
từ khóa bài báo thành các từ đơn. Ví dụ: Từ khóa bài báo là “string matching” và từ
khóa phản biện là “pattern matching”, các từ khóa này cùng mô tả một nội dung là kỹ
thuật so khớp. Tuy nhiên, nếu tính khoảng cách chuyên môn của phản biện và bài báo
bằng khoảng cách Edit thì khoảng cách này sẽ là 5. Nếu e <5 thì kết quả của thuật toán
cho thấy không có sự liên quan nào giữa bài báo và phản biện. Vì vậy, để khắc phục
hạn chế này chúng tôi sử dụng thuật toán sau:
Algorithm 5: Modified version of algorithm 4 for Approximate searching
int ApproximateSearching(P, R,e,d, µ, Max){
for (int i = 1; i <= M; i++)
ED(i). Distance=Max;
for (int i = 1; i <= Sum; i++)
for (int j = 1; j <= n; j++){
= Edit_distance(Pj, RK(i). Keyword);
if ( <=e){
Finding k such that ED(k). ReviewerID is equal
RK(i). ReviewerID;
if (ED(k). Distance>d)
ED(k). Distance=d;
Else
ED(k). Distance= ED(k). Distance-1/Max;
Break;
}
else{
If(Pj is substring of RK(i). Keyword
or RK(i). Keyword is substring of Pj){
if (ED(k). Distance> µ)
ED(k). Distance= µ;
Else
ED(k). Distance= ED(k). Distance-1/Max
Break;
}
}
Finding k such that ED(k).Distance =min1≤i≤M{ED(i).Distance} and satisfying
constraints
D(Rk,P)≤µ and Rk∊ Dk;
return ED(k).ReviewerID;
}
Trong Thuật toán này, chúng tôi sử dụng tham số µ thay thế d trong trường hợp
hình thái từ khóa có sự thay đổi mà và d là đại lượng thỏa mãn 0
18
sự xuất hiện của Pj trong RK(i). Keyword hoặc sự xuất hiện của RK(i).
Keyword trong Pj, chúng tôi sử dụng thuật toán so khớp như đã trình bày trong mục
1.2.1 và mục 1.2.2.
Sau đây chúng tôi trình bày một số kết quả thử nghiệm cho thuật toán nhằm
minh họa và khẳng định tính đúng đắn cho thuật toán: Đặt e=2, μ = 0.5, d=0.1 và
Max=10000. Bài báo có các từ khóa là {Pattern matching; Dynamic programming;
Edit distance; Reviewer keyword; paper reviewer assignment}. Bảng RK được cho
như sau:
Table -3: Example to illustrate algorithm
Reviewer ReviewerID
Keyword
R1
1
1
1
2
R2
2
2
3
R3
3
4
4
R4
4
4
4
Machine learning
Dynamic programming
Random sequence
Clinical Document
Architecture
Drug bills
String matching
Soft computing
Artificial neural
network
String matching
Paper reviewer
assignment
Dynamic programming
Neural network
Reviewer’s keyword
Bảng 3: Bảng RK minh họa thuật toán
Các kết quả tinh toán được cho trong bảng sau
ReviewerID
Relevance keywords
Expertise
distance
4
0.0998
Paper reviewer
assignment; Dynamic
programming,
Reviewer’s keyword
0.1000 Dynamic programming
0.5000
String matching
1
2
Bảng 4: Kết quả thực hiện thuật toán
Sau khi tính toán, thuật toán trả về kết quả các ứng viên là R4, R1, R2. R4 phủ 3
trong 5 từ khóa của bài báo và có khoảng cách chuyên môn là 0.0998, đây là khoảng
cách nhỏ nhất trong tập các khoảng cách chuyên môn. Vậy bài báo sẽ được gán cho
phản biện R4. Nếu R4 không thỏa mãn các điều kiện ràng buộc như bận hoặc đã đủ số
lượng bài báo để phản biện thì thuật toán sẽ xét tới R1 (R4∉D4). Nếu R1∉D1 thì thuật
19
toán xét tới R2, Nếu R2∉D2 thì kết quả sẽ không có phản biện để phản biện bài báo.
Một vấn đề đặt ra là nếu có nhiều phản biện có cùng khoảng cách chuyên môn với bài
báo thì bài báo sẽ được gán cho phản biện có số lượng từ khóa ít hơn vì xác suất bận
cho phản biện các bài báo khác đối với phản biện này là thấp hơn.
2.3. Otomat hữu hạn mờ và ứng dụng trong lựa chọn phản biện bài báo
2.3.1. Độ gần tựa ngữ nghĩa theo mô hình Otomat hữu hạn mờ
Trong mục trước chúng tôi đề xuất thuật toán tìm kiếm phản biện dựa trên
phương pháp quy hoạch động [23], Tuy nhiên, trong trường hợp cấu trúc thứ tự từ bị
thay đổi nhưng vẫn phản ánh cùng một vấn đề thì sử dụng các phương pháp này lại
cho kết quả không mong muốn. Ví dụ: P=”logic toán” và T=”toán logic”, dễ thấy nếu
sử dụng khoảng cách Edit để đo sự tương đồng ngữ nghĩa thì độ tương đồng rất thấp
(khoảng cách Edit là rất lớn), mặc dù chúng có cùng phản ánh một nội dung. Khắc
phục vấn đề này, chúng tôi đã tách từ khóa thành các từ đơn và đã đưa ra thuật toán
hữu hiệu trong quá trình tìm kiếm. Trong mục này, chúng tôi giải quyết vấn đề theo
một cách tiếp cận khác đó là sử dụng thuật toán xác định độ gần ngữ nghĩa bằng việc
xây dựng độ mờ [2], hàm mờ có tính chất như sau:
0 ≤ ≤ 1, hàm có giá trị càng lớn nếu P càng “gần” T.
=0, nếu P không chứa trong T hay P không phản ánh bất kỳ một nội
dung nào của T.
=1, nếu P chứa trong T hay nội dung của T hoàn toàn được phản ánh bởi
P, trong trường hợp này có thể coi = =1.
Như vậy, để xác định độ gần ngữ nghĩa giữa P và T thì hàm mờ được xác định
như sau:
(16)
Trong đó
i: là số khối có độ dài l được trích ra từ P xuất hiện trong S. Thuật toán có thể được mô
tả như sau:
Input:P, T
Output:Độ mờ
Thuật toán 2
H=0;
20
for(l=1;l<=m;l++)
for(i=0;i<=m-l;i++)
if(khối (l,i) của P xuất hiện trong T)
H=H+l;
M=0;
for(l=1;l<=m;l++)
M=M+(m-l+1)*l;
;
Trong thuật toán, việc kiểm tra sự xuất hiện của khối (l,i) trong T có thể thực
hiện bằng các thuật toán trong mục 2 hoặc bằng thuật toán theo cách tiếp cận mờ nhiều
lần lặp mẫu trong [1]. Theo cách trên thì thuật toán tính độ mờ có phép so
khớp mẫu, trong trường hợp cần phải so khớp với R chuỗi T khác nhau thì số phép so
khớp sẽ là nếu mỗi T là một từ khóa thuộc một bản ghi, R là số bản ghi
trong cơ sở dữ liệu, nếu R lớn thì việc tính toán mất khá nhiều thời gian. Để khắc phục
nhược điểm này, các kết quả trong [2] đã đưa ra một mô hình otomat cải tiến và chỉ
cần một lần tính cấu trúc otomat trong khâu tiền xử lý mẫu.
Lý thuyết otomat là một công cụ hữu ích cho các hệ thống trạng thái hữu hạn.
Trong phạm vi luận văn này, chúng tôi lựa chọn mô hình otomat hữa hạn mờ
không có trạng thái kết thúc; trong đó A là bảng chữ cái ;
Ap gồm các ký tự xuất hiện trong mẫu P; {#} là tập các ký tự không có mặt trong P; Q
là hàm chuyển trạng. Sau tập hữu hạn các trạng thái mờ; q0 là trạng thái ban đầu;
đây là một số ký hiệu được dùng trong thuật toán: Cho 2 số nguyên ký hiệu
pred(P) là tiền tố của xâu mẫu P được xác định là khúc đầu d ký tự của P; suff(P) là
hậu tố xâu mẫu P và được xác định là khúc cuối gồm f ký tự của P; quy ước
pre0(P)=suf0(P)= ( : xâu rỗng); P(f,d)=suff(pred(P)); (f,d) được gọi là tương đương
với (f’,d’) nếu P(f,d)=P(f’,d’) và ký hiệu là [f,d], cặp (f,d) được gọi là có nghĩa với P
nếu cặp có d nhỏ nhất trong lớp [f,d]; cho u, v
là các xâu ký tự, ký hiệu lfact(v,u)là khúc cuối y dài nhất của v sao cho y cũng là một
khúc con của u. Otomat mờ được xác định như sau: Tập trạng thái
Q={(f,d,k,flag):(f,d) là cặp có nghĩa với P}, k là số khối có độ dài f của P giống nhau;
flag là thành phần ghi nhớ trạng thái tham gia vào quá trình tính độ gần ngữ nghĩa, nếu
trạng thái chưa được sử dụng vào việc tính độ gần ngữ nghĩa thì flag=0, nếu đã được
sử dụng thì flag=1; trạng trạng thái đầu q0=(0,0,0,0); hàm chuyển
21
và được lưu trong bảng chuyển trạng, trong đó ,
được xác định là cặp . Sau đây là thuật toán tính độ gần ngữ
nghĩa giữa P và T.
Input:P, T, Otomat B, M
Output:Độ gần ngữ nghĩa
Thuật toán 3
H=0;
q0=(0,0,0,0);
for(i=0;i
if(q.flag==0){
H=H+q.k*q.f;
q.flag=1;
}
q0=q;
}
;
Như vậy thuật toán trên chỉ cần tính cấu trúc otomat một lần, việc tính toán độ gần
ngữ nghĩa là O(n). Với cấu trúc otomat có thành phần flag thì những trạng thái đã được
xét sẽ không cần phải xét lại, điều này làm giảm đáng kể thời gian tính toán so với thuật
toán 2.
2.3.2. Thuật toán lựa chọn phản biện
Mỗi phản biện Ci(i=1,2,…,K) được đại diện bởi tập từ khóa , ri là
số từ khóa của phản biện Ci; Bài báo cần phản biện J được đại diện bởi tập các từ khóa
{J1,J2,…,Jt}. Bài toán đặt ra là trên cơ sở tập từ khóa bài báo và từ khóa chuyên môn
của các nhà phản biện, ta cần xác định độ gần chuyên môn của bài báo với phản biện
. Độ gần chuyên môn Ci, ký hiệu độ gần chuyên môn của bài báo với phản biện Ci là
của bài báo với phản biện Ci được xác định là
(17)
22
trong đó
p: là số khối có độ dài l được Ký hiệu mj là độ dài của từ khóa Jj;
Thuật toán tìm độ gần trích ra từ Jj xuất hiện trong Cik;
chuyên môn được mô tả như sau:
Input:Từ khóa các nhà phản biện: , i=1,2,…,K
Từ khóa báo báo: {J1,J2,…,Jt}
Output:Danh sách các phản biện được sắp xếp theo thứ tự giảm dần về
độ gần chuyên môn.
Thuật toán 4
for (i=1;i<=K;i++){
X=0;M=0;
for(j=1;j<=t;j++){
Khởi tạo otomat Bj đối với Jj;
for(k=1;k<=ri;k++)
X=X+H(Jj, Cik);
M=M+H(Jj,Jj);
}
M=ri*M;
}
Với cấu trúc otomat như trong mục 3, hàm H(Jj,Jj) được xây dựng như trong
thuật toán 2 và H(Jj, Cik) được xây dựng như trong thuật toán 3. Sau khi tính được độ
gần chuyên môn , ta sắp xếp danh sách các phản biện Ci theo thứ tự giảm dần của
. Như vậy, sau khi thực hiện thuật toán ta được danh sách phản biện được sắp xếp
23
theo mức độ ưu tiên có chuyên môn gần với bài báo.
KẾT LUẬN CHƯƠNG 2
Trong chương này, chúng tôi trình bày về các thuật toán so khớp mẫu. Các
thuật toán so khớp mẫu là cơ sở cho việc xây dựng hệ thống lựa chọn phản biện bao
gồm 2 thuật toán là Thuật toán Brute Force và thuật toán Knuth-Morris-Pratt.
Các thuật toán lựa chọn phản biện được chúng tôi sử dụng để xây dựng ứng
dụng là các thuật toán lựa chọn phản biện dựa trên các phương pháp tìm kiếm xấp xỉ
bao gồm: phương pháp quy hoạch động và phương pháp tính độ gần ngữ nghĩa theo
cách tiếp cận Otomat hữu hạn mờ. Các kết quả của chương này sẽ là cơ sở lý thuyết
24
cho việc xây dựng ứng dụng và được trình bày ở Chương 3.
CHƯƠNG 3. XÂY DỰNG ỨNG DỤNG
3.1. Phát biểu bài toán
Bài toán hỗ trợ lựa chọn phản biện được phát biểu như sau: Bài báo được đặc
trưng bởi các từ khóa P, người phản biện được đặc trưng bởi bộ từ khóa R, trên cơ sở
từ khóa bài báo và từ khóa chuyên môn của người phản biện tìm danh sách các phản
biện được sắp xếp theo thứ tự ưu tiên giảm dần về độ gần chuyên môn với bài báo.
Input:Từ khóa các nhà phản biện: , i=1,2,…,K
Từ khóa báo báo: {J1,J2,…,Jt}
Output:Danh sách các phản biện được sắp xếp theo thứ tự giảm dần về độ gần
chuyên môn.
3.2. Mô tả yêu cầu hệ thống
i/ Các chức năng được phân quyền cho cán bộ văn phòng toàn soạn được Tổng
biên tập chỉ định (sau đây gọi là Thư ký)
- Xem và cập nhật thông tin cá nhân.
- Quản lý tạp chí: Có chức năng tạo mới tạp chí, xem thông tin những tạp chí đã
được tạo theo kế hoạch xuất bản được duyệt.
- Đối với mỗi số tạp chí, mỗi chuyên san, đặc san được tạo mới, các chức năng
dành cho Thư ký bao gồm:
+ Tiếp nhận bài báo do tác giả gửi lên.
+ Phân loại các bài đủ điều kiện (đáp ứng được nội dung, hình thức và kinh phí)
và các bài không đủ điều kiện (trong đó có xác định rõ lý do không đủ điều kiện).
+ Chuyển các bài đủ điều kiện lên Trưởng Ban biên tập chuyên san.
+ Tiếp nhận các bài báo kèm theo chỉ định người phản biện từ Trưởng Ban biên
tập chuyên san.
+ Chuyển bài báo cho phản biện trong danh sách chỉ định (cho cả lần 1 và lần 2
nếu lần 1 không đạt).
+ Tiếp nhận kết quả phản biện.
+ Phân loại những bài viết có chất lượng tốt, khá, trung bình, không đạt.
+ Chuyển kết quả phản biện cho tác giả.
25
+ Tiếp nhận bài báo đã chỉnh sửa kèm theo các giải trình từ tác giả.
+ Chuyển bài báo đã chỉnh sửa kèm theo các giải trình từ tác giả đến các phản
biện.
+ Chuyển bài báo đã được tác giả chỉnh sửa lên Trưởng ban biên tập chuyên san
(Đối với các bài sửa chữa không cần gửi lại cho phản biện).
+ Tiếp nhận ý kiến từ Trưởng ban biên tập chuyên san về bài báo được tác giả
chỉnh sửa (Đối với các bài sửa chữa không cần gửi lại cho phản biện), ý kiến về danh
mục chọn đăng.
+ Xem nội dung và tình trạng bài báo của Tác giả.
+ Tập hợp các bài báo được chấp nhận đăng trình lên Trưởng ban biên tập
chuyên san.
+ Tập hợp các bài báo được chấp nhận đăng trình lên Tổng biên tập và tiếp nhận
ý kiến về danh mục đăng từ Tổng biên tập.
+ Tạo số cho các bài báo được Tổng biên tập duyệt.
- Cập nhật thông tin phản biện.
- Thống kê người phản biện kèm theo số bài báo đã phản biện.
ii/ Các chức năng được phân quyền cho Phản biện
- Xem và cập nhật thông tin cá nhân.
- Xem và tải nội dung bài báo mời phản biện.
- Gửi nhận xét và kết quả phản biện đến Văn phòng tòa soạn: Tóm tắt nội dung bài
báo, những kết quả nghiên cứu mới, ý nghĩa khoa học và thực tiễn, các nội dung chính
của bài báo đã được công bố trên các ấn phẩm khác hay chưa, kết luận không đăng hay
đăng ở các mức độ khác nhau, đánh giá, nội dung sửa lại.
iii/ Các chức năng được phân quyền cho Trưởng Ban biên tập chuyên san
- Xem và cập nhật thông tin cá nhân.
- Đối với mỗi số tạp chí, mỗi chuyên san, đặc san được tạo mới, các chức năng
dành cho Trưởng Ban biên tập chuyên san:
+ Tiếp nhận các bài đủ điều kiện từ Thư ký.
+ Chuyển danh sách các bài báo kèm theo chỉ định người phản biện tới Thư ký.
+ Tiếp nhận các bài báo đã được tác giả chỉnh sửa từ thư ký (Đối với các bài sửa
chữa không cần gửi lại cho phản biện).
+ Gửi ý kiến tới Thư ký về bài báo được tác giả chỉnh sửa (Đối với các bài sửa
chữa không cần gửi lại cho phản biện)
26
+ Gửi ý kiến tới Thư ký về danh mục chọn đăng.
+ Tiếp nhận các bài báo được chấp nhận đăng.
iv/ Các chức năng được phân quyền cho Tổng biên tập
- Xem và cập nhật thông tin cá nhân.
- Đối với mỗi số tạp chí, mỗi chuyên san, đặc san được tạo mới, các chức năng
dành cho Tổng biên tập:
+ Xem nội dung và tình trạng các bài báo được gửi đến từ các tác giả.
+ Tiếp nhận các bài báo được chấp nhận đăng từ Thư ký.
+ Gửi ý kiến tới Thư ký về danh mục đăng.
+ Xem tổng số bài đã gửi, tổng số bài được chấp nhận đăng, tổng số bài không
được đăng, tổng số bài được chấp nhận đăng nhưng phải chỉnh sửa.
- Theo dõi quản lý tạp chí:
+ Các số đã xuất bản
+ Đối với mỗi số xuất bản cho mỗi chuyên san: Xem tổng số bài đã gửi, tổng số
bài được chấp nhận đăng, tổng số bài không được đăng, tổng số bài được chấp nhận
đăng nhưng phải chỉnh sửa.
v/ Chức năng lựa chọn phản biện
Mỗi nhà khoa học có thể tham gia hoạt động chuyên môn nhiều lĩnh vực khác
nhau. Vì tính chất đa ngành đa lĩnh vực của tạp chí, nên việc chọn người phản biện cho
bài báo đôi khi còn thực sự chưa bám sát vào hướng nghiên cứu của người phản biện
và vấn đề mà bài báo đề cập tới. Ví dụ, cùng là lĩnh vực Công nghệ Thông tin nhưng
nội dung bài báo viết về chuyên môn hẹp là Khai phá luật kết hợp, nếu ta chọn một
nhà khoa học phản biện cho bài báo này mà chỉ căn cứ vào lĩnh vực chuyên môn là
Công nghệ Thông tin rất có thể dẫn đến việc ta chọn một người phản biện có hướng
nghiên cứu về An toàn thông tin mà không am hiểu về nội dung bài báo đề cập đến
(mặc dù cũng hoạt động trong lĩnh vực Công nghệ Thông tin). Vì vậy, việc chọn ra
người phản biện có cùng hướng nghiên cứu với nội dung bài báo từ cơ sở dữ liệu các
nhà khoa học đảm bảo tính chất khách quan, đúng vấn đề cần phản biện là điều hết sức
cần thiết. Muốn vậy, việc phân loại và chọn phản biện cần phải dựa vào các từ khóa
cho mỗi bài báo hay số lượng bài báo thuộc hướng nghiên cứu mà tác giả đăng….
Chính vì lý do này, giải pháp xây dựng phần mềm lựa chọn phản biện tự động dựa trên
các phương pháp tìm kiếm xấp xỉ sẽ đem lại cho tạp chí một phương án tối ưu nhất khi
Thư ký hay Tổng biên tập chọn phản biện và các nhà phản biện cho một bài báo sẽ
được liệt kê theo mức độ ưu tiên về chuyên môn gần với bài báo nhất, đó cũng là
27
thông tin hỗ trợ, gợi ý cho Thư ký tạp chí khi phân phản biện bài báo sao cho phù hợp
với từng điều kiện hoàn cảnh cụ thể. Chức năng lựa chọn phản biện thực hiện các việc
chính sau:
- Bổ sung, cập nhật thông tin về người phản biện, gồm các thông tin sau: Họ tên, ngày
sinh, giới tính, đơn vị công tác, lĩnh vực chuyên môn, số điện thoại, địa chỉ email, từ
khóa hướng chuyên môn.
- Lập danh sách các nhà phản biện cho một bài báo theo thứ tự ưu tiên gần với hướng
nghiên cứu của bài báo nhất.
- Cho phép xem hồ sơ phản biện để làm căn cứ khi quyết định lựa chọn phản biện cho
bài báo. Hồ sơ khoa học gồm các thông tin theo mẫu biểu sau:
LÝ LỊCH KHOA HỌC
I. LÝ LỊCH SƠ LƯỢC
Họ và tên: ……….......................................
Giới tính: …………………………………..
Ngày sinh: …………………………………
Quê quán: ………........................................
Nơi sinh: ……..…………………………….
Dân tộc: ……………………………………
Đơn vị công tác: ………………………………………………………….…………………
Địa chỉ liên lạc:
…………………………………………………………….………………
Điện thoại liên hệ: ……………………………………………………………………………
E-mail :
……………………………………………………………………………..
Học hàm, học vị:
…………………………Chuyên ngành: ………………………………….
Số tài khoản:
……………………………… tại ngân hàng: ………………………………
Mã số thuế:
……………………………………………………………………………….
II. QUÁ TRÌNH ĐÀO TẠO
1. Đại học:
Ngành học: …………………………..…...
Hệ đào tạo: ………………………………....
Nơi đào tạo: ……………………………….
Năm tốt nghiệp:…………………………….
2. Thạc sĩ:
Chuyên ngành:………………………..……..
Nơi đào tạo: ……………………………...
Năm cấp bằng: ………………………………
3. Tiến sỹ
Chuyên ngành:………………………..……..
Nơi đào tạo: ……………………………...
Năm cấp bằng: ………………………………
Tên luận án tốt nghiệp: …………………………………………………………………………
……………………………………………………………………………………………………..
……………………………………………………………………………………………………..
……………………………………………………………………………………………………..
3. Ngoại ngữ:
1.………………………..……..
Mức độ sử dụng: …………………………….................
28
2. ………………………………
Mức độ sử dụng: …………………………….................
III. QUÁ TRÌNH CÔNG TÁC
Thời gian
Nơi công tác
Công việc đảm nhiệm
IV. KẾT QUẢ NGHIÊN CỨU KHOA HỌC
1. Các đề tài nghiên cứu khoa học đã tham gia:
TT
Năm hoàn thành
Tên đề tài nghiên cứu / lĩnh vực ứng
dụng
Trách nhiệm
tham gia trong
đề tài
Đề tài cấp
(NN, Bộ,
Ngành,
trường)
2. Các công trình khoa học (bài báo khoa học, báo cáo hội nghị khoa học, sách chuyên khảo…) đã
công bố
TT
Tên công trình
Thể loại
Năm công bố
Nơi công bố
3. Để thuận lợi cho việc lựa chọn phản biện, đề nghị các nhà khoa học cung cấp cho Ban biên tập Tạp
chí từ 05 – 10 từ khóa thể hiện sở trường chuyên môn của mình, sắp xếp theo thứ tự giảm dần.
Ví dụ:
STT
Từ khóa tiếng Việt
Từ khóa tiếng Anh
1
Hệ có tham số phân bố
Distributed parameter system
2
Điều khiển tối ưu
Optimal control
3
Thiết kế PID
PID design
4
Điều khiển mờ
Fuzzy control
5
Đại số gia tử
Hedge algebras
6
Giảm bậc mô hình
Model order reduction
29
7
Phương pháp số
Numerical methods
8
Truyền thông qua đường dây điện lực
Power line communication
9
……
…………………, ngày …… tháng …… năm 2016 Xác nhận của đơn vị
Người khai ký tên
(Ghi rõ họ tên)
3.3. Phân tích hệ thống
3.3.1. Xác định Actor và Use Case
STT
Tên tác nhân
Vai trò
1
TK
Thư ký Tạp chí
2
TK_TNK
3
TK_KHX
4
TK_NLY
5
Phản biện
6
TB_TNK
7
TB_KHX
8
TB_NLY
9
10
Tổng biên tập
Quản trị
Thư ký phụ trách chuyên san Khoa học tự nhiên
kỹ thuật
Thư ký phụ trách chuyên san Khoa học xã hội và
nhân văn
Thư ký phụ trách chuyên san Khoa học Nông
Lâm Ngư Y Sinh
Phản biện
Trưởng ban biên tập chuyên chuyên san Khoa
học Tự nhiên kỹ thuật
Trưởng ban biên tập chuyên chuyên san Khoa
học xã hội và nhân văn
Trưởng ban biên tập chuyên chuyên san Khoa
học Nông Lâm Ngư Y Sinh
Tổng biên tập
Quản trị hệ thống
Bảng 5. Xác định các tác nhân
STT
Use case
Actor
1
1.1
1.2
Quản trị hệ thống
Cập nhật người sử dụng và phân quyền
Quản lý đăng ký phản biện
1.3
Xem thông tin và danh sách đăng ký làm
phản biện
2
Đăng nhập
3
Quản lý phản biện
3.1
Cập nhật thông tin phản biện
3.1.1
3.1.2
Cập nhật lý lịch sơ lược
Cập nhật quá trình đào tạo
Quản trị
Quản trị
Quản trị, TK, TK_TNK, TK_KHX,
TK_NLY, TB_TNK, TB_KHX,
TB_NLY, Tổng biên tập
Quản trị, TK, TK_TNK, TK_KHX,
TK_NLY, TB_TNK, TB_KHX,
TB_NLY, Tổng biên tập
Quản trị, TK, TK_TNK, TK_KHX,
TK_NLY, TB_TNK, TB_KHX,
TB_NLY, Tổng biên tập
30
3.1.3
3.1.4
3.1.5
3.1.6
Cập nhật quá trình công tác
Cập nhật công trình nghiên cứu
Cập nhật đề tài nghiên cứu khoa học
Cập nhật từ khóa chuyên môn
3.2
Tổng hợp bài báo theo phản biện
Quản trị, TK, TK_TNK, TK_KHX,
TK_NLY, TB_TNK, TB_KHX,
TB_NLY, Tổng biên tập
3.2.1
3.2.2
3.2.3
3.2.4
4
4.1
TK_TNK, TK_KHX, TK_NLY
4.1.1
TK_TNK
4.1.2
TK_KHX
4.1.3
TK_NLY
4.2
Thống kê danh sách phản biện theo chuyên
san khoa học tự nhiên về số bài phản biện
đạt, không đạt, chưa trả
Tổng hợp theo chuyên san khoa học xã hội
và nhân văn về số bài phản biện đạt, không
đạt, chưa trả
Tổng hợp theo chuyên san Nông Lâm Ngư
Y Sinh về số bài phản biện đạt, không đạt,
chưa trả
Xem hồ sơ tác giả
Quản lý bài báo
Cập nhật bài báo
Cập nhật bài báo thuộc chuyên san Khoa
học Tự nhiên kỹ thuật
Cập nhật bài báo thuộc chuyên san Khoa
học Xã hội và Nhân văn
Cập nhật bài báo thuộc chuyên san Nông
Lâm Ngư Y Sinh
Thống kê và tìm kiếm bài báo theo các điều
kiện: Mã bài báo, theo thông tin tác giả,
theo phản biện,…
4.3
Tổng hợp bài báo theo tác giả
4.3.1
TK, TK_TNK, TK_KHX,
TK_NLY, TB_TNK, TB_KHX,
TB_NLY, Tổng biên tập
TK, TK_TNK, TK_KHX,
TK_NLY, TB_TNK, TB_KHX,
TB_NLY, Tổng biên tập
TK, TK_TNK, TB_TNK, Tổng
biên tập
4.3.2
TK, TK_KHX, TB_KHX, Tổng
biên tập
4.3.3
TK, TK_NLY, TB_NLY, Tổng
biên tập
Tổng hợp theo chuyên san khoa học tự
nhiên về số bài đạt, không đạt, đang chờ kết
quả phản biện
Tổng hợp theo chuyên san khoa học xã hội
và nhân văn về số bài đạt, không đạt, đang
chờ kết quả phản biện
Tổng hợp theo chuyên san Nông Lâm Ngư
Y Sinh về về số bài đạt, không đạt, đang
chờ kết quả phản biện
5
Đổi mật khẩu
6
6. 1
6. 2
6.3
6.4
6.5
6.6
7
7.1
Đăng ký làm phản biện
Cập nhật lý lịch sơ lược
Cập nhật quá trình đào tạo
Cập nhật quá trình công tác
Cập nhật công trình nghiên cứu
Cập nhật đề tài nghiên cứu khoa học
Cập nhật từ khóa chuyên môn
Tìm kiếm phản biện
Xem hồ sơ phản biện
Quản trị, TK, TK_TNK, TK_KHX,
TK_NLY, TB_TNK, TB_KHX,
TB_NLY, Tổng biên tập
Phản biện
Phản biện
Phản biện
Phản biện
Phản biện
Phản biện
Phản biện
TK, TK_TNK, TK_KHX,
31
7.2
Dự kiến danh sách phản biện
7.3
Tìm kiếm theo từng từ khóa
7.4
Tìm kiếm theo dãy từ khóa
7.5
Nạp dữ liệu phản biện
8
8.1
8.2
Chỉ định phản biện
Chỉ định phản biện 1
Chỉ định phản biện 2
TK_NLY
TK, TK_TNK, TK_KHX,
TK_NLY
TK, TK_TNK, TK_KHX,
TK_NLY
TK, TK_TNK, TK_KHX,
TK_NLY
TK, TK_TNK, TK_KHX,
TK_NLY
TK_TNK, TK_KHX, TK_NLY
TK_TNK, TK_KHX, TK_NLY
Bảng 6. Xác định các use case
3.3.2. Biểu đồ Use Case
1/ Quản trị hệ thống
32
Hình 3. Nhóm Use case Quản trị hệ thống
2/ Đăng nhập
Hình 4. Use case Đăng nhập
Tên Use case
Tác nhân chính
Mức
Người chịu trách nhiệm
Đăng nhập
Quản trị, TK, TK_TNK, TK_KHX, TK_NLY, TB_TNK,
TB_KHX, TB_NLY, Tổng biên tập
1
Người sử dụng: Quản trị, TK, TK_TNK, TK_KHX, TK_NLY,
TB_TNK, TB_KHX, TB_NLY, Tổng biên tập
Người sử dụng truy nhập vào địa chỉ hệ thống
Hệ thống chuyển sang trang chủ
Người sử dụng chọn chức năng đăng nhập
Tiền điều kiện
Đảm bảo tối thiểu
Đảm bảo thành công
Kích hoạt
Chuỗi sự kiến chính
1. Hệ thống hiển thị trang đăng nhập và yêu cầu người sử dụng nhập thông tin về tài khoản và
mật khẩu đăng nhập.
2. Người sử dụng nhập tài khoản, mật khẩu và nhấn nút Đăng nhập.
3. Hệ thống xác nhận tính hợp lệ về tài khoản của người dùng.
4. Hệ thống hiển thị trang chủ.
Ngoại lệ
1.a. Hệ thống thông báo tài khoản không hợp lệ nếu thông tin về tài khoản và mật khẩu chưa
được cấp hoặc người dùng nhập sai tài khoản, mật khẩu.
33
Bảng 7. Scenario cho use case Đăng nhập
3/ Quản lý phản biện
Hình 5. Nhóm Use case Quản lý phản biện
34
Hình 6. Phân rã Use case Cập nhật thông tin phản biện
Tên Use case
Tác nhân chính
Mức
Người chịu trách nhiệm
Tiền điều kiện
Đảm bảo tối thiểu
Cập nhật lý lịch sơ lược
Quản trị, TK, TK_TNK, TK_KHX, TK_NLY, TB_TNK,
TB_KHX, TB_NLY, Tổng biên tập
2
Người sử dụng: Quản trị, TK, TK_TNK, TK_KHX, TK_NLY,
TB_TNK, TB_KHX, TB_NLY, Tổng biên tập
Người sử dụng đã đăng nhập
Hệ thống thông báo các thông tin không hợp lệ nếu sai định
dạng
Thông tin về phản biện được cập nhật vào cơ sở dữ liệu
Người sử dụng chọn chức năng lưu thông tin
Đảm bảo thành công
Kích hoạt
Chuỗi sự kiến chính
1. Hệ thống hiển thị trang cập nhật thông tin phản biện và yêu cầu người sử dụng nhập thông
tin về lý lịch sơ bản của người phản biện.
2. Người sử dụng nhập thông tin về lý lịch sơ bản của người phản biện.
3. Hệ thống xác nhận tính hợp lệ về thông tin người phản biện.
4. Hệ thống cập nhật thông tin lý lịch cơ bản của người phản biện.
5. Hệ thống thoát khỏi chức năng cập nhật lý lịch sơ lược.
6. Hệ thống xóa người phản biện được chọn từ danh sách.
Ngoại lệ
2.a. Hệ thống thông báo các thông tin bắt buộc phải nhập: Họ tên, đơn vị công tác, địa chỉ
email, mật khẩu đăng nhập, chuyên san phản biện.
2.b. Hệ thống thông báo các thông tin không hợp lệ.
2.b.1. Hệ thống thông báo năm sinh không hợp lệ.
2.b.2. Hệ thống thông báo địa chỉ email không hợp lệ.
2.b.3. Hệ thống thông số điện thoại không hợp lệ.
Bảng 8. Scenario cho use case Cập nhật lý lịch sơ lược
35
Hình 7. Phân rã Use case Tổng hợp bài báo theo phản biện
Tên Use case
Tác nhân chính
Mức
Người chịu trách nhiệm
Tiền điều kiện
Đảm bảo tối thiểu
Đảm bảo thành công
Tổng hợp bài báo theo phản biện
Quản trị, Tổng biên tập, TB_TNK, TB_KHX, TB_NLY, TK,
TK_TNK, TK_KHX, TK_NLY
1
Người sử dụng: Quản trị, Tổng biên tập, TB_TNK, TB_KHX,
TB_NLY, TK, TK_TNK, TK_KHX, TK_NLY
Người sử dụng đã đăng nhập và đã lựa chọn chuyên san
Hệ thống thông báo chọn chuyên san nếu người sử dụng chưa
chọn chuyên san
Hiển thị danh sách người phản biện và kèm theo là số lượng các
bài báo đã phản biện, bao gồm số bài chấm đạt, không đạt và
chưa trả.
Người SD chọn chức năng Tổng hợp bài báo theo phản biện
Kích hoạt
Chuỗi sự kiến chính
1. Người sử dụng nhập các tiêu chí lựa chọn, bao gồm các tiêu chí: Chuyên san; phản biện
cho các bài báo nhận từ ngày nào đến ngày nào
2. Hệ thống lập danh sách thỏa mãn tổ hợp các tiêu chí chọn lựa.
3. Hệ thống xác định phản biện được chọn để xem xét.
4. Hệ thống thoát khỏi trang tổng hợp bài báo.
Ngoại lệ
1.a. Hệ thống thông báo phải chọn chuyên san bài báo.
Bảng 9. Scenario cho use case Tổng hợp bài báo theo phản biện
4/ Quản lý bài báo
36
Hình 8. Use case Thống kê và tìm kiếm
Hình 9. Nhóm Use case Cập nhật bài báo
37
Hình 10. Phân rã Use case Cập nhật bài báo khoa học tự nhiên
Hình 11. Phân rã Use case Cập nhật bài báo khoa học Xã hội và Nhân văn
38
Hình 12. Phân rã Use case Cập nhật bài báo Nông Lâm Ngư Y Sinh
Hình 13. Nhóm Use case Tổng hợp bài báo theo tác giả
Tên Use case
Tác nhân chính
Mức
Người chịu trách nhiệm
Tiền điều kiện
Đảm bảo tối thiểu
Đảm bảo thành công
Tổng hợp bài báo theo tác giả
Tổng biên tập, TB_TNK, TB_KHX, TB_NLY, TK, TK_TNK,
TK_KHX, TK_NLY
1
Người sử dụng: Tổng biên tập, TB_TNK, TB_KHX, TB_NLY,
TK, TK_TNK, TK_KHX, TK_NLY
Người sử dụng đã đăng nhập và đã lựa chọn chuyên san
Hệ thống thông báo chọn chuyên san nếu người sử dụng chưa
chọn chuyên san
Hiển thị danh sách tác giả và kèm theo là số lượng các bài báo
đã được đăng, không được đăng và số lượng bài đang chờ kết
quả phản biện.
Người SD chọn chức năng Tổng hợp bài báo theo tác giả
Kích hoạt
Chuỗi sự kiến chính
1. Người sử dụng nhập các tiêu chí lựa chọn, bao gồm các tiêu chí: Chuyên san; các bài báo
nhận từ ngày nào đến ngày nào
2. Hệ thống lập danh sách tác giả chính cho các bài báo thỏa mãn tổ hợp các tiêu chí chọn lựa.
3. Hệ thống thoát khỏi trang tổng hợp bài báo.
Ngoại lệ
1.a. Hệ thống thông báo phải chọn chuyên san bài báo.
39
Bảng 10. Scenario cho use case Tổng hợp bài báo theo tác giả
5/ Đổi mật khẩu
Hình 14. Use case Đổi mật khẩu
6/ Đăng ký làm phản biện
40
Hình 15. Use case Đăng ký làm phản biện
7/ Tìm kiếm phản biện
Hình 16. Nhóm Use case Tìm kiếm phản biện
41
Hình 17. Phân rã Use case chọn bài báo phản biện
Tên Use case
Tác nhân chính
Mức
Người chịu trách nhiệm
Tiền điều kiện
Đảm bảo tối thiểu
Đảm bảo thành công
Chọn bài báo phản biện
TK, TK_TNK, TK_KHX, TK_NLY
1
Người sử dụng: TK, TK_TNK, TK_KHX, TK_NLY
Người sử dụng đã đăng nhập và đã lựa chọn chuyên san
Hệ thống thông báo chọn chuyên san nếu người xử dụng chưa
chọn chuyên san
Các từ khóa của bài báo được phân tách và hiện thị tại trang tìm
kiếm phản biện
Người sử dụng chọn chức năng Chọn bài báo
Kích hoạt
Chuỗi sự kiến chính
1. Hệ thống hiển thị trang lựa chọn.
2. Người sử dụng nhập các tiêu chí lựa chọn cho bài báo, bao gồm các tiêu chí: Chuyên san;
mã bài báo; tác giả chính; bài báo nhận từ ngày nào đến ngày nào; có người phản biện 1 hay
chưa; có kết quả phản biện 1 hay chưa (chưa có kết quả; không đồng ý đăng; đồng ý đăng;
đồng ý đăng có sửa chữa và không cần gửi lại; đồng ý đăng có sửa chữa và phải gửi lại) ; có
người phản biện 2 hay chưa; có kết quả phản biện 2 hay chưa (chưa có kết quả; không đồng ý
đăng; đồng ý đăng; đồng ý đăng có sửa chữa và không cần gửi lại; đồng ý đăng có sửa chữa
và phải gửi lại).
3. Hệ thống lập danh sách các bài báo theo tổ hợp các tiêu chí chọn lựa.
4. Hệ thống xác định bài báo chọn lựa.
5. Hệ thống thoát khỏi trang chọn bài báo và phân tách các từ khóa bài báo, hiện thị các từ
khóa được phân tách trong trang tìm kiếm phản biện.
6. Hệ thống xóa các tiêu chí chọn lựa và cho phép người dùng chọn lại.
Ngoại lệ
1.a. Hệ thống thông báo phải chọn chuyên san bài báo.
Bảng 11. Scenario cho use case Chọn bài báo phản biện
8/ Chỉ định phản biện
42
Hình 18. Nhóm Use case Chỉ định phản biện
3.3.3. Biểu đồ lớp phân tích
43
Hình 19. Biểu đồ lớp phân tích
3.3.4. Biểu đồ trạng thái
Hình 20. Biểu đồ trạng thái lớp Journal
3.4. Thiết kế hệ thống
3.4.1. Biểu đồ tuần tự
44
Hình 21. Biểu đồ tuần tự cho chức năng đăng nhập
45
Hình 22. Biểu đồ tuần tự cho chức năng tìm kiếm phản biện theo từng từ khóa
46
Hình 23. Biểu đồ tuần tự cho chức năng tìm kiếm phản biện theo dãy từ khóa
47
Hình 24. Biểu đồ tuần tự cho chức năng Chọn bài báo
Hình 25. Biểu đồ tuần tự cho chức năng Cập nhật lý lịch sơ lược (Thuộc chức năng
48
Đăng ký làm phản biện)
Hình 26. Biểu đồ tuần tự cho chức năng Cập nhật từ khóa chuyên môn thuộc lĩnh vực
49
Khoa học Tự nhiên (Thuộc nhóm Use case Đăng ký làm phản biện)
Hình 27. Biểu đồ tuần tự cho chức năng đổi mật khẩu đối với tác nhân Thư ký
50
Hình 28. Biểu đồ tuần tự cho chức năng Thêm bài báo
51
Hình 29. Biểu đồ tuần tự cho chức năng Chỉ định phản biện 1
52
Hình 30. Biểu đồ tuần tự cho chức năng Chỉ định phản biện 2
3.4.2. Biểu đồ lớp chi tiết
53
Hình 31. Biểu đồ lớp chi tiết
3.4.3. Các đối tượng cơ sở dữ liệu và các chức năng của chương trình
Việc lưu trữ dữ liệu cho các lớp là rất khó khăn bởi chưa có các công cụ chuẩn
hữu hiệu như trong CSDL quan hệ để hỗ trợ cho việc tạo và lưu trữ dữ liệu. Bởi vậy
chúng tôi đã chuyển biểu đồ lớp trong UML sang mô hình EER (Enhaned Entity
Relationship), sau đó chuyển đổi từ mô hình EER sang quan hệ để sử dụng các hệ
quản trị CSDL quan hệ để lưu trữ dữ liệu.
3.4.3.1. Sơ đồ thực thể liên kết
54
Hình 32. Sơ đồ thực thể liên kết
3.4.3.2. Các đối tượng cơ sở dữ liệu
CriticismID
SName
Name
BirthYear
Gender
PlaceOfBirth
NativeCountry
Ethnicity
Organization
Address
PhoneNumber
Email
PassLogin
Bigint
nvarchar(200)
nchar(100)
char(4)
nchar(10)
nvarchar(200)
nvarchar(200)
nchar(50)
nvarchar(500)
nvarchar(500)
char(12)
nchar(100)
nchar(100)
Speciality
nchar(10)
char(50)
nvarchar(200)
AccountNumber
Bank
TaxIdentificationNumber char(50)
Univ_Brand
Univ_TypeOfTraining
University
Univ_Year
Mast_Specific
Mast_University
Mast_Year
Doct_Specific
Doct_University
Doct_Year
Doct_TitleOfThesis
Languages1
LevelOfLanguages1
Languages2
LevelOfLanguages2
KeywordVN
KeywordEng
Who
DateAndTime
Date
Month
Year
NumberYes
NumberNo
NumberWaiting
nvarchar(200)
nvarchar(50)
nvarchar(200)
char(4)
nvarchar(200)
nvarchar(200)
char(4)
nvarchar(200)
nvarchar(200)
char(4)
nvarchar(600)
nvarchar(50)
nvarchar(50)
nvarchar(50)
nvarchar(50)
nvarchar(MAX)
nvarchar(MAX)
nchar(100)
nvarchar(100)
char(2)
char(2)
char(4)
Int
Int
Int
Số định danh phản biện
Họ phản biện
Tên phản biện
Năm sinh
Giới tính
Nơi sinh
Quê quán
Dân tộc
Cơ quan công tác
Địa chỉ
Số điện thoại
Địa chỉ Email
Mật khẩu tài khoản
Chuyên san: Nông Lâm Y là NLY;
Khoa học xã hội là KHX; Tự nhiên kỹ
thuật TNK
Tài khoản ngân hang
Ngân hàng đăng ký tài khoản
Mã số thuế
Ngành học đại học
Hệ đào tạo đại học
Tên trường học đại học
Năm tốt nghiệp
Chuyên môn thạc sỹ
Cơ sở đào tạo thạc sỹ
Năm tốt nghiệp thạc sỹ
Chuyên môn tiến sỹ
Cơ sở đào tạo tiến sỹ
Năm tốt nghiệp tiến sỹ
Tiêu đề luận án
Ngoại ngữ 1
Trình độ ngoại ngữ 1
Ngoại ngữ 2
Trình độ ngoại ngữ 2
Từ khóa tiếng Việt
Từ khóa tiếng Anh
Người cập nhật phản biện
Thời gian cập nhật
Ngày cập nhật
Tháng cập nhật
Năm cập nhật
Trường lưu trữ thông tin tạm thời
Trường lưu trữ thông tin tạm thời
Trường lưu trữ thông tin tạm thời
Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng)
55
Bảng 12. Bảng tblCriticism lưu các thông tin về phản biện
Bigint
JournalID
nchar(14)
Journal
nvarchar(500)
TitleVN
nvarchar(500)
TitleEng
nchar(10)
Speciality
nvarchar(500)
KeywordVNM
nvarchar(500)
KeywordENG
char(10)
Volume
char(2)
Issue
char(3)
Quarters
char(4)
Years
char(10)
Pages
nvarchar(50)
SnameOfAuthor
nvarchar(50)
NameOfAuthor
nvarchar(100)
Organization
char(12)
PhoneNumber
nchar(100)
Email
Coauthor
nvarchar(500)
OrganizationOfCoauthor nvarchar(500)
ReceiveDate
ReceiveMonth
ReceiveYear
ReceiveUser
CriticismDate1
CriticismMonth1
CriticismYear1
DeadlineDate1
DeadlineMonth1
DeadlineYear1
CriticismDate2
CriticismMonth2
CriticismYear2
DeadlineDate2
DeadlineMonth2
DeadlineYear2
UpdateUser1
UserDate1
CriticismID1
Result1
Mark1
UpdateUser2
UserDate2
CriticismID2
Result2
Mark2
Result
Mark
char(2)
char(2)
char(4)
nvarchar(100)
char(2)
char(2)
char(4)
char(2)
char(2)
char(4)
char(2)
char(2)
char(4)
char(2)
char(2)
char(4)
nvarchar(200)
nvarchar(20)
Bigint
Int
Real
nvarchar(200)
nvarchar(20)
Bigint
Int
Real
Int
Real
ID bài báo
Mã bài báo
Tiêu đề tiếng Việt của bài báo
Tiêu đề tiếng Anh
Thuộc chuyên san
Từ khóa tiếng Việt
Từ khóa tiếng Anh
Vol bài báo
Issue bài báo
Xuất bản vào quý mấy
Xuất bản vào năm nào
Số trang
Họ tác giả
Tên tác giả
Cơ quan tác giả
Số điện thoại
Địa chỉ email
Đồng tác giả
Đơn vị đồng tác giả
Ngày nhận bài
Tháng nhận bài
Năm nhận bài
Người nhận bài
Ngày giao phản biện 1
Tháng giao phản biện 1
Năm giao phản biện 1
Ngày hạn trả bài của phản biện 1
Tháng hạn trả bài của phản biện 1
Năm hạn trả bài của phản biện 1
Ngày giao phản biện 2
Tháng giao phản biện 2
Năm giao phản biện 2
Ngày hạn trả bài của phản biện 2
Tháng hạn trả bài của phản biện 2
Năm hạn trả bài của phản biện 2
Người cập nhật phản biện 1
Ngày cập nhật phản biện 1
ID phản biện 1
Kết quả phản biện 1
Kết quả điểm số phản biện 1
Người cập nhật phản biện 2
Ngày cập nhật phản biện 2
ID phản biện 2
Kết quả phản biện 2
Kết quả điểm số phản biện 2
Kết luận phản biện
Điểm trung bình của 2 phản biện
Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng)
56
Bảng 13. Bảng tblJournal lưu các thông tin về bài báo
Cách đánh mã bài báo: Mã chuyên san+Ngày nhận bài+Tháng nhận bài+Năm
nhận bài(2 số cuối)+”-“+Số thứ tự(3 chữ số).
Ví dụ: Bài báo thuộc chuyên san tự nhiên kỹ thuật nhận vào ngày 14/11/20017
là bài được nhận đầu tiên sẽ có mã là: TNK141117-001.
Mã chuyên san
Tên chuyên san
ID
Chuyensan
Tên trường dữ liệu Diễn giải
Kiểu dữ liệu
(độ rộng)
nchar(10) NotNull
nvarchar(100)
Bảng 14. Bảng tblChuyensan lưu trữ danh mục các chuyên san
ID
CriticismID
TitleCT
Kind
YearCT
Publish
Bigint NotNull
Bigint
nvarchar(500)
nvarchar(200)
char(4)
nvarchar(200)
ID phản biện
Tên công trình khoa học
Thể loại: Sách, giáo trình hay bài báo
Năm xuất bản
Nhà Xuất bản
Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng)
Bảng 15. Bảng tblCri_Journal_and_Book lưu giữ các công trình của nhà khoa học
tham gia làm phản biện
ID phản biện
Thời gian công tác
Nơi công tác
Vị trí việc làm
Bigint NotNull
Bigint
nvarchar(100)
nvarchar(300)
nvarchar(300)
Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng)
ID
CriticismID
Time
PlaceOfWork
Role
Bảng 16. Bảng tblCri_ProcessOfWork lưu thông tin quá trình công tác của phản biện
ID
CriticismID
Title
Year
Leve
Roles
Bigint NotNull
Bigint
nvarchar(200)
char(10)
nvarchar(50)
nvarchar(50)
ID phản biện
Tên đề tài nghiên cứu
Năm thực hiện
Cấp thực hiện: Nhà nước, Bộ, cơ sở,….
Trách nhiệm: Chủ nhiệm hay thành
viên,…
Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng)
Bảng 17. Bảng tblCri_ScientificResearch lưu thông tin đề tài của phản biện
Gender
GenderName
Tên trường dữ liệu Diễn giải
Mã giới tính
Tên giới tính
Kiểu dữ liệu
(độ rộng)
nchar(10) NotNull
nvarchar(10)
57
Bảng 18. Bảng tblGender lưu thông tin danh mục giới tính
ID
CriticismID
KeywordENG
KeywordVNM
Distance
Bigint NotNull
Bigint NotNull
nvarchar(100)
nvarchar(100)
Real
ID phản biện
Từ khóa tiếng Anh
Từ khóa tiếng Việt
Thông tin lưu tạm thời
Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng)
Bảng 19. Bảng tblKeywordKHX lưu thông tin từ khóa của các phản biện thuộc lĩnh
vực Khoa học xã hội
ID
CriticismID
KeywordENG
KeywordVNM
Distance
Bigint NotNull
Bigint NotNull
nvarchar(100)
nvarchar(100)
Real
ID phản biện
Từ khóa tiếng Anh
Từ khóa tiếng Việt
Thông tin lưu tạm thời
Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng)
Bảng 20. Bảng tblKeywordNLY lưu thông tin từ khóa của các phản biện thuộc lĩnh
vực Nông Lâm Y
ID
CriticismID
KeywordENG
KeywordVNM
Distance
Bigint NotNull
Bigint NotNull
nvarchar(100)
nvarchar(100)
Real
ID phản biện
Từ khóa tiếng Anh
Từ khóa tiếng Việt
Thông tin lưu tạm thời
Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng)
Bảng 21. Bảng tblKeywordTNK lưu thông tin từ khóa của các phản biện thuộc lĩnh
vực Tự nhiên Kỹ thuật
Trạng thái: 1-Mở, 0-Đóng
Người cập nhật trạng thái
Thời gian cập nhật
Ngày cập nhật
Tháng cập nhật
Năm cập nhật
Int
nchar(100)
nvarchar(100)
char(2)
char(2)
char(4)
Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng)
Status
Who
DateAndTime
Date
Month
Year
Bảng 22. Bảng tblManageRegist lưu thông tin thực trạng cho phép đăng ký phản biện
trực tuyến
MenuID
MenuName
Link
ParentID
Permission
Int NotNull
nvarchar(50)
nvarchar(50)
Int
char(10)
ID menu
Tên menu
Liên kết
ID menu cha
Phân quyền cho menu
58
Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng)
Bảng 23. Bảng tblMenu lưu thông tin danh mục menu trang chủ
PermissionID
PermissionName
Tên trường dữ liệu Diễn giải
Kiểu dữ liệu
(độ rộng)
ID quyền
char(10) Not Null
nvarchar(100) NotNull Tên quyền hạn: Thư ký, Quản trị,…
Bảng 24. Bảng tblPermission lưu thông tin danh mục phân quyền trong hệ thống
ID
Int
Result
nvarchar(100)
ID
Tên kết quả: Đồng ý đăng; không
đồng ý đăng; Đồng ý đăng và sửa
chữa (không cần gửi lại phản biện);
Đồng ý đăng và sửa chữa (phải gửi
lại phản biện)
Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng)
Bảng 25. Bảng tblResultOfCriticism lưu thông tin danh mục các kết quả phản biện
Bigint NotNull
nchar(100) NotNull
nchar(200) NotNull
ID
Username
Pass
char(10)
Permission
nvarchar(200)
nvarchar(200)
nvarchar(200)
nchar(100)
char(15)
char(100)
nvarchar(100)
ID
Tài khoản người sử dụng
Mật khẩu
Quyền hạn trong hệ thống: Thư ký,
Quản trị,…
Họ
Tên
Cơ quan công tác
Địa chỉ Email
Số điện thoại
Người cập nhật
Ngày giờ cập nhật
SName
Name
Organization
Email
PhoneNumber
Who
DateAndTime
Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng)
59
Bảng 26. Bảng tblUser lưu thông tin người sử dụng hệ thống
3.4.3.3. Các chức năng của chương trình
Hệ thống hỗ trợ lựa chọn phản biện
Tìm kiếm phản biện chuyên san Tự
nhiên Khoa học Kỹ thuật
Tìm kiếm
phản biện
Tìm kiếm phản biện chuyên san Khoa
học Xã hội và Nhân văn
Tìm kiếm phản biện chuyên san Nông
Lâm Ngư Y Sinh
Đăng nhập
Đăng ký tham
gia phản biện và
cập nhật thông
tin phản biện
Đổi mật khẩu
Cập nhật thành viên
Quản trị hệ
thống
Quản lý đăng ký phản biện
Xem thông tin đăng ký tham gia phản biện
Cập nhật thông tin phản biện
Cập nhật lý lịch
Cập nhật quá trình đào tạo
Cập nhật quá trình công tác
Quản lý
phản biện
Cập nhật nghiên cứu khoa học
Tổng hợp bài báo theo phản biện
Cập nhật Thông tin bài báo
Cập nhật bài báo
Cập nhật KQ phản biện 1
Quản lý bài
báo
Thống kê và tìm
kiếm
Cập nhật KQ phản biện 2
Vào số bài báo
Tổng hợp bài báo
theo tác giả
60
Hình 33. Các chức năng hệ thống hỗ trợ lựa chọn phản biện
Chương trình ứng dụng được chúng tôi thực hiện bằng ngôn ngữ lập trình
ASP.Net (bản Visual studio 2012) và hệ quản trị cơ sở dữ liệu SQL Server 2012. Sau
đây là các form được xây dựng thể hiện các chức năng của chương trình.
Hình 34. Form Đăng nhập hệ thống
61
Hình 35. Form Chức năng tìm kiếm phản biện
Hình 36. Form Đăng nhập lại hệ thống
62
Hình 37. Form Đổi mật khẩu
Hình 38. Form Chức năng cập nhật thành viên
63
Hình 39. Form Chức năng quản lý đăng ký phản biện
Hình 40. Form Xem thông tin đăng ký tham gia phản biện
64
Hình 41. Form Cập nhật lý lịch của phản biện
Hình 42. Form Cập nhật quá trình đào tạo
65
Hình 43. Form Cập nhật quá trình công tác
Hình 44. Form Cập nhật đề tài nghiên cứu khoa học
66
Hình 45. Form Cập nhật công trình khoa học đã công bố
Hình 46. Form Cập nhật các từ khóa chuyên môn
67
Hình 47. Form Tổng hợp bài báo theo phản biện
Hình 48. Form Cập nhật bài báo
68
Hình 49. Form Thống kê bài báo theo các tiêu chí
Hình 50. Form Tổng hợp bài báo theo tác giả
Hình 51. Form Chức năng xem hồ sơ của phản biện để tham khảo lựa chọn làm phản
69
biện cho bài báo
KẾT LUẬN CHƯƠNG 3
Trong chương này, chúng tôi thực hiện xây dựng hệ thống đáp ứng các yêu cầu
bài toán đặt ra, bao gồm các kết quả sau:
1. Mô tả yêu cầu của hệ thống
2. Phân tích hệ thống và đã đưa xác định được các tác nhân và Use case từ đó
xây dựng được biểu đồ Use Case, biểu đồ trình tự và biểu đồ lớp.
3. Trên cơ sở phân tích hệ thống và thuật toán lựa chọn phản biện dựa trên
phương pháp quy hoạch động được trình bày trong Chương 2, chúng tôi đã thiết kế
được cơ sở dữ liệu và chương trình ứng dụng. Cụ thể: Xây dựng được sơ đồ thực thể
liên kết và các đối tượng cơ sở dữ liệu; Các chức năng của chương trình được chỉ ra cụ
70
thể nhằm đáp ứng yêu cầu của hệ thống như đã mô tả.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
I. Các kết quả đạt được
Luận văn này thực hiện các nội dung sau:
1. Nghiên cứu tổng quan về các hệ thống lựa chọn phản biện trong và ngoài
nước.
2. Nghiên cứu một số thuật toán so khớp mẫu và một số phương pháp tìm kiếm
xấp xỉ làm cơ sở cho thuật toán lựa chọn phản biện (bao gồm phương pháp quy hoạch
động và phương pháp tìm kiếm xấp xỉ theo cách tiếp cận Otomat hữu hạn mờ).
3. Xây dựng được modul hỗ trợ lựa chọn phản biện dựa trên thuật toán lựa chọn
phản biện theo cách tiếp cận tìm kiếm xấp xỉ bằng phương pháp quy hoạch động.
4. Đã đưa ra được bản phân tích, thiết kế hệ thống và xây dựng được ứng dụng
đáp ứng các yêu cầu đặt ra của Tạp chí Khoa học Công nghệ.
II. Hướng phát triển
1. Tiếp tục cài đặt thuật toán lựa chọn phản biện theo cách tiếp cận Otomat hữu
hạn mờ và so sánh với thuật toán lựa chọn theo cách tiếp cận quy hoạch động.
2. Giải bài toán lựa chọn phản biện dựa trên sự kết hợp phương pháp lựa chọn
phản biện theo cách tiếp cận tìm kiếm xấp xỉ và đảm bảo các ràng buộc được đặt trong
bài toán CMACRA.
3. Giải bài toán lựa chọn phản biện dựa trên sự kết hợp phương pháp lựa chọn
phản biện theo cách tiếp cận tìm kiếm xấp xỉ và đảm bảo các ràng buộc được đặt trong
71
bài toán MaxTC-PRA.
TÀI LIỆU THAM KHẢO
TÀI LIỆU TIẾNG VIỆT
[1] Nguyễn Thị Thanh Huyền, Phan Trung Huy (2002), “Tiếp cận mờ trong một số
thuật toán so mẫu”,Tạp chí Tin học và Điều khiển học, 18(3), tr. 201-210.
[2] Nguyễn Thị Thanh Huyền, Nguyễn Đắc Tuấn, Phan Trung Huy (2006), “Xác định
một số độ đo sự tương tự giữa hai xâu theo mô hình otomat mờ”, Tạp chí Bưu chính
Viễn thông và Công nghệ thông tin, (16), tr. 86-94.
TÀI LIỆU TIẾNG ANH
[3] H. K. Biswas and M. Hasan (2007), “Using publications and domain knowledge to build
research profiles: An application in automatic reviewer assignment”, in ICICT.
[4] C. B. Haym, H. Hirsh, W. W. Cohen, and C. Nevill-manning (1999), “Recommending
papers by mining the web”, In IJCAI’99, pp. 1–11.
[5] S. T. Dumais and J. Nielsen (1992), “Automating the assignment of submitted
manuscripts to reviewers”, In SIGIR’92, pp. 233–244.
[6] M. Karimzadehgan, C. Zhai, and G. Belford (2008), “Multi-aspect expertise matching
for review assignment”, In CIKM’08, pp. 1113–1122.
[7] M. Karimzadehgan and C. Zhai (2009), “Constrained multi-aspect expertise
matching for committee review assignment”. In CIKM’09, pp. 1697–1700.
[8] D. Hartvigsen, J. C. Wei, and R. Czuchlewski (1999), “The conference paper-
reviewer assignment problem”, Decision Sciences, 30(3): pp. 865–876.
[9] Y.H. Sun, J. Ma, Z.P. Fan, and J. Wang (2007), “A hybrid knowledge and model
approach for reviewer assignment”, In HICSS’07, pp. 47–47.
[10] D.K. Tayal, P.C. Saxena, A.Sharma, G. Khanna, S. Gupta (2014), “New method
for solving reviewer assignment problem using type-2 fuzzy sets and fuzzy functions”,
Applied intelligence, 40, 1, pp. 54-73.
[11] X. Li, T. Watanabe (2013), “Automatic paper-to-reviewer assignment based on
72
the matching degree of the reviewers”, Procedia Computer Science, 22, pp.633-642.
[12] C. Long, R. C. W.Wong, Y.Peng, L.Ye (2013), “On good and fair paper-reviewer
assignment”, In IEEE 13th International Conference on Data Mining (ICDM'2013),
pp.1145-1150.
[13] Navarro, Gonzalo (2001), “A guided tour to approximate string matching”, ACM
Computing Surveys, 33 (1), pp. 31-88.
[14] Knuth, E. Donald, H. Morris, Jr,James and R. Pratt Vaughan (1977), “Fast pattern
matching in strings”, SIAM Journal on Computing, 6(2), pp. 323-350.
[15] P. Sellers (1980), “The theory and computation of evolutionary distances: Pattern
recognition”, Journal of Algorithms, 1, pp.359–372.
[16] E. Ukkonen (1985), “Finding approximate patterns in strings”, Journal of
Algorithms, 6, pp.132–137.
[17] R. Boyer and S. Moore (1977), “A fast string searching algorithm”,
Communcations of the ACM, 20, pp.762–772.
[18] Tarhio and E. Ukkonen (1993), “Approximate Boyer-Moore string matching”,
SIAM Journal on Computing, 22, pp.243–260.
[19] Yordan Kalmuko (2006), “An algorithm for automatic assignment of reviewers to
papers”, International Conference on Computer Systems and Technologies, V.5-1–
V.5-7.
[20] A. Aho and M. Corasick (1975), “Effcient string matching: an aid to bibliographic
search”, CACM, 18(6), pp. 333-340.
[21] Christian Charras, Thierry Lecroq (2004), “Handbook of Exact String-Matching
Algorithms”, King's College Publications.
[22] Knuth, Donald E., James H. Morris, Jr, and Vaughan R. Pratt (1977), “Fast
pattern matching in strings”, SIAM Journal on Computing, 6.2 (1977), pp. 323-350.
[23] Kurtz S. (1996), “Approximate String Searching under Weighted Edit Distance”,
Proceedings of 3rd South American Workshop of String Processing, Carton
University Press, pp. 156–170.
[24] Navarro, Gonzalo (2001), “A guided tour to approximate string matching”, ACM
Computing Surveys, 33 (1), pp. 31-88.
[25] S. Needleman and C. Wunsch (1970), “Ageneral method applicable to the
search for similarities in the amino acid sequences of two proteins”, J. of
73
Molecular Biology, 48, pp. 444 – 453.
WEBSITE
[26] http://tapchikhcn.udn.vn.
[27] http://tapchi.humg.edu.vn.
[28] http://www.easychair.org.
74
[29] http://myreview.lri.fr.
i=i + 1; j=j + 1; } else if (j> 0) j=KMP[j]; else{ KMP[i]= 0; i=i + 1; } }
Độ phức tạp của thuật toán xây dựng bảng KMP là O(m).
2.2. Phương pháp quy hoạch động và ứng dụng trong lựa chọn phản biện
Trong nhiều ứng dụng tìm kiếm thực tế, mẫu P hoặc chuỗi văn bản T xảy ra các
13
“lỗi” do các nguyên nhân khác nhau như sự thay đổi hình thái từ hay các lỗi chính tả
như thêm, bớt hay thay đổi ký tự trong từ thì đòi hỏi hệ thống tìm kiếm cần phải linh
hoạt và mềm dẻo hơn mà vẫn cho kết quả như mong muốn, và cụ thể là trong ứng
dụng tìm độ gần ngữ nghĩa giữa từ khóa bài báo và từ khóa người phản biện. Ví dụ:
nếu cho xâu mẫu P=”approximate searching” và văn bản T=”approximated
searching”, nếu sử dụng các thuật toán đối sánh chính xác thì dễ thấy P không xuất
hiện trong T. Nhưng thực tế có thể thấy giữa P và T có nội dung gần giống nhau do có
sai khác ký tự “d”. Chính vì vậy, lý thuyết so mẫu xấp xỉ ra đời cho phép tìm kiếm
những thông tin gần giống và mang lại kết quả mềm dẻo hơn. Bài toán so mẫu xấp xỉ
là sự mở rộng của bài toán so mẫu chính xác và đặt ra yêu cầu là tìm vị trí xuất hiện
của P trong T với số “lỗi” tối đa là e “lỗi”. Như vậy bài toán so mẫu xấp xỉ có thể được
quy về bài toán tìm khúc con chung dài nhất giữa hai xâu ký tự và lời giải được chấp
nhận nếu như độ dài của khúc con chung có độ lệch không quá e ký tự so với mẫu P.
Đã có nhiều phương pháp tìm xâu con chung dài nhất như phương pháp quy hoạch
động tìm khoảng cách Edit (hay còn goi là khoảng cách Levenshtein) [23] hoặc các
phương pháp đối sánh mẫu theo cách tiếp cận otomat hữu hạn mờ [1],... Các phương
pháp này còn được sử dụng khi xét sự tương đồng về mặt ngữ nghĩa khi thứ tự các từ
trong xâu được bảo toàn.
2.2.1. Phương pháp quy hoạch động
Khái niệm Khoảng cách Levenshtein (hay còn gọi là khoảng cách Edit) thể hiện
khoảng cách khác biệt giữa 2 chuỗi ký tự. Khoảng cách Levenshtein giữa chuỗi S và
chuỗi T là số bước ít nhất biến chuỗi S thành chuỗi T thông qua 3 phép biến đổi là:
Xoá 1 ký tự; thêm 1 ký tự; thay ký tự này bằng ký tự khác.
Khoảng cách này được đặt theo tên Vladimir Levenshtein, người đã đề ra khái
niệm này vào năm 1965. Nó được sử dụng trong việc tính toán sự giống và khác nhau
giữa 2 chuỗi, như chương trình kiểm tra lỗi chính tả của winword spellchecker. Ví dụ:
Khoảng cách Levenshtein giữa 2 chuỗi "kitten" và "sitting" là 3, vì phải dùng ít nhất 3
lần biến đổi.
kitten -> sitten (thay "k" bằng "s")
sitten -> sittin (thay "e" bằng "i")
14
sittin -> sitting (thêm ký tự "g")
Để tính toán Khoảng cách Edit, ta sử dụng thuật toán quy hoạch động, tính
toán trên mảng 2 chiều (n+1)*(m+1), với n, m là độ dài của chuỗi cần tính. Sau đây là
thuật toán quy hoạch động (S, T là chuỗi cần tính khoảng cách, n, m là độ dài của
chuỗi S, T):
Thuật toán quy hoạch động tìm khoảng cách Edit giữa hai xâu ký tự
Input: S, T Output: Edit distance int Edit_distance(S, T){ for (int i = 0; i <= m; i++) d[i, 0] = i; for (int j = 0; j <= n; j++) d[0, j] = j; for (int i = 0; i <= m; i++) for (int j = 0; j <= n; j++) { if (S[i] == T[j]) cost = 0; Else cost = 1; d[i + 1, j + 1] = Min(d[i, j + 1] + 1, d[i + 1, j] + 1, d[i, j] + cost); } return d[i,j]; }
Trong mục này, chúng tôi xây dựng thuật toán lựa chọn phản biện dựa trên
phương pháp quy hoạch động. Việc chọn ra người phản biện có cùng hướng nghiên
cứu với nội dung bài báo từ cơ sở dữ liệu các nhà khoa học đảm bảo tính chất khách
quan, đúng vấn đề cần phản biện là điều hết sức cần thiết đối với một tạp chí khoa học.
Muốn vậy, việc phân loại và chọn phản biện cần phải dựa vào nội dung bài báo, hay
phần tóm tắt bài báo hoặc các từ khóa cho mỗi bài báo. Trong trường hợp sử dụng nội
dung bài báo hay tóm tắt bài báo để làm dữ liệu tìm kiếm trong cơ sở dữ liệu phản biện
sẽ phải chấp nhận chi phí khá lớn về thời gian tính toán. Điều này hoàn toàn không
khả thi mà thay vào đó mỗi bài báo sẽ được đặc trưng bởi một số từ khóa, các từ khóa
này sẽ đóng vai trò là dữ liệu đầu vào cho thuật toán. Kết quả của thuật toán là danh
sách các phản biện được sắp xếp theo thứ tự ưu tiên về chuyên môn gần nhất với bài
báo. Độ ưu tiên gần nhất về chuyên môn với bài báo được hiểu là độ gần ngữ nghĩa
giữa từ khóa chuyên môn phản biện và từ khóa bài báo.Trong đó, độ gần ngữ nghĩa là
đại lượng dùng để phản ánh sự giống nhau về nội dung, ý nghĩa giữa hai hay nhiều đối
tượng. Từ khóa là tập hợp các từ đơn được sắp xếp như một từ ghép nhằm chỉ sự đặc
trưng của một đối tượng. Như vậy, bài toán tìm phản biện được quy về bài toán tính độ
15
gần nghữ nghĩa giữa các xâu ký tự.
2.2.2. Thuật toán lựa chọn phản biện
Bài toán lựa chọn phản biện cho bài báo (RAP) được mô hình hóa như sau: Mỗi
phản biện được đặc trưng bởi tập các từ khóa , (i = 1,2,…, M); bài
báo được đặc trưng bởi các từ khóa . Theo cách tiếp cận này, chúng tôi
đưa ra khoảng cách chuyên môn làm thước đo trong lựa chọn phản biện, khoảng cách
chuyên môn giữa phản biện được xác định là nếu phản biện có chung
với bài báo ít nhất một từ khóa, trong đó ci là số lượng từ khóa dùng chung giữa
và , Max là hằng số dương lớn tùy ý, thông thường chọn Max >> ci; d là một hằng
số dương và chọn sao cho 0 và thỏa mãn , ở đây Dk là miền ràng buộc mà Rk phải thỏa mãn như: các ràng buộc về tính sẵn sàng hoặc là các điều kiện về số lượng tối đa bài báo dành cho mỗi phản biện,…. Việc xác định các từ khóa dùng chung giữa phản biện và bài báo một cách chính xác hay các từ khóa được định nghĩa từ trước thì ta có thể sử dụng các thuật toán so khớp đã trình bày ở mục 1.2.1 và mục 1.2.2, trong trường hợp này đã có nhiều kết quả được công bố như đã trình bày ở phần tổng quan (mục 1.1). Tuy nhiên, trong trường hợp các từ khóa là không được định nghĩa trước trong cơ sở dữ liệu, các từ khóa giữa phản biện và bài báo có thể giống nhau về nội dung nhưng lại khác nhau về hình thái từ khi đó sử dụng thuật toán so khớp mẫu chính xác sẽ không mang lại hiệu quả mà thay vào đó ta sẽ sử dụng các phương pháp tìm kiếm xấp xỉ. Trước hết chúng tôi định nghĩa từ khóa được gọi là từ dùng chung giữa phản biện và bài báo như sau: Với hằng số dương e cho trước, nếu khoảng cách Edit giữa từ khóa bài báo Pk và từ khóa phản biện Rij không lớn hơn e thì từ khóa đó được gọi là từ khóa chung giữa bài báo và phản biện Rij. Như vậy, bài toán đặt ra là tìm kiếm xấp xỉ sự xuất hiện của một mẫu trong văn bản với sai số cho phép là e ký tự. Ví dụ cho từ
khóa bái báo là Matching và d = 0.5, các từ khóa phản biện được cho trong Bảng 1 Matching
Random sequence
Paper reviewer assignment
Machanics 16 2
1 Thuật toán thực hiện 2 việc chính, việc thứ nhất là tính toán khoảng cách chuyên Bảng 2: Khoảng cách chuyên môn (ExpertiseDistance) môn và phần thứ 2 là thực hiện tìm kiếm, kết quả tìm kiếm là những phản biện có khoảng cách chuyên môn nhỏ nhất và thỏa mãn các điều kiện ràng buộc của bài toán đặt ra. Thuật toán được mô tả như sau: 17 Trong trường hợp hình thái từ khóa của phản biện và từ khóa bài báo có sự thay đổi nhưng có cùng ý nghĩa hay mô tả cùng một chủ đề, khi đó chúng tôi phân tách các từ khóa bài báo thành các từ đơn. Ví dụ: Từ khóa bài báo là “string matching” và từ khóa phản biện là “pattern matching”, các từ khóa này cùng mô tả một nội dung là kỹ thuật so khớp. Tuy nhiên, nếu tính khoảng cách chuyên môn của phản biện và bài báo bằng khoảng cách Edit thì khoảng cách này sẽ là 5. Nếu e <5 thì kết quả của thuật toán cho thấy không có sự liên quan nào giữa bài báo và phản biện. Vì vậy, để khắc phục hạn chế này chúng tôi sử dụng thuật toán sau: Trong Thuật toán này, chúng tôi sử dụng tham số µ thay thế d trong trường hợp hình thái từ khóa có sự thay đổi mà và d là đại lượng thỏa mãn 0 18 sự xuất hiện của Pj trong RK(i). Keyword hoặc sự xuất hiện của RK(i). Keyword trong Pj, chúng tôi sử dụng thuật toán so khớp như đã trình bày trong mục 1.2.1 và mục 1.2.2. Sau đây chúng tôi trình bày một số kết quả thử nghiệm cho thuật toán nhằm minh họa và khẳng định tính đúng đắn cho thuật toán: Đặt e=2, μ = 0.5, d=0.1 và Max=10000. Bài báo có các từ khóa là {Pattern matching; Dynamic programming; Edit distance; Reviewer keyword; paper reviewer assignment}. Bảng RK được cho như sau: R1 1
1
1 2 R2 2
2
3 R3 3 4 4 R4 4
4
4 Machine learning
Dynamic programming
Random sequence
Clinical Document
Architecture
Drug bills
String matching
Soft computing
Artificial neural
network
String matching
Paper reviewer
assignment
Dynamic programming
Neural network
Reviewer’s keyword Bảng 3: Bảng RK minh họa thuật toán Các kết quả tinh toán được cho trong bảng sau 4 0.0998 Paper reviewer
assignment; Dynamic
programming,
Reviewer’s keyword 0.1000 Dynamic programming
0.5000 String matching 1
2
Bảng 4: Kết quả thực hiện thuật toán Sau khi tính toán, thuật toán trả về kết quả các ứng viên là R4, R1, R2. R4 phủ 3 trong 5 từ khóa của bài báo và có khoảng cách chuyên môn là 0.0998, đây là khoảng cách nhỏ nhất trong tập các khoảng cách chuyên môn. Vậy bài báo sẽ được gán cho phản biện R4. Nếu R4 không thỏa mãn các điều kiện ràng buộc như bận hoặc đã đủ số lượng bài báo để phản biện thì thuật toán sẽ xét tới R1 (R4∉D4). Nếu R1∉D1 thì thuật 19 toán xét tới R2, Nếu R2∉D2 thì kết quả sẽ không có phản biện để phản biện bài báo. Một vấn đề đặt ra là nếu có nhiều phản biện có cùng khoảng cách chuyên môn với bài báo thì bài báo sẽ được gán cho phản biện có số lượng từ khóa ít hơn vì xác suất bận cho phản biện các bài báo khác đối với phản biện này là thấp hơn. 2.3. Otomat hữu hạn mờ và ứng dụng trong lựa chọn phản biện bài báo 2.3.1. Độ gần tựa ngữ nghĩa theo mô hình Otomat hữu hạn mờ Trong mục trước chúng tôi đề xuất thuật toán tìm kiếm phản biện dựa trên phương pháp quy hoạch động [23], Tuy nhiên, trong trường hợp cấu trúc thứ tự từ bị thay đổi nhưng vẫn phản ánh cùng một vấn đề thì sử dụng các phương pháp này lại cho kết quả không mong muốn. Ví dụ: P=”logic toán” và T=”toán logic”, dễ thấy nếu sử dụng khoảng cách Edit để đo sự tương đồng ngữ nghĩa thì độ tương đồng rất thấp (khoảng cách Edit là rất lớn), mặc dù chúng có cùng phản ánh một nội dung. Khắc phục vấn đề này, chúng tôi đã tách từ khóa thành các từ đơn và đã đưa ra thuật toán hữu hiệu trong quá trình tìm kiếm. Trong mục này, chúng tôi giải quyết vấn đề theo một cách tiếp cận khác đó là sử dụng thuật toán xác định độ gần ngữ nghĩa bằng việc xây dựng độ mờ [2], hàm mờ có tính chất như sau: 0 ≤ ≤ 1, hàm có giá trị càng lớn nếu P càng “gần” T. =0, nếu P không chứa trong T hay P không phản ánh bất kỳ một nội dung nào của T. =1, nếu P chứa trong T hay nội dung của T hoàn toàn được phản ánh bởi P, trong trường hợp này có thể coi = =1. Như vậy, để xác định độ gần ngữ nghĩa giữa P và T thì hàm mờ được xác định như sau: (16) Trong đó i: là số khối có độ dài l được trích ra từ P xuất hiện trong S. Thuật toán có thể được mô
tả như sau: 20 ; Trong thuật toán, việc kiểm tra sự xuất hiện của khối (l,i) trong T có thể thực hiện bằng các thuật toán trong mục 2 hoặc bằng thuật toán theo cách tiếp cận mờ nhiều lần lặp mẫu trong [1]. Theo cách trên thì thuật toán tính độ mờ có phép so khớp mẫu, trong trường hợp cần phải so khớp với R chuỗi T khác nhau thì số phép so khớp sẽ là nếu mỗi T là một từ khóa thuộc một bản ghi, R là số bản ghi trong cơ sở dữ liệu, nếu R lớn thì việc tính toán mất khá nhiều thời gian. Để khắc phục nhược điểm này, các kết quả trong [2] đã đưa ra một mô hình otomat cải tiến và chỉ cần một lần tính cấu trúc otomat trong khâu tiền xử lý mẫu. Lý thuyết otomat là một công cụ hữu ích cho các hệ thống trạng thái hữu hạn. Trong phạm vi luận văn này, chúng tôi lựa chọn mô hình otomat hữa hạn mờ không có trạng thái kết thúc; trong đó A là bảng chữ cái ; Ap gồm các ký tự xuất hiện trong mẫu P; {#} là tập các ký tự không có mặt trong P; Q là hàm chuyển trạng. Sau tập hữu hạn các trạng thái mờ; q0 là trạng thái ban đầu; đây là một số ký hiệu được dùng trong thuật toán: Cho 2 số nguyên ký hiệu pred(P) là tiền tố của xâu mẫu P được xác định là khúc đầu d ký tự của P; suff(P) là hậu tố xâu mẫu P và được xác định là khúc cuối gồm f ký tự của P; quy ước pre0(P)=suf0(P)= ( : xâu rỗng); P(f,d)=suff(pred(P)); (f,d) được gọi là tương đương với (f’,d’) nếu P(f,d)=P(f’,d’) và ký hiệu là [f,d], cặp (f,d) được gọi là có nghĩa với P nếu cặp có d nhỏ nhất trong lớp [f,d]; cho u, v là các xâu ký tự, ký hiệu lfact(v,u)là khúc cuối y dài nhất của v sao cho y cũng là một khúc con của u. Otomat mờ được xác định như sau: Tập trạng thái Q={(f,d,k,flag):(f,d) là cặp có nghĩa với P}, k là số khối có độ dài f của P giống nhau; flag là thành phần ghi nhớ trạng thái tham gia vào quá trình tính độ gần ngữ nghĩa, nếu trạng thái chưa được sử dụng vào việc tính độ gần ngữ nghĩa thì flag=0, nếu đã được sử dụng thì flag=1; trạng trạng thái đầu q0=(0,0,0,0); hàm chuyển 21 và được lưu trong bảng chuyển trạng, trong đó , được xác định là cặp . Sau đây là thuật toán tính độ gần ngữ nghĩa giữa P và T. Input:P, T, Otomat B, M Output:Độ gần ngữ nghĩa Thuật toán 3 H=0; q0=(0,0,0,0); for(i=0;i if(q.flag==0){ H=H+q.k*q.f; q.flag=1; } q0=q; } ; Như vậy thuật toán trên chỉ cần tính cấu trúc otomat một lần, việc tính toán độ gần ngữ nghĩa là O(n). Với cấu trúc otomat có thành phần flag thì những trạng thái đã được xét sẽ không cần phải xét lại, điều này làm giảm đáng kể thời gian tính toán so với thuật toán 2. 2.3.2. Thuật toán lựa chọn phản biện Mỗi phản biện Ci(i=1,2,…,K) được đại diện bởi tập từ khóa , ri là số từ khóa của phản biện Ci; Bài báo cần phản biện J được đại diện bởi tập các từ khóa {J1,J2,…,Jt}. Bài toán đặt ra là trên cơ sở tập từ khóa bài báo và từ khóa chuyên môn của các nhà phản biện, ta cần xác định độ gần chuyên môn của bài báo với phản biện . Độ gần chuyên môn Ci, ký hiệu độ gần chuyên môn của bài báo với phản biện Ci là của bài báo với phản biện Ci được xác định là (17) 22 trong đó p: là số khối có độ dài l được Ký hiệu mj là độ dài của từ khóa Jj; Thuật toán tìm độ gần trích ra từ Jj xuất hiện trong Cik; chuyên môn được mô tả như sau: Input:Từ khóa các nhà phản biện: , i=1,2,…,K Từ khóa báo báo: {J1,J2,…,Jt} Output:Danh sách các phản biện được sắp xếp theo thứ tự giảm dần về độ gần chuyên môn. Thuật toán 4 for (i=1;i<=K;i++){ X=0;M=0; for(j=1;j<=t;j++){ Khởi tạo otomat Bj đối với Jj; for(k=1;k<=ri;k++) X=X+H(Jj, Cik); M=M+H(Jj,Jj); } M=ri*M; } Với cấu trúc otomat như trong mục 3, hàm H(Jj,Jj) được xây dựng như trong thuật toán 2 và H(Jj, Cik) được xây dựng như trong thuật toán 3. Sau khi tính được độ gần chuyên môn , ta sắp xếp danh sách các phản biện Ci theo thứ tự giảm dần của . Như vậy, sau khi thực hiện thuật toán ta được danh sách phản biện được sắp xếp 23 theo mức độ ưu tiên có chuyên môn gần với bài báo. KẾT LUẬN CHƯƠNG 2 Trong chương này, chúng tôi trình bày về các thuật toán so khớp mẫu. Các thuật toán so khớp mẫu là cơ sở cho việc xây dựng hệ thống lựa chọn phản biện bao gồm 2 thuật toán là Thuật toán Brute Force và thuật toán Knuth-Morris-Pratt. Các thuật toán lựa chọn phản biện được chúng tôi sử dụng để xây dựng ứng dụng là các thuật toán lựa chọn phản biện dựa trên các phương pháp tìm kiếm xấp xỉ bao gồm: phương pháp quy hoạch động và phương pháp tính độ gần ngữ nghĩa theo cách tiếp cận Otomat hữu hạn mờ. Các kết quả của chương này sẽ là cơ sở lý thuyết 24 cho việc xây dựng ứng dụng và được trình bày ở Chương 3. 3.1. Phát biểu bài toán Bài toán hỗ trợ lựa chọn phản biện được phát biểu như sau: Bài báo được đặc trưng bởi các từ khóa P, người phản biện được đặc trưng bởi bộ từ khóa R, trên cơ sở từ khóa bài báo và từ khóa chuyên môn của người phản biện tìm danh sách các phản biện được sắp xếp theo thứ tự ưu tiên giảm dần về độ gần chuyên môn với bài báo. Input:Từ khóa các nhà phản biện: , i=1,2,…,K Từ khóa báo báo: {J1,J2,…,Jt} Output:Danh sách các phản biện được sắp xếp theo thứ tự giảm dần về độ gần chuyên môn. 3.2. Mô tả yêu cầu hệ thống i/ Các chức năng được phân quyền cho cán bộ văn phòng toàn soạn được Tổng biên tập chỉ định (sau đây gọi là Thư ký) - Xem và cập nhật thông tin cá nhân. - Quản lý tạp chí: Có chức năng tạo mới tạp chí, xem thông tin những tạp chí đã được tạo theo kế hoạch xuất bản được duyệt. - Đối với mỗi số tạp chí, mỗi chuyên san, đặc san được tạo mới, các chức năng dành cho Thư ký bao gồm: + Tiếp nhận bài báo do tác giả gửi lên. + Phân loại các bài đủ điều kiện (đáp ứng được nội dung, hình thức và kinh phí) và các bài không đủ điều kiện (trong đó có xác định rõ lý do không đủ điều kiện). + Chuyển các bài đủ điều kiện lên Trưởng Ban biên tập chuyên san. + Tiếp nhận các bài báo kèm theo chỉ định người phản biện từ Trưởng Ban biên tập chuyên san. + Chuyển bài báo cho phản biện trong danh sách chỉ định (cho cả lần 1 và lần 2 nếu lần 1 không đạt). + Tiếp nhận kết quả phản biện. + Phân loại những bài viết có chất lượng tốt, khá, trung bình, không đạt. + Chuyển kết quả phản biện cho tác giả. 25 + Tiếp nhận bài báo đã chỉnh sửa kèm theo các giải trình từ tác giả. + Chuyển bài báo đã chỉnh sửa kèm theo các giải trình từ tác giả đến các phản biện. + Chuyển bài báo đã được tác giả chỉnh sửa lên Trưởng ban biên tập chuyên san (Đối với các bài sửa chữa không cần gửi lại cho phản biện). + Tiếp nhận ý kiến từ Trưởng ban biên tập chuyên san về bài báo được tác giả chỉnh sửa (Đối với các bài sửa chữa không cần gửi lại cho phản biện), ý kiến về danh mục chọn đăng. + Xem nội dung và tình trạng bài báo của Tác giả. + Tập hợp các bài báo được chấp nhận đăng trình lên Trưởng ban biên tập chuyên san. + Tập hợp các bài báo được chấp nhận đăng trình lên Tổng biên tập và tiếp nhận ý kiến về danh mục đăng từ Tổng biên tập. + Tạo số cho các bài báo được Tổng biên tập duyệt. - Cập nhật thông tin phản biện. - Thống kê người phản biện kèm theo số bài báo đã phản biện. ii/ Các chức năng được phân quyền cho Phản biện - Xem và cập nhật thông tin cá nhân. - Xem và tải nội dung bài báo mời phản biện. - Gửi nhận xét và kết quả phản biện đến Văn phòng tòa soạn: Tóm tắt nội dung bài báo, những kết quả nghiên cứu mới, ý nghĩa khoa học và thực tiễn, các nội dung chính của bài báo đã được công bố trên các ấn phẩm khác hay chưa, kết luận không đăng hay đăng ở các mức độ khác nhau, đánh giá, nội dung sửa lại. iii/ Các chức năng được phân quyền cho Trưởng Ban biên tập chuyên san - Xem và cập nhật thông tin cá nhân. - Đối với mỗi số tạp chí, mỗi chuyên san, đặc san được tạo mới, các chức năng dành cho Trưởng Ban biên tập chuyên san: + Tiếp nhận các bài đủ điều kiện từ Thư ký. + Chuyển danh sách các bài báo kèm theo chỉ định người phản biện tới Thư ký. + Tiếp nhận các bài báo đã được tác giả chỉnh sửa từ thư ký (Đối với các bài sửa chữa không cần gửi lại cho phản biện). + Gửi ý kiến tới Thư ký về bài báo được tác giả chỉnh sửa (Đối với các bài sửa chữa không cần gửi lại cho phản biện) 26 + Gửi ý kiến tới Thư ký về danh mục chọn đăng. + Tiếp nhận các bài báo được chấp nhận đăng. iv/ Các chức năng được phân quyền cho Tổng biên tập - Xem và cập nhật thông tin cá nhân. - Đối với mỗi số tạp chí, mỗi chuyên san, đặc san được tạo mới, các chức năng dành cho Tổng biên tập: + Xem nội dung và tình trạng các bài báo được gửi đến từ các tác giả. + Tiếp nhận các bài báo được chấp nhận đăng từ Thư ký. + Gửi ý kiến tới Thư ký về danh mục đăng. + Xem tổng số bài đã gửi, tổng số bài được chấp nhận đăng, tổng số bài không được đăng, tổng số bài được chấp nhận đăng nhưng phải chỉnh sửa. - Theo dõi quản lý tạp chí: + Các số đã xuất bản + Đối với mỗi số xuất bản cho mỗi chuyên san: Xem tổng số bài đã gửi, tổng số bài được chấp nhận đăng, tổng số bài không được đăng, tổng số bài được chấp nhận đăng nhưng phải chỉnh sửa. v/ Chức năng lựa chọn phản biện Mỗi nhà khoa học có thể tham gia hoạt động chuyên môn nhiều lĩnh vực khác nhau. Vì tính chất đa ngành đa lĩnh vực của tạp chí, nên việc chọn người phản biện cho bài báo đôi khi còn thực sự chưa bám sát vào hướng nghiên cứu của người phản biện và vấn đề mà bài báo đề cập tới. Ví dụ, cùng là lĩnh vực Công nghệ Thông tin nhưng nội dung bài báo viết về chuyên môn hẹp là Khai phá luật kết hợp, nếu ta chọn một nhà khoa học phản biện cho bài báo này mà chỉ căn cứ vào lĩnh vực chuyên môn là Công nghệ Thông tin rất có thể dẫn đến việc ta chọn một người phản biện có hướng nghiên cứu về An toàn thông tin mà không am hiểu về nội dung bài báo đề cập đến (mặc dù cũng hoạt động trong lĩnh vực Công nghệ Thông tin). Vì vậy, việc chọn ra người phản biện có cùng hướng nghiên cứu với nội dung bài báo từ cơ sở dữ liệu các nhà khoa học đảm bảo tính chất khách quan, đúng vấn đề cần phản biện là điều hết sức cần thiết. Muốn vậy, việc phân loại và chọn phản biện cần phải dựa vào các từ khóa cho mỗi bài báo hay số lượng bài báo thuộc hướng nghiên cứu mà tác giả đăng…. Chính vì lý do này, giải pháp xây dựng phần mềm lựa chọn phản biện tự động dựa trên các phương pháp tìm kiếm xấp xỉ sẽ đem lại cho tạp chí một phương án tối ưu nhất khi Thư ký hay Tổng biên tập chọn phản biện và các nhà phản biện cho một bài báo sẽ được liệt kê theo mức độ ưu tiên về chuyên môn gần với bài báo nhất, đó cũng là
27 thông tin hỗ trợ, gợi ý cho Thư ký tạp chí khi phân phản biện bài báo sao cho phù hợp với từng điều kiện hoàn cảnh cụ thể. Chức năng lựa chọn phản biện thực hiện các việc chính sau: - Bổ sung, cập nhật thông tin về người phản biện, gồm các thông tin sau: Họ tên, ngày sinh, giới tính, đơn vị công tác, lĩnh vực chuyên môn, số điện thoại, địa chỉ email, từ khóa hướng chuyên môn. - Lập danh sách các nhà phản biện cho một bài báo theo thứ tự ưu tiên gần với hướng nghiên cứu của bài báo nhất. - Cho phép xem hồ sơ phản biện để làm căn cứ khi quyết định lựa chọn phản biện cho bài báo. Hồ sơ khoa học gồm các thông tin theo mẫu biểu sau: Họ và tên: ………....................................... Giới tính: ………………………………….. Ngày sinh: …………………………………
Quê quán: ………........................................ Nơi sinh: ……..…………………………….
Dân tộc: …………………………………… Đơn vị công tác: ………………………………………………………….………………… Địa chỉ liên lạc: …………………………………………………………….……………… Điện thoại liên hệ: …………………………………………………………………………… E-mail : …………………………………………………………………………….. Học hàm, học vị: …………………………Chuyên ngành: …………………………………. Số tài khoản: ……………………………… tại ngân hàng: ……………………………… Mã số thuế: ………………………………………………………………………………. Hệ đào tạo: ……………………………….... Nơi đào tạo: ………………………………. Năm tốt nghiệp:……………………………. Nơi đào tạo: ……………………………... Năm cấp bằng: ……………………………… Nơi đào tạo: ……………………………... Năm cấp bằng: ……………………………… Mức độ sử dụng: ……………………………................. 28 2. ……………………………… Mức độ sử dụng: ……………………………................. Ví dụ: 1 Hệ có tham số phân bố Distributed parameter system 2 Điều khiển tối ưu Optimal control 3 Thiết kế PID PID design 4 Điều khiển mờ Fuzzy control 5 Đại số gia tử Hedge algebras 6 Giảm bậc mô hình Model order reduction 29 7 Phương pháp số Numerical methods 8 Truyền thông qua đường dây điện lực Power line communication 9 …… …………………, ngày …… tháng …… năm 2016 Xác nhận của đơn vị Người khai ký tên (Ghi rõ họ tên) 3.3. Phân tích hệ thống 3.3.1. Xác định Actor và Use Case 1 TK Thư ký Tạp chí 2 TK_TNK 3 TK_KHX 4 TK_NLY 5 Phản biện 6 TB_TNK 7 TB_KHX 8 TB_NLY 9
10 Tổng biên tập
Quản trị 1.3 Xem thông tin và danh sách đăng ký làm
phản biện 3.1 Cập nhật thông tin phản biện 3.1.1
3.1.2 Cập nhật lý lịch sơ lược
Cập nhật quá trình đào tạo 30 3.1.3
3.1.4
3.1.5
3.1.6 Cập nhật quá trình công tác
Cập nhật công trình nghiên cứu
Cập nhật đề tài nghiên cứu khoa học
Cập nhật từ khóa chuyên môn 3.2 Tổng hợp bài báo theo phản biện Quản trị, TK, TK_TNK, TK_KHX,
TK_NLY, TB_TNK, TB_KHX,
TB_NLY, Tổng biên tập 3.2.1 3.2.2 3.2.3 4.1.1 TK_TNK 4.1.2 TK_KHX 4.1.3 TK_NLY 4.2 4.3 Tổng hợp bài báo theo tác giả 4.3.1 TK, TK_TNK, TK_KHX,
TK_NLY, TB_TNK, TB_KHX,
TB_NLY, Tổng biên tập
TK, TK_TNK, TK_KHX,
TK_NLY, TB_TNK, TB_KHX,
TB_NLY, Tổng biên tập
TK, TK_TNK, TB_TNK, Tổng
biên tập 4.3.2 TK, TK_KHX, TB_KHX, Tổng
biên tập 4.3.3 TK, TK_NLY, TB_NLY, Tổng
biên tập Tổng hợp theo chuyên san khoa học tự
nhiên về số bài đạt, không đạt, đang chờ kết
quả phản biện
Tổng hợp theo chuyên san khoa học xã hội
và nhân văn về số bài đạt, không đạt, đang
chờ kết quả phản biện
Tổng hợp theo chuyên san Nông Lâm Ngư
Y Sinh về về số bài đạt, không đạt, đang
chờ kết quả phản biện 31 7.2 Dự kiến danh sách phản biện 7.3 Tìm kiếm theo từng từ khóa 7.4 Tìm kiếm theo dãy từ khóa 7.5 Nạp dữ liệu phản biện TK_NLY
TK, TK_TNK, TK_KHX,
TK_NLY
TK, TK_TNK, TK_KHX,
TK_NLY
TK, TK_TNK, TK_KHX,
TK_NLY
TK, TK_TNK, TK_KHX,
TK_NLY
TK_TNK, TK_KHX, TK_NLY
TK_TNK, TK_KHX, TK_NLY Bảng 6. Xác định các use case 3.3.2. Biểu đồ Use Case 1/ Quản trị hệ thống 32 Hình 3. Nhóm Use case Quản trị hệ thống 2/ Đăng nhập Hình 4. Use case Đăng nhập Tác nhân chính Mức Người chịu trách nhiệm 33 Bảng 7. Scenario cho use case Đăng nhập 3/ Quản lý phản biện Hình 5. Nhóm Use case Quản lý phản biện 34 Hình 6. Phân rã Use case Cập nhật thông tin phản biện Tác nhân chính Mức Người chịu trách nhiệm Tiền điều kiện Đảm bảo tối thiểu Bảng 8. Scenario cho use case Cập nhật lý lịch sơ lược 35 Hình 7. Phân rã Use case Tổng hợp bài báo theo phản biện Tác nhân chính Mức Người chịu trách nhiệm Tiền điều kiện Đảm bảo tối thiểu Đảm bảo thành công Tổng hợp bài báo theo phản biện
Quản trị, Tổng biên tập, TB_TNK, TB_KHX, TB_NLY, TK,
TK_TNK, TK_KHX, TK_NLY
1
Người sử dụng: Quản trị, Tổng biên tập, TB_TNK, TB_KHX,
TB_NLY, TK, TK_TNK, TK_KHX, TK_NLY
Người sử dụng đã đăng nhập và đã lựa chọn chuyên san
Hệ thống thông báo chọn chuyên san nếu người sử dụng chưa
chọn chuyên san
Hiển thị danh sách người phản biện và kèm theo là số lượng các
bài báo đã phản biện, bao gồm số bài chấm đạt, không đạt và
chưa trả.
Người SD chọn chức năng Tổng hợp bài báo theo phản biện Bảng 9. Scenario cho use case Tổng hợp bài báo theo phản biện 4/ Quản lý bài báo 36 Hình 8. Use case Thống kê và tìm kiếm Hình 9. Nhóm Use case Cập nhật bài báo 37 Hình 10. Phân rã Use case Cập nhật bài báo khoa học tự nhiên Hình 11. Phân rã Use case Cập nhật bài báo khoa học Xã hội và Nhân văn 38 Hình 12. Phân rã Use case Cập nhật bài báo Nông Lâm Ngư Y Sinh Hình 13. Nhóm Use case Tổng hợp bài báo theo tác giả Tác nhân chính Mức Người chịu trách nhiệm Tiền điều kiện Đảm bảo tối thiểu Đảm bảo thành công Tổng hợp bài báo theo tác giả
Tổng biên tập, TB_TNK, TB_KHX, TB_NLY, TK, TK_TNK,
TK_KHX, TK_NLY
1
Người sử dụng: Tổng biên tập, TB_TNK, TB_KHX, TB_NLY,
TK, TK_TNK, TK_KHX, TK_NLY
Người sử dụng đã đăng nhập và đã lựa chọn chuyên san
Hệ thống thông báo chọn chuyên san nếu người sử dụng chưa
chọn chuyên san
Hiển thị danh sách tác giả và kèm theo là số lượng các bài báo
đã được đăng, không được đăng và số lượng bài đang chờ kết
quả phản biện.
Người SD chọn chức năng Tổng hợp bài báo theo tác giả 39 Bảng 10. Scenario cho use case Tổng hợp bài báo theo tác giả 5/ Đổi mật khẩu Hình 14. Use case Đổi mật khẩu 6/ Đăng ký làm phản biện 40 Hình 15. Use case Đăng ký làm phản biện 7/ Tìm kiếm phản biện Hình 16. Nhóm Use case Tìm kiếm phản biện 41 Hình 17. Phân rã Use case chọn bài báo phản biện Đảm bảo tối thiểu Đảm bảo thành công Chọn bài báo phản biện
TK, TK_TNK, TK_KHX, TK_NLY
1
Người sử dụng: TK, TK_TNK, TK_KHX, TK_NLY
Người sử dụng đã đăng nhập và đã lựa chọn chuyên san
Hệ thống thông báo chọn chuyên san nếu người xử dụng chưa
chọn chuyên san
Các từ khóa của bài báo được phân tách và hiện thị tại trang tìm
kiếm phản biện
Người sử dụng chọn chức năng Chọn bài báo Bảng 11. Scenario cho use case Chọn bài báo phản biện 8/ Chỉ định phản biện 42 Hình 18. Nhóm Use case Chỉ định phản biện 3.3.3. Biểu đồ lớp phân tích 43 Hình 19. Biểu đồ lớp phân tích 3.3.4. Biểu đồ trạng thái Hình 20. Biểu đồ trạng thái lớp Journal 3.4. Thiết kế hệ thống 3.4.1. Biểu đồ tuần tự 44 Hình 21. Biểu đồ tuần tự cho chức năng đăng nhập 45 Hình 22. Biểu đồ tuần tự cho chức năng tìm kiếm phản biện theo từng từ khóa 46 Hình 23. Biểu đồ tuần tự cho chức năng tìm kiếm phản biện theo dãy từ khóa 47 Hình 24. Biểu đồ tuần tự cho chức năng Chọn bài báo Hình 25. Biểu đồ tuần tự cho chức năng Cập nhật lý lịch sơ lược (Thuộc chức năng 48 Đăng ký làm phản biện) Hình 26. Biểu đồ tuần tự cho chức năng Cập nhật từ khóa chuyên môn thuộc lĩnh vực 49 Khoa học Tự nhiên (Thuộc nhóm Use case Đăng ký làm phản biện) Hình 27. Biểu đồ tuần tự cho chức năng đổi mật khẩu đối với tác nhân Thư ký 50 Hình 28. Biểu đồ tuần tự cho chức năng Thêm bài báo 51 Hình 29. Biểu đồ tuần tự cho chức năng Chỉ định phản biện 1 52 Hình 30. Biểu đồ tuần tự cho chức năng Chỉ định phản biện 2 3.4.2. Biểu đồ lớp chi tiết 53 Hình 31. Biểu đồ lớp chi tiết 3.4.3. Các đối tượng cơ sở dữ liệu và các chức năng của chương trình Việc lưu trữ dữ liệu cho các lớp là rất khó khăn bởi chưa có các công cụ chuẩn hữu hiệu như trong CSDL quan hệ để hỗ trợ cho việc tạo và lưu trữ dữ liệu. Bởi vậy chúng tôi đã chuyển biểu đồ lớp trong UML sang mô hình EER (Enhaned Entity Relationship), sau đó chuyển đổi từ mô hình EER sang quan hệ để sử dụng các hệ quản trị CSDL quan hệ để lưu trữ dữ liệu. 3.4.3.1. Sơ đồ thực thể liên kết 54 Hình 32. Sơ đồ thực thể liên kết 3.4.3.2. Các đối tượng cơ sở dữ liệu CriticismID
SName
Name
BirthYear
Gender
PlaceOfBirth
NativeCountry
Ethnicity
Organization
Address
PhoneNumber
Email
PassLogin Bigint
nvarchar(200)
nchar(100)
char(4)
nchar(10)
nvarchar(200)
nvarchar(200)
nchar(50)
nvarchar(500)
nvarchar(500)
char(12)
nchar(100)
nchar(100) Speciality nchar(10) char(50)
nvarchar(200) AccountNumber
Bank
TaxIdentificationNumber char(50)
Univ_Brand
Univ_TypeOfTraining
University
Univ_Year
Mast_Specific
Mast_University
Mast_Year
Doct_Specific
Doct_University
Doct_Year
Doct_TitleOfThesis
Languages1
LevelOfLanguages1
Languages2
LevelOfLanguages2
KeywordVN
KeywordEng
Who
DateAndTime
Date
Month
Year
NumberYes
NumberNo
NumberWaiting nvarchar(200)
nvarchar(50)
nvarchar(200)
char(4)
nvarchar(200)
nvarchar(200)
char(4)
nvarchar(200)
nvarchar(200)
char(4)
nvarchar(600)
nvarchar(50)
nvarchar(50)
nvarchar(50)
nvarchar(50)
nvarchar(MAX)
nvarchar(MAX)
nchar(100)
nvarchar(100)
char(2)
char(2)
char(4)
Int
Int
Int Số định danh phản biện
Họ phản biện
Tên phản biện
Năm sinh
Giới tính
Nơi sinh
Quê quán
Dân tộc
Cơ quan công tác
Địa chỉ
Số điện thoại
Địa chỉ Email
Mật khẩu tài khoản
Chuyên san: Nông Lâm Y là NLY;
Khoa học xã hội là KHX; Tự nhiên kỹ
thuật TNK
Tài khoản ngân hang
Ngân hàng đăng ký tài khoản
Mã số thuế
Ngành học đại học
Hệ đào tạo đại học
Tên trường học đại học
Năm tốt nghiệp
Chuyên môn thạc sỹ
Cơ sở đào tạo thạc sỹ
Năm tốt nghiệp thạc sỹ
Chuyên môn tiến sỹ
Cơ sở đào tạo tiến sỹ
Năm tốt nghiệp tiến sỹ
Tiêu đề luận án
Ngoại ngữ 1
Trình độ ngoại ngữ 1
Ngoại ngữ 2
Trình độ ngoại ngữ 2
Từ khóa tiếng Việt
Từ khóa tiếng Anh
Người cập nhật phản biện
Thời gian cập nhật
Ngày cập nhật
Tháng cập nhật
Năm cập nhật
Trường lưu trữ thông tin tạm thời
Trường lưu trữ thông tin tạm thời
Trường lưu trữ thông tin tạm thời Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng) 55 Bảng 12. Bảng tblCriticism lưu các thông tin về phản biện Bigint
JournalID
nchar(14)
Journal
nvarchar(500)
TitleVN
nvarchar(500)
TitleEng
nchar(10)
Speciality
nvarchar(500)
KeywordVNM
nvarchar(500)
KeywordENG
char(10)
Volume
char(2)
Issue
char(3)
Quarters
char(4)
Years
char(10)
Pages
nvarchar(50)
SnameOfAuthor
nvarchar(50)
NameOfAuthor
nvarchar(100)
Organization
char(12)
PhoneNumber
nchar(100)
Email
Coauthor
nvarchar(500)
OrganizationOfCoauthor nvarchar(500)
ReceiveDate
ReceiveMonth
ReceiveYear
ReceiveUser
CriticismDate1
CriticismMonth1
CriticismYear1
DeadlineDate1
DeadlineMonth1
DeadlineYear1
CriticismDate2
CriticismMonth2
CriticismYear2
DeadlineDate2
DeadlineMonth2
DeadlineYear2
UpdateUser1
UserDate1
CriticismID1
Result1
Mark1
UpdateUser2
UserDate2
CriticismID2
Result2
Mark2
Result
Mark char(2)
char(2)
char(4)
nvarchar(100)
char(2)
char(2)
char(4)
char(2)
char(2)
char(4)
char(2)
char(2)
char(4)
char(2)
char(2)
char(4)
nvarchar(200)
nvarchar(20)
Bigint
Int
Real
nvarchar(200)
nvarchar(20)
Bigint
Int
Real
Int
Real ID bài báo
Mã bài báo
Tiêu đề tiếng Việt của bài báo
Tiêu đề tiếng Anh
Thuộc chuyên san
Từ khóa tiếng Việt
Từ khóa tiếng Anh
Vol bài báo
Issue bài báo
Xuất bản vào quý mấy
Xuất bản vào năm nào
Số trang
Họ tác giả
Tên tác giả
Cơ quan tác giả
Số điện thoại
Địa chỉ email
Đồng tác giả
Đơn vị đồng tác giả
Ngày nhận bài
Tháng nhận bài
Năm nhận bài
Người nhận bài
Ngày giao phản biện 1
Tháng giao phản biện 1
Năm giao phản biện 1
Ngày hạn trả bài của phản biện 1
Tháng hạn trả bài của phản biện 1
Năm hạn trả bài của phản biện 1
Ngày giao phản biện 2
Tháng giao phản biện 2
Năm giao phản biện 2
Ngày hạn trả bài của phản biện 2
Tháng hạn trả bài của phản biện 2
Năm hạn trả bài của phản biện 2
Người cập nhật phản biện 1
Ngày cập nhật phản biện 1
ID phản biện 1
Kết quả phản biện 1
Kết quả điểm số phản biện 1
Người cập nhật phản biện 2
Ngày cập nhật phản biện 2
ID phản biện 2
Kết quả phản biện 2
Kết quả điểm số phản biện 2
Kết luận phản biện
Điểm trung bình của 2 phản biện Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng) 56 Bảng 13. Bảng tblJournal lưu các thông tin về bài báo Cách đánh mã bài báo: Mã chuyên san+Ngày nhận bài+Tháng nhận bài+Năm nhận bài(2 số cuối)+”-“+Số thứ tự(3 chữ số). Ví dụ: Bài báo thuộc chuyên san tự nhiên kỹ thuật nhận vào ngày 14/11/20017 là bài được nhận đầu tiên sẽ có mã là: TNK141117-001. Mã chuyên san
Tên chuyên san ID
Chuyensan Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng)
nchar(10) NotNull
nvarchar(100) Bảng 14. Bảng tblChuyensan lưu trữ danh mục các chuyên san ID
CriticismID
TitleCT
Kind
YearCT
Publish Bigint NotNull
Bigint
nvarchar(500)
nvarchar(200)
char(4)
nvarchar(200) ID phản biện
Tên công trình khoa học
Thể loại: Sách, giáo trình hay bài báo
Năm xuất bản
Nhà Xuất bản Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng) Bảng 15. Bảng tblCri_Journal_and_Book lưu giữ các công trình của nhà khoa học tham gia làm phản biện ID phản biện
Thời gian công tác
Nơi công tác
Vị trí việc làm Bigint NotNull
Bigint
nvarchar(100)
nvarchar(300)
nvarchar(300) Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng) ID
CriticismID
Title
Year
Leve
Roles Bigint NotNull
Bigint
nvarchar(200)
char(10)
nvarchar(50)
nvarchar(50) ID phản biện
Tên đề tài nghiên cứu
Năm thực hiện
Cấp thực hiện: Nhà nước, Bộ, cơ sở,….
Trách nhiệm: Chủ nhiệm hay thành
viên,… Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng) Bảng 17. Bảng tblCri_ScientificResearch lưu thông tin đề tài của phản biện Gender
GenderName Tên trường dữ liệu Diễn giải Mã giới tính
Tên giới tính Kiểu dữ liệu
(độ rộng)
nchar(10) NotNull
nvarchar(10) 57 Bảng 18. Bảng tblGender lưu thông tin danh mục giới tính ID
CriticismID
KeywordENG
KeywordVNM
Distance Bigint NotNull
Bigint NotNull
nvarchar(100)
nvarchar(100)
Real ID phản biện
Từ khóa tiếng Anh
Từ khóa tiếng Việt
Thông tin lưu tạm thời Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng) Bảng 19. Bảng tblKeywordKHX lưu thông tin từ khóa của các phản biện thuộc lĩnh vực Khoa học xã hội ID
CriticismID
KeywordENG
KeywordVNM
Distance Bigint NotNull
Bigint NotNull
nvarchar(100)
nvarchar(100)
Real ID phản biện
Từ khóa tiếng Anh
Từ khóa tiếng Việt
Thông tin lưu tạm thời Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng) Bảng 20. Bảng tblKeywordNLY lưu thông tin từ khóa của các phản biện thuộc lĩnh vực Nông Lâm Y ID
CriticismID
KeywordENG
KeywordVNM
Distance Bigint NotNull
Bigint NotNull
nvarchar(100)
nvarchar(100)
Real ID phản biện
Từ khóa tiếng Anh
Từ khóa tiếng Việt
Thông tin lưu tạm thời Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng) Bảng 21. Bảng tblKeywordTNK lưu thông tin từ khóa của các phản biện thuộc lĩnh vực Tự nhiên Kỹ thuật Trạng thái: 1-Mở, 0-Đóng
Người cập nhật trạng thái
Thời gian cập nhật
Ngày cập nhật
Tháng cập nhật
Năm cập nhật Int
nchar(100)
nvarchar(100)
char(2)
char(2)
char(4) Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng) trực tuyến MenuID
MenuName
Link
ParentID
Permission Int NotNull
nvarchar(50)
nvarchar(50)
Int
char(10) ID menu
Tên menu
Liên kết
ID menu cha
Phân quyền cho menu 58 Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng) Bảng 23. Bảng tblMenu lưu thông tin danh mục menu trang chủ PermissionID
PermissionName Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng)
ID quyền
char(10) Not Null
nvarchar(100) NotNull Tên quyền hạn: Thư ký, Quản trị,…
Bảng 24. Bảng tblPermission lưu thông tin danh mục phân quyền trong hệ thống ID Int Result nvarchar(100) ID
Tên kết quả: Đồng ý đăng; không
đồng ý đăng; Đồng ý đăng và sửa
chữa (không cần gửi lại phản biện);
Đồng ý đăng và sửa chữa (phải gửi
lại phản biện) Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng) Bảng 25. Bảng tblResultOfCriticism lưu thông tin danh mục các kết quả phản biện Bigint NotNull
nchar(100) NotNull
nchar(200) NotNull ID
Username
Pass char(10) Permission nvarchar(200)
nvarchar(200)
nvarchar(200)
nchar(100)
char(15)
char(100)
nvarchar(100) ID
Tài khoản người sử dụng
Mật khẩu
Quyền hạn trong hệ thống: Thư ký,
Quản trị,…
Họ
Tên
Cơ quan công tác
Địa chỉ Email
Số điện thoại
Người cập nhật
Ngày giờ cập nhật SName
Name
Organization
Email
PhoneNumber
Who
DateAndTime Tên trường dữ liệu Diễn giải Kiểu dữ liệu
(độ rộng) 59 Bảng 26. Bảng tblUser lưu thông tin người sử dụng hệ thống 3.4.3.3. Các chức năng của chương trình Tìm kiếm
phản biện Tìm kiếm phản biện chuyên san Nông
Lâm Ngư Y Sinh Đăng nhập Đăng ký tham
gia phản biện và
cập nhật thông
tin phản biện Đổi mật khẩu Quản trị hệ
thống Quản lý đăng ký phản biện Xem thông tin đăng ký tham gia phản biện Cập nhật thông tin phản biện Cập nhật lý lịch Cập nhật quá trình đào tạo Cập nhật quá trình công tác Quản lý
phản biện Cập nhật nghiên cứu khoa học Tổng hợp bài báo theo phản biện Cập nhật Thông tin bài báo Cập nhật KQ phản biện 1 Quản lý bài
báo Cập nhật KQ phản biện 2 Vào số bài báo 60 Hình 33. Các chức năng hệ thống hỗ trợ lựa chọn phản biện Chương trình ứng dụng được chúng tôi thực hiện bằng ngôn ngữ lập trình ASP.Net (bản Visual studio 2012) và hệ quản trị cơ sở dữ liệu SQL Server 2012. Sau đây là các form được xây dựng thể hiện các chức năng của chương trình. Hình 34. Form Đăng nhập hệ thống 61 Hình 35. Form Chức năng tìm kiếm phản biện Hình 36. Form Đăng nhập lại hệ thống 62 Hình 37. Form Đổi mật khẩu Hình 38. Form Chức năng cập nhật thành viên 63 Hình 39. Form Chức năng quản lý đăng ký phản biện Hình 40. Form Xem thông tin đăng ký tham gia phản biện 64 Hình 41. Form Cập nhật lý lịch của phản biện Hình 42. Form Cập nhật quá trình đào tạo 65 Hình 43. Form Cập nhật quá trình công tác Hình 44. Form Cập nhật đề tài nghiên cứu khoa học 66 Hình 45. Form Cập nhật công trình khoa học đã công bố Hình 46. Form Cập nhật các từ khóa chuyên môn 67 Hình 47. Form Tổng hợp bài báo theo phản biện Hình 48. Form Cập nhật bài báo 68 Hình 49. Form Thống kê bài báo theo các tiêu chí Hình 50. Form Tổng hợp bài báo theo tác giả Hình 51. Form Chức năng xem hồ sơ của phản biện để tham khảo lựa chọn làm phản 69 biện cho bài báo Trong chương này, chúng tôi thực hiện xây dựng hệ thống đáp ứng các yêu cầu bài toán đặt ra, bao gồm các kết quả sau: 1. Mô tả yêu cầu của hệ thống 2. Phân tích hệ thống và đã đưa xác định được các tác nhân và Use case từ đó xây dựng được biểu đồ Use Case, biểu đồ trình tự và biểu đồ lớp. 3. Trên cơ sở phân tích hệ thống và thuật toán lựa chọn phản biện dựa trên phương pháp quy hoạch động được trình bày trong Chương 2, chúng tôi đã thiết kế được cơ sở dữ liệu và chương trình ứng dụng. Cụ thể: Xây dựng được sơ đồ thực thể liên kết và các đối tượng cơ sở dữ liệu; Các chức năng của chương trình được chỉ ra cụ 70 thể nhằm đáp ứng yêu cầu của hệ thống như đã mô tả. Luận văn này thực hiện các nội dung sau: 1. Nghiên cứu tổng quan về các hệ thống lựa chọn phản biện trong và ngoài nước. 2. Nghiên cứu một số thuật toán so khớp mẫu và một số phương pháp tìm kiếm xấp xỉ làm cơ sở cho thuật toán lựa chọn phản biện (bao gồm phương pháp quy hoạch động và phương pháp tìm kiếm xấp xỉ theo cách tiếp cận Otomat hữu hạn mờ). 3. Xây dựng được modul hỗ trợ lựa chọn phản biện dựa trên thuật toán lựa chọn phản biện theo cách tiếp cận tìm kiếm xấp xỉ bằng phương pháp quy hoạch động. 4. Đã đưa ra được bản phân tích, thiết kế hệ thống và xây dựng được ứng dụng đáp ứng các yêu cầu đặt ra của Tạp chí Khoa học Công nghệ. II. Hướng phát triển 1. Tiếp tục cài đặt thuật toán lựa chọn phản biện theo cách tiếp cận Otomat hữu hạn mờ và so sánh với thuật toán lựa chọn theo cách tiếp cận quy hoạch động. 2. Giải bài toán lựa chọn phản biện dựa trên sự kết hợp phương pháp lựa chọn phản biện theo cách tiếp cận tìm kiếm xấp xỉ và đảm bảo các ràng buộc được đặt trong bài toán CMACRA. 3. Giải bài toán lựa chọn phản biện dựa trên sự kết hợp phương pháp lựa chọn phản biện theo cách tiếp cận tìm kiếm xấp xỉ và đảm bảo các ràng buộc được đặt trong 71 bài toán MaxTC-PRA. TÀI LIỆU TIẾNG VIỆT
[1] Nguyễn Thị Thanh Huyền, Phan Trung Huy (2002), “Tiếp cận mờ trong một số thuật toán so mẫu”,Tạp chí Tin học và Điều khiển học, 18(3), tr. 201-210. [2] Nguyễn Thị Thanh Huyền, Nguyễn Đắc Tuấn, Phan Trung Huy (2006), “Xác định một số độ đo sự tương tự giữa hai xâu theo mô hình otomat mờ”, Tạp chí Bưu chính Viễn thông và Công nghệ thông tin, (16), tr. 86-94. TÀI LIỆU TIẾNG ANH
[3] H. K. Biswas and M. Hasan (2007), “Using publications and domain knowledge to build research profiles: An application in automatic reviewer assignment”, in ICICT. [4] C. B. Haym, H. Hirsh, W. W. Cohen, and C. Nevill-manning (1999), “Recommending papers by mining the web”, In IJCAI’99, pp. 1–11. [5] S. T. Dumais and J. Nielsen (1992), “Automating the assignment of submitted manuscripts to reviewers”, In SIGIR’92, pp. 233–244. [6] M. Karimzadehgan, C. Zhai, and G. Belford (2008), “Multi-aspect expertise matching for review assignment”, In CIKM’08, pp. 1113–1122. [7] M. Karimzadehgan and C. Zhai (2009), “Constrained multi-aspect expertise matching for committee review assignment”. In CIKM’09, pp. 1697–1700. [8] D. Hartvigsen, J. C. Wei, and R. Czuchlewski (1999), “The conference paper- reviewer assignment problem”, Decision Sciences, 30(3): pp. 865–876. [9] Y.H. Sun, J. Ma, Z.P. Fan, and J. Wang (2007), “A hybrid knowledge and model approach for reviewer assignment”, In HICSS’07, pp. 47–47. [10] D.K. Tayal, P.C. Saxena, A.Sharma, G. Khanna, S. Gupta (2014), “New method for solving reviewer assignment problem using type-2 fuzzy sets and fuzzy functions”, Applied intelligence, 40, 1, pp. 54-73. [11] X. Li, T. Watanabe (2013), “Automatic paper-to-reviewer assignment based on 72 the matching degree of the reviewers”, Procedia Computer Science, 22, pp.633-642. [12] C. Long, R. C. W.Wong, Y.Peng, L.Ye (2013), “On good and fair paper-reviewer assignment”, In IEEE 13th International Conference on Data Mining (ICDM'2013), pp.1145-1150. [13] Navarro, Gonzalo (2001), “A guided tour to approximate string matching”, ACM Computing Surveys, 33 (1), pp. 31-88. [14] Knuth, E. Donald, H. Morris, Jr,James and R. Pratt Vaughan (1977), “Fast pattern matching in strings”, SIAM Journal on Computing, 6(2), pp. 323-350. [15] P. Sellers (1980), “The theory and computation of evolutionary distances: Pattern recognition”, Journal of Algorithms, 1, pp.359–372. [16] E. Ukkonen (1985), “Finding approximate patterns in strings”, Journal of Algorithms, 6, pp.132–137. [17] R. Boyer and S. Moore (1977), “A fast string searching algorithm”, Communcations of the ACM, 20, pp.762–772. [18] Tarhio and E. Ukkonen (1993), “Approximate Boyer-Moore string matching”, SIAM Journal on Computing, 22, pp.243–260. [19] Yordan Kalmuko (2006), “An algorithm for automatic assignment of reviewers to papers”, International Conference on Computer Systems and Technologies, V.5-1– V.5-7. [20] A. Aho and M. Corasick (1975), “Effcient string matching: an aid to bibliographic search”, CACM, 18(6), pp. 333-340. [21] Christian Charras, Thierry Lecroq (2004), “Handbook of Exact String-Matching Algorithms”, King's College Publications. [22] Knuth, Donald E., James H. Morris, Jr, and Vaughan R. Pratt (1977), “Fast pattern matching in strings”, SIAM Journal on Computing, 6.2 (1977), pp. 323-350. [23] Kurtz S. (1996), “Approximate String Searching under Weighted Edit Distance”, Proceedings of 3rd South American Workshop of String Processing, Carton University Press, pp. 156–170. [24] Navarro, Gonzalo (2001), “A guided tour to approximate string matching”, ACM Computing Surveys, 33 (1), pp. 31-88. [25] S. Needleman and C. Wunsch (1970), “Ageneral method applicable to the search for similarities in the amino acid sequences of two proteins”, J. of 73 Molecular Biology, 48, pp. 444 – 453. WEBSITE
[26] http://tapchikhcn.udn.vn. [27] http://tapchi.humg.edu.vn. [28] http://www.easychair.org. 74 [29] http://myreview.lri.fr.Keyword
ReviewerID
1
2
1
3
Machining
Dynamic programming
Bảng 1: Các từ khóa của phản biện (ReviewerKeyword)
ReviewerID
1
2
3
Expertise distance
0.5
x
x
Thuật toán tìm kiếm xấp xỉ
Input: P, R,e,d, Max, Sum=
Output: Return reviewer Rk that satifies (1)
struct ReviewerKeyword {
int ReviewerID;
char Keyword [Length];
};
struct ExpertiseDistance {
int ReviewerID;
double Distance;
};
struct ReviewerKeyword RK[Sum];
struct ExpertiseDistance ED[M];
int ApproximateSearching(P, R,e,d, Max){
for (int i = 1; i <= M; i++)
ED(i). Distance=Max;
for (int i = 1; i <= Sum; i++)
for (int j = 1; j <= n; j++){
= Edit_distance(Pj, RK(i). Keyword);
if ( <=e){
Finding k such that ED(k). ReviewerID is equal
RK(i). ReviewerID;
if (ED(k). Distance>d)
ED(k). Distance=d;
Else
ED(k). Distance= ED(k). Distance-1/Max
Break;
}
}
Finding k such that ED(k).Distance =min1≤i≤M{ED(i).Distance} and satisfying the
constraints in (1).
return ED(k).ReviewerID;
}
Algorithm 5: Modified version of algorithm 4 for Approximate searching
int ApproximateSearching(P, R,e,d, µ, Max){
for (int i = 1; i <= M; i++)
ED(i). Distance=Max;
for (int i = 1; i <= Sum; i++)
for (int j = 1; j <= n; j++){
= Edit_distance(Pj, RK(i). Keyword);
if ( <=e){
Finding k such that ED(k). ReviewerID is equal
RK(i). ReviewerID;
if (ED(k). Distance>d)
ED(k). Distance=d;
Else
ED(k). Distance= ED(k). Distance-1/Max;
Break;
}
else{
If(Pj is substring of RK(i). Keyword
or RK(i). Keyword is substring of Pj){
if (ED(k). Distance> µ)
ED(k). Distance= µ;
Else
ED(k). Distance= ED(k). Distance-1/Max
Break;
}
}
Finding k such that ED(k).Distance =min1≤i≤M{ED(i).Distance} and satisfying
constraints
D(Rk,P)≤µ and Rk∊ Dk;
return ED(k).ReviewerID;
}
Table -3: Example to illustrate algorithm
Reviewer ReviewerID
Keyword
ReviewerID
Relevance keywords
Expertise
distance
Input:P, T
Output:Độ mờ
Thuật toán 2
H=0;
for(l=1;l<=m;l++)
for(i=0;i<=m-l;i++)
if(khối (l,i) của P xuất hiện trong T)
H=H+l;
M=0;
for(l=1;l<=m;l++)
M=M+(m-l+1)*l;
CHƯƠNG 3. XÂY DỰNG ỨNG DỤNG
LÝ LỊCH KHOA HỌC
I. LÝ LỊCH SƠ LƯỢC
II. QUÁ TRÌNH ĐÀO TẠO
1. Đại học:
Ngành học: …………………………..…...
2. Thạc sĩ:
Chuyên ngành:………………………..……..
3. Tiến sỹ
Chuyên ngành:………………………..……..
Tên luận án tốt nghiệp: …………………………………………………………………………
……………………………………………………………………………………………………..
……………………………………………………………………………………………………..
……………………………………………………………………………………………………..
3. Ngoại ngữ:
1.………………………..……..
III. QUÁ TRÌNH CÔNG TÁC
Thời gian
Nơi công tác
Công việc đảm nhiệm
IV. KẾT QUẢ NGHIÊN CỨU KHOA HỌC
1. Các đề tài nghiên cứu khoa học đã tham gia:
TT
Năm hoàn thành
Tên đề tài nghiên cứu / lĩnh vực ứng
dụng
Trách nhiệm
tham gia trong
đề tài
Đề tài cấp
(NN, Bộ,
Ngành,
trường)
2. Các công trình khoa học (bài báo khoa học, báo cáo hội nghị khoa học, sách chuyên khảo…) đã
công bố
TT
Tên công trình
Thể loại
Năm công bố
Nơi công bố
3. Để thuận lợi cho việc lựa chọn phản biện, đề nghị các nhà khoa học cung cấp cho Ban biên tập Tạp
chí từ 05 – 10 từ khóa thể hiện sở trường chuyên môn của mình, sắp xếp theo thứ tự giảm dần.
STT
Từ khóa tiếng Việt
Từ khóa tiếng Anh
STT
Tên tác nhân
Vai trò
Thư ký phụ trách chuyên san Khoa học tự nhiên
kỹ thuật
Thư ký phụ trách chuyên san Khoa học xã hội và
nhân văn
Thư ký phụ trách chuyên san Khoa học Nông
Lâm Ngư Y Sinh
Phản biện
Trưởng ban biên tập chuyên chuyên san Khoa
học Tự nhiên kỹ thuật
Trưởng ban biên tập chuyên chuyên san Khoa
học xã hội và nhân văn
Trưởng ban biên tập chuyên chuyên san Khoa
học Nông Lâm Ngư Y Sinh
Tổng biên tập
Quản trị hệ thống
Bảng 5. Xác định các tác nhân
STT
Use case
Actor
1
1.1
1.2
Quản trị hệ thống
Cập nhật người sử dụng và phân quyền
Quản lý đăng ký phản biện
2
Đăng nhập
3
Quản lý phản biện
Quản trị
Quản trị
Quản trị, TK, TK_TNK, TK_KHX,
TK_NLY, TB_TNK, TB_KHX,
TB_NLY, Tổng biên tập
Quản trị, TK, TK_TNK, TK_KHX,
TK_NLY, TB_TNK, TB_KHX,
TB_NLY, Tổng biên tập
Quản trị, TK, TK_TNK, TK_KHX,
TK_NLY, TB_TNK, TB_KHX,
TB_NLY, Tổng biên tập
3.2.4
4
4.1
TK_TNK, TK_KHX, TK_NLY
Thống kê danh sách phản biện theo chuyên
san khoa học tự nhiên về số bài phản biện
đạt, không đạt, chưa trả
Tổng hợp theo chuyên san khoa học xã hội
và nhân văn về số bài phản biện đạt, không
đạt, chưa trả
Tổng hợp theo chuyên san Nông Lâm Ngư
Y Sinh về số bài phản biện đạt, không đạt,
chưa trả
Xem hồ sơ tác giả
Quản lý bài báo
Cập nhật bài báo
Cập nhật bài báo thuộc chuyên san Khoa
học Tự nhiên kỹ thuật
Cập nhật bài báo thuộc chuyên san Khoa
học Xã hội và Nhân văn
Cập nhật bài báo thuộc chuyên san Nông
Lâm Ngư Y Sinh
Thống kê và tìm kiếm bài báo theo các điều
kiện: Mã bài báo, theo thông tin tác giả,
theo phản biện,…
5
Đổi mật khẩu
6
6. 1
6. 2
6.3
6.4
6.5
6.6
7
7.1
Đăng ký làm phản biện
Cập nhật lý lịch sơ lược
Cập nhật quá trình đào tạo
Cập nhật quá trình công tác
Cập nhật công trình nghiên cứu
Cập nhật đề tài nghiên cứu khoa học
Cập nhật từ khóa chuyên môn
Tìm kiếm phản biện
Xem hồ sơ phản biện
Quản trị, TK, TK_TNK, TK_KHX,
TK_NLY, TB_TNK, TB_KHX,
TB_NLY, Tổng biên tập
Phản biện
Phản biện
Phản biện
Phản biện
Phản biện
Phản biện
Phản biện
TK, TK_TNK, TK_KHX,
8
8.1
8.2
Chỉ định phản biện
Chỉ định phản biện 1
Chỉ định phản biện 2
Tên Use case
Đăng nhập
Quản trị, TK, TK_TNK, TK_KHX, TK_NLY, TB_TNK,
TB_KHX, TB_NLY, Tổng biên tập
1
Người sử dụng: Quản trị, TK, TK_TNK, TK_KHX, TK_NLY,
TB_TNK, TB_KHX, TB_NLY, Tổng biên tập
Người sử dụng truy nhập vào địa chỉ hệ thống
Hệ thống chuyển sang trang chủ
Người sử dụng chọn chức năng đăng nhập
Tiền điều kiện
Đảm bảo tối thiểu
Đảm bảo thành công
Kích hoạt
Chuỗi sự kiến chính
1. Hệ thống hiển thị trang đăng nhập và yêu cầu người sử dụng nhập thông tin về tài khoản và
mật khẩu đăng nhập.
2. Người sử dụng nhập tài khoản, mật khẩu và nhấn nút Đăng nhập.
3. Hệ thống xác nhận tính hợp lệ về tài khoản của người dùng.
4. Hệ thống hiển thị trang chủ.
Ngoại lệ
1.a. Hệ thống thông báo tài khoản không hợp lệ nếu thông tin về tài khoản và mật khẩu chưa
được cấp hoặc người dùng nhập sai tài khoản, mật khẩu.
Tên Use case
Cập nhật lý lịch sơ lược
Quản trị, TK, TK_TNK, TK_KHX, TK_NLY, TB_TNK,
TB_KHX, TB_NLY, Tổng biên tập
2
Người sử dụng: Quản trị, TK, TK_TNK, TK_KHX, TK_NLY,
TB_TNK, TB_KHX, TB_NLY, Tổng biên tập
Người sử dụng đã đăng nhập
Hệ thống thông báo các thông tin không hợp lệ nếu sai định
dạng
Thông tin về phản biện được cập nhật vào cơ sở dữ liệu
Người sử dụng chọn chức năng lưu thông tin
Đảm bảo thành công
Kích hoạt
Chuỗi sự kiến chính
1. Hệ thống hiển thị trang cập nhật thông tin phản biện và yêu cầu người sử dụng nhập thông
tin về lý lịch sơ bản của người phản biện.
2. Người sử dụng nhập thông tin về lý lịch sơ bản của người phản biện.
3. Hệ thống xác nhận tính hợp lệ về thông tin người phản biện.
4. Hệ thống cập nhật thông tin lý lịch cơ bản của người phản biện.
5. Hệ thống thoát khỏi chức năng cập nhật lý lịch sơ lược.
6. Hệ thống xóa người phản biện được chọn từ danh sách.
Ngoại lệ
2.a. Hệ thống thông báo các thông tin bắt buộc phải nhập: Họ tên, đơn vị công tác, địa chỉ
email, mật khẩu đăng nhập, chuyên san phản biện.
2.b. Hệ thống thông báo các thông tin không hợp lệ.
2.b.1. Hệ thống thông báo năm sinh không hợp lệ.
2.b.2. Hệ thống thông báo địa chỉ email không hợp lệ.
2.b.3. Hệ thống thông số điện thoại không hợp lệ.
Tên Use case
Kích hoạt
Chuỗi sự kiến chính
1. Người sử dụng nhập các tiêu chí lựa chọn, bao gồm các tiêu chí: Chuyên san; phản biện
cho các bài báo nhận từ ngày nào đến ngày nào
2. Hệ thống lập danh sách thỏa mãn tổ hợp các tiêu chí chọn lựa.
3. Hệ thống xác định phản biện được chọn để xem xét.
4. Hệ thống thoát khỏi trang tổng hợp bài báo.
Ngoại lệ
1.a. Hệ thống thông báo phải chọn chuyên san bài báo.
Tên Use case
Kích hoạt
Chuỗi sự kiến chính
1. Người sử dụng nhập các tiêu chí lựa chọn, bao gồm các tiêu chí: Chuyên san; các bài báo
nhận từ ngày nào đến ngày nào
2. Hệ thống lập danh sách tác giả chính cho các bài báo thỏa mãn tổ hợp các tiêu chí chọn lựa.
3. Hệ thống thoát khỏi trang tổng hợp bài báo.
Ngoại lệ
1.a. Hệ thống thông báo phải chọn chuyên san bài báo.
Tên Use case
Tác nhân chính
Mức
Người chịu trách nhiệm
Tiền điều kiện
Kích hoạt
Chuỗi sự kiến chính
1. Hệ thống hiển thị trang lựa chọn.
2. Người sử dụng nhập các tiêu chí lựa chọn cho bài báo, bao gồm các tiêu chí: Chuyên san;
mã bài báo; tác giả chính; bài báo nhận từ ngày nào đến ngày nào; có người phản biện 1 hay
chưa; có kết quả phản biện 1 hay chưa (chưa có kết quả; không đồng ý đăng; đồng ý đăng;
đồng ý đăng có sửa chữa và không cần gửi lại; đồng ý đăng có sửa chữa và phải gửi lại) ; có
người phản biện 2 hay chưa; có kết quả phản biện 2 hay chưa (chưa có kết quả; không đồng ý
đăng; đồng ý đăng; đồng ý đăng có sửa chữa và không cần gửi lại; đồng ý đăng có sửa chữa
và phải gửi lại).
3. Hệ thống lập danh sách các bài báo theo tổ hợp các tiêu chí chọn lựa.
4. Hệ thống xác định bài báo chọn lựa.
5. Hệ thống thoát khỏi trang chọn bài báo và phân tách các từ khóa bài báo, hiện thị các từ
khóa được phân tách trong trang tìm kiếm phản biện.
6. Hệ thống xóa các tiêu chí chọn lựa và cho phép người dùng chọn lại.
Ngoại lệ
1.a. Hệ thống thông báo phải chọn chuyên san bài báo.
ID
CriticismID
Time
PlaceOfWork
Role
Bảng 16. Bảng tblCri_ProcessOfWork lưu thông tin quá trình công tác của phản biện
Status
Who
DateAndTime
Date
Month
Year
Bảng 22. Bảng tblManageRegist lưu thông tin thực trạng cho phép đăng ký phản biện
Hệ thống hỗ trợ lựa chọn phản biện
Tìm kiếm phản biện chuyên san Tự
nhiên Khoa học Kỹ thuật
Tìm kiếm phản biện chuyên san Khoa
học Xã hội và Nhân văn
Cập nhật thành viên
Cập nhật bài báo
Thống kê và tìm
kiếm
Tổng hợp bài báo
theo tác giả
KẾT LUẬN CHƯƠNG 3
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
I. Các kết quả đạt được
TÀI LIỆU THAM KHẢO