MỞ ĐẦU Ngày nay với sự phát triển như vũ bão của các ngành khoa học kỹ thuật, đặc biệt là sự phát triển nhanh chóng của mạng máy tính toàn cầu, một khối lượng dữ liệu khổng lồ vẫn hàng n
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Ngô Thương Huyền
PHÂN LỚP THƯ ĐIỆN TỬ
SỬ DỤNG MÁY VECTOR HỖ TRỢ
LUẬN VĂN THẠC SĨ
HÀ NỘI – 2007
Trang 2MỤC LỤC
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Ngô Thương Huyền
PHÂN LỚP THƯ ĐIỆN TỬ
Trang 3MỤC LỤC
Lời cảm ơn ii
Danh mục hình vẽ iv
Danh mục bảng biểu vi
MỞ ĐẦU 1
Chương 1 KHÁI QUÁT VỀ KHAI PHÁ DỮ LIỆU VĂN BẢN 3
1.1 Một số kiến thức về khai phá dữ liệu 3
1.1.1 Khái niệm khai phá dữ liệu 3
1.1.2 Các hướng tiếp cận và các dạng dữ liệu trong khai phá dữ liệu 6
1.2 Các bài toán trong khai phá dữ liệu văn bản 8
1.2.1 Tìm kiếm văn bản 8
1.2.2 Phân lớp văn bản 9
1.2.3 Một số bài toán khác 11
1.3 Khai phá dữ liệu Web 11
1.3.1 Nhu cầu 11
1.3.2 Đặc điểm 13
1.3.3 Các hướng tiếp cận 15
Chương 2 PHÂN LỚP VĂN BẢN 17
2.1 Bài toán phân lớp 17
2.1.1 Nhu cầu, ý tưởng 17
2.1.2 Quá trình phân lớp 18
2.2 Các giải pháp phân lớp điển hình 20
2.2.1 Thuật toán phân lớp Bayes 20
2.2.2 Thuật toán k-người láng giềng gần nhất 22
2.2.3 Phân lớp dựa vào cây quyết định 23
2.2.4 Chiết lọc thông tin theo mô hình Markov ẩn 26
Chương 3 BỘ PHÂN LỚP SỬ DỤNG MÁY VECTOR HỖ TRỢ 30
Trang 43.1 Biểu diễn văn bản dựa trên mô hình không quan vector 30
3.1.1 Giới thiệu 30
3.1.2 Mô hình Boolean 32
3.1.3 Mô hình tần số 33
3.2 Bộ phân lớp sử dụng vector hỗ trợ 34
3.2.1 Vector hỗ trợ 34
3.2.2 Thuật toán tạo siêu phẳng phân cách 35
Chương 4 ỨNG DỤNG VÀ THỰC NGHIỆM 42
4.1 Giới thiệu bài toán thực nghiệm 44
4.2 Dữ liệu và chương trình 44
4.3 Môi trường thực nghiệm 50
4.4 Kết quả thực nghiệm và đánh giá 51
4.4.1 Độ chính xác của bộ phân lớp khi thử nghiệm với tập kiểm tra 51 4.4.2 Độ chính xác của bộ phân lớp khi tăng dần tập dữ liệu học 56
KẾT LUẬN 59
TÀI LIỆU THAM KHẢO 57
Trang 5Danh mục hình vẽ
Hình 1 Lượng dữ liệu được tích lũy tăng mạnh theo thời gian
Hình 2 Các bước trong quá trình khám phá tri thức
Hình 3 Các nội dung trong khai phá Web
Hình 4 Mô hình của bài toán phân lớp
Hình 5 Mô hình học- phân tích một tập dữ liệu huấn luyện
Hình 6 Mô hình phân lớp-đánh giá độ chính xác của mô hình
Hình 7 Mối quan hệ giữa các siêu phẳng phân cách
Hình 8 Biên giới của siêu phẳng phân cách
Hình 9 Mô phỏng một điểm dữ liệu nhiễu
Hình 10 Minh họa cho trường hợp tập dữ liệu không thể phân tách tuyến tính Hình 11 Một minh họa khác bằng ảnh khi ánh xạ sang không gian mới ta có thể phân tách tuyến tính tập dữ liệu
Hình 12 Thực nghiệm với kiểu hàm nhân tuyến tính của người dùng Beck-s Hình 13 Đồ thị biểu diễn độ chính xác của bộ phân lớp SVM khi áp dụng các hàm nhân khác nhau
Hình 14 Sử dụng svm-train để huấn luyện trên tập dữ liệu huấn luyện train_scale.tr
Hình 15 Độ chính xác khi thử nghiệm trên tập kiểm tra của người dùng Becks
Hình 16 Độ chính xác khi thử nghiệm trên tập kiểm tra của người dùng William-w3
Hình 17 Đồ thị biểu diễn độ chính xác của bộ phân lớp SVM khi thử nghiệm với tập kiểm tra
Hình 18 Quá trình học sử dụng svm-train
Hình 19 Kết quả thực nghiệm khi tỉ lệ dữ liệu là 2:1 của người dùng Farmer
Trang 6Hình 20 Kết quả thực nghiệm khi tỉ lệ dữ liệu là 3:1 của người dùng Farmer Hình 21 Kết quả thực nghiệm khi tỉ lệ dữ liệu là 4:1 của người dùng Farmer Hình 22 Đồ thị biểu diễn độ chính xác của bộ phân lớp SVM với tỉ lệ dữ liệu Học/Kiểm tra tăng dần
Trang 7Danh mục bảng biểu
Bảng 1 Thống kê tập dữ liệu sử dụng
Bảng 2 Thống kê tập dữ liệu thử nghiệm
Bảng 3 Cấu hình máy tính
Bảng 4 Độ chính xác của bộ phân lớp ứng với từng hàm nhân
Bảng 5 Độ chính xác của bộ phân lớp khi thử nghiệm trên tập kiểm tra Bảng 6 Thống kê tập dữ liệu theo tỉ lệ phân chia dữ liệu học/dữ liệu kiểm tra Bảng 7 Độ chính xác của bộ phân lớp ứng với tỉ lệ phân chia dữ liệu
Trang 8MỞ ĐẦU
Ngày nay với sự phát triển như vũ bão của các ngành khoa học kỹ thuật, đặc biệt là sự phát triển nhanh chóng của mạng máy tính toàn cầu, một khối lượng dữ liệu khổng lồ vẫn hàng ngày được cập nhật liên tục, thường xuyên, nhằm đáp ứng một trong những nhu cầu không thể thiếu được của con người, đó là thông tin Và vì thế chúng ta đang được sống trong một xã hội bùng nổ thông tin, khi các ứng dụng công nghệ thông tin đã đi vào tới từng lĩnh vực của đời sống xã hội Trong đó Internet ngày càng khẳng định một sức mạnh vượt trội và đóng một vai trò quan trọng trong đời sống xã hội, kinh tế, chính trị, văn hoá, giáo dục… của con người Cùng với sự phát triển không ngừng đó, Internet đã và đang trở thành một kho thông tin khổng lồ về cả số lượng cũng như sự biến đổi nhanh chóng của nó, theo ước đoán thì cứ sau hai năm lượng thông tin lại tăng thêm gấp đôi
Thư điện tử là một dịch vụ phổ biến nhất trên Internet, nó giúp cho mọi người sử dụng máy tính kết nối Internet đều có thể trao đổi thông tin với nhau Ngày nay, khi mà Internet đã có mặt ở khắp mọi nơi thì việc sử dụng dịch vụ thư điện tử là việc hàng ngày đối với rất nhiều người trên khắp thế giới Ta biết rằng khi mạng Internet ra đời, những người sử dụng đầu tiên là các chuyên gia máy tính, họ cùng gửi nhiều email đến các nhóm người dùng khác nhau, sau đó mới có tình trạng không thể kiểm soát được các email gửi đến Vì vậy cần phải có các chương trình phân lớp các email theo thư mục người dùng hoặc lọc hay ngăn chặn những email mà người dùng không muốn nhận nhằm tăng chất lượng sử dụng
Trong lĩnh vực thư điện tử cá nhân, các kỹ thuật phân lớp văn bản cũng được áp dụng rất rộng rãi vào bài toán lọc thư rác Một số vấn đề khác liên
Trang 9quan đến thư điện tử như lọc các luồng thư điện tử, tự động tạo các thư mục mới cũng được nghiên cứu và giải quyết Hiện nay, bài toán phân lớp thư điện
tử vào các thư mục cũng đang được nhiều nhà nghiên cứu quan tâm
Trong luận văn này, chúng tôi ứng dụng phân lớp văn bản vào lĩnh vực thư điện tử nhằm giải quyết bài toán phân lớp tự động thư điện tử vào các lớp
do người dùng định nghĩa Lựa chọn thuật toán máy vector hỗ trợ (SVMs) với những ưu điểm và hiệu quả đã được chứng minh qua nhiều thực nghiệm về phân lớp văn bản, chúng tôi hy vọng SVMs có thể giải quyết các khó khăn của bài toán phân lớp email và đem lại kết quả khả quan
Luận văn được tổ chức thành 4 chương như sau:
Chương 1 trình bày khái quát về khai phá dữ liệu, các kỹ thuật và hướng tiếp cận chính trong khai phá dữ liệu và phân loại các hệ thống khai phá theo nhiều tiêu chí khác nhau Chương này cũng giới thiệu về các bài toán trong khai phá dữ liệu văn bản và khai phá dữ liệu Web
Chương 2 trình bày bài toán và quá trình phân lớp văn bản, đồng thời giới thiệu một số giải pháp phân lớp điển hình
Chương 3 giới thiệu phương pháp biểu diễn văn bản dựa trên mô hình không quan vector và tập trung nghiên cứu, khảo sát phương pháp máy vector
hỗ trợ, đây là tiền đề để thực hiện việc thực nghiệm cho luận văn này
Chương 4 trình bày về mô hình phân lớp thư điện tử và áp dụng đối với một bộ dữ liệu đã được công bố Từ các kết quả thực nghiệm, đưa ra đánh giá
hệ thống phân lớp nói trên
Trang 10CHƯƠNG 1 KHÁI QUÁT VỀ KHAI PHÁ DỮ LIỆU VĂN BẢN
1.1 Một số kiến thức về khai phá dữ liệu
1.1.1 Khái niệm khai phá dữ liệu
Trong những thập kỷ gần đây, lượng thông tin được lưu trữ trên các thiết bị điện tử (đĩa cứng, CD-ROM, băng từ, v.v.) không ngừng tăng lên
Sự tích lũy dữ liệu này xảy ra với một tốc độ bùng nổ Người ta ước đoán rằng, lượng thông tin trên toàn cầu tăng gấp đôi sau khoảng hai năm và theo
đó số lượng cũng như kích cỡ của các cơ sở dữ liệu cũng tăng lên một cách nhanh chóng [5]
Hình 1 - Lượng dữ liệu được tích lũy tăng mạnh theo thời gian
Chúng ta quả thực đang sở hữu một khối lượng dữ liệu khổng lồ, nhưng lại luôn cảm thấy thiếu những thông tin hữu ích Lượng dữ liệu khổng lồ này thực sự là một nguồn “tài nguyên” rất giá trị bởi thông tin là yếu tố then chốt trong mọi hoạt động trước khi ra quyết định Khai phá dữ liệu – khai thác những thông tin tiềm ẩn có tính dự đoán từ những cơ sở dữ liệu lớn – là một hướng tiếp cận mới với khả năng giúp các công ty chú trọng vào những thông tin có nhiều ý nghĩa từ những tập dữ liệu lớn (databases, data warehouses, data repositories) mang tính lịch sử Những công cụ khai phá dữ liệu có thể
dự đoán những xu hướng trong tương lai và do đó cho phép doanh nghiệp ra những quyết định kịp thời được định hướng bởi tri thức mà khai phá dữ liệu
Trang 11đem lại Sự phân tích dữ liệu một cách tự động và mang tính dự báo của khai phá dữ liệu có ưu thế hơn hẳn so với sự phân tích thông thường dựa trên những sự kiện trong quá khứ của các hệ hỗ trợ ra quyết định (Decision Support Systems - DSSs) truyền thống trước đây Công cụ khai phá dữ liệu cũng có thể trả lời những câu hỏi trong lĩnh vực kinh doanh mà trước đây được xem là tốn nhiều thời gian để xử lý Với tất cả những ưu thế trên, khai phá dữ liệu đã 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 Giờ đây, khai phá dữ liệu đã và đang trở thành một trong những hướng nghiên cứu chính của lĩnh vực khoa học máy tính và công nghệ tri thức
a) Định nghĩa Khai phá dữ liệu
Có thể hiểu một cách sơ lược rằng khai phá dữ liệu là quá trình tìm kiếm những thông tin (tri thức) hữu ích, tiềm ẩn và mang tính dự báo trong các tập dữ liệu lớn Như vậy, các nhà khoa học cho rằng nên gọi quá trình này
là khám phá tri thức (Knowledge Discovery in Databases – KDD) thay vì là
khai phá dữ liệu Tuy nhiên các nhà khoa học trong lĩnh vực này đồng ý với nhau rằng hai thuật ngữ trên là tương đương và có thể thay thế cho nhau Họ
lý giải rằng, mục đích chính của quá trình khám phá tri thức là thông tin và tri thức có ích, nhưng đối tượng mà cần phải xử lý rất nhiều trong suốt quá trình
Trang 12“Khai phá dữ liệu được định nghĩa như quá trình chắt lọc hay khám phá tri thức từ một lượng lớn dữ liệu” (J Han và M Kamber [10])
b) Các bước chính trong Khám phá tri thức (KDD)
Người ta thường chia quá trình khám phá tri thức thành các bước sau [5][10][12]:
Trích chọn dữ liệu (data selection): là bước trích chọn những tập dữ
liệu cần được khai phá từ các tập dữ liệu lớn (databases, data warehouses, data repositories) ban đầu theo một số tiêu chí nhất định
Tiền xử lý dữ liệu (data preprocessing): là bước làm sạch dữ liệu (xử lý
với dữ liệu không đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán, v.v.), rút gọn dữ liệu (sử dụng hàm nhóm và tính tổng, các phương pháp nén dữ liệu, sử dụng histograms, lấy mẫu, v.v.), rời rạc hóa dữ liệu (rời rạc hóa dựa vào histograms, dựa vào entropy, dựa vào phân khoảng, v.v.) Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn, và được rời rạc hóa
Biến đổi dữ liệu (data transformation): đây là bước chuẩn hóa và làm
mịn dữ liệu để đưa dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho các kỹ thuật khai phá ở bước sau
Khai phá dữ liệu (data mining): đây là bước áp dụng những kỹ thuật
khai phá (phần nhiều là các kỹ thuật của machine learning) để khai phá, trích chọn được những mẫu (patterns) thông tin, những mối liên hệ (relationships) đặc biệt trong dữ liệu Đây được xem là bước quan trọng và tốn nhiều thời gian nhất của toàn quá trình khai phá dữ liệu
Biểu diễn và đánh giá tri thức (knowledge representation &
evaluation): những mẫu thông tin và mối liên hệ trong dữ liệu đã được khai phá ở bước trên được chuyển dạng và biểu diễn ở một dạng gần gũi với người sử dụng như đồ thị, cây, bảng biểu, luật, v.v Đồng thời bước này cũng đánh giá những tri thức khám phá được theo những tiêu chí nhất định
Trang 13Hình 2 - Các bước trong quá trình khám phá tri thức (KDD)
1.1.2 Các hướng tiếp cận và các dạng dữ liệu trong Khai phá dữ liệu
a) Các hướng tiếp cận
Khai phá dữ liệu tuy là một hướng tiếp cận mới nhưng thu hút được rất nhiều sự quan tâm của các nhà nghiên cứu và phát triển nhờ vào những ứng dụng thực tiễn của nó Phạm vi ứng dụng ban đầu của nó chỉ là trong lĩnh vực thương mại (bán lẻ) và tài chính (thị trường chứng khoán) Nhưng ngày nay
đã được ứng dụng rộng rãi trong rất nhiều những lĩnh vực khác nhau Hướng tiếp cận của khai phá dữ liệu có thể được phân chia theo chức năng hay phân chia theo lớp các bài toán khác nhau Sau đây là một số hướng tiếp cận chính[10]:
Phân lớp và dự đoán (classification & prediction): xếp một đối tượng
vào một trong những lớp đã biết trước Ví dụ: phân lớp vùng địa lý theo dữ liệu thời tiết Hướng tiếp cận này thường sử dụng một số kỹ
thuật của machine learning như cây quyết định (decision tree), mạng nơron nhân tạo (neural network), v.v Phân lớp còn được gọi là học
có giám sát (học có thầy – supervised learning)
Trang 14 Mô tả khái niệm (concept description): thiên về mô tả, tổng hợp và tóm
tắt khái niệm Ví dụ: tóm tắt văn bản
Luật kết hợp (association rules): là dạng luật biểu diễn tri thức ở dạng
khá đơn giản Ví dụ: “50% số tội phạm giết người là nhằm mục đích cướp của” Luật kết hợp được ứng dụng nhiều trong lĩnh vực kinh doanh, y học, tin-sinh, tài chính và thị trường chứng khoán, v.v
Khai phá chuỗi theo thời gian (sequential/temporal patterns): tương tự
như khai phá luật kết hợp nhưng có thêm tính thứ tự và tính thời gian Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính dự báo cao
Phân cụm (clustering/segmentation): xếp các đối tượng theo từng cụm (số lượng cũng như tên của cụm chưa được biết trước) Phân cụm còn
được gọi là học không giám sát (học không có thầy – unsupervised learning)
b) Các dạng dữ liệu có thể khai phá
Do khai phá dữ liệu được ứng dụng rộng rãi nên nó có thể làm việc với rất nhiều kiểu dữ liệu khác nhau[10] Sau đây là một số kiểu dữ liệu điển hình:
CSDL quan hệ (relational databases)
CSDL đa chiều (multidimensional structures, data warehouses)
CSDL dạng giao dịch (transactional databases)
CSDL quan hệ - hướng đối tượng (object-relational databases)
Dữ liệu không gian và thời gian (spatial and temporal data)
Dữ liệu chuỗi thời gian (time-series data)
CSDL đa phương tiện (multimedia databases) như âm thanh (audio), hình ảnh (image), phim ảnh (video), v.v
Dữ liệu Text và Web (text database & www)
Trang 151.2 Các bài toán trong khai phá dữ liệu văn bản
1.2.1 Tìm kiếm văn bản
a Nội dung
Tìm kiếm văn bản là quá trình tìm kiếm văn bản theo yêu cầu của người dùng Các yêu cầu được thể hiện dưới dạng các câu hỏi (query), dạng câu hỏi đơn giản nhất là các từ khóa Có thể hình dung hệ tìm kiếm văn bản sắp xếp văn bản thành hai lớp: Một lớp cho ra những các văn bản thỏa mãn với câu hỏi đưa ra và một lớp không hiển thị những văn bản không được thỏa mãn Các hệ thống thực tế hiện nay không hiển thị như vậy mà đưa ra các danh sách văn bản theo độ quan trọng của văn bản tuỳ theo các câu hỏi đưa vào, ví dụ điển hình là các máy tìm tin như Google, Altavista,…
b Quá trình tìm kiếm
Quá trình tìm tin được chia thành bốn quá trình chính :
Đánh chỉ số (indexing): Các văn bản ở dạng thô cần được chuyển sang
một dạng biểu diễn nào đó để xử lý Quá trình này còn được gọi là quá trình biểu diễn văn bản, dạng biểu diễn phải có cấu trúc và dễ dàng khi xử lý
Định dạng câu hỏi: Người dùng phải mô tả những yêu cầu về lấy
thông tin cần thiết dưới dạng câu hỏi Các câu hỏi này phải được biểu diễn dưới dạng phổ biến cho các hệ tìm kiếm như nhập vào các từ khóa cần tìm Ngoài ra còn có các phương pháp định dạng câu hỏi dưới dạng ngôn ngữ tự nhiên hoặc dưới dạng các ví dụ, đối với các dạng này thì cần có các kỹ thuật
xử lý phức tạp hơn Trong các hệ tìm tin hiện nay thì đại đa số là dùng câu hỏi dưới dạng các từ khóa
So sánh: Hệ thống phải có sự so sánh rõ ràng và hoàn toàn câu hỏi các
câu hỏi của người dùng với các văn bản được lưu trữ trong cơ sở dữ liệu Cuối cùng hệ đưa ra một quyết định phân loại các văn bản có độ liên quan
Trang 16gần với câu hỏi đưa vào và thứ tự của nó Hệ sẽ hiển thị toàn bộ văn bản hoặc chỉ một phần văn bản
Phản hồi: Nhiều khi kết quả được trả về ban đầu không thỏa mãn yêu
cầu của người dùng, do đó cần phải có quá trình phản hồi để người dùng có thể thay đổi lại hoặc nhập mới các yêu cầu của mình Mặt khác, người dùng
có thể tương tác với các hệ về các văn bản thỏa mãn yêu cầu của mình và hệ
có chức năng cập nhật các văn bản đó Quá trình này được gọi là quá trình phản hồi liên quan (Relevance feeback)
Các công cụ tìm kiếm hiện nay chủ yếu tập trung nhiều vào ba quá trình đầu, còn phần lớn chưa có quá trình phản hồi hay xử lý tương tác người dùng và máy Quá trình phản hồi hiện nay đang được nghiên cứu rộng rãi và riêng trong quá trình tương tác giao diện người máy đã xuất hiện hướng nghiên cứu là interface agent
1.2.2 Phân lớp văn bản
a Nội dung
Phân lớp văn bản được xem như là quá trình gán các văn bản vào một hay nhiều văn bản đã xác định từ trước Người ta có thể phân lớp các văn bản một cách thủ công, tức là đọc từng văn bản một và gán nó vào một lớp nào
đó Cách này sẽ tốn rất nhiều thời gian và công sức đối với nhiều văn bản và
do đó không khả thi Do vậy mà phải có các phương pháp phân lớp tự động
Để phân lớp tự động người ta sử dụng các phương pháp học máy trong trí tuệ nhân tạo (Cây quyết định, Bayes, k-người láng giềng gần nhất )
Một trong những ứng dụng quan trọng nhất của phân lớp văn bản là trong tìm kiếm văn bản Từ một tập dữ liệu đã phân lớp, các văn bản sẽ được đánh chỉ số đối với từng lớp tương ứng Người dùng có thể xác định chủ đề hoặc phân lớp văn bản mà mình mong muốn tìm kiếm thông qua các câu hỏi
Trang 17Một ứng dụng khác của phân lớp văn bản là trong lĩnh vực tìm hiểu văn bản Phân lớp văn bản có thể được sử dụng để lọc các văn bản hoặc một phần các văn bản chứa dữ liệu cần tìm mà không làm mất đi tính phức tạp của ngôn ngữ tự nhiên
Trong phân lớp văn bản, một lớp có thể được gán giá trị đúng, sai (True hay False hoặc văn bản thuộc hay không thuộc lớp) hoặc được tính theo mức độ phụ thuộc (văn bản có một mức độ phụ thuộc vào lớp) Trong trường hợp có nhiều lớp thì phân loại đúng, sai sẽ là việc xem một văn bản có thuộc vào một lớp duy nhất nào đó hay không
b Quá trình phân lớp
Quá trình phân lớp văn bản tuân theo các bước sau:
Đánh chỉ số (Indexing): Quá trình đánh chỉ số văn bản cũng giống như
trong quá trình đánh chỉ số của tìm kiếm văn bản Trong phần này thì tốc độ đánh chỉ số đóng vai trò quan trọng vì một số các văn bản mới có thể cần được xử lý trong thời gian thực
Xác định độ phân lớp: Cũng giống như trong tìm kiếm văn bản, phân
lớp văn bản yêu cầu quá trình diễn tả việc xác định văn bản đó thuộc lớp nào
đó như thế nào, dựa trên cấu trúc biểu diễn của nó Đối với hệ phân lớp văn bản, quá trình này do bộ phân lớp (classifier) thực hiện Bộ phân lớp đóng vai trò như hệ trả lời câu hỏi trong hệ tìm kiếm Nhưng trong khi các hệ trả lời câu hỏi mang tính nhất thời, thì bộ phân lớp được sử dụng một cách ổn định
và lâu dài cho quá trình phân lớp
So sánh: Trong hầu hết các bộ phân loại, mỗi văn bản đều được yêu
cầu gán đúng, sai vào một lớp nào đó Sự khác nhau lớn nhất đối với quá trình
so sánh trong hệ tìm kiếm văn bản là mỗi văn bản chỉ được so sánh với một số lượng các lớp một lần và việc chọn quyết định phù hợp còn phụ thuộc vào mối quan hệ giữa các lớp văn bản
Trang 18Phản hồi (Hay thích nghi): Quá trình phản hồi đóng vai trò trong hệ
phân lớp văn bản Thứ nhất là khi phân loại thì phải có một số lượng lớn các văn bản đã được xếp loại bằng tay trước đó, các văn bản này được sử dụng làm mẫu huấn luyện để hỗ trợ xây dựng bộ phân loại Thứ hai là đối với việc phân loại văn bản này không dễ dàng thay đổi các yêu cầu như trong quá trình phản hồi của tìm kiếm văn bản, người dùng có thể thông tin cho người bảo trì
hệ thống về việc xóa bỏ, thêm vào hoặc thay đổi các phân lớp văn bản nào đó
đã trở thành một trong những kênh về khoa học, thông tin kinh tế, thương mại
Trang 19và quảng cáo Một trong những lý do cho sự phát triển này là giá cả tiêu tốn khi công khai một trang Web trên Internet là khá thấp So sánh với những dịch vụ khác như phát tờ rơi hay quảng cáo trên một tờ báo hay tạp chí, thì một trang Web rẻ hơn rất nhiều và cập nhật nhanh chóng hơn tới hàng triệu người dùng khắp mọi nơi trên thế giới Có thể nói trang Web như là cuốn từ điển Bách khoa toàn thư Thông tin trên các trang Web đa dạng về mặt nội dung cũng như hình thức Có thể nói Internet như một xã hội ảo, nó bao gồm các thông tin về mọi mặt của đời sống kinh tế, xã hội được trình bày dưới dạng văn bản, âm thanh, hình ảnh
Tuy nhiên, cùng với sự đa dạng và số lượng lớn thông tin như vậy đã nảy sinh vấn đề quá tải thông tin Người ta không thể tìm tự kiếm địa chỉ trang Web chứa thông tin mà mình cần, do vậy đòi hỏi cần phải có một trình tiện ích quản lý nội dung của các trang Web và cho phép tìm thấy các địa chỉ trang Web có nội dung giống với yêu cầu của người tìm kiếm Các tiện ích này quản lý dữ liệu như các đối tượng phi cấu trúc Hiện nay, người sử dụng rất quen thuộc với không ít các tiện ích như vậy đó là: Yahoo, Google, Alvista, v.v
Mặt khác, giả sử chúng ta có các trang Web về các vấn đề Tin học, Thể thao, Kinh tế - Xã hội và Xây dựng Căn cứ vào nội dung của các tài liệu mà khách hàng xem hoặc download về, sau khi phân lớp, chúng ta sẽ biết khách hàng hay tập trung vào nội dung gì trên trang Web của chúng ta, từ đó chúng ta sẽ bổ sung thêm nhiều các tài liệu về các nội dung mà khách hàng quan tâm và ngược lại Còn về phía khách hàng sau khi phân tích, chúng ta cũng biết được khách hàng hay tập trung về vấn đề gì, để từ đó có thể đưa ra những hỗ trợ thêm cho khách hàng đó Từ những nhu cầu thực tế trên, phân lớp và khai phá Web vẫn là bài toán hay và cần tiếp tục phát triển, nghiên cứu
Trang 20đã đưa ra các số liệu như sau: Hiện nay trên Internet có khoảng hơn một tỷ các trang Web được cung cấp cho người sử dụng, giả sử kích thước trung bình của mỗi trang là 5-10Kb thì tổng kích thước của nó ít nhất là khoảng 10 terabyte Còn tỷ lệ tăng của các trang Web thì thật sự gây ấn tượng Hai năm gần đây số các trang Web tăng gấp đôi và còn tiếp tục tăng trong các năm tới Nhiều tổ chức và xã hội đặt hầu hết những thông tin công cộng của họ lên Web Như vậy việc xây dựng một kho dữ liệu (datawarehouse) để lưu trữ, sao chép hay tích hợp các dữ liệu trên Web là gần như không thể
b) Độ phức tạp của trang Web lớn hơn rất nhiều so với những tài liệu văn bản truyền thống khác
Các dữ liệu trong các cơ sở dữ liệu truyền thống thì thường là loại dữ liệu đồng nhất (về ngôn ngữ, định dạng,…), còn dữ liệu Web thì hoàn toàn không đồng nhất Ví dụ về ngôn ngữ dữ liệu Web bao gồm rất nhiều loại ngôn ngữ khác nhau (Cả ngôn ngữ diễn tả nội dung lẫn ngôn ngữ lập trình), nhiều loại định dạng khác nhau (Text, HTML, PDF, hình ảnh, âm thanh,…), nhiều
Trang 21loại từ vựng khác nhau (Địa chỉ Email, các liên kết (links), các mã nén (zipcode), số điện thoại)
Nói cách khác, trang Web thiếu một cấu trúc thống nhất Chúng được coi như một thư viện kỹ thuật số rộng lớn, tuy nhiên con số khổng lồ các tài liệu trong thư viện thì không được sắp xếp tuân theo một tiêu chuẩn đặc biệt nào, không theo phạm trù, tiêu đề, tác giả, số trang hay nội dung Điều này là một thử thách rất lớn cho việc tìm kiếm thông tin cần thiết trong một thư viện như thế
c) Web là một nguồn tài nguyên thông tin có độ thay đổi cao
Web không chỉ có thay đổi về độ lớn mà thông tin trong chính các trang Web cũng được cập nhật liên tục Theo kết quả nghiên cứu, hơn 500.000 trang Web trong hơn 4 tháng thì 23% các trang thay đổi hàng ngày,
và khoảng hơn 10 ngày thì 50% các trang trong tên miền đó biến mất, nghĩa là địa chỉ URL của nó không còn tồn tại nữa Tin tức, thị trường chứng khoán, các công ty quảng cáo và trung tâm phục vụ Web thường xuyên cập nhật trang Web của họ Thêm vào đó sự kết nối thông tin và sự truy cập bản ghi cũng được cập nhật
d) Web phục vụ một cộng đồng người dùng rộng lớn và đa dạng
Internet hiện nay nối với khoảng 50 trạm làm việc, và cộng đồng người dùng vẫn đang nhanh chóng lan rộng Mỗi người dùng có một kiến thức, mối quan tâm, sở thích khác nhau Nhưng hầu hết người dùng không có kiến thức tốt về cấu trúc mạng thông tin, hoặc không có ý thức cho những tìm kiếm, rất dễ bị "lạc" khi đang "mò mẫm" trong "bóng tối" của mạng hoặc sẽ chán khi tìm kiếm mà chỉ nhận những mảng thông tin không mấy hữu ích
e) Chỉ một phần rất nhỏ của thông tin trên Web là thực sự hữu ích
Theo thống kê, 99% của thông tin Web là vô ích với 99% người dùng Web Trong khi những phần Web không được quan tâm lại bị thống kê vào
Trang 22kết quả nhận được trong khi tìm kiếm Vậy thì ta cần phải khai phá Web như thế nào để nhận được trang Web chất lượng cao nhất theo tiêu chuẩn của người dùng?
Như vậy chúng ta có thể thấy các điểm khác nhau giữa việc tìm kiếm trong một cơ sở dữ liệu truyền thống với việc tìm kiếm trên Internet Những thách thức trên đã đẩy mạnh việc nghiên cứu khai phá và sử dụng tài nguyên trên Internet
f) Web bao gồm không chỉ có các trang mà còn có cả các hyperlink trỏ từ trang này tới trang khác Khi một tác giả tạo một hyperlink từ trang của
mình tới một trang A có nghĩa là A là trang có hữu ích với vấn đề đang bàn luận Nếu trang A càng nhiều Hyperlink từ trang khác trỏ đến chứng tỏ trang
A quan trọng Vì vậy số lượng lớn các thông tin liên kết trang sẽ cung cấp một lượng thông tin lớn về mối liên quan, chất lượng, cấu trúc của nội dung trang Web, và đó là một nguồn tài nguyên lớn cho khai phá Web
g) Máy chủ Web thường đăng ký một bản ghi đầu vào (Weblog entry) cho mọi lần truy cập trang Web Nó bao gồm địa chỉ URL, địa chỉ IP,
timestamp Dữ liệu Weblog cung cấp lượng thông tin lớn về những trang Web động Với những thông tin về địa chỉ URL, địa chỉ IP,… một cách hiển thị đa chiều có thể được cấu trúc nên dựa trên cơ sở dữ liệu Weblog Thực hiện phân tích OLAP (Online Analytical Processing) đa chiều có thể đưa ra N người dùng cao nhất, N trang Web truy cập nhiều nhất, khoảng thời gian nhiều người truy cập nhất và xu hướng truy cập Web
1.3.3 Các hướng tiếp cận
Như đã phân tích về đặc điểm và nội dung các văn bản HyperText ở trên, từ đó khai phá dữ liệu Web cũng sẽ tập trung vào các thành phần có trong trang Web Đó chính là:
Trang 23a) Khai phá nội dung trang Web (Web Content mining), gồm hai
phần:
* Web Page Content: nghĩa là sẽ sử dụng chỉ các từ trong văn bản mà
không tính đến các liên kết giữa các văn bản Đây chính là khai phá dữ liệu
Text (Textmining)
* Search Result: tìm kiếm theo kết quả Trong các máy tìm kiếm, sau
khi đã tìm ra những trang Web thoả mãn yêu cầu người dùng, còn một công việc không kém phần quan trọng, đó là phải sắp xếp kết quả theo thứ tự độ gần nhau với nội dung cần tìm kiếm Đây cũng chính là khai phá nội dung trang Web
b) Khai phá cấu trúc trang Web (Web Structure Mining)
Khai phá dựa trên các siêu liên kết giữa các văn bản có liên quan
c) Khai phá cách truy cập trang Web (Web Usage Mining)
* General Access Partern Tracking: Phân tích các Web log để khám
phá ra các mẫu truy cập của người dùng trong trang Web
* Customize Usage Tracking: Phân tích các mẫu truy cập của người
dùng tại mỗi thời điểm để biết xu hướng truy cập trang Web của từng đối tượng người dùng tại mỗi thời điểm khác nhau
Hình 3 Các nội dung trong khai phá Web
Web Structure Mining
Web Content Mining
Web Page Content Mining
Search Result Mining
Web Usage Mining
General Access Pattern Tracking
Customized Usage Tracking
Web Mining
Trang 24CHƯƠNG 2 PHÂN LỚP VĂN BẢN
Phân lớp văn bản được định nghĩa như là việc gán các nội dung biết trước vào các văn bản Text dựa trên nội dung của nó Phân lớp văn bản được
sử dụng để hỗ trợ trong quá trình tìm kiếm thông tin, chắt lọc thông tin, lọc văn bản hoặc dẫn đường cho các văn bản tới những chủ đề được xác định trước
2.1 Bài toán phân lớp
2.1.1 Nhu cầu, ý tưởng
Thực tế cho thấy rằng, với số lượng các tài liệu thông tin càng ngày càng trở nên khổng lồ Việc tìm kiếm thông tin, và trích chọn thông tin trở nên cực kỳ khó khăn Do đó, việc phân chia các tài liệu thành các lớp (class)
theo các chủ đề cho trước sẽ giúp ích được rất nhiều trong các công việc này
Đó chính là cơ sở cho việc phân lớp các tài liệu, nhờ việc các tài liệu được gán các nhãn lớp thích hợp mà chúng ta có thể định hướng để việc tìm kiếm
và trích chọn thông tin, tài liệu chính xác và nhanh chóng hơn so với việc phải tìm kiếm “mù” trên toàn bộ các tài liệu
Ý tưởng của việc phân lớp được xuất phát từ ý tưởng tự nhiên: chia sự vật thành các lớp đối tượng “tương đồng” khác nhau để quản lý và sử dụng một cách thuận tiện hơn Giải thuật phân lớp là một phép ánh xạ cơ sở dữ liệu
đã có sang một miền giá trị cụ thể nào đó, dựa vào một hoặc một tập hợp thuộc tính của dữ liệu
Trang 252.1.2 Quá trình phân lớp
Phân lớp là một tiến trình gồm hai bước Trong bước thứ nhất, một mô hình được xây dựng để mô tả một tập hợp các lớp dữ liệu đã được xác định trước Mô hình này được xây dựng bằng việc phân tích các bản ghi của cơ sở
dữ liệu được mô tả bằng các thuộc tính (các trường) Mỗi một bản ghi được giả định thuộc về một lớp đã biết - lớp được xác định bởi một trong các thuộc
tính, được gọi là thuộc tính nhãn lớp (class label attribute) Trong bài toán
phân lớp, các bản ghi thường được xem như là các mẫu (samples) hay các đối tượng (objects) Các bản ghi dữ liệu đó được phân tích để tạo nên một tập dữ
liệu huấn luyện (training data set) Mỗi một mẫu trong tập dữ liệu huấn luyện
được coi là một mẫu huấn luyện (training samples) và được chọn một cách
ngẫu nhiên từ trong các mẫu Do nhãn lớp của từng mẫu huấn luyện được
cung cấp, nên bước này cũng được xem như là học có giám sát (supervised
learning) Có nhiều phương pháp học máy được áp dụng như mô hình mạng
Bayes, cây quyết định, phương pháp k - người láng giềng gần nhất, SVM…
Thông thường các mô hình học được biểu diễn dưới dạng các quy tắc phân lớp, các cây quyết định hay các công thức toán học Ví dụ, cho một cơ
sở dữ liệu các trang Web, các quy tắc phân lớp có thể được học để xác định các quy tắc phân lớp cho một trang Web khác (Hình 5) Các quy tắc có thể được dùng để phân lớp các mẫu dữ liệu khác, cùng với việc cung cấp một sự hiểu biết hơn của người dùng về nội dung của cơ sở dữ liệu
Hình 5 Mô hình học- phân tích một tập dữ liệu huấn luyện
Trang 26Trong bước thứ hai (Hình 6), một mô hình được sử dụng cho việc phân lớp Đầu tiên, sự chính xác dự đoán của mô hình được đánh giá bằng việc sử
dụng một tập các dữ liệu kiểm thử (test) Các mẫu kiểm thử được chọn một
cách ngẫu nhiên và độc lập với các mẫu huấn luyện Độ chính xác của mô hình được xác định là tỉ lệ phần trăm các mẫu kiểm thử được phân lớp chính xác bằng mô hình Với mỗi mẫu kiểm thử, nhãn lớp thực tế của nó sẽ được so sánh với nhãn lớp do mô hình dự đoán cho mẫu đó Nếu độ chính xác được xem là đạt, thì mô hình đó sẽ được dùng để phân lớp cho các mẫu hay các đối tượng khác mà chưa biết nhãn lớp
Hình 6 Mô hình phân lớp-đánh giá độ chính xác của mô hình
Như vậy, công đoạn đầu tiên của bài toán phân lớp đặt ra đó chính là biểu diễn các văn bản, tức là chuyển các văn bản thành một dạng có cấu trúc nào đó, và xây dựng một tập huấn luyện từ tập hợp các mẫu cho trước Việc biểu diễn này sẽ là dữ liệu vào cho công đoạn tiếp theo: sử dụng các kỹ thuật học máy để học trên các mẫu huấn luyện vừa được biểu diễn Một công đoạn nữa đó là công đoạn bổ sung các kiến thức của người dùng cung cấp để làm tăng độ chính xác trong biểu diễn văn bản hay trong quá trình học máy
Trang 272.2 Các giải pháp phân lớp điển hình
2.2.1 Thuật toán phân lớp Bayes
Thuật toán phân lớp Bayes [17] là một trong những thuật toán phân lớp điển hình nhất trong khai thác dữ liệu và tri thức, nó bắt nguồn từ học thuyết của Bayes trong lý thuyết xác suất Thuật toán này là một phương pháp tối ưu trong lĩnh vực học có giám sát nếu giá trị các thuộc tính là độc lập đối với các lớp Ý tưởng chính của thuật toán là tính xác suất có sau của sự kiện c thuộc lớp x theo sự phân loại dựa trên xác suất có trước của sự kiện c thuộc lớp x trong điều kiện T
Gọi V là tập tất cả các từ vựng
Giả sử có N lớp tài liệu: C1, C2,…,Cn
Mỗi lớp Ci có xác suất p(Ci) và ngưỡng CtgTshi
Gọi p(C| Doc) là xác suất để tài liệu Doc thuộc lớp C
Cho một lớp C và một tài liệu Doc, nếu xác suất p(C|Doc) tính được lớn hơn hoặc bằng giá trị ngưỡng của C thì tài liệu Doc sẽ thuộc vào lớp C
Tài liệu Doc được biểu diễn như một vector có kích thước là số từ khoá trong tài liệu Mỗi thành phần chứa một từ trong tài liệu và tần xuất xuất hiện của từ đó trong tài liệu Thuật toán được thực hiện trên tập từ vựng
V, vector biểu diễn tài liệu Doc và các tài liệu có sẵn trong lớp, tính toán p(C|Doc) và quyết định tài liệu Doc sẽ thuộc lớp nào
Xác suất p(C | DOC) được tính theo công thức sau:
p(c | x, ) = p(c | x,T) p(T |x)
T in
Trang 28Để giảm sự phức tạp trong tính toán và giảm thời gian tính toán,
ta để ý thấy rằng, không phải tài liệu Doc đã cho đều chứa tất cả các từ trong tập từ vựng V Do đó, TF(Fi | DOC) =0 khi từ Fi thuộc V nhưng không thuộc tài liệu Doc, nên ta có, (P(Fj | C))TF(Fj, Doc) = 1 Như vậy công thức trên sẽ được viết lại như sau:
Trang 29Với:
Như vậy trong quá trình phân lớp không dựa vào toàn bộ tập từ vựng
mà chỉ dựa vào các từ khóa xuất hiện trong tài liệu Doc
Người ta thường dùng thuật toán phân lớp Bayes đối với việc tìm nhiễu trong dữ liệu và thuật toán này thực hiện tốt khi kích cỡ của tập dữ liệu là nhỏ
Nhược điểm của mô hình này là cần giả thiết các thuộc tính được sử dụng để phân lớp là độc lập với nhau Trong thực tế khó có thể thỏa mãn được điều này vì các thuộc tính thường có yếu tố liên quan đến nhau
2.2.2 Thuật toán k-người láng giềng gần nhất
Thuật toán k-người láng giềng gần nhất[17] hoạt động không dựa vào tập từ vựng Tuy nhiên, nó vẫn sử dụng ngưỡng CtgTsh và thực hiện theo các bước như đã đề cập ở trên Đó là tiến hành ngẫu nhiên k tài liệu và tính xác suất p(C|Doc) dựa trên sự giống nhau giữa tài liệu Doc và k tài liệu được chọn Xác suất p(C| Doc) được tính theo công thức sau:
Trang 30Trong đó:
n: Số lớp k: Số tài liệu được chọn để so sánh P(Ci | Dj ): Có giá trị 0 hoặc 1, cho biết tài liệu Dj có thuộc lớp
Ci không Sở dĩ có giá trị này vì một tài liệu có thể thuộc hơn một lớp
Sm(Doc,Dj): xác định mức độ giống nhau của tài liệu Doc với tài liệu được chọn Dj , được tính bằng cos của góc giữa hai Vector biểu diễn tài liệu Doc và tài liệu được chọn Dj
Cách biểu diễn các tài liệu trong thuật toán này hoàn toàn tương tự như trong thuật toán phân lớp Bayes thứ nhất, nghĩa là cũng gồm Fi từ khóa
và tần xuất Xi tương ứng
Trong công thức trên:
Xi là tần xuất của từ khoá thứ i (dựa trên số từ đồng nghĩa xuất hiện trong tài liệu Doc),
Yi là tần xuất của từ thứ i (dựa trên số từ đồng nghĩa xuất hiện trong tài liệu Di)
2.2.3 Phân lớp dựa vào cây quyết định
Cây quyết định là một đồ thị của các sự quyết định và các hệ quả của
nó, được sử dụng để xây dựng một kế hoạch nhằm đạt được mục tiêu mong muốn Các cây quyết định được dùng để hỗ trợ quá trình ra quyết định Cây quyết định là một dạng đặc biệt của câu trúc dạng cây
Học cây quyết định là phương pháp được sử dụng rộng rãi cho việc học quy nạp từ một mẫu lớn Đây là phương pháp xấp xỉ hàm mục tiêu có
Trang 31giá trị rời rạc Mặt khác, cây quyết định còn có thể chuyển sang dạng biểu diễn tương đương dưới dạng tri thức là các luật If - Then
Học bằng cây quyết định là một phương pháp thông dụng trong khai phá dữ liệu Khi đó, cây quyết định mô tả một cấu trúc cây, trong đó, các lá đại diện cho các phân loại, còn cành đại diện cho các kết hợp của các thuộc tính dẫn tới phân loại đó
Một cây quyết định có thể được học bằng cách chia tập hợp nguồn thành các tập con dựa theo một kiểm tra giá trị thuộc tính Quá trình này được lặp lại cho mỗi tập con dẫn xuất một cách đệ quy Quá trình đệ quy hoàn thành khi việc chia tách là không thể tiếp tục thực hiện được nữa, hay khi một phân loại đơn có thể áp dụng cho từng phần của tập con dẫn xuất Một bộ phân loại rừng ngẫu nhiên (random forest) sử dụng một số cây quyết định để có thể cải thiện tỉ lệ phân loại
Trong các thuật toán học cây quyết định thì các thuật toán sinh cây ID3, C4.5 và C5.0 là các thuật toán nổi tiếng nhất[10] Sau đây là nội dung thuật toán ID3:
ID3 (Example, Target attributes, Attributes)
1 Tạo một nút gốc Root cho cây quyết định
2 Nếu toàn bộ Examples đều là các ví dụ dương, tả lại cây Root một
5 Ngược lại Begin
5.1 A <= thuộc tính từ tập Attribute mà phân loại tốt nhất tập Examples
Trang 325.2 Thuộc tính quyết định cho Root <= A 5.3 For mỗi giá trị có thể có vi của A
5.3.1 Cộng thêm một nhánh cây con ở dưới Root, phù hợp với biểu thức kiểm tra A=vi
5.3.2 Đặt Examplesvi là một tập con của tập các ví dụ
có giá trị vi cho A
5.3.3 Nếu Examplesvi rỗng
- Dưới mỗi nhánh mới thêm một nút lá với nhẵn
bằng giá trị phổ biến nhất của Target_attribute trong tập Examples
- Ngược lại thì dưới nhánh mới này thêm một cây con ID3 (Examples, target_attribute, Attribute-{A})
End
Return Root
Thuộc tính tốt nhất là thuộc tính có độ lấy thông tin lớn nhất
So với các phương pháp khai phá dữ liệu, phương pháp sử dụng cây quyết định có ưu điểm là đơn giản và dễ hiểu, người ta có thể hiểu mô hình cây quyết định sau khi được giải thích ngắn Phương pháp học máy dùng cây quyết định và dựa trên cây quyết định là rất hiệu quả bởi vì nó có thể làm việc được với một số lượng lớn các thuộc tính, và hơn nữa từ cây quyết định
có thể rút ra được một hệ thống luật học Việc chuẩn bị dữ liệu cho một cây quyết định là cơ bản hoặc không cần thiết, các kỹ thuật khác thường đòi hỏi chuẩn hoá dữ liệu, cần tạo ra các biến phụ và loại bỏ các giá trị rỗng Ngoài
ra cây quyết định có thể xử lý tốt một lượng dữ liệu lớn trong thời gian ngắn
Có thể dùng máy tính cá nhân để phân tích các lượng dữ liệu lớn trong một thời gian đủ ngắn để cho phép các nhà chiến lược đưa ra quyết định dựa trên phân tích của cây quyết định
Trang 33Tuy nhiên, khi sử dụng mô hình cây quyết định có thể xảy ra hiện tượng overfit, khi đó phải có thuật toán làm mịn như tỉa hay chặt bớt các nhánh dữ liệu nhiễu và dư thừa để giải quyết hiện tượng này
2.2.4 Chiết lọc thông tin theo mô hình Markov ẩn
Mô hình Markov ẩn là mô hình thống kê trong đó hệ thống được mô hình hoá với các tham số không biết trước Đây là một mô hình khá mạnh và được sử dụng rộng rãi trong kỹ thuật Thực chất mô hình Markov là một cách để tạo ra theo trình tự ngẫu nhiên các mẫu, nhiệm vụ của nó là xác định các tham số ẩn từ các tham số quan sát được[13]
Để có được một chuỗi Markov, điều đầu tiên là cần một tập trạng thái cho trước Phương pháp Markov sau đó sẽ truyền từ một trạng thái này đến một trạng thái khác, tạo ra một chuỗi trạng thái Theo toán học, các chuỗi Markov được tạo ra bằng một luật xác suất, đó là xem xét một vài giá trị sau cùng trong một chuỗi tuần tự để chọn ra một trạng thái tiếp theo Đặc biệt, khi tính giá trị đầu tiên trong chuỗi Markov, cần xem xét trạng thái hiện tại để quyết định xem trạng thái nào có thể cho bước tiếp theo và di chuyển xác suất nào vào mỗi trạng thái tiếp theo có thể
Trong mô hình Markov, trạng thái được quan sát trực tiếp bởi người quan sát, vì vậy các xác suất chuyển tiếp trạng thái là các tham số duy nhất Còn đối với mô hình Markov ẩn thì thêm vào các đầu ra: mỗi trạng thái có xác suất phân bổ trên các biểu hiện đầu ra có thể Vì vậy, khi nhìn vào dãy của các biểu hiện được sinh ra bởi HMM không trực tiếp chỉ ra được dãy các trạng thái[9]
a) Các thành phần của mô hình Markov ẩn
* Số các trạng thái trong mô hình N Mặc dù các trạng thái là ẩn nhưng
đối với nhiều ứng dụng thường có một số yếu tố tự nhiên gắn vào các trạng thái hoặc tập trạng thái của mô hình Nói chung, các trạng thái được liên kết
Trang 34với nhau bằng cách mà bất kỳ trạng thái nào có thể đạt được từ các trạng thái khác Các trạng thái ban đầu là S = {S1, S2, , SN} và trạng thái tại thời điểm t
là q t
* M, số biểu hiện quan sát được đối với mỗi trạng thái, ví dụ như kích
cỡ riêng biệt của bảng chữ cái Những biểu hiện quan sát được tương ứng với đầu ra của hệ thống từ khi áp dụng mô hình Các biểu hiện ban đầu là V = {v1,
v2, , vM}
* Phân bố xác suất thay đổi trạng thái A = {aij}, trong đó
aij = P [qt+1 = Sj | qt = Si], 1 ≤ i, j ≤ N Trong trường hợp đặc biệt là bất kỳ trạng thái nào cũng có thể đạt được các trạng thái còn lại chỉ sau một bước đơn thì nhận được aij > 0 với mọi i, j Đối với các trạng thái khác của mô hình Markov ẩn, nhận được aij = 0 với một hoặc nhiều cặp (i, j)
* Phân bố xác suất biểu hiện quan sát được đối với trạng thái j, B = {b j (k)}, với
{b j (k)} = P [vk tại thời điểm t|qt = Sj], 1 ≤ j ≤ N
1 ≤ k ≤ M
* Phân bố trạng thái ban đầu π = {πi}, với
πi = P [q1 = Si], 1 ≤ i ≤ N
Cho các giá trị gần đúng của N, M, A, B và π, mô hình Markov ẩn có thể được
sử dụng như một thiết bị để đưa ra một chuỗi quan sát tuần tự