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”.
6 trang |
Chia sẻ: thanhle95 | Lượt xem: 544 | Lượt tải: 1
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