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

Tổ chức cấu trúc dữ liệu hỗ trợ tìm kiếm nhanh

Một phần của tài liệu XÂY DỰNG ỨNG DỤNG TỪ ĐIỂN TRÊN POCKET PC (Trang 51 -51 )

Để truy xuất đến dữ liệu Từđiển được lưu và nén dạng Dictzip trên, ta cần lưu thơng tin về vị trí và chiều dài dữ liệu của từng từ. Phần thơng tin này sẽ được tổ

chức lưu trữ chung với những thơng tin khác như từ, từ loại...Vấn đề đặt ra là ta phải tổ chức lưu trữ hợp lý để truy xuất được hiệu quả và đảm bảo yêu cầu tốc độ

cho ứng dụng Từđiển.

5.2.1 Tổ chức lưu trữ tập tin chỉ mục

Tập tin chỉ mục là tập tin cĩ chứa thơng tin về vị trí của 1 mẩu tin trong 1 tập tin khác (thường cĩ kích thước lớn hơn nhiều so với tập tin chỉ mục) để giúp cho việc truy xuất các mẩu tin này được dễ dàng và nhanh chĩng.

Ta sẽ tổ chức 1 tập tin chỉ mục để hỗ trợ việc truy xuất tập tin dữ liệu Từđiển. Các thơng tin như từ, từ loại, vị trí, kích thước dữ liệu được tổ chức thành các mẩu tin và lưu trữ tuần tự.

KHOA CNTT –

ĐH KHTN

42 Từ Từ loại Vị trí nghĩa Kích thước nghĩa Nghĩa Vị trí nghĩa Kích thước nghĩa File chỉ mục File nghĩa Mẩu tin ... Mẩu tin i

Hình 5.4: Tổ chức tập tin chỉ mục hỗ trợ truy xuất tập tin dữ liệu Từđiển

Để truy xuất nghĩa 1 từ, ta tiến hành tìm kiếm trong tập tin chỉ mục để lấy ra

được mẩu tin tương ứng. Từ vị trí nghĩa và kích thước nghĩa trong mẩu tin này, ta

đọc được phần nghĩa trong tập tin dữ liệu nghĩa của Từđiển.

Tốc độ tra cứu từ của ứng dụng Từđiển phụ thuộc vào cách truy xuất tập tin chỉ mục này. Ta cĩ thể áp dụng các cách sau:

• Tiến hành tìm kiếm tuần tự trên tập tin chỉ mục để lấy ra được mẩu tin thích hợp. Cách này cĩ độ phức tạp là O(n), rất chậm, khơng tối ưu và khơng đáp ứng yêu cầu tốc độ của ứng dụng.

• Đọc tất cả các mẩu tin và xây dựng thành một cây tìm kiếm. Cách này khai thác được ưu điểm về tốc độ tìm kiếm của các loại cây tìm kiếm nhưng cĩ nhược điểm là chiếm rất nhiều bộ nhớ cho việc lưu trữ cây. Ví dụ với dữ

liệu Từ điển Anh – Việt gồm 68.998 từ thì ta cần khoảng 3,4 MB để tổ

chức cây trong bộ nhớ. Với dung lượng bộ nhớ giới hạn của Pocket PC thì cách này khơng thể áp dụng được.

• Băm nhỏ tập tin chỉ mục để thu hẹp phạm vi tìm kiếm. Sau đĩ tiến hành tìm kiếm trên vùng vừa giới hạn.

KHOA CNTT –

ĐH KHTN

43

Trong 3 cách trên thì giải pháp băm là hiệu quả nhất cho vấn đề ta đặt ra. Với giải pháp băm, phạm vi tìm kiếm được giới hạn nên thỏa mãn yêu cầu tiết kiệm bộ

nhớ và tốc độ tìm kiếm. Vậy ta phải tiến hành băm tập tin chỉ mục này để giải quyết vấn đề tốc độ tra cứu từ của ứng dụng.

5.2.2 Tổ chức băm tập tin chỉ mục

Băm tập tin chỉ mục nhằm làm nhỏ phạm vi tìm kiếm. Do tập tin chỉ mục của ta được tổ chức thành các mục từ tăng dần theo thứ tự abc nên ta sẽ băm theo các chữ cái đầu của từ.

Ta cĩ thể tiến hành băm 1 hay nhiều cấp tương ứng với 1 hay nhiều kí tựđầu của từ. Ta thử xem xét các khả năng:

• Băm 1 cấp: các mục từ cĩ cùng 1 kí tự đầu tiên sẽ thuộc 1 nhĩm. Với Từ điển Anh – Việt 68.998 từ bắt đầu bằng 26 chữ cái thì trung bình mỗi nhĩm phân hoạch sẽ cĩ 68,998 26=2654 từ. Phạm vi tìm kiếm vẫn cịn rất lớn. Ta nên phân hoạch nhỏ hơn nữa.

• Băm 2 cấp: các mục từ cĩ cùng 2 kí tựđầu tiên sẽ thuộc 1 nhĩm. Tương tự

như trên thì trung bình mỗi nhĩm phân hoạch cĩ 68,998 262 =102 từ. Phạm vi tìm kiếm đã được giới hạn đáng kể.

• Băm 3 cấp: các mục từ cĩ cùng 3 kí tựđầu tiên sẽ thuộc 1 nhĩm. Tương tự

như trên thì trung bình mỗi nhĩm phân hoạch cĩ 68,998 263=4 từ. Phạm vi tìm kiếm là rất nhỏ. Cách này khơng thể áp dụng được vì tập tin chỉ mục bị chia quá vụn ,việc duy trì bảng băm tốn nhiều bộ nhớ, bảng băm xuất hiện quá nhiều tổ hợp 3 kí tự vơ nghĩa và rất dễ biến động khi ta thêm từ

mới. Nhận xét:

KHOA CNTT –

ĐH KHTN

44

• Mỗi phần tử trong bảng băm bao gồm khĩa là 1 kí tự (2 byte) hay 2 kí tự

(4 byte), vị trí bắt đầu (4 byte) và kích thước (4 byte) của các mục từ trong tập tin chỉ mục tương ứng với khĩa.

• Xét cụ thể Từđiển Anh – Việt trên: o Bảng băm 1 cấp cĩ kích thước lưu trữ là (2+4+4)*26 = 260 byte với phạm vi tìm kiếm trong tập tin chỉ mục là 2654 từ. o Bảng băm 2 cấp cĩ kích thước lưu trữ là (4+4+4)*26*26 = 8112 byte với phạm vi tìm kiếm trong tập tin chỉ mục là 102 từ. Mặc dù bảng băm 2 cấp cĩ kích thước lớn hơn nhiều so với băm 1 cấp nhưng kích thước lưu trữ của nĩ vẫn là rất nhỏ (tương đương 8 KB). Như vậy, băm 2 cấp sẽ hiệu quả hơn băm 1 cấp. Ta sẽ áp dụng cách băm 2 cấp cho tập tin chỉ mục.

Hình dưới đây minh họa các tìm kiếm 1 từ trong tập tin chỉ mục với bảng băm 2 cấp :

g o o d

g

...

o

... Vị trí chỉ mục Kích thước chỉ mục Khĩa Vị trí chỉ mục Kích thước chỉ mục Bảng băm File chỉ mục Từ go... go... go... ... ... Hình 5.5: Cách tìm kiếm chỉ mục của 1 từ với bảng băm 2 kí tự

KHOA CNTT –

ĐH KHTN

45 Cách tìm kiếm 1 từ :

• Từ 2 kí tựđầu tiên của từ, ta lấy được 1 phần tử tương ứng trong bảng băm

• Với vị trí và kích thước chỉ mục trong phần tử này, ta đọc được 1 tập hợp các mục từ trong tập tin chỉ mục.

• Tiến hành tìm kiếm nhị phân mục từ của từ này trên tập hợp vừa đọc được. Dưới đây là kết quả kiểm nghiệm tìm kiếm 100 từ ngẫu nhiên (theo thứ tự abc) trong tập tin chỉ mục của 2 bộ dữ liệu Từđiển Anh – Việt (68.998 từ), Việt – Anh (91.146 từ) với bảng băm và tập tin chỉ mục vừa tổ chức: 0 100 200 300 400 500 600 1 10 19 28 37 46 55 64 73 82 91 100 Từ Th i g ia n ( m s) Anh - Việt Việt - Anh Hình 5.6: Biểu đồ minh họa thời gian tìm kiếm 100 từ ngẫu nhiên trong tập tin chỉ

mục của 2 bộ dữ liệu Từđiển Anh – Việt, Việt – Anh.

Thời gian(ms)

Từđiển Ln nht Nh nht Trung bình

Anh – Việt 284 13 57,71

Việt – Anh 541 11 102,04

Hình 5.7: Thời gian tìm kiếm 100 từ trong tập tin chỉ mục của 2 bộ dữ liệu Từđiển Anh – Việt, Việt – Anh

KHOA CNTT –

ĐH KHTN

46

Chương 6 Gii thiu ng dng T đin

“CSPocketDict”

6.1 Yêu cu ca người s dng

Trong thời đại thơng tin ngày nay thì tính di động trong cơng việc là rất lớn.

Đồng thời, việc du lịch qua các nước khác cũng dần trở thành một nhu cầu tinh thần

đối với những người cĩ điều kiện. Do đĩ, việc di chuyển qua lại giữa các quốc gia ngày càng trở nên thường xuyên. Vậy thì làm cách nào ta cĩ thể hiểu được ngơn ngữ của các quốc gia khác nhau? Chẳng lẽ với mỗi quốc gia lại phải mang theo một loại Từđiển. Như vậy thật là bất tiện.

Chính vì những lý do trên mà nhu cầu của một ứng dụng Từđiển trên các thiết bị PDA là rất cần thiết. Hiện nay, trên thế giới cũng như ở Việt Nam cũng đã cĩ một sốứng dụng Từđiển trên các thiết bị PDA. Cịn đối với Viêt Nam, do hiện nay (và cĩ thể là cả trong tương lai nữa) Pocket PC là thiết bị PDA phổ biến nhất nên chúng em quyết định tìm hiểu và xây dựng một ứng dụng Từ điển riêng cho mình trên Pocket PC.

6.2 Các chc năng ca ng dng

Do thời gian cĩ hạn nên ứng dụng Từ điển được xây dựng bao gồm một số

KHOA CNTT –

ĐH KHTN

47 6.2.1 Tra từ Hình 6.1: Chức năng tra từ 6.2.1.1 ExactSearch

Được sử dụng khi người dùng biết chính xác từ mình muốn tra. Cho phép tra nghĩa của từ được nhập vào với điều kiện từ muốn tra nghĩa phải được nhập một cách chính xác.

6.2.1.2 WildcardSearch

Được sử dụng khi người dùng khơng nhớ chính xác từ mình muốn tra. Cho phép từ muốn tra nghĩa cĩ thể chứa các ký tự thay thế như:

• “?” : thay thế cho một ký tự.

• “*” : thay thế cho một chuỗi ký tự.

6.2.1.3 PhraseSearch

Được sử dụng khi người dùng muốn tra nghĩa của một cụm từ mà chỉ nhớ một vài từ trong cụm từđĩ. Cho phép người dùng tra cứu nghĩa của một cụm từ trong đĩ cĩ chứa từđược nhập vào.

KHOA CNTT –

ĐH KHTN

48

6.2.2 Quản lý Từ điển

Đây là chức năng cho phép người sử dụng cĩ thể thêm/xĩa vào/khỏi ứng dụng một hay nhiều bộ dữ liệu Từđiển khác nhau phục vụ cho nhu cầu tra cứu đa ngơn ngữ. Người sử dụng cĩ thể chọn một bộ Từđiển để tra nghĩa của từ.

Hình 6.2: Chức năng quản lý Từđiển

6.2.3 Phát âm

Cho phép phát âm từđược tra bằng hai thứ ngơn ngữ: tiếng Anh và tiếng Việt.

KHOA CNTT –

ĐH KHTN

49

6.2.4 Lọc từ theo từ loại

Được sử dụng khi người dùng chỉ muốn hiển thị danh sách các từ theo một loại từ nào đĩ.

Hình 6.4: Chức năng lọc từ theo từ loại

6.2.5 Click&See

Cho phép người dùng cĩ thể tra nghĩa của từ trong các ứng dụng khác

KHOA CNTT –

ĐH KHTN

50

6.2.6 Click&Hear

Được sử dụng khi người dùng muốn nghe một từ hay đoạn văn bản trong bất kỳứng dụng nào. Ứng dụng hỗ trợđọc hai thứ tiếng: tiếng Anh và tiếng Việt.

Ngồi ra, ứng dụng cịn cĩ một số chức năng khác như: các chức năng về giao diện sử dụng (thay đổi Font chữ, thay đổi cách hiển thị, …), các chức năng thêm, xĩa, sửa từ trong Từđiển (trên phân hệ Desktop).

KHOA CNTT –

ĐH KHTN

51

Chương 7 Phân tích – Thiết kế


7.1 Mơ hình Use-Case

7.1.1 Lược đồ chính của mơ hình Use-Case

SearchMeanings

(from Use cases)

Pronounce

(from Use cases)

DeleteDictionary

(from Use cases)

ChooseDictionary

(from Use cases)

AddDictionary

(from Use cases)

ChangeSettings

(from Use cases)

PartOfSpeechFilter

(from Use cases)

NextWord

(from Use cases)

PreviousWord

(from Use cases)

PrevousPage

(from Use cases) NextPage

(from Use cases)

Click&See

(from Use cases)

Click&Hear

(from Use cases) User

(from Actors)

Hình 7.1: Lược đồ chính của mơ hình Use case

7.1.1.1 Danh sách Actor

STT Actor Ý nghĩa

1 User Người sử dụng.

KHOA CNTT –

ĐH KHTN

52

7.1.1.2 Danh sách Use-Case chính

STT Use-Case Ý nghĩa

1 AddDictionary Thêm mca ng dt bng d liu Tđin vào d liu 2 ChooseDictionary Chọn một bộ dữ liệu Từđiển để sử dụng 3 DeleteDictionary Loi b mt b d liu Tđin ra khi d

liệu của ứng dụng

4 SearchMeanings Tìm kichun khác nhau ếm nghĩa ca mt t theo các tiêu 5 Pronounce Phát âm từđược chọn

6 PartOfSpeechFilter Lọc danh sách các từ hiển thị theo loại từ

7 Click&See Tra nghnhau ĩa ca t trên các ng dng khác 8 Click&Hear Đọng dc t hay ng khác nhau đon văn được chn trong các 9 NextWord Tra cứu lại từđã tra sau đĩ.

10 PreviousWord Tra cứu lại từđã tra trước đĩ.

11 NextPage Di chuyn đến trang kế tiếp trong danh sách các từđược hiển thị

12 PreviousPage Di chuycác tđượn c hiđến trang trn th ước trong danh sách 13 ChangeSettings dThay n đếđồn các bi các thơng s d liu T hin thđin đường

Bảng 7.2: Danh sách các Use case chính

7.1.2 Đặc tả một số Use-Case chính 7.1.2.1 Đặc tả Use-Case “AddDictionary”

7.1.2.1.1 Tĩm tắt

Use-Case này cho phép người sử dụng thêm vào một bộ dữ liệu Từđiển mới.

Ứng dụng cĩ thể cĩ nhiều bộ từ dữ liệu Từđiển khác nhau.

7.1.2.1.2 Dịng sự kiện

7.1.2.1.2.1 Dịng sự kiện chính

1. Use case này bắt đầu khi người sử dụng chọn chức năng quản lý Từđiển. 2. Người sử dụng chọn chức năng quản lý Từđiển.

KHOA CNTT –

ĐH KHTN

53 4. Người dùng nhấn nút chọn tập tin Từđiển. 5. Hệ thống hiển thị hộp thoại chọn tập tin Từđiển. 6. Người dùng chọn tập tin Từđiển.

7. Hệ thống hiện ra tên tập tin Từđiển được chọn.

8. Người dùng nhấn nút OK xác nhận việc chọn Từđiển.

9. Hệ thống trở về hộp thoại quản lý Từđiển và hiện các thơng tin về Từđiển

được chọn.

10. Người dùng nhấn nút OK để chấp nhận sử dụng bộ Từđiển được chọn. 11. Hệ thống thêm bộ Từđiển vừa được chọn vào danh sách các Từđiển và trở

về màn hình chính.

7.1.2.1.2.2 Các dịng sự kiện khác

Người dùng chưa chn tp tin Tđin

Nếu người dùng chưa chọn tập tin Từđiển nào mà xác nhận việc chọn Từđiển thì hệ thống sẽ yêu cầu người dùng chọn tập tin Từđiển.

Người dùng khơng xác nhn vic chn Tđin

Nếu người dùng khơng xác nhận việc chọn Từ điển thì hệ thống sẽ khơng thêm bộ dữ liệu đã chọn và kết thúc Use case.

7.1.2.1.3 Các yêu cầu đặc biệt

Khơng cĩ.

7.1.2.1.4 Điều kiện tiên quyết

Khơng cĩ.

7.1.2.1.5 Điều kiện kết thúc

Nếu Use case thực hiện thành cơng thì một bộ dữ liệu sẽ được thêm vào dữ

liệu của ứng dụng.

7.1.2.1.6 Điềm mở rộng

KHOA CNTT –

ĐH KHTN

54

7.1.2.2 Đặc tả Use-Case “SearchMeanings”

7.1.2.2.1 Tĩm tắt

Use-Case này cho phép người sử dụng tra nghĩa của từ. Người sử dụng cĩ thể

tra nghĩa theo 3 mức độ:

• Biết chính xác từ muốn tra.

• Chỉ nhớ một vài ký tự trong từ muốn tra.

• Chỉ nhớ một vài từ trong cụm từ muốn tra.

7.1.2.2.2 Dịng sự kiện

7.1.2.2.2.1 Dịng sự kiện chính

1. Người sử dụng nhập vào từ muốn tra hoặc chọn từ muốn tra trong danh sách các từ cĩ trong Từđiển.

2. Người sử dụng chọn một trong ba mức độ: tra từ chính xác (ExactSearch), tra từ tương đối (WildcardSearch), tra cụm từ cĩ cĩ chứa vài từđã biết (PhraseSearch).

3. Người sử dụng nhấn nút tìm kiếm, hệ thống sẽ thực hiện 1 trong 3 dịng sự

kiện phụ sau:

Nếu người sử dụng chọn mức độ tra từ chính xác thì thực hiện dịng sự kiện phụ “ExactSearch”.

Nếu người sử dụng chọn mức độ tra từ tương đối thì thực hiện dịng sự kiện phụ “WildcardSearch”.

Nếu người sử dụng chọn mức độ tra tra cụm từ cĩ cĩ chứa vài từ đã biết thì thực hiện dịng sự kiện phụ “PhraseSearch”.

ExactSearch

1. Hệ thống xác nhận kiểu tra từ chính xác được sử dụng.

2. Hệ thống tìm trong tập tin dữ liệu từ cần tra một cách chính xác. 3. Hệ thống xuất nghĩa của từ cần tra ra màn hình.

KHOA CNTT –

ĐH KHTN

55

1. Hệ thống xác nhận kiểu tra từ tương đối được sử dụng.

2. Hệ thống tìm trong tập tin dữ liệu từ cần tra một cách tương đối theo các qui

định sau:

o “?”: thay thế cho một ký tự. o “*”: thay thế cho một chuỗi ký tự. 3. Hệ thống hiển thị danh sách các từ tìm được.

4. Người sử dụng chọn trong danh sách từ muốn tra nghĩa. 5. Hệ thống xuất nghĩa của từ cần tra ra màn hình.

PhraseSearch

1. Hệ thống xác nhận kiểu tra từđược sử dụng.

2. Hệ thống tìm trong tập tin dữ liệu từ các cụm từ cĩ chứa các từđược nhập vào.

3. Hệ thống hiển thị danh sách các cụm từ tìm được. 4. Người sử dụng chọn cụm từ muốn tra trong danh sách. 5. Hệ thống xuất nghĩa của cụm từ cần tra ra màn hình.

7.1.2.2.2.2 Các dịng sự kiện khác

T nhp vào khơng cĩ trong Tđin

Nếu hệ thống tìm khơng thấy từ do người dùng nhập vào thì sẽ xuất thơng báo

Một phần của tài liệu XÂY DỰNG ỨNG DỤNG TỪ ĐIỂN TRÊN POCKET PC (Trang 51 -51 )

×