Xây dựng đồ thị keyphrase biểu diễn nội dung

Một phần của tài liệu Nghiên cứu phương pháp đo lường mức độ tương đồng ngữ nghĩa cho bài toán tìm kiếm trong kho tài liệu học tập lĩnh vực công nghệ thông tin (Trang 33)

3.1.1. Đánh trọng số trong đồ thị keyphrase biểu diễn tài liệu

Để làm rõ hơn mức độ quan trọng của keyphrase với tài liệu, hay khả năng phản ánh nội dung tài liệu của keyphrase ta có thể gán cho mỗi keyphrase các trọng số được tính toán dựa trên chín nội dung tài liệu. Ta có thể định nghĩa các trọng số sau:

Term frequency (tf) là tần số xuất hiện của keyphrase trong tài liệu, phản ánh mức độ quan trọng của keyphrase đối với tài liệu dựa trên giả định những keyphrase càng quan trọng thì sẽ có số lần xuất hiện trong tài liệu càng cao. Theo đó ta có thể tính toán tần số xuất hiện của keyphrase k trong tài liệu d, ký hiệu tf(k, d) theo công thức sau:

tf(k , d)=a+(1−a) nk , d

max(nk' , dk 'd)

Trong đó nk , d là số lần xuất hiện của keyphrase k trong tài liệu d a là một hằng số trong khoảng từ 0 đến 1. Hằng số a đóng vai trò làm giá trị tối thiểu cho trọng số tf của một keyphrase bất kỳ, việc này giúp giảm bớt sự chênh lệch trọng số tf giữa các keyphrase khi tính theo công thức cũ. Giá trị của a sẽ được xác định bằng phương pháp thực nghiệm.

Importance of Position (ip) được dùng đánh giá mức độ quan trọng của keyphrase đối với tài liệu dựa trên vị trí xuất hiện của keyphrase đó. Những phần nội dung khác nhau trong cấu trúc của tài liệu có ý nghĩa và vai trò khác nhau trong việc mô tả ngữ nghĩa hay nội dung của tài liệu đó.Ví dụ, so với toàn bộ tài

liệu thì tiêu đề sẽ biểu diễn một cách cô đọng nhất nội dung của tài liệu, giúp cho người dùng nhanh chóng nắm bắt được đại ý của toàn bộ tài liệu. Vì thế các keyphrase xuất hiện trong tiêu đề luôn được tác giả chắt lọc rất cẩn thận để có thể truyền tải nội dung của tài liệu đó. Các kyephrase này cần phải được xem trọng và ưu tiên cao nhất về khả năng biểu diễn ngữ nghĩa của tài liệu. . Để tính toán được ip của mỗi keyphrase, đầu tiên ta xác định bằng phương pháp chuyên gia trọng số wi phản ảnh độ quan trọng của phần nội dung thứ i trong cấu trúc tài liệu. với ràng buộc wi∈[0,1] , ví dụ đối với tài liệu là bài báo khoa học, trọng số cho từng phần nội dung được cho như sau:

Title w1 = 0.9 n1

Abstract w2 = 0.6 n2

Keywords w3 = 0.8 n3

Tên các tiểu mục w4 = 0.5 n4

Reference w5 = 0 n5

Tiếp theo ta gọi ni(k, d) là số lần xuất hiện của k trong phần nội dung tương ứng đó. Ta gọi tập hợp chứa chỉ số của tất cả phần nội dung mà k xuất hiện trong d là A={xnx(k ,d)>0} Tầm quan trọng của keyphrase k đối với tài liệu d dựa trên vị trí xuất hiện của k, ký hiệu là ip(k, d) sẽ được cho bởi công thức

ip(k , d)=c+(1−c) ∑

iA

wi

wi

Trong đó tham số c=max(wiiA) chính là trọng số của phần nội dung quan trọng nhất mà k xuất hiện và đây cũng sẽ là giá trị tối thiểu cho trọng số ip.

tf và ip là các trọng số cục bộ, có ý nghĩa gắn liền tronng phạm vi tài liệu đang xét. Cùng một keyphrase nhưng trọng số tf và ip có thể khác nhau khi xét trong các tài liệu khác nhau. Giá trị của mỗi keyphrase trong mỗi tài liệu phản ánh

mức độ hữu ích, tầm quan trọng của keyphrase đó trong việc mô tả nội dung hay chủ đề mà tài liệu đang đề cập tới. Một keyphrase có thể mang ý nghĩa lớn trong việc thể hiện nội dung của một tài liệu này nhưng lại kém hiệu quả so với một tài liệu khác.

Ngoài hai trọng số trên chúng ta còn một trọng số khác thể hiện vai trò, vị trí của keyphase đối với toàn bộ kho tài liệu, thể hiện qua mật độ phân phối của keyphrase đó. Trọng số này là Inverse document frequency (idf) và được đánh giá bằng cách xét số tài liệu chứa keyphrae trên tổng số lượng tài liệu trong kho. Keyphrase xuất hiện trong càng nhiều tài liệu thì tính đặc trưng của keyphrase càng ít, khả năng biểu diễn ngữ nghĩa của keyphrase vì thế cũng giảm theo. Ví dụ kho tài liệu KHMT (computer science) sẽ có một số keyphrase sau xuất hiện trong hầu như mọi tài liệu: computer, data, information, v.v... Ở đây ta muốn giảm giá trị trọng số của những keyphrase trên để tăng trọng số cho những keyphrase mang tính chuyên biệt và đặc thù cho các tài liệu mà trong đó keyphrase ấy xuất hiện, như vậy công thức idf(k) của tài liệu k trong kho tài liệu D có thể được cho như sau:

idf(k)=log( |D|

1+|{dD , kd}|)

Ở đây lưu ý: đối với trọng số ip và tf ta chỉ xét những keyphrase đã được rút trích và đưa vào đồ thị biểu diễn tài liệu dưới sự giám sát của chuyên gia. Trong khi đó, đối với công thức tính idf, khi nói một keyphrase k xuất hiện trong tài liệu d ( kd ) ta chỉ đề cập đến sự xuất hiện của một chuỗi trong một văn bản, k không nhất thiết phải được chọn rút trích đưa vào đồ thị keyphrase biểu diễn tài liệu. Do trọng số idf(k) có giá trị nằm ngoài khoảng [0; 1] nên đôi khi để tiện cho tính toán ta sử dụng xidf(k) là một hàm có cùng ý nghĩa với idf(k) nhưng trả về giá

trị trong khoảng [0,1] và ( ) ( ) log(| |) idf k xidf k D

3.1.2. Gán nhãn trong đồ thị keyphrase biểu diễn tài liệu

Đối với một tài liệu, keyphrase có thể chỉ là một thuật ngữ thông thường liên quan đến nội dung tài liệu nhưng cũng có trường hợp keyphrase là tên của một vấn đề lớn mà tài liệu đang phân tích, bàn luận.

Ví dụ hai tài liệu A: An Algorithm for Finding Best Matches in Logarithmic Expected Time và tài liệu B: ALGORITHM DESIGN: FOUNDATION, ANALYSIS AND INTERNET EXAMPLES đều có nội dung liên quan đến keyphrase Algorithm. Tuy nhiên ngay trong tiêu đề ta đã có thể hình dung được vai trò khác nhau của keyphrase algorithm trong hai tài liệu trên. Tài liệu A đề cập đến một thuật toán cụ thể và không phân tích sâu vào lĩnh vực thuật toán. Ngược lại tài liệu B có nội dung xoay quanh thuật toán và việc thiết kế thuật toán, với nền tảng, phân tích và cả ví dụ.

Để làm rõ sự khác biệt này, bên cạnh việc đánh trọng số cho keyphrae, luận văn đề xuất thêm sử dụng một hàm gán nhãn cho các kyephrase. Hiện tại ta chỉ xét tập nhãn phân loại gồm 2 nhãn: Labes = {“Thuật ngữ chuyên môn”, “chủ đề”}

Nhãn của keyphrase k trong tài liệu d ký hiệu label(k, d) sẽ được xác định bằng phương pháp bán thủ công, hệ thống rút trích keyprhase sẽ áp dụng heuristic để đoán nhãn cho keyphrase, sau đó chuyên gia sẽ kiểm tra kết quả của quá trình gán nhãn này để đảm bảo tính chính xác. Có hai nguyên tắc được đặt ra trong quá trình gán nhãn: (adsbygoogle = window.adsbygoogle || []).push({});

• Keyphrase được gán nhãn chủ đề khi và chỉ khi keyphrase đó trùng tên với một lớp trong ontlogy.

• Khi một keyphrase k được gán nhãn chủ đề, đồ thị keyphrase của tài liệu sẽ không chứa các keyphrase cùng lớp với k. Các keyphrase này xem như được đại diện bởi k

dưới:

Thuật toán xác định nhãn cho keyphrase k trong tài liệu d

Input: đồ thị keyphrase K biểu diễn cho tài liệu d, keyphrase k cần được gán nhãn Output: Nhãn được xác định cho keyphrase k

1. Tìm lớp c trong tập các lớp C sao cho k trùng tên với c

2. If c return “Thuật ngữ chuyên môn”∈ ∅

3. count:=0

4. Foreach a in K:

4.1. If a K:∈

4.1.1. count := count + 1

5. If count >= K.vertex_count() or count >= 10:

5.1. return “Chủ đề”

6. return “Thuật ngữ chuyên môn”

Sau khi chuyên gia đã xác nhận nhãn cho keyphrase k, công việc tiếp theo sẽ là xóa bỏ các keyphrase cùng lớp với k (nếu có) ra khỏi đồ thị. Điều này có thể giúp thu nhỏ kích thước của đồ thị keyphrase và cải thiện tốc độ xử lý của quá trình tìm kiếm

3.1.3. Trọng số trong đồ thị keyphrase biểu diễn câu truy vấn

Một trong những dạng truy vấn thông thường khi truy tìm tài liệu theo ngữ nghĩa là người dùng cung cấp một danh sách các keyphrase có liên quan đến yêu cầu tìm kiếm của mình. Ta có thể xây dựng đồ thị keyphrase biểu diễn câu truy vấn bằng một cách tương tự như đối với tài liệu. Tuy nhiên do câu truy vấn chỉ là một danh sách các keyphrase không có cấu trúc và các thông tin về ngữ cảnh như trong một tài liệu, các phương pháp đánh trọng số cho đồ thị biểu diễn tài liệu không thể được áp dụng không thể áp dụng.

trọng số cho đồ thị biểu diễn câu truy vấn nhằm làm giàu khả năng biểu diễn ngữ nghĩa để thể hiện sát hơn yêu cầu tìm kiếm của người dùng. Một nhận xét có thể thấy được là trong query sẽ có những keyphrase có tầm quan trọng cao hơn so với các keyphrase khác trong việc làm rõ yêu cầu tìm kiếm của người dù. Đó có thể là những keyphrase có nghĩa cụ thể, chuyên biệt có thể giúp ta xác định chính xác hơn yêu cầu tìm kiếm so với những keyphrase mang nghĩa quá phổ quát. Hoặc đó có thể là keyphrase chính yếu trong một keyphrase tổ hợp, thể hiện rõ nhất nội dung của keyphrase tổ hợp đó. Dựa trên CK_ONTO, ta sẽ tìm ra những keyphrase quan trọng này và từ đó có phương pháp đánh trọng số cho những keyphrase trong đồ thị biểu diễn câu truy vấn

3.1.3.1. Keyphrase có nghĩa chuyên biệt hơn keyphrase khác:

Để xác định tính chuyên biệt giữa hai keyphrase ta dựa vào các quan hệ phân cấp trong ontology CK_ONTO, mà cụ thể ở đây là quan hệ Part-Of và Kind- Of. Nếu keyphrase a có quan hệ Part-Of hoặc Kind-Of với keyphrase b thì ta xem

a có nghĩa chuyên biệt hơn b. Quan hệ giữa ab có thể là quan hệ trực tiếp được lưu trong Ontology hoặc quan hệ được suy ra từ tính chất bắt cầu: Nếu a Part-of c

c Part-of b thì a Part-Of b.

Khi suy diễn quan hệ phân cấp dựa trên tính chất bắt cầu, ta có thể lượng giá “mức độ chuyên biệt” của keyphrase a so với b dựa vào số lân phải bắt cầu. Số lần bắt cầu càng lớn thì độ chuyên biệt càng sâu. Nếu hai keyphrase không có quan hệ Part-Of với nhau nhưng Thuật toán để xác định keyphrase chuyên biệt hơn giữa hai keyphrase có thể được cho như sau:

Algorithm: Xác định keyphrase chuyên biệt INPUT: hai keyphrase a, b

OUTPUT: keyphrase có độ chuyên biệt cao hơn trong số a và b. Nếu hai keyphrase không có liên hệ chuyên biệt với nhau hoặc không có keyphrase nào có

độ chuyên biệt cao hơn thì trả về 0.

1: distance_a = 0, distance_b = 0, threshold = 5

2: //Thêm vào t p hyper_a keyphrase a v i kho ng cách cho trậ ước //Tương t  v i t p hyper_bự

hyper_a.add(a, distance_a), hyper_b.add(b, distance_b) 3:  while (distance_a < threshold and distance_b < threshold): 3.1: foreach (keya, dista) in hyper_a: 3.1.1: foreach (keyb, distb) in hyper_b: 3.1.1.1: if keya == keyb: 3.1.1.1.1: if dista > distb return b 3.1.1.1.2: elseif dista < distb return a 3.1.1.1.3: else return 0 3.1.1.2: //M  r ng t p hyper_bở foreach keyphrase c where keyb is Part­Of c hyper_b.add(c, distance_b+1) 3.1.2: //M  r ng t p hyper_aở foreach keyphrase c where keya is Part­Of c hyper_a.add(c, distance_a + 1) 3.1.3: distance_b = distance_b + 1 3.2 distance_a = distance_a + 1 4: return 0

3.1.3.2. Xác định keyphrase chính trong keyphase tổ hợp (adsbygoogle = window.adsbygoogle || []).push({});

Đối với các keyphrase tổ hợp dạng chính – phụ, keyphrase đơn đóng vai trò là keyphrase chính của tổ hợp sẽ quan trọng hơn những keyphrase còn lại trong việc xác định ý nghĩa của toàn bộ keyphrase tổ hợp. Việc xác định keyphrase chính của tổ hợp chỉ có thể được thực hiện một cách chính xác nhất thông qua kinh nghiệm chuyên gia. Tuy nhên trong trường hợp thiếu thông tin từ chuyên gia chúng ta có thể đoán một cách tương đối keyphrase nào mang nghĩa chính yếu của cả tổ hợp dựa trên 2 nguyên tắc:

1. Những keyphrase quá phổ biến, xuất hiện trong gần như tất cả các tài liệu sẽ có nghĩa rất chung chung, phổ quát, không thể là keyphrase

chính. Ta có thể phát hiện ra các keyphrase này bằng các xét trọng số idf. Keyphrase có trọng số idf quá thấm, thấp hơn một ngưỡng nào đó sẽ được xác định không phải keyphrase chính. Ví dụ keyphrase

computer sẽ không phải là keyphrase chính trong các keyphrase tổ hợp sau: “computer networking”, “computer security”, v.v..

2. Về mặt ngữ pháp, trong tiếng Anh keyphrase đứng trước thường có vai trò bổ nghĩa, làm rõ nghĩa cho keyphrase đứng sau. Vì thế keyphrase keyphrase chính thường sẽ là keyphrasse đứng trước trong keyphrase tổ hợp VD: machine learning algorithm, programming

technique.

3.1.3.3. Sơ đồ liên hệ về độ quan trọng giữa keyphase

Với tất cả các cặp keyphrase a, b trong câu truy vấn. Nếu keyphrase a quan trọng hơn b, ta xem có một liên hệ từ keyphrase b đến keyphrase a.

Ví dụ xét query: “data structure and algorithm in comptuer graphics”. Query này được biểu diễn thành đồ thị keyphrase như sau:

Ta có thể thấy hai keyphrase Algorithm và Data structure có liên quan chặt chẽ với nhau. Nhưng cả hai keyphrase này đều không có quan hệ trực tiếp với keyphrase Computer graphics. Tuy nhiên khi xét về độ quan trọng trong việc làm rõ nghĩa câu truy vấn ta có thể thấy keyphrase Computer graphics có tầm quan trọng hơn hai keyphrase kia, giúp xác định phạm vi người dùng mong muốn tìm kiếm là lĩnh vực Đồ họa máy tính. Như vậy, liên hệ quan trọng/kém quan trọng hơn trong số các keyphrase trên sẽ được cho trong bảng sau:

Data structure Related Algorithm Computer graphics

Keyphrase Quan trọng hơn Kyephrase

Data structure Algorithm

Data structure Computer graphics

Algorithm Data structure

Algorithm Computer graphics

Computer graphics X Data structure Computer graphics X Algorithm

3.1.3.4. Đánh trọng số cho keyphrase trong đồ thị biểu diễn câu truy vấn

Trọng số cho các keyphrase sẽ được đánh theo các nguyên tắc:

1. Tổng trọng số của tất cả keyphrase trong query sẽ bằng 1

2. Keyphrase có độ quan trọng cao sẽ có trọng số lớn.

Để tính trọng số cho các keyphrase, trước hết, ta chia tập K các keyphrase trong truy vấn thành hai tập con K1 và K2. Trong đó K1 là những kyephrase có liên hệ về độ quan trọng với keyphrase khác. Và K2 là những keyphrase độc lập, không có liên hệ với keyphrase khác về độ quan trọng. Ban đầu ta gán trọng số cho tất cả keyphase là bằng nhau và bằng 1/N (N là số keyphrase trong K. Riêng đối với trọng số của các kephrase trong K1 sẽ tiếp tục được đánh giá lại theo nguyên tắc (2), các keyphrase kém quan trọng sẽ nhường một phần trọng số của mình cho các keyphrase quan trọng hơn nó. Giá trị trọng số của các keyphrase trong K1 sẽ được tạm thời thay đổi theo công thức:

Wt(a)=1−d

K1 +d⋅∑

bKa

Wt(b)

L(b)

keyphrase kém quan trọng hơn a, L(b) là số lượng các keyphrase quan trọng hơn b và d là một tham số xác định tỉ lệ phần trọng số mà các keyphrase kém quan trọng sẽ nhường cho keyphrase quan trọng hơn.

Trọng số tạm thời Wt sau đó sẽ được cân bằng để đảm bảo nguyên tắc (1):

W(a)= Wt(a) ∑ xK1 Wt(x)⋅ |K1| |K2| (adsbygoogle = window.adsbygoogle || []).push({});

Để tính trọng số tạm thời Wt (a) ta có thể thực hiện bằng vòng lặp. Do theo công thức trọng số của một keyphase phụ thuộc vào trọng số của các keyphase và không có gì đảm bảo liên hệ “quan trọng hơn” này không tạo thành một vòng khép kín nên việc lặp sẽ không có điều kiện dừng xác định. Việc lặp sẽ dừng sau một số lần giới hạn hoặc khi giá trị trọng số thay đổi không đáng kể sau mỗi lần lặp.

Như vậy, trọng số cho keyphrase tại lần lặp thứ i ký hiệu Wt(A, i) sẽ được cho bởi công thức:

Wt(a,0)= 1 |K| Wt(a , i)=1−d+d⋅∑ bKa Wt(b , i−1) L(b)

Thuật toán tính trọng số cho các keyphrase có thể được cho bên dưới:

Algorithm: Thuật toán tính trọng số cho các keyphrase trong query

INPUT: Tập các keyphrase K trong đồ thị keyphrase biểu diễn câu truy vấn. Các keyphrase đã được xác định độ quan trọng

OUTPUT: Trọng số cho từng keyphrase được lưu trong mảng W

1: ε = 0.01, max_iteration = 100, d = 0.5 //Các tham số

Một phần của tài liệu Nghiên cứu phương pháp đo lường mức độ tương đồng ngữ nghĩa cho bài toán tìm kiếm trong kho tài liệu học tập lĩnh vực công nghệ thông tin (Trang 33)