Professional Documents
Culture Documents
• Luật kết hợp (association rules): là dạng luật biểu diễn tri thứ ở dạng khá
đơn giản. Ví dụ: “60 % nam giới vào siêu thị nếu mua bia thì có tới 80% trong số họ sẽ
mua thêm thịt bò khô”. Luật kết hợp được ứng dụng nhiều trong lĩnh vực kính doanh,
y học, tin-sinh, tài chính & thị trường chứng khoán, .v.v.
• 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. Người ta
còn gọi phân lớp là học có giám sát (học có thầy).
• Phân cụm (clustering): 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. Người ta còn gọi phân cụm là học không giám
sát (học không thầy).
• Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision
support)
• Tin-sinh (bio-informatics)
• Tài chính và thị trường chứng khoán (finance & stock market)
• Bảo hiểm (insurance)
• .v.v.
1.2. CƠ SỞ SỮ LIỆU HYPERTEXT VÀ FULLTEXT
1.2.1. Cơ sở dữ liệu FullText
Dữ liệu dạng FullText là một dạng dữ liệu phi cấu trúc với thông tin chỉ gồm
các tại liệu dạng Text. Mỗi tài liệu chứa thông tin về một vấn đề nào đó thể hiện qua
nội dung của tất cả các từ cấu thành tài liệu đó. Ý nghĩa của mỗi từ trong tài liệu
khkông cố định mà tuỳ thuộc vào từng ngữ cảnh khác nhau sẽ mang ý nghĩa khác
nhau. Các từ trong tài liệu được liên kết với nhau theo một ngôn ngữ nào đó.
Trong các dữ liệu hiện nay thì văn bản là một trong những dữ liệu phổ biến
nhất, nó có mặt ở khắp mọi nơi và chúng ta thường xuyên bắt gặp do đó các bài toán
về xử lý văn bản đã được đặt ra khá lâu và hiện nay vẫn là một trong những vấn đề
trong khai phá dữ liệu Text, trong đó có những bài toán đáng chú ý như tìm kiếm văn
bản, phân loại văn bản, phân cụm văn bản hoặc dẫn đường văn bản
CSDL full_text là một dạng CSDL phi cấu trúc mà dữ liệu bao gồm các tài
liệu và thuộc tính của tài liệu. Cơ sở dữ liệu Full_Text thường được tổ chức như môt
tổ hợp của hai thành phần: Một CSDL có cấu trúc thông thường (chứa đặc điểm của
các tài liệu) và các tài liệu
CSDL Full-Text
Nội dung cuả tài liệu được lưu trữ gián tiếp trong CSDL theo nghĩa hệ thống
chỉ quản lý địa chỉ lưu trữ nội dung.
Cơ sở dữ liệu dạng Text có thể chia làm hai loại sau:
Dạng không có cấu trúc (unstructured): Những văn bản thông thường mà
chúng ta thường đọc hàng ngày được thể hiện dưới dạng tự nhiên của con người và nó
không có một cấu trúc định dạng nào. VD: Tập hợp sách, Tạp chí, Bài viết được quản
lý trong một mạng thư viện điện tử.
Dạng nửa cấu trúc (semi-structured): Những văn bản được tổ chức dưới dạng
cấu trúc không chặt chẽ như bản ghi các ký hiệu đánh dấu văn bản và vẫn thể hiện
được nội dung chính của văn bản, ví dụ như các dạnh HTML, email,...
Tuy nhiên việc phân làm hai loại cũng không thật rõ ràng, trong các hệ phần
mềm, người ta thường phải sử dụng các phần kết hợp lại để thành một hệ như trong cá
hệ tìm tin (Search Engine), hoặc trong bài toán tìm kiếm văn bản (Text Retrieval), một
trong những lĩnh vực qua tâm nhất hiện nay. Chẳng hạn trong hệ tìm kiếm như Yahoo,
Altavista, Google... đều tổ chức dữ liệu theo các nhóm và thư mục, mỗi nhóm lại có
thể có nhiều nhóm con nằm trong đó. Hệ Altavista còn tích hợp thêm chương trình
dịch tự động có thể dịch chuyển đổi sang nhiều thứ tiếng khác nhau và cho kết quả khá
tốt.
1.2.2. Cơ sở dữ liệu HyperText
Theo từ điển của Đại học Oxford (Oxford English Dictionary Additions
Series) thì Hypertext được định nghĩa như sau: Đó là loại Text không phải đọc theo
dạng liên tục đơn, nó có thể được đọc theo các thứ tự khác nhau, đặc biệt là Text và
ảnh đồ họa (Graphic) là các dạng có mối liên kết với nhau theo cách mà người đọc có
thể không cần đọc một cách liên tục. Ví dụ khi đọc một cuốn sách người đọc không
phải đọc lần lượt từng trang từ đầu đến cuối mà có thể nhảy cóc đến các đoạn sau để
tham khảo về các vấn đề họ quan tâm.
Như vậy văn bản HyperText bao gồm dạng chữ viết không liên tục, chúng
được phân nhánh và cho phép người đọc có thể chọn cách đọc theo ý muốn của mình.
Hiểu theo nghĩa thông thường thì HyperText là một tập các trang chữ viết được kết nối
với nhau bởi các liên kết và cho phép người đọc có thể đọc theo các cách khác nhau.
Như ta đã làm quen nhiều với các trang định dạng HTML, trong các trang có những
liên kết trỏ tới từng phần khác nhau của trang đó hoặc trỏ tới trang khác, và người đọc
sẽ đọc văn bản dựa vào những liên kết đó.
Bên cạnh đó, HyperText cũng là một dạng văn bản Text đặc biệt nên cũng có
thể bao gồm các chữ viết liên tục (là dạng phổ biến nhất của chữ viết). Do không bị
hạn chế bởi tính liên tục trong HyperText, chúng ta có thể tạo ra các dạng trình bày
mới, do đó tài liệu sẽ phản ánh tốt hơn nội dung muốn diễn đạt. Hơn nữa người đọc có
thể chọn cho mình một cách đọc phù hợp chẳng hạn như đi sâu vào một vấn đề mà họ
quan tâm. Sáng kiến tạo ra một tậpc cá văn bản cùng với các con trỏ trỏ tới các văn
bản khác để liên kết một tập các văn bản có mối quan hệ voiứ nhau với nhau là một
cách thực sự hay và rất hữu ích để tổ chức thông tin. Với người viết, cách này cho
phép họ có thể thoải mái loại bỏ những băn khoăn về thứ tự trình bày, mà có thể tổ
chức vấn đề thành những phần nhỏ, rồi sử dụng kết nối để chỉ ra mối liên hệ giữa các
phần nhỏ đó với nhau.
Với người đọc cách này cho phép họ có thể đi tắt trên mạng thông tin và quyết
định phần thông tin nào có liên quan đến vấn đề mà họ quan tâm để tiêp tục tìm hiểu.
So sánh với cách đọc tuyến tính, tức là đọc lần lượt thì HyperText đã cung cấp cho
chúng ta một giao diện để có thể tiếp xúc với nội dung thông tin hiệu quả hơn rất
nhiều. Theo khía cạnh của các thuật toán học máy thì HyperText đã cung cấp cho
chúng ta cơ hội nhìn ra ngoài phạm vi một tài liệu để phân lớp nó, nghĩa là có tính cả
đến các tài liệu có liên kết với nó. Tất nhiên không phải tất cả các tài liệu có liên kết
đến nó đều có ích cho việc phân lớp, đặc biệt là khi các siêu liên kết có thể chỉ đến rất
nhiều loại các tài liệu khác nhau. Nhưng chắc chắn vẫn còn tồni tại tiềm năng mà con
người cần tiếp tục nghiên cứu về việc sử dụng các tài liệu liên kết đến một trang để
nâng cao độ chính xác phân lớp trang đó.
Có hai khái niệm về HyperText mà chúng ta cần quan tâm:
Hypertext Document (Tài liệu siêu văn bản): Là một tài liệu văn bản đơn trong
hệ thống siêu văn bản. Nếu tưởng tượng hệ thống siêu văn bản là một đồ thị, thì các tài
liệu tương ứng với các nút. Hypertext Link (Liên kết siêu văn bản): Là một tham chiếu
để nối một tài liệu HyperText này với một tài liệu HyperText khác. Các siêu liên kết
đóng vai trò như những đường nối trong đồ thị nói trên.
HyperText là loại dữ liệu phổ biến hiện nay, và cũng là loại dữ liệu có nhu cầu
tìm kiếm và phân lớp rấ lớn. Nó là dữ liệu phổ biến trên mạng thông tin Internet CSDL
HyperText với văn bản dạng “nửa cấu trúc” do xuất hiện thêm các “thẻ “: Thẻ cấu trúc
(tiêu đề, mở đầu, nội dung), thẻ nhấn trình bày chữ (đậm, nghiêng,…). Nhờ các thẻ
này mà chúng ta có thêm một tiêu chuẩn (so với tài liệu fulltext) để có thể tìm kiếm và
phân lớp chúng. Dựa vào các thẻ đã quy định trước chúng ta có thể phân thành các độ
ưu tiên khác nhaucho các từ khóa nếu chúng xuất hiện ở những vị trí khác nhau. Ví dụ
khi tìm kiếm các tài liệu có nội dung liên quan đến “people “ thì chúng ta đưa từ khóa
tìm kiếm là “people”, và các tài liệu có từ khóa “poeple” đứng ở tiêu đề thì sẽ gần với
yêu cầu tìm kiếm hơn.
Một sơ đồ minh hoạ Hypertext Document như là các nút và các Hypertext Link như là
các liên kết giữa chúng
1 Là dạng văn bản “nửa cấu trúc”. Văn bản thường là dạng văn bản “phi
Trong nội dung có phần tiêu đề và cấu trúc”. Trong nội dung của nó
có các thẻ nhấn mạnh ý nghĩa của không có một tiêu chuẩn nào cho ta
từ hoặc cụm từ dựa vào đó để đánh giá
2 Nội dung của các trang Web Nội dung của các văn bản thông
thường đườn mô tả ngắn gọn, cô thường thường rất chi tiết và đầy đủ
đọng, có các siêu liên kết chỉ ra
cho người đọc đến những nơi
khác có nội dung liên quan
3 Trong nội dung các trang Web có Các trng văn bản thông thường không
chứa các siêu liên kết cho phép liên kết được đến nội dung của các
liên kết các trang có nội dung liên trang khác
với nhau
Web Mining
Trang V1
RV1/ NV1
Trang V2
Trang U
RV1/NVm
Trang Vm
H×nh 2.2
Vì PageRank của một trang là đại lượng đại diện cho sự phân bổ xác suẩt trên
các trang Web trong một tập các trang Web nhất định, do đó tổng các giá trị pagerank
của tất cả các trang Web trong tập các dữ liệu có giá trị bằng 1
Quá trình tính toán được lặp đi lặp lại cho đến khi hội tụ.
Với d=0.85, số vòng lặp =20 với khoảng vài triệu trang. Và để tính PageRank
cho 26 triệu trang web với một trạm làm việc vừa phải thì thời gian tiêu tốn tới vài giờ.
2.3. NHƯỢC ĐIỂM CỦA CÁC MÁY TÌM KIẾM
1. Là các hệ tìm kiếm tự động, người sử dụng chưa có vai trò gì trong quá
trình tìm kiếm, không có cơ chế phản hồi từ người sử dụng để cập nhật các tham số
tìm kiếm nhằm tăng hiệu quả cho lần tìm kiếm sau
2. Coi độ quan trọng của các từ khóa là như nhau, do đó chưa cho phép tính độ
quan trọng khác nhau của các từ khóa. Như trong các hệ tìm kiếm lớn như Google,
Yahoo, nếu đưa vào từ “System Information” thì hệ số tìm kiếm tất cả các trang Web
có liên quan đến 2 từ “System” và “Information”. Nếu người dùng muốn tìm kiếm từ
“Computer Story” mà trong đó từ Computer có nghĩa nhiều hơn từ Story (chẳng hạn,
từ Computer có trọng số 0.8, story có trọng số 0.2), thì vấn đề đặt ra là cần phải xây
dựng một hệ tìm kiếm như vậy
3. Chưa quan tâm đến bản chất của xử lý văn bản, vấn đề từ đồng nghĩa, đa
nghĩa
Có rất nhiều tài liệu liên quan đến nội dung cần tìm nhưng không chứa các từ
khóa đưa vào, mà chỉ chứa các từ đồng nghĩa với chúng và những tài liệu đó sẽ bị bỏ
qua trong quá trình tìm kiếm.
Vì các máy hầu hết tìm kiếm theo từ khóa, dựa vào việc đánh chỉ mục cho các
trang Web(index-base search engine), có thể có hàng trăm tài liệu cùng chứa từ khóa
đưa vào, dẫn đến một số lượng lớn tài liệu nhận được từ máy tìm kiếm, mà rất nhiều
trong chúng ít hoặc không liên quan đến nội dung cần tìm
2.4. BÀI TOÁN TÌM KIẾM MỚI
Hàng ngày có hàng tỷ người truy cập vào Internet và cũng có từng ấy người
thực hiện các thao tác tìm kiếm với các máy tìm kiếm khác nhau. Nếu thống kê các
thông tin của mỗi lần tìm kiếm này thì chắc chắn chúng ta sẽ được một nguồn thông
tin khổng lồ, và nểu biết cách sử dụng chúng thì sẽ làm được rất nhiều công việc hữu
ích. Các bài toán tìm kiếm trong các máy tìm kiếm thông thường chỉ đơn giản đáp ứng
nhu cầu tìm kiếm thông tin của khách hàng mà chưa biết tận dụng những thông tin từ
phía khách hàng qua mỗi lần tìm kiếm. Dưới đây là bài toán đề xuất thêm vào tính
năng của các máy tìm kiếm và hướng giải quyết trong tương lai.
Bài toán:
Căn cứ vào các tài liệu mà khách hàng xem hoặc down về, sau khi phân tích ta
biết được khách hàng đó hay tập trung vào các trang có nội dung gì trên tập các trang
Web của chúng ta, để từ đó bổ xung thêm nhiều tài liệu mà khách hàng quan tâm và
ngược lại. Còn về phía khác 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êm những hỗ trợ cho khách hàng.
Hướng giải quyết:
Xây dựng một CSDL về các tài liệu, trong đó có một trường ClassificationID
cho biết tài liệu này thuộc lĩnh vực nào dựa trên kết quả đã phân tích trước đó.(Bằng
phân lớp)
Xây dựng một CSDL về phía khách hàng: Trước khi khách hàng truy cập vào
CSDL, yêu cầu đăng ký một account thông tin: tên, tuổi, địa chỉ,…chúng ta cũng đưa
thêm hai trường quan trọng là nghề nghiệp, trình độ (cho độ chính xác của thông tin là
c%). Yêu cầu đăng ký account là tuỳ chọn với khách hàng. Sau đó trong quá trình mỗi
lần khách hàng truy cập vào CSDL chúng ta sẽ ghi lại các tài liệu mà khách hàng truy
nhập vào bảng thông tin khách hàng. Sau đó dựa vào các thông tin về tài liệu mà
khách hàng truy nhập và thông tin về khách hàng, phân tích theo thuật toán cây quyết
định để sinh luật cho biết khách hàng khách hàng có nghề nghiệp và trình độ như thế
nào thì quan tâm đến lĩnh vực nào với độ tin cậy là ngưỡng c
2.5. KẾT LUẬN
Chương 3. BÀI TOÁN PHÂN LỚP
3.1. PHÁT BIỂU BÀI TOÁN
Trong tù nhiªn, con ng−êi th−êng cã ý t−ëng chia sù vËt thµnh c¸c phÇn,
c¸c líp kh¸c nhau. T−¬ng tù nh− vËy, gi¶i thuËt ph©n líp ®¬n gi¶n chØ 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 thuéc
tÝnh hoÆc mét tËp hîp c¸c thuéc tÝnh cña d÷ liÖu.
Líp 1
Gi¶i
thuËt Líp 2
D÷ ph©n
liÖu líp
vµo ho¹t
®éng
Líp n
Phân lớp văn bản được các nhà nghiên cứu định nghĩa thống nhất như là
việc gán các chủ đề đã được xác định cho trước vào các văn bản Text đựa trên nội
dung của nó. Phân lớp văn bản là công việc được sử dụng để hỗ trợ trong quá trình
tìm kiếm thông tin (Inrmation Retrieval), chiết lọc thông tin (Information
Extraction), lọc văn bản hoặc tự động dẫn đường cho các văn bản tới những chủ đề
xác định trước.Để phân loại văn bản, người ta sử dụng phương pháp học máy có
giám sát (supervised learning). Tập dữ liệu được chia ra làm hai tập là tập huấn
luyện và tập kiểm tra¸ trước hết phải xây đựng mô hình thông qua các mẫu học
bằng các tập huấn luyện, sau đó kiểm tra sự chính xác bằng tập đữ liệu kiểm tra.
Hình sau là môt khung cho việc phân lớp văn bản, trong đó bao gồm ba
công đoạn chính: công đoạn đầu là biểu diễn văn bản, tức là chuyển các dữ liệu
văn bản thành một dạng có cấu trúc nào đó, tập hợp các mẫu cho trước thành một
tập huấn luyện. Công đoạn thứ hai là việc 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 biểu diễn. Như vậy là việc biểu diễn ở công đoạn một
sẽ là đầu vào cho công đoạn thứ hai. Công đoạn thứ ba là việc bổ sung các kiến
thức thêm vào do 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.
Trong công đoạn hai, có nhiều phương pháp học máy được áp dụng, mô
hình mạng Bayes, cây quyết định, phương pháp k ngườii láng giềng gần nhất,
mạng Neuron, SVM,…
3.2. CÁC PHƯƠNG PHÁP BIỂU DIỄN VĂN BẢN
3.2.1. Các phương pháp biểu diễn văn bản trong Cơ sở dữ liệu
FullText
Tồn tại ba mô hình CSDL FullText điển hình: Mô hình logic, mô hình cú pháp
và mô hình Vector
a. Mô hình phân tích cú pháp
a.1. Quy tắc lưu trữ:
- Mỗi văn bản đều phải được phân tích cú pháp và trả lại thông tin chi tiết về
chủ đề của văn bản đó.
- Sau đó tiến hành Index các chủ đề của từng văn bản. Cách Index trên chủ đề
giống như khi Index trên văn bản nhưng chỉ Index trên các từ xuất hiện trong chủ đề.
- Các văn bản được quản lý thông qua các chủ đề này để có thể tìm kiếm được
khi có yêu cầu, câu hỏi tìm kiếm sẽ dựa trên các chủ đề trên.
a.2. Quy tắc tìm kiếm:
Câu hỏi tìm kiếm sẽ dựa vào các chủ đề đã được Index. Vậy đầu tiên
phải tiến hành Index các chủ đề. Cách Index trên chủ đề giống như Index trên toàn bộ
các từ có trong chủ đề đó,
Câu hỏi đưa vào có thể được phân tích cú pháp để trả lại một chủ đềvà
tìm kiếm trên chủ đề đó
Như vậy bộ phận xử lý chính đối với một hệ CSDL xây dựng theo mô hình
này chính là hệ thống phân tích cú pháp và đoán nhận nội dung văn bản.
a.2. ¦u ®iÓm, nh−îc ®iÓm
¦u ®iÓm
Khi đã có sẵn chủ đề thì việc tìm kiếm theo phương pháp này lại khá hiệu quả
và đơn giản do tìm kiếm nhanh và chính xác.
Đối với những ngôn ngữ đơn giản về mặt ngữ pháp thì việc phân tích trên có
thể đạt được mức độ chính xác cao và chấp nhận được.
Nh−îc ®iÓm
Chất lượng của hệ thống theo phương pháp này hoàn toàn phụ thuộc vào chất
lượng của hệ thống phân tích cú phápvà đoán nhận nội dung tài liệu. Trên thực tế, việc
xây dựng hệ thống này là rất phức tạp, phụ thuộc vào đặc điểm của từng ngôn ngữ và
đa số vẫn chưa đạt đến độ chính xác cao.
b. Mô hình Logic
Theo mô hình này các từ có nghĩa trong văn bản được Index và nội dung văn
bản được quản lý theo các chỉ số Index đó.
b.1. Các quy tắc lưu trữ
- Mỗi văn bản được Index theo quy tắc:
Thống kê các từ có nghĩa trong các văn bản, đó là những từ mang thông tin
chính về các văn bản lưu trữ.
Index các văn bản đưa vào theo danh sách các từ khoá nói trên. Ứng với mỗi
từ khoá trong danh sách sẽ lưu vị trí xuất hiện nó trong từng văn bản và tên văn bản
tồn tại từ khoá đó.
Ví dụ, có hai văn bản với mã tương ứng là VB1,VB2.
Computer is life
Có nhiều tiêu chuẩn để chọn hàm f, do đó mà chúng ta có thể sinh ra nhiều giá
trị trọng số khác nhau. Sau đây là một vài tiêu chuẩn để chọn hàm f
Mô hình Boolean
Giả sử có một CSDL gồm m văn bản D={d1,d2,…,dm}. Mỗi văn bản được
biểu diễn dưới dạng một vector gồm n từ mục T={t1,t2,…,tn}. Gọi W=(wij) là ma trận
trọng số, trong đó wij là giá trị của từ mục ti trong văn bản dj.
Mô hình Boolean là mô hình đơn giản nhấ, được xác định như sau:
Wij = 0 nếu ti không có mặt trong dj
1 nếu ngược lại
Computer is life
A
B
List
Vector Jame
Common Paul
Link
Giả sử A là trang chủ của sinh viên của tập hợp các trang Web của một trường
đại học
Khi đó trang A được biểu diễn như sau:
A:- has_engine(A), has_list(A), has_vector(A), link_to(B,A), has_jame(B),
has_link(B), has_paul(B), not(has_home(A))
Và nếu bằng ngôn ngữ thì ta có thể dịch ra thành luật như sau: Một trang mà
chứa các từ khóa list, vector, common nhưng không chứa từ khóa home, và được liên
kết bởi trang có chứa các từ jame, paul, link thì đó là trang chủ của sinh viên
3.3. CÁC PHƯƠNG PHÁP HỌC MÁY
3.3.1. Thuật toán phân lớp Bayes
Thuật toán phân lớp Bayes là một trong những thuật toán phân lớp điển hình
nhất trong khai thac dữ liệu và tri thức. Ý 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
Với:
Trong ®ã:
|V| : sè l−îng c¸c tõ trong tËp V
Fj : tõ kho¸ thø j trong tõ vùng
TF(Fj | Doc) : Tần xuất của từ Fj trong tài liệu Doc (bao gồm cả từ đồng
nghĩa)
TF(Fj | C) : Tần xuất của từ Fj trong lớp C (số lần Fj xuất hiện trong tất cả
các tài liệu thuôc lớp C)
P(Fj | C) : Xác suất có điều kiện để từ Fj xuất hiện trong tài liệu của lớp C
Công thức F(Fi | C) được tính sử dụng ước lượng xác suất Laplace. Sở dĩ
có số 1 trên tử số của công thức này để tránh trường hợp tần suất của từ Fi trong
lớp C bằng 0, khi Fi không xuất hiện trong lớp C.
Để 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 (1) sẽ được viết lại như sau:
Vớ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.
3.3.2. Thuật toán k-người láng giềng gần nhất.
ThuËt to¸n 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:
Trong ®ã:
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 taì 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 (4):
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)
3.3.3. Phân lớp dựa vào cây quyết định
Học cây quyết định là phươgn 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ó giá 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. Trong các thuật toán học cây quyết định thì ID3 và C4.5 là
hai thuậta toán nổi tiếng nhất. 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 nút
đơn, với nhãn +.
3. Nếu toàn bộ Examples đều là các ví dụ âm, trả lại cây Root một nút đơn,
với nhãn -.
4. Nếu Attributes là rỗng thì trả lại cây Root một nút đơn với gàn nhãn bằng
giá trị phổ biến nhất của Target_attribute trong Example.
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
5.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.
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 được
3.3.4. Thuật toán học quan hệ FOIL
a. Khái niệm mệnh đề Horn (Horn Clause)
Mệnh đề Horn là các mệnh đề có nhiều nhất một literal dương, có dạng như
sau:
H \/ (-L1)\/ (-L2)\/…\/ (-Ln))
Trong đó H, L1,L2,…,Ln gọi là các literal dương, còn –L1,-L2,…-Ln gọi là
các literal âm.
Hay viết dưới dạng luật:
( L1^L2^…^Ln)=>H. Dạng này được gọi là luật First_Order
L1,L2,…Ln gọi là tập các tiền điều kiện. H gọi là kết luận.
VD về các luật First_Order:
If Parents(x,y) then Ancestor (x,y)
If (Parents(x,z) ^ Ancestor(z,y) ) then Ancestor(x,y).
Trong đó Parents, Ancestor,… gọi là các predicate
b.Thuật toán Foil
FOIL ®−îc ®Ò xuÊt vµ ph¸t triÓn bëi Quinlan (Quinlan, 1990). FOIL häc c¸c
tËp d÷ liÖu chØ bao gåm hai líp, lớp các ví dụ “d−¬ng” và ví dụ “âm”. FOIL häc m«
t¶ líp ®èi víi líp “d−¬ng”. Đầu vào của Foil gồm các tiền điều kiện và các kết luận. .
Đầu ra là một tập các luật sinh từ các tiền điều kiện và các kết luận đó. Mỗi bước Foil
sẽ thêm một literal vào các tiền điều kiện của luật đang huấn luyện. Thuật toán sử
dụng hàm Foil_Gain để tính toán lựa chọn một literal trong tập các literal ứng cử
FOIL lµ m« h×nh häc m¸y kh«ng t¨ng trong thuËt to¸n “leo ®åi” sö dông
metric dùa theo lý thuyÕt th«ng tin x©y dùng mét luËt bao trïm lªn d÷ liÖu. Trong
Foil có hai trạng thái chính :
1. separate stage (trạng thái phân tách) : Bắt đầu một trạng thái mới
2. Conquer State (trạng thái chế ngự): Kết hợp các literal để xây dựng thân
của mệnh đề.
Pha “t¸ch rêi” cña thuËt to¸n b¾t ®Çu tõ luËt míi trong khi pha “chÕ ngù” x©y
dùng mét liªn kÕt c¸c literal lµm th©n cña luËt. Mçi luËt m« t¶ mét tËp con nµo ®ã c¸c
vÝ dô d−¬ng vµ kh«ng cã vÝ dô ©m. L−u ý r»ng, FOIL cã hai to¸n tö: b¾t ®Çu mét luËt
míi víi th©n luËt rçng vµ thªm mét literal ®Ó kÕt thóc luËt hiÖn t¹i. FOIL kÕt thóc viÖc
bæ sung literal khi kh«ng cßn vÝ dô ©m ®−îc bao phñ bëi luËt, vµ b¾t ®Çu luËt míi ®Õn
khi tÊt c¶ mçi vÝ dô d−¬ng ®−îc bao phñ bëi mét luËt nµo ®ã.
C¸c vÝ dô d−¬ng ®−îc phñ bëi mÖnh ®Ò sÏ ®−îc t¸ch ra khái tËp d¹y vµ qu¸
tr×nh tiÕp tôc ®Ó häc c¸c mÖnh ®Ò tiÕp theo víi c¸c vÝ dô cßn l¹i, vµ kÕt thóc khi kh«ng
cã c¸c vÝ dô d−¬ng thªm n÷a.
Sau đây là thiết kế bước 1 của FOIL:
1.Gọi POS là tập các ví dụ dương.
2. Gọi NEG là tập các ví dụ âm
3. Đặt NewClauseBody bằng rỗng
4. Trong khi POS chưa rỗng thực hiện:
Separate: (Bắt đầu một luật mới)
5. Loại khỏi POS tất cả những ví dụ thoả mãn NewClauseBody.
6. Đặt lại NEG là tập các ví dụ âm ban đầu
7. Đặt lại NewClauseBody bằng rỗng
Trong khi NEG chưa rỗng thực hiện.
. Conquer (Xây dựng thân mệnh đề)
8. Chọn Literal L
9. Kết hợp vào NewClauseBody.
10. Loại khỏi NEG những ví dụ mà không thoả mãn L.
FOIL sö dông thuËt to¸n leo ®åi ®Ó bæ sung c¸c literal víi th«ng tin thu ®−îc
lín nhÊt vµo mét luËt. Víi mçi biÕn ®æi cña mét kh¼ng ®Þnh P, FOIL ®o l−îng th«ng
tin ®¹t ®−îc. §Ó lùa chän literal víi th«ng tin ®¹t ®−îc cao nhÊt, nã cÇn biÕt bao nhiªu
bé d−¬ng vµ ©m hiÖn t¹i ®−îc b¶o ®¶m bëi c¸c biÕn ®æi cña mçi kh¼ng ®Þnh ®−îc x¸c
®Þnh theo c¸ch dµn tr¶i.
Công thức tính infortmaion gain của Foil là:
Gain(Literal)=T++ *(log2(P1/P1+N1) - log2(P0/P0+N0))
P0 và N0 là số ví dụ dương và âm trước khi thêm một literal L vào mệnh đề
P1 và N1 là số ví dụ dương và âm sau khi thêm literal L vào mênh đề.
T++ là số ví dụ dương cố định cả trước và sau khi thêm literal .(nghĩa là số ví
dụ đúng với cả hai luật R và R’_là R sau khi đã thêm vào literal L)
Sau đây là một ví dụ minh họa cho thuật toán FOIL.
Ta muốn học mối quan hệ Grandaughter(x,y) từ các quan hệ (Predicate)
Grandaughter, Father, Mail, Femail và các hằng số: Victor, Sharon, Bob, Tom.
Tập ví dụ: Là những giả định liên quan đến các Predicate Grandaughter,
Father, Mail, Femail và các hằng số Victor, Sharon, Bob, Tom, trong đó có các ví dụ
dương là Grandaughter(Victor, Sharon), Father (Sharon, Bob), Father(Tom, Bob),
Femail(Sharon), Father(Bob, Victor). Các ví dụ còn lại là âm (Chẳng hạn như
-Grandaughter(Tom,Bob),-Father(Victor, Victor),…).
Để chọn các literal cho luật, FOIL xét các cách kết hợp khác nhau của các
biến x,y,z,t với các hằng số ở trên. Chẳng hạn bước khởi đầu khi luật chỉ là :
- Bước 1:
Luật khởi đầu: Grandaughter (x,y) Å
Sự kết hợp {x/Bob, y/Sharon}sẽ cho ta một ví dụ dương vì trong dữ liệu
huấn luyện Grandaughter(Bob, Sharon) là đúng.
Còn 15 cách kết hợp còn lại sẽ tương ứng với các ví dụ âm vì không tìm thấy
sự xác nhận tương ứng trong tập huấn luyện
- Mỗi trạng thái tiếp theo, luật được hình thành dựa trên tập các kết nối mà
cho ra các ví dụ dương, âm. Khi mỗi literal được thêm vào luật, tập các ví dụ âm
dương sẽ thay đổi. Chẳng hạn xét literal tiếp theo để đề cử vào luật là Father (y,z), thì
thay ví kết nối {x/Bob,y/Sharon} ở trên, kết nối {x/ Bob, y/Sharon,z/ Bob} mới
tưong ứng với một ví dụ dương. Tại mỗi bước, số ví dụ âm, dương sẽ được tính toán
để có được độ lấy thông tin Foil_Gain (L,R).
CHƯƠNG 4. HỆ THỐNG THỬ NGHIỆM
4.1. MỘT SỐ CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN
Hệ thống thử nghiệm được xây dựng dựa trên sự kết hợp những ưu điểm của
các giải pháp trong các công trình nghiên cứu về vấn đề tìm kiếm và phân lớp văn bản
trước đây. Sau đây là nội dung và kết quả của các công trình nghiên cứu
1.. [Séan Slattery (May 20002_CMU-CS-02-142)] Luận án tiến sỹ ”HyperText
Classification”
Trong luận án tiến sĩ của mình, tác giả đã so sánh các thuật toán học máy áp dụng
cho phân lớp trang Web cùng với các cách biểu diễn tương ứng, đó là:
1. Dùng Naïve Bayes với cách biểu diễn tài liệu thành một túi các từ (bag of
words)
2. Dùng k người láng giềng gần nhất với mô hình tấn số cho biểu diễn trang
Web (TF-IDF)
3. Thuật toán FOIL với cách biểu diễn thành tập các từ (set of words) cho mỗi
tài liệu (không tính đến các liên kết trong mỗi tài liệu)
4. Thuật toán FOIL với cách biểu diễn thành tập các từ (set of words) và có tính
đến các thông tin liên kết trong các tài liệu
Tác giả đã cài đặt và thử nghiệm và đưa ra kết quả, với tiêu chuẩn đánh giá là Độ
hồi tưởng(recall)và Độ chính xác( Precision)
Cách tiếo cận 4 ưu điểm hơn cả, cho độ hồi tưởng và độ chính xác cao hơn hẳn.
Tiếp đến, tác giả đã xây dựng một bộ phân lớp HyperText mới sử dụng thuật toán
FOIL_PILES với cách biểu diễn văn bản theo mô hình quan hệ.
2. [Đoàn Sơn] Luận văn thạc sĩ ”Phương pháp sử dụng Logic mờ và ứng dụng trong
khai phá dữ liệu FullText”
Trong luận văn này, tác giả thực hiện phân lớp văn bản sử dụng cách biểu diễn văn
bản bằng phương pháp sử dụng Logic mờ và ứng dụng thuật toán học cây quyết định.
Với cách giải quyết bài toán như vậy đã cho ta thấy một số ưu điểm: Sử dụng các
khái niệm mờ đã làm giảm số chiều của các thuộc tính, dẫn đến làm giảm thời gian
tính toán khi học cây quyết định.
Tuy nhiên cách biểu diễn này còn có một số mặt hạn chế, đó là việc con người có
thể sẽ tốn nhiều công sức cho việc xây dựng chủ đề, các khái niệm và mối liên quan
giữa chúng.
3. [Bùi Quang Minh] “Máy tìm kiếm Vietseek”. Báo cáo kết quả nghiên cứu thuộc đề
tài khoa học đặc biệt cấp ĐHQGHN mã số QG 02-02.
Trong máy tìm kiếm Vietseek, các văn bản được tổ chức thành cơ sở dữ liệu.
Vietseek đã xây dựng được cả ba loại chỉ mục (TextIndex, StructureIndex và
UtilityIndex). Cơ sở dữ liệu Vietseek được chia thành hai phần:
Phần 1: Dữ liệu về văn bản Web, Domain, Word được lưu trữ trong các bảng của
CSDL mySQL
Phần 2: Dữ liêu về chỉ mục (index) được lưu trữ riêng và có cơ cấu riêng. Do phần
này đòi hỏi tốc độ cao nên không lưu trữ trong CSDL MySql mà lưu trữ trong 300 file
nhị phân khác nhau.
Vietseek thực hiện tìm kiếm theo cụm từ đưa vào và trả về các văn bản có chứa các
cụm từ khóa đó chứ chưa thực hiện phân lớp
4. [Phạm Thị Thanh Nam] Luận văn Thạc sỹ “Một số giải pháp cho bài toán tìm kiếm
trong CSDL HyperText”.
Từ CSDL chỉ mục đã được xây dựng của Vietsek, tác giả đã xây dựng nên vector
biểu diễn các trang Web, với thành phần của vector chính là tần suất xuất hiện của các
từ khóa trong văn bản đang xét.
Luận văn này đề xuất một số thuật toán:
- Liệt kê danh sách các trang Web “Gần nghĩa nhất” với trang Web hoặc cụm từ
tìm kiếm đưa vào theo tiêu chí “Gần nhau về nội dung”. Độ gần nhau về nội dung sẽ
thu được khi so sánh các vector biểu diễn với nhau
- Độ quan trọng của trang Web dựa vào mối liên kết với trang Web khác và tần số
xuất hiện của các từ khóa tìm kiếm trong trang.
- Kết hợp độ gần nhau về nội dung và độ quan trọng của trang web thành một tiêu
chí gọi là “giá trị kết hợp”. Kết quả sẽ được hiển thị theo “giá trị kết hợp”.
Nhận xét
Tuy công trình đầu tiên [Séan Slattery] đã giới thiệu khá tổng quan về các
phương pháp phân lớp và phân tích một số kết quả thử nghiệm, nhưng nói chung cả
bốn công trình nghiên cứu nói trên chưa thực sự đề cập tới vấn đề thiết kế và cài đặt
những giải pháp thực sự tinh tế giải quyết vấn đề từ đồng nghĩa và đa ngôn ngữ đối với
hệ thống phân lớp trong CSDL Web. Thực hiện việc khảo sát những giải pháp cho vấn
đề này và cài đặt thử nghiệm là một công việc nghiên cứu có ý nghĩa.
Tồn tại một số thuật toán điển hình giải quyết bài toán phân lớp trong các CSDL
văn bản. Việc cài đặt thử nghiệm và đánh giá hiệu quả hoạt động của một số thuật toán
phân lớp điển hình như vậy trong một CSDL web thực sự (khoảng vạn trang ) có thể
được coi như những bước đi cần thiết đầu tiên trong việc xây dựng và phát triển các
máy tìm kiếm tiếng Việt.
Từ khóa (KeyWord) : Nội dung là một từ trong tiếng Anh nên nó phải thỏa mãn
các điều kiện sau: Từ trong tiếng Anh có một âm tiết, mỗi âm tiết là một chuỗi ký tự a-
z,A-Z. Các từ trong câu được tách biệt bởi dấu cách hoặc các ký tự bất kỳ (dấu chấm,
dấu phảy, dấu hai chấm,…) không thuộc a-z, A-Z.
Các từ đồng nghĩa (Synonymous): Là trường memo có dạng (word1,
word2,…,wordn ). Vậy các từ đồng nghĩa có cùng mã (keywordID) với từ khóa.
3.Bảng 3 Thể hiện sự kiên kết giữa các văn bản. (LINKS)
Field Name Field Type Descrription
DocID1 Number Mã của văn bản liên kết đi
DocID2 Number Mã văn bản được liên kết tới
DocID1 là mã các văn bản có liên kết tới các văn bản có mã trong DocID2.
4. Modul tạo ra vector cho mỗi tài liệu, thêm vào trường Vector của bảng
DOCUMENTS.
Thuật toán:
1. Đọc từ bảng DOCUMENTS trong CSDL để lấy DocID và CacheAdd
2. While (chưa đọc hết các bản ghi)
2.1. Dùng CacheAdd để đọc tài liệu từ đĩa cứng
2.2. Gán DocID_curence=DocID
2.3. Gán total_occurence=0; header_occurence=0; vector=””;
2.4. Lấy từng từ khóa keyword trong bảng KEYWORDS để so sánh
2.4.1 While (chưa hết các từ khóa)
2.4.1.2. Phân tích tài liệu để lấy từng từ mục : word
2.4.1.2. Kiểm tra xem nếu word chưa có trong bảng KEYWORD thì bổ
sung thêm
2.4.1.3. While (chưa đọc hết tài liệu)
- Nếu (word= keyword) hoặc (word=từ đồng nghĩa) và (word nằm trong
thẻ <head>) thì total_occurence+3 và header_occurence+1;
- Nếu (word=keyword) hoặc (word=từ đồng nghĩa) và (word không nằm
trong thẻ <head>) thì total_occurence ++; header_occurense++;
End.
2.4.1.4. total_occurence*3;
header_occurence*3;
2.4.1.5. Đọc tất cả các tài liệu mà tài liệu hiện thời liên kết tới(outgoing)
Lặp lại các bước phân tích như đối với tại liệu hiện thời, để tăng 2 biến
total_occurence và header_occurence
2.4.1.6. Đọc tất các tài liệu liên kết tới tài liệu hiện thời (incoming)
Lặp lại các bước phân tích như đối với tài liệu hiênh thời để tăng 2 biến
total_occurence và header_occurence
End.
2.5. Nếu (total_occurence !=0 ) thì vector += KeyWordID + “,” +
total_occurence + “,” + header_occerence +”;”
2.6. Insert into DOCUMENTS (Vector) values vector where
DocID=DocID_curence.
3. End.