Tra cứu văn bản dựa trên dữ liệu đặc tả

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu về dữ liệu đặc tả dùng cho quản lý văn bản điện tử trong các cơ quan nhà nước 04 (Trang 59 - 76)

Chương 3. DỮ LIỆU ĐẶC TẢ DÙNG CHO QUẢN LÝ VĂN BẢN ĐIỆN TỬ

3.3. Tra cứu văn bản dựa trên dữ liệu đặc tả

Hầu hết mọi người đã quen thuộc với việc sử dụng các bảng chỉ mục trong một cuốn sách. Đó là một phần thường đặt ở cuối mỗi cuốn sách, và khi bạn muốn tìm một từ chẳng hạn nhƣ từ chỉ mục, bạn sẽ tìm trong phần bảng chỉ mục từ đó và nó sẽ chỉ cho bạn các trang có liêu quan tới từ chỉ mục. Việc sử dụng bảng chỉ mục giúp chúng ta có thể tìm đƣợc các thông tin mong muốn mà không cần phải tìm kiếm trên từng trang của cuốn sách. Đương nhiên, với một cuốn sách thì chúng ta vẫn có thể đọc lướt qua từng trang của cuốn sách để tìm kiếm thông tin mong muốn. Tuy nhiên, với các thông tin được lưu trữ trong máy tính, kích thước của chúng là hàng gigabyte với hàng triệu trang tài liệu. Vì thế, việc duyệt qua các dữ liệu này đối với con người là không thể hay thậm chí nếu được thực hiện bằng máy móc cũng sẽ tốn rất nhiều chi phí và thời gian nếu các thông tin không được đánh chỉ mục. Với các lý do này, Các hệ thống lưu trữ và truy vấn thông tin tự động cần phải có khả năng đánh chỉ mục các dữ liệu của mình.

3.3.1. Các công nghệ đánh chỉ mục 3.3.1.1. Các khái niệm

Xây dựng một chỉ mục cho một tài liệu không chỉ là việc trích xuất các từ và xây dựng một dữ liệu có cấu trúc dựa trên sự xuất hiện của chúng. Các từ phải được phân tích/mổ xẻ trước khi đặt vào một cấu trúc file chỉ mục nào đó. Quá trình này đƣợc biết đến nhƣ là chuẩn hóa item (item normalization).

Nói cách khác, đó chính là quá trình lấy ra đơn vị nhỏ nhất của tạo liệu (trong hầu hết các trường hợp đó là các từ) để xây dựng lên một cấu trúc dữ liệu có thể tìm kiếm đƣợc. Các từ đƣợc định nghĩa là các biểu tƣợng (là ký tự hoặc số) đƣợc phân cách bởi các biểu tƣợng liên từ (ví dụ nhƣ là khoảng trắng). Một hệ thống tìm kiếm phải đƣa ra quyết định dựa trên việc xử lý các từ, số và các liên từ này.

Các tài liệu không chỉ đơn giản đƣợc tạo bởi các từ, chúng đƣợc tập hợp từ các processing token. Việc xác định các processing token chính là phần việc đầu tiên của chuẩn hóa item. Việc miêu tả các đặc điểm của tokens hay diễn giải nghĩa của các từ chủ chốt (terms) đƣợc xử lý sau khi việc chuẩn hóa đƣợc hoàn thành.

Bước tiếp theo trong quá trình chuẩn hóa item là áp dụng danh sách từ phân cách (stop list) vào tập hợp các processing token. Danh sách từ phân cách là danh sách các từ mà có ít hoặc không có giá trị trong việc tìm kiếm (ví dụ trong tiếng anh các từ able, about, after, allow, became, been, before, certainly, clearly, enough, everywhere, …). Các từ này thường có ảnh hưởng ít đến việc phân biệt các khái niệm hay các chủ đề trong khi tìm kiếm. Từ quan điểm nén dữ liệu, danh sách phân cách sẽ loại bỏ việc xử lý các từ không cần thiết và làm

(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04

giảm kích thước của chỉ mục đồng thời giảm lượng thời gian và không gian cần thiết để xây dựng cấu trúc dữ liệu có thể tìm kiếm. Tuy nhiên, không gian lưu trữ cho danh sách phân cách là không đáng kể so với không gian lưu trữ tổng thể của chỉ mục, vì vậy không gian lưu trữ tiết kiệm được là không đáng kể.

3.3.1.2. Cấu trúc file đảo ngƣợc (Inverted File Structure - IFS)

Cấu trúc file đảo ngƣợc đƣợc sử dụng rất rộng rãi trong các hệ thống truy vấn thông tin hay các hệ thống CSDL. Chúng bao gồm 3 thành phần đƣợc dùng để xác định tài liệu nào ứng với từ chủ chốt (term) nào trong chỉ mục. Thay vì tìm kiếm một từ chủ chốt nào đó trên toàn bộ cơ sở dữ liệu về tài liệu, IFS sắp xếp các thông tin vào một danh sách rút gọn các từ chủ chốt (term), với mỗi một từ chủ chốt (term) sẽ có một tập hợp các tài liệu tương ứng nào đó. Việc tìm kiếm này tương tự như khi bạn muốn tìm thông tin về một ngọn núi A trong một cuốn sách tham khảo về địa lý, bạn có thể giở lần lƣợt các trang của cuốn sách để tìm thông tin về ngọn núi hoặc bạn có thể kiểm tra phần chỉ mục trước. Phần chỉ mục sẽ chỉ cho bạn biết những trang nào có thông tin về ngọn núi A đó.

Trong cả 2 trường hợp, bạn đều có thể tìm được thông tin bạn cần, tuy nhiên cách sau sẽ nhanh hơn rất nhiều.

Nhƣ đã nêu ở trên, Có 3 thành phần trong IFS:

File tài liệu (document file): là nơi mỗi tài liệu đƣợc gán một con số định danh duy nhất. Đồng thời tất cả các khái niệm (processing tokens) bên trong tài liệu cũng đƣợc xác định (trích xuất) và đặt vào trong thành phần này.

Từ điển (dictionary): là một danh sách đƣợc sắp xếp của tất cả các từ chủ chốt (term) duy nhất cùng với một con trỏ đến danh sách đảo ngược(inversion list)

Danh sách đảo ngược (inversion list): bao gồm các con trỏ để trỏ các từ chủ chốt đến các tài liệu tương ứng có chứa các từ đó (Ví dụ trong một chỉ mục của cuốn sách, con trỏ chính là số trang nơi mà từ chủ chốt có thể đƣợc tìm thấy).

Để hiểu rõ hơn từng thành phần trong IFS, chúng ta sử dụng bài thơ tiếng anh sau làm ví dụ minh họa:

There once was a searcher named Hanna Who needed some info on manna She put “rye” and “wheat” in her query

Along with “potato” or “cranbeery”

But no mention of “sourdough” or “banana”

Instead of rye, cranberry, or wheat The results had more spiritual meat

So Hanna was not pleased, Nor was her hunger eased,

'Cause she was looking for something to eat File tài liệu (document file)

Bước đầu tiên trong việc tạo IFS là trích xuất các từ chủ chốt (term) có thể cần dùng trong chỉ mục và gán cho mỗi tài liệu một con số duy nhất. Ví dụ với bài thơ trên, để đơn giản, mỗi dòng trong bài thơ trên sẽ đươc coi là một tài liệu (Hình 3.4).

1 There once was a searcher named Hanna

2 Who needed some info on manna 3 She put “rye” and “wheat” in her

query

4 Along with “potato” or “cranbeery”

5 But no mention of “sourdough” or

“banana”

6 Instead of rye, cranberry, or wheat 7 The results had more spiritual meat 8 So Hanna was not pleased,

9 Nor was her hunger eased,

(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04

10 'Cause she was looking for something to eat

Hình 3.3 Danh sách các tài liệu

Chú ý rằng chúng ta không chỉ bỏ đi các dấu chấm, dấu phẩy, mà các từ thông dụng mà có ít giá trị trong việc tìm kiếm cũng không đƣợc đƣa vào chỉ mục. Điều này dẫn tới việc giảm đáng kể số lƣợng từ đƣợc đánh chỉ mục. Với việc loại bỏ nhƣ vậy ta có bảng 3.5

Bảng 3.5 Danh sách các tài liệu sau khi loại bỏ các từ không cần thiết

Số tài liệu Từ chủ chốt 1 searcher, Hanna

2 manna

3 rye, wheat, query 4 potato, cranbeery 5 sourdough, banana 6 rye, cranberry, wheat 7 spiritual, meat

8 Hanna

9 hunger

10 không có từ chủ chốt

Danh sách từ điển (Document list)

Bước thứ 2 là trích xuất các từ chủ chốt (term) và tạo ra một từ điển có thể tìm kiếm được của các từ chủ chốt (term). Thông thường, để cho việc tìm kiếm đƣợc dễ dàng thuận lợi, các từ chủ chốt (term) đƣợc sắp xếp theo thứ tự alphabet. Tuy nhiên, có thể có cách sắp xếp khác để nhằm mục đích tích kiệm thời gian và không gian. Ngoài ra, các processing tokens có thể đƣợc chia nhỏ

tới mức từng ký tự với các cấu trúc dữ liệu chuyên biệt mà có thể đem lại hiệu suất cao hơn trong việc tìm kiếm. 2 cấu trúc dữ liệu đƣợc biết đến nhiều nhất cho việc xử lý từ điểm là N-grams và PAT tree.

Đôi khi, danh sách từ điển có thể chỉ rõ cả số lần xuất hiện của từ chủ chốt trong tài liệu. Danh sách từ điển cho ví dụ trên đƣợc mô tả trong bảng 3.6

Bảng 3.6 Danh sách từ điển

Từ chủ chốt Tần suất

banana 1

cranb 2

Hanna 2

hunger 1

manna 1

meat 1

potato 1

query 1

rye 2

sourdough 1

spiritual 1

wheat 2

Danh sách đảo ngƣợc (Inversion List)

Bước cuối cùng trong việc xây dựng một IFS là kết hợp danh sách từ điển với danh sách tài liệu để hình thành cái gọi là danh sách đảo ngược(inversion list). Danh sách đảo ngược sẽ trỏ đến một hoặc nhiều tài liệu tương ứng khi một từ chủ chốt (term). Thêm vào đó, để có thể chỉ ra chính xác hơn các tài liệu cần

(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04

truy vấn, danh sách đảo ngƣợc đƣợc xây dựng để có thể trỏ tới khu vực hoặc phần trong tài liệu nơi mà từ chủ chốt (term) đƣợc sử dụng. Bảng 3.7 mô tả một danh sách đảo ngƣợc bao gồm cả tài liệu và vị trí của từ chủ chốt (term) trong tài liệu đó. Ví dụ, từ “wheat” sẽ xuất hiện đầu tiên trong tài liệu thứ 3 tại ví trí thứ 5 (từ thứ 5 ở trong dòng thứ 3).

Bảng 3.7 Danh sách đảo ngược

Từ chủ chốt Tài liệu/Vị trí

banana (5,7)

cranb (5,5);(6,4)

Hanna (1,7);(8,2)

hunger (9,4)

manna (2,6)

meat (7,6)

potato (4,3)

query (3,8)

rye (3,3);(6,3)

sourdough (5,5)

spiritual (7,5)

wheat (3,5);(6,6)

Danh sách đảo ngƣợc có thể trở nên phức tạp hơn khi máy tìm kiếm cần phải hỗ trợ việc tìm kiếm các cụm từ liên tục. Một cụm từ liên tục đƣợc dùng khi một nhóm từ kết hợp với nhau được yêu cầu bởi người dùng. Ví dụ, khi ta cần tìm kiếm một cụm từ “banana bread” có nghĩa là ta chỉ muốn tìm những tài liệu nào mà có từ “banana” đi liền ngay sau từ “bread”. Nếu một danh sách đảo ngược lưu trữ vị trí của mỗi từ, thì những chúng có thể đưa ra được những quyết

định nhƣ vậy. Tất nhiên, đây là những tính năng hữu dụng và nhiều hệ thống có thể làm đƣợc, tuy nhiên để làm đƣợc điều đó thì các hệ thống phải đánh đổi bằng dung lượng lưu trữ lớn hơn và sự tính toán phức tạp hơn.

Với một tập hợp các tài liệu, không chỉ có một hệ thống file đảo ngƣợc đƣợc tạo ra. Các IFS riêng biệt có thể đƣợc phát triển cho các vùng hay có phần khác nhau của tài liệu chẳng hạn nhƣ phần tiêu đề hay tóm tắt nội dung. Một hệ thống file đảo ngƣợc có thể đƣợc xây dựng chỉ cho phần các tác giả với một số luật lệ đặc biệt nào đó chẳng hạn nhƣ không có danh sách phần cách (stop list).

Điều này cho phép người dùng có thể tìm kiếm nhanh hơn trên những trường riêng biệt trong CSDL.

3.3.1.3. Các cấu trúc file khác

Bên cạnh phương pháp IFS được dùng phổ biến trong việc xây dựng các chỉ mục, còn có các phương pháp khác. Một trong số đó là phương pháp signature file trong đó các từ/khái niệm đƣợc chuyển đổi sang dạng các chuỗi nhị phân (gọi là các chữ ký (signature)). Các từ từ chuỗi tìm kiếm cũng sẽ đƣợc chuyển thành các signature và việc tìm kiếm sẽ là khớp các vị trí bit trong signature với các signature (đã được tính trước) của tài liệu. Theo một khía cạnh nào đó, phương pháp signature file sử dụng cách thức tiếp cận ngược với phương pháp IFS. Trong khi IFS so sánh chuối tìm kiếm với các từ chủ chốt (term) để tìm ra đƣợc tài liệu chính xác nhất thì signature file loại bỏ các những tài liệu không khớp. Signature của chuỗi tìm kiếm sẽ đƣợc so sánh và những tài liệu không khớp sẽ đƣợc loại bỏ. Những tài liệu còn lại sẽ đƣợc tìm kiếm để xem các từ trong chuỗi tìm kiếm có thực sự tồn tại trong những tài liệu này không.

Bảng 3.8 Minh họa chuyển đổi sang giá trị hệ cơ số 8 của các ký tự

Từ chủ chốt Giá trị của các ký tự trong hệ cơ số 8

Nor 116 157 162

her 150 145 162

hunger 150 165 156

eased 145 141 163

(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04(LUAN.van.THAC.si).nghien.cuu.ve.du.lieu.dac.ta.dung.cho.quan.ly.van.ban.dien.tu.trong.cac.co.quan.nha.nuoc.04

Bảng 3.9 Cấu trúc của Block signature

Từ chủ chốt f(c) = 2(c mod 8)

Nor 01 000 000 10 000 000 00 000 100

her 00 000 001 00 100 000 00 000 100

hunger 00 000 001 00 100 000 00 100 000 eased 00 100 000 00 000 010 00 001 000 Block Signature 01 100 001 10 100 010 00 101 100

Bảng 3.9 minh họa việc mã hóa một tài liệu (một câu) các từ theo kiểu block signature. Trong ví dụ này, 3 ký tự đầu tiên của mỗi từ đƣợc chuyển sang một chuỗi 8 bit bằng một hàm băm f(c) = 2(c mod 8) với c là mã ASCII của các ký tự tương ứng trong hệ có số 8. Sau đó thực hiện phép toán logic OR giữa bốn signature để tạo ra một block signature cho toàn bộ câu (tài liệu).

Để thực hiện việc tìm kiếm, đầu tiên signature của từ cần tìm kiếm sẽ đƣợc tính toán. Sau đó để xem từ đó xuất hiện trong tài liệu nào, signature của từ cần tìm sẽ đƣợc so sánh với block signature của tất cả các tài liệu. Việc so sánh sẽ thực hiện bằng cách kiểm tra xem các bit 1 xuất hiện ở vị trí nào trong signature của từ cần tìm thì cũng phải xuất hiện tại vị trí tương ứng trong block signature. Ví dụ, từ “her” trong bảng 3.9 có các bit 1 tại các vị trí 8, 11 và 22, nếu tài liệu có chứa từ “her” thì tại vị trí 8,11 và 22 trong block signature của tài liệu các bit phải có giá trị là 1.

Một biến thể khác của cấu trúc signature file là cấu trúc bitmap. Đây là một cấu trúc chỉ mục rất đơn giản. Trong phương pháp này, mỗi từ chủ chốt (term) được lưu trữ cùng một bitvector (Bảng 3.10). Trong bitvector này, vị trí các bit 1 chính là số định danh của tài liệu có chứa khái niệm (term) này. Ví dụ, từ “wheat” xuất hiện trong tài liệu 3 và 6 thì bitvector của từ này sẽ có bit ở vị trí 3 và 6 đƣợc thiết lập bằng 1.

Bảng 3.10 Các từ chủ chốt được lưu trữ cùng các bitvector

Từ chủ chốt Tài liệu/Vị trí bitvector

banana (5,7) 000 010 000

cranb (5,5);(6,4) 000 011 000

Hanna (1,7);(8,2) 100 000 010

hunger (9,4) 000 000 001

manna (2,6) 010 000 000

meat (7,6) 000 000 100

potato (4,3) 000 100 000

query (3,8) 001 000 000

rye (3,3);(6,3) 001 001 000

sourdough (5,5) 000 010 000

spiritual (7,5) 000 000 100

wheat (3,5);(6,6) 001 001 000

Với các tài liệu dài thì độ dài của các bitvector sẽ rất lớn, vì thế với phương pháp bitmap sẽ cần một không gian lưu trữ rất lớn để có thể thực hiện đánh chỉ mục cho một kho tài liệu lớn.

3.3.2. Máy tìm kiếm Lucene Search Engine 3.3.2.1. Tổng quan về Lucene Search Engine

Jakarta Lucene là một máy tìm kiếm văn bản có hiệu suất cao, đầy đủ các tính năng đƣợc viết hoàn toàn bằng ngôn ngữ Java. Đây là công nghệ thích hợp cho hầu hết mọi ứng dụng đòi hỏi việc tìm kiếm toàn văn (full-text), đặc biệt là tính không phụ thuộc vào nền tảng hệ điều hành (cross-platform).

 Khả năng indexing: Trên 200MB/giờ với CPU Pentium II/266, RAM chỉ

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu về dữ liệu đặc tả dùng cho quản lý văn bản điện tử trong các cơ quan nhà nước 04 (Trang 59 - 76)

Tải bản đầy đủ (PDF)

(78 trang)