Mô hình kiến trúc hệ thống và thuật toán xử lý kiểm tra, đánh giá trùng lặp các đề tài cấp cơ sở, cấp bộ, thử nghiệm tại trường Đại học Tài nguyên và Môi trường Hà Nội

Tóm tắt Công bố khoa học ngày càng nhiều dẫn đến việc xác định bản quyền, sự trùng lặp văn bản là công việc không đơn giản, đặc biệt khó khăn khi số lượng tài liệu lớn, số trang văn bản nhiều trong phạm vi so sánh rộng. Trong bài báo này, tập thể tác giả giới thiệu một mô hình kiến trúc hệ thống và thuật toán xử lý kiểm tra sự trùng lặp văn bản được sử dụng trong quá trình thực hiện đề tài “Nghiên cứu xây dựng phần mềm kiểm tra, đánh giá sự trùng lặp của các đề tài cấp Bộ, cấp cơ sở, thử nghiệm tại Trường Đại học Tài nguyên và Môi trường Hà Nội”.

pdf6 trang | Chia sẻ: thanhle95 | Lượt xem: 526 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Mô hình kiến trúc hệ thống và thuật toán xử lý kiểm tra, đánh giá trùng lặp các đề tài cấp cơ sở, cấp bộ, thử nghiệm tại trường Đại học Tài nguyên và Môi trường Hà Nội, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Nghiên cứu Tạp chí Khoa học Tài nguyên và Môi trường - Số 18 - năm 201768 MÔ HÌNH KIẾN TRÚC HỆ THỐNG VÀ THUẬT TOÁN XỬ LÝ KIỂM TRA, ĐÁNH GIÁ TRÙNG LẶP CÁC ĐỀ TÀI CẤP CƠ SỞ, CẤP BỘ, THỬ NGHIỆM TẠI TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI Trần Cảnh Dương, Kiều Đức Hồng Trường Đại học Tài nguyên và Môi trường Hà Nội Tóm tắt Công bố khoa học ngày càng nhiều dẫn đến việc xác định bản quyền, sự trùng lặp văn bản là công việc không đơn giản, đặc biệt khó khăn khi số lượng tài liệu lớn, số trang văn bản nhiều trong phạm vi so sánh rộng. Trong bài báo này, tập thể tác giả giới thiệu một mô hình kiến trúc hệ thống và thuật toán xử lý kiểm tra sự trùng lặp văn bản được sử dụng trong quá trình thực hiện đề tài “Nghiên cứu xây dựng phần mềm kiểm tra, đánh giá sự trùng lặp của các đề tài cấp Bộ, cấp cơ sở, thử nghiệm tại Trường Đại học Tài nguyên và Môi trường Hà Nội”. Từ khóa: Mô hình kiến trúc; Thuật toán; Chương trình phần mềm; Kiểm tra, đánh giá đề tài. Abstract The structured system model and testing algorithms for overlapping assessment of research projects: pilot study for Hanoi University of Natural Resources and Environment Vast amount of scientifi c publication make plagiarism detection more complicated. In this paper the authors present the structured system model and testing algorithms to analyze text overlapping that has been used in the scientifi c project titled “Research to build the software to for overlapping assessment of Ministry and Grassroot level scientifi c projects: Pilot study at Hanoi University of Natural Resources and Environment”. Keywords: Structured model; Algorithm; Software; Overlapping 1. Giới thiệu Ngày nay mạng internet phát triển mạnh mẽ với lượng thông tin ngày càng tăng. Việc kiểm tra sự trùng lặp rất cần thiết nhằm bảo vệ bản quyền tác giả, tránh đạo văn, tránh trùng lặp tên cũng như toàn bộ hoặc từng phần nội dung các ấn phẩm, tài liệu. Trên thế giới có một số công cụ kiểm tra trùng lặp, chẳng hạn như Small SEO, Tool, Copyscape, Plagium, Duplicheker, DMCA Scan, Copygator, Plagiarisma, Plagspotter, Dustball, Article Checker,...Tuy nhiên, mỗi công cụ chỉ sử dụng phù hợp cho từng trường hợp cụ thể. Một số công cụ miễn phí nhưng có những hạn chế nhất định về tính năng sử dụng. Hoạt động khoa học và kỹ thuật của Bộ Tài nguyên và Môi trường phát triển mạnh mẽ với số lượng lớn đề tài cấp Bộ, cấp Cơ sở trên các lĩnh vực từ khi Bộ được thành lập cho đến nay. Hàng năm, ngoài các đơn vị đề xuất đã rà soát sự trùng lặp, Vụ Khoa học và Công nghệ là cơ quan chủ trì kiểm tra, đánh giá sự trùng lặp và hoàn chỉnh hồ sơ trình Lãnh đạo Bộ xem xét, quyết định. Việc kiểm tra, rà soát đánh giá sự trùng lặp Nghiên cứu Tạp chí Khoa học Tài nguyên và Môi trường - Số 18 - năm 2017 69 như hiện nay mất khá nhiều thời gian và công sức. Chính vì vậy, đề tài “Nghiên cứu xây dựng phần mềm kiểm tra, đánh giá sự trùng lặp của các đề tài cấp Bộ, cấp Cơ sở, thử nghiệm tại Trường Đại học Tài nguyên và Môi trường Hà Nội” đã góp phần đẩy nhanh tiến độ rà soát, tiết kiệm thời gian và công sức. Trong quá trình thực hiện đề tài, các tác giả đề tài đã nghiên cứu và đề xuất sử dụng mô hình kiến trúc hệ thống và thuật toán xử lý kiểm trùng một cách hợp lý và hiệu quả cao, đó là cơ sở để xây dựng chương trình phần mềm, tạo ra sản phẩm có tính ứng dụng cao. 2. Nội dung 2.1. Giải pháp công cụ và ngôn ngữ Lập trình Hệ điều hành máy chủ: Microsoft Windows Server 2012. Hệ điều hành máy trạm: Microsoft Windows XP, Windows 7, 8, 8.1 hoặc 10. Hệ quản trị CSDL: Microsoft SQL Server 2014. Web Server: Microsoft IIS v8.0. Portal core: Dotnetnuke v7. Công nghệ lập trình: Visual Studio .NET v2013. Ngôn ngữ lập trình: C#.NET, nền tảng .NET Framework 4.5. Microsoft .NET Framework cung cấp môi trường lập trình và thực hiện chương trình có hiệu quả cao với sự hỗ trợ tối đa về các tính năng có sẵn của Microsoft. Môi trường này có thể rút ngắn thời gian lập trình đồng thời có nhiều tính năng cao cấp. 2.2. Kiến trúc hệ thống Kiến trúc hệ thống được mô tả ở Hình 1. Hình 1: Mô hình kiến trúc hệ thống - Tầng dữ liệu (data layer). Tầng dữ liệu chứa máy chủ CSDL (Database Server) đóng vai trò nền tảng của hệ thống, nó lưu trữ đầy đủ các thông tin về người dùng, các đề tài, dự án khoa học, tin tức, tạp chí khoa học, sách, giáo trình,Hệ thống yêu cầu quản lý một lượng lớn dữ liệu, ngoài ra hệ thống còn yêu cầu tính chính xác, bảo mật và tính sẵn sàng cao của dữ liệu [1]. - Tầng ứng dụng (application layer) bao gồm hai thành phần chính như sau. o Thành phần tương tác với CSDL: đóng vai trò trung gian giữa thành phần nghiệp vụ với lớp dữ liệu, xử lý các thao tác liên quan đến cơ sở dữ liệu. o Web services: đóng vai trò xử lý các yêu cầu giữa người dùng và hệ thống. - Tầng giao diện (Presentation Layer). Ở đầu cuối, hệ thống giao tiếp với người dùng thông qua các trình duyệt web thông dụng như Chrome, Internet Explorer, FireFox, Safari, Mô hình tập trung và giao diện đầu cuối thông qua trình duyệt web hỗ trợ việc triển khai, mở rộng ứng dụng đơn giản và nhanh chóng, dễ quản lý và bảo trì hệ thống, tốn ít thời gian, nhân lực và chi phí. Nghiên cứu Tạp chí Khoa học Tài nguyên và Môi trường - Số 18 - năm 201770 2.3 Thuật toán xử lý kiểm trùng So sánh một hoặc một vài chuỗi với văn bản để tìm nơi và số lần xuất hiện của chuỗi đó trong văn bản được thực hiện bởi thuật toán kiểm trùng. Việc so sánh có thể tiến hành từ trái qua phải, từ phải qua trái, tại vị trí cụ thể hoặc không theo thứ tự nhất định. Mặt khác kết quả so sánh có thể là chính xác hoặc gần đúng. Nghiên cứu các thuật toán sau đó đánh giá hiệu năng của từng thuật toán, lựa chọn thuật toán so sánh chuỗi một cách phù hợp trong từng trường hợp là điều rất quan trọng. Đánh giá hiệu năng của thuật toán so sánh chuỗi căn cứ số lần tìm kiếm, độ nén văn bản, thời gian, tiêu chuẩn, số mẫu,...Trên thực tế có các thuật toán so sánh như Brute- Force, Rabin-Karp, Knuth-Morris-Pratt, Boyer-Moore,... Mỗi thuật toán tương ứng một phương pháp tìm kiếm mẫu trong văn bản. Thuật toán Brute-Force tiến hành so sánh không theo thứ tự nhất định, không thực hiện tiền xử lý, dịch chuyển từng ký tự một và tính tối ưu không cao. Thuật toán Rabin-Karp tiến hành so sánh từ trái qua phải, sử dụng hàm băm, rất hiệu quả trong các thuật toán đối sánh đa mẫu. Thuật toán Knuth-Morris-Pratt tiến hành so sánh từ trái qua phải, căn cứ mẫu để quyết định bước dịch chuyển sau đó. Thuật toán này khá tin cậy, giảm độ trễ và thời gian so sánh. Thuật toán Boyer-Moore tiến hành so sánh từ phải qua trái. Thuật toán này dùng hai hàm dịch chuyển là hậu tố tốt (good suffi x) và ký tự tồi (bad character). Thuật toán cho kết quả tìm kiếm nhanh và được áp dụng nhiều trong thực tế. Tuy nhiên, thứ tự so sánh là khác nhau và biểu diễn thuật toán Boyer-Moore phức tạp hơn vì nó dựa trên hai quy tắc để dịch chuyển pattern trên văn bản. Trong quá trình nghiên cứu các thuật toán so sánh, kiểm tra sự trùng lặp, nhóm nghiên cứu đề tài đã lựa chọn thuật toán WinDiff và Diff để xây dựng Hệ thống cung cấp chức năng kiểm trùng văn bản nhằm hiển thị vị trí và nội dung trùng lặp giữa hai văn bản. Hai thuật toán này được dùng để so sánh hai văn bản khác nhau hay hai đoạn văn bản. Hệ thống sẽ phát hiện được những câu chép nguyên xi, trùng ý và đánh dấu cho người quản trị so sánh với văn bản khác. Tính toán sự khác biệt giữa hai văn bản là cốt lõi của hệ thống [2]. 2.3.1 Xử lý tối ưu hóa thuật toán a) Kiểm tra sự giống nhau Việc so sánh hai văn bản rõ ràng và đơn giản nhất là kiểm tra sự giống nhau. Câu lệnh được mô tả như sau. Khả năng không nhỏ là hai văn bản so sánh đều giống hệt nhau, việc kiểm tra này là rất đơn giản đối với các hệ thống. Vì vậy, việc trước tiên chúng ta phải kiểm tra trường hợp này. Khâu kiểm tra này làm đơn giản hóa mã tiếp theo [4]. b) Kiểm tra sự giống nhau ở tiền tố/hậu tố Tiếp theo, nếu có sự khác biệt giữa các văn bản, chúng ta sẽ chia sẻ một chuỗi con phổ biến ở đầu và/hoặc cuối. c) Kiểm tra Chèn/Xóa chuỗi đơn giản Cài đặt thuật toán: Nghiên cứu Tạp chí Khoa học Tài nguyên và Môi trường - Số 18 - năm 2017 71 d) Kiểm tra văn bản chỉnh sửa cả đầu và cuối đoạn Kiểm tra văn bản chỉnh sửa cả đầu và cuối đoạn khó khăn hơn nhiều so với các chỉnh sửa đơn lẻ. Hai chuỗi chèn đơn giản có thể được phát hiện bằng cách tìm kiếm sự hiện diện của ‘Text 1’ trong ‘Text 2’. Loại bỏ các tiền tố và hậu tố chung như là một bước đầu đảm bảo rằng phải có sự khác biệt ở mỗi đầu của các văn bản còn lại. Sau đó, ta dễ dàng xác định được chuỗi ngắn hơn hiện diện trong chuỗi dài hơn. Trong những tình huống này kết quả khác nhau có thể được xác định mà không cần chạy một thuật toán phức tạp. Nếu một chuỗi con tồn tại trong cả hai văn bản, ít nhất bằng một nửa độ dài của văn bản dài hơn, thì nó sẽ được xác định là giống nhau. Trong trường hợp này các văn bản có thể được chia thành hai, và hàm so sánh phức tạp được thực hiện. Thực hiện phép kiểm tra này một cách đệ quy có thể tạo nên sự phân chia khác. Việc tính toán chuỗi con phổ biến dài nhất là một hoạt động phức tạp như hàm kiểm tra sự khác nhau, có nghĩa là không tối ưu được độ phức tạp. Tuy nhiên, giới hạn mà chuỗi ký tự chung phải có ít nhất một nửa độ dài của văn bản dài hơn. 2.3.2 Thuật toán kiểm trùng Một khi quá trình tối ưu hóa hoàn tất, văn bản còn lại được so sánh với một thuật toán diff. Kỹ thuật vét cạn có độ phức tạp O(n 1 *n 2 ) để thực hiện (trong đó n 1 và n 2 là độ dài của mỗi chuỗi đầu vào) [2]. a) Đầu vào thuật toán Bất kỳ thuật toán khác biệt về mặt lý thuyết có thể xử lý bất kỳ đầu vào, bất kể nó được phân chia theo ký tự, từ hay câu. Tuy nhiên, một số thuật toán khác biệt hiệu quả hơn nhiều trong việc xử lý các thẻ nhỏ như các ký tự, các hiệu ứng khác hiệu quả hơn khi xử lý các thẻ lớn như xử lý câu. Lý do là có một số lượng vô hạn các dòng không xuất hiện trong một văn bản nhưng xuất hiện ở phần kia được biết là một sự chèn hoặc xóa một. Ngược lại, chỉ có 80 mã ký tự riêng biệt khi xử lý các ký tự (az, AZ, 0-9 và một số dấu câu), có nghĩa là bất kỳ văn bản không nhỏ nào sẽ chứa nhiều trường hợp nhất nếu không phải là tất cả các ký tự này. Các thuật toán khác nhau có thể khai thác những khác biệt thống kê trong các văn bản đầu vào, dẫn đến các chiến lược hiệu quả hơn. b) Đầu ra thuật toán Thuật toán kiểm trùng văn bản truyền thống tạo ra một danh sách các chuỗi chèn và chuỗi xóa mà khi thực hiện trên văn bản đầu tiên sẽ được văn bản thứ hai. Một phần mở rộng của điều này là việc thêm vào một toán tử ‘move’. Một cách tiếp cận hoàn toàn khác đó là sử dụng ‘copy’ và ‘chèn’ làm toán tử. c) Độ chính xác Nói chung thuật toán kiểm trùng đưa ra kết quả chính xác, mô tả một đường dẫn hợp lệ của sự khác biệt từ văn bản này sang văn bản khác. Tuy nhiên, một số thuật toán có thể trở lại đầu ra phụ tối ưu vì lợi ích của tốc độ. Thuật toán diff được mô tả chi tiết nhất trong bài báo năm 1986 của E. Myers. Một trong những đề xuất tối ưu Nghiên cứu Tạp chí Khoa học Tài nguyên và Môi trường - Số 18 - năm 201772 hóa đó là xử lý sự khác biệt từ cả hai đầu cùng một lúc, hội tụ ở giữa. d) Xử lý Một thuật toán diff hoàn hảo sẽ trả về số lượng tối thiểu các chỉnh sửa cần thiết để chuyển đổi một văn bản sang một văn bản khác. Việc chuyển đổi hoàn toàn an toàn, nhưng vấn đề lớn hơn đó là sự khác biệt giữa hai văn bản không giống nhau thường bị xáo trộn với những sự trùng hợp ngẫu nhiên nhỏ. Kết quả mong đợi ở trên có thể là xóa tất cả ‘Text 1’và chèn tất cả ‘Text 2’, có thể ngoại trừ khoảng thời gian ở cuối. Các văn bản dài hơn sẽ dẫn đến nhiều từ chia sẻ hơn. Tuy nhiên, ngay cả sự khác biệt dựa trên câu cũng dễ bị ảnh hưởng. Vấn đề trùng hợp ngẫu nhiên nhỏ thực sự là một trong hai vấn đề khác nhau đó là khả năng hoặc ngữ nghĩa. Mỗi vấn đề này đòi hỏi một giải pháp xử lý. 2.4. Quy trình vận hành hệ thống kiểm trùng đề tài 2.4.1. Quy trình kiểm trùng đề tài Trước thời điểm đăng ký xét duyệt đề xuất đề tài, thuyết minh đề tài và đánh giá nghiệm thu đề tài cán bộ quản lý đề tài sẽ tiến hành kiểm tra trùng lặp các nội dung nghiên cứu của đề tài. Việc sử dụng công cụ hỗ trợ kiểm trùng theo dữ liệu có sẵn và được quản lý theo cấp độ khác nhau sẽ hạn chế hiện tượng trùng lắp của đề tài. Quá trình kiểm trùng của hệ thống kiểm trùng đề tài được diễn ra theo tuần tự của quá trình thực hiện đề tài đó là đề xuất đề tài  xây dựng thuyết minh đề tài  báo cáo kết quả thực hiện đề tài. Khi tiến hành kiểm trùng hệ thống chỉ kiểm trùng dữ liệu ở giai đoạn đang thực hiện đề tài và không kiểm trùng đối chiếu dữ liệu ở giai đoạn đề xuất đề tài. 2.4.2. Sơ đồ kiểm trùng đề tài Sơ đồ kiểm trùng đề tài được thể hiện ở Hình 2. Hình 2: Sơ đồ kiểm trùng đề tài 2.4.3. Các bước kiểm trùng đề tài Bước 1. Đăng nhập Sau khi đăng nhập hệ thống kiểm trùng (vào địa chỉ hunre.vn), màn hình sẽ xuất hiện trang chủ với các thông tin cơ bản, chẳng hạn số liệu về đề tài đã được cập nhật. Trang chủ hệ thống cung cấp một số chức năng tác nghiệp của phần mềm (ở phía bên trái màn hình) bao gồm “tìm kiếm đề Nghiên cứu Tạp chí Khoa học Tài nguyên và Môi trường - Số 18 - năm 2017 73 tài, Quản trị đề tài, Báo cáo và Quản trị hệ thống”. Bước 2. Kiểm trùng đề tài Hệ thống kiểm trùng đề tài cho phép kiểm trùng từng đề tài riêng lẻ và từng giai đoạn cụ thể như sau: a) Kiểm trùng đề xuất đề tài b) Kiểm trùng Thuyết minh đề tài và báo cáo tổng kết đề tài. Khi kết thúc quá trình kiểm trùng cán bộ quản lý đề tài sẽ thực hiện thao tác chuyển trạng thái đề tài sang tình trạng “Đề tài đã hoàn thành”. Danh sách đề tài được mô tả ở Hình 3. Hình 3: Danh sách đề tài Bước 3. Báo cáo thống kê kiểm trùng đề tài Tại giao diện trang chủ, người dùng nhấn chuột vào mục “báo cáo”, hệ thống sẽ cung cấp các báo cáo. Hệ thống có báo cáo tổng hợp và báo cáo chi tiết. Tại chức năng báo cáo chi tiết, hệ thống thiết kế để người sử dụng có thể chọn một đề tài hoặc nhiều đề tài cần báo cáo. Sau khi lựa chọn đề tài cần báo cáo sẽ nhấn nút xuất báo cáo hệ thống sẽ xuất ra một fi le excel chứa đầy đủ nội dung kiểm trùng đề tài đã đưa vào hệ thống theo lựa chọn đề tài của người dùng. 4. KẾT LUẬN Mô hình kiến trúc hệ thống và thuật toán xử lý kiểm trùng là cơ sở để xây dựng phần mềm kiểm tra, đánh giá sự trùng lặp của các đề tài cấp Bộ, cấp Cơ sở, thử nghiệm tại Trường Đại học Tài nguyên và Môi trường Hà Nội. Kết quả thử nghiệm cho thấy sản phẩm có những tính năng hiện đại, sử dụng tiện lợi, đảm bảo độ chính xác, tin cậy và hỗ trợ tích cực trong việc quản lý các đề tài khoa học. Phần mềm này có thể được nâng cấp để sử dụng trong phạm vi rộng hơn đối với dữ liệu lớn, đa dạng và phong phú hơn. TÀI LIỆU THAM KHẢO [1]. Phạm Hữu Khang (2010). Microsoft SQL Server 2008 - Quản trị Cơ sở dữ liệu (Tập 2). Nhà xuất bản: Nxb Lao động - Xã hội [2]. Hoàng Nghĩa Tý (2006). Cấu trúc dữ liệu và thuật toán. Nhà xuất bản Xây dựng. [3]. Phạm Hữu Khang (2006). C# Lập trình hướng đối tượng. Nhà xuất bản Lao động xã hội. [4]. Nguyễn Ngọc Bình Phương - Thái Thanh Phong (2006). Các giải pháp lập trình C#. Nhà xuất bản Giao thông Vận tải. [5]. Andrew Troelsen -‎ Philip Japikse. Pro C# 7: With .NET and .NET Core 8th Edition. BBT nhận bài: Ngày 26/9/2017; Phản biện xong: Ngày 26/10/2017