Tải bản đầy đủ (.pdf) (42 trang)

Kỹ thuật tìm kiếm dựa trên từ khóa trong cơ sở dữ liệu và ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (597.73 KB, 42 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------ex

TRẦN CÔNG CẨN

Trần Công Cẩn

CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN

KỸ THUẬT TÌM KIẾM DỰA TRÊN TỪ KHÓA
TRONG CƠ SỞ DỮ LIỆU VÀ ỨNG DỤNG

LUẬN VĂN THẠC SĨ KHOA HỌC
CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN

KHÓA 2009

Hà Nội – Năm 2012


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------Trần Công Cẩn

KỸ THUẬT TÌM KIẾM DỰA TRÊN TỪ KHÓA
TRONG CƠ SỞ DỮ LIỆU VÀ ỨNG DỤNG

Chuyên ngành: Công nghệ thông tin

LUẬN VĂN THẠC SĨ KHOA HỌC


CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC:
Tiến sĩ Vũ Tuyết Trinh.

Hà Nội – Năm 2012

1


LỜ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.

2


LỜI CẢM ƠN
Đầu tiên, em xin trân trọng cảm ơn quý Thầy giáo, Cô giáo Viện Công nghệ

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

3


MỤ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

34
LÝ NHÀ NƯỚC TỈNH KHÁNH HÒA .............................................
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

4


Danh mục các ký hiệu, các chữ viết tắt

Ký hiệu

Viết đầy đủ và diễn giải

CSDL
CSDLQH

Cơ sở dữ liệu
Cơ sở dữ liệu quan hệ

FTS

Full text search: tìm kiếm toàn văn

HQTCSDLQH Hệ quản trị cơ sở dữ liệu quan hệ
IRS
SQL


Information retrieval system: Hệ tìm kiếm thông tin
Structured query language: ngôn ngữ truy vấn có cấu trúc

Danh mục các thuật ngữ

Ký hiệu
FTS Engine
FTS Index
Index terms

Diễn giải
Mô-tơ tìm kiếm toàn văn trong HQTCSDLQH
Chỉ mục tài liệu của hệ tìm kiếm toàn văn trong CSDLQH
Các từ khóa biểu diễn nội dung tài liệu trong hệ tìm kiếm thông tin

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

5


Danh 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

6


MỞ ĐẦ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.

7


Chươ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

8


nó (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 *
FROM dbo.Book b
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ệ”.

9


1.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

10


kiế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.


11


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ệ.
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
liệu phi cấu trúc được hình thành từ các văn bản ngôn ngữ tự nhiên phi hình thức.
Người tìm kiếm

Các tác giả tài liệu

Các nội dung

Các nội dung

Các từ truy vấn

Đối sánh

Các từ mô tả tài liệu

Có biểu diễn cùng một nội dung ?
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.

12


Như 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
Đầu vào

Câu truy vấn

Tập các tài liệu

------------------------------------------------------------------------------------------------------------------------

Bộ
Biểu diễn câu truy vấn

Bộ
Biểu diễn tài liệu


Bộ
Đối sánh

Chỉ mục

Bộ xử lý

------------------------------------------------------------------------------------------------------------------------

Đầu ra

Tập các
tài liệu phù hợp

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) Đầu ra
Đầu ra là tập hợp các đoạn trích hay tài liệu được hệ thống đánh giá là phù hợp
với yêu cầu truy vấn của người dùng.

13



c) Bộ xử lý
Bộ xử lý có nhiệm vụ biểu diễn và lưu trữ các thông tin về các tài liệu lưu trữ
trong hệ thống và thực hiện tìm kiếm. Bộ xử lý có 3 bộ phận sau:
- Bộ biểu diễn câu truy vấn: biểu diễn câu truy vấn của người dùng dưới dạng
thích hợp để xử lý;
- 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.

14


- 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
Câu truy vấn

Java OR Programing

Java
OR
Programing

Phân tích thành các token

Phân tích thành các từ khóa

và các toán tử tìm kiếm

Java
(từ khóa)
OR
(toán tử)
Programing (từ khóa)

Loại bỏ các từ dừng,
tiền tố, hậu tố, từ tương đương

Java
OR
Program

(từ khóa)
(toán tử)
(từ khóa)

Đánh giá trọng số cho các từ khóa

Java
(Trọng số w1)
Program (Trọng số w2)

Tập các (từ khóa, trọng số) và
các toán tử liên kết giữa chúng

(Java, w1)
(từ khóa)

OR
(toán tử)
(Program, w2) (từ khóa)

Hình 2.1.3. Quá trình biểu diễn câu truy vấn

15


Hì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.

16


Trong 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:
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 giá trọng số
cho các index term
Đánh chỉ mục
các index term
Các chỉ mục

Hình 2.1.4. Quá trình biểu diễn tài liệu

17


Bướ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ừ.
18


Việ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:
M

2 | D Q |

| D |  |Q |

Trong đó:
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.
| D  Q | - 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.

19


2.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


Client Application
Query
Database Engine Query Process
Query Processor

FTS Engine
Full-Text Query
Compilation
and Execution

Query
Compilation
and Execution

Indexer

Database

Stoplist

FTS Index

Hình 2.2.1. Kiến trúc hệ tìm kiếm toàn văn
20

Thesaurus


Hình 2.2.1 trình bày kiến trúc hệ tìm kiếm toàn văn. Hệ thống nhận câu truy
vấn của người dùng được nhập thông qua ứng dụng dành cho người dùng (Client

Application). Hệ thống thực hiện truy vấn trên CSDLQH và trả kết quả cho người
dùng. Sau đây, chúng tôi sẽ trình bày chi tiết 2 thành phần cơ bản của hệ thống là (i)
tổ chức lưu trữ và (ii) xử lý truy vấn toàn văn.
a) Tổ chức lưu trữ
Tổ chức lưu trữ trong HQTCSDLQH có hỗ trợ tìm kiếm toàn văn không chỉ
đảm nhiệm việc lưu trữ thông tin mà còn phải cho phép truy nhập thông tin một
cách hiệu quả. Để đạt được điều này, các HQTCSDLQH cung cấp các hình thức tổ
chức chỉ mục (index). Trong các HQTCSDLQH hỗ trợ tìm kiếm toàn văn, ngoài các
kiểu chỉ mục truyền thống của CSDLQH như B-Tree, Hash-based, … hệ thống còn
cho phép tạo chỉ mục trên các trường dữ liệu văn bản dựa trên nguyên tắc lập chỉ
mục ngược (inverted index) như trong các hệ tìm kiếm thông tin (xem mục 2.1)
Công việc của bộ tạo chỉ mục (Indexer) là đọc nội dung trường dữ liệu text,
phân tách nội dung trường dữ liệu text thành các từ khóa (tokenizer), loại bỏ các từ
dừng (stopwords) dựa vào danh sách từ dừng (stoplist) được lưu trữ sẵn trong hệ
thống, gán trọng số cho các từ khóa và lập chỉ mục ngược cho trường dữ liệu này
(FTS Index).
Hiện nay, một số HQTCSDLQH (trong đó có Microsoft SQL Server 2008) đã
lưu trữ Stoplist và FTS Index trong CSDL thay vì trên hệ thống file như các phiên
bản trước đó để tăng hiệu năng xử lý của hệ thống. Vì vậy, để tạo FTS Index thì
trước tiên chúng ta cần tạo Full-Text Catalog cho CSDLQH.
Ví dụ: Trong Microsoft SQL Server 2008, việc tạo Full-Text Catalog mang
tên Book_Cat cho CSDLQH quản lý sách có tên dbBooks được thực hiện như sau:
USE dbBooks;
GO
CREATE FULLTEXT CATALOG Book_Cat
WITH ACCENT_SENSITIVITY = OFF
AS DEFAULT
AUTHORIZATION dbo;
GO


21


Để HQTCSDLQH tạo chỉ mục cho các trường dữ liệu văn bản phục vụ cho
tìm kiếm toàn văn, người tạo lập CSDLQH phải chỉ ra các trường dữ liệu cần tạo
chỉ mục.
Ví dụ: Trong Microsoft SQL Server 2008, tạo FTS Index cho trường nội dung
text của sách có tên Book_Content (kiểu nvarchar) ở bảng dbo.Book của CSDLQH
dbBooks đã được tạo Full-Text Catalog có tên Book_Cat, được thực hiện như sau:
USE dbBooks;
GO
CREATE FULLTEXT INDEX ON dbo.Book
(
Book_Content LANGUAGE English
)
KEY INDEX PK_Book
ON Book_Cat;
GO

b) Xử lý truy vấn của hệ quản trị cơ sở dữ liệu quan hệ
Tiến trình xử lý truy vấn của HQTCSDLQH qua 2 bước xử lý:
(1) Trước tiên, bộ xử lý truy vấn SQL truyền thống (Query Processor) tiếp
nhận các câu lệnh truy vấn SQL, biên dịch các câu lệnh truy vấn, thực hiện các câu
lệnh truy vấn trong CSDL và trả kết quả truy vấn để hiển thị cho người dùng. Nếu
trong câu truy vấn có các mệnh đề liên quan đến tìm kiếm toàn văn thì bộ xử lý
chuyển tiếp xử lý ấy cho bộ xử lý truy vấn toàn văn (FTS Engine) thực hiện.
(2) FTS Engine có nhiệm vụ tiếp nhận xử lý truy vấn toàn văn trên các trường
dữ liệu văn bản đã được đánh chỉ mục trước đó. Nhiệm vụ của bước xử lý này là:
thực hiện phân tích, xác lập yêu cầu truy vấn, dựa vào Stoplist để loại bỏ stopwords,
dựa vào Thesaurus (gồm các từ đồng nghĩa, các từ gần nghĩa) để mở rộng từ khóa

tìm kiếm và thực hiện tìm kiếm dựa trên chỉ mục văn bản (FTS Index). Tập các bản
ghi kết quả sẽ được xếp hạng (ranking) và hiển thị cho người dùng.
Để thực hiện tìm kiếm trên các trường dữ liệu văn bản, các HQTCSDLQH mở
rộng ngôn ngữ truy vấn SQL truyền thống để người dùng có khả năng phát biểu các
yêu cầu truy vấn.

22


Ví dụ: Trong Microsoft SQL Server 2008, tìm những quyển sách (hiển thị
Book_ID) mà nội dung của nó (theo trường Book_Content trong bảng dbo.Book
của CSDLQH dbBooks) có chứa từ “fish” và không chứa từ “hook”, được thực hiện
như sau:
USE dbBooks;
GO
SELECT b.Book_ID
FROM dbo.Book b
WHERE CONTAINS
(
b.Book_Content, '"fish" AND NOT "hook"', LANGUAGE 1033
);
GO

2.2.2. Một số hạn chế của hệ tìm kiếm toàn văn
Từ kiến trúc và hoạt động của hệ tìm kiếm toàn văn nêu trên chúng ta có thể
thấy 2 hạn chế sau:
(1) Hạn chế lớn nhất của hệ tìm kiếm toàn văn là vẫn yêu cầu người dùng biết
thông tin về lược đồ cơ sở dữ liệu.
(2) Hạn chế thứ hai của hệ tìm kiếm toàn văn là việc phân tách từ khóa chưa
hỗ trợ phân tách từ tiếng Việt: Hầu hết các hệ tìm kiếm toàn văn hiện nay xác định

từ là các ký tự liên tục nằm giữa hai khoảng trắng, hoặc giữa khoảng trắng và ký
hiệu ngắt câu (dấu phẩy, dấu chấm phẩy, dấu chấm, dấu hai chấm,...). Tuy nhiên,
trong tiếng Việt và một số ngôn ngữ khác thì từ được tạo thành từ một hoặc nhiều
“tiếng”, mỗi “tiếng” được xác định theo cách tương tự như một từ trong tiếng Anh.
Hạn chế này dẫn đến hiệu quả tìm kiếm trong các ngôn ngữ mà từ có chứa khoảng
trắng là không cao.
Trong chương 3 dưới đây chúng ta sẽ đưa ra một kiến trúc middleware để giải
quyết 2 hạn chế nêu trê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Ệ
Như đã trình bày ở Chương 1, mục tiêu chính của luận văn là 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, gọi là hệ tìm kiếm dựa trên từ khóa trong CSDLQH.
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 middleware để thực hiện mục tiêu đã đề ra. Vì
vậy, trong chương 3 chúng tôi đi sâu 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ác câu
lệnh SQL, gửi các câu lệnh SQL cho HQTCSDLQH thực hiện tìm kiếm, nhận kết
quả tìm kiế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.
3.1. Kiến trúc hệ thống
Keyword-based query
(chuỗi từ khóa truy vấn)

Kết quả


Phân tích
truy vấn

`
Hiển thị
kết quả

Tách từ

Từ dừng

Loại bỏ
từ dừng
(qi, wi)
Gán nhãn
từ khóa

Sinh các câu lệnh
SQL {(qi, wi)}

SQL
Meta data

Lược đồ

Xếp hạng
kết quả

(rij,sij) (kết quả của truy vấn qi)

- tập các bản ghi ri + scorei

HQTCSDLQH

Hình 3.1.1. Kiến trúc hệ tìm kiếm dựa trên từ khóa trong CSDLQH

24


×