III. MỘT SỐ PHƯƠNG PHÁP TÌM KIẾM VĂN BẢN
2. Tìm kiếm văn bản theo mô hình không gian vectơ
2.5.1. Thiết lập TV_Tree
Trước khi định nghĩa TV_Tree để lưu trữ một điểm k chiều, chúng ta cần xác định 2 tham số sau:
Numchild: Số lượng tối đa các con mà bất kỳ nút nào trong TV_Tree cho phép có.
α: Một số lớn hơn 0 và nhỏ hơn hoặc bằng k gọi là số của chiều hoạt động. Chúng ta ký hiệu TV (k, NumChild, α) để biểu thị một TV_Tree được dùng để lưu trữ số liệu kiểu k chiều, với Numchild là số con lớn nhất và α là một số chiều được kích hoạt. Mỗi nút trong TV_Tree có 3 trường:
N.Center: Đại diện cho 1 điểm trong không gian k chiều. N.Radius: Một số thực lớn 0
N.ActiveDims: Đây là danh sách tối đa α chiều. Mỗt một chiều đó là 1 số giữa 1 và k. Như vậy, N.ActiveDims là một tập con của (1,…,k).
Giả sử x và y là 2 điểm trong không gian k chiều và ActiveDims là tập hợp nào đó của chiều hoạt động. Khoảng cách hoạt động (active_distance) giữa x và y, ký hiệu bởi act_dist (x,y) và được biểu diễn bằng công thức:
act_dist (x, y) = ∑( ) ∈ − ActiveDims i i i y x 2 (9) Trong đó xi và yi biểu thị giá trị của chiều thứ i của x và y tương ứng. Ví dụ: Giả sử k = 200, α = 5 và tập hợp ActiveDims = (1..5).
Giả sử x = (10, 5, 11, 13, 7, x6, x7,…,x2000) y = (2, 4, 14, 8, 6, y6, y7,…y2000) Vậy khoảng cách hoạt động tương ứng là:
act_dist(x,y)= 10 100 ) 6 7 ( ) 8 13 ( ) 14 11 ( ) 4 5 ( ) 2 10 ( − 2+ − 2 + − 2+ − 2 + − 2 = =
Một nút N trong TV_Tree đại diện cho vùng chứa tất cả các điểm x như vậy khoảng cách hoạt động (với tương ứng tới chiều hoạt động trong N.ActiveDims) giữa x và N.Center nhỏ hơn hoặc bằng N.Radius.
Ví dụ: nếu ta có nút N với center của nó.
N.Center = (10, 5, 11, 13, 7, 0, 0, 0, 0,…, 0).
N.ActiveDims = {91, 2, 3, 4, 5} thì nút này đại diện cho vùng gồm tất cả các điểm x như sau:
2 5 2 4 2 3 2 2 2 1 10) ( 5) ( 11) ( 13) ( 7) (x − + x − + x − + x − + x − ≤ N.Radius
Ký hiệu Region (N) để biểu thị vùng được đại diện bởi nút N trong TV_Tree. Ngoài Center, Radius và ActiveDims, 1 nút trong cây TV_Tree cũng chứa một mảng, Child hoặc Numchild là con trỏ tới nút khác có cùng kiểu.
Tất cả các dữ liệu được lưu trữ ở nút lá. Mỗi nút trong cây TV (kể cả gốc và lá) phải ít nhất là chứa một nửa (half full) có nghĩa là ít nhất con trỏ Child không chứa Nil.
Nếu N là một nút và chứa một tập các nút con N1, N2, Nr thì Region (N) = Region(Ni).
2.5.2.Chèn vào TV_Tree
Có 3 bước để chèn một vectơ vào cây TV.
Chọn nhánh (branch selection): Khi ta chèn một vectơ vào cây TV mà ta dang ở nút Nj có con là Ni và 1 ≤ i ≤ NumChiild. Ta cần xác định con nào sẽ được chèn khoá vào.
Tách (Split): Ta dùng phương pháp này khi ta ở nút và nó đã đầy (full) và không thể chứa thêm vectơ v mà ta cần chèn. Vấn đề này là nguyên nhân cần tách
Thu gọn (Telescoping): Giả sử 1 nút N được tách vào 2 nút N1 và N2. Trong trường hợp này, có thể sản sinh vectơ trong Region(N1) chấp thuận hoặc không chiều hoạt động của nút cha N. Việc thêm một số chiều được gọi là lồng động mà chúng ta se xem xét sau đây.
Lựa chọn rẽ nhánh:
Xét tình huống khi có nút N với 1 ≥ j, =NumChild con ký hiệu là n1, …,Numchilds. Dùng ký hiệu expj(v) để biểu thị số lượng. Ta phải mở rộng Nj, Radius như vậy khoảng cách hoạt động của v từ Nj, Center nhỏ hơn hoặc bằng với (Nj (v), Radius +expj(v)).
Expj(v) = 0 nếu act_dist(v, Rj, Center), ≤ Rj, Radius
Hoặc expj(V) = act_dist(v, R, Center) – Rj.Radius nếu act_dist(v,Rj, Center) > Rj.Radius.
Đầu tiên ta chọn tất cả do vậy expj(v) giảm đến mức tối thiểu. Cách nói khác, nếu ta có nút N1,…, N5 với exp có giá trị 10, 40, 19, 10 ,32 tương ứng, hai ứng viên khả thi của việc chọn để chèn là N1 & N4 vì sự mở rộng của chúng là nhỏ nhất.
2.5.3.Tìm kiếm trên TV_Tree
Tìm kiếm một vectơ v trong TV_Tree chỉ là phụ trong quá trình chèn. Khi tìm kiếm một văn bản đại diện bởi vectơ trong TV_Tree, ta có cách giải quyết sau:
Thuật toán tìm kiếm trên cây TV_Tree
ThuËt to¸n 1Search (T, V);
if leaf (t) then {Return (T, Center = v); Half} {if v ∈ Region (T) then
Return VNumchild Search (t, child [i], v)} end
Thuật toán tìm kiếm lân cận gần nhất trên TV_Tree
LSI đã được chứng minh là một trong những phương pháp hiệu quả để lập bảng chỉ dẫn cho văn bản. Tuy nhiên, có một số kỹ thuật khác được sử dụng hiệu quả hơn so với cơ sở dữ liệu văn bản nhằm giải quyết được thời gian và độ phức tạp thuật toán thực hiện
ThuËt to¸n 2 : NNSearch (T, v, p); For i = 1 to p do SOL [i] = ∞; NNSearch 1 (T, v, p);
end: (* kết thúc NNSearch*) Procedure NNSearch 1 (T, v, p);
if leaf (T) & act_dist (T, val, v) < SOL [p] then Insert T. vail into Sol
Else {
if lef (T) then r = 0 else
{Let N1,...,Nr Là con của; S¾p cÕp Nis t¨ng dÇn víi liªn quan tíi min (Ni, v); §Ó Nη [r] lµ kÕt qu¶ cña s¾p xÕp.
}
done = false; i = 1;
While ((i < r) ^ ¬ done) do }
NNSearch (Nη [i], v, p);
if SOL [p], min (Nη [i = 1], v) then done = true;
i = i +1; }; }
3. Tìm kiếm văn bản theo mô hình tập thô dung sai
Hầu hết, các hệ thống thông tin làm việc chính xác bởi các toán tử logic. Mặc dù, cách này đơn giản nhưng không phải lúc nào nó cũng mang lại thông tin đúng theo ý của người sử dụng. Hiện nay, có rất nhiều nỗ lực trong việc cải tiến chất lượng khai thác thông tin với việc sử dụng các kỹ thuật tìm kiếm thông tin cho suy diễn phát triển từ tính mập mờ (vagueness) và tính không chắc chắn (uncertainty) của một khái niệm.
Lý thuyết tập thô, một công cụ toán học để giải quyết vấn đề trên với sự mập mờ và không chính xác được giới thiệu bởi Pawlak trong những năm 80. Lý thuyết tập thô này đã thành công trong một vài ứng dụng. Trong lý thuyết này, mỗi thành phần của tập vũ trụ được mô tả bởi một cặp hai tập hợp khác được gọi là các xấp xỉ trên và các xấp xỉ dưới. Tập các xấp xỉ trên và tập các xấp xỉ dưới được xác định bởi quan hệ tương đương trong tập vũ trụ. Việc xử dụng mô hình tập thô như trên sau này được gọi là mô hình tập thô tương đương (Equivalance Rough Set Model ERSM) đã được sự quan tâm đặc biệt của rất nhiều nhà nghiên cứu. Điểm quan trọng của việc áp dụng tập thô tương đương (ERSM) cho việc khai thác thông tin đó là đưa ra cách mới để tính mối quan hệ ngữ nghĩa dựa trên việc tổ chức từ vựng vào các lớp tương đương. Tuy nhiên chúng ta sẽ nhận thấy rằng, việc sử dụng các quan hệ tương đương trong ERSM là không phù hợp cho việc khai thác thông tin. Điều này là đúng bởi quan hệ tương đương yêu cầu phải có các tính chất: Phản xạ, đối xứng, bắc cầu. Tuy nhiên trong một số trường hợp các tính chất này tỏ ra quá nghiêm ngặt trong việc xử lý ngôn ngữ tự nhiên và khai thác thông tin bởi vì tính chất đối xứng không phải lúc nào cũng được thoả mãn.
Vì lý do trên nên ở đây chúng ta làm quen với một mô hình khác gọi là mô hình tập thô dung sai(Tolerance Rough Set Model TRSM) cho việc khai thác thông tin qua các lớp dung sai thay thế cho các lớp tương đương đã giới thiệu ở trên. Đây chính là mô hình mà tôi sẽ nghiên cứu kỹ và sẽ cài đặt để phục vụ cho việc tìm kiếm văn bản tiếng Việt.