Phõn tớch cỳ phỏp truy vấn

Một phần của tài liệu THIẾT KẾ CÁC CÔNG CỤ TÌM KIẾM THÔNG TIN TRÊN MẠNG (Trang 80 - 82)

4. Nội dung luận văn

3.2.2Phõn tớch cỳ phỏp truy vấn

Ta sẽ sử dụng phộp đệ qui Top - Down để phõn tớch một truy vấn. Cỳ phỏp chuẩn của truy vấn cú dạng:

query: query optional_relop meta

| meta

meta: meta_name = primary

| primary meta_name: word primary: '(' query ')' | 'not' meta | word | word* optional_relop: 'and' | 'or' | (empty)

Tuy nhiờn, ta nhận thấy rằng sản xuất của truy vấn này là đệ qui trỏi và sẽ khụng làm việc tốt trờn phương phỏp phõn tớch Top - Down, do đú ta phải viết nú dưới dạng đệ qui phải như sau:

query: meta rest

rest: optional_relop meta rest | ( empty )

Do người sử dụng luụn luụn đưa và truy vấn dưới dạng ngụn ngữ tự nhiờn, điều đú cú thể làm cho chương trỡnh của chỳng ta lặp vụ hạn hoặc đưa ra kết quả khụng mong muốn, do đú trước khi phõn tớch cỳ phỏp của truy vấn ta phải chuẩn húa xõu truy vấn đề dạng chuẩn. Cỏc bước đú cú thể được tiến hành như sau:

* Phõn tớch từ tố xõu truy vấn:

+ Nhận dạng cỏc từ tố bởi dấu cỏch hoặc cỏc kớ tự đặc biệt (vớ dụ như“ ( )= ”, riờng đối với cụm từ thỡ cỏc từ chỉ cỏch nhau bởi dấu cỏch.

+ Nếu từ tố là tờn Meta thỡ kiểm tra xem Meta đú cú nằm trong bảng Meta khụng.

+ Chuyển cụm phộp toỏn logic “ (and)n not ” trở thành “not”, vớ dụ như ( mouse and not computer ) sẽ trở thành ( mouse not computer ).

+ Chuẩn húa cỏc từ trong truy vấn, cú nghĩa là ta thực hiện stemming, bỏ qua cỏc kớ tự vụ nghĩa ở đầu hoặc ở cuối, …v…v.

+ Loại bỏ một số từ vụ nghĩa trong truy vấn ( những từ nằm trong Stopword ).

+ Xử lớ cỏc cụm từ nằm trong truy vấn, vớ dụ như :

/ “ Computer Science / ” sẽ trở thành ( Computer Science ), dấu gạch chộo được dựng để nhận ra đõy là một cụm từ cần tỡm.

+ Đặt thờm dấu ngoặc vào vị trớ thớch hợp xung quanh một truy vấn Meta, vớ dị như “Author = Red and Computer” sẽ trở thành( Author = Red ) and Com puter.

Xử lớ phộp toỏn logic “ Not ”, cú hai trường hợp xảy ra với toỏn hạng này.

+ Trường hợp 1: (Word1 Not Word2) sẽ được chuẩn húa thành (Word1 And_ Not Word2).

Với cỏch phõn cũ, ta cú phõn tớch truy vấn như sau: Cú kết quả chứa Word1

Cú kết quả chứa Word2

Phủ định kết quả chứa từ Word2, và giao hai danh sỏch kết quả với nhau (nếu chỳng ta cú 100 000 tài liệu mà Word2 chỉ nằm trong 3 tài liệu thỡ điều này đũi hỏi chỳng ta phải đọc qua 99997 tài liệu)

Với cỏch mới ta chỉ việc thực hiện như sau:

Cú kết quả chứa Word1 Cú kết quả chứa Word2

Giao hai danh sỏch kết quả với luật And_Not

+Trường hợp 2: “color = Not Black White” trở thành “( color =(Not Black)) White ”, việc chuẩn húa sau này sẽ làm cho việc thực hiện toỏn hạng Not khụng rơi vào tỡnh trạng lặp vụ hạn.

Sau khi thu được xõu truy vấn cú dạng chuẩn húa ta tiến hành phõn tớch truy vấn đú, tuy nhiờn vẫn cũn một một vấn đề lớn trong việc phõn tớch này, đú là ta sẽ thực hiện cỏc phộp toỏn logic trong truy vấn như thế nào, và như thế nào để ta thực hiện được cỏc phộp truy vấn với kớ tự đại diện.

Một phần của tài liệu THIẾT KẾ CÁC CÔNG CỤ TÌM KIẾM THÔNG TIN TRÊN MẠNG (Trang 80 - 82)