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

Xử lý văn bản tiếng việt theo mô hình tập thô dung sai

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.7 MB, 118 trang )

Trần quang

bộ giáo dục và đào tạo
trờng đại học bách khoa hà nội
---------------------------------------

luận văn thạc sĩ khoa học

công nghệ thông tin

ngành : công nghệ thông tin

Xử lý văn bản tiếng việt
Theo mô hình tập thô dung sai

Trần quang

2007 - 2009
Hà Nội
2010

Hà Nội 2010


X lý vn bn ting Vit theo mụ hỡnh tp thụ dung sai

bộ giáo dục và đào tạo
trờng đại học bách khoa hà nội
---------------------------------------

luận văn thạc sĩ khoa học



Xử Lý VĂN BảN TIếNG VIệT
THEO MÔ HìNH TậP THÔ DUNG SAI

ngành : công nghệ THÔNG TIN
m số:23.04.3898
TRầN QUANG

Ngi hng dn khoa hc : PGS. TS. Nguyễn ngọc bình

Hà Nội 2010

Hc viờn thc hin: Trn Quang Lp CH CNTT 2007-2009

1/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

LỜI CAM ĐOAN

Tôi – Trần Quang – cam đoan Luận văn này là công trình nghiên cứu của bản thân
tôi dưới sự hướng dẫn của PGS.TS.Nguyễn Ngọc Bình.
Các kết quả nêu trong Luận văn là trung thực, không phải là sao chép toàn văn của
bất kỳ công trình nào khác.
Hà Nội, ngày tháng năm
Tác giả Luận văn

Trần Quang


Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

2/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

MỤC LỤC
DANH MỤC CÁC THUẬT NGỮ..................................................................................................................... 5
DANH MỤC CÁC BẢNG.................................................................................................................................. 6
DANH MỤC CÁC HÌNH................................................................................................................................... 7
LỜI NÓI ĐẦU ..................................................................................................................................................... 8
Chương 1 Tổng quan về khai phá dữ liệu........................................................................................................ 9
1.1. Khai phá dữ liệu – Data Mining............................................................................................................... 9
1.2. Tiền xử lý dữ liệu.................................................................................................................................... 12
1.3. Phân lớp và dự báo – Classification and Prediction .............................................................................. 12
1.3.1. Giới thiệu ........................................................................................................................................ 12
1.3.2. Support Vector Machines............................................................................................................... 15
1.3.2.1. SVMs với dữ liệu khả tách tuyến tính (linearly separable).....................................................................16
1.3.2.2. SVMs với dữ liệu không khả tách tuyến tính (linearly inseparable) ......................................................20

1.4. Phân nhóm dữ liệu .................................................................................................................................. 22
1.4.1. Giới thiệu ........................................................................................................................................ 22
1.4.2. Phân loại các phương pháp Clustering ......................................................................................... 24
1.4.3. Một số phương pháp Clustering .................................................................................................... 27
1.5. Các ứng dụng và xu hướng trong khai phá dữ liệu................................................................................ 31
Chương 2 Tập thô và ứng dụng....................................................................................................................... 34
2.1. Lý thuyết tập thô..................................................................................................................................... 34
2.1.1. Hệ thông tin .................................................................................................................................... 35
2.1.2. Quan hệ bất khả phân .................................................................................................................... 37

2.1.3. Xấp xỉ tập hợp ................................................................................................................................ 38
2.1.4. Thành viên thô – Rough Membership ............................................................................................ 42
2.1.5. Phụ thuộc giữa các thuộc tính ....................................................................................................... 43
2.1.6. Rút gọn thuộc tính .......................................................................................................................... 44
2.1.7. Ma trận phân biệt được và hàm phân biệt được ........................................................................... 50
2.1.8. Sự quan trọng của các thuộc tính và các rút gọn xấp xỉ ............................................................... 53
2.2. Các ứng dụng của tập thô ....................................................................................................................... 56
2.3. Mô hình tập thô dung sai ........................................................................................................................ 57
Chương 3 Một số kỹ thuật trong khai phá dữ liệu văn bản......................................................................... 60
3.1. Các mô hình biểu diễn văn bản .............................................................................................................. 60
3.1.1. Mô hình không gian vector – Vector Space Model ....................................................................... 60
3.1.1.1. Document Indexing..................................................................................................................................61
3.1.1.2. Feature Weighting....................................................................................................................................63
3.1.1.3. Similarity Coefficients .............................................................................................................................64

3.1.2. Mô hình tập mờ - Fuzzy Set Model ................................................................................................ 65
3.1.2.1. Lý thuyết tập mờ ......................................................................................................................................65
3.1.2.2. Biểu diễn văn bản dựa trên khái niệm mờ ...............................................................................................66

3.1.3. Mô hình xác suất – Probabilistic Model........................................................................................ 68
3.2. Công thức xác định hiệu năng xử lý văn bản......................................................................................... 71
3.3. Phân nhóm văn bản – Text Clustering ................................................................................................... 72
3.3.1. Giới thiệu ........................................................................................................................................ 72
3.3.2. Các ứng dụng của lập nhóm văn bản ............................................................................................ 73
3.4. Phân loại văn bản – Text Classification................................................................................................. 73
3.4.1. Giới thiệu bài toán phân loại văn bản ........................................................................................... 73
3.4.1.1. Tổng quan phân loại văn bản...................................................................................................................73
3.4.1.2. Nền tảng học máy trong bài toán phân loại văn bản ...............................................................................74

3.4.2. Một số phương pháp phân loại văn bản ........................................................................................ 76

3.4.2.1. Decision Tree ...........................................................................................................................................76
3.4.2.2. K - Nearnest Neighbor .............................................................................................................................76

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

3/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai
3.4.2.3. Naïve Bayes .............................................................................................................................................78
3.4.2.4. Support Vector Machines ........................................................................................................................80

3.5. Tóm tắt văn bản – Text Summarization................................................................................................. 81
3.6. Phát hiện xu hướng văn bản – Text Trend Detection ............................................................................ 81
3.7. Tìm kiếm văn bản – Text Retrieval........................................................................................................ 81
Chương 4 Mô hình tập thô dung sai trong xử lý cơ sở dữ liệu văn bản ..................................................... 83
4.1. Bộ khung của hệ thống khai phá dữ liệu văn bản dựa trên mô hình TRSM ......................................... 83
4.2. Xử lý văn bản tiếng Anh......................................................................................................................... 85
4.2.1. Mô hình tập thô dung sai trong biểu diễn văn bản........................................................................ 85
4.2.2. Nonhierarchical Document Clustering dựa trên mô hình tập thô dung sai ................................. 87
4.2.2.1. Giải thuật ..................................................................................................................................................87
4.2.2.2. Biểu diễn cluster – cluster representation................................................................................................88
4.2.2.3. Độ tương tự giữa các tài liệu và giữa các biểu diễn cluster ....................................................................90

4.2.3. Hierarchical Document Clustering dựa trên mô hình tập thô dung sai ....................................... 91
4.3. Xử lý văn bản tiếng Việt......................................................................................................................... 92
4.3.1. Một số vấn đề chung trong xử lý văn bản Tiếng Việt .................................................................... 92
4.3.1.1. Một số đặc trưng của Tiếng Việt .............................................................................................................92
4.3.1.2. Các bước tiền xử lý văn bản ....................................................................................................................94
4.3.1.3. Một số phương pháp tách thuật ngữ trong văn bản Tiếng Việt ..............................................................95

4.3.1.4. Một số kỹ thuật giảm chiều văn bản........................................................................................................98
4.3.1.4.1. Loại bỏ từ dừng ...............................................................................................................................98
4.3.1.4.2. Lựa chọn tập đặc trưng cho không gian văn bản............................................................................99

4.3.2. Áp dụng mô hình TRSM để xử lý vấn đề đồng nghĩa, trái nghĩa trong Tiếng Việt..................... 100
4.3.2.1. Đặt vấn đề ..............................................................................................................................................100
4.3.2.2. Đặc trưng tần suất của các thuật ngữ và các lân cận ............................................................................101
4.3.2.3. Cài đặt thử nghiệm .................................................................................................................................102

Chương 5 Kết luận và hướng phát triển ...................................................................................................... 110
TÀI LIỆU THAM KHẢO.............................................................................................................................. 114
TÓM TẮT LUẬN VĂN.................................................................................................................................. 116
ABSTRACT OF THESIS............................................................................................................................... 117

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

4/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

DANH MỤC CÁC THUẬT NGỮ
STT

Từ viết tắt

Thuật ngữ Tiếng Anh

1


DM

Data Mining

Khai phá dữ liệu

2

DT

Decision Tree

Cây quyết định

3

EM

Expectation Maximization

Một phương pháp clustering

4

ERSM

Equivalence Rough Sets Model

Mô hình tập thô tương đương


5

IDF

Inverse Document Frequency

Mô hình nghịch đảo tần số văn bản

6

KDD

7

KE

8

K-NN

9

ML

10

Knowledge

Discovery


Thuật ngữ Tiếng Việt

in

Databases

Khai phá tri thức trong cơ sở dữ liệu

Keyword Extraction

Bài toán trích trọn từ khoá

K- Nearest Neighbour

K láng giềng gần nhất

Machine Learning

Học máy

MMH

Maximum Marginal Hyperplane

Siêu phẳng lề cực đại

11

RSM


Rough Sets Model

Mô hình tập thô

12

SVMs

Support Vector Machines

Máy vector hỗ trợ

13

TF

Term Frequency

Mô hình tần số thuật ngữ

14

TRSM

Tolerance Rough Sets Model

Mô hình tập thô dung sai

15


TSR

Term Space Reduction

Giảm không gian thuật ngữ

16

VSM

Vector Space Model

Mô hình không gian vector

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

5/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

DANH MỤC CÁC BẢNG
Bảng 2.1: ví dụ về hệ thông tin............................................................................................36
Bảng 2.2: Walk – ví dụ về bảng quyết định.........................................................................36
Bảng 2.3: Ví dụ bảng thông tin có thuộc tính dư thừa.........................................................44
Bảng 2.4: Bảng dữ liệu thu được bằng cách loại bỏ cột thuộc tính Muscle-pain ................47
Bảng 2.5: Bảng dữ liệu thu được bằng cách loại bỏ cột thuộc tính Headache ....................48
Bảng 2.6: đơn giản hóa Bảng 2.4.........................................................................................49
Bảng 2.7: Đơn giản hóa bảng 2.5 .......................................................................................49
Bảng 3.1: Ví dụ phân loại theo số đông...............................................................................77

Bảng 3.2: Ví dụ lỗi khi phân loại theo số đông. ..................................................................78
Bảng 4.1: Một số hàm tính giá trị ước lượng thông tin của thuật ngữ...............................100

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

6/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

DANH MỤC CÁC HÌNH
Hình 1.1: Data mining – tìm kiếm tri thức trong dữ liệu .......................................................9
Hình 1.2: Data mining là một bước trong quá trình phát hiện tri thức ................................10
Hình 1.3: Dữ liệu 2-D khả tách tuyến tính..........................................................................16
Hình 1.4: Ví dụ về siêu phẳng cùng với lề tương ứng.........................................................17
Hình 1.5: Support vectors ....................................................................................................18
Hình 1.6: Dữ liệu không khả tách tuyến tính.......................................................................20
Hình 1.7: Clustering dựa trên giải thuật k-means ................................................................28
Hình 1.8: Mỗi cluster được biểu diễn bởi một phân bố xác suất .........................................29
Hình 2.1: Minh họa tập xấp xỉ trên, xấp xỉ dưới..................................................................39
Hình 2.2: Xấp xỉ tập đối tượng bằng các thuộc tính điều kiện Age và LEMS ....................40
Hình 2.3: Lớp các từ phủ lên nhau ......................................................................................58
Hình 3.1: Ma trận tài liệu-thuật ngữ ....................................................................................62
Hình 3.2: Minh họa cách tính precision và recall ................................................................71
Hình 3.3: Minh hoạ giải thuật KNN láng giềng gần nhất với K = 5. ..................................77
Hình 4.1: Bộ khung hệ thống khai phá dữ liệu dựa trên mô hình TRSM............................83
Hình 4.2: Giải thuật hierarchical agglomerative clustering dựa trên mô hình TRSM.........91
Hình 4.5: Ví dụ tình huống nhập nhằng trong đồ thị phân tách câu....................................97
Hình 4.6: Các bước của chương trình................................................................................103


Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

7/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

LỜI NÓI ĐẦU
Hàng ngày chúng ta tiếp xúc với rất nhiều các loại dữ liệu khác nhau: âm thanh,
hình ảnh, các dữ liệu số, các dữ liệu lưu dưới dạng các tài liệu… Các dữ liệu ít nhiều đều
ẩn chứa bên trong một phần tri thức nào đó mà ta chưa biết. Khi các dữ liệu trở nên nhiều
hơn mà ta không thể kiểm soát nó dưới dạng liệt kê ra được thì trong đó sẽ ẩn chứa một
lượng tri thức lớn và cần có các phương pháp để tự động nhận biết ra các quy luật, các tri
thức đang ẩn chứa để phục vụ cho lợi ích của chúng ta. Khai phá dữ liệu là bài toán tìm ra
tri thức ẩn chứa bên trong một tập dữ liệu lớn và đã có nhiều phương pháp, nhiều hướng
tiếp cận khác nhau cho bài toán này, chẳng hạn sử dụng lý thuyết tập thô, lý thuyết tập mờ,
lý thuyết xác suất, học máy… Trong luận văn này tác giả sẽ sử dụng hướng tiếp cận mô
hình tập thô dung sai cho bài toán khai phá dữ liệu văn bản nhằm giải quyết vấn đề đồng
nghĩa, trái nghĩa trong văn bản tiếng Việt. Trong quá trình nghiên cứu, tác giả nhận thấy
hướng tiếp cận này có rất nhiều ứng dụng thiết thực khác cũng như một số vấn đề lý thuyết
liên quan khác. Tuy nhiên, do hạn chế về mặt thời gian, tác giả chỉ nêu ra các ứng dụng,
các bài toán liên quan đó như là những hướng phát triển khả thi mà thôi.
Về mặt bố cục, luận văn gồm năm chương với nội dung chính như sau:
Chương 1: Trình bày tổng quan về lĩnh vực phát hiện tri thức và khai phá dữ liệu cũng như
các bài toán, các phương pháp điển hình thường được sử dụng. Các ứng dụng và xu hướng
trong lĩnh vực này.
Chương 2: Trình bày về lý thuyết tập thô và các ứng dụng của nó, đặc biệt là trong lĩnh
vực khai phá dữ liệu đã trình bày ở chương 1. Mô hình tập thô dung sai (TRSM) cũng được
trình bày ở đây, mô hình biểu diễn văn bản này sẽ được sử dụng trong Chương 4.
Chương 3: Trình bày một số kỹ thuật trong xử lý văn bản và các mô hình biểu diễn văn

bản. Các bài toán, các phương pháp được trình bày tổng quan trong chương 1 sẽ được sử
dụng ở đây với dữ liệu cụ thể là dữ liệu văn bản.
Chương 4: Mô hình tập thô dung sai trong xử lý cơ sở dữ liệu văn bản nói chung và văn
bản tiếng Việt nói riêng. Áp dụng thực tế để xử lý vấn đề đông nghĩa, trái nghĩa trong tiếng
Việt.
Chương 5: Trình bày các kết luận, các hạn chế của luận văn và đề xuất các hướng phát
triển trong tương lai.

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

8/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

Chương 1
Tổng quan về khai phá dữ liệu
Nội dung chính sẽ trình bày:
• Các khái niệm cơ bản trong khai phá dữ liệu.
• Một số kỹ thuật trong khai phá dữ liệu.
• Các ứng dụng và xu hướng trong khai phá dữ liệu.

1.1. Khai phá dữ liệu – Data Mining
Khai phá dữ liệu[1] là quá trình trích rút các thông tin ẩn chứa trong các kho
dữ liệu lớn, đôi khi còn được gọi là khai phá tri thức từ dữ liệu (knowledge mining
from data). Có nhiều thuật ngữ khác có nghĩa tương đồng hoặc khác biệt đôi chút
với thuật ngữ Data Mining, chẳng hạn knowledge mining from data, knowledge
extraction, data/pattern analysis, data archaeology, data dredging.

Hình 1.1: Data mining – tìm kiếm tri thức trong dữ liệu


Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

9/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

Nhiều người đã xem Data mining là đồng nghĩa với thuật ngữ tương đối phổ biến
Knowledge Discovery from Data – KDD, đó là một bước quan trọng trong toàn bộ
quy trình phát hiện tri thức, quy trình này bao gồm các bước như sau:

Hình 1.2: Data mining là một bước trong quá trình phát hiện tri thức

1. Làm sạch dữ liệu (Data cleaning): loại bỏ nhiễu và các dữ liệu không
đồng nhất
2. Tích hợp dữ liệu (Data integration): tích hợp dữ liệu từ các nguồn khác
nhau

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

10/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

3. Lựa chọn dữ liệu (Data selection): các dữ liệu liên quan tới nhiệm vụ
phân tích được thu thập từ cơ sở dữ liệu
4. Chuyển đổi dữ liệu (Data transformation): dữ liệu được chuyển đổi hoặc
hợp nhất thành các dạng phù hợp với quá trình khai phá, chẳng hạn bằng

cách thực hiện các thao tác tổng kết hoặc tụ tập
5. Khai phá dữ liệu (Data mining): là một quá trình cốt lõi trong đó các
phương pháp thông minh được áp dụng để trích rút các mẫu dữ liệu
6. Ước lượng mẫu (Pattern evaluation): xác minh tính chân thực của các
mẫu biểu diễn tri thức dựa vào một số phương pháp tiêu chuẩn
7. Biểu diễn tri thức (Knowledge presentation): các kỹ thuật liên quan đến
trực quan hóa và biểu diễn tri thức được áp dụng để trình diễn tri thức
khai phá được cho người dùng nhận biết.
Hai mục tiêu chính trong lĩnh vực khai phá dữ liệu đó là mô tả và dự báo.
Mô tả nhằm tìm ra các thông tin để mô tả dữ liệu mà người dùng có thể hiểu được,
để thực hiện mục tiêu này thường có các bài toán liên quan như lập nhóm, phát hiện
luật kết hợp… Còn Dự báo là đoán nhận về xu hướng trong tương lai của dữ liệu
dựa trên các dữ liệu đang có, để thực hiện mục tiêu này thường có các bài toán liên
quan như bài toán hồi quy, phân loại, phát hiện độ lệch.
Để quá trình khai phá dữ liệu được diễn ra thuận lợi, dữ liệu cần được tổ
chức theo một cách thức nào đó và áp dụng các phương pháp phù hợp với mỗi cách
tổ chức này và phù hợp với bản chất, đặc thù của dữ liệu; thường có nhiều cách tổ
chức dữ liệu khác nhau nhưng phổ biến nhất là sử dụng cơ sở dữ liệu quan hệ,
ngoài ra còn có cơ sở dữ liệu hướng đối tượng, cơ sở dữ liệu toàn văn, cơ sở dữ liệu
hướng thời gian thực…
Khai phá dữ liệu có thể được tiếp cận theo nhiều hướng khác nhau, mỗi bài
toán trong lĩnh vực này sẽ có phương pháp luận để giải quyết nó, phương pháp luận
quyết định quan điểm và cách thức chúng ta nhìn nhận và giải quyết vấn đề. Các

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

11/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai


hướng tiếp cận lĩnh vực này có thể là: học máy (machine learning), thống kê
(statistics), trí tuệ nhân tạo…

1.2. Tiền xử lý dữ liệu
Các cơ sở dữ liệu lớn thường gặp phải vấn đề về nhiễu (noisy) chứa trong dữ
liệu hoặc dữ liệu bị thiếu (missing) hoặc thiếu nhất quán (inconsistent), điều này ảnh
hưởng nghiêm trọng đến các kết quả thu được trong quá trình khai phá dữ liệu. Tiền
xử lý dữ liệu nhằm giải quyết vấn đề này. Vậy bằng cách nào có thể để tiền xử lý dữ
liệu nhằm nâng cao chất lượng dữ liệu và thu được các kết quả tốt hơn cho quá trình
khai phá cũng như nâng cao hiệu suất và dễ dàng hơn cho quá trình này?
Có rất nhiều kỹ thuật để tiền xử lý dữ liệu: Data cleaning có thể được áp
dụng để loại bỏ nhiễu và khắc phục vấn đề thiếu đồng nhất trong dữ liệu. Data
integration để hợp nhất các dữ liệu từ nhiều nguồn khác nhau vào trong một kho
chứa dữ liệu cố kết. Data transformations, chẳng hạn đó là sự chuẩn hóa dữ liệu,
có thể được áp dụng để nâng cao độ chính xác cũng như tính hiệu quả của các giải
thuật, đưa đến các độ đo về khoảng cách. Data reduction có thể dùng để giảm thiểu
kích thước của dữ liệu bằng cách kết hợp hoặc loại bỏ các thuộc tính dư thừa. Các
kỹ thuật này không loại trừ lần nhau, chúng có thể làm việc chung với nhau.
Trong khai phá dữ liệu văn bản nói riêng, tiền xử lý dữ liệu là một quá trình
chiếm tương đối nhiều tài nguyên. Để xử lý được dữ liệu dạng này cần phải có quá
trình tiền xử lý để đưa nó về dạng có cấu trúc, sau đó áp dụng các giải thuật khai
phá trên các cấu trúc đã đạt được. Vấn đề tách từ, loại bỏ các từ dừng (stop words),
lấy gốc của từ (stemming), biểu diễn văn bản theo một mô hình nào đó… thường
được biết đến bên trong quá trình này.

1.3. Phân lớp và dự báo – Classification and Prediction
1.3.1. Giới thiệu
Là 2 dạng phân tích dữ liệu dùng để trích xuất các mô hình mô tả các lớp dữ
liệu quan trọng (đối với classifiction) hoặc tiên đoán xu hướng của dữ liệu trong


Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

12/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

tương lai (đối với prediction)[1]. Các phân tích này giúp ta có được hiểu biết tốt
hơn về cơ sở dữ liệu lớn. Trong khi classification hướng đến việc đưa ra các nhãn
xác định (rời rạc, không có thứ tự) thì prediction thường định ra các hàm liên tục.
Có rất nhiều phương pháp phân loại cũng như dự báo đã được đưa ra bởi các nhà
nghiên cứu trong các lĩnh vực học máy (machine learning), phát hiện mẫu (pattern
recognition) và thống kê (statistic). Phần lớn các giải thuật đưa ra ở đây là thường
trú trong bộ nhớ, thường sử dụng dữ liệu với kích thước bé; các nghiên cứu gần đây
về khai phá dữ liệu dựa trên các kết quả trước đó để phát triển các phương pháp
phân loại và dự báo phù hợp với việc xử lý dữ liệu lớn lưu trên đĩa cứng.
Phân lớp dữ liệu là một quá trình gồm 2 bước: ở bước thứ nhất, một bộ phân
loại được xây dựng mô tả một tập các khái niệm hoặc các lớp dữ liệu đã được định
nghĩa trước và được gọi là bước học (learning step) hay pha huấn luyện (training
phase); ở đây một giải thuật phân lớp xây dựng nên một bộ phân loại bằng việc
phân tích hoặc học từ một training set (tập huấn luyện) được tạo nên từ các phần tử
dữ liệu và gắn liền với các nhãn của chúng. Một phần tử X được biểu diễn bởi một
vector thuộc tính trong không gian n chiều, có dạng X = (x1, x2,…, xn) biểu diễn n
độ đo tạo nên phần tử này từ n thuộc tính của cơ sở dữ liệu, tương ứng là A1, A2, … ,
An. Mỗi phần tử X được giả định thuộc về một lớp đã được định nghĩa trước thông
qua các thuộc tính khác của cơ sở dữ liệu gọi là thuộc tính nhãn các lớp (class label
attribute), các thuộc tính này là rời rạc, không có thứ tự và biễu diễn cho một mục
hay một lớp nào đó. Bởi vì nhãn của các phần tử huấn luyện đã được biết nên bước
này còn được gọi là học có giám sát (supervised learning), nó trái ngược với

phương pháp học không giám sát (unsupervised learning) (hoặc clustering) trong
đó nhãn của mỗi phần tử huấn luyện là không được biết trước và số lượng các lớp
cần được học cũng không được biết.
Bước thứ nhất của quá trình phân lớp có thể được xem như là việc học một
ánh xạ (một hàm) y = f(X) mà có thể dự đoán được nhãn y của đối tượng X cho
trước. Theo cách nhìn này, ta mong muốn học một ánh xạ mà phân tách các lớp dữ

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

13/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

liệu. Thông thường, ánh xạ này được biểu diễn dưới dạng các luật phân lớp, cây
quyết định (decision trees) hoặc bằng các mô tả hình thức toán học.
Bước thứ 2 của quá trình phân lớp là xác định mức độ chính xác của việc
phân lớp. Trước hết cần đánh giá trước độ chính xác của bộ phân lớp, nếu sử dụng
tập huấn luyện để đo độ chính xác của bộ phân lớp thì giá trị này tương đối lạc quan
vì bộ phân lớp thường có khuynh hướng overfit dữ liệu; bên cạnh đó tập dữ liệu
khiểm thử (test set) được sử dụng, tập này được tạo ra từ các phần tử liên quan đến
nhãn của các lớp, các phần tử này được lựa chọn một cách ngẫu nhiên từ tập dữ liệu
thông thường và độc lập với các phần tử huấn luyện và không tham gia vào quá
trình tạo lập bộ phân loại.
Độ chính xác của một bộ phân loại dựa trên một tập dữ liệu kiểm thử nào đó
là phần trăm các phần tử của tập kiểm thử được phân loại đúng bởi bộ phân loại.
Nhãn của lớp liên kết với mỗi phần tử để test được so sánh với lớp dự báo trước của
bộ phân loại đã được học áp dụng cho phần tử đó. Có nhiều phương pháp để tính độ
chính xác của phân loại, chẳng hạn Holdout Method, Random Subsampling, Crossvalidation, Boostrap. Phương pháp Holdout sẽ phân hoạch ngẫu nhiên tập ban đầu
thành 2 tập độc lập: Training set và test set; thông thường 2/3 dữ liệu được định vị

trong training set, 1/3 còn lại nằm trong test set. Training set sử dụng để thu được
mô hình mà độ chính xác của nó được đánh giá bởi test set. Sự đánh giá này không
được tốt vì chỉ một phần dữ liệu ban đầu được sử dụng để tìm ra mô hình. Random
subsampling là một biến thể của Holdout bằng cách thực hiện holdout k lần và lấy
độ chính xác tổng thể bằng độ chính xác trung bình của mỗi lần lặp đó. Crossvalidation sẽ phân chia tập dữ liệu ban đầu thành k phần bằng nhau và thực hiện k
bước lặp, ở mỗi bước lặp test data là 1 trong k phần bằng nhau đó, k-1 phần còn lại
được dùng để học; độ chính xác được tính bằng toàn bộ phần tử được phân lớp
chính xác sau k vòng lặp chia cho tổng số phần tử của tập ban đầu.
Nếu độ chính xác của bộ phân loại là chấp nhận được thì nó sẽ được dùng để
phân lớp cho các dữ liệu trong tương lai mà nhãn của nó là chưa được biết trước.

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

14/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

Cả phân lớp và dự báo đều giống nhau ở chỗ chúng đều là quá trình gồm 2
bước như đã nói ở trên, tuy nhiên đối với dự báo thì khái niệm thuộc tính nhãn của
các lớp (class label attribute) không tồn tại vì thuộc tính mà giá trị của nó cần dự
đoán là một giá trị liên tục (có thứ tự) hơn là giá trị rời rạc (không có thứ tự). Dự
báo có thể được xem như là một ánh xạ y = f(X) với X là thông tin đầu vào (một
phần tử, một thể hiện của tập dữ liệu) và y là đầu ra với giá trị là liên tục, như vậy,
ta mong muốn học một ánh xạ liên hệ giữa X và y.

1.3.2. Support Vector Machines
Có rất nhiều kỹ thuật có thể áp dụng trong bài toán phân lớp và dự báo,
chẳng hạn có thể dùng cây quyết định (decision tree), Bayesian, K-NN, giải thuật di
truyền… Ở đây ta giới thiệu một phương pháp hiện được dùng rất phổ biến hiện nay

đó là Support Vector Machines (SVMs).
SVMs là một phương pháp mới có thể dùng để phân loại dữ liệu tuyến tính
hoặc phi tuyến, thực chất nó là một giải thuật làm việc như sau[1]. SVM sử dụng
một ánh xạ phi tuyến (nonlinear mapping) để biến đổi dữ liệu huấn luyện ban đầu
vào một không gian có số chiều cao hơn. Trong không gian mới này, nó tìm kiếm
siêu phẳng phân tách tối ưu tuyến tính (linear optimal separating hyperplane) – đó
là một vùng biên quyết định (decision boundary) phân tách các đối tượng của một
lớp khỏi các lớp khác. Với một ánh xạ phi tuyến phù hợp vào một không gian mới
tương ứng có số chiều lớn hơn thì dữ liệu thuộc về 2 lớp luôn luôn có thể được phân
tách bởi một siêu phẳng. SVM tìm kiếm siêu phẳng này bằng cách sử dụng các
support vector – thực chất là các đối tượng huấn luyện – và tìm kiếm lề (margin)
được tạo ra bởi các support vector đó. SVMs có thể sử dụng cho cả classification
lẫn prediction và được áp dụng rất rộng rãi vào nhiều lĩnh vực, chẳng hạn nhận
dạng ký số viết tay, nhận dạng giọng nói, phân loại văn bản… Sau đây ta sẽ giới
thiệu SVMs cho 2 trường hợp: dữ liệu là khả tách tuyến tính và không khả tách.

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

15/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

1.3.2.1. SVMs với dữ liệu khả tách tuyến tính (linearly separable)
Xét trường hợp đơn giản ta có 2 lớp phân tách tuyến tính với nhau: Tập dữ
liệu ban đầu D được cho dưới dạng (X1, y1), (X2, y2),…, (X|D|, y|D|) trong đó Xi là các
đối tượng huấn luyện với nhãn yi với yi ∈ {+1, -1}.

Hình 1.3: Dữ liệu 2-D khả tách tuyến tính


Xét ví dụ như hình trên, dữ liệu có 2 thuộc tính A1, A2 và khả tách tuyến tính vì ta
có thể vẽ 1 đường thẳng để phân tách hoàn toàn các đối tượng thuộc nhóm +1 với
các đối tượng thuộc nhóm – 1, có vô số các đường thẳng như thế có thể được vẽ;
tuy nhiên ta mong muốn tìm ra đường thẳng nào tối ưu nhất để lỗi phân loại là bé
nhất. Với dữ liệu là 3-D ta mong muốn tìm ra 1 mặt phẳng phân tách tối ưu, đối với
dữ liệu n chiều ta mong muốn tìm ra 1 siêu phẳng tối ưu. Ta sẽ dùng thuật ngữ “siêu
phẳng” – hyperplane – để chỉ đến vùng biên quyết định mà không quan tâm đến số
chiều (số thuộc tính) của dữ liệu. Vậy bằng cách nào để tìm ra siêu phẳng tối ưu?
SVMs giải quyết bài toán này bằng cách tìm kiếm siêu phẳng lề cực đại (maximum
marginal hyperpalne). Hình 1.4 cho thấy 2 trường hợp siêu phẳng phân tách và lề
tương ứng với chúng. Cả 2 siêu phẳng đều phân loại một cách đúng đắn dữ liệu ban
đầu, tuy nhiên siêu phẳng với lề lớn hơn sẽ cho kết quả phân loại tốt hơn với các dữ

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

16/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

liệu sẽ có trong tương lai. Chính vì vậy, SVMs sẽ tìm kiếm siêu phẳng với lề lớn
nhất (MMH – maximum marginal hyperplane) . Một siêu phẳng phân tách có
phương trình là:
W .X + b = 0

Hình 1.4: Ví dụ về siêu phẳng cùng với lề tương ứng

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

17/117



Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

Với W là vector trọng số, W = {w1, w2,…, wn}, n là số thuộc tính, b là một giá trị vô
hướng. Đối với ví dụ ở trên, X = {x1, x2} ta có thể biểu diễn phương trình của siêu
phẳng phân tách như sau:
w0 + w1x1 + w2x2 = 0
Bất cứ đối tượng nào nằm về phía trên siêu phẳng sẽ có:
w0 + w1x1 + w2x2 > 0
và nằm về dưới siêu phẳng sẽ có:
w0 + w1x1 + w2x2 < 0
Các trọng số có thể được hiệu chỉnh sao cho các siêu phẳng định ra các mặt của lề
có thể được viết là:

Bất cứ đối tượng nào nằm trong H1 sẽ thuộc về lớp +1, nằm trong H2 sẽ thuộc về
lớp -1. Ta có thể biểu diễn bằng một công thức duy nhất sau đây cho H1 và H2:
yi ( w0 + w1 x1 + w2 x2 ) ≥ 1, ∀i (*)

Bất cứ đối tượng huấn luyện nào thỏa mãn bất đẳng thức trên được gọi là các
support vector.

Hình 1.5: Support vectors

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

18/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai


ở hình vẽ trên, các support vector là các phần tử với đường viền tròn bao ngoài. Về
bản chất thì các support vector là các phần tử khó phân loại nhất và chứa những
thông tin quan trọng nhất để phân loại. Vậy tìm kiếm MMH và các support vector
như thế nào? Ta có thể viết lại biểu thức (*) ở trên dưới dạng các ràng buộc của một
bài toán quy hoạch toàn phương lồi (convex quadratic optimization problem), sử
dụng các hệ số Lagrangian và giải quyết bài toán bằng điều kiện Karush-KuhnTucker (KKT). Ở đây, ta sẽ không đi sâu vào giải quyết bài toán này như thế nào,
chi tiết có thể tham khảo thêm trong các tài liệu chuyên ngành về toán học. Như vậy
giải quyết bài toán quy hoặc toàn phương là sẽ tìm ra các support vector với lề cực
đại và như vậy ta đã có một máy vector hỗ trợ đã được huấn luyện. MMH là một
vùng bao tuyến tính giữa các lớp, vì vậy SVM tương ứng có thể được sử dụng để
phân loại một cách tuyến tính dữ liệu phân tách được.
Sau khi đã có một support vector machine, ta có thể sử dụng nó để phân lớp
dữ liệu. Dựa vào các hệ số Lagrangian, MMH có thể được viết lại như sau:

Trong đó yi là nhãn lớp của vector Xi, XT là tập các phần tử để test; α i và b0 là các
giá trị của tham số tối ưu có được nhờ giải quyết bài toán quy hoạch toàn phương; l
là số lượng các support vector. Trong trường hợp dữ liệu khả tách tuyến tính,
support vectors là tập con của tập các phần tử thực sự để huấn luyện.
Với một phần tử kiểm tra, XT ta lắp nó vào công thức ở trên và kiểm tra dấu
của kết quả. Nếu dấu là dương thì phần tử thuộc về phần dương của siêu phẳng,
ngược lại nó thuộc về phần âm của siêu phẳng. Trong biểu thức kiểm tra dấu ở trên
phải tính tích vô hướng giữa support vector Xi với dữ liệu kiểm thử XT, điều này sẽ
có lợi cho việc tìm kiếm MMH và support vectors trong trương hợp dữ liệu không
khả tách tuyến tính sẽ được đề cập đến ngay sau đây.

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

19/117



Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

1.3.2.2. SVMs với dữ liệu không khả tách tuyến tính (linearly inseparable)
Sau đây là một ví dụ về trường hợp dữ liệu không khả tách tuyến tính

Hình 1.6: Dữ liệu không khả tách tuyến tính

Hướng tiếp cận đối với SVMs tuyến tính có thể được mở rộng để tạo ra SVMs
phi tuyến dùng cho việc phân loại dữ liệu không khả tách tuyến tính. Quá trình này
gồm 2 bước, ở bước thứ nhất, ta sẽ biến đổi tập dữ liệu ban đầu vào trong một
không gian với số chiều lớn hơn bằng một phép ánh xạ phi tuyến. Có một vài ánh
xạ phi tuyến thông dụng thường được sử dụng ở đây ta sẽ trình bày sau. Một khi dữ
liệu đã được biến đổi vào trong không gian mới, bước thứ 2 sẽ là tìm kiếm một siêu
phẳng phân tách tối ưu tuyến tính trong không gian mới này. Ở đây ta gặp lại bài
toán quy hoạch toàn phương. Siêu phẳng lề cực đại tìm được trong không gian mới
sẽ tương ứng với một mặt phân tách phi tuyến trong không gian ban đầu.
Sau đây ta xét một ví dụ về phép biến đổi phi tuyến dữ liệu đầu vào ban đầu
vào trong không gian mới với số chiều lớn hơn. Xét một vector đầu vào trong
không gian 3 chiều X = (x1, x2, x3) được ánh xạ vào không gian 6 chiều Z sử dụng
các

ánh

xạ

sau: φ1 ( X ) = x1 , φ2 ( X ) = x2 , φ3 ( X ) = x3 , φ4 ( X ) = ( x1 ) 2 , φ5 ( X ) = x1 x2 , φ6 ( X ) = x1 x3 . Một siêu
phẳng quyết định trong không gian mới là d(Z) = WZ + b, trong đó W và Z là các
vector. Tìm ra W và b sau đó thay thế trở lại trong không gian ban đầu thì siêu


Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

20/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

phẳng phân tách trong không gian Z sẽ ững với một hàm phi tuyến đa thức bậc 2
trong không gian 3-D ban đầu:

Ở đây gặp một số vấn đề, thứ nhất bằng cách nào có thể chọn ra một ánh xạ phi
tuyến vào trong một không gian có số chiều cao hơn? Thứ hai, chi phí tính toán liên
quan sẽ trở nên đáng kể. Quay lại với biểu thức:

Với mỗi phần tử cần kiểm tra dấu, ta phải thực hiện việc lấy tích vô hướng của nó
với tất cả các phần tử support vectors. Trong quá trình huấn luyện, ta phải tính sự
tương tự tích vô hướng một vài lần để tìm ra MMH, việc làm này tốn khá nhiều chi
phí bởi vì việc tính tích vô hướng chiếm khá nhiều tài nguyên, do vậy cần một kỹ
thuật khác. Rất may, ta có thể sử dụng các kỹ thuật liên quan đến toán học để giải
quyết vấn đề này. Trong việc tìm lời giải cho bài toán tối ưu hóa toàn phương cho
SVM tuyến tính, tập phần tử huấn luyện chỉ xuất hiện dưới dạng tích vô hướng
φ ( X i ).φ ( X j ) với φ ( X ) là một ánh xạ phi tuyến được áp dụng để biến đổi các đối

tượng huấn luyện. Thay vì tính toán tích chập (tích vô hướng) trên các dữ liệu đã
được biến đổi, ta có thể áp dụng một hàm nhân (kernel function) K(Xi, Xj) đối với
dữ liệu trong không gian ban đầu, tức là:

Như vậy, nếu φ ( X i ).φ ( X j ) xuất hiện trong giải thuật huấn luyện, ta có thể thay thế
nó bởi K(Xi, Xj), theo cách này tất cả công việc tính toán được thực hiện trong
không gian dữ liệu đầu vào ban đầu, nó sẽ có số chiều bé hơn rất nhiều so với

không gian mới. Ap dụng kỹ thuật này, sau đó ta có thể tìm kiếm siêu phẳng phân

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

21/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

tách tối ưu như đã đề cập đến trong trường hợp dữ liệu là khả tách tuyến tính. Vậy
có thể sử dụng những hàm nhân nào? Có 3 hàm nhân thường được sử dụng sau đây:

SVMs cũng có thể được áp dụng cho hồi quy phi tuyến và tuyến tính. Ở đây
thay vì học để dự đoán nhãn các lớp rời rạc (giống như yi ∈ {+1, -1}), SVMs đối với
regression cố gắng học mối quan hệ đầu ra-đầu vào đối với các dữ liệu đầu vào Xi
tương ứng với các giá trị liên tục đầu ra yi ∈ R, hướng tiếp cận sau đó tương tự như
trường hợp SVMs dùng trong classification.
Các nghiên cứu chính về SVMs thường tập trung vào việc nâng cao tốc độ
trong việc huấn luyện và kiểm tra, vì vậy SVMs có thể trở nên thiết thực hơn đối
với tập dữ liệu rất lớn (chẳng hạn hàng triệu support vectors). Các hướng khác bao
gồm việc quyết định hàm nhân tốt nhất cho một tập dữ liệu và tìm kiếm các
phương pháp hiệu quả hơn cho trường hợp đa lớp (multiclass).

1.4. Phân nhóm dữ liệu
1.4.1. Giới thiệu
Clustering[1] là quá trình gom nhóm dữ liệu vào trong các lớp (class) hay
còn gọi là các cụm (cluster), như vậy các đối tượng trong cùng một cluster sẽ rất
giống nhau trong khi các đối tượng thuộc về các cluster khác nhau sẽ rất khác nhau.
Sự khác nhau được xác định dựa trên các thuộc tính mô tả đối tượng, độ đo về
khoảng cách thường được sử dụng trong trường hợp này. Clustering xuất phát từ

nhiều lĩnh vực, gồm khai phá dữ liệu, thống kê, sinh vật học và học máy (machine
learning).
Trong lĩnh vực học máy thì clustering thuộc về phương pháp học không giám
sát (unsupervised learning). Không giống như bài toán phân lớp (classification),

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

22/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

clustering và phương pháp học không giám sát, nó không phụ thuộc vào các lớp đã
được ấn định trước cũng như các mẫu huấn luyện đã được gán nhãn. Cũng vì lý do
này, clustering là một dạng của học bằng quan sát (learning by observation) hơn là
học thông qua mẫu (learning by examples).
Trong khai phá dữ liệu, các nỗ lực tập trung vào các phương pháp clustering
áp dụng hiệu quả cho các cơ sở dữ liệu lớn. Các nghiên cứu thường chú trọng vào
tính vững vàng (scalability) của các phương pháp clustering, tính hiệu quả trong
việc phân tích các dữ liệu có cấu trúc phức tạp, các dữ liệu trong không gian đa
chiều… Clustering là một trong những hướng nghiên cứu mà các ứng dụng của nó
cần có những yêu cầu đặc biệt, sau đây là những yêu cầu thông thường của
clustering trong khai phá dữ liệu:
ƒ Tính vững vàng (Scalability): các phương pháp clustering làm việc tốt
không những đối với các dữ liệu bé mà còn có thể áp dụng cho các dữ
liệu lớn (gồm nhiều đối tượng)
ƒ Khả năng xử lý đối với các loại thuộc tính khác nhau: nhiều giải thuật
được thiết kế cho việc clustering các dữ liệu dạng số, tuy nhiên các
ứng dụng có thể yêu cầu clustering cho các loại dữ liệu khác, chẳng
hạn dữ liệu nhị phân…

ƒ Phát hiện ra các cluster với hình dạng bất kỳ: nhiều giải thuật
clustering xác định các cluster dựa trên độ đo Euclidean hoặc
Manhattan, các giải thuật này thường tìm kiếm các cluster dạng hình
cầu; tuy nhiên các cluster có thể có dạng bất kỳ và các giải thuật này
phải phát hiện được chúng
ƒ Tối thiểu hóa các yêu cầu cho tri thức lĩnh vực để quyết định các tham
số đầu vào: nhiều giải thuật clustering yêu cầu người dùng đưa vào
các tham số cần thiết và các kết quả thu được có thể phụ thuộc rất
nhiều vào các tham số đầu vào này. Các tham số này thường rất khó
ấn định, đặc biệt đối với các dữ liệu chứa các đối tượng trong không

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

23/117


Xử lý văn bản tiếng Việt theo mô hình tập thô dung sai

gian đa chiều. Đây không những là một gánh nặng đối với người sử
dụng mà còn khó cho việc xác định chất lượng của clustering
ƒ Khả năng xử lý với các dữ liệu có nhiễu
ƒ Gia tăng clustering và ít bị ảnh hưởng bởi thứ tự của các dữ liệu đầu
vào
ƒ Tính đa chiều
ƒ Clustering dựa trên các ràng buộc
ƒ Có thể hiểu được (interpretability) và có thể dùng được (usability)

1.4.2. Phân loại các phương pháp Clustering
Hiện nay tồn tại rất nhiều phương pháp clusering và thật khó để phân loại
một cách chính xác các phương pháp này thành các lớp riêng biệt bởi vì các lớp này

có thể phủ lên nhau làm cho mỗi phương pháp có thể mang một vài đặc trưng của
các lớp khác nhau. Mặc dầu vậy, việc đưa ra một sự phân loại tương đối về các
phương pháp clustering là cần thiết. Thông thường các phương pháp clustering
được phân loại thành các nhóm như sau:
Partitioning methods (các phương pháp phân hoạch): Cho một cơ sở dữ liệu
gồm n đối tượng, một phương pháp partitioning sẽ tạo ra k phân hoạch dữ liệu trong
đó mỗi phân hoạch tương ứng với một cluster và k ≤ n . Phương pháp này phân lớp
dữ liệu vào trong k nhóm và thỏa mãn các yêu cầu sau: (1) mỗi nhóm có ít nhất một
phần tử, (2) mỗi đối tượng phải hoàn toàn thuộc về một nhóm. Yêu cầu thứ 2 có thể
được nới lỏng trong một số phương pháp phân hoạch mờ (fuzzy partitioning).
Phương pháp partitioning tạo ra một phân hoạch ban đầu, sau đó sử dụng kỹ
thuật lặp tái định vị (iterative relocation technique) để hoàn thiện phân hoạch ban
đầu bằng cách di chuyển các đối tượng từ một nhóm sang nhóm khác. Một phân
hoạch tốt cần phải có các đối tượng trong cùng một cluster thì giống nhau hoặc rất
gần nhau, trong khi các đối tượng thuộc về các cluster khác nhau thì rất khác biệt.
Có rất nhiều tiêu chuẩn để đánh giá chất lượng của các phân hoạch tạo ra.
Để đạt được tối ưu tổng thể cần phải liệt kê đầy đủ tất cả các phân vùng; thay
vì làm điều này, phần lớn các ứng dụng lựa chọn một trong số các phương pháp

Học viên thực hiện: Trần Quang – Lớp CH CNTT 2007-2009

24/117


×