Như đã đề cập phần trên, bộ thống kê ngữ cảnh là một trong ba thành phần quan trọng của mô hình nhận dạng từ. Hai nhiệm vụ quan trọng nhất của bộ thống kê là:
Kiểm tra mức độ hợp lý của một ký tự trong một xâu ký tự.
Chọn ra một từ có độ tin cậy cao (khả năng lựa chọn cao nhất) nhất trong một danh sách các từ ứng cử viên.
Mức độ hợp lý của một ký tự y trong một xâu ký tự s được tính theo xác suất xuất hiện của cặp ký tự xy, trong đó x là ký tự liền trước của ký tự y trong xâu s. Khả năng lựa chọn của một từ được tính theo tần suất hoặc xác suất xuất hiện của từ đó.
2.3.1. Các khái niệm sử dụng trong bộ thống kê
1. Tần suất xuất hiện của một ký tự
Tần suất xuất hiện của một ký tự được tính bằng số lần xuất hiện của ký tự đó trong quá trình duyệt trên dữ liệu đầu vào. Cụ thể hơn, nếu gọi:
- D: là tập dữ liệu đầu vào.
- ch: là ký tự cần tính tần suất xuất hiện. - TS(ch): là tần suất xuất hiện của ký tự ch.
- Count (ch): là hàm đếm số lần xuất hiện của ch trên D. Ta có thể viết dưới dạng công thức như sau:
TS(ch|D)= Count ( ch) (in D ) (2.4)
2. Tần suất xuất hiện của 1 từ
Tần suất xuất hiện của một từ được tính bằng số lần xuất hiện của từ đó trong quá trình duyệt trên dữ liệu đầu vào. Tương tự như trên, ta cũng có thể viết dưới dạng công thức như sau:
Trong đó, D là tập dữ liệu đầu vào, w là từ cần thống kê tần suất xuất hiện,
Count(w) là hàm đếm số lần xuất hiện của w trên D.
3. Tần suất xuất hiện của cặp ký tự xy (hay tần suất xuất hiện của ký tự y ngay sau ký tự x)
Tần suất xuất hiện của cặp ký tự xy được tính bằng số lần xuất hiện của cặp xy hay số lần xuất hiện của ký tự y ngay sau ký tự x trong quá trình duyệt trên dữ liệu đầu vào. Viết dưới dạng công thức, ta có:
TS(xy|D) = Count(xy) (in D) (2.6)
trong đó TS(xy) là tần suất xuất hiện cặp xy, Count là hàm đếm và D là tập dữ liệu đầu vào.
4. Xác suất xuất hiện của 1 ký tự.
Xác suất xuất hiện của một ký tự được tính bằng tần suất xuất hiện của ký tự đó trên tổng tần suất xuất hiện của tất cả các ký tự có một trong quá trình duyệt trên dữ liệu đầu vào. Nếu gọi SX(ch) là xác suất xuất hiện của ký tự ch, ta có thể viết dưới dạng công thức như sau:
D ch i i D ch TS D ch TS D ch SX ) | ( ) | ( ) | ( (2.7)
5. Xác suất xuất hiện ký tự y ngay sau ký tự x (xác suất xuất hiện của cặp
xy)
Xác suất xuất hiện của ký tự y ngay sau ký tự x (hay còn gọi là xác suất xuất hiện của cặp xy) được tính bằng tần suất xuất hiện của ký tự y ngay sau ký tự x trên từng tần suất xuất hiện của tất cả các ký tự khác ngay sau ký tự x. Ta có thể viết dưới dạng công thức như sau:
D x i i y x TS xy TS xy SX ) ( ) ( )
( , với SX(xy) là xác suất xuất hiện cặp xy (2.8)
Xác suất xuất hiện của một từ. được tính bằng tích xác suất xuất hiện của tất cả các cặp ký tự liền kề nhau trong từđó. Nếu gọi w là một từ cần tính xác suất xuất hiện, wi là ký tự thứ i trong w và WXS(w) là xác suất xuất hiện của w , n là chiều dài của từ, ta có:
W SX( w) = SX(wo,w1)* SX(w1,w2)*....*SX(wn-1,wn) (2.9)
2.3.2. Thuật toán kiểm tra mức độ hợp lý của một ký tự trong một xâu
Như đã đề cập phần trên, mức độ hợp lý của ký tự (y) trong một xâu (s) được tính theo xác suất xuất hiện của cặp xy, với x là ký tự liền trước của y trong xâu s. Xác suất xuất hiện cặp ký tự xy được tính bằng giá trị của phần từ nằm trên hàng chứa ký tự x và cột chứa ký tự y của từ điển. Trên cơ sở đó, thuật toán kiểm tra mức độ hợp lý của một ký tự trong một xâu được thể hiện cụ thể như sau:
INPUT: - Ký tự: y - Xâu ký tự: s
- Từ điển ký tự (CharDict), kích thước 27 x 27. OUTPUT:
- Giá trị TRUE (nếu ký tự hợp lý) hoặc giá trị FALSE (trường hợp ngược lại) PROCESS:
Bƣớc 1: x ký tự liền trước của y trong xâu s;
Bƣớc 2: Mức độ hợp lý của y. Xác suất xuất hiện cặp xy = CharDict[x][y];
Bƣớc 3: if (mức độ hợp lý của y > ) return TRUE;
Bƣớc 4: else return FALSE;
Thuật toán 2-1: Thuật toán kiểm tra độ hợp lý của một ký tự.
Kí hiệu sử dụng trong thuật toán là một giá trị ngưỡng, giá trị ngưỡng này được lựa chọn dựa trên các giá trị xác suất đã được lưu trong từ điển ký tự. Kết quả
thống kê trên dữ liệu thực tế cho thấy với những cặp ký tự ít gặp trong thực tế thì xác suất xuất hiện của chúng rất nhỏ (<0.5%) và ngưỡng được chọn bằng 0.5%.
2.3.3. Thuật toán lựa chọn một từ trong danh sách các từ ứng cử viên
Khả năng lựa chọn (còn gọi là độ tin cậy) của một từ được tính theo tần suất xuất hiện hoặc theo xác suất xuất hiện của từ đó. Nếu tất cả các từ ứng cử viên đều nằm trong từ điển thì từ có tần suất xuất hiện cao nhất sẽ được lựa chọn. Trường hợp ngược lại, nếu một từ nào đó không nằm trong từ điển thì bộ thống kê sẽ tiến hành tính xác suất xuất hiện của tất cả các từ ứng cử viên và từ có xác suất xuất hiện cao nhất sẽ được lựa chọn. Xác suất xuất hiện của một từ được tính theo các công thức (2.7) và (2.8). Tần suất xuất hiện của một từ được xác định trên từ điển từ. Thuật toán chọn từ được mô tả một cách chi tiết hơn như sau:
INPUT:
- Danh sách các từ ứng cử viên có khả năng lựa chọn. - Từ điển từ (WordDict).
- Từ điển ký tự (CharDict)
OUTPUT: Từ có khả năng lựa chọn cao nhất PROCESS:
Bƣớc 1:
Kiểm tra xem có từ nào trong danh sách ứng cử viên không thuộc từ điển hay không? nếu không có thì nhảy đến bước 3.
Bƣớc 2:
2.1) Duyệt tất cả các từ trong danh sách các từ ứng cử viên. Với mỗi từ, tính xác suất xuất hiện của từ đó theo công thức (2.9);
2.2) Kết quả từ có xác suất xuất hiện cao nhất;
Kết quả từ có tần suất xuất hiện cao nhất;
Bƣớc 4: return kết quả;
Thuật toán 2-2: Thuật toán chọn từ.