1. Trang chủ
  2. » Công Nghệ Thông Tin

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

6 12 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 408,41 KB

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

Nội dung

Trong bài viết 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”.

Trang 1

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

Trang 2

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í

Trang 3

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:

Trang 4

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(n1*n2 ) để thực hiện (trong

đó n1 và n2 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

Trang 5

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ỉ http://kiemtrung.

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 đề

Trang 6

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

Ngày đăng: 07/05/2021, 13:35

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w