Xây dựng thuật toán trích rút từ từ điển tiếng Việ t

Một phần của tài liệu Luận án tiến sĩ: Xử lý tiếng việt (Trang 116 - 121)

Kho từ vựng (từ điển) tiếng Việt [127] dùng cho máy tính đã được xây dựng trong dự án KC.01.01/06-10 khoảng 35.000 mục từ với 41700 nghĩa từ nhằm phục vụ cho các ứng dụng xử lý ngôn ngữ Việt. Mô hình ngữ liệu của kho từ vựng được xây dựng theo chuẩn LMF do tiểu ban kĩ thuật ISO/TC 37/Sc 4 phát triển. LMF

được tổ chức thành các gói cho phép đặc tả các thông tin ngôn ngữở từng cấp độ. Mỗi mục của từ điển đưa ra ba loại thông tin: Thông tin hình thái, cú pháp, ngữ

101

Thông tin hình thái cho phép mô tả cấu tạo từ (<Morphology>)

Thông tin cú pháp (<Syntactic>) mô tả thông tin về từ loại, tiểu từ loại; thông tin về khung vị từ; thông tin về các đối của vị từ, chức năng cú pháp và thành phần cú pháp của các tham số.

Thông tin ngữ nghĩa (<Semantic>) mô tả các thông tin về ràng buộc logic. Từ điển được mã hoá chuẩn XML, nhằm sử dụng/trao đổi được giữa nhiều hệ

thống, thuận tiện cho nghiên cứu đối sánh các ngôn ngữ, dễ cập nhật khi cần thiết. Quan sát về cấu trúc từ điển tiếng Việt cho thấy, hiện tại, cú pháp mỗi mục từ

trong từđiển ở một trong hai dạng: Nếu là các từ không phải là động từ thì chỉ tồn tại thông tin hạng mục từ loại và tiểu từ loại của từđó (danh từ, tính từ...);

Ví dụ 1, mục từ vựng “đế quốc”và từ loại là “tính từ” thì cú pháp được mô tả trong từđiển như sau: <Entry> <HeadWord>đế quốc</HeadWord> <Morphology> <WordType>compound word</WordType> </Morphology> <Syntactic> <Category>A</Category> <SubCategory>Ap</SubCategory> </Syntactic> <Semantic> ……… </Semantic> </Entry>

Dạng thứ hai, nếu từ vựng là động từ thì ngoài thông tin hạng mục từ loại còn có thêm thông tin về quan hệ vị từ- đối (khung vị từ);

Ví dụ2, với mục từ “đi” và từ loại là “động từ“ được mô tả như sau:

1. <Entry>

2. <HeadWord>đi</HeadWord>

3. <Morphology>

102 5. </Morphology> 6. <Syntactic> 7. <Category>V</Category> 8. <SubCategory>Vt</SubCategory> 9. <SubcategorizationFrame val="Sub+V+Obj"/> 10. <SyntacticArgument>

11. <feat att="syntacticFunction" val="Sub"/> 12. <feat att="syntacticConstituent" val="NP"/>

13. </SyntacticArgument>

14. <SyntacticArgument>

15. <feat att="syntacticFunction" val="Obj"/> 16. <feat att="syntacticConstituent" val="PP"/>

17. </SyntacticArgument> 18. <Before>R: đang</Before> 19. </Syntactic> 20. <Semantic> ………. ….. 21. </Semantic> 22. </Entry>

Dựa vào đặc điểm của từđiển tiếng Việt luận án đưa ra thuật toán xây dựng các cây cơ bản cho văn phạm LTAG dựa vào quan hệ vị từ-đối thông qua thông tin hình thái, cú pháp của mỗi mục từ trong từ điển (một từ vựng có thể có nhiều mục từ, mỗi mục từ tương ứng với một nghĩa, một từ loại). Bởi vậy các cây cơ bản ở đây chính là các cây khởi tạo22.

Phần tiếp theo sẽ xây dựng thuật toán trích rút cây cơ bản (cụ thể là cây khởi tạo) của LTAG từ từđiển tiếng Việt.

Thuật toán trích rút cây khởi tạo được thực hiện qua 2 bước

Bước 1: Dựa vào thông tin của mỗi mục từ (Entry) xây dựng một bảng ánh xạ

nhãn từ loại với nhãn thành phần cú pháp (cú pháp thành phần) tương ứng.

Bước 2. Tại mỗi mục từ kiểm tra xem trong thẻ cú pháp (<Syntactic>) có tồn tại thành phần vị từ-đối (SubcategorizationFrame ) không? Nếu tồn tại thì xây dựng 3

22 Là một cây cơ bản chứa các nút kết và không kết, trong đó, có một nút lá là nút kết-một từ (động từ), các nút lá còn lại là các nút không kết được đánh dấu một bằng kí hiệu (+)

103

dạng cây cơ sở: Tree1.cây cơ sở là cụm từ cùng với từ loại, từ vựng (ví dụ: “(VP (V

đi))”); Tree2. các cây cơ sở là cụm từ tương ứng cùng từ loại, từ vựng và các đối phía sau của từ loại đó (Ví dụ: “(VP (V đi) (+PP))”), loại cây này chỉ tồn tại nếu có (adsbygoogle = window.adsbygoogle || []).push({});

đối phía sau; Tree3. cây cơ sở là câu cú pháp thành phần của một từ vựng (ví dụ: “(S (+NP) (VP (V đi) (+PP)))”). Nếu không tồn tại thì chỉ xây dựng cây là cụm từ

cùng với từ loại và từ vựng- cây Tree1 (ví dụ: “(AP (A đế quốc))” hoặc “(AP (Ap đế

quốc))”).

Thuật toán chi tiết được trình bày trong thuật toán 5.12

Thuật toán 5.12 String BuildTree(Entry)

SyntacticArgument[]: Là mảng các đối của một động từ Headword: Từ vựng

SubcategorizationFrame: Khung cú pháp của mục từ là động từ

Cú pháp thành phần {NP,PP,AP,NP,VP,NP,RP,QP} tương ứng với các từ loại

Input: Mục từ Entry

Ouput: Cây cơ sở Spin

{

//XÂY DỰNG CÂY LOẠI 3

1. {

2. If (SubcategorizationFrame!=∅){

3. SyntacticArgumen ← (Các đối theo thứ tự từ trái sang phải ∈ SubcategorizationFrame)

4. Tree = S+ Cú pháp thành phần tương ứng với đối phía trước của

headword (SyntacticArgumen[0]) + cú pháp thành phần tương ứng với từ loại + từ loại + headword;

5. Xây dựng các cây T trong Tree3, trong đó mỗi cây T có phần

đầu là Tree và phần đuôi là xâu stri-chứa nhãn cú pháp thành phần của các đối phía sau headword. Một đối có thể có nhiều

nhãn thành phần nên sẽ có thể có nhiều xâu stri=> Tree3 có

thể có nhiều cây T

6. (Giả sử một headword có 2 đối phía sau, SyntacticArgumen[1]có

2 nhãn thành phần, SyntacticArgumen[2]có 3 nhãn thành phần,

vậy sẽ có 6 xâu stri (i=1Æ6)=> có 6 cây thuộc Tree3)

104

//XÂY DỰNG CÂY LOẠI 2

8. {

9. If (SubcategorizationFrame!=∅){

10. SyntacticArgumen ← (Các đối theo thứ tự từ trái sang phải ∈

SubcategorizationFrame) (adsbygoogle = window.adsbygoogle || []).push({});

11. if (SyntacticArgument[1]!=∅){

12. Tree = Cú pháp thành phần tương ứng với từ loại + từ loại +

headword;

13. Xây dựng các cây T trong Tree2, trong đó mỗi cây T có phần

đầu là Tree và phần đuôi là xâu stri-chứa nhãn cú pháp thành phần của các đối phía sau headword. Một đối có thể có nhiều

nhãn thành phần nên sẽ có thể có nhiều xâu stri=> Tree2 có

thể có nhiều cây T.

14. }}}

//XÂY DỰNG CÂY LOẠI 1

15. {String Tree1= Nhãn cú pháp thành phần + Từ loại+ headword;}

16. return(Tree1∪Tree2∪Tree3);

17. }

Ví dụ, với mục từ ”đi” ở ví dụ 2 theo thuật toán xây dựng được:

Xây dựng cây loại 3: Tree= (S (+NP) (VP (V đi); str1= (+PP))); Tree3 có 1 cây là (S (+NP) (VP(V đi) (+PP))).

Xây dựng cây loại 2:Tree= (VP (V đi); str1= (+PP)), T=(VP(V đi) (+PP)). Trees2 có 1 cây (VP (V đi) (+PP)).

Xây dựng cây loại 1: (VP (V đi)).

Thuật toán trên mới xây dựng các cây cơ bản là cây cơ sở (khởi tạo) từ từ điển còn các cây phụ trợ chưa được xây dựng, bởi trong từ điển chú giải các thành phần phụ cho một mục từ tương đối đơn giản.

Từ điển tiếng Việt cho máy tính được xây dựng từ các chuyên gia ngôn ngữ, thông tin cú pháp của các từ vựng được trích rút từđây là khá chính xác. Bởi vậy sẽ

105

tốt hơn cho bộ phân tích cú pháp nếu chúng ta kết hợp văn phạm LTAG thu được từ

từđiển và văn phạm LTAG thu được của VietTreebank

Một phần của tài liệu Luận án tiến sĩ: Xử lý tiếng việt (Trang 116 - 121)