Theo xu hướng phát triển của xã hội ngày nay, sự phát triển của công nghệ thông tin là vô cùng mạnh mẽ và nhanh chóng. Tuy nhiên vấn đề đặt ra là làm thế nào để máy tính có thể “hiểu” và xử lý một cách tự động. Các thiết bị thông minh ngày càng phát triển, đặc biệt là điện thoại cá nhân được tích hợp nhiều tiện ích và chức năng, dần thay thế các thế các thiết bị khác và trở thành một thiết bị quan trọng trong cuộc sống thường ngày. Kéo theo là nhu cầu sử dụng của con người ngày một tăng, các yêu cầu về tiện ích ngày càng lớn, điện thoại thông minh ra đời. Hàng loạt các ứng dụng, tiện ích được tạo ra nhằm phục vụ cho đời sống, công việc, giải trí...Việc trao đổi thông tin qua tin nhắn điện thoại và trích lọc thông tin từ những tin nhắn đó vẫn hoàn toàn thủ công. Với mong muốn tăng cường tiện ích, tạo ra các ứng dụng thông minh, có thể thay thế các thao tác thủ công của con người mà vẫn đảm bảo độ chính xác cao và hiệu quả, em quyết định thực hiện đề tài “Xây dựng ứng dụng trích rút thời gian, địa điểm từ dữ liệu tin nhắn”. Bởi đề tài rất thực tế, phù hợp với nhu cầu hiện nay. Mục đích của đề tài là nghiên cứu về lĩnh vực trích rút thông tin và áp dụng kiến thức để xây dựng một ứng dụng có thể “đọc hiểu” tin nhắn của người dùng, trích rút thông tin về thời gian và địa điểm một cách chính xác và hiệu quả. Đồ án có cấu trúc gồm 4 chương với nội dung như sau: Chương 1: Tổng quát về trích rút thông tin Chương này cung cấp cho người đọc những hiểu biết cơ bản về bài toán trích rút thông tin nói chung, các hướng tiếp cận, phương pháp trích rút, những nguồn dữ liệu, thư viện hỗ trợ, những khó khăn thường gặp và một số ứng dụng của trích rút thông tin. Chương 2: Một số phương pháp sử dụng trong bài toán trích rút thông tin Giới thiệu về bài toán trích rút thông tin thời gian, địa điểm từ dữ liệu tin nhắn, các kỹ thuật để giải quyết. Ngoài ra chương này có đề cập tới Trường ngẫu nhiên có điều kiện CRF, máy vectơ hỗ trợ SVM. Cách sử dụng các công cụ CRF++, LibSVM... Chương 3: Xây dựng hệ thống và thực nghiệm Chương này nói về quá trình thu thập, xây dựng dữ liệu huấn luyện, các thao tác kiểm nghiệm, kết quả và đánh giá khả năng trích rút thông qua độ tin cậy (R
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Đề tài:
XÂY DỰNG ỨNG DỤNG TRÍCH RÚT THỜI GIAN, ĐỊA
ĐIỂM TỪ DỮ LIỆU TIN NHẮN
Giảng viên hướng dẫn : PGS.TS TỪ MINH PHƯƠNG Sinh viên thực hiện : PHẠM VIỆT ANH
Hà Nội, tháng 11/2015
Trang 2LỜI CẢM ƠN
Để có thể hoàn thành được đồ án này, em xin chân thành cảm ơn các thầy côtrong khoa Công nghệ thông tin – Học viện Công nghệ Bưu chính Viễn thông đã âncần dạy dỗ em trong suốt bốn năm học vừa qua
Em xin gửi lời cảm ơn chân thành nhất tới thầy Từ Minh Phương, người đã trựctiếp hướng dẫn và chỉ bảo tận tình em trong quá trình làm đồ án này
Cuối cùng, em xin cảm ơn gia đình em, bạn bè em, những người đã luôn ở bêncạnh, quan tâm, giúp đỡ, động viên em để em có thể hoàn thành được đồ án này
Em xin chân thành cảm ơn!
Sinh viên Phạm Việt Anh
Trang 3MỤC LỤC
LỜI CẢM ƠN i
DANH MỤC CÁC HÌNH VẼ iv
DANH MỤC CÁC BẢNG v
KÝ HIỆU VÀ CÁC CỤM TỪ VIẾT TẮT vi
LỜI MỞ ĐẦU 1
CHƯƠNG 1: BÀI TOÁN TRÍCH RÚT THỜI GIAN, ĐỊA ĐIỂM TỪ DỮ LIỆU TIN NHẮN VÀ TỔNG QUÁT VỀ TRÍCH RÚT THÔNG TIN 3
1.1 Bài toán trích rút thời gian, địa điểm từ dữ liệu tin nhắn 3
1.2 Giới thiệu về trích rút thông tin 5
1.3 Hướng tiếp cận 7
1.4 Phương pháp trích rút thông tin 8
1.5 Các phương pháp học máy 8
1.5.1 Học có giám sát (supervised learning) 8
1.5.2 Học không giám sát (unsupervised learning) 9
1.5.3 Học bán giám sát 9
1.6 Một số dữ liệu, thư viện hỗ trợ 9
1.7 Khó khăn của bài toán trích rút thông tin 11
1.7.1 Tính đúng đắn 11
1.7.2 Một số vấn đề hệ thống 11
1.8 Một vài ứng dụng của bài toán trích rút thông tin 12
Chương 2: CÁC VẤN ĐỀ GẶP PHẢI VÀ HƯỚNG GIẢI QUYẾT 16
2.1 Mô tả bài toán và các vấn đề cần giải quyết 16
2.1.1 Bài toán 16
2.1.2 Giới hạn phạm vi 19
2.1.3 Khó khăn đối với xử lý ngôn ngữ Tiếng Việt 19
2.1.4 Các vấn đề liên quan và đề xuất giải pháp 20
2.2 Bài toán trích rút thời gian, địa điểm 20
2.2.1 Đặc trưng dữ liệu được sử dụng và các nhãn phân loại 20
2.2.2 Conditional Random Fields (CRFs) 22
2.3 Bài toán nhận dạng hội thoại 24
Trang 42.3.1 Bài toán phân lớp 25
2.3.2 Mô hình vector biểu diễn văn bản 25
2.3.3 Máy vectơ hỗ trợ (SVM) 27
2.4 Cây Trie 30
2.4.1 Cấu trúc 30
2.4.2 Ưu điểm cây tiền tố so với cây tìm kiếm nhị phân 31
3 CHƯƠNG 3: THỰC NGHIỆM VÀ KẾT QUẢ 32
3.1 Thu thập dữ liệu 32
3.1.1 Dữ liệu tin nhắn 32
3.1.2 Danh sách địa danh, địa điểm 32
3.2 Công cụ huấn luyện và kiểm thử 33
3.2.1 Công cụ CRF++ 33
3.2.2 LibSVM 37
3.3 Quá trình huấn luyện 37
3.3.1 Môi trường phần cứng huấn luyện: 37
3.3.2 Huấn luyện CRF 37
3.3.3 Huấn luyện SVM 40
3.4 Xây dựng hệ thống 44
3.5 Thực nghiệm và đánh giá 47
3.5.1 Phương pháp đánh giá 47
3.5.2 Kết quả thực nghiệm 48
3.6 Giao diện chương trình 53
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 56
TÀI LIỆU THAM KHẢO 58
Trang 5DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Người dùng touch vào dòng “lúc 18h10” 3
Hình 1.3 Biểu đồ mô tả hệ thống trích rút thời gian, địa điểm từ dữ liệu tin nhắn 4
Hình 1.4 So sánh thông số sản phẩm (Comparison Shopping) 12
Hình 1.5 Nhận dạng thông tin trên điện thoại 13
Hình 1.6 Tìm việc dựa trên search engine (Nguồn tài liệu tham khảo [4]) 14
Hình 1.7 Hỏi đáp dựa trên các kết quả từ search engine 15
Hình 2.1 Sơ đồ hoạt động của hệ thống 18
Hình 2.2 Ví dụ sử dụng nhãn phân loại 21
Hình 2.3 Đồ thị vô hướng mô tả CRFs 23
Hình 2.4 Biểu diễn tin nhắn dưới dạng vectơ trọng số 26
Hình 2.5 Hình minh họa siêu phẳng phân lớp 27
Hình 2.6 Minh họa SVM biên mềm với tham số C 29
Hình 2.7 Ví dụ về cây tiền tố Trie tree 30
Hình 3.1 Mô hình hoạt động của CRF++ 34
Hình 3.2 Kết quả tiền xử lý CRF 39
Hình 3.3.Dữ liệu nguyên thủy 40
Hình 3.4.Không gian đặc trưng 41
Hình 3.5 Bộ dữ liệu huấn luyện SVM 42
Hình 3.6 Mô hình model được tạo ra từ bộ dữ liệu huấn luyện 42
Hình 3.7 File output chứa kết quả gán nhãn 43
Hình 3.8 File processedMsg.txt sau khi được gán nhãn 45
Hình 3.9 Form thêm mới lịch nhắc nhở 46
Hình 3.10 Thêm nhắc nhở thành công 46
Hình 3.11 Hình minh họa với 3 fold 48
Hình 3.12 Giao diện mô phỏng hoạt động của Server 53
Hình 3.13 Giao diện Server thực hiện trích rút 53
Hình 3.14 Giao diện kết quả trích rút 54
Trang 6DANH MỤC CÁC BẢN
Bảng 3.1 Kết quả thử nghiệm CRF với 2 đặc trưng 49Bảng 3.2 Kết quả thử nghiệm CRF với 3 đặc trưng 49Bảng 3.3 Kết quả thử nghiệm CRF với 4 đặc trưng 50Y
Biểu đồ 3.1 Kết quả thử nghiệm trích rút thời gian 50Biểu đồ 3.2 Kết quả thử nghiệm trích rút địa điểm 51
Trang 7KÝ HIỆU VÀ CÁC CỤM TỪ VIẾT TẮT
Trang 8Với mong muốn tăng cường tiện ích, tạo ra các ứng dụng thông minh, có thểthay thế các thao tác thủ công của con người mà vẫn đảm bảo độ chính xác cao và hiệu
quả, em quyết định thực hiện đề tài “Xây dựng ứng dụng trích rút thời gian, địa điểm
từ dữ liệu tin nhắn” Bởi đề tài rất thực tế, phù hợp với nhu cầu hiện nay.
Mục đích của đề tài là nghiên cứu về lĩnh vực trích rút thông tin và áp dụngkiến thức để xây dựng một ứng dụng có thể “đọc hiểu” tin nhắn của người dùng, tríchrút thông tin về thời gian và địa điểm một cách chính xác và hiệu quả
Đồ án có cấu trúc gồm 4 chương với nội dung như sau:
Chương 1: Tổng quát về trích rút thông tin
Chương này cung cấp cho người đọc những hiểu biết cơ bản về bài toán tríchrút thông tin nói chung, các hướng tiếp cận, phương pháp trích rút, những nguồn dữliệu, thư viện hỗ trợ, những khó khăn thường gặp và một số ứng dụng của trích rútthông tin
Chương 2: Một số phương pháp sử dụng trong bài toán trích rút thông tin
Giới thiệu về bài toán trích rút thông tin thời gian, địa điểm từ dữ liệu tin nhắn,các kỹ thuật để giải quyết Ngoài ra chương này có đề cập tới Trường ngẫu nhiên cóđiều kiện CRF, máy vectơ hỗ trợ SVM Cách sử dụng các công cụ CRF++, LibSVM
Trang 9Chương 3: Xây dựng hệ thống và thực nghiệm
Chương này nói về quá trình thu thập, xây dựng dữ liệu huấn luyện, các thaotác kiểm nghiệm, kết quả và đánh giá khả năng trích rút thông qua độ tin cậy (R -Recall), độ chính xác (P - Precision), độ đo F-measure và ứng dụng áp dụng kết quảtrích rút
Chương 4: Kết luận và hướng phát triển
Tổng kết bài toán, kết quả đạt được và còn chưa đạt được Từ đó đề xuất mụctiêu hướng tới và hướng phát triển trong tương lai
Trang 10CHƯƠNG 1: BÀI TOÁN TRÍCH RÚT THỜI GIAN, ĐỊA ĐIỂM TỪ DỮ LIỆU TIN NHẮN VÀ TỔNG QUÁT VỀ
TRÍCH RÚT THÔNG TIN
Chương này sẽ giới thiệu một cách tổng quan về bài toán trích rút thông tin, baogồm các định nghĩa, hướng tiếp cận, một vài khó khăn thường gặp của bài toán Đồngthời cũng trình bày sơ lược về một vài thư viện, ứng dụng đã được phát triển cho bàitoán trích rút thời gian, địa điểm
1.1 Bài toán trích rút thời gian, địa điểm từ dữ liệu tin nhắn
Ngày nay, ta có thể bắt gặp vô số những ứng dụng, tính năng thông minh, tiệních và hữu dụng trên những sản phẩm công nghệ cao, tiêu biểu là những dòng điệnthoại di động thông minh, trong đó, những sản phẩm và ứng dụng của Apple luônđược biết đến và nhận được sự tín nhiệm cao từ phần lớn người dùng vì những tiện ích
và trải nghiệm tuyệt vời mà nó mang lại Trong đó, tính năng nhận diện thông tin trongvăn bản là một trong những điểm cộng nhận được nhiều phản hồi tích cực từ phíangười dùng:
Hình 1.1 Người dùng touch vào dòng “lúc
18h10”
Hình 1.2 Người dùng touch vào
“19001886”
Trang 11Tính năng nhận diện thông tin trên iPhone dựa vào những định dạng phổ biến của thời gian (hình 1.1) và số điện thoại (hình 1.2) để nhận dạng và đưa ra gợi ý hành động đối với từng loại thông tin mà thiết bị nhận dạng được.
Dựa trên ý tưởng và tính ứng dụng cao của tính năng trên, qua cân nhắc, em đãlựa chọn thực hiện đề tài “Trích rút thời gian, địa điểm từ dữ liệu tin nhắn” Mục đíchcủa đề tài là thông qua việc trích rút thời gian và địa điểm, xây dựng một ứng dụngthông minh, có thể “đọc hiểu” tin nhắn người dùng và tự động đặt lịch hẹn trên thiết bịmột cách chính xác và hiệu quả
Hệ thống được xây dựng dựa trên dữ liệu tin nhắn và thông tin trích rút được,
do đó, hệ thống gồm 2 phần xử lý chính:
Nhận dạng hội thoại: nhận dạng hội thoại gần nhất trong toàn bộ lịch sử tin nhắngiữa 2 người
- Đầu vào: Lịch sử tin nhắn giữa 2 người
- Đầu ra: Hội thoại gần nhất giữa 2 người
Trích rút thời gian, địa điểm: trích rút thông tin thời gian, địa điểm trong hội thoạigần nhất
- Đầu vào: Hội thoại gần nhất giữa 2 người
- Đầu ra: Thời gian, địa điểm trích rút được
Hình 1.3 Biểu đồ mô tả hệ thống trích rút thời gian, địa điểm từ dữ liệu tin nhắn
Bài toán trích rút thời gian, địa điểm là một trong những trường hợp riêng của bài toán trích rút thông tin thông thường và ta sẽ làm rõ bài toán ở chương 2 Trước
tiên, ta cần nắm được những kiến thức cơ bản của trích rút thông tin nói chung, cáckhái niệm, các phương pháp trích rút phổ biến, cũng như những ứng dụng thực tiễn màbài toán trích rút thông tin đã được nghiên cứu và đưa vào sử dụng hiện nay
1.2 Giới thiệu về trích rút thông tin
Nhận dạng, tìm kiếm thông tin từ những văn bản phi cấu trúc là một công việckhó, đã thách thức giới nghiên cứu từ hơn 20 năm nay Bắt nguồn từ vấn đề Xử lýngôn ngữ tự nhiên (NLP), ngày nay vấn đề này đã được phát triển theo nhiều nhánhkhác nhau như học máy, trích rút thông tin, cơ sở dữ liệu, web và phân tích tài liệu
Trang 12Một vài định nghĩa về trích rút thông tin được sử dụng phổ biến trên internet:
Theo Line Eikvil [1]: IE là lĩnh vực nghiên cứu hẹp của xử lý ngôn ngữ
tự nhiên và xuất phát từ việc xác định những thông tin cụ thể từ một tàiliệu ngôn ngữ tự nhiên Mục đích chính của trích rút thông tin là chuyểnvăn bản tự nhiên về dạng văn bản có cấu trúc Thông tin được trích rút từnhững nguồn tài liệu khác nhau và được biểu diễn dưới một hình thứcthông nhất Những hệ thống trích rút thông tin văn bản không nhằm đểhiểu văn bản đưa vào, mà để tìm kiếm các thông tin cần thiết liên quan
mà chúng ta mong muốn được tìm thấy
Cũng theo Line Eikvil [1], thành phần cốt lõi của các hệ thống trích rútthông tin là tập hợp các luật, các mẫu dùng để xác định đặc điểm củathông tin cần trích rút
Theo Jim Cowie và Yorick Wilks [2]: IE là tên được đặt cho quá trìnhcấu trúc và kết hợp một cách có chọn lọc dữ liệu được tìm thấy, đượcphát biểu rõ ràng trong một hay nhiều tài liệu văn bản
Theo Tiến sĩ Alexander Yates ở trường đại học Washington [3], trích rútthông tin là quá trình truy vấn những thông tin cấu trúc từ những văn bảnphi cấu trúc
Theo những chuyên gia làm việc tại GATE1 thì những hệ thống trích rútthông tin sẽ tiến hành phân tích văn bản nhằm trích ra những thông tincần thiết theo các mẫu đã được định nghĩa trước, như những sự kiện, cácthực thể, các mối quan hệ
Tóm lại, trích rút thông tin (Information Extraction) là một kỹ thuật, lĩnh vựcnghiên cứu có liên quan đến truy vấn thông tin (Information Retrieval), khai thác dữliệu (Data mining), cũng như xử lý ngôn ngữ tự nhiên (Natural Language Processing).Mục tiêu chính của trích rút thông tin là tìm ra những thông tin cấu trúc từ văn bản phicấu trúc hoăc bán cấu trúc (các thực thể, mỗi quan hệ giữa các thực thể và các thuộctính mô tả thực thể) Trích rút thông tin sẽ tìm cách chuyển thông tin trong văn bảnkhông hay bán cấu trúc về dạng có cấu trúc và có thể biểu diễn hay thể hiện chúng mộtcách hình thức dưới dạng một tập tin cấu trúc XML hay một bảng cấu trúc (như bảngtrong cơ sở dữ liệu)
Một khi dữ liệu, thông tin từ các nguồn khác nhau, từ internet có thể biểu diễnmột cách hình thức, có cấu trúc, chúng ta có thể sử dụng các kỹ thuật phân tích, khaithác dữ liệu (data mining) để khám phá ra các mẫu thông tin hữu ích
1 http://gate.ac.uk/ie/
Trang 13 Chẳng hạn như việc cấu trúc lại các mẫu tin quảng cáo, mẫu tin bán hàngtrên internet có thể giúp hỗ trợ tư vấn, định hướng người dùng khi muasắm
Trích rút và cấu trúc lại các mẫu tin tìm người, tìm việc sẽ giúp cho quátrình phân tích thông tin nghề nghiệp, xu hướng công việc, … hỗ trợ chocác người tìm việc, cũng như nhà tuyển dụng
Hay như việc làm sạch dữ liệu (Data cleaning), khi một khách hàng điềnđịa chỉ trên mỗi một hóa đơn là khác nhau, hệ thống phải trích rút thôngtin về địa chỉ khách hàng, đồng nhất chúng và loại bỏ những thông tin dưthừa
Hỗ trợ so sánh khi mua sắm (Comparison Shopping) trên các website
thương mại điện tử, hệ thống tạo ra sự tiện dụng cho khách hàng khicung cấp cho họ công cụ để có thể so sánh sản phẩm tại nhiều địa điểmgiao dịch khác nhau, hoặc giữa các sản phẩm, dựa trên các trường dữliệu như tên sản phẩm, giá bán, phản hồi khách hàng, thông số kỹthuật
Từ những ngày đầu, trích rút thông tin chỉ tập trung vào nhận biết các thực thể
có tên (chẳng hạn như tên người, tên các công ty, địa danh, địa điểm ) và mối quan hệgiữa chúng bên trong những văn bản sử dụng ngôn ngữ tự nhiên
Về sau, các kỹ thuật nhận dạng mới dựa trên các quy luật (rule-based) được tìm
ra Từ các luật ngôn ngữ thông dụng, họ đưa ra giải thuật học luật tự động từ nhữngmẫu đã được phát triển sẵn Tuy nhiên, mục tiêu của IE là các nguồn thông tin phi cấutrúc, do đó, các luật là chưa đủ và còn quá cứng nhắc
Phương pháp học dựa trên thống kê được đưa ra và trong đó có 2 kỹ thuật đượcphát triển song song: Mô hình sinh ngẫu nhiên (Generative models) dựa trên mô hìnhMarkov ẩn và mô hình điều kiện (Conditional model) dựa trên entropy Cả hai đượcgọi với tên phổ biến là Lĩnh vực ngẫu nhiên có điều kiện (CRFs - Conditional RandomFields) Khi phạm vi của trích rút dữ liệu được mở rộng, nó được chú trọng hơn tớiviệc phân tích về cấu trúc và ngữ pháp
Các nghiên cứu hiện nay liên quan đến rút trích thông tin văn bản tập trung vào:
Rút trích các thực thể có tên (Named Entity Recognition): Nhận dạng các
đối tượng thông tin về địa danh, địa điểm, tên riêng, Đây là bài toán khá phổbiến và được dùng nhiều trong các ứng dụng tìm kiếm
Ví dụ: Tìm kiếm từ khóa “Lê Thái Tổ”, Google sẽ phải tìm kiếm những văn bản
có chứa từ khóa và trích rút nó để đưa ra kết quả cho người dùng
Trang 14 Rút trích quan hệ (Relationship Extraction): là bài toán tìm kiếm và xác
định mối quan hệ giữa các thực thể trong văn bản Ví dụ như mối quan hệ giữangười và người, mối quan hệ giữa tổ chức - công ty, mối quan hệ giữa địa danh
- sự kiện
Ví dụ: Trong câu “Ngày 10/10, Đà Nẵng tổ chức Lễ hội pháo hoa quốc tế”.
Mối quan hệ giữa “Đà Nẵng” và “Lễ hội pháo hoa quốc tế” là “tổ chức”.
Càng ngày, bài toán trích rút thông tin càng chứng minh được tầm quan trọng
và tính thiết thực của nó Do đó, các kỹ thuật trích rút ngày càng được phát triển, vàkhông ngừng cho đến ngày nay
Tóm lại, trích rút thông tin là một lĩnh vực lớn, có rất nhiều khía cạnh và có thể
áp dụng cho nhiều đối tượng thông tin khác nhau Song đồ án này chỉ tập trung vào 2
đối tượng thông tin chính là: thời gian và địa điểm với nguồn thông tin từ dữ liệu tin nhắn điện thoại.
1.3 Hướng tiếp cận
Theo [1][5] thì các phương pháp trích rút hiện nay chia thành hai cách tiếp cậnchính: tiếp cận công nghê tri thức (Knowledge Engineering) và tiếp cận học máy tựđộng (Automatic Training)
Dựa trên luật, mẫu được xây dựng thủ
công
Được phát triển bởi những chuyên gia
ngôn ngữ, chuyên gia lĩnh vực có kinh
nghiệm
Dựa vào trực giác, quan sát Hiệu quả
đạt được tốt hơn Việc phát triển có thể
sẽ tốn nhiều thời gian
Khó điều chỉnh khi có sự thay đổi
Dựa trên học máy thông kê
Người phát triển không cần thành thạongôn ngữ, lĩnh vực
Cần một lượng lớn dữ liệu học đượcgán nhãn tốt
Khi có sự thay đổi có thể cần phảigán nhãn lại cho cả tập dữ liệu học
1.4 Phương pháp trích rút thông tin
Các phương pháp sử dụng trong lĩnh vực trích rút thông tin được phân chia làm
2 loại: Thủ công hoặc dựa trên học tri thức, và dựa trên các luật hoặc thống kê [7]
Thủ công (Hand-coded) hoặc dựa trên học tri thức (Learning-based): Hệthống thủ công cần con người đưa ra các định nghĩa các luật (rule), các biểuthức chính quy (regular expression), hoặc những chương trình mẫu để biểudiễn các trường hợp trích rút Những người này thường là các chuyên gia
Trang 15ngôn ngữ học, lập trình viên để có thể đưa ra và phát triển các luật trích rút.Mặt khác, đối với hệ thống học tri thức, các mẫu phi cấu trúc đã được đánhnhãn sẵn sẽ được sử dụng để huấn luyện bộ học máy của chương trình (cácphương pháp học máy sẽ được đề cập tới trong phần sau).
Dựa trên các luật (Rule-based) hoặc thống kê (Statistical): Phương pháptrích rút dựa trên luật phụ thuộc vào các dấu hiệu xuất hiện của các từ Cònphương pháp thống kê thì đưa ra sự lựa chọn dựa trên việc đánh giá cácthông số Phương pháp dựa trên luật thì dễ hiểu và dễ cài đặt hơn Cònphương pháp dựa trên thống kê lại cứng nhắc hơn (robust to noise) Do đó,các hệ thống dựa trên luật thường hữu dụng hơn trong các miền đóng(closed domain)
1.5 Các phương pháp học máy
1.5.1 Học có giám sát (supervised learning)
Học có giám sát là một kĩ thuật để xây dựng một hàm/ mô hình (function/
model) từ dữ liệu huấn luyện Dữ liệu huấn luyện bao gồm các cặp gồm đối tượng đầu
vào và đầu ra mong muốn Đầu ra có thể là một giá trị liên tục, hay có thể là một nhãnphân loại cho một đối tượng đầu vào Nhiệm vụ của chương trình học có giám sát là
dự đoán giá trị của hàm cho một đối tượng bất kì là đầu vào hợp lệ, sau khi đã xem xétmột số ví dụ huấn luyện (các cặp đầu vào và đầu ra cho trước) Để đạt được điều này,chương trình học phải tổng quát hóa từ các dữ liệu sẵn có để dự đoán được những tìnhhuống chưa gặp phải theo một cách "hợp lí" nhất
Hiện nay phần lớn các công trình giải quyết bài toán trích rút NER thường sửdụng kỹ thuật học máy có giám sát như mô hình Markov ẩn, cây quyết định, mô hìnhMaximum entropy, máy vectơ hỗ trợ (SVM) Nhược điểm của học có giám sát là đòihỏi tập dữ liệu huấn luyện gán nhãn bằng tay cực lớn
1.5.2 Học không giám sát (unsupervised learning)
Học không có giám sát là một phương pháp nhằm tìm ra một mô hình mà phùhợp với các quan sát Nó khác biệt với học có giám sát ở chỗ là đầu ra cho mỗi đầuvào là không biết trước.Trong học không có giám sát, dữ liệu huấn luyện ban đầu hoàntoàn chưa được gán nhãn được thu thập Nó coi các đối tượng đầu vào như là một tậpcác biến ngẫu nhiên Sau đó, một mô hình xác suất sẽ được xây dựng cho tập dữ liệuđó
Các thuật toán thường sử dụng học không giám sát như: K-Means,
HAC (Hierarchical Agglomerative Clustering), SOM (Self-Organizing Map),
DBSCAN, FCM, Các hệ thống học máy này không đòi hỏi phải gán nhãn dữ liệu
Trang 16huấn luyện Nhưng với phương pháp này, khả năng phát hiện thực thể và độ chính xáckhông cao.
1.5.3 Học bán giám sát
Học bán giám sát sử dụng cả dữ liệu đã gán nhãn và không gán nhãn để huấnluyện - điển hình là một lượng nhỏ dữ liệu có gán nhãn cùng với lượng lớn dữ liệuchưa gán nhãn Học bán giám sát đứng giữa học không giám sát (không có bất kì dữliệu có nhãn nào) và có giám sát (toàn bộ dữ liệu đều được gán nhãn) Nhiều nhànghiên cứu nhận thấy dữ liệu không gán nhãn khi được sử dụng kết hợp với một chút
dữ liệu có gán nhãn, có thể cải thiện đáng kể độ chính xác Để gán nhãn dữ liệu chomột bài toán học máy thường đòi hỏi một chuyên viên có kĩ năng để phân loại bằngtay dữ liệu huấn luyện và chi phí cho quy trình này không hề nhỏ, trong khi dữ liệukhông gán nhãn thường có sẵn và tương đối rẻ Trong tình huống đó, học bán giám sát
có giá trị thực tiễn lớn
Một số thuật toán thường được sử dụng gồm có: thuật toán Cực đại kỳ vọng(EM - Expectation Maximization), SVM truyền dẫn (TSVM - Transductive SupportVector Machine), Self-training, Co-training và các phương pháp dựa trên đồ thị(graph-based)
1.6 Một số dữ liệu, thư viện hỗ trợ
Sau thời gian dài ra đời và phát triển, cộng đồng nghiên cứu đã xây dựng vàphát triển được khá nhiều các kho dữ liệu cấu trúc và phi cấu trúc cho văn bản, cáccông cụ, thư viện và ứng dụng phục vụ trích rút thông tin, phân tích và khai thác thôngtin
Dưới đây là một vài dữ liệu đầu vào, thư viện đã được phát triển sẵn hỗ trợ tiền
xử lý các dữ liệu phi cấu trích cho bài toán trích rút dữ liệu: các cơ sở dữ liệu có cấutrúc (Structured Databases), các văn bản phi cấu trúc đã được đánh nhãn (LabeledUnstructured Text), các thư viện có sẵn cho văn bản phi cấu trúc (Libraries)
Natural Language Text: Các thư viện xử lý ngôn ngữ tự nhiên
o Sentence analyzer and tokenizer: nhận dạng phạm vi của câu trong văn
bản và phân tích từng câu thành các token Các token được tách bởi các ký
tự phân cách như ký tự trắng, dấu phẩy, dấu chấm Một ví dụ tiêu biểu vềToken như là 1 từ, 1 số hay dấu hết câu
o POS tagger (Part of speech tagger): gán cho mỗi từ một nhãn là loại từ
trong ngữ pháp Các nhãn này bao gồm: danh từ, động từ, tính từ, phó từ
o Paser: chia các từ vào cụm: cụm danh từ, cụm động từ, cụm giới từ Kết
quả thu được là 1 mô hình cây được phân chia rõ ràng các cụm từ
Trang 17o Dependency analyzer: nhận dạng các từ trong câu và các tham số liên
quan của từ đó Kết quả thu được là 1 biểu đồ gồm các node (các từ) vàcác đường kẻ liên kết, diễn tả mối liên hệ giữa các từ Thư viện này rất cólợi đối với trích rút mối quan hệ (relationship extraction)
Formatted Text: Đối với những văn bản có sẵn định dạng như pdf hay cáctrang web, ta cần phải tìm hiểu nắm được cấu trúc của chúng trước khi tiếnhành nhận dạng entity Hai bước chính cần làm đối với những văn bản kiểunày: trích rút các thành phần (item) trong danh sách (list) và tạo ra mô hìnhphân cấp các vùng, tương ứng với các đơn vị nội dung
Một vài phần mềm, thư viện khác:
o General Architecture for Text Engineering (GATE): thư viện trên nền Java,được phát triển bởi trường đại học Sheffield ở Anh GATE cung cấp mộtmôi trường hỗ trợ cho người dùng phát triển, viết các phần mềm xử lý ngônngữ tự nhiên, khai phá dữ liệu
o Apache OpenNLP: thư viện này giúp xử lý ngôn ngữ tự nhiên dựa trênphương pháp học máy Nó cung cấp các hàm để thực hiện những công việc
cơ bản của xử lý NNTN (tokenization, sentence segmentation, POStagging )
o OpenCalais: là một web service trích xuất thông tin một cách tự động
o Machine Learning for Language Toolkit (Mallet): một package ngôn ngữtrên nền Java, hỗ trợ trích xuất thông tin
o DBpedia Spotlight: là một công cụ mã mở viết bằng ngôn ngữ Java hoặcScala, thường dùng để nhận dạng các thực thể có tên Ngoài ra, nó là mộtsản phẩm của dự án DBpedia - dự án được xây dựng hướng tới trích xuấtcác nội dung có cấu trúc, từ những dữ liệu được tạo bởi Wikipedia DBpediacho phép người dùng truy vấn được mối quan hệ, các thuộc tính liên quantới tài nguyên của Wikipedia, bao gồm cả những đường dẫn tới các bộ dữliệu khác
o Natural Language Toolkit: một bộ thư viện và các chương trình hỗ trợ xử lýNNTN, viết bằng ngôn ngữ lập trình Python
o Conditional Random Field (CRF): Thư viện này được sử dụng trong đồ án
và sẽ được nói rõ ở phần sau
Trang 181.7 Khó khăn của bài toán trích rút thông tin
1.7.1 Tính đúng đắn
Mặc dù đã hơn 2 thập kỷ nghiên cứu trong lĩnh vực này, thách thức hơn cả đốivới cộng đồng nghiên cứu IE là tạo ra những mô hình đạt tính đúng đắn cao Dưới đây
là một vài yếu tố gây ảnh hưởng tới độ chính xác trong bài toán trích rút
Sự đa dạng của các chi tiết gợi ý: Việc nhận dạng trở nên vô cùng phức tạp bởi
nó là sự kết hợp của rất nhiều các chi tiết gợi ý - những chi tiết vô cùng nhỏ, khôngmấy hữu ích khi đứng độc lập Thậm chí, ngay cả việc nhận dạng các thực thể có tên(NER) là đơn giản và phổ thông nhất cũng phụ thuộc vào rất nhiều những chi tiết nhỏ,như việc viết đúng chính tả của từng từ, loại từ, sự tương đồng với cơ sở dữ liệu nhữngthực thể có sẵn hay các ký hiệu đánh dấu trong văn bản
Khó khăn của việc xác định trích rút sai: Tính đúng đắn của bài toán trích rút
được đánh giá qua 2 thành phần Một là độ chính xác, là tỉ lệ phần trăm của nhữngthực thể trích rút chính xác trên những thực thể được trích rút Hai là độ tin cậy, là tỉ lệphần trăm số thực thể được trích rút đúng trên tổng số thực thể Trong nhiều trườnghợp, ta thu được độ chính xác khá cao, bởi rất dễ tìm ra các lỗi sai, và cứ tìm cho tớikhi tìm được hoàn toàn các lỗi Đạt được độ tin cậy cao là khá khó, bởi nếu không cónhững dữ liệu đã được đánh nhãn sẵn, thì khó có thể xác định được đâu là lỗi sai giữahàng tá dữ liệu phi cấu trúc như vậy
Độ phức tạp về cấu trúc: Càng ngày, yêu cầu về việc trích rút thông tin phức
tạp ngày càng cao Trong nhiều trường hợp, phạm vi của các thực thể không rõ ràng vàhoàn toàn không thể xác định Do đó, ta phải tham khảo cả các nguồn thông tin khácnhắc tới thực thể cần tìm Và vấn đề này không hề đơn giản
1.7.2 Một số vấn đề hệ thống
Sự thay đổi của các nguồn dữ liệu động: Những mô hình trích rút mất thời gian
khá lâu để xây dựng và điều chỉnh các nguồn dữ liệu phi cấu trúc Khi các nguồn dữliệu có sự thay đổi, kéo theo các hệ thống phải xác định và tìm ra sự thay đổi đó là gì,
từ đó tinh chỉnh lại các mô hình một cách tự động
Sự tích hợp dữ liệu: Các nguồn dữ liệu cho bài toán trích rút thông tin thường
được xây dựng dựa trên sự tích hợp cả những bộ dữ liệu có sẵn với thông tin đã đượctrích rút Nhiều nhà nghiên cứu đã cố gắng cùng nhau giải quyết vấn đề khai thác vàtích hợp với hy vọng sẽ nâng cao được đọ chính xác hơn so với thực hiện trực tiếp mỗibước
Các lỗi trong trích rút: Chúng ta đều biết rằng trong thực tế không thể có một
hệ thống nào có thể đạt độ chính xác tuyệt đối, ngay cả là những hệ thống mới nhấthiện nay Các vấn đề ngày càng trở nên phức tạp Khi nguồn thông tin ngày càng lớn,
Trang 19các vấn đề cũng ngày càng mở rộng và trở nên phức tạp hơn Do đó, không thể nào cómột hệ thống chính xác tuyệt đối Có một phương pháp phần nào giải quyết được vấn
đề này, đó là các lỗi trong trích rút thực thể sẽ được đi kèm theo độ tin cậy, từ đó tìmđược đáp án có độ tin cậy lớn nhất với khả năng chính xác cao nhất
1.8 Một vài ứng dụng của bài toán trích rút thông tin
Hệ thống so sánh thông số sản phẩm
Trên các trang web thương mai điện tử, người dùng chỉ việc chọn 2 sản phẩmđiện thoại cần so sánh, hệ thống sẽ truy xuất cơ sở dữ liệu, lấy ra thông tin từng sảnphẩm Nhờ việc trích rút tên các loại thông số, hệ thống tìm ra các thông số tương ứnggiữa 2 sản phẩm và xây dựng bảng, cung cấp cho người dùng một cái nhìn trực quanhơn, tiết kiệm thời gian, thay vì phải xem thông tin từng loại
Hình 1.4 So sánh thông số sản phẩm (Comparison Shopping)
Nhận dạng thông tin trong tin nhắn điện thoại
Hệ thống nhận và kiểm tra nội dung tin nhắn, tìm kiếm những thông tin hữu ích
và tự động highlight đoạn text tương ứng Như trong ví dụ dưới, đường dẫn trang web
được nhận dạng bởi đoạn text “http://” xuất hiện ở đầu và kết thúc bởi dấu chấm và ký
tự trắng ” ”
Tương tự với việc nhận dạng dãy số là số điện thoại Khi người dùng ấn vàovùng text được highlight, hệ thống tùy thuộc đoạn text đó thuộc phân loại gì và thựchiện thao tác tương ứng Ví dụ, nếu là đường dẫn trang web, hệ thống sẽ mở trìnhduyệt và truy cập trang web đó Nếu là số điện thoại, hệ thống mở bàn phím cuộc gọi
Trang 20Hình 1.5 Nhận dạng thông tin trên điện thoại
Hỏi đáp (Question Answering) dựa trên Google Search Engine
Một ứng dụng khác là trích rút và lọc ra những thông tin liên quan để tối ưu vấn
đề tìm kiếm thông tin [4] Ví dụ trong hình 1.6, khi người dùng có nhu cầu tìm kiếmcác công việc liên quan đến nghề làm bánh mì (baker), thì người ta nhập vào Goolgechuỗi “baker job opening” Kết quả trả về của Google có rất nhiều thông tin không liênquan: chẳng hạn thông tin đăng tuyển dụng của trường học MtBaker và công ty BakerHostetler, v.v Những thông tin này không liên quan đến công việc cần tìm là nghề làmbánh mì (Baker) Đúng ra hệ thống phải trả về các liên kết đến các trang hay các công
ty tuyển dụng nghề “Baker” Như vậy trong trường hợp này IE có nhiệm vụ trích racác liên kết liên quan đến nhu cầu tìm kiếm của người dùng
Trang 21Hình 1.6 Tìm việc dựa trên search engine (Nguồn tài liệu tham khảo [4])
IE ứng dụng tìm kiếm câu trả lời cho các hệ thống hỏi đáp QA (QuestionAnswering) dựa vào kết quả trả về của search engine Gần đây xuất hiện một cách tiếpcận nghiên cứu phát triển hệ thống QA dựa vào việc phân tích kết quả tìm kiếm trả về
từ các search engine nhằm tìm ra câu trả lời chính xác cho câu hỏi đưa vào Ví dụngười dùng cần hỏi “Thành phố nào là thủ đô của nước Việt Nam”, thì kết quả trả về
từ các search engine thì rất nhiều và hệ thống phải tìm cách trích ra câu trả lời màngười dùng mong chờ, đó là “Hà Nội” hay “Thành phố Hà Nội” Đây là một dạng ứngdụng kỹ thuật rút trích thông tin IE trong QA (hình 1.7)
Genomics job
Mt Baker, the school district
Baker Hostetler, the company
Baker, a job opening
Trang 22Hình 1.7 Hỏi đáp dựa trên các kết quả từ search engine
Trang 23Chương 2: CÁC VẤN ĐỀ GẶP PHẢI VÀ HƯỚNG GIẢI QUYẾT
Chương này sẽ nói về bài toán trích rút thông tin thời gian, địa điểm, kèm theo
là trình bày một cách chi tiết về các phương pháp, các thư viện, công cụ sẽ được ápdụng để giải quyết bài toán trong đồ án
2.1 Mô tả bài toán và các vấn đề cần giải quyết
2.1.1 Bài toán
Nhiệm vụ của hệ thống là trích rút được thông tin về thời gian và địa điểm từ dữliệu tin nhắn Tuy nhiên, số lượng dữ liệu tin nhắn đầu vào giữa 2 người dùng là rấtlớn và không phải tin nhắn nào cũng liên quan tới nhau Do đó, công việc của ta khôngchỉ dừng lại ở trích rút thông tin thời gian, địa điểm, mà còn cả tìm kiếm và phân loạinhằm xác định chuỗi tin nhắn cần thao tác Vậy nên, hướng thực hiện đồ án được chiathành 3 phần chính như sau:
- Nhận dạng hội thoại: Thực hiện các công việc phân loại và xác định chuỗitin nhắn đang được trao đổi giữa 2 người dùng, làm đầu vào cho phần tríchrút thông tin thời gian, địa điểm Bởi trong lịch sử tin nhắn có rất nhiều hộithoại cũ không cần xét tới
P2: Chiều đi mua đồ với tôi nhé
P1: Ừ, cũng đang rảnh
P1: Tối mai đi uống cafe ở quán Cộng nhé! → “Tối mai”, “quán Cộng”
P2: OK, tầm 8h tôi qua → “8h”
P1: Muộn thế, 7 rưỡi đi → “7 rưỡi”
P2: Cũng được
→ Hai hội thoại được lưu liên tiếp nhau trong lịch sử nhắn tin nhưng nội dungkhông liên quan tới nhau
Do đó, SVM sẽ được sử dụng để gán nhãn các câu trong hội thoại, từ đó tìm
ra hội thoại mà ta quan tâm
- Trích rút thông tin thời gian, địa điểm: Sử dụng các đối tượng thu được ởphần xác định hội thoại, áp dụng trích rút và đưa ra đối tượng thời gian vàđịa điểm cuối cùng Công cụ CRF++ sẽ được sử dụng để hỗ trợ gán nhãnthời gian, địa điểm
Đối với tin nhắn đơn, ta cần trích rút được đối tượng thời gian và địađiểm được đề cập tới trong tin nhắn
Tối mai đi uống cafe ở quán Cộng nhé! → “Tối mai”, “quán Cộng”
Trang 24 Đối với hội thoại, các đối tượng thời gian, địa điểm có thể không nằmtrên cùng 1 câu, mà mỗi đối tượng có thể được 1 người đề cập tới.Mặt khác, vì hội thoại mang tính chất trao đổi nên các mốc thời gian,địa điểm có thể bị thay đổi, dẫn tới việc nhập nhằng và không thốngnhất như với tin nhắn đơn.
P1: Tối mai đi uống cafe ở quán Cộng nhé! → “Tối mai”, “quán Cộng”
P2: OK, tầm 8h tôi qua → “8h”
P1: Muộn thế, 7 rưỡi đi → “7 rưỡi”
P2: Cũng được
→ Kết quả cần thu được: “7 rưỡi tối mai” và “quán Cộng”
- Xây dựng ứng dụng: Dựa vào kết quả trích rút thời gian, địa điểm, áp dụng
để xây dựng một ứng dụng thực tế
Với ba phần rõ ràng cùng các kiến thức cơ bản về kiểu cấu trúc dữ liệu, giảithuật đã được trình bày ở chương 2, toàn bộ hoạt động của hệ thống có thể được mô tảbởi các sơ đồ sau:
Trang 25Hình 2.1 Sơ đồ hoạt động của hệ thống
Tóm lại, đồ án sẽ tập trung vào giải quyết 2 bài toán xử lý chính:
- Nhận dạng hội thoại: sử dụng SVM
- Trích rút thông tin thời gian, địa điểm: sử dụng CRF
2.1.2 Giới hạn phạm vi
Giới hạn về vị trí địa lý:
Trang 26Kết quả trích rút sẽ tốt nhất đối với các đối tượng địa điểm trên địa bàn thànhphố Hà Nội.
Giới hạn định dạng đầu vào:
Đối với người Việt Nam, lịch dương được sử dụng chính trong công việc vàcuộc sống thường ngày, nhưng do phong tục và truyền thống của người Á Đông, âmlịch vẫn được sử dụng song song với dương lịch Nhiều sự kiện, ngày lễ vẫn được tínhtheo lịch này Hiện tại, đề tài có xử lý một vài trường hợp, ngày lễ tiêu biểu (chẳng hạnnhư “tháng Giêng”, “mùng 2 Tết”, ) song chưa hoàn toàn và đầy đủ
Mặt khác, do trong thời gian thực hiện ngắn, lượng dữ liệu thu thập được cònchưa nhiều (hơn 500 tin nhắn dữ liệu mẫu, hơn 200 câu hội thoại) nên hiện tại đề tàicòn tập trung vào các trường hợp phổ thông và thường xuyên xuất hiện, chưa thể xử
lý hết các trường hợp khó Các trường hợp này sẽ dần được cải thiện trong những bộ
dữ liệu tiếp theo
Để đạt độ chính xác cao, dữ liệu tin nhắn đầu vào cung cấp cho chương trìnhcần là dữ liệu “sạch”
- Sử dụng đúng bộ chữ trong bảng chữ cái Tiếng Việt, không sử dụng các ký tự
đặc biệt để thay thế cho chữ cái
- Câu đúng ngữ pháp, chính tả.
- Không viết tắt, gây mập mờ, ý nghĩa khó hiểu.
- Viết hoa chữ cái đầu tiên của tên riêng, tên người, địa danh.
2.1.3 Khó khăn đối với xử lý ngôn ngữ Tiếng Việt
Dữ liệu đầu vào là ngôn ngữ đời thường được sử dụng trong văn nói và vănviết, do đó, người nói thường không trau truốt trong việc dùng từ và ngữ phápcủa câu văn
→ Nhiều dạng cấu trúc, các luật phong phú và không đủ
Người dùng có sử dụng các từ lóng, hay viết tắt các từ không phải tên riêng,mỗi người có một cách viết tắt khác nhau (“ktx” – ký túc xá, “ch mai” - chiềumai, “svđ” – sân vận động, )
→ Không xử lý được hết, còn bỏ sót
Ngôn ngữ Tiếng Việt vốn được sử dụng linh hoạt và có những từ đa nghĩa
→ Nếu không nắm được ngữ cảnh, máy sẽ “hiểu” sai nghĩa dẫn đến kết quảtrích rút bị sai
Đối với những dữ liệu đầu vào là Tiếng Việt không dấu
→ Nếu chương trình VietMarker thêm dấu không chính xác sẽ dẫn tới câu bịsai đi ý nghĩa ban đầu, và khiến quá trình trích rút không chính xác
Trang 272.1.4 Các vấn đề liên quan và đề xuất giải pháp
Đối với đề tài “Trích rút thời gian, địa điểm từ dữ liệu tin nhắn”, số lượng dữliệu đầu vào là khá nhiều các tin nhắn, và không phải tất cả những tin nhắn đó đều cómối liên hệ với nhau Ở đây, ta quy ước tất cả những tin nhắn liên quan tới nhau, cùng
trao đổi về một chủ đề, một cuộc hẹn, giữa 2 người sẽ được gọi là một cuộc hội thoại.
Trên thực tế, với sự tiện ích của các dòng điện thoại thông minh, toàn bộ lịch sử tinnhắn giữa 2 người dùng được sắp xếp liên tiếp nhau và khi thực hiện lấy dữ liệu sẽkhông tránh khỏi việc “nối đuôi” của hàng loạt các hội thoại cũ/mới này Vậy làm nhưthế nào để có thể xác định được cuộc hội thoại mà ta đang muốn thao tác tới? Thuậttoán SVM sẽ giúp ta giải quyết vấn đề này và sẽ được làm rõ ở phần sau
Bên cạnh đó, đề tài được thực hiện sử dụng và hướng tới dữ liệu là ngôn ngữTiếng Việt, do đó, kết quả nhận được sẽ tốt nhất nếu dữ liệu đầu vào là đúng chính tả,ngữ pháp và có dấu Mặt khác, do thói quen của người dùng, vẫn sẽ có những tin nhắnđược gửi đi dưới dạng không dấu Để xử lý vấn đề này, em có sử dụng phần mềmVietMarker VietMarker là một phần mềm thêm dấu tự động cho các từ Tiếng Việtkhông dấu, được viết trên nền Java, phát triển bởi nhóm nghiên cứu là giảng viên vàsinh viên Học viện Công nghệ Bưu Chính Viễn Thông Đối với dữ liệu cần thêm dấu
là các câu văn (thuộc văn viết), độ chính xác khá cao, đến 93% với đa dạng nhiều thểloại Tuy nhiên, với dữ liệu đầu vào là tin nhắn, khá gần với với văn nói và thườngđược sử dụng ngôn ngữ tự nhiên thì độ chính xác có phần giảm sút
2.2 Bài toán trích rút thời gian, địa điểm
2.2.1 Đặc trưng dữ liệu được sử dụng và các nhãn phân loại
Dựa trên quá trình quan sát và phân tích, ta nhận thấy những dữ liệu có chứathông tin về thời gian, địa điểm thường có những đặc trưng, đặc điểm sau mà ta có thể
sử dụng:
Từ (từ đơn/ từ ghép): Trong Tiếng Việt, từ được định nghĩa là một đơn vị ngônngữ, cấu tạo bởi một hoặc hai tiếng trở lên Nhiều tiếng khi đi cùng nhau có thểtạo thành một từ có ý nghĩa hoàn toàn khác với khi các tiếng này đứng một cáchriêng biệt (ví dụ như “đi chơi” – “đi”/ “chơi”, “nghiên cứu” – “nghiên”/ “cứu”,
“giải thích” – “giải”/ “thích”, “ngày mai” – “ngày”/ “mai” ) Do đó, việc xácđịnh các từ xuất hiện trong văn bản là một trong những công việc vô cùng quantrọng hỗ trợ cho giai đoạn xử lý sau này
Từ loại: Ngoại trừ các câu đặc biệt, câu rút gọn thì mọi câu văn đều phải tuânthủ và được xây dựng trên các cấu trúc về ngữ pháp, chính tả Dựa vào đặcđiểm đó, ta sẽ sử dụng yếu tố từ loại của mỗi từ nhằm xác định các đối tượng
Trang 28thời gian, địa điểm cần tìm Các loại từ trong Tiếng Việt gồm có: danh từ, động
từ, tính từ, trạng từ, giới từ,
Có tồn tại trong danh sách địa điểm đã được xây dựng? Như đã nhắc tới trongchương 2, ta trực tiếp xây dựng một cây cấu trúc dữ liệu chứa danh sách các địađiểm, quán ăn, khách sạn nhằm hỗ trợ lưu trữ và tìm kiếm một cách nhanhchóng, bỏ qua các xử lý thừa về sau, tiết kiệm thời gian nhận dạng đối tượngđịa điểm trong câu
Hình thái của từ (viết hoa/ viết thường): Dựa vào các quy ước về chính tả, tathấy các từ được viết hoa thường có tỉ lệ cao là các danh từ, danh từ riêng, Tuykhông hoàn toàn chính xác xong đặc trưng này sẽ hỗ trợ khá tốt trong việc tìmkiếm và nhận dạng đối tượng địa điểm
Nhãn phân loại (output class): là các nhãn dùng để đánh dấu và phân loại dữliệu, là kết quả cuối cùng ta sẽ thu được sau CRF, từ đó ta có thể tìm ra được các đốitượng thời gian, địa điểm trong văn bản
Các nhãn phân loại được viết theo định dạng IOB2, ví dụ:
Hình 2.2 Ví dụ sử dụng nhãn phân loại
Trong đồ án có sử dụng 9 nhãn phân loại khác nhau:
B-LOC (begin location): từ bắt đầu đối tượng địa điểm.
I-LOC (inside location): từ nằm trong đối tượng địa điểm.
B-DATE (begin date): từ bắt đầu đối tượng thời gian chỉ ngày tháng.
I-DATE (inside date): từ nằm trong đối tượng thời gian chỉ ngày tháng.
B-CLK (begin clocktime): từ bắt đầu đối tượng thời gian đồng hồ (thời
gian tuyệt đối), là thời gian ta có thể sử dụng để tính toán ngay được
I-CLK (inside clocktime): từ nằm trong đối tượng thời gian đồng hồ.
B-RT (begin relative time): từ bắt đầu đối tượng thời gian tương đối (các
thời gian này cần phải được tính toán để có thể tìm ra thời gian tuyệtđối)
I-RT (inside relative time): từ nằm trong đối tượng thời gian tương đối.
Trang 29 O (other): các đối tượng khác mà ta không cần xét tới, không gây ảnh
hưởng tới kết quả trích rút
2.2.2 Conditional Random Fields (CRFs)
Trường ngẫu nhiên có điều kiện là một phương pháp tương tự mô hình thống
kê, thường được dùng để dự đoán cấu trúc trong nhận dạng mẫu và học máy
CRFs là mô hình dựa trên xác suất có điều kiện, cho phép tích hợp các thuộctính đa dạng của chuỗi dữ liệu quan sát nhằm hỗ trợ cho quá trình phân lớp Tuy nhiên,khác với các mô hình xác suất khác, CRFs là mô hình đồ thị vô hướng Điều này chophép CRFs có thể định nghĩa phân phối xác suất của toàn bộ chuỗi trạng thái với điềukiện biết chuỗi quan sát cho trước thay vì phân phối trên mỗi trạng thái với điều kiệnbiết trạng thái trước đó và quan sát hiện tại như trong các mô hình đồ thị có hướngkhác Bản chất “phân phối điều kiện” và “phân phối toàn cục” của CRFs cho phép môhình này khắc phục được những nhược điểm của các mô hình trước đó trong việc gánnhãn và phân đoạn các dữ liệu dạng chuỗi mà tiêu biểu là vấn đề “label bias”
Khái niệm trường ngẫu nhiên có điều kiện:
Kí hiệu X là biến ngẫu nhiên nhận giá trị là chuỗi dữ liệu cần phải gán nhãn và
Y là biến ngẫu nhiên nhận giá trị là chuỗi nhãn tương ứng Mỗi thành phần Y i của Y là một biến ngẫu nhiên nhận giá trị trong tập hữu hạn các trạng thái S Ví dụ trong bài toán gán nhãn từ loại, X có thể nhận các giá trị là các câu trong ngôn ngữ tự nhiên (cấu tạo bởi các từ), Y là một chuỗi ngẫu nhiên các nhãn tương ứng với các từ tạo thành câu này và mỗi một thành phần Y i của Y có miền giá trị là tập tất cả các những từ loại có
p(Yv | X,Yu, u ≠ v, {u,v} ϵ V)
bằng xác suất của biến ngẫu nhiên Y v cho bởi X và các biến ngẫu nhiên khác tương ứng với các đỉnh kề với đỉnh v trong đồ thị:
p(Yv | X,Yu, (u,v) ϵ E),
thì ta gọi (X,Y) là một trường ngẫu nhiên phụ thuộc toàn cục vào chuỗi quan sát X Trong bài toán xử lý dữ liệu dạng chuỗi nói chung thì đồ thị G đơn giản chỉ là dạng chuỗi, V={1,2, m}, E={(i,i+1)}.
Ký hiệu X = (X 1 ,X 2 , X n ) và Y = (Y 1 ,Y 2 , Y n ) thì mô hình đồ thị G có dạng sau:
Trang 30Hình 2.3 Đồ thị vô hướng mô tả CRFs
Gọi C là tập hợp tất cả các đồ thị con đầy đủ của đồ thị G - đồ thị biểu diễn cấutrúc Vì G có dạng chuỗi nên đồ thị con A đầy đủ chỉ gồm một đỉnh hoặc một cạnh của
đồ thị G Áp dụng kết quả của J.Hammersley và P.Clifford [6] cho các trường ngẫunhiên Markov, thì phân phối của chuỗi nhãn Y với chuỗi quan sát X cho trước códạng:
P(y|x)= ∏
A ∈C
ψ A(A|x )
Trong đó, ΨA gọi là hàm tiềm năng, nhận giá trị thực – dương
Lafferty xác định hàm tiềm năng này dựa trên nguyên lý cực đại entropy Việc xácđịnh một phân phối theo nguyên lý cực đại entroy có thể hiểu là ta phải xác định mộtphân phối sao cho “phân phối đó tuân theo mọi giả thiết suy ra từ thực nghiệm, ngoài
ra không đưa thêm bất kì giả thiết nào khác” và gần nhất với phân phối đều
Entropy là độ đo thể hiện tính không chắc chắn, hay độ không đồng đều củaphân phối xác suất Độ đo entropy điều kiện H(Y|X) được cho bởi công thức:
Với là phân phối thực nghiệm của dữ liệu
Theo cách trên, Lafferty đã chỉ ra hàm tiềm năng của mô hình CRFs có dạng:
Trong đó λk là thừa số lagrangian ứng với thuộc tính ƒk Ta cũng có thể xemnhư λk là trọng số xác định độ quan trọng của thuộc tính ƒk trong chuỗi dữ liệu Có 2loại thuộc tính là thuộc tính chuyển (kí hiệu là f) và thuộc tính trạng thái (kí hiệu là g)tùy thuộc vào A là một đỉnh hay một cạnh của đồ thị Thay công thức hàm tiềm năngvào công thức (3.1) và thêm thừa số chuẩn hóa để đảm bảo thỏa mãn điều kiện xácsuất, ta được:
Trang 31Ở đây, x là chuỗi dữ liệu, y là chuỗi trạng thái tương ứng ƒk (yi-1,yi, x) là thuộctính của chuỗi quan sát và các trạng thái ứng với vị trí thứ i trong chuỗi trạng thái.
Các thuộc tính này được rút ra từ tập dữ liệu và có giá trị cố định Ví dụ:
2.3 Bài toán nhận dạng hội thoại
Trong các thiết bị di động, lịch sử nhắn tin giữa 2 người là khá nhiều, các tinnhắn này thường được lưu trữ tiên tiếp nhau, nhưng không phải tất cả những tin nhắn
đó đều có mối liên hệ với nhau, thậm chí là dư thừa nếu ta xét tới Ở đây, ta quy ước
một cuộc hội thoại là tất cả những tin nhắn có liên quan tới nhau, cùng trao đổi về một
chủ đề, một cuộc hẹn,
Ví dụ:
P2: Chiều đi mua đồ với tôi nhé
P1: Ừ, cũng đang rảnh
P1: Tối mai đi uống cafe ở quán Cộng nhé! → “Tối mai”, “quán Cộng”
P2: OK, tầm 8h tôi qua → “8h”
P1: Muộn thế, 7 rưỡi đi → “7 rưỡi”
P2: Cũng được
→ Hai hội thoại được lưu liên tiếp nhau trong lịch sử nhắn tin nhưng nội dungkhông liên quan tới nhau
Do đó, ta cần nhận dạng hội thoại, gán nhãn các câu trong hội thoại, phân loại
và xác định chuỗi tin nhắn đang được trao đổi giữa 2 người dùng, từ đó tìm ra hộithoại mà ta quan tâm trước khi xử lý trích rút thông tin thời gian, địa điểm
2.3.1 Bài toán phân lớp
Phân lớp (classification) là một tiến trình xử lý nhằm xếp các mẫu dữ liệu haycác đối tượng vào một trong các lớp đã được định nghĩa trước Các mẫu dữ liệu haycác đối tượng được xếp vào các lớp dựa vào giá trị của các thuộc tính (attributes) chomột mẫu dữ liệu hay đối tượng Sau khi đã xếp tất cả các đối tượng đã biết trước vào