2.3 Các hướng tiếp cận cho bài toán Phân tích cú pháp phụ
2.3.1 Phân tích cú pháp phụ thuộc dựa trên đồ thị (Graph-based)
Đây là một hướng tiếp cận dựa trên đồ thị xác định một không gian bao gồm các đồ thị phụ thuộc ứng cử viên cho một câu. Vấn đề học tập là tạo ra một mô hình để gán điểm cho biểu đồ phụ thuộc ứng cử viên cho một câu và vấn đề
câu đầu vào của một mô hình
trùm tối đa, vì ý tưởng của
thuộc con và sử dụng một
thuộc. Sau đó, tìm những
phụ thuộc điển hình cho hug
Theo ý tưởng, phươ
giống đồ thị phụ th
e G là tập chứa
con của G, chứa ta
e V là tập đỉnh có tất cả các từ của câu x được đánh index từ 1 đến n và index 0 sẽ là vị trí của
ROOT.
V = {#o,#1,#2,...#„V%;¡ € S}
e E là tập hợp các cạnh (mối quan hệ) duy nhất theo thứ tu x; + 2; với z; là từ gốc và a; là từ phụ thuộc của câu 2, r là quan hệ phụ thuộc giữa từ x; với từ x; theo luật L.
1 = {(7.r) a4 # z/|a¡ € Via; € (V — #ọ),r € L}
Dé tinh trong số của các cạnh trong tập E, ta dựa trên công thức|64]:
si, jr) = w.f(i,5,r)
Trong do:
e w là vector trọng số.
12
e f(i,j,r) là vector đặc trưng đã được trích xuất từ bang đặc trưng tùy chọn của bộ MSTParser|27].
Ti công thức trên, ta có thể tính trọng số cạnh phụ thuộc của cả đồ thị phụ thuộc của câu z[64] như
sau:
s(G„ = (Vx, Ex)) = Loge be (tJ, r)
Đối với w, w là vectơ trọng số được cập nhật liên tục bằng một mô hình máy học, chẳng hạn như
MIRA-Margin Infused Relaxed Algorithm. Khi đã tính toán xong trọng số của các cạnh xuất hiện
trong tập E, ta sẽ dùng một hàm để trích xuất các cây khung có điểm số cao nhất từ các đồ thi con,
và cây khung sau cùng là cây có điểm số cao nhất, ta có thể biểu diễn việc phân tích cú pháp theo
công thức|64| sau:
G* = argma#qep(d„)5(Œ) = argma#œep(G„)1(,7,r)eE„ SẲẲ, j.)
Và hình dưới đây sẽ minh họa " 2
Z —
B8L---nnnn
_ ~- la
Ị " -“ we “\
| ` 7 “ela
XN “ ° | sa
XS /Z lổi
ol 7 x <1 |
ul ey” Z Ns, at
al sy “* NS, 5 | 1
alee „Z “Selo[Lẻ - 0Ô __—___ `.
Y z#Z7T >—_ N
coreve = —=—”
Đ...
Hình 2.7: Ví dụ về cách thức tìm ra cây khung có điểm số cao nhất
2.3.1.1 Thuật toán Eisner
Để giải quyết bài toán trích xuất cây khung lớn nhất từ đồ thị đầy đủ, Collins[16] đã đề xuất mot thuật toán trích xuất đồ thị phụ thuộc từ đồ thị hoàn chỉnh dựa trên mô hình phân tích cạnh. Nhưng
do độ phức tạp của thuật toán này quá lớn, cụ thể là O(n5) nên nếu trường hợp câu văn dài thì
thuật toán này không thật sự lý tưởng về mặt thời gian và chỉ phí tính toán. Chính vì thế thuật toán
Eisner|27] ra đời, được cải tiến từ thuật toán Collins, với độ phức tap chi O(n), đây là thuật toán quy hoạch động với chiều quy hoạch theo hướng bottom-up phổ biến nhất hiện nay.
Thuật toán sử dụng một bảng quy hoạch động để lưu trữ độ hoàn thiện, giá trị tốt nhất ( điểm
số cao nhất ) của các cây con từ vị trí ti i đến vị trí từ 7 thỏa mãn điều kiện 1 < i < 7 < n. Thuật toán được biểu diễn dưới dạng mã giả như sau:
13
Algorithm 1 Thuật toán Eisner
// _ Khởi tạo uới bằng C
C{s]|[s] [d][c] = 0.0 Vs € {1..n},d € {—,—>},c € {0, 1}
for mm = 1 to + do
for ¿ = 1 to (n — m + 1) do
j=i+1
// _Xâu dựng các khung chưa hoàn thiện từ các khung đã hoàn thiện
Clif] [-][0] = maz¡<u<;(Cfil[u|[—>][T] + Clu + 1]|7]|<—|[T] + score(i, 7)) CLL ]-][0] = maricu<;(Clil[ul[>][] + Clu + 1][7|[<—][T] + seore(7, 2))
// Xéy dựng các khung hoàn thiện
Clif] [A] [1] = maz¡<u<;(Clil[a]|->]J0] + CJe][2]|>]H]
ci 7]l<—]IH] = mazĂ<u„<j(Cfi[el[<—]ẽ1] + Clu] [7] [-][0]
end for
Khởi tao với một bảng quy hoạch động Œ với giá trị khởi tạo cho các cây trong bang bằng 0. Với
Chi fi) {dl [e):
e ¡ và 7 là 2 từ biên của khung thỏ
e c có giá tri là 0 hoa
ngược lại.
xây dựng các cây chữ NÓa lên trong đoạn (i, j|.
e Xây dựng khung hoàn thiện trong đoạn [i, j] bằng việc kết hợp một khung chưa hoàn thiện và một khung hoàn thiện theo cả hai chiều i > 7 và j > i.
Quá trình thuật toán hoạt động được biểu diễn trong hình 2.8.
2.3.1.2 Thuật toán Chu-Liu Edmons
Được đề xuất lần đầu vào năm 1965 bởi Chu - Liu[15], sau đó 2 năm, thuật toán được hoàn thiện bởi Edmonds[|26] và được công bố vào năm 1967.
Khởi tạo với việc chọn lọc tham lam, bắt đầu tại ROOT, và sau đó, thông qua quá trình dọn dẹp mà xóa đi chu trình của các đỉnh. Quá trình dọn dẹp này bắt đầu bằng việc tinh chỉnh tất cả trọng số có trong đồ thị bằng việc tìm giá trị trọng số lớn nhất trong các cạnh đi tới đỉnh đang theo dõi và dùng trọng số của các cạnh đi tới đỉnh đó trừ đi giá trị trọng số lớn nhất đã tìm được. Bằng cách này, sau khi
14
Vin . itl] Wh j iN
Hình 2.8: Quá trình xây dung cây khung chưa hoàn thiện đến lúc kết hợp tạo ra cây khung hoàn thiện
mới
kết thúc quá trình tỉnh chỉnh, thuật toán tạo ra một đồ thị mới với các đỉnh có giá trị bé hơn hoặc bằng
0 và các cạnh có giá trị bằng 0 chính là các cạnh mục tiêu và các cạnh này tạo nên cây khung được chọn.
Sau khi tỉnh chỉnh giá trị trọng s một đồ thị mới bằng cách lựa chọn
1 chu trình con và thu gọn lại
trỏ tới đỉnh mới và xóa đi © có quan hệ ha nằm trong chu trình con. Lúc này, thuật toán tiếp tục việc lựa chọ \ lựa chọn tham lam và lặp lại
quá trình làm sạch cho đ
Để hiểu rõ hơn quá t bày một ví dụ điển hình cho cách hoạt
động của thuật toán:
Bước 1: Đầu vào cử ; An se Skiing dò thị có trọng số đã được tính toán (hình2
12
Hình 2.9: Hình minh họa cho bước 1 của thuật toán.
2.9).
Bước 2: Thuật toán sử dụng phương pháp chọn lọc tham lam, chọn ra trọng số lớn nhất từ các cạnh đến các đỉnh và gán trọng số đó cho đỉnh đó (hình 2.10).
Bước 3: Trừ tất cả các trọng số của tất cả các cạnh có trong đồ thị cho trọng số đã được gán cho các
đỉnh (hình 2.11).
15
Hình 2.12: Hình minh họa cho bước 4 của thuật toán.
Bước 4: Thu gọn đồ thị bằng cách tìm các đồ thị con có xuất hiện chu trình (cạnh đến và cạnh đi đều
có trọng số bằng 0) và gộp chúng lại tạo ra đỉnh mới. Một đồ thị mới được hình thành (hình 2.12).
Bước 5: Lap lại bước 2 và bước 3 cho đến khi không còn chu trình có ràng buộc đã đề ra (hình 2.13).
Bước 6: Khi đến bước này, chứng tỏ cây khung đồ thị đã không còn chu trình con. Lúc này, thuật toán truy ngược lại và tách các đỉnh đã hợp nhất ra. Trong quá trình truy ngược, thuật toán xóa đi các cạnh đã tạo nên chu trình con bằng cách so sánh với giá trị trọng số được gán tại thời điểm truy
ngược, nếu cạnh nào lớn hơn giá trị đó sẽ bị xóa đi. Như vậy, kết quả thu được là một đồ thị có các cạnh sở hữu trọng số cao nhất mà không có bất kỳ chu trình con nào trong đồ thị phụ thuộc (2.14).
16
Hình 2.13: Hình minh hoa cho bước 5 của thuật toán.
Deleted from cycle
2.3.2 Phân tích c
based)
Phương pháp dựa tr i ‘iu bang cách xác định một hệ thống chuyển
tiếp hoặc trạng thái
đề học tập là tạo ra ỗ ê dự đoán chuyển đổi trạng thái tiếp theo dựa trên lịch sử chuyển đổi, và pháp là xây dựng trình tự chuyển đổi tối uu cho câu đầu vào với mô hình được tạo ra. Điều này đôi khi được gọi là giảm chuyển đổi (shift-reduce) phân tích
cú pháp phụ thuộc, vì ý tưởng của cách tiếp cận này giống với Shift-Reduce-Parsing, một thuật toán được đề xuất bởi Aho and Ullman|2].
Đầu vào sẽ là một buffer với từng phần tử của buffer tương ứng với từng chữ thuộc câu đầu vào theo thứ tự từ trái sang phải và mang chỉ mục từ 1 > n. Trong đó, n là số từ trong câu đầu vào. Thuật toán sử dụng Stack có ROOT là phần tử đầu tiên để lưu trữ các dữ liệu đã được xử lý một phần thông qua parser; một tập L chứa các nhãn phụ thuộc; một parser để đưa ra các hành động; xác
định mối quan hệ giữa hai từ trên cùng của stack thông qua một hàm dự đoán được gọi là Oracle.
Thuật toán được mô tả như hình bên dưới:
Khởi đầu thuật toán, parser sẽ nhận các từ trong buffer theo thứ tự từ trái sang phải. Mỗi khi
shift 1 phần tử của buffer, parser xử lý và đẩy vào stack. Sau đó, Oracle sẽ xem xét bước chuyển phù hợp cho parser để xử lý 2 phần tử trên cùng của ngăn stack. Kết quả nhận được sau khi đưa câu văn vào thuật toán sẽ là một tập S chứa mối quan hệ phụ thuộc giữa các từ xuất hiện trong câu văn đó.
17
LEFTARC RIGHTARC SHIFT
Action
Hình 2.15: Mô tả cách hoạt động của cách tiếp cận transition-based
2.3.2.1 Thuật toán Naive
Ý tưởng chính của thuật toán này là sử dụng tìm kiếm tham lam (Greedy Search) để tìm ra mối quan
hệ phù hợp nhất. Thuật toán sử dụng cách tiếp cận Transition-based để thực hiện việc gán nhãn phụ thuộc. Cụ thể, ở mỗi bước, Oracle thực hiện xem xém các hành động sau:
e Left Arc: Gán từ trên cùng › sau nó trong stack và xóa từ theo sau nó ra khỏi stack.
e Right Arc: Gan từ t é Am head cialti trên cùng nhất trong stack,
đồng thời xóa từ tré
e Shift: Không gan heg
máy học nào phù hd Fan hệ chang hạn như Multi-class Support Vector
Machine.
2.3.2.2 “Thuật toán Nirve
Phương pháp nay còn được biết đến với tên arc standard được phát triển bởi Nirve 2003[53, 55]. Cũng giống như cách tiếp cận Transition-based cơ bản đã trình bày ở trên, thuật toán thay đổi quá trình thực hiện, xem xét khi sử dụng các hành động của parser, cụ thể gồm các hành động sau:
e Reduce: Nếu từ trên cùng của Stack nếu nó có tham qua vào một mối quan hệ phụ thuộc và là
từ phụ thuộc thì sẽ bị xóa khỏi Stack.
e Left Arc: Xem xét từ trên cùng của Stack va gán nó làm head cho từ đứng dưới nó trong Stack.
e Right Arc: Xem xét từ trên cùng thứ 2 của Stack và gán nó làm head cho từ dứng trên nó(trên
cùng nhất), sau đó, xóa tit trên cùng nhất ra khỏi Stack.
e Shift: Không thực hiện gan head, lưu từ vào Stack để xử lý sau.
18
Các hành động trên phải tuân theo điều kiện sau:
e Chỉ áp dụng Left Arc khi và chỉ khi vị trí của ROOT không thuộc top 2 phần tử đầu của Stack.
e Cả hai hành động bao gồm Left Arc và Right Arc chỉ được thực hiện khi có ít nhất 2 phần tử
trong Stack không bao gồm ROOT.