ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
NGUYỄN THANH XUÂN
SỬ DỤNG MÁY VECTOR HỖ TRỢ
PHÂN LOẠI CÔNG VĂN THEO LĨNH VỰC
Chuyên ngành: Khoa học máy tính
Mã số: 8480101
TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT
Đà Nẵng - Năm 2018
Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Người hướng dẫn khoa học: TS. PHẠM MINH TUẤN
Phản biện 1: TS. TRƯƠNG NGỌC CHÂU
Phản biện 2: TS. PHẠM XUÂN HẬU
Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ kỹ
thuật chuyên ngành Khoa học may tính họp tại Trường Đại học Bách khoa
Đà Nẵng vào ngày 05 tháng 01 năm 2018
Có thể tìm hiểu luận văn tại:
- Trung tâm Học liệu và Truyền thông Trường Đại học Bách khoa
Đại học Đà Nẵng tại
- Thư viện Khoa Công nghệ thông tin, Trường Đại học Bách khoa
Đại học Đà Nẵng
1
MỞ ĐẦU
1. Lý do chọn đề tài
Trong các cơ quan hành chính việc phân loại văn bản, công văn
theo lĩnh vực như: Công nghệ thông tin, Du lịch, Giao thông vận tải,
Giáo dục và đào tạo, … là công việc thực hiện hàng ngày, việc này
có thể được thực hiện bởi văn thư tại cơ quan, đơn vị tuy nhiên việc
này rất tốn nhiều công sức và có khi không chính xác. Do đó tính cấp
thiết cần phải có một công cụ phân loại tự động giúp cho công việc
này đơn giản, nhanh và chính xác.
Phân loại văn bản là một bài toán xử lý ngôn ngữ tự nhiên
nhưng nó được gắn liền với học máy bởi vì nó cũng thuộc bài toán
phân loại.
Việc phân loại văn bản tự động bằng tiếng anh đã được áp dụng
từ lâu, nhưng với văn bản tiếng việt thì có một số khó khăn hơn vì
văn bản tiếng việt có các từ ghép gây ra sự nhập nhằng về mặt ngữ
nghĩa trong quá trình tiền xử lý văn bản, trích chọn đặc trưng.
Vì những lý do như trên tôi đề xuất chọn đề tài luận văn cao
học:
“Ứng dụng máy vector hỗ trợ phân loại công văn theo lĩnh
vực”
2. Mục đích nghiên cứu
Nghiên cứu các bước giải quyết bài toán Machine Learning.
Nắm vững lý thuyết phân lớp trong Machine Learning, Máy
vector hỗ trợ.
Nắm vững cách trích chọn đặc trưng từ văn bản, công văn.
2
Xây dựng được phần mềm có thể phân loại văn bản, công
văn một cách chính xác nhất.
3. Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu bao gồm: Học máy áp dụng vào bài toán
phân loại, trích rút đặc trưng văn bản, ngôn ngữ lập trình và công cụ
xây dựng bài toán học máy và phân loại văn bản.
Phạm vi nghiên cứu: Nghiên cứu học máy, nghiên cứu kỹ thuật
phân loại, nghiên cứu các kỹ thuật chuẩn hóa văn bản, nghiên cứu
các kỹ thuật trích đặc trưng trong văn bản tiếng việt.
4. Phương pháp nghiên cứu
Phương pháp chính là nghiên cứu qua nguồn tư liệu đã xuất bản,
các bài báo đăng trên các tạp chí khoa học, sưu tập các tư liệu liên
quan đến vấn đề đang nghiên cứu trên mạng Internet. Xây dựng kho
dữ liệu dataset phục vụ cho việc training. Đánh giá độ chính xác của
thuật toán phân loại.
5. Ý nghĩa khoa học và ý nghĩa thực tiễn của luận văn
Nghiên cứu chuẩn hóa văn bản, trích rút đặc trung văn bản tiếng
việt cho bài toán nhận dạng, phân loại văn bản. Kết quả sẽ mở ra
cách trích rút đặc trung văn bản cho các nghiên cứu sau này.
6. Cấu trúc luận văn
Cấu trúc luận văn bao gồm phần Mở đầu, Kết luận và 3 chương
chính như sau:
Chương 1 - Cơ sở lý thuyết
Chương 2 - Ứng dụng máy vector hỗ trợ phân loại công
văn theo lĩnh vực
Chương 3 - Triển khai và đánh giá kết quả
3
Chương 1 - CƠ SỞ LÝ THUYẾT
1.1. GIỚI THIỆU
Phân loại văn bản [1] [2] là một bài toán thuộc về lĩnh vực Xử
lý ngôn ngữ tự nhiên [3] dưới dạng văn bản. Nhưng nó được gắn liền
với học máy (Machine Learning) [4] vì nó liên quan đến phân loại.
Bài toán phân loại văn bản được trình bày như sau: cho một tập
{
}. Kết quả của
gồm văn bản đầu vào ký hiệu:
việc phân loại là gán các văn bản vào một tập gồm
{
}
hiệu là:
phân lớp ký
Cũng giống như những bài toán học máy khác thì bài toán phân
loại văn bản cũng bao gồm hai bước đó là Huấn luyện (learning) [4]
và Phân loại (prediction) [4].
Hình 1.1: Mô hình bài toán phân loại văn bản, tài liệu
4
Bước thứ nhất là Huấn luyện (learning) [4] hay chính là cách
chúng ta sử dụng các kỹ thuật học máy để tìm ra được một model
hợp lý nhất cho bài toán phân loại, nó bao gồm các bước như sau:
Tiền xử lý văn bản [5]
o
Làm sạch dữ liệu
o
Tách từ (Words segmentation) [7]
Biểu diễn vector đặc trưng (Feature Extraction) [8]
Huấn luyện (learning) [8]
Bước thứ hai đó chính là đem mô hình thu được sau khi huấn
luyện ở bước thứ nhất, đi vào thực tế để xem nó có thực sự đủ tốt hay
không. Bước này bao gồm các bước xử lý văn bản ở bước 1, chỉ khác
một điều là không huấn luyện lại mô hình nữa mà sử dụng trực tiếp
mô hình có sẵn để dự đoán văn bản đưa vào và cho ra kết quả.
1.2. TIỀN XỬ LÝ VĂN BẢN
1.2.1. Xử lý ngôn ngữ tự nhiên
1.2.1.1. Lọc bỏ lỗi chính tả, lỗi kí tự
1.2.1.2. Loại bỏ những từ không mang nghĩa, lặp lại nhiều
trong văn bản (Stop Words)
1.2.1.3. Tách từ
1.2.2. Biểu diễn văn bản dưới dạng vector đặc trưng
1.2.2.1. Túi đựng từ (BoW)
1.2.2.2. TF-IDF
TF-IDF [10] là trọng số của một từ trong văn bản thu được qua
thống kê thể hiện mức độ quan trọng của từ này trong một văn bản,
mà bản thân văn bản đang xét nằm trong một tập hợp các văn bản.
TF: Term Frequency, là số lần term xuất hiện trong văn bản.
Cách tính TF như sau:
5
(
(
)
{ (
)
)}
Thương của số lần xuất hiện 1 từ trong văn bản và số lần xuất
hiện nhiều nhất của một từ bất kỳ trong văn bản đó. (giá trị sẽ thuộc
khoảng [0, 1])
(
)- số lần xuất hiện từ t trong văn bản d.
{ (
)}
- số lần xuất hiện nhiều nhất của một từ
bất kỳ trong văn bản.
IDF: inverse document frequency. Tần số nghịch của 1 từ trong
tập văn bản
(
| |
)
}|
|{
| |: - tổng số văn bản trong tập
|{
}|:- số văn bản chứa từ nhất định, với điều kiện
xuất hiện trong văn bản . Nếu từ đó không xuất hiện ở bất cứ một
văn bản nào trong tập thì mẫu số sẽ bằng 0 => phép chia cho không
không hợp lệ, vì thế người ta thường thay bằng mẫu thức
}|
1 + |{
Cơ số
trong công thức này không thay đổi giá trị của
một từ mà chỉ thu hẹp khoảng giá trị của từ đó. Vì thay đổi cơ số sẽ
dẫn đến việc giá trị của các từ thay đổi bởi một số nhất định và tỷ lệ
giữa các trọng lượng với nhau sẽ không thay đổi. Tuy nhiên việc thay
đổi khoảng giá trị sẽ giúp tỷ lệ giữa IDF và TF tương đồng để dùng
như bên dưới.
cho công thức
Giá trị TF-IDF:
(
)
(
)
(
)
6
Những từ có giá trị
cao là những từ xuất hiện nhiều
trong văn bản này, và xuất hiện ít trong các văn bản khác. Việc này
giúp lọc ra những từ phổ biến và giữ lại những từ có giá trị cao (từ
khoá của văn bản đó).
1.2.3. Giảm chiều dữ liệu
1.3. HỌC MÁY
1.3.1. Khái niệm
1.3.2. Các phương pháp học máy
1.3.2.1. Học không giám sát (Unsupervised Learning)
1.3.2.2. Học có giám sát (Supervised Learning)
1.3.2.3. Học bán giám sát (Semi-Supervised Learning)
1.3.2.4. Học tăng cường (Reinforcement learning)
1.4. MỘT SỐ GIẢI THUẬT HỌC MÁY PHÂN LOẠI VĂN
BẢN
1.5. MÁY VECTOR HỖ TRỢ (SVM)
1.5.1. Lý thuyết về máy vector hỗ trợ
Là một phương pháp dựa trên nền tảng cơ bản của lý thuyết
thống kê với hệ thống toán học chặt chẽ, V
được đảm bảo rằng
kết quả tìm được là chính xác. Với tính tổng quát cao,
V
là
phương pháp được áp dụng cho nhiều bài toán nhận dạng và phân
loại đối tượng.
1.5.1.1. Tổng quan về máy vector hỗ trợ
SVM [18] được biết đến là một công cụ mạnh mẽ trong những
bài toán phân lớp phi tuyến tính được các tác giả Vapnik và
Chervonenkis đề xuất vào năm 1995.
Về mặt học thuật, một hệ thống máy vector hỗ trợ xây dựng một
hoặc một tập hợp các siêu ph ng trong không gian một hoặc vô hạn
chiều, có thể được sử dụng cho ứng dụng phân loại, hồi quy hoặc các
7
nhiệm vụ cụ thể khác.
ột cách trực giác, để phân loại tốt nhất các
điểm trong không gian, khoảng cách từ siêu ph ng tới các điểm dữ
liệu của tất cả các lớp càng xa càng tốt, hay c n gọi là khoảng cách lề
càng lớn thì sai số tổng quát hóa của thuật toán càng bé.
1.5.1.2. Cơ sở lý thuyết
V
về bản chất là một bài toán tối ưu với mục tiêu tìm một
và siêu g ng
không gian
nằm trên
sao cho sai số phân loại
được cực tiểu hóa.
Với tập mẫu {(
)(
{
thuộc vào hai lớp nhãn:
(
biểu thị lớp ,
)
(
)} với
,
} là nhãn lớp tương ứng của các
biểu thị lớp
).
Ta có, phương trình siêu ph ng chứa vectơ Xi trong không gian:
( )
(
)
{
Như vậy, ( ) biểu diễn sự phân lớp của
nêu. Ta nói
nếu
. Khi đó, để có siêu ph ng
|| ||với
với
vào hai lớp như đã
và
nếu
ta sẽ phải giải bài toán sau: tìm
thỏa mãn điều kiện sau:
(
(
))
.
Bài toán
V
có thể giải bằng kỹ thuật sử dụng toán tử
Lagrange để biến đổi về thành dạng đ ng thức.
của V
ột đặc điểm thú vị
là mặt ph ng quyết định chỉ phụ thuộc các upport Vector
và nó có khoảng cách đến mặt ph ng quyết định là
|| || Cho d
các điểm khác bị xóa đi thì thuật toán vẫn cho kết quả giống như ban
đầu. Đây chính là điểm nổi bật của phương pháp V
so với các
8
phương pháp khác vì tất cả các dữ liệu trong tập huấn luyện đều
được đ ng để tối ưu hóa kết quả.
Tóm lại, trong trường hợp nhị phân phân tách tuyến tính, việc
phân lớp được thực hiện qua hàm quyết định
( )
(
) hàm này thu được bằng việc thay đổi vector chuẩn
đây là vector để cực đại hóa viền chức năng. Việc mở rộng V
,
để
phân đa lớp hiện nay vẫn đang được đầu tư nghiên cứu. Có một
phương pháp tiếp cận để giải quyết vấn để này là xây dựng và kết
hợp nhiều bộ phân lớp nhị phân SVM.
1.5.1.3. Bài toán phân lớp nhị phân với SVM
Bài toán đặt ra là: Xác định hàm phân lớp để phân lớp các mẫu
trong tương lai, nghĩa là với một mẫu dữ liệu mới xi thì cần phải xác
định xi được phân vào lớp
hay lớp
.
Để xác định hàm phân lớp dựa trên phương pháp V , ta sẽ
tiến hành tìm hai siêu ph ng song song sao cho khoảng cách y giữa
chúng là lớn nhất có thể để phân tách hai lớp này ra làm hai phía.
Hàm phân tách tương ứng với phương trình siêu ph ng nằm giữa hai
siêu ph ng tìm được:
Trong đó
Các điểm có nhãn
Các điểm có nhãn
và Các điểm tương
ứng với uport Vector.
Hình 1.2: Mô hình b i t n hân l
nh
hân s
n
9
Các điểm mà nằm trên hai siêu ph ng phân tách được gọi là các
upport Vector. Các điểm này sẽ quyết định đến hàm phân tách dữ
liệu.
1.5.1.4. Bài toán phân nhiều lớp với SVM
Để phân nhiều lớp thì kỹ thuật SVM nguyên thủy sẽ chia không
gian dữ liệu thành hai phần và quá trình này lặp lại nhiều lần. Khi đó
hàm quyết định phân lớp dữ liệu sẽ là:
( )
Những phần tử
là support vector sẽ thỏa
điều kiện
( )
{
Như vậy, bài toán phân nhiều lớp sử dụng V
có thể hiểu và
biến đổi thành bài toán phân hai lớp nếu ta coi một lớp là một tập dữ
liệu cần tìm c n lớp c n lại là tất cả các tập dữ liệu c n lại.
Đối với V
trong bài toán phân nhiều lớp chủ yếu sử dụng hai
chiến lược:
- Một với tất cả (
): mỗi mô hình phân lớp sẽ phân tách
một lớp từ các lớp khác. Do vậy nếu có k lớp sẽ có k mô hình tương
ứng.
- Một với một (
Với
lớp sẽ có
(
): mỗi mô hình phân tách thành hai lớp.
)
mô hình
1.5.1.5. Các bước chính của SVM
i n
l
liệu: Thực hiện biến đổi dữ liệu ph hợp cho quá
trình tính toán, tránh các số quá lớn mô tả các thuộc tính. Thường
nên co giãn (scaling) dữ liệu để chuyển về đoạn
hoặc
10
Ch n h m nhân (Kernel function): Lựa chọn hàm nhân ph hợp
tương ứng cho từng bài toán cụ thể để đạt được độ chính xác cao
trong quá trình phân lớp.
n
th m
h việ hu n lu ện v i tậ m u: Trong
quá trình huấn luyện sẽ sử dụng thuật toán tối ưu hóa khoảng cách
giữa các siêu ph ng trong quá trình phân lớp, xác định hàm phân lớp
trong không gian đặc trưng nhờ việc ánh xạ dữ liệu vào không gian
đặc trưng bằng cách mô tả hạt nhân, giải quyết cho cả hai trường hợp
dữ liệu là phân tách và không phân tách tuyến tính trong không gian
đặc trưng.
iểm th tậ
liệu hu n lu ện
1.5.1.6. So sánh và một số cải tiến
Về cơ bản, V
-
có hai đặc trưng cơ bản:
Luôn kết hợp với các dữ liệu có ý nghĩa lớp về mặt vật
lý, do đó có thể giải thích một cách tường minh.
-
Không cần thiết phải sử dụng bộ dữ liệu huấn luyện lớn,
tuy nhiên bất kì phương pháp nào có bộ dữ liệu huấn
luyện đủ lớn cũng đều cho kết quả tối ưu.
1.5.1.7. Một số ứng dụng của SVM
1.5.2. Hàm nhân (Kernel Function)
1.5.2.1. Khái niệm
Một hàm nhân là hàm
(
sao cho với mọi
)
〈 ( )
, ta đều có:
( )〉
Trong đó 〈 〉 là tích vô hướng trong không gian đặc trưng.
11
1.5.2.2. Hàm nhân trong máy học tuyến tính
1.5.2.3. Hàm nhân trong mô hình SVM
Kernel là một trong những hàm nhân trả về giá trị tích giữa các
ảnh của các điểm dữ liệu trên một vài không gian.
Bảng 1.1: Công thức các hàm nhân trong SVM
Gauss RBF
Đa thức
Sigmoidal
Inverse multi-quadric
(
)
(
)
(
)
(
)
‖
(
(〈
‖
〉
)
( 〈
√‖
)
〉
‖
)
12
Chương 2 - ỨNG DỤNG MÁY VECTOR HỖ TRỢ
PHÂN LOẠI CÔNG VĂN THEO LĨNH VỰC
2.1. BÀI TOÁN TRONG THỰC TẾ
Trên cơ sở lý thuyết đã được chỉ ra ở chương I, luận văn tiến
hành xây dựng ứng dụng phân loại văn bản tự động nhằm xác định
hiệu quả và khả năng tiếp cận với hiệu suất chấp nhận được khi ứng
dụng mô hình trên cơ sở thực tế.
Tập dữ liệu để training và testing được lấy từ dữ liệu văn bản
của tỉnh Quảng Bình được phân loại theo lĩnh vực một cách chính
xác nhất, sau đó chọn ra 10 lĩnh vực phổ biến để sử dụng.
Như đã tìm hiểu các phương pháp phân loại văn bản ở các
chương trước, tôi nhận thấy SVM là một phương pháp nhiều cải tiến,
có hiệu suất cao so với các phương pháp khác. Do đó, tôi chọn
phương pháp V để phát triển ứng dụng.
2.2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.2.1. Mục tiêu
Xây dựng được phần mềm đọc tự động văn bản với định dạng
Microsoft Word hoặc dạng text sau đó đưa ra được kết quả lĩnh vực
của văn bản đầu vào.
2.2.2. Mô hình hoạt động của phần mềm
13
Hình bên dưới thể hiện mô hình hoạt động của phần mềm. Ở mô
hình dưới có 2 luồng dữ liệu đó là training và predict. Ở luồng
training, người dùng cung cấp văn bản mẩu để cho chương trình học
để tạo ra model có thể dự đoán. Ở luồng predict, người dung cung
cấp văn bản cần phân loại, sau khi được xử lý văn bản thành vector
sẽ đưa vào phần mềm. Phần mềm sẽ trả về lĩnh vực thuộc văn bản
đầu vào một cách chính xác nhất.
Hình 2.1: Mô hình hoạt động của phần m m phân loại
2.2.3. Chức năng chính của phần mềm
2.2.3.1. Tiền xử lý văn bản
2.2.3.2. Học hàm phân loại văn bản
2.2.3.3. Phân loại văn bản
2.3. SỬ DỤNG MÁY VECTOR HỖ TRỢ ĐỂ PHÂN LOẠI
2.3.1. Tiền xử lý văn bản
2.3.1.1. Chuyển định dạng từ Word sang dạng text (.txt)
2.3.1.2. Làm sạch dữ liệu text
a) Loại bỏ các ký tự đặc biệt
Loại các ký tự không có ý nghĩa như “%@$.,=+!;/()*"&^:#|\n\t\'” và các chử số, khoảng trắng
b) X lý lỗi đ nh dạn văn bản
14
Cùng với đó là các văn bản không phải định dạng Unicode
(UTF-8) vì khi đưa vào phần mềm sẽ dẫn tới bị lỗi như bên dưới:
C¸c ho¹t ®éng cña TuÇn lÔ ph¶i ®¶m b¶o thiÕt thùc, hiÖu qu¶, tËp
trung h-íng vÒ c¬ së , doanh nghiÖp vµ ng-êi lao ®éng cïng chung
tay thùc hiÖn tèt c«ng t¸c b¶o ®¶m an toµn lao ®éng trong s¶n xuÊt,
tr¸nh h×nh thøc, l·ng phÝ. II. Chñ ®Ò vµ h×nh thøc tæ chøc: 1. Chñ ®Ò:
Chñ ®Ò ph¸t ®éng cña TuÇn lÔ quèc gia lÇn thø 16 lµ: "Suy nghÜ vµ
hµnh ®éng v× môc tiªu kh«ng tai n¹n lao ®éng, bÖnh nghÒ nghiÖp,
ch¸y næ t¹i n¬i lµm viÖc
Phần lớn các văn bản của cơ quan nhà nước tại Quảng Bình có
một số đơn vị không sử dụng Font chử Unicode (UTF-8) để soạn
thảo, mà sử dụng định dạng Font chữ khác, nên khi đưa vào phần
mềm phải xác định được văn bản nào có lỗi và tiến hành thay thế các
định dạng bị lỗi đó để cho văn bản có thể đọc được. Do đó ở bước
2.3.1.1 khi chuyển văn bản Word thành file text sẽ gặp các văn bản
bị lỗi định dạng, không thể đọc được, dẫn đến việc phân loại sai.
Chính vì thế ở bước này nếu gặp các văn bản có định dạng khi
chuyển sang file text bị lỗi như trên, phải thực hiện các bước để thay
thế các định dạng lỗi đó để trở thành file có ý nghĩa có thể đọc được.
Bằng các bước như sau:
Bước 1: Kiểm tra văn bản có bị lỗi định dạng Font chữ
không bằng cách xét tần số xuất hiện của các ký tự như là ¶,
×, Ç, Ö, ®, µ, … có nhiều trong văn bản, kết luận là văn bản đó
bị lỗi Font chữ
Trong khuôn khổ luận văn, tôi đánh giá những văn bản có
tỉ lệ ký tự lỗi so với toàn văn bản lớn hơn 10% là văn bản
lỗi định dạng
15
Bước 2: Thay thế các ký tự lỗi đó thành các ký tự có ý
nghĩa. Ta có bảng định dạng ký tự bị lỗi và các ký tự
Unicode thay thế ở phụ lục
Bước 3: Chuyển qua bước tiếp theo để tiến hành nhận dạng
văn bản.
2.3.1.3. Chuẩn hóa từ
Mục đích là đưa văn bản từ các dạng không đồng nhất về cùng
một dạng. Dưới góc độ tối ưu bộ nhớ lưu trữ và tính chính xác cũng
rất quan trọng.
Một việc quan trong nữa là định dạng tất cả các từ về dạng chử
thường, vì khi đưa vào chương trình sẽ có phân biệt hoa thường gây
nhập nhằng trong việc phân loại.
2.3.1.4. Tách từ
Trong tiếng Việt, dấu cách (space) không được sử dụng như 1
kí hiệu phân tách từ, nó chỉ có ý nghĩa phân tách các âm tiết với
nhau. Vì thế, để xử lý tiếng Việt, công đoạn tách từ (word
segmentation) là 1 trong những bài toán cơ bản và quan trọng bậc
nhất.
2.3.1.5. Loại bỏ các từ StopWords
StopWords là những từ xuất hiện nhiều trong ngôn ngữ tự
nhiên, tuy nhiên lại không mang nhiều ý nghĩa. Ở Tiếng Việt
StopWords là những từ như: để, này, kia...
Đối với ứng dụng phân loại văn bản, công văn trong cơ quan
nhà nước thì số lượng StopWords ngoài các từ thông dụng trong
Tiếng Việt thì sẽ có nhiều từ đặc thù của văn bản, công văn như là:
‘ủy ban nhân dân’, ‘đoàn thể’, ‘chủ tịch’, ‘phó chủ tịch’, ‘cộng hòa
xã hội chủ nghĩa việt nam’, … các địa danh của tỉnh
16
2.3.1.6. Vector hóa từ
Để vector hóa từ ta sử dụng Bag of Words, là một thuật toán hỗ
trợ xử lý ngôn ngữ tự nhiên và mục đích của BoW là phân loại text
hay văn bản. Ý tưởng của BoW là phân tích và phân nhóm dựa theo
"Bag of Words". Với test data mới, tiến hành tìm ra số lần từng từ
của test data xuất hiện trong "bag". Tuy nhiên BoW vẫn tồn tại
khuyết điểm, nên TF-IDF là phương pháp khắc phục.
2.3.2. Phân loại văn bản dựa vào máy vector hỗ trợ
Sau khi văn bản được vector hóa, bước này ta chọn một mô
hình, thuật toán học máy phân lớp đó là Máy vector hỗ trợ (SVM).
Dữ liệu văn bản được vector hóa sẽ được chia thành hai tập dữ
liệu gồm:
-
Dữ liệu training
-
Dữ liệu testing để đánh giá mô hình
Trong chương trình phân loại văn bản công văn này, tôi sử dụng
hàm nhân Linear (Hàm nhân tuyến tính).
2.3.3. Kiểm thử, đánh giá hàm phân loại
Việc kiểm thử, đánh giá này rất quan trọng giúp xác định được
độ chính xác của thuật toán. Giá trị của hàm phân loại được tính tại
các vector trong tập vector kiểm thử. Nếu giá trị của hàm phân loại
không âm thì vector đang xét là một vector văn bản công văn và
ngược lại. au đó, bằng cách so sánh với nhãn đúng của các vector
kiểm thử, ta tính được độ chính xác của hàm phân loại. Độ chính xác
này giúp quyết định có giữ lại hàm phân loại vừa học được hay là
phải thực hiện lại giải thuật xử lý văn bản và sử dụng thuật toán phân
loại khác.
17
Chương 2. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
3.1. MÔI TRƯỜNG TRIỂN KHAI
3.1.1. Bài toán
Trên cơ sở các vấn đề học thuật và phân tích thiết kế đã được
đưa ra trên đây, bản luận văn tiến hành xây dựng ứng dụng thực tế
“Xâ
ựng phần m m phân loại văn bản, ôn văn the lĩnh vực áp
d ng tại tỉnh Quảng Bình”.
3.1.2. Ngôn ngữ lập trình
3.1.3. Các thư viện hỗ trợ
3.1.3.1. scikit-learn
3.1.3.2. Words segmentation
3.1.3.3. Thư viện StopWords
3.1.3.4. Thư viện Pickle
3.1.4. Tập dữ liệu training và testing
Tôi sử dụng tập dữ liệu văn bản của tỉnh Quảng Bình được phân
chia thành 10 lĩnh vực khác nhau. Được phân chia tỉ lệ training và
testing như bảng dưới đây:
Bảng 2.1: Tập d liệu training và testing
STT Lĩnh vực
Tổng số
Training
Testing
1
CNTT và Viễn thông
45
30
15
2
Đất đai
289
239
50
3
Giáo dục đào tạo
236
199
37
4
Giao thông
121
97
24
5
Khoa học – Công nghệ
43
29
14
18
6
Nông nghiệp
247
209
38
7
Phòng chống lụt bảo
77
64
13
8
Thi đua – Khen thưởng
286
240
46
9
Xây dựng
186
159
27
10
Y tế
195
159
36
Tổng cộng
1725
1425
300
3.1.5. Hình ảnh Demo chương trình
Hình 2.2: Ứng d ng phân loại văn bản tự động trên n n Web
3.2. MÔ HÌNH PHÂN LOẠI VĂN BẢN
Luận văn tiến hành xây dựng mô hình phân loại văn bản theo
hai phương pháp dựa trên văn bản đầu vào huấn luyện và kiểm thử
để tiến hành đánh giá so sánh kết quả phân loại, nhằm chọn ra mô
hình phân loại có độ chính xác cao hơn. Hai phương pháp này chỉ
khác nhau ở bước làm sạch dữ liệu (2.3.1.1) ở phần tiền xử lý văn
- Xem thêm -