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

PHÂN LOẠI DỮ LIỆU BÁO CHÍ TRỰC TUYẾN ĐỂ ĐIỀU HƯỚNG THÔNG TIN THEO THỊ HIẾU ĐỘC GIẢ

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 (893.98 KB, 53 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

ĐỖ DUY TIẾN

PHÂN LOẠI DỮ LIỆU BÁO CHÍ TRỰC TUYẾN ĐỂ
ĐIỀU HƯỚNG THÔNG TIN THEO THỊ HIẾU ĐỘC GIẢ
CHUYÊN NGÀNH : KHOA HỌC MÁY TÍNH
MÃ SỐ:

60.48.01.01 (Khoa học máy tính)

LUẬN VĂN THẠC SĨ KỸ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN MẠNH HÙNG

HÀ NỘI – 2015


LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố
trong bất kỳ công trình nào khác.

TÁC GIẢ LUẬN VĂN

ĐỖ DUY TIẾN


LỜI CẢM ƠN
Trong suốt quá trình học tập cũng như thực hiện đồ án này, tôi đã nhận được


rất nhiều những sự quan tâm giúp đỡ, hưỡng dẫn tận tình của các thầy cô cùng với
những lời động viên khuyến khích từ phía gia đình, bạn. Tôi xin bày tỏ lời cảm ơn
chân thành đến tất cả mọi người.
Tôi xin tỏ lòng biết ơn sâu sắc đến thầy Nguyễn Mạnh Hùng đã tận tình
hướng dẫn, định hướng cho tôi trong quá trình thực hiện đề tài. Thầy cho tôi
những lời khuyên, chỉ dẫn, truyền đạt cho tôi những kiến thức, kinh nghiệm về
việc thực hiện đồ án.
Tôi xin cảm ơn các thầy cô trong khoa Quốc tế và đào tạo sau đại học, học
viện Công nghệ Bưu chính Viễn thông đã tận tình dạy dỗ và cho tôi những kiến
thức bổ ích trong suốt quá trình hai năm học tập, giúp tôi nâng cao được chuyên
môn, làm nền tảng để tôi có thể hoàn thành khóa luận, cũng như tự tin phát triển
công việc sau này.
Cuối cùng, tôi muốn gửi lời cảm ơn tới gia đình và bạn bè, những người thân
đã luôn ở bên, cảm thông, hỗ trợ, giúp đỡ tôi những khó khăn trong công việc,
cuộc sống cũng như trong quá trình học tập.
Hà Nội, tháng 12 năm 2015
Đỗ Duy Tiến


4

MỤC LỤC


5

DANH MỤC HÌNH VẼ VÀ SƠ ĐỒ


6


DANH MỤC BẢNG BIỂU


7

MỞ ĐẦU
Ngày nay, công nghệ ngày càng phát triển, internet được phủ sóng khắp mọi
nơi. Nhà nhà, người người đều sở hữu những thiết bị di động như điện thoại, máy
tính bảng… để cập nhật thường xuyên những thông tin, sự kiện diễn ra trên toàn thế
giới. Tuy nhiên, lượng thông tin quá nhiều, lại lộn xộn, không có sự sắp xếp khiến
mọi người gặp khó khăn trong việc thu thập. Mỗi ngày họ phải săn tìm những thông
tin hữu ích, những kiến thức mà họ mong muốn trong một đống dữ liệu khổng lồ
dẫn tới việc bỏ sót những thông tin quý giá hay tiêu phí quá nhiều thời gian vào
những thông tin không cần thiết.
Vấn đề này được đặt ra như một thách thức lớn đối với những website báo
điện tử. Việc có thể cung cấp những thông tin hữu ích đối với từng đối tượng độc
giả đang ngày càng trở nên cấp bách. Tuy nhiên, điều khó khăn nhất mà các website
báo điện tử đang gặp phải là số lượng độc giả quá lớn, khối lượng thông tin quá
nhiều, việc phân loại thủ công gần như không thể. Đòi hỏi phải có một hệ thống có
thể tự động thu thập, phân tích và phân loại bạn đọc, phân loại thông tin. Do đó, tôi
lựa chọn đề tài: “Phân loại dữ liệu báo chí trực tuyến để điều hướng thông tin
theo thị hiếu độc giả” nhằm tìm hiểu và xây dựng một quá trình thu thập, phân tích
dữ liệu bạn đọc để từ đó phân loại ra thành các nhóm nhỏ, sau đó rút trích những
thông tin hữu ích phù hợp với từng nhóm riêng biệt đó.
Nội dung luận văn gồm 3 chương:
Nội dung đồ án được trình bày thành ba chương theo cấu trúc như sau:
Chương 1: Tổng quan về bài toán phân loại dữ liệu báo chí trực tuyến
Trình bày tổng quan về phân loại dữ liệu báo chí trực tuyến: phân loại
độc giả và tin tức theo loại độc giả cùng với các hướng tiếp cận để giải quyết

bài toán.
Chương 2: Thuật toán K – láng giềng gần nhất


8

Trình bày cơ sở lý thuyết của thuật toán K – láng giềng gần nhất. Từ
đó áp dụng vào để giải quyết bài toán phân loại tin tức bài báo theo thị hiếu
độc giả.
Chương 3: Phân loại dữ liệu báo chí trực tuyến để điều hướng thông tin
theo thị hiếu độc giả
Trình bày cụ thể về quá trình thực hiện việc xây dựng hệ thống phân
loại dữ liệu báo chí theo thị hiếu độc giả: cơ sở dữ liệu, ứng dụng, các bước
thực nghiệm và kết quả đạt được. Từ đó đưa ra các phân tích, nhận xét.
Kết luận và hướng phát triển
Trình bày tóm tắt những kết quả đã đạt được và chưa đạt được. Từ đó
đề xuất mục tiêu cũng như hướng nghiên cứu, phát triển tiếp theo.


9

CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN PHÂN LOẠI DỮ
LIỆU BÁO CHÍ TRỰC TUYẾN
Chương này trình bày tổng quan về bài toán phân loại báo chí trực tuyến
theo thị hiếu độc giả. Từ đó, luận văn sẽ đưa ra các hướng tiếp cận để giải quyết bài
toán.
1.1.
1.1.1.

Bài toán phân loại dữ liệu báo chí trực tuyến

Phân loại dữ liệu tin tức báo chí
Cùng với sự phát triển vượt bậc của công nghệ thông tin và nhu cầu sử dụng

Internet của con người đã làm tăng vọt lượng thông tin giao dịch trên Internet. Vì
vậy mà văn bản điện tử tăng lên nhanh về số lượng và chủ đề đặc biệt là thư viện
điện tử, tin tức điện tử trên mạng toàn cầu… Báo điện tử cho phép mọi người trên
khắp thế giới tiếp cận tin tức nhanh chóng không phụ thuộc vào không gian và thời
gian, tin tức trên báo điện tử được cập nhật thường xuyên và thông tin từ nhiều
nguồn khác nhau.
Với lượng thông tin đồ sộ như vậy, một yêu cầu lớn đặt ra là làm sao tổ chức
và tìm kiếm tin tức với số lượng lớn và từ nhiều nguồn khác nhau đó vào các chủ đề
tương ứng mà vẫn đảm bảo tính chất “nhanh, cập nhật kịp thời” nhưng phải đảm
bảo một cách chính xác, có hiệu quả nhất. Phân loại thông tin là một trong những
giải pháp hợp lý cho yêu cầu trên. Nhưng một thực tế cho thấy là khối lượng thông
tin quá lớn, việc phân loại dữ liệu thủ công là điều vô cùng khó khăn, không thể
thực hiện bởi bàn tay con người vì số lượng tin tức lớn, dẫn đến cần nhiều nhân lực
gây tốn kém và có thể phân loại không chính xác. Hướng giải quyết cho việc này là
xây dựng một chương trình phân loại thông tin tự động bằng máy tính. Vậy phân
loại thông tin bằng cách nào là hiệu quả nhất giúp người đọc có thể lấy được các tin
tức cần thiết nhất. Luận văn sẽ sử dụng phân loại tin tức theo các nhóm tin mà độc
giả hay đọc.


10

Chúng ta đưa bài toán phân loại báo chí tiếng Việt về bài toán phân lớp văn
bản tiếng Việt. Phân lớp văn bản là bài toán cơ bản trong khai phá dữ liệu văn bản,
là việc gán tên các chủ đề (tên lớp/ nhãn lớp) đã được xác định trước vào các văn
bản dựa trên nội dung của chúng. Ở đây, tên các chủ đề sẽ được xác định theo phân
loại các nhóm độc giả. Ví dụ như, sẽ phân loại các tin tức vào các nhóm độc giả

thích đọc báo thế giới, xã hội, văn hóa, tình yêu ….
1.1.2.

Phân loại độc giả của một website báo chí
Xu hướng "điện tử hóa" báo chí ngày càng mạnh hơn. Báo điện tử có tác

dụng và tiện ích hơn hẳn các loại hình báo chí truyền thống, dung lượng thông tin
rất lớn, tương tác thông tin nhanh, phát hành không bị trở ngại về không gian, thời
gian, biên giới quốc gia. Với báo điện tử, độc giả có thể truy cập được tin tức ở bất
kỳ đâu không phụ thuộc vào môi trường làm việc miễn là máy tính, điện thoại của
họ có kết nối Internet và có cài đặt một trình duyệt web tuân thủ tiêu chuẩn.
Ngược lại thời điểm khi mà số lượng blog, số lượng các trang báo điện tử
trên Internet chưa nhiều và không phải ai cũng được tiếp cận Internet để đọc báo,
khi ấy chúng ta sẽ rất dễ dàng tập hợp các số liệu và đưa ra các kết luận về thói
quen của độc giả. Nhưng bây giờ thì sao? Có hàng triệu người truy cập vào các
trang báo điện tử mỗi ngày. Do đó, việc đưa ra các kết luận thói quen của mỗi độc
giả là không thể. Vậy nên, luận văn tiến hành phân loại độc giả vào các nhóm, mỗi
nhóm độc giả sẽ có chung một thói quen, một sở thích, một nhóm tin tức quan tâm
(ví dụ như nhóm bạn đọc tin xã hội, nhóm bạn đọc tin thế giới,…). Việc làm này
không những giúp các nhà quản trị trang báo quản lý độc giả một cách dễ dàng mà
còn hỗ trợ độc giả cập nhật tin tức nhanh và kịp thời.
Kết hợp việc phân loại độc giả và phân loại dữ liệu tin tức vào các nhóm độc
giả, luận văn sẽ trình bày cách xây dựng ứng dụng hỗ trợ độc giả đọc báo. Đối với
mỗi độc giả khi truy cập vào website đọc báo, hệ thống sẽ xác định được độc giả


11

thuộc nhóm bạn đọc nào và từ đó sẽ hiển thị các tin tức đã được phân vào nhóm độc
giả đó và hiển thị lên.

1.1.3.

Những thách thức trong việc phân loại
Tiếng Việt là ngôn ngữ đơn lập, không biến hình, các ký tự được dựa trên hệ

chữ cái Latin. Văn bản tiếng Việt đặt dấu cách giữa các âm tiết chứ không phải giữa
các từ. Một từ tiếng Việt có thể được tạo bởi, hai hoặc nhiều âm tiết nên có nhiều
cách phân chia các âm tiết thành các từ, gây ra nhập nhằng. Khi cho một câu trong
tiếng Việt, việc tách các âm tiết thành các từ riêng biệt là một công việc cần thiết
nhưng thật sự không đơn giản.
Việc tách từ cần phải chính xác vì đối với các bước xử lý sau như phân tích
ngữ pháp, ngữ nghĩa, một từ bị tách sai có ảnh hưởng toàn bộ đến cách phân tích cả
câu. Từ đó dẫn đến sai số trong quá trình tính toán khoảng cách giữa các văn bản
với nhau.
1.2.

Hướng tiếp cận giải quyết bài toán dựa vào các thuật toán học máy
Để giải quyết bài toán trên đã có rất nhiều phương pháp được đưa ra như:

thuật toán Naïve Bayes, K-NN (K-Nearest Neighbor) [2], cây quyết định (Decision
Tree) [6], mạng Neuron nhân tạo (Artificial Neural Network) và SVM (Support
Vector Machine) [5]. Nhìn chung, mỗi phương pháp đều cho kết quả chấp nhận
được cho bài toán này. Tuy nhiên để đi đến những biện pháp triển khai khả thi thì
vẫn cần đẩy mạnh nghiên cứu. Trong phần này chúng ta sẽ nghiên cứu một số
phương pháp nói trên.
1.2.1.

Phân lớp dựa trên bài toán Naïve Bayes
Naïve Bayes (NB) là phương pháp phân loại dựa vào xác suất được sử dụng


rộng rãi trong lĩnh vực học máy [5]. Phương pháp này thích hợp với những lớp bài
toán đòi hỏi phải dự đoán chính xác lớp của mẫu cần kiểm tra dựa trên những thông
tin từ tập huấn luyện ban đầu. Bài toán phân loại văn bản [5] ở đây là một ví dụ điển
hình cho phương pháp này.


12

Bước 1: Huấn luyện


Các vector đặc trưng của văn bản trong tập huấn luyện (Ma trận MxN, với M



là số vector đặc trưng trong tập huấn luyện, N là số đặc trưng của vector).
Tập nhãn/lớp cho từng vector đặc trưng của tập huấn luyện.
Thực hiện tính xác xuất P(ci):

Trong đó:




: số văn bản của tập huấn luyện thuộc phân lớp i.
T: số văn bản trong tập huấn luyện.
m số phân lớp

Công thức tính đã làm trơn Laplace:


Trong đó:


: Số văn bản trong trong phân lớp i có đặc trưng thứ k mang giá trị x k.




(hay số văn bản trong lớp i, có xuất hiện/không xuất hiện đặc trưng k)
Số văn bản của tập huấn luyện thuộc phân lớp i.
Số giá trị có thể có của đặc trưng thứ k

Bước 2: Phân lớp
Công thức tính xác suất thuộc phân lớp i khi biết trước mẫu X

Dựa vào vector đặc trưng của văn bản cần phân lớp, áp dụng công thức trên
tính xác suất thuộc từng phân lớp cho văn bản, và chọn ra lớp có xác suất cao nhất.
1.2.2.

Phân lớp dựa trên thuật toán K - Nearest Neighbor (K-NN)


13

Thuật toán phân lớp K-NN là một phương pháp truyền thống và khá nổi
tiếng trong hướng tiếp cận dựa trên thống kê, đã được nghiên cứu trong nhận dạng
mẫu trong vài thập kỷ gần đây [5]. Nó được đánh giá là một trong những phương
pháp tốt nhất và được sử dụng ngay từ những thời kỳ đầu của phân lớp văn bản.
Bài toán như sau:
Để phân lớp cho một dữ liệu mới x, trước hết chúng ta phải tính khoảng cách

của x đến các điểm dữ liệu trong tập huấn luyện theo các công thức tính khoảng
cách như là Euclide, Cosine…như sau:
-

Khoảng cách Euclid giữa hai điểm p và q là chiều dài đoạn thẳng . Trong hệ
tọa độ Descartes, nếu p = (p1, p2,..., pn) và q = (q1, q2,..., qn) là hai điểm
trong không gian Euclid n chiều, thì khoảng cách từ p đến q bằng:

-

Độ đo cosine : sim( x, di) độ giống nhau giữa văn bản cần phân loại x và văn
bản d . Sử dụng độ đo cosine để tính :

Sau khi tính ra khoảng cách của x đến các dữ liệu trong tập huấn luyện, ta sẽ
chọn ra được k điểm dữ liệu mẫu có khoảng cách đến x là gần nhất. Và x sẽ được
phân vào lớp cùng với lớp của đại đa số trong k điểm dữ liệu mẫu kia.
1.2.3.

Phân lớp dựa vào thuật toán cây quyết định
Trong lĩnh vực học máy, cây quyết định là một kiểu mô hình dự báo

(predictive model), nghĩa là một ánh xạ từ các quan sát về một sự vật/hiện tượng tới
các kết luận về giá trị mục tiêu của sự vật/hiện tượng. Mỗi một nút trong (internal
node) tương ứng với một biến; đường nối giữa nó với nút con của nó thể hiện một
giá trị cụ thể cho biến đó. Mỗi nút lá đại diện cho giá trị dự đoán của biến mục tiêu
[2].


14


Đầu vào :
-

Tập M chứa tất cả các văn bản huấn luyện đã mô hình hóa thành các
vector.

-

Tập A chứa tất cả các từ trong tập huấn luyện M (sau khi loại stopword).

-

Một tập chủ đề C.

Đầu ra : Cây quyết định dạng nhị phân cho việc phân loại theo tập chủ đề C.
Giải thuật:
-

Nút gốc bao gồm tập M bao gồm tất cả các mẫu.

-

Nếu các mẫu thuộc về cùng 1 lớp, nút trở thành nút là và gán nhãn bằng
lớp đó.

-

Dùng độ đo thuộc tính để chọn thuộc tính sẽ phân tách tốt nhất các mẫu
vào các lớp đó. Ở đây chúng ta sử dụng độ đo Entropy chính là đặc trưng
cho độ hỗn (tinh khiết) của một tập bất kỳ các mẫu thử:


Trong đó:

-

o

S: tập các mẫu thử (tập huấn luyện)

o

c: phân lớp trong mẫu thử

o

: xác suất các mẫu thử thuộc phân lớp ci

Một nhánh được tạo cho từng giá trị của thuộc tính được chọn và các mẫu
được phân hoạch theo.

-

Dùng đệ quy cùng một quá trình để tạo cây quyết định.

-

Tiến trình kết thúc khi tất cả các mẫu cho 1 nút cho trước đều thuộc cùng
về 1 lớp hoặc không còn thuộc tính mẫu nào có thể dựa vào để phân
hoạch xa hơn.



15

1.2.4.

Phân lớp sử dụng Support Vector Machines (SVM)
Máy vectơ hỗ trợ (SVM - viết tắt tên tiếng Anh support vector machine) là

một khái niệm trong thống kê và khoa học máy tính cho một tập hợp các phương
pháp học có giám sát liên quan đến nhau để phân loại và phân tích hồi quy. SVM
dạng chuẩn nhận dữ liệu vào và phân loại chúng vào hai lớp khác nhau [3].
Nôi dung của phương pháp này như sau:
-

Cho trước một tập huấn luyện, được biểu diễn trong không gian vector,
trong đó mỗi tài liệu là một điểm, phương pháp này tìm ra một siêu phẳng
quyết định tốt nhất có thể chia các điểm trên không gian này thành hai
lớp riêng biệt tương ứng là lớp + và lớp -.

-

Chất lượng của siêu phẳng này được quyết định bởi khoảng cách (gọi là
biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khi đó,
khoảng cách biên càng lớn thì mặt phẳng quyết định càng tốt, đồng thời
việc phân loại càng chính xác.

Hình 1.1: Siêu mặt phẳng phân chia dữ liệu huấn huyện [3]

Ở hình trên, dữ liệu được chia thành hai lớp + và – với khoảng cách biên lớn
nhất. Các điểm gần nhất (được khoanh trong) là các vector hỗ trợ - Suport Vector.

1.3.

Các nghiên cứu giải quyết bài toán với ngôn ngữ Tiếng Việt


16

Chúng ta đưa bài toán phân loại nội dung các bài báo tiếng Việt về bài toán
phân loại văn bản tiếng Việt. Phân loại văn bản là một bài toán xử lí văn bản cổ
điển, đó là ánh xạ một văn bản vào một chủ đề đã biết trong một tập hữu hạn các
chủ đề dựa trên ngữ nghĩa của văn bản. Ví dụ một bài viết trong một tờ báo có thể
thuộc một (hoặc một vài) chủ đề nào đó (như thể thao, sức khỏe, công nghệ thông
tin…).
Do đó để công việc phân loại văn bản cần chính xác và đáp ứng được các
yêu cầu sau:
-

Các văn bản trong nhóm đã được phân loại phải có những tiêu chuẩn chung.

-

Các văn bản khi phân tích phải “hiểu” được nội dung để xác định được các
tiêu chuẩn trong văn bản.

-

Việc xác định loại của văn bản khi so sánh với các nhóm văn bản yêu cầu
phải có những định lượng xác định để xác định chính xác văn bản cần phân
tích thuộc nhóm văn bản nào.


Sơ đồ mô tả quy trình thực hiện phân loại văn bản:

Tiền xử lý
văn bản

Văn bản được
phân loại

Tách từ, tính
trọng số

Tập dữ liệu
huấn luyên

Áp dụng thuật
toán

Hình 1.2: Quy trình thực hiện phân loại văn bản
1.3.1.

Tiền xử lý văn bản
Đây là bước khá quan trọng trước khi tiến hành phân loại văn bản. Các văn

bản cần phải được tiền xử lý loại bỏ những cái không cần thiết vừa để làm giảm
kích thước văn bản và làm nổi bật lên nội dung chính của nó. Sau khi được xử lý, ta


17

nhận được các câu với đúng bản chất ngữ pháp của nó. Quá trình này sẽ giúp nâng

cao hiệu suất phân loại văn bản và làm giảm độ phức tạp của thuật toán.
a. Đưa các bài báo về dạng text và tách văn bản thành các câu riêng biệt

Như chúng ta đã biết, các bài báo điện tử có chuẩn HTML bao gồm các thẻ
(tag) [5] định dạng cho các thành phần nội dung trong trang báo và phần nội dung.
Nếu cứ để nguyên cấu trúc như vậy thì sẽ rất khó để tiến hành phân loại. Nên việc
loại bỏ các thẻ là thực sự cần thiết. Chúng ta sẽ tách phần nội dung tin tức ra bằng
cách bỏ các HTML tag và đưa nó về dạng text để dễ dàng xử lý.
Sau khi chuyển các văn bản về định dạng text, các văn bản này sẽ được
tách thành các câu riêng biệt. Việc làm này sẽ giúp chúng ta không phải lo lắng về
việc làm sai nội dung văn bản, làm sai nội dung của các câu khi chúng ta thực hiện
loại bỏ các ký tự đặc biệt và các từ dừng. Đoạn văn bản sẽ được duyệt tuần tự và
sẽ được cho ngắt câu khi gặp các ký tự ngắt câu như “.” (chấm), “!” (chấm than),
“?” (chấm hỏi), với điều kiện: ký tự tiếp theo (có thể có các ký tự “khoảng trắng”
ở giữa) là ký tự viết in.
Cách làm trên loại bỏ được các trường hợp không phải ngắt câu như:
-

Dấu “.” không phải là ngắt câu mà là dấu trong 1 chuỗi số. Có được
điều này vì nếu là “dấu chấm” trong chuỗi số thì ký tự tiếp theo phải
là số, không phải ký tự viết in.

-

Dấu “.” trong một loạt “dấu ba chấm” bên trong câu, chưa phải là cuối
câu.

Lấy một số ví dụ:
-


Đoạn văn bản “Hôm nay là một ngày đẹp trời. Chúng ta sẽ đi cắm trại
ngoài trời”. Ta sẽ tách được thành 2 câu là “ Hôm nay là một ngày
đẹp trời.” và “Chúng ta sẽ đi cắm trại ngoài trời”.


18

-

Đoạn văn bản “Trong vườn có 1.200 cây các loại, trong đó đa số là
cây ăn trái như cam, quýt, đào, lê, mận, … và một số cây cảnh như
cau, tùng,…” chỉ thuộc một câu.

b. Loại bỏ các ký tự đặc biệt

Xuất hiện với tần suất rất lớn trong hầu hết các văn bản, các dấu câu và các
ký tự đặc biệt thì không mang nhiều thông tin hữu ích đặc trưng cho văn bản.
Chính vì vậy chúng được coi là nhiễu và cần phải loại bỏ khỏi các câu trong văn
bản. Cách xử lý vấn đề này rất đơn giản, ta chỉ cần tiến hành thay thế hoàn toàn
các các ký tự đặc biệt bằng các dấu trắng [5].
Ví dụ: Xét câu S trong 1 tài liệu:
Do đó, data mining đã chứng tỏ được “tính hữu dụng” của nó trong môi
trường kinh doanh đầy tính cạnh tranh ngày nay và được ứng dụng rộng rãi trong
các lĩnh vực thương mại, tài chính, điều trị y học, giáo dục, viễn thông...
Tiến hành loại bỏ các ký tự đặc biệt trong câu S ta được câu S’:
Do đó data mining đã chứng tỏ được tính hữu dụng của nó trong môi
trường kinh doanh đầy tính cạnh tranh ngày nay và được ứng dụng rộng rãi trong
các lĩnh vực thương mại tài chính điều trị y học giáo dục viễn thông
c. Loại bỏ các câu ngắn


Như là một phần của bước tiền xử lý, các câu ngắn (ví dụ như các câu
không đủ thông tin về ngữ nghĩa liên quan đến phát hiện sao chép sẵn có) được
loại bỏ khỏi văn bản do vô tình các tác giả tạo ra cùng một câu ngắn để kết luận,
để biểu đạt điều gì đó [21].
Ví dụ: Hãy xem xét các câu trong 2 tài liệu nhỏ D1 và D2
D1: Nhiều người cho rằng các con chuột Savan có khuynh hướng thường
xuyên nhảy ra khỏi vách đá để tự sát tập thể. Đây không phải là sự thật.


19

D2: Người ta có thể giả định rằng phản ứng hóa học này là không xảy ra
do sự cản trở của không gian nguyên tử. Đây không phải là sự thật.
Rõ ràng, D1 và D2 là khác nhau về nội dung. Tuy nhiên, cùng một câu
“Đây không phải là sự thật” xuất hiện trong cả hai tài liệu được giải thích cho xu
hướng của một số từ và câu thường xuyên xuất hiện mà không phụ thuộc vào loại
văn bản nào.
Ước tính số lượng trung bình của các từ trong một câu tiếng Việt đa dạng
sai khác khoảng 18 đến 25 từ, ở đây ta coi các câu có dưới 12 từ ( bao gồm cả các
từ phổ biến) là ngắn, trong khi khoảng 40% các từ trong câu là các từ dừng, từ nối.
Từ nhận xét đó, luận văn loại bỏ các câu ngắn trong một tài liệu có ít hơn 7 từ liên
tiếp, các từ xuất phát và chỉ xem xét các câu mang ngữ nghĩa có thông tin chi tiết
cô đọng nhất (còn lại) trong quá trình phân loại văn bản.
Sau khi thực hiện các thao tác tiền xử lý với văn bản, ta thu được các câu
gọn hơn nhưng vẫn đầy đủ thông tin và đúng bản chất ngữ pháp.
1.3.2.

Tách từ
a. Tách từ trong câu


Tách từ là vấn đề quan trọng nhất của chương trình, nó quyết định chương
trình có thể thực hiện đúng và chính xác việc phân loại hay không là nhờ kết quả
của việc tách từ đúng hay sai. Tách các từ từ các câu đã được lấy ra, từ ở đây là từ
tiếng Việt do đó đây là điều phải lưu ý.
-

Đầu vào: Câu văn bản

-

Đầu ra: Vectơ chứa các từ có nghĩa trong câu

Do đặc điểm từ tiếng Việt (từ đơn, từ ghép…) nên không thể tách từ bằng
khoảng trắng [21]. Vậy việc chọn phương pháp để tách từ cũng khá khó khăn.


20

-

Đối với một câu văn bản đưa vào sẽ kiểm tra trong dữ liệu có sẵn đã có
mẫu câu này chưa, nếu đã có sẽ lấy các mẫu tách từ của mẫu câu này

-

Nếu chưa có mẫu câu này thì chương trình sẽ đọc chữ đầu tiên và xem
tiếp chữ kế tiếp, nếu chữ đầu tiên và chữ kế tiếp có trong cơ sở dữ liệu thì
chương trình sẽ đọc chữ tiếp theo, cứ như vậy cho đến khi đọc chữ tiếp
theo mà dãy chữ đó không có trong dữ liệu thì sẽ dừng lại và lấy từ là dãy
chữ đã đọc được, tức là chương trình sẽ duyệt một ngữ hoặc câu từ trái

sang phải và chọn từ có nhiều âm tiết nhất có mặt trong từ điển, rồi cứ thể
tiếp tục cho từ kế tiếp cho đến hết câu.

-

Kiểm tra và loại bỏ các từ có tính chất kết nối, mô tả không có ý nghĩa
trong câu (từ stop words) và chỉ giữ lại những từ có ý nghĩa nhất.

-

Các từ này trước khi được đưa vào phân tích cần phải qua bước kiểm tra
từ đồng nghĩa nhưng khác âm như: túc cầu-bóng đá, địa cầu-trái đất .v.v.
để quy tất cả các từ này về chung một mẫu thống nhất.

b. Loại bỏ các từ dừng (Stop Words)

Từ dừng là khái niệm dùng để chỉ các từ xuất hiện nhiều trong văn bản
nhưng không mang ý nghĩa thể hiện đặc trưng của văn bản như các liên từ, giới
từ..., chính vì vậy chúng cũng được coi là nhiễu cần phải được loại bỏ trong các
câu [21]. Việc loại bỏ các stopword giúp chúng ta bỏ đi những thành phần không
quan trọng nằm trong câu, qua đó góp phần làm giảm bộ nhớ của từ điển trong hệ
thống. Bước này sẽ giảm sự phức tạp của thông tin không mong muốn nên có thể
đẩy nhanh quá trình phát hiện sao chép.
Trong tiếng Việt do sự đa dạng về nghĩa của từ nên chưa có một tập các từ
dừng chính thức được công bố. Tuy vậy có một số từ chắc chắn là từ dừng mà nó
thường đóng vai trò là các từ nối giữa các câu như “do đó”, “vì vậy”, “đại loại”,
“đáng lí”, “ngay lập tức”, “sau cùng”… được tập hợp và sử dụng như tập từ dừng
trong đồ án này.



21

Tùy vào từng loại văn bản mà có những từ đặc trưng riêng không mang ý
nghĩa có thể coi như là từ dừng. Các từ này xuất hiện nhiều và không mang ý
nghĩa, tuy nhiên đó chỉ là xét trong bộ dữ liệu cụ thể. Ví dụ trong tập dữ liệu gồm
các đồ án tốt nghiệp đại học thì một số từ xuất hiện rất nhiều nhưng không mang ý
nghĩa đặc trưng như là: “đồ án”, “tốt nghiệp”, “gvhd”, “svth”, “đại học”…
Các từ này được phát hiện và thêm dần vào tập từ dừng trong quá trình tiền xử lí
giúp loại bỏ nhiễu tốt hơn và làm tăng độ chính xác.
Ví dụ: loại bỏ các từ dừng trong câu S’ ở phần trên ta được:
data mining tính hữu dụng nó môi trường kinh doanh đầy tính cạnh tranh
ứng dụng rộng rãi lĩnh vực thương mại tài chính điều trị y học giáo dục viễn
thông
1.3.3.

Áp dụng thuật toán để phân loại dữ liệu

Sau khi tiến hành xử lý xong dữ liệu, thì sẽ áp dụng các thuật toán như: thuật toán
cây quyết định, mạng Bayes, Support Vector Machine để tính toán trọng số các
từ, tính toán khoảng cách tùy vào các thuật toán tương ứng. Khi tính toán được các
giá trị cần thiết thì chương trình có thể xác định được văn bản đầu vào thuộc nhóm
nào. Trong luận văn này, tôi sẽ áp dụng thuật toán K-NN (K – Nearest Neighbors)
để tính các khoảng cách cosine và dựa vào đó đưa ra kết luận loại của van bản đầu
vào. Nội dung chi tiết sẽ được trình bày ở các trang tiếp theo.
1.4.

Kết luận
Chương 1 đã giới thiệu chung về bài toán phân loại văn bản tự động, và trình

bày nội dung của một số thuật toán phân loại phổ biến. Trên thế giới đã có nhiều

công trình nghiên cứu đạt những kết quả khả quan, nhất là đối với phân loại văn bản
tiếng Anh. Tuy vậy, các nghiên cứu và ứng dụng đối với văn bản tiếng Việt còn
nhiều hạn chế do khó khăn về tách từ và câu. Có thể liệt kê một số công trình
nghiên cứu trong nước với các hướng tiếp cận khác nhau cho bài toán phân loại văn


22

bản, bao gồm: phân loại với máy học vectơ hỗ trợ, cách tiếp cận sử dụng lý thuyết
tập thô, cách tiếp cận thống kê hình vị, cách tiếp cận sử dụng phương pháp học
không giám sát và đánh chỉ mục, cách tiếp cận theo luật kết hợp. Theo các kết quả
trình bày trong các công trình đó thì những cách tiếp cận nêu trên đều cho kết quả
khá tốt. Các bộ phân loại được xây dựng bởi các thuật toán này lại thường
cho kết quả chính xác không cao với những bộ dữ liệu lớn, hoặc quá phức
tạp. Dẫn đến việc cần thiết tìm ra phương pháp mới để giải quyết các bài toán phân
loại tự động. Luận văn này sẽ áp dụng kỹ thuật K láng giếng gần nhất vào việc phân
loại báo chí theo thị hiếu độc giả.


23

CHƯƠNG 2: THUẬT TOÁN K-LÁNG GIỀNG GẦN NHẤT
Chương này trình bày cơ sở lý thuyết của thuật toán “K-láng giềng gần nhất”
(K-Nearest Neighbor) và cách áp dụng thuật toán “K-láng giềng gần nhất” để phân
lớp nội dung web điều hướng tin tức theo thị hiếu độc giả.
2.1.
2.1.1.

Giới thiệu thuật toán K-láng giềng gần nhất (K-NN)
Định nghĩa

K-Nearest Neighbors algorithm (K-NN) được sử dụng rất phổ biến trong lĩnh

vực Data Mining. K-NN là thuật toán có mục đích phân loại lớp cho một mẫu mới
(Query point) dựa vào khoảng cách gần nhất giữa các đối tượng cần phân lớp với tất
cả các đối tượng trong các mẫu sẵn có (Training Data), các mẫu này nằm trong một
hệ gọi là không gian mẫu [20].
Một đối tượng được phân lớp dựa vào k láng giềng của nó. K là số nguyên
dương được xác định trước khi thực hiện thuật toán. Người ta thường dùng khoảng
cách Euclidean để tính khoảng cách giữa các đối tượng.
2.1.2.

Mô tả thuật toán K-NN
Các mẫu được mô tả bằng n-chiều thuộc tính số. Mỗi mẫu đại diện cho một

điểm trong một không gian n-chiều. Theo cách này, tất cả các mẫu được lưu trữ
trong một mô hình không gian n-chiều.
Các bước thực hiện của thuật toán K-NN được mô tả như sau:
-

Bước 1: Xác định giá trị tham số K (số láng giềng gần nhất)
Bước 2: Tính khoảng cách giữa đối tượng cần phân lớp (Query point) với
tất cả các đối tượng trong training data (thường sử dụng khoảng cách

-

Euclidean, Cosine…)
Bước 3: Sắp xếp khoảng cách theo thứ tự tăng dần và xác định K láng

-


giềng gần nhất với Query point
Bước 4: Lấy tất cả các lớp của K láng giềng gần nhất đã xác định


24

-

Bước 5: Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp

cho Query point.
Để hiểu K-NN được dùng để phân lớp thế nào ta xem minh họa dưới đây:
Trong hình dưới đây, training Data được mô tả bởi dấu (+) và dấu (-), đối
tượng cần được xác định lớp cho nó (Query point) là hình mặt cười đỏ. Nhiệm vụ
của chúng ta là ước lượng (hay dự đoán) lớp của Query point dựa vào việc lựa chọn
số láng giềng gần nhất với nó. Nói cách khác, chúng ta muốn biết liệu Query Point
sẽ được phân vào lớp (+) hay lớp (-).

Hình 2.3: Hình minh họa thuật toán K- láng giềng gần nhất [20]

Ta thấy rằng:
- Xét K=1 ( 1 láng giềng gần nhất): Kết quả là + (Query point được xếp
-

vào lớp dấu +)
Xét K=2 ( 2 láng giêng gần nhất): Không xác định được lớp cho Query
Point vì số láng giếng gần nhất với nó là 2, trong đó có 1 lớp + và 1 lớp –
( không có lớp nào có đối tượng nhiều hơn lớp kia). Trong trường hợp

-


này thì sẽ chọn kết quả là láng giềng có khoảng cách gần hơn.
Xét K=5 ( 5 láng giềng gần nhất) : Kết quả là – ( Query point được xếp
vào lớp dấu – vì trong 5 láng giềng gần nhất với nó thì có 3 đối tượng
thuộc lớp – và chỉ có 2 đối tượng thuộc lớp +)


25

Để chọn được tham số k tốt nhất cho thao tác phân loại, thuật toán cần được
chạy thử nghiệm trên nhiều giá trị k khác nhau, giá trị k càng lớn thì thuật toán càng
ổn định và sai số càng thấp.
2.2.
2.2.1.

Ưu điểm và nhược điểm của thuật toán K-NN
Ưu điểm



Chi phí thấp cho quá trình huấn luyện (chỉ việc lưu lại các ví dụ học).
Hoạt động tốt với các bài toán phân loại gồm nhiều lớp: Không cần phải



học c bộ phân loại cho c lớp.
Phương pháp học K-NN (k>>1) có khả năng xử lý nhiễu cao: phân loại/

dự đoán được thực hiện trên k láng giềng gần nhất.
• Rất linh động trong việc chọn hàm khoảng cách: có thể dùng độ tương tự

cosine, độ đo Kullback – Leibler divergence, Bregman divergence…
2.2.2.

2.3.

Nhược điểm


Phải lựa chọn hàm tính khoảng cách ( sự khác biệt) thích hợp với bài




toán.
Chi phí tính toán (thời gian, bộ nhớ) cao tại thời điểm phân loại/ dự đoán.
Có thể cho kết quả kém/sai với các thuộc tính không liên quan.

Áp dụng thuật toán K-NN với bài toán phân loại tin tức
Thuật toán K-NN là một phương pháp truyền thống và khá nổi tiếng trong

hướng tiếp cận dựa trên thống kê, đã được nghiên cứu trong nhận dạng mẫu trong
vài thập kỷ gần đây. Nó được đánh giá là một trong những phương pháp tốt nhất và
được sử dụng ngay từ những thập kỳ đầu của phân lớp văn bản. Ý tưởng chính của
thuật toán K – láng giềng gần nhất (K-NN) là so sánh độ phù hợp của văn bản d với
từng nhóm chủ đề, dựa trên k văn bản mẫu trong tập huấn luyện mà có độ tương tự
với văn bản d là lớn nhất.
2.3.1.

Gán nhãn các tin tức trong tập huấn luyện đã xác định
Việc gán nhãn các tin tức trong tập huấn luyện là việc xác định xem tin tức


đó thuộc nhóm tin nào. Nhờ việc xác định này mà chương trình có thể xác định
được văn bản đang chọn thuộc nhóm văn bản nào. Việc đánh nhãn cũng có tính chất
quyết định đến kết quả phân loại văn bản. Mỗi tin tức tương ứng với một lớp từ


×