đó, phép thế và kết nối tập các cây cơ bản lựa chọn trong bước trước được thực hiện sinh ra cấu trúc dẫn xuất tương ứng cho câu, q trình phân tích cú pháp hồn thành.
Hai bộ phân tích cú pháp TAG mã nguồn mở khá nổi tiếng tại Pháp, phát triển tại Viện Nghiên Cứu Quốc gia về Tin học và Tự động hóa là LLP2 [37] và DyAlog [16]. LLP2 là hệ thống xây dựng dựa trên kĩ thuật phân tích cú pháp từ dưới lên. Một trong những nhược điểm của LLP2 là thời gian phân tích là khá lớn, tuy nhiên, hệ thống này cung cấp một giao diện đồ họa thân thiện với người dùng. Trong khi đó, DyAlog là hệ thống phân tích cú pháp tối ưu hóa cao, được cài đặt bởi ngơn ngữ lập trình DyaLog, sử dụng để phân tích cú pháp cho nhiều văn phạm khác nhau (RCG, TAG,...). Cả hai cơng cụ này đều có thể sử dụng kết hợp với XMG và TAG, cho phép sinh ra kết quả khơng chỉ là các phân tích cú pháp mà còn cả biểu diễn ngữ nghĩa cho câụ
Gần đây nhất, hệ thống phân tích cú pháp TuLiPA phát triển tại Đại học Tăubingen, CHLB c [34] c s dụng kết hợp với hệ thống XMG để phát triển văn phạm TAG, TAG đa thành phần (Multi-Component TAG) cho phép
phân tích cú pháp kết hợp tính tốn ngữ nghĩa câu dựa trên các thành phần ngữ nghĩa được tích hợp trong thành phần cú pháp LTAG. Q trình phân tích cú pháp - ngữ nghĩa với cơng cụ TuLiPA được trình bày trong phần tiếp theọ
3.2 Cơng cụ TuLiPA
Để tiến hành phân tích cú pháp - ngữ nghĩa cho văn phạm TAG, các tác giả của hệ thống TuLiPA hướng tới một cách tiếp cận tổng quát hơn bằng cách sử dụng văn phạm RCG bởi một số lí do đã được trình bày trong chương 2. Khi đó, q trình phân tích cú pháp - ngữ nghĩa với cơng cụ TuLiPA gồm 3 bước:
• Chuyển đổi các văn phạm dựa trên cây sang RCG tương đương • Phân tích cú pháp RCG
• Chuyển đổi kết quả phân tích về dạng văn phạm ban đầu và tính tốn ngữ nghĩa
Nội dung chi tiết của từng bước sẽ được trình bày bên dướị
3.2.1 Chuyển đổi văn phạm TAG sang RCG
Việc chuyển đổi văn phạm TAG sang RCG được đề xuất bởi Boullier (1999) và được thảo luận chi tiết trong các tài liệu [26], [27]. Ý tưởng chính: RCG sử dụng các vị từ dạnghαi(X) và hβi(L, R) để biểu diễn các cây khởi tạo α và cây phụ trợ β tương ứng trong TAG. Biến X biểu diễn các từ neo và tất cả các cây có thể thế vàoα. L vàR biểu diễn các thành phần bên trái và bên phải sau khi tiến hành phép kết nối tại vị trí nút chân trong cây β. Quá trình chuyển đổi được thực hiện theo các bước:
• Xây dựng các mệnh đề có dạngS(X) → hαii(X) cho các cây khởi tạo TAG tương ứng
• Xây dựng các mệnh đề RCG để chỉ ra các phép thế và kết nối có thể thực hiện trong văn phạm TAG ban đầu
• Trường hợp trên cây αi, βj tồn tại một nút không bắt buộc thực hiện các phép thế và kết nối, chúng ta có các mệnh đề αi(ǫ) =ǫ, βj(ǫ, ǫ) =ǫ
Ví dụ: Văn phạm TAG trong hình 3.2 có thể biểu diễn bởi văn phạm RCG tương đương với các mệnh đề:
α1 SN A S ǫ a F α2 F d α3 F e β S b S∗ c N A Hình 3.2: Văn phạm TAG
• S(X) → hα1i(X) | hα2i(X) | hα3i(X)
• hα1i(aF) → hα2i(F) | hα3i(F) (Nút F trong câyα1 có thể được thế bởi các cây α2 hoặc α3)
• hα1i(aB1B2F) → hβi(B1, B2)hα2i(F) | hβi(B1, B2)hα3i(F) (Có thể thực hiện các thao tác: Kết nối cây β vào α1 và thế α2 hoặc α3 vào nút F trong α1)
• hβi(B1b, cB2) → hβi(B1, B2) (Thực hiện phép kết nối tại nút gốc của cây β, B1, B2 lần lượt là phần bên trái và bên phải nút chân của cây được kết nối)
• hα2i(d) → ǫ hα3i(e)→ ǫ hβi(b, c) →ǫ
3.2.2 Phân tích cú pháp RCG
Nội dung của phần này sẽ trình bày q trình phân tích cú pháp RCG dựa trên giải thuật Earley, trong đó sử dụng hai bộ quan sát:
• Bộ quan sát 1 (bộ kết luận) có một trong hai dạng:
– [A,hρ, Ci, p], trong đó:hρ, Cilà vectơ ràng buộc phạm vidim(A) chiều, chỉ ra quan sát cho vị từ A chưa hoàn thành (cần tiếp tục thực hiện các bước dự đoán)
– [A, φ, c], trong đó φ là vectơ phạm vidim(A) chiều, chỉ ra quan sát cho vị từ A đã hồn thành
• Bộ quan sát 2 (bộ xử lí) có dạng: [Ă−→x) → ψ1•ψ2,hρ, Ci]trong đó Ă−→x)→ ψ1ψ2 là một mệnh đề, ψ1ψ2 6= ǫ,Υ(Ă−→x → ψ1ψ2)) = j,hρ, Ci là vetơ ràng buộc phạm vi j chiều, hρ, Ci là thỏa được. Dấu “•” dùng để ngăn cách giữa hai phần của mệnh đề, khi viết Ă−→x) → ψ1•ψ2 có nghĩa là ψ1 đã được phân tích, ψ2 đang chờ phân tích. Khi dấu “•” được chuyển ra sau ψ2 thì Ă−→x) được phân tích đầy đủ
Các bước phân tích cú pháp cho văn phạm RCG sử dụng thuật tốn Earley được trình bày cụ thể như sau:
Đầu vào: Văn phạm RCG G= (N, T, V, S, P), xâu w= w1w2...wn Đầu ra: Phân tích cú pháp cho w hoặc khơng phân tích được Quy tắc khởi tạo có dạng:
S,h(hr1, r2i),{0 =r1, r1 ≤r2, r2 =n}i, p, độ dài xâu |w|= n
Nếu tại một bước nào đó, bộ quan sát 1 có dạng[S,(h0, ni), c] thì xâuwđược phân tích thành cơng
Thuật tốn phân tích sử dụng 4 phép tốn: Qt, dự đốn và hồn thành, chuyển đổị
• Dự đốn: Gồm 2 phép dự đốn:
1. Nếu bộ quan sát 1 có dạng[A,hρ, Ci, p], tiến hành dự đốn cho bộ quan sát 2:
[A,hρ,Ci,p]
[Ăx1...y1,...,xk...yk)→•ψ,hρ′,C′i], trong đó:
hρ′, C′i là vectơ ràng buộc của mệnh đề c1 : Ăx1...y1, ..., xk...yk) → ψ được xây dựng bằng cách ánh xạ tất cả ρ(i).l thành ρ′(Υ(c1, xi)).l và tất cả ρ(i).r thành ρ′(Υ(c1, yi)).r, đồng thời bổ sung ràng buộc trong
vectơ ràng buộc của mệnh đề.
2. Nếu dấu “•” đứng trước một vị từ trong mệnh đề c1 của bộ quan sát 2, tiến hành dự đốn cho bộ quan sát 1:
[Ặ..)→ψ1•B(x1...y1,xk...yk)ψ2,hρ,Ci]
ρ′(i).l = ρ(Υ(c1, xi)).l, ρ′(i).r = ρ(Υ(c1, yi)).r với mọi 1 ≤ i ≤ k và C′ ={ct| ct ∈C, ct chỉ chứa các biến phạm vi trong ρ′}
• Quét: Nếu Ă−→x) → ǫ:
[A,hρ,Ci,p]
[A,φ,c] , trong đó:
vectơ phạm vi φ thỏa mãn hρ, Ci, mệnh đề phạm vi sinh bởi Ă−→x) →ǫ và w là Ăφ)→ ǫ
• Hồn thành:Nếu bộ quan sát 1 có dạng[B(x1...y1, xk...yk), φ, c](vị từ B đã được phân tích xong), dấu•được di chuyển sang phải vị từB(x1...y1, xk...yk)
tương ứng trong RHS của mệnh đề c1 tại bộ quan sát 2:
[Ă−→x)→ψ1•B(x1...y1,...,xk...yk)ψ2,hρ,Ci]
[Ă−→x)→ψ1B(x1...y1,...,xk...yk)•ψ2,hρ,C′i], trong đó: C′ =C ∪ {φ(j).l= ρ(Υ(c1, xj)).l, φ(j).r =ρ(Υ(c1, yj)).r | 1 ≤j ≤k}
• Chuyển đổi: Khi dấu • được di chuyển tới cuối mệnh đề trong bộ quan sát 2, tiến hành chuyển đổi bộ quan sát 1 về trạng thái hồn thành
[Ă−→x)→ψ•,hρ,Ci]
[A,φ,c] , trong đó:
φ là vectơ phạm vi thỏa mãn hρ, Ci và LHS của mệnh đề phạm vi hóa sinh bởi Ă−→x)→ ψ là Ăφ)
Ví dụ: Hình 3.3 biểu diễn q trình phân tích cú pháp xâu w = abcd với văn phạm RCG tương đương với văn phạm TAG trong hình 3.2:
G = ({S,hα1i,hα2i,hα3i,hβi},{a, b, c, d, e},{X, F, B1, B2}, S, P),
P ={S(X) → hα1i(X) | hα2i(X) | hα3i(X),
hα1i(aF) → hα2i(F) | hα3i(F),
hα1i(aB1B2F) → hβi(B1, B2)hα2i(F) | hβi(B1, B2)hα3i(F),
hβi(B1b, cB2) → hβi(B1, B2),
Các quan sát Phép toán 1. [S,h(hr1, r2i),{0 =r1, r1≤r2,4 =r2}i, p] Khởi tạo 2. [S(X)→ •hα1i(X),{X.l≤X.r,0 =X.l,4 =X.r}] Dự đoán 1
3. [hα1i,h(hr1, r2i),{0 =r1, r1≤r2,4 =r2}i, p] Dự đốn 2
4. [hα1i(aB1B2F)→ •hβi(B1, B2)hα2i(F), Dự đốn 3
{ạl+ 1 =ạr, ạr=B1.l, B1.l≤B1.r,
B1.r=B2.l, B2.l≤B2.r, B2.r=F.l, F.l≤F.r,0 =ạl, F.r= 4}]
5. [hβi,h(hr1, r2i,hr3, r4i),{1 =r1, r1≤r2, r2=r3, r3≤r4}i, p] Dự đốn 4
6. [hβi(h1,2i,h2,3i), c] Qt 5
7. [hα1i(aB1B2F)→ hβi(B1, B2)• hα2i(F) Hoàn thành 4, 5
{...,0 =ạl,1 =ạr,2 =B1.r,3 =B2.r}]
8. [hα2i,h(hr1, r2i),{3 =r1, r1≤r2,4 =r2}i, p] Dự đoán 7
9. [hα2i,(h3,4i), c] Quét 9
10. [hα1i(aB1B2F)→ hβi(B1, B2)hα2i(F)•, Hồn thành 7, 9
{...,0 =ạl,1 =ạr,2 =B1.r,3 =B2.r,4 =F.r}]
11. [S,(h0,4i), c] Chuyển đổi 10
Hình 3.3: Thuật tốn phân tích cú pháp Early
3.2.3 Chuyển đổi kết quả phân tích cú pháp RCG sang TAG
Kết quả của q trình phân tích cú pháp RCG là một tập các dẫn xuất (rừng dẫn xuất) cho biết các quy tắc văn phạm (các mệnh đề RCG) và cách thức kết hợp các quy tắc trong q trình phân tích cú pháp. Việc chuyển đổi các dẫn xuất trong văn phạm RCG sang dẫn xuất TAG tương ứng có thể được thực hiện bằng cách giải nghĩa tên các vị từ của các mệnh đề sử dụng trong q trình dẫn xuất.
Ví dụ: Dưới đây là dẫn xuất RCG thu được từ q trình phân tích cú pháp trong bảng 3.3 và cây dẫn xuất TAG tương ứng, trong đó, các cây khởi tạo α1, α2, cây phụ trợ β thể hiện trong hình 3.2:
S(X)→ hα1i(X)
hα1i(aB1B2F)→ hβi(B1, B2)hα2i(F)
hβi(b, c)→ǫ hα2i(d)→ǫ
⇐⇒ α1
β α2
Tính tốn ngữ nghĩa TAG
Thơng tin ngữ nghĩa trong TAG được thể hiện dựa trên các cấu trúc đặc trưng. Trong q trình chuyển đổi kết quả phân tích cú pháp RCG sang dẫn xuất TAG, cây cú pháp TAG từng bước được xây dựng. Cùng với đó, q trình hợp nhất đặc trưng trên các nút của các cây cơ bản TAG cũng được thực hiện thông qua các phép thế và kết nối cho phép ràng buộc chỉ sinh ra các cây phân tích hợp lệ cùng với cơng thức biểu diễn ngữ nghĩa bậc một tương ứng.
Một trong những khó khăn khi xây dựng biểu diễn ngữ nghĩa bậc một cho văn phạm TAG tiếng Việt là hiện tượng nhập nhằng ngữ nghĩa, tức là, tồn tại các câu với một kết quả phân tích cú pháp, nhưng có thể hiểu theo nhiều nghĩạ Ví dụ: Xét câu: “Every man loves a woman”. Về mặt cú pháp, câu trên có thành phần trung tâm là vị từ “loves”, với các tham tố là các danh ngữ “Every man” và “a woman”. Về mặt ngữ nghĩa, động từ trung tâm “loves” tương ứng với một vị từ logic có hai đối, quán từ “a” tương ứng với lượng từ tồn tại ∃, “every” tương ứng với lượng từ với mọi ∀. Tuy nhiên, ở đây có một sự nhập nhằng về phạm vi của các lượng từ dẫn tới câu trên có hai cách biểu diễn ngữ nghĩa tương ứng với hai cách hiểu:
1. Mọi người đàn ông đều yêu cùng một người phụ nữ ∃y(W OMAN(y)∧ ∀x(MAN(x) → LOV E(x, y))).
2. Mỗi người đàn ông đều yêu một người phụ nữ nào đó ∀x(MAN(x) → ∃y(W OMAN(y)∧LOV E(x, y)))
Vấn đề đặt ra là làm thế nào để sinh ra tất cả các biểu diễn ngữ nghĩa cho các câu có hiện tượng nhập nhằng. Để giải quyết khó khăn này, mỗi cây cơ bản TAG trong hệ thống TuLiPA được gắn với một công thức ngữ nghĩa dưới đặc tả cho phép diễn đạt các thơng tin ngữ nghĩa chưa xác định hồn tồn do các hiện tượng nhập nhằng. Một trong các mơ hình biểu diễn dưới đặc tả là ngữ nghĩa lỗ hổng [19]. Trong đó, biểu diễn dưới đặc tả được xây dựng nguyên tắc sau: Với mỗi công thức φ, ta gán một nhãn l, các nhãn được sử dụng như các hằng. Phạm vi chưa biết của các toán tử logic được gọi là lỗ hổng (hole), biểu diễn bởi một biếnh. Khi đó ta có một tập các ràng buộc cho biết quan hệ giữa các công
thức logic về mặt phạm vi đối với các toán tử. Mỗi biến hoặc hằng k nếu nằm trong phạm vi của mỗi toán tử là biến hoặc hằng k′ ta có ràng buộc k ≤ k′. Mỗi phép gán giá trị các biến (lỗ hổng) bằng cách hằng (nhãn công thức) thỏa mãn các ràng buộc sẽ cho ta công thức logic tương ứng. Nội dung dưới đây sẽ tập trung trình bày ngơn ngữ biểu diễn ngữ nghĩa LU [12] được xây dựng dựa trên cơ sở mở rộng của ngữ nghĩa lỗ hổng cho phép xây dựng biểu diễn ngữ nghĩa cho văn phạm TAG.
Gọi H là tập các biến lỗ hổng, Lc là tập các hằng nhãn công thức, Lv là tập các biến nhãn công thức. Gọi Ic (tương ứng Iv) là tập các hằng (tương ứng là
các biến) đối tượng, R là tập các quan hệ n ngôi trênIc∪Iv∪H, và ≤ là quan hệ trên H ∪Lc gọi là quan hệ có phạm vi trên. Ta có các định nghĩa:
Định nghĩa 3.2.1. (Ngôn ngữ LU)
Cho l ∈Lc∪Lv, h ∈ H, i1, ..., in ∈Iv ∪Ic ∪H, Rn ∈R, khi đó: • l :Rn(i1, ..., in) là một cơng thức LU
• l ≤h là một cơng thức LU
• φ, ψ là một công thức LU nếu và chỉ nếu cả φ và ψ là các cơng thức LU • Chỉ có các cơng thức như trên là các công thức LU
Định nghĩa 3.2.2. (Mối quan hệ ≤φ trên Lφ∪Hφ)
Cho φ ∈LU. Khi đó, với mọi k, k′, k′′ ∈Lφ ∪Hφ: 1. k ≤φ k
2. k′ ≤φ k nếu k′ ≤k nằm trong φ 3. k′′≤φ k nếu k′′ ≤φ k′ và k′≤φ k
4. Nếu ∃k :τ nằm trong φ vàk′ xuất hiện trong τ thì k′ ≤φ k và k φ k′
5. Nếu k và k′ là các đối số khác nhau của công thức Rn trong φ (nói cách khác, tồn tại Rn(..., k, ..., k′, ...) trong φ) thì k′ φ k và k φ k′
Định nghĩa 3.2.3. (Phép gán cho φ)
Cho P là một ánh xạ từ Hφ sang Lφ và φ′ là kết quả thay thế mọi k ∈ Hφ trong φ bởi P(k). Khi đó P được gọi là một phép gán có thể cho φ khi và chỉ khi ∀k, k′∈ Lφ: Nếu k′≤φ k thì hoặc k =k′ hoặc k k′
Cho trước tập các công thức LU biểu diễn ngữ nghĩa của một câu, khi đó, tập các phép gán có thể cho ta các cơng thức logic bậc một tương ứng.
Ví dụ:Tập cơng thứcLU biểu diễn câu tiếng Anh “Every man loves a woman” trình bày trong ví dụ trên như sau:
{l0 :∀(x, h1, h2), l1 :MAN(x), l2 : LOV E(x, y), l3 :∃(y, h3, h4),
l4 : W OMAN(y), l1 ≤h1, l2 ≤ h2, l4 ≤h3, l2 ≤ h4}.
Từ đó, ta tìm được hai cách gán giá trị có thể là P1 và P2: P1 :h1 = l1, h2 =l3, h3 =l4, h4 =l2
P2 :h1 = l1, h2 =l2, h3 =l4, h4 =l0
Cách gán P1 cho chúng ta công thức ∀x(MAN(x) → ∃y(W OMAN(y) ∧ LOV E(x, y))), cách gán P2 cho công thức ∃y(W OMAN(y)∧ ∀x(MAN(x) → LOV E(x, y))), tương ứng với hai cách hiểu trong thực tế.
Sử dụng ngôn ngữ LU, thành phần ngữ nghĩa được tích hợp vào thành phần cú pháp như sau: Mỗi cây cơ bản TAG được gắn với một cơng thức LU biểu diễn nghĩa của nó. Các công thức này chứa các biến hợp nhất là giá trị của các đặc trưng xuất hiện trong cây cơ bản tương ứng. Khi thực hiện dẫn xuất, cây kết quả có ngữ nghĩa được tính là hợp nhất ngữ nghĩa của các cây cơ bản.
Ví dụ: Q trình xây dựng biểu diễn ngữ nghĩa của câu “every man loves a woman” sử dụng cho cơng cụ TuLiPA được thể hiện trong hình 3.5. Chúng ta
có 6 cây cơ bản từ vựng hóa với 6 từ neo tương ứng là “every”, “man”, “loves”, “a”, “woman”, với các công thức LU gắn với từng câỵ Quá trình dẫn xuất để hình thành cây cú pháp biểu diễn câu “every man loves a woman” như sau:
• Cây gắn với từ neo “every” kết nối vào cây có từ neo “man” thu được: x≡ x′, l1 ≡l′
1 do đó ta có l0: every(x, h1, h2), l1: man(x), l1 ≤ h1, l2 ≤h2 • Cây gắn với chuỗi từ neo “every man” có được từ bước trước tiếp tục thế
S NP↓[idx:i,lab1=l′2] NP[idx:x[lab=l′′1]] man l′ 1: man(x′) NP[idx:x,lab1=l2][lab=l0] det every l0:every(x, h1, h2),l1≤h1, l2≤h2 NP[lab:l1]* VP loves l′ 2:love(i, j) NP↓[idx:j,lab1=l′2] NP[idx:y[lab=l′′4]] woman l′ 4:woman(y′) NP[idx:y,lab1=l2][lab=l3] det a l3: ăy, h3, h4),l4≤h3,l2≤h4 NP[lab:l4]*
Hình 3.5: Giao diện cú pháp ngữ nghĩa biểu diễn câu: “every man loves a woman”
x≡ i, l2 ≡l′
2 ⇒l0:every(x, h1, h2),l1:man(x),l2:love(x, j),l1 ≤ h1, l2 ≤h2 • Tương tự, cây với từ neo “a” được kết nối vào cây với từ neo “man”, sau
đó, cây kết quả thu được tiếp tục thế vào cây với từ neo “loves”: y ≡ y′ ≡ j, l2 ≡ l′
2, l4 ≡ l′
4 ⇒ l2: love(x, y), l3: ăy, h3, h4), l4: woman(y), l2 ≤ h4, l4 ≤ h3
Vậy, tập các công thức LU biểu diễn câu “every man loves a woman” như sau: l0: every(x, h1, h2), l1: man(x), l2: love(x, y), l3: ăy, h3, h4), l4: woman(y), l1 ≤ h1, l2 ≤ h2, l2 ≤ h4, l4 ≤ h3. Với hai cách gán giá trị đã trình bày trong ví dụ trước, ta có biểu diễn ngữ nghĩa cuối cùng thu được cho câu “every man loves a woman” sử dụng công cụ TuLiPA:
• and(every(x, man(x), ăy, woman(y), love(x, y))))
• and(ăy, woman(y), every(x, man(x), love(x, y))))
Tồn bộ nội dung của chương này đã trình bày chi tiết về q trình phân tích