Xây dựng thành công giải pháp tự động tổng hợp, rút trích tin tức viết về Long An từ các trang thông tin, báo điện tử trong nước và tiến hành chuẩn hóa các bản tin đã rút trích được theo
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Mã số: 60.48.01.01
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS DƯƠNG MINH ĐỨC
TP HỒ CHÍ MINH – Năm 2018
Trang 2- Sở Thông tin và Truyền thông Long An đã giúp đỡ, tạo điều kiện và cung cấp số liệu, tài liệu cần thiết cho việc nghiên cứu và hoàn thành luận văn này
- Quý Thầy Cô đã giảng dạy và truyền đạt những kiến thức bổ ích trong suốt quá trình học tập tại Trường Đại học Công nghệ Thông tin, ĐHQG.HCM
- Các Anh, Chị Phòng Đào tạo Sau Đại học luôn nhiệt tình hỗ trợ và tạo điều kiện thuận lợi để học tập và nghiên cứu
- Cuối cùng tôi xin chân thành cảm ơn gia đình và bạn bè đã động viên, khích lệ, chia sẽ, giúp đỡ và đồng hành cùng tôi trong cuộc sống cũng như quá trình học tập và nghiên cứu
Mặc dù đã có nhiều cố gắng để thực hiện luận văn được hoàn chỉnh nhất, song do mới buổi đầu làm quen với công việc nghiên cứu khoa học cũng như những hạn chế về kiến thức và kinh nghiệm nên không thể tránh khỏi những thiếu sót nhất định Rất mong sự đóng góp, phê bình chân thành của Quý Thầy Cô để luận văn được hoàn chỉnh hơn Sau cùng, xin kính chúc mọi người được dồi dào sức khỏe và thành công Chúc Trường Đại học Công nghệ Thông tin, ĐHQG.HCM ngày càng phát triển
Tp Hồ Chí Minh, ngày 20 tháng 12 năm 2017
Tác giả luận văn
Vũ Quang Huy
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này do chính tôi thực hiện dưới sự hướng dẫn khoa học của
TS Dương Minh Đức giảng viên Trường Đại học Công nghệ thông tin TP.HCM Các dữ liệu nghiên cứu trong luận văn là trung thực, do tôi lập trình, phân tích, thiết kế Các thông tin trích dẫn trong luận văn này đều đã được chỉ rõ nguồn gốc
Nếu sai, tôi xin chịu hoàn toàn trách nhiệm
Tác giả luận văn
Vũ Quang Huy
Trang 4MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
DANH SÁCH KÝ HIỆU, CHỮ VIẾT TẮT 6
DANH SÁCH HÌNH 7
DANH SÁCH BẢNG 9
MỞ ĐẦU 10
Chương 1 TỔNG QUAN 12
1.1 Tình hình nghiên cứu 12
1.1.1 Trên thế giới 12
1.1.2 Trong nước 13
1.2 So sánh các trang thông tin điện tử tổng hợp 14
Chương 2 CƠ SỞ LÝ THUYẾT 15
2.1 Nghiên cứu về tri thức (Knowledge) 15
1.2.1.Thành phần của Ontology: 15
1.2.2.Phương pháp xây dựng một Ontology 16
2.2 Nghiên cứu về web ngữ nghĩa 20
2.1.1 Ontology và Semantic Web 22
2.1.2 Kiến trúc của Semantic Web 23
2.1.3 Các ngôn ngữ được dùng để xây dựng Semantic Web 24
2.3 Nghiên cứu về rút trích thông tin trên báo điện tử 25
2.4 Các phương pháp tách từ trong tiếng việt 29
2.3.1.Tách câu dựa trên công cụ vnSentDectector 29
2.3.2.Phương pháp khớp tối đa (Maximum Matching) 30
2.3.3.Phương pháp tách từ bằng WFST (Weighted Finite – State Transducer) 30
Trang 52.3.4.Bài toán tách từ và công cụ vnTokenizer 31
2.3.5.Tách từ sử dụng n-grams 33
2.3.6.So sánh các phương pháp tách từ tiếng Việt 33
2.5 Nghiên cứu về phân lớp văn bản 34
2.4.1.Phân loại văn bản sử dụng Mạng Neural nhân tạo: 34
2.4.2.Phân loại văn bản sử dụng mô hình vector 40
2.4.3.Vấn đề Overfitting 42
Chương 3 PHÂN TÍCH, THIẾT KẾ HỆ THỐNG WEBSITE TỔNG HỢP VÀ ĐÁNH GIÁ TIN TỨC 45
3.1 Khảo sát hiện trạng 45
3.2 Xây dựng mô hình hệ thống 46
3.2.1.Mô hình kiến trúc tổng thể 46
3.2.2.Mô hình các hệ thống thành phần 48
3.3 Xây dựng cơ sở dữ liệu, xây dựng kho dữ liệu huấn luyện 55
3.3.1.Xây dựng cơ sở dữ liệu 55
3.3.2.Lược đồ thực thể (Entity-relationship diagram) 59
3.3.3.Xây dựng cơ sở dữ liệu 65
3.3.4.Xây dựng kho dữ liệu huấn luyện 69
3.4 Xây dựng hệ thống rút trích thông tin 69
3.4.1.Thiết kế chi tiết (Use-Case Diagrams) 70
3.4.2.Chức năng của hệ thống tổng hợp tin tức 76
Chương 4 CÀI ĐẶT VÀ ĐÁNH GIÁ KẾT QUẢ THỰC NGHIỆM 95
4.1 Mô hình thử nghiệm thuật toán 95
4.2 Đánh giá thuật toán 96
Chương 5 KẾT LUẬN VÀ KIẾN NGHỊ 99
5.1 Kết luận 99
6.1.1.Ý nghĩa khoa học của kết quả nghiên cứu 99
6.1.2.Ý nghĩa thực tiễn và khả năng ứng dụng kết quả khoa học 100
Trang 65.2 Kiến nghị 100
TÀI LIỆU THAM KHẢO 101
Tiếng Việt 101
Tiếng Anh 101
PHỤ LỤC I: DANH SÁCH TRANG THÔNG TIN ĐIỆN TỬ 103
PHỤ LỤC II: TỔNG HỢP KHẢO SÁT 105
Trang 7DANH SÁCH KÝ HIỆU, CHỮ VIẾT TẮT
LAN Local Area Network - Mạng nội bộ
HTML Hypertext Markup Language
URI Uniform Resource Identifier
Trang 8DANH SÁCH HÌNH
Hình 2.1 Liên kết ngữ nghĩa giữa các đối tượng trong Semantic Web 21
Hình 2.2 Mô hình kiến trúc Semantic Web 23
Hình 2.3 Cấu trúc cây DOM của tài liệu văn bản html 28
Hình 2.4 Quy trình tách từ bằng công cụ vnTokenizer 32
Hình 2.5 Cấu trúc lớp phân cấp 19
Hình 2.6 Ràng buộc về thuộc tính 20
Hình 3.1 Mô hình kiến trúc tổng thể của hệ thống 47
Hình 3.2 Mô hình Hệ thống “Tự động rút trích thông tin” từ báo điện tử 49
Hình 3.3 Mô hình Hệ thống “Chuẩn hóa bản tin” 51
Hình 3.4 Mô hình hệ thống “Phân lớp bản tin” theo chủ đề 53
Hình 3.5 Lược đồ thực thể (Entity-relationship diagram) 62
Hình 3.6 Các khái niệm chủ yếu 66
Hình 3.7 Sơ đồ phân cấp các lớp thực thể về Con người 67
Hình 3.8 Sơ đồ phân cấp quản lý của các đơn vị hành chính ở Việt Nam 68
Hình 3.9 Giao diện bản tin liên quan 80
Hình 3.10 Giao diện bản tin cùng chủ đề 81
Hình 3.11 Giao diện giao diện thống kê theo thời gian 82
Hình 3.12 Giao diện thống kê theo tháng, năm 83
Hình 3.13 Giao diện thống kê theo địa phương 84
Hình 3.14 Giao diện thống kê theo cơ quan trong tỉnh 86
Hình 3.15 Giao diện thống kê theo lãnh đạo 88
Hình 3.16 Giao diện thống kê theo cơ quan báo chí 89
Trang 9Hình 3.17 Giao diện thống kê theo tác giả 90
Hình 3.18 Giao diện xuất nội dung danh sách bản tin được chọn 91
Hình 3.19 Giao diện tìm kiếm bản tin 93
Hình 4.1 Mô hình thử nghiệm thuật toán 96
Trang 10DANH SÁCH BẢNG
Bảng 1.1 Bảng so sánh các trang thông tin điện tử tổng hợp 14
Bảng 2.1 Phân biệt Semantic Web với Web hiện nay 21
Bảng 3.1.TB-01: Xã 62
Bảng 3.2.TB-02: Huyện 62
Bảng 3.3 TB-03: Đường 62
Bảng 3.4 TB-04: Địa danh 62
Bảng 3.5 TB-05: Mức độ 63
Bảng 3.6 TB-06: Chủ đề 63
Bảng 3.7 TB-07: Phân loại 63
Bảng 3.8 TB-08: Sự kiện 63
Bảng 3.9 TB-09: Cơ quan báo chí 64
Bảng 3.10 TB-10: Tác giả 64
Bảng 3.11 TB-11: Bản tin 64
Bảng 3.12 Mô tả chức năng Giao diện phân loại bản tin 78
Bảng 3.13 Mô tả chức năng Giao diện bản tin liên quan 80
Bảng 3.14 Mô tả chức năng Giao diện bản tin cùng chủ đề 81
Bảng 3.15 Mô tả chức năng Giao diện thống kê theo thời gian 82
Bảng 3.16 Mô tả chức năng Giao diện thống kê theo tháng, năm 83
Bảng 3.17 Mô tả chức năng Giao diện thống kê theo địa phương 84
Bảng 3.18 Mô tả chức năng Giao diện thống kê theo đơn vị 86
Bảng 3.19 Mô tả chức năng Giao diện thống kê theo lãnh đạo 88
Bảng 3.20 Mô tả chức năng Giao diện thống kê theo cơ quan báo chí 89
Bảng 3.21 Mô tả chức năng Giao diện thống kê theo tác giả 90
Bảng 3.22 Mô tả chức năng Giao diện xuất nội dung danh sách bản tin 92
Bảng 3.23 Mô tả chức năng Giao diện tìm kiếm bản tin 93
Bảng 4.1 So sánh các thuật toán máy học 97
Bảng 4.2 So sánh các thuật toán khi thay đổi thứ tự lấy mẫu 97
Bảng 4.4 Đánh giá phân lớp bản tin 98
Trang 11MỞ ĐẦU
Luận văn xây dựng hệ thống tự động tổng hợp tin tức từ các trang thông tin, báo điện tử, hình thành kho dữ liệu tin tức, báo điện tử cần thiết phục vụ cho việc quản lý, tìm kiếm Tiếp đó, xây dựng phần mềm ứng dụng làm công cụ phục vụ cho việc nắm bắt, tìm kiếm thông tin, báo cáo, thống kê báo điện tử trên Internet theo hướng có ngữ nghĩa
Sản phẩm của luận văn sẽ giúp lãnh đạo các cấp, các ngành trong tỉnh nắm bắt kịp thời thông tin trên báo điện tử một cách đầy đủ và kịp thời, giúp tăng cường công tác quản lý thông tin trên các trang thông tin, báo điện tử trong nước; kịp thời cung cấp thông tin để hỗ trợ lãnh đạo có cơ chế phản hồi, xem xét, ra quyết định trước những nguồn thông tin (nhất là những thông tin trái chiều), đồng thời, chủ động trong đấu tranh phản bác các luận điệu tuyên truyền, xuyên tạc của các phần tử xấu từ các trang báo điện tử trong nước
Đặc biệt, sản phẩm của đề tài còn hỗ trợ cho cơ quan quản lý nhà nước về báo chí
có cái nhìn tổng quát về tình hình báo chí điện tử, kịp thời nắm bắt, xử lý, phản hồi trước những thông tin nhạy cảm, trái chiều viết về tỉnh Từ đó, phối hợp với cơ quan liên quan thực hiện công tác định hướng dư luận xã hội, công tác quản lý nhà nước về báo chí trên địa bàn tỉnh tốt hơn Phục vụ cho công tác tổng hợp, thống kê, báo cáo tình hình báo điện
tử viết về tỉnh theo thời gian, theo lĩnh vực, theo cơ quan báo chí,
Xây dựng thành công giải pháp tự động tổng hợp, rút trích tin tức viết về Long An
từ các trang thông tin, báo điện tử trong nước và tiến hành chuẩn hóa các bản tin đã rút trích được theo cấu trúc đã được định nghĩa; hiện thực hóa giải pháp, kỹ thuật biểu diễn
và xử lý ngữ nghĩa trong rút trích, tìm kiếm thông tin trên văn bản tiếng Việt; xây dựng
cơ sở dữ liệu bao gồm các thực thể có lên ở Long An và các lĩnh vực (thuộc phạm vi nghiên cứu của luận văn) cơ bản đáp ứng nhu cầu thực tế Kết hợp cơ sở dữ liệu đã xây dựng được, luận văn tiến hành phân lớp bản tin theo lĩnh vực cụ thể trong phạm vi nghiên
cứu của luận văn (Thời sự - Chính trị, Văn hóa – Xã hội, Kinh tế - Phát triển, An ninh –
Trang 12Quốc phòng, An toàn giao thông) theo hướng có ngữ nghĩa để phục vụ cho công tác tìm
kiếm, thống kê, báo cáo sau này
Luận văn đã xây dựng thành công hệ thống tổ chức lưu trữ, quản lý tin tức viết về Long An và hiện thực hóa các chức năng (hiển thị bản tin theo nhiều tiêu chí; tìm kiếm; thống kê; báo cáo; ) theo nhu cầu người dùng thông qua "Hệ thống tổng hợp tin tức viết về Long An" Thông qua hệ thống này, người dùng hoàn toàn có thể kịp thời nắm bắt thông tin trên báo điện tử viết về Long An và sẵn sàng phục vụ cho công tác thống
kê, báo cáo của cơ quan quản lý nhà nước về báo chí
Trang 13Chương 1 TỔNG QUAN 1.1 Tình hình nghiên cứu
1.1.1 Trên thế giới
Hiện nay, mạng máy tính (Internet) phát triển mạnh, cùng với nó, tin tức cũng được cập nhật liên tục và rộng rãi Một lượng thông tin khổng lồ được sản sinh và cung cấp tới người dùng trong ngày Thông tin luôn được cập nhật theo từng giây, từng phút, bao gồm các lĩnh vực kinh tế, chính trị, văn hóa, xã hội… Ngoài hình thức báo giấy tồn tại
từ rất lâu, đã ra đời báo điện tử góp phần đưa những tin tức đến với người đọc một cách nhanh chóng Tuy nhiên, báo điện tử tuy đầy đủ về nội dung nhưng dài, mất nhiều thời gian để đọc giả thu nhận những thông tin quan trọng và cũng thông thể đọc hoặc kiểm soát được hết lượng thông tin họ cần
Trên thế giới, một số hệ thống cung cấp thông tin tóm lược về thông tin báo chí đã được phát triển Một số hệ thống được biết tới như: news.google.com.vn, www.msn.com, vn.yahoo.com … Các trang này tự động lọc tin tức từ các website và tổng hợp nội dung tóm lược nhằm cung cấp cho người dùng nắm được tổng quát vấn đề, và nếu muốn tìm hiểu thêm, đọc giả có thể đọc chi tiết nội dung các trang thông tin gốc Tuy nhiên các trang này không hỗ trợ địa phương hóa, tức là không phân loại các bản tin theo tỉnh thành Ngoài ra các hệ thống này còn lấy tin từ các nguồn tin không chính thức của nước
ngoài (Đài Á Châu Tự Do, ) gây ra sai lệch cho người đọc
Trong bài báo News classification based on their headlines của các tác giả M I Rana; S Khalid; M U Akbar [9] đã đánh giá các nghiên cứu phân loại bản tin theo tiêu
đề bằng một số phương pháp như: K-Nearest Neighbours, Naive Bayes, Support Vector Machines, Artificial Neural Networks, Decision Trees và đã nêu ra ưu khuyết điểm của các phương pháp trên Bài báo A novel text mining approach based on TF-IDF and Support Vector Machine for news classification của các tác giả S M H Dadgar; M S Araghi; M M Farahani [12] đã nghiên cứu phân loại bản tin qua ba bước: (1) tiền xử lý văn bản, (2) rút từ đặc trưng dựa trên TF-IDF, và (3) phân loại dựa trên Support Vector
Trang 14Machine (SVM) cho kết quả thu được là 97.84% đối với BBC và 94.93% đối với 20 tờ báo khác
Nghiên cứu về phản hồi của người đọc có các bài báo Emotion Classification of Online News Articles from the Reader’s Perspective của các tác K H Y Lin; C Yang;
H H Chen [7] và bài báo Comparing and evaluating the sentiment on newspaper articles:
A preliminary experiment của các tác giả S Padmaja; S S Fatima; S Bandu; P Kosala;
M C Abhignya [13] đã sử dụng phương pháp SentiWordNet (SWN), Naive Bayes (NB)
và Support Vector Machine (SVM) để phân loại cảm xúc, ý kiến người đọc tích cực hay tiêu cực khi đọc bản tin tốt hay xấu
1.1.2 Trong nước
Ở Việt Nam, khi mà mạng Internet phát triển rộng rãi, các trang thông tin, báo điện
tử ra đời ngày càng nhiều Hiện nay đã có hàng nghìn trang thông tin điện tử, rất nhiều trang báo hoạt động dưới các hình thức khác nhau Bên cạnh việc đăng tải những bài viết nội bộ biên soạn, các trang báo điện tử còn thực hiện các phương thức chia sẻ thông tin với nhau Theo đó, những trang thông tin điện tử tổng hợp có thể sao chép một phần thông tin được chia sẻ (thông qua các định dạng chuẩn như RSS, HTML, ) và phát hành lại trên website của mình, nếu người dùng cần xem đầy đủ thông tin thì sẽ được liên kết chuyển sang trang báo chính thức, đây là cách chia sẻ thông tin phổ trên các trang mạng như: vnexpress.net, www.baomoi.com Từ đó, nhu cầu đặt ra là cần có một công cụ cung cấp thông tin tổng thể, tóm lược từ các trang thông tin, báo điện tử cho đọc giả bằng ngôn ngữ tiếng Việt ngày càng được quan tâm Tuy nhiên, đến thời điểm hiện tại công cụ này chưa được phát triển mạnh, hầu hết đều dừng lại ở phương pháp lấy tiêu đề hay một số câu đầu của bài báo Do đó, không thể cung cấp được nội dung khái quát của bài báo cho đọc giả, cũng như chi cung cấp các công cụ tìm kiếm bằng từ khóa chưa có phương pháp tìm kiếm ngữ nghĩa đáp ứng nhu cầu người đọc
Một số nghiên cứu gần đây trong lĩnh vực này nổi bật là đề tài KHCN cấp tỉnh
“Nghiên cứu xây dựng hệ thống hỗ trợ chọn lọc thông tin về tỉnh Bình Dương trên báo mạng” [1] do PGS.TS Đỗ Văn Nhơn chủ nhiệm đề tài thực hiện năm 2014 và luận văn thạc sĩ năm 2014 “Mô hình và thuật giải cho hệ hỗ trợ tìm kiếm thông tin theo ngữ nghĩa
Trang 15trên các báo điện tử” của Ths Hồ Long Vân thực hiện Hai đề tài trên đã đề xuất các mô hình, các giải pháp kỹ thuật thu thập tin bài từ các báo mạng, kỹ thuật tìm kiếm và chọn lọc thông tin theo nhiều tiêu chí phối hợp, trích xuất báo cáo điểm tin hàng ngày, hỗ trợ tìm kiếm truy vấn bản tin
Bên cạnh đó bài báo Document Searching System based on Natural Language Query Processing for Vietnam Open Courseware Library của tác giả Dang Tuan Nguyen;
Ha Quy-Tinh Luong [4] đã nghiên cứu cách sử dụng mô hình Ontology để phát triển công
cụ truy vấn tìm kiếm các bài viết theo hướng có ngữ nghĩa nếu được kết hợp với các hệ thống tổng hợp tin tức trên sẽ đáp ứng được nhu cầu tìm kiếm các bài viết theo hướng ngữ của người đọc
1.2 So sánh các trang thông tin điện tử tổng hợp
Bảng 1.1 Bảng so sánh các trang thông tin điện tử tổng hợp
Trang thông tin
tổng hợp
Phân loại lĩnh vực
Phân loại địa phương
Nguồn tin không chính thống
Không Theo từ khóa
Trang 16Chương 2 CƠ SỞ LÝ THUYẾT 2.1 Nghiên cứu về tri thức (Knowledge)
Theo wikipedia, từ “ontology” tạm dịch là “bản thể luận” có nguồn gốc từ triết học và được dùng trong nhiều lĩnh vực như khoa học máy tính, hệ thống kỹ thuật, kỹ thuật phần mềm, tin sinh học, khoa học thư viện, kiến trúc thông tin và các website ngữ nghĩa (Semantic web) Một số định nghĩa về ontology được sử dụng nhiều hiện nay gồm:
- Theo quan điểm triết học, ontology là nghiên cứu về bản chất của sinh vật, sự tồn tại hoặc những sự vật thực tế, cũng như các loại sinh vật cơ bản và các mối quan hệ của chúng (wikipedia)
- Trong khoa học máy tính, một ontology là một đặc tả rõ ràng của một sự trừu tượng hóa (An ontology is an explicit specification of a conceptualization)
- Một ontology định nghĩa một tập từ vựng cho những nhà nghiên cứu sử dụng khi cần chia sẻ thông tin trong một lĩnh vực Nó bao gồm những định nghĩa của các khái niệm cơ bản trong một lĩnh vực và mối quan hệ giữa chúng mà máy có thể hiểu được
Tóm lại, Ontology gồm những khái niệm về một lĩnh vực cụ thể và các mối quan
hệ giữa chúng Một Ontology về một lĩnh vực sẽ mô tả rõ ràng những thực thể giúp con người và máy có thể hiểu và suy luận được theo ngữ nghĩa trong phạm vi lĩnh vực đó
1.2.1 Thành phần của Ontology:
- Các lớp (Classes) - Khái niệm
Lớp là nhóm, tập hợp các đối tượng trừu tượng có thể chứa các cá thể, lớp khác hoặc cả hai Các Ontology biến đổi tuỳ thuộc vào cấu trúc và nội dung của nó: Một lớp
có thể chứa các lớp con, có thể là một lớp tổng quan (chứa tất cả mọi thứ), có thể là lớp chỉ chứa những cá thể riêng lẻ Các lớp được sắp xếp theo cấu trúc có thứ bậc, thường là với một lớp thông dụng nhất kiểu Thing ở trên đỉnh và các lớp con rất cụ thể ở phía dưới cùng
Lớp có thể có các ràng buộc (restrictions) cho các quan hệ của cá thể thuộc lớp
Trang 17đó, ví dụ như một Tác giả phải viết một hoặc nhiều tác phẩm thì một cá thể của tác giả phải có quan hệ “là tác giả của” với một hoặc nhiều cá thể của tác phẩm
- Các cá thể (Individuals)
Là những đối tượng đại diện thuộc một lớp cụ thể trong domain Mỗi cá thể có thể có các thuộc tính của lớp mà nó thể hiện và quan hệ với các cá thể khác theo ràng buộc của lớp Những cá thể còn có thể được coi như là những trường hợp của lớp
- Các thuộc tính (Properties)
Các đối tượng trong Ontology có thể được mô tả thông qua việc khai báo các thuộc tính của chúng Mỗi một thuộc tính đều có tên và giá trị của thuộc tính đó Các thuộc tính được sử dụng để lưu trữ các thông tin mà đối tượng có thể có Ví dụ, đối với một cá thể của lớp người có thể có các thuộc tính: Họ_tên, ngày_sinh, quê_quán, số_cmnd,…
Giá trị của một thuộc tính có thể có các kiểu dữ liệu phức tạp
- Các mối quan hệ (Relations)
Là thuộc tính để mô tả mối liên hệ giữa các đối tượng trong Ontology Một mối quan hệ là một thuộc tính có giá trị là một đối tượng nào đó trong Ontology Một đối tượng có thể có một hoặc nhiều quan hệ trong Ontology bất kể lớp của nó có quan hệ đó hay không, quan hệ của đối tượng phải tuân theo ràng buộc của lớp chứa đối tượng đó nếu có
1.2.2 Phương pháp xây dựng một Ontology
Hiện nay không có phương pháp chuẩn nào cho việc xây dựng một Ontology [1] Khi xây dựng Ontology chúng ta nên dựa vào nhu cầu của ứng dụng sẽ sử dụng nó để thiết kế cho phù hợp
Quá trình xây dựng một Ontology là một quá trình lặp, thường bắt đầu bằng một phiên bản thô rồi sao đó xem xét, chỉnh sửa, lọc lại Ontology phiên bản trước và thêm vào các chi tiết
Trang 18Những khái niệm trong Ontology là những đối tượng thực tế hoặc logic phản ánh thế giới thực và những quan hệ thường là những động từ trong câu mô tả khái niệm trong lĩnh vực
Thông thường, phương pháp xây dựng Ontology gồm các bước:
Bước 1: Xác định miền và phạm vi của Ontology Đây là chúng ta nên làm trước
khi muốn xây dựng một Ontology Các yêu cầu đối với Ontology trong hệ thống thường
là mô tả miền quan tâm nhằm cung cấp cơ sở tri thức trong việc giải quyết những mục đích chuyên biệt Để nhận diện chính xác những yêu cầu chúng ta cần phải trả lời một
số câu hỏi như:
Ontology cần mô tả miền nào?
Ontology phục vụ cho mục đích chuyên biệt gì?
Cơ sở tri thức trong Ontology sẽ trả lời những câu hỏi gì?
Ontology nhằm vục vụ đối tượng nào?
Ai là người sẽ xây dựng, quản trị Ontology?
Các câu trả lời có thể thay đổi ở mỗi bước lặp trong quá trình xây dựng Ontology tùy mục đích của ứng dụng hoặc có những tính năng cần bổ sung lúc đó Trả lời các câu hỏi trên sẽ giúp giới hạn phạm vi thực sự của Ontology cần mô tả và dự trù các kỹ thuật
sẽ sử dụng trong quá trình phát triển Ví dụ như Ontology cần xây dựng có chức năng
xử lý ngôn ngữ tự nhiên, ứng dụng dịch tài liệu tự động thì cần phải có kỹ thuật xác định
từ đồng nghĩa
Sau khi đã phát thảo phạm vi Ontology dựa trên việc trả lời những câu hỏi trên, chúng ta tiếp tục tinh chỉnh lại bằng cách trả lời các câu hỏi kiểm chứng khả năng (competency question):
Ontology đã có đủ thông tin để trả lời cho các câu hỏi được quan tâm trên cơ sở tri thức hay không?
Trang 19 Câu trả lời của cơ sở tri thức đã đáp ứng được mức độ, yêu cầu nào của người sử dụng?
Các ràng buộc và quan hệ phức tạp trong miền quan tâm đã được biểu diễn hợp
lý chưa?
Bước 2: Xem xét việc kế thừa các Ontology có sẵn: đây là một công đoạn thường
hay sử dụng để giảm thiểu công sức xây dựng một Ontology Bằng cách kế thừa các Ontology tương tự có sẵn, người xây dựng có thể thêm hoặc bớt các lớp, quan hệ giữa các lớp, thực thể… để tinh chỉnh tùy theo mục đích của mình Ngoài ra, việc sử dụng lại các Ontology có sẵn cũng rất quan trọng khi cần sự tương tác giữa các ứng dụng khác nhau vì các ứng dụng sẽ cần phải hiểu các lớp, thực thể, quan hệ… của nhau để thuận tiện trong việc trao đổi hoặc thống nhất thông tin
Bước 3: Liệt kê các thuật ngữ quan trọng trong Ontology: Liệt kê tất cả các thuật
ngữ xuất hiện trong miền quan tâm (có thể đồng nghĩa hoặc chồng nhau) như tên khái niệm, quan hệ, thuộc tính… Thông thường, các thuật ngữ là danh từ sẽ trở thành các lớp, tính từ sẽ trở thành thuộc tính, còn động từ sẽ là quan hệ giữa các lớp
Bước 4: Xây dựng các lớp và cấu trúc lớp phân cấp: Định nghĩa các lớp từ một
số thuật ngữ đã liệt kê trong bước 3, sau đó xây dựng cấu trúc lớp phân cấp theo quan hệ
lớp cha-lớp con Lớp ở vị trí càng cao trong cấu trúc này sẽ có mức độ tổng quát càng
cao Vị trí đầu tiên thuộc về lớp gốc, tiếp theo là các lớp trung gian, và cuối cùng là lớp
lá Lớp lá là lớp không thể triển khai được nữa và chỉ được biểu hiện bằng các thực thể
Trang 20Hình 2.1 Cấu trúc lớp phân cấp
Thực thể của lớp con “là-một” thực thể của lớp cha nó
Có nhiều hướng tiếp cận khác nhau cho vấn đề xây dựng cấu trúc lớp phân cấp như:
Hướng xây dựng từ trên xuống (top-down): bắt đầu bằng các lớp có
mức độ tổng quát cao nhất, sau đó triển khai dần đến lớp lá
Hướng xây dựng từ dưới lên (bottom-up): ngược với hướng xây dựng
cấu trúc lớp phân cấp từ trên xuống, hướng này bắt đầu bằng việc xác định các lớp được cho là cụ thể nhất, sau đó tổng quát hóa đến khi được lớp gốc
Cách kết hợp (combination): cách này kết hợp cả hai hướng xây dựng
trên Đầu tiên chọn các lớp nổi bật nhất trong miền quan tâm, sau đó tổng quát hóa và cụ thể hóa cho đến khi được cấu trúc mong muốn
Bước 5: Định nghĩa các thuộc tính và quan hệ cho lớp: các lớp tạo ra ở bước 4
chỉ mới là những tên gọi, tiếp theo chúng ta cần định nghĩa thuộc tính của lớp là các
Trang 21thông tin bên trong của lớp, mô tả một khía cạnh nào đó của lớp và được dùng để phân
biệt với các lớp khác Có hai loại: thuộc tính đơn (simple property) và thuộc tính phức
(complex property) Thuộc tính đơn là các giá trị đơn ví dụ: chuỗi, số,… còn thuộc tính
phức có thể chứa hoặc tham khảo đến một đối tượng khác Một lớp sẽ kế thừa toàn bộ các thuộc tính của tất cả các cha nó
Bước 6: Định nghĩa các ràng buộc về thuộc tính và quan hệ của lớp: Các ràng
buộc (restrictions) giới hạn giá trị mà một thuộc tính có thể nhận Hai ràng buộc quan
trọng nhất đối với một thuộc tính là lượng số (cardinality) và kiểu (type) Ràng buộc
lượng số quy định số giá trị mà một thuộc tính có thể nhận Hai giá trị thường thấy của
ràng buộc này là đơn trị (single) và đa trị (multiple) Ràng buộc thứ hai là về kiểu, các
kiểu mà một thuộc tính có thể nhận là: chuỗi, số, boolean, liệt kê và kiểu thực thể Riêng
kiểu thực thể có liên quan đến hai khái niệm gọi là: miền (domain) và khoảng (range)
Khái niệm miền được dùng để chỉ lớp (hay các lớp) mà một thuộc tính thuộc về Trong khi đó, khoảng chính là lớp (hay các lớp) làm kiểu cho giá trị thuộc tính kiểu thực thể
Hình 2.2 Ràng buộc về thuộc tính Bước 7: Đây là bước cuối cùng khép lại một vòng lặp xây dựng Ontology Việc
cần làm ở bước này là tạo thực thể cho mỗi lớp và gán giá trị cho các thuộc tính
2.2 Nghiên cứu về web ngữ nghĩa
Web ngữ nghĩa (Semantic Web) là một mạng lưới thông tin được kết ghép trong một phương pháp sao cho có thể xử lí dễ dàng bởi máy tính trên sự cân bằng toàn diện Bạn có thể nghĩ nó giống như một phương pháp trình bày dữ liệu hiệu quả trên World Wide Web, hoặc như là một cơ sở dữ liệu liên kết toàn diện
Trang 22Semantic Web được xây dựng dựa trên cú pháp sử dụng URTs để biểu diễn dữ liệu, luôn luôn trong bộ ba cấu trúc: tức là các bộ ba của dữ liệu URI mà có thể được giữ lại trong cơ sở dữ liệu hoặc được trao đổi trong World Wide Web dùng một tập những
cú pháp đặc biệt được phát triển riêng cho tác vụ nào đó Cú pháp này được gọi là cú pháp “Resource Description Framework” (khung mô tả tài nguyên)
Bảng 2.1 Phân biệt Semantic Web với Web hiện nay
- Lưu trữ thông tin (store things)
- Trình bày thông tin
- Thông tin không đồng bộ và nhanh
chóng bị lạc hậu
- Thao tác trên thông tin (does things)
- Trình bày thông tin nhưng nội dung trang Web có thể được xử lý bởi máy
- Nội dung của Web nói lên ngữ nghĩa của
nó thông qua các siêu dữ liệu (metadata)
Trang 23- Tìm kiếm chủ yếu dựa vào từ khóa
- Các ontology được chia sẽ để có thể hiểu được ngữ nghĩa
- Do có thể hiểu được ngữ nghĩa nên các phần mềm agent có thể giao tiếp, trao đổi thông tin với nhau
- Sử dụng nhiều kỹ thuật của lĩnh vực trí tuệ nhân tạo
- Tìm kiếm chủ yếu dựa vào ngữ nghĩa Một cách phân biệt khác:
- HTML : Web trực quan (visual Web)
- XML : Web theo cú pháp (syntactic Web)
- Logic : Web theo ngữ nghĩa (semantic Web)
2.1.1 Ontology và Semantic Web
Hiện tại, các ontology đã ứng dụng vào World Wide Web tạo ra Semantic Web Các cấu trúc ở mức khái niệm dùng xác định một ontology cơ sở cung cấp chìa khoá để máy tính có thể xử lý được dữ liệu trên Semantic Web Các ontology phục vụ như các giản đồ siêu dữ liệu, cung cấp khái niệm về từ vựng có thể kiểm soát được, mỗi ontology được xác định rõ ràng và máy tính có thể xử lý được ngữ nghĩa Bằng cách xác định các nguyên lý trên lĩnh vực chia sẻ và thông thường, các ontology giúp cho người và máy thông tin một cách chính xác - hỗ trợ việc trao đổi ngữ nghĩa chứ không chỉ cú pháp Vì vậy sự thành công và phát triển của Semantic Web phụ thuộc vào việc cấu trúc các ontology trên lĩnh vực đặc trưng một cách nhanh chóng và ít tốn kém
Trang 242.1.2 Kiến trúc của Semantic Web
Hình 2.4 Mô hình kiến trúc Semantic Web
- Lớp Unicode + URI : + Unicode: nhằm bảo đảm việc sử dụng tập kí tự chuẩn quốc tế
+ Lớp URI (bộ nhận dạng tài nguyên): Để nhận diện các mục trên trang Web, cung cấp phương pháp để định danh các đôi tượng sử dụng trong Web ngữ nghĩa
- Lớp XML: Được dùng như là lớp cú pháp, được thiết kế là một cách đơn giản để gởi các tài liệu qua Web Nó cho phép bất kỳ người nào thiết kế định dạng tài liệu của họ và sau đó viết một tài liệu theo định dạng đó Những định dạng tài liệu này có thể bao gồm định dạng để tăng cường ý nghĩa của nội dung tài liệu Định dạng này là định dạng “máy có thể đọc”, đó là định dạng các chương trình có thể đọc và hiểu chúng
- Lớp RDF + RDF Schema: Là phần cốt lõi của Semantic Web, nó là một hạ tầng kiến trúc cho phép mã hoá, trao đổi và tái sử dụng siêu dữ liệu cấu trúc Chủ yếu thông tin được lưu trữ trong hình thức của các phát biểu RDF, trình bày dữ liệu theo một cách thống nhất (chủ ngữ, vị từ, bổ ngữ) và làm cho máy tính dễ hiểu hơn Một schema là cách mô tả ý nghĩa và quan hệ giữa các thuật ngữ Những mô tả này trong RDF giúp các hệ thông máy tính
sử dụng các dạng thuật ngữ dễ dàng hơn và quyết định làm thế nào để chuyển đổi qua lại giữa chúng
Trang 25- Lớp ontology: dựa trên một sự thỏa thuận hình thức chung, xác định
ý nghĩa của dữ liệu
- Lớp logic: cung cấp các quy luật cho phép máy tính suy luận thông minh
- Lớp proof: hỗ trợ sự trao đổi của các “proof” trong sự truyền thông liên agent
- Lớp trust: chữ ký điện tử và Web tin cậy
2.1.3 Các ngôn ngữ được dùng để xây dựng Semantic Web
- XML (extensible Markup Language): Là một đặc tả cho các tài liệu máy tính có thể đọc XML là một metalanguage (siêu ngôn ngữ) để biểu diễn các ngôn ngữ khác theo một cách chuẩn XML có khả năng ứng dụng phổ biến có thể định nghĩa các ngôn ngữ định dạng tùy biến cho các kiểu tài liệu không hạn chế
- XML Schemas là một kế vị được đề xuất từ DTDs Định nghĩa XML Schema vẫn còn là một đề nghị từ W3C (World Wide Web Consortium), điều này nghĩa là dù nó đáng tin nhưng nó vẫn có thể phải trải qua những chỉnh sửa nhỏ nữa XML Schemas có nhiều tiến bộ so với DTDs bởi nó cung cấp văn phạm đầy đủ hơn để qui định cấu trúc của các element, nó cung cấp kiểu gõ dữ liệu cho phép tái sử dụng các định nghĩa element thông thường và điều chỉnh các định nghĩa đã có thành các định nghĩa mới, và cuối cùng các qui định XML Schema dùng XML như là cú pháp mã hoá của chúng
- RDF (Resource Discription Frame): biểu diễn dữ liệu về dữ liệu
XML cung cấp một cú pháp để mã hóa dữ liệu; resource description framework
là một cơ chế để cho biết gì đó về dữ liệu Như tên của nó đã cho biết, nó không là một ngôn ngữ nhưng là mô hình để biểu diễn dữ liệu về “things on the Web.” “Things” là các resource (tài nguyên) trong bảng từ vựng RDF Mô hình dữ liệu cơ bản của RDF đơn giản là: bên cạnh các resource, nó còn chứa các property (thuộc tính) và statement (khai báo) Một property là một khía cạnh nào đó, characteristic (đặc điểm), attribute (thuộc tính) hoặc relation (quan hệ) mô tả một resource Nói chung, một mô tả RDF là một danh
Trang 26sách các bộ ba: một object (một resource), một attribute (một property) và một value (một resource hoặc văn bản tự do)
2.3 Nghiên cứu về rút trích thông tin trên báo điện tử
Rút trích thông tin (Information Extraction) là việc tìm kiếm thông tin (Information Retrieval), khai thác dữ liệu (Data mining), và xử lý ngôn ngữ tự nhiên (Natural Language Processing) Mục tiêu chính của rút trích thông tin là tìm ra những thông tin cần thiết có hoặc không có cấu trúc hoăc bán cấu trúc từ các nguồn khác nhau trên internet sau đó chuyển về dưới dạng có cấu trúc để lưu vào các cơ sở dữ liệu Khi các dữ liệu, thông tin có thể biểu diễn một cách có cấu trúc, chúng ta có thể sử dụng các kỹ thuật phân tích, khai thác dữ liệu (data mining) để khám phá ra các mẫu thông tin hữu ích từ đó giúp ích cho quá trình phân tích, đánh giá các thông tin chuyên ngành; giúp xây dựng phương pháp tìm kiếm nhằm cho kết quả phản hồi tốt hơn, gần đúng
hoặc đúng với nhu cầu người dùng Với các phương pháp rút trích thông tin, cụ thể:
* Phương pháp rút trích theo cụm từ khóa (Keyphrase Extraction): dùng các biện pháp
xử lý ngôn ngữ tự nhiên như tách đoạn, tách câu, tách từ, phân tích cú pháp, phân tích ngữ nghĩa, thống kê và học máy… để tìm kiếm các cụm từ thể hiện đặc trưng của văn bản từ đó giúp phân loại, gom cụm, tóm tắt và tìm kiếm văn bản
Trang 27* Phương pháp nhận diện thực thể có tên: là phương pháp rút trích thông tin nhằm tìm kiếm, xác định và phân lớp các thành tố trong văn bản không cấu trúc thuộc vào các nhóm thực thể được xác định trước như tên người, tổ chức, vị trí, biểu thức thời gian, con số, giá trị tiền tệ, tỉ lệ phần trăm, v.v Thực thể có tên (Named Entity) có rất nhiều ứng dụng, đặc biệt trong các lĩnh vực như hiểu văn bản, dịch máy, truy vấn thông tin,
và hỏi đáp tự động
* Phương pháp nhận diện mối quan hệ: Nhận đầu vào là các khái niệm hay thực thể, thông qua tập tài liệu không có cấu trúc như các trang web, các tài liệu, tin tức,… ta cần phải xác định được các mối quan hệ ngữ nghĩa giữa chúng Như vậy, rút trích mối quan hệ là việc xác định mối quan hệ ngữ nghĩa giữa các thực thể trong văn bản hay trong một câu
* Phương pháp rút trích Metadata: Metadata có thể hiểu là những dữ liệu có cấu trúc được dùng để mô tả những đặc điểm cơ bản của thông tin Rút trích Metadata là nhằm mục đích tìm được các đặc trưng cơ bản của thông tin, chuyển chúng thành các dạng
dữ liệu phù hợp để sử dụng Chuẩn Metadata thông dụng là Dublin Core Metadata, đây
là chuẩn metadata được nhiều người biết đến và được dùng rộng rãi trong cộng đồng các nhà nghiên cứu, chuyên gia về xây dựng các thư viện số
* Phương pháp rút trích tin tức từ các trang báo điện tử phù hợp với yêu cầu của luận văn:
Yêu cầu đặt ra là rút trích được nội dung của các bản tin trên các trang báo điện tử để nhằm mục đích xây dựng kho dữ liệu tin tức cho hệ thống rút trích Phương pháp rút trích được lựa chọn trong trường hợp này là rút trích metadata Việc rút trích được đề xuất thực hiện theo hướng kết hợp giữa học máy và xử lý ngôn ngữ tự nhiên Đầu tiên, chúng tôi sẽ thực hiện bóc tách, phân tích dữ liệu văn bản từ các trang báo điện tử bằng cách sử dụng thư viện danh sách các trang báo cần rút trích có trước và phương pháp phân tích thẻ html, sau đó tiến hành phân lớp dữ liệu html thông qua kết quả phân tích các thẻ html để xây dựng cấu trúc cây văn bản Quá trình rút trích kết thúc sau khi tiến
Trang 28hành duyệt các node trên cây văn bản, kết hợp với các luật trong ngôn ngữ tự nhiên để lấy ra các metadata theo yêu cầu
Để đáp ứng yêu cầu về xây dựng kho dữ liệu bản tin từ các trang báo điện tử, trong chuyên đề này giải pháp được sử dụng là tiến hành bóc tách nội dung của bản tin trên các trang báo điện tử bằng cách sử dụng các hàm HTML Parser của thư viện Html Agility Pack trong Net Framework để tạo thành cây HTML DOM biểu diễn cấu trúc của các bản tin Từ cây Dom này, kết hợp các phương pháp xử lý ngôn ngữ chúng ta đi xác định các node ở trên cây bằng cách sử dụng thư viện Xpath trong Net Framework, đây chính là các metadata chính của bản tin cần rút trích
* Html Agibility Pack (HAP): là một bộ thư viện mã nguồn mở miễn phí được thiết kế nhằm mục đích đơn giản hóa việc đọc và ghi tài liệu HTML, nó phục vụ đắc lực cho việc rút trích dữ liệu trên bất kỳ một tài liệu HTML nào HAP có thể dùng để rút trích, sửa đổi dữ liệu trên một trang web, và lưu các thông tin cần thiết của trang web Thư viện này cho phép người dùng duyệt qua nội dung HTML như là một tài liệu XML bằng cú pháp của XPath Sau đó người dùng có thể duyệt cây DOM của tài liệu
HTML, di chuyển từ node này sang node khác, hoặc chuyển đến node con một cách dễ dàng Ngoài ra, thư viện HtmlAgilityPack, còn cho phép thực hiện các chức năng:
- Nhúng chức năng tra từ điển vào trang web của mình, người dùng chỉ cần nhập từ cần tra, kết quả trả về nghĩa của từ một trang web từ điển online
- Thực hiện tác vụ so sánh giá của sản phẩm, rút trích thông tin giá cả tự động từ những trang web khác nhau
* Cấu trúc cây văn bản (HTML DOM):
- DOM là viết tắt của chữ Document Object Model (mô hình đối tượng của tài liệu), là một chuẩn được định nghĩa bởi W3C dùng để truy suất trên các tài liệu có cấu trúc HTML hay XML bằng các ngôn ngữ thông dịch như javascript, PHP, Thông thường DOM, có dạng một cây cấu trúc dữ liệu, được dùng để truy xuất các tài liệu dạng HTML và XML Mô hình DOM dựa theo kỹ thuật lập trình hướng đối tượng để mô tả
Trang 29tài liệu, giúp thao tác dữ liệu theo mô hình hướng đối tượng Các phần tử bên trong một tài liệu có cấu trúc được định nghĩa thành các đối tượng, phương thức và thuộc tính để có thể truy suất dễ dàng mà vẫn đảm bảo tính cấu trúc: mỗi phần tử là một đối tượng, sở hữu các thuộc tính và các phương thức để làm việc với các thuộc tính như thêm, xóa, sửa, cập nhật Bên cạnh đó, chúng ta cũng có thể thêm bớt các phần tử thùy thích, giúp nội dung cấu trúc của trang web luôn cập nhật động
- Phương pháp xây dựng cây DOM
Có hai phương pháp cơ bản để xây dựng các cây DOM đó là: Sử dụng các thẻ riêng biệt và Sử dụng các thẻ và các hộp ảo (visual cue)
* Xpath:
- XML là một ngôn ngữ tuyệt vời để mô tả và lưu trữ dữ liệu Tuy nhiên, để trao đổi thông tin trong các tài liệu XML, người ta cần một chuẩn chung để truy xuất dữ liệu Giải quyết vấn đề đó, XML Path Language (XPath) được sinh ra XPath là một ngôn ngữ thiết kế ra với mục đích giúp các chương trình ứng dụng có thể di chuyển bên trong tài liệu XML và truy xuất các giá trị của các elements cũng như các attributes
Trang 30- XPath cung cấp cú pháp để mô tả cách di chuyển trong một tài liệu XML Để
có thể di chuyển trong tài liệu XML, trước hết XPath xem một tài liệu XML như một cấu trúc dạng cây (tree) và các elements, attributes bên trong được xem như các nodes của cây
2.4 Các phương pháp tách từ trong tiếng việt
2.3.1 Tách câu dựa trên công cụ vnSentDectector
Công cụ tách câu vnSententDetector của hai tác giả Lê Hồng Phương và Hồ Tường Vinh được xây dựng dựa trên mô hình xác suất với Maximum Entropy với mục đích xây dựng công cụ tự động tách các câu trong một văn bản tiếng Việt bất kỳ một cách chính xác nhất có thể Mô hình này được đào tạo trên tập dữ liệu được huấn luyện gồm có 4.800 câu tiếng Việt Bộ dữ liệu này được các nhà ngôn ngữ học thuộc trung tâm từ điển học Việt Nam (Vietlex) xây dựng thủ công bằng tay Với phương pháp này, theo bài báo mà các tác giả đã công bố thì độ chính xác đạt được 95%
Ý tưởng của phương pháp là xây dựng mô hình xác suất ước lượng lớp b xảy ra trong ngữ cảnh c, p(b,c)
𝑝(𝑏, 𝑐) = 𝜋 ∏ 𝛼𝑗𝑓𝑗(𝑏,𝑐)
𝑘 𝑗=1Trong đó: b {no, yes}, αj là những tham số chưa biết của mô hình và mỗi αj có ứng một đặc trưng mô hình fj, π là một hằng số
Gọi B ={no,yes} là tập khả năng của các lớp, C là tập khả năng về các ngữ cảnh
Khi đó các đặc trưng fj là hàm nhị phân 𝑓𝑗 = 𝐵 × 𝐶 → {0,1} Các hàm này dùng để mã hóa thông tin ngữ cảnh Xác suất để biết ranh giới câu trong ngữ cảnh c được cho bởi p(yes,c) αj được chọn để cực đại hàm likelihood của tập dữ liệu mẫu
Mô hình sử dụng luật quyết định đơn giản để xác định khả năng ranh giới câu Ranh giới hiện tại là khả năng ranh giới câu nếu và chỉ nếu p(yes,c) >0.5, trong đó:
Trang 31𝑝(𝑦𝑒𝑠 | 𝑐) =𝑝(𝑦𝑒𝑠, 𝑐)
𝑝(𝑐) =
𝑝(𝑦𝑒𝑠, 𝑐)𝑝(𝑦𝑒𝑠, 𝑐) + 𝑝(𝑛𝑜, 𝑐)
và c là ngữ cảnh có chứa khả năng là ranh giới câu
Một phần quan trọng của phương pháp là lựa chọn các đặc trưng fj Các đặc trưng của mô hình Maximum Entropy có thể mã hóa bất kỳ thông tin nào có ích cho việc xác định các ranh giới câu Các khả năng ranh giới câu được xác định bằng cách quét văn bản theo các chuỗi ký tự được ngăn cách bởi kí tự trắng mà trong đó có chứa một trong các
ký hiệu “.”, “!” hoặc “?”
2.3.2 Phương pháp khớp tối đa (Maximum Matching)
Phương pháp khớp tối đa hay còn gọi là LRMM - Left Right Maximum Matching Theo phương pháp này, chúng ta sẽ duyệt một ngữ hoặc câu từ trái sang phải và chọn từ
có nhiều âm tiết nhất có mặt trong từ điển và cứ thực hiện lặp lại như vậy cho đến hết câu
Phương pháp này thực hiện tách từ đơn giản, nhanh và chỉ cần dựa vào từ điển để thực hiện Tuy nhiên, khuyết điểm của phương pháp này cũng chính là từ điển, nghĩa là
độ chính xác khi thực hiện tách từ phụ thuộc hoàn toàn vào tính đủ, tính chính xác của từ điển
2.3.3 Phương pháp tách từ bằng WFST (Weighted Finite – State
Transducer)
Phương pháp WFST (Weighted Finite – State Transducer), còn gọi là phương pháp chuyển dịch trạng thái hữu hạn có trọng số Ý tưởng chính của phương pháp này áp dụng cho phân đoạn tiếng Việt là các từ được gán trọng số bằng xác suất xuất hiện của từ
đó trong từ điển dữ liệu Sau đó duyệt qua các câu, cách duyệt có trọng số lớn nhất được chọn là cách dùng để phân đoạn từ Hoạt động của WFST có thể chia thành ba bước sau:
Xây dựng từ điển trọng số: từ điển trọng số D được xây dựng như là một đồ thị biến đổi trạng thái hữu hạn có trọng số Giả sử:
Trang 32+ H là tập các tiếng trong tiếng Việt
+ P là tập các loại từ trong tiếng Việt
+ Mỗi cung của D có thể là:
Từ một phần tử của H tới một phần tử của H;
Từ phần tử (xâu rỗng) đến một phần tử của P
Mỗi từ trong D được biểu diễn bởi một chuỗi các cung bắt đầu bởi một cung tương ứng với một phần tử của H, kết thúc bởi một cung có trọng số tương ứng với một phần tử của x P Trọng số biểu diễn một chi phí ước lượng (estimated cost) cho bởi công thức:
sự bùng nổ các cách phân đoạn, thuật toán loại bỏ ngay những nhánh phân đoạn mà chứa
từ không xuất hiện trong từ điển
Lựa chọn khả năng tách tối ưu: Sau khi liệt kê tất cả các khả năng phân đoạn
từ, thuật toán chọn cách tách từ tốt nhất, đó là cách tách từ có trọng số bé nhất
2.3.4 Bài toán tách từ và công cụ vnTokenizer
Công cụ vnTokenizer là công cụ tách từ tiếng Việt được nhóm tác giả Nguyễn Thị Minh Huyền, Vũ Xuân Lương và Lê Hồng Phương phát triển dựa trên phương pháp so khớp tối đa (Maximum Matching) với tập dữ liệu sử dụng là bảng âm tiết tiếng Việt và
từ điển từ vựng tiếng Việt
Trang 33Công cụ được xây dựng bằng ngôn ngữ Java, mã nguồn mở Có thể đễ dàng sửa đổi nâng cấp và tích hợp vào các hệ thống phân tích văn bản tiếng Việt khác
Quy trình thực hiện tách từ theo phương pháp khớp tối đa như hình sau:
Hình 2.6 Quy trình tách từ bằng công cụ vnTokenizer
+ Đầu vào của công cụ tách từ vnTokenizer là một câu hoặc một văn bản được lưu dưới dạng tệp
+ Đầu ra là một chuỗi các đơn vị từ được tách
+ Các đơn vị từ bao gồm các từ trong từ điển cũng như các chuỗi số, chuỗi kí tự nước ngoài, các hình vị ràng buộc (gồm các phụ tố), các dấu câu và các chuỗi kí tự hỗn tạp khác trong văn bản (ISO, 2008) Các đơn vị từ không chỉ bao gồm các từ có trong từ điển, mà cả các từ mới hoặc các từ được sinh tự do theo một quy tắc nào đó (như phương thức thêm phụ tố hay phương thức láy) hoặc các chuỗi kí hiệu không được liệt kê trong
từ điển
Công cụ sử dụng tập dữ liệu đi kèm là tập từ điển từ vựng tiếng Việt, danh sách các đơn vị từ mới bổ sung, được biểu diễn bằng ôtômat tối tiểu hữu hạn trạng thái, tệp chứa các biểu thức chính quy cho phép lọc các đơn vị từ đặc biệt (xâu dạng số, ngày tháng,…) và các tệp chứa các thống kê unigram và bigram trên kho văn bản tách từ mẫu
Văn bản
Tách từ
Từ điển
Chuỗi các đơn vị từ
Trang 34Với các đơn vị từ đã có trong từ điển, khi thực hiện tách từ cũng được xử lý hiện tượng nhập nhằng bằng cách kết hợp với các thống kê unigram và bigram Chẳng hạn trong tiếng Việt thường gặp các trường hợp nhập nhằng như:
- Xâu AB vừa có thể hiểu là 1 đơn vị từ, vừa có thể là chuỗi 2 đơn vị từ A-B
- Xâu ABC có thể tách thành 2 đơn vị AB-C hoặc A-BC
Kết quả đánh giá của công cụ được cho là ổn định đối với nhiều loại văn bản
có văn phong khác nhau Độ chính xác trung bình đạt được là khoảng 94%
2.3.5 Tách từ sử dụng n-grams
Nhiều phương pháp tách đặc trưng đã được thử nghiệm cho văn bản tiếng Việt Trong số đó phải kể đến phương pháp sử dụng n-grams Phương pháp này coi mỗi đặc trưng là một cụm gồm n từ nằm liền nhau Ưu điểm lớn nhất của phương pháp này là đơn giản và cho kết quả khá tốt
2.3.6 So sánh các phương pháp tách từ tiếng Việt
Nhìn chung, phương pháp tách từ dựa trên từ (word-base) cho độ chính xác khá cao (trên 95%) nhờ vào tập dữ liệu lớn, được đánh dấu chính xác, tuy nhiên hiệu suất của thuật toán phụ thuộc hoàn toàn vào dữ liệu huấn luyện Với các phương pháp cần phải sử dụng từ điển hoặc tập huấn luyện, ngoài việc tách từ thật chính xác, còn có thể nhờ vào các thông tin đánh dấu trong tập dữ liệu để thực hiện các mục đích khác cần đến việc xác định từ loại như dịch máy, kiểm tra lỗi chính tả, từ điển đồng nghĩa Do vậy, dù thời gian huấn luyện khá lâu, cài đặt phức tạp, chi phí tạo tập dữ liệu lớn rất tốn kém, nhưng kết quả
mà hướng tiếp cận dựa vào từ mang lại cho mục đích dịch máy là rất lớn
Hướng tiếp cận dựa trên ký tự (character-based) có ưu điểm dễ thực hiện, thời gian thực thi tương đối nhanh, tuy nhiên lại có độ chính xác không cao bằng phương pháp dựa trên từ Hướng tiếp cận này thích hợp cho các mục đích nghiên cứu không cần đến độ chính xác tuyệt đối cũng như các thông tin về từ loại như phân loại văn bản, lọc spam, firewall,… Nhìn trên tổng thể, hướng tiếp cận dựa trên từ có nhiều ưu điểm đáng kể trong việc định hướng nghiên cứu
Trang 35Dựa trên phần so sánh tổng thể các phương pháp và định hướng tách từ nêu trên cùng với mục tiêu chính của luận văn là phân loại văn bản tiếng Việt theo nội dung nên luận văn quyết định chọn hướng tiếp cận dựa trên “tiếng” Tuy nhiên, việc phân loại văn bản khơng yêu cầu việc tách từ phải cĩ độ chính xác cao đến mức từng từ nên luận văn khơng tập trung vào mặt ý nghĩa cũng như những đặc trưng phức tạp của tiếng Việt như
từ đồng nghĩa, từ láy,… mà chỉ xác định tần số của từ đơn, từ ghép tiếng Việt xuất hiện trong nội dung cần phân loại nên hướng tiếp cận khác với các phương pháp xác định ngữ nghĩa từ tiếng Việt
Trong luận văn sử dụng cơng cụ vnTokenizer để tách từ trong nội dung bài viết đảm bảo quá trình tách từ diễn ra tự động và chính xác
2.5 Nghiên cứu về phân lớp văn bản
Phân lớp văn bản là quá trình gán văn bản một cách tự động vào một hoặc nhiều lớp cho trước Cĩ rất nhiều phương pháp phân loại văn bản được ứng dụng để phân loại nội dung như: phân loại dựa trên láng giềng gần nhất (k-nearest neighbors), phương pháp dựa trên xác suất Nạve Bayses, dựa vào thuật tốn Chi-squared, Support Vector Machine (SVM), Boostings Tree, mạng neural nhân tạo (ANN)
2.4.1 Phân loại văn bản sử dụng Mạng Neural nhân tạo:
Phân loại bằng mơ hình mạng neural là một cách phân loại mới được đề xuất, cấu trúc và mơ hình hoạt động của mạng neural cơ bản dựa trên mơ phỏng của bộ não con người Mạng neural được ứng dụng trong rất nhiều lĩnh vực khác nhau và cĩ khả năng giải quyết vấn đề phức tạp, phạm vi rộng Mạng neural nhân tạo là mạng gồm các nút (neural) nối với nhau Các nút đầu vào tương ứng với các đặc trưng, nút đầu ra tương ứng với nhãn phân loại Trọng số liên kết giữa các nút thể hiện mối quan hệ phụ thuộc giữa nhãn phân loại với đặc trưng và được xác định trong quá trình huấn luyện mạng Mỗi nút mạng được đặc trưng bởi một hàm kích hoạt cho phép xác định giá trị đầu ra của nút theo giá trị đầu vào
Trang 36Nếu neti ≥ Nếu neti <
Để phân loại một thư, vector trọng số của thư đó được sử dụng làm giá trị đầu vào cho mạng, mức độ kích hoạt của nút tương ứng được lan truyền về phía nút đầu ra, giá trị của nút này sẽ xác định giá trị nhãn phân loại
Với net i w ij x jlà tổng thông tin đầu vào của neural i
Ngay từ khi mạng Perceptron một lớp được đề xuất nó đã được sử dụng để giải quyết bài toán phân lớp Một đối tượng sẽ được neural i phân vào lớp A nếu tổng thông tin đầu vào w ij x j i
Trong đó wij là trọng số liên kết từ neural j tới neural i, xj là đầu vào từ neural j
và θ là ngưỡng của neural i Trong trường hợp trái lại đối tượng sẽ được phân vào lớp B
S
x1
x2
xn
f (.)u
b
hoặc+1
0
Hình 2.7 Mô hình mạng nơ-ron
Trang 37*Phương pháp huấn luyện Thuật toán Perceptron learning
Việc huấn luyện mạng perceptron [8] dựa trên phương pháp học có giám sát với tập mẫu học là {(x(k), d(k))}, k= 1,2, …, p Trong đó d(k)= [d1(k), d2(k), …, dn(k)]T là đầu ra quan sát được tương ứng với đầu vào x(k)= [x1(k), x2(k), …, xm(k)]T (với m là số đầu vào, n
là số đầu ra và p là cặp mẫu đầu vào - đầu ra dùng cho việc học) Như vậy chúng ta mong rằng sau quá trình học, đầu ra tính toán được y(k)= [y1(k), y2(k),…, yn(k)]T sẽ bằng với đầu
ra của mẫu học d(k)
)(1
)()
()
i d
m j
k j x ij w g
k x
T i w g
k i
Để bắt đầu quá trình luyện mạng, các trọng số được gán giá trị ngẫu nhiên trong khoảng [-3, 3] Sau đó hiệu chỉnh các trọng số cho phù hợp với mẫu học để làm giảm sai
số giữa y(k) và d(k)
Các bước tiến hành :
- Xác định ngẫu nhiên bộ trọng số
- Với mỗi mẫu học (x(k), d(k)), k=1,2, …, p thực hiện các bước:
+ Tính giá trị y(k) theo công thức
+ Xác định sai số δi tại neural i: δi= di– yi, trong đó di là giá trị đầu ra
quan sát được và yi là giá trị đầu ra tính toán tại neural thứ i
+ Tính ∆wij là số gia của trọng số wij (trọng số liên kết giữa đầu vào j tới neural i) theo công thức: ∆wij =ηδixj trong đó η là tốc độ học (0<η<1)
+ Hiệu chỉnh wij(t+1)= wij(t)+ ∆wij = wij(t) + ηδi(t)xj(t) trong đó wij(t+1) là trọng
số sau khi điều chỉnh ở lần học tại thời điểm t
Rosenblatt đã chứng minh rằng quá trình học của mạng Perceptron sẽ hội tụ tới bộ trọng số W, biểu diễn đúng các mẫu học với điều kiện là các mẫu này biểu thị các điểm rời rạc của một hàm khả tách tuyến tính nào đó (f: Rn →R được gọi là khả tách tuyến
Trang 38tính nếu các tập {F-1(xk)}, với xk thuộc miền trị của f, có thể tách được với nhau bởi các siêu phẳng trong không gian Rn)
Thuật toán học của mạng neural nhiều lớp
Huấn luyện mạng neural nhiều lớp sử dụng thuật toán Lan truyền ngược gồm hai quá trình: Quá trình truyền tuyến tính và quá trình truyền ngược:
Quá trình truyền tuyến tính: Dữ liệu từ lớp nhập qua lớp ẩn và đến lớp xuất để:
Thay đổi giá trị của trọng số liên kết W của các neural trong mạng biểu diễn được dữ liệu học
Tìm ra sự khác nhau giữa giá trị thật hàm mẫu mà mạng tính được và kết quả dự đoán của mạng gọi là lỗi (học có giám sát)
Quá trình truyền ngược: Giá trị lỗi sẽ được truyền ngược lại sao cho quá trình huyến luyện(học) sẽ tìm ra trọng số Wi để lỗi nhỏ nhất
Thuật toán:
Xét mạng neural 3 lớp : input, hiden và output
Hàm kích hoạt các neural : logistic (sigmoid): g(x)= 1
1+𝑒 −𝑥
Bước 1: Khởi tạo trọng số w ngẫu nhiên nhỏ
Bước 2 : Chọn lớp đầu vào x và đính nó vào lớp đầu vào
Bước 3 : Truyền sự kích hoạt qua trọng số đến khi kich hoạt các neural đầu ra Bước 4: Tính đạo hàm riêng “δE” theo trọng số cho lớp xuất sử dụng GRADIENT của hàm lỗi
Bước 5: Tính đạo hàm riêng “δE” theo trọng số cho lớp ẩn sử dụng GRADIENT của hàm lỗi
Bước 6: Cập nhật tất cả trọng số theo Wi=W(i-1)-µ(δE/ δ Wi)
Bước 7: quay lai “Bước 2” cho đến “Bước 6” cho tất cả các mẫu
Trang 39Trong đó: GRADIENT hàm lỗi:
Đối với các neural lớp đầu ra:
Hàm lỗi:
(2.1) ( t là giá trị thật của mẫu huấn luyện)
Đạo hàm riêng của hàm lỗi theo trọng số b:
(2.2)
Ta có:
Đặt:
2)1(
2
1)
(z z
E
b
v v
z z
E b
0 ,
1
) 1 (
) (
i b
v
z z
v
g v
z
t z z
Trang 40Ta được:
(2.3) Đối với các neural lớp ẩn:
Đạo hàm riêng của hàm lỗi theo trọng số:
(2.4)
Ta có:
) 1 ( )
E p
i p b
E
i i
a
u u
y y
E a