Để sử dụng bộ phân tích của Bikel trong việc phân tích cú pháp cho tiếng Việt, trước tiên ta phải đặc tả ngôn ngữ đề bộ phân tích có thể hiểu được. Việc đặc tả ngôn ngữ được thực hiện bằng cách xây dựng một gói ngôn ngữ tương đương với “Java package”. Trong gói này, chúng ta cần đưa vào tối thiểu bốn lớp để cung cấp đặc tả về ngôn ngữ cũng như các phương thức xử lý, đó là bốn lớp Treebank, Training, HeadFinder và WordFeature. Treebank thừa kế các phương thức và các thuộc tính trong lớp danbikel.parser.lang.AbstractTreebank, nhiệm vụ của lớp này là miêu tả kho ngữ liệu, đối với tiếng Anh là Penn Treebank. Như vậy, để miêu tả các tính chất, các phương thức trên Viet Treebank, chúng ta cần xây dựng lớp Treebank này. Một ví dụ là trong lớp Treebank của gói ngôn ngữ tiếng Anh, ký hiệu “CC” nhằm chỉ liên từ có nhãn là CC, nhưng trong Viet Treebank, nhãn này là C vì vậy ta đưa sự thay đổi này vào trong lớp Treebank. Lớp thứ hai là Training, thửa kế từ lớp trừu tượng danbikel.parser.lang.AbstractTraining. Nhiệm vụ của lớp này là cung cấp các hàm tiền xử lý và các hàm xử lý dữ liệu trong quá trình huấn luyện. Tiếp theo là lớp HeadFinder. Nhiệm vụ của lớp này là thực hiện việc tìm kiếm head của câu. Như đã nói trong mô tả về Viet Treebank, Viet Treebank đưa ra nhãn H để chỉ ra thành phần trung tâm. Vì vậy việc tìm kiếm thành phần trung tâm ở đây ta chỉ cần quan tâm đến từ có nhãn H. Ngoài ra, việc tìm kiếm head cũng có thể xây dựng luật ngữ pháp, không cần đưa hàm tìm kiếm trực tiếp trong chương trình giống như Bikel thực hiện đối với Penn Treebank. Cuối cùng, lớp WordFeature cung cấp hàm ánh xạ giữa một yếu tố từ vựng với những vector đặc trưng liên quan đến hình thái học và phép chính tả (orthographic). Ngoài bốn lớp trên, ta cần chú ý đến hai tập tin là head-rules.lisp và training-metada.lisp. Tập tin head-rules.lisp, được viết bằng ngôn ngữ LISP, chứa các luật hỗ trợ cho việc tìm thành head trong câu hay cụm từ. Như trong gói tiếng Anh, tập tin này chứa tất cả các luật được Collins và Bikel sử dụng trong bộ phân tích cú pháp của mình. Cấu trúc của tập tin này được mô tả bằng chuỗi các luật sau:
<headrule> (<parent> <instruction>+)
<parent> nút cha mà thành phần vế phải của luật cũng được tìm ra hay dùng ký hiệu * cho việc sử dụng luật cơ bản.
57
<instruction> (<directonn> <scanelement>*)
<direction> l | r (l tương đương với left-to-right, r tương đương với right to left)
<scanelement> nhãn ký tự không kết thúc của nút con để tìm kiếm theo hướng đã chọn.
Những luật trên được bổ sung cho lớp HeadFinder trong việc tìm kiếm head (thành phần trung tâm). Việc tìm kiếm head rất đơng giản, bắt đầu bằng ký tự không kết thúc là cha, tìm trong các cây con của nút đó theo hướng left-to-right or right-to- left.prd. Tập tin này được đọc khi HeadFinder được khởi tạo.
Tập tin thứ hai là training-metada.lisp được nhiệm vụ của lớp này là đưa ra các mô hình dùng cho quá trình huấn luyện. Tập tin cung cấp một số thông tin liên quan đến quá trình huấn luyện, đúng ý nghĩa của tên tập tin, như luật để sinh subcat và tham số, những nhãn được phép loại bỏ (một bước tiền xử lý trước khi huấn luyện), luật để thêm và chỉnh sửa nhãn NP cơ sở (baseNP). Giống như file head-rules, tập tin được đọc khi khởi tạo đối tượng Trainning.