Vì vậy, khi bắt đầu theo học chương trình cao học công nghệ thông tin khóa CH2009B do trường Đại học Bách khoa Hà Nội tổ chức tại Đại học Nha Trang, tôi đã đăng ký thực hiện luận văn tốt
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
NGƯỜI HƯỚNG DẪN KHOA HỌC:
Tiến sĩ Vũ Tuyết Trinh
Hà Nội – Năm 2012
Trang 3LỜI CAM ĐOAN
Tôi cam đoan kết quả của luận văn là chính tôi thực hiện Nếu sai tôi xin chịu hoàn toàn trách nhiệm
Trang 4LỜI CẢM ƠN
thông tin và Truyền thông trường Đại học Bách khoa Hà Nội đã tận tình dạy dỗ
và giúp đỡ em trong quá trình học cao học Em xin trân trọng cám ơn Ban Giám hiệu trường Đại học Nha Trang đã tạo điều kiện về cơ sở vật chất và quản lý chúng
em trong suốt quá trình học tập tại trường
Em xin đặc biệt gửi lời cám ơn đến tiến sĩ Vũ Tuyết Trinh đã tận tình hướng dẫn và giúp đỡ em hoàn thành luận văn này
Xin trân trọng cám ơn tiến sĩ Lê Hồng Phương đã cung cấp các thông tin liên quan về bộ phân tách từ tiếng Việt vnTokenizer
Xin cám ơn Ban Giám đốc Sở Thông tin và Truyền thông tỉnh Khánh Hòa đã quan tâm tạo điều kiện về thời gian để bản thân tôi có điều kiện tham gia học tập và hoàn thành luận văn tốt nghiệp
Xin cảm ơn các bạn bè, đồng nghiệp đã chia sẻ công việc dành thời gian cho tôi tham gia học tập, nghiên cứu thực hiện luận văn; Cám ơn các bạn học cùng lớp
đã cùng trao đổi, chia sẻ những kiến thức bổ ích giúp tôi thực hiện luận văn này Với nội dung đề tài phong phú, thời gian thực hiện luận văn có hạn nên không sao tránh khỏi những hạn chế, thiếu sót trong nội dung thực hiện, kính mong sự quan tâm chỉ bảo của quý Thầy giáo, Cô giáo và các bạn đồng nghiệp
Hà Nội, ngày 15 tháng 03 năm 2012
Học viên
Trần Công Cẩn
Trang 5MỤC LỤC
Trang
Trang phụ bìa
Lời cam đoan
Lời cảm ơn
Mục lục
Danh mục các ký hiệu, các chữ viết tắt 5
Danh mục các thuật ngữ 5
Danh mục các hình vẽ, đồ thị 6
MỞ ĐẦU 7
Chương 1 – TỔNG QUAN 8
1.1 Đặt vấn đề 8
1.2 Mục đích và cách tiếp cận 10
1.3 Nhiệm vụ cụ thể 10
1.4 Bố cục của luận văn 10
Chương 2 – CƠ SỞ LÝ THUYẾT HỆ TÌM KIẾM 12
2.1 Hệ tìm kiếm thông tin 12 2.1.1 Mô hình hệ tìm kiếm thông tin 13
2.1.2 Thành phần cơ bản của hệ tìm kiếm thông tin 14
2.2 Hệ tìm kiếm toàn văn trong hệ quản trị cơ sở dữ liệu quan hệ 20
2.2.1 Kiến trúc hệ tìm kiếm toàn văn 20
2.2.2 Một số hạn chế của hệ tìm kiếm toàn văn 23
Chương 3 – KỸ THUẬT TÌM KIẾM DỰA TRÊN TỪ KHÓA TRONG CƠ SỞ DỮ LIỆU QUAN HỆ 24
3.1 Kiến trúc hệ thống 24 3.2 Phân tích truy vấn 25 3.2.1 Bộ Tách từ 25 3.2.2 Bộ Loại bỏ từ dừng 26 3.2.3 Bộ Gán nhãn từ khóa 27 3.3 Bộ Sinh các câu lệnh SQL 29 3.3.1 Sinh theo nhãn từ khóa 30 3.3.2 Sinh theo mạng ứng viên 32 3.4 Bộ Xếp hạng kết quả 33 Chương 4 – ỨNG DỤNG QUẢN LÝ VĂN BẢN CỦA CÁC CƠ QUAN QUẢN LÝ NHÀ NƯỚC TỈNH KHÁNH HÒA 34
4.1 Nhu cầu thực tế 34
4.2 Thiết kế cơ sở dữ liệu 35
4.3 Tổ chức tìm kiếm 38
Chương 5 – KẾT LUẬN 39
TÀI LIỆU THAM KHẢO 41
Trang 6Danh mục các ký hiệu, các chữ viết tắt
HQTCSDLQH Hệ quản trị cơ sở dữ liệu quan hệ
Danh mục các thuật ngữ
truy vấn
freetext
Là kiểu tìm kiếm mà người dùng tự do nhập vào các từ khóa cần tìm, không cần biết thông tin về lược đồ cơ sở dữ liêu; còn được gọi là
truy vấn từ khóa kiểu tự do (free form keyword) Hệ tìm kiếm tự
chuyển câu truy vấn của người dùng sang câu truy vấn SQL để thực hiện tìm kiếm và trả kết quả về người dùng
Trang 7Danh mục các hình vẽ, đồ thị
Trang
Hình 2.1.1 Tìm kiếm thông tin 12
Hình 2.1.2 Mô hình hệ tìm kiếm thông tin 13
Hình 2.1.3 Quá trình biểu diễn câu truy vấn 15
Hình 2.1.4 Quá trình biểu diễn tài liệu 17
Hình 2.2.1 Kiến trúc hệ tìm kiếm toàn văn 20
Hình 3.1.1 Kiến trúc hệ tìm kiếm dựa trên từ khóa trong CSDLQH 24
Hình 3.2.1 Cấu trúc từ điển khái niệm lược đồ 27
Hình 3.3.1 Lưu đồ sinh các câu lệnh SQL 29
Hình 4.1.1 Thiết kế CSDL của ứng dụng 35
Trang 8MỞ ĐẦU
Để phát triển đất nước cần tăng cường cải cách nền hành chính Nhà nước một cách sâu rộng và toàn diện, trong đó, lấy qui trình quản lý chất lượng theo tiêu chuẩn ISO9001:2008 và ứng dụng công nghệ thông tin là hai công cụ mạnh để phục
vụ công tác cải cách hành chính Từ đó, đẩy mạnh ứng dụng công nghệ thông tin ở các cấp chính quyền tiến tới xây dựng Chính phủ điện tử đã trở thành một nhiệm vụ cấp thiết trong các cơ quan quản lý Nhà nước hiện nay
Quá trình đẩy mạnh ứng dụng công nghệ thông tin ở các cơ quan quản lý Nhà nước đã xuất hiện rất nhiều hệ thống thông tin phục vụ công tác quản lý với số lượng rất lớn các văn bản, tài liệu quản lý liên quan gắn kết với các ứng dụng quản
lý được xây dựng dựa trên các hệ quản trị cơ sở dữ liệu quan hệ Từ thực tế đó, tìm kiếm thông tin trong các trường dữ liệu text (dữ liệu dạng văn bản) trong cơ sở dữ
liệu quan hệ (gọi là Tìm kiếm toàn văn – Full text search) là yêu cầu bức thiết mà
các hệ thống thông tin quản lý cần phải có
Qua hoạt động thực tế trong công tác quản lý Nhà nước ở lĩnh vực “công nghệ thông tin – điện tử” tại Sở Thông tin và Truyền thông tỉnh Khánh Hòa tôi nhận thấy một số ứng dụng đã được xây dựng và triển khai nhưng chưa hỗ trợ tìm kiếm toàn văn trong cơ sở dữ liệu quan hệ, gây khó khăn cho người dùng trong công tác tìm kiếm thông tin, tra cứu văn bản Vì vậy, khi bắt đầu theo học chương trình cao học công nghệ thông tin khóa CH2009B do trường Đại học Bách khoa Hà Nội tổ chức tại Đại học Nha Trang, tôi đã đăng ký thực hiện luận văn tốt nghiệp với đề tài “Kỹ thuật tìm kiếm dựa trên từ khóa trong cơ sở dữ liệu và ứng dụng”
Do thời gian thực hiện luận văn có hạn nên bản thân không sao tránh khỏi những hạn chế, thiếu sót trong nội dung thực hiện, kính mong sự quan tâm chỉ bảo của quý Thầy giáo, Cô giáo và các bạn đồng nghiệp
Trang 9Chương 1 TỔNG QUAN 1.1 Đặt vấn đề
Trong những năm gần đây, cùng với sự phát triển nhanh chóng của các ứng dụng công nghệ thông tin, lượng dữ liệu lưu trữ trong các hệ thống máy tính ngày càng lớn và nhu cầu tra cứu, tìm kiếm thông tin lưu trữ trên máy tính ngày càng đa dạng Các hệ quản trị cơ sở dữ liệu quan hệ (HQTCSDLQH) được xem là công cụ phổ biến để quản lý và truy vấn dữ liệu có cấu trúc một cách hiệu quả Để phát biểu yêu cầu truy vấn, người dùng phải có hiểu biết đầy đủ về lược đồ CSDL cần truy vấn Bộ xử lý truy vấn trong CSDL cho phép trả lại kết quả chính xác, đầy đủ (vét cạn), không có thứ tự (không phân biệt mức độ quan trọng của các bản ghi) Các kỹ thuật xử lý truy vấn được thiết kế hiệu quả với các kiểu dữ liệu cơ bản (text ngắn,
số, ngày tháng, ) nhưng không hiệu quả với các dữ liệu phức tạp như dữ liệu văn bản Hơn nữa, việc phát biểu điều kiện tìm kiếm trên một trường dữ liệu văn bản là khá khó khăn và thường không hiệu quả
Trong một cách tiếp cận khác, các hệ tìm kiếm thông tin (information retrieval
systems) và các mô-tơ tìm kiếm trên web như Google, Yahoo, cho phép tìm kiếm
hiệu quả trên dữ liệu phi cấu trúc là các văn bản, các tài liệu Người dùng phát biểu yêu cầu truy vấn dưới dạng các từ khóa tìm kiếm, hệ thống thực hiện đối sánh từ khóa tìm kiếm với nội dung văn bản, tài liệu lưu trữ để trả về những tài liệu liên quan đến câu truy vấn và hiển thị kết quả được sắp xếp theo mức độ “liên quan” của tài liệu với câu truy vấn
Tích hợp các tính năng cơ bản của hệ tìm kiếm thông tin, một số HQTCSDLQH đã cho phép thực hiện tìm kiếm toàn văn trên các trường dữ liệu văn bản Tuy nhiên người dùng vẫn phải có hiểu biết về lược đồ CSDL để phát biểu yêu cầu tìm kiếm toàn văn trên từng trường dữ liệu của lược đồ Ví dụ về sử dụng câu
truy vấn SQL (structured query language) thực hiện tìm kiếm toàn văn trong
Microsoft SQL Server 2008 để hiển thị những quyển sách (book) mà nội dung của
Trang 10nó (nằm trong trường dữ liệu text có tên là book_content) có chứa từ khóa ‘gift’ với ngôn ngữ thể nội dung là tiếng Anh như sau:
SELECT *
WHERE CONTAINS (b.Book_Content, 'gift', LANGUAGE 1033);
Tích hợp cách tiếp cận tìm kiếm từ khóa trong các hệ tìm kiếm thông tin vào các HQTCSDLQH cho phép thao tác với các dữ liệu có cấu trúc và các dữ liệu văn bản một cách hiệu quả và thân thiện hơn Người dùng có thể biểu diễn yêu cầu tìm kiếm dưới dạng chuỗi từ khóa tìm kiếm mà không cần biết tới tổ chức dữ liệu (lược
đồ dữ liệu) Hệ thống sẽ tìm kiếm trong cơ sở dữ liệu quan hệ (CSDLQH) và đặc biệt trong các trường dữ liệu văn bản để trả về các bản ghi phù hợp với yêu cầu tìm kiếm theo một thứ tự xác định Trên thực tế, các hệ thống thông tin được triển khai tại các cơ quan Nhà nước hiện nay đa phần dựa trên HQTCSDLQH mà phần lớn là dùng Microsoft SQL Server Các ứng dụng điển hình là phần mềm “Quản lý đảng viên” đang được triển khai ở Ban Tổ chức cấp ủy từ Trung ương đến địa phương, phần mềm “Mobile Office” của Sở Khoa học và Công nghệ tỉnh Đồng Nai đã được triển khai tại 15 đơn vị hành chính cấp tỉnh, trong đó có Khánh Hòa và Nghệ An Đặc điểm của hai ứng dụng này là chưa hỗ trợ tìm kiếm toàn văn Một số ứng dụng khác, như “Phần mềm Kiểm tra Đảng” của Công ty CMC, đã hỗ trợ tìm kiếm toàn văn nhưng vẫn đòi hỏi người dùng biết thông tin về lược đồ CSDL để nhập nội dung cần tìm
Từ những phân tích và thực tế ứng dụng nêu trên, chúng ta cần xây dựng hệ tìm kiếm trong CSDLQH hỗ trợ người dùng tìm kiếm thuận tiện và dễ dàng như khi
sử dụng hệ tìm kiếm thông tin, nghĩa là không yêu cầu người dùng phải biết thông tin về lược đồ CSDL Người dùng tự do nhập các từ khóa cần tìm kiếm mà không cần quan tâm từ khóa đó sẽ phải tìm kiếm ở đâu, nghĩa là việc tìm kiếm chỉ cần
“dựa trên từ khóa” Trong tài liệu này, chúng ta thống nhất gọi kiểu tìm kiếm này là
“tìm kiếm dựa trên từ khóa trong cơ sở dữ liệu quan hệ”
Trang 111.2 Mục đích và cách tiếp cận
Mục đích của luận văn là tìm hiểu, triển khai các kỹ thuật về tìm kiếm thông tin, tìm kiếm từ khóa trong CSDLQH và ứng dụng các kỹ thuật liên quan trong hệ thống quản lý văn bản của các cơ quan quản lý Nhà nước ở tỉnh Khánh Hòa
Cách tiếp cận của luận văn là sử dụng HQTCSDLQH thương mại (như
Microsoft SQL Server 2008) và xây dựng một phần mềm trung gian (middleware)
để cung cấp khả năng tìm kiếm dựa trên từ khóa trong CSDLQH Người dùng phát biểu câu truy vấn dưới dạng chuỗi từ khóa Middleware nhận câu truy vấn và viết lại thành câu lệnh SQL, gửi đến HQTCSDLQH để thực thi và nhận kết quả truy vấn trả về từ HQTCSDLQH, thực hiện các xử lý trên kết quả trước khi trả về người dùng
1.3 Nhiệm vụ cụ thể
Từ mục đích và cách tiếp cận nêu trên, luận văn có những nhiệm vụ sau:
a) Tìm hiểu hệ tìm kiếm thông tin;
b) Tìm hiểu hệ tìm kiếm toàn văn;
c) Đề xuất kiến trúc hệ thống tìm kiếm dựa trên từ khóa trong CSDLQH dựa trên cách tiếp cận đã lựa chọn;
d) Xây dựng ứng dụng minh họa “Quản lý văn bản trong các cơ quan quản
lý Nhà nước tỉnh Khánh Hòa”
1.4 Bố cục của luận văn
Phần tiếp theo của luận văn gồm các nội dung:
Chương 2 – Cơ sở lý thuyết hệ tìm kiếm Chương này trình bày cơ sở lý thuyết
về tìm kiếm dựa trên từ khóa cho các tài liệu và trong cơ sở dữ liệu quan hệ
Chương 3 – Kỹ thuật tìm kiếm dựa trên từ khóa trong cơ sở dữ liệu quan hệ
Trong chương này, chúng tôi trình bày kiến trúc hệ thống và các kỹ thuật để middleware thực hiện nhiệm vụ viết lại câu truy vấn của người dùng thành câu lệnh SQL, gửi câu lệnh SQL cho HQTCSDLQH thực hiện tìm kiếm, nhận kết quả tìm
Trang 12kiếm trả về từ HQTCSDLQH, thực hiện xếp hạng kết quả và trả kết quả tìm kiếm
về người dùng
Chương 4 – Ứng dụng Quản lý văn bản của các cơ quan quản lý Nhà nước
tỉnh Khánh Hòa Chương này trình bày ứng dụng minh họa “Quản lý văn bản của
các cơ quan quản lý Nhà nước tỉnh Khánh Hòa” dựa trên HQTCSDLQH Microsoft SQL Server 2008 và các kỹ thuật nêu ở Chương 3 Để xây dựng ứng dụng này, luận văn khai thác và tích hợp kỹ thuật tách cụm từ tiếng Việt trên các trường dữ liệu text lưu trữ trong CSDLQH SQL Server
Chương 5 – Kết luận Chương này tóm tắt những kết quả của luận văn và đề
xuất hướng phát triển
Trang 13Chương 2
CƠ SỞ LÝ THUYẾT HỆ TÌM KIẾM
Chương này trình bày cơ sở lý thuyết về tìm kiếm dựa trên từ khóa cho các tài liệu và trong cơ sở dữ liệu quan hệ
2.1 Hệ tìm kiếm thông tin
Trong lĩnh vực công nghệ thông tin, tìm kiếm thông tin có thể là tìm kiếm tài liệu web, music, hình ảnh hay video… Tùy từng loại tài liệu tìm kiếm, chúng ta có thể sử dụng các kỹ thuật tìm kiếm liên quan đến xử lý tiếng nói, xử lý hình ảnh hay
xử lý văn bản… Nội dung phần này chỉ tập trung vào tìm kiếm thông tin trên các tài
Hình 2.1.1 Tìm kiếm thông tin
Hình 2.1.1 trình bày bản chất của vấn đề tìm kiếm thông tin, trong đó có hai bên tham gia là người dùng và nhà cung cấp dịch vụ tìm kiếm Nhà cung cấp dịch
vụ tìm kiếm trước hết phải lưu trữ các thông tin về tài liệu Số lượng tài liệu là rất lớn nên không thể lưu trữ toàn bộ nội dung của tài liệu mà chỉ có thể lưu lại những thông tin quan trọng để phục vụ tìm kiếm Các thông tin này có thể là tiêu đề, đoạn tóm tắt, các đường link, hay thậm chí chỉ là một vài từ khóa Để thực hiện tìm kiếm, người dùng đưa vào các từ khóa đặc trưng cho tài liệu cần tìm Hệ thống sẽ thực hiện đối sánh các từ khóa này với các thông tin phục vụ tìm kiếm của tài liệu Những tài liệu nào có kết quả đối sánh tốt nhất sẽ được trả về như là kết quả cho người tìm kiếm
Có biểu diễn cùng một nội dung ?
Trang 14Như vậy, bản chất của tìm kiếm thông tin là dựa trên cơ chế “đối sánh” giữa các tài liệu lưu trữ trong hệ thống với yêu cầu tìm kiếm của người dùng để tìm ra các tài liệu phù hợp với người dùng
2.1.1 Mô hình hệ tìm kiếm thông tin
Hình 2.1.2 Mô hình hệ tìm kiếm thông tin
Hình 2.1.2 trình bày mô hình tổng quát của một hệ tìm kiếm thông tin, gồm các thành phần cơ bản như sau:
a) Đầu vào
Đầu vào gồm các câu truy vấn và tập các tài liệu Câu truy vấn bao gồm các từ
khóa (keywords) Từ khóa được hiểu như là một tổ hợp các từ của một ngôn ngữ
nhất định được sắp xếp hay quan hệ với nhau thông qua các biểu thức logic mà công cụ tìm kiếm hỗ trợ Trong trường hợp một từ khoá bao gồm nhiều hơn một
chữ (hay từ) thì có thể gọi tập hợp tất cả các chữ đó là bộ từ khoá (set of keywords)
Bộ Đối sánh
Tập các tài liệu phù hợp
Bộ Biểu diễn tài liệu
-
Trang 15- Bộ biểu diễn tài liệu: biểu diễn các thông tin về tài liệu phục vụ tìm kiếm,
dựa vào các thông tin biểu diễn tài liệu lập chỉ mục để dễ dàng thực hiện tìm kiếm;
- Bộ đối sánh: thực hiện chức năng đối sánh giữa câu truy vấn và thông tin tài
liệu để xem xét tài liệu đó có phù hợp hay không
Chúng ta sẽ đề cập chi tiết hơn về các thành phần này trong phần 2.1.2
Hoạt động của bộ xử lý: Bộ biểu diễn tài liệu phân tích các tài liệu, đánh chỉ mục và lưu trữ vào kho dữ liệu Khi nhận được một câu truy vấn, Bộ biểu diễn câu truy vấn sẽ phân tích câu truy vấn thành các từ khóa và các toán tử tìm kiếm Bộ đối sánh sẽ lấy thông tin về các tài liệu trong kho dữ liệu, thực hiện đối sánh với các từ khóa và các toán tử tìm kiếm để tìm ra những tài liệu thỏa mãn câu truy vấn của người dùng
Ngoài ra, một hệ tìm kiếm thông tin còn có các bộ phận phục vụ các chức năng nâng cao khác như phân cụm, phân lớp…
2.1.2 Thành phần cơ bản của hệ tìm kiếm thông tin
Như đã trình bày ở trên, các thành phần cơ bản của một hệ tìm kiếm thông tin bao gồm: Bộ biểu diễn câu truy vấn, Bộ biểu diễn tài liệu và Bộ đối sánh
a) Bộ biểu diễn câu truy vấn
Một câu truy vấn được tạo thành từ các từ khóa và các toán tử tìm kiếm liên kết các từ khóa Nhiệm vụ của bộ biểu diễn câu truy vấn là phân tích câu truy vấn thành các từ khóa và toán tử tìm kiếm
* Các toán tử tìm kiếm cơ bản
- Toán tử AND: Có cú pháp dạng (Toán hạng 1) AND (Toán hạng 2) Toán tử
AND yêu cầu hệ thống tìm kiếm các tài liệu có sự hiện diện của tất cả toán hạng
Ví dụ: câu truy vấn nanotechology AND health sẽ giúp truy tìm các tài liệu có
mặt đồng thời chữ health và chữ nanotechnology
Trang 16- Toán tử OR: Có cú pháp dạng (Toán hạng 1) OR (Toán hạng 2) Toán tử OR
cho phép tìm những tài liệu có chứa một trong các toán hạng của toán tử OR
Ví dụ: để tìm các bài viết về Nguyễn Trãi trong cả tiếng Việt và tiếng nước
ngoài thì có thể dùng bộ từ khoá "Nguyễn Trãi" OR "Nguyen Trai"
- Toán tử NOT: Việc tìm kiếm sẽ loại bỏ những tài liệu mà nội dung có chứa
toán hạng đứng ngay sau toán tử NOT Trong nhiều hệ tìm kiếm thông tin có hỗ trợ toán tử NOT thì toán tử này chỉ được dùng một lần cho một bộ từ khoá
Ví dụ: để tìm tài liệu hướng dẫn về ngôn ngữ lập trình C/C++ có thể tra cứu
trên Altavista với câu truy vấn "C/C++ tutor" NOT book
- Dấu ngoặc kép “”: dùng dấu ngoặc kép để tìm nguyên văn của cụm từ, khi
đó, Bộ đối sánh phải tìm kiếm các tài liệu có cả cụm từ ấy trong nội dung văn bản
Ví dụ: để tìm lại nguyên tác và nội dung bài thơ có câu nước non nặng một lời
thề thì có thể dùng từ khoá với ngoặc kép: “Nước non nặng một lời thề”
* Quá trình biểu diễn câu truy vấn
Hình 2.1.3 Quá trình biểu diễn câu truy vấn
Đánh giá trọng số cho các từ khóa
Java (từ khóa)
OR (toán tử) Programing (từ khóa)
Java (từ khóa)
OR (toán tử) Program (từ khóa)
Java (Trọng số w1) Program (Trọng số w2)
(Java, w1) (từ khóa)
OR (toán tử) (Program, w2) (từ khóa)
Trang 17Hình 2.1.3 nêu quá trình biểu diễn câu truy vấn và một ví dụ minh họa với câu
truy vấn là java OR programming
Quá trình biểu diễn câu truy vấn diễn ra qua 4 bước như sau:
Bước 1 - Phân tích câu truy vấn thành các token
Thông thường các token được định nghĩa là một chuỗi ký tự - chữ số nằm giữa
các khoảng trắng và / hoặc các dấu chấm phẩy Trong bước này, câu truy vấn java
OR programming sẽ được phân tích thành 3 token là java, OR và programming
Bước 2 - Phân tích các Token thành các từ khóa và các toán tử tìm kiếm
Trong bước này, chúng ta sẽ thu được java và programming là từ khóa và OR
là toán tử tìm kiếm
Bước 3 - Xử lý : gồm 3 tác vụ xử lý sau
Tác vụ 1 - Loại bỏ các từ dừng: Các từ dừng (stopwords) là những từ xuất
hiện rất nhiều trong các văn bản mà không có ý nghĩa nhiều đối với văn bản Trong
tiếng Anh là các từ như a, an, the, is , trong tiếng Việt là các từ như là, thì, mà,
Việc loại bỏ các từ dừng được xác định bằng cách loại bỏ các từ mà tần suất xuất hiện vượt quá một ngưỡng giá trị nào đó
Tác vụ 2 - Loại bỏ tiền tố, hậu tố (word-stemming): Trong ngôn ngữ tự nhiên,
một từ có thể xuất hiện trong câu dưới những biến thể khác nhau Một vài ví dụ trong tiếng Anh như chia động từ (am, are, is - be), số nhiều (teachers – teacher) Để thực hiện việc biểu diễn, chúng ta cần chuẩn hóa các từ trong văn bản bằng cách đưa các biến thể của một từ về dạng chuẩn của nó
Tác vụ 3 - Loại bỏ từ tương đương: Loại bỏ các từ mang ý nghĩa giống nhau
Trong bước này, java được giữ nguyên vì nó đang ở dạng nguyên thể, programming được loại bỏ hậu tố và trở thành program
Bước 4 - Đánh giá trọng số cho các từ khóa trong câu truy vấn
Một hệ thống tìm kiếm thông tin có thể tiến hành đánh giá trọng số cho các từ khóa trong câu truy vấn Trọng số thể hiện vai trò của từ khóa trong câu truy vấn Trong một số hệ tìm kiếm thông tin, trọng số của từ khóa của câu truy vấn phụ thuộc vào vị trí xuất hiện của nó trong câu truy vấn
Trang 18Trong bước này, 2 từ khóa java và program được đánh trọng số Từ khóa java
xuất hiện trước sẽ có trọng số cao hơn
Đầu ra của Bộ biểu diễn câu truy vấn là một tập (từ khóa, trọng số) và các toán
tử tìm kiếm liên kết giữa các từ khóa
b) Bộ biểu diễn tài liệu
Nhiệm vụ của Bộ biểu diễn tài liệu là phân tích tài liệu thành các thông tin phục vụ cho việc tìm kiếm
Tài liệu và câu truy vấn đều được tạo thành từ các văn bản ngôn ngữ tự nhiên,
vì vậy, việc biểu diễn chúng có một số xử lý giống nhau Hình 2.1.4 minh họa quá trình biểu diễn tài liệu, gồm 5 bước xử lý sau:
Hình 2.1.4 Quá trình biểu diễn tài liệu
Tài liệu
Xác định các đơn vị tài liệu cần biểu diễn
Phân tích văn bản cần biểu diễn thành các term
Loại bỏ các từ dừng, tiền tố, hậu tố,
từ tương đương, từ quá hiếm gặp
Các từ còn lại là các index term
Đánh chỉ mục
các index term
Các chỉ mục Đánh giá trọng số cho các index term
Trang 19Bước 1 - Xác định các đơn vị tài liệu cần thiết để biểu diễn: có thể là cả một
văn bản, một đoạn, phần tiêu đề hay tóm tắt…
Bước 2 - Phân tích đoạn văn bản cần biểu diễn thành “từ”: Ở đây khái niệm
“từ” được hiểu là một từ hay một cụm từ tạo thành một ý nghĩa nào đó trong văn
bản Mỗi “từ” này được gọi là một term
Bước 3 - Thực hiện xử lý với các từ: gồm từ dừng, tiền tố, hậu tố, loại bỏ các
từ tương đương (giống biểu diễn câu truy vấn), những từ quá hiếm gặp (loại bỏ những từ có tần suất xuất hiện trong văn bản thấp hơn một ngưỡng giá trị nào đó)
Các term còn lại sau các quá trình xử lý này được gọi là các index term
Bước 4 - Đánh giá trọng số cho các index term Trọng số thể hiện vai trò của
index term trong tài liệu Nó phụ thuộc vào nhiều yếu tố: tần suất xuất hiện của từ
trong tài liệu, font chữ, cỡ chữ, vị trí xuất hiện…
Bước 5 - Đánh chỉ mục cho các index term Việc đánh chỉ mục thực hiện bằng cách tổ chức các index term dưới dạng một từ điển (dictionary) Với mỗi term người ta có một danh sách chỉ ra tài liệu nào có xuất hiện term ấy Danh sách này gọi là các posting Mỗi posting bao gồm một index term và chỉ số tài liệu nó xuất
hiện (ngoài ra có thể có các thông tin phụ như vị trí xuất hiện, kích cỡ, font chữ…)
Ví dụ: Xem xét các tài liệu được đánh chỉ số từ 1 đến 174 Index term Brutus
xuất hiện trong các tài liệu có chỉ số là 1, 2, 4, 11, 31, 45, 173,174 Index term
Caesar xuất hiện trong các tài liệu 1, 2, 4, 5, 6, 16, 57, Các posting sẽ như sau:
Thông tin về các (index term, posting) được lưu trữ để phục vụ cho việc tìm
kiếm Có thể sử dụng inverted file để lưu trữ Phần dictionary của inverted file
thường xuyên được lưu trữ trong bộ nhớ với các con trỏ trỏ đến các posting lưu trên đĩa từ
Trang 20Việc đánh chỉ mục này nhằm làm cho quá trình tìm kiếm diễn ra dễ dàng và nhanh chóng hơn khi lượng tài liệu để tìm kiếm là rất lớn
c) Bộ đối sánh
Bộ đối sánh nhằm mục đích xem xét độ phù hợp của tài liệu và câu truy vấn của người dùng Mô tả hoạt động của bộ đối sánh như sau:
Đầu vào: Đầu vào là kết quả của quá trình biểu diễn câu truy vấn; các posting
và dictionary (thu được sau quá trình biểu diễn và đánh chỉ mục tài liệu)
Đầu ra: Đầu ra là kết quả đánh giá độ phù hợp của câu truy vấn với các tài liệu Các kết quả này có thể được sắp thứ tự
Xử lý: Sử dụng hàm matching để đánh giá độ phù hợp giữa nội dung câu truy vấn và tài liệu Tùy thuộc vào từng hệ thống mà hàm matching này có thể khác nhau Có thể sử dụng kết quả của hàm matching để sắp thứ tự kết quả trả về cho người dùng Một hàm matching trả về kết quả dưới nhiều dạng khác nhau, như:
- Dạng Boolean (0 hoặc 1): Một tài liệu chỉ có thể đánh giá là phù hợp hay không phù hợp với câu truy vấn, không thể sắp thứ tự tài liệu;
- Dạng dải rộng kết quả: Có thể dùng để sắp thứ tự tài liệu
Ví dụ: Một hàm matching đơn giản có thể dựa vào số lượng các từ trùng nhau của một biểu diễn truy vấn và một biểu diễn tài liệu như sau:
D- Tập các từ khóa biểu diễn văn bản của tài liệu
Q- Tập các từ biểu diễn câu truy vấn
|DQ| - Số lượng các từ trong tập giao của tập từ biểu diễn câu truy vấn Q và biểu diễn tài liệu D
|D| + |Q| - Tổng số lượng các từ trong hai tập từ biểu diễn câu truy vấn và biểu diễn tài liệu
Khi đó, M sẽ nằm trong dải [0 1] Dựa vào kết quả này hệ thống sẽ đưa ra sắp xếp độ phù hợp của tài liệu và câu truy vấn
Trang 212.2 Hệ tìm kiếm toàn văn trong hệ quản trị cơ sở dữ liệu quan hệ
Từ thành công của các hệ tìm kiếm thông tin như Google, Yahoo, ., các HQTCSDLQH hiện đại đã tích hợp các tính năng cơ bản của hệ tìm kiếm thông tin
để cho phép thực hiện tìm kiếm toàn văn trên các trường dữ liệu text Các HQTCSDLQH như Microsoft SQL Server, Oracle, MySQL, … đều đã hỗ trợ tính năng này Về bản chất, người dùng vẫn phát biểu truy vấn dựa trên lược đồ của CSDL với ngôn ngữ truy vấn SQL Tuy nhiên, các hệ thống này mở rộng cú pháp câu lệnh SQL để người dùng có khả năng phát biểu một cách tường minh các yêu cầu tìm kiếm dựa trên từ khóa trên các trường dữ liệu văn bản Các hệ thống này hỗ trợ tổ chức lưu trữ dữ liệu phù hợp với kiểu tìm kiếm dựa trên từ khóa Trong phần trình bày sau đây, chúng tôi sẽ sử dụng cú pháp SQL trong HQTCSDLQH Microsoft SQL Server 2008 để minh họa cho việc biểu diễn yêu cầu tìm kiếm toàn văn trên CSDLQH và định nghĩa tổ chức lưu trữ phục vụ yêu cầu tìm kiếm này
2.2.1 Kiến trúc hệ tìm kiếm toàn văn
Hình 2.2.1 Kiến trúc hệ tìm kiếm toàn văn
Indexer
Query
Client Application
Database Engine Query Process
Query Processor FTS Engine
Query Compilation and Execution
Full-Text Query Compilation and Execution
Thesaurus
FTS Index Stoplist
Database