Mô hình tìm kiếm thông tin Bool

Một phần của tài liệu tìm kiếm văn bản theo nội dung và ứng dụng (Trang 30 - 66)

Mô hình Boolean hình thành trên cơ sở lý thuyết tập hợp và đại số Boolean. Các mô hình Boolean là mô hình đầu tiên truy tìm thông tin. Ví dụ, thuật ngữ truy vấn “kinh tế” chỉ đơn giản là xác định các tập của tất cả các tài liệu được lập chỉ mục với thuật ngữ “kinh tế”. Sử dụng các toán tử logic toán học George Boole, thuật ngữ truy vấn và các tập tài liệu tương ứng có thể được kết hợp để hình thành tập tài liệu mới. Boole đã xác định ba toán tử cơ bản: AND, OR, NOT. Kết hợp các thuật ngữ với toán tử AND sẽ định nghĩa một tài liệu là một tập mà nhỏ hơn hoặc bằng các tập tài liệu của bất kỳ các thuật ngữ. Ví dụ, truy vấn “xã hội” AND “kinh tế” sẽ sản xuất tập các tài liệu được lập chỉ mục cả với thuật ngữ “xã hội” và thuật ngữ “kinh tế”, tức là giao của cả hai tập. Kết hợp các thuật ngữ với toán tử OR sẽ định nghĩa một tài liệu là một tập lớn hơn hoặc bằng các tập tài liệu của bất kỳ các thuật ngữ. Vì vậy, truy vấn “xã hội” OR “chính trị” sẽ sản xuất tập các tài liệu được lập chỉ mục với một trong hai thuật ngữ “xã hội” hoặc thuật ngữ “chính trị”, hoặc cả hai, tức là sự kết hợp của cả hai tập. Điều này được mô tả ở hình 2.1, trong đó mỗi tập tài liệu được mô tả bằng một đĩa, các tập truy tìm được mô tả bởi các khu vực bóng mờ. Đối với người dùng chưa qua đào tạo, mô hình có một số nhược điểm rõ ràng. Nhược điểm chính của nó là nó không cung cấp một bảng xếp

hạng lấy tài liệu. Ví dụ, truy vấn “xã hội” AND “người lao động” AND “công đoàn” sẽ không truy tìm một tài liệu được lập chỉ mục với “bữa tiệc”, “sinh nhật” và “bánh”, nhưng tương tự như vậy sẽ không truy tìm một tài liệu được lập chỉ mục với “xã hội” và “người lao động” mà thiếu thuật ngữ “công đoàn”.

Xã hội Chính trị Xã hội Chính trị Xã hội Chính trị

Kinh tế Kinh tế Kinh tế

X ã h ộ i A N D K i n h t ế X ã h ộ i OR Chính trị Xã hội OR Chính trị) AND NOT

(Xã hội AND Kinh tế)

Hình 2.1 Mô tả các sự kết hợp của Boolean

Trong mô hình tìm kiếm Bool, tài liệu được lập chỉ mục bởi tập các từ khoá. Các truy vấn được đại diện bởi một tập từ khoá kết nối với tập phép toán Bool để thể hiện mối quan hệ giữa các thuật ngữ truy vấn.

Quy tắc truy tìm kiếm như sau:

- Toán tử OR: Xem xét hai thuật ngữ đồng nghĩa. Ví dụ, cho trước câu truy vấn (term1 OR term2) thì hiện diện của một trong hai thuật ngữ trong bản ghi (hay trong tài liệu) đủ để đáp ứng truy tìm bản ghi này.

- Toán tử AND: Tổ hợp các thuật ngữ (hay từ khóa) vào một câu thuật ngữ. Vậy, truy vấn (term1 AND term2) chỉ ra cả hai thuật ngữ phải hiện diện trong tài liệu để đem lại kết quả là tìm thấy.

- Toán tử NOT: Là hạn chế hay thuật ngữ hẹp, thông thường nó được sử dụng với toán tử AND. Câu truy vấn (term1 AND NOT term2) dẫn tới truy tìm bản ghi có term1 nhưng không có term2.

2.1.2 Cấu trúc tệp chỉ mục

Một trong các vấn đề cơ bản trong thiết kế hệ thống IR là quyết định sử dụng loại cấu trúc tệp nào để lưu trữ CSDL tài liệu. Cấu trúc tệp sử dụng trong các hệ thống IR bao gồm các tệp phẳng (không chỉ mục, tìm kiếm trên cơ sở text-pattern), tệp mục lục (inverted), tệp chữ ký (các mẫu bit làm đại diện tài liệu) và các tệp khác như cây PAT và đồ thị.

Với quan điểm tệp phẳng, một hay nhiều tài liệu lưu trữ trong tệp, thông thường trong mã ASCII hay EBCDIC. Không chỉ mục tài liệu. Tìm kiếm tệp phẳng thông qua tìm kiếm mẫu. Trong UNIX, khi lưu trữ tập hợp các tài liệu người ta lưu trữ mỗi tài liệu trong một tệp, trong danh mục. Các tệp này có thể tìm kiếm nhờ các công cụ tìm kiếm theo mẫu như “grep”, “awk”. Tiệm cận này không hiệu quả vì mỗi lần truy vấn thì toàn bộ tập hợp tài liệu phải được duyệt để tìm ra mẫu văn bản.

Các tệp chữ ký (signature files): chứa các chữ ký (mẫu bit) đại diện cho tài liệu. Có nhiều cách để sinh chữ ký tài liệu. Câu truy vấn được đại diện bởi chữ ký mà nó sẽ được so sánh với chữ ký tài liệu trong khi truy tìm.

Cách sử dụng chung nhất là tệp mục lục (inverted). Đó là loại tệp chỉ mục. Những nội dung cơ bản về tệp mục lục được trình bày dưới đây:

Các tệp mục lục (Inverted Files)

Trong tệp mục lục, chỉ mục được xây dựng cho mỗi thuật ngữ để lưu trữ chỉ danh (ID) bản ghi cho toàn bộ bản ghi chứa thuật ngữ này. Một đầu vào tệp mục lục thông thường chứa từ khóa (thuật ngữ) và một số ID tài liệu. Mỗi từ khóa và các ID tài liệu (mà nó chứa từ khóa) được tổ chức thành một hàng.

Ví dụ tệp mục lục như sau:

Term1: Record1, Record3 Term2: Record1, Record2

Term3: Record2, Record3, Record4

Term4: Record1, Record2, Record3, Record4

Trong đó:

Termi (i = 1, 2, 3, 4) là số ID của chỉ mục thuật ngữ chỉ mục i.

Recordi (i = 1, 2, 3, 4) là số ID của bản ghi i hay tài liệu i.

Dòng 1 có nghĩa rằng Record1Record3 chứa Term1. Các dòng khác có ý nghĩa tương tự. Sử dụng tệp mục lục, việc tìm kiếm sẽ được thực hiện nhanh chóng. Không cần phải tìm kiếm mọi bản ghi trong CSDL mà chỉ truy tìm các hàng có chứa thuật ngữ tìm kiếm.

Quy tắc tìm kiếm bằng mô hình Bool trên cơ sở các tệp mục lục như sau:

- Truy vấn AND: Ví dụ (Termi AND Termj). Sinh danh sách trộn hàng i với hàng j trong tệp mục lục và mọi bản ghi đều chứa TermiTermj sẽ là kết quả truy tìm ở đầu ra. Áp dụng tệp mục lục trên:

+ Với câu truy vấn (Term 1 AND Term 3) cho kết quả là Record3. + Với câu truy vấn (Term 1 AND Term 2) cho kết quả là Record1. + Với câu truy vấn (Term 2 AND Term 3) cho kết quả là Record2. - Truy vấn OR: Ví dụ (Termi OR Term j). Sinh danh sách trộn cho hàng i và

hàng j, mọi mục trong danh sách trộn là đầu ra kết quả. Áp dụng tệp mục lục trên: (adsbygoogle = window.adsbygoogle || []).push({});

+ Với truy vấn (Term1 OR Term2) cho kết quả là Record1, Record2

Record3.

+ Với truy vấn (Term1 OR Term3) cho kết quả là Record1, Record2,

 Truy vấn NOT: Ví dụ (Termi AND NOT Termj) sẽ cho kết quả là các mục xuất hiện trong hàng i nhưng không trong hàng j.

Áp dụng tệp mục lục trên:

+ Với truy vấn (Term4 AND NOT Term1) cho kết quả là Record2, Record4. + Với truy vấn (Term1 AND NOT Term4) cho đầu ra là rỗng.

+ Với truy vấn (Term1 AND NOT Term2) cho kết quả là Record3.

Mở rộng thao tác tệp mục lục

Cho đến thời điểm hiện tại ta đã bỏ qua hai yếu tố quan trọng khi chỉ mục và truy tìm tài liệu, đó là vị trí của các thuật ngữ và ý nghĩa các thuật ngữ (trọng lượng thuật ngữ) trong tài liệu. Trong các truy vấn AND, mọi bản ghi chứa cả hai thuật ngữ được tìm thấy, không quan tâm đến vị trí của chúng trong tài liệu. Các thuật ngữ có tầm quan trọng như nhau, không quan tâm đến tần số xuất hiện trong tài liệu. Để nâng cao hiệu quả truy vấn, hai yếu tố này cần được xem xét.

Các quan hệ đặc tả giữa hai hay nhiều thuật ngữ được tăng cường bằng cách bổ sung các tham số “tính gần kề” vào đặc tả truy vấn. Khi tham số gần kề được bổ sung, chủ điểm được xác định cụ thể hơn, tính phù hợp của mục truy vấn được sẽ cao hơn.

Hai tham số thuộc nhóm này có thể là đặc tả “within sentence” và “adjacency”:

 (Termi within sentence Termj) có nghĩa rằng thuật ngữ i và thuật ngữ j cùng xuất hiện trong câu của bản ghi vừa tìm ra.

 (Termi adjacency Termj) có nghĩa các thuật ngữ i và j xuất hiện liền kề trong các tài liệu tìm ra.

lục. Cấu trúc tổng quát của file này sẽ như sau:

Termi: Record no., Paragraph no., Sentence no., Word no.

Ví dụ, nếu tệp mục lục có các đầu vào sau:

information: R25, 7, 5, 2; R77, 15, 15, 6, 3;R99, 6, 3, 1

retrieval: R55, 8, 4, 2; R25, 7, 5, 4; R99, 10, 2, 5

thì kết quả truy vấn (information within sentence retrieval) là 25

Trong ví dụ trên, các thuật ngữ “information” và “retrieval” xuất hiện trong cùng câu R25 của tài liệu. Mặt khác, dù R99 đều chứa cả hai thuật ngữ này nhưng lại ở vị trí khác nhau của tài liệu, do vậy truy vấn không cho lại kết quả (không phải là “information retrieval”). Có thể hai thuật ngữ này được sử dụng trong các ngữ cảnh khác nhau.

2.1.3 Chỉ mục tự động

Đa số ngôn ngữ tự nhiên có những từ chức năng, những liên từ, giới từ xuất hiện với số lượng lớn trong các tài liệu và điển hình là ít được sử dụng trong việc xác định các tài liệu thoả mãn thông tin tìm kiếm. Các từ như vậy (ví dụ a, an, the, of trong tiếng Anh) được gọi là từ dừng (stopword).

Những từ dừng phổ biến như sau:

a although anyone

about always anything

across among anywhere

after amongst are

afterward an around

again and as

against another at (adsbygoogle = window.adsbygoogle || []).push({});

also anyhow become

Trong quá trình lập chỉ mục, một tài liệu đã được xử lý là một danh sách các từ mà những từ dừng đã được loại bỏ khỏi danh sách. Các từ và từ khoá còn lại được tiếp tục xử lý để cải thiện chỉ mục, nâng cao hiệu quả tìm kiếm.

Stemming (từ gốc) hay conflating là phương thức hỗ trợ sự phù hợp của một thuật ngữ truy vấn với biến đổi hình thái trong kho dữ liệu.

Trong tiến trình chỉ mục, tài liệu được coi như danh sách các từ, các từ dừng được loại khỏi danh sách. Các thuật ngữ hay từ còn lại được xử lý tiếp để nâng cao hiệu quả chỉ mục và truy tìm. Các thao tác chung nhất thực hiện trên các thuật ngữ này là tìm từ gốc (stemming), tìm từ đồng nghĩa và xác định trọng số.

Với stemming, tệp chỉ mục sẽ đầy đủ hơn và việc truy tìm thông tin sẽ hiệu quả hơn. Recall thông tin sẽ được nâng cao bởi vì gốc từ (root) tổng quát hơn và nhiều tài liệu liên quan sẽ được tìm ra để đáp ứng câu truy vấn. Nhưng

precision có thể giảm vì thuật ngữ gốc từ ít tính cụ thể.

Các thuật ngữ chỉ mục khác nhau có các tần số xuất hiện và tầm quan trọng khác nhau trong tài liệu. Chú ý rằng tần số xuất hiện của các thuật ngữ sau khi thực hiện stemming và thực hiện thesaurus sẽ là tổng tần số của mọi biến đổi (variantions). Ví dụ, tần số khái niệm “retriev” sẽ là tổng tần số xuất hiện của các thuật ngữ “retrieve”, “retrieval”, “retrieving” và “retrieved”. Việc đề xuất các trọng số “thuật ngữ quan trọng” cho thuật ngữ tài liệu và thuật ngữ câu truy vấn có thể giúp phân biệt mức độ quan trọng của các thuật ngữ trong kết quả tìm kiếm. Khi bổ sung trọng số cho các thuật ngữ trong tệp mục lục, các tài liệu khác nhau với tính tương đồng khác nhau có thể xếp hạng theo dãy thứ tự độ tương đồng giảm dần, vào thời điểm truy vấn.

Term1: R1, 0.3; R3, 0.5; R6, 0.8; R7, 0.2; R11, 1 Term2: R2, 0.7; R3, 0.6; R7, 0.5; R9, 0.5

Term3: R1, 0.8; R2, 0.4; R9, 0.7

Dòng đầu tiên có nghĩa rằng trọng số của thuật ngữ 1 là 0.3 trong bản ghi 1, 0.5 trong bản ghi 3, 0.8 trong bản ghi 6, 0.2 trong bản ghi 7 và 1 trong bản ghi 11. Tương tự trong các dòng khác.

Các thao tác Bool với trọng số thuật ngữ có thể thực hiện như sau:

- Truy vấn OR: Trọng số cao hơn giữa các bản ghi chứa các thuật ngữ truy vấn được sử dụng làm độ tương đồng giữa câu truy vấn và tài liệu. Danh sách kết quả xếp theo thứ tự độ tương đồng giảm dần.

Ví dụ, truy vấn (Term2 OR Term3) có thứ tự đầu ra là R1 (0.8), R2 (0.7), R9 (0.7), R3 (0.6) và R7 (0.5).

- Truy vấn AND: Trọng số thấp hơn giữa các bản ghi chung, phù hợp thuật ngữ truy vấn được sử dụng làm độ tương đồng giữa câu truy vấn và tài liệu. Ví dụ, truy vấn (Term2 AND Term3) có thứ tự đầu ra là R9(0.5) và R2(0.4).

- Truy vấn NOT: Độ tương đồng giữa câu truy vấn và các tài liệu là khác nhau giữa các đầu vào trong tệp mục lục.

Ví dụ, truy vấn (Term2 AND NOT Term3) có thứ tự đầu ra là R3(0.6), R7(0.5) và R2(0.3).

Việc sắp xếp kết quả cho lại theo thứ tự rất quan trọng vì những mục đầu tiên phải là có ích nhất cho người sử dụng. Họ chỉ cần quan sát vài mục đầu tiên thay cho duyệt toàn bộ kết quả.

Việc gán các thuật ngữ chỉ mục cho tài liệu và câu truy vấn để phân biệt các tài liệu mà người sử dụng quan tâm với các tài liệu khác.

Trong một tài liệu cụ thể, thuật ngữ nào xuất hiện thường xuyên hơn thì nó quan trọng hơn, nên nó có trọng số lớn hơn.

Trong ngữ cảnh tập hợp toàn bộ tài liệu, nếu thuật ngữ xuất hiện hầu hết trong các tài liệu thì nó không phải là lựa chọn tốt làm thuật ngữ chỉ mục vì nó không giúp phân biệt các tài liệu người sử dụng quan tâm với tài liệu khác.

Do vậy, thuật ngữ được chỉ mục tốt là thuật ngữ xuất hiện thường xuyên trong vài tài liệu nhưng không xuất hiện trong các tài liệu khác. Khi gán trọng số thuật ngữ, cần phải quan tâm đến cả hai: tần số thuật ngữ (tfij) và tần số tài liệu (dfj). Công thức chung để tính trọng số thuật ngữ là:

Wij = tfij * log (N/dfj) Trong đó:

+ Wij là trọng số của thuật ngữ j trong tài liệu i. + tfij là tần số của thuật ngữ j trong tài liệu i. + N là tổng số tài liệu trong tập hợp.

+ dfj là số tài liệu chứa thuật ngữ j.

Trọng số trên đây tỷ lệ với tần số thuật ngữ và tỷ lệ nghịch với tần số tài liệu, công thức này thường được gọi là tf.idf.

Trên cơ sở công thức trên, nếu thuật ngữ xuất hiện trong toàn bộ tài liệu (dfj = N) thì trọng số của thuật ngữ bằng 0 (thuật ngữ không thể sử dụng làm thuật ngữ chỉ mục vì thuật ngữ này không có khả năng phân biệt tài liệu). Mặt khác, nếu thuật ngữ xuất hiện thường xuyên chỉ trong vài tài liệu, trọng số của thuật ngữ sẽ rất cao (nó làm thuật ngữ chỉ mục tốt).

2.1.4 Tổng kết về chỉ mục tự động tài liệu

Mục tiêu của làm chỉ mục là tìm ra các thuật ngữ tốt nhất để đại diện tài liệu sao cho các tài liệu được truy tìm chính xác trong tiến trình truy vấn. Tiến trình chỉ mục tự động bao gồm các bước sau:

- Nhận biết các từ trong tiêu đề, tóm tắt, hoặc/và tài liệu. - Loại bỏ từ dừng.

- Nhận biết các từ đồng nghĩa bằng tham khảo từ điển đồng nghĩa. Mọi thuật ngữ có ý nghĩa tương tự sẽ thay thế bằng từ chung. (adsbygoogle = window.adsbygoogle || []).push({});

- Tìm gốc (stem) các từ bằng thuật toán loại bỏ các tiền tố và hậu tố (suffixprefix).

- Đếm tần số stem trong mỗi tài liệu

- Tính toán trọng số các thuật ngữ hay từ gốc.

- Tạo tệp mục lục trên cơ sở các thuật ngữ và trọng số nói trên

2.2. Tìm kiếm văn bản trên cơ sở mô hình không gian vector

Khái niệm mô hình truy tìm Bool đơn giản và được sử dụng trong hầu hết các hệ thống thương mại. Tuy nhiên tương đối khó hình thành các câu truy vấn Bool và kết quả truy vấn rất nhạy cảm với công thức truy vấn. Trọng số thuật ngữ truy vấn thường không được sử dụng vì các câu truy vấn thường rất ngắn. Để tránh vấn đề này, các mô hình truy tìm khác như không gian véctơ được sử dụng thay thế. Mô hình không gian véctơ giả sử rằng tồn tại tập cố định các thuật ngữ chỉ mục để đại diện tài liệu và câu truy vấn. Tài liệu Di và câu truy vấn Qj được biểu diễn như hai véc tơ:

Di = [Ti1, Ti2,..., Tik, ... , TiN] Qj = [Qj1, Qj2,..., Qjk, ... , QjN]

Trong đó, Tik là trọng số của thuật ngữ k trong tài liệu i, Qjk là trọng số của thuật ngữ k trong truy vấn j, và N là tổng số thuật ngữ sử dụng trong các tài liệu và truy vấn. Các trọng số thuật ngữ Tik và Qjk có thể là nhị phân (1

Một phần của tài liệu tìm kiếm văn bản theo nội dung và ứng dụng (Trang 30 - 66)