- Trang Chủ
- Kỹ thuật lập trình
- 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
Xem mẫu
- Nghiên cứ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
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 scientific 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 scientific
project titled “Research to build the software to for overlapping assessment of
Ministry and Grassroot level scientific projects: Pilot study at Hanoi University of
Natural Resources and Environment”.
Keywords: Structured model; Algorithm; Software; Overlapping
1. Giới thiệu từng trường hợp cụ thể. Một số công cụ
Ngày nay mạng internet phát triển miễn phí nhưng có những hạn chế nhất
mạnh mẽ với lượng thông tin ngày càng định về tính năng sử dụng.
tăng. Việc kiểm tra sự trùng lặp rất cần Hoạt động khoa học và kỹ thuật của
thiết nhằm bảo vệ bản quyền tác giả, Bộ Tài nguyên và Môi trường phát triển
tránh đạo văn, tránh trùng lặp tên cũng mạnh mẽ với số lượng lớn đề tài cấp Bộ,
như toàn bộ hoặc từng phần nội dung cấp Cơ sở trên các lĩnh vực từ khi Bộ
các ấn phẩm, tài liệu. Trên thế giới có được thành lập cho đến nay. Hàng năm,
một số công cụ kiểm tra trùng lặp, chẳng ngoài các đơn vị đề xuất đã rà soát sự
hạn như Small SEO, Tool, Copyscape, trùng lặp, Vụ Khoa học và Công nghệ
Plagium, Duplicheker, DMCA Scan, là cơ quan chủ trì kiểm tra, đánh giá
Copygator, Plagiarisma, Plagspotter, sự trùng lặp và hoàn chỉnh hồ sơ trình
Dustball, Article Checker,...Tuy nhiên, Lãnh đạo Bộ xem xét, quyết định. Việc
mỗi công cụ chỉ sử dụng phù hợp cho kiểm tra, rà soát đánh giá sự trùng lặp
68
Tạp chí Khoa học Tài nguyên và Môi trường - Số 18 - năm 2017
- Nghiên cứu
như hiện nay mất khá nhiều thời gian và Windows XP, Windows 7, 8, 8.1 hoặc
công sức. Chính vì vậy, đề tài “Nghiên 10.
cứu xây dựng phần mềm kiểm tra, đánh Hệ quản trị CSDL: Microsoft SQL
giá sự trùng lặp của các đề tài cấp Bộ, Server 2014.
cấp Cơ sở, thử nghiệm tại Trường Đại
Web Server: Microsoft IIS v8.0.
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, Portal core: Dotnetnuke v7.
tiết kiệm thời gian và công sức. Trong Công nghệ lập trình: Visual Studio
quá trình thực hiện đề tài, các tác giả đề .NET v2013.
tài đã nghiên cứu và đề xuất sử dụng mô Ngôn ngữ lập trình: C#.NET, nền
hình kiến trúc hệ thống và thuật toán xử tảng .NET Framework 4.5.
lý kiểm trùng một cách hợp lý và hiệu
Microsoft .NET Framework cung
quả cao, đó là cơ sở để xây dựng chương
cấp môi trường lập trình và thực hiện
trình phần mềm, tạo ra sản phẩm có tính
chương trình có hiệu quả cao với sự hỗ
ứng dụng cao.
trợ tối đa về các tính năng có sẵn của
2. Nội dung Microsoft. Môi trường này có thể rút
2.1. Giải pháp công cụ và ngôn ngắn thời gian lập trình đồng thời có
ngữ Lập trình nhiều tính năng cao cấp.
Hệ điều hành máy chủ: Microsoft 2.2. Kiến trúc hệ thống
Windows Server 2012. Kiến trúc hệ thống được mô tả ở
Hệ điều hành máy trạm: Microsoft Hình 1.
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
Hình 1: Mô hình kiến trúc hệ thống Layer).
- Tầng dữ liệu (data layer). Ở đầu cuối, hệ thống giao tiếp với
Tầng dữ liệu chứa máy chủ CSDL người dùng thông qua các trình duyệt
(Database Server) đóng vai trò nền tảng web thông dụng như Chrome, Internet
của hệ thống, nó lưu trữ đầy đủ các thông Explorer, FireFox, Safari,… Mô hình tập
tin về người dùng, các đề tài, dự án khoa trung và giao diện đầu cuối thông qua
học, tin tức, tạp chí khoa học, sách, giáo trình duyệt web hỗ trợ việc triển khai, mở
trình,…Hệ thống yêu cầu quản lý một rộng ứng dụng đơn giản và nhanh chóng,
lượng lớn dữ liệu, ngoài ra hệ thống còn dễ quản lý và bảo trì hệ thống, tốn ít thời
yêu cầu tính chính xác, bảo mật và tính gian, nhân lực và chi phí.
69
Tạp chí Khoa học Tài nguyên và Môi trường - Số 18 - năm 2017
- Nghiên cứu
2.3 Thuật toán xử lý kiểm trùng Trong quá trình nghiên cứu các
So sánh một hoặc một vài chuỗi với thuật toán so sánh, kiểm tra sự trùng
văn bản để tìm nơi và số lần xuất hiện lặp, nhóm nghiên cứu đề tài đã lựa chọn
của chuỗi đó trong văn bản được thực thuật toán WinDiff và Diff để xây dựng
hiện bởi thuật toán kiểm trùng. Việc so Hệ thống cung cấp chức năng kiểm
sánh có thể tiến hành từ trái qua phải, từ trùng văn bản nhằm hiển thị vị trí và
phải qua trái, tại vị trí cụ thể hoặc không nội dung trùng lặp giữa hai văn bản. Hai
theo thứ tự nhất định. Mặt khác kết quả
thuật toán này được dùng để so sánh
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 đó hai văn bản khác nhau hay hai đoạn văn
đánh giá hiệu năng của từng thuật toán, bản. Hệ thống sẽ phát hiện được những
lựa chọn thuật toán so sánh chuỗi một câu chép nguyên xi, trùng ý và đánh dấu
cách phù hợp trong từng trường hợp là cho người quản trị so sánh với văn bản
điều rất quan trọng. Đánh giá hiệu năng khác. Tính toán sự khác biệt giữa hai
của thuật toán so sánh chuỗi căn cứ văn bản là cốt lõi của hệ thống [2].
số lần tìm kiếm, độ nén văn bản, thời
2.3.1 Xử lý tối ưu hóa thuật toán
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- a) Kiểm tra sự giống nhau
Force, Rabin-Karp, Knuth-Morris-Pratt,
Việc so sánh hai văn bản rõ ràng và
Boyer-Moore,... Mỗi thuật toán tương
đơn giản nhất là kiểm tra sự giống nhau.
ứng một phương pháp tìm kiếm mẫu
trong văn bản. Thuật toán Brute-Force Câu lệnh được mô tả như sau.
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 Khả năng không nhỏ là hai văn bản
thuật toán đối sánh đa mẫu. Thuật toán
so sánh đều giống hệt nhau, việc kiểm
Knuth-Morris-Pratt tiến hành so sánh
từ trái qua phải, căn cứ mẫu để quyết tra này là rất đơn giản đối với các hệ
định bước dịch chuyển sau đó. Thuật thống. Vì vậy, việc trước tiên chúng
toán này khá tin cậy, giảm độ trễ và thời ta phải kiểm tra trường hợp này. Khâu
gian so sánh. Thuật toán Boyer-Moore kiểm tra này làm đơn giản hóa mã tiếp
tiến hành so sánh từ phải qua trái. Thuật theo [4].
toán này dùng hai hàm dịch chuyển
b) Kiểm tra sự giống nhau ở tiền
là hậu tố tốt (good suffix) và ký tự tồi
tố/hậu tố
(bad character). Thuật toán cho kết quả
tìm kiếm nhanh và được áp dụng nhiều Tiếp theo, nếu có sự khác biệt giữa
trong thực tế. Tuy nhiên, thứ tự so sánh các văn bản, chúng ta sẽ chia sẻ một
là khác nhau và biểu diễn thuật toán chuỗi con phổ biến ở đầu và/hoặc cuối.
Boyer-Moore phức tạp hơn vì nó dựa
trên hai quy tắc để dịch chuyển pattern c) Kiểm tra Chèn/Xóa chuỗi đơn giản
trên văn bản. Cài đặt thuật toán:
70
Tạp chí Khoa học Tài nguyên và Môi trường - Số 18 - năm 2017
- Nghiên cứu
đó 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
d) Kiểm tra văn bản chỉnh sửa cả câu. Tuy nhiên, một số thuật toán khác
đầu và cuối đoạn biệt hiệu quả hơn nhiều trong việc xử lý
Kiểm tra văn bản chỉnh sửa cả đầu các thẻ nhỏ như các ký tự, các hiệu ứng
và cuối đoạn khó khăn hơn nhiều so với khác hiệu quả hơn khi xử lý các thẻ lớn
các chỉnh sửa đơn lẻ. Hai chuỗi chèn như xử lý câu. Lý do là có một số lượng
đơn giản có thể được phát hiện bằng vô hạn các dòng không xuất hiện trong
cách tìm kiếm sự hiện diện của ‘Text 1’ một văn bản nhưng xuất hiện ở phần kia
trong ‘Text 2’. được biết là một sự chèn hoặc xóa một.
Loại bỏ các tiền tố và hậu tố chung Ngược lại, chỉ có 80 mã ký tự riêng biệt
như là một bước đầu đảm bảo rằng phải khi xử lý các ký tự (az, AZ, 0-9 và một
có sự khác biệt ở mỗi đầu của các văn bản số dấu câu), có nghĩa là bất kỳ văn bản
còn lại. Sau đó, ta dễ dàng xác định được không nhỏ nào sẽ chứa nhiều trường
chuỗi ngắn hơn hiện diện trong chuỗi dài hợp nhất nếu không phải là tất cả các
hơn. Trong những tình huống này kết quả ký tự này. Các thuật toán khác nhau có
khác nhau có thể được xác định mà không thể khai thác những khác biệt thống kê
cần chạy một thuật toán phức tạp. trong các văn bản đầu vào, dẫn đến các
chiến lược hiệu quả hơn.
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 b) Đầu ra thuật toán
của văn bản dài hơn, thì nó sẽ được xác Thuật toán kiểm trùng văn bản
định là giống nhau. Trong trường hợp này truyền thống tạo ra một danh sách các
các văn bản có thể được chia thành hai, chuỗi chèn và chuỗi xóa mà khi thực
và hàm so sánh phức tạp được thực hiện. hiện trên văn bản đầu tiên sẽ được văn
Thực hiện phép kiểm tra này một cách đệ bản thứ hai. Một phần mở rộng của điều
quy có thể tạo nên sự phân chia khác. này là việc thêm vào một toán tử ‘move’.
Việc tính toán chuỗi con phổ biến Một cách tiếp cận hoàn toàn khác đó là
dài nhất là một hoạt động phức tạp như sử dụng ‘copy’ và ‘chèn’ làm toán tử.
hàm kiểm tra sự khác nhau, có nghĩa c) Độ chính xác
là không tối ưu được độ phức tạp. Tuy
Nói chung thuật toán kiểm trùng
nhiên, giới hạn mà chuỗi ký tự chung
đưa ra kết quả chính xác, mô tả một
phải có ít nhất một nửa độ dài của văn
đường dẫn hợp lệ của sự khác biệt từ
bản dài hơn.
văn bản này sang văn bản khác. Tuy
2.3.2 Thuật toán kiểm trùng nhiên, một số thuật toán có thể trở lại
Một khi quá trình tối ưu hóa hoàn đầu ra phụ tối ưu vì lợi ích của tốc độ.
tất, văn bản còn lại được so sánh với một Thuật toán diff được mô tả chi tiết
thuật toán diff. Kỹ thuật vét cạn có độ nhất trong bài báo năm 1986 của E.
phức tạp O(n1*n2 ) để thực hiện (trong Myers. Một trong những đề xuất tối ưu
71
Tạp chí Khoa học Tài nguyên và Môi trường - Số 18 - năm 2017
- Nghiên cứu
hóa đó là xử lý sự khác biệt từ cả hai đầu kiểm trùng đề tài
cùng một lúc, hội tụ ở giữa. 2.4.1. Quy trình kiểm trùng đề tài
d) Xử lý Trước thời điểm đăng ký xét duyệt
Một thuật toán diff hoàn hảo sẽ trả đề xuất đề tài, thuyết minh đề tài và đánh
về số lượng tối thiểu các chỉnh sửa cần giá nghiệm thu đề tài cán bộ quản lý đề
thiết để chuyển đổi một văn bản sang tài sẽ tiến hành kiểm tra trùng lặp các
một văn bản khác. Việc chuyển đổi hoàn nội dung nghiên cứu của đề tài. Việc sử
toàn an toàn, nhưng vấn đề lớn hơn đó dụng công cụ hỗ trợ kiểm trùng theo dữ
là sự khác biệt giữa hai văn bản không liệu có sẵn và được quản lý theo cấp độ
giống nhau thường bị xáo trộn với khác nhau sẽ hạn chế hiện tượng trùng
những sự trùng hợp ngẫu nhiên nhỏ. Kết lắp của đề tài.
quả mong đợi ở trên có thể là xóa tất cả Quá trình kiểm trùng của hệ thống
‘Text 1’và chèn tất cả ‘Text 2’, có thể kiểm trùng đề tài được diễn ra theo tuần
ngoại trừ khoảng thời gian ở cuối. tự của quá trình thực hiện đề tài đó là đề
Các văn bản dài hơn sẽ dẫn đến xuất đề tài xây dựng thuyết minh đề
nhiều từ chia sẻ hơn. Tuy nhiên, ngay tài báo cáo kết quả thực hiện đề tài.
cả sự khác biệt dựa trên câu cũng dễ Khi tiến hành kiểm trùng hệ thống
bị ảnh hưởng. Vấn đề trùng hợp ngẫu chỉ kiểm trùng dữ liệu ở giai đoạn đang
nhiên nhỏ thực sự là một trong hai vấn thực hiện đề tài và không kiểm trùng đối
đề khác nhau đó là khả năng hoặc ngữ chiếu dữ liệu ở giai đoạn đề xuất đề tài.
nghĩa. Mỗi vấn đề này đòi hỏi một giải 2.4.2. Sơ đồ kiểm trùng đề tài
pháp xử lý. Sơ đồ kiểm trùng đề tài được thể
2.4. Quy trình vận hành hệ thống 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 chủ với các thông tin cơ bản, chẳng hạn
Bước 1. Đăng nhập số liệu về đề tài đã được cập nhật. Trang
Sau khi đăng nhập hệ thống kiểm chủ hệ thống cung cấp một số chức năng
trùng (vào địa chỉ http://kiemtrung. tác nghiệp của phần mềm (ở phía bên
hunre.vn), màn hình sẽ xuất hiện trang trái màn hình) bao gồm “tìm kiếm đề
72
Tạp chí Khoa học Tài nguyên và Môi trường - Số 18 - năm 2017
- Nghiên cứu
tài, Quản trị đề tài, Báo cáo và Quản trị b) Kiểm trùng Thuyết minh đề tài
hệ thống”. và báo cáo tổng kết đề tài.
Bước 2. Kiểm trùng đề tài Khi kết thúc quá trình kiểm trùng
Hệ thống kiểm trùng đề tài cho cán bộ quản lý đề tài sẽ thực hiện thao
phép kiểm trùng từng đề tài riêng lẻ và tác chuyển trạng thái đề tài sang tình
từng giai đoạn cụ thể như sau: trạng “Đề tài đã hoàn thành”. Danh sách
a) Kiểm trùng đề xuất đề tài đề 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 tính năng hiện đại, sử dụng tiện lợi, đảm
trùng đề tài bảo độ chính xác, tin cậy và hỗ trợ tích
Tại giao diện trang chủ, người dùng cực trong việc quản lý các đề tài khoa học.
nhấn chuột vào mục “báo cáo”, hệ thống Phần mềm này có thể được nâng cấp để sử
sẽ cung cấp các báo cáo. Hệ thống có dụng trong phạm vi rộng hơn đối với dữ
báo cáo tổng hợp và báo cáo chi tiết. liệu lớn, đa dạng và phong phú hơn.
Tại chức năng báo cáo chi tiết, hệ TÀI LIỆU THAM KHẢO
thống thiết kế để người sử dụng có thể [1]. Phạm Hữu Khang (2010).
chọn một đề tài hoặc nhiều đề tài cần báo Microsoft SQL Server 2008 - Quản trị Cơ
cáo. Sau khi lựa chọn đề tài cần báo cáo sở dữ liệu (Tập 2). Nhà xuất bản: Nxb Lao
sẽ nhấn nút xuất báo cáo hệ thống sẽ xuất động - Xã hội
ra một file excel chứa đầy đủ nội dung [2]. Hoàng Nghĩa Tý (2006). Cấu trúc
kiểm trùng đề tài đã đưa vào hệ thống dữ liệu và thuật toán. Nhà xuất bản Xây
theo lựa chọn đề tài của người dùng. dựng.
[3]. Phạm Hữu Khang (2006). C# Lập
4. KẾT LUẬN trình hướng đối tượng. Nhà xuất bản Lao
Mô hình kiến trúc hệ thống và thuật động xã hội.
toán xử lý kiểm trùng là cơ sở để xây [4]. Nguyễn Ngọc Bình Phương - Thái
dựng phần mềm kiểm tra, đánh giá sự Thanh Phong (2006). Các giải pháp lập
trùng lặp của các đề tài cấp Bộ, cấp Cơ trình C#. Nhà xuất bản Giao thông Vận tải.
sở, thử nghiệm tại Trường Đại học Tài [5]. Andrew Troelsen - Philip Japikse.
nguyên và Môi trường Hà Nội. Kết quả Pro C# 7: With .NET and .NET Core 8th
thử nghiệm cho thấy sản phẩm có những Edition.
BBT nhận bài: Ngày 26/9/2017; Phản biện xong: Ngày 26/10/2017
73
Tạp chí Khoa học Tài nguyên và Môi trường - Số 18 - năm 2017
nguon tai.lieu . vn