Sơ đồ chuyển trạng thái tuyến tính (linear state transition diagram)

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Giải quyết vấn đề nhận dạng tiếng Việt bằng phân tích cú pháp (Trang 37 - 41)

Sơ đồ chuyển trạng thái tuyến tính cũng có thể được hiểu như mạng lưới các trạng thái (state) và các phép chuyển (transition) trong đó các phép chuyển được gán các nhãn là các từ. Do đó duyệt dọc theo một đường đi từ trạng thái đầu tiên đến trạng thái cuối cùng ta sẽ có một câu sinh bởi sơ đồ chuyển trạng thái tuyến tính.

Sơ đồ chuyển trạng thái tuyến tính có thể dùng để lưu trữ một ngơn ngữ (language) nghĩa là một tập câu và theo một cách nào đó có thể hiểu tương đương với khái niệm mơ hình ngơn ngữ.

2.4.1. Định nghĩa hình thức

Một sơ đồ chuyển trạng thái tuyến tính gồm một tập các trạng thái Q, tập từ vựng Σ và ∆, một trạng thái ban đầu i, và tập trạng thái kết thúc F, và một tập các phép chuyển δ

M = <Σ, ∆, Q, δ, i, F> Σ là tập các ký hiệu vào

∆ là tập ký hiệu ra, thường được dùng ở các trạng thái kết thúc Q là tập trạng thái

i xác định trạng thái ban đầu i∈Q F xác định các trạng thái kết thúc F⊂Q

δ là ánh xạ từ Σ×Q vào Q xác định các phép chuyển

Bảng 2-17. Định nghĩa hình thức sơ đồ chuyển trạng thái tuyến tính

Chúng tơi chỉ định nghĩa sơ đồ chuyển trạng thái tuyến tính đơn định trong đó một trạng thái cũ q và một ký hiệu vào v sẽ cho ta một trạng thái mới q’ mà không phải tập các trạng thái. Mặc dù trên thực tế và về mặt tốn học có tồn tại các sơ đồ như vậy nhưng trong nghiên cứu của chúng tôi, chúng tôi chỉ dùng sơ đồ chuyển trạng thái tuyến tính đơn định (deterministic).

Dưới đây là ví dụ về một sơ đồ chuyển trạng thái tuyến tính trong đó các từ được ghi trên các cung chuyển, các trạng thái kết thúc được vẽ bằng hình vng, trạng thái bắt đầu được vẽ bằng hình trịn có mũi tên đi vào. Bên cạnh là ngơn ngữ tương ứng do sơ đồ chuyển trạng thái biểu diễn. Chúng ta cũng có thể dùng ngơn ngữ này để sinh ra sơ đồ chuyển trạng thái.

0 1 run winamp winword 7 file open 8 ok cancel 4 show desktop taskbar 2 3 5 6 9 10 run winamp run winword show desktop show taskbar file open ok file open cancel

Hình 2-1. Ví dụ về sơ đồ chuyển trạng thái tuyến tính2.4.2. Định nghĩa triển khai 2.4.2. Định nghĩa triển khai

Trong triển khai, chúng tôi coi sơ đồ chuyển trạng thái như một tập các trạng thái và tập các đường chuyển. Mỗi trạng thái sẽ có một thuộc tính để xác định xem nó có là trạng thái đặc biệt hay khơng (ví dụ như trạng thái bắt đầu hoặc trạng thái kết thúc) do đó chúng ta khơng cần mô tả tập trạng thái.

struct linear_diagram_s { longnat_t m_state_num; linear_state_s **m_state; longnat_t m_insym_num; input_symbol_s **m_insym; longnat_t m_outsym_num; output_symbol_s **m_outsym;

linear_state_s *append_state(linear_state_s *pre, word_s *word); linear_state_s *get_first_state();

linear_state_s *get_next_state(vector_s *vect, linear_state_s *state=NULL); };

Bảng 2-18. Định nghĩa triển khai sơ đồ chuyển trạng thái tuyến tính

Mỗi trạng thái chứa một danh sách các phép dịch chuyển tới trạng thái tiếp theo để bao gồm ánh xạ δ. Mỗi trạng thái cũng cần có định danh để được liên kết. Trạng thái cuối cùng thường trỏ tới một ký hiệu ra

struct linear_state_s { longnat_t m_id; output_symbol_s *m_sym; longnat_t m_shift_num; linear_shift_s **m_shift; };

Bảng 2-19. Định nghĩa trạng thái tuyến tính

Mỗi một phép dịch chuyển sẽ bao gồm một từ hoặc một ký hiệu vào và một con trỏ tới trạng thái sẽ được chuyển đến

struct linear_shift_s {

input_symbol_s *m_sym; linear_state_s *m_state; };

Bảng 2-20. Định nghĩa phép chuyển tuyến tính2.4.3. Thuật tốn xây dựng 2.4.3. Thuật tốn xây dựng

Các sơ đồ chuyển trạng thái tuyến tính thường được xây dựng trên một ngôn ngữ tương ứng. Cho một ngôn ngữ hay một tập câu, chúng ta sẽ thêm các câu vào sơ đồ chuyển trạng thái tuyến tính cho tới khi hết tập câu.

linear_diagram_s::built_from_language(language l) { for(sentence sent ∈ l) {

st = this->get_first_state();

for(i=0; i<sent.length; i++) st = this->append_state(st, sent.word(i)); st->m_sym = sent.output_symbol;

} }

Bảng 2-21. Thuật tốn xây dựng sơ đồ chuyển trạng thái tuyến tính

Trong các tính huống khác nhau, thuật tốn này có thể được triển khai để thêm ký hiệu đầu ra (tường hợp trạng thái kết thúc).

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Giải quyết vấn đề nhận dạng tiếng Việt bằng phân tích cú pháp (Trang 37 - 41)

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

(107 trang)