1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc

41 618 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Thể loại Luận văn
Định dạng
Số trang 41
Dung lượng 293,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc

Trang 1

MỤC LỤC

MỞ ĐẦU 3

1 Giới thiệu chung: 3

2 Cơ sở dữ liệu văn bản: 4

3 Yêu cầu vấn tin: 6

4 Kết luận: 7

KHÁI NIỆM VỀ CHỈ MỤC ĐẢO VÀ CƠ CHẾ VẤN TIN 7

1 Chỉ mục đảo: 7

1.1 Danh sách đảo: 8

1.2 Tệp đảo: 9

1.3 Từ điển và trọng lượng văn bản: 9

2 Cơ chế vấn tin: 10

2.1 Vấn tin dạng xếp hạng: 10

2.2 Vấn tin dạng logic: 11

3 Kết luận: 12

XÂY DỰNG CHỈ MỤC ĐẢO 14

1 Cấu trúc dữ liệu: 14

2 Xây dựng cấu trúc từ điển 17

3 Xây dựng tệp đảo: 19

4 Giải thuật xây dựng chỉ mục đảo: 22

XỬ LÝ VẤN TIN LOGIC 23

1 Phân tích yêu cầu vấn tin : 23

2 Xử lý các phép logic: 28

2.1 Phép AND: 28

2.2 Phép OR: 29

3 Kết luận: 31

THIẾT KẾ HỆ THỐNG VÀ THỰC NGHIỆM 32

1 Mục đích xây dựng hệ thống: 32

2 Mô hình phân cấp chức năng: 33

3 Xây dựng chương trình 34

3.1 Ngôn ngữ sử dụng 34

3.2 Xây dựng cơ sở dữ liệu 34

3.3 Xây dựng chương trình 34

4 Thực nghiệm: 37

KẾT LUẬN 40

1 Kết qủa đạt được 40

2 Hạn chế 40

3 Hướng phát triển 40

LỜI GIỚI THIỆU

Trong thời đại ngày nay, công nghệ thông tin đã có những tiến bộ vượt bậc trên nhiều lĩnh vực, đặc biệt trong đó phải nói đến khả năng ứng dụng tin học vào

Trang 2

cuộc sống nhằm đáp ứng mọi nhu cầu thực tế củacon người.

Thông tin là một phần của cuộc sống, con ngườiđang phải đối đầu với khó khăn là làm sao nắm bắt đượcthông tin một cách nhanh nhất và chính xác trước sựphát triển nhanh chóng của các nguồn thông tin Cùng vớisự bùng nổ của thông tin, các nhu cầu về dịch vụ tracứu thông tin cũng tăng lên không ngừng Ngày nay có rấtnhiều sản phẩm phần mềm không những đáp ứng đượccác nhu cầu đó mà ngày càng phát triển và hoàn thiệnhơn Đó là các hệ thống tra cứu thông tin

Xuất phát từ thực tế đó, được sự gợi ý củathầy Võ Ngọc Anh, trong quá trình làm đồ án tốt nghiệp

em chọn đề tài “ Cơ chế vấn tin dạng logic cho cơ sở dữliệu văn bản không cấu trúc “ Bằng những kiến thức đãhọc, em đã hoàn thành đồ án của mình với nội dung sau:

Chương 1: Mở đầu

Chương 2: Khái niệm về chỉ mục đảo và cơ chế vấntin

Chương 3: Xây dựng chỉ mục đảo

Chương 4: Xử lý vấn tin logic

Chương 5: Thiết kế hệ thống và thực nghiệm

Chương 6: Kết luận

Vì thời gian có hạn và kiến thức còn hạn chế nênchắc chắn trong đồ án này không tránh khỏi những thiếusót Em rất mong được sự góp ý, chỉ bảo của các Thầy

cô giáo và các bạn

Em xin chân thành cảm ơn khoa Công Nghệ Thông Tintrường Đại Học Kỹ Thuật cùng các Thầy cô đã tạo điềukiện cho em hoàn thành đồ án này Đặc biệt em xin chânthành cảm ơn thầy Võ Ngọc Anh đã giúp đỡ em tận tìnhtrong thời gian qua Cuối cùng xin cảm ơn các bạn đã độngviên và giúp đỡ tôi trong quá trình làm việc

Đà Nẵng, tháng 5 năm 2000

Sinh viên

Lê Ngọc Quang

CHƯƠNG 1

Trang 3

MỞ ĐẦU

1 Giới thiệu chung:

Xã hội ngày càng phát triển, thì nhu cầu đòi hỏi sựđáp ứng các yêu cầu nhanh và chính xác của con ngườingày càng cao Ngày nay với một lượng thông tin khổnglồ về mọi mặt như khoa học kỹ thuật, văn học, nghệthuật, giải trí thì để đáp ứng được các yêu cầu thôngtin thích hợp về một thể loại hay nhiều thể loại nào đóđối với người vấn tin là rất quan trọng

Trong thư viện, để bạn đọc không phải mất cônglục tung cả đống sách để tìm cho mình một quyển sáchnhư ý thì người ta đã đưa ra một phương pháp giúp tìmkiếm rất nhanh là xây dựng chỉ mục Từ đó bạn đọc cóthể tìm kiếm nhanh các yêu cầu của mình với các chỉmục đã lập sẵn theo tên sách, tên tác giả hoặc nội dung

Sự phát triển vượt bậc của công nghệ thông tinlàm cho bộ mặt xã hội có những thay đổi đáng kể Conngười ở mọi lúc mọi nơi đều có thể nắm bắt một cáchnhanh chóng các thông tin mà mình quan tâm Đó là nhờ cáchệ thống truy tìm thông tin Các hệ thống truy tìm thôngtin ra đời đã góp phần không nhỏ trong lĩnh vực tra cứuđáp ứng được một phần yêu cầu của người vấn tin

Việc xây dựng hệ thống truy tìm thông tin trong lĩnhvực tin học cũng dựa trên nguyên tắc xây dựng chỉmục Điều này đã được dự đoán trước khi người ta tiếnhành xây dựng chỉ mục một cách thủ công và là tấtyếu khi máy tính ra đời Với việc sử dụng chỉ mục ta cókhả năng tìm được những thông tin cần thiết và đặc biệtlà khi thông tin được viết bằng những ngôn ngữ khác.Thực vậy, nếu ta muốn tìm được thông tin từ mộtquyển sách được viết bằng một ngôn ngữ khác thì trên

cơ sở chỉ mục của quyển sách đó ta xác định và dịchnhững trang chứa thông tin yêu cầu hơn là dịch toàn bộquyển sách ấy Một quyển sách không có chỉ mục sẽmang đến cho đọc giả sự bất lợi lớn Đa phần mọingười lúc này hay lúc khác đã đọc kỹ quyển sách để tìmkiếm một điều gì đó mà họ chắc chắn là có ở đónhưng đơn giản là tìm hoài không thấy

Đối với một dữ liệu nhỏ thông thường, để tìm mộtthông tin nào đó ta có thể tìm kiếm một cách tuần tựvà với một sự may mắn nào đó bằng những đầu mốingữ cảnh khác nhau có thể tìm được nội dung mong

Trang 4

muốn Nhưng với một dữ liệu lớn cỡ Gigabyte tức làhàng trăm hàng triệu trang thì xem ra phương thức này làkhông hiệu quả Với dữ liệu đó, nếu như không dùng chỉmục mà thực hiện tìm kiếm để tìm thông tin quan tâmthì thời gian thực hiện là rất lâu Với lý do đó thì xâydựng chỉ mục cho hệ thống truy tìm thông tin mà đúnghơn là xây dựng chỉ mục cho cơ sở dữ liệu văn bản củahệ thống là cần thiết.

2 Cơ sở dữ liệu văn bản:

Thông tin là một phần quan trọng của cuộc sống conngười, nhất là trong xã hội hiện đại ngày nay Hàng ngàychúng ta thường xuyên đón nhận thông tin từ nhiều nguồnkhác nhau Đứng trước sự bùng nổ thông tin cùng vớiviệc áp dụng công nghệ thông tin, để giúp cho con ngườicó thể nắm bắt được thông tin mình quan tâm một cáchnhanh chóng thì các hệ thống tra cứu thông tin đã đưa racác thông tin được tổng hợp với nội dung khái quát nhất.Tập hợp những thông tin tổng hợp đó được gọi là cơ sởdữ liệu của hệ thống

Trong đồ án này với mục đích xây dựng hệ thốngtruy tìm thông tin ứng dụng trong các thư viện nhằm giúpđọc giả tìm được nội dung thông tin cần truy vấn mộtcách nhanh nhất thì hệ thống được xây dựng với một

cơ sở dữ liệu là tập hợp những lời giới thiệu khái quátvề nội dung của từng cuốn sách Để đơn giản, mỗi nộidung tóm tắt được trình bày theo một đoạn văn bản riêngbiệt, ngăn cách nhau bởi dấu cách dòng và một khoảngtrắng Một cơ sở dữ liệu như vậy gọi là cơ sở dữ liệuvăn bản hay còn gọi là bộ sưu tập văn bản

Trang 5

Một minh hoạ về cơ sở dữ liệu văn bản như sau:

Mây núi thái hàng (NXB hội nhà văn)

15 truyện ngắn của Bảo Vũ trong tập

sách này, dẫu viết về tình yêu cuộc sống

với những bươn chải của lớp người trẻ

tuổi, về tình cảm, nếp sống, suy tư của

người già trong hiện tại hay khi lật lại

những tích cũ vẫn luôn luôn thổi vào

những trang văn hơi thở của nhịp sống

đương đại, tươi mới Trong tập có nhiều

tác phẩm lôi cuốn như : Trầu têm cánh

phượng, mây núi thái hàng

Gió nắng Trường Sơn (NXB văn nghệ TP HCM

)

Tập bút ký ghi lại cảm xúc của tác giả

Phan Lai Triều qua những tháng ngày sống

chiến đấu trên dãi Trường Sơn trong cuộc

kháng chiến chống Mỹ cứu nước Tác giả

khắc hoạ hình ảnh người lính trước bom

đạn kẻ thù vẫn lạc quan yêu đời, hình ảnh

các anh chịu đựng gian khổ, hy sinh anh

dũng, cống hiến cả tuổi xuân của mình cho

đất nước

Hình 1.1 : Trích một cơ sở dữ liệu văn bản

Như vậy cơ sở dữ liệu văn bản được định nghĩanhư là tập các văn bản riêng lẽ và mỗi văn bản được coilà một mẫu tin được lưu dưới dạng mà máy tính cóthể đọc được Với việc xây dựng chỉ mục, mỗi văn bảnđược coi là một chuỗi nối tiếp các từ Từ có thể là từđơn hay xâu ký tự có được bằng một quy ước nào đótrong văn bản Cách định nghĩa này là không đồng nhấttrong nhiều văn bản

Một cơ sở dữ liệu văn bản cũng như bản thân các vănbản không có sự giới hạn về độ dài Một văn bản cóthể gồm một vài byte hoặc vài Megabyte Một cơ sở dữliệu văn bản gồm vài trăm hoặc vài triệu văn bản nhưthế

Các đặc trưng quan trọng của cơ sở dữ liệu văn bảnđược liệt kê trong bảng sau:

Trang 6

Ký hiệu Ý nghĩa Ví dụ

NFnDf

Số các văn bảntrong CSDLTổng số từ xuất

hiệnSố các từ khác

biệtKích thước CSDL

(Mbyte)Số con trỏ chỉ mục

31 102

884 988

9 0204,33

699 131

Bảng 1.1: Các đặc trưng của CSDL văn bản

Mỗi văn bản trong cơ sở dữ liệu văn bản có một địnhdanh duy nhất Để đơn giản, ta giả sử các văn bản đượcđịnh danh bằng các số tự nhiên ( từ 1 đến N ) theo thứtự nhập vào cơ sở dữ liệu Trong đồ án này định danhcòn gọi là số hiệu văn bản

Hình sau đây là một ví dụ về định danh của văn bản:Số hiệu văn

1234

Tác phẩm và tác giả được yêu thích

Thơ và truyện ngắn cách mạngGiới thiệu tác phẩm mới, tác phẩm được giải

Các tác phẩm truyện ngắn củatác giả BảoVũ

Hình 1.2 : Ví dụ về định danh của văn bản

Ví dụ trên được xem như là một ví dụ xuyên suốtcả đề tài này với mỗi dòng là một văn bản

3 Yêu cầu vấn tin:

Một thành phần rất quan trọng đối với hệ thốngtruy tìm thông tin là các yêu cầu vấn tin Đây là môi trườnggiao tiếp chính giữa người vấn tin và hệ thống truy tìmthông tin Một yêu cầu vấn tin là một yêu cầu dựa trênngôn ngữ tự nhiên, có thể là một từ hay một chuỗi cáctừ được liên kết với nhau bởi các phép toán logic như :AND, OR, XOR, NOT Trên cơ sở các yêu cầu đó, hệ thốngtruy tìm thông tin sẽ tìm các văn bản chứa thông tin tương

Trang 7

ứng trong cơ sở dữ liệu văn bản và hiển thị cho ngườicần vấn tin.

Ví dụ về yêu cầu vấn tin như:

- Tác phẩm AND Tác giả

Trang 8

truy tìm thông tin là tìm và hiển thị những thông tin thoảmãn yêu cầu nào đó của người vấn tin Trong đề luậnnày đó là các văn bản trong cơ sở dữ liệu văn bản.

Với một cơ sở dữ liệu cực lớn, giả sử gồm hàngtriệu văn bản, thì đó là thách thức đối với các hệ thốngtruy tìm thông tin Việc tìm lời giải cho các yêu cầu theohướng trực tiếp đến từng văn bản trong cơ sở dữ liệusẽ ảnh hưởng lớn đến thời gian truy tìm Vì vậy để nângcao tốc độ truy tìm của hệ thống ta tiến hành xây dựngchỉ mục cho cơ sở dữ liệu Có nhiều kỹ thuật xây dựngchỉ mục như chỉ mục đảo, chỉ mục chữ ký, chỉ mụchình ảnh Tuy nhiên chỉ mục chữ ký và chỉ mục hình ảnhđòi hỏi dung lượng bộ nhớ lớn nên trong đồ án này emchọn cách xây dựng chỉ mục dựa trên một kỹ thuậtgọi là kỹ thuật chỉ mục đảo Trên cơ sở chỉ mục đảo này,các hình thức vấn tin sẽ được xây dựng phù hợp vớicác yêu cầu của người vấn tin

Phần này thảo luận về cách thức cài đặt hệ thốngtruy tìm văn bản để có thể tìm câu trả lời cho các yêu cầudạng logic và xếp hạng Một yêu cầu logic đòi hỏi, đốivới mỗi từ của yêu cầu, một phương pháp xác định mỗivăn bản có chứa từ đó hay không Yêu cầu xếp hạng bêncạnh điều này còn đòi hỏi thông tin về tầm quan trọngcủa từ trong văn bản Cách thức cài đặt hợp lý đáp ứngcả hai yêu cầu trên là chỉ mục đảo

Chỉ mục đảo được xây dựng trên cơ sở ba thànhphần: danh sách đảo, từ điển và trọng lượng văn bản,tệp đảo Hệ thống sẽ xử lý trực tiếp trên các thànhphần này để đưa ra các văn bản có thông tin đáp ứngđược yêu cầu của người vấn tin

1.1 Danh sách đảo:

Danh sách đảo là thành phần quan trọng nhất trongchỉ mục đảo, được xây dựng từ cơ sở dữ liệu văn bảnban đầu Với mỗi từ khác biệt trong cơ sở dữ liệu, danhsách đảo tương ứng cho phép xác định từ đó có mặttrong những văn bản nào và có tầm quan trọng ra sao trongcác văn bản đó Như vậy danh sách đảo là danh sách cáccặp nhân tố < số hiệu văn bản , trọng lượng >

Để lưu trữ một cặp nhân tố như vậy cần 8 byte, 4byte cho số hiệu văn bản và 4 byte cho trọng lượng Vớimột cơ sở dữ liệu lớn thì số cặp nhân tố sẽ rất lớn vàđòi hỏi không gian nhớ cũng lớn Để tiết kiệm không gian

Trang 9

nhớ, ta thay nhân tố trọng lượng bằng tần suất từ trongvăn bản Tần suất này được biểu diễn bởi số nguyên 2byte hoặc 1 byte Với cách thay thế này thì danh sách đảocủa từ t là một danh sách các cặp < d,fd,t >, trong đó d làsố hiệu văn bản chứa từ t và fd,t là số lần từ t xuấthiện trong d

1.2 Tệp đảo:

Tệp đảo là một tệp dùng để lưu trữ trọng lượngcủa mỗi văn bản tức là bao gồm các danh sách đảo củatất cả các từ khác biệt trong cơ sở dữ liệu văn bản Cóthể coi tệp đảo là một chuỗi nối tiếp các số thựctượng trưng cho trọng lượng của các văn bản theo thứtự tăng của số hiệu văn bản Chi tiết về cấu trúc củatệp đảo và phương pháp truy cập các thành phần trongtệp đảo sẽ được thảo luận ở chương tiếp theo

Xét một ví dụ đơn giản về tệp đảo với mỗi văn bảnđược đơn giản hoá thành một chuỗi nối tiếp các chữcái và xem đó như là các từ của cơ sở dữ liệu

Hình 2.1 : Ví dụ về tệp đảo

Trong ví dụ này, cơ sở dữ liệu văn bản bao gồm 6văn bản được đánh số từ 1 đến 6 và số các từ khácbiệt là 5 ứng với danh sách đảo được biểu diễn nhưtrên

c b e

1,2 2,2 3,5 4,1 5,2

2,3 4,1 5,1 6,1

1,3

1,1 3,1 4,1 6,4

a b c d e

Văn

ì t

Tệp đảoCSDL văn

bản

Trang 10

n t

t q

W

1 , 2

1.3 Từ điển và trọng lượng văn bản:

Một thành phần cũng rất quan trọng khác trong chỉmục đảo là từ điển Từ điển dùng để ghi lại tất cả cáctừ khác biệt của cơ sở dữ liệu cùng với địa chỉ của danhsách đảo tương ứng của nó trong tệp đảo Chức năngchính của từ điển là dùng để tìm kiếm từ và từ điểnthường được xây dựng theo cấu trúc cây nhị phân đểđáp ứng được yêu cầu của hệ thống Cấu trúc của từđiển sẽ được mô tả chi tiết ở chương sau

Như đã đề cập ở tệp đảo, trọng lượng củathực thể văn bản có thể được tính theo nhiều phươngpháp nhưng hầu hết là dựa trên hai thừa số sau: TF vàIDF

- TF gọi là tần suất từ tức là số lần xuấthiện của từ t trong thực thể văn bản d vàđược ký hiệu là fd,t

- IDF là tần suất văn bản ngược thường đượctính theo công thức log(N/ft) , trong đó N là sốvăn bản trong cơ sở dữ liệu và ft là số vănbản có chứa từ t

Thông thường trọng lượng của thực thể vănbản : TF* IDF

2 Cơ chế vấn tin:

Trong phần này giới thiệu khái quát về hai cơ chếvấn tin dạng logic và dạng xếp hạng

2.1 Vấn tin dạng xếp hạng:

Giả sử ta có một yêu cầu q (gồm một số từ t =1 n) và một cơ sở dữ liệu lớn gồm N văn bản không cấutrúc Để đáp ứng được yêu cầu vấn tin q thì hệ thốngphải thực hiện việc tính toán trọng lượng và độ tươnghợp của yêu cầu đó với mỗi văn bản có chứa thông tincần tìm Sau đó các văn bản sẽ được hiển thị cho ngườivấn tin theo thứ tự giảm dần của độ tương hợp Theo

như tài liệu Managing Gigabytes, độ tương hợp của yêucầu q và văn bản d được tính như sau:

Trong đó

là trọng lượng của yêu cầu q

là trọng lượng của văn bản d

n t

t d t q d

q

W W W

W d q S

1

,

1 ,

W

1

, 2

Trang 11

t t

d t

N f

Như vậy

Ví dụ về độ tương hợp như sau:

Giả sử ta có cơ sở dữ liệu như hình 2.1

Các giá trị fd,t và Wd tương ứng được liệt kêtrong bảng 2.1

030111

010000

101104

3,103,311,420,861,272,39

c,d

Wq=2,64

a,b,e

Wq=1,18

0,000,880,000,150,100,05

0,950,290,400,400,760,48

0,390,920,160,300,400,24

N f

W W d q

, * (log ) 1

,

Trang 12

2.2 Vấn tin dạng logic:

Cơ chế vấn tin này được thực hiện dựa trên cácphép toán logic là các phép toán AND , OR và NOT và sửdụng kỹ thuật chỉ mục đảo Với một yêu cầu q gồmmột số từ t được liên kết bởi các phép toán logic nhưtrên thì đầu tiên các từ sẽ được tìm trong từ điển , xácđịnh các danh sách đảo tương ứng và sau đó dựa trên cácphép toán logic tương ứng để xác định tập các văn bảnthoả mãn yêu cầu và trình bày cho người vấn tin

Cơ chế vấn tin dạng logic cho kết quả có độchính xác cao hơn so với vấn tin dạng xếp hạng Trong đềluận này chỉ xét cơ chế vấn tin dạng logic Chi tiết vềxử lý vấn tin dạng này sẽ được trình bày ở chương bốn

Một ví dụ minh họa cho cơ chế vấn tin dạnglogic :

Cho cơ sở dữ liệu như hình 1.2, ta xây dựng tệpđảo như sau:

Từ t Danh sách đảo It

2 , 1

4 , 1

3 , 1

3 , 1

3 , 1

4 , 1

1 , 1

4 , 1

1 , 1

3 , 1

4 , 1

2 , 1

Trang 13

t  q DTạc giaí

CHỈÅNG 3

Trang 14

XÂY DỰNG CHỈ MỤC ĐẢO

1 Cấu trúc dữ liệu:

Cấu trúc dữ liệu là thách thức phải đương đầu khixây dựng chỉ mục Cách đơn giản nhất để mô tả cấutrúc chỉ mục đảo cho cơ sở dữ liệu là ma trận tuần tựcấp hai (m,n) Với cơ sở dữ liệu như hình 1.2 ta có ma trậntuần tự như sau:

-1 -111-

-11112 -

-11-1 11-1

Hình 3.1 : Biểu diễn chỉ mục bằng ma trận tuần

tự

Ma trận tuần tự cấp hai m hàng, n cột với cácthành phần cột là số hiệu văn bản và các thành phầnhàng là từ t trong cơ sở dữ liệu Giá trị giữa hàng và cộtlà số lần từ t xuất hiện trong văn bản đó, ký hiệu là f t ,d

Giả sử giá trị f t , d có độ dài là 4 byte thì kíchthước của cơ sở dữ liệu chỉ mục là:

S = 4*m*n (byte)Với ví dụ trên thì không gian nhớ cần thiết cho cơ sởdữ liệu chỉ mục là:

S = 4*7*4 = 112 (byte)Việc xây dựng cấu trúc chỉ mục đảo cho cơ sở dữliệu theo ma trận tuần tự như trên là rất tốn không giannhớ Bởi vì theo cách xây dựng trên thì các văn bản không

Trang 15

chứa từ t nhưng vẫn chiếm giữ 4 byte nhớ trong ma trận.Như vậy, với một cơ sở dữ liệu rất lớn thì dung lượng

nhớ chi phí cho việc lưu trữ các văn bản không

chứa từ t cũng rất lớn Cho nên cấu trúc trên là khôngthích hợp

Để khắc phục nhược điểm của cấu trúc chỉ mụctheo ma trận tuần tự, ta sử dụng một cấu trúc khác,đó là danh sách liên kết

Đối với một từ khác biệt trong cơ sở dữ liệu sẽ cómột danh sách liên kết tương ứng và chỉ có những vănbản có chứa từ đó mới được lưu trữ trong danh sáchnày Sử dụng danh sách liên kết để biểu thị giá trị f t , dđã giảm đáng kể không gian nhớ không cần thiết trong matrận tuần tự Bên cạnh đó sử dụng danh sách liên kếtcó thể truy cập được theo một kiểu ngẫu nhiên, bởi vìmỗi phần tử của thông tin mang theo nó một mối liên kếtđến phần tử liền kế tiếp trong dây chuyền và đồng thờinó cho phép khả năng bổ sung vào danh sách Điều nàyrất quan trọng, bởi vì trên thực tế ta không chỉ xây dựngchỉ mục cho cơ sở dữ liệu văn bản tĩnh mà còn cho các cơsở dữ liệu văn bản động tức là các văn bản luôn luônđược bổ sung hoặc loại bỏ

Ví dụ sau minh hoạ cho việc xây dựng cấu trúc chỉmục đảo với cơ sở dữ liệu hình1.2

Hình 3.2 : Biểu diễn chỉ mục cho cơ sở dữ liệu bằng danh sách liên kết

4 1 X

4 1 X

4 1 X

4 1 X

4 1 X

4 1 X

4 1 X

4 1 X

2 1 X

4 1 X

1 1

3 1 X

3 1 X

3 1 X

1 1

1 1

2 1 X

2 1

1 1

1 1 X

4 1 X

4 1 X

3 2

4 1 X

2 1 X

kết

Trang 16

Trong ví dụ trên, X quy ước nhận giá trị NULL.

Đối với một cơ sở dữ liệu nhỏ thì khó có thể đánhgiá tính hiệu quả của các cấu trúc dữ liệu nhưng vớimột cơ sở dữ liệu lớn bao gồm hàng triệu văn bản thì môhình cấu trúc dùng danh sách liên kết là rất hiệu quả

Thời gian cũng là một trong những yếu tố quantrọng dùng để đánh giá hiệu quả của hệ thống Vì vậyviệc giảm tối thiểu thời gian thực thi chương trình là vấnđề được đặt ra trong đồ án này Cấu trúc cây nhị phângiải quyết được vấn đề này bởi cây nhị phân vẫn đượcxem là đặc biệt vì khi sắp xếp chúng tự làm cho cácphép chèn, tìm kiếm và xoá được nhanh hơn

Theo các nhà nghiên cứu thì một cây nhị phân códạng như sau:

Hình 3.3 : Một cây nhị phân biểu diễn bằng danh

sách liên kết

Phần tử đầu tiên của cây gọi là Root, mỗi phần tửdữ liệu được gọi là một node của cây và bất cứ mộtphần nào của cây đều được gọi là cây con Một nodekhông có cây con nối vào thì được gọi là node kết thúchay là lá Mỗi phần tử của một cây bao gồm thông tincùng với một liên kết đến phần tử bên trái và một liênkết đến phần tử bên phải

Cây nhị phân cũng có thể được biểu diễn bởi danhsách đặc Các nút trên cây nhị phân được đánh số bắtđầu từ 1 trở đi theo thứ tự từ mức này đến mức khácvà các nút trên cùng một mức thì được đánh từ trái sangphải Nút i sẽ có 2 con là nút 2i và nút 2i+1 Dùng vecto Vđể lưu trữ các phần tử của cây, trong đó phần tử Vi sẽchứa nút i của cây

T1 

 T2

 T4

0

0

T5

0 0

Trang 17

Từ những ưu điểm của cây nhị phân nên trong đồ ánnày em chọn cấu trúc cây nhị phân để xây dựng chỉ mụcđảo.

Trong đồ án này một cấu trúc cây nhị phân có thểđược định nghĩa bằng ngôn ngữ lập trình như sau :

Struct tree 

char t 20 ;long ft ;dsd It;tree left;

tree right;

 ;Trong đó dsd là cấu trúc của một danh sách đảođược định nghĩa như sau:

Struct dsd 

long d;

int fd,t ;dsd next ;

 ;

2 Xây dựng cấu trúc từ điển

Trong chương 2 đã định nghĩa về từ điển, đó là mộtcấu trúc bao gồm các thành phần : từ t, tần suất ft vàđịa chỉ của danh sách đảo It Việc tìm kiếm đựơc thựchiện trên từ điển và thông qua địa chỉ của It xác địnhđược danh sách đảo tương ứng trong tệp đảo

Cấu trúc đơn giản nhất của từ điển là dạng mảngcác bảng ghi bao gồm một chuỗi cùng với hai trườngnguyên Cấu trúc đó được mô tả như hình 3.5

Trang 18

Việc lưu tữ theo phương thức này sẽ lãng phíkhoảng không gian nhớ rất lớn Giả sử, để lưu trữ mộtchuỗi cần 20 byte cùng với 4 byte cho giá trị ft và 4 byte chođịa chỉ của danh sách đảo It thì không gian nhớ mà từ điểncần để lưu trữ sẽ lớn hơn 28 Mbyte.

Không gian nhớ cần để lưu trữ các chuỗi sẽ giảmnếu như tất cả các chuỗi đó kết nối thành một chuỗidài liên tiếp và sử dụng con trỏ 4 byte để truy cập Lúcnày, mỗi một chuỗi sẽ bao gồm chính xác số ký tự củachuỗi đó cộng thêm 4 cho con trỏ truy cập Cấu trúc nàyđược phát thảo trong hình 3.6 Khi một chuỗi được chỉmục thì nó không cần thiết phải lưu trường chiều dàihoặc ký tự kết thúc vì con trỏ tiếp theo trong mảng sẽxác định vị trí kết thúc của chuỗi Theo giả thuyết nhưthế, nếu một từ điển khoảng một triệu từ thì khônggian nhớ sẽ giảm từ 8 Mbyte đến 20Mbyte

đượcgiảigiớithiệumớitácphẩmtácgiả

ft đcIt đct

Trang 19

Hình 3.6 :Lưu trữ từ điển như một mảng các con

trỏ

Để giảm hơn nữa không gian nhớ và nâng cao tốcđộ tìm kiếm thì ta lại xây dựng chỉ mục cho chỉ mụcđảo tức là loại bỏ nhiều hơn nữa các con trỏ chỉ mục ởtrên Có n từ nhưng không nhất thiết phải sử dụng n contrỏ chỉ mục, giả sử cứ 4 từ thì có 1 từ được chỉ mục.Như vậy chỉ cần 4 byte để lưu trữ thông tin về chiều dàicủa cả nhóm Cấu trúc này được minh hoạ như hìnhdưới đây:

4được4giải9giớithiệu3mới7tácphẩm6tácgiả

Hình 3.7 : Lưu trữ từ điển với xây dựng chỉ mục

cho chỉ mục đảo

Với mô hình từ điển được xây dựng như trên sẽthích hợp cho việc xử lý tìm kiếm nhị phân đồng thờitiết kiệm được không gian nhớ và nâng cao tốc độ xử lýcủa hệ thống

k

k +1

Địa chỉ It

2 1 1

2

3

1

ft

4k4k +

14k + 24k + 34(k + 1)

Trang 20

3 Xây dựng tệp đảo:

Như đã khảo sát ở các chương trước, đối với mỗi từ

t bao gồm các thành phần:

- từ t

- tần suất ft

- danh sách đảo It

Một tệp đảo cũng bao gồm các thành phần trên Trên

cơ sở các thành phần của tệp đảo sẽ xác định chính xáccác văn bản chứa thông tin cần truy vấn Cấu trúc củamột tệp đảo được xây dựng theo cách thức truyềnthống như sau:

Hình 3.8 : Mô hình tệp đảo đơn giản

Theo mô hình này thì các thành phần trong cơ sở dữ liệu được chỉ mục như H 3.2 sẽ được lưu trữ như sau:

Hình 3.9 : Ví dụ về chỉ mục tệp đảo

Theo cách xây dựng tệp đảo như trên thì việc xử lýtruy tìm trên tệp đảo được tiến hành tuần tự đến từngthành phần Với cơ sở dữ liệu cực lớn thì phương thứctruy cập tuần tự là không hiệu quả và vì thế mô hìnhtệp đảo nêu trên là không thích hợp

Một cách tổ chức khác của tệp đảo khắc phụcđược nhược điểm trên là xây dựng chỉ mục cho tệp

Ngày đăng: 02/11/2012, 14:34

HÌNH ẢNH LIÊN QUAN

Bảng 1.1: Các đặc trưng của CSDL văn bản - Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Bảng 1.1 Các đặc trưng của CSDL văn bản (Trang 6)
Hình 2.1 : Ví dụ về tệp đảo - Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Hình 2.1 Ví dụ về tệp đảo (Trang 9)
Bảng 2.1 : Các giá trị f d,t   và W d   tương ứng với CSDL hình 2.1 - Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Bảng 2.1 Các giá trị f d,t và W d tương ứng với CSDL hình 2.1 (Trang 11)
Hình 3.1 : Biểu diễn chỉ mục bằng ma trận tuần - Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Hình 3.1 Biểu diễn chỉ mục bằng ma trận tuần (Trang 14)
Hình 3.3 : Một cây nhị phân biểu diễn bằng danh - Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Hình 3.3 Một cây nhị phân biểu diễn bằng danh (Trang 16)
Hình 3.5 :Lưu trữ từ điển như một mảng các bảng - Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Hình 3.5 Lưu trữ từ điển như một mảng các bảng (Trang 18)
Hình 3.6 :Lưu trữ từ điển như một mảng các con - Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Hình 3.6 Lưu trữ từ điển như một mảng các con (Trang 19)
Hình 3.8 : Mô hình tệp đảo đơn giản - Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Hình 3.8 Mô hình tệp đảo đơn giản (Trang 20)
Hình 3.9 : Ví dụ về chỉ mục tệp đảo - Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Hình 3.9 Ví dụ về chỉ mục tệp đảo (Trang 20)
Hình 3.10 : Cấu trúc chỉ mục cho tệp đảo - Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Hình 3.10 Cấu trúc chỉ mục cho tệp đảo (Trang 21)
Hình 3.11 :Tệp đảo cho cơ sở dữ liệu trình bày ở H - Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Hình 3.11 Tệp đảo cho cơ sở dữ liệu trình bày ở H (Trang 22)
Hình 4.1 : Sơ đồ dịch của các ký hiệu không kết - Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Hình 4.1 Sơ đồ dịch của các ký hiệu không kết (Trang 25)
Hình 4.2 : Sơ đồ dịch đã được thu gọn của các ký - Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Hình 4.2 Sơ đồ dịch đã được thu gọn của các ký (Trang 27)
Sơ đồ dòng thông tin của hệ thống được mô tả như sau: - Cơ chế vấn tin dạng logic cho cơ sở dữ liệu văn bản không cấu trúc
Sơ đồ d òng thông tin của hệ thống được mô tả như sau: (Trang 32)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w