Bài giảng tích hợp dữ liệu và XML chương 10 Đối sánh chuỗi

5 1.2K 3
Bài giảng tích hợp dữ liệu và XML  chương 10 Đối sánh chuỗi

Đang tải... (xem toàn văn)

Thông tin tài liệu

21/04/2013 Nội dung Giới thiệu Phát biểu toán Phương pháp tính ñộ tương ñồng Đối sánh chuỗi 3.1 Dựa chuỗi 3.2 Dựa tập hợp Nguyễn Hồng Phương Email: phuong.nguyenhong@hust.edu.vn Site: http://is.hut.edu.vn/~phuongnh Bộ môn Hệ thống thông tin Viện Công nghệ thông tin Truyền thông Đại học Bách Khoa Hà Nội Giới thiệu Phát biểu toán Là toán tìm chuỗi trỏ tới thực thể giới thực Ví dụ Chuỗi David Smith CSDL tới người David R Smith CSDL khác Chuỗi 1210 W Dayton St, Madison WI 1210 West Dayton, Madison WI 53706 tới ñịa vật lý Đối sánh chuỗi ñóng vai trò then chốt toán tích hợp liệu, trích rút thông tin,… Cho hai tập chuỗi X Y; tìm tất cặp chuỗi (x, y), x∈X y∈Y, cho x y trỏ tới thực thể giới thực Gọi cặp sánh ñôi (match) Ví dụ: Tập X x1 = Dave Smith x2 = Joe Wilson x3 = Dan Smith Tập Y y1 = Dave D Smith y2 = Daniel W Smith Sánh ñôi (x1,y1) (x3,y2) Phương pháp tính ñộ tương ñồng Thách thức Độ tương ñồng s ánh xạ cặp (x,y) vào giá trị ∈[0,1] Tính xác s lớn x,y tương ñồng Lỗi tả Định dạng khác Tên khác => thước ño ñộ tương ñồng s(x,y)∈[0,1] Thuật ngữ khác: khoảng cách, chi phí giá trị nhỏ ñộ tương ñồng cao Tính mở rộng Độ tương ñồng s mở rộng cho nhiều cặp tập X Y => bùng nổ tích Đề-các => áp dụng s(x,y) với ñôi triển vọng 21/04/2013 Phương pháp Edit Distance 3.1 Độ tương ñồng dựa chuỗi Coi chuỗi dãy kí tự Tính toán chi phí biến ñổi chuỗi thành chuỗi Một số phương pháp Còn gọi khoảng cách Levenshtein d(x,y) chi phí tối thiểu biến ñổi chuỗi x thành chuỗi y Việc biến ñổi chuỗi sử dụng thao tác sau: xóa kí tự, chèn kí tự, thay Edit Distance Needleman-Wunch Affine Gap Smith-Waterman Jaro Jaro-Winkler kí tự Ví dụ: chi phí biến ñổi chuỗi x=David Smiths thành chuỗi y=Davidd Simth Thêm d sau David; thay m i; thay i m; xóa kí tự s cuối d(x,y)=d(y,x) Phương pháp Edit Distance (tiếp) Phương pháp Edit Distance (tiếp) Mối quan hệ hàm khoảng cách d(x,y) hàm tương ñồng s(x,y) s(x, y) = − Giá trị d(x,y) ñược tính toán dựa quy hoạch ñộng Cho d(x, y) max(length (x), length(y)) x = x1x2…xn, y = y1y2…ym xi yj kí tự d(i,j): khoảng cách soạn thảo x1x2…xi (tiền tố thứ i x) y1y2…yj (tiền tố thứ j y) Ví dụ: s(David Smiths, Davidd Simth) = − = 0.67 max(12,12) Ý tưởng: sử dụng biểu thức quay lui, tính d(i,j) từ giá trị ñã tính trước ñó d Phương pháp Edit Distance (tiếp) 10 Phương pháp Edit Distance (tiếp) Biến ñổi chuỗi x1x2…xi thành chuỗi y1y2…yj Biểu thức quay lui: if x i = y j  d(i - 1, j - 1)  d(i - 1, j - 1) + if x ≠ y  i j d(i, j) =  d(i 1, j) + //del ete x i  d(i, j - 1) + // insert y j (a) Biến ñổi x1x2…xi-1 thành y1y2…yj-1, sau ñó copy xi vào yj xi = yj (b) Biến ñổi x1x2…xi-1 thành y1y2…yj-1, sau ñó thay xi yj xi ≠ yj (c) Xóa xi, sau ñó biến ñổi x1x2…xi-1 thành y1y2…yj (d) Biến ñổi x1x2…xi thành y1y2…yj-1, sau ñó chèn thêm yj Hoặc viết gọn: d(i - 1, j - 1) + c(x i , y j ) // copy or substitute  d(i, j) =  d(i - 1, j) + // delete x i  d(i, j - 1) + // insert y j  Giá trị d(i,j) tối thiểu chi phí biến ñổi 0 if x i = y j c(x i , y j ) =  1 if x i ≠ y j 11 12 21/04/2013 Phương pháp Edit Distance (tiếp) Phương pháp Edit Distance (tiếp) Chú ý: d(i,0) = i d(0,j) = j Ví dụ: tính khoảng cách soạn thảo d(x,y) với x = "dva", y = "dave" y0 y0 d a v e d 1 x2 v 1 x3 a 2 y1 y2 y3 y4 d a v e x0 x1 d 1 x2 v x3 a x0 x1 y1 y2 y3 y4 x = d-va y = dave Thay a với e, chèn a sau d 13 14 Phương pháp Edit Distance (tiếp) Mũi tên ñi chéo từ ô (3,4) tới ô (2,3): kí tự x3 (kí tự a) ñược copy vào thay kí tự y4 (kí tự e) Mũi tên ñi chéo từ ô (2,3) tới ô (1,2): x2 (kí tự v) ñược copy vào thay y3 (kí tự v) Mũi tên ñi ngàng từ ô (1,2) sang ô (1,1): kí tự cách – ñược chèn vào x bắt cặp với kí tự a y Quá trình dừng lại tới ô (0,0) Độ phức tạp tính toán O(|x||y|) Các phương pháp khác: sinh viên tự tìm hiểu, coi ñó tập nhà 15 16 3.2 Tính ñộ tương ñồng dựa tập hợp Cách khác: q-grams xâu ñộ dài q có mặt xâu ban ñầu Coi xâu kí tự tập ña tập token Sử dụng tính chất tập hợp ñể tính toán ñiểm tương ñồng Sinh token từ xâu ñầu vào: ví dụ: xâu "david smith" có tập tất 3grams {##d, #da, dav, avi, , ith, th#, h##} Một số phương pháp Cách phổ dụng: Xem xét từ (phân cách kí tự cách) Loại bỏ từ dừng Ví dụ: xâu "david smith" => tập token {david, smith} 17 Overlap Jaccard TF/IDF 18 21/04/2013 Phương pháp Overlap Phương pháp Jaccard Cho Bx By tập token sinh từ xâu x xâu y Độ overlap trả số token chung O(x,y) = |Bx∩By| Ví dụ: Độ tương ñồng Jaccard xâu x y J(x,y)=|Bx∩By|/|Bx∪By| Ví dụ: x = dave; y = dav Bx={#d, da, av, ve, e#} By={#d, da, av, v#} J(x,y)=3/6 x = dave; y = dav 2-grams x: Bx={#d, da, av, ve, e#} 2-grams y: By={#d, da, av, v#} O(x,y)= 20 19 Phương pháp TF/IDF Phương pháp TF/IDF (tiếp) Phương pháp TF/IDF nhận Apple term ñặc biệt, CA Corporation chung nhiều TF/IDF liên quan ñến lĩnh vực tìm kiếm thông tin: tìm tài liệu phù hợp với từ khóa truy vấn Hai xâu tương ñồng chúng chia sẻ term ñặc biệt Ví dụ: Các cặp xâu ñem ñối sánh ñược lấy từ tập chuỗi Biến ñổi chuỗi thành túi từ, gọi tài liệu Ví dụ: x = Apple Corporation, CA y = IBM Corporation, CA z = Apple Corp Phương pháp edit distance Jaccard cho s(x,y) cao s(x,z) x=aab y=ac z=a Bx={a, a, b} By={a, c} Bz={a} 21 Phương pháp TF/IDF (tiếp) Phương pháp TF/IDF (tiếp) Tính term frequency (TF) inverse document frequency (IDF): Với từ t tài liệu d, tf(t,d) = số lần t xuất d Với từ t, tính idf(t) = tổng số tài liệu sưu tập chia cho số tài liệu chứa t IDF cao nghĩa xuất từ ñặc biệt/khác biệt tf(a,x)=2 tf(b,x)=1 tf(c,z)=0 22 idf(a)=3/3=1 idf(b)=3/1=3 idf(c)=3/1=3 23 Tiếp theo, biến ñổi tài liệu d thành vector ñặc trưng vd Hai tài liệu tương ñồng vector tương ứng chúng gần Vector d có ñặc trưng vd(t) với từ t Giá trị vd(t) hàm TF IDF vd có nhiều ñặc trưng số term sưu tập 24 21/04/2013 Phương pháp TF/IDF (tiếp) a b c vx vy 3 vz 0 x=aab y=ac z=a Phương pháp TF/IDF (tiếp) Tính ñiểm tương ñồng TF/IDF xâu p q Bx={a, a, b} By={a, c} Bz={a} tf(a,x)=2 tf(b,x)=1 tf(c,z)=0 T tập tất từ sưu tập Vector vp vq (của xâu p q): không gian |T| chiều, chiều tương ứng với từ Điểm TF/IDF p q ñược tính cosine góc vector này: idf(a)=3/3=1 idf(b)=3/1=3 idf(c)=3/1=3 Ba vector vx, vy, vz ba tài liệu Bx, By, Bz vd(t) = tf(t,d).idf(t) vx(a) = 2.1 = s(p, q) = ∑ ∑ t∈T t∈T v p (t).v q (t) v p (t) ∑ t∈T v q (t) 25 26 27 28 Phương pháp TF/IDF (tiếp) Ví dụ trên: ñiểm TF/IDF xâu x y là: s(x, y) = 2.3 + 32 32 + 32 = 0.39 Lời hay ý ñẹp Đường gần, không ñi không ñến Việc nhỏ, không làm chẳng nên Tuân Tử 29

Ngày đăng: 23/01/2016, 00:40

Tài liệu cùng người dùng

Tài liệu liên quan