4.1.3.Tổ chức lưu trữ dữ liệu
4.2.3. Thiết kế chi tiết lớp
Chương trình phân tích cú pháp được xây dựng với rất nhiều gói và các lớp rất phức tạp nên đồ án sẽ không nêu ra tất cả các lớp và các phương thức được sử dụng mà chỉ tập trung mô tả những gói chính của chương trình.
4.2.3.1. Gói RuleManager
Đây là gói được sử dụng để làm công việc quản lí và thac tác với luật cú pháp, gói này gồm có hai lớp chính là Rule và RuleSet.
Đây là class được sử dụng để quản lý thông tin về một luật cú pháp, mô phỏng một kiểu đối lượng luật cú pháp tiếng Việt.
Bảng 4-8. Bảng mô tả của lớp Rule
Thuộc tính
Phạm vi: private
Kiểu: String
Tên: left Vế trái của luật
Phạm vi: private
Kiểu: int
Tên: count
Số lần xuất hiện của luật trong tập VietTreeBank Phạm vi : private
Kiểu: String
Tên: right Vế phải của luật
Phạm vi: private
Kiểu: float
Tên: prob Xác suất PCFG của luật
Phươn g thức
Phạm vi: public
Kiểu: String
Tên + tham số: getLeft() Trả về giá trị của biến left Phạm vi: public
Kiểu: void
Tên+tham số: setLeft(String left) Gán giá trị cho biến left
Phạm vi: public
Kiểu: int
Tên+tham số: getCount() Trả về giá trị biến count
Phạm vi: public
Kiểu: void
Tên+tham số: setCount(int count)
Gán giá trị cho biến count Phạm vi: public
Kiểu: float
Tên+tham số: getProb() Trả về biến prob
Phạm vi: public
Kiểu: void
Tên+tham số: setProb(float prob)
Gán giá trị cho biến prob Phạm vi: public
Kiểu: String
Tên+tham số: getRight()
Trả về giá trị của biến right Phạm vi: public
Kiểu: void
Tên+tham số: setRight(String right)
Gán giá trị cho biến right
4.2.3.1.2. Lớp RuleSet
Là lớp để quản lý toàn bộ tập luật, cung cấp các phương thức để lấy luật
Bảng 4-9. Bảng mô tả của lớp RuleSet
Phạm vi: Private
Thuộc tính Tên: arlRule Phạm vi: private Kiểu: HashMap<String, ArrayList<AStarRule>> Tên: htRule Bảng băm lưu các luật với khóa là vế phải của luật
Phạm vi: private
Kiểu: ArrayList<Integer>
Tên: arlTotal
Mảng lưu tổng số luật của mỗi cụm từ
Phương thức Phạm vi: public Kiểu: boolean Tên+tham số: readRule() Truy cập và đọc ra các luật cú pháp được lưu trong cơ sở dữ liệu Phạm vi: public Kiểu: ArrayList<AStarElement> Tên+tham số: getCombine(ArrayList<AStarElement> as) Trả về vế trái của các luật có vế phải là chuỗi as.