CHƯƠNG 2: PHÂN TÍCH BẢNG DỰA TRÊN T-RECS
2.2. Giới thiệu thuật toán T-Recs
2.2.3. Cải tiến một số bước của thuật toán
Chúng ta tập trung khắc phục hai vấn đề chính đặt ra đối với thuật toán đó là hạn chế đến mức tối đa sự nhầm lẫn khi các từ cùng một khối lại bị phát hiện thành hai hoặc nhiều khối (do tỷ lệ diện tích vùng bao quanh của các từ không
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
đồng đều) và không phát hiện được các từ còn lại của một khối là thuộc khối này khi gặp phải một số dòng trống cục bộ làm cho các từ trong khối phân bố không liên tục, từ đó các từ vốn dĩ thuộc một khối cũng bị phát hiện nhầm thành hai hoặc nhiều khối khác nhau. Như vậy, ta xem xét lại bước thứ tư của thuật toán T-Recs. Thứ nhất, thay vì trước đây chỉ tìm các từ Wj theo chiều ngang ở một dòng trước và một dòng kế tiếp, thì nay ta cho thuật toán tìm các từ Wj theo chiều ngang ở tất cả các dòng trước và tất cả các dòng kế tiếp. Thực hiện duyệt tất cả các dòng trước và tất cả các dòng kế tiếp như vậy sẽ khắc phục được lỗi khi gặp các dòng trống cục bộ. Nhưng chúng ta cũng nhận thấy rằng điều này chắc chắn sẽ không tối ưu về mặt tốc độ tính toán vì trước đây với mỗi lần gọi đệ quy cho một từ nào đó thì thuật toán chỉ duyệt hai lần (hiểu theo nghĩa số dòng, một dòng trước và một dòng kế tiếp), còn nay thì mỗi lần gọi đệ quy cho một từ thuật toán phải duyệt một số lần bằng tổng số dòng hiện có của ảnh tài liệu trừ đi một đơn vị. Theo đó khi gọi đệ quy cho các bước trong thuật toán thì số lần lặp đi lặp lại mang tính trùng lắp không cần thiết là một con số cực kỳ lớn. Thứ hai, cũng trong bước thứ tư của thuật toán lựa chọn, trước khi tìm các từ Wj thì ta xây dựng điều kiện ràng buộc rằng từ Wj phải có diện tích vùng bao quanh hình chữ nhật giao nhau với diện tích vùng bao quanh tổng hợp bành trướng hình chữ nhật được xác định sau khi đã thực hiện các bước đệ quy từ bước thứ 0 đến bước thứ j - 1 trước đó. Ðiều này sẽ khác với thuật toán lựa chọn ở chỗ thuật toán lựa chọn chỉ đặt ra điều kiện rằng từ Wj có diện tích vùng bao quanh hình chữ nhật giao nhau với diện tích vùng bao quanh hình chữ nhật của chỉ một từ xuất phát trong lần gọi đệ quy này. Về mặt lý thuyết thì khi hiệu chỉnh thuật toán lựa chọn ban đầu theo cách này sẽ làm cho độ phức tạp tính toán tăng lên, làm tốn kém bộ nhớ lưu trữ cũng như phải cân nhắc về khả năng của bộ vi xử lý.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ðể xem xét liệu rằng diện tích vùng bao quanh hình chữ nhật của một từ Wj có giao nhau với diện tích vùng bao quanh tổng hợp mở rộng hình chữ nhật sau khi đã thực hiện j – 1 bước đệ quy hay không (j = 1,2,3,…n, n hữu hạn), hơn nữa hầu hết các cấu trúc bảng thường dùng hiện nay đều được tạo thành từ những hàng nằm ngang theo chiều của trục hoành và các cột nằm dọc theo chiều của trục tung, cũng như để đơn giản hóa trong quá trình tính toán, ta đồng nhất hai hình chữ nhật này với hai đoạn thẳng. Sau đó ta xác định các giá trị: tọa độ điểm đầu Xj-min và tọa độ điểm cuối Xj-max của đoạn thẳng đại diện cho từ Wj ; tọa độ điểm đầu Xmin và tọa độ điểm cuối Xmax của đoạn thẳng đại diện cho diện tích vùng bao quanh tổng hợp bành trướng hình chữ nhật. Trong đó, Xj-min và Xj-max được xác định dựa vào trục Ðề-các, Xmin là một biến mà giá trị của nó luôn có xu hướng giảm về điểm đầu của một khối văn bản và Xmax là một biến mà giá trị của nó luôn có xu hướng tăng lên để phối hợp với Xmin nhằm làm tăng độ rộng của khối lên càng nhiều càng tốt. Với ý tưởng và các đại lượng phát sinh thêm như vậy, ta có thể đưa ra trình bày lại thuật toán có bổ sung một số điểm mới trong bước 1 và bước 4 so với thuật toán lựa chọn ban đầu như sau:
Ðầu vào: Vùng bao quanh hình chữ nhật của các từ;
Ðầu ra: Các từ được liệt kê vào từng khối lô-gíc;
Phương pháp:
Bước 1: Chọn tùy ý một từ Wx chưa được đánh dấu là đã mở rộng. Xác định tọa độ Xx-min và Xx-max tương ứng của nó, đồng thời gán Xmin := -1, Xmax := 0;
Bước 2: Tạo một khối mới Bi ;
Bước 3: Đánh dấu Wx là đã mở rộng và thêm Wx vào khối Bi ; Bước 4:
+ Cập nhật tọa độ (Xmin , Xmax):
- Nếu Xmin = -1 thì gán Xmin := Xx-min
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Nếu Xmin > Xx-min thì gán Xmin := Xx-min - Nếu Xmax < Xx-max thì gán Xmax := Xx-max
+ Tìm tất cả các từ Wj theo chiều ngang ở tất cả các dòng phía trước và tất cả các dòng phía sau, sao cho tọa độ (Xj-min , Xj-max) có giao nhau với tọa độ (Xmin , Xmax);
Bước 5:Thực hiện đệ quy các bước 3, 4 và 5 cho tất cả các từ Wj vừa tìm được Bước 6: Nếu như không tìm được từ nào mà chưa đánh dấu và có vùng bao quanh giao nhau với từ khác (hiểu theo ý nghĩa như bước 4) thì tăng i lên một đơn vị và quay lại bước 1.
Bước 7: Thủ tục sẽ dừng lại khi tất cả các từ trong ảnh tài liệu đều đã được đánh dấu là đã mở rộng.
Như vậy, với khối như đã trình bày ở hình 2.5, sau khi đã điều chỉnh thuật toán ở bước 1 và bước 4 như trên thì khởi đầu thuật toán giả sử ta chọn từ
“làm” làm từ xuất phát, tọa độ của từ “làm” sẽ được cập nhật vào tọa độ (Xmin , Xmax), tiếp đến phát hiện được từ “cho ” và từ “nên”, vì có sự cập nhật tọa độ (Xmin , Xmax) và so sánh sự giao nhau với tọa độ của từ “trai ” ở dòng cuối nên từ “trai” này cũng được nhận dạng vào khối này. Tiếp tục đệ quy với từ xuất phát là từ “trai” ở dòng cuối nên đã phát hiện được hai từ còn lại là từ “đáng ” và từ “trai ” ở dòng đầu tiên. Kết quả tất cả các từ này được thuật toán phát hiện là thuộc cùng một khối (Hình 2.7)
Hình 2.7: Mô tả kết quả thuật toán đã được điều chỉnh nhận dạng khối
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Trong bước thứ 4 của thuật toán, khi thực hiện tìm những từ thoả mãn để đưa vào một khối, thuật toán sẽ tìm tất cả các từ ở các dòng trước và các dòng kế tiếp chứ không phải chỉ tìm ở dòng trước và dòng kế tiếp của dòng đang xét. Do đó việc nhận dạng đúng các cột của bảng từ hình 2.6 được minh họa trên hình 2.8