Tải bản đầy đủ (.docx) (48 trang)

Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.35 MB, 48 trang )

Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
LỜI CẢM ƠN
Lời đầu tiên, nhóm thực tập chuyên ngành xin gửi lời cảm ơn và lòng
biết ơn sâu sắc nhất tới ThS. Phan Trọng Tiến đã tận tình chỉ bảo và hướng
dẫn nhóm trong suốt quá trình thực hiện đề tài thực tập chuyên ngành.
Nhóm cũng xin chân thành cảm ơn các thầy, cô đã tạo điều kiện thuận
lợi nhất cho nhóm để nhóm học tập và nghiên cứu tại Học viện Nông Nghiệp
Việt Nam.
Nhóm xin cảm ơn tới các bạn trong lớp K57- THB , K57 – THA đã ủng
hộ, khuyến kích trong suốt quá trình học tập tại trường và làm đề tài thực tập
chuyên ngành.
Nhóm xin chân thành cảm ơn !
Hà Nội, Ngày 25/05/2016
Nhóm Sinh viên:
Ngô Nguyễn Thức
Tô Thanh Lượng
Đoàn Kim Oanh

1
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
MỤC LỤC

DANH MỤC HÌNH ẢNH

2
Thức, Oanh, Lượng



Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp

PHẦN I. MỞ ĐẦU
1.1. Tên đề tài
Đề tài: “Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp”.
1.2. Đặt vấn đề
Công nghệ thông tin ngày càng phát triển tạo điều kiện cho việc chia sẻ
kiến thức được dễ dàng hơn. Càng ngày có nhiều tài liệu được tạo ra và được
lưu trữ, dễ dàng tìm kiếm và chia sẻ trên máy tính cá nhân hoặc Internet. Tuy
có nhiều thuận lợi cho việc tiệp cận nền tri thức mở, nhưng cũng nảy sinh
nhiều vấn đề: các ý tưởng, các đoạn văn thậm chí toàn văn bản được sao chép
một cách tràn lan mà không chú thích nguồn hay tác giả [4]. Điều này không
chỉ ảnh hưởng đến quyền sở hữu trí tuệ, bản quyền tác giả [4] mà còn ảnh
hưởng đến việc đánh giá chất lượng của các tài liệu báo cáo, tiểu luận, luận
văn và trình độ của người tạo ra chúng, đặc biệt là trong môi trường giáo dục
nói chung và đại học nói riêng.
Để mang lại sự khách quan, đánh giá đúng công sức của các em sinh
viên trong quá trình làm luận văn tốt nghiệp, cần xây dựng công cụ để phát
hiện việc có sự sao chép luận văn [6] mà không trích dẫn từ một hoặc nhiều
nguồn tài liệu hay không. Xuất phát từ tính cấp thiết đó, chúng em lựa chọn
đề tài: “Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp”, nhằm
nghiên cứu và tạo ra một chương trình giúp kiểm tra, đánh giá sự trùng lặp
một cách nhanh chóng hiệu quả, khoa học và chính xác.
1.3. Mục đích, yêu cầu
1.3.1. Mục đích
Xây dựng một hệ thống thu thập dữ liệu, quản lý, xây dựng thuật toán
đánh giá sự sao chép của một luận văn tốt nghiệp với dữ liệu trên hệ thống
3
Thức, Oanh, Lượng



Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
nhằm giảm bớt gánh nặng công việc kiểm tra trùng lặp đề tài cho cán bộ
hướng dẫn cũng như hội đồng phản biện.
1.3.2. Yêu cầu
 Nghiên cứu cách lấy dữ liệu từ Internet.
 Nghiên cứu cách chuyển đổi dữ liệu từ các định dạng khác sang
dạng thuần văn bản.
 Tìm hiểu thuật toán so sánh các văn bản với nhau.
 Xây dựng hệ thống kiểm tra sự trùng lặp luận văn với 1 tập dữ liệu đã
được xây dựng từ trước hoặc lấy được từ trên Internet về.
 Đánh giá kết quả so sánh sự trùng lặp của các luận văn.
PHẦN II. TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC
2.1. Tình hình nghiên cứu trong nước
Đề tài về so sách sự trùng lặp, sao chép của các luận văn hay các bài
báo không còn là một bài toán quá mới trong lĩnh vực công nghệ thông tin,
đặc biệt các các trường đại học lớn, các tạp chí có uy tín trên thế giới, họ đều
sử dụng hệ thống này để kiểm tra một luận văn hay một bài báo có bị “đạo
văn” hay không.
Ở Việt Nam việc kiểm tra sao chép luận văn, tạp chí ở nước ta là khá
mới mẻ, hiện tại cũng chưa có nhiều các phần mềm, công cụ thương mại trên
thị trường về đề tài này. Các chương trình đã có thì chỉ chủ yếu sử dụng đến
phương pháp tìm kiếm và so sánh chuỗi, do vậy chúng chỉ hiệu quả đối với
những luận văn, tạp chí bị sao chép y nguyên văn, còn những tài liệu bị chỉnh
sửa các từ đồng nghĩa hoặc thay đổi thứ tự thì phương pháp này không còn
hiệu quả.
Một số luận văn, tạp chí, bài báo tiêu biểu ở Việt Nam đã được xuất
bản như: “Phát triển hệ thống phát hiện đạo văn cho trường đại học Việt
Nam” của TS. Trần Cao Đệ [2] hay là “Nghiên cứu độ đo tương đồng văn
bản trong Tiếng Việt và ứng dụng hỗ trợ đánh giá việc sao chép bài điện tử”

của TS Dương Thăng Long [1] hay hay luận văn thạc sỹ “Tính toán độ tương
4
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
tự ngữ nghĩa văn bản dựa vào độ tương tự giữa từ với từ” của Đỗ Thị Thanh
Nga, v.v. Hay như mới đây nhất ngày 20/01/2016 thì Học Viện Cảnh Sát áp
dụng phần mềm chống sao chép luận văn [5] với mục đích rà soát, phát hiện
nội dung sao chép trùng lặp, cũng như hạn chế tình trạng đạo luận văn, luận
án cũng cho thấy được tính thực tiễn của đề tài.
2.2. Tình hình nghiên cứu ngoài nước
Trên thế giới, việc nghiên cứu xây dựng các chương trình phát hiện sao
chép tài liệu đã được nhiều tổ chức, công ty, các trường đại học và cá nhân
nghiên cứu trong một thời gian dài. Và cũng có nhiều hệ thống được ứng
dụng thành công bao gồm các ứng dụng web và ứng dụng desktop.
Một số phần mềm thương mại ở nước ngoài đã có như là:
 Turnitin [7] là công cụ phát hiện đạo văn phổ biến nhất đang được sử dụng ở
nhiều trường đại học. Phần mềm sử dụng dữ liệu của 24 tỉ trang web, 300
triệu bài làm của các sinh viên khác và hơn 110000 ấn phẩm. Turnitin sử
dụng thuật toán nhận dạng mẫu để kiểm tra đạo văn và không trích dẫn đúng
trong bài làm của sinh viên.
 Plagiarism Checker [8] kiểm tra phần bài bị sao chép chỉ bằng cách dán đoạn
văn trong bài của sinh viên vào hộp tìm kiếm. Hệ thống này sẽ tìm kiếm
thông qua Google hoặc Yahoo.
 Dupli Checker [11] cung cấp tính năng cho phép bạn có thể sao chép, dán hay
tải nội dung dữ liệu các bài viết, bài bình luận, nội dung trang web hay bài
tiểu luận và nhấp vào nút tìm kiếm, ứng dụng sẽ thực hiện phân tích mổ xẻ và
tất cả các trang web nguồn có nội dụng bị sao chép sẽ được hiển thị.
 iThenticate [12] đây là dịch vụ do Plagiarism.org cung cấp được sử dụng

nhiều trong viết văn bản chuyên nghiệp và nghiên cứu học thuật. Các nhà
xuất bản như Oxford University Press sử dụng dịch vụ này cho phần mềm
Cross Check bao gồm dữ liệu với hơn 31 triệu bài viết và 67664 đầu sách và
tạp chí.

5
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
 Grammarly [10] là một công cụ kiểm tra ngữ pháp và đạo văn bằng cách so
sánh văn bản của bạn với hơn 8 tỉ trang web, tải lên hay sao chép các tập tin
văn bản để kiểm tra đạo văn.
Qua việc sử dụng và tìm hiểu thì các phần mềm này có thể phát hiện
sao chép với nhiều ngôn ngữ khác nhau, đặc biệt thông dụng là ngôn ngữ
Tiếng Anh. Tuy nhiên để có thể áp dụng vào hệ thống giáo dục ở nước ta thì
còn có nhiều bất cập. Thứ nhất là đa số các phần mềm được viết ra đều yêu
cầu trả phí và nhìn chung thì phí đó khá đắt so với mặt bằng chung của các
trường đại học. Thứ hai, như đã đề cập ở trên, các phần mềm này chủ yếu là
phát hiện sao chép các tài liệu bằng tiếng anh, cũng chưa có kiểm định nào
chỉ ra các phần mềm đó hoạt động tốt với các tài liệu bằng ngôn ngữ Tiếng
Việt.
PHẦN III. NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
3.1. Vấn đề trong xử lí ngôn ngữ Tiếng Việt và ứng dụng
3.1.1. Vấn đề trong xử lí ngôn ngữ Tiếng Việt
Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) [16] là
một nhánh của trí tuệ nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của
con người. Trong trí tuệ nhân tạo thì xử lý ngôn ngữ tự nhiên là một trong
những phần khó nhất vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ công cụ hoàn hảo nhất của tư duy và giao tiếp.
Xử lý ngôn ngữ tự động trên máy tính là một trong những vấn đề khó

nhất của lĩnh vực công nghệ thông tin. Cái khó ở đây là làm thế nào đề máy
hiểu được ngôn ngữ của con người, hiểu nghĩa của từ được sử dụng trong
từng hoàn cảnh, hiểu nghĩa của câu và hiểu nghĩa của cả văn bản. Bản chất
phức tạp của ngôn ngữ con người là sự đa nghĩa và sự nhập nhằng của ngôn
ngữ.
Một số vấn đề chính trong xử lí ngôn ngữ Tiếng Việt [17] là:

6
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
 Tập trung vào làm các sản phẩm cho người dùng cuối, những sản phẩm đó
thường khó làm và cần nhiều thời gian nghiên cứu với những phương pháp
thích hợp.
 Ít các nghiên cứu nên tảng, lại phát triển trong điều kiện thiếu “hạ tầng cơ sở”
cho quá trình xử lý ngôn ngữ như về công cụ và tài nguyên: các bộ từ điền
(dùng cho máy), kho dữ liệu. Đó là những thứ không thiểu thiếu được cộng
đồng quốc tế công nhận.
 Các nghiên cứu là ngắn hạn và đơn lẻ với nhiều hạn chế về thời gian và điều
kiện phát triển. Kết quả của các nghiên cứu mới dừng lại ở việc xây dựng
được mô hình, thử và kiểm nghiệm trên những tệp dữ liệu nhỏ. Trên thực tế là
nó không phù hợp với mức độ của người sử dụng.
 Nhiều nhóm bắt tay vào thực hiện nghiên cứu với sự khảo sát không đầy đủ
thông tin hoặc còn thiếu kiến thức. Trong khi đó vấn đề xử lý ngôn ngữ còn
mới và phức tạp, chưa có nhều chuyên gia nên việc đánh giá thẩm định những
thứ làm được và chưa làm được là chưa thật rõ ràng, chính xác, người thực
hiện đề tài có thể đi đường vòng.
 Các nhóm nghiên cứu thực hiện đơn lẻ, thiếu sự liên kết, thiếu sự phân công,
hợp tác theo một lộ trình kế hoạch trong xử lý tiếng Việt và không có tính kế

thừa về kết quả giữa các tầng của xử lý ngôn ngữ tự nhiên.
3.1.2. Ứng dụng trong xử lí ngôn ngữ
Một số ứng dụng của xử lí ngôn ngữ [17] là:
 Nhận dạng chữ viết: Có hai kiểu nhận dạng là nhận dạng chữ in và nhận dạng
chữ viết tay. Thứ nhất, nhận dạng chữ in ví dụ như nhận dạng chữ trên sách
giáo khoa rồi chuyển nó sang dạng văn bản điện tử có định dạng .doc hoặc
.docx của Microsoft Word. Phức tạp hơn là nhận dạng chữ viết tay, vì chữ
viết tay không có khuôn dạng rõ ràng và mỗi người có một dạng chữ viết
khác nhau. Nhận dạng chữ in có thể chuyển hàng ngàn đầu sách trong thư
viện thành các văn bản điện tử. Nhận dạng chữ viết tay của con người có thể
ứng dụng trong khoa học hình sự và bảo mật thông tin.
7
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
 Nhận dạng tiếng nói: Là quá trình nhận dạng mẫu, với các mẫu là các đơn vị
nhận dạng có thể là các từ hoặc các âm vị. Nhận dạng tiếng nói rồi chuyển
chúng thành văn bản tương ứng. Giúp thao tác của con người trên các thiết bị
nhanh hơn và đơn giản hơn, chẳng hạn thay vì gõ một tài liệu nào đó bạn đọc
nó lên và trình soạn thảo sẽ tự ghi nó ra. Đây cũng là bước đầu tiên cần phải
thực hiện trong ước mơ thực hiện giao tiếp giữa con người với robot. Nhận
dạng tiếng nói có khả năng trợ giúp người khiếm thị rất nhiều. Khó khăn của
bài toán là tiếng nói luôn biến thiên theo thời gian và có sự khác biệt lớn giữa
những con người khác nhau, tốc độ nói, ngữ cảnh và môi trường âm học khác
nhau. Các nghiên cứu về nhân dạng tiếng nói dựa trên 3 nguyên tắc cơ bản:
- Tín hiệu tiếng nói được biểu diễn chính xác bởi các giá trị phổ trong
một khung thời gian ngắn. Nhờ vậy ta có thể trích ra các đặc điểm tiếng nói từ
những khoảng thời gian ngắn và dùng các đặc điểm này làm dữ liệu để nhận
dạng tiếng nói.

- Nội dung của tiếng nói được biểu diễn dưới dạng chữ viết, là một dãy
các ký hiệu ngữ âm. Nên ý nghĩa của một phát âm được bảo toàn khi chúng ta
phiên âm thành dãy các khý hiệu ngữ âm.
- Nhận dạng tiếng nói là một qua trình nhận thức. Ngôn ngữ nói có
nghĩa, do đó thông tin về ngữ nghĩa và ngữ dụng có giá trị trong quá trình
nhận dạng tiếng nói, đặc biệt khi thông tin về âm học là không rõ ràng.
 Tổng hợp tiếng nói (Text – to – speech, TTS): có mục tiêu ngược với của
nhận dạng tiếng nói. Từ một văn bản tự động tổng hợp thành tiếng nói. Thay
vì phải tự đọc một cuốn sách hay nội dung một trang web, nó tự động đọc cho
chúng ta. Giống như nhận dạng tiếng nói, tổng hợp tiếng nói là sự trợ giúp tốt
cho người khiếm thị, nhưng ngược lại nó là bước cuối cùng trong giao tiếp
giữa robot với người. Kiến trúc của một hệ thống TTS giống như kiến trúc
đọc chữ của con người, bao gồm một môdun xử lý ngôn ngữ tự nhiên và một
môdun xử lý tín hiệu số. Môdun xử lý ngôn ngữ tự nhiên có khă năng sinh ra
8
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
phiên âm phù hợp với cách phát âm của quá trình đọc văn bản cùng với ngữ
điệu, ngôn điệu. Còn môdun xử lý tín hiệu số chuyển thông tin tưởng trưng
nhận được thành tiếng nói. Khi hai khối này được định nghĩa rõ ràng, việc
nghiên cứu hai quá trình có thể được thực hiện riêng rẽ, độc lập với nhau.
TTS có thể được biểu đạt qua hai phương pháp:
- Phương pháp thứ nhất được thực hiện dưới dạng các quy tắc mô tả âm
vị, ảnh hưởng lẫn nhau giữa các âm vị khi phát ra một âm (phương pháp tổng
hợp bằng quy luật).
- Phương pháp thứ hai lưu giữ những đơn vị âm cơ bản, biến đổi đơn vị
âm cơ bản và đồng thời tạo ra cơ sở dữ liệu tiếng nói, sử dụng chúng như là
các đơn vị âm học cơ bản để tạo thành lời nói (phương pháp tổng hợp theo

xích chuỗi).
 Dịch tự động (machine translate): Như tên gọi đây là chương trình dịch tự
động từ ngôn ngữ này sang ngôn ngữ khác. Một phần mềm điển hình về tiếng
Việt của chương trình này là Evtrans của Softex, dịch tự động từ tiếng Anh
sang tiếng Việt và ngược lại, phần mềm từng được trang web vdict.com mua
bản quyền, đây cũng là trang đầu tiên đưa ứng dụng này lên mạng.
 Tìm kiếm thông tin (information retrieval): Đặt câu hỏi và chương trình tự tìm
ra nội dung phù hợp nhất. Thông tin ngày càng nhiều lên theo cấp số nhân,
đặc biệt với sự phát triển của Internet việc tiếp cận thông tin trở lên dễ dàng.
Các máy tìm kiếm dựa trên giao diện web như Google hay Yahoo hiện nay
chỉ phân tích nội dung rất đơn giản dựa trên tần suất của từ khoá và thứ hạng
của trang và một số tiêu chí đánh giá khác để đưa ra kết luận, kết quả là rất
nhiều tìm kiếm không nhận được câu trả lời phù hợp, thậm chí bị dẫn tới một
liên kết không liên quan gì do thủ thuật đánh lừa của các trang web nhằm giới
thiệu sản phẩm (có tên tiếng Anh là SEO viết tắt của từ search engine
optimization).
 Tóm tắt văn bản: Từ một văn bản dài tóm tắt thành một văn bản ngắn hơn
theo mong muốn nhưng vẫn chứa những nội dung thiết yếu nhất.
9
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
 Khai phá dữ liệu (data mining) và phát hiện tri thức: Từ rất nhiều tài liệu khác
nhau phát hiện ra tri thức mới. Thực tế để làm được điều này rất khó, nó gần
như là mô phỏng quá trình học tập, khám phá khoa học của con người, đây là
lĩnh vực đang trong giai đoạn đầu phát triển. Ở mức độ đơn giản khi kết hợp
với máy tìm kiếm nó cho phép đặt câu hỏi để từ đó công cụ tự tìm ra câu trả
lời dựa trên các thông tin trên web mặc cho việc trước đó có câu trả lời lưu
trên web hay không (giống như trang Yahoo! hỏi và đáp, nơi chuyên đặt các

câu hỏi để người khác trả lời), nói một cách nôm na là nó đã biết xử lý dữ liệu
để trả lời câu hỏi của người sử dụng, thay vì máy móc đáp trả những gì chỉ có
sẵn trong bộ nhớ.
3.2. Xây dựng mô hình hệ thống so sánh các văn bản
3.2.1. Các tác nhân chính
Có 3 tác nhân chính trong việc so sánh các văn bản đó là: tập dữ liệu,
người sử dụng và hệ thống so sánh các văn bản
Tập dữ liệu ở đây có thể được lưu trữ dưới nhiều định dạng khác nhau,
ví dụ như HTML(có các menu, quảng cáo, hình ảnh), Word (có định dạng về
font chữ , màu chữ, kích thước), Excel(quản lí các bảng dữ liệu) hay các file
PDF, thuần text, v.v. Tuy nhiên các hệ thống tìm kiếm, xử lý thông tin sẽ
hiếm khi sử dụng đến cấu trúc lưu trữ của các văn bản trong chương trình.
Người sử dụng sẽ là người đưa ra truy vấn để tìm kiếm thông tin hoặc
thực hiện so sánh văn bản, trích rút thuộc tính, v.v.
Quá trình so sánh các văn bản sẽ được thực hiện trên các hệ thống so
sánh với đầu vào là yêu cầu của người dùng và tập dữ liệu đã được xây dựng
từ trước. Các hệ thống này phải có khả năng xử lý được khối lượng thông tin
rất lớn với ngôn ngữ tự nhiên (Natural Language Processing – NLP) trong
một thời gian cho phép và chấp nhận được.

10
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp

Hình 3.1. Các tác nhân chính trong hệ thống
3.2.2. Mô hình hệ thống so sánh các văn bản
Mô hình hệ thống so sánh các văn bản sẽ được khái quát như sau: Ban
đầu chúng ta sẽ thu thập các dữ liệu có liên quan bao gồm các tập tài liệu

được xây dựng từ trước và trên Internet. Bước tiếp theo ta sẽ mô hình hóa tài
liệu sao cho các hệ thống tìm kiếm có thể hiểu và xử lí được. Tiếp theo, ta sẽ
xây dựng mô hình tìm kiếm để xử lí thông tin.
Người dùng sẽ gửi yêu cầu đến hệ thống, dựa vào mô hình tìm kiếm thì
hệ thống sẽ định giá và hiển thị ra kết quả cho người dùng

11
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp

Hình 3.2. Mô hình hệ thống so sánh các văn bản
3.3. Các bước tiền xử lí
3.3.1. Lấy dữ liệu từ trên Internet
a. Web crawler
Web crawler [18] là các chương trình khai thác sơ đồ cấu trúc của Web
bằng cách chuyển từ trang web này sang trang web khác.
Web crawler thường có chức năng lấy ra nội dung các trang web và
thêm chúng hoặc thể hiện của chúng vào các kho chứa cục bộ. Các kho chứa
này, sau đó sẽ đáp ứng các ứng dụng cụ thể chẳng hạn một hệ thống tìm kiếm
trên Web.
Web crawler còn được biết đến như: Internet bots, web spider, web
robots hay web scutters là một chương trình tự động hay kịch bản mà có
phương thức duyệt hay “crawls” qua các trang web để tạo ra chỉ số của dữ
liệu, nó được thiết lập để thực hiện tìm kiếm.
b. Cấu trúc mô hình web crawler
Web crawler bắt đầu đi qua với một danh sách các URLs, được gọi là
“seeds”. Khi thu thập qua các URL, nó xác định tất cả các siêu liên kết trong
trang và thêm chúng vào danh sách các URL đến thăm, gọi là “crawl

12
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
frontier”. URL từ “crawl frontier” được đệ quy đến thăm theo một tập hợp
của các chính sách. Nếu trình thu thập được thực hiện lưu trữ các trang web
nó sao chép và lưu những thông tin. Các tài liệu lưu trữ thường được lưu trữ
trong một cách như vậy, chúng có thể được xem, đọc như trên web trực tiếp,
nhưng được lưu lại.

Hình 3. Mô hình Web crawler
Số lượng các URL có thể thu thập được tạo ra bởi phần mềm phía máy
chủ cũng đã gây khó khăn cho việc thu thập web để tránh lấy nội dung trùng
lặp. Kết hợp vô tận của HTTP GET tham số (dựa trên URL) tồn tại, trong đó
chỉ có một lựa chọn nhỏ sẽ thực sự trở lại nội dung đúng. Ví dụ, online photo
gallery đơn giản có thể cung cấp ba lựa chọn cho người sử dụng, theo quy
định thông qua các tham số HTTP GET trong URL. Nếu có tồn tại bốn cách
để sắp xếp hình ảnh, ba sự lựa chọn về kích thước thu nhỏ, hai định dạng tập
tin, và một tùy chọn để vô hiệu hóa nội dung do người dùng cung cấp, sau đó
cùng một tập các nội dung có thể được truy cập với 48 URL khác nhau, tất cả
đều có thể được liên kết trên trang web. Kết hợp toán học này tạo ra một vấn
13
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
đề cho trình thu thập, khi họ phải sắp xếp thông qua sự kết hợp vô tận của
những thay đổi Scripted tương đối nhỏ để lấy nội dung đúng.
Hoạt động của thành phần crawler có thể được xem như một bài toán

duyệt đồ thị. Quá trình tải một trang web và đi tới một trang web mới tương
tự như quá trình mở rộng một đỉnh trong bài toán tìm kiếm trên đồ thị.
c. Lấy dữ liệu trên mạng sử dụng thư viện Jsoup
 Giới thiệu về Jsoup
Jsoup là một thư viện của Java để làm trên dữ liệu HTML. Nó cung cấp
API rất thuận tiện cho việc trích xuất và thao tác trên dữ liệu, được sử dụng
tốt nhất trên DOM (Document Object Model), CSS, phương thức truy vấn.
Chức năng của Jsoup gồm có:





Xử lý HTML từ đường dẫn, các file, các chuỗi
Tìm và trích xuất dữ liệu
Thao tác các thẻ HTML, thuộc tính, văn bản
Đầu ra HTML gọn gàng

 Các hàm API của Jsoup
Jsoup bao gồm nhiều lớp (class), tuy nhiên có 3 class quan trọng nhất
bao gồm:
 org.jsoup.Jsoup: lớp Jsoup sẽ là điểm mấu chốt cho bất kỳ chương trình nào
và sẽ cung cấp phương pháp để phân tích tài liệu HTML từ nhiều nguồn khác
nhau.
 org.jsoup.nodes.Document: Lớp này đại diện cho một tài liệu HTML được tải
thông qua thư viện Jsoup. Có thể sử dụng lớp này để thực hiện các hoạt động
đó và phải được áp dụng trên toàn bộ tài liệu HTML.
 org.jsoup.nodes.Element: Như bạn biết rằng một phần tử HTML bao gồm một
thẻ tên, thuộc tính, và các nút con. Sử dụng lớp Element, bạn có thể trích xuất
dữ liệu, đi qua đồ thị nút, và thao tác HTML.

 Thao tác với các tài liệu (Document)
14
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
 Tải tài liệu từ chuỗi, xâu (String): Sử dụng phương pháp Jsoup.parse() để tải
HTML từ một chuỗi (String).
 Phân tích đoạn HTML: Một tài liệu HTML đầy đủ bao gồm nhiều thẻ khác
nhau: Header, Body,… nhưng trong một số trường hợp bạn chỉ cần lấy nội
dung trong thẻ body từ tài liệu nên ta cần phân tích đoạn HTML đề trích xuất
lấy ra được dữ liệu mong muốn. Có thể sử dụng phương pháp
Jsoup.parseBodyFragment() để lấy dữ liệu.
 Tải một tài liệu từ một URL: Sử dụng phương pháp Jsoup.connect() đề tải
HTML từ một URL.
 Tải tài liệu từ một tập tin: Sử dụng phương pháp Jsoup.parse () để tải HTML
từ một tập tin.
 Trích xuất dữ liệu
 Các phương thức DOM: Jsoup có một vài phương thức gần giống với các
phương thức trong mô hình DOM (Phân tích tài liệu XML).
 Jsoup cung cấp một vài phương thức để hỗ trợ tìm kiếm các phần tử phù hợp
giống như trong CSS (hoặc JQuery). Những hỗ trợ như vậy hoạt động mạnh
mẽ, nó có sẵn trong các lớp Document. Element hoặc Elements.
- Element.select(String selector)
- Elements.select(String selector)
3.3.2. Chuyển đổi dữ liệu pdf sang thuần text
Trên thực tế các luận văn tốt nghiệp được lưu trữ dưới rất nhiều dạng
khác nhau, ví dụ như: pdf, doc, docx,.v.v. Nhưng thực tế chúng ta xử lý dữ
liệu trên văn bản thuần text hay là được định dạng với đuôi “.txt”. Vậy nên
cần nhiều phương pháp để chuyển đổi lại các định dạng đó.

Trên mạng hiện nay có rất nhiều trang có sẵn để chuyển file từ pdf sang
text, ví dụ như: v.v. Nhưng nó có một vấn đề là chỉ cho dùng thử đối với khoảng 20
trang pdf đầu hoặc giới hạn dung lượng của file. Hoặc có rất nhiều phần mềm
chuyển đổi và phải trả phí ví dụ như: /> v.v.
15
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
Ngoài ra, có một số mã nguồn mở được viết sẵn để người dùng có thể
chuyển đổi định dạng của các dạng dữ liệu. Có thể sử dụng một số gói Python
để thực hiện công việc này. Một số công cụ chuyển đổi dữ liệu:
 Pdfrw: Là một thư việ python thực hiện đọc và ghi các tập tin PDF.
 Slate là một gói Python mà đơn giản hoá quá trình trích xuất văn bản từ file
PDF. Nó phụ thuộc vào các gói PDFMiner.
 PDFQuery: Nó được thiết kế để trích xuất dữ liệu đáng tin cậy từ bộ file PDF
với ít mã càng tốt.
 PyPDF2 là một thư viện python chuyển đổi các file PDF, có khả năng chia
tách, sáp nhập với nhau, cắt xén, và chuyển các trang của tập tin PDF. Nó
cũng có thể thêm dữ liệu tùy chỉnh, tùy chọn xem, và mật khẩu cho các tập tin
PDF. Nó có thể lấy lại văn bản và siêu dữ liệu từ các file PDF cũng như hợp
nhất toàn bộ tập tin với nhau.
 PDFMiner là một công cụ để trích xuất thông tin từ các tài liệu PDF. Không
giống như các công cụ PDF khác liên quan đến, nó tập trung hoàn toàn vào
nhận và phân tích dữ liệu văn bản. PDFMiner cho phép một để có được vị trí
chính xác của văn bản trong một trang, cũng như các thông tin khác như
phông chữ hoặc dòng. Nó bao gồm một công cụ chuyển đổi PDF có thể
chuyển đổi các file PDF sang định dạng văn bản khác (như HTML). Nó có
một phân tích cú pháp PDF mở rộng có thể được sử dụng cho các mục đích
khác hơn là phân tích văn bản. Xử lý đối với tài liệu, luận văn PDF mà chưa

bị mã hóa. PDFMiner đi kèm với hai công cụ: pdf2txt.py và dumppdf.py.
- pdf2txt.py trích xuất nội dung văn bản từ một tập tin PDF. Nó trích
xuất toàn bộ văn bản đó được chi trả theo chương trình, tức là văn bản thể
hiện như ASCII hoặc các chuỗi Unicode. Nó không thể nhận ra văn bản được
vẽ như hình ảnh mà có yêu cầu nhận dạng ký tự quang học. Nó cũng trích ra
các vị trí tương ứng, tên font, cỡ chữ, văn bản hướng (ngang hay dọc) cho
mỗi phần văn bản. Bạn cần phải cung cấp mật khẩu cho các tài liệu PDF được
bảo vệ khi truy cập của nó bị hạn chế. Bạn không thể trích xuất bất kỳ văn
bản từ một tài liệu PDF mà không có sự cho phép khai thác.
16
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
- dumppdf.py trích xuất các nội dung bên trong của một tập tin PDF ở
định dạng XML giả. Chương trình này là chủ yếu cho mục đích gỡ lỗi, nhưng
nó cũng có thể trích xuất một số nội dung có ý nghĩa (như hình ảnh).
PDFminer có hỗ trợ giao diện dòng lệnh python hay cmd với window.
3.3.3. Phân tách từ - Sử dụng công cụ VnTokenizer
a. Tổng quan về bài toán tách từ
Tách từ là quá trình xử lý nhằm mục đích xác định ranh giới giữa các từ
trong câu. Không giống như ngôn ngữ Tiếng Anh, ranh giới giữa các từ
không chỉ đơn giản là các khoảng trắng. Mà trong những văn bản tiếng Việt,
dấu cách hay khoảng trắng được đặt giữa các âm tiết chứ không phải giữa các
từ. Một từ có thể có một, hai hoặc nhiều âm tiết, nó gây ra khó khăn, nhập
nhằng cho quá trình tách từ trong ngôn ngữ tiếng Việt.
Tiêu chí quan trọng nhất cần đạt được của bài toán tách từ là độ chính
xác. Hiện tại một số mô hình đã cho độ chính xác lên tới 97%, nhưng nó chỉ
là kết quả nếu tính tách theo từ. Còn nếu tính theo câu (số câu được tách đúng
trong tổng số câu) thì độ chính xác mới đạt được khoảng 50% [19]. Nếu một

từ bị tách sai sẽ ảnh hưởng đến các bước xử lý tiếp theo trong bài toán.
Quy trình thực hiện tách từ:

Hình 3.3. Quy trình thực hiện tác từ
Hiện tại có một số cách tiếp cận bài toán tách từ [19] như sau:
17
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
 Ghép cực đại: Đặt các từ vào câu sao cho phủ hết được câu đó, thoả mãn một
số heuristic nhất định. Phương pháp này các ưu điểm là rất nhanh, nhưng có
rất nhiều hạn chế, ví dụ như độ chính xác thấp, không xử lý được những từ
không có trong từ điển.
 Luật: Xây dựng tập luật bằng tay hoặc tự động để phân biệt các cách kết hợp
được phép và không được phép.
 Đồ thị hoá: Xây dựng một đồ thị biểu diễn câu và giải bài toán tìm đường đi
ngắn nhất trên đồ thị.
 Dùng mô hình ngôn ngữ: Cho trước một số cách tách từ của toàn bộ câu, một
mô hình ngôn ngữ có thể đánh giá được cách nào có khả năng cao hơn. Đây là
cách tiếp cận của vnTokenizer (xem [15]).
b. Công cụ VnTokenizer
 Giới thiệu
VnTokenizer là công cụ tách từ tiếng Việt tự động được phát triển dựa
trên phương pháp so khớp tối đa(Maximum Matching) với tập dữ liệu sử
dụng là bảng âm tiết tiếng Việt và từ điển từ vựng tiếng Việt. Nó phân đoạn
văn bản tiếng Việt thành các đơn vị từ vựng (từ ngữ, tên, ngày tháng, số và
biểu thức thông thường khác) với mức chính xác cao. Công cụ được xây dựng
trên ngôn ngữ Java là nền tảng độc lập và là mã nguồn mở. Vì vậy, có thể dễ
dàng sửa đổi, nâng cấp tích hợp vào các hệ thống phân tích văn bản tiếng Việt

khác.
 Tài nguyên
Tất cả các mã nguồn cần thiết của vnTokenizer được đặt trong thư mục
models. Vì vậy để tích hợp vnTokenizer vào chương trình chúng ta cần sao
chép thư mục này (cùng với tất cả các thư mục con của nó) vào trong chương
trình. Để chạy được các hàm API được trình bày phía dưới chúng ta cần thêm
thư viện của vnTokenizer và file tokenizer.properties.

18
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp

Hình 3.4. Các tài nguyên của vnTokenizer
 Các hàm API
Các class chính của công cụ vnTokenizer được đặt trong
vn.hus.nlp.tokenizer.VietTokenizer.
Một số các hàm của vnTokenizer là:





public void tokenize(String inputFile, String outputFile)
public String[] tokenize(String text)
public void tokenizeDirectory(String inputDir, String outputDir)
public String segment(String sentence)
Ví dụ để chạy phân tách từ với hàm số 1 với đầu vào là 1 file văn bản


đuôi .txt, đầu ra là 1 file .txt khác thì chúng ta thực hiện như sau:

19
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp

Hình 3.5. Ví dụ tích hợp vnTokenizer
3.3.4. Đánh chỉ mục
a. Mục đích
Như chúng ta đã biết việc duyệt toàn bộ các tập tài liệu với các từ khóa
trong yêu cầu của người dùng là không thể vì việc đó tốn rất nhiều thời gian
và không thực tế. Vì thế chúng ta cần phải qua một bước tiền xử lí đó là:
“đánh chỉ mục”. Mục đích của việc đánh chỉ mục tự động đó là biến đổi các
tài liệu bằng cách thay thế có thể được để miêu tả nội dung của các tài liệu
này. (xem [20]).

20
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp

Hình 3.6. Tổng quan xây dựng đánh chỉ mục
b. Các phương pháp đánh chỉ mục
 Ma trận phụ thuộc
Trong phương pháp này mỗi từ khóa trong văn bản sẽ được đánh số 0
hoặc 1. Chúng ta sẽ đánh 0 nếu từ khóa không nằm trong tài liệu đó và ngược
lại đánh 1 nếu có trong văn bản.


Hình 3.7. Ma trận phụ thuộc
Bây giờ chúng ta sẽ thực hiện câu truy vấn tìm kiếm từ “Cộng hòa Xã
hội Chủ Nghĩa” bằng ma trận phụ thuộc bằng cách and “bit với bit”
21
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp

Hình 3.8. Truy vấn bằng ma trận phụ thuộc
Tuy nhiên việc đánh chỉ mục theo mô hình này rất khó để sử dụng
trong thực tiễn với các bộ dữ liệu lớn với hàng trăm, hàng nghìn tài liệu khác
nhau.
 Tập tin đảo ngược
Đây là một trong những phương pháp cổ điển của việc đánh chỉ mục.
Đảo ngược tệp tin kết hợp với đánh chỉ mục của các tài liệu mà chứa từ đó.
Mỗi tài liệu có một định danh duy nhất.

Hình 3.9. Tập tin đảo ngược
22
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp
 Trọng số
Đây là phương pháp sẽ đánh chỉ mục cho mỗi từ dựa vào tần suất suất
hiện của từ trong văn bản và tần suất xuất hiện của từ đó trong cả bộ sưu
tập.Trọng số của một từ khóa (TF.IDF) là sự kết hợp của hai trực quan trên để
phản ánh cách phân biện một từ khoá trong tài liệu.

3.4. Tính độ tương tự giữa 2 văn bản
3.4.1. TF – Term Frequency ( TF )
Trong một truy vấn cũng như trong một tài liệu, các từ khoá không có
tầm quan trọng giống nhau do đó nhiều lần xuất hiện của một từ khoá
trong một tài liệu thì càng dễ tìm tài liệu chứa từ khoá này.

Hình 3.10. Công thức tính TF
Vì vậy chúng ta sẽ giữ chỉ số số lần xuất hiện của các từ khoá đi kèm
với tài liệu đó

Hình 3.11. Ma trận tần suất
Một biến thể khác của tính TF có thể dựa theo công thức sau:

23
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp

Hình 3.12. Biến thể của công thức tính TF
3.4.2. IDF – Inverse Document Frequency (IDF)
Từ khóa xuất hiện trong hầu hết các tài liệu nhiều khi không phải là từ
khóa quan trọng (chúng ít phân biệt giữa các tài liệu). Do đó chúng ta sẽ bù
trừ tần suất của các từ khóa trong các tài liệu (TF) với tần suất xuất hiện trong
cả bộ sưu tập (DF).

Hình 3.13. Công thức tính IDF
3.4.3. TFIDF – Trọng số
Trọng số của một từ khóa (TF.IDF) là sự kết hợp của hai trực quan của
TF và IDF để phản ánh cách phân biện một thuật ngữ trong tài liệu.

Trọng số của một từ khóa t :
 Tăng với tần suất của nó trong tài liệu
 Tăng với việc ít xuất hiện trong bộ sưu tập

24
Thức, Oanh, Lượng


Xây dựng hệ thống kiểm tra sao chép luận văn tốt nghiệp

Hình 3.14. Công thức tính trọng số

Hình 3.15. Ma trận trọng số
3.5. Một số mô hình đánh giá độ tương đồng hai văn bản
3.5.1. Mô hình Logic
a. Khái niệm
Theo mô hình này các từ có nghĩa trong văn bản được Index và nội
dung văn bản được quản lý theo các chỉ số Index đó.
Mỗi văn bản được Index theo quy tắc:
- Thống kê các từ có nghĩa trong các văn bản, đó là những từ mang
thông tin chính về các văn bản lưu trữ.
- Index các văn bản đưa vào theo danh sách các từ khoá nói trên. Ứng
với mỗi từ khoá trong danh sách sẽ lưu vị trí xuất hiện nó trong từng văn bản
và tên văn bản tồn tại từ khoá đó.
Ví dụ, có hai văn bản với mã tương ứng là VB1,VB2.

25
Thức, Oanh, Lượng



×