Lƣu đồ giải thuật chuyển đổi sang PML

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Ứng dụng ngôn ngữ truy vấn PML -TQ trong truy vấn Treebank Tiếng Việt (Trang 34 - 39)

3.3 Truy vấn dữ liệu với PML-TQ

PML-TQ là một hệ thống tìm kiếm và duyệt các treebank[11]. Nó cung cấp một bộ truy vấn mạnh và công cụ báo cáo tiện lợi.Để hiểu rõ các kỹ thuật truy vấn dữ liệu với ngôn ngữ PML-TQ, trong phần này sẽ trình bày các hiện tƣợng ngữ pháp Tiếng Việt, tƣơng ứng với nó là các câu truy vấn bằng PML-TQ. Thông qua các truy vấn này, các kỹ thuật truy vấn với PML-TQ sẽ đƣợc trình bày một cách kỹ lƣỡng. Bên cạnh đó, nhằm hỗ trợ cho việc giải thích các vấn đề liên quan đến ngữ pháp tiếng Việt, các tóm lƣợc về vấn đề cấu tạo câu, các thành phần của câu cũng sẽ đƣợc trình bày trong mục này.

3.3.1 Mô tả chung về quy tắc viết lệnh PML-TQ

Cấu trúc cú pháp chung cách viết lệnh của PML-TQ là:

TYPE […]: Bộ lựa chọn các kiểu của nút (tùy thuộc vào các loại treebank). Đối với treebank tiếng Việt thì TYPE là terminal và nonterminal. Bên trong dấu ngoặc vuông [] là các điều kiện tìm kiếm.

TYPE $a:= […]: Bộ lựa chọn đƣợc đặt tên (có thể tham khảo tới $a. $a là một biến đại diện cho kiểu và các quan hệ đƣợc đặt trong […].)

Trong PML-TQ để biểu diễn mối quan hệ giữa các nút thì một loạt các hàm quan hệ nhƣ child, parent… đƣợc xây dựng sẵn.Bảng dƣới đây mô tả đầy đủ các hàm quan hệ có trong PML-TQ.

Các quan hệ

TYPE $a := [ child TYPE $b:= [ ] ] $b là con của $a

TYPE $a := [ child TYPE $b:= [ lbrothers()=0 ] ] $b là conđầu tiên của $a TYPE $a := [ child TYPE $b:= [ lbrothers()=N-1 ] ] $b là con thứ N của $a TYPE $a := [ child TYPE $b:= [ rbrothers()=0 ] ] $b là con cuối cùng của $a TYPE $a := [ child TYPE $b:= [ rbrothers()=N-1 ] ] $b là N con phải cùng của$a TYPE $a := [ children()=1, child TYPE $b:= [ ] ] $b là con duy nhất của $a

TYPE $a := [ parent TYPE $b:= [ ] ] $b là cha của $a

TYPE $a := [ ancestor TYPE $b:= [ ] ] $b bao gồm cha và ông của $a

TYPE $a := [ ancestor{1,2} TYPE $b:= [ ] ] $b là cha hoặc ông của $a

TYPE $a := [ descendant TYPE $b:= [ ] ] $b bao gồm con và cháu của $a

TYPE $a := [ descendant TYPE $b:= [ ], 0x descendant [ order-precedes $b ] ]

$b là cháu bên trái nhất của $a

TYPE $a := [ descendant TYPE $b:= [ ], 0x descendant [ order-follows $b ] ]

$b là cháu bên phải nhất của $a

TYPE $a := [ sibling TYPE $b:= [ ] ] $b là lân cận của$a

TYPE $a := [ sibling{,-1} TYPE $b:= [ ] ] $b là lân cận đứng trƣớc $a TYPE $a := [ sibling{-1,-1} TYPE $b:= [ ] ] $b là lân cận ngay trƣớc $a TYPE $a := [ sibling{1,} TYPE $b:= [ ] ] $b là lân cận sau $a

TYPE $a := [ sibling{1,1} TYPE $b:= [ ] ] $b là lân cận ngay sau $a TYPE $a := [ same-tree-as TYPE $b:= [ ] ] $b là cây đồng dạng với$a

TYPE $a := [ order-follows TYPE $b:= [ ] ] $b cây con đứng sau và là đồng dạng của $a TYPE $a := [ order-follows{1,1} TYPE $b:= [ ] ] $b cây con ngay sau và đồng dạng với $a TYPE $a := [ order-precedes TYPE $b:= [ ] ] $b cây đứng trƣớc và đồng dạng với$a

TYPE $a := [ order-follows{1,1} TYPE $b:= [ ] ] $b cây đứng ngay trƣớc và đồng dạng với $a

TYPE $a := [ order-follows{-1,1} TYPE $b:= [ ] ] $b cây đồng dạng đứng ngay trƣớc hoặc ngay sau $a

TYPE $a := [ same-document-as TYPE $b:= [ ] ] $b phụ thuộc văn bản giống $a

Các phép so sánh

 (!) =, ~, ~*, in  <, >, <=, >=

Các phép toán

+, -, *, div, mod, &

Các hàm

 descendants(), sons()…  length(), substr(), match()…  round(), exp(), sqrt()…

 count(), sum(), max(), ration()…

Các phép phủ định

Phép toán Ý nghĩa

cat = 'NP' ∃ x ∈ cat ( x = 'NP' )

! cat = 'NP' ∀ x ∈ cat ( x ≠ 'NP' ) * cat = 'NP' ∀ x ∈ cat ( x = 'NP' )

Phép kiểm tra sự tồn tại của nút

nonterminal [ 0x descendant terminal [pos = "NN"]]

Dƣới đây là một số ví dụ minh họa cho việc tìm kiếm thông tin và thống kê bằng cấu trúc cơ bản của ngôn ngữ truy vấn PML-TQ

Tìm kiếm một từ:

Terminal $p:= [form=’đi’]; Tìm kiếm một nhãn phân loại:

Nonterminal $p:=[cat=’NP’]; Tìm kiếm một nhãn chức năng:

Nonterminal $p:=[function=’SUB’]; Thống kê số lần xuất hiện của từ „đi‟.

Terminal $p:= [form=’đi’]; >>give count()

Đƣa ra nhãn chức năng của từ „đi‟, đếm số lần sử dụng ứng với từng chức năng.

Terminal $p := [ form = 'đi' ];

>>for $p.posgive $1,count() sort by $2

Tìm tất cả các từ „đi‟ nằm trong cụm danh từ. Đếm số lần xuất hiện ứng với chức năng từ loại.

Terminal $c := [ form = 'đi',

parent nonterminal $p:=[cat=’NP’] ]; >>for $c.posgive $1,count() sort by $2

Sau đây chúng ta sẽ đi khảo cứu các quy tắc cú pháp: cấu trúc cụm từ, cấu trúc câu và mệnh đề, các nhãn chức năng… để hiểu rõ về cách viết lệnh PML- TQ.

3.3.2.1 Cụm danh ngữ

Ký hiệu: NP

Cấu trúc cơ bản: <phần phụtrước><danh từtrung tâm><phần phụsau>

Một số thành tố phụ đứng trƣớc danh từ trung tâm tạo thành phần đầu của cụm danh từ, một số khác thì đứng sau danh từ trung tâm, tạo thành phần cuối của cụm danh từ.

Ví dụ: “một mái tóc đẹp” thì danh từchỉloại “mái” là trung tâm, “một” là phần phụ trƣớc, còn danh từ“tóc” và tính từ“đẹp” thuộc phần phụ sau.

(NP (M một) (Nc-H mái) (N tóc) (A đẹp))

Một cụm danh từ có thể thiếu phần phụ trƣớc hay phần phụ sau nhƣng không thể thiếu phần trung tâm.

Từ lý thuyết đã trình bày ở phía trên, chúng ta sẽ đƣa ra một số câu hỏi về cụm danh từ, tƣơng ứng với nó là các câu truy vấn.

Câu hỏi:

Tìm cụm danh từ đầy đủ đóng vai trò là chủ ngữ

Câu truy vấn:

nonterminal $parent :=

[ child $child, (cat = 'NP' and functions = 'SUB') ];

terminal $child :=

[ (pos = 'N-H' and lbrothers() > 0 and rbrothers() = 0) ];

Trong câu truy vấn trên thì $parent và $child là các biến đại diện cho các nút cần truy vấn. Nút $parent có kiểu là nonterminal (nút chƣa kết thúc) và nút $child có kiểu là terminal (các nút kết thúc). Bên trong dấu ngoặc vuông [] là các điều kiện tìm kiếm. Việc sử dụng biến sẽ khiến câu lệnh dễ nhìn và ít sai sót hơn.

nonterminal

[ (cat = 'NP' and functions = 'SUB'), terminal

[ (pos = 'N-H' and lbrothers() >0 and rbrothers() > 0) ] ];

Có thể diễn giải câu truy vấn nhƣ sau: Tìm các nút không kết thúc(nonterminal), có nhãn phân loại là cụm danh từ „NP‟ và nhãn chức năng là chủ ngữ „SUB‟, có con (child). Con có nhãn từ loại là danh từ trung tâm (pos = 'N-H') và có phần phụ bên trái (lbrothers() >0) và phần phụ bên phải (rbrothers() >0).

Dƣới đây là một trong các kết quả truy vấn:

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Ứng dụng ngôn ngữ truy vấn PML -TQ trong truy vấn Treebank Tiếng Việt (Trang 34 - 39)

Tải bản đầy đủ (PDF)

(84 trang)