3.2 Công cụ TuLiPA
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 quá 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ự đoá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ự đố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ự đoá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ự đoán 4
6. [hβi(h1,2i,h2,3i), c] Quét 5
7. [hα1i(aB1B2F)→ hβi(B1, B2)• hα2i(F) Hồ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] Qt 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