Để 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 Lớn nhất Nhỏ nhất 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 Giới thiệu ứng dụng Từ điển “CSPocketDict” 6.1 Yêu cầu của người sử dụng
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 chức năng của ứng dụng
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 mcủa ứng dột bụng ộ dữ liệu Từđiển vào dữ liệu 2 ChooseDictionary Chọn một bộ dữ liệu Từđiển để sử dụng 3 DeleteDictionary Loại bỏ một bộ dữ liệu Từđiển ra khỏi dữ
liệu của ứng dụng
4 SearchMeanings Tìm kichuẩn khác nhau ếm nghĩa của một 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 của từ trên các ứng dụng khác 8 Click&Hear Đọứng dc từụ hay ng khác nhau đoạn văn được chọn 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 chuyển đế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 trển thị ước trong danh sách 13 ChangeSettings dThay ẫn đếđồn các bi các thơng sộ dữ liệốu T hiừển thđiểịn và đườ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 chọn tập tin Từđiển
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 nhận việc chọn Từđiển
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ừ nhập vào khơng cĩ trong Từđiển
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