So sánh các phương pháp chỉmục

Một phần của tài liệu Một số vấn đề liên quan đến Search Engine ứng dụng trong Text (Trang 56)

2. Các phương pháp chỉmục

2.4 So sánh các phương pháp chỉmục

2.4.1 Mảng tiếp tố(SA) và chỉ mục tệp đảo(IF)

Inverted file Suffix Array

Tìm kiếm không cần file text nguyên thủy Cần Không

Thời gian xây dựng index Nhanh Chậm

Cập nhậtthêm chỉ mục Dễ Khó Nén Dễ Khó Tìm kiếm cụmtừ Khó Dễ Tìm kiếm gần đúng Khó Dễ Chỉ mục từ Dễ Dễ Chỉ mục ký tự Khó Dễ Bảng 3.7: Bảng so sánh giữa SA và IF _

Tìm kiếm không cần file text gốc. File đảo không cần file text gốc để tìm kiếm, trong khi Mảng tiếp tố thì phải có. IF sẽkhông tốn không gian lưu trữnhưlà SA

Thời gian xây dựng index. IF cần O.n. thời gian để xây dựng, trong khi SA cần tới O.n.logn. Nhưvậy, IF cóthể tạo đượcchỉ mụcqua việc đọc tuần tự file text gốcvà SA cần tới việc truy cậpngẫu nhiên toàn bộ file gốcO.n.logn lần.

Cập nhật chỉ mục. Khi 1 từ mới được thêm vào, IF được cập nhật rất dễ dàng, từ mới và vị trí xuất hiện được thêm vào IF. Nhưng SA phải khởi tạo lại toàn bộ.

Nén: IF nén hiệu quả hơn, SA khó khăn khi thực hiện nén bởi vì chỉ số của SA

được sắp xếp ngẫu nhiên.

Tìm kiếm cụm từ: IF cho phép tìm kiếm theo cụm từ(được hiểu là tìm 2 hoặc nhiều hơn các từ khóa ghép lại với nhau) và yêu cầu này rất tốn nguồn lực vì phải liên kết các danh sách xuất hiện từ khóa với nhau. Ngược lại, việc tìm kiếm cụm từ ở SA lại rất hiệu quả và không tốn thêm việc xử lý nào.

Tìm kiếm gần đúng. IF cho phép tìm kiếm gần đúng những phép tìm không hoàn toàn chính xác. Tuy nhiên việc tìm kiếm sẽ rất khó khăn nếu phép tìm có nhiều hơn 2 từ lỗi. Ngược lại, SA có thể giải quyết vấn đề này hiệu quả hơn nhờ phương pháp của Yamashita.

Chỉ mục theo từ. Cả IF và SA đều phù hợp cho việc đánh chỉ mục theo từ.

Chỉ mục theo ký tự. SA rất thích hợp cho việc chỉ mục theo ký tự còn IF không thích hợp và rất khó thực hiện.

Tóm lại, IF phù hợp cho việc khai thác (tìm kiếm) thông tin đơn giản. SAphù hợp cho các ứng dụng xử lý text khác nhưxử lý ngôn ngữ tự nhiên dựa trên dữ liệu lớn.[6]

2.4.2 IFID và SFID

Phương pháp chỉ mục tệp đảo IFID và chỉ mục tệp ký số SFID là hai phương pháp chỉ mục chính tài liệu trong DL.

Các SF có thể tạo ra những truy cập không cần thiết tới văn bản chính bởi vì các so khớp sai, nhưng chúng có thể được giảm một phần không đáng kể nếu ký số là đủ lớn và một số bit thích hợp được cài đặt đối với từng thuật ngữ. Tuy nhiên, nghĩa là số bitslice cực tiểu nào đó -điển hình là 6đến 12 m- phải luôn luôn được tìm kiếm, nhưvậy, có một cân bằng tinh tế giữa truy cập bitslice và truy cập so khớp sai. Tương phản, nếu IL được truy cập theo độ dài tăng lên và từ vựng của CSDLđược điều khiển trong bộ nhớ chính thì một sơđồ IF yêu cầu truy cập đĩa tổng cộng không nhiều hơn so với một sơđồ bitslice ngoại trừ một ít trường hợp không hợp lý. Hơn nữa, các thao tác SF trở nên phức tạp nếu phép tuyển và phép phủ định được cho phép, SF không thể được sử dụng để trợ giúp các truy vấn xếp

hạng hoặc không hình thức. SF có thể đặc biệt tai hại nếu độ dài bản ghi thay đổi nhiều.

Đối với lựa chọn tham số điển hình, SFID lớn hơn 2đến 3 lần IFID nén.

Hai hạn chế của hiệu năng SF - tốc độ chậm và kích thước yêu cầu chỉ mục lớn hơn - tạo ra một luận cứ đầy đủ ủng hộ IF nén đối với các ứng dụng bao gồm CSDL văn bản .

Ưuđiểm lớn của SF là không cần duy trì một từ vựng trong bộ nhớ khi xử lý truy vấn. Ở một CSDLvới một vốn từ rất giàu, một IFID phải yêu cầu một từ vựng, phần đáng kể của tổng kích thước chỉ mục và nếu truy cập nhanh được yêu cầu, từ vựng này cần được điều khiển trong bộ nhớ.Giả sử một IF nhưng với từ vựng trên

đĩa là một truy cập đĩa phụ cho từng thuật ngữ truy vấn; nếu các truy vấn điển hình có trên mười hoặc trăm thuật ngữ, IF có thể yêu cầu truy cập đĩa nhiều hơn so vớI SF vì nó không bao giờ cần tìm kiếm nhiếu hơn một bitslice cho từng thuật ngữ trên các truy vấn SF nhiều thuật ngữ để làm giảm tỷ suất so với so khớp sai tới mức có thể chịu đựng được. Nhưvậy, khi từ vựng quá lớn đối với một bộ nhớ chính, SF có thể yêu cầu chỉ một nửa truy cập đĩa của một IF.

Ở một số trường hợp, SF yêu cầu thời gian bộ xử lý nhỏ hơn trong khi giải quyết các truy vấn hội so với IF nén, đặc biệt là nếu phần cứng chuyên dụng có sẵn

để thực hiện bitslice và các phép toán. Nhưng các trường hợp này không có khả năng tăng thêm trong thực tế. Chẳng hạn , đối với một truy vấn Boole xây dựng từ 33 thuật ngữ thông thường nhất trong TREC, một cỏ chế IF nén phải giải mã gần 15 triệu số tài liệu, tốn 10 giây về thời gian xử lý. Ở truy vấn giống nhau, SFID đơn giản tìm kiếm và cộng đồng thời hầu hết 33 bitslice, mỗi một trong khoảng 91KB.

Điều này là nhanh hơn nhiều, nhiều nhất là một ít giây.

SF có thể thích hợp ở các ứng dụng trong đó độ dài bản ghi bị ràng buộc và vốn từ rất lớn, hoặc trong đó nhiều truy vấn bao gồm cac thuật ngữ thông thường.

Tuy nhiên, so vớI IF nén, SF không làm giảm không gian chỉ mục nhưthường

đòi hỏi, chúng không đưa ra cách giải quyết nhanh hơnđối với các truy vấn hội điển hình. Hơn nữa, chúng xử lý kém với truy vấn không hội, không đưa ra ưuđiểm đặc biệt nào đối với CSDL động và đòi hỏi các tài nguyên tương tự hoặc hơn trong khi tạo lập CSDL.

Các tổ hợp lai của IF và SF được đưa ra, trong đó phương pháp chỉ mục đối với mỗi một thuật ngữ dựa trên tần suất của thuật ngữ. Đề xuất khác là lưu trữ một IFđầyđủ và từ đó, lấp đầy không gian đĩa còn lại bằng bitvector trên một đĩa chỉ cho phépđọc, mặt khác không gian không bị lãng phí. Dù cho các sơđồ lai nhưthế hoá rađề nghị phương án tốt nhất của cả hai phương pháp, tìm kiếm trở nên cài dặt phức tạp hơn. Hơn nữa, một sơđồ nén phù hợp tránh tất cả suy xét này ví các thuật ngữ thông thường được lưu trữ rất cô đặc.

Tóm lại, quy luật chỉ mục tài liệu trong CSDL là:

Ở hầu hết ứng dụng, IF thực hiện tốt hơn SF trong phạm vi của cả hai kích thước chỉ mục và tốc độ truy vấn. IF nén chắc chắn là phương pháp chỉ mục hữu ích nhất trong một CSDL lớn các tài liệu văn bản có thể thay đổi được. [1]

Chương 4: TRIỂN KHAI SE TIẾNG VIỆT TRONG ORACLE TEXT

Một phần của tài liệu Một số vấn đề liên quan đến Search Engine ứng dụng trong Text (Trang 56)