Tải bản đầy đủ (.pdf) (77 trang)

Nghiên cứu phương pháp đo độ tương đồng văn bản và ứng dụng hát triển sự trùng lặp giữa các văn bản

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 (2.74 MB, 77 trang )

MỤC LỤC
LỜI CAM ĐOAN .....................................................................................................i
LỜI CẢM ƠN .........................................................................................................ii
MỤC LỤC ............................................................................................................ iii
DANH MỤC TỪ VIẾT TẮT ................................................................................. vi
DANH MỤC CÁC BẢNG BIỂU ..........................................................................vii
DANH MỤC HÌNH VẼ .......................................................................................viii
MỞ ĐẦU ................................................................................................................ 1
CHƯƠNG 1 . CÁC PHƯƠNG PHÁP ĐO ĐỘ TƯƠNG ĐỒNG VĂN BẢN ........... 6
1.1 Giới thiệu về xử lý ngôn ngữ tự nhiên ........................................................... 6
1.1.1 Xử lý ngôn ngữ tự nhiên - natural language processing - NLP ................ 6
1.1.2 Các bước xử lý ....................................................................................... 6
1.2 Tiền xử lý văn bản ......................................................................................... 7
1.2.1 Bước phân tích từ vựng .......................................................................... 7
1.2.2 Bước loại bỏ từ dừng .............................................................................. 7
1.2.3 Bước loại bỏ từ có tần số thấp ................................................................ 8
1.2.4 Bước loại bỏ tiền tố và hậu tố ................................................................. 8
1.3 Các phương pháp biểu diễn văn bản .............................................................. 9
1.3.1 Mô hình logic ......................................................................................... 9
1.3.2 Mô hình phân tích cú pháp ................................................................... 11
1.3.3 Mô hình không gian véc-tơ ................................................................... 12
1.3.4 Mô hình Boolean .................................................................................. 14
1.3.5 Phương pháp dựa trên miền tần số từ khóa (TF-Term Frequency) ........ 14
1.3.6 Phương pháp dựa trên nghịch đảo tần số văn bản (IDF-Inverse
Document Frequency) ................................................................................... 15
1.3.7 Phương pháp TFxIDF........................................................................... 15
1.4 Thuật toán Tokenizer ................................................................................... 17
1.4.1 Đặc trưng của tiếng Việt....................................................................... 18
1.4.2 Thuật toán tách từ ................................................................................. 20
iii



1.5 Mô hình tách từ tiếng Việt ........................................................................... 23
1.5.1 Khái quát về tách từ tiếng Việt ............................................................. 23
1.5.2 Ý tưởng cơ bản ..................................................................................... 24
1.5.3 Các mô hình liên quan .......................................................................... 25
1.6 Độ tương đồng văn bản và phương pháp tính độ tương đồng văn bản .......... 27
1.6.1 Độ tương đồng ..................................................................................... 27
1.6.2 Độ tương đồng văn bản ........................................................................ 27
1.6.3 Các phương pháp tính độ tương đồng văn bản ...................................... 28
1.7 Kết luận chương .......................................................................................... 37
CHƯƠNG 2 . HỆ THỐNG PHÁT HIỆN SỰ TRÙNG LẶP GIỮA CÁC VĂN BẢN
.............................................................................................................................. 38
2.1 Các yêu cầu đối với việc phát hiện trùng lặp giữa các văn bản..................... 38
2.2 Xây dựng chương trình tách từ Tokenizer.................................................... 39
2.2.1 Bước 1: Tiền xử lý số liệu .................................................................... 40
2.2.2 Bước 2: Tách câu ................................................................................. 42
2.2.3 Bước 3: Tách từ.................................................................................... 43
2.2.4 Bước 4: Biểu diễn văn bản ................................................................... 45
2.2.5 Bước 5: Tính độ đo của văn bản ........................................................... 46
2.3 Xây dựng chương trình tính độ tương tự bằng độ đo Cosine ........................ 47
2.3.1 Module tiền xử lý văn bản .................................................................... 48
2.3.2 Module cập nhật thư viện từ ................................................................. 49
2.3.3 Module biểu diễn véc-tơ đặc trưng của văn bản .................................... 49
2.3.4 Tính độ tương tự văn bản dựa vào độ đo Cosine ................................... 51
2.3.5 Xây dựng cơ sở dữ liệu mẫu ................................................................. 52
2.4 Kết luận chương .......................................................................................... 53
CHƯƠNG 3 . CHƯƠNG TRÌNH THỰC NGHIỆM VÀ KẾT QUẢ .................... 54
3.1 Môi trường cài đặt và thử nghiệm ................................................................ 54
3.2 Chuẩn bị dữ liệu .......................................................................................... 54
3.3 Một số giao diện của chương trình............................................................... 55

3.3.1 Nhập trực tiếp hai văn bản .................................................................... 55
3.3.2 Nhập hai văn bản từ file ....................................................................... 56
iv


3.3.3 Xử lý với văn bản trong kho dữ liệu ..................................................... 58
3.3.4 Xây dựng kho ngữ liệu ......................................................................... 59
3.4 Kết quả thử nghiệm, đánh giá ...................................................................... 61
3.4.1 Một số ví dụ cụ thể ............................................................................... 61
3.4.2 Kết quả thử nghiệm đánh giá ................................................................ 66
3.4.3 Đánh giá ............................................................................................... 66
3.5 Kết luận chương .......................................................................................... 67
KẾT LUẬN ........................................................................................................... 68
HƯỚNG PHÁT TRIỂN ........................................................................................ 69
TÀI LIỆU THAM KHẢO ..................................................................................... 70

v


DANH MỤC TỪ VIẾT TẮT
Từ viết tắt
NND

Tiếng Anh

Tiếng Việt

Near-Duplicate Detection

Phát hiện tái văn bản gần

trùng

LTRD

Local Text Reuse Detection

Phát hiện tái sử dụng văn
bản cục bộ

SE

Search Engine

Máy tìm kiếm

CSDL

Cơ sở dữ liệu

VSM

Vector Space Model

Mô hình không gian véc-tơ

TF

Term Frequency

Miền tần số


IDF

Inverse Document Frequency

Nghịch đảo miền tần số

CRF

Conditional random fields

Xác suất ngẫu nhiên có
điều kiện

LM

Longest Matching

MM

Maximal Matching

LDA

Latent Dirichlet Allocation

WCG

Wikipedia Category Craph


PL

Path Length

LC

Leacock & Chodorow

TBL

Tranformation – base Learning

LRMM

Left Right Maximum Matching

vi


DANH MỤC CÁC BẢNG BIỂU
Bảng 1-1 Biểu diễn văn bản theo mô hình logic....................................................... 9
Bảng 1-2 Biểu diễn văn bản theo mô hình không gian véc-tơ ................................ 13
Bảng 1-3 Biểu diễn văn bản theo mô hình Boolean ............................................... 14

vii


DANH MỤC HÌNH VẼ
Hình 1-1 Mô hình không gian véc-tơ theo biểu diễn của Christian S. Perone [13] . 13
Hình 1-2 Mô hình N-Gram .................................................................................... 26

Hình 1-3 Tính độ tương đồng văn bản dựa vào chủ đề ẩn ...................................... 31
Hình 1-4 Mối quan hệ giữa đồ thị bài viết và đồ thị chủ đề Wikipedia ................... 33
Hình 2-1 Các yêu cầu đối với việc phát hiện sao chép văn bản .............................. 39
Hình 2-2 Cấu trúc của chương trình phát hiện sao chép văn bản ............................ 40
Hình 2-3 Mô hình tách từ trong văn bản tiếng Việt ................................................ 44
Hình 2-4 Tài liệu được xếp hạng bởi giá trị Cosine giảm dần ................................ 47
Hình 3-1 Giao diện chính của chương trình ........................................................... 55
Hình 3-2 Giao diện cho phép nhập trực tiếp hai văn bản ........................................ 56
Hình 3-3 Giao diện nhập hai văn bản từ file .......................................................... 57
Hình 3-4 Giao diện kết quả sau khi nhập hai văn bản từ file .................................. 57
Hình 3-5 Giao diện của chức năng xử lý với kho dữ liệu ....................................... 58
Hình 3-6 Giao diện của chức năng lưu trữ kho ngữ liệu ......................................... 59
Hình 3-7 Giao diện khi thực hiện chức năng tách từ .............................................. 60
Hình 3-8 Giao diện khi thực hiện chức năng tách từ thành công ............................ 60
Hình 3-9 Kết quả thử nghiệm tính độ đo cosine giữa hai đoạn văn (vd1) ............... 62
Hình 3-10 Kết quả thử nghiệm tính độ đo cosine giữa hai đoạn văn (vd2) ............. 64
Hình 3-11 Kết quả tính độ đo của VB mẫu ............................................................ 65
Hình 3-12 So sánh nội dung giữa văn bản kiểm tra với 1 văn bản trong CSDL ...... 65

viii


MỞ ĐẦU
Trong thời đại công nghệ số như hiện nay, các nguồn tài liệu là vô cùng
phong phú. Việc “sao chép tài liệu” theo nghĩa tiêu cực như đạo văn, sao chép các
luận án, luận văn, đồ án trở nên phổ biến và là một vấn nạn. Ở quy mô rộng hơn,
các thư viện điện tử ngày càng nhiều, một tài liệu có thể được phát hành trên
Internet nhiều lần trong những thư viện điện tử khác nhau, trên các trang Web khác
nhau.
Làm thế nào để phát hiện sự sao chép tài liệu theo nghĩa tiêu cực? Làm thế

nào ngăn chặn việc sao chép trái phép, đạo văn, đạo nhạc, đạo luận văn, đồ án? Chủ
đề này đã được nghiên cứu từ hơn khoảng 10 năm qua. Hiện tại, đã có một số giải
pháp cho việc phát hiện sao chép và một vài công cụ phần mềm cho phép phát hiện
một tài liệu (gọi là văn bản kiểm tra) có sao chép từ một tập hợp các tài liệu nguồn
hay không. Tập hợp các tài liệu nguồn đó có thể là đóng – tức là các tài liệu tập hợp
trước trong một thư viện điện tử - hoặc là mở, chẳng hạn như tập các tài liệu văn
bản trên internet.
Đã có một số nghiên cứu đề xuất các phương pháp khác nhau để xác định
xem một đoạn văn bản của một số tài liệu có nằm trong một tài liệu nào đó hay
không. Các phương pháp này chủ yếu dựa trên tìm kiếm và so khớp chuỗi (string
matching). Tuy nhiên, các phương pháp so khớp chuỗi chỉ có hiệu quả nếu việc sao
chép là “nguyên văn”. Nó không thể phát hiện các sao chép có sửa đổi đôi chút như
thay thế một số từ bằng từ đồng nghĩa hay thay đổi một ít trong thứ tự các câu trong
văn bản.

1. Tổng quan tình hình nghiên cứu
Hiện tượng văn bản trùng lặp là hiện tượng rất phổ biến trong đời thường.
Các văn bản hay đoạn văn bản vì nhiều nguyên nhân thường bị sao chép lại, do đó
chúng xuất hiện ở nhiều nguồn khác nhau. Các blogger thường lấy các tin tức từ các
báo điện tử; người gửi thư thường trích dẫn một phần hay toàn bộ thư trước; sinh
viên viết luận văn sao chép một số phần từ các bài luận văn năm trước… Vì nhiều
lý do khác nhau mà người ta muốn tìm và phát hiện được các văn bản trùng nhau.
1


Ví dụ như đối với hệ thống lưu trữ dữ liệu, các văn bản trùng lặp sẽ làm tốn tài
nguyên lưu trữ mà giá trị thông tin lại mang lại không nhiều. Hay đối với các tổ
chức làm việc liên quan đến bản quyền tác giả, họ cần tìm ra các văn bản (tác phẩm
văn chương, bài báo khoa học,…) có sử dụng lại một cách trái phép tác phẩm trước
đó. Chính vì vậy, người ta đã quan tâm rất nhiều đến vấn đề phát hiện các văn bản

trùng lặp.
Bài toán phát hiện các văn bản trùng lặp là bài toán khó. Nếu như các văn
bản hoàn toàn trùng nhau (bị sao chép hoàn toàn, không thay đổi) thì chỉ cần một
phép kiểm tra đơn giản là ta có thể phát hiện được. Tuy nhiên, phát hiện các văn
bản trùng lặp là một vấn đề khó hơn rất nhiều. Các dạng trùng lặp là vô cùng đa
dạng. Một văn bản có thể được sao chép toàn bộ hay chỉ một phần. Các văn bản sao
chép có thể bị thay đổi (thêm, xóa hoặc bị xáo trộn) và nằm ở những vị trí bất kỳ
của văn bản mới. Văn bản mới sau khi sao chép khác với văn bản cũ ở một vài phần
nhỏ.
Chính vì sự đa dạng trong việc sao chép văn bản mà không thể có một giải
thuật hay kỹ thuật nào đó đo được một cách chính xác sự giống nhau giữa các văn
bản.

2. Tính cấp thiết, ý nghĩa khoa học và thực tiễn của đề tài
Xuất phát từ hiện trạng trùng lặp văn bản đang diễn ra một cách ồ ạt như
phân tích ở trên, tôi đã chọn đề tài “Nghiên cứu phương pháp đo độ tương đồng văn
bản và ứng dụng vào phát hiện sự trùng lặp giữa các văn bản”làm đề tài nghiên cứu
trong luận văn tốt nghiệp của tôi.
Trong báo cáo luận văn, sẽ tập trung trình bày những nghiên cứu kiến thức
cơ bản xử lý văn bản, kết hợp nhiều phương pháp, có so sánh, đối chứng để tìm ra
phương pháp phát hiện ra sự trùng lặp văn bản. Triển khai các bước phân tích, xử lý
để xây dựng một chương trình phát hiện sao chép văn bản, với các bước kết hợp các
kỹ thuật mới, góp phần nâng cao hiệu quả trong việc phát hiện những thủ thuật tinh
vi khi sao chép lại văn bản, giúp giảm áp lực trong vấn đề lưu trữ dư thừa, đồng thời

2


bảo vệ nguồn tri thức quý giá đang bị sao chép một cách công khai, diễn ra hàng
ngày, hàng giờ.


3. Bố cục của luận văn
Luận văn ngoài phần Mở đầu và kết luận, bao gồm 3 chương như sau:
Chương 1:Các phương pháp đo độ tương đồng văn bản: Giới thiệu tổng
quan về lý thuyết xử lý văn bản, các phương pháp biểu diễn văn bản, các phương
pháp tách từ tiếng Việt, bài toán kiểm soát trùng lặp văn bản dựa vào thuật toán tính
độ tương tự hai văn bản.
Chương 2:Hệ thống phát hiện sự trùng lặp giữa các văn bản:Áp dụng lý
thuyết tìm hiểu ở chương 1 vào bài toán cụ thể, giải quyết bài toán kiểm soát trùng
lặp văn bản.
Chương 3: Chương trình thực nghiệm và kết quả: Xây dựng các module
chính, các thuật toán, cài đặt và trình bày kết quả thử nghiệm.

4. Khảo sát thực trạng ứng dụng phát hiện sự trùng lặp giữa các văn bản
Vấn đề phát hiện các văn bản trùng lặp không phải là một vấn đề mới. Trên
thế giới, các nhà nghiên cứu đã quan tâm đến vấn đề này từ khá lâu. Trong khoảng
10 năm trở lại đây, số lượng công trình nghiên cứu liên quan đến vấn đề này là rất
nhiều. Các kết quả nghiên cứu trong lĩnh vực phát hiện văn bản trùng lặp có thể
được áp dụng cho các mục đích khác như: phân cụm văn bản (document clustering),
truy xuất dữ liệu có cấu trúc, phát hiện SPAM… Tuy không phải là mới, nhưng ở
Việt Nam vẫn chưa có nhiều người quan tâm tới vấn đề phát hiện các văn bản trùng
lặp. Với đề tài luận văn “Nghiên cứu phương pháp đo độ tương đồng văn bản và
ứng dụng phát hiện sự trùng lặp giữa các văn bản” mong rằng sẽ đem đến cái nhìn
đầu tiên cho người đọc về những hướng tiếp cận nhằm giải quyết một vấn đề còn
mới mẻ nhưng cũng rất cấp thiết này.

5. Giải quyết bài toán
Các kỹ thuật phát hiện văn bản trùng lặp đã tồn tại rất phong phú, nhưng có
một nét chung cơ bản: chúng đều chia văn bản thành các đoạn nhỏ, rồi dùng một
phép biến đổi (thường là dùng hàm băm) để lấy “chữ ký” trên các đoạn văn đó.

3


“Chữ ký” của toàn bộ văn bản được xây dựng từ các “chữ ký” bộ phận. Phép so
sánh hai văn bản sẽ được tiến hành bằng việc đối sánh hai “chữ ký” văn bản. Mức
độ sai khác giữa hai “chữ ký” sẽ là thước đo cho sự sai khác giữa hai văn bản. Nói
chung, để cho các kết quả so sánh là chính xác, “chữ ký” của văn bản phải biểu diễn
được nội dung của văn bản nhiều nhất có thể.
Hiện nay có hai hướng tiếp cận trong việc phát hiện các văn bản trùng lặp:
Phát hiện các văn bản gần trùng (Near-Duplicate Detection –NND) và phát hiện sự
tái sử dụng văn bản cục bộ (Local Text Reuse Detection – LTRD). Đây là hai trong
số những phương pháp phát hiện văn bản trùng lặp mới nhất mà được các nhà
nghiên cứu đưa ra. Chúng cũng được kiểm nghiệm cho độ chính xác khá cao đối
với nhiều loại văn bản.
Ý tưởng chính của phương pháp NND là sử dụng một hàm băm một văn bản
thành một giá trị băm tương ứng với văn bản đó. Giá trị băm đó sẽ là “chữ ký” đại
diện cho văn bản. Các giá trị băm còn được gọi là dấu vân tay của văn bản. Hàm
băm được sử dụng ở đây là simhash. Đây là một hàm băm đặc biệt có tính chất là
với các văn bản gần trùng các dấu vân tay tương ứng của chúng chỉ sai khác nhau ở
số lượng nhỏ các bit. Với tính chất này, việc đo độ giống nhau giữa hai văn bản đơn
giản chỉ là xác định số bit khác nhau giữa hai dấu vân tay tương ứng.
Khác với NND, trong LTRD, “chữ ký” của một văn bản là một tập các dấu
vân tay. Mỗi dấu vân tay là giá trị băm của một đoạn trong văn bản. Việc so sánh 2
văn bản được thay bằng so sánh 2 tập dấu vân tay tương ứng. Số lượng dấu vân tay
chung của cả 2 tập sẽ quyết định độ giống nhau của 2 văn bản. Điểm mạnh của
LTRD là ngoài việc xác định mối quan hệ giữa 2 văn bản, phương pháp còn chỉ ra
được chính xác các đoạn văn chung giữa 2 văn bản đó. Để giải quyết vấn đề về quy
mô của tập văn bản trong các SE (Search Engine), mỗi phương pháp phát hiện văn
bản trùng khác nhau thì có cách làm khác nhau, tuỳ thuộc vào bản chất của các
phương pháp. Nhưng nhìn chung, các phương pháp sẽ tìm cách tổ chức việc lưu trữ

“chữ ký” của các văn bản một cách tối ưu nhất để sao cho với một “chữ ký” của văn
bản mới thì số lượng “chữ ký” của các văn bản có trong tập được chọn để so sánh là
4


ít nhất có thể. Đối với phương pháp NDD, ta xây dựng thành nhiều bảng, với mỗi
bảng là tập các dấu vân tay hoán vị của các dấu vân tay đã có ứng với một phép
hoán vị. Số lượng các bảng sẽ được tính toán kỹ để sao cho trung hoà được yêu cầu
về thời gian tìm kiếm với yêu cầu về dung lượng lưu trữ. Đối với phương pháp
LTRD, các tập dấu vân tay của các văn bản được lưu trữ dưới dạng chỉ mục ngược
(Inverted Index), là kỹ thuật lưu cơ bản của các SE. Kỹ thuật lưu trữ này tuy đơn
giản nhưng mang lại hiệu quả khá cao về mặt thời gian.

5


CHƯƠNG 1. CÁC PHƯƠNG PHÁP ĐO ĐỘ TƯƠNG ĐỒNG
VĂN BẢN
1.1 Giới thiệu về xử lý ngôn ngữ tự nhiên
1.1.1 Xử lý ngôn ngữ tự nhiên - natural language processing - NLP
Xử lý ngôn ngữ tự nhiên 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

1.1.2 Các bước xử lý


Phân tích hình thái - Trong bước này từng từ sẽ được phân tích và các ký tự
không phải chữ (như các dấu câu) sẽ được tách ra khỏi các từ. Trong tiếng

Anh và nhiều ngôn ngữ khác, các từ được phân tách với nhau bằng dấu cách.
Tuy nhiên trong tiếng Việt, dấu cách được dùng để phân tách các tiếng (âm
tiết) chứ không phải từ. Cùng với các ngôn ngữ như tiếng Trung, tiếng
Hàn,tiếng Nhật, phân tách từ trong tiếng Việt là một công việc không hề đơn
giản.



Phân tích cú pháp - Dãy các từ sẽ được biến đổi thành các cấu trúc thể hiện
sự liên kết giữa các từ này. Sẽ có những dãy từ bị loại do vi phạm các luật
văn phạm.



Phân tích ngữ nghĩa - Thêm ngữ nghĩa vào các cấu trúc được tạo ra bởi bộ
phân tích cú pháp.



Tích hợp văn bản - Ngữ nghĩa của một câu riêng biệt có thể phụ thuộc vào
những câu đứng trước, đồng thời nó cũng có thể ảnh hưởng đến các câu phía
sau.



Phân tích thực nghĩa - Cấu trúc thể hiện điều được phát ngôn sẽ được thông
dịch lại để xác định nó thật sự có nghĩa là gì.

6



Tuy nhiên, ranh giới giữa 5 bước xử lý này cũng rất mong manh. Chúng có thể
được tiến hành từng bước một, hoặc tiến hành cùng lúc - tùy thuộc vào giải thuật và
ngữ cảnh cụ thể.

1.2 Tiền xử lý văn bản
Trước khi bắt đầu quá trình biểu diễn văn bản, người ta tiến hành bước tiền
xử lý văn bản. Đây là bước hết sức quan trọng vì nó có nhiệm vụ làm giảm số lượng
từ có trong biểu diễn văn bản và qua đó sẽ làm giảm kích thước dữ liệu trong biểu
diễn văn bản.

1.2.1 Bước phân tích từ vựng
Bước phân tích từ vựng nhằm xác định các từ có trong văn bản. Kết quả của
công việc này là cho ra một tập các từ riêng biệt. Tuy nhiên trong nhiều trường hợp
cần có cách đối xử riêng biệt đối với một số từ đặc biệt, chẳng hạn như số, dấu
ngoặc, dấu chấm câu và trường hợp chữ hoa, chữ thường. Ví dụ về cách ứng xử đặc
biệt, số thường loại ra trong khi phân tích vì một mình nó không mang lại một ý
nghĩa nào cho tài liệu (ngoại trừ một vài trường hợp đặc biệt, ví dụ trong thu thập
thông tin về lĩnh vực lịch sử). Dấu chấm câu, ví dụ như “.”, “?”, “!”, “-”, v.v… cũng
thường được loại ra mà không có ảnh hưởng gì đến nội dung của tài liệu. Tuy nhiên
cần phải chú ý trong một vài trường hợp, chẳng hạn như đối với từ ghép nối (véctơ) là không được phép bỏ dấu “-”, vì sẽ làm thay đổi nghĩa của từ.

1.2.2 Bước loại bỏ từ dừng
Từ dừng (stop-words) dùng để chỉ các từ mà xuất hiện quá nhiều trong các
văn bản của tập đoàn kết quả, thường thì không giúp ích gì trong việc phân biệt nội
dung của các tài liệu[8]. Ví dụ, những từ “web”, “site”, “link”, “www”, v.v…
thường xuất hiện trong hầu hết các văn bản thì được gọi là “stop-word”. Ngoài ra,
trong tiếng Anh, có nhiều từ chỉ dùng để phục vụ cho biểu diễn cấu trúc chứ không
biểu đạt nội dung của nó như là “a”, “the” (mạo từ), “in” (giới từ), “but” (liên từ),
động từ phổ biến có dạng “to”, “be” và một số trạng từ và tính từ đặc biệt cũng

được xem là những từ dừng (stop-words).
7


Vì đặc điểm của từ dừng nên chúng được loại bỏ mà không làm ảnh hưởng
đến các công việc biểu diễn văn bản tiếp theo.
Bảng danh sách một số từ dừng trong tiếng Anh:
A, able, about, after, again, all, almost, also, am, and, are, as, at, be, because,
been, before, below, best, but, by, came, can, cannot, clearly, come, consider, could,
despite, did, do, does, during, each, else, enough, ever, except, few, for, former,
from, get, goes, going,…
Danh sách một số từ dừng trong tiếng Việt:
Và, hoặc, cũng, là, mỗi, bởi,…

1.2.3 Bước loại bỏ từ có tần số thấp
Khi quan sát văn bản, người ta để ý thấy rằng: Có nhiều từ trong tập văn bản
gốc xuất hiện rất ít lần và chúng sẽ có ảnh hưởng rất ít trong văn bản. Vì vậy vấn đề
đặt ra là cần loại bỏ những từ có tần suất xuất hiện nhỏ. Người ta áp dụng phương
pháp được đưa ra bởi Zipf năm 1949: quan sát tần suất xuất hiện của các từ trong
tập văn bản.
Gọi tần số xuất hiện của từ khóa t trong tập X là ft. Sắp xếp tất cả các từ khóa
trong tập hợp theo chiều giảm dần của tần số f, và gọi thứ hạng của mỗi từ khóa t là
rt. Định luật Zipf được phát biểu dưới dạng công thức sau:
(1.1)

Ft.rt ≈ K

Trong đó, K là một hằng số. Nếu N là tổng số từ trong văn bản thì người ta
thấy rằng:
(1.2)


K ≈ N/10

Như vậy, tần số xuất hiện và thứ hạng của một từ khóa là hai đại lượng
nghịch đảo của nhau. Để thấy rõ hơn điều này, người ta đã biểu diễn lại định luật
Zipf theo công thức sau:
(1.3)

Rt ≈ K/ft

1.2.4 Bước loại bỏ tiền tố và hậu tố
Loại bỏ tiền tố và hậu tố (tiếng Anh là Stemming) tiến hành việc loại bỏ tiền
tố và hậu tố để biến đổi nó thành từ gốc. Vì trong thực tế một số từ gốc có thể có
8


nhiều hình thái biến đổi, chẳng hạn như động từ, danh từ, tính từ, trạng từ và giữa
chúng có mối quan hệ ngữ nghĩa. Do vậy, cần phải loại bỏ tiền tố và hậu tố để làm
giảm được số lượng từ mà vẫn không làm ảnh hưởng đến nội dung của tài liệu.
Tuy nhiên, tồn tại một vấn đề thiếu sót xảy ra khi loại bỏ tiền tố và hậu tố, vì
thuật toán này sử dụng một tập các quy tắc đơn giản để loại bỏ tiền tố/hậu tố. Do
vậy, nó có thể sinh ra các từ không chính xác. Ví dụ như “computing”,
“computation” sau khi loại bỏ hậu tố sẽ chỉ còn là “comput” trong khi đó từ đúng
phải là “compute”.

1.3 Các phương pháp biểu diễn văn bản
1.3.1 Mô hình logic
Theo mô hình này các từ có nghĩa trong văn bản sẽ được đánh chỉ số và nội
dung văn bản được quản lý theo các chỉ số index đó.
Các quy tắc lưu trữ

Mỗi văn bản được đánh chỉ số theo quy tắc:
Liệt kê các từ có nghĩa trong văn bản với vị trí xuất hiện của nó trong văn
bản. Từ có nghĩa là từ mang thông tin chính về các văn bản lưu trữ, khi nhìn vào nó
người ta có thể biết chủ đề của văn bản cần được biểu diễn.
Tiến hành index các văn bản đưa vào theo danh sách các từ khóa nói trên.
Với mỗi từ khóa người ta sẽ đánh số thứ tự vị trí xuất hiện của nó và lưu lại chỉ số
đó cùng với mã văn bản chứa nó. Cách biểu diễn này cũng được các máy tìm kiếm
ưu dùng.
Ví dụ, có hai đoạn văn bản với mã tương ứng là VB1, VB2.
“Cộng hòa xã hội chủ nghĩ Việt Nam” (VB1)
“Việt Nam dân chủ cộng hòa” (VB2)
Khi đó ta có cách biểu diễn như sau:
Bảng 1-1 Biểu diễn văn bản theo mô hình logic

Từ mục

Mã VB,Vị trí XH

Cộng

VB1(1), VB2(5)

Hòa

VB1(2), VB2(6)
9





VB1(3)

Hội

VB1(4)

Chủ

VB1(5), VB2(4)

Nghĩa

VB1(6)

Các quy tắc tìm kiếm
Khi biểu diễn văn bản theo phương pháp này người ta đưa ra cách tìm kiếm
như sau:
Câu hỏi tìm kiếm được đưa ra dưới dạng Logic, tức là gồm một tập hợp các
phép toán (AND, OR,…) được thực hiện trên các từ hoặc cụm từ. Việc tìm kiếm sẽ
dựa vào bảng Index đã tạo ra và kết quả trả lại là các văn bản thỏa mãn toàn bộ các
điều kiện trên.
Ưu, nhược điểm
Ưu điểm



-

Việc tìm kiếm trở nên nhanh và đơn giản
Thực vậy, giả sử tìm kiếm từ “computer”. Hệ thống sẽ duyệt trên bảng Index


để trỏ đến chỉ số Index tương ứng, nếu từ “computer” tồn tại trong hệ thống. Việc
tìm này khá nhanh và đơn giản khi đó ta đã sắp xếp bảng Index theo vần chữ cái.
Phép tìm kiếm trên có độ phức tạp cấp O(nlog2n), với n là số từ trong bảng Index.
Tương ứng với chỉ số index trên sẽ cho ta biết các tài liệu chứa từ khóa tìm kiếm.
Như vậy, việc tìm kiếm liên quan đến k từ thì phép toán cần thực hiện là k*n*log2n
với n là số từ trong bảng Index.
-

Câu hỏi tìm kiếm linh hoạt:
Người ta có thể sử dụng các ký tự đặc biệt trong câu hỏi tìm kiếm mà không

làm ảnh hưởng đến độ phức tạp của phép tìm kiếm. Ví dụ muốn tìm từ “ta” thì kết
quả sẽ trả lại các văn bản có chứa các từ “ta”, “tao”, “tay”,… là các từ bắt đầu bằng
từ “ta”.
Ký tự % được gọi là ký tự đại diện (wildcard character).
Ngoài ra, bằng các phép toán Logic các từ tìm có thể tổ chức thành các câu
hỏi một cách linh hoạt. Ví dụ: Cần tìm từ [tôi, ta, tao], dấu “[]” sẽ thay cho nghĩa
10


các từ “hoặc” – thể hiện việc tìm kiếm trên một trong số nhiều từ trong nhóm. Đây
thực ra là một cách thể hiện linh hoạt phép toán OR trong đại số Logic thay vì phải
viết là: Tìm các tài liệu có chứa từ “tôi” hoặc từ “ta” hoặc “tao”[5].
Nhược điểm



Đòi hỏi người tìm kiếm phải có kinh nghiệm và chuyên môn trong lĩnh vực
tìm kiếm vì câu hỏi đưa vào dưới dạng Logic nên kết quả trả lại cũng có giá trị

Logic (Boolean). Một số tài liệu sẽ được trả lại khi thỏa mãn mọi điều kiện đưa ra.
Như vậy muốn tìm được tài liệu theo nội dung thì phải biết đích xác về tài liệu.
Việc Index các tài liệu rất phức tạp và làm tốn nhiều thời gian, đồng thời
cũng tốn không gian để lưu trữ các bảng Index.
Các tài liệu tìm được không được sắp xếp theo độ chính xác của chúng. Các
bảng Index không linh hoạt vì khi các từ vựng thay đổi (thêm, xóa,…) thì dẫn tới
chỉ số Index cũng phải thay đổi theo.

1.3.2 Mô hình phân tích cú pháp
-

Các quy tắc lưu trữ
Trong các mô hình này, mỗi văn bản đều phải được phân tích cú pháp và trả

lại thông tin chi tiết về chủ đề của văn bản đó. Sau đó, người ta tiến hành Index các
chủ đề của từng văn bản. Các index trên chủ đề cũng giống như khi index trên các
văn bản nhưng chỉ index trên các từ xuất hiện trong chủ đề.
Các văn bản được quản lý thông qua các chủ đề này để có thể tìm kiếm được
khi có yêu cầu, câu hỏi tìm kiếm sẽ dựa trên các chủ đề trên.
-

Các quy tắc tìm kiếm
Tiến hành tìm kiếm bằng cách dựa vào các chủ đề đã được index ở trên. Câu

hỏi đưa vào có thể được phân tích cú pháp để trả lại một chủ đề và tìm kiếm trên
chủ đề đó.
Như vậy bộ phận xử lý chính đối với một hệ CSDL xây dựng theo mô hình
này chính là hệ thống phân tích cú pháp và đoán nhận nội dung văn bản.
-


Ưu, nhược điểm
11


o Ưu điểm
Tìm kiếm theo phương pháp này khá hiệu quả và đơn giản, do tìm kiếm
nhanh và chính xác.
Đối với những ngôn ngữ đơn giản về mặt ngữ pháp thì việc phân tích trên có
thể đạt được mức độ chính xác cao và chấp nhận được.
o Nhược điểm
Chất lượng của hệ thống theo phương pháp này hoàn toàn phụ thuộc vào chất
lượng của hệ thống phân tích cú pháp và đoán nhận nội dung tài liệu. Trên thực tế,
việc xây dựng hệ thống này là rất phức tạp, phụ thuộc vào đặc điểm của từng ngôn
ngữ và đa số vẫn chưa đạt đến độ chính xác cao.

1.3.3 Mô hình không gian véc-tơ
Cách biểu diễn văn bản thông dụng nhất là thông qua véc-tơ biểu diễn theo
mô hình không gian véc-tơ (Vector Space Model). Đây là một cách biểu diễn tương
đối đơn giản và hiệu quả.
Các quy tắc lưu trữ
Mô hình không gian véc-tơ (Vector Space Model) [13]là một mô hình đại số
(algebraic model) thể hiện thông tin văn bản như một vector, các phần tử của vector
này thể hiện mức độ quan trọng của một từ và cả sự xuất hiện hay không xuất hiện
của nó trong một tài liệu.
Mô hình này biểu diễn văn bản như những điểm trong không gian Ơ-Clid nchiều, mỗi chiều tương ứng với một từ trong tập hợp các từ. Phần tử thứ i, là di của
vector văn bản cho biết số lần mà từ thứ i xuất hiện trong văn bản. Sự tương đồng
của hai văn bản được định nghĩa là khoảng cách giữa các điểm, hoặc là góc giữa
những vector trong không gian.
Mặc dù đơn giản, nhưng mô hình không gian vector và những biến thể của
nó hiện nay vẫn là cách phổ biến để biểu diễn văn bản trong Data mining và

Information retrieval. Tuy nhiên, một trong những điểm yếu của vector space model
số chiều lớn (high-dimensonal), có khoảng cỡ chục triệu chiều trong không gian
vector nếu như chúng ta áp dụng nó vào web search engine.
12


Hình 1-1 Mô hình không gian véc-tơ theo biểu diễn của Christian S. Perone[13]

[13] Giả sử ta có một văn bản và nó được biểu diễn bởi véc-tơ V(v1, v2,…
vn). Trong đó, vi là số lần xuất hiện của từ khóa thứ i trong văn bản. ta xét 2 văn bản
sau:
VB1: Life is not only life
VB2: To life is fight
Sau khi bước qua tiền xử lý văn bản, ta biểu diễn chúng như sau:
Bảng 1-2 Biểu diễn văn bản theo mô hình không gian véc-tơ

Từ

Véc-tơ_VB1

Véc-tơ_VB2

Life

2

1

Fight


0

1

Only

1

0

Trong các cơ sở dữ liệu văn bản, mô hình véc-tơ là mô hình biểu diễn văn
bản được sử dụng phổ biến nhất hiện nay. Mối quan hệ giữa các trang văn bản được
thực hiện thông qua việc tính toán trên các véc-tơ biểu diễn vì vậy được thi hành
khá hiệu quả. Đặc biệt, nhiều công trình nghiên cứu về mối quan hệ “tương tự
nhau” giữa các trang web (một trong những quan hệ điển hình nhất giữa các trang
web) dựa trên mô hình biểu diễn véc-tơ.

13


1.3.4 Mô hình Boolean
Một mô hình biểu diễn véc-tơ với hàm f cho ra giá trị rời rạc với duy nhất hai
giá trị đúng và sai (true và false, hoặc 0 và 1) gọi là mô hình boolean. Hàm f tương
ứng với từ khóa ti sẽ cho ra giá trị đúng nếu và chỉ nếu từ khóa ti xuất hiện trong văn
bản đó.
Mô hình boolean được xác định như sau:
Giả sử có một cơ sở dữ liệu gồm m văn bản, D={d1, d2, … dm}. Mỗi văn bản
được biểu diễn dưới dạng một véc-tơ n từ khóa T={t1, t2, …tn}. Gọi W={wij} là ma
trận trọng số, trong đó wij là giá trị trọng số của từ khóa ti trong văn bản dj.


1݊ế‫ݐݑ‬௜ ܿó݉ặ‫݀݃݊݋ݎݐݐ‬௝
ܹ௜௝ = ൜
0݊ế‫݃݊ݑ‬ượ݈ܿạ݅

(1.4)

Trở lại với 2 văn bản trên, áp dụng mô hình boolean ta có thể biểu diễn như

Bảng 1-3:
Bảng 1-3 Biểu diễn văn bản theo mô hình Boolean

Từ

Véc-tơ_VB1

Véc-tơ_VB2

Life

1

1

Fight

0

1

Only


1

0

1.3.5 Phương pháp dựa trên miền tần số từ khóa (TF-Term Frequency)
Các giá trị wij được tính dựa trên tần số (hay số lần) xuất hiện của từ khóa
trong văn bản. Gọi fij là số lần xuất hiện của từ khóa ti trong văn bản dj, khi đó wij
được tính bởi một trong ba công thức:
Wij=fij
Wij= 1+log(fij)

(1.5)

ܹ௜௝ = ට݂௜௝

14


Trong phương pháp này, trọng số wij tỷ lệ thuận với tần số xuất hiện của từ
khóa ti trong văn bản dj. Khi số lần xuất hiện từ khóa ti, hay nói cách khác từ khóa ti
mang nhiều thông tin trong văn bản dj.
Ví dụ, khi văn bản xuất hiện nhiều từ khóa máy tính, điều đó có nghĩa là văn
bản đang xét chủ yếu liên quan đến lĩnh vực tin học.
Những suy luận trên không phải lúc nào cũng đúng. Một ví dụ điển hình là từ
“và” xuất hiện nhiều trong hầu hết văn bản, nhưng trên thực tế từ này lại không
mang nhiều ý nghĩa như tần suất xuất hiện của nó. Hoặc có những từ không xuất
hiện trong văn bản này nhưng lại xuất hiện trong văn bản khác, khi đó ta sẽ không
tính được giá trị của log(fij). Một phương pháp khác ra đời khắc phục được nhiều
nhược điểm của phương pháp TF, đó là phương pháp IDF.


1.3.6 Phương pháp dựa trên nghịch đảo tần số văn bản (IDF-Inverse
Document Frequency)
Trong phương pháp này, giá trị wij được tính theo công thức sau:

ܹ௜௝ = ൜

logሺ݉ሻ − logሺℎ௜ ሻ ݊ế‫ݐݑ‬ừ݇ℎóܽ‫ݐ‬௜ ‫ݑݔ‬ấ‫ݐ‬ℎ݅ệ݊‫ݐ݃݊݋ݎݐ‬à݈݅݅ệ‫݀ݑ‬௝
0݊ế‫݃݊ݑ‬ượ݈ܿạ݅

(1.6)

Trong đó m là số lượng văn bản và hi là số lượng văn bản mà từ khóa ti xuất

hiện.
Trọng số wij trong công thức này được tính dựa trên độ quan trọng của từ
khóa ti trong văn bản dj. Nếu ti xuất hiện trong càng ít văn bản, điều đó có nghĩa là
khi nó xuất hiện trong văn bản dj thì trọng số của nó đối với văn bản dj càng lớn hay
nó là điểm quan trọng để phân biệt văn bản dj với các văn bản khác và hàm lượng
thông tin trong nó càng lớn.

1.3.7 Phương pháp TFxIDF
Phương pháp này là tổng hợp của hai phương pháp TF và IDF, giá trị của ma
trận trọng số được tính như sau:

15


ܹ௜௝


݉
ሺ1 + log൫݂௜௝ ሻ൯ log ൬ ൰ ݊ế‫݂ݑ‬௜௝ ≥ 1
ℎ௜
=ቐ
0݊ế‫݃݊ݑ‬ượ݈ܿạ݅

(1.7)

Đây là phương pháp kết hợp được ưu điểm của cả hai phương pháp trên.

Trọng số wij được tính bằng tần số xuất hiện của từ khóa ti trong văn bản dj và độ
hiếm của từ khóa ti trong toàn bộ cơ sở dữ liệu.
-

Các quy tắc tìm kiếm
Các câu hỏi đưa vào sẽ được ánh xạ véc-tơ Q(q1, q2,… qm) theo hệ số của các

từ vựng trong nó là khác nhau. Tức là: khi từ vựng càng có ý nghĩa đối với nội dung
cần tìm thì nó có hệ số càng lớn.
Qi=0 khi từ vựng đó không phụ thuộc danh sách những từ cần tìm.
Qi<>0 khi từ vựng đó thuộc danh sách các từ cần tìm.
Khi đó, cho một hệ thống các từ vựng ta sẽ xác định được các véc-tơ tương
ứng với từng tài liệu và ứng với mỗi câu hỏi đưa vào ta sẽ có một véc-tơ tương ứng
với nó cùng những hệ số đã được xác định từ trước. Việc tìm kiếm và quản lý sẽ
được thực hiện trên tài liệu này.
-

Ưu, nhược điểm

o Ưu điểm

Các tài liệu trả lại có thể được sắp xếp theo mức độ liên quan đến nội dung
yêu cầu do trong phép thử mỗi tài liệu đều trả lại chỉ số đánh giá độ liên quan của
nó đến nội dung.
Việc đưa ra các câu hỏi tìm kiếm là dễ dàng và không yêu cầu người tìm
kiếm có trình độ chuyên môn cao về vấn đề đó.
Tiến hành lưu trữ và tìm kiếm đơn giản hơn phương pháp Logic.
o Nhược điểm
Việc tìm kiếm tiến hành chậm khi hệ thống các từ vựng là lớn do phải tính
toán trên toàn bộ các véc-tơ của tài liệu.

16


Khi biểu diễn các véc-tơ với các hệ số là số tự nhiên sẽ làm tăng mức độ
chính xác của việc tìm kiếm nhưng làm tốc độ tính toán giảm đi rất nhiều do các
phép nhân véc-tơ phải được tiến hành trên các số tự nhiên hoặc số thực, hơn nữa
việc lưu trữ các véc-tơ sẽ tốn kém và phức tạp.
Hệ thống không linh hoạt khi lưu trữ các từ khóa. Chỉ cần thay đổi rất nhỏ
trong bảng từ vựng sẽ kéo theo hoặc là véc-tơ hóa lại toàn bộ các tài liệu lưu trữ,
hoặc là sẽ bỏ qua các từ có nghĩa bổ sung trong các tài liệu được mã hóa trước đó.
Một nhược điểm nữa, chiều của mỗi véc-tơ theo cách biểu diễn này là rất
lớn, bởi vì chiều của nó được xác định bằng số lượng các từ khác nhau trong tập
hợp văn bản. Ví dụ số lượng các từ có thể có từ 103 đến 105 trong tập các văn bản
nhỏ, còn trong các tập hợp các văn bản lớn thì số lượng sẽ nhiều hơn, đặc biệt là
môi trường web.

1.4 Thuật toán Tokenizer
Tiếng Việt không sử dụng các hình thái (morpheme) để tạo ra các ý nghĩa
của từ (trong tiếng Anh, cup => cups thì 's' là hình thái số nhiều)[2].
Vì thế trong tiếng Việt, các từ không bị thay đổi. Để tạo ra các sắc thái ý

nghĩa khác nhau, tiếng Việt phụ thuộc vào trật tự của từ.
Ví dụ 1.1: với năm âm tiết (năm từ đơn): "sao, nó, bảo, không, đến" khi sắp
xếp theo các trật tự khác nhau sẽ cho ra các nghĩa khác nhau.
Sao Nó Bảo Đến Không Sao nó không đến bảo ? Sao? Nó bảo đến không?
Sao nó đến không bảo? Sao bảo nó không đến? Sao? bảo nó đến không? Sao? Bảo
nó đến không? Sao bảo không đến nó? Sao? Đến bảo nó không? Sao đến không bảo
nó? Sao đến nó bảo không? Sao không đến bảo nó? Sao không bảo nó đến?
Nó bảo sao không đến? Nó bảo không đến sao? Nó đến, sao không bảo? Nó
đến, không bảo sao? Nó đến, sao bảo không? Nó đến bảo không sao! Nó đến, bảo
sao không? Nó không bảo, sao đến? Nó không bảo đến sao? Nó không đến bảo
sao?

17


Bảo sao nó không đến? Bảo! Sao không đến nó? Bảo nó sao không đến? Bảo
nó: đến không sao. Bảo nó đến sao không? Bảo nó không đến sao? Bảo đến sao nó
không? Bảo đến nó không sao! Bảo không, sao nó đến? Bảo! Không đến nó sao?
Đến! Sao nó bảo không? Đến! Sao bảo nó không? Đến nó bảo không sao.
Đến nó không bảo sao. Đến nó sao không bảo? Đến bảo nó không sao! Đến bảo
sao nó không… Đến không bảo nó sao? Đến không? Bảo sao nó...
Không sao! Bảo nó đến. Không! Nó bảo sao đến? Không! Nó đến bảo sao?
Không bảo sao nó đến? Không bảo nó đến sao? Không đến sao nó bảo? Không đến
bảo nó sao.
Mặt khác, dấu cách (space) trong tiếng Việt không có tác dụng phân tách các
từ như tiếng Anh mà chỉ có tác dụng phân tách các tiếng (âm tiết) mà thôi. Vì thế
việc phân tách từ trong tiếng Việt là một việc không thể thiếu.

1.4.1 Đặc trưng của tiếng Việt
Hướng tới chuẩn tách từ - ISO/TC37/SC4/WG2/WordSeg

WG2/WordSeg[1-3] về vấn đề chuẩn hoá tách từ cho các ngôn ngữ trong đó
ranh giới giữa các từ không thể xác định rõ ràng chỉ dựa vào hình thức in ấn (như sử
dụng dấu cách trong tiếng Anh)[12].
Đặc trưng cấu tạo từ tiếng Việt
Các phương thức cấu tạo từ tiếng Việt:
-

Từ đơn:
o Từ có ý nghĩa từ vựng.
o Từ có ý nghĩa ngữ pháp (từ công cụ).
o Từ tượng thanh.
o Từ cảm thán.

-

Từ phức:
o Từ ghép.
Từ ghép đẳng lập (tổng hợp).
Từ ghép chính phụ.

18


Từ ghép phụ gia (yếu tố ghép trước hay ghép sau để tạo từ
hàng loạt).
o Từ láy.
o Dạng lặp.
-

Ngữ cố định:

o Thành ngữ (cao chạy xa bay, tránh vỏ dưa gặp vỏ dừa…).
o Quán ngữ (nói tóm lại, đáng chú ý là, mặt khác thì…).

-

Ngoài ra, trong văn bản còn có các thành phần sau:
o Tên riêng (người, địa danh, tổ chức).
o Các dạng ngày – tháng – năm.
o Các dạng số – chữ số – kí hiệu.
o Dấu câu, dấu ngoặc.
o Từ tiếng nước ngoài.
o Chữ viết tắt.
Đề xuất nguyên tắc tách từ cho tiếng Việt
Nguyên tắc tách từ cho tiếng Việt xét các loại đơn vị từ vựng sau đây:

-

Từ đơn.

-

Từ ghép đẳng lập.

-

Từ ghép chính phụ.

-

Từ ghép phụ gia (kết hợp với yếu tố cấu tạo từ: bất, vô, hoá,

phi, viên, v.v.).

-

Từ láy, dạng lặp.

-

Thành ngữ.

-

Quán ngữ.

-

Tên riêng.

-

Ngày – tháng – năm, số – chữ số – kí hiệu.

-

Dấu câu, ngoặc.

-

Từ tiếng nước ngoài.


-

Chữ viết tắt.
19


×